diff options
| author | Dax Raad <[email protected]> | 2025-09-09 23:43:37 -0400 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-09-09 23:44:04 -0400 |
| commit | 38e8c42cf02f73fb300889ab989088899a3aedb7 (patch) | |
| tree | 313db96535cf136cc1032618b43462c1f2f0e14c /packages | |
| parent | 58fe88432714456350244ebbea1e6287d3dccb36 (diff) | |
| download | opencode-38e8c42cf02f73fb300889ab989088899a3aedb7.tar.gz opencode-38e8c42cf02f73fb300889ab989088899a3aedb7.zip | |
ci: format
Diffstat (limited to 'packages')
39 files changed, 504 insertions, 585 deletions
diff --git a/packages/function/sst-env.d.ts b/packages/function/sst-env.d.ts index fd96591b8..11bc7adea 100644 --- a/packages/function/sst-env.d.ts +++ b/packages/function/sst-env.d.ts @@ -6,87 +6,87 @@ import "sst" declare module "sst" { export interface Resource { - "ANTHROPIC_API_KEY": { - "type": "sst.sst.Secret" - "value": string - } - "AUTH_API_URL": { - "type": "sst.sst.Linkable" - "value": string - } - "BASETEN_API_KEY": { - "type": "sst.sst.Secret" - "value": string - } - "Console": { - "type": "sst.cloudflare.SolidStart" - "url": string - } - "Database": { - "database": string - "host": string - "password": string - "port": number - "type": "sst.sst.Linkable" - "username": string - } - "GITHUB_APP_ID": { - "type": "sst.sst.Secret" - "value": string - } - "GITHUB_APP_PRIVATE_KEY": { - "type": "sst.sst.Secret" - "value": string - } - "GITHUB_CLIENT_ID_CONSOLE": { - "type": "sst.sst.Secret" - "value": string - } - "GITHUB_CLIENT_SECRET_CONSOLE": { - "type": "sst.sst.Secret" - "value": string - } - "GOOGLE_CLIENT_ID": { - "type": "sst.sst.Secret" - "value": string - } - "HONEYCOMB_API_KEY": { - "type": "sst.sst.Secret" - "value": string - } - "OPENAI_API_KEY": { - "type": "sst.sst.Secret" - "value": string - } - "STRIPE_SECRET_KEY": { - "type": "sst.sst.Secret" - "value": string - } - "STRIPE_WEBHOOK_SECRET": { - "type": "sst.sst.Linkable" - "value": string - } - "Web": { - "type": "sst.cloudflare.Astro" - "url": string - } - "XAI_API_KEY": { - "type": "sst.sst.Secret" - "value": string + ANTHROPIC_API_KEY: { + type: "sst.sst.Secret" + value: string + } + AUTH_API_URL: { + type: "sst.sst.Linkable" + value: string + } + BASETEN_API_KEY: { + type: "sst.sst.Secret" + value: string + } + Console: { + type: "sst.cloudflare.SolidStart" + url: string + } + Database: { + database: string + host: string + password: string + port: number + type: "sst.sst.Linkable" + username: string + } + GITHUB_APP_ID: { + type: "sst.sst.Secret" + value: string + } + GITHUB_APP_PRIVATE_KEY: { + type: "sst.sst.Secret" + value: string + } + GITHUB_CLIENT_ID_CONSOLE: { + type: "sst.sst.Secret" + value: string + } + GITHUB_CLIENT_SECRET_CONSOLE: { + type: "sst.sst.Secret" + value: string + } + GOOGLE_CLIENT_ID: { + type: "sst.sst.Secret" + value: string + } + HONEYCOMB_API_KEY: { + type: "sst.sst.Secret" + value: string + } + OPENAI_API_KEY: { + type: "sst.sst.Secret" + value: string + } + STRIPE_SECRET_KEY: { + type: "sst.sst.Secret" + value: string + } + STRIPE_WEBHOOK_SECRET: { + type: "sst.sst.Linkable" + value: string + } + Web: { + type: "sst.cloudflare.Astro" + url: string + } + XAI_API_KEY: { + type: "sst.sst.Secret" + value: string } } } -// cloudflare -import * as cloudflare from "@cloudflare/workers-types"; +// cloudflare +import * as cloudflare from "@cloudflare/workers-types" declare module "sst" { export interface Resource { - "Api": cloudflare.Service - "AuthApi": cloudflare.Service - "AuthStorage": cloudflare.KVNamespace - "Bucket": cloudflare.R2Bucket - "LogProcessor": cloudflare.Service + Api: cloudflare.Service + AuthApi: cloudflare.Service + AuthStorage: cloudflare.KVNamespace + Bucket: cloudflare.R2Bucket + LogProcessor: cloudflare.Service } } import "sst" -export {}
\ No newline at end of file +export {} diff --git a/packages/opencode/src/file/fzf.ts b/packages/opencode/src/file/fzf.ts index 7a481b0fe..3b7320279 100644 --- a/packages/opencode/src/file/fzf.ts +++ b/packages/opencode/src/file/fzf.ts @@ -46,10 +46,7 @@ export namespace Fzf { log.info("found", { filepath }) return { filepath } } - filepath = path.join( - Global.Path.bin, - "fzf" + (process.platform === "win32" ? ".exe" : ""), - ) + filepath = path.join(Global.Path.bin, "fzf" + (process.platform === "win32" ? ".exe" : "")) const file = Bun.file(filepath) if (!(await file.exists())) { @@ -57,18 +54,15 @@ export namespace Fzf { const arch = archMap[process.arch as keyof typeof archMap] ?? "amd64" const config = PLATFORM[process.platform as keyof typeof PLATFORM] - if (!config) - throw new UnsupportedPlatformError({ platform: process.platform }) + if (!config) throw new UnsupportedPlatformError({ platform: process.platform }) const version = VERSION - const platformName = - process.platform === "win32" ? "windows" : process.platform + const platformName = process.platform === "win32" ? "windows" : process.platform const filename = `fzf-${version}-${platformName}_${arch}.${config.extension}` const url = `https://github.com/junegunn/fzf/releases/download/v${version}/${filename}` const response = await fetch(url) - if (!response.ok) - throw new DownloadFailedError({ url, status: response.status }) + if (!response.ok) throw new DownloadFailedError({ url, status: response.status }) const buffer = await response.arrayBuffer() const archivePath = path.join(Global.Path.bin, filename) @@ -87,13 +81,13 @@ export namespace Fzf { }) } if (config.extension === "zip") { - const zipFileReader = new ZipReader(new BlobReader(new Blob([await Bun.file(archivePath).arrayBuffer()]))); - const entries = await zipFileReader.getEntries(); - let fzfEntry: any; + const zipFileReader = new ZipReader(new BlobReader(new Blob([await Bun.file(archivePath).arrayBuffer()]))) + const entries = await zipFileReader.getEntries() + let fzfEntry: any for (const entry of entries) { if (entry.filename === "fzf.exe") { - fzfEntry = entry; - break; + fzfEntry = entry + break } } @@ -101,18 +95,18 @@ export namespace Fzf { throw new ExtractionFailedError({ filepath: archivePath, stderr: "fzf.exe not found in zip archive", - }); + }) } - const fzfBlob = await fzfEntry.getData(new BlobWriter()); + const fzfBlob = await fzfEntry.getData(new BlobWriter()) if (!fzfBlob) { throw new ExtractionFailedError({ filepath: archivePath, stderr: "Failed to extract fzf.exe from zip archive", - }); + }) } - await Bun.write(filepath, await fzfBlob.arrayBuffer()); - await zipFileReader.close(); + await Bun.write(filepath, await fzfBlob.arrayBuffer()) + await zipFileReader.close() } await fs.unlink(archivePath) if (process.platform !== "win32") await fs.chmod(filepath, 0o755) @@ -127,4 +121,4 @@ export namespace Fzf { const { filepath } = await state() return filepath } -}
\ No newline at end of file +} diff --git a/packages/opencode/src/file/time.ts b/packages/opencode/src/file/time.ts index ab973bd3d..5cba5e820 100644 --- a/packages/opencode/src/file/time.ts +++ b/packages/opencode/src/file/time.ts @@ -3,18 +3,16 @@ import { Log } from "../util/log" export namespace FileTime { const log = Log.create({ service: "file.time" }) - export const state = Instance.state( - () => { - const read: { - [sessionID: string]: { - [path: string]: Date | undefined - } - } = {} - return { - read, + export const state = Instance.state(() => { + const read: { + [sessionID: string]: { + [path: string]: Date | undefined } - }, - ) + } = {} + return { + read, + } + }) export function read(sessionID: string, file: string) { log.info("read", { sessionID, file }) diff --git a/packages/opencode/src/plugin/index.ts b/packages/opencode/src/plugin/index.ts index 0f0689b50..71be1cd40 100644 --- a/packages/opencode/src/plugin/index.ts +++ b/packages/opencode/src/plugin/index.ts @@ -25,8 +25,8 @@ export namespace Plugin { worktree: Instance.worktree, directory: Instance.directory, $: Bun.$, - Tool: await import("../tool/tool").then(m => m.Tool), - z: await import("zod").then(m => m.z), + Tool: await import("../tool/tool").then((m) => m.Tool), + z: await import("zod").then((m) => m.z), } const plugins = [...(config.plugin ?? [])] if (!Flag.OPENCODE_DISABLE_DEFAULT_PLUGINS) { @@ -79,10 +79,13 @@ export namespace Plugin { for (const hook of hooks) { await hook.config?.(config) // Let plugins register tools at startup - await hook["tool.register"]?.({}, { - registerHTTP: ToolRegistry.registerHTTP, - register: ToolRegistry.register - }) + await hook["tool.register"]?.( + {}, + { + registerHTTP: ToolRegistry.registerHTTP, + register: ToolRegistry.register, + }, + ) } Bus.subscribeAll(async (input) => { const hooks = await state().then((x) => x.hooks) diff --git a/packages/opencode/src/tool/edit.ts b/packages/opencode/src/tool/edit.ts index f4fd87feb..64a0ea167 100644 --- a/packages/opencode/src/tool/edit.ts +++ b/packages/opencode/src/tool/edit.ts @@ -623,5 +623,7 @@ export function replace(content: string, oldString: string, newString: string, r if (notFound) { throw new Error("oldString not found in content") } - throw new Error("oldString found multiple times and requires more code context to uniquely identify the intended match") + throw new Error( + "oldString found multiple times and requires more code context to uniquely identify the intended match", + ) } diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index f1211bf95..f4ca584c8 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -71,9 +71,7 @@ export namespace ToolRegistry { break case "array": if (!val.items) throw new Error(`array spec for ${key} requires 'items'`) - base = z.array( - val.items === "string" ? z.string() : val.items === "number" ? z.number() : z.boolean(), - ) + base = z.array(val.items === "string" ? z.string() : val.items === "number" ? z.number() : z.boolean()) break default: base = z.any() diff --git a/packages/opencode/src/tool/todo.ts b/packages/opencode/src/tool/todo.ts index abc720f0c..96404458c 100644 --- a/packages/opencode/src/tool/todo.ts +++ b/packages/opencode/src/tool/todo.ts @@ -11,14 +11,12 @@ const TodoInfo = z.object({ }) type TodoInfo = z.infer<typeof TodoInfo> -const state = Instance.state( - () => { - const todos: { - [sessionId: string]: TodoInfo[] - } = {} - return todos - }, -) +const state = Instance.state(() => { + const todos: { + [sessionId: string]: TodoInfo[] + } = {} + return todos +}) export const TodoWriteTool = Tool.define("todowrite", { description: DESCRIPTION_WRITE, diff --git a/packages/opencode/sst-env.d.ts b/packages/opencode/sst-env.d.ts index b6a7e9066..0397645b5 100644 --- a/packages/opencode/sst-env.d.ts +++ b/packages/opencode/sst-env.d.ts @@ -6,4 +6,4 @@ /// <reference path="../../sst-env.d.ts" /> import "sst" -export {}
\ No newline at end of file +export {} diff --git a/packages/opencode/test/bun.test.ts b/packages/opencode/test/bun.test.ts index 18f0db6bf..d607ae478 100644 --- a/packages/opencode/test/bun.test.ts +++ b/packages/opencode/test/bun.test.ts @@ -7,7 +7,7 @@ describe("BunProc registry configuration", () => { // Read the bun/index.ts file const bunIndexPath = path.join(__dirname, "../src/bun/index.ts") const content = await fs.readFile(bunIndexPath, "utf-8") - + // Verify that no hardcoded registry is present expect(content).not.toContain("--registry=") expect(content).not.toContain("hasNpmRcConfig") @@ -18,7 +18,7 @@ describe("BunProc registry configuration", () => { // Read the bun/index.ts file const bunIndexPath = path.join(__dirname, "../src/bun/index.ts") const content = await fs.readFile(bunIndexPath, "utf-8") - + // Verify that it uses Bun's default resolution expect(content).toContain("Bun's default registry resolution") expect(content).toContain("Bun will use them automatically") @@ -29,22 +29,22 @@ describe("BunProc registry configuration", () => { // Read the bun/index.ts file const bunIndexPath = path.join(__dirname, "../src/bun/index.ts") const content = await fs.readFile(bunIndexPath, "utf-8") - + // Extract the install function const installFunctionMatch = content.match(/export async function install[\s\S]*?^ }/m) expect(installFunctionMatch).toBeTruthy() - + if (installFunctionMatch) { const installFunction = installFunctionMatch[0] - + // Verify expected arguments are present expect(installFunction).toContain('"add"') expect(installFunction).toContain('"--force"') expect(installFunction).toContain('"--exact"') expect(installFunction).toContain('"--cwd"') - expect(installFunction).toContain('Global.Path.cache') + expect(installFunction).toContain("Global.Path.cache") expect(installFunction).toContain('pkg + "@" + version') - + // Verify no registry argument is added expect(installFunction).not.toContain('"--registry"') expect(installFunction).not.toContain('args.push("--registry') diff --git a/packages/opencode/tsconfig.json b/packages/opencode/tsconfig.json index 605c85669..a6d7592d3 100644 --- a/packages/opencode/tsconfig.json +++ b/packages/opencode/tsconfig.json @@ -2,13 +2,7 @@ "$schema": "https://json.schemastore.org/tsconfig", "extends": "@tsconfig/bun/tsconfig.json", "compilerOptions": { - "lib": [ - "ESNext", - "DOM", - "DOM.Iterable" - ], - "customConditions": [ - "development" - ] + "lib": ["ESNext", "DOM", "DOM.Iterable"], + "customConditions": ["development"] } } diff --git a/packages/plugin/src/index.ts b/packages/plugin/src/index.ts index fca176f57..f8b6d46f7 100644 --- a/packages/plugin/src/index.ts +++ b/packages/plugin/src/index.ts @@ -19,10 +19,7 @@ export type PluginInput = { worktree: string $: BunShell Tool: { - define( - id: string, - init: any | (() => Promise<any>) - ): any + define(id: string, init: any | (() => Promise<any>)): any } z: any // Zod instance for creating schemas } @@ -133,7 +130,7 @@ export interface Hooks { input: {}, output: { registerHTTP: (tool: HttpToolRegistration) => void | Promise<void> - register: (tool: any) => void | Promise<void> // Tool.Info type from opencode + register: (tool: any) => void | Promise<void> // Tool.Info type from opencode }, ) => Promise<void> } diff --git a/packages/plugin/sst-env.d.ts b/packages/plugin/sst-env.d.ts index b6a7e9066..0397645b5 100644 --- a/packages/plugin/sst-env.d.ts +++ b/packages/plugin/sst-env.d.ts @@ -6,4 +6,4 @@ /// <reference path="../../sst-env.d.ts" /> import "sst" -export {}
\ No newline at end of file +export {} diff --git a/packages/plugin/tsconfig.json b/packages/plugin/tsconfig.json index 519519408..e86e08fdf 100644 --- a/packages/plugin/tsconfig.json +++ b/packages/plugin/tsconfig.json @@ -6,16 +6,8 @@ "module": "preserve", "declaration": true, "moduleResolution": "bundler", - "lib": [ - "es2022", - "dom", - "dom.iterable" - ], - "customConditions": [ - "development" - ] + "lib": ["es2022", "dom", "dom.iterable"], + "customConditions": ["development"] }, - "include": [ - "src" - ] + "include": ["src"] } diff --git a/packages/sdk/go/.github/workflows/ci.yml b/packages/sdk/go/.github/workflows/ci.yml index 4bf1e907c..0f5d45dc2 100644 --- a/packages/sdk/go/.github/workflows/ci.yml +++ b/packages/sdk/go/.github/workflows/ci.yml @@ -2,15 +2,15 @@ name: CI on: push: branches-ignore: - - 'generated' - - 'codegen/**' - - 'integrated/**' - - 'stl-preview-head/**' - - 'stl-preview-base/**' + - "generated" + - "codegen/**" + - "integrated/**" + - "stl-preview-head/**" + - "stl-preview-base/**" pull_request: branches-ignore: - - 'stl-preview-head/**' - - 'stl-preview-base/**' + - "stl-preview-head/**" + - "stl-preview-base/**" jobs: lint: diff --git a/packages/sdk/go/.release-please-manifest.json b/packages/sdk/go/.release-please-manifest.json index 6538ca917..64f3cdd64 100644 --- a/packages/sdk/go/.release-please-manifest.json +++ b/packages/sdk/go/.release-please-manifest.json @@ -1,3 +1,3 @@ { ".": "0.8.0" -}
\ No newline at end of file +} diff --git a/packages/sdk/go/CHANGELOG.md b/packages/sdk/go/CHANGELOG.md index 014933da8..c0ea4a073 100644 --- a/packages/sdk/go/CHANGELOG.md +++ b/packages/sdk/go/CHANGELOG.md @@ -6,7 +6,7 @@ Full Changelog: [v0.7.0...v0.8.0](https://github.com/sst/opencode-sdk-go/compare ### Features -* **api:** api update ([ae87a71](https://github.com/sst/opencode-sdk-go/commit/ae87a71949994590ace8285a39f0991ef34b664d)) +- **api:** api update ([ae87a71](https://github.com/sst/opencode-sdk-go/commit/ae87a71949994590ace8285a39f0991ef34b664d)) ## 0.7.0 (2025-09-01) @@ -14,7 +14,7 @@ Full Changelog: [v0.6.0...v0.7.0](https://github.com/sst/opencode-sdk-go/compare ### Features -* **api:** api update ([64bb1b1](https://github.com/sst/opencode-sdk-go/commit/64bb1b1ee0cbe153abc6fb7bd9703b47911724d4)) +- **api:** api update ([64bb1b1](https://github.com/sst/opencode-sdk-go/commit/64bb1b1ee0cbe153abc6fb7bd9703b47911724d4)) ## 0.6.0 (2025-09-01) @@ -22,7 +22,7 @@ Full Changelog: [v0.5.0...v0.6.0](https://github.com/sst/opencode-sdk-go/compare ### Features -* **api:** api update ([928e384](https://github.com/sst/opencode-sdk-go/commit/928e3843355f96899f046f002b84372281dad0c8)) +- **api:** api update ([928e384](https://github.com/sst/opencode-sdk-go/commit/928e3843355f96899f046f002b84372281dad0c8)) ## 0.5.0 (2025-08-31) @@ -30,7 +30,7 @@ Full Changelog: [v0.4.0...v0.5.0](https://github.com/sst/opencode-sdk-go/compare ### Features -* **api:** api update ([44b281d](https://github.com/sst/opencode-sdk-go/commit/44b281d0bb39c5022a984ac9d0fca1529ccc0604)) +- **api:** api update ([44b281d](https://github.com/sst/opencode-sdk-go/commit/44b281d0bb39c5022a984ac9d0fca1529ccc0604)) ## 0.4.0 (2025-08-31) @@ -38,7 +38,7 @@ Full Changelog: [v0.3.0...v0.4.0](https://github.com/sst/opencode-sdk-go/compare ### Features -* **api:** api update ([fa9d6ec](https://github.com/sst/opencode-sdk-go/commit/fa9d6ec6472e62f4f6605d0a71a7aa8bf8a24559)) +- **api:** api update ([fa9d6ec](https://github.com/sst/opencode-sdk-go/commit/fa9d6ec6472e62f4f6605d0a71a7aa8bf8a24559)) ## 0.3.0 (2025-08-31) @@ -46,7 +46,7 @@ Full Changelog: [v0.2.0...v0.3.0](https://github.com/sst/opencode-sdk-go/compare ### Features -* **api:** api update ([aae1c06](https://github.com/sst/opencode-sdk-go/commit/aae1c06bb5a93a1cd9c589846a84b3f16246f5da)) +- **api:** api update ([aae1c06](https://github.com/sst/opencode-sdk-go/commit/aae1c06bb5a93a1cd9c589846a84b3f16246f5da)) ## 0.2.0 (2025-08-31) @@ -54,7 +54,7 @@ Full Changelog: [v0.1.0...v0.2.0](https://github.com/sst/opencode-sdk-go/compare ### Features -* **api:** api update ([1472790](https://github.com/sst/opencode-sdk-go/commit/1472790542515f47bd46e2a9e28d8afea024cf9c)) +- **api:** api update ([1472790](https://github.com/sst/opencode-sdk-go/commit/1472790542515f47bd46e2a9e28d8afea024cf9c)) ## 0.1.0 (2025-08-31) @@ -62,61 +62,59 @@ Full Changelog: [v0.0.1...v0.1.0](https://github.com/sst/opencode-sdk-go/compare ### Features -* **api:** api update ([3f03ddd](https://github.com/sst/opencode-sdk-go/commit/3f03dddd5ec0de98f99ce48679077dcae9ceffd6)) -* **api:** api update ([e9f79c4](https://github.com/sst/opencode-sdk-go/commit/e9f79c4792b21ef64ab0431ffd76f5a71e04d182)) -* **api:** api update ([139a686](https://github.com/sst/opencode-sdk-go/commit/139a6862d2f0ab0c8ea791663d736868be3e96e6)) -* **api:** api update ([2ed0800](https://github.com/sst/opencode-sdk-go/commit/2ed0800b2c5b99877e9f7fde669a6c005fad6b77)) -* **api:** api update ([88a87a4](https://github.com/sst/opencode-sdk-go/commit/88a87a458f56ce0c18b502c73da933f614f56e8b)) -* **api:** api update ([0e5d65b](https://github.com/sst/opencode-sdk-go/commit/0e5d65b571e7b30dc6347e6730098878ebba3a42)) -* **api:** api update ([ba381f1](https://github.com/sst/opencode-sdk-go/commit/ba381f1e07aad24e9824df7d53befae2a644f69f)) -* **api:** api update ([3f429f5](https://github.com/sst/opencode-sdk-go/commit/3f429f5b4be5607433ef5fdc0d5bf67fe590d039)) -* **api:** api update ([9f34787](https://github.com/sst/opencode-sdk-go/commit/9f347876b35b7f898060c1a5f71c322e95978e3e)) -* **api:** api update ([379c8e0](https://github.com/sst/opencode-sdk-go/commit/379c8e00197e13aebaf2f2d61277b125f1f90011)) -* **api:** api update ([550511c](https://github.com/sst/opencode-sdk-go/commit/550511c4c5b5055ac8ff22b7b11731331bd9d088)) -* **api:** api update ([547f0c2](https://github.com/sst/opencode-sdk-go/commit/547f0c262f2df1ce83eaa7267d68be64bb29b841)) -* **api:** api update ([b7b0720](https://github.com/sst/opencode-sdk-go/commit/b7b07204bff314da24b1819c128835a43ef64065)) -* **api:** api update ([7250ffc](https://github.com/sst/opencode-sdk-go/commit/7250ffcba262b916c958ddecc2a42927982db39f)) -* **api:** api update ([17fbab7](https://github.com/sst/opencode-sdk-go/commit/17fbab73111a3eae488737c69b12370bc69c65f7)) -* **api:** api update ([1270b5c](https://github.com/sst/opencode-sdk-go/commit/1270b5cd81e6ac769dcd92ade6d877891bf51bd5)) -* **api:** api update ([a238d4a](https://github.com/sst/opencode-sdk-go/commit/a238d4abd6ed7d15f3547d27a4b6ecf4aec8431e)) -* **api:** api update ([7475655](https://github.com/sst/opencode-sdk-go/commit/7475655aca577fe4f807c2f02f92171f6a358e9c)) -* **api:** api update ([429d258](https://github.com/sst/opencode-sdk-go/commit/429d258bb56e9cdeb1528be3944bf5537ac26a96)) -* **api:** api update ([f250915](https://github.com/sst/opencode-sdk-go/commit/f2509157eaf1b453e741ee9482127cad2e3ace25)) -* **api:** api update ([5efc987](https://github.com/sst/opencode-sdk-go/commit/5efc987353801d1e772c20edf162b1c75da32743)) -* **api:** api update ([98a8350](https://github.com/sst/opencode-sdk-go/commit/98a83504f7cfc361e83314c3e79a4e9ff53f0560)) -* **api:** api update ([6da8bf8](https://github.com/sst/opencode-sdk-go/commit/6da8bf8bfe91d45991fb580753d77c5534fc0b1b)) -* **api:** api update ([f8c7148](https://github.com/sst/opencode-sdk-go/commit/f8c7148ae56143823186e2675a78e82676154956)) -* **api:** manual updates ([7cf038f](https://github.com/sst/opencode-sdk-go/commit/7cf038ffae5da1b77e1cef11b5fa166a53b467f2)) -* **api:** update via SDK Studio ([068a0eb](https://github.com/sst/opencode-sdk-go/commit/068a0eb025010da0c8d86fa1bb496a39dbedcef9)) -* **api:** update via SDK Studio ([ca651ed](https://github.com/sst/opencode-sdk-go/commit/ca651edaf71d1f3678f929287474f5bc4f1aad10)) -* **api:** update via SDK Studio ([13550a5](https://github.com/sst/opencode-sdk-go/commit/13550a5c65d77325e945ed99fe0799cd1107b775)) -* **api:** update via SDK Studio ([7b73730](https://github.com/sst/opencode-sdk-go/commit/7b73730c7fa62ba966dda3541c3e97b49be8d2bf)) -* **api:** update via SDK Studio ([9e39a59](https://github.com/sst/opencode-sdk-go/commit/9e39a59b3d5d1bd5e64633732521fb28362cc70e)) -* **api:** update via SDK Studio ([9609d1b](https://github.com/sst/opencode-sdk-go/commit/9609d1b1db7806d00cb846c9914cb4935cdedf52)) -* **api:** update via SDK Studio ([51315fa](https://github.com/sst/opencode-sdk-go/commit/51315fa2eae424743ea79701e67d44447c44144d)) -* **api:** update via SDK Studio ([af07955](https://github.com/sst/opencode-sdk-go/commit/af0795543240aefaf04fc7663a348825541c79ed)) -* **api:** update via SDK Studio ([5e3468a](https://github.com/sst/opencode-sdk-go/commit/5e3468a0aaa5ed3b13e019c3a24e0ba9147d1675)) -* **api:** update via SDK Studio ([0a73e04](https://github.com/sst/opencode-sdk-go/commit/0a73e04c23c90b2061611edaa8fd6282dc0ce397)) -* **api:** update via SDK Studio ([9b7883a](https://github.com/sst/opencode-sdk-go/commit/9b7883a144eeac526d9d04538e0876a9d18bb844)) -* **client:** expand max streaming buffer size ([76303e5](https://github.com/sst/opencode-sdk-go/commit/76303e51067e78e732af26ced9d83b8bad7655c3)) -* **client:** support optional json html escaping ([449748f](https://github.com/sst/opencode-sdk-go/commit/449748f35a1d8cb6f91dc36d25bf9489f4f371bd)) - +- **api:** api update ([3f03ddd](https://github.com/sst/opencode-sdk-go/commit/3f03dddd5ec0de98f99ce48679077dcae9ceffd6)) +- **api:** api update ([e9f79c4](https://github.com/sst/opencode-sdk-go/commit/e9f79c4792b21ef64ab0431ffd76f5a71e04d182)) +- **api:** api update ([139a686](https://github.com/sst/opencode-sdk-go/commit/139a6862d2f0ab0c8ea791663d736868be3e96e6)) +- **api:** api update ([2ed0800](https://github.com/sst/opencode-sdk-go/commit/2ed0800b2c5b99877e9f7fde669a6c005fad6b77)) +- **api:** api update ([88a87a4](https://github.com/sst/opencode-sdk-go/commit/88a87a458f56ce0c18b502c73da933f614f56e8b)) +- **api:** api update ([0e5d65b](https://github.com/sst/opencode-sdk-go/commit/0e5d65b571e7b30dc6347e6730098878ebba3a42)) +- **api:** api update ([ba381f1](https://github.com/sst/opencode-sdk-go/commit/ba381f1e07aad24e9824df7d53befae2a644f69f)) +- **api:** api update ([3f429f5](https://github.com/sst/opencode-sdk-go/commit/3f429f5b4be5607433ef5fdc0d5bf67fe590d039)) +- **api:** api update ([9f34787](https://github.com/sst/opencode-sdk-go/commit/9f347876b35b7f898060c1a5f71c322e95978e3e)) +- **api:** api update ([379c8e0](https://github.com/sst/opencode-sdk-go/commit/379c8e00197e13aebaf2f2d61277b125f1f90011)) +- **api:** api update ([550511c](https://github.com/sst/opencode-sdk-go/commit/550511c4c5b5055ac8ff22b7b11731331bd9d088)) +- **api:** api update ([547f0c2](https://github.com/sst/opencode-sdk-go/commit/547f0c262f2df1ce83eaa7267d68be64bb29b841)) +- **api:** api update ([b7b0720](https://github.com/sst/opencode-sdk-go/commit/b7b07204bff314da24b1819c128835a43ef64065)) +- **api:** api update ([7250ffc](https://github.com/sst/opencode-sdk-go/commit/7250ffcba262b916c958ddecc2a42927982db39f)) +- **api:** api update ([17fbab7](https://github.com/sst/opencode-sdk-go/commit/17fbab73111a3eae488737c69b12370bc69c65f7)) +- **api:** api update ([1270b5c](https://github.com/sst/opencode-sdk-go/commit/1270b5cd81e6ac769dcd92ade6d877891bf51bd5)) +- **api:** api update ([a238d4a](https://github.com/sst/opencode-sdk-go/commit/a238d4abd6ed7d15f3547d27a4b6ecf4aec8431e)) +- **api:** api update ([7475655](https://github.com/sst/opencode-sdk-go/commit/7475655aca577fe4f807c2f02f92171f6a358e9c)) +- **api:** api update ([429d258](https://github.com/sst/opencode-sdk-go/commit/429d258bb56e9cdeb1528be3944bf5537ac26a96)) +- **api:** api update ([f250915](https://github.com/sst/opencode-sdk-go/commit/f2509157eaf1b453e741ee9482127cad2e3ace25)) +- **api:** api update ([5efc987](https://github.com/sst/opencode-sdk-go/commit/5efc987353801d1e772c20edf162b1c75da32743)) +- **api:** api update ([98a8350](https://github.com/sst/opencode-sdk-go/commit/98a83504f7cfc361e83314c3e79a4e9ff53f0560)) +- **api:** api update ([6da8bf8](https://github.com/sst/opencode-sdk-go/commit/6da8bf8bfe91d45991fb580753d77c5534fc0b1b)) +- **api:** api update ([f8c7148](https://github.com/sst/opencode-sdk-go/commit/f8c7148ae56143823186e2675a78e82676154956)) +- **api:** manual updates ([7cf038f](https://github.com/sst/opencode-sdk-go/commit/7cf038ffae5da1b77e1cef11b5fa166a53b467f2)) +- **api:** update via SDK Studio ([068a0eb](https://github.com/sst/opencode-sdk-go/commit/068a0eb025010da0c8d86fa1bb496a39dbedcef9)) +- **api:** update via SDK Studio ([ca651ed](https://github.com/sst/opencode-sdk-go/commit/ca651edaf71d1f3678f929287474f5bc4f1aad10)) +- **api:** update via SDK Studio ([13550a5](https://github.com/sst/opencode-sdk-go/commit/13550a5c65d77325e945ed99fe0799cd1107b775)) +- **api:** update via SDK Studio ([7b73730](https://github.com/sst/opencode-sdk-go/commit/7b73730c7fa62ba966dda3541c3e97b49be8d2bf)) +- **api:** update via SDK Studio ([9e39a59](https://github.com/sst/opencode-sdk-go/commit/9e39a59b3d5d1bd5e64633732521fb28362cc70e)) +- **api:** update via SDK Studio ([9609d1b](https://github.com/sst/opencode-sdk-go/commit/9609d1b1db7806d00cb846c9914cb4935cdedf52)) +- **api:** update via SDK Studio ([51315fa](https://github.com/sst/opencode-sdk-go/commit/51315fa2eae424743ea79701e67d44447c44144d)) +- **api:** update via SDK Studio ([af07955](https://github.com/sst/opencode-sdk-go/commit/af0795543240aefaf04fc7663a348825541c79ed)) +- **api:** update via SDK Studio ([5e3468a](https://github.com/sst/opencode-sdk-go/commit/5e3468a0aaa5ed3b13e019c3a24e0ba9147d1675)) +- **api:** update via SDK Studio ([0a73e04](https://github.com/sst/opencode-sdk-go/commit/0a73e04c23c90b2061611edaa8fd6282dc0ce397)) +- **api:** update via SDK Studio ([9b7883a](https://github.com/sst/opencode-sdk-go/commit/9b7883a144eeac526d9d04538e0876a9d18bb844)) +- **client:** expand max streaming buffer size ([76303e5](https://github.com/sst/opencode-sdk-go/commit/76303e51067e78e732af26ced9d83b8bad7655c3)) +- **client:** support optional json html escaping ([449748f](https://github.com/sst/opencode-sdk-go/commit/449748f35a1d8cb6f91dc36d25bf9489f4f371bd)) ### Bug Fixes -* **client:** process custom base url ahead of time ([9b360d6](https://github.com/sst/opencode-sdk-go/commit/9b360d642cf6f302104308af5622e17099899e5f)) -* **client:** resolve lint errors in streaming tests ([4d36cb0](https://github.com/sst/opencode-sdk-go/commit/4d36cb09fc9d436734d5dab1c499acaa88568ff7)) -* close body before retrying ([4da3f7f](https://github.com/sst/opencode-sdk-go/commit/4da3f7f372bad222a189ba3eabcfde3373166ae5)) -* don't try to deserialize as json when ResponseBodyInto is []byte ([595291f](https://github.com/sst/opencode-sdk-go/commit/595291f6dba6af472f160b9f8e3d145002f43a4a)) - +- **client:** process custom base url ahead of time ([9b360d6](https://github.com/sst/opencode-sdk-go/commit/9b360d642cf6f302104308af5622e17099899e5f)) +- **client:** resolve lint errors in streaming tests ([4d36cb0](https://github.com/sst/opencode-sdk-go/commit/4d36cb09fc9d436734d5dab1c499acaa88568ff7)) +- close body before retrying ([4da3f7f](https://github.com/sst/opencode-sdk-go/commit/4da3f7f372bad222a189ba3eabcfde3373166ae5)) +- don't try to deserialize as json when ResponseBodyInto is []byte ([595291f](https://github.com/sst/opencode-sdk-go/commit/595291f6dba6af472f160b9f8e3d145002f43a4a)) ### Chores -* **ci:** only run for pushes and fork pull requests ([bea59b8](https://github.com/sst/opencode-sdk-go/commit/bea59b886800ef555f89c47a9256d6392ed2e53d)) -* **internal:** codegen related update ([6a22ce6](https://github.com/sst/opencode-sdk-go/commit/6a22ce6df155f5003e80b8a75686a9e513a5568a)) -* **internal:** fix lint script for tests ([391c482](https://github.com/sst/opencode-sdk-go/commit/391c482148ed0a77c4ad52807abeb2d540b56797)) -* **internal:** update comment in script ([b7f1c3e](https://github.com/sst/opencode-sdk-go/commit/b7f1c3e16935c71e243004b8f321d661cd8e9474)) -* lint tests ([616796b](https://github.com/sst/opencode-sdk-go/commit/616796b761704bde6be5c6c2428f28c79c7f05ff)) -* lint tests in subpackages ([50c82ff](https://github.com/sst/opencode-sdk-go/commit/50c82ff0757c973834b68adc22566b70f767b611)) -* sync repo ([2f34d5d](https://github.com/sst/opencode-sdk-go/commit/2f34d5d53e56e9cdc3df99be7ee7efc83dd977a3)) -* update @stainless-api/prism-cli to v5.15.0 ([2f24852](https://github.com/sst/opencode-sdk-go/commit/2f2485216d4f4891d1fbfbc23ff8410c2f35152a)) +- **ci:** only run for pushes and fork pull requests ([bea59b8](https://github.com/sst/opencode-sdk-go/commit/bea59b886800ef555f89c47a9256d6392ed2e53d)) +- **internal:** codegen related update ([6a22ce6](https://github.com/sst/opencode-sdk-go/commit/6a22ce6df155f5003e80b8a75686a9e513a5568a)) +- **internal:** fix lint script for tests ([391c482](https://github.com/sst/opencode-sdk-go/commit/391c482148ed0a77c4ad52807abeb2d540b56797)) +- **internal:** update comment in script ([b7f1c3e](https://github.com/sst/opencode-sdk-go/commit/b7f1c3e16935c71e243004b8f321d661cd8e9474)) +- lint tests ([616796b](https://github.com/sst/opencode-sdk-go/commit/616796b761704bde6be5c6c2428f28c79c7f05ff)) +- lint tests in subpackages ([50c82ff](https://github.com/sst/opencode-sdk-go/commit/50c82ff0757c973834b68adc22566b70f767b611)) +- sync repo ([2f34d5d](https://github.com/sst/opencode-sdk-go/commit/2f34d5d53e56e9cdc3df99be7ee7efc83dd977a3)) +- update @stainless-api/prism-cli to v5.15.0 ([2f24852](https://github.com/sst/opencode-sdk-go/commit/2f2485216d4f4891d1fbfbc23ff8410c2f35152a)) diff --git a/packages/sdk/go/release-please-config.json b/packages/sdk/go/release-please-config.json index a38198eca..32960ce27 100644 --- a/packages/sdk/go/release-please-config.json +++ b/packages/sdk/go/release-please-config.json @@ -60,8 +60,5 @@ } ], "release-type": "go", - "extra-files": [ - "internal/version.go", - "README.md" - ] -}
\ No newline at end of file + "extra-files": ["internal/version.go", "README.md"] +} diff --git a/packages/sdk/js/script/generate.ts b/packages/sdk/js/script/generate.ts index ffe0779c7..b03104823 100755 --- a/packages/sdk/js/script/generate.ts +++ b/packages/sdk/js/script/generate.ts @@ -14,7 +14,7 @@ await createClient({ input: "./openapi.json", output: { path: "./src/gen", - tsConfigPath: path.join(dir, 'tsconfig.json') + tsConfigPath: path.join(dir, "tsconfig.json"), }, plugins: [ { diff --git a/packages/sdk/js/src/server.ts b/packages/sdk/js/src/server.ts index 24f716a2c..2b1dfd369 100644 --- a/packages/sdk/js/src/server.ts +++ b/packages/sdk/js/src/server.ts @@ -105,7 +105,7 @@ export function createOpencodeTui(options?: TuiOptions) { const proc = spawn(`opencode`, args, { signal: options?.signal, - stdio: 'inherit', + stdio: "inherit", env: { ...process.env, OPENCODE_CONFIG_CONTENT: JSON.stringify(options?.config ?? {}), diff --git a/packages/sdk/js/sst-env.d.ts b/packages/sdk/js/sst-env.d.ts index 9b9de7327..bd5588217 100644 --- a/packages/sdk/js/sst-env.d.ts +++ b/packages/sdk/js/sst-env.d.ts @@ -6,4 +6,4 @@ /// <reference path="../../../sst-env.d.ts" /> import "sst" -export {}
\ No newline at end of file +export {} diff --git a/packages/sdk/js/tsconfig.json b/packages/sdk/js/tsconfig.json index 6c5919a91..6c5318946 100644 --- a/packages/sdk/js/tsconfig.json +++ b/packages/sdk/js/tsconfig.json @@ -6,16 +6,8 @@ "module": "nodenext", "declaration": true, "moduleResolution": "nodenext", - "lib": [ - "es2022", - "dom", - "dom.iterable" - ], - "customConditions": [ - "development" - ] + "lib": ["es2022", "dom", "dom.iterable"], + "customConditions": ["development"] }, - "include": [ - "src" - ] + "include": ["src"] } diff --git a/packages/tui/internal/theme/themes/vesper.json b/packages/tui/internal/theme/themes/vesper.json index b8406f934..cb19ff178 100644 --- a/packages/tui/internal/theme/themes/vesper.json +++ b/packages/tui/internal/theme/themes/vesper.json @@ -1,219 +1,218 @@ { - "$schema": "https://opencode.ai/theme.json", - "defs": { - "vesperBg": "#101010", - "vesperFg": "#FFF", - "vesperComment": "#8b8b8b94", - "vesperKeyword": "#A0A0A0", - "vesperFunction": "#FFC799", - "vesperString": "#99FFE4", - "vesperNumber": "#FFC799", - "vesperError": "#FF8080", - "vesperWarning": "#FFC799", - "vesperSuccess": "#99FFE4", - "vesperMuted": "#A0A0A0" - }, - "theme": { - "primary": { - "dark": "#FFC799", - "light": "#FFC799" - }, - "secondary": { - "dark": "#99FFE4", - "light": "#99FFE4" - }, - "accent": { - "dark": "#FFC799", - "light": "#FFC799" - }, - "error": { - "dark": "vesperError", - "light": "vesperError" - }, - "warning": { - "dark": "vesperWarning", - "light": "vesperWarning" - }, - "success": { - "dark": "vesperSuccess", - "light": "vesperSuccess" - }, - "info": { - "dark": "#FFC799", - "light": "#FFC799" - }, - "text": { - "dark": "vesperFg", - "light": "vesperBg" - }, - "textMuted": { - "dark": "vesperMuted", - "light": "vesperMuted" - }, - "background": { - "dark": "vesperBg", - "light": "#FFF" - }, - "backgroundPanel": { - "dark": "vesperBg", - "light": "#F0F0F0" - }, - "backgroundElement": { - "dark": "vesperBg", - "light": "#E0E0E0" - }, - "border": { - "dark": "#282828", - "light": "#D0D0D0" - }, - "borderActive": { - "dark": "#FFC799", - "light": "#FFC799" - }, - "borderSubtle": { - "dark": "#1C1C1C", - "light": "#E8E8E8" - }, - "diffAdded": { - "dark": "vesperSuccess", - "light": "vesperSuccess" - }, - "diffRemoved": { - "dark": "vesperError", - "light": "vesperError" - }, - "diffContext": { - "dark": "vesperMuted", - "light": "vesperMuted" - }, - "diffHunkHeader": { - "dark": "vesperMuted", - "light": "vesperMuted" - }, - "diffHighlightAdded": { - "dark": "vesperSuccess", - "light": "vesperSuccess" - }, - "diffHighlightRemoved": { - "dark": "vesperError", - "light": "vesperError" - }, - "diffAddedBg": { - "dark": "#0d2818", - "light": "#e8f5e8" - }, - "diffRemovedBg": { - "dark": "#281a1a", - "light": "#f5e8e8" - }, - "diffContextBg": { - "dark": "vesperBg", - "light": "#F8F8F8" - }, - "diffLineNumber": { - "dark": "#505050", - "light": "#808080" - }, - "diffAddedLineNumberBg": { - "dark": "#0d2818", - "light": "#e8f5e8" - }, - "diffRemovedLineNumberBg": { - "dark": "#281a1a", - "light": "#f5e8e8" - }, - "markdownText": { - "dark": "vesperFg", - "light": "vesperBg" - }, - "markdownHeading": { - "dark": "#FFC799", - "light": "#FFC799" - }, - "markdownLink": { - "dark": "#FFC799", - "light": "#FFC799" - }, - "markdownLinkText": { - "dark": "vesperMuted", - "light": "vesperMuted" - }, - "markdownCode": { - "dark": "vesperMuted", - "light": "vesperMuted" - }, - "markdownBlockQuote": { - "dark": "vesperFg", - "light": "vesperBg" - }, - "markdownEmph": { - "dark": "vesperFg", - "light": "vesperBg" - }, - "markdownStrong": { - "dark": "vesperFg", - "light": "vesperBg" - }, - "markdownHorizontalRule": { - "dark": "#65737E", - "light": "#65737E" - }, - "markdownListItem": { - "dark": "vesperFg", - "light": "vesperBg" - }, - "markdownListEnumeration": { - "dark": "vesperFg", - "light": "vesperBg" - }, - "markdownImage": { - "dark": "#FFC799", - "light": "#FFC799" - }, - "markdownImageText": { - "dark": "vesperMuted", - "light": "vesperMuted" - }, - "markdownCodeBlock": { - "dark": "vesperFg", - "light": "vesperBg" - }, - "syntaxComment": { - "dark": "vesperComment", - "light": "vesperComment" - }, - "syntaxKeyword": { - "dark": "vesperKeyword", - "light": "vesperKeyword" - }, - "syntaxFunction": { - "dark": "vesperFunction", - "light": "vesperFunction" - }, - "syntaxVariable": { - "dark": "vesperFg", - "light": "vesperBg" - }, - "syntaxString": { - "dark": "vesperString", - "light": "vesperString" - }, - "syntaxNumber": { - "dark": "vesperNumber", - "light": "vesperNumber" - }, - "syntaxType": { - "dark": "vesperFunction", - "light": "vesperFunction" - }, - "syntaxOperator": { - "dark": "vesperKeyword", - "light": "vesperKeyword" - }, - "syntaxPunctuation": { - "dark": "vesperFg", - "light": "vesperBg" - } + "$schema": "https://opencode.ai/theme.json", + "defs": { + "vesperBg": "#101010", + "vesperFg": "#FFF", + "vesperComment": "#8b8b8b94", + "vesperKeyword": "#A0A0A0", + "vesperFunction": "#FFC799", + "vesperString": "#99FFE4", + "vesperNumber": "#FFC799", + "vesperError": "#FF8080", + "vesperWarning": "#FFC799", + "vesperSuccess": "#99FFE4", + "vesperMuted": "#A0A0A0" + }, + "theme": { + "primary": { + "dark": "#FFC799", + "light": "#FFC799" + }, + "secondary": { + "dark": "#99FFE4", + "light": "#99FFE4" + }, + "accent": { + "dark": "#FFC799", + "light": "#FFC799" + }, + "error": { + "dark": "vesperError", + "light": "vesperError" + }, + "warning": { + "dark": "vesperWarning", + "light": "vesperWarning" + }, + "success": { + "dark": "vesperSuccess", + "light": "vesperSuccess" + }, + "info": { + "dark": "#FFC799", + "light": "#FFC799" + }, + "text": { + "dark": "vesperFg", + "light": "vesperBg" + }, + "textMuted": { + "dark": "vesperMuted", + "light": "vesperMuted" + }, + "background": { + "dark": "vesperBg", + "light": "#FFF" + }, + "backgroundPanel": { + "dark": "vesperBg", + "light": "#F0F0F0" + }, + "backgroundElement": { + "dark": "vesperBg", + "light": "#E0E0E0" + }, + "border": { + "dark": "#282828", + "light": "#D0D0D0" + }, + "borderActive": { + "dark": "#FFC799", + "light": "#FFC799" + }, + "borderSubtle": { + "dark": "#1C1C1C", + "light": "#E8E8E8" + }, + "diffAdded": { + "dark": "vesperSuccess", + "light": "vesperSuccess" + }, + "diffRemoved": { + "dark": "vesperError", + "light": "vesperError" + }, + "diffContext": { + "dark": "vesperMuted", + "light": "vesperMuted" + }, + "diffHunkHeader": { + "dark": "vesperMuted", + "light": "vesperMuted" + }, + "diffHighlightAdded": { + "dark": "vesperSuccess", + "light": "vesperSuccess" + }, + "diffHighlightRemoved": { + "dark": "vesperError", + "light": "vesperError" + }, + "diffAddedBg": { + "dark": "#0d2818", + "light": "#e8f5e8" + }, + "diffRemovedBg": { + "dark": "#281a1a", + "light": "#f5e8e8" + }, + "diffContextBg": { + "dark": "vesperBg", + "light": "#F8F8F8" + }, + "diffLineNumber": { + "dark": "#505050", + "light": "#808080" + }, + "diffAddedLineNumberBg": { + "dark": "#0d2818", + "light": "#e8f5e8" + }, + "diffRemovedLineNumberBg": { + "dark": "#281a1a", + "light": "#f5e8e8" + }, + "markdownText": { + "dark": "vesperFg", + "light": "vesperBg" + }, + "markdownHeading": { + "dark": "#FFC799", + "light": "#FFC799" + }, + "markdownLink": { + "dark": "#FFC799", + "light": "#FFC799" + }, + "markdownLinkText": { + "dark": "vesperMuted", + "light": "vesperMuted" + }, + "markdownCode": { + "dark": "vesperMuted", + "light": "vesperMuted" + }, + "markdownBlockQuote": { + "dark": "vesperFg", + "light": "vesperBg" + }, + "markdownEmph": { + "dark": "vesperFg", + "light": "vesperBg" + }, + "markdownStrong": { + "dark": "vesperFg", + "light": "vesperBg" + }, + "markdownHorizontalRule": { + "dark": "#65737E", + "light": "#65737E" + }, + "markdownListItem": { + "dark": "vesperFg", + "light": "vesperBg" + }, + "markdownListEnumeration": { + "dark": "vesperFg", + "light": "vesperBg" + }, + "markdownImage": { + "dark": "#FFC799", + "light": "#FFC799" + }, + "markdownImageText": { + "dark": "vesperMuted", + "light": "vesperMuted" + }, + "markdownCodeBlock": { + "dark": "vesperFg", + "light": "vesperBg" + }, + "syntaxComment": { + "dark": "vesperComment", + "light": "vesperComment" + }, + "syntaxKeyword": { + "dark": "vesperKeyword", + "light": "vesperKeyword" + }, + "syntaxFunction": { + "dark": "vesperFunction", + "light": "vesperFunction" + }, + "syntaxVariable": { + "dark": "vesperFg", + "light": "vesperBg" + }, + "syntaxString": { + "dark": "vesperString", + "light": "vesperString" + }, + "syntaxNumber": { + "dark": "vesperNumber", + "light": "vesperNumber" + }, + "syntaxType": { + "dark": "vesperFunction", + "light": "vesperFunction" + }, + "syntaxOperator": { + "dark": "vesperKeyword", + "light": "vesperKeyword" + }, + "syntaxPunctuation": { + "dark": "vesperFg", + "light": "vesperBg" } } -
\ No newline at end of file +} diff --git a/packages/web/config.mjs b/packages/web/config.mjs index 69b6b4f57..5e2c8d3e4 100644 --- a/packages/web/config.mjs +++ b/packages/web/config.mjs @@ -1,12 +1,8 @@ const stage = process.env.SST_STAGE || "dev" export default { - url: stage === "production" - ? "https://opencode.ai" - : `https://${stage}.opencode.ai`, - console: stage === "production" - ? "https://opencode.ai/auth" - : `https://${stage}.opencode.ai/auth`, + url: stage === "production" ? "https://opencode.ai" : `https://${stage}.opencode.ai`, + console: stage === "production" ? "https://opencode.ai/auth" : `https://${stage}.opencode.ai/auth`, email: "[email protected]", socialCard: "https://social-cards.sst.dev", github: "https://github.com/sst/opencode", diff --git a/packages/web/src/components/Share.tsx b/packages/web/src/components/Share.tsx index 2b0e52c1a..062449712 100644 --- a/packages/web/src/components/Share.tsx +++ b/packages/web/src/components/Share.tsx @@ -37,11 +37,7 @@ function getStatusText(status: [Status, string?]): string { } } -export default function Share(props: { - id: string - api: string - info: Session.Info -}) { +export default function Share(props: { id: string; api: string; info: Session.Info }) { let lastScrollY = 0 let hasScrolledToAnchor = false let scrollTimeout: number | undefined @@ -67,7 +63,8 @@ export default function Share(props: { created: props.info.time.created, updated: props.info.time.updated, }, - }, messages: {} + }, + messages: {}, }) const messages = createMemo(() => Object.values(store.messages).toSorted((a, b) => a.id?.localeCompare(b.id))) const [connectionStatus, setConnectionStatus] = createSignal<[Status, string?]>(["disconnected", "Disconnected"]) @@ -413,7 +410,11 @@ export default function Share(props: { </li> <li> <span data-element-label>Output Tokens</span> - {data().tokens.output ? <span>{data().tokens.output}</span> : <span data-placeholder>—</span>} + {data().tokens.output ? ( + <span>{data().tokens.output}</span> + ) : ( + <span data-placeholder>—</span> + )} </li> <li> <span data-element-label>Reasoning Tokens</span> diff --git a/packages/web/src/components/share/content-diff.module.css b/packages/web/src/components/share/content-diff.module.css index 5bf6e2243..1dfb0777b 100644 --- a/packages/web/src/components/share/content-diff.module.css +++ b/packages/web/src/components/share/content-diff.module.css @@ -90,7 +90,6 @@ } [data-component="mobile"] { - & > [data-component="diff-block"]:first-child > div { padding-top: 0.25rem; } diff --git a/packages/web/src/components/share/content-error.module.css b/packages/web/src/components/share/content-error.module.css index 6303be633..9ed051a80 100644 --- a/packages/web/src/components/share/content-error.module.css +++ b/packages/web/src/components/share/content-error.module.css @@ -61,5 +61,4 @@ padding: 2px 0; font-size: 0.75rem; } - } diff --git a/packages/web/src/components/share/content-error.tsx b/packages/web/src/components/share/content-error.tsx index b6d7023b2..1e8cbeaad 100644 --- a/packages/web/src/components/share/content-error.tsx +++ b/packages/web/src/components/share/content-error.tsx @@ -10,19 +10,12 @@ export function ContentError(props: Props) { const overflow = createOverflow() return ( - <div - class={style.root} - data-expanded={expanded() || props.expand === true ? true : undefined} - > + <div class={style.root} data-expanded={expanded() || props.expand === true ? true : undefined}> <div data-section="content" ref={overflow.ref}> {props.children} </div> {((!props.expand && overflow.status) || expanded()) && ( - <button - type="button" - data-element-button-text - onClick={() => setExpanded((e) => !e)} - > + <button type="button" data-element-button-text onClick={() => setExpanded((e) => !e)}> {expanded() ? "Show less" : "Show more"} </button> )} diff --git a/packages/web/src/components/share/copy-button.tsx b/packages/web/src/components/share/copy-button.tsx index ad2e83b2e..892d5553f 100644 --- a/packages/web/src/components/share/copy-button.tsx +++ b/packages/web/src/components/share/copy-button.tsx @@ -11,8 +11,7 @@ export function CopyButton(props: CopyButtonProps) { function handleCopyClick() { if (props.text) { - navigator.clipboard.writeText(props.text) - .catch((err) => console.error("Copy failed", err)) + navigator.clipboard.writeText(props.text).catch((err) => console.error("Copy failed", err)) setCopied(true) setTimeout(() => setCopied(false), 2000) @@ -21,15 +20,8 @@ export function CopyButton(props: CopyButtonProps) { return ( <div data-component="copy-button" class={styles.root}> - <button - type="button" - onClick={handleCopyClick} - data-copied={copied() ? true : undefined} - > - {copied() - ? <IconCheckCircle width={16} height={16} /> - : <IconClipboard width={16} height={16} /> - } + <button type="button" onClick={handleCopyClick} data-copied={copied() ? true : undefined}> + {copied() ? <IconCheckCircle width={16} height={16} /> : <IconClipboard width={16} height={16} />} </button> </div> ) diff --git a/packages/web/src/components/share/part.tsx b/packages/web/src/components/share/part.tsx index b27e4806a..ddef206ba 100644 --- a/packages/web/src/components/share/part.tsx +++ b/packages/web/src/components/share/part.tsx @@ -168,32 +168,25 @@ export function Part(props: PartProps) { </Show> </div> )} - { - props.message.role === "user" && props.part.type === "file" && ( - <div data-component="attachment"> - <div data-slot="copy">Attachment</div> - <div data-slot="filename">{props.part.filename}</div> - </div> - ) - } - { - props.part.type === "step-start" && props.message.role === "assistant" && ( - <div data-component="step-start"> - <div data-slot="provider">{props.message.providerID}</div> - <div data-slot="model">{props.message.modelID}</div> - </div> - ) - } - { - props.part.type === "tool" && props.part.state.status === "error" && ( - <div data-component="tool" data-tool="error"> - <ContentError>{formatErrorString(props.part.state.error)}</ContentError> - <Spacer /> - </div> - ) - } - { - props.part.type === "tool" && + {props.message.role === "user" && props.part.type === "file" && ( + <div data-component="attachment"> + <div data-slot="copy">Attachment</div> + <div data-slot="filename">{props.part.filename}</div> + </div> + )} + {props.part.type === "step-start" && props.message.role === "assistant" && ( + <div data-component="step-start"> + <div data-slot="provider">{props.message.providerID}</div> + <div data-slot="model">{props.message.modelID}</div> + </div> + )} + {props.part.type === "tool" && props.part.state.status === "error" && ( + <div data-component="tool" data-tool="error"> + <ContentError>{formatErrorString(props.part.state.error)}</ContentError> + <Spacer /> + </div> + )} + {props.part.type === "tool" && props.part.state.status === "completed" && props.message.role === "assistant" && ( <> @@ -295,10 +288,9 @@ export function Part(props: PartProps) { .toMillis()} /> </> - ) - } - </div > - </div > + )} + </div> + </div> ) } diff --git a/packages/web/src/content/docs/cli.mdx b/packages/web/src/content/docs/cli.mdx index 903c3638d..c0fbbd3ba 100644 --- a/packages/web/src/content/docs/cli.mdx +++ b/packages/web/src/content/docs/cli.mdx @@ -17,8 +17,6 @@ But it also accepts commands as documented on this page. This allows you to inte opencode run "Explain how closures work in JavaScript" ``` - - --- ## Commands diff --git a/packages/web/src/content/docs/commands.mdx b/packages/web/src/content/docs/commands.mdx index 59c9536ac..8653e26cc 100644 --- a/packages/web/src/content/docs/commands.mdx +++ b/packages/web/src/content/docs/commands.mdx @@ -62,7 +62,7 @@ Use the `command` option in your opencode [config](/docs/config): "description": "Run tests with coverage", "agent": "build", "model": "anthropic/claude-3-5-sonnet-20241022" - }, + } } } ``` diff --git a/packages/web/src/content/docs/config.mdx b/packages/web/src/content/docs/config.mdx index 045bc596c..68c14fc79 100644 --- a/packages/web/src/content/docs/config.mdx +++ b/packages/web/src/content/docs/config.mdx @@ -164,13 +164,13 @@ You can configure custom commands for repetitive tasks through the `command` opt "template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes.", "description": "Run tests with coverage", "agent": "build", - "model": "anthropic/claude-3-5-sonnet-20241022" + "model": "anthropic/claude-3-5-sonnet-20241022", }, "component": { "template": "Create a new React component named $ARGUMENTS with TypeScript support.\nInclude proper typing and basic structure.", - "description": "Create a new component" - } - } + "description": "Create a new component", + }, + }, } ``` diff --git a/packages/web/src/content/docs/formatters.mdx b/packages/web/src/content/docs/formatters.mdx index 9c9411aeb..5c00c3ca7 100644 --- a/packages/web/src/content/docs/formatters.mdx +++ b/packages/web/src/content/docs/formatters.mdx @@ -11,19 +11,19 @@ opencode automatically formats files after they are written or edited using lang opencode comes with several built-in formatters for popular languages and frameworks. Below is a list of the formatters, supported file extensions, and commands or config options it needs. -| Formatter | Extensions | Requirements | -| -------------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------- | -| gofmt | .go | `gofmt` command available | -| mix | .ex, .exs, .eex, .heex, .leex, .neex, .sface | `mix` command available | +| Formatter | Extensions | Requirements | +| -------------- | -------------------------------------------------------------------------------------------------------- | --------------------------------------- | +| gofmt | .go | `gofmt` command available | +| mix | .ex, .exs, .eex, .heex, .leex, .neex, .sface | `mix` command available | | prettier | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, and [more](https://prettier.io/docs/en/index.html) | `prettier` dependency in `package.json` | -| biome | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, and [more](https://biomejs.dev/) | `biome.json(c)` config file | -| zig | .zig, .zon | `zig` command available | -| clang-format | .c, .cpp, .h, .hpp, .ino, and [more](https://clang.llvm.org/docs/ClangFormat.html) | `.clang-format` config file | -| ktlint | .kt, .kts | `ktlint` command available | -| ruff | .py, .pyi | `ruff` command available with config | -| rubocop | .rb, .rake, .gemspec, .ru | `rubocop` command available | -| standardrb | .rb, .rake, .gemspec, .ru | `standardrb` command available | -| htmlbeautifier | .erb, .html.erb | `htmlbeautifier` command available | +| biome | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, and [more](https://biomejs.dev/) | `biome.json(c)` config file | +| zig | .zig, .zon | `zig` command available | +| clang-format | .c, .cpp, .h, .hpp, .ino, and [more](https://clang.llvm.org/docs/ClangFormat.html) | `.clang-format` config file | +| ktlint | .kt, .kts | `ktlint` command available | +| ruff | .py, .pyi | `ruff` command available with config | +| rubocop | .rb, .rake, .gemspec, .ru | `rubocop` command available | +| standardrb | .rb, .rake, .gemspec, .ru | `standardrb` command available | +| htmlbeautifier | .erb, .html.erb | `htmlbeautifier` command available | So if your project has `prettier` in your `package.json`, opencode will automatically use it. @@ -48,7 +48,7 @@ You can customize formatters through the `formatter` section in your opencode co ```json title="opencode.json" { "$schema": "https://opencode.ai/config.json", - "formatter": { } + "formatter": {} } ``` @@ -56,7 +56,7 @@ Each formatter configuration supports the following: | Property | Type | Description | | ------------- | -------- | ------------------------------------------------------- | -| `disabled` | boolean | Set this to `true` to disable the formatter | +| `disabled` | boolean | Set this to `true` to disable the formatter | | `command` | string[] | The command to run for formatting | | `environment` | object | Environment variables to set when running the formatter | | `extensions` | string[] | File extensions this formatter should handle | diff --git a/packages/web/src/content/docs/gitlab.mdx b/packages/web/src/content/docs/gitlab.mdx index 023ac678e..0d21d70c5 100644 --- a/packages/web/src/content/docs/gitlab.mdx +++ b/packages/web/src/content/docs/gitlab.mdx @@ -33,7 +33,7 @@ Check out the [**GitLab docs**](https://docs.gitlab.com/user/duo_agent_platform/ 6. Create a flow config file, here's an example: <details> - <summary>Flow configuration</summary> + <summary>Flow configuration</summary> ```yaml image: node:22-slim @@ -67,17 +67,17 @@ Check out the [**GitLab docs**](https://docs.gitlab.com/user/duo_agent_platform/ - | opencode run " You are an AI assistant helping with GitLab operations. - + Context: $AI_FLOW_CONTEXT Task: $AI_FLOW_INPUT Event: $AI_FLOW_EVENT - + Please execute the requested task using the available GitLab tools. Be thorough in your analysis and provide clear explanations. - + <important> Please use the glab CLI to access data from GitLab. The glab CLI has already been authenticated. You can run the corresponding commands. - + If you are asked to summarise an MR or issue or asked to provide more information then please post back a note to the MR/Issue so that the user can see it. You don't need to commit or push up changes, those will be done automatically based on the file changes you make. </important> diff --git a/packages/web/src/content/docs/index.mdx b/packages/web/src/content/docs/index.mdx index 7ca2fee79..7513d5bf4 100644 --- a/packages/web/src/content/docs/index.mdx +++ b/packages/web/src/content/docs/index.mdx @@ -41,26 +41,10 @@ You can also install it with the following: - **Using Node.js** <Tabs> - <TabItem label="npm"> - ```bash - npm install -g opencode-ai - ``` - </TabItem> - <TabItem label="Bun"> - ```bash - bun install -g opencode-ai - ``` - </TabItem> - <TabItem label="pnpm"> - ```bash - pnpm install -g opencode-ai - ``` - </TabItem> - <TabItem label="Yarn"> - ```bash - yarn global add opencode-ai - ``` - </TabItem> + <TabItem label="npm">```bash npm install -g opencode-ai ```</TabItem> + <TabItem label="Bun">```bash bun install -g opencode-ai ```</TabItem> + <TabItem label="pnpm">```bash pnpm install -g opencode-ai ```</TabItem> + <TabItem label="Yarn">```bash yarn global add opencode-ai ```</TabItem> </Tabs> - **Using Homebrew on macOS and Linux** diff --git a/packages/web/src/content/docs/server.mdx b/packages/web/src/content/docs/server.mdx index 0713cce65..2eea2ba74 100644 --- a/packages/web/src/content/docs/server.mdx +++ b/packages/web/src/content/docs/server.mdx @@ -79,9 +79,9 @@ The opencode server exposes the following APIs. ### Config -| Method | Path | Description | Response | -| ------ | ------------------- | --------------------------------- | ----------------------------------------------------------------------------------------------------- | -| `GET` | `/config` | Get config info | <a href={typesUrl}><code>Config</code></a> | +| Method | Path | Description | Response | +| ------ | ------------------- | --------------------------------- | ---------------------------------------------------------------------------------------- | +| `GET` | `/config` | Get config info | <a href={typesUrl}><code>Config</code></a> | | `GET` | `/config/providers` | List providers and default models | `{ providers: `<a href={typesUrl}>Provider[]</a>`, default: { [key: string]: string } }` | --- @@ -101,8 +101,8 @@ The opencode server exposes the following APIs. | `POST` | `/session/:id/share` | Share session | Returns <a href={typesUrl}><code>Session</code></a> | | `DELETE` | `/session/:id/share` | Unshare session | Returns <a href={typesUrl}><code>Session</code></a> | | `POST` | `/session/:id/summarize` | Summarize session | | -| `GET` | `/session/:id/message` | List messages in a session | Returns `{ info: `<a href={typesUrl}>Message</a>`, parts: `<a href={typesUrl}>Part[]</a>`}[]` | -| `GET` | `/session/:id/message/:messageID` | Get message details | Returns `{ info: `<a href={typesUrl}>Message</a>`, parts: `<a href={typesUrl}>Part[]</a>`}` | +| `GET` | `/session/:id/message` | List messages in a session | Returns `{ info: `<a href={typesUrl}>Message</a>`, parts: `<a href={typesUrl}>Part[]</a>`}[]` | +| `GET` | `/session/:id/message/:messageID` | Get message details | Returns `{ info: `<a href={typesUrl}>Message</a>`, parts: `<a href={typesUrl}>Part[]</a>`}` | | `POST` | `/session/:id/message` | Send chat message | body matches [`ChatInput`](https://github.com/sst/opencode/blob/main/packages/opencode/src/session/index.ts#L358), returns <a href={typesUrl}><code>Message</code></a> | | `POST` | `/session/:id/shell` | Run a shell command | body matches [`CommandInput`](https://github.com/sst/opencode/blob/main/packages/opencode/src/session/index.ts#L1007), returns <a href={typesUrl}><code>Message</code></a> | | `POST` | `/session/:id/revert` | Revert a message | body: `{ messageID }` | @@ -175,6 +175,6 @@ The opencode server exposes the following APIs. ### Docs -| Method | Path | Description | Response | -| ------ | ------ | -------------------------------------- | ------------------------------------------ | +| Method | Path | Description | Response | +| ------ | ------ | ------------------------- | --------------------------- | | `GET` | `/doc` | OpenAPI 3.1 specification | HTML page with OpenAPI spec | diff --git a/packages/web/src/content/docs/tui.mdx b/packages/web/src/content/docs/tui.mdx index 113bad697..19fafe822 100644 --- a/packages/web/src/content/docs/tui.mdx +++ b/packages/web/src/content/docs/tui.mdx @@ -272,6 +272,7 @@ Both the `/editor` and `/export` commands use the editor specified in your `EDIT To make it permanent, add this to your shell profile; `~/.bashrc`, `~/.zshrc`, etc. + </TabItem> <TabItem label="Windows (CMD)"> @@ -284,6 +285,7 @@ Both the `/editor` and `/export` commands use the editor specified in your `EDIT To make it permanent, use **System Properties** > **Environment Variables**. + </TabItem> <TabItem label="Windows (PowerShell)"> @@ -295,6 +297,7 @@ Both the `/editor` and `/export` commands use the editor specified in your `EDIT ``` To make it permanent, add this to your PowerShell profile. + </TabItem> </Tabs> diff --git a/packages/web/src/content/docs/zen.mdx b/packages/web/src/content/docs/zen.mdx index 9f4069a81..3f54d30e2 100644 --- a/packages/web/src/content/docs/zen.mdx +++ b/packages/web/src/content/docs/zen.mdx @@ -73,11 +73,11 @@ We created opencode zen to: Below are the models that we currently support and their prices **per 1M tokens**. -| Model | Input | Output | -| ----- | ----- | ------ | -| Qwen3 Coder 480B | $0.38 | $0.50 | -| Grok Code Fast 1 | Free | Free | -| Sonnet 4 | Soon | Soon | +| Model | Input | Output | +| ---------------- | ----- | ------ | +| Qwen3 Coder 480B | $0.38 | $0.50 | +| Grok Code Fast 1 | Free | Free | +| Sonnet 4 | Soon | Soon | :::note We add a small markup to cover our costs. @@ -86,7 +86,7 @@ We add a small markup to cover our costs. A couple of notes: - These are the raw prices based on the provider we are using internally. We -charge a small markup on top of this to cover our processing fees. + charge a small markup on top of this to cover our processing fees. - Grok Code Fast 1 is currently free on opencode till Sep 10th. The xAI team is using this time to collect feedback and improve Grok Code. diff --git a/packages/web/sst-env.d.ts b/packages/web/sst-env.d.ts index b6a7e9066..0397645b5 100644 --- a/packages/web/sst-env.d.ts +++ b/packages/web/sst-env.d.ts @@ -6,4 +6,4 @@ /// <reference path="../../sst-env.d.ts" /> import "sst" -export {}
\ No newline at end of file +export {} |
