diff --git a/.github/workflows/opencode.yml b/.github/workflows/opencode.yml index 44c8d4a58..4c75ad2e0 100644 --- a/.github/workflows/opencode.yml +++ b/.github/workflows/opencode.yml @@ -29,5 +29,6 @@ jobs: uses: sst/opencode/github@latest env: OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }} + OPENCODE_PERMISSION: '{"bash": "deny"}' with: model: opencode/claude-haiku-4-5 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index eea0e21ae..14078661c 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -55,7 +55,7 @@ jobs: - name: Install OpenCode if: inputs.bump || inputs.version - run: curl -fsSL https://opencode.ai/install | bash + run: bun i -g opencode-ai@1.0.143 - name: Login to GitHub Container Registry uses: docker/login-action@v3 diff --git a/.opencode/opencode.jsonc b/.opencode/opencode.jsonc index dc0bee7c3..fe70e35fa 100644 --- a/.opencode/opencode.jsonc +++ b/.opencode/opencode.jsonc @@ -1,6 +1,6 @@ { "$schema": "https://opencode.ai/config.json", - "plugin": ["opencode-openai-codex-auth"], + // "plugin": ["opencode-openai-codex-auth"], // "enterprise": { // "url": "https://enterprise.dev.opencode.ai", // }, @@ -10,17 +10,4 @@ "options": {}, }, }, - "mcp": { - "exa": { - "type": "remote", - "url": "https://mcp.exa.ai/mcp", - }, - "morph": { - "type": "local", - "command": ["bunx", "@morphllm/morphmcp"], - "environment": { - "ENABLED_TOOLS": "warp_grep", - }, - }, - }, } diff --git a/bun.lock b/bun.lock index bb83e7682..e775f2df8 100644 --- a/bun.lock +++ b/bun.lock @@ -20,7 +20,7 @@ }, "packages/console/app": { "name": "@opencode-ai/console-app", - "version": "1.0.143", + "version": "1.0.146", "dependencies": { "@cloudflare/vite-plugin": "1.15.2", "@ibm/plex": "6.4.1", @@ -48,7 +48,7 @@ }, "packages/console/core": { "name": "@opencode-ai/console-core", - "version": "1.0.143", + "version": "1.0.146", "dependencies": { "@aws-sdk/client-sts": "3.782.0", "@jsx-email/render": "1.1.1", @@ -75,7 +75,7 @@ }, "packages/console/function": { "name": "@opencode-ai/console-function", - "version": "1.0.143", + "version": "1.0.146", "dependencies": { "@ai-sdk/anthropic": "2.0.0", "@ai-sdk/openai": "2.0.2", @@ -99,7 +99,7 @@ }, "packages/console/mail": { "name": "@opencode-ai/console-mail", - "version": "1.0.143", + "version": "1.0.146", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", @@ -123,7 +123,7 @@ }, "packages/desktop": { "name": "@opencode-ai/desktop", - "version": "1.0.143", + "version": "1.0.146", "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/sdk": "workspace:*", @@ -168,7 +168,7 @@ }, "packages/enterprise": { "name": "@opencode-ai/enterprise", - "version": "1.0.143", + "version": "1.0.146", "dependencies": { "@opencode-ai/ui": "workspace:*", "@opencode-ai/util": "workspace:*", @@ -179,6 +179,7 @@ "aws4fetch": "^1.0.20", "hono": "catalog:", "hono-openapi": "catalog:", + "js-base64": "3.7.7", "luxon": "catalog:", "nitro": "3.0.1-alpha.1", "solid-js": "catalog:", @@ -196,7 +197,7 @@ }, "packages/function": { "name": "@opencode-ai/function", - "version": "1.0.143", + "version": "1.0.146", "dependencies": { "@octokit/auth-app": "8.0.1", "@octokit/rest": "22.0.0", @@ -212,7 +213,7 @@ }, "packages/opencode": { "name": "opencode", - "version": "1.0.143", + "version": "1.0.146", "bin": { "opencode": "./bin/opencode", }, @@ -304,7 +305,7 @@ }, "packages/plugin": { "name": "@opencode-ai/plugin", - "version": "1.0.143", + "version": "1.0.146", "dependencies": { "@opencode-ai/sdk": "workspace:*", "zod": "catalog:", @@ -324,7 +325,7 @@ }, "packages/sdk/js": { "name": "@opencode-ai/sdk", - "version": "1.0.143", + "version": "1.0.146", "devDependencies": { "@hey-api/openapi-ts": "0.88.1", "@tsconfig/node22": "catalog:", @@ -335,7 +336,7 @@ }, "packages/slack": { "name": "@opencode-ai/slack", - "version": "1.0.143", + "version": "1.0.146", "dependencies": { "@opencode-ai/sdk": "workspace:*", "@slack/bolt": "^3.17.1", @@ -348,7 +349,7 @@ }, "packages/tauri": { "name": "@opencode-ai/tauri", - "version": "1.0.143", + "version": "1.0.146", "dependencies": { "@opencode-ai/desktop": "workspace:*", "@tauri-apps/api": "^2", @@ -370,7 +371,7 @@ }, "packages/ui": { "name": "@opencode-ai/ui", - "version": "1.0.143", + "version": "1.0.146", "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/sdk": "workspace:*", @@ -402,7 +403,7 @@ }, "packages/util": { "name": "@opencode-ai/util", - "version": "1.0.143", + "version": "1.0.146", "dependencies": { "zod": "catalog:", }, @@ -413,7 +414,7 @@ }, "packages/web": { "name": "@opencode-ai/web", - "version": "1.0.143", + "version": "1.0.146", "dependencies": { "@astrojs/cloudflare": "12.6.3", "@astrojs/markdown-remark": "6.3.1", diff --git a/infra/enterprise.ts b/infra/enterprise.ts index 70693846a..22b4c6f44 100644 --- a/infra/enterprise.ts +++ b/infra/enterprise.ts @@ -1,10 +1,10 @@ import { SECRET } from "./secret" -import { domain } from "./stage" +import { domain, shortDomain } from "./stage" const storage = new sst.cloudflare.Bucket("EnterpriseStorage") -const enterprise = new sst.cloudflare.x.SolidStart("Enterprise", { - domain: "enterprise." + domain, +const teams = new sst.cloudflare.x.SolidStart("Teams", { + domain: shortDomain, path: "packages/enterprise", buildCommand: "bun run build:cloudflare", environment: { diff --git a/infra/stage.ts b/infra/stage.ts index 729422905..f9a6fd755 100644 --- a/infra/stage.ts +++ b/infra/stage.ts @@ -11,3 +11,9 @@ new cloudflare.RegionalHostname("RegionalHostname", { regionKey: "us", zoneId: zoneID, }) + +export const shortDomain = (() => { + if ($app.stage === "production") return "opncd.ai" + if ($app.stage === "dev") return "dev.opncd.ai" + return `${$app.stage}.dev.opncd.ai` +})() diff --git a/nix/hashes.json b/nix/hashes.json index ee38c07f5..84fe54493 100644 --- a/nix/hashes.json +++ b/nix/hashes.json @@ -1,3 +1,3 @@ { - "nodeModules": "sha256-WQMQmqKojxdRtwv6KL9HBaDfwYa4qPn2pvXKqgNM73A=" + "nodeModules": "sha256-WcFRAG8w1XwgZxzyAawkQ7mYfJxu5VhA3sPApEG6FdI=" } diff --git a/package.json b/package.json index 4579a06f3..39733b931 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "AI-powered development tool", "private": true, "type": "module", - "packageManager": "bun@1.3.4", + "packageManager": "bun@1.3.3", "scripts": { "dev": "bun run --cwd packages/opencode --conditions=browser src/index.ts", "typecheck": "bun turbo typecheck", diff --git a/packages/console/app/package.json b/packages/console/app/package.json index 96a47a46c..0dcc6e4af 100644 --- a/packages/console/app/package.json +++ b/packages/console/app/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-app", - "version": "1.0.143", + "version": "1.0.146", "type": "module", "scripts": { "typecheck": "tsgo --noEmit", diff --git a/packages/console/app/src/routes/t/[...path].tsx b/packages/console/app/src/routes/t/[...path].tsx new file mode 100644 index 000000000..b877a8d58 --- /dev/null +++ b/packages/console/app/src/routes/t/[...path].tsx @@ -0,0 +1,20 @@ +import type { APIEvent } from "@solidjs/start/server" + +async function handler(evt: APIEvent) { + const req = evt.request.clone() + const url = new URL(req.url) + const targetUrl = `https://enterprise.opencode.ai/${url.pathname}${url.search}` + const response = await fetch(targetUrl, { + method: req.method, + headers: req.headers, + body: req.body, + }) + return response +} + +export const GET = handler +export const POST = handler +export const PUT = handler +export const DELETE = handler +export const OPTIONS = handler +export const PATCH = handler diff --git a/packages/console/core/package.json b/packages/console/core/package.json index 5540ed2e1..814694f9f 100644 --- a/packages/console/core/package.json +++ b/packages/console/core/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/console-core", - "version": "1.0.143", + "version": "1.0.146", "private": true, "type": "module", "dependencies": { diff --git a/packages/console/function/package.json b/packages/console/function/package.json index 634d53893..f3e04ea1c 100644 --- a/packages/console/function/package.json +++ b/packages/console/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-function", - "version": "1.0.143", + "version": "1.0.146", "$schema": "https://json.schemastore.org/package.json", "private": true, "type": "module", diff --git a/packages/console/mail/package.json b/packages/console/mail/package.json index d289b290f..0707ce883 100644 --- a/packages/console/mail/package.json +++ b/packages/console/mail/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-mail", - "version": "1.0.143", + "version": "1.0.146", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", diff --git a/packages/desktop/package.json b/packages/desktop/package.json index 65a8f9d13..6cd02b9ae 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/desktop", - "version": "1.0.143", + "version": "1.0.146", "description": "", "type": "module", "exports": { diff --git a/packages/desktop/tsconfig.json b/packages/desktop/tsconfig.json index e91a254de..db04f79ca 100644 --- a/packages/desktop/tsconfig.json +++ b/packages/desktop/tsconfig.json @@ -14,11 +14,11 @@ "strict": true, "noEmit": false, "emitDeclarationOnly": true, - "outDir": "ts-dist", + "outDir": "node_modules/.ts-dist", "isolatedModules": true, "paths": { "@/*": ["./src/*"] } }, - "exclude": ["dist"] + "exclude": ["dist", "ts-dist"] } diff --git a/packages/enterprise/package.json b/packages/enterprise/package.json index cba02388e..b273507e0 100644 --- a/packages/enterprise/package.json +++ b/packages/enterprise/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/enterprise", - "version": "1.0.143", + "version": "1.0.146", "private": true, "type": "module", "scripts": { @@ -20,6 +20,7 @@ "@solidjs/meta": "catalog:", "hono": "catalog:", "hono-openapi": "catalog:", + "js-base64": "3.7.7", "luxon": "catalog:", "nitro": "3.0.1-alpha.1", "solid-js": "catalog:", diff --git a/packages/enterprise/src/entry-server.tsx b/packages/enterprise/src/entry-server.tsx index 68f4325c8..fbe5e6e0b 100644 --- a/packages/enterprise/src/entry-server.tsx +++ b/packages/enterprise/src/entry-server.tsx @@ -11,8 +11,6 @@ export default createHandler(() => (