diff options
| author | Dax Raad <[email protected]> | 2025-06-14 12:12:56 -0400 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-06-14 12:13:46 -0400 |
| commit | af892e54329e597fc6160960b669635e2f278270 (patch) | |
| tree | ec8bb2baa2d2972d1407ade838570c48bc279d58 /packages | |
| parent | d7aca6230d0e324ae862c5af0c0dcd0e10f1012c (diff) | |
| download | opencode-af892e54329e597fc6160960b669635e2f278270.tar.gz opencode-af892e54329e597fc6160960b669635e2f278270.zip | |
docs: readme
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/opencode/config.schema.json | 139 | ||||
| -rw-r--r-- | packages/opencode/package.json | 6 | ||||
| -rwxr-xr-x | packages/opencode/script/schema.ts | 8 | ||||
| -rw-r--r-- | packages/opencode/src/cli/cmd/generate.ts | 1 | ||||
| -rw-r--r-- | packages/opencode/src/config/config.ts | 5 | ||||
| -rw-r--r-- | packages/opencode/src/provider/provider.ts | 2 |
6 files changed, 154 insertions, 7 deletions
diff --git a/packages/opencode/config.schema.json b/packages/opencode/config.schema.json new file mode 100644 index 000000000..50f293032 --- /dev/null +++ b/packages/opencode/config.schema.json @@ -0,0 +1,139 @@ +{ + "type": "object", + "properties": { + "provider": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "env": { + "type": "array", + "items": { + "type": "string" + } + }, + "id": { + "type": "string" + }, + "models": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "attachment": { + "type": "boolean" + }, + "reasoning": { + "type": "boolean" + }, + "temperature": { + "type": "boolean" + }, + "cost": { + "type": "object", + "properties": { + "input": { + "type": "number" + }, + "output": { + "type": "number" + }, + "inputCached": { + "type": "number" + }, + "outputCached": { + "type": "number" + } + }, + "required": [ + "input", + "output", + "inputCached", + "outputCached" + ], + "additionalProperties": false + }, + "limit": { + "type": "object", + "properties": { + "context": { + "type": "number" + }, + "output": { + "type": "number" + } + }, + "required": ["context", "output"], + "additionalProperties": false + }, + "id": { + "type": "string" + } + }, + "additionalProperties": false + } + }, + "options": { + "type": "object", + "additionalProperties": {} + } + }, + "required": ["models"], + "additionalProperties": false + } + }, + "mcp": { + "type": "object", + "additionalProperties": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "local" + }, + "command": { + "type": "array", + "items": { + "type": "string" + } + }, + "environment": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "required": ["type", "command"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "remote" + }, + "url": { + "type": "string" + } + }, + "required": ["type", "url"], + "additionalProperties": false + } + ] + } + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" +} + diff --git a/packages/opencode/package.json b/packages/opencode/package.json index 7f99ad27d..1f732ecb1 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -5,7 +5,8 @@ "type": "module", "private": true, "scripts": { - "typecheck": "tsc --noEmit" + "typecheck": "tsc --noEmit", + "dev": "bun run ./src/index.ts" }, "exports": { "./*": [ @@ -18,7 +19,8 @@ "@types/bun": "latest", "@types/turndown": "5.0.5", "@types/yargs": "17.0.33", - "typescript": "catalog:" + "typescript": "catalog:", + "zod-to-json-schema": "3.24.5" }, "dependencies": { "@clack/prompts": "0.11.0", diff --git a/packages/opencode/script/schema.ts b/packages/opencode/script/schema.ts new file mode 100755 index 000000000..1c0067c71 --- /dev/null +++ b/packages/opencode/script/schema.ts @@ -0,0 +1,8 @@ +#!/usr/bin/env bun + +import "zod-openapi/extend" +import { Config } from "../src/config/config" +import { zodToJsonSchema } from "zod-to-json-schema" + +const result = zodToJsonSchema(Config.Info) +await Bun.write("config.schema.json", JSON.stringify(result, null, 2)) diff --git a/packages/opencode/src/cli/cmd/generate.ts b/packages/opencode/src/cli/cmd/generate.ts index 0cef10772..2e7dcf8df 100644 --- a/packages/opencode/src/cli/cmd/generate.ts +++ b/packages/opencode/src/cli/cmd/generate.ts @@ -2,6 +2,7 @@ import { Server } from "../../server/server" import fs from "fs/promises" import path from "path" import type { CommandModule } from "yargs" +import { Config } from "../../config/config" export const GenerateCommand = { command: "generate", diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index c0da6ee6c..e4bb310b0 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -58,11 +58,6 @@ export namespace Config { }), ) .optional(), - tool: z - .object({ - provider: z.record(z.string(), z.string().array()).optional(), - }) - .optional(), mcp: z.record(z.string(), Mcp).optional(), }) .strict() diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index da6fd8566..3e96571ef 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -289,11 +289,13 @@ export namespace Provider { google: TOOLS, } export async function tools(providerID: string) { + /* const cfg = await Config.get() if (cfg.tool?.provider?.[providerID]) return cfg.tool.provider[providerID].map( (id) => TOOLS.find((t) => t.id === id)!, ) + */ return TOOL_MAPPING[providerID] ?? TOOLS } |
