summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-09-09 23:43:37 -0400
committerDax Raad <[email protected]>2025-09-09 23:44:04 -0400
commit38e8c42cf02f73fb300889ab989088899a3aedb7 (patch)
tree313db96535cf136cc1032618b43462c1f2f0e14c /packages
parent58fe88432714456350244ebbea1e6287d3dccb36 (diff)
downloadopencode-38e8c42cf02f73fb300889ab989088899a3aedb7.tar.gz
opencode-38e8c42cf02f73fb300889ab989088899a3aedb7.zip
ci: format
Diffstat (limited to 'packages')
-rw-r--r--packages/function/sst-env.d.ts150
-rw-r--r--packages/opencode/src/file/fzf.ts36
-rw-r--r--packages/opencode/src/file/time.ts20
-rw-r--r--packages/opencode/src/plugin/index.ts15
-rw-r--r--packages/opencode/src/tool/edit.ts4
-rw-r--r--packages/opencode/src/tool/registry.ts4
-rw-r--r--packages/opencode/src/tool/todo.ts14
-rw-r--r--packages/opencode/sst-env.d.ts2
-rw-r--r--packages/opencode/test/bun.test.ts14
-rw-r--r--packages/opencode/tsconfig.json10
-rw-r--r--packages/plugin/src/index.ts7
-rw-r--r--packages/plugin/sst-env.d.ts2
-rw-r--r--packages/plugin/tsconfig.json14
-rw-r--r--packages/sdk/go/.github/workflows/ci.yml14
-rw-r--r--packages/sdk/go/.release-please-manifest.json2
-rw-r--r--packages/sdk/go/CHANGELOG.md116
-rw-r--r--packages/sdk/go/release-please-config.json7
-rwxr-xr-xpackages/sdk/js/script/generate.ts2
-rw-r--r--packages/sdk/js/src/server.ts2
-rw-r--r--packages/sdk/js/sst-env.d.ts2
-rw-r--r--packages/sdk/js/tsconfig.json14
-rw-r--r--packages/tui/internal/theme/themes/vesper.json431
-rw-r--r--packages/web/config.mjs8
-rw-r--r--packages/web/src/components/Share.tsx15
-rw-r--r--packages/web/src/components/share/content-diff.module.css1
-rw-r--r--packages/web/src/components/share/content-error.module.css1
-rw-r--r--packages/web/src/components/share/content-error.tsx11
-rw-r--r--packages/web/src/components/share/copy-button.tsx14
-rw-r--r--packages/web/src/components/share/part.tsx52
-rw-r--r--packages/web/src/content/docs/cli.mdx2
-rw-r--r--packages/web/src/content/docs/commands.mdx2
-rw-r--r--packages/web/src/content/docs/config.mdx8
-rw-r--r--packages/web/src/content/docs/formatters.mdx28
-rw-r--r--packages/web/src/content/docs/gitlab.mdx10
-rw-r--r--packages/web/src/content/docs/index.mdx24
-rw-r--r--packages/web/src/content/docs/server.mdx14
-rw-r--r--packages/web/src/content/docs/tui.mdx3
-rw-r--r--packages/web/src/content/docs/zen.mdx12
-rw-r--r--packages/web/sst-env.d.ts2
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`,
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>&mdash;</span>}
+ {data().tokens.output ? (
+ <span>{data().tokens.output}</span>
+ ) : (
+ <span data-placeholder>&mdash;</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 {}