From f3da73553c45f17e04b1e77cb13eb0fca714d1bd Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Fri, 30 May 2025 20:47:56 -0400 Subject: [PATCH] sync --- .gitignore | 49 +- CONTEXT.md | 24 - LICENSE | 2 +- app/.gitignore | 3 - app/bun.lock => bun.lock | 291 ++- {app/infra => infra}/app.ts | 0 js/bun.lock | 348 --- app/package.json => package.json | 2 +- .../function/package.json | 0 .../packages => packages}/function/src/api.ts | 1 - .../function/sst-env.d.ts | 0 .../function/tsconfig.json | 0 {js => packages/opencode}/.gitignore | 0 {js => packages/opencode}/README.md | 0 packages/opencode/bin/opencode.mjs | 29 + {js => packages/opencode}/package.json | 17 +- {js => packages/opencode}/scrap.ts | 0 packages/opencode/script/release.ts | 68 + {js => packages/opencode}/src/app/app.ts | 0 {js => packages/opencode}/src/app/path.ts | 0 {js => packages/opencode}/src/bun/index.ts | 0 {js => packages/opencode}/src/bus/index.ts | 0 .../opencode}/src/config/config.ts | 0 {js => packages/opencode}/src/global/index.ts | 0 {js => packages/opencode}/src/id/id.ts | 0 {js => packages/opencode}/src/index.ts | 86 +- {js => packages/opencode}/src/llm/llm.ts | 90 +- {js => packages/opencode}/src/lsp/client.ts | 0 {js => packages/opencode}/src/lsp/index.ts | 0 {js => packages/opencode}/src/lsp/language.ts | 0 .../opencode}/src/provider/provider.ts | 0 .../opencode}/src/server/server.ts | 0 .../opencode}/src/session/message.ts | 0 .../src/session/prompt/anthropic.txt | 0 .../src/session/prompt/summarize.txt | 0 .../opencode}/src/session/prompt/title.txt | 0 .../opencode}/src/session/session.ts | 0 {js => packages/opencode}/src/share/share.ts | 0 .../opencode}/src/storage/storage.ts | 0 {js => packages/opencode}/src/tool/bash.ts | 0 {js => packages/opencode}/src/tool/edit.ts | 0 {js => packages/opencode}/src/tool/fetch.ts | 0 {js => packages/opencode}/src/tool/glob.ts | 0 {js => packages/opencode}/src/tool/grep.ts | 0 {js => packages/opencode}/src/tool/index.ts | 0 {js => packages/opencode}/src/tool/ls.ts | 0 .../opencode}/src/tool/lsp-diagnostics.ts | 0 .../opencode}/src/tool/lsp-hover.ts | 0 {js => packages/opencode}/src/tool/patch.ts | 0 {js => packages/opencode}/src/tool/tool.ts | 0 .../opencode}/src/tool/util/file-times.ts | 0 {js => packages/opencode}/src/tool/view.ts | 0 {js => packages/opencode}/src/util/context.ts | 0 {js => packages/opencode}/src/util/event.ts | 0 {js => packages/opencode}/src/util/log.ts | 0 {js => packages/opencode}/src/util/scrap.ts | 0 .../test/tool/__snapshots__/tool.test.ts.snap | 0 .../opencode}/test/tool/tool.test.ts | 0 {js => packages/opencode}/tsconfig.json | 0 .../tui/.goreleaser.yml | 0 packages/tui/app.log | 8 + {cmd => packages/tui/cmd}/root.go | 0 go.mod => packages/tui/go.mod | 0 go.sum => packages/tui/go.sum | 0 .../internal}/completions/files-folders.go | 0 .../tui/internal}/config/config.go | 0 .../tui/internal}/config/init.go | 0 .../tui/internal}/diff/diff.go | 0 .../tui/internal}/diff/diff_test.go | 0 .../tui/internal}/diff/patch.go | 0 .../tui/internal}/fileutil/fileutil.go | 0 .../tui/internal}/format/format.go | 0 .../tui/internal}/format/format_test.go | 0 .../tui/internal}/pubsub/broker.go | 0 .../tui/internal}/pubsub/broker_test.go | 0 .../tui/internal}/pubsub/events.go | 0 .../tui/internal}/status/status.go | 0 .../tui/internal}/tui/app/app.go | 0 .../tui/internal}/tui/app/bridge.go | 0 .../tui/internal}/tui/app/interfaces.go | 0 .../tui/internal}/tui/components/chat/chat.go | 0 .../internal}/tui/components/chat/editor.go | 0 .../internal}/tui/components/chat/message.go | 0 .../internal}/tui/components/chat/messages.go | 0 .../internal}/tui/components/chat/sidebar.go | 0 .../internal}/tui/components/core/status.go | 0 .../tui/components/dialog/arguments.go | 0 .../tui/components/dialog/commands.go | 0 .../tui/components/dialog/complete.go | 0 .../tui/components/dialog/custom_commands.go | 0 .../components/dialog/custom_commands_test.go | 0 .../tui/components/dialog/filepicker.go | 0 .../internal}/tui/components/dialog/help.go | 0 .../internal}/tui/components/dialog/init.go | 0 .../internal}/tui/components/dialog/models.go | 0 .../tui/components/dialog/permission.go | 0 .../internal}/tui/components/dialog/quit.go | 0 .../tui/components/dialog/session.go | 0 .../internal}/tui/components/dialog/theme.go | 0 .../internal}/tui/components/dialog/tools.go | 0 .../tui/internal}/tui/components/qr/qr.go | 0 .../tui/components/spinner/spinner.go | 0 .../tui/components/spinner/spinner_test.go | 0 .../tui/components/util/simple-list.go | 0 .../tui/internal}/tui/image/clipboard_unix.go | 0 .../internal}/tui/image/clipboard_windows.go | 0 .../tui/internal}/tui/image/images.go | 0 .../tui/internal}/tui/layout/container.go | 0 .../tui/internal}/tui/layout/layout.go | 0 .../tui/internal}/tui/layout/overlay.go | 0 .../tui/internal}/tui/layout/split.go | 0 .../tui/internal}/tui/page/chat.go | 0 .../tui/internal}/tui/page/page.go | 0 .../tui/internal}/tui/state/state.go | 0 .../tui/internal}/tui/styles/background.go | 0 .../tui/internal}/tui/styles/icons.go | 0 .../tui/internal}/tui/styles/markdown.go | 0 .../tui/internal}/tui/styles/styles.go | 0 .../tui/internal}/tui/theme/ayu.go | 0 .../tui/internal}/tui/theme/catppuccin.go | 0 .../tui/internal}/tui/theme/dracula.go | 0 .../tui/internal}/tui/theme/flexoki.go | 0 .../tui/internal}/tui/theme/gruvbox.go | 0 .../tui/internal}/tui/theme/manager.go | 0 .../tui/internal}/tui/theme/monokai.go | 0 .../tui/internal}/tui/theme/onedark.go | 0 .../tui/internal}/tui/theme/opencode.go | 0 .../tui/internal}/tui/theme/theme.go | 0 .../tui/internal}/tui/theme/theme_test.go | 0 .../tui/internal}/tui/theme/tokyonight.go | 0 .../tui/internal}/tui/theme/tron.go | 0 .../tui/internal}/tui/tui.go | 0 .../tui/internal}/tui/util/util.go | 0 .../tui/internal}/version/version.go | 0 main.go => packages/tui/main.go | 0 {pkg => packages/tui/pkg}/client/.gitignore | 0 {pkg => packages/tui/pkg}/client/client.go | 0 {pkg => packages/tui/pkg}/client/event.go | 0 packages/tui/pkg/tui/theme/opencode.go | 276 +++ {app/packages => packages}/web/.gitignore | 0 {app/packages => packages}/web/README.md | 0 .../web/astro.config.mjs | 0 {app/packages => packages}/web/package.json | 2 +- .../web/public/favicon.svg | 0 .../web/public/social-share.png | Bin .../web/src/assets/lander/check.svg | 0 .../web/src/assets/lander/copy.svg | 0 .../web/src/assets/logo-dark.svg | 0 .../web/src/assets/logo-light.svg | 0 .../web/src/components/CodeBlock.tsx | 0 .../web/src/components/DiffView.tsx | 0 .../web/src/components/Header.astro | 0 .../web/src/components/Hero.astro | 0 .../web/src/components/Lander.astro | 0 .../web/src/components/Share.tsx | 0 .../web/src/components/diffview.module.css | 0 .../web/src/components/icons/custom.tsx | 0 .../web/src/components/icons/index.tsx | 0 .../web/src/components/share.module.css | 0 .../web/src/content.config.ts | 0 .../web/src/content/docs/docs/cli.mdx | 0 .../web/src/content/docs/docs/config.mdx | 0 .../web/src/content/docs/docs/index.mdx | 0 .../web/src/content/docs/docs/lsp-servers.mdx | 0 .../web/src/content/docs/docs/mcp-servers.mdx | 0 .../web/src/content/docs/docs/models.mdx | 0 .../web/src/content/docs/docs/shortcuts.mdx | 0 .../web/src/content/docs/docs/themes.mdx | 0 .../web/src/content/docs/index.mdx | 0 .../web/src/pages/s/index.astro | 0 .../web/src/styles/custom.css | 0 {app/packages => packages}/web/sst-env.d.ts | 0 {app/packages => packages}/web/tsconfig.json | 0 pkg/client/gen/openapi.json | 898 -------- pkg/client/generated-client.go | 1953 ----------------- app/sst-env.d.ts => sst-env.d.ts | 0 app/sst.config.ts => sst.config.ts | 0 app/tsconfig.json => tsconfig.json | 0 178 files changed, 765 insertions(+), 3382 deletions(-) delete mode 100644 CONTEXT.md delete mode 100644 app/.gitignore rename app/bun.lock => bun.lock (85%) rename {app/infra => infra}/app.ts (100%) delete mode 100644 js/bun.lock rename app/package.json => package.json (96%) rename {app/packages => packages}/function/package.json (100%) rename {app/packages => packages}/function/src/api.ts (99%) rename {app/packages => packages}/function/sst-env.d.ts (100%) rename {app/packages => packages}/function/tsconfig.json (100%) rename {js => packages/opencode}/.gitignore (100%) rename {js => packages/opencode}/README.md (100%) create mode 100644 packages/opencode/bin/opencode.mjs rename {js => packages/opencode}/package.json (74%) rename {js => packages/opencode}/scrap.ts (100%) create mode 100755 packages/opencode/script/release.ts rename {js => packages/opencode}/src/app/app.ts (100%) rename {js => packages/opencode}/src/app/path.ts (100%) rename {js => packages/opencode}/src/bun/index.ts (100%) rename {js => packages/opencode}/src/bus/index.ts (100%) rename {js => packages/opencode}/src/config/config.ts (100%) rename {js => packages/opencode}/src/global/index.ts (100%) rename {js => packages/opencode}/src/id/id.ts (100%) rename {js => packages/opencode}/src/index.ts (52%) rename {js => packages/opencode}/src/llm/llm.ts (73%) rename {js => packages/opencode}/src/lsp/client.ts (100%) rename {js => packages/opencode}/src/lsp/index.ts (100%) rename {js => packages/opencode}/src/lsp/language.ts (100%) rename {js => packages/opencode}/src/provider/provider.ts (100%) rename {js => packages/opencode}/src/server/server.ts (100%) rename {js => packages/opencode}/src/session/message.ts (100%) rename {js => packages/opencode}/src/session/prompt/anthropic.txt (100%) rename {js => packages/opencode}/src/session/prompt/summarize.txt (100%) rename {js => packages/opencode}/src/session/prompt/title.txt (100%) rename {js => packages/opencode}/src/session/session.ts (100%) rename {js => packages/opencode}/src/share/share.ts (100%) rename {js => packages/opencode}/src/storage/storage.ts (100%) rename {js => packages/opencode}/src/tool/bash.ts (100%) rename {js => packages/opencode}/src/tool/edit.ts (100%) rename {js => packages/opencode}/src/tool/fetch.ts (100%) rename {js => packages/opencode}/src/tool/glob.ts (100%) rename {js => packages/opencode}/src/tool/grep.ts (100%) rename {js => packages/opencode}/src/tool/index.ts (100%) rename {js => packages/opencode}/src/tool/ls.ts (100%) rename {js => packages/opencode}/src/tool/lsp-diagnostics.ts (100%) rename {js => packages/opencode}/src/tool/lsp-hover.ts (100%) rename {js => packages/opencode}/src/tool/patch.ts (100%) rename {js => packages/opencode}/src/tool/tool.ts (100%) rename {js => packages/opencode}/src/tool/util/file-times.ts (100%) rename {js => packages/opencode}/src/tool/view.ts (100%) rename {js => packages/opencode}/src/util/context.ts (100%) rename {js => packages/opencode}/src/util/event.ts (100%) rename {js => packages/opencode}/src/util/log.ts (100%) rename {js => packages/opencode}/src/util/scrap.ts (100%) rename {js => packages/opencode}/test/tool/__snapshots__/tool.test.ts.snap (100%) rename {js => packages/opencode}/test/tool/tool.test.ts (100%) rename {js => packages/opencode}/tsconfig.json (100%) rename .goreleaser.yml => packages/tui/.goreleaser.yml (100%) create mode 100644 packages/tui/app.log rename {cmd => packages/tui/cmd}/root.go (100%) rename go.mod => packages/tui/go.mod (100%) rename go.sum => packages/tui/go.sum (100%) rename {internal => packages/tui/internal}/completions/files-folders.go (100%) rename {internal => packages/tui/internal}/config/config.go (100%) rename {internal => packages/tui/internal}/config/init.go (100%) rename {internal => packages/tui/internal}/diff/diff.go (100%) rename {internal => packages/tui/internal}/diff/diff_test.go (100%) rename {internal => packages/tui/internal}/diff/patch.go (100%) rename {internal => packages/tui/internal}/fileutil/fileutil.go (100%) rename {internal => packages/tui/internal}/format/format.go (100%) rename {internal => packages/tui/internal}/format/format_test.go (100%) rename {internal => packages/tui/internal}/pubsub/broker.go (100%) rename {internal => packages/tui/internal}/pubsub/broker_test.go (100%) rename {internal => packages/tui/internal}/pubsub/events.go (100%) rename {internal => packages/tui/internal}/status/status.go (100%) rename {internal => packages/tui/internal}/tui/app/app.go (100%) rename {internal => packages/tui/internal}/tui/app/bridge.go (100%) rename {internal => packages/tui/internal}/tui/app/interfaces.go (100%) rename {internal => packages/tui/internal}/tui/components/chat/chat.go (100%) rename {internal => packages/tui/internal}/tui/components/chat/editor.go (100%) rename {internal => packages/tui/internal}/tui/components/chat/message.go (100%) rename {internal => packages/tui/internal}/tui/components/chat/messages.go (100%) rename {internal => packages/tui/internal}/tui/components/chat/sidebar.go (100%) rename {internal => packages/tui/internal}/tui/components/core/status.go (100%) rename {internal => packages/tui/internal}/tui/components/dialog/arguments.go (100%) rename {internal => packages/tui/internal}/tui/components/dialog/commands.go (100%) rename {internal => packages/tui/internal}/tui/components/dialog/complete.go (100%) rename {internal => packages/tui/internal}/tui/components/dialog/custom_commands.go (100%) rename {internal => packages/tui/internal}/tui/components/dialog/custom_commands_test.go (100%) rename {internal => packages/tui/internal}/tui/components/dialog/filepicker.go (100%) rename {internal => packages/tui/internal}/tui/components/dialog/help.go (100%) rename {internal => packages/tui/internal}/tui/components/dialog/init.go (100%) rename {internal => packages/tui/internal}/tui/components/dialog/models.go (100%) rename {internal => packages/tui/internal}/tui/components/dialog/permission.go (100%) rename {internal => packages/tui/internal}/tui/components/dialog/quit.go (100%) rename {internal => packages/tui/internal}/tui/components/dialog/session.go (100%) rename {internal => packages/tui/internal}/tui/components/dialog/theme.go (100%) rename {internal => packages/tui/internal}/tui/components/dialog/tools.go (100%) rename {internal => packages/tui/internal}/tui/components/qr/qr.go (100%) rename {internal => packages/tui/internal}/tui/components/spinner/spinner.go (100%) rename {internal => packages/tui/internal}/tui/components/spinner/spinner_test.go (100%) rename {internal => packages/tui/internal}/tui/components/util/simple-list.go (100%) rename {internal => packages/tui/internal}/tui/image/clipboard_unix.go (100%) rename {internal => packages/tui/internal}/tui/image/clipboard_windows.go (100%) rename {internal => packages/tui/internal}/tui/image/images.go (100%) rename {internal => packages/tui/internal}/tui/layout/container.go (100%) rename {internal => packages/tui/internal}/tui/layout/layout.go (100%) rename {internal => packages/tui/internal}/tui/layout/overlay.go (100%) rename {internal => packages/tui/internal}/tui/layout/split.go (100%) rename {internal => packages/tui/internal}/tui/page/chat.go (100%) rename {internal => packages/tui/internal}/tui/page/page.go (100%) rename {internal => packages/tui/internal}/tui/state/state.go (100%) rename {internal => packages/tui/internal}/tui/styles/background.go (100%) rename {internal => packages/tui/internal}/tui/styles/icons.go (100%) rename {internal => packages/tui/internal}/tui/styles/markdown.go (100%) rename {internal => packages/tui/internal}/tui/styles/styles.go (100%) rename {internal => packages/tui/internal}/tui/theme/ayu.go (100%) rename {internal => packages/tui/internal}/tui/theme/catppuccin.go (100%) rename {internal => packages/tui/internal}/tui/theme/dracula.go (100%) rename {internal => packages/tui/internal}/tui/theme/flexoki.go (100%) rename {internal => packages/tui/internal}/tui/theme/gruvbox.go (100%) rename {internal => packages/tui/internal}/tui/theme/manager.go (100%) rename {internal => packages/tui/internal}/tui/theme/monokai.go (100%) rename {internal => packages/tui/internal}/tui/theme/onedark.go (100%) rename {internal => packages/tui/internal}/tui/theme/opencode.go (100%) rename {internal => packages/tui/internal}/tui/theme/theme.go (100%) rename {internal => packages/tui/internal}/tui/theme/theme_test.go (100%) rename {internal => packages/tui/internal}/tui/theme/tokyonight.go (100%) rename {internal => packages/tui/internal}/tui/theme/tron.go (100%) rename {internal => packages/tui/internal}/tui/tui.go (100%) rename {internal => packages/tui/internal}/tui/util/util.go (100%) rename {internal => packages/tui/internal}/version/version.go (100%) rename main.go => packages/tui/main.go (100%) rename {pkg => packages/tui/pkg}/client/.gitignore (100%) rename {pkg => packages/tui/pkg}/client/client.go (100%) rename {pkg => packages/tui/pkg}/client/event.go (100%) create mode 100644 packages/tui/pkg/tui/theme/opencode.go rename {app/packages => packages}/web/.gitignore (100%) rename {app/packages => packages}/web/README.md (100%) rename {app/packages => packages}/web/astro.config.mjs (100%) rename {app/packages => packages}/web/package.json (96%) rename {app/packages => packages}/web/public/favicon.svg (100%) rename {app/packages => packages}/web/public/social-share.png (100%) rename {app/packages => packages}/web/src/assets/lander/check.svg (100%) rename {app/packages => packages}/web/src/assets/lander/copy.svg (100%) rename {app/packages => packages}/web/src/assets/logo-dark.svg (100%) rename {app/packages => packages}/web/src/assets/logo-light.svg (100%) rename {app/packages => packages}/web/src/components/CodeBlock.tsx (100%) rename {app/packages => packages}/web/src/components/DiffView.tsx (100%) rename {app/packages => packages}/web/src/components/Header.astro (100%) rename {app/packages => packages}/web/src/components/Hero.astro (100%) rename {app/packages => packages}/web/src/components/Lander.astro (100%) rename {app/packages => packages}/web/src/components/Share.tsx (100%) rename {app/packages => packages}/web/src/components/diffview.module.css (100%) rename {app/packages => packages}/web/src/components/icons/custom.tsx (100%) rename {app/packages => packages}/web/src/components/icons/index.tsx (100%) rename {app/packages => packages}/web/src/components/share.module.css (100%) rename {app/packages => packages}/web/src/content.config.ts (100%) rename {app/packages => packages}/web/src/content/docs/docs/cli.mdx (100%) rename {app/packages => packages}/web/src/content/docs/docs/config.mdx (100%) rename {app/packages => packages}/web/src/content/docs/docs/index.mdx (100%) rename {app/packages => packages}/web/src/content/docs/docs/lsp-servers.mdx (100%) rename {app/packages => packages}/web/src/content/docs/docs/mcp-servers.mdx (100%) rename {app/packages => packages}/web/src/content/docs/docs/models.mdx (100%) rename {app/packages => packages}/web/src/content/docs/docs/shortcuts.mdx (100%) rename {app/packages => packages}/web/src/content/docs/docs/themes.mdx (100%) rename {app/packages => packages}/web/src/content/docs/index.mdx (100%) rename {app/packages => packages}/web/src/pages/s/index.astro (100%) rename {app/packages => packages}/web/src/styles/custom.css (100%) rename {app/packages => packages}/web/sst-env.d.ts (100%) rename {app/packages => packages}/web/tsconfig.json (100%) delete mode 100644 pkg/client/gen/openapi.json delete mode 100644 pkg/client/generated-client.go rename app/sst-env.d.ts => sst-env.d.ts (100%) rename app/sst.config.ts => sst.config.ts (100%) rename app/tsconfig.json => tsconfig.json (100%) diff --git a/.gitignore b/.gitignore index e51e0598..32cb0b4d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,46 +1,3 @@ -# Binaries for programs and plugins -*.exe -*.exe~ -*.dll -*.so -*.dylib - -# Test binary, built with `go test -c` -*.test - -# Output of the go coverage tool, specifically when used with LiteIDE -*.out - -# Dependency directories (remove the comment below to include it) -# vendor/ - -# Go workspace file -go.work - -# IDE specific files -.idea/ -.vscode/ -*.swp -*.swo - -# OS specific files -.DS_Store -.DS_Store? -._* -.Spotlight-V100 -.Trashes -ehthumbs.db -Thumbs.db -*.log - -# Binary output directory -/bin/ -/dist/ - -# Local environment variables -.env -.env.local - -.opencode/ -# ignore locally built binary -opencode* +node_modules +.opencode +.sst diff --git a/CONTEXT.md b/CONTEXT.md deleted file mode 100644 index 42c02f15..00000000 --- a/CONTEXT.md +++ /dev/null @@ -1,24 +0,0 @@ -# OpenCode Development Context - -## Build Commands -- Build: `go build` -- Run: `go run main.go` -- Test: `go test ./...` -- Test single package: `go test ./internal/package/...` -- Test single test: `go test ./internal/package -run TestName` -- Verbose test: `go test -v ./...` -- Coverage: `go test -cover ./...` -- Lint: `go vet ./...` -- Format: `go fmt ./...` -- Build snapshot: `./scripts/snapshot` - -## Code Style -- Use Go 1.24+ features -- Follow standard Go formatting (gofmt) -- Use table-driven tests with t.Parallel() when possible -- Error handling: check errors immediately, return early -- Naming: CamelCase for exported, camelCase for unexported -- Imports: standard library first, then external, then internal -- Use context.Context for cancellation and timeouts -- Prefer interfaces for dependencies to enable testing -- Use testify for assertions in tests \ No newline at end of file diff --git a/LICENSE b/LICENSE index e6208d77..28734bfd 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2025 Kujtim Hoxha +Copyright (c) 2025 OpenCode Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/app/.gitignore b/app/.gitignore deleted file mode 100644 index d8beb623..00000000 --- a/app/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.env -node_modules -.sst \ No newline at end of file diff --git a/app/bun.lock b/bun.lock similarity index 85% rename from app/bun.lock rename to bun.lock index 91b28d22..d560f5ff 100644 --- a/app/bun.lock +++ b/bun.lock @@ -18,8 +18,37 @@ "@cloudflare/workers-types": "^4.20250522.0", }, }, + "packages/opencode": { + "name": "opencode", + "version": "0.0.0", + "dependencies": { + "@flystorage/file-storage": "^1.1.0", + "@flystorage/local-fs": "^1.1.0", + "@hono/zod-validator": "^0.5.0", + "ai": "5.0.0-alpha.7", + "cac": "^6.7.14", + "decimal.js": "^10.5.0", + "env-paths": "^3.0.0", + "hono": "^4.7.10", + "hono-openapi": "^0.4.8", + "jsdom": "^26.1.0", + "remeda": "^2.22.3", + "ts-lsp-client": "^1.0.3", + "turndown": "^7.2.0", + "vscode-jsonrpc": "^8.2.1", + "vscode-languageclient": "8", + "zod": "^3.25.3", + "zod-openapi": "^4.2.4", + }, + "devDependencies": { + "@tsconfig/bun": "^1.0.7", + "@types/bun": "latest", + "@types/jsdom": "^21.1.7", + "@types/turndown": "^5.0.5", + }, + }, "packages/web": { - "name": "web", + "name": "@opencode/web", "version": "0.0.1", "dependencies": { "@astrojs/markdown-remark": "^6.3.1", @@ -48,12 +77,18 @@ "zod": "3.24.2", }, "packages": { + "@ai-sdk/gateway": ["@ai-sdk/gateway@1.0.0-alpha.7", "", { "dependencies": { "@ai-sdk/provider": "2.0.0-alpha.7", "@ai-sdk/provider-utils": "3.0.0-alpha.7" }, "peerDependencies": { "zod": "^3.24.0" } }, "sha512-gz1V165eiJnQIexfLyKm11vimrmQ3zdcJhPpjeLFmDU9wrvZwLuklfZ0WgfYSb+EjiP1cKypwt6JSGvWkfKIAQ=="], + "@ai-sdk/provider": ["@ai-sdk/provider@2.0.0-canary.14", "", { "dependencies": { "json-schema": "^0.4.0" } }, "sha512-aN83hjdjDCyhkOdulwMsxmGb91owS+bCSe6FWg1TEwusNM35vv020nY//Gid/0NdIpVkZJGzAajgCWrnno2zzA=="], "@ai-sdk/provider-utils": ["@ai-sdk/provider-utils@3.0.0-canary.19", "", { "dependencies": { "@ai-sdk/provider": "2.0.0-canary.14", "@standard-schema/spec": "^1.0.0", "zod-to-json-schema": "^3.24.1" }, "peerDependencies": { "zod": "^3.23.8" } }, "sha512-4IJw6/wkWYLYfFYPvCs5go0L/sBRZsIRW1l/R6LniF4WjAH2+R4dMbESgBmzx+Z2+W+W6gFeK8dnQByn7vaA/w=="], "@ampproject/remapping": ["@ampproject/remapping@2.3.0", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="], + "@apidevtools/json-schema-ref-parser": ["@apidevtools/json-schema-ref-parser@11.9.3", "", { "dependencies": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.15", "js-yaml": "^4.1.0" } }, "sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ=="], + + "@asamuzakjp/css-color": ["@asamuzakjp/css-color@3.2.0", "", { "dependencies": { "@csstools/css-calc": "^2.1.3", "@csstools/css-color-parser": "^3.0.9", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "lru-cache": "^10.4.3" } }, "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw=="], + "@astrojs/compiler": ["@astrojs/compiler@2.12.0", "", {}, "sha512-7bCjW6tVDpUurQLeKBUN9tZ5kSv5qYrGmcn0sG0IwacL7isR2ZbyyA3AdZ4uxsuUFOS2SlgReTH7wkxO6zpqWA=="], "@astrojs/internal-helpers": ["@astrojs/internal-helpers@0.6.1", "", {}, "sha512-l5Pqf6uZu31aG+3Lv8nl/3s4DbUzdlxTWDof4pEpto6GUJNhhCbelVi9dEyurOVyqaelwmS9oSyOWOENSfgo9A=="], @@ -112,6 +147,16 @@ "@cloudflare/workers-types": ["@cloudflare/workers-types@4.20250529.0", "", {}, "sha512-l6tVFpI6MUChMD0wK+Jhikb+aCbrmIR58CVpV/BhRT4THjl+nFhTT5N5ZqX42FDXdE3hCPLjueBMpPRhPUOB2A=="], + "@csstools/color-helpers": ["@csstools/color-helpers@5.0.2", "", {}, "sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA=="], + + "@csstools/css-calc": ["@csstools/css-calc@2.1.4", "", { "peerDependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4" } }, "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ=="], + + "@csstools/css-color-parser": ["@csstools/css-color-parser@3.0.10", "", { "dependencies": { "@csstools/color-helpers": "^5.0.2", "@csstools/css-calc": "^2.1.4" }, "peerDependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4" } }, "sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg=="], + + "@csstools/css-parser-algorithms": ["@csstools/css-parser-algorithms@3.0.5", "", { "peerDependencies": { "@csstools/css-tokenizer": "^3.0.4" } }, "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ=="], + + "@csstools/css-tokenizer": ["@csstools/css-tokenizer@3.0.4", "", {}, "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw=="], + "@ctrl/tinycolor": ["@ctrl/tinycolor@4.1.0", "", {}, "sha512-WyOx8cJQ+FQus4Mm4uPIZA64gbk3Wxh0so5Lcii0aJifqwoVOlfFtorjLE0Hen4OYyHZMXDWqMmaQemBhgxFRQ=="], "@emnapi/runtime": ["@emnapi/runtime@1.4.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ=="], @@ -174,8 +219,18 @@ "@expressive-code/plugin-text-markers": ["@expressive-code/plugin-text-markers@0.41.2", "", { "dependencies": { "@expressive-code/core": "^0.41.2" } }, "sha512-JFWBz2qYxxJOJkkWf96LpeolbnOqJY95TvwYc0hXIHf9oSWV0h0SY268w/5N3EtQaD9KktzDE+VIVwb9jdb3nw=="], + "@flystorage/dynamic-import": ["@flystorage/dynamic-import@1.0.0", "", {}, "sha512-CIbIUrBdaPFyKnkVBaqzksvzNtsMSXITR/G/6zlil3MBnPFq2LX+X4Mv5p2XOmv/3OulFs/ff2SNb+5dc2Twtg=="], + + "@flystorage/file-storage": ["@flystorage/file-storage@1.1.0", "", {}, "sha512-25Gd5EsXDmhHrK5orpRuVqebQms1Cm9m5ACMZ0sVDX+Sbl1V0G88CbcWt7mEoWRYLvQ1U072htqg6Sav76ZlVA=="], + + "@flystorage/local-fs": ["@flystorage/local-fs@1.1.0", "", { "dependencies": { "@flystorage/dynamic-import": "^1.0.0", "@flystorage/file-storage": "^1.1.0", "file-type": "^20.5.0", "mime-types": "^3.0.1" } }, "sha512-dbErRhqmCv2UF0zPdeH7iVWuVeTWAJHuJD/mXDe2V370/SL7XIvdE3ditBHWC+1SzBKXJ0lkykOenwlum+oqIA=="], + "@fontsource/ibm-plex-mono": ["@fontsource/ibm-plex-mono@5.2.5", "", {}, "sha512-G09N3GfuT9qj3Ax2FDZvKqZttzM3v+cco2l8uXamhKyXLdmlaUDH5o88/C3vtTHj2oT7yRKsvxz9F+BXbWKMYA=="], + "@hapi/bourne": ["@hapi/bourne@2.1.0", "", {}, "sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q=="], + + "@hono/zod-validator": ["@hono/zod-validator@0.5.0", "", { "peerDependencies": { "hono": ">=3.9.0", "zod": "^3.19.1" } }, "sha512-ds5bW6DCgAnNHP33E3ieSbaZFd5dkV52ZjyaXtGoR06APFrCtzAsKZxTHwOrJNBdXsi0e5wNwo5L4nVEVnJUdg=="], + "@img/sharp-darwin-arm64": ["@img/sharp-darwin-arm64@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.0.4" }, "os": "darwin", "cpu": "arm64" }, "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ=="], "@img/sharp-darwin-x64": ["@img/sharp-darwin-x64@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-x64": "1.0.4" }, "os": "darwin", "cpu": "x64" }, "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q=="], @@ -224,12 +279,18 @@ "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.25", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ=="], + "@jsdevtools/ono": ["@jsdevtools/ono@7.1.3", "", {}, "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg=="], + "@mdx-js/mdx": ["@mdx-js/mdx@3.1.0", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdx": "^2.0.0", "collapse-white-space": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "estree-util-scope": "^1.0.0", "estree-walker": "^3.0.0", "hast-util-to-jsx-runtime": "^2.0.0", "markdown-extensions": "^2.0.0", "recma-build-jsx": "^1.0.0", "recma-jsx": "^1.0.0", "recma-stringify": "^1.0.0", "rehype-recma": "^1.0.0", "remark-mdx": "^3.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.0.0", "source-map": "^0.7.0", "unified": "^11.0.0", "unist-util-position-from-estree": "^2.0.0", "unist-util-stringify-position": "^4.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw=="], + "@mixmark-io/domino": ["@mixmark-io/domino@2.2.0", "", {}, "sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw=="], + "@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.6.1", "", { "dependencies": { "content-type": "^1.0.5", "cors": "^2.8.5", "eventsource": "^3.0.2", "express": "^5.0.1", "express-rate-limit": "^7.5.0", "pkce-challenge": "^4.1.0", "raw-body": "^3.0.0", "zod": "^3.23.8", "zod-to-json-schema": "^3.24.1" } }, "sha512-oxzMzYCkZHMntzuyerehK3fV6A2Kwh5BD6CGEJSVDU2QNEhfLOptf2X7esQgaHZXHZY0oHmMsOtIDLP71UJXgA=="], "@opencode/function": ["@opencode/function@workspace:packages/function"], + "@opencode/web": ["@opencode/web@workspace:packages/web"], + "@opentelemetry/api": ["@opentelemetry/api@1.9.0", "", {}, "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg=="], "@oslojs/encoding": ["@oslojs/encoding@1.1.0", "", {}, "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ=="], @@ -308,6 +369,10 @@ "@swc/helpers": ["@swc/helpers@0.5.17", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A=="], + "@tokenizer/inflate": ["@tokenizer/inflate@0.2.7", "", { "dependencies": { "debug": "^4.4.0", "fflate": "^0.8.2", "token-types": "^6.0.0" } }, "sha512-MADQgmZT1eKjp06jpI2yozxaU9uVs4GzzgSL+uEq7bVcJ9V1ZXQkeGNql1fsSI0gMy1vhvNTNbUqrx+pZfJVmg=="], + + "@tokenizer/token": ["@tokenizer/token@0.3.0", "", {}, "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A=="], + "@tsconfig/bun": ["@tsconfig/bun@1.0.7", "", {}, "sha512-udGrGJBNQdXGVulehc1aWT73wkR9wdaGBtB6yL70RJsqwW/yJhIg6ZbRlPOfIUiFNrnBuYLBi9CSmMKfDC7dvA=="], "@tsconfig/node22": ["@tsconfig/node22@22.0.0", "", {}, "sha512-twLQ77zevtxobBOD4ToAtVmuYrpeYUh3qh+TEp+08IWhpsrIflVHqQ1F1CiPxQGL7doCdBIOOCF+1Tm833faNg=="], @@ -320,6 +385,8 @@ "@types/babel__traverse": ["@types/babel__traverse@7.20.7", "", { "dependencies": { "@babel/types": "^7.20.7" } }, "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng=="], + "@types/bun": ["@types/bun@1.2.15", "", { "dependencies": { "bun-types": "1.2.15" } }, "sha512-U1ljPdBEphF0nw1MIk0hI7kPg7dFdPyM7EenHsp6W5loNHl7zqy6JQf/RKCgnUn2KDzUpkBwHPnEJEjII594bA=="], + "@types/debug": ["@types/debug@4.1.12", "", { "dependencies": { "@types/ms": "*" } }, "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ=="], "@types/estree": ["@types/estree@1.0.7", "", {}, "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ=="], @@ -332,6 +399,10 @@ "@types/js-yaml": ["@types/js-yaml@4.0.9", "", {}, "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg=="], + "@types/jsdom": ["@types/jsdom@21.1.7", "", { "dependencies": { "@types/node": "*", "@types/tough-cookie": "*", "parse5": "^7.0.0" } }, "sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA=="], + + "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], + "@types/luxon": ["@types/luxon@3.6.2", "", {}, "sha512-R/BdP7OxEMc44l2Ex5lSXHoIXTB2JLNa3y2QISIbr58U/YcsffyQrYW//hZSdrfxrjRZj3GcUoxMPGdO8gSYuw=="], "@types/mdast": ["@types/mdast@4.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="], @@ -346,6 +417,10 @@ "@types/sax": ["@types/sax@1.2.7", "", { "dependencies": { "@types/node": "*" } }, "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A=="], + "@types/tough-cookie": ["@types/tough-cookie@4.0.5", "", {}, "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA=="], + + "@types/turndown": ["@types/turndown@5.0.5", "", {}, "sha512-TL2IgGgc7B5j78rIccBtlYAnkuv8nUQqhQc+DSYV5j9Be9XOcm/SKOVRuA47xAVI3680Tk9B1d8flK2GWT2+4w=="], + "@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], "@ungap/structured-clone": ["@ungap/structured-clone@1.3.0", "", {}, "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g=="], @@ -356,6 +431,8 @@ "acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], + "agent-base": ["agent-base@7.1.3", "", {}, "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw=="], + "ai": ["ai@5.0.0-canary.24", "", { "dependencies": { "@ai-sdk/provider": "2.0.0-canary.14", "@ai-sdk/provider-utils": "3.0.0-canary.19", "@opentelemetry/api": "1.9.0" }, "peerDependencies": { "zod": "^3.23.8" } }, "sha512-vqaMmM6XFwjz9mNjox9ehjkWFwXbSchhor5MiqgKZ1qRyoTvoYzAt6oCZwg5kN5jXNQ3rZVuyE8N3BbPbwma2Q=="], "ansi-align": ["ansi-align@3.0.1", "", { "dependencies": { "string-width": "^4.1.0" } }, "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w=="], @@ -370,6 +447,8 @@ "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + "args": ["args@5.0.3", "", { "dependencies": { "camelcase": "5.0.0", "chalk": "2.4.2", "leven": "2.1.0", "mri": "1.1.4" } }, "sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA=="], + "aria-query": ["aria-query@5.3.2", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="], "array-iterate": ["array-iterate@2.0.1", "", {}, "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg=="], @@ -380,6 +459,8 @@ "astro-expressive-code": ["astro-expressive-code@0.41.2", "", { "dependencies": { "rehype-expressive-code": "^0.41.2" }, "peerDependencies": { "astro": "^4.0.0-beta || ^5.0.0-beta || ^3.3.0" } }, "sha512-HN0jWTnhr7mIV/2e6uu4PPRNNo/k4UEgTLZqbp3MrHU+caCARveG2yZxaZVBmxyiVdYqW5Pd3u3n2zjnshixbw=="], + "atomic-sleep": ["atomic-sleep@1.0.0", "", {}, "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ=="], + "available-typed-arrays": ["available-typed-arrays@1.0.7", "", { "dependencies": { "possible-typed-array-names": "^1.0.0" } }, "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ=="], "aws-sdk": ["aws-sdk@2.1692.0", "", { "dependencies": { "buffer": "4.9.2", "events": "1.1.1", "ieee754": "1.1.13", "jmespath": "0.16.0", "querystring": "0.2.0", "sax": "1.2.1", "url": "0.10.3", "util": "^0.12.4", "uuid": "8.0.0", "xml2js": "0.6.2" } }, "sha512-x511uiJ/57FIsbgUe5csJ13k3uzu25uWQE+XqfBis/sB0SFoiElJWXRkgEAUh0U6n40eT3ay5Ue4oPkRMu1LYw=="], @@ -396,6 +477,8 @@ "bail": ["bail@2.0.2", "", {}, "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="], + "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + "bare-events": ["bare-events@2.5.4", "", {}, "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA=="], "bare-fs": ["bare-fs@4.1.5", "", { "dependencies": { "bare-events": "^2.5.4", "bare-path": "^3.0.0", "bare-stream": "^2.6.4" }, "peerDependencies": { "bare-buffer": "*" }, "optionalPeers": ["bare-buffer"] }, "sha512-1zccWBMypln0jEE05LzZt+V/8y8AQsQQqxtklqaIyg5nu6OAYFhZxPXinJTSG+kU5qyNmeLgcn9AW7eHiCHVLA=="], @@ -424,14 +507,20 @@ "boxen": ["boxen@8.0.1", "", { "dependencies": { "ansi-align": "^3.0.1", "camelcase": "^8.0.0", "chalk": "^5.3.0", "cli-boxes": "^3.0.0", "string-width": "^7.2.0", "type-fest": "^4.21.0", "widest-line": "^5.0.0", "wrap-ansi": "^9.0.0" } }, "sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw=="], + "brace-expansion": ["brace-expansion@2.0.1", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="], + "brotli": ["brotli@1.3.3", "", { "dependencies": { "base64-js": "^1.1.2" } }, "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg=="], "browserslist": ["browserslist@4.25.0", "", { "dependencies": { "caniuse-lite": "^1.0.30001718", "electron-to-chromium": "^1.5.160", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA=="], "buffer": ["buffer@4.9.2", "", { "dependencies": { "base64-js": "^1.0.2", "ieee754": "^1.1.4", "isarray": "^1.0.0" } }, "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg=="], + "bun-types": ["bun-types@1.2.15", "", { "dependencies": { "@types/node": "*" } }, "sha512-NarRIaS+iOaQU1JPfyKhZm4AsUOrwUOqRNHY0XxI8GI8jYxiLXLcdjYMG9UKS+fwWasc1uw1htV9AX24dD+p4w=="], + "bytes": ["bytes@3.1.2", "", {}, "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="], + "cac": ["cac@6.7.14", "", {}, "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ=="], + "call-bind": ["call-bind@1.0.8", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", "get-intrinsic": "^1.2.4", "set-function-length": "^1.2.2" } }, "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww=="], "call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="], @@ -504,10 +593,18 @@ "cssesc": ["cssesc@3.0.0", "", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="], + "cssstyle": ["cssstyle@4.3.1", "", { "dependencies": { "@asamuzakjp/css-color": "^3.1.2", "rrweb-cssom": "^0.8.0" } }, "sha512-ZgW+Jgdd7i52AaLYCriF8Mxqft0gD/R9i9wi6RWBhs1pqdPEzPjym7rvRKi397WmQFf3SlyUsszhw+VVCbx79Q=="], + "csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="], + "data-urls": ["data-urls@5.0.0", "", { "dependencies": { "whatwg-mimetype": "^4.0.0", "whatwg-url": "^14.0.0" } }, "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg=="], + + "dateformat": ["dateformat@4.6.3", "", {}, "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA=="], + "debug": ["debug@4.4.1", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ=="], + "decimal.js": ["decimal.js@10.5.0", "", {}, "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw=="], + "decode-named-character-reference": ["decode-named-character-reference@1.1.0", "", { "dependencies": { "character-entities": "^2.0.0" } }, "sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w=="], "decompress-response": ["decompress-response@6.0.0", "", { "dependencies": { "mimic-response": "^3.1.0" } }, "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ=="], @@ -544,6 +641,8 @@ "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], + "duplexify": ["duplexify@4.1.3", "", { "dependencies": { "end-of-stream": "^1.4.1", "inherits": "^2.0.3", "readable-stream": "^3.1.1", "stream-shift": "^1.0.2" } }, "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA=="], + "ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="], "electron-to-chromium": ["electron-to-chromium@1.5.161", "", {}, "sha512-hwtetwfKNZo/UlwHIVBlKZVdy7o8bIZxxKs0Mv/ROPiQQQmDgdm5a+KvKtBsxM8ZjFzTaCeLoodZ8jiBE3o9rA=="], @@ -556,6 +655,8 @@ "entities": ["entities@6.0.0", "", {}, "sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw=="], + "env-paths": ["env-paths@3.0.0", "", {}, "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A=="], + "es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="], "es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="], @@ -574,7 +675,7 @@ "escape-html": ["escape-html@1.0.3", "", {}, "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="], - "escape-string-regexp": ["escape-string-regexp@5.0.0", "", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="], + "escape-string-regexp": ["escape-string-regexp@1.0.5", "", {}, "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="], "estree-util-attach-comments": ["estree-util-attach-comments@3.0.0", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw=="], @@ -614,8 +715,16 @@ "fast-fifo": ["fast-fifo@1.3.2", "", {}, "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ=="], + "fast-redact": ["fast-redact@3.5.0", "", {}, "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A=="], + + "fast-safe-stringify": ["fast-safe-stringify@2.1.1", "", {}, "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="], + "fdir": ["fdir@6.4.5", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-4BG7puHpVsIYxZUbiUE3RqGloLaSSwzYie5jvasC4LWuBWzZawynvYouhjbQKw2JuIGYdm0DzIxl8iVidKlUEw=="], + "fflate": ["fflate@0.8.2", "", {}, "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A=="], + + "file-type": ["file-type@20.5.0", "", { "dependencies": { "@tokenizer/inflate": "^0.2.6", "strtok3": "^10.2.0", "token-types": "^6.0.0", "uint8array-extras": "^1.4.0" } }, "sha512-BfHZtG/l9iMm4Ecianu7P8HRD2tBHLtjXinm4X62XBOYzi7CYA7jyqfJzOvXHqzVrVPYqBo2/GvbARMaaJkKVg=="], + "finalhandler": ["finalhandler@2.1.0", "", { "dependencies": { "debug": "^4.4.0", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "on-finished": "^2.4.1", "parseurl": "^1.3.3", "statuses": "^2.0.1" } }, "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q=="], "flattie": ["flattie@1.1.1", "", {}, "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ=="], @@ -654,6 +763,8 @@ "h3": ["h3@1.15.3", "", { "dependencies": { "cookie-es": "^1.2.2", "crossws": "^0.3.4", "defu": "^6.1.4", "destr": "^2.0.5", "iron-webcrypto": "^1.2.1", "node-mock-http": "^1.0.0", "radix3": "^1.1.2", "ufo": "^1.6.1", "uncrypto": "^0.1.3" } }, "sha512-z6GknHqyX0h9aQaTx22VZDf6QyZn+0Nh+Ym8O/u0SGSkyF5cuTJYKlc8MkzW3Nzf9LE1ivcpmYC3FUGpywhuUQ=="], + "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], + "has-property-descriptors": ["has-property-descriptors@1.0.2", "", { "dependencies": { "es-define-property": "^1.0.0" } }, "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg=="], "has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="], @@ -704,7 +815,11 @@ "hastscript": ["hastscript@9.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-parse-selector": "^4.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0" } }, "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w=="], - "hono": ["hono@4.7.4", "", {}, "sha512-Pst8FuGqz3L7tFF+u9Pu70eI0xa5S3LPUmrNd5Jm8nTHze9FxLTK9Kaj5g/k4UcwuJSXTP65SyHOPLrffpcAJg=="], + "hono": ["hono@4.7.10", "", {}, "sha512-QkACju9MiN59CKSY5JsGZCYmPZkA6sIW6OFCUp7qDjZu6S6KHtJHhAc9Uy9mV9F8PJ1/HQ3ybZF2yjCa/73fvQ=="], + + "hono-openapi": ["hono-openapi@0.4.8", "", { "dependencies": { "json-schema-walker": "^2.0.0" }, "peerDependencies": { "@hono/arktype-validator": "^2.0.0", "@hono/effect-validator": "^1.2.0", "@hono/typebox-validator": "^0.2.0 || ^0.3.0", "@hono/valibot-validator": "^0.5.1", "@hono/zod-validator": "^0.4.1", "@sinclair/typebox": "^0.34.9", "@valibot/to-json-schema": "^1.0.0-beta.3", "arktype": "^2.0.0", "effect": "^3.11.3", "hono": "^4.6.13", "openapi-types": "^12.1.3", "valibot": "^1.0.0-beta.9", "zod": "^3.23.8", "zod-openapi": "^4.0.0" }, "optionalPeers": ["@hono/arktype-validator", "@hono/effect-validator", "@hono/typebox-validator", "@hono/valibot-validator", "@hono/zod-validator", "@sinclair/typebox", "@valibot/to-json-schema", "arktype", "effect", "hono", "valibot", "zod", "zod-openapi"] }, "sha512-LYr5xdtD49M7hEAduV1PftOMzuT8ZNvkyWfh1DThkLsIr4RkvDb12UxgIiFbwrJB6FLtFXLoOZL9x4IeDk2+VA=="], + + "html-encoding-sniffer": ["html-encoding-sniffer@4.0.0", "", { "dependencies": { "whatwg-encoding": "^3.1.1" } }, "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ=="], "html-entities": ["html-entities@2.3.3", "", {}, "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA=="], @@ -718,6 +833,10 @@ "http-errors": ["http-errors@2.0.0", "", { "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", "statuses": "2.0.1", "toidentifier": "1.0.1" } }, "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ=="], + "http-proxy-agent": ["http-proxy-agent@7.0.2", "", { "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" } }, "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig=="], + + "https-proxy-agent": ["https-proxy-agent@7.0.6", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "4" } }, "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw=="], + "i18next": ["i18next@23.16.8", "", { "dependencies": { "@babel/runtime": "^7.23.2" } }, "sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg=="], "iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="], @@ -760,6 +879,8 @@ "is-plain-obj": ["is-plain-obj@4.1.0", "", {}, "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg=="], + "is-potential-custom-element-name": ["is-potential-custom-element-name@1.0.1", "", {}, "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="], + "is-promise": ["is-promise@4.0.0", "", {}, "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ=="], "is-regex": ["is-regex@1.2.1", "", { "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g=="], @@ -776,20 +897,30 @@ "jose": ["jose@5.2.3", "", {}, "sha512-KUXdbctm1uHVL8BYhnyHkgp3zDX5KW8ZhAKVFEfUbU2P8Alpzjb+48hHvjOdQIyPshoblhzsuqOwEEAbtHVirA=="], + "joycon": ["joycon@3.1.1", "", {}, "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw=="], + "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], "js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="], + "jsdom": ["jsdom@26.1.0", "", { "dependencies": { "cssstyle": "^4.2.1", "data-urls": "^5.0.0", "decimal.js": "^10.5.0", "html-encoding-sniffer": "^4.0.0", "http-proxy-agent": "^7.0.2", "https-proxy-agent": "^7.0.6", "is-potential-custom-element-name": "^1.0.1", "nwsapi": "^2.2.16", "parse5": "^7.2.1", "rrweb-cssom": "^0.8.0", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^5.1.1", "w3c-xmlserializer": "^5.0.0", "webidl-conversions": "^7.0.0", "whatwg-encoding": "^3.1.1", "whatwg-mimetype": "^4.0.0", "whatwg-url": "^14.1.1", "ws": "^8.18.0", "xml-name-validator": "^5.0.0" }, "peerDependencies": { "canvas": "^3.0.0" }, "optionalPeers": ["canvas"] }, "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg=="], + "jsesc": ["jsesc@3.1.0", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], + "json-rpc-2.0": ["json-rpc-2.0@1.7.0", "", {}, "sha512-asnLgC1qD5ytP+fvBP8uL0rvj+l8P6iYICbzZ8dVxCpESffVjzA7KkYkbKCIbavs7cllwH1ZUaNtJwphdeRqpg=="], + "json-schema": ["json-schema@0.4.0", "", {}, "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="], + "json-schema-walker": ["json-schema-walker@2.0.0", "", { "dependencies": { "@apidevtools/json-schema-ref-parser": "^11.1.0", "clone": "^2.1.2" } }, "sha512-nXN2cMky0Iw7Af28w061hmxaPDaML5/bQD9nwm1lOoIKEGjHcRGxqWe4MfrkYThYAPjSUhmsp4bJNoLAyVn9Xw=="], + "json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], "kleur": ["kleur@4.1.5", "", {}, "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="], "klona": ["klona@2.0.6", "", {}, "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA=="], + "leven": ["leven@2.1.0", "", {}, "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA=="], + "longest-streak": ["longest-streak@3.1.0", "", {}, "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="], "lru-cache": ["lru-cache@6.0.0", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="], @@ -928,10 +1059,14 @@ "mimic-response": ["mimic-response@3.1.0", "", {}, "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="], + "minimatch": ["minimatch@5.1.6", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g=="], + "minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="], "mkdirp-classic": ["mkdirp-classic@0.5.3", "", {}, "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="], + "mri": ["mri@1.1.4", "", {}, "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w=="], + "mrmime": ["mrmime@2.0.1", "", {}, "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ=="], "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], @@ -962,6 +1097,8 @@ "nth-check": ["nth-check@2.1.1", "", { "dependencies": { "boolbase": "^1.0.0" } }, "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="], + "nwsapi": ["nwsapi@2.2.20", "", {}, "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA=="], + "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], "object-hash": ["object-hash@2.2.0", "", {}, "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw=="], @@ -974,6 +1111,8 @@ "oidc-token-hash": ["oidc-token-hash@5.1.0", "", {}, "sha512-y0W+X7Ppo7oZX6eovsRkuzcSM40Bicg2JEJkDJ4irIt1wsYAP5MLSNv+QAogO8xivMffw/9OvV3um1pxXgt1uA=="], + "on-exit-leak-free": ["on-exit-leak-free@0.2.0", "", {}, "sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg=="], + "on-finished": ["on-finished@2.4.1", "", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="], "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="], @@ -982,6 +1121,10 @@ "oniguruma-to-es": ["oniguruma-to-es@4.3.3", "", { "dependencies": { "oniguruma-parser": "^0.12.1", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } }, "sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg=="], + "openapi-types": ["openapi-types@12.1.3", "", {}, "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw=="], + + "opencode": ["opencode@workspace:packages/opencode"], + "opencontrol": ["opencontrol@0.0.6", "", { "dependencies": { "@modelcontextprotocol/sdk": "1.6.1", "@tsconfig/bun": "1.0.7", "hono": "4.7.4", "zod": "3.24.2", "zod-to-json-schema": "3.24.3" }, "bin": { "opencontrol": "bin/index.mjs" } }, "sha512-QeCrpOK5D15QV8kjnGVeD/BHFLwcVr+sn4T6KKmP0WAMs2pww56e4h+eOGHb5iPOufUQXbdbBKi6WV2kk7tefQ=="], "openid-client": ["openid-client@5.6.4", "", { "dependencies": { "jose": "^4.15.4", "lru-cache": "^6.0.0", "object-hash": "^2.2.0", "oidc-token-hash": "^5.0.3" } }, "sha512-T1h3B10BRPKfcObdBklX639tVz+xh34O7GjofqrqiAQdm7eHsQ00ih18x6wuJ/E6FxdtS2u3FmUGPDeEcMwzNA=="], @@ -1008,10 +1151,20 @@ "path-to-regexp": ["path-to-regexp@8.2.0", "", {}, "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ=="], + "peek-readable": ["peek-readable@7.0.0", "", {}, "sha512-nri2TO5JE3/mRryik9LlHFT53cgHfRK0Lt0BAZQXku/AW3E6XLt2GaY8siWi7dvW/m1z0ecn+J+bpDa9ZN3IsQ=="], + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], "picomatch": ["picomatch@4.0.2", "", {}, "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg=="], + "pino": ["pino@7.11.0", "", { "dependencies": { "atomic-sleep": "^1.0.0", "fast-redact": "^3.0.0", "on-exit-leak-free": "^0.2.0", "pino-abstract-transport": "v0.5.0", "pino-std-serializers": "^4.0.0", "process-warning": "^1.0.0", "quick-format-unescaped": "^4.0.3", "real-require": "^0.1.0", "safe-stable-stringify": "^2.1.0", "sonic-boom": "^2.2.1", "thread-stream": "^0.15.1" }, "bin": { "pino": "bin.js" } }, "sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg=="], + + "pino-abstract-transport": ["pino-abstract-transport@0.5.0", "", { "dependencies": { "duplexify": "^4.1.2", "split2": "^4.0.0" } }, "sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ=="], + + "pino-pretty": ["pino-pretty@5.1.3", "", { "dependencies": { "@hapi/bourne": "^2.0.0", "args": "^5.0.1", "chalk": "^4.0.0", "dateformat": "^4.5.1", "fast-safe-stringify": "^2.0.7", "jmespath": "^0.15.0", "joycon": "^3.0.0", "pump": "^3.0.0", "readable-stream": "^3.6.0", "rfdc": "^1.3.0", "split2": "^3.1.1", "strip-json-comments": "^3.1.1" }, "bin": { "pino-pretty": "bin.js" } }, "sha512-Zj+0TVdYKkAAIx9EUCL5e4TttwgsaFvJh2ceIMQeFCY8ak9tseEZQGSgpvyjEj1/iIVGIh5tdhkGEQWSMILKHA=="], + + "pino-std-serializers": ["pino-std-serializers@4.0.0", "", {}, "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q=="], + "pkce-challenge": ["pkce-challenge@4.1.0", "", {}, "sha512-ZBmhE1C9LcPoH9XZSdwiPtbPHZROwAnMy+kIFQVrnMCxY4Cudlz3gBOpzilgc0jOgRaiT3sIWfpMomW2ar2orQ=="], "possible-typed-array-names": ["possible-typed-array-names@1.1.0", "", {}, "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg=="], @@ -1028,6 +1181,8 @@ "prismjs": ["prismjs@1.30.0", "", {}, "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw=="], + "process-warning": ["process-warning@1.0.0", "", {}, "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q=="], + "prompts": ["prompts@2.4.2", "", { "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" } }, "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q=="], "property-information": ["property-information@7.1.0", "", {}, "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ=="], @@ -1042,6 +1197,8 @@ "querystring": ["querystring@0.2.0", "", {}, "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g=="], + "quick-format-unescaped": ["quick-format-unescaped@4.0.4", "", {}, "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg=="], + "radix3": ["radix3@1.1.2", "", {}, "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA=="], "range-parser": ["range-parser@1.2.1", "", {}, "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="], @@ -1054,6 +1211,8 @@ "readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="], + "real-require": ["real-require@0.1.0", "", {}, "sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg=="], + "recma-build-jsx": ["recma-build-jsx@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-util-build-jsx": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew=="], "recma-jsx": ["recma-jsx@1.0.0", "", { "dependencies": { "acorn-jsx": "^5.0.0", "estree-util-to-js": "^2.0.0", "recma-parse": "^1.0.0", "recma-stringify": "^1.0.0", "unified": "^11.0.0" } }, "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q=="], @@ -1098,6 +1257,8 @@ "remark-stringify": ["remark-stringify@11.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-to-markdown": "^2.0.0", "unified": "^11.0.0" } }, "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw=="], + "remeda": ["remeda@2.22.4", "", { "dependencies": { "type-fest": "^4.40.1" } }, "sha512-BDQhIgs3baVyxOUb6IRm+HnT7NqbIPOq3FiBFPEqmzkJqN3AS3RwbGH+DVi6MKnZcIcKO7mSN9gsbwBor4YVVw=="], + "restructure": ["restructure@3.0.2", "", {}, "sha512-gSfoiOEA0VPE6Tukkrr7I0RBdE0s7H1eFCDBk05l1KIQT1UIKNc5JZy6jdyW6eYH3aR3g5b3PuL77rq0hvwtAw=="], "retext": ["retext@9.0.0", "", { "dependencies": { "@types/nlcst": "^2.0.0", "retext-latin": "^4.0.0", "retext-stringify": "^4.0.0", "unified": "^11.0.0" } }, "sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA=="], @@ -1108,18 +1269,26 @@ "retext-stringify": ["retext-stringify@4.0.0", "", { "dependencies": { "@types/nlcst": "^2.0.0", "nlcst-to-string": "^4.0.0", "unified": "^11.0.0" } }, "sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA=="], + "rfdc": ["rfdc@1.4.1", "", {}, "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA=="], + "rollup": ["rollup@4.41.1", "", { "dependencies": { "@types/estree": "1.0.7" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.41.1", "@rollup/rollup-android-arm64": "4.41.1", "@rollup/rollup-darwin-arm64": "4.41.1", "@rollup/rollup-darwin-x64": "4.41.1", "@rollup/rollup-freebsd-arm64": "4.41.1", "@rollup/rollup-freebsd-x64": "4.41.1", "@rollup/rollup-linux-arm-gnueabihf": "4.41.1", "@rollup/rollup-linux-arm-musleabihf": "4.41.1", "@rollup/rollup-linux-arm64-gnu": "4.41.1", "@rollup/rollup-linux-arm64-musl": "4.41.1", "@rollup/rollup-linux-loongarch64-gnu": "4.41.1", "@rollup/rollup-linux-powerpc64le-gnu": "4.41.1", "@rollup/rollup-linux-riscv64-gnu": "4.41.1", "@rollup/rollup-linux-riscv64-musl": "4.41.1", "@rollup/rollup-linux-s390x-gnu": "4.41.1", "@rollup/rollup-linux-x64-gnu": "4.41.1", "@rollup/rollup-linux-x64-musl": "4.41.1", "@rollup/rollup-win32-arm64-msvc": "4.41.1", "@rollup/rollup-win32-ia32-msvc": "4.41.1", "@rollup/rollup-win32-x64-msvc": "4.41.1", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-cPmwD3FnFv8rKMBc1MxWCwVQFxwf1JEmSX3iQXrRVVG15zerAIXRjMFVWnd5Q5QvgKF7Aj+5ykXFhUl+QGnyOw=="], "router": ["router@2.2.0", "", { "dependencies": { "debug": "^4.4.0", "depd": "^2.0.0", "is-promise": "^4.0.0", "parseurl": "^1.3.3", "path-to-regexp": "^8.0.0" } }, "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ=="], + "rrweb-cssom": ["rrweb-cssom@0.8.0", "", {}, "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw=="], + "safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], "safe-regex-test": ["safe-regex-test@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-regex": "^1.2.1" } }, "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw=="], + "safe-stable-stringify": ["safe-stable-stringify@2.5.0", "", {}, "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA=="], + "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], "sax": ["sax@1.2.1", "", {}, "sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA=="], + "saxes": ["saxes@6.0.0", "", { "dependencies": { "xmlchars": "^2.2.0" } }, "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA=="], + "semver": ["semver@7.7.2", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA=="], "send": ["send@1.2.0", "", { "dependencies": { "debug": "^4.3.5", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "etag": "^1.8.1", "fresh": "^2.0.0", "http-errors": "^2.0.0", "mime-types": "^3.0.1", "ms": "^2.1.3", "on-finished": "^2.4.1", "range-parser": "^1.2.1", "statuses": "^2.0.1" } }, "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw=="], @@ -1162,12 +1331,16 @@ "solid-refresh": ["solid-refresh@0.6.3", "", { "dependencies": { "@babel/generator": "^7.23.6", "@babel/helper-module-imports": "^7.22.15", "@babel/types": "^7.23.6" }, "peerDependencies": { "solid-js": "^1.3" } }, "sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA=="], + "sonic-boom": ["sonic-boom@2.8.0", "", { "dependencies": { "atomic-sleep": "^1.0.0" } }, "sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg=="], + "source-map": ["source-map@0.7.4", "", {}, "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA=="], "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], "space-separated-tokens": ["space-separated-tokens@2.0.2", "", {}, "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="], + "split2": ["split2@3.2.2", "", { "dependencies": { "readable-stream": "^3.0.0" } }, "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg=="], + "sst": ["sst@3.16.0", "", { "dependencies": { "aws-sdk": "2.1692.0", "aws4fetch": "1.0.18", "jose": "5.2.3", "opencontrol": "0.0.6", "openid-client": "5.6.4" }, "optionalDependencies": { "sst-darwin-arm64": "3.16.0", "sst-darwin-x64": "3.16.0", "sst-linux-arm64": "3.16.0", "sst-linux-x64": "3.16.0", "sst-linux-x86": "3.16.0", "sst-win32-arm64": "3.16.0", "sst-win32-x64": "3.16.0", "sst-win32-x86": "3.16.0" }, "bin": { "sst": "bin/sst.mjs" } }, "sha512-XX4ktkpyvB2lQCG8/jgH/RWAtdNahE/MjlK6OctM4Nagk1rOrMxxzARit2ZFCisX+ZBvcN0ymgJimnfZqWjM7Q=="], "sst-darwin-arm64": ["sst-darwin-arm64@3.16.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-NJDGjZ0bl+hWJoT1P2KLyA65OXHkItVg3BNkRsas6qaa+c1U6GU8wLFnfdqkDRnJIYhOIsnZtIquNp7lMIr3ww=="], @@ -1190,6 +1363,8 @@ "stream-replace-string": ["stream-replace-string@2.0.0", "", {}, "sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w=="], + "stream-shift": ["stream-shift@1.0.3", "", {}, "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ=="], + "streamx": ["streamx@2.22.0", "", { "dependencies": { "fast-fifo": "^1.3.2", "text-decoder": "^1.1.0" }, "optionalDependencies": { "bare-events": "^2.2.0" } }, "sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw=="], "string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], @@ -1200,40 +1375,60 @@ "strip-ansi": ["strip-ansi@7.1.0", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ=="], - "strip-json-comments": ["strip-json-comments@2.0.1", "", {}, "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ=="], + "strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], + + "strtok3": ["strtok3@10.2.2", "", { "dependencies": { "@tokenizer/token": "^0.3.0", "peek-readable": "^7.0.0" } }, "sha512-Xt18+h4s7Z8xyZ0tmBoRmzxcop97R4BAh+dXouUDCYn+Em+1P3qpkUfI5ueWLT8ynC5hZ+q4iPEmGG1urvQGBg=="], "style-to-js": ["style-to-js@1.1.16", "", { "dependencies": { "style-to-object": "1.0.8" } }, "sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw=="], "style-to-object": ["style-to-object@1.0.8", "", { "dependencies": { "inline-style-parser": "0.2.4" } }, "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g=="], + "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], + + "symbol-tree": ["symbol-tree@3.2.4", "", {}, "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="], + "tar-fs": ["tar-fs@3.0.9", "", { "dependencies": { "pump": "^3.0.0", "tar-stream": "^3.1.5" }, "optionalDependencies": { "bare-fs": "^4.0.1", "bare-path": "^3.0.0" } }, "sha512-XF4w9Xp+ZQgifKakjZYmFdkLoSWd34VGKcsTCwlNWM7QG3ZbaxnTsaBwnjFZqHRf/rROxaR8rXnbtwdvaDI+lA=="], "tar-stream": ["tar-stream@3.1.7", "", { "dependencies": { "b4a": "^1.6.4", "fast-fifo": "^1.2.0", "streamx": "^2.15.0" } }, "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ=="], "text-decoder": ["text-decoder@1.2.3", "", { "dependencies": { "b4a": "^1.6.4" } }, "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA=="], + "thread-stream": ["thread-stream@0.15.2", "", { "dependencies": { "real-require": "^0.1.0" } }, "sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA=="], + "tiny-inflate": ["tiny-inflate@1.0.3", "", {}, "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw=="], "tinyexec": ["tinyexec@0.3.2", "", {}, "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA=="], "tinyglobby": ["tinyglobby@0.2.14", "", { "dependencies": { "fdir": "^6.4.4", "picomatch": "^4.0.2" } }, "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ=="], + "tldts": ["tldts@6.1.86", "", { "dependencies": { "tldts-core": "^6.1.86" }, "bin": { "tldts": "bin/cli.js" } }, "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ=="], + + "tldts-core": ["tldts-core@6.1.86", "", {}, "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA=="], + "toidentifier": ["toidentifier@1.0.1", "", {}, "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="], + "token-types": ["token-types@6.0.0", "", { "dependencies": { "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } }, "sha512-lbDrTLVsHhOMljPscd0yitpozq7Ga2M5Cvez5AjGg8GASBjtt6iERCAJ93yommPmz62fb45oFIXHEZ3u9bfJEA=="], + "toolbeam-docs-theme": ["toolbeam-docs-theme@0.2.4", "", { "peerDependencies": { "@astrojs/starlight": "^0.34.3", "astro": "^5.7.13" } }, "sha512-W5mdbcgRpTBDFyEdcU81USs3MFZoXMInpSznc/AFZCwqz8atk4iBNDIlhvihpGHY54Nf5crKmZwJjxVojkHFvA=="], - "tr46": ["tr46@0.0.3", "", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="], + "tough-cookie": ["tough-cookie@5.1.2", "", { "dependencies": { "tldts": "^6.1.32" } }, "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A=="], + + "tr46": ["tr46@5.1.1", "", { "dependencies": { "punycode": "^2.3.1" } }, "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw=="], "trim-lines": ["trim-lines@3.0.1", "", {}, "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="], "trough": ["trough@2.2.0", "", {}, "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw=="], + "ts-lsp-client": ["ts-lsp-client@1.0.3", "", { "dependencies": { "json-rpc-2.0": "^1.7.0", "pino": "^7.0.5", "pino-pretty": "^5.1.3", "tslib": "~2.6.2" } }, "sha512-0ItrsqvNUM9KNFGbeT1N8jSi9gvasGOvxJUXjGf4P2TX0w250AUWLeRStaSrQbYcFDshDtE5d4BshUmYwodDgw=="], + "tsconfck": ["tsconfck@3.1.6", "", { "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"], "bin": { "tsconfck": "bin/tsconfck.js" } }, "sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w=="], - "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "tslib": ["tslib@2.6.3", "", {}, "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ=="], "tunnel-agent": ["tunnel-agent@0.6.0", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w=="], + "turndown": ["turndown@7.2.0", "", { "dependencies": { "@mixmark-io/domino": "^2.2.0" } }, "sha512-eCZGBN4nNNqM9Owkv9HAtWRYfLA4h909E/WGAWWBpmB275ehNhZyk87/Tpvjbp0jjNl9XwCsbe6bm6CqFsgD+A=="], + "type-fest": ["type-fest@4.41.0", "", {}, "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA=="], "type-is": ["type-is@2.0.1", "", { "dependencies": { "content-type": "^1.0.5", "media-typer": "^1.1.0", "mime-types": "^3.0.0" } }, "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw=="], @@ -1242,6 +1437,8 @@ "ufo": ["ufo@1.6.1", "", {}, "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA=="], + "uint8array-extras": ["uint8array-extras@1.4.0", "", {}, "sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ=="], + "ultrahtml": ["ultrahtml@1.6.0", "", {}, "sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw=="], "uncrypto": ["uncrypto@0.1.3", "", {}, "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q=="], @@ -1306,13 +1503,25 @@ "vitefu": ["vitefu@1.0.6", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" }, "optionalPeers": ["vite"] }, "sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA=="], - "web": ["web@workspace:packages/web"], + "vscode-jsonrpc": ["vscode-jsonrpc@8.2.1", "", {}, "sha512-kdjOSJ2lLIn7r1rtrMbbNCHjyMPfRnowdKjBQ+mGq6NAW5QY2bEZC/khaC5OR8svbbjvLEaIXkOq45e2X9BIbQ=="], + + "vscode-languageclient": ["vscode-languageclient@8.1.0", "", { "dependencies": { "minimatch": "^5.1.0", "semver": "^7.3.7", "vscode-languageserver-protocol": "3.17.3" } }, "sha512-GL4QdbYUF/XxQlAsvYWZRV3V34kOkpRlvV60/72ghHfsYFnS/v2MANZ9P6sHmxFcZKOse8O+L9G7Czg0NUWing=="], + + "vscode-languageserver-protocol": ["vscode-languageserver-protocol@3.17.3", "", { "dependencies": { "vscode-jsonrpc": "8.1.0", "vscode-languageserver-types": "3.17.3" } }, "sha512-924/h0AqsMtA5yK22GgMtCYiMdCOtWTSGgUOkgEDX+wk2b0x4sAfLiO4NxBxqbiVtz7K7/1/RgVrVI0NClZwqA=="], + + "vscode-languageserver-types": ["vscode-languageserver-types@3.17.3", "", {}, "sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA=="], + + "w3c-xmlserializer": ["w3c-xmlserializer@5.0.0", "", { "dependencies": { "xml-name-validator": "^5.0.0" } }, "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA=="], "web-namespaces": ["web-namespaces@2.0.1", "", {}, "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ=="], - "webidl-conversions": ["webidl-conversions@3.0.1", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], + "webidl-conversions": ["webidl-conversions@7.0.0", "", {}, "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="], - "whatwg-url": ["whatwg-url@5.0.0", "", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="], + "whatwg-encoding": ["whatwg-encoding@3.1.1", "", { "dependencies": { "iconv-lite": "0.6.3" } }, "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ=="], + + "whatwg-mimetype": ["whatwg-mimetype@4.0.0", "", {}, "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg=="], + + "whatwg-url": ["whatwg-url@14.2.0", "", { "dependencies": { "tr46": "^5.1.0", "webidl-conversions": "^7.0.0" } }, "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw=="], "which-pm-runs": ["which-pm-runs@1.1.0", "", {}, "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA=="], @@ -1324,10 +1533,16 @@ "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="], + "ws": ["ws@8.18.2", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ=="], + + "xml-name-validator": ["xml-name-validator@5.0.0", "", {}, "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg=="], + "xml2js": ["xml2js@0.6.2", "", { "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" } }, "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA=="], "xmlbuilder": ["xmlbuilder@11.0.1", "", {}, "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="], + "xmlchars": ["xmlchars@2.2.0", "", {}, "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="], + "xxhash-wasm": ["xxhash-wasm@1.1.0", "", {}, "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA=="], "yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], @@ -1342,24 +1557,40 @@ "zod": ["zod@3.24.2", "", {}, "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ=="], + "zod-openapi": ["zod-openapi@4.2.4", "", { "peerDependencies": { "zod": "^3.21.4" } }, "sha512-tsrQpbpqFCXqVXUzi3TPwFhuMtLN3oNZobOtYnK6/5VkXsNdnIgyNr4r8no4wmYluaxzN3F7iS+8xCW8BmMQ8g=="], + "zod-to-json-schema": ["zod-to-json-schema@3.24.5", "", { "peerDependencies": { "zod": "^3.24.1" } }, "sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g=="], "zod-to-ts": ["zod-to-ts@1.2.0", "", { "peerDependencies": { "typescript": "^4.9.4 || ^5.0.2", "zod": "^3" } }, "sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA=="], "zwitch": ["zwitch@2.0.4", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="], + "@ai-sdk/gateway/@ai-sdk/provider": ["@ai-sdk/provider@2.0.0-alpha.7", "", { "dependencies": { "json-schema": "^0.4.0" } }, "sha512-lhdrARU3SSmt5p/GNNK7VhazvZpKSCIOjpHUfX7f5jIhVGi/vvlxP1rD6Go57nn1MtuGKNqL04AebSRFDQsQbw=="], + + "@ai-sdk/gateway/@ai-sdk/provider-utils": ["@ai-sdk/provider-utils@3.0.0-alpha.7", "", { "dependencies": { "@ai-sdk/provider": "2.0.0-alpha.7", "@standard-schema/spec": "^1.0.0", "zod-to-json-schema": "^3.24.1" }, "peerDependencies": { "zod": "^3.23.8" } }, "sha512-AYkT3jskmo7Lwzijo/yHKD1jC+UZizsROO8ULTg9aJZUwR4ABZzAxh4NxDIEy4TWRfBGufp+/9ICHAn6pkU71w=="], + + "@asamuzakjp/css-color/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], + "@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], "@babel/helper-compilation-targets/lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], "@babel/helper-compilation-targets/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "@emnapi/runtime/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "@rollup/pluginutils/estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], + "@swc/helpers/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "ansi-align/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], "anymatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + "args/camelcase": ["camelcase@5.0.0", "", {}, "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA=="], + + "args/chalk": ["chalk@2.4.2", "", { "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="], + "astro/diff": ["diff@5.2.0", "", {}, "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A=="], "astro/sharp": ["sharp@0.33.5", "", { "dependencies": { "color": "^4.2.3", "detect-libc": "^2.0.3", "semver": "^7.6.3" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.33.5", "@img/sharp-darwin-x64": "0.33.5", "@img/sharp-libvips-darwin-arm64": "1.0.4", "@img/sharp-libvips-darwin-x64": "1.0.4", "@img/sharp-libvips-linux-arm": "1.0.5", "@img/sharp-libvips-linux-arm64": "1.0.4", "@img/sharp-libvips-linux-s390x": "1.0.4", "@img/sharp-libvips-linux-x64": "1.0.4", "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", "@img/sharp-libvips-linuxmusl-x64": "1.0.4", "@img/sharp-linux-arm": "0.33.5", "@img/sharp-linux-arm64": "0.33.5", "@img/sharp-linux-s390x": "0.33.5", "@img/sharp-linux-x64": "0.33.5", "@img/sharp-linuxmusl-arm64": "0.33.5", "@img/sharp-linuxmusl-x64": "0.33.5", "@img/sharp-wasm32": "0.33.5", "@img/sharp-win32-ia32": "0.33.5", "@img/sharp-win32-x64": "0.33.5" } }, "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw=="], @@ -1372,30 +1603,72 @@ "hast-util-to-parse5/property-information": ["property-information@6.5.0", "", {}, "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig=="], + "mdast-util-find-and-replace/escape-string-regexp": ["escape-string-regexp@5.0.0", "", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="], + + "node-fetch/whatwg-url": ["whatwg-url@5.0.0", "", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="], + + "opencode/ai": ["ai@5.0.0-alpha.7", "", { "dependencies": { "@ai-sdk/gateway": "1.0.0-alpha.7", "@ai-sdk/provider": "2.0.0-alpha.7", "@ai-sdk/provider-utils": "3.0.0-alpha.7", "@opentelemetry/api": "1.9.0" }, "peerDependencies": { "zod": "^3.23.8" } }, "sha512-ShCk3frIMdVtK9knvWKiFS7N6Vwnf8mLMv670+T//W9oqfoetSVPBhTF6Dy+oDM/bjVSsBf1BuYImLDvHICOIQ=="], + + "opencontrol/hono": ["hono@4.7.4", "", {}, "sha512-Pst8FuGqz3L7tFF+u9Pu70eI0xa5S3LPUmrNd5Jm8nTHze9FxLTK9Kaj5g/k4UcwuJSXTP65SyHOPLrffpcAJg=="], + "opencontrol/zod-to-json-schema": ["zod-to-json-schema@3.24.3", "", { "peerDependencies": { "zod": "^3.24.1" } }, "sha512-HIAfWdYIt1sssHfYZFCXp4rU1w2r8hVVXYIlmoa0r0gABLs5di3RCqPU5DDROogVz1pAdYBaz7HK5n9pSUNs3A=="], "openid-client/jose": ["jose@4.15.9", "", {}, "sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA=="], "parse-entities/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="], + "pino-abstract-transport/split2": ["split2@4.2.0", "", {}, "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg=="], + + "pino-pretty/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + + "pino-pretty/jmespath": ["jmespath@0.15.0", "", {}, "sha512-+kHj8HXArPfpPEKGLZ+kB5ONRTCiGQXo8RQYL0hH8t6pWXUBBK5KkkQmTNOwKK4LEsd0yTsgtjJVm4UBSZea4w=="], + "prebuild-install/tar-fs": ["tar-fs@2.1.3", "", { "dependencies": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", "tar-stream": "^2.1.4" } }, "sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg=="], "prompts/kleur": ["kleur@3.0.3", "", {}, "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="], + "rc/strip-json-comments": ["strip-json-comments@2.0.1", "", {}, "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ=="], + "sitemap/@types/node": ["@types/node@17.0.45", "", {}, "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw=="], "sitemap/sax": ["sax@1.4.1", "", {}, "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg=="], + "token-types/ieee754": ["ieee754@1.2.1", "", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="], + + "tr46/punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], + "unstorage/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], + "vscode-languageserver-protocol/vscode-jsonrpc": ["vscode-jsonrpc@8.1.0", "", {}, "sha512-6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw=="], + "@babel/helper-compilation-targets/lru-cache/yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], "ansi-align/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], "ansi-align/string-width/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + "args/chalk/ansi-styles": ["ansi-styles@3.2.1", "", { "dependencies": { "color-convert": "^1.9.0" } }, "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="], + + "args/chalk/supports-color": ["supports-color@5.5.0", "", { "dependencies": { "has-flag": "^3.0.0" } }, "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="], + + "node-fetch/whatwg-url/tr46": ["tr46@0.0.3", "", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="], + + "node-fetch/whatwg-url/webidl-conversions": ["webidl-conversions@3.0.1", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], + + "opencode/ai/@ai-sdk/provider": ["@ai-sdk/provider@2.0.0-alpha.7", "", { "dependencies": { "json-schema": "^0.4.0" } }, "sha512-lhdrARU3SSmt5p/GNNK7VhazvZpKSCIOjpHUfX7f5jIhVGi/vvlxP1rD6Go57nn1MtuGKNqL04AebSRFDQsQbw=="], + + "opencode/ai/@ai-sdk/provider-utils": ["@ai-sdk/provider-utils@3.0.0-alpha.7", "", { "dependencies": { "@ai-sdk/provider": "2.0.0-alpha.7", "@standard-schema/spec": "^1.0.0", "zod-to-json-schema": "^3.24.1" }, "peerDependencies": { "zod": "^3.23.8" } }, "sha512-AYkT3jskmo7Lwzijo/yHKD1jC+UZizsROO8ULTg9aJZUwR4ABZzAxh4NxDIEy4TWRfBGufp+/9ICHAn6pkU71w=="], + + "pino-pretty/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "prebuild-install/tar-fs/tar-stream": ["tar-stream@2.2.0", "", { "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" } }, "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ=="], "ansi-align/string-width/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + + "args/chalk/ansi-styles/color-convert": ["color-convert@1.9.3", "", { "dependencies": { "color-name": "1.1.3" } }, "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="], + + "args/chalk/supports-color/has-flag": ["has-flag@3.0.0", "", {}, "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="], + + "args/chalk/ansi-styles/color-convert/color-name": ["color-name@1.1.3", "", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="], } } diff --git a/app/infra/app.ts b/infra/app.ts similarity index 100% rename from app/infra/app.ts rename to infra/app.ts diff --git a/js/bun.lock b/js/bun.lock deleted file mode 100644 index 5319f5bc..00000000 --- a/js/bun.lock +++ /dev/null @@ -1,348 +0,0 @@ -{ - "lockfileVersion": 1, - "workspaces": { - "": { - "name": "js", - "dependencies": { - "@ai-sdk/anthropic": "^2.0.0-alpha.4", - "@flystorage/file-storage": "^1.1.0", - "@flystorage/local-fs": "^1.1.0", - "@hono/zod-validator": "^0.5.0", - "ai": "^5.0.0-alpha.4", - "cac": "^6.7.14", - "clipanion": "^4.0.0-rc.4", - "decimal.js": "^10.5.0", - "diff": "^8.0.2", - "env-paths": "^3.0.0", - "hono": "^4.7.10", - "hono-openapi": "^0.4.8", - "jsdom": "^26.1.0", - "remeda": "^2.22.3", - "ts-lsp-client": "^1.0.3", - "turndown": "^7.2.0", - "vscode-jsonrpc": "^8.2.1", - "vscode-languageclient": "8", - "zod": "^3.25.3", - "zod-openapi": "^4.2.4", - }, - "devDependencies": { - "@tsconfig/bun": "^1.0.7", - "@types/bun": "latest", - "@types/jsdom": "^21.1.7", - "@types/turndown": "^5.0.5", - }, - "peerDependencies": { - "typescript": "5", - }, - }, - }, - "packages": { - "@ai-sdk/anthropic": ["@ai-sdk/anthropic@2.0.0-alpha.4", "", { "dependencies": { "@ai-sdk/provider": "2.0.0-alpha.4", "@ai-sdk/provider-utils": "3.0.0-alpha.4" }, "peerDependencies": { "zod": "^3.24.0" } }, "sha512-uknR4CfBVjkxhlLqOz0ThCtsH5GzRT6IBVzV5oI/n+CgOSwWNQXfsyBmmO8RopPCEHq+HEb5xSbG/l/FmkxafA=="], - - "@ai-sdk/provider": ["@ai-sdk/provider@2.0.0-alpha.4", "", { "dependencies": { "json-schema": "^0.4.0" } }, "sha512-g6IVjm0iGasiv4fAv6TtPIDTfeMTqFRQt3J6Jz8skm/Tb2r48qKEtcKNrDSpspDIFrQJ4fuC1Xw/aAPrVCs7tQ=="], - - "@ai-sdk/provider-utils": ["@ai-sdk/provider-utils@3.0.0-alpha.4", "", { "dependencies": { "@ai-sdk/provider": "2.0.0-alpha.4", "@standard-schema/spec": "^1.0.0", "zod-to-json-schema": "^3.24.1" }, "peerDependencies": { "zod": "^3.23.8" } }, "sha512-edEnOh8i676TLX8ibWD69gHTaU6btJ9uCN+7/8vXWlMHZJo2ST4mgjRP5f6xC4rH8XXVMYK0rVPwbnuyR/PGzA=="], - - "@apidevtools/json-schema-ref-parser": ["@apidevtools/json-schema-ref-parser@11.9.3", "", { "dependencies": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.15", "js-yaml": "^4.1.0" } }, "sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ=="], - - "@asamuzakjp/css-color": ["@asamuzakjp/css-color@3.2.0", "", { "dependencies": { "@csstools/css-calc": "^2.1.3", "@csstools/css-color-parser": "^3.0.9", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "lru-cache": "^10.4.3" } }, "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw=="], - - "@csstools/color-helpers": ["@csstools/color-helpers@5.0.2", "", {}, "sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA=="], - - "@csstools/css-calc": ["@csstools/css-calc@2.1.3", "", { "peerDependencies": { "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" } }, "sha512-XBG3talrhid44BY1x3MHzUx/aTG8+x/Zi57M4aTKK9RFB4aLlF3TTSzfzn8nWVHWL3FgAXAxmupmDd6VWww+pw=="], - - "@csstools/css-color-parser": ["@csstools/css-color-parser@3.0.9", "", { "dependencies": { "@csstools/color-helpers": "^5.0.2", "@csstools/css-calc": "^2.1.3" }, "peerDependencies": { "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" } }, "sha512-wILs5Zk7BU86UArYBJTPy/FMPPKVKHMj1ycCEyf3VUptol0JNRLFU/BZsJ4aiIHJEbSLiizzRrw8Pc1uAEDrXw=="], - - "@csstools/css-parser-algorithms": ["@csstools/css-parser-algorithms@3.0.4", "", { "peerDependencies": { "@csstools/css-tokenizer": "^3.0.3" } }, "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A=="], - - "@csstools/css-tokenizer": ["@csstools/css-tokenizer@3.0.3", "", {}, "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw=="], - - "@flystorage/dynamic-import": ["@flystorage/dynamic-import@1.0.0", "", {}, "sha512-CIbIUrBdaPFyKnkVBaqzksvzNtsMSXITR/G/6zlil3MBnPFq2LX+X4Mv5p2XOmv/3OulFs/ff2SNb+5dc2Twtg=="], - - "@flystorage/file-storage": ["@flystorage/file-storage@1.1.0", "", {}, "sha512-25Gd5EsXDmhHrK5orpRuVqebQms1Cm9m5ACMZ0sVDX+Sbl1V0G88CbcWt7mEoWRYLvQ1U072htqg6Sav76ZlVA=="], - - "@flystorage/local-fs": ["@flystorage/local-fs@1.1.0", "", { "dependencies": { "@flystorage/dynamic-import": "^1.0.0", "@flystorage/file-storage": "^1.1.0", "file-type": "^20.5.0", "mime-types": "^3.0.1" } }, "sha512-dbErRhqmCv2UF0zPdeH7iVWuVeTWAJHuJD/mXDe2V370/SL7XIvdE3ditBHWC+1SzBKXJ0lkykOenwlum+oqIA=="], - - "@hapi/bourne": ["@hapi/bourne@2.1.0", "", {}, "sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q=="], - - "@hono/zod-validator": ["@hono/zod-validator@0.5.0", "", { "peerDependencies": { "hono": ">=3.9.0", "zod": "^3.19.1" } }, "sha512-ds5bW6DCgAnNHP33E3ieSbaZFd5dkV52ZjyaXtGoR06APFrCtzAsKZxTHwOrJNBdXsi0e5wNwo5L4nVEVnJUdg=="], - - "@jsdevtools/ono": ["@jsdevtools/ono@7.1.3", "", {}, "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg=="], - - "@mixmark-io/domino": ["@mixmark-io/domino@2.2.0", "", {}, "sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw=="], - - "@opentelemetry/api": ["@opentelemetry/api@1.9.0", "", {}, "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg=="], - - "@standard-schema/spec": ["@standard-schema/spec@1.0.0", "", {}, "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA=="], - - "@tokenizer/inflate": ["@tokenizer/inflate@0.2.7", "", { "dependencies": { "debug": "^4.4.0", "fflate": "^0.8.2", "token-types": "^6.0.0" } }, "sha512-MADQgmZT1eKjp06jpI2yozxaU9uVs4GzzgSL+uEq7bVcJ9V1ZXQkeGNql1fsSI0gMy1vhvNTNbUqrx+pZfJVmg=="], - - "@tokenizer/token": ["@tokenizer/token@0.3.0", "", {}, "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A=="], - - "@tsconfig/bun": ["@tsconfig/bun@1.0.7", "", {}, "sha512-udGrGJBNQdXGVulehc1aWT73wkR9wdaGBtB6yL70RJsqwW/yJhIg6ZbRlPOfIUiFNrnBuYLBi9CSmMKfDC7dvA=="], - - "@types/bun": ["@types/bun@1.2.13", "", { "dependencies": { "bun-types": "1.2.13" } }, "sha512-u6vXep/i9VBxoJl3GjZsl/BFIsvML8DfVDO0RYLEwtSZSp981kEO1V5NwRcO1CPJ7AmvpbnDCiMKo3JvbDEjAg=="], - - "@types/jsdom": ["@types/jsdom@21.1.7", "", { "dependencies": { "@types/node": "*", "@types/tough-cookie": "*", "parse5": "^7.0.0" } }, "sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA=="], - - "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], - - "@types/node": ["@types/node@22.15.18", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-v1DKRfUdyW+jJhZNEI1PYy29S2YRxMV5AOO/x/SjKmW0acCIOqmbj6Haf9eHAhsPmrhlHSxEhv/1WszcLWV4cg=="], - - "@types/tough-cookie": ["@types/tough-cookie@4.0.5", "", {}, "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA=="], - - "@types/turndown": ["@types/turndown@5.0.5", "", {}, "sha512-TL2IgGgc7B5j78rIccBtlYAnkuv8nUQqhQc+DSYV5j9Be9XOcm/SKOVRuA47xAVI3680Tk9B1d8flK2GWT2+4w=="], - - "agent-base": ["agent-base@7.1.3", "", {}, "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw=="], - - "ai": ["ai@5.0.0-alpha.4", "", { "dependencies": { "@ai-sdk/provider": "2.0.0-alpha.4", "@ai-sdk/provider-utils": "3.0.0-alpha.4", "@opentelemetry/api": "1.9.0" }, "peerDependencies": { "zod": "^3.23.8" } }, "sha512-u2JGxWcmL19knVOhIMMNFp1k2/8Z4VpsT6BBg6YcpL5Vh1rl7y657sFTLQe3U+pao4b5oxwzd8rKR0ETvVRjnw=="], - - "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - - "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], - - "args": ["args@5.0.3", "", { "dependencies": { "camelcase": "5.0.0", "chalk": "2.4.2", "leven": "2.1.0", "mri": "1.1.4" } }, "sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA=="], - - "atomic-sleep": ["atomic-sleep@1.0.0", "", {}, "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ=="], - - "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], - - "brace-expansion": ["brace-expansion@2.0.1", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="], - - "bun-types": ["bun-types@1.2.13", "", { "dependencies": { "@types/node": "*" } }, "sha512-rRjA1T6n7wto4gxhAO/ErZEtOXyEZEmnIHQfl0Dt1QQSB4QV0iP6BZ9/YB5fZaHFQ2dwHFrmPaRQ9GGMX01k9Q=="], - - "cac": ["cac@6.7.14", "", {}, "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ=="], - - "camelcase": ["camelcase@5.0.0", "", {}, "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA=="], - - "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - - "clipanion": ["clipanion@4.0.0-rc.4", "", { "dependencies": { "typanion": "^3.8.0" } }, "sha512-CXkMQxU6s9GklO/1f714dkKBMu1lopS1WFF0B8o4AxPykR1hpozxSiUZ5ZUeBjfPgCWqbcNOtZVFhB8Lkfp1+Q=="], - - "clone": ["clone@2.1.2", "", {}, "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w=="], - - "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], - - "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], - - "cssstyle": ["cssstyle@4.3.1", "", { "dependencies": { "@asamuzakjp/css-color": "^3.1.2", "rrweb-cssom": "^0.8.0" } }, "sha512-ZgW+Jgdd7i52AaLYCriF8Mxqft0gD/R9i9wi6RWBhs1pqdPEzPjym7rvRKi397WmQFf3SlyUsszhw+VVCbx79Q=="], - - "data-urls": ["data-urls@5.0.0", "", { "dependencies": { "whatwg-mimetype": "^4.0.0", "whatwg-url": "^14.0.0" } }, "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg=="], - - "dateformat": ["dateformat@4.6.3", "", {}, "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA=="], - - "debug": ["debug@4.4.1", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ=="], - - "decimal.js": ["decimal.js@10.5.0", "", {}, "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw=="], - - "diff": ["diff@8.0.2", "", {}, "sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg=="], - - "duplexify": ["duplexify@4.1.3", "", { "dependencies": { "end-of-stream": "^1.4.1", "inherits": "^2.0.3", "readable-stream": "^3.1.1", "stream-shift": "^1.0.2" } }, "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA=="], - - "end-of-stream": ["end-of-stream@1.4.4", "", { "dependencies": { "once": "^1.4.0" } }, "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q=="], - - "entities": ["entities@6.0.0", "", {}, "sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw=="], - - "env-paths": ["env-paths@3.0.0", "", {}, "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A=="], - - "escape-string-regexp": ["escape-string-regexp@1.0.5", "", {}, "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="], - - "fast-redact": ["fast-redact@3.5.0", "", {}, "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A=="], - - "fast-safe-stringify": ["fast-safe-stringify@2.1.1", "", {}, "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="], - - "fflate": ["fflate@0.8.2", "", {}, "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A=="], - - "file-type": ["file-type@20.5.0", "", { "dependencies": { "@tokenizer/inflate": "^0.2.6", "strtok3": "^10.2.0", "token-types": "^6.0.0", "uint8array-extras": "^1.4.0" } }, "sha512-BfHZtG/l9iMm4Ecianu7P8HRD2tBHLtjXinm4X62XBOYzi7CYA7jyqfJzOvXHqzVrVPYqBo2/GvbARMaaJkKVg=="], - - "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], - - "hono": ["hono@4.7.10", "", {}, "sha512-QkACju9MiN59CKSY5JsGZCYmPZkA6sIW6OFCUp7qDjZu6S6KHtJHhAc9Uy9mV9F8PJ1/HQ3ybZF2yjCa/73fvQ=="], - - "hono-openapi": ["hono-openapi@0.4.8", "", { "dependencies": { "json-schema-walker": "^2.0.0" }, "peerDependencies": { "@hono/arktype-validator": "^2.0.0", "@hono/effect-validator": "^1.2.0", "@hono/typebox-validator": "^0.2.0 || ^0.3.0", "@hono/valibot-validator": "^0.5.1", "@hono/zod-validator": "^0.4.1", "@sinclair/typebox": "^0.34.9", "@valibot/to-json-schema": "^1.0.0-beta.3", "arktype": "^2.0.0", "effect": "^3.11.3", "hono": "^4.6.13", "openapi-types": "^12.1.3", "valibot": "^1.0.0-beta.9", "zod": "^3.23.8", "zod-openapi": "^4.0.0" }, "optionalPeers": ["@hono/arktype-validator", "@hono/effect-validator", "@hono/typebox-validator", "@hono/valibot-validator", "@hono/zod-validator", "@sinclair/typebox", "@valibot/to-json-schema", "arktype", "effect", "hono", "valibot", "zod", "zod-openapi"] }, "sha512-LYr5xdtD49M7hEAduV1PftOMzuT8ZNvkyWfh1DThkLsIr4RkvDb12UxgIiFbwrJB6FLtFXLoOZL9x4IeDk2+VA=="], - - "html-encoding-sniffer": ["html-encoding-sniffer@4.0.0", "", { "dependencies": { "whatwg-encoding": "^3.1.1" } }, "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ=="], - - "http-proxy-agent": ["http-proxy-agent@7.0.2", "", { "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" } }, "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig=="], - - "https-proxy-agent": ["https-proxy-agent@7.0.6", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "4" } }, "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw=="], - - "iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="], - - "ieee754": ["ieee754@1.2.1", "", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="], - - "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], - - "is-potential-custom-element-name": ["is-potential-custom-element-name@1.0.1", "", {}, "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="], - - "jmespath": ["jmespath@0.15.0", "", {}, "sha512-+kHj8HXArPfpPEKGLZ+kB5ONRTCiGQXo8RQYL0hH8t6pWXUBBK5KkkQmTNOwKK4LEsd0yTsgtjJVm4UBSZea4w=="], - - "joycon": ["joycon@3.1.1", "", {}, "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw=="], - - "js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="], - - "jsdom": ["jsdom@26.1.0", "", { "dependencies": { "cssstyle": "^4.2.1", "data-urls": "^5.0.0", "decimal.js": "^10.5.0", "html-encoding-sniffer": "^4.0.0", "http-proxy-agent": "^7.0.2", "https-proxy-agent": "^7.0.6", "is-potential-custom-element-name": "^1.0.1", "nwsapi": "^2.2.16", "parse5": "^7.2.1", "rrweb-cssom": "^0.8.0", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^5.1.1", "w3c-xmlserializer": "^5.0.0", "webidl-conversions": "^7.0.0", "whatwg-encoding": "^3.1.1", "whatwg-mimetype": "^4.0.0", "whatwg-url": "^14.1.1", "ws": "^8.18.0", "xml-name-validator": "^5.0.0" }, "peerDependencies": { "canvas": "^3.0.0" }, "optionalPeers": ["canvas"] }, "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg=="], - - "json-rpc-2.0": ["json-rpc-2.0@1.7.0", "", {}, "sha512-asnLgC1qD5ytP+fvBP8uL0rvj+l8P6iYICbzZ8dVxCpESffVjzA7KkYkbKCIbavs7cllwH1ZUaNtJwphdeRqpg=="], - - "json-schema": ["json-schema@0.4.0", "", {}, "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="], - - "json-schema-walker": ["json-schema-walker@2.0.0", "", { "dependencies": { "@apidevtools/json-schema-ref-parser": "^11.1.0", "clone": "^2.1.2" } }, "sha512-nXN2cMky0Iw7Af28w061hmxaPDaML5/bQD9nwm1lOoIKEGjHcRGxqWe4MfrkYThYAPjSUhmsp4bJNoLAyVn9Xw=="], - - "leven": ["leven@2.1.0", "", {}, "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA=="], - - "lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], - - "mime-db": ["mime-db@1.54.0", "", {}, "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="], - - "mime-types": ["mime-types@3.0.1", "", { "dependencies": { "mime-db": "^1.54.0" } }, "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA=="], - - "minimatch": ["minimatch@5.1.6", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g=="], - - "mri": ["mri@1.1.4", "", {}, "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w=="], - - "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], - - "nwsapi": ["nwsapi@2.2.20", "", {}, "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA=="], - - "on-exit-leak-free": ["on-exit-leak-free@0.2.0", "", {}, "sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg=="], - - "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="], - - "openapi-types": ["openapi-types@12.1.3", "", {}, "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw=="], - - "parse5": ["parse5@7.3.0", "", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="], - - "peek-readable": ["peek-readable@7.0.0", "", {}, "sha512-nri2TO5JE3/mRryik9LlHFT53cgHfRK0Lt0BAZQXku/AW3E6XLt2GaY8siWi7dvW/m1z0ecn+J+bpDa9ZN3IsQ=="], - - "pino": ["pino@7.11.0", "", { "dependencies": { "atomic-sleep": "^1.0.0", "fast-redact": "^3.0.0", "on-exit-leak-free": "^0.2.0", "pino-abstract-transport": "v0.5.0", "pino-std-serializers": "^4.0.0", "process-warning": "^1.0.0", "quick-format-unescaped": "^4.0.3", "real-require": "^0.1.0", "safe-stable-stringify": "^2.1.0", "sonic-boom": "^2.2.1", "thread-stream": "^0.15.1" }, "bin": { "pino": "bin.js" } }, "sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg=="], - - "pino-abstract-transport": ["pino-abstract-transport@0.5.0", "", { "dependencies": { "duplexify": "^4.1.2", "split2": "^4.0.0" } }, "sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ=="], - - "pino-pretty": ["pino-pretty@5.1.3", "", { "dependencies": { "@hapi/bourne": "^2.0.0", "args": "^5.0.1", "chalk": "^4.0.0", "dateformat": "^4.5.1", "fast-safe-stringify": "^2.0.7", "jmespath": "^0.15.0", "joycon": "^3.0.0", "pump": "^3.0.0", "readable-stream": "^3.6.0", "rfdc": "^1.3.0", "split2": "^3.1.1", "strip-json-comments": "^3.1.1" }, "bin": { "pino-pretty": "bin.js" } }, "sha512-Zj+0TVdYKkAAIx9EUCL5e4TttwgsaFvJh2ceIMQeFCY8ak9tseEZQGSgpvyjEj1/iIVGIh5tdhkGEQWSMILKHA=="], - - "pino-std-serializers": ["pino-std-serializers@4.0.0", "", {}, "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q=="], - - "process-warning": ["process-warning@1.0.0", "", {}, "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q=="], - - "pump": ["pump@3.0.2", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw=="], - - "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], - - "quick-format-unescaped": ["quick-format-unescaped@4.0.4", "", {}, "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg=="], - - "readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], - - "real-require": ["real-require@0.1.0", "", {}, "sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg=="], - - "remeda": ["remeda@2.22.3", "", { "dependencies": { "type-fest": "^4.40.1" } }, "sha512-Ka6965m9Zu9OLsysWxVf3jdJKmp6+PKzDv7HWHinEevf0JOJ9y02YpjiC/sKxRpCqGhVyvm1U+0YIj+E6DMgKw=="], - - "rfdc": ["rfdc@1.4.1", "", {}, "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA=="], - - "rrweb-cssom": ["rrweb-cssom@0.8.0", "", {}, "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw=="], - - "safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], - - "safe-stable-stringify": ["safe-stable-stringify@2.5.0", "", {}, "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA=="], - - "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], - - "saxes": ["saxes@6.0.0", "", { "dependencies": { "xmlchars": "^2.2.0" } }, "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA=="], - - "semver": ["semver@7.7.2", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA=="], - - "sonic-boom": ["sonic-boom@2.8.0", "", { "dependencies": { "atomic-sleep": "^1.0.0" } }, "sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg=="], - - "split2": ["split2@3.2.2", "", { "dependencies": { "readable-stream": "^3.0.0" } }, "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg=="], - - "stream-shift": ["stream-shift@1.0.3", "", {}, "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ=="], - - "string_decoder": ["string_decoder@1.3.0", "", { "dependencies": { "safe-buffer": "~5.2.0" } }, "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="], - - "strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], - - "strtok3": ["strtok3@10.2.2", "", { "dependencies": { "@tokenizer/token": "^0.3.0", "peek-readable": "^7.0.0" } }, "sha512-Xt18+h4s7Z8xyZ0tmBoRmzxcop97R4BAh+dXouUDCYn+Em+1P3qpkUfI5ueWLT8ynC5hZ+q4iPEmGG1urvQGBg=="], - - "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], - - "symbol-tree": ["symbol-tree@3.2.4", "", {}, "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="], - - "thread-stream": ["thread-stream@0.15.2", "", { "dependencies": { "real-require": "^0.1.0" } }, "sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA=="], - - "tldts": ["tldts@6.1.86", "", { "dependencies": { "tldts-core": "^6.1.86" }, "bin": { "tldts": "bin/cli.js" } }, "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ=="], - - "tldts-core": ["tldts-core@6.1.86", "", {}, "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA=="], - - "token-types": ["token-types@6.0.0", "", { "dependencies": { "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } }, "sha512-lbDrTLVsHhOMljPscd0yitpozq7Ga2M5Cvez5AjGg8GASBjtt6iERCAJ93yommPmz62fb45oFIXHEZ3u9bfJEA=="], - - "tough-cookie": ["tough-cookie@5.1.2", "", { "dependencies": { "tldts": "^6.1.32" } }, "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A=="], - - "tr46": ["tr46@5.1.1", "", { "dependencies": { "punycode": "^2.3.1" } }, "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw=="], - - "ts-lsp-client": ["ts-lsp-client@1.0.3", "", { "dependencies": { "json-rpc-2.0": "^1.7.0", "pino": "^7.0.5", "pino-pretty": "^5.1.3", "tslib": "~2.6.2" } }, "sha512-0ItrsqvNUM9KNFGbeT1N8jSi9gvasGOvxJUXjGf4P2TX0w250AUWLeRStaSrQbYcFDshDtE5d4BshUmYwodDgw=="], - - "tslib": ["tslib@2.6.3", "", {}, "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ=="], - - "turndown": ["turndown@7.2.0", "", { "dependencies": { "@mixmark-io/domino": "^2.2.0" } }, "sha512-eCZGBN4nNNqM9Owkv9HAtWRYfLA4h909E/WGAWWBpmB275ehNhZyk87/Tpvjbp0jjNl9XwCsbe6bm6CqFsgD+A=="], - - "typanion": ["typanion@3.14.0", "", {}, "sha512-ZW/lVMRabETuYCd9O9ZvMhAh8GslSqaUjxmK/JLPCh6l73CvLBiuXswj/+7LdnWOgYsQ130FqLzFz5aGT4I3Ug=="], - - "type-fest": ["type-fest@4.41.0", "", {}, "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA=="], - - "typescript": ["typescript@5.8.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="], - - "uint8array-extras": ["uint8array-extras@1.4.0", "", {}, "sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ=="], - - "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], - - "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], - - "vscode-jsonrpc": ["vscode-jsonrpc@8.2.1", "", {}, "sha512-kdjOSJ2lLIn7r1rtrMbbNCHjyMPfRnowdKjBQ+mGq6NAW5QY2bEZC/khaC5OR8svbbjvLEaIXkOq45e2X9BIbQ=="], - - "vscode-languageclient": ["vscode-languageclient@8.1.0", "", { "dependencies": { "minimatch": "^5.1.0", "semver": "^7.3.7", "vscode-languageserver-protocol": "3.17.3" } }, "sha512-GL4QdbYUF/XxQlAsvYWZRV3V34kOkpRlvV60/72ghHfsYFnS/v2MANZ9P6sHmxFcZKOse8O+L9G7Czg0NUWing=="], - - "vscode-languageserver-protocol": ["vscode-languageserver-protocol@3.17.3", "", { "dependencies": { "vscode-jsonrpc": "8.1.0", "vscode-languageserver-types": "3.17.3" } }, "sha512-924/h0AqsMtA5yK22GgMtCYiMdCOtWTSGgUOkgEDX+wk2b0x4sAfLiO4NxBxqbiVtz7K7/1/RgVrVI0NClZwqA=="], - - "vscode-languageserver-types": ["vscode-languageserver-types@3.17.3", "", {}, "sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA=="], - - "w3c-xmlserializer": ["w3c-xmlserializer@5.0.0", "", { "dependencies": { "xml-name-validator": "^5.0.0" } }, "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA=="], - - "webidl-conversions": ["webidl-conversions@7.0.0", "", {}, "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="], - - "whatwg-encoding": ["whatwg-encoding@3.1.1", "", { "dependencies": { "iconv-lite": "0.6.3" } }, "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ=="], - - "whatwg-mimetype": ["whatwg-mimetype@4.0.0", "", {}, "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg=="], - - "whatwg-url": ["whatwg-url@14.2.0", "", { "dependencies": { "tr46": "^5.1.0", "webidl-conversions": "^7.0.0" } }, "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw=="], - - "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="], - - "ws": ["ws@8.18.2", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ=="], - - "xml-name-validator": ["xml-name-validator@5.0.0", "", {}, "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg=="], - - "xmlchars": ["xmlchars@2.2.0", "", {}, "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="], - - "zod": ["zod@3.25.3", "", {}, "sha512-VGZqnyYNrl8JpEJRZaFPqeVNIuqgXNu4cXZ5cOb6zEUO1OxKbRnWB4UdDIXMmiERWncs0yDQukssHov8JUxykQ=="], - - "zod-openapi": ["zod-openapi@4.2.4", "", { "peerDependencies": { "zod": "^3.21.4" } }, "sha512-tsrQpbpqFCXqVXUzi3TPwFhuMtLN3oNZobOtYnK6/5VkXsNdnIgyNr4r8no4wmYluaxzN3F7iS+8xCW8BmMQ8g=="], - - "zod-to-json-schema": ["zod-to-json-schema@3.24.5", "", { "peerDependencies": { "zod": "^3.24.1" } }, "sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g=="], - - "args/chalk": ["chalk@2.4.2", "", { "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="], - - "pino-abstract-transport/split2": ["split2@4.2.0", "", {}, "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg=="], - - "vscode-languageserver-protocol/vscode-jsonrpc": ["vscode-jsonrpc@8.1.0", "", {}, "sha512-6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw=="], - - "args/chalk/ansi-styles": ["ansi-styles@3.2.1", "", { "dependencies": { "color-convert": "^1.9.0" } }, "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="], - - "args/chalk/supports-color": ["supports-color@5.5.0", "", { "dependencies": { "has-flag": "^3.0.0" } }, "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="], - - "args/chalk/ansi-styles/color-convert": ["color-convert@1.9.3", "", { "dependencies": { "color-name": "1.1.3" } }, "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="], - - "args/chalk/supports-color/has-flag": ["has-flag@3.0.0", "", {}, "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="], - - "args/chalk/ansi-styles/color-convert/color-name": ["color-name@1.1.3", "", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="], - } -} diff --git a/app/package.json b/package.json similarity index 96% rename from app/package.json rename to package.json index 1e495436..329c5ba5 100644 --- a/app/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "name": "opencontrol", + "name": "opencode", "private": true, "type": "module", "packageManager": "bun@1.2.14", diff --git a/app/packages/function/package.json b/packages/function/package.json similarity index 100% rename from app/packages/function/package.json rename to packages/function/package.json diff --git a/app/packages/function/src/api.ts b/packages/function/src/api.ts similarity index 99% rename from app/packages/function/src/api.ts rename to packages/function/src/api.ts index 8b6c52dd..3e2ce9ec 100644 --- a/app/packages/function/src/api.ts +++ b/packages/function/src/api.ts @@ -1,6 +1,5 @@ import { DurableObject } from "cloudflare:workers" import { randomUUID } from "node:crypto" -import { Resource } from "sst" type Env = { SYNC_SERVER: DurableObjectNamespace diff --git a/app/packages/function/sst-env.d.ts b/packages/function/sst-env.d.ts similarity index 100% rename from app/packages/function/sst-env.d.ts rename to packages/function/sst-env.d.ts diff --git a/app/packages/function/tsconfig.json b/packages/function/tsconfig.json similarity index 100% rename from app/packages/function/tsconfig.json rename to packages/function/tsconfig.json diff --git a/js/.gitignore b/packages/opencode/.gitignore similarity index 100% rename from js/.gitignore rename to packages/opencode/.gitignore diff --git a/js/README.md b/packages/opencode/README.md similarity index 100% rename from js/README.md rename to packages/opencode/README.md diff --git a/packages/opencode/bin/opencode.mjs b/packages/opencode/bin/opencode.mjs new file mode 100644 index 00000000..05eac3fb --- /dev/null +++ b/packages/opencode/bin/opencode.mjs @@ -0,0 +1,29 @@ +#!/usr/bin/env node +import { createRequire } from "node:module" +const require = createRequire(import.meta.url) +import path from "path" +import { execFileSync } from "child_process" +let resolved = process.env.SST_BIN_PATH +if (!resolved) { + const name = `opencode-${process.platform}-${process.arch}` + const binary = process.platform === "win32" ? "opencode.exe" : "opencode" + try { + resolved = require.resolve(path.join(name, "bin", binary)) + } catch (ex) { + console.error( + `It seems that your package manager failed to install the right version of the SST CLI for your platform. You can try manually installing the "${name}" package`, + ) + + process.exit(1) + } +} + +process.on("SIGINT", () => {}) + +try { + execFileSync(resolved, process.argv.slice(2), { + stdio: "inherit", + }) +} catch (ex) { + process.exit(1) +} diff --git a/js/package.json b/packages/opencode/package.json similarity index 74% rename from js/package.json rename to packages/opencode/package.json index d386dac8..6ce3cabc 100644 --- a/js/package.json +++ b/packages/opencode/package.json @@ -1,10 +1,15 @@ { "$schema": "https://json.schemastore.org/package.json", + "version": "0.0.0", "name": "opencode", "type": "module", "private": true, - "scripts": { - "build": "bun build src/index.ts --compile --outfile ./dist/opencode" + "scripts": {}, + "exports": { + "./*": [ + "./src/*.ts", + "./src/*/index.ts" + ] }, "devDependencies": { "@tsconfig/bun": "^1.0.7", @@ -12,19 +17,13 @@ "@types/jsdom": "^21.1.7", "@types/turndown": "^5.0.5" }, - "peerDependencies": { - "typescript": "5" - }, "dependencies": { - "@ai-sdk/anthropic": "^2.0.0-alpha.4", "@flystorage/file-storage": "^1.1.0", "@flystorage/local-fs": "^1.1.0", "@hono/zod-validator": "^0.5.0", - "ai": "^5.0.0-alpha.4", + "ai": "5.0.0-alpha.7", "cac": "^6.7.14", - "clipanion": "^4.0.0-rc.4", "decimal.js": "^10.5.0", - "diff": "^8.0.2", "env-paths": "^3.0.0", "hono": "^4.7.10", "hono-openapi": "^0.4.8", diff --git a/js/scrap.ts b/packages/opencode/scrap.ts similarity index 100% rename from js/scrap.ts rename to packages/opencode/scrap.ts diff --git a/packages/opencode/script/release.ts b/packages/opencode/script/release.ts new file mode 100755 index 00000000..af770cc3 --- /dev/null +++ b/packages/opencode/script/release.ts @@ -0,0 +1,68 @@ +#!/usr/bin/env bun + +import { $ } from "bun" + +import pkg from "../package.json" + +const version = `0.0.0-${Date.now()}` + +const ARCH = { + arm64: "arm64", + x64: "amd64", +} + +const OS = { + linux: "linux", + darwin: "mac", + win32: "windows", +} + +const targets = [ + ["linux", "arm64"], + ["linux", "x64"], + ["darwin", "x64"], + ["darwin", "arm64"], + ["windows", "x64"], +] + +await $`rm -rf dist` + +const optionalDependencies: Record = {} +for (const [os, arch] of targets) { + console.log(`building ${os}-${arch}`) + const name = `${pkg.name}-${os}-${arch}` + await $`mkdir -p dist/${name}/bin` + await $`bun build --compile --minify --target=bun-${os}-${arch} --outfile=dist/${name}/bin/${pkg.name} ./src/index.ts` + await Bun.file(`dist/${name}/package.json`).write( + JSON.stringify( + { + name, + version, + os: [os], + cpu: [arch], + }, + null, + 2, + ), + ) + await $`cd dist/${name} && npm publish --access public --tag latest` + optionalDependencies[name] = version +} + +await $`mkdir -p ./dist/${pkg.name}` +await $`cp -r ./bin ./dist/${pkg.name}/bin` +await Bun.file(`./dist/${pkg.name}/package.json`).write( + JSON.stringify( + { + name: pkg.name + "-ai", + bin: { + [pkg.name]: `./bin/${pkg.name}.mjs`, + }, + version, + optionalDependencies, + }, + null, + 2, + ), +) +await $`cd ./dist/${pkg.name} && npm publish --access public --tag latest` diff --git a/js/src/app/app.ts b/packages/opencode/src/app/app.ts similarity index 100% rename from js/src/app/app.ts rename to packages/opencode/src/app/app.ts diff --git a/js/src/app/path.ts b/packages/opencode/src/app/path.ts similarity index 100% rename from js/src/app/path.ts rename to packages/opencode/src/app/path.ts diff --git a/js/src/bun/index.ts b/packages/opencode/src/bun/index.ts similarity index 100% rename from js/src/bun/index.ts rename to packages/opencode/src/bun/index.ts diff --git a/js/src/bus/index.ts b/packages/opencode/src/bus/index.ts similarity index 100% rename from js/src/bus/index.ts rename to packages/opencode/src/bus/index.ts diff --git a/js/src/config/config.ts b/packages/opencode/src/config/config.ts similarity index 100% rename from js/src/config/config.ts rename to packages/opencode/src/config/config.ts diff --git a/js/src/global/index.ts b/packages/opencode/src/global/index.ts similarity index 100% rename from js/src/global/index.ts rename to packages/opencode/src/global/index.ts diff --git a/js/src/id/id.ts b/packages/opencode/src/id/id.ts similarity index 100% rename from js/src/id/id.ts rename to packages/opencode/src/id/id.ts diff --git a/js/src/index.ts b/packages/opencode/src/index.ts similarity index 52% rename from js/src/index.ts rename to packages/opencode/src/index.ts index c86e6095..26f25f78 100644 --- a/js/src/index.ts +++ b/packages/opencode/src/index.ts @@ -1,61 +1,61 @@ -import "zod-openapi/extend"; -import { App } from "./app/app"; -import { Server } from "./server/server"; -import fs from "fs/promises"; -import path from "path"; -import { Bus } from "./bus"; -import { Session } from "./session/session"; -import cac from "cac"; -import { Share } from "./share/share"; -import { Storage } from "./storage/storage"; -import { LLM } from "./llm/llm"; -import { Message } from "./session/message"; +import "zod-openapi/extend" +import { App } from "./app/app" +import { Server } from "./server/server" +import fs from "fs/promises" +import path from "path" +import { Bus } from "./bus" +import { Session } from "./session/session" +import cac from "cac" +import { Share } from "./share/share" +import { Storage } from "./storage/storage" +import { LLM } from "./llm/llm" +import { Message } from "./session/message" -const cli = cac("opencode"); +const cli = cac("opencode") cli.command("", "Start the opencode in interactive mode").action(async () => { await App.provide({ directory: process.cwd() }, async () => { - await Share.init(); - Server.listen(); - }); -}); + await Share.init() + Server.listen() + }) +}) cli.command("generate", "Generate OpenAPI and event specs").action(async () => { - const specs = await Server.openapi(); - const dir = "gen"; - await fs.rmdir(dir, { recursive: true }).catch(() => {}); - await fs.mkdir(dir, { recursive: true }); + const specs = await Server.openapi() + const dir = "gen" + await fs.rmdir(dir, { recursive: true }).catch(() => {}) + await fs.mkdir(dir, { recursive: true }) await Bun.write( path.join(dir, "openapi.json"), JSON.stringify(specs, null, 2), - ); -}); + ) +}) cli .command("run [...message]", "Run a chat message") .option("--session ", "Session ID") .action(async (message: string[], options) => { await App.provide({ directory: process.cwd() }, async () => { - await Share.init(); + await Share.init() const session = options.session ? await Session.get(options.session) - : await Session.create(); - console.log("Session:", session.id); + : await Session.create() + console.log("Session:", session.id) Bus.subscribe(Message.Event.Updated, async (message) => { - console.log("Thinking..."); - }); + console.log("Thinking...") + }) const unsub = Bus.subscribe(Session.Event.Updated, async (message) => { if (message.properties.info.share?.url) - console.log("Share:", message.properties.info.share.url); - unsub(); - }); + console.log("Share:", message.properties.info.share.url) + unsub() + }) - const providers = await LLM.providers(); - const providerID = Object.keys(providers)[0]; - const modelID = Object.keys(providers[providerID].info.models!)[0]; - console.log("using", providerID, modelID); + const providers = await LLM.providers() + const providerID = Object.keys(providers)[0] + const modelID = providers[providerID].info.models[0].id + console.log("using", providerID, modelID) const result = await Session.chat({ sessionID: session.id, providerID, @@ -66,20 +66,20 @@ cli text: message.join(" "), }, ], - }); + }) for (const part of result.parts) { if (part.type === "text") { - console.log("opencode:", part.text); + console.log("opencode:", part.text) } } console.log({ cost: result.metadata.assistant?.cost, tokens: result.metadata.assistant?.tokens, - }); - }); - }); + }) + }) + }) -cli.help(); -cli.version("1.0.0"); -cli.parse(); +cli.help() +cli.version("1.0.0") +cli.parse() diff --git a/js/src/llm/llm.ts b/packages/opencode/src/llm/llm.ts similarity index 73% rename from js/src/llm/llm.ts rename to packages/opencode/src/llm/llm.ts index a7d31fb9..3fb8357f 100644 --- a/js/src/llm/llm.ts +++ b/packages/opencode/src/llm/llm.ts @@ -1,21 +1,21 @@ -import { App } from "../app/app"; -import { Log } from "../util/log"; -import { concat } from "remeda"; -import path from "path"; -import { Provider } from "../provider/provider"; +import { App } from "../app/app" +import { Log } from "../util/log" +import { concat } from "remeda" +import path from "path" +import { Provider } from "../provider/provider" -import type { LanguageModel, Provider as ProviderInstance } from "ai"; -import { NoSuchModelError } from "ai"; -import { Config } from "../config/config"; -import { BunProc } from "../bun"; -import { Global } from "../global"; +import type { LanguageModel, Provider as ProviderInstance } from "ai" +import { NoSuchModelError } from "ai" +import { Config } from "../config/config" +import { BunProc } from "../bun" +import { Global } from "../global" export namespace LLM { - const log = Log.create({ service: "llm" }); + const log = Log.create({ service: "llm" }) export class ModelNotFoundError extends Error { constructor(public readonly model: string) { - super(); + super() } } @@ -78,95 +78,95 @@ export namespace LLM { }, ], }, - ]; + ] const AUTODETECT: Record = { anthropic: ["ANTHROPIC_API_KEY"], openai: ["OPENAI_API_KEY"], google: ["GOOGLE_GENERATIVE_AI_API_KEY", "GEMINI_API_KEY"], - }; + } const state = App.state("llm", async () => { - const config = await Config.get(); + const config = await Config.get() const providers: Record< string, { - info: Provider.Info; - instance: ProviderInstance; + info: Provider.Info + instance: ProviderInstance } - > = {}; + > = {} const models = new Map< string, { info: Provider.Model; instance: LanguageModel } - >(); + >() - const list = concat(NATIVE_PROVIDERS, config.providers ?? []); + const list = concat(NATIVE_PROVIDERS, config.providers ?? []) for (const provider of list) { if ( !config.providers?.find((p) => p.id === provider.id) && !AUTODETECT[provider.id]?.some((env) => process.env[env]) ) - continue; + continue const dir = path.join( Global.cache(), `node_modules`, `@ai-sdk`, provider.id, - ); + ) if (!(await Bun.file(path.join(dir, "package.json")).exists())) { BunProc.run(["add", "--exact", `@ai-sdk/${provider.id}@alpha`], { cwd: Global.cache(), - }); + }) } const mod = await import( path.join(Global.cache(), `node_modules`, `@ai-sdk`, provider.id) - ); - const fn = mod[Object.keys(mod).find((key) => key.startsWith("create"))!]; - const loaded = fn(provider.options); - log.info("loaded", { provider: provider.id }); + ) + const fn = mod[Object.keys(mod).find((key) => key.startsWith("create"))!] + const loaded = fn(provider.options) + log.info("loaded", { provider: provider.id }) providers[provider.id] = { info: provider, instance: loaded, - }; + } } return { models, providers, - }; - }); + } + }) export async function providers() { - return state().then((state) => state.providers); + return state().then((state) => state.providers) } export async function findModel(providerID: string, modelID: string) { - const key = `${providerID}/${modelID}`; - const s = await state(); - if (s.models.has(key)) return s.models.get(key)!; - const provider = s.providers[providerID]; - if (!provider) throw new ModelNotFoundError(modelID); + const key = `${providerID}/${modelID}` + const s = await state() + if (s.models.has(key)) return s.models.get(key)! + const provider = s.providers[providerID] + if (!provider) throw new ModelNotFoundError(modelID) log.info("loading", { providerID, modelID, - }); - const info = provider.info.models.find((m) => m.id === modelID); - if (!info) throw new ModelNotFoundError(modelID); + }) + const info = provider.info.models.find((m) => m.id === modelID) + if (!info) throw new ModelNotFoundError(modelID) try { - const match = provider.instance.languageModel(modelID); - log.info("found", { providerID, modelID }); + const match = provider.instance.languageModel(modelID) + log.info("found", { providerID, modelID }) s.models.set(key, { info, instance: match, - }); + }) return { info, instance: match, - }; + } } catch (e) { - if (e instanceof NoSuchModelError) throw new ModelNotFoundError(modelID); - throw e; + if (e instanceof NoSuchModelError) throw new ModelNotFoundError(modelID) + throw e } } } diff --git a/js/src/lsp/client.ts b/packages/opencode/src/lsp/client.ts similarity index 100% rename from js/src/lsp/client.ts rename to packages/opencode/src/lsp/client.ts diff --git a/js/src/lsp/index.ts b/packages/opencode/src/lsp/index.ts similarity index 100% rename from js/src/lsp/index.ts rename to packages/opencode/src/lsp/index.ts diff --git a/js/src/lsp/language.ts b/packages/opencode/src/lsp/language.ts similarity index 100% rename from js/src/lsp/language.ts rename to packages/opencode/src/lsp/language.ts diff --git a/js/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts similarity index 100% rename from js/src/provider/provider.ts rename to packages/opencode/src/provider/provider.ts diff --git a/js/src/server/server.ts b/packages/opencode/src/server/server.ts similarity index 100% rename from js/src/server/server.ts rename to packages/opencode/src/server/server.ts diff --git a/js/src/session/message.ts b/packages/opencode/src/session/message.ts similarity index 100% rename from js/src/session/message.ts rename to packages/opencode/src/session/message.ts diff --git a/js/src/session/prompt/anthropic.txt b/packages/opencode/src/session/prompt/anthropic.txt similarity index 100% rename from js/src/session/prompt/anthropic.txt rename to packages/opencode/src/session/prompt/anthropic.txt diff --git a/js/src/session/prompt/summarize.txt b/packages/opencode/src/session/prompt/summarize.txt similarity index 100% rename from js/src/session/prompt/summarize.txt rename to packages/opencode/src/session/prompt/summarize.txt diff --git a/js/src/session/prompt/title.txt b/packages/opencode/src/session/prompt/title.txt similarity index 100% rename from js/src/session/prompt/title.txt rename to packages/opencode/src/session/prompt/title.txt diff --git a/js/src/session/session.ts b/packages/opencode/src/session/session.ts similarity index 100% rename from js/src/session/session.ts rename to packages/opencode/src/session/session.ts diff --git a/js/src/share/share.ts b/packages/opencode/src/share/share.ts similarity index 100% rename from js/src/share/share.ts rename to packages/opencode/src/share/share.ts diff --git a/js/src/storage/storage.ts b/packages/opencode/src/storage/storage.ts similarity index 100% rename from js/src/storage/storage.ts rename to packages/opencode/src/storage/storage.ts diff --git a/js/src/tool/bash.ts b/packages/opencode/src/tool/bash.ts similarity index 100% rename from js/src/tool/bash.ts rename to packages/opencode/src/tool/bash.ts diff --git a/js/src/tool/edit.ts b/packages/opencode/src/tool/edit.ts similarity index 100% rename from js/src/tool/edit.ts rename to packages/opencode/src/tool/edit.ts diff --git a/js/src/tool/fetch.ts b/packages/opencode/src/tool/fetch.ts similarity index 100% rename from js/src/tool/fetch.ts rename to packages/opencode/src/tool/fetch.ts diff --git a/js/src/tool/glob.ts b/packages/opencode/src/tool/glob.ts similarity index 100% rename from js/src/tool/glob.ts rename to packages/opencode/src/tool/glob.ts diff --git a/js/src/tool/grep.ts b/packages/opencode/src/tool/grep.ts similarity index 100% rename from js/src/tool/grep.ts rename to packages/opencode/src/tool/grep.ts diff --git a/js/src/tool/index.ts b/packages/opencode/src/tool/index.ts similarity index 100% rename from js/src/tool/index.ts rename to packages/opencode/src/tool/index.ts diff --git a/js/src/tool/ls.ts b/packages/opencode/src/tool/ls.ts similarity index 100% rename from js/src/tool/ls.ts rename to packages/opencode/src/tool/ls.ts diff --git a/js/src/tool/lsp-diagnostics.ts b/packages/opencode/src/tool/lsp-diagnostics.ts similarity index 100% rename from js/src/tool/lsp-diagnostics.ts rename to packages/opencode/src/tool/lsp-diagnostics.ts diff --git a/js/src/tool/lsp-hover.ts b/packages/opencode/src/tool/lsp-hover.ts similarity index 100% rename from js/src/tool/lsp-hover.ts rename to packages/opencode/src/tool/lsp-hover.ts diff --git a/js/src/tool/patch.ts b/packages/opencode/src/tool/patch.ts similarity index 100% rename from js/src/tool/patch.ts rename to packages/opencode/src/tool/patch.ts diff --git a/js/src/tool/tool.ts b/packages/opencode/src/tool/tool.ts similarity index 100% rename from js/src/tool/tool.ts rename to packages/opencode/src/tool/tool.ts diff --git a/js/src/tool/util/file-times.ts b/packages/opencode/src/tool/util/file-times.ts similarity index 100% rename from js/src/tool/util/file-times.ts rename to packages/opencode/src/tool/util/file-times.ts diff --git a/js/src/tool/view.ts b/packages/opencode/src/tool/view.ts similarity index 100% rename from js/src/tool/view.ts rename to packages/opencode/src/tool/view.ts diff --git a/js/src/util/context.ts b/packages/opencode/src/util/context.ts similarity index 100% rename from js/src/util/context.ts rename to packages/opencode/src/util/context.ts diff --git a/js/src/util/event.ts b/packages/opencode/src/util/event.ts similarity index 100% rename from js/src/util/event.ts rename to packages/opencode/src/util/event.ts diff --git a/js/src/util/log.ts b/packages/opencode/src/util/log.ts similarity index 100% rename from js/src/util/log.ts rename to packages/opencode/src/util/log.ts diff --git a/js/src/util/scrap.ts b/packages/opencode/src/util/scrap.ts similarity index 100% rename from js/src/util/scrap.ts rename to packages/opencode/src/util/scrap.ts diff --git a/js/test/tool/__snapshots__/tool.test.ts.snap b/packages/opencode/test/tool/__snapshots__/tool.test.ts.snap similarity index 100% rename from js/test/tool/__snapshots__/tool.test.ts.snap rename to packages/opencode/test/tool/__snapshots__/tool.test.ts.snap diff --git a/js/test/tool/tool.test.ts b/packages/opencode/test/tool/tool.test.ts similarity index 100% rename from js/test/tool/tool.test.ts rename to packages/opencode/test/tool/tool.test.ts diff --git a/js/tsconfig.json b/packages/opencode/tsconfig.json similarity index 100% rename from js/tsconfig.json rename to packages/opencode/tsconfig.json diff --git a/.goreleaser.yml b/packages/tui/.goreleaser.yml similarity index 100% rename from .goreleaser.yml rename to packages/tui/.goreleaser.yml diff --git a/packages/tui/app.log b/packages/tui/app.log new file mode 100644 index 00000000..b985bc5f --- /dev/null +++ b/packages/tui/app.log @@ -0,0 +1,8 @@ +time=2025-05-30T19:37:27.576-04:00 level=DEBUG msg="Set theme from config" theme=opencode +time=2025-05-30T19:37:27.580-04:00 level=INFO msg="Reading directory: /home/thdxr" +time=2025-05-30T19:37:29.815-04:00 level=INFO msg="Cancelling all subscriptions" +time=2025-05-30T19:37:29.815-04:00 level=INFO msg="subscription cancelled" name=status +time=2025-05-30T19:37:29.815-04:00 level=INFO msg="All subscription goroutines completed successfully" +time=2025-05-30T19:37:29.815-04:00 level=INFO msg="TUI message channel closed" +time=2025-05-30T19:37:29.815-04:00 level=INFO msg="All goroutines cleaned up" +time=2025-05-30T19:37:29.815-04:00 level=INFO msg="TUI exited" result="{width:272 height:73 currentPage:chat previousPage: pages:map[chat:0xc0002c4280] loadedPages:map[chat:true] status:{app:0xc0002aa690 queue:[] width:272 messageTTL:4000000000 activeUntil:{wall:0 ext:0 loc:}} app:0xc0002aa690 showPermissions:false permissions:0xc000279408 showHelp:false help:0xc00052da10 showQuit:true quit:0xc0004761f9 showSessionDialog:false sessionDialog:0xc0000adcc0 showCommandDialog:false commandDialog:0xc000429500 commands:[{ID:init Title:Initialize Project Description:Create/Update the CONTEXT.md memory file Handler:0xb6a7a0} {ID:compact_conversation Title:Compact Conversation Description:Summarize the current session to save tokens Handler:0xb6a620}] showModelDialog:false modelDialog:0xc000261860 showInitDialog:true initDialog:{width:272 height:73 selected:0 keys:{Tab:{keys:[] help:{Key: Desc:} disabled:false} Left:{keys:[] help:{Key: Desc:} disabled:false} Right:{keys:[] help:{Key: Desc:} disabled:false} Enter:{keys:[] help:{Key: Desc:} disabled:false} Escape:{keys:[] help:{Key: Desc:} disabled:false} Y:{keys:[] help:{Key: Desc:} disabled:false} N:{keys:[] help:{Key: Desc:} disabled:false}}} showFilepicker:false filepicker:0xc0000d6c88 showThemeDialog:false themeDialog:0xc0000adf00 showMultiArgumentsDialog:false multiArgumentsDialog:{width:0 height:0 inputs:[] focusIndex:0 keys:{Enter:{keys:[] help:{Key: Desc:} disabled:false} Escape:{keys:[] help:{Key: Desc:} disabled:false}} commandID: content: argNames:[]} showToolsDialog:false toolsDialog:0xc0000adf40}" diff --git a/cmd/root.go b/packages/tui/cmd/root.go similarity index 100% rename from cmd/root.go rename to packages/tui/cmd/root.go diff --git a/go.mod b/packages/tui/go.mod similarity index 100% rename from go.mod rename to packages/tui/go.mod diff --git a/go.sum b/packages/tui/go.sum similarity index 100% rename from go.sum rename to packages/tui/go.sum diff --git a/internal/completions/files-folders.go b/packages/tui/internal/completions/files-folders.go similarity index 100% rename from internal/completions/files-folders.go rename to packages/tui/internal/completions/files-folders.go diff --git a/internal/config/config.go b/packages/tui/internal/config/config.go similarity index 100% rename from internal/config/config.go rename to packages/tui/internal/config/config.go diff --git a/internal/config/init.go b/packages/tui/internal/config/init.go similarity index 100% rename from internal/config/init.go rename to packages/tui/internal/config/init.go diff --git a/internal/diff/diff.go b/packages/tui/internal/diff/diff.go similarity index 100% rename from internal/diff/diff.go rename to packages/tui/internal/diff/diff.go diff --git a/internal/diff/diff_test.go b/packages/tui/internal/diff/diff_test.go similarity index 100% rename from internal/diff/diff_test.go rename to packages/tui/internal/diff/diff_test.go diff --git a/internal/diff/patch.go b/packages/tui/internal/diff/patch.go similarity index 100% rename from internal/diff/patch.go rename to packages/tui/internal/diff/patch.go diff --git a/internal/fileutil/fileutil.go b/packages/tui/internal/fileutil/fileutil.go similarity index 100% rename from internal/fileutil/fileutil.go rename to packages/tui/internal/fileutil/fileutil.go diff --git a/internal/format/format.go b/packages/tui/internal/format/format.go similarity index 100% rename from internal/format/format.go rename to packages/tui/internal/format/format.go diff --git a/internal/format/format_test.go b/packages/tui/internal/format/format_test.go similarity index 100% rename from internal/format/format_test.go rename to packages/tui/internal/format/format_test.go diff --git a/internal/pubsub/broker.go b/packages/tui/internal/pubsub/broker.go similarity index 100% rename from internal/pubsub/broker.go rename to packages/tui/internal/pubsub/broker.go diff --git a/internal/pubsub/broker_test.go b/packages/tui/internal/pubsub/broker_test.go similarity index 100% rename from internal/pubsub/broker_test.go rename to packages/tui/internal/pubsub/broker_test.go diff --git a/internal/pubsub/events.go b/packages/tui/internal/pubsub/events.go similarity index 100% rename from internal/pubsub/events.go rename to packages/tui/internal/pubsub/events.go diff --git a/internal/status/status.go b/packages/tui/internal/status/status.go similarity index 100% rename from internal/status/status.go rename to packages/tui/internal/status/status.go diff --git a/internal/tui/app/app.go b/packages/tui/internal/tui/app/app.go similarity index 100% rename from internal/tui/app/app.go rename to packages/tui/internal/tui/app/app.go diff --git a/internal/tui/app/bridge.go b/packages/tui/internal/tui/app/bridge.go similarity index 100% rename from internal/tui/app/bridge.go rename to packages/tui/internal/tui/app/bridge.go diff --git a/internal/tui/app/interfaces.go b/packages/tui/internal/tui/app/interfaces.go similarity index 100% rename from internal/tui/app/interfaces.go rename to packages/tui/internal/tui/app/interfaces.go diff --git a/internal/tui/components/chat/chat.go b/packages/tui/internal/tui/components/chat/chat.go similarity index 100% rename from internal/tui/components/chat/chat.go rename to packages/tui/internal/tui/components/chat/chat.go diff --git a/internal/tui/components/chat/editor.go b/packages/tui/internal/tui/components/chat/editor.go similarity index 100% rename from internal/tui/components/chat/editor.go rename to packages/tui/internal/tui/components/chat/editor.go diff --git a/internal/tui/components/chat/message.go b/packages/tui/internal/tui/components/chat/message.go similarity index 100% rename from internal/tui/components/chat/message.go rename to packages/tui/internal/tui/components/chat/message.go diff --git a/internal/tui/components/chat/messages.go b/packages/tui/internal/tui/components/chat/messages.go similarity index 100% rename from internal/tui/components/chat/messages.go rename to packages/tui/internal/tui/components/chat/messages.go diff --git a/internal/tui/components/chat/sidebar.go b/packages/tui/internal/tui/components/chat/sidebar.go similarity index 100% rename from internal/tui/components/chat/sidebar.go rename to packages/tui/internal/tui/components/chat/sidebar.go diff --git a/internal/tui/components/core/status.go b/packages/tui/internal/tui/components/core/status.go similarity index 100% rename from internal/tui/components/core/status.go rename to packages/tui/internal/tui/components/core/status.go diff --git a/internal/tui/components/dialog/arguments.go b/packages/tui/internal/tui/components/dialog/arguments.go similarity index 100% rename from internal/tui/components/dialog/arguments.go rename to packages/tui/internal/tui/components/dialog/arguments.go diff --git a/internal/tui/components/dialog/commands.go b/packages/tui/internal/tui/components/dialog/commands.go similarity index 100% rename from internal/tui/components/dialog/commands.go rename to packages/tui/internal/tui/components/dialog/commands.go diff --git a/internal/tui/components/dialog/complete.go b/packages/tui/internal/tui/components/dialog/complete.go similarity index 100% rename from internal/tui/components/dialog/complete.go rename to packages/tui/internal/tui/components/dialog/complete.go diff --git a/internal/tui/components/dialog/custom_commands.go b/packages/tui/internal/tui/components/dialog/custom_commands.go similarity index 100% rename from internal/tui/components/dialog/custom_commands.go rename to packages/tui/internal/tui/components/dialog/custom_commands.go diff --git a/internal/tui/components/dialog/custom_commands_test.go b/packages/tui/internal/tui/components/dialog/custom_commands_test.go similarity index 100% rename from internal/tui/components/dialog/custom_commands_test.go rename to packages/tui/internal/tui/components/dialog/custom_commands_test.go diff --git a/internal/tui/components/dialog/filepicker.go b/packages/tui/internal/tui/components/dialog/filepicker.go similarity index 100% rename from internal/tui/components/dialog/filepicker.go rename to packages/tui/internal/tui/components/dialog/filepicker.go diff --git a/internal/tui/components/dialog/help.go b/packages/tui/internal/tui/components/dialog/help.go similarity index 100% rename from internal/tui/components/dialog/help.go rename to packages/tui/internal/tui/components/dialog/help.go diff --git a/internal/tui/components/dialog/init.go b/packages/tui/internal/tui/components/dialog/init.go similarity index 100% rename from internal/tui/components/dialog/init.go rename to packages/tui/internal/tui/components/dialog/init.go diff --git a/internal/tui/components/dialog/models.go b/packages/tui/internal/tui/components/dialog/models.go similarity index 100% rename from internal/tui/components/dialog/models.go rename to packages/tui/internal/tui/components/dialog/models.go diff --git a/internal/tui/components/dialog/permission.go b/packages/tui/internal/tui/components/dialog/permission.go similarity index 100% rename from internal/tui/components/dialog/permission.go rename to packages/tui/internal/tui/components/dialog/permission.go diff --git a/internal/tui/components/dialog/quit.go b/packages/tui/internal/tui/components/dialog/quit.go similarity index 100% rename from internal/tui/components/dialog/quit.go rename to packages/tui/internal/tui/components/dialog/quit.go diff --git a/internal/tui/components/dialog/session.go b/packages/tui/internal/tui/components/dialog/session.go similarity index 100% rename from internal/tui/components/dialog/session.go rename to packages/tui/internal/tui/components/dialog/session.go diff --git a/internal/tui/components/dialog/theme.go b/packages/tui/internal/tui/components/dialog/theme.go similarity index 100% rename from internal/tui/components/dialog/theme.go rename to packages/tui/internal/tui/components/dialog/theme.go diff --git a/internal/tui/components/dialog/tools.go b/packages/tui/internal/tui/components/dialog/tools.go similarity index 100% rename from internal/tui/components/dialog/tools.go rename to packages/tui/internal/tui/components/dialog/tools.go diff --git a/internal/tui/components/qr/qr.go b/packages/tui/internal/tui/components/qr/qr.go similarity index 100% rename from internal/tui/components/qr/qr.go rename to packages/tui/internal/tui/components/qr/qr.go diff --git a/internal/tui/components/spinner/spinner.go b/packages/tui/internal/tui/components/spinner/spinner.go similarity index 100% rename from internal/tui/components/spinner/spinner.go rename to packages/tui/internal/tui/components/spinner/spinner.go diff --git a/internal/tui/components/spinner/spinner_test.go b/packages/tui/internal/tui/components/spinner/spinner_test.go similarity index 100% rename from internal/tui/components/spinner/spinner_test.go rename to packages/tui/internal/tui/components/spinner/spinner_test.go diff --git a/internal/tui/components/util/simple-list.go b/packages/tui/internal/tui/components/util/simple-list.go similarity index 100% rename from internal/tui/components/util/simple-list.go rename to packages/tui/internal/tui/components/util/simple-list.go diff --git a/internal/tui/image/clipboard_unix.go b/packages/tui/internal/tui/image/clipboard_unix.go similarity index 100% rename from internal/tui/image/clipboard_unix.go rename to packages/tui/internal/tui/image/clipboard_unix.go diff --git a/internal/tui/image/clipboard_windows.go b/packages/tui/internal/tui/image/clipboard_windows.go similarity index 100% rename from internal/tui/image/clipboard_windows.go rename to packages/tui/internal/tui/image/clipboard_windows.go diff --git a/internal/tui/image/images.go b/packages/tui/internal/tui/image/images.go similarity index 100% rename from internal/tui/image/images.go rename to packages/tui/internal/tui/image/images.go diff --git a/internal/tui/layout/container.go b/packages/tui/internal/tui/layout/container.go similarity index 100% rename from internal/tui/layout/container.go rename to packages/tui/internal/tui/layout/container.go diff --git a/internal/tui/layout/layout.go b/packages/tui/internal/tui/layout/layout.go similarity index 100% rename from internal/tui/layout/layout.go rename to packages/tui/internal/tui/layout/layout.go diff --git a/internal/tui/layout/overlay.go b/packages/tui/internal/tui/layout/overlay.go similarity index 100% rename from internal/tui/layout/overlay.go rename to packages/tui/internal/tui/layout/overlay.go diff --git a/internal/tui/layout/split.go b/packages/tui/internal/tui/layout/split.go similarity index 100% rename from internal/tui/layout/split.go rename to packages/tui/internal/tui/layout/split.go diff --git a/internal/tui/page/chat.go b/packages/tui/internal/tui/page/chat.go similarity index 100% rename from internal/tui/page/chat.go rename to packages/tui/internal/tui/page/chat.go diff --git a/internal/tui/page/page.go b/packages/tui/internal/tui/page/page.go similarity index 100% rename from internal/tui/page/page.go rename to packages/tui/internal/tui/page/page.go diff --git a/internal/tui/state/state.go b/packages/tui/internal/tui/state/state.go similarity index 100% rename from internal/tui/state/state.go rename to packages/tui/internal/tui/state/state.go diff --git a/internal/tui/styles/background.go b/packages/tui/internal/tui/styles/background.go similarity index 100% rename from internal/tui/styles/background.go rename to packages/tui/internal/tui/styles/background.go diff --git a/internal/tui/styles/icons.go b/packages/tui/internal/tui/styles/icons.go similarity index 100% rename from internal/tui/styles/icons.go rename to packages/tui/internal/tui/styles/icons.go diff --git a/internal/tui/styles/markdown.go b/packages/tui/internal/tui/styles/markdown.go similarity index 100% rename from internal/tui/styles/markdown.go rename to packages/tui/internal/tui/styles/markdown.go diff --git a/internal/tui/styles/styles.go b/packages/tui/internal/tui/styles/styles.go similarity index 100% rename from internal/tui/styles/styles.go rename to packages/tui/internal/tui/styles/styles.go diff --git a/internal/tui/theme/ayu.go b/packages/tui/internal/tui/theme/ayu.go similarity index 100% rename from internal/tui/theme/ayu.go rename to packages/tui/internal/tui/theme/ayu.go diff --git a/internal/tui/theme/catppuccin.go b/packages/tui/internal/tui/theme/catppuccin.go similarity index 100% rename from internal/tui/theme/catppuccin.go rename to packages/tui/internal/tui/theme/catppuccin.go diff --git a/internal/tui/theme/dracula.go b/packages/tui/internal/tui/theme/dracula.go similarity index 100% rename from internal/tui/theme/dracula.go rename to packages/tui/internal/tui/theme/dracula.go diff --git a/internal/tui/theme/flexoki.go b/packages/tui/internal/tui/theme/flexoki.go similarity index 100% rename from internal/tui/theme/flexoki.go rename to packages/tui/internal/tui/theme/flexoki.go diff --git a/internal/tui/theme/gruvbox.go b/packages/tui/internal/tui/theme/gruvbox.go similarity index 100% rename from internal/tui/theme/gruvbox.go rename to packages/tui/internal/tui/theme/gruvbox.go diff --git a/internal/tui/theme/manager.go b/packages/tui/internal/tui/theme/manager.go similarity index 100% rename from internal/tui/theme/manager.go rename to packages/tui/internal/tui/theme/manager.go diff --git a/internal/tui/theme/monokai.go b/packages/tui/internal/tui/theme/monokai.go similarity index 100% rename from internal/tui/theme/monokai.go rename to packages/tui/internal/tui/theme/monokai.go diff --git a/internal/tui/theme/onedark.go b/packages/tui/internal/tui/theme/onedark.go similarity index 100% rename from internal/tui/theme/onedark.go rename to packages/tui/internal/tui/theme/onedark.go diff --git a/internal/tui/theme/opencode.go b/packages/tui/internal/tui/theme/opencode.go similarity index 100% rename from internal/tui/theme/opencode.go rename to packages/tui/internal/tui/theme/opencode.go diff --git a/internal/tui/theme/theme.go b/packages/tui/internal/tui/theme/theme.go similarity index 100% rename from internal/tui/theme/theme.go rename to packages/tui/internal/tui/theme/theme.go diff --git a/internal/tui/theme/theme_test.go b/packages/tui/internal/tui/theme/theme_test.go similarity index 100% rename from internal/tui/theme/theme_test.go rename to packages/tui/internal/tui/theme/theme_test.go diff --git a/internal/tui/theme/tokyonight.go b/packages/tui/internal/tui/theme/tokyonight.go similarity index 100% rename from internal/tui/theme/tokyonight.go rename to packages/tui/internal/tui/theme/tokyonight.go diff --git a/internal/tui/theme/tron.go b/packages/tui/internal/tui/theme/tron.go similarity index 100% rename from internal/tui/theme/tron.go rename to packages/tui/internal/tui/theme/tron.go diff --git a/internal/tui/tui.go b/packages/tui/internal/tui/tui.go similarity index 100% rename from internal/tui/tui.go rename to packages/tui/internal/tui/tui.go diff --git a/internal/tui/util/util.go b/packages/tui/internal/tui/util/util.go similarity index 100% rename from internal/tui/util/util.go rename to packages/tui/internal/tui/util/util.go diff --git a/internal/version/version.go b/packages/tui/internal/version/version.go similarity index 100% rename from internal/version/version.go rename to packages/tui/internal/version/version.go diff --git a/main.go b/packages/tui/main.go similarity index 100% rename from main.go rename to packages/tui/main.go diff --git a/pkg/client/.gitignore b/packages/tui/pkg/client/.gitignore similarity index 100% rename from pkg/client/.gitignore rename to packages/tui/pkg/client/.gitignore diff --git a/pkg/client/client.go b/packages/tui/pkg/client/client.go similarity index 100% rename from pkg/client/client.go rename to packages/tui/pkg/client/client.go diff --git a/pkg/client/event.go b/packages/tui/pkg/client/event.go similarity index 100% rename from pkg/client/event.go rename to packages/tui/pkg/client/event.go diff --git a/packages/tui/pkg/tui/theme/opencode.go b/packages/tui/pkg/tui/theme/opencode.go new file mode 100644 index 00000000..7ee6f15e --- /dev/null +++ b/packages/tui/pkg/tui/theme/opencode.go @@ -0,0 +1,276 @@ +package theme + +import ( + "github.com/charmbracelet/lipgloss" +) + +// OpenCodeTheme implements the Theme interface with OpenCode brand colors. +// It provides both dark and light variants. +type OpenCodeTheme struct { + BaseTheme +} + +// NewOpenCodeTheme creates a new instance of the OpenCode theme. +func NewOpenCodeTheme() *OpenCodeTheme { + // OpenCode color palette + // Dark mode colors + darkBackground := "#212121" + darkCurrentLine := "#252525" + darkSelection := "#303030" + darkForeground := "#e0e0e0" + darkComment := "#6a6a6a" + darkPrimary := "#fab283" // Primary orange/gold + darkSecondary := "#5c9cf5" // Secondary blue + darkAccent := "#9d7cd8" // Accent purple + darkRed := "#e06c75" // Error red + darkOrange := "#f5a742" // Warning orange + darkGreen := "#7fd88f" // Success green + darkCyan := "#56b6c2" // Info cyan + darkYellow := "#e5c07b" // Emphasized text + darkBorder := "#4b4c5c" // Border color + + // Light mode colors + lightBackground := "#f8f8f8" + lightCurrentLine := "#f0f0f0" + lightSelection := "#e5e5e6" + lightForeground := "#2a2a2a" + lightComment := "#8a8a8a" + lightPrimary := "#3b7dd8" // Primary blue + lightSecondary := "#7b5bb6" // Secondary purple + lightAccent := "#d68c27" // Accent orange/gold + lightRed := "#d1383d" // Error red + lightOrange := "#d68c27" // Warning orange + lightGreen := "#3d9a57" // Success green + lightCyan := "#318795" // Info cyan + lightYellow := "#b0851f" // Emphasized text + lightBorder := "#d3d3d3" // Border color + + theme := &OpenCodeTheme{} + + // Base colors + theme.PrimaryColor = lipgloss.AdaptiveColor{ + Dark: darkPrimary, + Light: lightPrimary, + } + theme.SecondaryColor = lipgloss.AdaptiveColor{ + Dark: darkSecondary, + Light: lightSecondary, + } + theme.AccentColor = lipgloss.AdaptiveColor{ + Dark: darkAccent, + Light: lightAccent, + } + + // Status colors + theme.ErrorColor = lipgloss.AdaptiveColor{ + Dark: darkRed, + Light: lightRed, + } + theme.WarningColor = lipgloss.AdaptiveColor{ + Dark: darkOrange, + Light: lightOrange, + } + theme.SuccessColor = lipgloss.AdaptiveColor{ + Dark: darkGreen, + Light: lightGreen, + } + theme.InfoColor = lipgloss.AdaptiveColor{ + Dark: darkCyan, + Light: lightCyan, + } + + // Text colors + theme.TextColor = lipgloss.AdaptiveColor{ + Dark: darkForeground, + Light: lightForeground, + } + theme.TextMutedColor = lipgloss.AdaptiveColor{ + Dark: darkComment, + Light: lightComment, + } + theme.TextEmphasizedColor = lipgloss.AdaptiveColor{ + Dark: darkYellow, + Light: lightYellow, + } + + // Background colors + theme.BackgroundColor = lipgloss.AdaptiveColor{ + Dark: darkBackground, + Light: lightBackground, + } + theme.BackgroundSecondaryColor = lipgloss.AdaptiveColor{ + Dark: darkCurrentLine, + Light: lightCurrentLine, + } + theme.BackgroundDarkerColor = lipgloss.AdaptiveColor{ + Dark: "#121212", // Slightly darker than background + Light: "#ffffff", // Slightly lighter than background + } + + // Border colors + theme.BorderNormalColor = lipgloss.AdaptiveColor{ + Dark: darkBorder, + Light: lightBorder, + } + theme.BorderFocusedColor = lipgloss.AdaptiveColor{ + Dark: darkPrimary, + Light: lightPrimary, + } + theme.BorderDimColor = lipgloss.AdaptiveColor{ + Dark: darkSelection, + Light: lightSelection, + } + + // Diff view colors + theme.DiffAddedColor = lipgloss.AdaptiveColor{ + Dark: "#478247", + Light: "#2E7D32", + } + theme.DiffRemovedColor = lipgloss.AdaptiveColor{ + Dark: "#7C4444", + Light: "#C62828", + } + theme.DiffContextColor = lipgloss.AdaptiveColor{ + Dark: "#a0a0a0", + Light: "#757575", + } + theme.DiffHunkHeaderColor = lipgloss.AdaptiveColor{ + Dark: "#a0a0a0", + Light: "#757575", + } + theme.DiffHighlightAddedColor = lipgloss.AdaptiveColor{ + Dark: "#DAFADA", + Light: "#A5D6A7", + } + theme.DiffHighlightRemovedColor = lipgloss.AdaptiveColor{ + Dark: "#FADADD", + Light: "#EF9A9A", + } + theme.DiffAddedBgColor = lipgloss.AdaptiveColor{ + Dark: "#303A30", + Light: "#E8F5E9", + } + theme.DiffRemovedBgColor = lipgloss.AdaptiveColor{ + Dark: "#3A3030", + Light: "#FFEBEE", + } + theme.DiffContextBgColor = lipgloss.AdaptiveColor{ + Dark: darkBackground, + Light: lightBackground, + } + theme.DiffLineNumberColor = lipgloss.AdaptiveColor{ + Dark: "#888888", + Light: "#9E9E9E", + } + theme.DiffAddedLineNumberBgColor = lipgloss.AdaptiveColor{ + Dark: "#293229", + Light: "#C8E6C9", + } + theme.DiffRemovedLineNumberBgColor = lipgloss.AdaptiveColor{ + Dark: "#332929", + Light: "#FFCDD2", + } + + // Markdown colors + theme.MarkdownTextColor = lipgloss.AdaptiveColor{ + Dark: darkForeground, + Light: lightForeground, + } + theme.MarkdownHeadingColor = lipgloss.AdaptiveColor{ + Dark: darkSecondary, + Light: lightSecondary, + } + theme.MarkdownLinkColor = lipgloss.AdaptiveColor{ + Dark: darkPrimary, + Light: lightPrimary, + } + theme.MarkdownLinkTextColor = lipgloss.AdaptiveColor{ + Dark: darkCyan, + Light: lightCyan, + } + theme.MarkdownCodeColor = lipgloss.AdaptiveColor{ + Dark: darkGreen, + Light: lightGreen, + } + theme.MarkdownBlockQuoteColor = lipgloss.AdaptiveColor{ + Dark: darkYellow, + Light: lightYellow, + } + theme.MarkdownEmphColor = lipgloss.AdaptiveColor{ + Dark: darkYellow, + Light: lightYellow, + } + theme.MarkdownStrongColor = lipgloss.AdaptiveColor{ + Dark: darkAccent, + Light: lightAccent, + } + theme.MarkdownHorizontalRuleColor = lipgloss.AdaptiveColor{ + Dark: darkComment, + Light: lightComment, + } + theme.MarkdownListItemColor = lipgloss.AdaptiveColor{ + Dark: darkPrimary, + Light: lightPrimary, + } + theme.MarkdownListEnumerationColor = lipgloss.AdaptiveColor{ + Dark: darkCyan, + Light: lightCyan, + } + theme.MarkdownImageColor = lipgloss.AdaptiveColor{ + Dark: darkPrimary, + Light: lightPrimary, + } + theme.MarkdownImageTextColor = lipgloss.AdaptiveColor{ + Dark: darkCyan, + Light: lightCyan, + } + theme.MarkdownCodeBlockColor = lipgloss.AdaptiveColor{ + Dark: darkForeground, + Light: lightForeground, + } + + // Syntax highlighting colors + theme.SyntaxCommentColor = lipgloss.AdaptiveColor{ + Dark: darkComment, + Light: lightComment, + } + theme.SyntaxKeywordColor = lipgloss.AdaptiveColor{ + Dark: darkSecondary, + Light: lightSecondary, + } + theme.SyntaxFunctionColor = lipgloss.AdaptiveColor{ + Dark: darkPrimary, + Light: lightPrimary, + } + theme.SyntaxVariableColor = lipgloss.AdaptiveColor{ + Dark: darkRed, + Light: lightRed, + } + theme.SyntaxStringColor = lipgloss.AdaptiveColor{ + Dark: darkGreen, + Light: lightGreen, + } + theme.SyntaxNumberColor = lipgloss.AdaptiveColor{ + Dark: darkAccent, + Light: lightAccent, + } + theme.SyntaxTypeColor = lipgloss.AdaptiveColor{ + Dark: darkYellow, + Light: lightYellow, + } + theme.SyntaxOperatorColor = lipgloss.AdaptiveColor{ + Dark: darkCyan, + Light: lightCyan, + } + theme.SyntaxPunctuationColor = lipgloss.AdaptiveColor{ + Dark: darkForeground, + Light: lightForeground, + } + + return theme +} + +func init() { + // Register the OpenCode theme with the theme manager + RegisterTheme("opencode", NewOpenCodeTheme()) +} diff --git a/app/packages/web/.gitignore b/packages/web/.gitignore similarity index 100% rename from app/packages/web/.gitignore rename to packages/web/.gitignore diff --git a/app/packages/web/README.md b/packages/web/README.md similarity index 100% rename from app/packages/web/README.md rename to packages/web/README.md diff --git a/app/packages/web/astro.config.mjs b/packages/web/astro.config.mjs similarity index 100% rename from app/packages/web/astro.config.mjs rename to packages/web/astro.config.mjs diff --git a/app/packages/web/package.json b/packages/web/package.json similarity index 96% rename from app/packages/web/package.json rename to packages/web/package.json index aa0b1dc0..33b3dc4d 100644 --- a/app/packages/web/package.json +++ b/packages/web/package.json @@ -1,5 +1,5 @@ { - "name": "web", + "name": "@opencode/web", "type": "module", "version": "0.0.1", "scripts": { diff --git a/app/packages/web/public/favicon.svg b/packages/web/public/favicon.svg similarity index 100% rename from app/packages/web/public/favicon.svg rename to packages/web/public/favicon.svg diff --git a/app/packages/web/public/social-share.png b/packages/web/public/social-share.png similarity index 100% rename from app/packages/web/public/social-share.png rename to packages/web/public/social-share.png diff --git a/app/packages/web/src/assets/lander/check.svg b/packages/web/src/assets/lander/check.svg similarity index 100% rename from app/packages/web/src/assets/lander/check.svg rename to packages/web/src/assets/lander/check.svg diff --git a/app/packages/web/src/assets/lander/copy.svg b/packages/web/src/assets/lander/copy.svg similarity index 100% rename from app/packages/web/src/assets/lander/copy.svg rename to packages/web/src/assets/lander/copy.svg diff --git a/app/packages/web/src/assets/logo-dark.svg b/packages/web/src/assets/logo-dark.svg similarity index 100% rename from app/packages/web/src/assets/logo-dark.svg rename to packages/web/src/assets/logo-dark.svg diff --git a/app/packages/web/src/assets/logo-light.svg b/packages/web/src/assets/logo-light.svg similarity index 100% rename from app/packages/web/src/assets/logo-light.svg rename to packages/web/src/assets/logo-light.svg diff --git a/app/packages/web/src/components/CodeBlock.tsx b/packages/web/src/components/CodeBlock.tsx similarity index 100% rename from app/packages/web/src/components/CodeBlock.tsx rename to packages/web/src/components/CodeBlock.tsx diff --git a/app/packages/web/src/components/DiffView.tsx b/packages/web/src/components/DiffView.tsx similarity index 100% rename from app/packages/web/src/components/DiffView.tsx rename to packages/web/src/components/DiffView.tsx diff --git a/app/packages/web/src/components/Header.astro b/packages/web/src/components/Header.astro similarity index 100% rename from app/packages/web/src/components/Header.astro rename to packages/web/src/components/Header.astro diff --git a/app/packages/web/src/components/Hero.astro b/packages/web/src/components/Hero.astro similarity index 100% rename from app/packages/web/src/components/Hero.astro rename to packages/web/src/components/Hero.astro diff --git a/app/packages/web/src/components/Lander.astro b/packages/web/src/components/Lander.astro similarity index 100% rename from app/packages/web/src/components/Lander.astro rename to packages/web/src/components/Lander.astro diff --git a/app/packages/web/src/components/Share.tsx b/packages/web/src/components/Share.tsx similarity index 100% rename from app/packages/web/src/components/Share.tsx rename to packages/web/src/components/Share.tsx diff --git a/app/packages/web/src/components/diffview.module.css b/packages/web/src/components/diffview.module.css similarity index 100% rename from app/packages/web/src/components/diffview.module.css rename to packages/web/src/components/diffview.module.css diff --git a/app/packages/web/src/components/icons/custom.tsx b/packages/web/src/components/icons/custom.tsx similarity index 100% rename from app/packages/web/src/components/icons/custom.tsx rename to packages/web/src/components/icons/custom.tsx diff --git a/app/packages/web/src/components/icons/index.tsx b/packages/web/src/components/icons/index.tsx similarity index 100% rename from app/packages/web/src/components/icons/index.tsx rename to packages/web/src/components/icons/index.tsx diff --git a/app/packages/web/src/components/share.module.css b/packages/web/src/components/share.module.css similarity index 100% rename from app/packages/web/src/components/share.module.css rename to packages/web/src/components/share.module.css diff --git a/app/packages/web/src/content.config.ts b/packages/web/src/content.config.ts similarity index 100% rename from app/packages/web/src/content.config.ts rename to packages/web/src/content.config.ts diff --git a/app/packages/web/src/content/docs/docs/cli.mdx b/packages/web/src/content/docs/docs/cli.mdx similarity index 100% rename from app/packages/web/src/content/docs/docs/cli.mdx rename to packages/web/src/content/docs/docs/cli.mdx diff --git a/app/packages/web/src/content/docs/docs/config.mdx b/packages/web/src/content/docs/docs/config.mdx similarity index 100% rename from app/packages/web/src/content/docs/docs/config.mdx rename to packages/web/src/content/docs/docs/config.mdx diff --git a/app/packages/web/src/content/docs/docs/index.mdx b/packages/web/src/content/docs/docs/index.mdx similarity index 100% rename from app/packages/web/src/content/docs/docs/index.mdx rename to packages/web/src/content/docs/docs/index.mdx diff --git a/app/packages/web/src/content/docs/docs/lsp-servers.mdx b/packages/web/src/content/docs/docs/lsp-servers.mdx similarity index 100% rename from app/packages/web/src/content/docs/docs/lsp-servers.mdx rename to packages/web/src/content/docs/docs/lsp-servers.mdx diff --git a/app/packages/web/src/content/docs/docs/mcp-servers.mdx b/packages/web/src/content/docs/docs/mcp-servers.mdx similarity index 100% rename from app/packages/web/src/content/docs/docs/mcp-servers.mdx rename to packages/web/src/content/docs/docs/mcp-servers.mdx diff --git a/app/packages/web/src/content/docs/docs/models.mdx b/packages/web/src/content/docs/docs/models.mdx similarity index 100% rename from app/packages/web/src/content/docs/docs/models.mdx rename to packages/web/src/content/docs/docs/models.mdx diff --git a/app/packages/web/src/content/docs/docs/shortcuts.mdx b/packages/web/src/content/docs/docs/shortcuts.mdx similarity index 100% rename from app/packages/web/src/content/docs/docs/shortcuts.mdx rename to packages/web/src/content/docs/docs/shortcuts.mdx diff --git a/app/packages/web/src/content/docs/docs/themes.mdx b/packages/web/src/content/docs/docs/themes.mdx similarity index 100% rename from app/packages/web/src/content/docs/docs/themes.mdx rename to packages/web/src/content/docs/docs/themes.mdx diff --git a/app/packages/web/src/content/docs/index.mdx b/packages/web/src/content/docs/index.mdx similarity index 100% rename from app/packages/web/src/content/docs/index.mdx rename to packages/web/src/content/docs/index.mdx diff --git a/app/packages/web/src/pages/s/index.astro b/packages/web/src/pages/s/index.astro similarity index 100% rename from app/packages/web/src/pages/s/index.astro rename to packages/web/src/pages/s/index.astro diff --git a/app/packages/web/src/styles/custom.css b/packages/web/src/styles/custom.css similarity index 100% rename from app/packages/web/src/styles/custom.css rename to packages/web/src/styles/custom.css diff --git a/app/packages/web/sst-env.d.ts b/packages/web/sst-env.d.ts similarity index 100% rename from app/packages/web/sst-env.d.ts rename to packages/web/sst-env.d.ts diff --git a/app/packages/web/tsconfig.json b/packages/web/tsconfig.json similarity index 100% rename from app/packages/web/tsconfig.json rename to packages/web/tsconfig.json diff --git a/pkg/client/gen/openapi.json b/pkg/client/gen/openapi.json deleted file mode 100644 index c5f1c64b..00000000 --- a/pkg/client/gen/openapi.json +++ /dev/null @@ -1,898 +0,0 @@ -{ - "openapi": "3.0.0", - "info": { - "title": "opencode", - "description": "opencode api", - "version": "1.0.0" - }, - "paths": { - "/event": { - "get": { - "responses": { - "200": { - "description": "Event stream", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Event" - } - } - } - } - }, - "operationId": "getEvent", - "parameters": [], - "description": "Get events" - } - }, - "/session_create": { - "post": { - "responses": { - "200": { - "description": "Successfully created session", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/session.info" - } - } - } - } - }, - "operationId": "postSession_create", - "parameters": [], - "description": "Create a new session" - } - }, - "/session_share": { - "post": { - "responses": { - "200": { - "description": "Successfully shared session", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/session.info" - } - } - } - } - }, - "operationId": "postSession_share", - "parameters": [], - "description": "Share the session", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "sessionID": { - "type": "string" - } - }, - "required": [ - "sessionID" - ] - } - } - } - } - } - }, - "/session_messages": { - "post": { - "responses": { - "200": { - "description": "Successfully created session", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Message.Info" - } - } - } - } - } - }, - "operationId": "postSession_messages", - "parameters": [], - "description": "Get messages for a session", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "sessionID": { - "type": "string" - } - }, - "required": [ - "sessionID" - ] - } - } - } - } - } - }, - "/session_list": { - "post": { - "responses": { - "200": { - "description": "List of sessions", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/session.info" - } - } - } - } - } - }, - "operationId": "postSession_list", - "parameters": [], - "description": "List all sessions" - } - }, - "/session_abort": { - "post": { - "responses": { - "200": { - "description": "Aborted session", - "content": { - "application/json": { - "schema": { - "type": "boolean" - } - } - } - } - }, - "operationId": "postSession_abort", - "parameters": [], - "description": "Abort a session", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "sessionID": { - "type": "string" - } - }, - "required": [ - "sessionID" - ] - } - } - } - } - } - }, - "/session_summarize": { - "post": { - "responses": { - "200": { - "description": "Summarize the session", - "content": { - "application/json": { - "schema": { - "type": "boolean" - } - } - } - } - }, - "operationId": "postSession_summarize", - "parameters": [], - "description": "Summarize the session", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "sessionID": { - "type": "string" - }, - "providerID": { - "type": "string" - }, - "modelID": { - "type": "string" - } - }, - "required": [ - "sessionID", - "providerID", - "modelID" - ] - } - } - } - } - } - }, - "/session_chat": { - "post": { - "responses": { - "200": { - "description": "Chat with a model", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message.Info" - } - } - } - } - }, - "operationId": "postSession_chat", - "parameters": [], - "description": "Chat with a model", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "sessionID": { - "type": "string" - }, - "providerID": { - "type": "string" - }, - "modelID": { - "type": "string" - }, - "parts": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Message.Part" - } - } - }, - "required": [ - "sessionID", - "providerID", - "modelID", - "parts" - ] - } - } - } - } - } - }, - "/provider_list": { - "post": { - "responses": { - "200": { - "description": "List of providers", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Provider.Info" - } - } - } - } - } - }, - "operationId": "postProvider_list", - "parameters": [], - "description": "List all providers" - } - } - }, - "components": { - "schemas": { - "Event": { - "oneOf": [ - { - "$ref": "#/components/schemas/Event.storage.write" - }, - { - "$ref": "#/components/schemas/Event.lsp.client.diagnostics" - }, - { - "$ref": "#/components/schemas/Event.message.updated" - }, - { - "$ref": "#/components/schemas/Event.session.updated" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "storage.write": "#/components/schemas/Event.storage.write", - "lsp.client.diagnostics": "#/components/schemas/Event.lsp.client.diagnostics", - "message.updated": "#/components/schemas/Event.message.updated", - "session.updated": "#/components/schemas/Event.session.updated" - } - } - }, - "Event.storage.write": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "storage.write" - }, - "properties": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "content": {} - }, - "required": [ - "key" - ] - } - }, - "required": [ - "type", - "properties" - ] - }, - "Event.lsp.client.diagnostics": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "lsp.client.diagnostics" - }, - "properties": { - "type": "object", - "properties": { - "serverID": { - "type": "string" - }, - "path": { - "type": "string" - } - }, - "required": [ - "serverID", - "path" - ] - } - }, - "required": [ - "type", - "properties" - ] - }, - "Event.message.updated": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "message.updated" - }, - "properties": { - "type": "object", - "properties": { - "info": { - "$ref": "#/components/schemas/Message.Info" - } - }, - "required": [ - "info" - ] - } - }, - "required": [ - "type", - "properties" - ] - }, - "Message.Info": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "role": { - "type": "string", - "enum": [ - "system", - "user", - "assistant" - ] - }, - "parts": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Message.Part" - } - }, - "metadata": { - "type": "object", - "properties": { - "time": { - "type": "object", - "properties": { - "created": { - "type": "number" - }, - "completed": { - "type": "number" - } - }, - "required": [ - "created" - ] - }, - "sessionID": { - "type": "string" - }, - "tool": { - "type": "object", - "additionalProperties": {} - }, - "assistant": { - "type": "object", - "properties": { - "modelID": { - "type": "string" - }, - "providerID": { - "type": "string" - }, - "cost": { - "type": "number" - }, - "summary": { - "type": "boolean" - }, - "tokens": { - "type": "object", - "properties": { - "input": { - "type": "number" - }, - "output": { - "type": "number" - }, - "reasoning": { - "type": "number" - } - }, - "required": [ - "input", - "output", - "reasoning" - ] - } - }, - "required": [ - "modelID", - "providerID", - "cost", - "tokens" - ] - } - }, - "required": [ - "time", - "sessionID", - "tool" - ] - } - }, - "required": [ - "id", - "role", - "parts", - "metadata" - ] - }, - "Message.Part": { - "oneOf": [ - { - "$ref": "#/components/schemas/Message.Part.Text" - }, - { - "$ref": "#/components/schemas/Message.Part.Reasoning" - }, - { - "$ref": "#/components/schemas/Message.Part.ToolInvocation" - }, - { - "$ref": "#/components/schemas/Message.Part.SourceUrl" - }, - { - "$ref": "#/components/schemas/Message.Part.File" - }, - { - "$ref": "#/components/schemas/Message.Part.StepStart" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "text": "#/components/schemas/Message.Part.Text", - "reasoning": "#/components/schemas/Message.Part.Reasoning", - "tool-invocation": "#/components/schemas/Message.Part.ToolInvocation", - "source-url": "#/components/schemas/Message.Part.SourceUrl", - "file": "#/components/schemas/Message.Part.File", - "step-start": "#/components/schemas/Message.Part.StepStart" - } - } - }, - "Message.Part.Text": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "text" - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - }, - "Message.Part.Reasoning": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "reasoning" - }, - "text": { - "type": "string" - }, - "providerMetadata": { - "type": "object", - "additionalProperties": {} - } - }, - "required": [ - "type", - "text" - ] - }, - "Message.Part.ToolInvocation": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "tool-invocation" - }, - "toolInvocation": { - "$ref": "#/components/schemas/Message.ToolInvocation" - } - }, - "required": [ - "type", - "toolInvocation" - ] - }, - "Message.ToolInvocation": { - "oneOf": [ - { - "$ref": "#/components/schemas/Message.ToolInvocation.ToolCall" - }, - { - "$ref": "#/components/schemas/Message.ToolInvocation.ToolPartialCall" - }, - { - "$ref": "#/components/schemas/Message.ToolInvocation.ToolResult" - } - ], - "discriminator": { - "propertyName": "state", - "mapping": { - "call": "#/components/schemas/Message.ToolInvocation.ToolCall", - "partial-call": "#/components/schemas/Message.ToolInvocation.ToolPartialCall", - "result": "#/components/schemas/Message.ToolInvocation.ToolResult" - } - } - }, - "Message.ToolInvocation.ToolCall": { - "type": "object", - "properties": { - "state": { - "type": "string", - "const": "call" - }, - "step": { - "type": "number" - }, - "toolCallId": { - "type": "string" - }, - "toolName": { - "type": "string" - }, - "args": {} - }, - "required": [ - "state", - "toolCallId", - "toolName" - ] - }, - "Message.ToolInvocation.ToolPartialCall": { - "type": "object", - "properties": { - "state": { - "type": "string", - "const": "partial-call" - }, - "step": { - "type": "number" - }, - "toolCallId": { - "type": "string" - }, - "toolName": { - "type": "string" - }, - "args": {} - }, - "required": [ - "state", - "toolCallId", - "toolName" - ] - }, - "Message.ToolInvocation.ToolResult": { - "type": "object", - "properties": { - "state": { - "type": "string", - "const": "result" - }, - "step": { - "type": "number" - }, - "toolCallId": { - "type": "string" - }, - "toolName": { - "type": "string" - }, - "args": {}, - "result": { - "type": "string" - } - }, - "required": [ - "state", - "toolCallId", - "toolName", - "result" - ] - }, - "Message.Part.SourceUrl": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "source-url" - }, - "sourceId": { - "type": "string" - }, - "url": { - "type": "string" - }, - "title": { - "type": "string" - }, - "providerMetadata": { - "type": "object", - "additionalProperties": {} - } - }, - "required": [ - "type", - "sourceId", - "url" - ] - }, - "Message.Part.File": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "file" - }, - "mediaType": { - "type": "string" - }, - "filename": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "type", - "mediaType", - "url" - ] - }, - "Message.Part.StepStart": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "step-start" - } - }, - "required": [ - "type" - ] - }, - "Event.session.updated": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "session.updated" - }, - "properties": { - "type": "object", - "properties": { - "info": { - "$ref": "#/components/schemas/session.info" - } - }, - "required": [ - "info" - ] - } - }, - "required": [ - "type", - "properties" - ] - }, - "session.info": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^ses" - }, - "share": { - "type": "object", - "properties": { - "secret": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "secret", - "url" - ] - }, - "title": { - "type": "string" - }, - "time": { - "type": "object", - "properties": { - "created": { - "type": "number" - }, - "updated": { - "type": "number" - } - }, - "required": [ - "created", - "updated" - ] - } - }, - "required": [ - "id", - "title", - "time" - ] - }, - "Provider.Info": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "options": { - "type": "object", - "additionalProperties": {} - }, - "models": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Provider.Model" - } - } - }, - "required": [ - "id", - "name", - "models" - ] - }, - "Provider.Model": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "cost": { - "type": "object", - "properties": { - "input": { - "type": "number" - }, - "inputCached": { - "type": "number" - }, - "output": { - "type": "number" - }, - "outputCached": { - "type": "number" - } - }, - "required": [ - "input", - "inputCached", - "output", - "outputCached" - ] - }, - "contextWindow": { - "type": "number" - }, - "maxOutputTokens": { - "type": "number" - }, - "attachment": { - "type": "boolean" - }, - "reasoning": { - "type": "boolean" - } - }, - "required": [ - "id", - "cost", - "contextWindow", - "attachment" - ] - } - } - } -} \ No newline at end of file diff --git a/pkg/client/generated-client.go b/pkg/client/generated-client.go deleted file mode 100644 index 925468a6..00000000 --- a/pkg/client/generated-client.go +++ /dev/null @@ -1,1953 +0,0 @@ -// Package client provides primitives to interact with the openapi HTTP API. -// -// Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.4.1 DO NOT EDIT. -package client - -import ( - "bytes" - "context" - "encoding/json" - "errors" - "fmt" - "io" - "net/http" - "net/url" - "strings" - - "github.com/oapi-codegen/runtime" -) - -// Defines values for MessageInfoRole. -const ( - Assistant MessageInfoRole = "assistant" - System MessageInfoRole = "system" - User MessageInfoRole = "user" -) - -// Event defines model for Event. -type Event struct { - union json.RawMessage -} - -// EventLspClientDiagnostics defines model for Event.lsp.client.diagnostics. -type EventLspClientDiagnostics struct { - Properties struct { - Path string `json:"path"` - ServerID string `json:"serverID"` - } `json:"properties"` - Type string `json:"type"` -} - -// EventMessageUpdated defines model for Event.message.updated. -type EventMessageUpdated struct { - Properties struct { - Info MessageInfo `json:"info"` - } `json:"properties"` - Type string `json:"type"` -} - -// EventSessionUpdated defines model for Event.session.updated. -type EventSessionUpdated struct { - Properties struct { - Info SessionInfo `json:"info"` - } `json:"properties"` - Type string `json:"type"` -} - -// EventStorageWrite defines model for Event.storage.write. -type EventStorageWrite struct { - Properties struct { - Content *interface{} `json:"content,omitempty"` - Key string `json:"key"` - } `json:"properties"` - Type string `json:"type"` -} - -// MessageInfo defines model for Message.Info. -type MessageInfo struct { - Id string `json:"id"` - Metadata struct { - Assistant *struct { - Cost float32 `json:"cost"` - ModelID string `json:"modelID"` - ProviderID string `json:"providerID"` - Summary *bool `json:"summary,omitempty"` - Tokens struct { - Input float32 `json:"input"` - Output float32 `json:"output"` - Reasoning float32 `json:"reasoning"` - } `json:"tokens"` - } `json:"assistant,omitempty"` - SessionID string `json:"sessionID"` - Time struct { - Completed *float32 `json:"completed,omitempty"` - Created float32 `json:"created"` - } `json:"time"` - Tool map[string]interface{} `json:"tool"` - } `json:"metadata"` - Parts []MessagePart `json:"parts"` - Role MessageInfoRole `json:"role"` -} - -// MessageInfoRole defines model for MessageInfo.Role. -type MessageInfoRole string - -// MessagePart defines model for Message.Part. -type MessagePart struct { - union json.RawMessage -} - -// MessagePartFile defines model for Message.Part.File. -type MessagePartFile struct { - Filename *string `json:"filename,omitempty"` - MediaType string `json:"mediaType"` - Type string `json:"type"` - Url string `json:"url"` -} - -// MessagePartReasoning defines model for Message.Part.Reasoning. -type MessagePartReasoning struct { - ProviderMetadata *map[string]interface{} `json:"providerMetadata,omitempty"` - Text string `json:"text"` - Type string `json:"type"` -} - -// MessagePartSourceUrl defines model for Message.Part.SourceUrl. -type MessagePartSourceUrl struct { - ProviderMetadata *map[string]interface{} `json:"providerMetadata,omitempty"` - SourceId string `json:"sourceId"` - Title *string `json:"title,omitempty"` - Type string `json:"type"` - Url string `json:"url"` -} - -// MessagePartStepStart defines model for Message.Part.StepStart. -type MessagePartStepStart struct { - Type string `json:"type"` -} - -// MessagePartText defines model for Message.Part.Text. -type MessagePartText struct { - Text string `json:"text"` - Type string `json:"type"` -} - -// MessagePartToolInvocation defines model for Message.Part.ToolInvocation. -type MessagePartToolInvocation struct { - ToolInvocation MessageToolInvocation `json:"toolInvocation"` - Type string `json:"type"` -} - -// MessageToolInvocation defines model for Message.ToolInvocation. -type MessageToolInvocation struct { - union json.RawMessage -} - -// MessageToolInvocationToolCall defines model for Message.ToolInvocation.ToolCall. -type MessageToolInvocationToolCall struct { - Args *interface{} `json:"args,omitempty"` - State string `json:"state"` - Step *float32 `json:"step,omitempty"` - ToolCallId string `json:"toolCallId"` - ToolName string `json:"toolName"` -} - -// MessageToolInvocationToolPartialCall defines model for Message.ToolInvocation.ToolPartialCall. -type MessageToolInvocationToolPartialCall struct { - Args *interface{} `json:"args,omitempty"` - State string `json:"state"` - Step *float32 `json:"step,omitempty"` - ToolCallId string `json:"toolCallId"` - ToolName string `json:"toolName"` -} - -// MessageToolInvocationToolResult defines model for Message.ToolInvocation.ToolResult. -type MessageToolInvocationToolResult struct { - Args *interface{} `json:"args,omitempty"` - Result string `json:"result"` - State string `json:"state"` - Step *float32 `json:"step,omitempty"` - ToolCallId string `json:"toolCallId"` - ToolName string `json:"toolName"` -} - -// ProviderInfo defines model for Provider.Info. -type ProviderInfo struct { - Id string `json:"id"` - Models []ProviderModel `json:"models"` - Name string `json:"name"` - Options *map[string]interface{} `json:"options,omitempty"` -} - -// ProviderModel defines model for Provider.Model. -type ProviderModel struct { - Attachment bool `json:"attachment"` - ContextWindow float32 `json:"contextWindow"` - Cost struct { - Input float32 `json:"input"` - InputCached float32 `json:"inputCached"` - Output float32 `json:"output"` - OutputCached float32 `json:"outputCached"` - } `json:"cost"` - Id string `json:"id"` - MaxOutputTokens *float32 `json:"maxOutputTokens,omitempty"` - Name *string `json:"name,omitempty"` - Reasoning *bool `json:"reasoning,omitempty"` -} - -// SessionInfo defines model for session.info. -type SessionInfo struct { - Id string `json:"id"` - Share *struct { - Secret string `json:"secret"` - Url string `json:"url"` - } `json:"share,omitempty"` - Time struct { - Created float32 `json:"created"` - Updated float32 `json:"updated"` - } `json:"time"` - Title string `json:"title"` -} - -// PostSessionAbortJSONBody defines parameters for PostSessionAbort. -type PostSessionAbortJSONBody struct { - SessionID string `json:"sessionID"` -} - -// PostSessionChatJSONBody defines parameters for PostSessionChat. -type PostSessionChatJSONBody struct { - ModelID string `json:"modelID"` - Parts []MessagePart `json:"parts"` - ProviderID string `json:"providerID"` - SessionID string `json:"sessionID"` -} - -// PostSessionMessagesJSONBody defines parameters for PostSessionMessages. -type PostSessionMessagesJSONBody struct { - SessionID string `json:"sessionID"` -} - -// PostSessionShareJSONBody defines parameters for PostSessionShare. -type PostSessionShareJSONBody struct { - SessionID string `json:"sessionID"` -} - -// PostSessionSummarizeJSONBody defines parameters for PostSessionSummarize. -type PostSessionSummarizeJSONBody struct { - ModelID string `json:"modelID"` - ProviderID string `json:"providerID"` - SessionID string `json:"sessionID"` -} - -// PostSessionAbortJSONRequestBody defines body for PostSessionAbort for application/json ContentType. -type PostSessionAbortJSONRequestBody PostSessionAbortJSONBody - -// PostSessionChatJSONRequestBody defines body for PostSessionChat for application/json ContentType. -type PostSessionChatJSONRequestBody PostSessionChatJSONBody - -// PostSessionMessagesJSONRequestBody defines body for PostSessionMessages for application/json ContentType. -type PostSessionMessagesJSONRequestBody PostSessionMessagesJSONBody - -// PostSessionShareJSONRequestBody defines body for PostSessionShare for application/json ContentType. -type PostSessionShareJSONRequestBody PostSessionShareJSONBody - -// PostSessionSummarizeJSONRequestBody defines body for PostSessionSummarize for application/json ContentType. -type PostSessionSummarizeJSONRequestBody PostSessionSummarizeJSONBody - -// AsEventStorageWrite returns the union data inside the Event as a EventStorageWrite -func (t Event) AsEventStorageWrite() (EventStorageWrite, error) { - var body EventStorageWrite - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromEventStorageWrite overwrites any union data inside the Event as the provided EventStorageWrite -func (t *Event) FromEventStorageWrite(v EventStorageWrite) error { - v.Type = "storage.write" - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeEventStorageWrite performs a merge with any union data inside the Event, using the provided EventStorageWrite -func (t *Event) MergeEventStorageWrite(v EventStorageWrite) error { - v.Type = "storage.write" - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -// AsEventLspClientDiagnostics returns the union data inside the Event as a EventLspClientDiagnostics -func (t Event) AsEventLspClientDiagnostics() (EventLspClientDiagnostics, error) { - var body EventLspClientDiagnostics - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromEventLspClientDiagnostics overwrites any union data inside the Event as the provided EventLspClientDiagnostics -func (t *Event) FromEventLspClientDiagnostics(v EventLspClientDiagnostics) error { - v.Type = "lsp.client.diagnostics" - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeEventLspClientDiagnostics performs a merge with any union data inside the Event, using the provided EventLspClientDiagnostics -func (t *Event) MergeEventLspClientDiagnostics(v EventLspClientDiagnostics) error { - v.Type = "lsp.client.diagnostics" - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -// AsEventMessageUpdated returns the union data inside the Event as a EventMessageUpdated -func (t Event) AsEventMessageUpdated() (EventMessageUpdated, error) { - var body EventMessageUpdated - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromEventMessageUpdated overwrites any union data inside the Event as the provided EventMessageUpdated -func (t *Event) FromEventMessageUpdated(v EventMessageUpdated) error { - v.Type = "message.updated" - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeEventMessageUpdated performs a merge with any union data inside the Event, using the provided EventMessageUpdated -func (t *Event) MergeEventMessageUpdated(v EventMessageUpdated) error { - v.Type = "message.updated" - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -// AsEventSessionUpdated returns the union data inside the Event as a EventSessionUpdated -func (t Event) AsEventSessionUpdated() (EventSessionUpdated, error) { - var body EventSessionUpdated - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromEventSessionUpdated overwrites any union data inside the Event as the provided EventSessionUpdated -func (t *Event) FromEventSessionUpdated(v EventSessionUpdated) error { - v.Type = "session.updated" - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeEventSessionUpdated performs a merge with any union data inside the Event, using the provided EventSessionUpdated -func (t *Event) MergeEventSessionUpdated(v EventSessionUpdated) error { - v.Type = "session.updated" - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -func (t Event) Discriminator() (string, error) { - var discriminator struct { - Discriminator string `json:"type"` - } - err := json.Unmarshal(t.union, &discriminator) - return discriminator.Discriminator, err -} - -func (t Event) ValueByDiscriminator() (interface{}, error) { - discriminator, err := t.Discriminator() - if err != nil { - return nil, err - } - switch discriminator { - case "lsp.client.diagnostics": - return t.AsEventLspClientDiagnostics() - case "message.updated": - return t.AsEventMessageUpdated() - case "session.updated": - return t.AsEventSessionUpdated() - case "storage.write": - return t.AsEventStorageWrite() - default: - return nil, errors.New("unknown discriminator value: " + discriminator) - } -} - -func (t Event) MarshalJSON() ([]byte, error) { - b, err := t.union.MarshalJSON() - return b, err -} - -func (t *Event) UnmarshalJSON(b []byte) error { - err := t.union.UnmarshalJSON(b) - return err -} - -// AsMessagePartText returns the union data inside the MessagePart as a MessagePartText -func (t MessagePart) AsMessagePartText() (MessagePartText, error) { - var body MessagePartText - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromMessagePartText overwrites any union data inside the MessagePart as the provided MessagePartText -func (t *MessagePart) FromMessagePartText(v MessagePartText) error { - v.Type = "text" - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeMessagePartText performs a merge with any union data inside the MessagePart, using the provided MessagePartText -func (t *MessagePart) MergeMessagePartText(v MessagePartText) error { - v.Type = "text" - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -// AsMessagePartReasoning returns the union data inside the MessagePart as a MessagePartReasoning -func (t MessagePart) AsMessagePartReasoning() (MessagePartReasoning, error) { - var body MessagePartReasoning - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromMessagePartReasoning overwrites any union data inside the MessagePart as the provided MessagePartReasoning -func (t *MessagePart) FromMessagePartReasoning(v MessagePartReasoning) error { - v.Type = "reasoning" - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeMessagePartReasoning performs a merge with any union data inside the MessagePart, using the provided MessagePartReasoning -func (t *MessagePart) MergeMessagePartReasoning(v MessagePartReasoning) error { - v.Type = "reasoning" - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -// AsMessagePartToolInvocation returns the union data inside the MessagePart as a MessagePartToolInvocation -func (t MessagePart) AsMessagePartToolInvocation() (MessagePartToolInvocation, error) { - var body MessagePartToolInvocation - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromMessagePartToolInvocation overwrites any union data inside the MessagePart as the provided MessagePartToolInvocation -func (t *MessagePart) FromMessagePartToolInvocation(v MessagePartToolInvocation) error { - v.Type = "tool-invocation" - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeMessagePartToolInvocation performs a merge with any union data inside the MessagePart, using the provided MessagePartToolInvocation -func (t *MessagePart) MergeMessagePartToolInvocation(v MessagePartToolInvocation) error { - v.Type = "tool-invocation" - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -// AsMessagePartSourceUrl returns the union data inside the MessagePart as a MessagePartSourceUrl -func (t MessagePart) AsMessagePartSourceUrl() (MessagePartSourceUrl, error) { - var body MessagePartSourceUrl - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromMessagePartSourceUrl overwrites any union data inside the MessagePart as the provided MessagePartSourceUrl -func (t *MessagePart) FromMessagePartSourceUrl(v MessagePartSourceUrl) error { - v.Type = "source-url" - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeMessagePartSourceUrl performs a merge with any union data inside the MessagePart, using the provided MessagePartSourceUrl -func (t *MessagePart) MergeMessagePartSourceUrl(v MessagePartSourceUrl) error { - v.Type = "source-url" - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -// AsMessagePartFile returns the union data inside the MessagePart as a MessagePartFile -func (t MessagePart) AsMessagePartFile() (MessagePartFile, error) { - var body MessagePartFile - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromMessagePartFile overwrites any union data inside the MessagePart as the provided MessagePartFile -func (t *MessagePart) FromMessagePartFile(v MessagePartFile) error { - v.Type = "file" - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeMessagePartFile performs a merge with any union data inside the MessagePart, using the provided MessagePartFile -func (t *MessagePart) MergeMessagePartFile(v MessagePartFile) error { - v.Type = "file" - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -// AsMessagePartStepStart returns the union data inside the MessagePart as a MessagePartStepStart -func (t MessagePart) AsMessagePartStepStart() (MessagePartStepStart, error) { - var body MessagePartStepStart - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromMessagePartStepStart overwrites any union data inside the MessagePart as the provided MessagePartStepStart -func (t *MessagePart) FromMessagePartStepStart(v MessagePartStepStart) error { - v.Type = "step-start" - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeMessagePartStepStart performs a merge with any union data inside the MessagePart, using the provided MessagePartStepStart -func (t *MessagePart) MergeMessagePartStepStart(v MessagePartStepStart) error { - v.Type = "step-start" - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -func (t MessagePart) Discriminator() (string, error) { - var discriminator struct { - Discriminator string `json:"type"` - } - err := json.Unmarshal(t.union, &discriminator) - return discriminator.Discriminator, err -} - -func (t MessagePart) ValueByDiscriminator() (interface{}, error) { - discriminator, err := t.Discriminator() - if err != nil { - return nil, err - } - switch discriminator { - case "file": - return t.AsMessagePartFile() - case "reasoning": - return t.AsMessagePartReasoning() - case "source-url": - return t.AsMessagePartSourceUrl() - case "step-start": - return t.AsMessagePartStepStart() - case "text": - return t.AsMessagePartText() - case "tool-invocation": - return t.AsMessagePartToolInvocation() - default: - return nil, errors.New("unknown discriminator value: " + discriminator) - } -} - -func (t MessagePart) MarshalJSON() ([]byte, error) { - b, err := t.union.MarshalJSON() - return b, err -} - -func (t *MessagePart) UnmarshalJSON(b []byte) error { - err := t.union.UnmarshalJSON(b) - return err -} - -// AsMessageToolInvocationToolCall returns the union data inside the MessageToolInvocation as a MessageToolInvocationToolCall -func (t MessageToolInvocation) AsMessageToolInvocationToolCall() (MessageToolInvocationToolCall, error) { - var body MessageToolInvocationToolCall - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromMessageToolInvocationToolCall overwrites any union data inside the MessageToolInvocation as the provided MessageToolInvocationToolCall -func (t *MessageToolInvocation) FromMessageToolInvocationToolCall(v MessageToolInvocationToolCall) error { - v.State = "call" - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeMessageToolInvocationToolCall performs a merge with any union data inside the MessageToolInvocation, using the provided MessageToolInvocationToolCall -func (t *MessageToolInvocation) MergeMessageToolInvocationToolCall(v MessageToolInvocationToolCall) error { - v.State = "call" - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -// AsMessageToolInvocationToolPartialCall returns the union data inside the MessageToolInvocation as a MessageToolInvocationToolPartialCall -func (t MessageToolInvocation) AsMessageToolInvocationToolPartialCall() (MessageToolInvocationToolPartialCall, error) { - var body MessageToolInvocationToolPartialCall - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromMessageToolInvocationToolPartialCall overwrites any union data inside the MessageToolInvocation as the provided MessageToolInvocationToolPartialCall -func (t *MessageToolInvocation) FromMessageToolInvocationToolPartialCall(v MessageToolInvocationToolPartialCall) error { - v.State = "partial-call" - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeMessageToolInvocationToolPartialCall performs a merge with any union data inside the MessageToolInvocation, using the provided MessageToolInvocationToolPartialCall -func (t *MessageToolInvocation) MergeMessageToolInvocationToolPartialCall(v MessageToolInvocationToolPartialCall) error { - v.State = "partial-call" - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -// AsMessageToolInvocationToolResult returns the union data inside the MessageToolInvocation as a MessageToolInvocationToolResult -func (t MessageToolInvocation) AsMessageToolInvocationToolResult() (MessageToolInvocationToolResult, error) { - var body MessageToolInvocationToolResult - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromMessageToolInvocationToolResult overwrites any union data inside the MessageToolInvocation as the provided MessageToolInvocationToolResult -func (t *MessageToolInvocation) FromMessageToolInvocationToolResult(v MessageToolInvocationToolResult) error { - v.State = "result" - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeMessageToolInvocationToolResult performs a merge with any union data inside the MessageToolInvocation, using the provided MessageToolInvocationToolResult -func (t *MessageToolInvocation) MergeMessageToolInvocationToolResult(v MessageToolInvocationToolResult) error { - v.State = "result" - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -func (t MessageToolInvocation) Discriminator() (string, error) { - var discriminator struct { - Discriminator string `json:"state"` - } - err := json.Unmarshal(t.union, &discriminator) - return discriminator.Discriminator, err -} - -func (t MessageToolInvocation) ValueByDiscriminator() (interface{}, error) { - discriminator, err := t.Discriminator() - if err != nil { - return nil, err - } - switch discriminator { - case "call": - return t.AsMessageToolInvocationToolCall() - case "partial-call": - return t.AsMessageToolInvocationToolPartialCall() - case "result": - return t.AsMessageToolInvocationToolResult() - default: - return nil, errors.New("unknown discriminator value: " + discriminator) - } -} - -func (t MessageToolInvocation) MarshalJSON() ([]byte, error) { - b, err := t.union.MarshalJSON() - return b, err -} - -func (t *MessageToolInvocation) UnmarshalJSON(b []byte) error { - err := t.union.UnmarshalJSON(b) - return err -} - -// RequestEditorFn is the function signature for the RequestEditor callback function -type RequestEditorFn func(ctx context.Context, req *http.Request) error - -// Doer performs HTTP requests. -// -// The standard http.Client implements this interface. -type HttpRequestDoer interface { - Do(req *http.Request) (*http.Response, error) -} - -// Client which conforms to the OpenAPI3 specification for this service. -type Client struct { - // The endpoint of the server conforming to this interface, with scheme, - // https://api.deepmap.com for example. This can contain a path relative - // to the server, such as https://api.deepmap.com/dev-test, and all the - // paths in the swagger spec will be appended to the server. - Server string - - // Doer for performing requests, typically a *http.Client with any - // customized settings, such as certificate chains. - Client HttpRequestDoer - - // A list of callbacks for modifying requests which are generated before sending over - // the network. - RequestEditors []RequestEditorFn -} - -// ClientOption allows setting custom parameters during construction -type ClientOption func(*Client) error - -// Creates a new Client, with reasonable defaults -func NewClient(server string, opts ...ClientOption) (*Client, error) { - // create a client with sane default values - client := Client{ - Server: server, - } - // mutate client and add all optional params - for _, o := range opts { - if err := o(&client); err != nil { - return nil, err - } - } - // ensure the server URL always has a trailing slash - if !strings.HasSuffix(client.Server, "/") { - client.Server += "/" - } - // create httpClient, if not already present - if client.Client == nil { - client.Client = &http.Client{} - } - return &client, nil -} - -// WithHTTPClient allows overriding the default Doer, which is -// automatically created using http.Client. This is useful for tests. -func WithHTTPClient(doer HttpRequestDoer) ClientOption { - return func(c *Client) error { - c.Client = doer - return nil - } -} - -// WithRequestEditorFn allows setting up a callback function, which will be -// called right before sending the request. This can be used to mutate the request. -func WithRequestEditorFn(fn RequestEditorFn) ClientOption { - return func(c *Client) error { - c.RequestEditors = append(c.RequestEditors, fn) - return nil - } -} - -// The interface specification for the client above. -type ClientInterface interface { - // GetEvent request - GetEvent(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) - - // PostProviderList request - PostProviderList(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) - - // PostSessionAbortWithBody request with any body - PostSessionAbortWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) - - PostSessionAbort(ctx context.Context, body PostSessionAbortJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) - - // PostSessionChatWithBody request with any body - PostSessionChatWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) - - PostSessionChat(ctx context.Context, body PostSessionChatJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) - - // PostSessionCreate request - PostSessionCreate(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) - - // PostSessionList request - PostSessionList(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) - - // PostSessionMessagesWithBody request with any body - PostSessionMessagesWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) - - PostSessionMessages(ctx context.Context, body PostSessionMessagesJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) - - // PostSessionShareWithBody request with any body - PostSessionShareWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) - - PostSessionShare(ctx context.Context, body PostSessionShareJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) - - // PostSessionSummarizeWithBody request with any body - PostSessionSummarizeWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) - - PostSessionSummarize(ctx context.Context, body PostSessionSummarizeJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) -} - -func (c *Client) GetEvent(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewGetEventRequest(c.Server) - if err != nil { - return nil, err - } - req = req.WithContext(ctx) - if err := c.applyEditors(ctx, req, reqEditors); err != nil { - return nil, err - } - return c.Client.Do(req) -} - -func (c *Client) PostProviderList(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewPostProviderListRequest(c.Server) - if err != nil { - return nil, err - } - req = req.WithContext(ctx) - if err := c.applyEditors(ctx, req, reqEditors); err != nil { - return nil, err - } - return c.Client.Do(req) -} - -func (c *Client) PostSessionAbortWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewPostSessionAbortRequestWithBody(c.Server, contentType, body) - if err != nil { - return nil, err - } - req = req.WithContext(ctx) - if err := c.applyEditors(ctx, req, reqEditors); err != nil { - return nil, err - } - return c.Client.Do(req) -} - -func (c *Client) PostSessionAbort(ctx context.Context, body PostSessionAbortJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewPostSessionAbortRequest(c.Server, body) - if err != nil { - return nil, err - } - req = req.WithContext(ctx) - if err := c.applyEditors(ctx, req, reqEditors); err != nil { - return nil, err - } - return c.Client.Do(req) -} - -func (c *Client) PostSessionChatWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewPostSessionChatRequestWithBody(c.Server, contentType, body) - if err != nil { - return nil, err - } - req = req.WithContext(ctx) - if err := c.applyEditors(ctx, req, reqEditors); err != nil { - return nil, err - } - return c.Client.Do(req) -} - -func (c *Client) PostSessionChat(ctx context.Context, body PostSessionChatJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewPostSessionChatRequest(c.Server, body) - if err != nil { - return nil, err - } - req = req.WithContext(ctx) - if err := c.applyEditors(ctx, req, reqEditors); err != nil { - return nil, err - } - return c.Client.Do(req) -} - -func (c *Client) PostSessionCreate(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewPostSessionCreateRequest(c.Server) - if err != nil { - return nil, err - } - req = req.WithContext(ctx) - if err := c.applyEditors(ctx, req, reqEditors); err != nil { - return nil, err - } - return c.Client.Do(req) -} - -func (c *Client) PostSessionList(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewPostSessionListRequest(c.Server) - if err != nil { - return nil, err - } - req = req.WithContext(ctx) - if err := c.applyEditors(ctx, req, reqEditors); err != nil { - return nil, err - } - return c.Client.Do(req) -} - -func (c *Client) PostSessionMessagesWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewPostSessionMessagesRequestWithBody(c.Server, contentType, body) - if err != nil { - return nil, err - } - req = req.WithContext(ctx) - if err := c.applyEditors(ctx, req, reqEditors); err != nil { - return nil, err - } - return c.Client.Do(req) -} - -func (c *Client) PostSessionMessages(ctx context.Context, body PostSessionMessagesJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewPostSessionMessagesRequest(c.Server, body) - if err != nil { - return nil, err - } - req = req.WithContext(ctx) - if err := c.applyEditors(ctx, req, reqEditors); err != nil { - return nil, err - } - return c.Client.Do(req) -} - -func (c *Client) PostSessionShareWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewPostSessionShareRequestWithBody(c.Server, contentType, body) - if err != nil { - return nil, err - } - req = req.WithContext(ctx) - if err := c.applyEditors(ctx, req, reqEditors); err != nil { - return nil, err - } - return c.Client.Do(req) -} - -func (c *Client) PostSessionShare(ctx context.Context, body PostSessionShareJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewPostSessionShareRequest(c.Server, body) - if err != nil { - return nil, err - } - req = req.WithContext(ctx) - if err := c.applyEditors(ctx, req, reqEditors); err != nil { - return nil, err - } - return c.Client.Do(req) -} - -func (c *Client) PostSessionSummarizeWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewPostSessionSummarizeRequestWithBody(c.Server, contentType, body) - if err != nil { - return nil, err - } - req = req.WithContext(ctx) - if err := c.applyEditors(ctx, req, reqEditors); err != nil { - return nil, err - } - return c.Client.Do(req) -} - -func (c *Client) PostSessionSummarize(ctx context.Context, body PostSessionSummarizeJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewPostSessionSummarizeRequest(c.Server, body) - if err != nil { - return nil, err - } - req = req.WithContext(ctx) - if err := c.applyEditors(ctx, req, reqEditors); err != nil { - return nil, err - } - return c.Client.Do(req) -} - -// NewGetEventRequest generates requests for GetEvent -func NewGetEventRequest(server string) (*http.Request, error) { - var err error - - serverURL, err := url.Parse(server) - if err != nil { - return nil, err - } - - operationPath := fmt.Sprintf("/event") - if operationPath[0] == '/' { - operationPath = "." + operationPath - } - - queryURL, err := serverURL.Parse(operationPath) - if err != nil { - return nil, err - } - - req, err := http.NewRequest("GET", queryURL.String(), nil) - if err != nil { - return nil, err - } - - return req, nil -} - -// NewPostProviderListRequest generates requests for PostProviderList -func NewPostProviderListRequest(server string) (*http.Request, error) { - var err error - - serverURL, err := url.Parse(server) - if err != nil { - return nil, err - } - - operationPath := fmt.Sprintf("/provider_list") - if operationPath[0] == '/' { - operationPath = "." + operationPath - } - - queryURL, err := serverURL.Parse(operationPath) - if err != nil { - return nil, err - } - - req, err := http.NewRequest("POST", queryURL.String(), nil) - if err != nil { - return nil, err - } - - return req, nil -} - -// NewPostSessionAbortRequest calls the generic PostSessionAbort builder with application/json body -func NewPostSessionAbortRequest(server string, body PostSessionAbortJSONRequestBody) (*http.Request, error) { - var bodyReader io.Reader - buf, err := json.Marshal(body) - if err != nil { - return nil, err - } - bodyReader = bytes.NewReader(buf) - return NewPostSessionAbortRequestWithBody(server, "application/json", bodyReader) -} - -// NewPostSessionAbortRequestWithBody generates requests for PostSessionAbort with any type of body -func NewPostSessionAbortRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { - var err error - - serverURL, err := url.Parse(server) - if err != nil { - return nil, err - } - - operationPath := fmt.Sprintf("/session_abort") - if operationPath[0] == '/' { - operationPath = "." + operationPath - } - - queryURL, err := serverURL.Parse(operationPath) - if err != nil { - return nil, err - } - - req, err := http.NewRequest("POST", queryURL.String(), body) - if err != nil { - return nil, err - } - - req.Header.Add("Content-Type", contentType) - - return req, nil -} - -// NewPostSessionChatRequest calls the generic PostSessionChat builder with application/json body -func NewPostSessionChatRequest(server string, body PostSessionChatJSONRequestBody) (*http.Request, error) { - var bodyReader io.Reader - buf, err := json.Marshal(body) - if err != nil { - return nil, err - } - bodyReader = bytes.NewReader(buf) - return NewPostSessionChatRequestWithBody(server, "application/json", bodyReader) -} - -// NewPostSessionChatRequestWithBody generates requests for PostSessionChat with any type of body -func NewPostSessionChatRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { - var err error - - serverURL, err := url.Parse(server) - if err != nil { - return nil, err - } - - operationPath := fmt.Sprintf("/session_chat") - if operationPath[0] == '/' { - operationPath = "." + operationPath - } - - queryURL, err := serverURL.Parse(operationPath) - if err != nil { - return nil, err - } - - req, err := http.NewRequest("POST", queryURL.String(), body) - if err != nil { - return nil, err - } - - req.Header.Add("Content-Type", contentType) - - return req, nil -} - -// NewPostSessionCreateRequest generates requests for PostSessionCreate -func NewPostSessionCreateRequest(server string) (*http.Request, error) { - var err error - - serverURL, err := url.Parse(server) - if err != nil { - return nil, err - } - - operationPath := fmt.Sprintf("/session_create") - if operationPath[0] == '/' { - operationPath = "." + operationPath - } - - queryURL, err := serverURL.Parse(operationPath) - if err != nil { - return nil, err - } - - req, err := http.NewRequest("POST", queryURL.String(), nil) - if err != nil { - return nil, err - } - - return req, nil -} - -// NewPostSessionListRequest generates requests for PostSessionList -func NewPostSessionListRequest(server string) (*http.Request, error) { - var err error - - serverURL, err := url.Parse(server) - if err != nil { - return nil, err - } - - operationPath := fmt.Sprintf("/session_list") - if operationPath[0] == '/' { - operationPath = "." + operationPath - } - - queryURL, err := serverURL.Parse(operationPath) - if err != nil { - return nil, err - } - - req, err := http.NewRequest("POST", queryURL.String(), nil) - if err != nil { - return nil, err - } - - return req, nil -} - -// NewPostSessionMessagesRequest calls the generic PostSessionMessages builder with application/json body -func NewPostSessionMessagesRequest(server string, body PostSessionMessagesJSONRequestBody) (*http.Request, error) { - var bodyReader io.Reader - buf, err := json.Marshal(body) - if err != nil { - return nil, err - } - bodyReader = bytes.NewReader(buf) - return NewPostSessionMessagesRequestWithBody(server, "application/json", bodyReader) -} - -// NewPostSessionMessagesRequestWithBody generates requests for PostSessionMessages with any type of body -func NewPostSessionMessagesRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { - var err error - - serverURL, err := url.Parse(server) - if err != nil { - return nil, err - } - - operationPath := fmt.Sprintf("/session_messages") - if operationPath[0] == '/' { - operationPath = "." + operationPath - } - - queryURL, err := serverURL.Parse(operationPath) - if err != nil { - return nil, err - } - - req, err := http.NewRequest("POST", queryURL.String(), body) - if err != nil { - return nil, err - } - - req.Header.Add("Content-Type", contentType) - - return req, nil -} - -// NewPostSessionShareRequest calls the generic PostSessionShare builder with application/json body -func NewPostSessionShareRequest(server string, body PostSessionShareJSONRequestBody) (*http.Request, error) { - var bodyReader io.Reader - buf, err := json.Marshal(body) - if err != nil { - return nil, err - } - bodyReader = bytes.NewReader(buf) - return NewPostSessionShareRequestWithBody(server, "application/json", bodyReader) -} - -// NewPostSessionShareRequestWithBody generates requests for PostSessionShare with any type of body -func NewPostSessionShareRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { - var err error - - serverURL, err := url.Parse(server) - if err != nil { - return nil, err - } - - operationPath := fmt.Sprintf("/session_share") - if operationPath[0] == '/' { - operationPath = "." + operationPath - } - - queryURL, err := serverURL.Parse(operationPath) - if err != nil { - return nil, err - } - - req, err := http.NewRequest("POST", queryURL.String(), body) - if err != nil { - return nil, err - } - - req.Header.Add("Content-Type", contentType) - - return req, nil -} - -// NewPostSessionSummarizeRequest calls the generic PostSessionSummarize builder with application/json body -func NewPostSessionSummarizeRequest(server string, body PostSessionSummarizeJSONRequestBody) (*http.Request, error) { - var bodyReader io.Reader - buf, err := json.Marshal(body) - if err != nil { - return nil, err - } - bodyReader = bytes.NewReader(buf) - return NewPostSessionSummarizeRequestWithBody(server, "application/json", bodyReader) -} - -// NewPostSessionSummarizeRequestWithBody generates requests for PostSessionSummarize with any type of body -func NewPostSessionSummarizeRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { - var err error - - serverURL, err := url.Parse(server) - if err != nil { - return nil, err - } - - operationPath := fmt.Sprintf("/session_summarize") - if operationPath[0] == '/' { - operationPath = "." + operationPath - } - - queryURL, err := serverURL.Parse(operationPath) - if err != nil { - return nil, err - } - - req, err := http.NewRequest("POST", queryURL.String(), body) - if err != nil { - return nil, err - } - - req.Header.Add("Content-Type", contentType) - - return req, nil -} - -func (c *Client) applyEditors(ctx context.Context, req *http.Request, additionalEditors []RequestEditorFn) error { - for _, r := range c.RequestEditors { - if err := r(ctx, req); err != nil { - return err - } - } - for _, r := range additionalEditors { - if err := r(ctx, req); err != nil { - return err - } - } - return nil -} - -// ClientWithResponses builds on ClientInterface to offer response payloads -type ClientWithResponses struct { - ClientInterface -} - -// NewClientWithResponses creates a new ClientWithResponses, which wraps -// Client with return type handling -func NewClientWithResponses(server string, opts ...ClientOption) (*ClientWithResponses, error) { - client, err := NewClient(server, opts...) - if err != nil { - return nil, err - } - return &ClientWithResponses{client}, nil -} - -// WithBaseURL overrides the baseURL. -func WithBaseURL(baseURL string) ClientOption { - return func(c *Client) error { - newBaseURL, err := url.Parse(baseURL) - if err != nil { - return err - } - c.Server = newBaseURL.String() - return nil - } -} - -// ClientWithResponsesInterface is the interface specification for the client with responses above. -type ClientWithResponsesInterface interface { - // GetEventWithResponse request - GetEventWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetEventResponse, error) - - // PostProviderListWithResponse request - PostProviderListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*PostProviderListResponse, error) - - // PostSessionAbortWithBodyWithResponse request with any body - PostSessionAbortWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSessionAbortResponse, error) - - PostSessionAbortWithResponse(ctx context.Context, body PostSessionAbortJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSessionAbortResponse, error) - - // PostSessionChatWithBodyWithResponse request with any body - PostSessionChatWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSessionChatResponse, error) - - PostSessionChatWithResponse(ctx context.Context, body PostSessionChatJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSessionChatResponse, error) - - // PostSessionCreateWithResponse request - PostSessionCreateWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*PostSessionCreateResponse, error) - - // PostSessionListWithResponse request - PostSessionListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*PostSessionListResponse, error) - - // PostSessionMessagesWithBodyWithResponse request with any body - PostSessionMessagesWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSessionMessagesResponse, error) - - PostSessionMessagesWithResponse(ctx context.Context, body PostSessionMessagesJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSessionMessagesResponse, error) - - // PostSessionShareWithBodyWithResponse request with any body - PostSessionShareWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSessionShareResponse, error) - - PostSessionShareWithResponse(ctx context.Context, body PostSessionShareJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSessionShareResponse, error) - - // PostSessionSummarizeWithBodyWithResponse request with any body - PostSessionSummarizeWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSessionSummarizeResponse, error) - - PostSessionSummarizeWithResponse(ctx context.Context, body PostSessionSummarizeJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSessionSummarizeResponse, error) -} - -type GetEventResponse struct { - Body []byte - HTTPResponse *http.Response - JSON200 *Event -} - -// Status returns HTTPResponse.Status -func (r GetEventResponse) Status() string { - if r.HTTPResponse != nil { - return r.HTTPResponse.Status - } - return http.StatusText(0) -} - -// StatusCode returns HTTPResponse.StatusCode -func (r GetEventResponse) StatusCode() int { - if r.HTTPResponse != nil { - return r.HTTPResponse.StatusCode - } - return 0 -} - -type PostProviderListResponse struct { - Body []byte - HTTPResponse *http.Response - JSON200 *[]ProviderInfo -} - -// Status returns HTTPResponse.Status -func (r PostProviderListResponse) Status() string { - if r.HTTPResponse != nil { - return r.HTTPResponse.Status - } - return http.StatusText(0) -} - -// StatusCode returns HTTPResponse.StatusCode -func (r PostProviderListResponse) StatusCode() int { - if r.HTTPResponse != nil { - return r.HTTPResponse.StatusCode - } - return 0 -} - -type PostSessionAbortResponse struct { - Body []byte - HTTPResponse *http.Response - JSON200 *bool -} - -// Status returns HTTPResponse.Status -func (r PostSessionAbortResponse) Status() string { - if r.HTTPResponse != nil { - return r.HTTPResponse.Status - } - return http.StatusText(0) -} - -// StatusCode returns HTTPResponse.StatusCode -func (r PostSessionAbortResponse) StatusCode() int { - if r.HTTPResponse != nil { - return r.HTTPResponse.StatusCode - } - return 0 -} - -type PostSessionChatResponse struct { - Body []byte - HTTPResponse *http.Response - JSON200 *MessageInfo -} - -// Status returns HTTPResponse.Status -func (r PostSessionChatResponse) Status() string { - if r.HTTPResponse != nil { - return r.HTTPResponse.Status - } - return http.StatusText(0) -} - -// StatusCode returns HTTPResponse.StatusCode -func (r PostSessionChatResponse) StatusCode() int { - if r.HTTPResponse != nil { - return r.HTTPResponse.StatusCode - } - return 0 -} - -type PostSessionCreateResponse struct { - Body []byte - HTTPResponse *http.Response - JSON200 *SessionInfo -} - -// Status returns HTTPResponse.Status -func (r PostSessionCreateResponse) Status() string { - if r.HTTPResponse != nil { - return r.HTTPResponse.Status - } - return http.StatusText(0) -} - -// StatusCode returns HTTPResponse.StatusCode -func (r PostSessionCreateResponse) StatusCode() int { - if r.HTTPResponse != nil { - return r.HTTPResponse.StatusCode - } - return 0 -} - -type PostSessionListResponse struct { - Body []byte - HTTPResponse *http.Response - JSON200 *[]SessionInfo -} - -// Status returns HTTPResponse.Status -func (r PostSessionListResponse) Status() string { - if r.HTTPResponse != nil { - return r.HTTPResponse.Status - } - return http.StatusText(0) -} - -// StatusCode returns HTTPResponse.StatusCode -func (r PostSessionListResponse) StatusCode() int { - if r.HTTPResponse != nil { - return r.HTTPResponse.StatusCode - } - return 0 -} - -type PostSessionMessagesResponse struct { - Body []byte - HTTPResponse *http.Response - JSON200 *[]MessageInfo -} - -// Status returns HTTPResponse.Status -func (r PostSessionMessagesResponse) Status() string { - if r.HTTPResponse != nil { - return r.HTTPResponse.Status - } - return http.StatusText(0) -} - -// StatusCode returns HTTPResponse.StatusCode -func (r PostSessionMessagesResponse) StatusCode() int { - if r.HTTPResponse != nil { - return r.HTTPResponse.StatusCode - } - return 0 -} - -type PostSessionShareResponse struct { - Body []byte - HTTPResponse *http.Response - JSON200 *SessionInfo -} - -// Status returns HTTPResponse.Status -func (r PostSessionShareResponse) Status() string { - if r.HTTPResponse != nil { - return r.HTTPResponse.Status - } - return http.StatusText(0) -} - -// StatusCode returns HTTPResponse.StatusCode -func (r PostSessionShareResponse) StatusCode() int { - if r.HTTPResponse != nil { - return r.HTTPResponse.StatusCode - } - return 0 -} - -type PostSessionSummarizeResponse struct { - Body []byte - HTTPResponse *http.Response - JSON200 *bool -} - -// Status returns HTTPResponse.Status -func (r PostSessionSummarizeResponse) Status() string { - if r.HTTPResponse != nil { - return r.HTTPResponse.Status - } - return http.StatusText(0) -} - -// StatusCode returns HTTPResponse.StatusCode -func (r PostSessionSummarizeResponse) StatusCode() int { - if r.HTTPResponse != nil { - return r.HTTPResponse.StatusCode - } - return 0 -} - -// GetEventWithResponse request returning *GetEventResponse -func (c *ClientWithResponses) GetEventWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetEventResponse, error) { - rsp, err := c.GetEvent(ctx, reqEditors...) - if err != nil { - return nil, err - } - return ParseGetEventResponse(rsp) -} - -// PostProviderListWithResponse request returning *PostProviderListResponse -func (c *ClientWithResponses) PostProviderListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*PostProviderListResponse, error) { - rsp, err := c.PostProviderList(ctx, reqEditors...) - if err != nil { - return nil, err - } - return ParsePostProviderListResponse(rsp) -} - -// PostSessionAbortWithBodyWithResponse request with arbitrary body returning *PostSessionAbortResponse -func (c *ClientWithResponses) PostSessionAbortWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSessionAbortResponse, error) { - rsp, err := c.PostSessionAbortWithBody(ctx, contentType, body, reqEditors...) - if err != nil { - return nil, err - } - return ParsePostSessionAbortResponse(rsp) -} - -func (c *ClientWithResponses) PostSessionAbortWithResponse(ctx context.Context, body PostSessionAbortJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSessionAbortResponse, error) { - rsp, err := c.PostSessionAbort(ctx, body, reqEditors...) - if err != nil { - return nil, err - } - return ParsePostSessionAbortResponse(rsp) -} - -// PostSessionChatWithBodyWithResponse request with arbitrary body returning *PostSessionChatResponse -func (c *ClientWithResponses) PostSessionChatWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSessionChatResponse, error) { - rsp, err := c.PostSessionChatWithBody(ctx, contentType, body, reqEditors...) - if err != nil { - return nil, err - } - return ParsePostSessionChatResponse(rsp) -} - -func (c *ClientWithResponses) PostSessionChatWithResponse(ctx context.Context, body PostSessionChatJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSessionChatResponse, error) { - rsp, err := c.PostSessionChat(ctx, body, reqEditors...) - if err != nil { - return nil, err - } - return ParsePostSessionChatResponse(rsp) -} - -// PostSessionCreateWithResponse request returning *PostSessionCreateResponse -func (c *ClientWithResponses) PostSessionCreateWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*PostSessionCreateResponse, error) { - rsp, err := c.PostSessionCreate(ctx, reqEditors...) - if err != nil { - return nil, err - } - return ParsePostSessionCreateResponse(rsp) -} - -// PostSessionListWithResponse request returning *PostSessionListResponse -func (c *ClientWithResponses) PostSessionListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*PostSessionListResponse, error) { - rsp, err := c.PostSessionList(ctx, reqEditors...) - if err != nil { - return nil, err - } - return ParsePostSessionListResponse(rsp) -} - -// PostSessionMessagesWithBodyWithResponse request with arbitrary body returning *PostSessionMessagesResponse -func (c *ClientWithResponses) PostSessionMessagesWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSessionMessagesResponse, error) { - rsp, err := c.PostSessionMessagesWithBody(ctx, contentType, body, reqEditors...) - if err != nil { - return nil, err - } - return ParsePostSessionMessagesResponse(rsp) -} - -func (c *ClientWithResponses) PostSessionMessagesWithResponse(ctx context.Context, body PostSessionMessagesJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSessionMessagesResponse, error) { - rsp, err := c.PostSessionMessages(ctx, body, reqEditors...) - if err != nil { - return nil, err - } - return ParsePostSessionMessagesResponse(rsp) -} - -// PostSessionShareWithBodyWithResponse request with arbitrary body returning *PostSessionShareResponse -func (c *ClientWithResponses) PostSessionShareWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSessionShareResponse, error) { - rsp, err := c.PostSessionShareWithBody(ctx, contentType, body, reqEditors...) - if err != nil { - return nil, err - } - return ParsePostSessionShareResponse(rsp) -} - -func (c *ClientWithResponses) PostSessionShareWithResponse(ctx context.Context, body PostSessionShareJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSessionShareResponse, error) { - rsp, err := c.PostSessionShare(ctx, body, reqEditors...) - if err != nil { - return nil, err - } - return ParsePostSessionShareResponse(rsp) -} - -// PostSessionSummarizeWithBodyWithResponse request with arbitrary body returning *PostSessionSummarizeResponse -func (c *ClientWithResponses) PostSessionSummarizeWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSessionSummarizeResponse, error) { - rsp, err := c.PostSessionSummarizeWithBody(ctx, contentType, body, reqEditors...) - if err != nil { - return nil, err - } - return ParsePostSessionSummarizeResponse(rsp) -} - -func (c *ClientWithResponses) PostSessionSummarizeWithResponse(ctx context.Context, body PostSessionSummarizeJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSessionSummarizeResponse, error) { - rsp, err := c.PostSessionSummarize(ctx, body, reqEditors...) - if err != nil { - return nil, err - } - return ParsePostSessionSummarizeResponse(rsp) -} - -// ParseGetEventResponse parses an HTTP response from a GetEventWithResponse call -func ParseGetEventResponse(rsp *http.Response) (*GetEventResponse, error) { - bodyBytes, err := io.ReadAll(rsp.Body) - defer func() { _ = rsp.Body.Close() }() - if err != nil { - return nil, err - } - - response := &GetEventResponse{ - Body: bodyBytes, - HTTPResponse: rsp, - } - - switch { - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest Event - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON200 = &dest - - } - - return response, nil -} - -// ParsePostProviderListResponse parses an HTTP response from a PostProviderListWithResponse call -func ParsePostProviderListResponse(rsp *http.Response) (*PostProviderListResponse, error) { - bodyBytes, err := io.ReadAll(rsp.Body) - defer func() { _ = rsp.Body.Close() }() - if err != nil { - return nil, err - } - - response := &PostProviderListResponse{ - Body: bodyBytes, - HTTPResponse: rsp, - } - - switch { - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest []ProviderInfo - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON200 = &dest - - } - - return response, nil -} - -// ParsePostSessionAbortResponse parses an HTTP response from a PostSessionAbortWithResponse call -func ParsePostSessionAbortResponse(rsp *http.Response) (*PostSessionAbortResponse, error) { - bodyBytes, err := io.ReadAll(rsp.Body) - defer func() { _ = rsp.Body.Close() }() - if err != nil { - return nil, err - } - - response := &PostSessionAbortResponse{ - Body: bodyBytes, - HTTPResponse: rsp, - } - - switch { - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest bool - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON200 = &dest - - } - - return response, nil -} - -// ParsePostSessionChatResponse parses an HTTP response from a PostSessionChatWithResponse call -func ParsePostSessionChatResponse(rsp *http.Response) (*PostSessionChatResponse, error) { - bodyBytes, err := io.ReadAll(rsp.Body) - defer func() { _ = rsp.Body.Close() }() - if err != nil { - return nil, err - } - - response := &PostSessionChatResponse{ - Body: bodyBytes, - HTTPResponse: rsp, - } - - switch { - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest MessageInfo - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON200 = &dest - - } - - return response, nil -} - -// ParsePostSessionCreateResponse parses an HTTP response from a PostSessionCreateWithResponse call -func ParsePostSessionCreateResponse(rsp *http.Response) (*PostSessionCreateResponse, error) { - bodyBytes, err := io.ReadAll(rsp.Body) - defer func() { _ = rsp.Body.Close() }() - if err != nil { - return nil, err - } - - response := &PostSessionCreateResponse{ - Body: bodyBytes, - HTTPResponse: rsp, - } - - switch { - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest SessionInfo - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON200 = &dest - - } - - return response, nil -} - -// ParsePostSessionListResponse parses an HTTP response from a PostSessionListWithResponse call -func ParsePostSessionListResponse(rsp *http.Response) (*PostSessionListResponse, error) { - bodyBytes, err := io.ReadAll(rsp.Body) - defer func() { _ = rsp.Body.Close() }() - if err != nil { - return nil, err - } - - response := &PostSessionListResponse{ - Body: bodyBytes, - HTTPResponse: rsp, - } - - switch { - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest []SessionInfo - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON200 = &dest - - } - - return response, nil -} - -// ParsePostSessionMessagesResponse parses an HTTP response from a PostSessionMessagesWithResponse call -func ParsePostSessionMessagesResponse(rsp *http.Response) (*PostSessionMessagesResponse, error) { - bodyBytes, err := io.ReadAll(rsp.Body) - defer func() { _ = rsp.Body.Close() }() - if err != nil { - return nil, err - } - - response := &PostSessionMessagesResponse{ - Body: bodyBytes, - HTTPResponse: rsp, - } - - switch { - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest []MessageInfo - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON200 = &dest - - } - - return response, nil -} - -// ParsePostSessionShareResponse parses an HTTP response from a PostSessionShareWithResponse call -func ParsePostSessionShareResponse(rsp *http.Response) (*PostSessionShareResponse, error) { - bodyBytes, err := io.ReadAll(rsp.Body) - defer func() { _ = rsp.Body.Close() }() - if err != nil { - return nil, err - } - - response := &PostSessionShareResponse{ - Body: bodyBytes, - HTTPResponse: rsp, - } - - switch { - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest SessionInfo - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON200 = &dest - - } - - return response, nil -} - -// ParsePostSessionSummarizeResponse parses an HTTP response from a PostSessionSummarizeWithResponse call -func ParsePostSessionSummarizeResponse(rsp *http.Response) (*PostSessionSummarizeResponse, error) { - bodyBytes, err := io.ReadAll(rsp.Body) - defer func() { _ = rsp.Body.Close() }() - if err != nil { - return nil, err - } - - response := &PostSessionSummarizeResponse{ - Body: bodyBytes, - HTTPResponse: rsp, - } - - switch { - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest bool - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON200 = &dest - - } - - return response, nil -} diff --git a/app/sst-env.d.ts b/sst-env.d.ts similarity index 100% rename from app/sst-env.d.ts rename to sst-env.d.ts diff --git a/app/sst.config.ts b/sst.config.ts similarity index 100% rename from app/sst.config.ts rename to sst.config.ts diff --git a/app/tsconfig.json b/tsconfig.json similarity index 100% rename from app/tsconfig.json rename to tsconfig.json