diff --git a/.github/workflows/deploy-files.yml b/.github/workflows/deploy-files.yml new file mode 100644 index 00000000000..1f1bfcd3af5 --- /dev/null +++ b/.github/workflows/deploy-files.yml @@ -0,0 +1,39 @@ +name: deploy-files + +on: + push: + branches: + - dev + - v2 + workflow_dispatch: + +concurrency: + group: deploy-files-${{ github.ref_name }} + cancel-in-progress: false + +permissions: + contents: read + id-token: write + +jobs: + deploy: + if: github.repository == 'anomalyco/opencode' && (github.ref_name == 'dev' || github.ref_name == 'v2') + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 + + - uses: ./.github/actions/setup-bun + + - name: Typecheck + working-directory: services/files + run: bun typecheck + + - name: Authenticate with Pulumi Cloud + uses: pulumi/auth-actions@141415910c3beb54e03b48e9057c204c97b956f2 # v2.1.0 + with: + organization: anomalyco + requested-token-type: urn:pulumi:token-type:access_token:organization + + - name: Deploy + working-directory: services/files + run: bun run deploy --stack anomalyco/files/${{ github.ref_name == 'v2' && 'production' || 'dev' }} --yes --non-interactive diff --git a/.github/workflows/deploy-www.yml b/.github/workflows/deploy-www.yml index feded3f2e85..1d602c936e5 100644 --- a/.github/workflows/deploy-www.yml +++ b/.github/workflows/deploy-www.yml @@ -24,13 +24,13 @@ jobs: - uses: ./.github/actions/setup-bun - name: Build - working-directory: packages/www + working-directory: services/www run: bun run build env: CLOUDFLARE_ENV: ${{ github.ref_name == 'v2' && 'production' || 'dev' }} - name: Deploy - working-directory: packages/www + working-directory: services/www run: bun run deploy env: CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} diff --git a/.github/workflows/nix-hashes.yml b/.github/workflows/nix-hashes.yml index da7c3fba9f4..05377a43611 100644 --- a/.github/workflows/nix-hashes.yml +++ b/.github/workflows/nix-hashes.yml @@ -11,6 +11,7 @@ on: - "bun.lock" - "package.json" - "packages/*/package.json" + - "services/*/package.json" - "flake.lock" - "nix/node_modules.nix" - "nix/scripts/**" diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index e1269ab702b..74c9d77c140 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -48,7 +48,7 @@ jobs: - name: Deploy update service if: github.ref_name == 'v2' - working-directory: packages/updates + working-directory: services/updates run: bun run deploy env: CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a90c3cd3d0a..1c4028fadde 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -173,7 +173,7 @@ jobs: - name: Check generated documentation if: runner.os == 'Linux' - working-directory: packages/www + working-directory: services/www run: bun run check:generated e2e: diff --git a/bun.lock b/bun.lock index 2afb0ce01d6..a96746ef725 100644 --- a/bun.lock +++ b/bun.lock @@ -962,22 +962,6 @@ "solid-js": "^1.9.8", }, }, - "packages/updates": { - "name": "@opencode/updates", - "version": "1.18.4", - "dependencies": { - "jose": "6.0.11", - "semver": "catalog:", - }, - "devDependencies": { - "@cloudflare/workers-types": "catalog:", - "@tsconfig/node22": "catalog:", - "@types/bun": "catalog:", - "@types/semver": "catalog:", - "@typescript/native-preview": "catalog:", - "wrangler": "4.110.0", - }, - }, "packages/util": { "name": "@opencode/util", "version": "1.18.3", @@ -1043,7 +1027,38 @@ "typescript": "catalog:", }, }, - "packages/www": { + "services/files": { + "name": "@opencode/files", + "dependencies": { + "@pulumi/cloudflare": "6.17.0", + "@pulumi/pulumi": "3.246.0", + }, + "devDependencies": { + "@cloudflare/workers-types": "catalog:", + "@tsconfig/node22": "catalog:", + "@types/node": "catalog:", + "@typescript/native-preview": "catalog:", + "pulumi": "3.246.0", + "typescript": "catalog:", + }, + }, + "services/updates": { + "name": "@opencode/updates", + "version": "1.18.4", + "dependencies": { + "jose": "6.0.11", + "semver": "catalog:", + }, + "devDependencies": { + "@cloudflare/workers-types": "catalog:", + "@tsconfig/node22": "catalog:", + "@types/bun": "catalog:", + "@types/semver": "catalog:", + "@typescript/native-preview": "catalog:", + "wrangler": "4.110.0", + }, + }, + "services/www": { "name": "@opencode/www", "dependencies": { "@astrojs/mdx": "7.0.5", @@ -1862,6 +1877,10 @@ "@graphql-typed-document-node/core": ["@graphql-typed-document-node/core@3.2.0", "", { "peerDependencies": { "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ=="], + "@grpc/grpc-js": ["@grpc/grpc-js@1.14.4", "", { "dependencies": { "@grpc/proto-loader": "^0.8.0", "@js-sdsl/ordered-map": "^4.4.2" } }, "sha512-k9Dj3DV/itK9D06Y8f190Qgop7/Ui+D0njFV3LHMPwPT75DpXLQohE9Wmz0QElrJnzsjB7KPWiKJbOl7IPDArQ=="], + + "@grpc/proto-loader": ["@grpc/proto-loader@0.8.1", "", { "dependencies": { "lodash.camelcase": "^4.3.0", "long": "^5.0.0", "protobufjs": "^7.5.5", "yargs": "^17.7.2" }, "bin": { "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" } }, "sha512-wtF6h+DY6M3YaDBPAmvuuA6jV8Sif9MjtOI5euKFWRgCDl5PeDpPsHR9u2l6St5ceY8AZgoNDww5+HvEsXFsGg=="], + "@happy-dom/global-registrator": ["@happy-dom/global-registrator@20.0.11", "", { "dependencies": { "@types/node": "^20.0.0", "happy-dom": "^20.0.11" } }, "sha512-GqNqiShBT/lzkHTMC/slKBrvN0DsD4Di8ssBk4aDaVgEn+2WMzE6DXxq701ndSXj7/0cJ8mNT71pM7Bnrr6JRw=="], "@hono/node-server": ["@hono/node-server@1.19.17", "", { "peerDependencies": { "hono": "^4" } }, "sha512-dSneS5qhiauZWGDCeK4o695Xd9nUNjviSZCMQrj10eetr8Uln1ucn6bbphOM6UynAMMtNIzZNSpL9vnASJwrPQ=="], @@ -1950,6 +1969,8 @@ "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + "@js-sdsl/ordered-map": ["@js-sdsl/ordered-map@4.4.2", "", {}, "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw=="], + "@js-temporal/polyfill": ["@js-temporal/polyfill@0.5.1", "", { "dependencies": { "jsbi": "^4.3.0" } }, "sha512-hloP58zRVCRSpgDxmqCWJNlizAlUgJFqG2ypq79DCvyv9tHjRYMDOcPFjzfl/A1/YxDvRCZz8wvZvmapQnKwFQ=="], "@jsx-email/all": ["@jsx-email/all@2.2.3", "", { "dependencies": { "@jsx-email/body": "1.0.2", "@jsx-email/button": "1.0.4", "@jsx-email/column": "1.0.3", "@jsx-email/container": "1.0.2", "@jsx-email/font": "1.0.3", "@jsx-email/head": "1.0.2", "@jsx-email/heading": "1.0.2", "@jsx-email/hr": "1.0.2", "@jsx-email/html": "1.0.2", "@jsx-email/img": "1.0.2", "@jsx-email/link": "1.0.2", "@jsx-email/markdown": "2.0.4", "@jsx-email/preview": "1.0.2", "@jsx-email/render": "1.1.1", "@jsx-email/row": "1.0.2", "@jsx-email/section": "1.0.2", "@jsx-email/tailwind": "2.4.4", "@jsx-email/text": "1.0.2" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-OBvLe/hVSQc0LlMSTJnkjFoqs3bmxcC4zpy/5pT5agPCSKMvAKQjzmsc2xJ2wO73jSpRV1K/g38GmvdCfrhSoQ=="], @@ -2000,6 +2021,8 @@ "@kurkle/color": ["@kurkle/color@0.3.4", "", {}, "sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w=="], + "@logdna/tail-file": ["@logdna/tail-file@2.2.0", "", {}, "sha512-XGSsWDweP80Fks16lwkAUIr54ICyBs6PsI4mpfTLQaWgEJRtY9xEV+PeyDpJ+sJEGZxqINlpmAwe/6tS1pP8Ng=="], + "@lydell/node-pty": ["@lydell/node-pty@1.2.0-beta.12", "", { "optionalDependencies": { "@lydell/node-pty-darwin-arm64": "1.2.0-beta.12", "@lydell/node-pty-darwin-x64": "1.2.0-beta.12", "@lydell/node-pty-linux-arm64": "1.2.0-beta.12", "@lydell/node-pty-linux-x64": "1.2.0-beta.12", "@lydell/node-pty-win32-arm64": "1.2.0-beta.12", "@lydell/node-pty-win32-x64": "1.2.0-beta.12" } }, "sha512-qIK890UwPupoj07osVvgOIa++1mxeHbcGry4PKRHhNVNs81V2SCG34eJr46GybiOmBtc8Sj5PB1/GGM5PL549g=="], "@lydell/node-pty-darwin-arm64": ["@lydell/node-pty-darwin-arm64@1.2.0-beta.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-tqaifcY9Cr41SblO1+FLzh8oxxtkNhuW9Dhl22lKme9BreYvKvxEZcdPIXTuqkJc5tagOEC4QHShKmJjLyLXLQ=="], @@ -2188,6 +2211,8 @@ "@opencode/enterprise": ["@opencode/enterprise@workspace:packages/enterprise"], + "@opencode/files": ["@opencode/files@workspace:services/files"], + "@opencode/function": ["@opencode/function@workspace:packages/function"], "@opencode/http-recorder": ["@opencode/http-recorder@workspace:packages/http-recorder"], @@ -2232,13 +2257,13 @@ "@opencode/ui": ["@opencode/ui@workspace:packages/ui"], - "@opencode/updates": ["@opencode/updates@workspace:packages/updates"], + "@opencode/updates": ["@opencode/updates@workspace:services/updates"], "@opencode/util": ["@opencode/util@workspace:packages/util"], "@opencode/web": ["@opencode/web@workspace:packages/web"], - "@opencode/www": ["@opencode/www@workspace:packages/www"], + "@opencode/www": ["@opencode/www@workspace:services/www"], "@openrouter/ai-sdk-provider": ["@openrouter/ai-sdk-provider@2.10.0", "", { "peerDependencies": { "ai": "^6.0.0", "zod": "^3.25.0 || ^4.0.0" } }, "sha512-FMsAEjLUt5pWuRE2LDC/LCvVrFjLlrEzUITH5+5SZtfq7KZ2wrOHjQVxzz92sju8S9ltpzW87CLW8/b0oBXVCw=="], @@ -2250,15 +2275,27 @@ "@opentelemetry/core": ["@opentelemetry/core@2.6.1", "", { "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-8xHSGWpJP9wBxgBpnqGL0R3PbdWQndL1Qp50qrg71+B28zK5OQmUgcDKLJgzyAAV38t4tOyLMGDD60LneR5W8g=="], + "@opentelemetry/exporter-trace-otlp-grpc": ["@opentelemetry/exporter-trace-otlp-grpc@0.57.2", "", { "dependencies": { "@grpc/grpc-js": "^1.7.1", "@opentelemetry/core": "1.30.1", "@opentelemetry/otlp-exporter-base": "0.57.2", "@opentelemetry/otlp-grpc-exporter-base": "0.57.2", "@opentelemetry/otlp-transformer": "0.57.2", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-trace-base": "1.30.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-gHU1vA3JnHbNxEXg5iysqCWxN9j83d7/epTYBZflqQnTyCC4N7yZXn/dMM+bEmyhQPGjhCkNZLx4vZuChH1PYw=="], + "@opentelemetry/exporter-trace-otlp-http": ["@opentelemetry/exporter-trace-otlp-http@0.214.0", "", { "dependencies": { "@opentelemetry/core": "2.6.1", "@opentelemetry/otlp-exporter-base": "0.214.0", "@opentelemetry/otlp-transformer": "0.214.0", "@opentelemetry/resources": "2.6.1", "@opentelemetry/sdk-trace-base": "2.6.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-kIN8nTBMgV2hXzV/a20BCFilPZdAIMYYJGSgfMMRm/Xa+07y5hRDS2Vm12A/z8Cdu3Sq++ZvJfElokX2rkgGgw=="], - "@opentelemetry/instrumentation": ["@opentelemetry/instrumentation@0.220.0", "", { "dependencies": { "@opentelemetry/api-logs": "0.220.0", "import-in-the-middle": "^3.0.0", "require-in-the-middle": "^8.0.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-xQx3E2WxP1mDvKzxLxX+CTCtNLa560YJZ3087qYHerl2YmiKpv7AH+dAy7vmx+eVrZ5BwhfWUAVoKOoxCNHcpw=="], + "@opentelemetry/exporter-zipkin": ["@opentelemetry/exporter-zipkin@1.30.1", "", { "dependencies": { "@opentelemetry/core": "1.30.1", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-trace-base": "1.30.1", "@opentelemetry/semantic-conventions": "1.28.0" }, "peerDependencies": { "@opentelemetry/api": "^1.0.0" } }, "sha512-6S2QIMJahIquvFaaxmcwpvQQRD/YFaMTNoIxrfPIPOeITN+a8lfEcPDxNxn8JDAaxkg+4EnXhz8upVDYenoQjA=="], + + "@opentelemetry/instrumentation": ["@opentelemetry/instrumentation@0.57.2", "", { "dependencies": { "@opentelemetry/api-logs": "0.57.2", "@types/shimmer": "^1.2.0", "import-in-the-middle": "^1.8.1", "require-in-the-middle": "^7.1.1", "semver": "^7.5.2", "shimmer": "^1.2.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg=="], + + "@opentelemetry/instrumentation-grpc": ["@opentelemetry/instrumentation-grpc@0.57.2", "", { "dependencies": { "@opentelemetry/instrumentation": "0.57.2", "@opentelemetry/semantic-conventions": "1.28.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-TR6YQA67cLSZzdxbf2SrbADJy2Y8eBW1+9mF15P0VK2MYcpdoUSmQTF1oMkBwa3B9NwqDFA2fq7wYTTutFQqaQ=="], "@opentelemetry/otlp-exporter-base": ["@opentelemetry/otlp-exporter-base@0.214.0", "", { "dependencies": { "@opentelemetry/core": "2.6.1", "@opentelemetry/otlp-transformer": "0.214.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-u1Gdv0/E9wP+apqWf7Wv2npXmgJtxsW2XL0TEv9FZloTZRuMBKmu8cYVXwS4Hm3q/f/3FuCnPTgiwYvIqRSpRg=="], + "@opentelemetry/otlp-grpc-exporter-base": ["@opentelemetry/otlp-grpc-exporter-base@0.57.2", "", { "dependencies": { "@grpc/grpc-js": "^1.7.1", "@opentelemetry/core": "1.30.1", "@opentelemetry/otlp-exporter-base": "0.57.2", "@opentelemetry/otlp-transformer": "0.57.2" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-USn173KTWy0saqqRB5yU9xUZ2xdgb1Rdu5IosJnm9aV4hMTuFFRTUsQxbgc24QxpCHeoKzzCSnS/JzdV0oM2iQ=="], + "@opentelemetry/otlp-transformer": ["@opentelemetry/otlp-transformer@0.214.0", "", { "dependencies": { "@opentelemetry/api-logs": "0.214.0", "@opentelemetry/core": "2.6.1", "@opentelemetry/resources": "2.6.1", "@opentelemetry/sdk-logs": "0.214.0", "@opentelemetry/sdk-metrics": "2.6.1", "@opentelemetry/sdk-trace-base": "2.6.1", "protobufjs": "^7.0.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-DSaYcuBRh6uozfsWN3R8HsN0yDhCuWP7tOFdkUOVaWD1KVJg8m4qiLUsg/tNhTLS9HUYUcwNpwL2eroLtsZZ/w=="], - "@opentelemetry/resources": ["@opentelemetry/resources@2.6.1", "", { "dependencies": { "@opentelemetry/core": "2.6.1", "@opentelemetry/semantic-conventions": "^1.29.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, "sha512-lID/vxSuKWXM55XhAKNoYXu9Cutoq5hFdkbTdI/zDKQktXzcWBVhNsOkiZFTMU9UtEWuGRNe0HUgmsFldIdxVA=="], + "@opentelemetry/propagator-b3": ["@opentelemetry/propagator-b3@1.30.1", "", { "dependencies": { "@opentelemetry/core": "1.30.1" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-oATwWWDIJzybAZ4pO76ATN5N6FFbOA1otibAVlS8v90B4S1wClnhRUk7K+2CHAwN1JKYuj4jh/lpCEG5BAqFuQ=="], + + "@opentelemetry/propagator-jaeger": ["@opentelemetry/propagator-jaeger@1.30.1", "", { "dependencies": { "@opentelemetry/core": "1.30.1" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-Pj/BfnYEKIOImirH76M4hDaBSx6HyZ2CXUqk+Kj02m6BB80c/yo4BdWkn/1gDFfU+YPY+bPR2U0DKBfdxCKwmg=="], + + "@opentelemetry/resources": ["@opentelemetry/resources@1.30.1", "", { "dependencies": { "@opentelemetry/core": "1.30.1", "@opentelemetry/semantic-conventions": "1.28.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA=="], "@opentelemetry/sdk-logs": ["@opentelemetry/sdk-logs@0.214.0", "", { "dependencies": { "@opentelemetry/api-logs": "0.214.0", "@opentelemetry/core": "2.6.1", "@opentelemetry/resources": "2.6.1", "@opentelemetry/semantic-conventions": "^1.29.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.4.0 <1.10.0" } }, "sha512-zf6acnScjhsaBUU22zXZ/sLWim1dfhUAbGXdMmHmNG3LfBnQ3DKsOCITb2IZwoUsNNMTogqFKBnlIPPftUgGwA=="], @@ -2596,6 +2633,10 @@ "@protobufjs/utf8": ["@protobufjs/utf8@1.1.2", "", {}, "sha512-b1UQwcEZ4yCnMCD8DAL1VlbvBJE9/IX4FTIp7BG1xYpf29SLazLSrqUkj4w7Y5y7cCVP6E5tcqqcI0xemPkHug=="], + "@pulumi/cloudflare": ["@pulumi/cloudflare@6.17.0", "", { "dependencies": { "@pulumi/pulumi": "^3.142.0" } }, "sha512-sIL1rfjNavy+yZQ/OjyFHD4owe2E/TpHLFCVsogQJOC+Y6Bj7JxrhoTfsJdxVEXEFBGlNCu68T+g9im8iEZM9A=="], + + "@pulumi/pulumi": ["@pulumi/pulumi@3.246.0", "", { "dependencies": { "@grpc/grpc-js": "^1.10.1", "@logdna/tail-file": "^2.0.6", "@npmcli/arborist": "^9.0.0", "@opentelemetry/api": "^1.9", "@opentelemetry/exporter-trace-otlp-grpc": "^0.57", "@opentelemetry/exporter-zipkin": "^1.30", "@opentelemetry/instrumentation": "^0.57", "@opentelemetry/instrumentation-grpc": "^0.57", "@opentelemetry/resources": "^1.30", "@opentelemetry/sdk-trace-base": "^1.30", "@opentelemetry/sdk-trace-node": "^1.30", "@types/google-protobuf": "^3.15.5", "@types/semver": "^7.5.6", "@types/tmp": "^0.2.6", "execa": "^5.1.0", "fdir": "^6.5.0", "google-protobuf": "^3.21.4", "ini": "^2.0.0", "js-yaml": "^3.14.2", "minimist": "^1.2.6", "normalize-package-data": "^6.0.0", "picomatch": "^4.0.0", "require-from-string": "^2.0.1", "semver": "^7.5.2", "source-map-support": "^0.5.6", "tmp": "^0.2.4", "upath": "^1.1.0" }, "peerDependencies": { "ts-node": ">= 7.0.1 < 12", "typescript": ">= 3.8.3 < 7" }, "optionalPeers": ["ts-node", "typescript"] }, "sha512-YvUQJatWpNpVlb6ftNvbSuS2ViCNa8LoG9FiJXtG24Rx/9leYQOMSTQ61vPeNtydGh8650lBal4pTmaB+JgkPA=="], + "@puppeteer/browsers": ["@puppeteer/browsers@3.2.1", "", { "dependencies": { "modern-tar": "^0.8.0", "yargs": "^18.0.0" }, "peerDependencies": { "proxy-agent": ">=8.0.1", "yauzl": "^2.10.0 || ^3.4.0" }, "optionalPeers": ["proxy-agent", "yauzl"], "bin": { "browsers": "lib/main-cli.js" } }, "sha512-KDz+3qDRdBAlRlMjmKyj6dEs33YHTk/xRHEENSXq6TNnhgoU15ruSHtEBeVF6OZ9tBDY55Se4P0nFMNsipzU9A=="], "@radix-ui/colors": ["@radix-ui/colors@1.0.1", "", {}, "sha512-xySw8f0ZVsAEP+e7iLl3EvcBXX7gsIlC1Zso/sPBW9gIWerBTgz6axrjU+MZ39wD+WFi5h5zdWpsg3+hwt2Qsg=="], @@ -3178,6 +3219,8 @@ "@types/geojson": ["@types/geojson@7946.0.16", "", {}, "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg=="], + "@types/google-protobuf": ["@types/google-protobuf@3.15.12", "", {}, "sha512-40um9QqwHjRS92qnOaDpL7RmDK15NuZYo9HihiJRbYkMQZlWnuH8AdvbMy8/o6lgLmKbDUKa+OALCltHdbOTpQ=="], + "@types/hast": ["@types/hast@3.0.5", "", { "dependencies": { "@types/unist": "*" } }, "sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g=="], "@types/http-cache-semantics": ["@types/http-cache-semantics@4.2.0", "", {}, "sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q=="], @@ -3234,8 +3277,12 @@ "@types/semver": ["@types/semver@7.8.0", "", {}, "sha512-1mAINjtQCXXeLkJ9ehXkwOcBpqtLxiVtKhpUf83DdRNdQKV0iXZpaHYqRr7nj+wvxuJzoAmAwXI+sCNMv1CzLQ=="], + "@types/shimmer": ["@types/shimmer@1.2.0", "", {}, "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg=="], + "@types/ssri": ["@types/ssri@7.1.5", "", { "dependencies": { "@types/node": "*" } }, "sha512-odD/56S3B51liILSk5aXJlnYt99S6Rt9EFDDqGtJM26rKHApHcwyU/UoYHrzKkdkHMAIquGWCuHtQTbes+FRQw=="], + "@types/tmp": ["@types/tmp@0.2.6", "", {}, "sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA=="], + "@types/topojson-client": ["@types/topojson-client@3.1.5", "", { "dependencies": { "@types/geojson": "*", "@types/topojson-specification": "*" } }, "sha512-C79rySTyPxnQNNguTZNI1Ct4D7IXgvyAs3p9HPecnl6mNrJ5+UhvGNYcZfpROYV2lMHI48kJPxwR+F9C6c7nmw=="], "@types/topojson-specification": ["@types/topojson-specification@1.0.5", "", { "dependencies": { "@types/geojson": "*" } }, "sha512-C7KvcQh+C2nr6Y2Ub4YfgvWvWCgP2nOQMtfhlnwsRL4pYmmwzBS7HclGiS87eQfDOU/DLQpX6GEscviaz4yLIQ=="], @@ -3350,6 +3397,8 @@ "acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="], + "acorn-import-attributes": ["acorn-import-attributes@1.9.5", "", { "peerDependencies": { "acorn": "^8" } }, "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ=="], + "acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], "acorn-walk": ["acorn-walk@8.3.2", "", {}, "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A=="], @@ -4052,6 +4101,8 @@ "eventsource-parser": ["eventsource-parser@3.1.1", "", {}, "sha512-EKN1vKAMcZ8MlYMpaNuxN6R9yakzH6uajHcHVTqWJzvu5pWw9DyhbP35HH8MVBQ+dZjAfDxk+A8NiR9KWaXiyQ=="], + "execa": ["execa@5.1.1", "", { "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^4.0.1", "onetime": "^5.1.2", "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" } }, "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg=="], + "exit-hook": ["exit-hook@2.2.1", "", {}, "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw=="], "expect-type": ["expect-type@1.4.0", "", {}, "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA=="], @@ -4182,7 +4233,7 @@ "get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="], - "get-stream": ["get-stream@5.2.0", "", { "dependencies": { "pump": "^3.0.0" } }, "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA=="], + "get-stream": ["get-stream@6.0.1", "", {}, "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="], "get-symbol-description": ["get-symbol-description@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6" } }, "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg=="], @@ -4210,6 +4261,8 @@ "google-logging-utils": ["google-logging-utils@1.2.0", "", {}, "sha512-WE9av4wKDZgRjBwgVUabocx8T6/7o3Ca1Fat46FXDhXVAFibzNadedcOXrdgd1Kzmk8tsk/9ZH89Wyf/SqeZ3A=="], + "google-protobuf": ["google-protobuf@3.21.4", "", {}, "sha512-MnG7N936zcKTco4Jd2PX2U96Kf9PxygAPKBug+74LHzmHXmceN16MmRcdgZv+DGef/S9YvQAfRsNCn4cjf9yyQ=="], + "gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="], "got": ["got@11.8.6", "", { "dependencies": { "@sindresorhus/is": "^4.0.0", "@szmarczak/http-timer": "^4.0.5", "@types/cacheable-request": "^6.0.1", "@types/responselike": "^1.0.0", "cacheable-lookup": "^5.0.3", "cacheable-request": "^7.0.2", "decompress-response": "^6.0.0", "http2-wrapper": "^1.0.0-beta.5.2", "lowercase-keys": "^2.0.0", "p-cancelable": "^2.0.0", "responselike": "^2.0.0" } }, "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g=="], @@ -4326,6 +4379,8 @@ "https-proxy-agent": ["https-proxy-agent@7.0.6", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "4" } }, "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw=="], + "human-signals": ["human-signals@2.1.0", "", {}, "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="], + "humanize-ms": ["humanize-ms@1.2.1", "", { "dependencies": { "ms": "^2.0.0" } }, "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ=="], "husky": ["husky@9.1.7", "", { "bin": { "husky": "bin.js" } }, "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA=="], @@ -4360,7 +4415,7 @@ "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], - "ini": ["ini@6.0.0", "", {}, "sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ=="], + "ini": ["ini@2.0.0", "", {}, "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA=="], "inline-style-parser": ["inline-style-parser@0.2.7", "", {}, "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA=="], @@ -4614,6 +4669,8 @@ "lodash-es": ["lodash-es@4.18.1", "", {}, "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A=="], + "lodash.camelcase": ["lodash.camelcase@4.3.0", "", {}, "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=="], + "lodash.debounce": ["lodash.debounce@4.0.8", "", {}, "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="], "lodash.escaperegexp": ["lodash.escaperegexp@4.1.2", "", {}, "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw=="], @@ -4712,6 +4769,8 @@ "merge-descriptors": ["merge-descriptors@2.0.0", "", {}, "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g=="], + "merge-stream": ["merge-stream@2.0.0", "", {}, "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="], + "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="], "mermaid": ["mermaid@11.17.2", "", { "dependencies": { "@braintree/sanitize-url": "^7.1.2", "@iconify/utils": "^3.0.2", "@mermaid-js/parser": "^1.2.1", "@types/d3": "^7.4.3", "@upsetjs/venn.js": "^2.0.0", "cytoscape": "^3.34.0", "cytoscape-cose-bilkent": "^4.1.0", "cytoscape-fcose": "^2.2.0", "d3": "^7.9.0", "d3-sankey": "^0.12.3", "dagre-d3-es": "7.0.14", "dayjs": "^1.11.21", "dompurify": "^3.3.3", "es-toolkit": "^1.45.1", "fastdom": "1.0.12", "katex": "^0.16.47", "khroma": "^2.1.0", "marked": "^16.3.0", "roughjs": "^4.6.6", "stylis": "^4.3.6", "ts-dedent": "^2.2.0", "uuid": "^11.1.0 || ^12 || ^13 || ^14.0.0" } }, "sha512-V6K3C8EBdEsPFZXSKMJe6ppQOENxuHARr9GvHX4hh47lAbhMRD9qf4oEK7LoaRQxULMa80/qt5gHO73aCleBBg=="], @@ -4796,6 +4855,8 @@ "mime-types": ["mime-types@3.0.2", "", { "dependencies": { "mime-db": "^1.54.0" } }, "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A=="], + "mimic-fn": ["mimic-fn@2.1.0", "", {}, "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="], + "mimic-function": ["mimic-function@5.0.1", "", {}, "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA=="], "mimic-response": ["mimic-response@3.1.0", "", {}, "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="], @@ -4898,6 +4959,8 @@ "nopt": ["nopt@9.0.0", "", { "dependencies": { "abbrev": "^4.0.0" }, "bin": { "nopt": "bin/nopt.js" } }, "sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw=="], + "normalize-package-data": ["normalize-package-data@6.0.2", "", { "dependencies": { "hosted-git-info": "^7.0.0", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" } }, "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g=="], + "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], "normalize-url": ["normalize-url@6.1.0", "", {}, "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A=="], @@ -4916,6 +4979,8 @@ "npm-registry-fetch": ["npm-registry-fetch@19.1.1", "", { "dependencies": { "@npmcli/redact": "^4.0.0", "jsonparse": "^1.3.1", "make-fetch-happen": "^15.0.0", "minipass": "^7.0.2", "minipass-fetch": "^5.0.0", "minizlib": "^3.0.1", "npm-package-arg": "^13.0.0", "proc-log": "^6.0.0" } }, "sha512-TakBap6OM1w0H73VZVDf44iFXsOS3h+L4wVMXmbWOQroZgFhMch0juN6XSzBNlD965yIKvWg2dfu7NSiaYLxtw=="], + "npm-run-path": ["npm-run-path@4.0.1", "", { "dependencies": { "path-key": "^3.0.0" } }, "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw=="], + "nth-check": ["nth-check@2.1.1", "", { "dependencies": { "boolbase": "^1.0.0" } }, "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="], "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], @@ -4940,6 +5005,8 @@ "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="], + "onetime": ["onetime@5.1.2", "", { "dependencies": { "mimic-fn": "^2.1.0" } }, "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg=="], + "oniguruma-parser": ["oniguruma-parser@0.12.2", "", {}, "sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw=="], "oniguruma-to-es": ["oniguruma-to-es@4.3.6", "", { "dependencies": { "oniguruma-parser": "^0.12.2", "regex": "^6.1.0", "regex-recursion": "^6.0.2" } }, "sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA=="], @@ -5136,6 +5203,8 @@ "proxy-from-env": ["proxy-from-env@1.1.0", "", {}, "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="], + "pulumi": ["pulumi@3.246.0", "", { "bin": { "pulumi": "run.js" } }, "sha512-jofaFuYBqgRqCWDmkBvkO8G5/yVbxmdQ1PV5Flr8D7FvsmWJ8FtQcvZ2oQFGXVaOImGgnMqdLlnvaIHqtIdOvw=="], + "pump": ["pump@3.0.4", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA=="], "pupa": ["pupa@3.3.0", "", { "dependencies": { "escape-goat": "^4.0.0" } }, "sha512-LjgDO2zPtoXP2wJpDjZrGdojii1uqO0cnwKoIoUzkfS98HDmbeiGmYiXo3lXeFlq2xvne1QFQhwYXSUCLKtEuA=="], @@ -5268,7 +5337,7 @@ "require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="], - "require-in-the-middle": ["require-in-the-middle@8.0.1", "", { "dependencies": { "debug": "^4.3.5", "module-details-from-path": "^1.0.3" } }, "sha512-QT7FVMXfWOYFbeRBF6nu+I6tr2Tf3u0q8RIEjNob/heKY/nh7drD/k7eeMFmSQgnTtCzLDcCu/XEnpW2wk4xCQ=="], + "require-in-the-middle": ["require-in-the-middle@7.5.2", "", { "dependencies": { "debug": "^4.3.5", "module-details-from-path": "^1.0.3", "resolve": "^1.22.8" } }, "sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ=="], "resedit": ["resedit@1.7.2", "", { "dependencies": { "pe-library": "^0.4.1" } }, "sha512-vHjcY2MlAITJhC0eRD/Vv8Vlgmu9Sd3LX9zZvtGzU5ZImdTN3+d6e/4mnTyV8vEbyf1sgNIrWxhWlrys52OkEA=="], @@ -5384,6 +5453,8 @@ "shikiji": ["shikiji@0.6.13", "", { "dependencies": { "hast-util-to-html": "^9.0.0" } }, "sha512-4T7X39csvhT0p7GDnq9vysWddf2b6BeioiN3Ymhnt3xcy9tXmDcnsEFVxX18Z4YcQgEE/w48dLJ4pPPUcG9KkA=="], + "shimmer": ["shimmer@1.2.1", "", {}, "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw=="], + "side-channel": ["side-channel@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.4", "side-channel-list": "^1.0.1", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ=="], "side-channel-list": ["side-channel-list@1.0.1", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.4" } }, "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w=="], @@ -5458,6 +5529,8 @@ "space-separated-tokens": ["space-separated-tokens@2.0.2", "", {}, "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="], + "spdx-correct": ["spdx-correct@3.2.0", "", { "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA=="], + "spdx-exceptions": ["spdx-exceptions@2.5.0", "", {}, "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w=="], "spdx-expression-parse": ["spdx-expression-parse@4.0.0", "", { "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ=="], @@ -5542,6 +5615,8 @@ "strip-comments": ["strip-comments@2.0.1", "", {}, "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw=="], + "strip-final-newline": ["strip-final-newline@2.0.0", "", {}, "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="], + "strip-indent": ["strip-indent@3.0.0", "", { "dependencies": { "min-indent": "^1.0.0" } }, "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ=="], "stripe": ["stripe@18.0.0", "", { "dependencies": { "@types/node": ">=8.1.0", "qs": "^6.11.0" } }, "sha512-3Fs33IzKUby//9kCkCa1uRpinAoTvj6rJgQ2jrBEysoxEvfsclvXdna1amyEYbA2EKkjynuB4+L/kleCCaWTpA=="], @@ -5790,6 +5865,8 @@ "uuid": ["uuid@14.0.2", "", { "bin": { "uuid": "dist-node/bin/uuid" } }, "sha512-xZe/16rV4aa+HGSOCiY2YeLT1OybRLrrkL/Rqaq7p7GMVXjFh+6wN4oMYgjFmnSnhY8t6Xpdl2l9qmnHYuMHwQ=="], + "validate-npm-package-license": ["validate-npm-package-license@3.0.4", "", { "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew=="], + "validate-npm-package-name": ["validate-npm-package-name@7.0.2", "", {}, "sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A=="], "vary": ["vary@1.1.2", "", {}, "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="], @@ -6242,6 +6319,8 @@ "@cspotcode/source-map-support/@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.9", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ=="], + "@effect/opentelemetry/@opentelemetry/resources": ["@opentelemetry/resources@2.6.1", "", { "dependencies": { "@opentelemetry/core": "2.6.1", "@opentelemetry/semantic-conventions": "^1.29.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, "sha512-lID/vxSuKWXM55XhAKNoYXu9Cutoq5hFdkbTdI/zDKQktXzcWBVhNsOkiZFTMU9UtEWuGRNe0HUgmsFldIdxVA=="], + "@effect/platform-node-shared/ws": ["ws@8.21.3", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw=="], "@electron/asar/commander": ["commander@5.1.0", "", {}, "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg=="], @@ -6294,6 +6373,10 @@ "@npmcli/config/ci-info": ["ci-info@4.4.0", "", {}, "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg=="], + "@npmcli/config/ini": ["ini@6.0.0", "", {}, "sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ=="], + + "@npmcli/git/ini": ["ini@6.0.0", "", {}, "sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ=="], + "@npmcli/package-json/hosted-git-info": ["hosted-git-info@9.0.3", "", { "dependencies": { "lru-cache": "^11.1.0" } }, "sha512-Hc+ghLoSt6QaYZUv0WBiIvmMDZuZZ7oaDvdH8MbfOO4lOsxdXLEvuC6ePoGs9H1X9oCLyq6+NVN0MKqD+ydxyg=="], "@npmcli/query/postcss-selector-parser": ["postcss-selector-parser@7.1.5", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-KvvtD7SrlBP7dlgkBghEE3r84CABm5SmV2aNcG4oCA+qDnJ/tvKonFVvwWAyyWUEwxuNawdfEAZKP9zM3oZ2Uw=="], @@ -6414,12 +6497,54 @@ "@opencode/www/wrangler": ["wrangler@4.110.0", "", { "dependencies": { "@cloudflare/kv-asset-handler": "0.5.0", "@cloudflare/unenv-preset": "2.16.1", "blake3-wasm": "2.1.5", "esbuild": "0.28.1", "miniflare": "4.20260708.1", "path-to-regexp": "6.3.0", "unenv": "2.0.0-rc.24", "workerd": "1.20260708.1" }, "optionalDependencies": { "fsevents": "2.3.3" }, "peerDependencies": { "@cloudflare/workers-types": "^5.20260708.1" }, "optionalPeers": ["@cloudflare/workers-types"], "bin": { "wrangler": "bin/wrangler.js", "wrangler2": "bin/wrangler.js", "cf-wrangler": "bin/cf-wrangler.js" } }, "sha512-xZeXKYi7hxQRF5anL+v77RkufJNpF9f3Eqeyqq2QBsETpLZgh0Agj0jJ6JPtkbgn6ukZdh8OK5egsGPWIditgg=="], - "@opentelemetry/instrumentation/@opentelemetry/api-logs": ["@opentelemetry/api-logs@0.220.0", "", { "dependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-CmVa4ImJ+ynfrPMNaAXHET6Bhb44SwzmfyVJFq9ni2jgXJR/l7C6gfVFddNmHP+ZOkP9cf4f9DBe68qVLTHc9w=="], + "@opentelemetry/exporter-trace-otlp-grpc/@opentelemetry/core": ["@opentelemetry/core@1.30.1", "", { "dependencies": { "@opentelemetry/semantic-conventions": "1.28.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ=="], + + "@opentelemetry/exporter-trace-otlp-grpc/@opentelemetry/otlp-exporter-base": ["@opentelemetry/otlp-exporter-base@0.57.2", "", { "dependencies": { "@opentelemetry/core": "1.30.1", "@opentelemetry/otlp-transformer": "0.57.2" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-XdxEzL23Urhidyebg5E6jZoaiW5ygP/mRjxLHixogbqwDy2Faduzb5N0o/Oi+XTIJu+iyxXdVORjXax+Qgfxag=="], + + "@opentelemetry/exporter-trace-otlp-grpc/@opentelemetry/otlp-transformer": ["@opentelemetry/otlp-transformer@0.57.2", "", { "dependencies": { "@opentelemetry/api-logs": "0.57.2", "@opentelemetry/core": "1.30.1", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-logs": "0.57.2", "@opentelemetry/sdk-metrics": "1.30.1", "@opentelemetry/sdk-trace-base": "1.30.1", "protobufjs": "^7.3.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-48IIRj49gbQVK52jYsw70+Jv+JbahT8BqT2Th7C4H7RCM9d0gZ5sgNPoMpWldmfjvIsSgiGJtjfk9MeZvjhoig=="], + + "@opentelemetry/exporter-trace-otlp-grpc/@opentelemetry/sdk-trace-base": ["@opentelemetry/sdk-trace-base@1.30.1", "", { "dependencies": { "@opentelemetry/core": "1.30.1", "@opentelemetry/resources": "1.30.1", "@opentelemetry/semantic-conventions": "1.28.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg=="], + + "@opentelemetry/exporter-trace-otlp-http/@opentelemetry/resources": ["@opentelemetry/resources@2.6.1", "", { "dependencies": { "@opentelemetry/core": "2.6.1", "@opentelemetry/semantic-conventions": "^1.29.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, "sha512-lID/vxSuKWXM55XhAKNoYXu9Cutoq5hFdkbTdI/zDKQktXzcWBVhNsOkiZFTMU9UtEWuGRNe0HUgmsFldIdxVA=="], + + "@opentelemetry/exporter-zipkin/@opentelemetry/core": ["@opentelemetry/core@1.30.1", "", { "dependencies": { "@opentelemetry/semantic-conventions": "1.28.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ=="], + + "@opentelemetry/exporter-zipkin/@opentelemetry/sdk-trace-base": ["@opentelemetry/sdk-trace-base@1.30.1", "", { "dependencies": { "@opentelemetry/core": "1.30.1", "@opentelemetry/resources": "1.30.1", "@opentelemetry/semantic-conventions": "1.28.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg=="], + + "@opentelemetry/exporter-zipkin/@opentelemetry/semantic-conventions": ["@opentelemetry/semantic-conventions@1.28.0", "", {}, "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA=="], + + "@opentelemetry/instrumentation/@opentelemetry/api-logs": ["@opentelemetry/api-logs@0.57.2", "", { "dependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A=="], + + "@opentelemetry/instrumentation/import-in-the-middle": ["import-in-the-middle@1.15.0", "", { "dependencies": { "acorn": "^8.14.0", "acorn-import-attributes": "^1.9.5", "cjs-module-lexer": "^1.2.2", "module-details-from-path": "^1.0.3" } }, "sha512-bpQy+CrsRmYmoPMAE/0G33iwRqwW4ouqdRg8jgbH3aKuCtOc8lxgmYXg2dMM92CRiGP660EtBcymH/eVUpCSaA=="], + + "@opentelemetry/instrumentation-grpc/@opentelemetry/semantic-conventions": ["@opentelemetry/semantic-conventions@1.28.0", "", {}, "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA=="], + + "@opentelemetry/otlp-grpc-exporter-base/@opentelemetry/core": ["@opentelemetry/core@1.30.1", "", { "dependencies": { "@opentelemetry/semantic-conventions": "1.28.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ=="], + + "@opentelemetry/otlp-grpc-exporter-base/@opentelemetry/otlp-exporter-base": ["@opentelemetry/otlp-exporter-base@0.57.2", "", { "dependencies": { "@opentelemetry/core": "1.30.1", "@opentelemetry/otlp-transformer": "0.57.2" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-XdxEzL23Urhidyebg5E6jZoaiW5ygP/mRjxLHixogbqwDy2Faduzb5N0o/Oi+XTIJu+iyxXdVORjXax+Qgfxag=="], + + "@opentelemetry/otlp-grpc-exporter-base/@opentelemetry/otlp-transformer": ["@opentelemetry/otlp-transformer@0.57.2", "", { "dependencies": { "@opentelemetry/api-logs": "0.57.2", "@opentelemetry/core": "1.30.1", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-logs": "0.57.2", "@opentelemetry/sdk-metrics": "1.30.1", "@opentelemetry/sdk-trace-base": "1.30.1", "protobufjs": "^7.3.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-48IIRj49gbQVK52jYsw70+Jv+JbahT8BqT2Th7C4H7RCM9d0gZ5sgNPoMpWldmfjvIsSgiGJtjfk9MeZvjhoig=="], + + "@opentelemetry/otlp-transformer/@opentelemetry/resources": ["@opentelemetry/resources@2.6.1", "", { "dependencies": { "@opentelemetry/core": "2.6.1", "@opentelemetry/semantic-conventions": "^1.29.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, "sha512-lID/vxSuKWXM55XhAKNoYXu9Cutoq5hFdkbTdI/zDKQktXzcWBVhNsOkiZFTMU9UtEWuGRNe0HUgmsFldIdxVA=="], + + "@opentelemetry/propagator-b3/@opentelemetry/core": ["@opentelemetry/core@1.30.1", "", { "dependencies": { "@opentelemetry/semantic-conventions": "1.28.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ=="], + + "@opentelemetry/propagator-jaeger/@opentelemetry/core": ["@opentelemetry/core@1.30.1", "", { "dependencies": { "@opentelemetry/semantic-conventions": "1.28.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ=="], + + "@opentelemetry/resources/@opentelemetry/core": ["@opentelemetry/core@1.30.1", "", { "dependencies": { "@opentelemetry/semantic-conventions": "1.28.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ=="], + + "@opentelemetry/resources/@opentelemetry/semantic-conventions": ["@opentelemetry/semantic-conventions@1.28.0", "", {}, "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA=="], + + "@opentelemetry/sdk-logs/@opentelemetry/resources": ["@opentelemetry/resources@2.6.1", "", { "dependencies": { "@opentelemetry/core": "2.6.1", "@opentelemetry/semantic-conventions": "^1.29.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, "sha512-lID/vxSuKWXM55XhAKNoYXu9Cutoq5hFdkbTdI/zDKQktXzcWBVhNsOkiZFTMU9UtEWuGRNe0HUgmsFldIdxVA=="], + + "@opentelemetry/sdk-metrics/@opentelemetry/resources": ["@opentelemetry/resources@2.6.1", "", { "dependencies": { "@opentelemetry/core": "2.6.1", "@opentelemetry/semantic-conventions": "^1.29.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, "sha512-lID/vxSuKWXM55XhAKNoYXu9Cutoq5hFdkbTdI/zDKQktXzcWBVhNsOkiZFTMU9UtEWuGRNe0HUgmsFldIdxVA=="], "@opentelemetry/sdk-trace/@opentelemetry/core": ["@opentelemetry/core@2.11.0", "", { "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-7YP44XH0tV6+Mb54x2YGf84i7yi+31MBZlE8JwvozkxyTvXbSp10X7cI7YE49ChJ3shMJoBmCJF3+1QFBJctGA=="], "@opentelemetry/sdk-trace/@opentelemetry/resources": ["@opentelemetry/resources@2.11.0", "", { "dependencies": { "@opentelemetry/core": "2.11.0", "@opentelemetry/semantic-conventions": "^1.29.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, "sha512-Ie7+8q8MDF4FAEQCKVMTx3ReUvxiIAgIiiW3c9JdmP8+HMcDy20puT+AHjexnExgnbvBxjQ9fjkFDWrikJ2jQA=="], + "@opentelemetry/sdk-trace-base/@opentelemetry/resources": ["@opentelemetry/resources@2.6.1", "", { "dependencies": { "@opentelemetry/core": "2.6.1", "@opentelemetry/semantic-conventions": "^1.29.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, "sha512-lID/vxSuKWXM55XhAKNoYXu9Cutoq5hFdkbTdI/zDKQktXzcWBVhNsOkiZFTMU9UtEWuGRNe0HUgmsFldIdxVA=="], + "@opentui/core/diff": ["diff@9.0.0", "", {}, "sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw=="], "@opentui/core/marked": ["marked@17.0.1", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-boeBdiS0ghpWcSwoNm/jJBwdpFaMnZWRzjA6SkUMYb40SVaN1x7mmfGKp0jvexGcx+7y2La5zRZsYFZI6Qpypg=="], @@ -6452,6 +6577,12 @@ "@protobuf-ts/plugin/typescript": ["typescript@3.9.10", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q=="], + "@pulumi/pulumi/@opentelemetry/api": ["@opentelemetry/api@1.9.1", "", {}, "sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q=="], + + "@pulumi/pulumi/@opentelemetry/sdk-trace-base": ["@opentelemetry/sdk-trace-base@1.30.1", "", { "dependencies": { "@opentelemetry/core": "1.30.1", "@opentelemetry/resources": "1.30.1", "@opentelemetry/semantic-conventions": "1.28.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg=="], + + "@pulumi/pulumi/@opentelemetry/sdk-trace-node": ["@opentelemetry/sdk-trace-node@1.30.1", "", { "dependencies": { "@opentelemetry/context-async-hooks": "1.30.1", "@opentelemetry/core": "1.30.1", "@opentelemetry/propagator-b3": "1.30.1", "@opentelemetry/propagator-jaeger": "1.30.1", "@opentelemetry/sdk-trace-base": "1.30.1", "semver": "^7.5.2" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-cBjYOINt1JxXdpw1e5MlHmFRc5fgj4GW/86vsKFxJCJ8AL4PdVtYH41gWwl4qd4uQjqEL1oJVrXkSy5cnduAnQ=="], + "@puppeteer/browsers/yargs": ["yargs@18.1.0", "", { "dependencies": { "cliui": "^9.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "string-width": "^8.2.1", "y18n": "^5.0.5", "yargs-parser": "^22.0.0" } }, "sha512-2rAgRKu54VsHkqI0/tYkmluGXHD4KW7yZoycuqDQ15QOTnc2VVfy0nN/1eMhnQLO00A+dwtK20xuCnc1YGeUyg=="], "@rollup/pluginutils/estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], @@ -6466,6 +6597,8 @@ "@sentry/node/@opentelemetry/api": ["@opentelemetry/api@1.9.1", "", {}, "sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q=="], + "@sentry/node/@opentelemetry/instrumentation": ["@opentelemetry/instrumentation@0.220.0", "", { "dependencies": { "@opentelemetry/api-logs": "0.220.0", "import-in-the-middle": "^3.0.0", "require-in-the-middle": "^8.0.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-xQx3E2WxP1mDvKzxLxX+CTCtNLa560YJZ3087qYHerl2YmiKpv7AH+dAy7vmx+eVrZ5BwhfWUAVoKOoxCNHcpw=="], + "@sentry/node/@opentelemetry/sdk-trace-base": ["@opentelemetry/sdk-trace-base@2.11.0", "", { "dependencies": { "@opentelemetry/core": "2.11.0", "@opentelemetry/resources": "2.11.0", "@opentelemetry/sdk-trace": "2.11.0", "@opentelemetry/semantic-conventions": "^1.29.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, "sha512-H19x/TX/LZdqiYOjM7fqtSxwlplC5pgelavqbQdHbhdq0q/AI/TGkM2dfGuuynTXmJPeF2HoZVoPDu+TGoW78A=="], "@sentry/node/@sentry/core": ["@sentry/core@10.73.0", "", { "dependencies": { "@sentry/conventions": "^0.16.0" } }, "sha512-FLO1UgH19RyasVpofu612WCOgb2nEH0dZy+R72d7p65XU9i0wxlMKm3+sgfwKmiSJp1Qhilaaxs4Jg6BbiM5HA=="], @@ -6578,6 +6711,8 @@ "builder-util/js-yaml": ["js-yaml@4.3.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ=="], + "cacheable-request/get-stream": ["get-stream@5.2.0", "", { "dependencies": { "pump": "^3.0.0" } }, "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA=="], + "chrome-launcher/is-wsl": ["is-wsl@2.2.0", "", { "dependencies": { "is-docker": "^2.0.0" } }, "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww=="], "chromium-bidi/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], @@ -6740,6 +6875,8 @@ "node-gyp/undici": ["undici@6.28.0", "", {}, "sha512-LIY910g9TI13YS95lrMFrs8Rm/u/irgHeTWoKCoteeJ04CUJ92eEfj0rVn+7VKMPBpUPiUoBKfhNyLI23EE/KA=="], + "normalize-package-data/hosted-git-info": ["hosted-git-info@7.0.2", "", { "dependencies": { "lru-cache": "^10.0.1" } }, "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w=="], + "npm-package-arg/hosted-git-info": ["hosted-git-info@9.0.3", "", { "dependencies": { "lru-cache": "^11.1.0" } }, "sha512-Hc+ghLoSt6QaYZUv0WBiIvmMDZuZZ7oaDvdH8MbfOO4lOsxdXLEvuC6ePoGs9H1X9oCLyq6+NVN0MKqD+ydxyg=="], "openid-client/jose": ["jose@4.15.9", "", {}, "sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA=="], @@ -6806,6 +6943,8 @@ "source-map-support/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + "spdx-correct/spdx-expression-parse": ["spdx-expression-parse@3.0.1", "", { "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q=="], + "sst/aws4fetch": ["aws4fetch@1.0.18", "", {}, "sha512-3Cf+YaUl07p24MoQ46rFwulAmiyCwH2+1zw1ZyPAX5OtJ34Hh185DwB8y/qRLb6cYYYtSFJ9pthyLc0MD4e8sQ=="], "sst/jose": ["jose@5.2.3", "", {}, "sha512-KUXdbctm1uHVL8BYhnyHkgp3zDX5KW8ZhAKVFEfUbU2P8Alpzjb+48hHvjOdQIyPshoblhzsuqOwEEAbtHVirA=="], @@ -6854,6 +6993,8 @@ "unzipper/fs-extra": ["fs-extra@11.3.1", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g=="], + "validate-npm-package-license/spdx-expression-parse": ["spdx-expression-parse@3.0.1", "", { "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q=="], + "venice-ai-sdk-provider/@ai-sdk/openai-compatible": ["@ai-sdk/openai-compatible@2.0.69", "", { "dependencies": { "@ai-sdk/provider": "3.0.15", "@ai-sdk/provider-utils": "4.0.46" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-C99M0T0SpRkcCClmJxbQkpSqGmxLfh3NhTsNF3aNaUQZZ7oXN5sPWi9LGs49X5Q/r9FWxBYeZARXs15xxtGIig=="], "venice-ai-sdk-provider/@ai-sdk/provider": ["@ai-sdk/provider@3.0.14", "", { "dependencies": { "json-schema": "^0.4.0" } }, "sha512-5X1k57JBJ4H7H1QjX7CnJYAB1I19r/trVZTMcSms7/kLNZ8RaU4Nt2agcwZzv82Hfx6Q7/TOLU7agAKeFfc8cA=="], @@ -7362,8 +7503,36 @@ "@opencode/www/wrangler/workerd": ["workerd@1.20260708.1", "", { "optionalDependencies": { "@cloudflare/workerd-darwin-64": "1.20260708.1", "@cloudflare/workerd-darwin-arm64": "1.20260708.1", "@cloudflare/workerd-linux-64": "1.20260708.1", "@cloudflare/workerd-linux-arm64": "1.20260708.1", "@cloudflare/workerd-windows-64": "1.20260708.1" }, "bin": { "workerd": "bin/workerd" } }, "sha512-WAK+Kt/VVCSldH2qSr8lx46XCJ4Q+bdlHNaFqUtOHthBEIB8C1N8HVW+VOLrxDoTCk0NGNv0zajnBeQK4JOB9w=="], + "@opentelemetry/exporter-trace-otlp-grpc/@opentelemetry/core/@opentelemetry/semantic-conventions": ["@opentelemetry/semantic-conventions@1.28.0", "", {}, "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA=="], + + "@opentelemetry/exporter-trace-otlp-grpc/@opentelemetry/otlp-transformer/@opentelemetry/api-logs": ["@opentelemetry/api-logs@0.57.2", "", { "dependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A=="], + + "@opentelemetry/exporter-trace-otlp-grpc/@opentelemetry/otlp-transformer/@opentelemetry/sdk-logs": ["@opentelemetry/sdk-logs@0.57.2", "", { "dependencies": { "@opentelemetry/api-logs": "0.57.2", "@opentelemetry/core": "1.30.1", "@opentelemetry/resources": "1.30.1" }, "peerDependencies": { "@opentelemetry/api": ">=1.4.0 <1.10.0" } }, "sha512-TXFHJ5c+BKggWbdEQ/inpgIzEmS2BGQowLE9UhsMd7YYlUfBQJ4uax0VF/B5NYigdM/75OoJGhAV3upEhK+3gg=="], + + "@opentelemetry/exporter-trace-otlp-grpc/@opentelemetry/otlp-transformer/@opentelemetry/sdk-metrics": ["@opentelemetry/sdk-metrics@1.30.1", "", { "dependencies": { "@opentelemetry/core": "1.30.1", "@opentelemetry/resources": "1.30.1" }, "peerDependencies": { "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, "sha512-q9zcZ0Okl8jRgmy7eNW3Ku1XSgg3sDLa5evHZpCwjspw7E8Is4K/haRPDJrBcX3YSn/Y7gUvFnByNYEKQNbNog=="], + + "@opentelemetry/exporter-trace-otlp-grpc/@opentelemetry/sdk-trace-base/@opentelemetry/semantic-conventions": ["@opentelemetry/semantic-conventions@1.28.0", "", {}, "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA=="], + "@opentelemetry/instrumentation/@opentelemetry/api-logs/@opentelemetry/api": ["@opentelemetry/api@1.9.1", "", {}, "sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q=="], + "@opentelemetry/instrumentation/import-in-the-middle/acorn": ["acorn@8.18.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ=="], + + "@opentelemetry/instrumentation/import-in-the-middle/cjs-module-lexer": ["cjs-module-lexer@1.4.3", "", {}, "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q=="], + + "@opentelemetry/otlp-grpc-exporter-base/@opentelemetry/core/@opentelemetry/semantic-conventions": ["@opentelemetry/semantic-conventions@1.28.0", "", {}, "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA=="], + + "@opentelemetry/otlp-grpc-exporter-base/@opentelemetry/otlp-transformer/@opentelemetry/api-logs": ["@opentelemetry/api-logs@0.57.2", "", { "dependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A=="], + + "@opentelemetry/otlp-grpc-exporter-base/@opentelemetry/otlp-transformer/@opentelemetry/sdk-logs": ["@opentelemetry/sdk-logs@0.57.2", "", { "dependencies": { "@opentelemetry/api-logs": "0.57.2", "@opentelemetry/core": "1.30.1", "@opentelemetry/resources": "1.30.1" }, "peerDependencies": { "@opentelemetry/api": ">=1.4.0 <1.10.0" } }, "sha512-TXFHJ5c+BKggWbdEQ/inpgIzEmS2BGQowLE9UhsMd7YYlUfBQJ4uax0VF/B5NYigdM/75OoJGhAV3upEhK+3gg=="], + + "@opentelemetry/otlp-grpc-exporter-base/@opentelemetry/otlp-transformer/@opentelemetry/sdk-metrics": ["@opentelemetry/sdk-metrics@1.30.1", "", { "dependencies": { "@opentelemetry/core": "1.30.1", "@opentelemetry/resources": "1.30.1" }, "peerDependencies": { "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, "sha512-q9zcZ0Okl8jRgmy7eNW3Ku1XSgg3sDLa5evHZpCwjspw7E8Is4K/haRPDJrBcX3YSn/Y7gUvFnByNYEKQNbNog=="], + + "@opentelemetry/otlp-grpc-exporter-base/@opentelemetry/otlp-transformer/@opentelemetry/sdk-trace-base": ["@opentelemetry/sdk-trace-base@1.30.1", "", { "dependencies": { "@opentelemetry/core": "1.30.1", "@opentelemetry/resources": "1.30.1", "@opentelemetry/semantic-conventions": "1.28.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg=="], + + "@opentelemetry/propagator-b3/@opentelemetry/core/@opentelemetry/semantic-conventions": ["@opentelemetry/semantic-conventions@1.28.0", "", {}, "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA=="], + + "@opentelemetry/propagator-jaeger/@opentelemetry/core/@opentelemetry/semantic-conventions": ["@opentelemetry/semantic-conventions@1.28.0", "", {}, "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA=="], + "@opentui/solid/@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], "@oxc-resolver/binding-wasm32-wasi/@emnapi/core/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.2", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA=="], @@ -7372,6 +7541,14 @@ "@pierre/trees/react-dom/scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], + "@pulumi/pulumi/@opentelemetry/sdk-trace-base/@opentelemetry/core": ["@opentelemetry/core@1.30.1", "", { "dependencies": { "@opentelemetry/semantic-conventions": "1.28.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ=="], + + "@pulumi/pulumi/@opentelemetry/sdk-trace-base/@opentelemetry/semantic-conventions": ["@opentelemetry/semantic-conventions@1.28.0", "", {}, "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA=="], + + "@pulumi/pulumi/@opentelemetry/sdk-trace-node/@opentelemetry/context-async-hooks": ["@opentelemetry/context-async-hooks@1.30.1", "", { "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA=="], + + "@pulumi/pulumi/@opentelemetry/sdk-trace-node/@opentelemetry/core": ["@opentelemetry/core@1.30.1", "", { "dependencies": { "@opentelemetry/semantic-conventions": "1.28.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ=="], + "@puppeteer/browsers/yargs/cliui": ["cliui@9.0.1", "", { "dependencies": { "string-width": "^7.2.0", "strip-ansi": "^7.1.0", "wrap-ansi": "^9.0.0" } }, "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w=="], "@puppeteer/browsers/yargs/string-width": ["string-width@8.2.2", "", { "dependencies": { "get-east-asian-width": "^1.5.0", "strip-ansi": "^7.1.2" } }, "sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg=="], @@ -7382,6 +7559,10 @@ "@sentry/cli/which/isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], + "@sentry/node/@opentelemetry/instrumentation/@opentelemetry/api-logs": ["@opentelemetry/api-logs@0.220.0", "", { "dependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-CmVa4ImJ+ynfrPMNaAXHET6Bhb44SwzmfyVJFq9ni2jgXJR/l7C6gfVFddNmHP+ZOkP9cf4f9DBe68qVLTHc9w=="], + + "@sentry/node/@opentelemetry/instrumentation/require-in-the-middle": ["require-in-the-middle@8.0.1", "", { "dependencies": { "debug": "^4.3.5", "module-details-from-path": "^1.0.3" } }, "sha512-QT7FVMXfWOYFbeRBF6nu+I6tr2Tf3u0q8RIEjNob/heKY/nh7drD/k7eeMFmSQgnTtCzLDcCu/XEnpW2wk4xCQ=="], + "@sentry/node/@opentelemetry/sdk-trace-base/@opentelemetry/core": ["@opentelemetry/core@2.11.0", "", { "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-7YP44XH0tV6+Mb54x2YGf84i7yi+31MBZlE8JwvozkxyTvXbSp10X7cI7YE49ChJ3shMJoBmCJF3+1QFBJctGA=="], "@sentry/node/@opentelemetry/sdk-trace-base/@opentelemetry/resources": ["@opentelemetry/resources@2.11.0", "", { "dependencies": { "@opentelemetry/core": "2.11.0", "@opentelemetry/semantic-conventions": "^1.29.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, "sha512-Ie7+8q8MDF4FAEQCKVMTx3ReUvxiIAgIiiW3c9JdmP8+HMcDy20puT+AHjexnExgnbvBxjQ9fjkFDWrikJ2jQA=="], @@ -7658,6 +7839,8 @@ "minipass-pipeline/minipass/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], + "normalize-package-data/hosted-git-info/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], + "openid-client/lru-cache/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], "p-locate/p-limit/yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], @@ -8362,6 +8545,14 @@ "@opencode/www/wrangler/workerd/@cloudflare/workerd-windows-64": ["@cloudflare/workerd-windows-64@1.20260708.1", "", { "os": "win32", "cpu": "x64" }, "sha512-bC/aSAwLy16Vjo24i9XU3aWH+eRgz7NeR5xPKavGbembO18ZywYTQbXh14eXtY6fAqN3RzRG8psijTdhX4xydA=="], + "@opentelemetry/exporter-trace-otlp-grpc/@opentelemetry/otlp-transformer/@opentelemetry/api-logs/@opentelemetry/api": ["@opentelemetry/api@1.9.1", "", {}, "sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q=="], + + "@opentelemetry/otlp-grpc-exporter-base/@opentelemetry/otlp-transformer/@opentelemetry/api-logs/@opentelemetry/api": ["@opentelemetry/api@1.9.1", "", {}, "sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q=="], + + "@opentelemetry/otlp-grpc-exporter-base/@opentelemetry/otlp-transformer/@opentelemetry/sdk-trace-base/@opentelemetry/semantic-conventions": ["@opentelemetry/semantic-conventions@1.28.0", "", {}, "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA=="], + + "@pulumi/pulumi/@opentelemetry/sdk-trace-node/@opentelemetry/core/@opentelemetry/semantic-conventions": ["@opentelemetry/semantic-conventions@1.28.0", "", {}, "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA=="], + "@puppeteer/browsers/yargs/cliui/string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], "@solidjs/start/shiki/@shikijs/engine-javascript/oniguruma-to-es": ["oniguruma-to-es@2.3.0", "", { "dependencies": { "emoji-regex-xs": "^1.0.0", "regex": "^5.1.1", "regex-recursion": "^5.1.1" } }, "sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g=="], diff --git a/nix/node_modules.nix b/nix/node_modules.nix index 35bc82f4710..1898c631cec 100644 --- a/nix/node_modules.nix +++ b/nix/node_modules.nix @@ -27,6 +27,7 @@ stdenvNoCC.mkDerivation { fileset = lib.fileset.intersection (lib.fileset.fromSource (lib.sources.cleanSource ../.)) ( lib.fileset.unions [ ../packages + ../services ../bun.lock ../package.json ../patches diff --git a/package.json b/package.json index 149dce571b0..809d9fd19e5 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "dev:web": "bun --cwd packages/app dev", "dev:console": "ulimit -n 10240 2>/dev/null; bun run --cwd packages/console/app dev", "dev:stats": "bun sst shell --stage=production -- bun run --cwd packages/stats/app dev", - "dev:www": "bun run --cwd packages/www dev", + "dev:www": "bun run --cwd services/www dev", "dev:storybook": "bun --cwd packages/storybook storybook", "bench:devex": "bun run --cwd packages/app test:bench:devex", "lint": "oxlint", @@ -34,6 +34,7 @@ "workspaces": { "packages": [ "packages/*", + "services/*", "packages/console/*", "packages/stats/*" ], diff --git a/packages/cli/script/schema.ts b/packages/cli/script/schema.ts index d87e671945f..999ec0c4c1a 100644 --- a/packages/cli/script/schema.ts +++ b/packages/cli/script/schema.ts @@ -18,7 +18,7 @@ const content = await format( if (process.argv.includes("--check")) { if ((await Bun.file(target).text()) !== content) { - console.error("Generated CLI config schema is stale. Run `bun run generate` from packages/www.") + console.error("Generated CLI config schema is stale. Run `bun run generate` from services/www.") process.exit(1) } process.exit(0) diff --git a/packages/core/src/plugin/skill/opencode.md b/packages/core/src/plugin/skill/opencode.md index 08a1f9e84fb..cd4af1d59e4 100644 --- a/packages/core/src/plugin/skill/opencode.md +++ b/packages/core/src/plugin/skill/opencode.md @@ -135,7 +135,7 @@ secret into configuration. For any request to migrate OpenCode configuration, agents, commands, skills, plugins, integrations, or other behavior from V1 to V2, read the full [migration guide](https://opencode.ai/v2/docs/migrate-v1) before acting. In -the repository, its source is `packages/www/src/docs/content/migrate-v1.mdx`. +the repository, its source is `services/www/src/docs/content/migrate-v1.mdx`. V1 config files and `.opencode/` definitions are intended to remain compatible. The only intentional breaking changes are the server API and plugin API. Native diff --git a/script/generate.ts b/script/generate.ts index ff4f29e6d52..cd2e0bb450b 100755 --- a/script/generate.ts +++ b/script/generate.ts @@ -4,6 +4,6 @@ import { $ } from "bun" await $`bun run generate`.cwd("packages/protocol") -await $`bun run generate`.cwd("packages/www") +await $`bun run generate`.cwd("services/www") await $`./script/format.ts` diff --git a/services/README.md b/services/README.md new file mode 100644 index 00000000000..30eedc8cc3e --- /dev/null +++ b/services/README.md @@ -0,0 +1,13 @@ +# Services + +Independently deployed services supporting OpenCode live here. Runtime packages +and clients live in `packages/`. + +| Service | Purpose | Deployment | +| ---------------------- | -------------------------------------- | -------------------------- | +| [`www`](./www) | Website and V2 documentation | `deploy-www.yml`, Wrangler | +| [`updates`](./updates) | Release metadata and update selection | `publish.yml`, Wrangler | +| [`files`](./files) | Public file distribution at `/files/*` | `deploy-files.yml`, Pulumi | + +These directories are Bun workspaces. Run package commands from each service's +directory. Repository-wide Turbo commands discover them through `services/*`. diff --git a/services/files/.gitignore b/services/files/.gitignore new file mode 100644 index 00000000000..5cefab1a493 --- /dev/null +++ b/services/files/.gitignore @@ -0,0 +1,4 @@ +node_modules/ +dist/ +.pulumi/ +.turbo/ diff --git a/services/files/Pulumi.dev.yaml b/services/files/Pulumi.dev.yaml new file mode 100644 index 00000000000..22f80f129e3 --- /dev/null +++ b/services/files/Pulumi.dev.yaml @@ -0,0 +1,2 @@ +environment: + - shared/dev diff --git a/services/files/Pulumi.production.yaml b/services/files/Pulumi.production.yaml new file mode 100644 index 00000000000..49c34f01465 --- /dev/null +++ b/services/files/Pulumi.production.yaml @@ -0,0 +1,2 @@ +environment: + - shared/production diff --git a/services/files/Pulumi.yaml b/services/files/Pulumi.yaml new file mode 100644 index 00000000000..98963e86bc9 --- /dev/null +++ b/services/files/Pulumi.yaml @@ -0,0 +1,7 @@ +name: files +description: OpenCode public file distribution +main: pulumi.ts +runtime: + name: nodejs + options: + packagemanager: bun diff --git a/services/files/README.md b/services/files/README.md new file mode 100644 index 00000000000..69051dbc3d5 --- /dev/null +++ b/services/files/README.md @@ -0,0 +1,107 @@ +# Public Files + +Each stack owns one R2 bucket, a Worker, and a `/files/*` route on its domain. +Production resources are Pulumi-protected. + +| Stack | Bucket and Worker | Public URL | +| ----------- | --------------------------- | -------------------------------- | +| Development | `opencode-dev-files` | `https://dev.opencode.ai/files/` | +| Production | `opencode-production-files` | `https://opencode.ai/files/` | + +The Worker removes `/files/` and URL-decodes the remaining path to obtain the R2 +object key. For example: + +```text +R2 key: releases/1.0.0/opencode-linux-x64.tar.gz +URL: https://opencode.ai/files/releases/1.0.0/opencode-linux-x64.tar.gz + +R2 key: videos/demo.mp4 +URL: https://opencode.ai/files/videos/demo.mp4 +``` + +## Deployment + +This directory is the standalone `anomalyco/files` Pulumi project. Pulumi manages +the bucket, Worker source, R2 binding, and zone route. The preview and deploy +scripts bundle the Worker with Bun first; Wrangler is unnecessary. +The route uses the stage's existing proxied DNS record +and takes precedence over broader website routes. Production uses `opencode.ai`; +development uses `dev.opencode.ai`, and personal stages use `.dev.opencode.ai`. + +```bash +bun typecheck +bun run preview --stack anomalyco/files/dev +bun run deploy --stack anomalyco/files/dev +bun run preview --stack anomalyco/files/production +bun run deploy --stack anomalyco/files/production +``` + +The stack exports `bucketName` and `url`. The Cloudflare credential +comes from the stack's imported Pulumi ESC environment and needs R2, Workers +Scripts, and Workers Routes write permissions, plus zone read access. + +Initialize new stacks once with `bunx pulumi stack init anomalyco/files/`. +The checked-in development and production stack files import `shared/dev` and +`shared/production` respectively. Personal stages need an ESC import providing +`CLOUDFLARE_ACCOUNT_ID` and `CLOUDFLARE_API_TOKEN`, and a proxied stage hostname. + +`.github/workflows/deploy-files.yml` deploys development on every push to `dev` +and production on every push to `v2`. It uses the same Pulumi Cloud OIDC login as +the platform workflow; Cloudflare credentials are supplied through ESC. + +The `anomalyco` Pulumi organization's GitHub OIDC issuer must allow organization +tokens with audience `urn:pulumi:org:anomalyco` and these subjects: + +- `repo:anomalyco/opencode:ref:refs/heads/dev` +- `repo:anomalyco/opencode:ref:refs/heads/v2` + +## Uploading + +Upload through the R2 dashboard or its S3-compatible API using bucket-scoped +credentials. Store objects without a `files/` prefix. The public Worker accepts +only `GET`, `HEAD`, and CORS `OPTIONS`; upload access remains with authenticated +R2 clients. There is no bucket listing or directory index. + +Set HTTP metadata when uploading: + +- `Content-Type`: the actual media type, such as `video/mp4`, `image/png`, or + `application/gzip`. Missing types default to `application/octet-stream`. +- `Content-Disposition`: use `attachment; filename="..."` when a file should + download rather than display inline. +- `Cache-Control`: defaults to `public, max-age=3600` (one hour). Use + `public, max-age=31536000, immutable` for versioned/content-addressed files, + and a short TTL or `no-store` for mutable pointers such as `latest.json`. + +The Worker preserves the object's HTTP metadata, returns ETag and Last-Modified +validators, supports conditional GET/HEAD, and streams single byte ranges for +video seeking and download resumption, including If-Range. Unsupported or +malformed range formats fall back to a full response. Public CORS allows these +files to be consumed from other origins. + +## Caching + +Complete GET responses up to 512 MiB are cached through the Workers Cache API +at the serving Cloudflare location, subject to object Cache-Control. Cached +complete objects can also satisfy range requests. Cold range requests stream +only the requested bytes from R2 and do not populate the cache. Larger objects +stream from R2. This cache does not use Tiered Cache. + +Query strings are retained in cache keys but do not change the R2 key. Cookies +and authorization do not affect public file contents. Replacing/deleting an R2 +object does not purge an already-cached response: use versioned keys, wait for +the TTL, or purge the public URL through Cloudflare. Request `Cache-Control: +no-cache` bypasses the cache for revalidation. + +## Verification + +After uploading an object, check its full response, metadata, and byte ranges: + +```bash +curl -I https://opencode.ai/files/videos/demo.mp4 +curl --fail -H 'Range: bytes=0-31' -D - \ + https://opencode.ai/files/videos/demo.mp4 -o /dev/null +``` + +Expect `200` for HEAD and `206` with `Content-Range` for the range request. A +missing key returns `404`, unsupported methods return `405`, and matching +If-None-Match/If-Modified-Since requests return `304`. diff --git a/services/files/package.json b/services/files/package.json new file mode 100644 index 00000000000..cfbbcc1f0c7 --- /dev/null +++ b/services/files/package.json @@ -0,0 +1,24 @@ +{ + "$schema": "https://json.schemastore.org/package.json", + "name": "@opencode/files", + "private": true, + "type": "module", + "scripts": { + "build": "bun build src/index.ts --target browser --outfile dist/worker.js", + "preview": "bun run build && pulumi preview", + "deploy": "bun run build && pulumi up", + "typecheck": "tsgo --noEmit && tsgo --noEmit --project tsconfig.pulumi.json" + }, + "devDependencies": { + "@cloudflare/workers-types": "catalog:", + "@tsconfig/node22": "catalog:", + "@types/node": "catalog:", + "@typescript/native-preview": "catalog:", + "pulumi": "3.246.0", + "typescript": "catalog:" + }, + "dependencies": { + "@pulumi/cloudflare": "6.17.0", + "@pulumi/pulumi": "3.246.0" + } +} diff --git a/services/files/pulumi.ts b/services/files/pulumi.ts new file mode 100644 index 00000000000..db130e8fff4 --- /dev/null +++ b/services/files/pulumi.ts @@ -0,0 +1,49 @@ +import { R2Bucket, WorkersScript, WorkersRoute, getZoneOutput } from "@pulumi/cloudflare" +import { getStack } from "@pulumi/pulumi" +import { readFileSync } from "node:fs" + +const stage = getStack() +const protect = stage === "production" +const domain = stage === "production" ? "opencode.ai" : stage === "dev" ? "dev.opencode.ai" : `${stage}.dev.opencode.ai` +const accountId = process.env.CLOUDFLARE_ACCOUNT_ID +if (!accountId) throw new Error("CLOUDFLARE_ACCOUNT_ID is required") +if (!process.env.CLOUDFLARE_API_TOKEN) throw new Error("CLOUDFLARE_API_TOKEN is required") + +const zone = getZoneOutput({ filter: { account: { id: accountId }, name: "opencode.ai" } }) + +const bucket = new R2Bucket( + "files", + { + accountId, + name: `opencode-${stage}-files`, + jurisdiction: "default", + storageClass: "Standard", + }, + { protect }, +) + +const worker = new WorkersScript( + "files", + { + accountId, + scriptName: `opencode-${stage}-files`, + compatibilityDate: "2026-08-01", + mainModule: "worker.js", + content: readFileSync(new URL("./dist/worker.js", import.meta.url), "utf8"), + bindings: [{ name: "FILES", type: "r2_bucket", bucketName: bucket.name }], + }, + { protect }, +) + +new WorkersRoute( + "files", + { + zoneId: zone.zoneId, + pattern: `${domain}/files/*`, + script: worker.scriptName, + }, + { protect }, +) + +export const bucketName = bucket.name +export const url = `https://${domain}/files/` diff --git a/services/files/src/index.ts b/services/files/src/index.ts new file mode 100644 index 00000000000..5342c0b87ae --- /dev/null +++ b/services/files/src/index.ts @@ -0,0 +1,163 @@ +export default { + async fetch(request, env, ctx) { + const url = new URL(request.url) + const cors = { + "Access-Control-Allow-Origin": "*", + "Access-Control-Allow-Methods": "GET, HEAD, OPTIONS", + "Access-Control-Allow-Headers": + "Range, If-Range, If-Match, If-None-Match, If-Modified-Since, If-Unmodified-Since", + "Access-Control-Expose-Headers": + "Accept-Ranges, Content-Length, Content-Range, Content-Disposition, ETag, Last-Modified", + } + + if (!url.pathname.startsWith("/files/")) { + return new Response(null, { status: 404, headers: cors }) + } + if (request.method === "OPTIONS") { + return new Response(null, { + status: 204, + headers: { ...cors, "Access-Control-Max-Age": "86400" }, + }) + } + if (request.method !== "GET" && request.method !== "HEAD") { + return new Response(null, { + status: 405, + headers: { ...cors, Allow: "GET, HEAD, OPTIONS" }, + }) + } + + let key: string + try { + key = decodeURIComponent(url.pathname.slice("/files/".length)) + } catch { + return new Response(null, { status: 400, headers: cors }) + } + if (!key) return new Response(null, { status: 404, headers: cors }) + + // Public object responses never vary by cookies, authorization, or origin. + const cacheKey = new Request(url, { method: "GET" }) + const cacheControl = request.headers.get("Cache-Control") ?? "" + const noStore = /\bno-store\b/i.test(cacheControl) + const bypass = noStore || /\bno-cache\b|\bmax-age=0\b/i.test(cacheControl) + if ( + !bypass && + !request.headers.has("If-Match") && + !request.headers.has("If-Unmodified-Since") && + !request.headers.has("If-Range") + ) { + const headers = new Headers() + for (const name of ["If-None-Match", "If-Modified-Since", "Range"]) { + const value = request.headers.get(name) + if (value !== null) headers.set(name, value) + } + if (headers.has("If-None-Match")) headers.delete("If-Modified-Since") + if (request.method === "HEAD") headers.delete("Range") + const cached = await caches.default.match(new Request(cacheKey, { headers })) + if (cached && !(request.method === "GET" && request.headers.has("Range") && cached.status === 200)) { + if (request.method !== "HEAD") return cached + await cached.body?.cancel() + return new Response(null, cached) + } + await cached?.body?.cancel() + } + + const object = await env.FILES.head(key) + if (!object) { + return new Response(null, { + status: 404, + headers: { ...cors, "Cache-Control": "no-store" }, + }) + } + + const headers = new Headers(cors) + object.writeHttpMetadata(headers) + headers.set("ETag", object.httpEtag) + headers.set("Last-Modified", object.uploaded.toUTCString()) + headers.set("Accept-Ranges", "bytes") + if (!headers.has("Content-Type")) headers.set("Content-Type", "application/octet-stream") + if (!headers.has("Cache-Control")) headers.set("Cache-Control", "public, max-age=3600") + + const modified = Math.floor(object.uploaded.getTime() / 1000) * 1000 + const ifMatch = request.headers.get("If-Match") + const ifUnmodifiedSince = request.headers.get("If-Unmodified-Since") + if ( + (ifMatch !== null && !matches(ifMatch, object.httpEtag, false)) || + (ifMatch === null && ifUnmodifiedSince !== null && modified > Date.parse(ifUnmodifiedSince)) + ) { + return new Response(null, { status: 412, headers }) + } + const ifNoneMatch = request.headers.get("If-None-Match") + const ifModifiedSince = request.headers.get("If-Modified-Since") + if ( + (ifNoneMatch !== null && matches(ifNoneMatch, object.httpEtag, true)) || + (ifNoneMatch === null && ifModifiedSince !== null && modified <= Date.parse(ifModifiedSince)) + ) { + return new Response(null, { status: 304, headers }) + } + + headers.set("Content-Length", String(object.size)) + if (request.method === "HEAD") return new Response(null, { headers }) + + let range: { offset: number; length: number } | undefined + const ifRange = request.headers.get("If-Range") + const rangeHeader = request.headers.get("Range") + // Ignore unsupported/malformed and multipart ranges; a full 200 is valid. + const bytes = rangeHeader?.match(/^bytes=(\d*)-(\d*)$/) + if ( + bytes && + (bytes[1] || bytes[2]) && + (ifRange === null || + ifRange === object.httpEtag || + (!ifRange.startsWith('"') && !ifRange.startsWith("W/") && modified <= Date.parse(ifRange))) + ) { + const offset = bytes[1] ? Number(bytes[1]) : Math.max(0, object.size - Number(bytes[2])) + const end = bytes[1] && bytes[2] ? Math.min(Number(bytes[2]), object.size - 1) : object.size - 1 + if (offset >= object.size || end < offset) { + headers.set("Content-Range", `bytes */${object.size}`) + headers.set("Content-Length", "0") + return new Response(null, { status: 416, headers }) + } + range = { offset, length: end - offset + 1 } + headers.set("Content-Range", `bytes ${offset}-${end}/${object.size}`) + headers.set("Content-Length", String(range.length)) + } + + const body = await env.FILES.get(key, { + range, + onlyIf: { etagMatches: object.etag }, + }) + // An overwrite/delete between head and get must not mix metadata and bytes. + if (!body || !("body" in body)) { + return new Response(null, { + status: 503, + headers: { ...cors, "Cache-Control": "no-store", "Retry-After": "1" }, + }) + } + const response = new Response(body.body, { + status: range ? 206 : 200, + headers, + encodeBody: "manual", + }) + // Cache only complete responses. Larger objects still stream directly from R2. + if ( + !range && + !noStore && + object.size <= 512 * 1024 * 1024 && + !/\b(private|no-store|no-cache)\b/i.test(headers.get("Cache-Control")!) + ) { + ctx.waitUntil( + caches.default.put(cacheKey, response.clone()).catch((error) => { + console.error("Failed to cache public file", error) + }), + ) + } + return response + }, +} satisfies ExportedHandler<{ FILES: R2Bucket }> + +function matches(value: string, etag: string, weak: boolean) { + return value.split(",").some((part) => { + const tag = part.trim() + return tag === "*" || (weak ? tag.replace(/^W\//, "") : tag) === etag + }) +} diff --git a/services/files/tsconfig.json b/services/files/tsconfig.json new file mode 100644 index 00000000000..a5a6ceb624d --- /dev/null +++ b/services/files/tsconfig.json @@ -0,0 +1,12 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "@tsconfig/node22/tsconfig.json", + "compilerOptions": { + "lib": ["ES2023"], + "module": "ESNext", + "moduleResolution": "bundler", + "noEmit": true, + "types": ["@cloudflare/workers-types"] + }, + "include": ["src"] +} diff --git a/services/files/tsconfig.pulumi.json b/services/files/tsconfig.pulumi.json new file mode 100644 index 00000000000..12599072b43 --- /dev/null +++ b/services/files/tsconfig.pulumi.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "lib": ["ES2023"], + "types": ["node"] + }, + "include": ["pulumi.ts"] +} diff --git a/packages/updates/README.md b/services/updates/README.md similarity index 100% rename from packages/updates/README.md rename to services/updates/README.md diff --git a/packages/updates/migrations/0001_artifact.sql b/services/updates/migrations/0001_artifact.sql similarity index 100% rename from packages/updates/migrations/0001_artifact.sql rename to services/updates/migrations/0001_artifact.sql diff --git a/packages/updates/migrations/0002_artifact_time_created.sql b/services/updates/migrations/0002_artifact_time_created.sql similarity index 100% rename from packages/updates/migrations/0002_artifact_time_created.sql rename to services/updates/migrations/0002_artifact_time_created.sql diff --git a/packages/updates/migrations/0003_artifact_minimum.sql b/services/updates/migrations/0003_artifact_minimum.sql similarity index 100% rename from packages/updates/migrations/0003_artifact_minimum.sql rename to services/updates/migrations/0003_artifact_minimum.sql diff --git a/packages/updates/package.json b/services/updates/package.json similarity index 100% rename from packages/updates/package.json rename to services/updates/package.json diff --git a/packages/updates/src/index.ts b/services/updates/src/index.ts similarity index 100% rename from packages/updates/src/index.ts rename to services/updates/src/index.ts diff --git a/packages/updates/tsconfig.json b/services/updates/tsconfig.json similarity index 100% rename from packages/updates/tsconfig.json rename to services/updates/tsconfig.json diff --git a/packages/updates/wrangler.jsonc b/services/updates/wrangler.jsonc similarity index 100% rename from packages/updates/wrangler.jsonc rename to services/updates/wrangler.jsonc diff --git a/packages/www/.gitignore b/services/www/.gitignore similarity index 100% rename from packages/www/.gitignore rename to services/www/.gitignore diff --git a/packages/www/AGENTS.md b/services/www/AGENTS.md similarity index 100% rename from packages/www/AGENTS.md rename to services/www/AGENTS.md diff --git a/packages/www/README.md b/services/www/README.md similarity index 100% rename from packages/www/README.md rename to services/www/README.md diff --git a/packages/www/astro.config.ts b/services/www/astro.config.ts similarity index 100% rename from packages/www/astro.config.ts rename to services/www/astro.config.ts diff --git a/packages/www/openapi.json b/services/www/openapi.json similarity index 100% rename from packages/www/openapi.json rename to services/www/openapi.json diff --git a/packages/www/package.json b/services/www/package.json similarity index 93% rename from packages/www/package.json rename to services/www/package.json index e9f2aff09f1..5b6f857a394 100644 --- a/packages/www/package.json +++ b/services/www/package.json @@ -7,7 +7,7 @@ "dev": "bun run generate && astro dev --host --port 3000", "build": "bun run generate && astro build && bun script/pagefind.ts && bun run validate && bun script/prepare-cloudflare.ts", "deploy": "wrangler deploy --config dist/server/wrangler.json", - "generate": "bun script/generate-openapi.ts && bun --cwd ../cli script/schema.ts ../www/public/cli.json", + "generate": "bun script/generate-openapi.ts && bun --cwd ../../packages/cli script/schema.ts ../../services/www/public/cli.json", "check:generated": "bun script/generate-openapi.ts --check", "validate": "bun script/validate-links.ts", "typecheck": "astro check" diff --git a/packages/www/public/assets/docs/cli/settings.png b/services/www/public/assets/docs/cli/settings.png similarity index 100% rename from packages/www/public/assets/docs/cli/settings.png rename to services/www/public/assets/docs/cli/settings.png diff --git a/packages/www/public/assets/logo-dark.svg b/services/www/public/assets/logo-dark.svg similarity index 100% rename from packages/www/public/assets/logo-dark.svg rename to services/www/public/assets/logo-dark.svg diff --git a/packages/www/public/assets/logo-light.svg b/services/www/public/assets/logo-light.svg similarity index 100% rename from packages/www/public/assets/logo-light.svg rename to services/www/public/assets/logo-light.svg diff --git a/packages/www/public/favicon.svg b/services/www/public/favicon.svg similarity index 100% rename from packages/www/public/favicon.svg rename to services/www/public/favicon.svg diff --git a/packages/www/public/openapi.json b/services/www/public/openapi.json similarity index 100% rename from packages/www/public/openapi.json rename to services/www/public/openapi.json diff --git a/packages/www/script/generate-openapi.ts b/services/www/script/generate-openapi.ts similarity index 80% rename from packages/www/script/generate-openapi.ts rename to services/www/script/generate-openapi.ts index 80b9c72ca39..dc590f27702 100644 --- a/packages/www/script/generate-openapi.ts +++ b/services/www/script/generate-openapi.ts @@ -1,6 +1,6 @@ import { fileURLToPath } from "url" -const source = fileURLToPath(new URL("../../protocol/openapi.json", import.meta.url)) +const source = fileURLToPath(new URL("../../../packages/protocol/openapi.json", import.meta.url)) const targets = ["../openapi.json", "../public/openapi.json"].map((path) => fileURLToPath(new URL(path, import.meta.url)), ) @@ -9,7 +9,7 @@ const document = await Bun.file(source).text() if (process.argv.includes("--check")) { const stale = (await Promise.all(targets.map((path) => Bun.file(path).text()))).some((value) => value !== document) if (stale) { - console.error("Generated OpenAPI documents are stale. Run `bun run generate` from packages/www.") + console.error("Generated OpenAPI documents are stale. Run `bun run generate` from services/www.") process.exit(1) } process.exit(0) diff --git a/packages/www/script/pagefind.ts b/services/www/script/pagefind.ts similarity index 100% rename from packages/www/script/pagefind.ts rename to services/www/script/pagefind.ts diff --git a/packages/www/script/prepare-cloudflare.ts b/services/www/script/prepare-cloudflare.ts similarity index 100% rename from packages/www/script/prepare-cloudflare.ts rename to services/www/script/prepare-cloudflare.ts diff --git a/packages/www/script/validate-links.ts b/services/www/script/validate-links.ts similarity index 100% rename from packages/www/script/validate-links.ts rename to services/www/script/validate-links.ts diff --git a/packages/www/src/content.config.ts b/services/www/src/content.config.ts similarity index 100% rename from packages/www/src/content.config.ts rename to services/www/src/content.config.ts diff --git a/packages/www/src/docs/AGENTS.md b/services/www/src/docs/AGENTS.md similarity index 96% rename from packages/www/src/docs/AGENTS.md rename to services/www/src/docs/AGENTS.md index 18c295262dd..81aa066811d 100644 --- a/packages/www/src/docs/AGENTS.md +++ b/services/www/src/docs/AGENTS.md @@ -23,5 +23,5 @@ ## Validation -- Run `bun typecheck` and `bun run build` from `packages/www` after changes. +- Run `bun typecheck` and `bun run build` from `services/www` after changes. - Check desktop and mobile layouts when changing navigation or shared styles. diff --git a/packages/www/src/docs/assets/fonts/OpenTUIMono-Bold.woff2 b/services/www/src/docs/assets/fonts/OpenTUIMono-Bold.woff2 similarity index 100% rename from packages/www/src/docs/assets/fonts/OpenTUIMono-Bold.woff2 rename to services/www/src/docs/assets/fonts/OpenTUIMono-Bold.woff2 diff --git a/packages/www/src/docs/assets/fonts/OpenTUIMono-BoldItalic.woff2 b/services/www/src/docs/assets/fonts/OpenTUIMono-BoldItalic.woff2 similarity index 100% rename from packages/www/src/docs/assets/fonts/OpenTUIMono-BoldItalic.woff2 rename to services/www/src/docs/assets/fonts/OpenTUIMono-BoldItalic.woff2 diff --git a/packages/www/src/docs/assets/fonts/OpenTUIMono-Italic.woff2 b/services/www/src/docs/assets/fonts/OpenTUIMono-Italic.woff2 similarity index 100% rename from packages/www/src/docs/assets/fonts/OpenTUIMono-Italic.woff2 rename to services/www/src/docs/assets/fonts/OpenTUIMono-Italic.woff2 diff --git a/packages/www/src/docs/assets/fonts/OpenTUIMono-Regular.woff2 b/services/www/src/docs/assets/fonts/OpenTUIMono-Regular.woff2 similarity index 100% rename from packages/www/src/docs/assets/fonts/OpenTUIMono-Regular.woff2 rename to services/www/src/docs/assets/fonts/OpenTUIMono-Regular.woff2 diff --git a/packages/www/src/docs/components/Callout.astro b/services/www/src/docs/components/Callout.astro similarity index 100% rename from packages/www/src/docs/components/Callout.astro rename to services/www/src/docs/components/Callout.astro diff --git a/packages/www/src/docs/components/Card.astro b/services/www/src/docs/components/Card.astro similarity index 100% rename from packages/www/src/docs/components/Card.astro rename to services/www/src/docs/components/Card.astro diff --git a/packages/www/src/docs/components/CardGroup.astro b/services/www/src/docs/components/CardGroup.astro similarity index 100% rename from packages/www/src/docs/components/CardGroup.astro rename to services/www/src/docs/components/CardGroup.astro diff --git a/packages/www/src/docs/components/CodeBlock.astro b/services/www/src/docs/components/CodeBlock.astro similarity index 100% rename from packages/www/src/docs/components/CodeBlock.astro rename to services/www/src/docs/components/CodeBlock.astro diff --git a/packages/www/src/docs/components/DocsHeader.astro b/services/www/src/docs/components/DocsHeader.astro similarity index 100% rename from packages/www/src/docs/components/DocsHeader.astro rename to services/www/src/docs/components/DocsHeader.astro diff --git a/packages/www/src/docs/components/DocsPage.astro b/services/www/src/docs/components/DocsPage.astro similarity index 100% rename from packages/www/src/docs/components/DocsPage.astro rename to services/www/src/docs/components/DocsPage.astro diff --git a/packages/www/src/docs/components/DocsSidebar.astro b/services/www/src/docs/components/DocsSidebar.astro similarity index 100% rename from packages/www/src/docs/components/DocsSidebar.astro rename to services/www/src/docs/components/DocsSidebar.astro diff --git a/packages/www/src/docs/components/DocsTableOfContents.astro b/services/www/src/docs/components/DocsTableOfContents.astro similarity index 100% rename from packages/www/src/docs/components/DocsTableOfContents.astro rename to services/www/src/docs/components/DocsTableOfContents.astro diff --git a/packages/www/src/docs/components/OpenApiReference.astro b/services/www/src/docs/components/OpenApiReference.astro similarity index 100% rename from packages/www/src/docs/components/OpenApiReference.astro rename to services/www/src/docs/components/OpenApiReference.astro diff --git a/packages/www/src/docs/components/OpenApiSchema.astro b/services/www/src/docs/components/OpenApiSchema.astro similarity index 100% rename from packages/www/src/docs/components/OpenApiSchema.astro rename to services/www/src/docs/components/OpenApiSchema.astro diff --git a/packages/www/src/docs/content/agents.mdx b/services/www/src/docs/content/agents.mdx similarity index 100% rename from packages/www/src/docs/content/agents.mdx rename to services/www/src/docs/content/agents.mdx diff --git a/packages/www/src/docs/content/attachments.mdx b/services/www/src/docs/content/attachments.mdx similarity index 100% rename from packages/www/src/docs/content/attachments.mdx rename to services/www/src/docs/content/attachments.mdx diff --git a/packages/www/src/docs/content/build/client/effect.mdx b/services/www/src/docs/content/build/client/effect.mdx similarity index 100% rename from packages/www/src/docs/content/build/client/effect.mdx rename to services/www/src/docs/content/build/client/effect.mdx diff --git a/packages/www/src/docs/content/build/client/index.mdx b/services/www/src/docs/content/build/client/index.mdx similarity index 100% rename from packages/www/src/docs/content/build/client/index.mdx rename to services/www/src/docs/content/build/client/index.mdx diff --git a/packages/www/src/docs/content/build/index.mdx b/services/www/src/docs/content/build/index.mdx similarity index 100% rename from packages/www/src/docs/content/build/index.mdx rename to services/www/src/docs/content/build/index.mdx diff --git a/packages/www/src/docs/content/build/plugins/cli.mdx b/services/www/src/docs/content/build/plugins/cli.mdx similarity index 100% rename from packages/www/src/docs/content/build/plugins/cli.mdx rename to services/www/src/docs/content/build/plugins/cli.mdx diff --git a/packages/www/src/docs/content/build/plugins/effect.mdx b/services/www/src/docs/content/build/plugins/effect.mdx similarity index 100% rename from packages/www/src/docs/content/build/plugins/effect.mdx rename to services/www/src/docs/content/build/plugins/effect.mdx diff --git a/packages/www/src/docs/content/build/plugins/effect/rpc.mdx b/services/www/src/docs/content/build/plugins/effect/rpc.mdx similarity index 100% rename from packages/www/src/docs/content/build/plugins/effect/rpc.mdx rename to services/www/src/docs/content/build/plugins/effect/rpc.mdx diff --git a/packages/www/src/docs/content/build/plugins/index.mdx b/services/www/src/docs/content/build/plugins/index.mdx similarity index 100% rename from packages/www/src/docs/content/build/plugins/index.mdx rename to services/www/src/docs/content/build/plugins/index.mdx diff --git a/packages/www/src/docs/content/build/plugins/rpc.mdx b/services/www/src/docs/content/build/plugins/rpc.mdx similarity index 100% rename from packages/www/src/docs/content/build/plugins/rpc.mdx rename to services/www/src/docs/content/build/plugins/rpc.mdx diff --git a/packages/www/src/docs/content/build/sdk/cloudflare.mdx b/services/www/src/docs/content/build/sdk/cloudflare.mdx similarity index 100% rename from packages/www/src/docs/content/build/sdk/cloudflare.mdx rename to services/www/src/docs/content/build/sdk/cloudflare.mdx diff --git a/packages/www/src/docs/content/build/sdk/effect.mdx b/services/www/src/docs/content/build/sdk/effect.mdx similarity index 100% rename from packages/www/src/docs/content/build/sdk/effect.mdx rename to services/www/src/docs/content/build/sdk/effect.mdx diff --git a/packages/www/src/docs/content/build/sdk/index.mdx b/services/www/src/docs/content/build/sdk/index.mdx similarity index 100% rename from packages/www/src/docs/content/build/sdk/index.mdx rename to services/www/src/docs/content/build/sdk/index.mdx diff --git a/packages/www/src/docs/content/cli/config.mdx b/services/www/src/docs/content/cli/config.mdx similarity index 100% rename from packages/www/src/docs/content/cli/config.mdx rename to services/www/src/docs/content/cli/config.mdx diff --git a/packages/www/src/docs/content/cli/index.mdx b/services/www/src/docs/content/cli/index.mdx similarity index 100% rename from packages/www/src/docs/content/cli/index.mdx rename to services/www/src/docs/content/cli/index.mdx diff --git a/packages/www/src/docs/content/cli/keybinds.mdx b/services/www/src/docs/content/cli/keybinds.mdx similarity index 100% rename from packages/www/src/docs/content/cli/keybinds.mdx rename to services/www/src/docs/content/cli/keybinds.mdx diff --git a/packages/www/src/docs/content/cli/plugins.mdx b/services/www/src/docs/content/cli/plugins.mdx similarity index 100% rename from packages/www/src/docs/content/cli/plugins.mdx rename to services/www/src/docs/content/cli/plugins.mdx diff --git a/packages/www/src/docs/content/cli/providers.mdx b/services/www/src/docs/content/cli/providers.mdx similarity index 100% rename from packages/www/src/docs/content/cli/providers.mdx rename to services/www/src/docs/content/cli/providers.mdx diff --git a/packages/www/src/docs/content/cli/theme.mdx b/services/www/src/docs/content/cli/theme.mdx similarity index 100% rename from packages/www/src/docs/content/cli/theme.mdx rename to services/www/src/docs/content/cli/theme.mdx diff --git a/packages/www/src/docs/content/commands.mdx b/services/www/src/docs/content/commands.mdx similarity index 100% rename from packages/www/src/docs/content/commands.mdx rename to services/www/src/docs/content/commands.mdx diff --git a/packages/www/src/docs/content/compaction.mdx b/services/www/src/docs/content/compaction.mdx similarity index 100% rename from packages/www/src/docs/content/compaction.mdx rename to services/www/src/docs/content/compaction.mdx diff --git a/packages/www/src/docs/content/config.mdx b/services/www/src/docs/content/config.mdx similarity index 100% rename from packages/www/src/docs/content/config.mdx rename to services/www/src/docs/content/config.mdx diff --git a/packages/www/src/docs/content/console/go.mdx b/services/www/src/docs/content/console/go.mdx similarity index 100% rename from packages/www/src/docs/content/console/go.mdx rename to services/www/src/docs/content/console/go.mdx diff --git a/packages/www/src/docs/content/console/index.mdx b/services/www/src/docs/content/console/index.mdx similarity index 100% rename from packages/www/src/docs/content/console/index.mdx rename to services/www/src/docs/content/console/index.mdx diff --git a/packages/www/src/docs/content/console/models.mdx b/services/www/src/docs/content/console/models.mdx similarity index 100% rename from packages/www/src/docs/content/console/models.mdx rename to services/www/src/docs/content/console/models.mdx diff --git a/packages/www/src/docs/content/formatters.mdx b/services/www/src/docs/content/formatters.mdx similarity index 100% rename from packages/www/src/docs/content/formatters.mdx rename to services/www/src/docs/content/formatters.mdx diff --git a/packages/www/src/docs/content/index.mdx b/services/www/src/docs/content/index.mdx similarity index 100% rename from packages/www/src/docs/content/index.mdx rename to services/www/src/docs/content/index.mdx diff --git a/packages/www/src/docs/content/instructions.mdx b/services/www/src/docs/content/instructions.mdx similarity index 100% rename from packages/www/src/docs/content/instructions.mdx rename to services/www/src/docs/content/instructions.mdx diff --git a/packages/www/src/docs/content/lsp.mdx b/services/www/src/docs/content/lsp.mdx similarity index 100% rename from packages/www/src/docs/content/lsp.mdx rename to services/www/src/docs/content/lsp.mdx diff --git a/packages/www/src/docs/content/mcp-servers.mdx b/services/www/src/docs/content/mcp-servers.mdx similarity index 100% rename from packages/www/src/docs/content/mcp-servers.mdx rename to services/www/src/docs/content/mcp-servers.mdx diff --git a/packages/www/src/docs/content/migrate-v1.mdx b/services/www/src/docs/content/migrate-v1.mdx similarity index 100% rename from packages/www/src/docs/content/migrate-v1.mdx rename to services/www/src/docs/content/migrate-v1.mdx diff --git a/packages/www/src/docs/content/models.mdx b/services/www/src/docs/content/models.mdx similarity index 100% rename from packages/www/src/docs/content/models.mdx rename to services/www/src/docs/content/models.mdx diff --git a/packages/www/src/docs/content/permissions.mdx b/services/www/src/docs/content/permissions.mdx similarity index 100% rename from packages/www/src/docs/content/permissions.mdx rename to services/www/src/docs/content/permissions.mdx diff --git a/packages/www/src/docs/content/plugins.mdx b/services/www/src/docs/content/plugins.mdx similarity index 100% rename from packages/www/src/docs/content/plugins.mdx rename to services/www/src/docs/content/plugins.mdx diff --git a/packages/www/src/docs/content/providers.mdx b/services/www/src/docs/content/providers.mdx similarity index 100% rename from packages/www/src/docs/content/providers.mdx rename to services/www/src/docs/content/providers.mdx diff --git a/packages/www/src/docs/content/references.mdx b/services/www/src/docs/content/references.mdx similarity index 100% rename from packages/www/src/docs/content/references.mdx rename to services/www/src/docs/content/references.mdx diff --git a/packages/www/src/docs/content/sharing.mdx b/services/www/src/docs/content/sharing.mdx similarity index 100% rename from packages/www/src/docs/content/sharing.mdx rename to services/www/src/docs/content/sharing.mdx diff --git a/packages/www/src/docs/content/skills.mdx b/services/www/src/docs/content/skills.mdx similarity index 100% rename from packages/www/src/docs/content/skills.mdx rename to services/www/src/docs/content/skills.mdx diff --git a/packages/www/src/docs/content/snapshots.mdx b/services/www/src/docs/content/snapshots.mdx similarity index 100% rename from packages/www/src/docs/content/snapshots.mdx rename to services/www/src/docs/content/snapshots.mdx diff --git a/packages/www/src/docs/content/themes.mdx b/services/www/src/docs/content/themes.mdx similarity index 100% rename from packages/www/src/docs/content/themes.mdx rename to services/www/src/docs/content/themes.mdx diff --git a/packages/www/src/docs/content/troubleshooting.mdx b/services/www/src/docs/content/troubleshooting.mdx similarity index 100% rename from packages/www/src/docs/content/troubleshooting.mdx rename to services/www/src/docs/content/troubleshooting.mdx diff --git a/packages/www/src/docs/content/warming.mdx b/services/www/src/docs/content/warming.mdx similarity index 100% rename from packages/www/src/docs/content/warming.mdx rename to services/www/src/docs/content/warming.mdx diff --git a/packages/www/src/docs/layouts/DocsLayout.astro b/services/www/src/docs/layouts/DocsLayout.astro similarity index 100% rename from packages/www/src/docs/layouts/DocsLayout.astro rename to services/www/src/docs/layouts/DocsLayout.astro diff --git a/packages/www/src/docs/lib/llms.ts b/services/www/src/docs/lib/llms.ts similarity index 100% rename from packages/www/src/docs/lib/llms.ts rename to services/www/src/docs/lib/llms.ts diff --git a/packages/www/src/docs/lib/navigation.ts b/services/www/src/docs/lib/navigation.ts similarity index 100% rename from packages/www/src/docs/lib/navigation.ts rename to services/www/src/docs/lib/navigation.ts diff --git a/packages/www/src/docs/lib/openapi.ts b/services/www/src/docs/lib/openapi.ts similarity index 100% rename from packages/www/src/docs/lib/openapi.ts rename to services/www/src/docs/lib/openapi.ts diff --git a/packages/www/src/docs/remark-links.ts b/services/www/src/docs/remark-links.ts similarity index 100% rename from packages/www/src/docs/remark-links.ts rename to services/www/src/docs/remark-links.ts diff --git a/packages/www/src/docs/styles/global.css b/services/www/src/docs/styles/global.css similarity index 100% rename from packages/www/src/docs/styles/global.css rename to services/www/src/docs/styles/global.css diff --git a/packages/www/src/pages/docs-index/[...slug].astro b/services/www/src/pages/docs-index/[...slug].astro similarity index 100% rename from packages/www/src/pages/docs-index/[...slug].astro rename to services/www/src/pages/docs-index/[...slug].astro diff --git a/packages/www/src/pages/docs/[...slug].astro b/services/www/src/pages/docs/[...slug].astro similarity index 100% rename from packages/www/src/pages/docs/[...slug].astro rename to services/www/src/pages/docs/[...slug].astro diff --git a/packages/www/src/pages/docs/api/index.astro b/services/www/src/pages/docs/api/index.astro similarity index 100% rename from packages/www/src/pages/docs/api/index.astro rename to services/www/src/pages/docs/api/index.astro diff --git a/packages/www/src/pages/index.astro b/services/www/src/pages/index.astro similarity index 100% rename from packages/www/src/pages/index.astro rename to services/www/src/pages/index.astro diff --git a/packages/www/src/pages/install.astro b/services/www/src/pages/install.astro similarity index 100% rename from packages/www/src/pages/install.astro rename to services/www/src/pages/install.astro diff --git a/packages/www/src/pages/llms.txt.ts b/services/www/src/pages/llms.txt.ts similarity index 100% rename from packages/www/src/pages/llms.txt.ts rename to services/www/src/pages/llms.txt.ts diff --git a/packages/www/tsconfig.json b/services/www/tsconfig.json similarity index 100% rename from packages/www/tsconfig.json rename to services/www/tsconfig.json diff --git a/packages/www/wrangler.jsonc b/services/www/wrangler.jsonc similarity index 100% rename from packages/www/wrangler.jsonc rename to services/www/wrangler.jsonc