summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-06-14 12:22:07 -0400
committerDax Raad <[email protected]>2025-06-14 12:22:07 -0400
commit9c6aa82ac1ae11645afa0fee2e92d3cf88e02129 (patch)
tree0db8ce8785765f583563767a95a89ed22c501d6e
parentef74d9749158787537c5de19d31f51b2bf25c37b (diff)
downloadopencode-9c6aa82ac1ae11645afa0fee2e92d3cf88e02129.tar.gz
opencode-9c6aa82ac1ae11645afa0fee2e92d3cf88e02129.zip
docs: config schema
-rw-r--r--README.md2
-rw-r--r--opencode.json3
-rw-r--r--packages/opencode/config.schema.json25
-rwxr-xr-xpackages/opencode/script/publish.ts2
-rw-r--r--packages/opencode/src/config/config.ts1
5 files changed, 25 insertions, 8 deletions
diff --git a/README.md b/README.md
index d2ba219e4..5bc09bd48 100644
--- a/README.md
+++ b/README.md
@@ -51,7 +51,7 @@ Project configuration is optional. You can place an `opencode.json` file in the
```json title="opencode.json"
{
- "$schema": "https://opencode.ai/schemas/opencode.json"
+ "$schema": "http://opencode.ai/config.json"
}
```
diff --git a/opencode.json b/opencode.json
new file mode 100644
index 000000000..aa640e8d4
--- /dev/null
+++ b/opencode.json
@@ -0,0 +1,3 @@
+{
+ "$schema": "http://opencode.ai/config.json"
+}
diff --git a/packages/opencode/config.schema.json b/packages/opencode/config.schema.json
index 50f293032..7eba147b1 100644
--- a/packages/opencode/config.schema.json
+++ b/packages/opencode/config.schema.json
@@ -1,6 +1,9 @@
{
"type": "object",
"properties": {
+ "$schema": {
+ "type": "string"
+ },
"provider": {
"type": "object",
"additionalProperties": {
@@ -69,7 +72,10 @@
"type": "number"
}
},
- "required": ["context", "output"],
+ "required": [
+ "context",
+ "output"
+ ],
"additionalProperties": false
},
"id": {
@@ -84,7 +90,9 @@
"additionalProperties": {}
}
},
- "required": ["models"],
+ "required": [
+ "models"
+ ],
"additionalProperties": false
}
},
@@ -112,7 +120,10 @@
}
}
},
- "required": ["type", "command"],
+ "required": [
+ "type",
+ "command"
+ ],
"additionalProperties": false
},
{
@@ -126,7 +137,10 @@
"type": "string"
}
},
- "required": ["type", "url"],
+ "required": [
+ "type",
+ "url"
+ ],
"additionalProperties": false
}
]
@@ -135,5 +149,4 @@
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
-}
-
+} \ No newline at end of file
diff --git a/packages/opencode/script/publish.ts b/packages/opencode/script/publish.ts
index bc08e18ef..138c772bf 100755
--- a/packages/opencode/script/publish.ts
+++ b/packages/opencode/script/publish.ts
@@ -111,7 +111,7 @@ if (!snapshot) {
!lower.includes("chore:") &&
!lower.includes("ci:") &&
!lower.includes("docs:") &&
- !lower.includes("doc:") &&
+ !lower.includes("doc:")
)
})
.join("\n")
diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts
index e4bb310b0..4623f9cd0 100644
--- a/packages/opencode/src/config/config.ts
+++ b/packages/opencode/src/config/config.ts
@@ -50,6 +50,7 @@ export namespace Config {
export const Info = z
.object({
+ $schema: z.string().optional(),
provider: z
.record(
ModelsDev.Provider.partial().extend({