summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.gitignore49
-rw-r--r--CONTEXT.md24
-rw-r--r--LICENSE2
-rw-r--r--app/.gitignore3
-rw-r--r--bun.lock (renamed from app/bun.lock)291
-rw-r--r--infra/app.ts (renamed from app/infra/app.ts)0
-rw-r--r--js/bun.lock348
-rw-r--r--package.json (renamed from app/package.json)2
-rw-r--r--packages/function/package.json (renamed from app/packages/function/package.json)0
-rw-r--r--packages/function/src/api.ts (renamed from app/packages/function/src/api.ts)1
-rw-r--r--packages/function/sst-env.d.ts (renamed from app/packages/function/sst-env.d.ts)0
-rw-r--r--packages/function/tsconfig.json (renamed from app/packages/function/tsconfig.json)0
-rw-r--r--packages/opencode/.gitignore (renamed from js/.gitignore)0
-rw-r--r--packages/opencode/README.md (renamed from js/README.md)0
-rw-r--r--packages/opencode/bin/opencode.mjs29
-rw-r--r--packages/opencode/package.json (renamed from js/package.json)17
-rw-r--r--packages/opencode/scrap.ts (renamed from js/scrap.ts)0
-rwxr-xr-xpackages/opencode/script/release.ts68
-rw-r--r--packages/opencode/src/app/app.ts (renamed from js/src/app/app.ts)0
-rw-r--r--packages/opencode/src/app/path.ts (renamed from js/src/app/path.ts)0
-rw-r--r--packages/opencode/src/bun/index.ts (renamed from js/src/bun/index.ts)0
-rw-r--r--packages/opencode/src/bus/index.ts (renamed from js/src/bus/index.ts)0
-rw-r--r--packages/opencode/src/config/config.ts (renamed from js/src/config/config.ts)0
-rw-r--r--packages/opencode/src/global/index.ts (renamed from js/src/global/index.ts)0
-rw-r--r--packages/opencode/src/id/id.ts (renamed from js/src/id/id.ts)0
-rw-r--r--packages/opencode/src/index.ts (renamed from js/src/index.ts)86
-rw-r--r--packages/opencode/src/llm/llm.ts (renamed from js/src/llm/llm.ts)90
-rw-r--r--packages/opencode/src/lsp/client.ts (renamed from js/src/lsp/client.ts)0
-rw-r--r--packages/opencode/src/lsp/index.ts (renamed from js/src/lsp/index.ts)0
-rw-r--r--packages/opencode/src/lsp/language.ts (renamed from js/src/lsp/language.ts)0
-rw-r--r--packages/opencode/src/provider/provider.ts (renamed from js/src/provider/provider.ts)0
-rw-r--r--packages/opencode/src/server/server.ts (renamed from js/src/server/server.ts)0
-rw-r--r--packages/opencode/src/session/message.ts (renamed from js/src/session/message.ts)0
-rw-r--r--packages/opencode/src/session/prompt/anthropic.txt (renamed from js/src/session/prompt/anthropic.txt)0
-rw-r--r--packages/opencode/src/session/prompt/summarize.txt (renamed from js/src/session/prompt/summarize.txt)0
-rw-r--r--packages/opencode/src/session/prompt/title.txt (renamed from js/src/session/prompt/title.txt)0
-rw-r--r--packages/opencode/src/session/session.ts (renamed from js/src/session/session.ts)0
-rw-r--r--packages/opencode/src/share/share.ts (renamed from js/src/share/share.ts)0
-rw-r--r--packages/opencode/src/storage/storage.ts (renamed from js/src/storage/storage.ts)0
-rw-r--r--packages/opencode/src/tool/bash.ts (renamed from js/src/tool/bash.ts)0
-rw-r--r--packages/opencode/src/tool/edit.ts (renamed from js/src/tool/edit.ts)0
-rw-r--r--packages/opencode/src/tool/fetch.ts (renamed from js/src/tool/fetch.ts)0
-rw-r--r--packages/opencode/src/tool/glob.ts (renamed from js/src/tool/glob.ts)0
-rw-r--r--packages/opencode/src/tool/grep.ts (renamed from js/src/tool/grep.ts)0
-rw-r--r--packages/opencode/src/tool/index.ts (renamed from js/src/tool/index.ts)0
-rw-r--r--packages/opencode/src/tool/ls.ts (renamed from js/src/tool/ls.ts)0
-rw-r--r--packages/opencode/src/tool/lsp-diagnostics.ts (renamed from js/src/tool/lsp-diagnostics.ts)0
-rw-r--r--packages/opencode/src/tool/lsp-hover.ts (renamed from js/src/tool/lsp-hover.ts)0
-rw-r--r--packages/opencode/src/tool/patch.ts (renamed from js/src/tool/patch.ts)0
-rw-r--r--packages/opencode/src/tool/tool.ts (renamed from js/src/tool/tool.ts)0
-rw-r--r--packages/opencode/src/tool/util/file-times.ts (renamed from js/src/tool/util/file-times.ts)0
-rw-r--r--packages/opencode/src/tool/view.ts (renamed from js/src/tool/view.ts)0
-rw-r--r--packages/opencode/src/util/context.ts (renamed from js/src/util/context.ts)0
-rw-r--r--packages/opencode/src/util/event.ts (renamed from js/src/util/event.ts)0
-rw-r--r--packages/opencode/src/util/log.ts (renamed from js/src/util/log.ts)0
-rw-r--r--packages/opencode/src/util/scrap.ts (renamed from js/src/util/scrap.ts)0
-rw-r--r--packages/opencode/test/tool/__snapshots__/tool.test.ts.snap (renamed from js/test/tool/__snapshots__/tool.test.ts.snap)0
-rw-r--r--packages/opencode/test/tool/tool.test.ts (renamed from js/test/tool/tool.test.ts)0
-rw-r--r--packages/opencode/tsconfig.json (renamed from js/tsconfig.json)0
-rw-r--r--packages/tui/.goreleaser.yml (renamed from .goreleaser.yml)0
-rw-r--r--packages/tui/app.log8
-rw-r--r--packages/tui/cmd/root.go (renamed from cmd/root.go)0
-rw-r--r--packages/tui/go.mod (renamed from go.mod)0
-rw-r--r--packages/tui/go.sum (renamed from go.sum)0
-rw-r--r--packages/tui/internal/completions/files-folders.go (renamed from internal/completions/files-folders.go)0
-rw-r--r--packages/tui/internal/config/config.go (renamed from internal/config/config.go)0
-rw-r--r--packages/tui/internal/config/init.go (renamed from internal/config/init.go)0
-rw-r--r--packages/tui/internal/diff/diff.go (renamed from internal/diff/diff.go)0
-rw-r--r--packages/tui/internal/diff/diff_test.go (renamed from internal/diff/diff_test.go)0
-rw-r--r--packages/tui/internal/diff/patch.go (renamed from internal/diff/patch.go)0
-rw-r--r--packages/tui/internal/fileutil/fileutil.go (renamed from internal/fileutil/fileutil.go)0
-rw-r--r--packages/tui/internal/format/format.go (renamed from internal/format/format.go)0
-rw-r--r--packages/tui/internal/format/format_test.go (renamed from internal/format/format_test.go)0
-rw-r--r--packages/tui/internal/pubsub/broker.go (renamed from internal/pubsub/broker.go)0
-rw-r--r--packages/tui/internal/pubsub/broker_test.go (renamed from internal/pubsub/broker_test.go)0
-rw-r--r--packages/tui/internal/pubsub/events.go (renamed from internal/pubsub/events.go)0
-rw-r--r--packages/tui/internal/status/status.go (renamed from internal/status/status.go)0
-rw-r--r--packages/tui/internal/tui/app/app.go (renamed from internal/tui/app/app.go)0
-rw-r--r--packages/tui/internal/tui/app/bridge.go (renamed from internal/tui/app/bridge.go)0
-rw-r--r--packages/tui/internal/tui/app/interfaces.go (renamed from internal/tui/app/interfaces.go)0
-rw-r--r--packages/tui/internal/tui/components/chat/chat.go (renamed from internal/tui/components/chat/chat.go)0
-rw-r--r--packages/tui/internal/tui/components/chat/editor.go (renamed from internal/tui/components/chat/editor.go)0
-rw-r--r--packages/tui/internal/tui/components/chat/message.go (renamed from internal/tui/components/chat/message.go)0
-rw-r--r--packages/tui/internal/tui/components/chat/messages.go (renamed from internal/tui/components/chat/messages.go)0
-rw-r--r--packages/tui/internal/tui/components/chat/sidebar.go (renamed from internal/tui/components/chat/sidebar.go)0
-rw-r--r--packages/tui/internal/tui/components/core/status.go (renamed from internal/tui/components/core/status.go)0
-rw-r--r--packages/tui/internal/tui/components/dialog/arguments.go (renamed from internal/tui/components/dialog/arguments.go)0
-rw-r--r--packages/tui/internal/tui/components/dialog/commands.go (renamed from internal/tui/components/dialog/commands.go)0
-rw-r--r--packages/tui/internal/tui/components/dialog/complete.go (renamed from internal/tui/components/dialog/complete.go)0
-rw-r--r--packages/tui/internal/tui/components/dialog/custom_commands.go (renamed from internal/tui/components/dialog/custom_commands.go)0
-rw-r--r--packages/tui/internal/tui/components/dialog/custom_commands_test.go (renamed from internal/tui/components/dialog/custom_commands_test.go)0
-rw-r--r--packages/tui/internal/tui/components/dialog/filepicker.go (renamed from internal/tui/components/dialog/filepicker.go)0
-rw-r--r--packages/tui/internal/tui/components/dialog/help.go (renamed from internal/tui/components/dialog/help.go)0
-rw-r--r--packages/tui/internal/tui/components/dialog/init.go (renamed from internal/tui/components/dialog/init.go)0
-rw-r--r--packages/tui/internal/tui/components/dialog/models.go (renamed from internal/tui/components/dialog/models.go)0
-rw-r--r--packages/tui/internal/tui/components/dialog/permission.go (renamed from internal/tui/components/dialog/permission.go)0
-rw-r--r--packages/tui/internal/tui/components/dialog/quit.go (renamed from internal/tui/components/dialog/quit.go)0
-rw-r--r--packages/tui/internal/tui/components/dialog/session.go (renamed from internal/tui/components/dialog/session.go)0
-rw-r--r--packages/tui/internal/tui/components/dialog/theme.go (renamed from internal/tui/components/dialog/theme.go)0
-rw-r--r--packages/tui/internal/tui/components/dialog/tools.go (renamed from internal/tui/components/dialog/tools.go)0
-rw-r--r--packages/tui/internal/tui/components/qr/qr.go (renamed from internal/tui/components/qr/qr.go)0
-rw-r--r--packages/tui/internal/tui/components/spinner/spinner.go (renamed from internal/tui/components/spinner/spinner.go)0
-rw-r--r--packages/tui/internal/tui/components/spinner/spinner_test.go (renamed from internal/tui/components/spinner/spinner_test.go)0
-rw-r--r--packages/tui/internal/tui/components/util/simple-list.go (renamed from internal/tui/components/util/simple-list.go)0
-rw-r--r--packages/tui/internal/tui/image/clipboard_unix.go (renamed from internal/tui/image/clipboard_unix.go)0
-rw-r--r--packages/tui/internal/tui/image/clipboard_windows.go (renamed from internal/tui/image/clipboard_windows.go)0
-rw-r--r--packages/tui/internal/tui/image/images.go (renamed from internal/tui/image/images.go)0
-rw-r--r--packages/tui/internal/tui/layout/container.go (renamed from internal/tui/layout/container.go)0
-rw-r--r--packages/tui/internal/tui/layout/layout.go (renamed from internal/tui/layout/layout.go)0
-rw-r--r--packages/tui/internal/tui/layout/overlay.go (renamed from internal/tui/layout/overlay.go)0
-rw-r--r--packages/tui/internal/tui/layout/split.go (renamed from internal/tui/layout/split.go)0
-rw-r--r--packages/tui/internal/tui/page/chat.go (renamed from internal/tui/page/chat.go)0
-rw-r--r--packages/tui/internal/tui/page/page.go (renamed from internal/tui/page/page.go)0
-rw-r--r--packages/tui/internal/tui/state/state.go (renamed from internal/tui/state/state.go)0
-rw-r--r--packages/tui/internal/tui/styles/background.go (renamed from internal/tui/styles/background.go)0
-rw-r--r--packages/tui/internal/tui/styles/icons.go (renamed from internal/tui/styles/icons.go)0
-rw-r--r--packages/tui/internal/tui/styles/markdown.go (renamed from internal/tui/styles/markdown.go)0
-rw-r--r--packages/tui/internal/tui/styles/styles.go (renamed from internal/tui/styles/styles.go)0
-rw-r--r--packages/tui/internal/tui/theme/ayu.go (renamed from internal/tui/theme/ayu.go)0
-rw-r--r--packages/tui/internal/tui/theme/catppuccin.go (renamed from internal/tui/theme/catppuccin.go)0
-rw-r--r--packages/tui/internal/tui/theme/dracula.go (renamed from internal/tui/theme/dracula.go)0
-rw-r--r--packages/tui/internal/tui/theme/flexoki.go (renamed from internal/tui/theme/flexoki.go)0
-rw-r--r--packages/tui/internal/tui/theme/gruvbox.go (renamed from internal/tui/theme/gruvbox.go)0
-rw-r--r--packages/tui/internal/tui/theme/manager.go (renamed from internal/tui/theme/manager.go)0
-rw-r--r--packages/tui/internal/tui/theme/monokai.go (renamed from internal/tui/theme/monokai.go)0
-rw-r--r--packages/tui/internal/tui/theme/onedark.go (renamed from internal/tui/theme/onedark.go)0
-rw-r--r--packages/tui/internal/tui/theme/opencode.go (renamed from internal/tui/theme/opencode.go)0
-rw-r--r--packages/tui/internal/tui/theme/theme.go (renamed from internal/tui/theme/theme.go)0
-rw-r--r--packages/tui/internal/tui/theme/theme_test.go (renamed from internal/tui/theme/theme_test.go)0
-rw-r--r--packages/tui/internal/tui/theme/tokyonight.go (renamed from internal/tui/theme/tokyonight.go)0
-rw-r--r--packages/tui/internal/tui/theme/tron.go (renamed from internal/tui/theme/tron.go)0
-rw-r--r--packages/tui/internal/tui/tui.go (renamed from internal/tui/tui.go)0
-rw-r--r--packages/tui/internal/tui/util/util.go (renamed from internal/tui/util/util.go)0
-rw-r--r--packages/tui/internal/version/version.go (renamed from internal/version/version.go)0
-rw-r--r--packages/tui/main.go (renamed from main.go)0
-rw-r--r--packages/tui/pkg/client/.gitignore (renamed from pkg/client/.gitignore)0
-rw-r--r--packages/tui/pkg/client/client.go (renamed from pkg/client/client.go)0
-rw-r--r--packages/tui/pkg/client/event.go (renamed from pkg/client/event.go)0
-rw-r--r--packages/tui/pkg/tui/theme/opencode.go276
-rw-r--r--packages/web/.gitignore (renamed from app/packages/web/.gitignore)0
-rw-r--r--packages/web/README.md (renamed from app/packages/web/README.md)0
-rw-r--r--packages/web/astro.config.mjs (renamed from app/packages/web/astro.config.mjs)0
-rw-r--r--packages/web/package.json (renamed from app/packages/web/package.json)2
-rw-r--r--packages/web/public/favicon.svg (renamed from app/packages/web/public/favicon.svg)0
-rw-r--r--packages/web/public/social-share.png (renamed from app/packages/web/public/social-share.png)bin25480 -> 25480 bytes
-rw-r--r--packages/web/src/assets/lander/check.svg (renamed from app/packages/web/src/assets/lander/check.svg)0
-rw-r--r--packages/web/src/assets/lander/copy.svg (renamed from app/packages/web/src/assets/lander/copy.svg)0
-rw-r--r--packages/web/src/assets/logo-dark.svg (renamed from app/packages/web/src/assets/logo-dark.svg)0
-rw-r--r--packages/web/src/assets/logo-light.svg (renamed from app/packages/web/src/assets/logo-light.svg)0
-rw-r--r--packages/web/src/components/CodeBlock.tsx (renamed from app/packages/web/src/components/CodeBlock.tsx)0
-rw-r--r--packages/web/src/components/DiffView.tsx (renamed from app/packages/web/src/components/DiffView.tsx)0
-rw-r--r--packages/web/src/components/Header.astro (renamed from app/packages/web/src/components/Header.astro)0
-rw-r--r--packages/web/src/components/Hero.astro (renamed from app/packages/web/src/components/Hero.astro)0
-rw-r--r--packages/web/src/components/Lander.astro (renamed from app/packages/web/src/components/Lander.astro)0
-rw-r--r--packages/web/src/components/Share.tsx (renamed from app/packages/web/src/components/Share.tsx)0
-rw-r--r--packages/web/src/components/diffview.module.css (renamed from app/packages/web/src/components/diffview.module.css)0
-rw-r--r--packages/web/src/components/icons/custom.tsx (renamed from app/packages/web/src/components/icons/custom.tsx)0
-rw-r--r--packages/web/src/components/icons/index.tsx (renamed from app/packages/web/src/components/icons/index.tsx)0
-rw-r--r--packages/web/src/components/share.module.css (renamed from app/packages/web/src/components/share.module.css)0
-rw-r--r--packages/web/src/content.config.ts (renamed from app/packages/web/src/content.config.ts)0
-rw-r--r--packages/web/src/content/docs/docs/cli.mdx (renamed from app/packages/web/src/content/docs/docs/cli.mdx)0
-rw-r--r--packages/web/src/content/docs/docs/config.mdx (renamed from app/packages/web/src/content/docs/docs/config.mdx)0
-rw-r--r--packages/web/src/content/docs/docs/index.mdx (renamed from app/packages/web/src/content/docs/docs/index.mdx)0
-rw-r--r--packages/web/src/content/docs/docs/lsp-servers.mdx (renamed from app/packages/web/src/content/docs/docs/lsp-servers.mdx)0
-rw-r--r--packages/web/src/content/docs/docs/mcp-servers.mdx (renamed from app/packages/web/src/content/docs/docs/mcp-servers.mdx)0
-rw-r--r--packages/web/src/content/docs/docs/models.mdx (renamed from app/packages/web/src/content/docs/docs/models.mdx)0
-rw-r--r--packages/web/src/content/docs/docs/shortcuts.mdx (renamed from app/packages/web/src/content/docs/docs/shortcuts.mdx)0
-rw-r--r--packages/web/src/content/docs/docs/themes.mdx (renamed from app/packages/web/src/content/docs/docs/themes.mdx)0
-rw-r--r--packages/web/src/content/docs/index.mdx (renamed from app/packages/web/src/content/docs/index.mdx)0
-rw-r--r--packages/web/src/pages/s/index.astro (renamed from app/packages/web/src/pages/s/index.astro)0
-rw-r--r--packages/web/src/styles/custom.css (renamed from app/packages/web/src/styles/custom.css)0
-rw-r--r--packages/web/sst-env.d.ts (renamed from app/packages/web/sst-env.d.ts)0
-rw-r--r--packages/web/tsconfig.json (renamed from app/packages/web/tsconfig.json)0
-rw-r--r--pkg/client/gen/openapi.json898
-rw-r--r--pkg/client/generated-client.go1953
-rw-r--r--sst-env.d.ts (renamed from app/sst-env.d.ts)0
-rw-r--r--sst.config.ts (renamed from app/sst.config.ts)0
-rw-r--r--tsconfig.json (renamed from app/tsconfig.json)0
178 files changed, 765 insertions, 3382 deletions
diff --git a/.gitignore b/.gitignore
index e51e0598a..32cb0b4dd 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 42c02f15d..000000000
--- 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 e6208d775..28734bfd5 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 d8beb623b..000000000
--- 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
index 91b28d227..d560f5ffb 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/[email protected]", "", { "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/[email protected]", "", { "dependencies": { "json-schema": "^0.4.0" } }, "sha512-aN83hjdjDCyhkOdulwMsxmGb91owS+bCSe6FWg1TEwusNM35vv020nY//Gid/0NdIpVkZJGzAajgCWrnno2zzA=="],
"@ai-sdk/provider-utils": ["@ai-sdk/[email protected]", "", { "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/[email protected]", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="],
+ "@apidevtools/json-schema-ref-parser": ["@apidevtools/[email protected]", "", { "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/[email protected]", "", { "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/[email protected]", "", {}, "sha512-7bCjW6tVDpUurQLeKBUN9tZ5kSv5qYrGmcn0sG0IwacL7isR2ZbyyA3AdZ4uxsuUFOS2SlgReTH7wkxO6zpqWA=="],
"@astrojs/internal-helpers": ["@astrojs/[email protected]", "", {}, "sha512-l5Pqf6uZu31aG+3Lv8nl/3s4DbUzdlxTWDof4pEpto6GUJNhhCbelVi9dEyurOVyqaelwmS9oSyOWOENSfgo9A=="],
@@ -112,6 +147,16 @@
"@cloudflare/workers-types": ["@cloudflare/[email protected]", "", {}, "sha512-l6tVFpI6MUChMD0wK+Jhikb+aCbrmIR58CVpV/BhRT4THjl+nFhTT5N5ZqX42FDXdE3hCPLjueBMpPRhPUOB2A=="],
+ "@csstools/color-helpers": ["@csstools/[email protected]", "", {}, "sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA=="],
+
+ "@csstools/css-calc": ["@csstools/[email protected]", "", { "peerDependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4" } }, "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ=="],
+
+ "@csstools/css-color-parser": ["@csstools/[email protected]", "", { "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/[email protected]", "", { "peerDependencies": { "@csstools/css-tokenizer": "^3.0.4" } }, "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ=="],
+
+ "@csstools/css-tokenizer": ["@csstools/[email protected]", "", {}, "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw=="],
+
"@ctrl/tinycolor": ["@ctrl/[email protected]", "", {}, "sha512-WyOx8cJQ+FQus4Mm4uPIZA64gbk3Wxh0so5Lcii0aJifqwoVOlfFtorjLE0Hen4OYyHZMXDWqMmaQemBhgxFRQ=="],
"@emnapi/runtime": ["@emnapi/[email protected]", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ=="],
@@ -174,8 +219,18 @@
"@expressive-code/plugin-text-markers": ["@expressive-code/[email protected]", "", { "dependencies": { "@expressive-code/core": "^0.41.2" } }, "sha512-JFWBz2qYxxJOJkkWf96LpeolbnOqJY95TvwYc0hXIHf9oSWV0h0SY268w/5N3EtQaD9KktzDE+VIVwb9jdb3nw=="],
+ "@flystorage/dynamic-import": ["@flystorage/[email protected]", "", {}, "sha512-CIbIUrBdaPFyKnkVBaqzksvzNtsMSXITR/G/6zlil3MBnPFq2LX+X4Mv5p2XOmv/3OulFs/ff2SNb+5dc2Twtg=="],
+
+ "@flystorage/file-storage": ["@flystorage/[email protected]", "", {}, "sha512-25Gd5EsXDmhHrK5orpRuVqebQms1Cm9m5ACMZ0sVDX+Sbl1V0G88CbcWt7mEoWRYLvQ1U072htqg6Sav76ZlVA=="],
+
+ "@flystorage/local-fs": ["@flystorage/[email protected]", "", { "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/[email protected]", "", {}, "sha512-G09N3GfuT9qj3Ax2FDZvKqZttzM3v+cco2l8uXamhKyXLdmlaUDH5o88/C3vtTHj2oT7yRKsvxz9F+BXbWKMYA=="],
+ "@hapi/bourne": ["@hapi/[email protected]", "", {}, "sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q=="],
+
+ "@hono/zod-validator": ["@hono/[email protected]", "", { "peerDependencies": { "hono": ">=3.9.0", "zod": "^3.19.1" } }, "sha512-ds5bW6DCgAnNHP33E3ieSbaZFd5dkV52ZjyaXtGoR06APFrCtzAsKZxTHwOrJNBdXsi0e5wNwo5L4nVEVnJUdg=="],
+
"@img/sharp-darwin-arm64": ["@img/[email protected]", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.0.4" }, "os": "darwin", "cpu": "arm64" }, "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ=="],
"@img/sharp-darwin-x64": ["@img/[email protected]", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-x64": "1.0.4" }, "os": "darwin", "cpu": "x64" }, "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q=="],
@@ -224,12 +279,18 @@
"@jridgewell/trace-mapping": ["@jridgewell/[email protected]", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ=="],
+ "@jsdevtools/ono": ["@jsdevtools/[email protected]", "", {}, "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg=="],
+
"@mdx-js/mdx": ["@mdx-js/[email protected]", "", { "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/[email protected]", "", {}, "sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw=="],
+
"@modelcontextprotocol/sdk": ["@modelcontextprotocol/[email protected]", "", { "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/[email protected]", "", {}, "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg=="],
"@oslojs/encoding": ["@oslojs/[email protected]", "", {}, "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ=="],
@@ -308,6 +369,10 @@
"@swc/helpers": ["@swc/[email protected]", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A=="],
+ "@tokenizer/inflate": ["@tokenizer/[email protected]", "", { "dependencies": { "debug": "^4.4.0", "fflate": "^0.8.2", "token-types": "^6.0.0" } }, "sha512-MADQgmZT1eKjp06jpI2yozxaU9uVs4GzzgSL+uEq7bVcJ9V1ZXQkeGNql1fsSI0gMy1vhvNTNbUqrx+pZfJVmg=="],
+
+ "@tokenizer/token": ["@tokenizer/[email protected]", "", {}, "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A=="],
+
"@tsconfig/bun": ["@tsconfig/[email protected]", "", {}, "sha512-udGrGJBNQdXGVulehc1aWT73wkR9wdaGBtB6yL70RJsqwW/yJhIg6ZbRlPOfIUiFNrnBuYLBi9CSmMKfDC7dvA=="],
"@tsconfig/node22": ["@tsconfig/[email protected]", "", {}, "sha512-twLQ77zevtxobBOD4ToAtVmuYrpeYUh3qh+TEp+08IWhpsrIflVHqQ1F1CiPxQGL7doCdBIOOCF+1Tm833faNg=="],
@@ -320,6 +385,8 @@
"@types/babel__traverse": ["@types/[email protected]", "", { "dependencies": { "@babel/types": "^7.20.7" } }, "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng=="],
+ "@types/bun": ["@types/[email protected]", "", { "dependencies": { "bun-types": "1.2.15" } }, "sha512-U1ljPdBEphF0nw1MIk0hI7kPg7dFdPyM7EenHsp6W5loNHl7zqy6JQf/RKCgnUn2KDzUpkBwHPnEJEjII594bA=="],
+
"@types/debug": ["@types/[email protected]", "", { "dependencies": { "@types/ms": "*" } }, "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ=="],
"@types/estree": ["@types/[email protected]", "", {}, "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ=="],
@@ -332,6 +399,10 @@
"@types/js-yaml": ["@types/[email protected]", "", {}, "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg=="],
+ "@types/jsdom": ["@types/[email protected]", "", { "dependencies": { "@types/node": "*", "@types/tough-cookie": "*", "parse5": "^7.0.0" } }, "sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA=="],
+
+ "@types/json-schema": ["@types/[email protected]", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="],
+
"@types/luxon": ["@types/[email protected]", "", {}, "sha512-R/BdP7OxEMc44l2Ex5lSXHoIXTB2JLNa3y2QISIbr58U/YcsffyQrYW//hZSdrfxrjRZj3GcUoxMPGdO8gSYuw=="],
"@types/mdast": ["@types/[email protected]", "", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="],
@@ -346,6 +417,10 @@
"@types/sax": ["@types/[email protected]", "", { "dependencies": { "@types/node": "*" } }, "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A=="],
+ "@types/tough-cookie": ["@types/[email protected]", "", {}, "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA=="],
+
+ "@types/turndown": ["@types/[email protected]", "", {}, "sha512-TL2IgGgc7B5j78rIccBtlYAnkuv8nUQqhQc+DSYV5j9Be9XOcm/SKOVRuA47xAVI3680Tk9B1d8flK2GWT2+4w=="],
+
"@types/unist": ["@types/[email protected]", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="],
"@ungap/structured-clone": ["@ungap/[email protected]", "", {}, "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g=="],
@@ -356,6 +431,8 @@
"acorn-jsx": ["[email protected]", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="],
+ "agent-base": ["[email protected]", "", {}, "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw=="],
+
"ai": ["[email protected]", "", { "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": ["[email protected]", "", { "dependencies": { "string-width": "^4.1.0" } }, "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w=="],
@@ -370,6 +447,8 @@
"argparse": ["[email protected]", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="],
+ "args": ["[email protected]", "", { "dependencies": { "camelcase": "5.0.0", "chalk": "2.4.2", "leven": "2.1.0", "mri": "1.1.4" } }, "sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA=="],
+
"aria-query": ["[email protected]", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="],
"array-iterate": ["[email protected]", "", {}, "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg=="],
@@ -380,6 +459,8 @@
"astro-expressive-code": ["[email protected]", "", { "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": ["[email protected]", "", {}, "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ=="],
+
"available-typed-arrays": ["[email protected]", "", { "dependencies": { "possible-typed-array-names": "^1.0.0" } }, "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ=="],
"aws-sdk": ["[email protected]", "", { "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": ["[email protected]", "", {}, "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="],
+ "balanced-match": ["[email protected]", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="],
+
"bare-events": ["[email protected]", "", {}, "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA=="],
"bare-fs": ["[email protected]", "", { "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": ["[email protected]", "", { "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": ["[email protected]", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="],
+
"brotli": ["[email protected]", "", { "dependencies": { "base64-js": "^1.1.2" } }, "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg=="],
"browserslist": ["[email protected]", "", { "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": ["[email protected]", "", { "dependencies": { "base64-js": "^1.0.2", "ieee754": "^1.1.4", "isarray": "^1.0.0" } }, "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg=="],
+ "bun-types": ["[email protected]", "", { "dependencies": { "@types/node": "*" } }, "sha512-NarRIaS+iOaQU1JPfyKhZm4AsUOrwUOqRNHY0XxI8GI8jYxiLXLcdjYMG9UKS+fwWasc1uw1htV9AX24dD+p4w=="],
+
"bytes": ["[email protected]", "", {}, "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="],
+ "cac": ["[email protected]", "", {}, "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ=="],
+
"call-bind": ["[email protected]", "", { "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": ["[email protected]", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="],
@@ -504,10 +593,18 @@
"cssesc": ["[email protected]", "", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="],
+ "cssstyle": ["[email protected]", "", { "dependencies": { "@asamuzakjp/css-color": "^3.1.2", "rrweb-cssom": "^0.8.0" } }, "sha512-ZgW+Jgdd7i52AaLYCriF8Mxqft0gD/R9i9wi6RWBhs1pqdPEzPjym7rvRKi397WmQFf3SlyUsszhw+VVCbx79Q=="],
+
"csstype": ["[email protected]", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="],
+ "data-urls": ["[email protected]", "", { "dependencies": { "whatwg-mimetype": "^4.0.0", "whatwg-url": "^14.0.0" } }, "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg=="],
+
+ "dateformat": ["[email protected]", "", {}, "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA=="],
+
"debug": ["[email protected]", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ=="],
+ "decimal.js": ["[email protected]", "", {}, "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw=="],
+
"decode-named-character-reference": ["[email protected]", "", { "dependencies": { "character-entities": "^2.0.0" } }, "sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w=="],
"decompress-response": ["[email protected]", "", { "dependencies": { "mimic-response": "^3.1.0" } }, "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ=="],
@@ -544,6 +641,8 @@
"dunder-proto": ["[email protected]", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="],
+ "duplexify": ["[email protected]", "", { "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": ["[email protected]", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="],
"electron-to-chromium": ["[email protected]", "", {}, "sha512-hwtetwfKNZo/UlwHIVBlKZVdy7o8bIZxxKs0Mv/ROPiQQQmDgdm5a+KvKtBsxM8ZjFzTaCeLoodZ8jiBE3o9rA=="],
@@ -556,6 +655,8 @@
"entities": ["[email protected]", "", {}, "sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw=="],
+ "env-paths": ["[email protected]", "", {}, "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A=="],
+
"es-define-property": ["[email protected]", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="],
"es-errors": ["[email protected]", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="],
@@ -574,7 +675,7 @@
"escape-html": ["[email protected]", "", {}, "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="],
- "escape-string-regexp": ["[email protected]", "", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="],
+ "escape-string-regexp": ["[email protected]", "", {}, "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="],
"estree-util-attach-comments": ["[email protected]", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw=="],
@@ -614,8 +715,16 @@
"fast-fifo": ["[email protected]", "", {}, "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ=="],
+ "fast-redact": ["[email protected]", "", {}, "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A=="],
+
+ "fast-safe-stringify": ["[email protected]", "", {}, "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="],
+
"fdir": ["[email protected]", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-4BG7puHpVsIYxZUbiUE3RqGloLaSSwzYie5jvasC4LWuBWzZawynvYouhjbQKw2JuIGYdm0DzIxl8iVidKlUEw=="],
+ "fflate": ["[email protected]", "", {}, "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A=="],
+
+ "file-type": ["[email protected]", "", { "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": ["[email protected]", "", { "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": ["[email protected]", "", {}, "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ=="],
@@ -654,6 +763,8 @@
"h3": ["[email protected]", "", { "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": ["[email protected]", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="],
+
"has-property-descriptors": ["[email protected]", "", { "dependencies": { "es-define-property": "^1.0.0" } }, "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg=="],
"has-symbols": ["[email protected]", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="],
@@ -704,7 +815,11 @@
"hastscript": ["[email protected]", "", { "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": ["[email protected]", "", {}, "sha512-Pst8FuGqz3L7tFF+u9Pu70eI0xa5S3LPUmrNd5Jm8nTHze9FxLTK9Kaj5g/k4UcwuJSXTP65SyHOPLrffpcAJg=="],
+ "hono": ["[email protected]", "", {}, "sha512-QkACju9MiN59CKSY5JsGZCYmPZkA6sIW6OFCUp7qDjZu6S6KHtJHhAc9Uy9mV9F8PJ1/HQ3ybZF2yjCa/73fvQ=="],
+
+ "hono-openapi": ["[email protected]", "", { "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": ["[email protected]", "", { "dependencies": { "whatwg-encoding": "^3.1.1" } }, "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ=="],
"html-entities": ["[email protected]", "", {}, "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA=="],
@@ -718,6 +833,10 @@
"http-errors": ["[email protected]", "", { "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": ["[email protected]", "", { "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" } }, "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig=="],
+
+ "https-proxy-agent": ["[email protected]", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "4" } }, "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw=="],
+
"i18next": ["[email protected]", "", { "dependencies": { "@babel/runtime": "^7.23.2" } }, "sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg=="],
"iconv-lite": ["[email protected]", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="],
@@ -760,6 +879,8 @@
"is-plain-obj": ["[email protected]", "", {}, "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg=="],
+ "is-potential-custom-element-name": ["[email protected]", "", {}, "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="],
+
"is-promise": ["[email protected]", "", {}, "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ=="],
"is-regex": ["[email protected]", "", { "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": ["[email protected]", "", {}, "sha512-KUXdbctm1uHVL8BYhnyHkgp3zDX5KW8ZhAKVFEfUbU2P8Alpzjb+48hHvjOdQIyPshoblhzsuqOwEEAbtHVirA=="],
+ "joycon": ["[email protected]", "", {}, "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw=="],
+
"js-tokens": ["[email protected]", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="],
"js-yaml": ["[email protected]", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="],
+ "jsdom": ["[email protected]", "", { "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": ["[email protected]", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="],
+ "json-rpc-2.0": ["[email protected]", "", {}, "sha512-asnLgC1qD5ytP+fvBP8uL0rvj+l8P6iYICbzZ8dVxCpESffVjzA7KkYkbKCIbavs7cllwH1ZUaNtJwphdeRqpg=="],
+
"json-schema": ["[email protected]", "", {}, "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="],
+ "json-schema-walker": ["[email protected]", "", { "dependencies": { "@apidevtools/json-schema-ref-parser": "^11.1.0", "clone": "^2.1.2" } }, "sha512-nXN2cMky0Iw7Af28w061hmxaPDaML5/bQD9nwm1lOoIKEGjHcRGxqWe4MfrkYThYAPjSUhmsp4bJNoLAyVn9Xw=="],
+
"json5": ["[email protected]", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="],
"kleur": ["[email protected]", "", {}, "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="],
"klona": ["[email protected]", "", {}, "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA=="],
+ "leven": ["[email protected]", "", {}, "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA=="],
+
"longest-streak": ["[email protected]", "", {}, "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="],
"lru-cache": ["[email protected]", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="],
@@ -928,10 +1059,14 @@
"mimic-response": ["[email protected]", "", {}, "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="],
+ "minimatch": ["[email protected]", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g=="],
+
"minimist": ["[email protected]", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="],
"mkdirp-classic": ["[email protected]", "", {}, "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="],
+ "mri": ["[email protected]", "", {}, "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w=="],
+
"mrmime": ["[email protected]", "", {}, "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ=="],
"ms": ["[email protected]", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
@@ -962,6 +1097,8 @@
"nth-check": ["[email protected]", "", { "dependencies": { "boolbase": "^1.0.0" } }, "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="],
+ "nwsapi": ["[email protected]", "", {}, "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA=="],
+
"object-assign": ["[email protected]", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="],
"object-hash": ["[email protected]", "", {}, "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw=="],
@@ -974,6 +1111,8 @@
"oidc-token-hash": ["[email protected]", "", {}, "sha512-y0W+X7Ppo7oZX6eovsRkuzcSM40Bicg2JEJkDJ4irIt1wsYAP5MLSNv+QAogO8xivMffw/9OvV3um1pxXgt1uA=="],
+ "on-exit-leak-free": ["[email protected]", "", {}, "sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg=="],
+
"on-finished": ["[email protected]", "", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="],
"once": ["[email protected]", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="],
@@ -982,6 +1121,10 @@
"oniguruma-to-es": ["[email protected]", "", { "dependencies": { "oniguruma-parser": "^0.12.1", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } }, "sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg=="],
+ "openapi-types": ["[email protected]", "", {}, "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw=="],
+
+ "opencode": ["opencode@workspace:packages/opencode"],
+
"opencontrol": ["[email protected]", "", { "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": ["[email protected]", "", { "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": ["[email protected]", "", {}, "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ=="],
+ "peek-readable": ["[email protected]", "", {}, "sha512-nri2TO5JE3/mRryik9LlHFT53cgHfRK0Lt0BAZQXku/AW3E6XLt2GaY8siWi7dvW/m1z0ecn+J+bpDa9ZN3IsQ=="],
+
"picocolors": ["[email protected]", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="],
"picomatch": ["[email protected]", "", {}, "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg=="],
+ "pino": ["[email protected]", "", { "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": ["[email protected]", "", { "dependencies": { "duplexify": "^4.1.2", "split2": "^4.0.0" } }, "sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ=="],
+
+ "pino-pretty": ["[email protected]", "", { "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": ["[email protected]", "", {}, "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q=="],
+
"pkce-challenge": ["[email protected]", "", {}, "sha512-ZBmhE1C9LcPoH9XZSdwiPtbPHZROwAnMy+kIFQVrnMCxY4Cudlz3gBOpzilgc0jOgRaiT3sIWfpMomW2ar2orQ=="],
"possible-typed-array-names": ["[email protected]", "", {}, "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg=="],
@@ -1028,6 +1181,8 @@
"prismjs": ["[email protected]", "", {}, "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw=="],
+ "process-warning": ["[email protected]", "", {}, "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q=="],
+
"prompts": ["[email protected]", "", { "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" } }, "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q=="],
"property-information": ["[email protected]", "", {}, "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ=="],
@@ -1042,6 +1197,8 @@
"querystring": ["[email protected]", "", {}, "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g=="],
+ "quick-format-unescaped": ["[email protected]", "", {}, "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg=="],
+
"radix3": ["[email protected]", "", {}, "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA=="],
"range-parser": ["[email protected]", "", {}, "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="],
@@ -1054,6 +1211,8 @@
"readdirp": ["[email protected]", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="],
+ "real-require": ["[email protected]", "", {}, "sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg=="],
+
"recma-build-jsx": ["[email protected]", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-util-build-jsx": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew=="],
"recma-jsx": ["[email protected]", "", { "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": ["[email protected]", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-to-markdown": "^2.0.0", "unified": "^11.0.0" } }, "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw=="],
+ "remeda": ["[email protected]", "", { "dependencies": { "type-fest": "^4.40.1" } }, "sha512-BDQhIgs3baVyxOUb6IRm+HnT7NqbIPOq3FiBFPEqmzkJqN3AS3RwbGH+DVi6MKnZcIcKO7mSN9gsbwBor4YVVw=="],
+
"restructure": ["[email protected]", "", {}, "sha512-gSfoiOEA0VPE6Tukkrr7I0RBdE0s7H1eFCDBk05l1KIQT1UIKNc5JZy6jdyW6eYH3aR3g5b3PuL77rq0hvwtAw=="],
"retext": ["[email protected]", "", { "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": ["[email protected]", "", { "dependencies": { "@types/nlcst": "^2.0.0", "nlcst-to-string": "^4.0.0", "unified": "^11.0.0" } }, "sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA=="],
+ "rfdc": ["[email protected]", "", {}, "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA=="],
+
"rollup": ["[email protected]", "", { "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": ["[email protected]", "", { "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": ["[email protected]", "", {}, "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw=="],
+
"safe-buffer": ["[email protected]", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="],
"safe-regex-test": ["[email protected]", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-regex": "^1.2.1" } }, "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw=="],
+ "safe-stable-stringify": ["[email protected]", "", {}, "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA=="],
+
"safer-buffer": ["[email protected]", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="],
"sax": ["[email protected]", "", {}, "sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA=="],
+ "saxes": ["[email protected]", "", { "dependencies": { "xmlchars": "^2.2.0" } }, "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA=="],
+
"semver": ["[email protected]", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA=="],
"send": ["[email protected]", "", { "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": ["[email protected]", "", { "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": ["[email protected]", "", { "dependencies": { "atomic-sleep": "^1.0.0" } }, "sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg=="],
+
"source-map": ["[email protected]", "", {}, "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA=="],
"source-map-js": ["[email protected]", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="],
"space-separated-tokens": ["[email protected]", "", {}, "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="],
+ "split2": ["[email protected]", "", { "dependencies": { "readable-stream": "^3.0.0" } }, "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg=="],
+
"sst": ["[email protected]", "", { "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": ["[email protected]", "", { "os": "darwin", "cpu": "arm64" }, "sha512-NJDGjZ0bl+hWJoT1P2KLyA65OXHkItVg3BNkRsas6qaa+c1U6GU8wLFnfdqkDRnJIYhOIsnZtIquNp7lMIr3ww=="],
@@ -1190,6 +1363,8 @@
"stream-replace-string": ["[email protected]", "", {}, "sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w=="],
+ "stream-shift": ["[email protected]", "", {}, "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ=="],
+
"streamx": ["[email protected]", "", { "dependencies": { "fast-fifo": "^1.3.2", "text-decoder": "^1.1.0" }, "optionalDependencies": { "bare-events": "^2.2.0" } }, "sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw=="],
"string-width": ["[email protected]", "", { "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": ["[email protected]", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ=="],
- "strip-json-comments": ["[email protected]", "", {}, "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ=="],
+ "strip-json-comments": ["[email protected]", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="],
+
+ "strtok3": ["[email protected]", "", { "dependencies": { "@tokenizer/token": "^0.3.0", "peek-readable": "^7.0.0" } }, "sha512-Xt18+h4s7Z8xyZ0tmBoRmzxcop97R4BAh+dXouUDCYn+Em+1P3qpkUfI5ueWLT8ynC5hZ+q4iPEmGG1urvQGBg=="],
"style-to-js": ["[email protected]", "", { "dependencies": { "style-to-object": "1.0.8" } }, "sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw=="],
"style-to-object": ["[email protected]", "", { "dependencies": { "inline-style-parser": "0.2.4" } }, "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g=="],
+ "supports-color": ["[email protected]", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="],
+
+ "symbol-tree": ["[email protected]", "", {}, "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="],
+
"tar-fs": ["[email protected]", "", { "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": ["[email protected]", "", { "dependencies": { "b4a": "^1.6.4", "fast-fifo": "^1.2.0", "streamx": "^2.15.0" } }, "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ=="],
"text-decoder": ["[email protected]", "", { "dependencies": { "b4a": "^1.6.4" } }, "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA=="],
+ "thread-stream": ["[email protected]", "", { "dependencies": { "real-require": "^0.1.0" } }, "sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA=="],
+
"tiny-inflate": ["[email protected]", "", {}, "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw=="],
"tinyexec": ["[email protected]", "", {}, "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA=="],
"tinyglobby": ["[email protected]", "", { "dependencies": { "fdir": "^6.4.4", "picomatch": "^4.0.2" } }, "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ=="],
+ "tldts": ["[email protected]", "", { "dependencies": { "tldts-core": "^6.1.86" }, "bin": { "tldts": "bin/cli.js" } }, "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ=="],
+
+ "tldts-core": ["[email protected]", "", {}, "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA=="],
+
"toidentifier": ["[email protected]", "", {}, "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="],
+ "token-types": ["[email protected]", "", { "dependencies": { "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } }, "sha512-lbDrTLVsHhOMljPscd0yitpozq7Ga2M5Cvez5AjGg8GASBjtt6iERCAJ93yommPmz62fb45oFIXHEZ3u9bfJEA=="],
+
"toolbeam-docs-theme": ["[email protected]", "", { "peerDependencies": { "@astrojs/starlight": "^0.34.3", "astro": "^5.7.13" } }, "sha512-W5mdbcgRpTBDFyEdcU81USs3MFZoXMInpSznc/AFZCwqz8atk4iBNDIlhvihpGHY54Nf5crKmZwJjxVojkHFvA=="],
- "tr46": ["[email protected]", "", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="],
+ "tough-cookie": ["[email protected]", "", { "dependencies": { "tldts": "^6.1.32" } }, "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A=="],
+
+ "tr46": ["[email protected]", "", { "dependencies": { "punycode": "^2.3.1" } }, "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw=="],
"trim-lines": ["[email protected]", "", {}, "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="],
"trough": ["[email protected]", "", {}, "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw=="],
+ "ts-lsp-client": ["[email protected]", "", { "dependencies": { "json-rpc-2.0": "^1.7.0", "pino": "^7.0.5", "pino-pretty": "^5.1.3", "tslib": "~2.6.2" } }, "sha512-0ItrsqvNUM9KNFGbeT1N8jSi9gvasGOvxJUXjGf4P2TX0w250AUWLeRStaSrQbYcFDshDtE5d4BshUmYwodDgw=="],
+
"tsconfck": ["[email protected]", "", { "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"], "bin": { "tsconfck": "bin/tsconfck.js" } }, "sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w=="],
- "tslib": ["[email protected]", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
+ "tslib": ["[email protected]", "", {}, "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ=="],
"tunnel-agent": ["[email protected]", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w=="],
+ "turndown": ["[email protected]", "", { "dependencies": { "@mixmark-io/domino": "^2.2.0" } }, "sha512-eCZGBN4nNNqM9Owkv9HAtWRYfLA4h909E/WGAWWBpmB275ehNhZyk87/Tpvjbp0jjNl9XwCsbe6bm6CqFsgD+A=="],
+
"type-fest": ["[email protected]", "", {}, "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA=="],
"type-is": ["[email protected]", "", { "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": ["[email protected]", "", {}, "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA=="],
+ "uint8array-extras": ["[email protected]", "", {}, "sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ=="],
+
"ultrahtml": ["[email protected]", "", {}, "sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw=="],
"uncrypto": ["[email protected]", "", {}, "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q=="],
@@ -1306,13 +1503,25 @@
"vitefu": ["[email protected]", "", { "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": ["[email protected]", "", {}, "sha512-kdjOSJ2lLIn7r1rtrMbbNCHjyMPfRnowdKjBQ+mGq6NAW5QY2bEZC/khaC5OR8svbbjvLEaIXkOq45e2X9BIbQ=="],
+
+ "vscode-languageclient": ["[email protected]", "", { "dependencies": { "minimatch": "^5.1.0", "semver": "^7.3.7", "vscode-languageserver-protocol": "3.17.3" } }, "sha512-GL4QdbYUF/XxQlAsvYWZRV3V34kOkpRlvV60/72ghHfsYFnS/v2MANZ9P6sHmxFcZKOse8O+L9G7Czg0NUWing=="],
+
+ "vscode-languageserver-protocol": ["[email protected]", "", { "dependencies": { "vscode-jsonrpc": "8.1.0", "vscode-languageserver-types": "3.17.3" } }, "sha512-924/h0AqsMtA5yK22GgMtCYiMdCOtWTSGgUOkgEDX+wk2b0x4sAfLiO4NxBxqbiVtz7K7/1/RgVrVI0NClZwqA=="],
+
+ "vscode-languageserver-types": ["[email protected]", "", {}, "sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA=="],
+
+ "w3c-xmlserializer": ["[email protected]", "", { "dependencies": { "xml-name-validator": "^5.0.0" } }, "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA=="],
"web-namespaces": ["[email protected]", "", {}, "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ=="],
- "webidl-conversions": ["[email protected]", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="],
+ "webidl-conversions": ["[email protected]", "", {}, "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="],
+
+ "whatwg-encoding": ["[email protected]", "", { "dependencies": { "iconv-lite": "0.6.3" } }, "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ=="],
- "whatwg-url": ["[email protected]", "", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="],
+ "whatwg-mimetype": ["[email protected]", "", {}, "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg=="],
+
+ "whatwg-url": ["[email protected]", "", { "dependencies": { "tr46": "^5.1.0", "webidl-conversions": "^7.0.0" } }, "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw=="],
"which-pm-runs": ["[email protected]", "", {}, "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA=="],
@@ -1324,10 +1533,16 @@
"wrappy": ["[email protected]", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="],
+ "ws": ["[email protected]", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ=="],
+
+ "xml-name-validator": ["[email protected]", "", {}, "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg=="],
+
"xml2js": ["[email protected]", "", { "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" } }, "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA=="],
"xmlbuilder": ["[email protected]", "", {}, "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="],
+ "xmlchars": ["[email protected]", "", {}, "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="],
+
"xxhash-wasm": ["[email protected]", "", {}, "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA=="],
"yallist": ["[email protected]", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="],
@@ -1342,24 +1557,40 @@
"zod": ["[email protected]", "", {}, "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ=="],
+ "zod-openapi": ["[email protected]", "", { "peerDependencies": { "zod": "^3.21.4" } }, "sha512-tsrQpbpqFCXqVXUzi3TPwFhuMtLN3oNZobOtYnK6/5VkXsNdnIgyNr4r8no4wmYluaxzN3F7iS+8xCW8BmMQ8g=="],
+
"zod-to-json-schema": ["[email protected]", "", { "peerDependencies": { "zod": "^3.24.1" } }, "sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g=="],
"zod-to-ts": ["[email protected]", "", { "peerDependencies": { "typescript": "^4.9.4 || ^5.0.2", "zod": "^3" } }, "sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA=="],
"zwitch": ["[email protected]", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="],
+ "@ai-sdk/gateway/@ai-sdk/provider": ["@ai-sdk/[email protected]", "", { "dependencies": { "json-schema": "^0.4.0" } }, "sha512-lhdrARU3SSmt5p/GNNK7VhazvZpKSCIOjpHUfX7f5jIhVGi/vvlxP1rD6Go57nn1MtuGKNqL04AebSRFDQsQbw=="],
+
+ "@ai-sdk/gateway/@ai-sdk/provider-utils": ["@ai-sdk/[email protected]", "", { "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": ["[email protected]", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="],
+
"@babel/core/semver": ["[email protected]", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="],
"@babel/helper-compilation-targets/lru-cache": ["[email protected]", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="],
"@babel/helper-compilation-targets/semver": ["[email protected]", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="],
+ "@emnapi/runtime/tslib": ["[email protected]", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
+
"@rollup/pluginutils/estree-walker": ["[email protected]", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="],
+ "@swc/helpers/tslib": ["[email protected]", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
+
"ansi-align/string-width": ["[email protected]", "", { "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": ["[email protected]", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="],
+ "args/camelcase": ["[email protected]", "", {}, "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA=="],
+
+ "args/chalk": ["[email protected]", "", { "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": ["[email protected]", "", {}, "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A=="],
"astro/sharp": ["[email protected]", "", { "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": ["[email protected]", "", {}, "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig=="],
+ "mdast-util-find-and-replace/escape-string-regexp": ["[email protected]", "", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="],
+
+ "node-fetch/whatwg-url": ["[email protected]", "", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="],
+
+ "opencode/ai": ["[email protected]", "", { "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": ["[email protected]", "", {}, "sha512-Pst8FuGqz3L7tFF+u9Pu70eI0xa5S3LPUmrNd5Jm8nTHze9FxLTK9Kaj5g/k4UcwuJSXTP65SyHOPLrffpcAJg=="],
+
"opencontrol/zod-to-json-schema": ["[email protected]", "", { "peerDependencies": { "zod": "^3.24.1" } }, "sha512-HIAfWdYIt1sssHfYZFCXp4rU1w2r8hVVXYIlmoa0r0gABLs5di3RCqPU5DDROogVz1pAdYBaz7HK5n9pSUNs3A=="],
"openid-client/jose": ["[email protected]", "", {}, "sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA=="],
"parse-entities/@types/unist": ["@types/[email protected]", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="],
+ "pino-abstract-transport/split2": ["[email protected]", "", {}, "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg=="],
+
+ "pino-pretty/chalk": ["[email protected]", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
+
+ "pino-pretty/jmespath": ["[email protected]", "", {}, "sha512-+kHj8HXArPfpPEKGLZ+kB5ONRTCiGQXo8RQYL0hH8t6pWXUBBK5KkkQmTNOwKK4LEsd0yTsgtjJVm4UBSZea4w=="],
+
"prebuild-install/tar-fs": ["[email protected]", "", { "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": ["[email protected]", "", {}, "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="],
+ "rc/strip-json-comments": ["[email protected]", "", {}, "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ=="],
+
"sitemap/@types/node": ["@types/[email protected]", "", {}, "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw=="],
"sitemap/sax": ["[email protected]", "", {}, "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg=="],
+ "token-types/ieee754": ["[email protected]", "", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="],
+
+ "tr46/punycode": ["[email protected]", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="],
+
"unstorage/lru-cache": ["[email protected]", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="],
+ "vscode-languageserver-protocol/vscode-jsonrpc": ["[email protected]", "", {}, "sha512-6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw=="],
+
"@babel/helper-compilation-targets/lru-cache/yallist": ["[email protected]", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="],
"ansi-align/string-width/emoji-regex": ["[email protected]", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="],
"ansi-align/string-width/strip-ansi": ["[email protected]", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
+ "args/chalk/ansi-styles": ["[email protected]", "", { "dependencies": { "color-convert": "^1.9.0" } }, "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="],
+
+ "args/chalk/supports-color": ["[email protected]", "", { "dependencies": { "has-flag": "^3.0.0" } }, "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="],
+
+ "node-fetch/whatwg-url/tr46": ["[email protected]", "", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="],
+
+ "node-fetch/whatwg-url/webidl-conversions": ["[email protected]", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="],
+
+ "opencode/ai/@ai-sdk/provider": ["@ai-sdk/[email protected]", "", { "dependencies": { "json-schema": "^0.4.0" } }, "sha512-lhdrARU3SSmt5p/GNNK7VhazvZpKSCIOjpHUfX7f5jIhVGi/vvlxP1rD6Go57nn1MtuGKNqL04AebSRFDQsQbw=="],
+
+ "opencode/ai/@ai-sdk/provider-utils": ["@ai-sdk/[email protected]", "", { "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": ["[email protected]", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="],
+
"prebuild-install/tar-fs/tar-stream": ["[email protected]", "", { "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": ["[email protected]", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
+
+ "args/chalk/ansi-styles/color-convert": ["[email protected]", "", { "dependencies": { "color-name": "1.1.3" } }, "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="],
+
+ "args/chalk/supports-color/has-flag": ["[email protected]", "", {}, "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="],
+
+ "args/chalk/ansi-styles/color-convert/color-name": ["[email protected]", "", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="],
}
}
diff --git a/app/infra/app.ts b/infra/app.ts
index 73b80994d..73b80994d 100644
--- a/app/infra/app.ts
+++ b/infra/app.ts
diff --git a/js/bun.lock b/js/bun.lock
deleted file mode 100644
index 5319f5bc4..000000000
--- 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/[email protected]", "", { "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/[email protected]", "", { "dependencies": { "json-schema": "^0.4.0" } }, "sha512-g6IVjm0iGasiv4fAv6TtPIDTfeMTqFRQt3J6Jz8skm/Tb2r48qKEtcKNrDSpspDIFrQJ4fuC1Xw/aAPrVCs7tQ=="],
-
- "@ai-sdk/provider-utils": ["@ai-sdk/[email protected]", "", { "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/[email protected]", "", { "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/[email protected]", "", { "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/[email protected]", "", {}, "sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA=="],
-
- "@csstools/css-calc": ["@csstools/[email protected]", "", { "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/[email protected]", "", { "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/[email protected]", "", { "peerDependencies": { "@csstools/css-tokenizer": "^3.0.3" } }, "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A=="],
-
- "@csstools/css-tokenizer": ["@csstools/[email protected]", "", {}, "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw=="],
-
- "@flystorage/dynamic-import": ["@flystorage/[email protected]", "", {}, "sha512-CIbIUrBdaPFyKnkVBaqzksvzNtsMSXITR/G/6zlil3MBnPFq2LX+X4Mv5p2XOmv/3OulFs/ff2SNb+5dc2Twtg=="],
-
- "@flystorage/file-storage": ["@flystorage/[email protected]", "", {}, "sha512-25Gd5EsXDmhHrK5orpRuVqebQms1Cm9m5ACMZ0sVDX+Sbl1V0G88CbcWt7mEoWRYLvQ1U072htqg6Sav76ZlVA=="],
-
- "@flystorage/local-fs": ["@flystorage/[email protected]", "", { "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/[email protected]", "", {}, "sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q=="],
-
- "@hono/zod-validator": ["@hono/[email protected]", "", { "peerDependencies": { "hono": ">=3.9.0", "zod": "^3.19.1" } }, "sha512-ds5bW6DCgAnNHP33E3ieSbaZFd5dkV52ZjyaXtGoR06APFrCtzAsKZxTHwOrJNBdXsi0e5wNwo5L4nVEVnJUdg=="],
-
- "@jsdevtools/ono": ["@jsdevtools/[email protected]", "", {}, "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg=="],
-
- "@mixmark-io/domino": ["@mixmark-io/[email protected]", "", {}, "sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw=="],
-
- "@opentelemetry/api": ["@opentelemetry/[email protected]", "", {}, "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg=="],
-
- "@standard-schema/spec": ["@standard-schema/[email protected]", "", {}, "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA=="],
-
- "@tokenizer/inflate": ["@tokenizer/[email protected]", "", { "dependencies": { "debug": "^4.4.0", "fflate": "^0.8.2", "token-types": "^6.0.0" } }, "sha512-MADQgmZT1eKjp06jpI2yozxaU9uVs4GzzgSL+uEq7bVcJ9V1ZXQkeGNql1fsSI0gMy1vhvNTNbUqrx+pZfJVmg=="],
-
- "@tokenizer/token": ["@tokenizer/[email protected]", "", {}, "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A=="],
-
- "@tsconfig/bun": ["@tsconfig/[email protected]", "", {}, "sha512-udGrGJBNQdXGVulehc1aWT73wkR9wdaGBtB6yL70RJsqwW/yJhIg6ZbRlPOfIUiFNrnBuYLBi9CSmMKfDC7dvA=="],
-
- "@types/bun": ["@types/[email protected]", "", { "dependencies": { "bun-types": "1.2.13" } }, "sha512-u6vXep/i9VBxoJl3GjZsl/BFIsvML8DfVDO0RYLEwtSZSp981kEO1V5NwRcO1CPJ7AmvpbnDCiMKo3JvbDEjAg=="],
-
- "@types/jsdom": ["@types/[email protected]", "", { "dependencies": { "@types/node": "*", "@types/tough-cookie": "*", "parse5": "^7.0.0" } }, "sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA=="],
-
- "@types/json-schema": ["@types/[email protected]", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="],
-
- "@types/node": ["@types/[email protected]", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-v1DKRfUdyW+jJhZNEI1PYy29S2YRxMV5AOO/x/SjKmW0acCIOqmbj6Haf9eHAhsPmrhlHSxEhv/1WszcLWV4cg=="],
-
- "@types/tough-cookie": ["@types/[email protected]", "", {}, "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA=="],
-
- "@types/turndown": ["@types/[email protected]", "", {}, "sha512-TL2IgGgc7B5j78rIccBtlYAnkuv8nUQqhQc+DSYV5j9Be9XOcm/SKOVRuA47xAVI3680Tk9B1d8flK2GWT2+4w=="],
-
- "agent-base": ["[email protected]", "", {}, "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw=="],
-
- "ai": ["[email protected]", "", { "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": ["[email protected]", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="],
-
- "argparse": ["[email protected]", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="],
-
- "args": ["[email protected]", "", { "dependencies": { "camelcase": "5.0.0", "chalk": "2.4.2", "leven": "2.1.0", "mri": "1.1.4" } }, "sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA=="],
-
- "atomic-sleep": ["[email protected]", "", {}, "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ=="],
-
- "balanced-match": ["[email protected]", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="],
-
- "brace-expansion": ["[email protected]", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="],
-
- "bun-types": ["[email protected]", "", { "dependencies": { "@types/node": "*" } }, "sha512-rRjA1T6n7wto4gxhAO/ErZEtOXyEZEmnIHQfl0Dt1QQSB4QV0iP6BZ9/YB5fZaHFQ2dwHFrmPaRQ9GGMX01k9Q=="],
-
- "cac": ["[email protected]", "", {}, "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ=="],
-
- "camelcase": ["[email protected]", "", {}, "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA=="],
-
- "chalk": ["[email protected]", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
-
- "clipanion": ["[email protected]", "", { "dependencies": { "typanion": "^3.8.0" } }, "sha512-CXkMQxU6s9GklO/1f714dkKBMu1lopS1WFF0B8o4AxPykR1hpozxSiUZ5ZUeBjfPgCWqbcNOtZVFhB8Lkfp1+Q=="],
-
- "clone": ["[email protected]", "", {}, "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w=="],
-
- "color-convert": ["[email protected]", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="],
-
- "color-name": ["[email protected]", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="],
-
- "cssstyle": ["[email protected]", "", { "dependencies": { "@asamuzakjp/css-color": "^3.1.2", "rrweb-cssom": "^0.8.0" } }, "sha512-ZgW+Jgdd7i52AaLYCriF8Mxqft0gD/R9i9wi6RWBhs1pqdPEzPjym7rvRKi397WmQFf3SlyUsszhw+VVCbx79Q=="],
-
- "data-urls": ["[email protected]", "", { "dependencies": { "whatwg-mimetype": "^4.0.0", "whatwg-url": "^14.0.0" } }, "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg=="],
-
- "dateformat": ["[email protected]", "", {}, "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA=="],
-
- "debug": ["[email protected]", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ=="],
-
- "decimal.js": ["[email protected]", "", {}, "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw=="],
-
- "diff": ["[email protected]", "", {}, "sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg=="],
-
- "duplexify": ["[email protected]", "", { "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": ["[email protected]", "", { "dependencies": { "once": "^1.4.0" } }, "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q=="],
-
- "entities": ["[email protected]", "", {}, "sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw=="],
-
- "env-paths": ["[email protected]", "", {}, "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A=="],
-
- "escape-string-regexp": ["[email protected]", "", {}, "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="],
-
- "fast-redact": ["[email protected]", "", {}, "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A=="],
-
- "fast-safe-stringify": ["[email protected]", "", {}, "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="],
-
- "fflate": ["[email protected]", "", {}, "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A=="],
-
- "file-type": ["[email protected]", "", { "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": ["[email protected]", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="],
-
- "hono": ["[email protected]", "", {}, "sha512-QkACju9MiN59CKSY5JsGZCYmPZkA6sIW6OFCUp7qDjZu6S6KHtJHhAc9Uy9mV9F8PJ1/HQ3ybZF2yjCa/73fvQ=="],
-
- "hono-openapi": ["[email protected]", "", { "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": ["[email protected]", "", { "dependencies": { "whatwg-encoding": "^3.1.1" } }, "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ=="],
-
- "http-proxy-agent": ["[email protected]", "", { "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" } }, "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig=="],
-
- "https-proxy-agent": ["[email protected]", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "4" } }, "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw=="],
-
- "iconv-lite": ["[email protected]", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="],
-
- "ieee754": ["[email protected]", "", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="],
-
- "inherits": ["[email protected]", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="],
-
- "is-potential-custom-element-name": ["[email protected]", "", {}, "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="],
-
- "jmespath": ["[email protected]", "", {}, "sha512-+kHj8HXArPfpPEKGLZ+kB5ONRTCiGQXo8RQYL0hH8t6pWXUBBK5KkkQmTNOwKK4LEsd0yTsgtjJVm4UBSZea4w=="],
-
- "joycon": ["[email protected]", "", {}, "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw=="],
-
- "js-yaml": ["[email protected]", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="],
-
- "jsdom": ["[email protected]", "", { "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": ["[email protected]", "", {}, "sha512-asnLgC1qD5ytP+fvBP8uL0rvj+l8P6iYICbzZ8dVxCpESffVjzA7KkYkbKCIbavs7cllwH1ZUaNtJwphdeRqpg=="],
-
- "json-schema": ["[email protected]", "", {}, "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="],
-
- "json-schema-walker": ["[email protected]", "", { "dependencies": { "@apidevtools/json-schema-ref-parser": "^11.1.0", "clone": "^2.1.2" } }, "sha512-nXN2cMky0Iw7Af28w061hmxaPDaML5/bQD9nwm1lOoIKEGjHcRGxqWe4MfrkYThYAPjSUhmsp4bJNoLAyVn9Xw=="],
-
- "leven": ["[email protected]", "", {}, "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA=="],
-
- "lru-cache": ["[email protected]", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="],
-
- "mime-db": ["[email protected]", "", {}, "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="],
-
- "mime-types": ["[email protected]", "", { "dependencies": { "mime-db": "^1.54.0" } }, "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA=="],
-
- "minimatch": ["[email protected]", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g=="],
-
- "mri": ["[email protected]", "", {}, "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w=="],
-
- "ms": ["[email protected]", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
-
- "nwsapi": ["[email protected]", "", {}, "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA=="],
-
- "on-exit-leak-free": ["[email protected]", "", {}, "sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg=="],
-
- "once": ["[email protected]", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="],
-
- "openapi-types": ["[email protected]", "", {}, "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw=="],
-
- "parse5": ["[email protected]", "", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="],
-
- "peek-readable": ["[email protected]", "", {}, "sha512-nri2TO5JE3/mRryik9LlHFT53cgHfRK0Lt0BAZQXku/AW3E6XLt2GaY8siWi7dvW/m1z0ecn+J+bpDa9ZN3IsQ=="],
-
- "pino": ["[email protected]", "", { "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": ["[email protected]", "", { "dependencies": { "duplexify": "^4.1.2", "split2": "^4.0.0" } }, "sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ=="],
-
- "pino-pretty": ["[email protected]", "", { "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": ["[email protected]", "", {}, "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q=="],
-
- "process-warning": ["[email protected]", "", {}, "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q=="],
-
- "pump": ["[email protected]", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw=="],
-
- "punycode": ["[email protected]", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="],
-
- "quick-format-unescaped": ["[email protected]", "", {}, "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg=="],
-
- "readable-stream": ["[email protected]", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="],
-
- "real-require": ["[email protected]", "", {}, "sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg=="],
-
- "remeda": ["[email protected]", "", { "dependencies": { "type-fest": "^4.40.1" } }, "sha512-Ka6965m9Zu9OLsysWxVf3jdJKmp6+PKzDv7HWHinEevf0JOJ9y02YpjiC/sKxRpCqGhVyvm1U+0YIj+E6DMgKw=="],
-
- "rfdc": ["[email protected]", "", {}, "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA=="],
-
- "rrweb-cssom": ["[email protected]", "", {}, "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw=="],
-
- "safe-buffer": ["[email protected]", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="],
-
- "safe-stable-stringify": ["[email protected]", "", {}, "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA=="],
-
- "safer-buffer": ["[email protected]", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="],
-
- "saxes": ["[email protected]", "", { "dependencies": { "xmlchars": "^2.2.0" } }, "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA=="],
-
- "semver": ["[email protected]", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA=="],
-
- "sonic-boom": ["[email protected]", "", { "dependencies": { "atomic-sleep": "^1.0.0" } }, "sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg=="],
-
- "split2": ["[email protected]", "", { "dependencies": { "readable-stream": "^3.0.0" } }, "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg=="],
-
- "stream-shift": ["[email protected]", "", {}, "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ=="],
-
- "string_decoder": ["[email protected]", "", { "dependencies": { "safe-buffer": "~5.2.0" } }, "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="],
-
- "strip-json-comments": ["[email protected]", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="],
-
- "strtok3": ["[email protected]", "", { "dependencies": { "@tokenizer/token": "^0.3.0", "peek-readable": "^7.0.0" } }, "sha512-Xt18+h4s7Z8xyZ0tmBoRmzxcop97R4BAh+dXouUDCYn+Em+1P3qpkUfI5ueWLT8ynC5hZ+q4iPEmGG1urvQGBg=="],
-
- "supports-color": ["[email protected]", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="],
-
- "symbol-tree": ["[email protected]", "", {}, "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="],
-
- "thread-stream": ["[email protected]", "", { "dependencies": { "real-require": "^0.1.0" } }, "sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA=="],
-
- "tldts": ["[email protected]", "", { "dependencies": { "tldts-core": "^6.1.86" }, "bin": { "tldts": "bin/cli.js" } }, "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ=="],
-
- "tldts-core": ["[email protected]", "", {}, "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA=="],
-
- "token-types": ["[email protected]", "", { "dependencies": { "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } }, "sha512-lbDrTLVsHhOMljPscd0yitpozq7Ga2M5Cvez5AjGg8GASBjtt6iERCAJ93yommPmz62fb45oFIXHEZ3u9bfJEA=="],
-
- "tough-cookie": ["[email protected]", "", { "dependencies": { "tldts": "^6.1.32" } }, "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A=="],
-
- "tr46": ["[email protected]", "", { "dependencies": { "punycode": "^2.3.1" } }, "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw=="],
-
- "ts-lsp-client": ["[email protected]", "", { "dependencies": { "json-rpc-2.0": "^1.7.0", "pino": "^7.0.5", "pino-pretty": "^5.1.3", "tslib": "~2.6.2" } }, "sha512-0ItrsqvNUM9KNFGbeT1N8jSi9gvasGOvxJUXjGf4P2TX0w250AUWLeRStaSrQbYcFDshDtE5d4BshUmYwodDgw=="],
-
- "tslib": ["[email protected]", "", {}, "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ=="],
-
- "turndown": ["[email protected]", "", { "dependencies": { "@mixmark-io/domino": "^2.2.0" } }, "sha512-eCZGBN4nNNqM9Owkv9HAtWRYfLA4h909E/WGAWWBpmB275ehNhZyk87/Tpvjbp0jjNl9XwCsbe6bm6CqFsgD+A=="],
-
- "typanion": ["[email protected]", "", {}, "sha512-ZW/lVMRabETuYCd9O9ZvMhAh8GslSqaUjxmK/JLPCh6l73CvLBiuXswj/+7LdnWOgYsQ130FqLzFz5aGT4I3Ug=="],
-
- "type-fest": ["[email protected]", "", {}, "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA=="],
-
- "typescript": ["[email protected]", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="],
-
- "uint8array-extras": ["[email protected]", "", {}, "sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ=="],
-
- "undici-types": ["[email protected]", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="],
-
- "util-deprecate": ["[email protected]", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="],
-
- "vscode-jsonrpc": ["[email protected]", "", {}, "sha512-kdjOSJ2lLIn7r1rtrMbbNCHjyMPfRnowdKjBQ+mGq6NAW5QY2bEZC/khaC5OR8svbbjvLEaIXkOq45e2X9BIbQ=="],
-
- "vscode-languageclient": ["[email protected]", "", { "dependencies": { "minimatch": "^5.1.0", "semver": "^7.3.7", "vscode-languageserver-protocol": "3.17.3" } }, "sha512-GL4QdbYUF/XxQlAsvYWZRV3V34kOkpRlvV60/72ghHfsYFnS/v2MANZ9P6sHmxFcZKOse8O+L9G7Czg0NUWing=="],
-
- "vscode-languageserver-protocol": ["[email protected]", "", { "dependencies": { "vscode-jsonrpc": "8.1.0", "vscode-languageserver-types": "3.17.3" } }, "sha512-924/h0AqsMtA5yK22GgMtCYiMdCOtWTSGgUOkgEDX+wk2b0x4sAfLiO4NxBxqbiVtz7K7/1/RgVrVI0NClZwqA=="],
-
- "vscode-languageserver-types": ["[email protected]", "", {}, "sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA=="],
-
- "w3c-xmlserializer": ["[email protected]", "", { "dependencies": { "xml-name-validator": "^5.0.0" } }, "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA=="],
-
- "webidl-conversions": ["[email protected]", "", {}, "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="],
-
- "whatwg-encoding": ["[email protected]", "", { "dependencies": { "iconv-lite": "0.6.3" } }, "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ=="],
-
- "whatwg-mimetype": ["[email protected]", "", {}, "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg=="],
-
- "whatwg-url": ["[email protected]", "", { "dependencies": { "tr46": "^5.1.0", "webidl-conversions": "^7.0.0" } }, "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw=="],
-
- "wrappy": ["[email protected]", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="],
-
- "ws": ["[email protected]", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ=="],
-
- "xml-name-validator": ["[email protected]", "", {}, "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg=="],
-
- "xmlchars": ["[email protected]", "", {}, "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="],
-
- "zod": ["[email protected]", "", {}, "sha512-VGZqnyYNrl8JpEJRZaFPqeVNIuqgXNu4cXZ5cOb6zEUO1OxKbRnWB4UdDIXMmiERWncs0yDQukssHov8JUxykQ=="],
-
- "zod-openapi": ["[email protected]", "", { "peerDependencies": { "zod": "^3.21.4" } }, "sha512-tsrQpbpqFCXqVXUzi3TPwFhuMtLN3oNZobOtYnK6/5VkXsNdnIgyNr4r8no4wmYluaxzN3F7iS+8xCW8BmMQ8g=="],
-
- "zod-to-json-schema": ["[email protected]", "", { "peerDependencies": { "zod": "^3.24.1" } }, "sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g=="],
-
- "args/chalk": ["[email protected]", "", { "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": ["[email protected]", "", {}, "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg=="],
-
- "vscode-languageserver-protocol/vscode-jsonrpc": ["[email protected]", "", {}, "sha512-6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw=="],
-
- "args/chalk/ansi-styles": ["[email protected]", "", { "dependencies": { "color-convert": "^1.9.0" } }, "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="],
-
- "args/chalk/supports-color": ["[email protected]", "", { "dependencies": { "has-flag": "^3.0.0" } }, "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="],
-
- "args/chalk/ansi-styles/color-convert": ["[email protected]", "", { "dependencies": { "color-name": "1.1.3" } }, "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="],
-
- "args/chalk/supports-color/has-flag": ["[email protected]", "", {}, "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="],
-
- "args/chalk/ansi-styles/color-convert/color-name": ["[email protected]", "", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="],
- }
-}
diff --git a/app/package.json b/package.json
index 1e4954367..329c5ba56 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": "[email protected]",
diff --git a/app/packages/function/package.json b/packages/function/package.json
index 46c83e840..46c83e840 100644
--- a/app/packages/function/package.json
+++ b/packages/function/package.json
diff --git a/app/packages/function/src/api.ts b/packages/function/src/api.ts
index 8b6c52dd8..3e2ce9eca 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<SyncServer>
diff --git a/app/packages/function/sst-env.d.ts b/packages/function/sst-env.d.ts
index 41727ee9d..41727ee9d 100644
--- a/app/packages/function/sst-env.d.ts
+++ b/packages/function/sst-env.d.ts
diff --git a/app/packages/function/tsconfig.json b/packages/function/tsconfig.json
index 0faf16aab..0faf16aab 100644
--- a/app/packages/function/tsconfig.json
+++ b/packages/function/tsconfig.json
diff --git a/js/.gitignore b/packages/opencode/.gitignore
index 5f9a3e7af..5f9a3e7af 100644
--- a/js/.gitignore
+++ b/packages/opencode/.gitignore
diff --git a/js/README.md b/packages/opencode/README.md
index 75890119c..75890119c 100644
--- a/js/README.md
+++ b/packages/opencode/README.md
diff --git a/packages/opencode/bin/opencode.mjs b/packages/opencode/bin/opencode.mjs
new file mode 100644
index 000000000..05eac3fb7
--- /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
index d386dac89..6ce3cabc9 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
index 35ff3fbfb..35ff3fbfb 100644
--- a/js/scrap.ts
+++ b/packages/opencode/scrap.ts
diff --git a/packages/opencode/script/release.ts b/packages/opencode/script/release.ts
new file mode 100755
index 000000000..af770cc33
--- /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<string, string> = {}
+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
index 0c6260bc7..0c6260bc7 100644
--- a/js/src/app/app.ts
+++ b/packages/opencode/src/app/app.ts
diff --git a/js/src/app/path.ts b/packages/opencode/src/app/path.ts
index 972d18c41..972d18c41 100644
--- a/js/src/app/path.ts
+++ b/packages/opencode/src/app/path.ts
diff --git a/js/src/bun/index.ts b/packages/opencode/src/bun/index.ts
index 35e8cbbf9..35e8cbbf9 100644
--- a/js/src/bun/index.ts
+++ b/packages/opencode/src/bun/index.ts
diff --git a/js/src/bus/index.ts b/packages/opencode/src/bus/index.ts
index 342d82b6d..342d82b6d 100644
--- a/js/src/bus/index.ts
+++ b/packages/opencode/src/bus/index.ts
diff --git a/js/src/config/config.ts b/packages/opencode/src/config/config.ts
index 8c374b3f3..8c374b3f3 100644
--- a/js/src/config/config.ts
+++ b/packages/opencode/src/config/config.ts
diff --git a/js/src/global/index.ts b/packages/opencode/src/global/index.ts
index 1e097f38c..1e097f38c 100644
--- a/js/src/global/index.ts
+++ b/packages/opencode/src/global/index.ts
diff --git a/js/src/id/id.ts b/packages/opencode/src/id/id.ts
index 62c6a12bf..62c6a12bf 100644
--- a/js/src/id/id.ts
+++ b/packages/opencode/src/id/id.ts
diff --git a/js/src/index.ts b/packages/opencode/src/index.ts
index c86e60955..26f25f783 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 <id>", "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
index a7d31fb99..3fb8357f2 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<string, string[]> = {
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
index 82caa82a2..82caa82a2 100644
--- a/js/src/lsp/client.ts
+++ b/packages/opencode/src/lsp/client.ts
diff --git a/js/src/lsp/index.ts b/packages/opencode/src/lsp/index.ts
index e3344a934..e3344a934 100644
--- a/js/src/lsp/index.ts
+++ b/packages/opencode/src/lsp/index.ts
diff --git a/js/src/lsp/language.ts b/packages/opencode/src/lsp/language.ts
index e28d7a79c..e28d7a79c 100644
--- a/js/src/lsp/language.ts
+++ b/packages/opencode/src/lsp/language.ts
diff --git a/js/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts
index d4719ffbb..d4719ffbb 100644
--- a/js/src/provider/provider.ts
+++ b/packages/opencode/src/provider/provider.ts
diff --git a/js/src/server/server.ts b/packages/opencode/src/server/server.ts
index 28591cbd2..28591cbd2 100644
--- a/js/src/server/server.ts
+++ b/packages/opencode/src/server/server.ts
diff --git a/js/src/session/message.ts b/packages/opencode/src/session/message.ts
index 11ec5c6b3..11ec5c6b3 100644
--- a/js/src/session/message.ts
+++ b/packages/opencode/src/session/message.ts
diff --git a/js/src/session/prompt/anthropic.txt b/packages/opencode/src/session/prompt/anthropic.txt
index c8ff697e8..c8ff697e8 100644
--- a/js/src/session/prompt/anthropic.txt
+++ b/packages/opencode/src/session/prompt/anthropic.txt
diff --git a/js/src/session/prompt/summarize.txt b/packages/opencode/src/session/prompt/summarize.txt
index 4751c8d71..4751c8d71 100644
--- a/js/src/session/prompt/summarize.txt
+++ b/packages/opencode/src/session/prompt/summarize.txt
diff --git a/js/src/session/prompt/title.txt b/packages/opencode/src/session/prompt/title.txt
index a57f9082b..a57f9082b 100644
--- a/js/src/session/prompt/title.txt
+++ b/packages/opencode/src/session/prompt/title.txt
diff --git a/js/src/session/session.ts b/packages/opencode/src/session/session.ts
index 6eb5f0373..6eb5f0373 100644
--- a/js/src/session/session.ts
+++ b/packages/opencode/src/session/session.ts
diff --git a/js/src/share/share.ts b/packages/opencode/src/share/share.ts
index 8d4af8795..8d4af8795 100644
--- a/js/src/share/share.ts
+++ b/packages/opencode/src/share/share.ts
diff --git a/js/src/storage/storage.ts b/packages/opencode/src/storage/storage.ts
index 983b7e0f9..983b7e0f9 100644
--- a/js/src/storage/storage.ts
+++ b/packages/opencode/src/storage/storage.ts
diff --git a/js/src/tool/bash.ts b/packages/opencode/src/tool/bash.ts
index 5ad92e3c8..5ad92e3c8 100644
--- a/js/src/tool/bash.ts
+++ b/packages/opencode/src/tool/bash.ts
diff --git a/js/src/tool/edit.ts b/packages/opencode/src/tool/edit.ts
index 9ba99a3be..9ba99a3be 100644
--- a/js/src/tool/edit.ts
+++ b/packages/opencode/src/tool/edit.ts
diff --git a/js/src/tool/fetch.ts b/packages/opencode/src/tool/fetch.ts
index 573e0eec7..573e0eec7 100644
--- a/js/src/tool/fetch.ts
+++ b/packages/opencode/src/tool/fetch.ts
diff --git a/js/src/tool/glob.ts b/packages/opencode/src/tool/glob.ts
index da47ee4ca..da47ee4ca 100644
--- a/js/src/tool/glob.ts
+++ b/packages/opencode/src/tool/glob.ts
diff --git a/js/src/tool/grep.ts b/packages/opencode/src/tool/grep.ts
index 8b2375f63..8b2375f63 100644
--- a/js/src/tool/grep.ts
+++ b/packages/opencode/src/tool/grep.ts
diff --git a/js/src/tool/index.ts b/packages/opencode/src/tool/index.ts
index 3930c87c4..3930c87c4 100644
--- a/js/src/tool/index.ts
+++ b/packages/opencode/src/tool/index.ts
diff --git a/js/src/tool/ls.ts b/packages/opencode/src/tool/ls.ts
index 46efb307a..46efb307a 100644
--- a/js/src/tool/ls.ts
+++ b/packages/opencode/src/tool/ls.ts
diff --git a/js/src/tool/lsp-diagnostics.ts b/packages/opencode/src/tool/lsp-diagnostics.ts
index 736efc034..736efc034 100644
--- a/js/src/tool/lsp-diagnostics.ts
+++ b/packages/opencode/src/tool/lsp-diagnostics.ts
diff --git a/js/src/tool/lsp-hover.ts b/packages/opencode/src/tool/lsp-hover.ts
index c7a132645..c7a132645 100644
--- a/js/src/tool/lsp-hover.ts
+++ b/packages/opencode/src/tool/lsp-hover.ts
diff --git a/js/src/tool/patch.ts b/packages/opencode/src/tool/patch.ts
index 9f9192fda..9f9192fda 100644
--- a/js/src/tool/patch.ts
+++ b/packages/opencode/src/tool/patch.ts
diff --git a/js/src/tool/tool.ts b/packages/opencode/src/tool/tool.ts
index 0cd65e007..0cd65e007 100644
--- a/js/src/tool/tool.ts
+++ b/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
index 8d36d007d..8d36d007d 100644
--- a/js/src/tool/util/file-times.ts
+++ b/packages/opencode/src/tool/util/file-times.ts
diff --git a/js/src/tool/view.ts b/packages/opencode/src/tool/view.ts
index ee11881d3..ee11881d3 100644
--- a/js/src/tool/view.ts
+++ b/packages/opencode/src/tool/view.ts
diff --git a/js/src/util/context.ts b/packages/opencode/src/util/context.ts
index bcaf7ee3c..bcaf7ee3c 100644
--- a/js/src/util/context.ts
+++ b/packages/opencode/src/util/context.ts
diff --git a/js/src/util/event.ts b/packages/opencode/src/util/event.ts
index e69de29bb..e69de29bb 100644
--- a/js/src/util/event.ts
+++ b/packages/opencode/src/util/event.ts
diff --git a/js/src/util/log.ts b/packages/opencode/src/util/log.ts
index 34707b136..34707b136 100644
--- a/js/src/util/log.ts
+++ b/packages/opencode/src/util/log.ts
diff --git a/js/src/util/scrap.ts b/packages/opencode/src/util/scrap.ts
index 16005acdc..16005acdc 100644
--- a/js/src/util/scrap.ts
+++ b/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
index 12669e387..12669e387 100644
--- a/js/test/tool/__snapshots__/tool.test.ts.snap
+++ b/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
index 4b6d2efd3..4b6d2efd3 100644
--- a/js/test/tool/tool.test.ts
+++ b/packages/opencode/test/tool/tool.test.ts
diff --git a/js/tsconfig.json b/packages/opencode/tsconfig.json
index 65fa6c7f3..65fa6c7f3 100644
--- a/js/tsconfig.json
+++ b/packages/opencode/tsconfig.json
diff --git a/.goreleaser.yml b/packages/tui/.goreleaser.yml
index 1545199d5..1545199d5 100644
--- a/.goreleaser.yml
+++ b/packages/tui/.goreleaser.yml
diff --git a/packages/tui/app.log b/packages/tui/app.log
new file mode 100644
index 000000000..b985bc5f4
--- /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:<nil>}} 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
index 85258d591..85258d591 100644
--- a/cmd/root.go
+++ b/packages/tui/cmd/root.go
diff --git a/go.mod b/packages/tui/go.mod
index ebd00828b..ebd00828b 100644
--- a/go.mod
+++ b/packages/tui/go.mod
diff --git a/go.sum b/packages/tui/go.sum
index c11a945ac..c11a945ac 100644
--- a/go.sum
+++ b/packages/tui/go.sum
diff --git a/internal/completions/files-folders.go b/packages/tui/internal/completions/files-folders.go
index a405b34cd..a405b34cd 100644
--- a/internal/completions/files-folders.go
+++ b/packages/tui/internal/completions/files-folders.go
diff --git a/internal/config/config.go b/packages/tui/internal/config/config.go
index 2197f5aa4..2197f5aa4 100644
--- a/internal/config/config.go
+++ b/packages/tui/internal/config/config.go
diff --git a/internal/config/init.go b/packages/tui/internal/config/init.go
index 5f8860f52..5f8860f52 100644
--- a/internal/config/init.go
+++ b/packages/tui/internal/config/init.go
diff --git a/internal/diff/diff.go b/packages/tui/internal/diff/diff.go
index 350db664a..350db664a 100644
--- a/internal/diff/diff.go
+++ b/packages/tui/internal/diff/diff.go
diff --git a/internal/diff/diff_test.go b/packages/tui/internal/diff/diff_test.go
index 4c014e45c..4c014e45c 100644
--- a/internal/diff/diff_test.go
+++ b/packages/tui/internal/diff/diff_test.go
diff --git a/internal/diff/patch.go b/packages/tui/internal/diff/patch.go
index 49242f7ef..49242f7ef 100644
--- a/internal/diff/patch.go
+++ b/packages/tui/internal/diff/patch.go
diff --git a/internal/fileutil/fileutil.go b/packages/tui/internal/fileutil/fileutil.go
index b48152f7a..b48152f7a 100644
--- a/internal/fileutil/fileutil.go
+++ b/packages/tui/internal/fileutil/fileutil.go
diff --git a/internal/format/format.go b/packages/tui/internal/format/format.go
index 321f5c102..321f5c102 100644
--- a/internal/format/format.go
+++ b/packages/tui/internal/format/format.go
diff --git a/internal/format/format_test.go b/packages/tui/internal/format/format_test.go
index 04054a7c4..04054a7c4 100644
--- a/internal/format/format_test.go
+++ b/packages/tui/internal/format/format_test.go
diff --git a/internal/pubsub/broker.go b/packages/tui/internal/pubsub/broker.go
index 05a4476c8..05a4476c8 100644
--- a/internal/pubsub/broker.go
+++ b/packages/tui/internal/pubsub/broker.go
diff --git a/internal/pubsub/broker_test.go b/packages/tui/internal/pubsub/broker_test.go
index b4caa98f3..b4caa98f3 100644
--- a/internal/pubsub/broker_test.go
+++ b/packages/tui/internal/pubsub/broker_test.go
diff --git a/internal/pubsub/events.go b/packages/tui/internal/pubsub/events.go
index e3910f9f5..e3910f9f5 100644
--- a/internal/pubsub/events.go
+++ b/packages/tui/internal/pubsub/events.go
diff --git a/internal/status/status.go b/packages/tui/internal/status/status.go
index 3648a64ae..3648a64ae 100644
--- a/internal/status/status.go
+++ b/packages/tui/internal/status/status.go
diff --git a/internal/tui/app/app.go b/packages/tui/internal/tui/app/app.go
index 8320d815b..8320d815b 100644
--- a/internal/tui/app/app.go
+++ b/packages/tui/internal/tui/app/app.go
diff --git a/internal/tui/app/bridge.go b/packages/tui/internal/tui/app/bridge.go
index cd149f6b3..cd149f6b3 100644
--- a/internal/tui/app/bridge.go
+++ b/packages/tui/internal/tui/app/bridge.go
diff --git a/internal/tui/app/interfaces.go b/packages/tui/internal/tui/app/interfaces.go
index a396ef586..a396ef586 100644
--- a/internal/tui/app/interfaces.go
+++ b/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
index 2fabea43d..2fabea43d 100644
--- a/internal/tui/components/chat/chat.go
+++ b/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
index 6586f2020..6586f2020 100644
--- a/internal/tui/components/chat/editor.go
+++ b/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
index feed7ec59..feed7ec59 100644
--- a/internal/tui/components/chat/message.go
+++ b/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
index ae6f2a687..ae6f2a687 100644
--- a/internal/tui/components/chat/messages.go
+++ b/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
index d6895a164..d6895a164 100644
--- a/internal/tui/components/chat/sidebar.go
+++ b/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
index 18a0ad6b1..18a0ad6b1 100644
--- a/internal/tui/components/core/status.go
+++ b/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
index fed79bce3..fed79bce3 100644
--- a/internal/tui/components/dialog/arguments.go
+++ b/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
index b989154c6..b989154c6 100644
--- a/internal/tui/components/dialog/commands.go
+++ b/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
index 57193d00c..57193d00c 100644
--- a/internal/tui/components/dialog/complete.go
+++ b/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
index be6746feb..be6746feb 100644
--- a/internal/tui/components/dialog/custom_commands.go
+++ b/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
index 3468ac3b0..3468ac3b0 100644
--- a/internal/tui/components/dialog/custom_commands_test.go
+++ b/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
index 088e205f2..088e205f2 100644
--- a/internal/tui/components/dialog/filepicker.go
+++ b/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
index 1f7f53e11..1f7f53e11 100644
--- a/internal/tui/components/dialog/help.go
+++ b/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
index 2ef8546f6..2ef8546f6 100644
--- a/internal/tui/components/dialog/init.go
+++ b/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
index 2dd1e2fea..2dd1e2fea 100644
--- a/internal/tui/components/dialog/models.go
+++ b/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
index 0e5afdeab..0e5afdeab 100644
--- a/internal/tui/components/dialog/permission.go
+++ b/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
index 3fd2ea920..3fd2ea920 100644
--- a/internal/tui/components/dialog/quit.go
+++ b/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
index 99aa41515..99aa41515 100644
--- a/internal/tui/components/dialog/session.go
+++ b/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
index 54856e8a9..54856e8a9 100644
--- a/internal/tui/components/dialog/theme.go
+++ b/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
index 76e6ff227..76e6ff227 100644
--- a/internal/tui/components/dialog/tools.go
+++ b/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
index 42a60bb5e..42a60bb5e 100644
--- a/internal/tui/components/qr/qr.go
+++ b/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
index 5e1af8771..5e1af8771 100644
--- a/internal/tui/components/spinner/spinner.go
+++ b/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
index 065726e91..065726e91 100644
--- a/internal/tui/components/spinner/spinner_test.go
+++ b/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
index 7b8c4b1cb..7b8c4b1cb 100644
--- a/internal/tui/components/util/simple-list.go
+++ b/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
index 3cb590207..3cb590207 100644
--- a/internal/tui/image/clipboard_unix.go
+++ b/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
index 6431ce3d4..6431ce3d4 100644
--- a/internal/tui/image/clipboard_windows.go
+++ b/packages/tui/internal/tui/image/clipboard_windows.go
diff --git a/internal/tui/image/images.go b/packages/tui/internal/tui/image/images.go
index f476b201c..f476b201c 100644
--- a/internal/tui/image/images.go
+++ b/packages/tui/internal/tui/image/images.go
diff --git a/internal/tui/layout/container.go b/packages/tui/internal/tui/layout/container.go
index b5bdca20a..b5bdca20a 100644
--- a/internal/tui/layout/container.go
+++ b/packages/tui/internal/tui/layout/container.go
diff --git a/internal/tui/layout/layout.go b/packages/tui/internal/tui/layout/layout.go
index 495a3fbc5..495a3fbc5 100644
--- a/internal/tui/layout/layout.go
+++ b/packages/tui/internal/tui/layout/layout.go
diff --git a/internal/tui/layout/overlay.go b/packages/tui/internal/tui/layout/overlay.go
index 64836463d..64836463d 100644
--- a/internal/tui/layout/overlay.go
+++ b/packages/tui/internal/tui/layout/overlay.go
diff --git a/internal/tui/layout/split.go b/packages/tui/internal/tui/layout/split.go
index 81e159517..81e159517 100644
--- a/internal/tui/layout/split.go
+++ b/packages/tui/internal/tui/layout/split.go
diff --git a/internal/tui/page/chat.go b/packages/tui/internal/tui/page/chat.go
index bf30193f5..bf30193f5 100644
--- a/internal/tui/page/chat.go
+++ b/packages/tui/internal/tui/page/chat.go
diff --git a/internal/tui/page/page.go b/packages/tui/internal/tui/page/page.go
index 482df5fd7..482df5fd7 100644
--- a/internal/tui/page/page.go
+++ b/packages/tui/internal/tui/page/page.go
diff --git a/internal/tui/state/state.go b/packages/tui/internal/tui/state/state.go
index 6b117518e..6b117518e 100644
--- a/internal/tui/state/state.go
+++ b/packages/tui/internal/tui/state/state.go
diff --git a/internal/tui/styles/background.go b/packages/tui/internal/tui/styles/background.go
index 2fbb34efb..2fbb34efb 100644
--- a/internal/tui/styles/background.go
+++ b/packages/tui/internal/tui/styles/background.go
diff --git a/internal/tui/styles/icons.go b/packages/tui/internal/tui/styles/icons.go
index 8ff5fe8bf..8ff5fe8bf 100644
--- a/internal/tui/styles/icons.go
+++ b/packages/tui/internal/tui/styles/icons.go
diff --git a/internal/tui/styles/markdown.go b/packages/tui/internal/tui/styles/markdown.go
index 77fb51bae..77fb51bae 100644
--- a/internal/tui/styles/markdown.go
+++ b/packages/tui/internal/tui/styles/markdown.go
diff --git a/internal/tui/styles/styles.go b/packages/tui/internal/tui/styles/styles.go
index 91661a1dd..91661a1dd 100644
--- a/internal/tui/styles/styles.go
+++ b/packages/tui/internal/tui/styles/styles.go
diff --git a/internal/tui/theme/ayu.go b/packages/tui/internal/tui/theme/ayu.go
index b3dfa870a..b3dfa870a 100644
--- a/internal/tui/theme/ayu.go
+++ b/packages/tui/internal/tui/theme/ayu.go
diff --git a/internal/tui/theme/catppuccin.go b/packages/tui/internal/tui/theme/catppuccin.go
index c3c32501e..c3c32501e 100644
--- a/internal/tui/theme/catppuccin.go
+++ b/packages/tui/internal/tui/theme/catppuccin.go
diff --git a/internal/tui/theme/dracula.go b/packages/tui/internal/tui/theme/dracula.go
index 29a1457d4..29a1457d4 100644
--- a/internal/tui/theme/dracula.go
+++ b/packages/tui/internal/tui/theme/dracula.go
diff --git a/internal/tui/theme/flexoki.go b/packages/tui/internal/tui/theme/flexoki.go
index 5da5683c5..5da5683c5 100644
--- a/internal/tui/theme/flexoki.go
+++ b/packages/tui/internal/tui/theme/flexoki.go
diff --git a/internal/tui/theme/gruvbox.go b/packages/tui/internal/tui/theme/gruvbox.go
index 51719faaa..51719faaa 100644
--- a/internal/tui/theme/gruvbox.go
+++ b/packages/tui/internal/tui/theme/gruvbox.go
diff --git a/internal/tui/theme/manager.go b/packages/tui/internal/tui/theme/manager.go
index 5a5c791fb..5a5c791fb 100644
--- a/internal/tui/theme/manager.go
+++ b/packages/tui/internal/tui/theme/manager.go
diff --git a/internal/tui/theme/monokai.go b/packages/tui/internal/tui/theme/monokai.go
index 7511d3333..7511d3333 100644
--- a/internal/tui/theme/monokai.go
+++ b/packages/tui/internal/tui/theme/monokai.go
diff --git a/internal/tui/theme/onedark.go b/packages/tui/internal/tui/theme/onedark.go
index a2c1447ca..a2c1447ca 100644
--- a/internal/tui/theme/onedark.go
+++ b/packages/tui/internal/tui/theme/onedark.go
diff --git a/internal/tui/theme/opencode.go b/packages/tui/internal/tui/theme/opencode.go
index 7ee6f15e5..7ee6f15e5 100644
--- a/internal/tui/theme/opencode.go
+++ b/packages/tui/internal/tui/theme/opencode.go
diff --git a/internal/tui/theme/theme.go b/packages/tui/internal/tui/theme/theme.go
index c97b95478..c97b95478 100644
--- a/internal/tui/theme/theme.go
+++ b/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
index 790ee3aa8..790ee3aa8 100644
--- a/internal/tui/theme/theme_test.go
+++ b/packages/tui/internal/tui/theme/theme_test.go
diff --git a/internal/tui/theme/tokyonight.go b/packages/tui/internal/tui/theme/tokyonight.go
index a6499a25d..a6499a25d 100644
--- a/internal/tui/theme/tokyonight.go
+++ b/packages/tui/internal/tui/theme/tokyonight.go
diff --git a/internal/tui/theme/tron.go b/packages/tui/internal/tui/theme/tron.go
index c4997a6d1..c4997a6d1 100644
--- a/internal/tui/theme/tron.go
+++ b/packages/tui/internal/tui/theme/tron.go
diff --git a/internal/tui/tui.go b/packages/tui/internal/tui/tui.go
index 236d5e453..236d5e453 100644
--- a/internal/tui/tui.go
+++ b/packages/tui/internal/tui/tui.go
diff --git a/internal/tui/util/util.go b/packages/tui/internal/tui/util/util.go
index 207382d1e..207382d1e 100644
--- a/internal/tui/util/util.go
+++ b/packages/tui/internal/tui/util/util.go
diff --git a/internal/version/version.go b/packages/tui/internal/version/version.go
index 69fd5282b..69fd5282b 100644
--- a/internal/version/version.go
+++ b/packages/tui/internal/version/version.go
diff --git a/main.go b/packages/tui/main.go
index d81e6f8f9..d81e6f8f9 100644
--- a/main.go
+++ b/packages/tui/main.go
diff --git a/pkg/client/.gitignore b/packages/tui/pkg/client/.gitignore
index c56971e89..c56971e89 100644
--- a/pkg/client/.gitignore
+++ b/packages/tui/pkg/client/.gitignore
diff --git a/pkg/client/client.go b/packages/tui/pkg/client/client.go
index bf2d5038e..bf2d5038e 100644
--- a/pkg/client/client.go
+++ b/packages/tui/pkg/client/client.go
diff --git a/pkg/client/event.go b/packages/tui/pkg/client/event.go
index f5aab2d26..f5aab2d26 100644
--- a/pkg/client/event.go
+++ b/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 000000000..7ee6f15e5
--- /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
index 6240da8b1..6240da8b1 100644
--- a/app/packages/web/.gitignore
+++ b/packages/web/.gitignore
diff --git a/app/packages/web/README.md b/packages/web/README.md
index f9f6d31c6..f9f6d31c6 100644
--- a/app/packages/web/README.md
+++ b/packages/web/README.md
diff --git a/app/packages/web/astro.config.mjs b/packages/web/astro.config.mjs
index bfe18acd8..bfe18acd8 100644
--- a/app/packages/web/astro.config.mjs
+++ b/packages/web/astro.config.mjs
diff --git a/app/packages/web/package.json b/packages/web/package.json
index aa0b1dc01..33b3dc4d2 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
index 8b011db3f..8b011db3f 100644
--- a/app/packages/web/public/favicon.svg
+++ b/packages/web/public/favicon.svg
diff --git a/app/packages/web/public/social-share.png b/packages/web/public/social-share.png
index 23905086a..23905086a 100644
--- a/app/packages/web/public/social-share.png
+++ b/packages/web/public/social-share.png
Binary files differ
diff --git a/app/packages/web/src/assets/lander/check.svg b/packages/web/src/assets/lander/check.svg
index 22de6f2a8..22de6f2a8 100644
--- a/app/packages/web/src/assets/lander/check.svg
+++ b/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
index f1baac30a..f1baac30a 100644
--- a/app/packages/web/src/assets/lander/copy.svg
+++ b/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
index 8fd212081..8fd212081 100644
--- a/app/packages/web/src/assets/logo-dark.svg
+++ b/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
index 0a9007e1a..0a9007e1a 100644
--- a/app/packages/web/src/assets/logo-light.svg
+++ b/packages/web/src/assets/logo-light.svg
diff --git a/app/packages/web/src/components/CodeBlock.tsx b/packages/web/src/components/CodeBlock.tsx
index 17559ece1..17559ece1 100644
--- a/app/packages/web/src/components/CodeBlock.tsx
+++ b/packages/web/src/components/CodeBlock.tsx
diff --git a/app/packages/web/src/components/DiffView.tsx b/packages/web/src/components/DiffView.tsx
index 44feef140..44feef140 100644
--- a/app/packages/web/src/components/DiffView.tsx
+++ b/packages/web/src/components/DiffView.tsx
diff --git a/app/packages/web/src/components/Header.astro b/packages/web/src/components/Header.astro
index a45899ff8..a45899ff8 100644
--- a/app/packages/web/src/components/Header.astro
+++ b/packages/web/src/components/Header.astro
diff --git a/app/packages/web/src/components/Hero.astro b/packages/web/src/components/Hero.astro
index f80f85266..f80f85266 100644
--- a/app/packages/web/src/components/Hero.astro
+++ b/packages/web/src/components/Hero.astro
diff --git a/app/packages/web/src/components/Lander.astro b/packages/web/src/components/Lander.astro
index d27358f8f..d27358f8f 100644
--- a/app/packages/web/src/components/Lander.astro
+++ b/packages/web/src/components/Lander.astro
diff --git a/app/packages/web/src/components/Share.tsx b/packages/web/src/components/Share.tsx
index ac75a3cf7..ac75a3cf7 100644
--- a/app/packages/web/src/components/Share.tsx
+++ b/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
index 1a0e6c523..1a0e6c523 100644
--- a/app/packages/web/src/components/diffview.module.css
+++ b/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
index f016b83cf..f016b83cf 100644
--- a/app/packages/web/src/components/icons/custom.tsx
+++ b/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
index 9603925d5..9603925d5 100644
--- a/app/packages/web/src/components/icons/index.tsx
+++ b/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
index 5d1dab1bf..5d1dab1bf 100644
--- a/app/packages/web/src/components/share.module.css
+++ b/packages/web/src/components/share.module.css
diff --git a/app/packages/web/src/content.config.ts b/packages/web/src/content.config.ts
index d9ee8c9d1..d9ee8c9d1 100644
--- a/app/packages/web/src/content.config.ts
+++ b/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
index 44a56e1fb..44a56e1fb 100644
--- a/app/packages/web/src/content/docs/docs/cli.mdx
+++ b/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
index 288f194c5..288f194c5 100644
--- a/app/packages/web/src/content/docs/docs/config.mdx
+++ b/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
index e6f71be19..e6f71be19 100644
--- a/app/packages/web/src/content/docs/docs/index.mdx
+++ b/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
index cd259dea7..cd259dea7 100644
--- a/app/packages/web/src/content/docs/docs/lsp-servers.mdx
+++ b/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
index 28c6d2ab2..28c6d2ab2 100644
--- a/app/packages/web/src/content/docs/docs/mcp-servers.mdx
+++ b/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
index c40216695..c40216695 100644
--- a/app/packages/web/src/content/docs/docs/models.mdx
+++ b/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
index dd866e0f3..dd866e0f3 100644
--- a/app/packages/web/src/content/docs/docs/shortcuts.mdx
+++ b/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
index e691a22e7..e691a22e7 100644
--- a/app/packages/web/src/content/docs/docs/themes.mdx
+++ b/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
index 176520ec5..176520ec5 100644
--- a/app/packages/web/src/content/docs/index.mdx
+++ b/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
index b678c0db9..b678c0db9 100644
--- a/app/packages/web/src/pages/s/index.astro
+++ b/packages/web/src/pages/s/index.astro
diff --git a/app/packages/web/src/styles/custom.css b/packages/web/src/styles/custom.css
index 9c4c71f00..9c4c71f00 100644
--- a/app/packages/web/src/styles/custom.css
+++ b/packages/web/src/styles/custom.css
diff --git a/app/packages/web/sst-env.d.ts b/packages/web/sst-env.d.ts
index b6a7e9066..b6a7e9066 100644
--- a/app/packages/web/sst-env.d.ts
+++ b/packages/web/sst-env.d.ts
diff --git a/app/packages/web/tsconfig.json b/packages/web/tsconfig.json
index 973603872..973603872 100644
--- a/app/packages/web/tsconfig.json
+++ b/packages/web/tsconfig.json
diff --git a/pkg/client/gen/openapi.json b/pkg/client/gen/openapi.json
deleted file mode 100644
index c5f1c64b3..000000000
--- 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 925468a61..000000000
--- 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
index 7ca38b723..7ca38b723 100644
--- a/app/sst-env.d.ts
+++ b/sst-env.d.ts
diff --git a/app/sst.config.ts b/sst.config.ts
index 4c36fea58..4c36fea58 100644
--- a/app/sst.config.ts
+++ b/sst.config.ts
diff --git a/app/tsconfig.json b/tsconfig.json
index 0967ef424..0967ef424 100644
--- a/app/tsconfig.json
+++ b/tsconfig.json