opencode-skill-autodiscovery 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,139 @@
1
+ // Vendored verbatim from https://agent-plugins.org/schemas/1.0.0/mcp.schema.json
2
+ // so discovery never depends on a network fetch. Re-vendor when a new
3
+ // Agent Plugins schema version is published and this plugin adds support for it.
4
+ export const mcpSchema100 = {
5
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
6
+ "$id": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json",
7
+ "title": "Agent Plugins MCP Configuration",
8
+ "description": "Machine-readable schema for mcp.json in Agent Plugins 1.0.0. The Agent Plugins specification defines additional semantic and operational requirements.",
9
+ "type": "object",
10
+ "properties": {
11
+ "$schema": {
12
+ "const": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json",
13
+ "description": "Canonical identifier of the MCP configuration schema for the Agent Plugins version targeted by this document."
14
+ },
15
+ "mcpServers": {
16
+ "type": "object",
17
+ "additionalProperties": {
18
+ "$ref": "#/$defs/server"
19
+ }
20
+ }
21
+ },
22
+ "required": [
23
+ "$schema",
24
+ "mcpServers"
25
+ ],
26
+ "additionalProperties": false,
27
+ "$defs": {
28
+ "server": {
29
+ "title": "MCP server",
30
+ "oneOf": [
31
+ {
32
+ "$ref": "#/$defs/stdioServer"
33
+ },
34
+ {
35
+ "$ref": "#/$defs/streamableHttpServer"
36
+ },
37
+ {
38
+ "$ref": "#/$defs/sseServer"
39
+ }
40
+ ]
41
+ },
42
+ "stdioServer": {
43
+ "title": "stdio MCP server",
44
+ "type": "object",
45
+ "properties": {
46
+ "type": {
47
+ "const": "stdio"
48
+ },
49
+ "command": {
50
+ "type": "string",
51
+ "minLength": 1,
52
+ "description": "Executable token. Resolution rules are defined by the Agent Plugins specification."
53
+ },
54
+ "args": {
55
+ "type": "array",
56
+ "items": {
57
+ "type": "string"
58
+ }
59
+ },
60
+ "env": {
61
+ "type": "object",
62
+ "propertyNames": {
63
+ "not": {
64
+ "enum": [
65
+ "PLUGIN_ROOT",
66
+ "PLUGIN_DATA"
67
+ ]
68
+ }
69
+ },
70
+ "additionalProperties": {
71
+ "type": "string"
72
+ }
73
+ },
74
+ "cwd": {
75
+ "type": "string",
76
+ "pattern": "^(?:\\./|\\$\\{PLUGIN_ROOT\\}(?:/|$)|\\$\\{PLUGIN_DATA\\}(?:/|$))",
77
+ "description": "Plugin-relative, PLUGIN_ROOT-rooted, or PLUGIN_DATA-rooted working directory. Filesystem containment is validated separately."
78
+ }
79
+ },
80
+ "required": [
81
+ "type",
82
+ "command"
83
+ ],
84
+ "additionalProperties": false
85
+ },
86
+ "streamableHttpServer": {
87
+ "title": "Streamable HTTP MCP server",
88
+ "type": "object",
89
+ "properties": {
90
+ "type": {
91
+ "const": "streamable-http"
92
+ },
93
+ "url": {
94
+ "type": "string",
95
+ "minLength": 1,
96
+ "description": "MCP endpoint URL. URL semantics are defined by the Agent Plugins specification."
97
+ },
98
+ "headers": {
99
+ "$ref": "#/$defs/headers"
100
+ }
101
+ },
102
+ "required": [
103
+ "type",
104
+ "url"
105
+ ],
106
+ "additionalProperties": false
107
+ },
108
+ "sseServer": {
109
+ "title": "Legacy HTTP+SSE MCP server",
110
+ "type": "object",
111
+ "properties": {
112
+ "type": {
113
+ "const": "sse"
114
+ },
115
+ "url": {
116
+ "type": "string",
117
+ "minLength": 1,
118
+ "description": "MCP endpoint URL. URL semantics are defined by the Agent Plugins specification."
119
+ },
120
+ "headers": {
121
+ "$ref": "#/$defs/headers"
122
+ }
123
+ },
124
+ "required": [
125
+ "type",
126
+ "url"
127
+ ],
128
+ "additionalProperties": false
129
+ },
130
+ "headers": {
131
+ "title": "HTTP headers",
132
+ "type": "object",
133
+ "additionalProperties": {
134
+ "type": "string"
135
+ }
136
+ }
137
+ }
138
+ };
139
+ //# sourceMappingURL=mcp-schema-1.0.0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-schema-1.0.0.js","sourceRoot":"","sources":["../../src/schemas/mcp-schema-1.0.0.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ export declare const pluginSchema100: {
2
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
3
+ readonly $id: "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json";
4
+ readonly title: "Agent Plugins Manifest";
5
+ readonly description: "Machine-readable schema for plugin.json in Agent Plugins 1.0.0. The Agent Plugins specification defines additional semantic and operational requirements.";
6
+ readonly type: "object";
7
+ readonly properties: {
8
+ readonly $schema: {
9
+ readonly const: "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json";
10
+ readonly description: "Canonical identifier of the plugin manifest schema for the Agent Plugins version targeted by this document.";
11
+ };
12
+ readonly name: {
13
+ readonly type: "string";
14
+ readonly minLength: 1;
15
+ readonly maxLength: 64;
16
+ readonly pattern: "^(?!.*(?:--|\\.\\.))[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?$";
17
+ readonly description: "Human-readable plugin name.";
18
+ };
19
+ readonly version: {
20
+ readonly type: "string";
21
+ };
22
+ readonly description: {
23
+ readonly type: "string";
24
+ };
25
+ readonly author: {
26
+ readonly type: "object";
27
+ readonly properties: {
28
+ readonly name: {
29
+ readonly type: "string";
30
+ };
31
+ readonly email: {
32
+ readonly type: "string";
33
+ };
34
+ readonly url: {
35
+ readonly type: "string";
36
+ };
37
+ };
38
+ readonly additionalProperties: false;
39
+ };
40
+ readonly homepage: {
41
+ readonly type: "string";
42
+ };
43
+ readonly repository: {
44
+ readonly type: "string";
45
+ };
46
+ readonly license: {
47
+ readonly type: "string";
48
+ };
49
+ readonly keywords: {
50
+ readonly type: "array";
51
+ readonly items: {
52
+ readonly type: "string";
53
+ };
54
+ };
55
+ readonly extensions: {
56
+ readonly type: "object";
57
+ readonly description: "Client-specific manifest data keyed by reverse-domain extension namespace. Agent Plugins assigns no semantics to namespace object contents.";
58
+ readonly additionalProperties: {
59
+ readonly type: "object";
60
+ };
61
+ };
62
+ };
63
+ readonly required: readonly ["$schema", "name"];
64
+ readonly additionalProperties: false;
65
+ };
66
+ //# sourceMappingURL=plugin-schema-1.0.0.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-schema-1.0.0.d.ts","sourceRoot":"","sources":["../../src/schemas/plugin-schema-1.0.0.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmElB,CAAC"}
@@ -0,0 +1,72 @@
1
+ // Vendored verbatim from https://agent-plugins.org/schemas/1.0.0/plugin.schema.json
2
+ // so discovery never depends on a network fetch. Re-vendor when a new
3
+ // Agent Plugins schema version is published and this plugin adds support for it.
4
+ export const pluginSchema100 = {
5
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
6
+ "$id": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
7
+ "title": "Agent Plugins Manifest",
8
+ "description": "Machine-readable schema for plugin.json in Agent Plugins 1.0.0. The Agent Plugins specification defines additional semantic and operational requirements.",
9
+ "type": "object",
10
+ "properties": {
11
+ "$schema": {
12
+ "const": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
13
+ "description": "Canonical identifier of the plugin manifest schema for the Agent Plugins version targeted by this document."
14
+ },
15
+ "name": {
16
+ "type": "string",
17
+ "minLength": 1,
18
+ "maxLength": 64,
19
+ "pattern": "^(?!.*(?:--|\\.\\.))[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?$",
20
+ "description": "Human-readable plugin name."
21
+ },
22
+ "version": {
23
+ "type": "string"
24
+ },
25
+ "description": {
26
+ "type": "string"
27
+ },
28
+ "author": {
29
+ "type": "object",
30
+ "properties": {
31
+ "name": {
32
+ "type": "string"
33
+ },
34
+ "email": {
35
+ "type": "string"
36
+ },
37
+ "url": {
38
+ "type": "string"
39
+ }
40
+ },
41
+ "additionalProperties": false
42
+ },
43
+ "homepage": {
44
+ "type": "string"
45
+ },
46
+ "repository": {
47
+ "type": "string"
48
+ },
49
+ "license": {
50
+ "type": "string"
51
+ },
52
+ "keywords": {
53
+ "type": "array",
54
+ "items": {
55
+ "type": "string"
56
+ }
57
+ },
58
+ "extensions": {
59
+ "type": "object",
60
+ "description": "Client-specific manifest data keyed by reverse-domain extension namespace. Agent Plugins assigns no semantics to namespace object contents.",
61
+ "additionalProperties": {
62
+ "type": "object"
63
+ }
64
+ }
65
+ },
66
+ "required": [
67
+ "$schema",
68
+ "name"
69
+ ],
70
+ "additionalProperties": false
71
+ };
72
+ //# sourceMappingURL=plugin-schema-1.0.0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-schema-1.0.0.js","sourceRoot":"","sources":["../../src/schemas/plugin-schema-1.0.0.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sEAAsE;AACtE,iFAAiF;AACjF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,SAAS,EAAE,8CAA8C;IACzD,KAAK,EAAE,4DAA4D;IACnE,OAAO,EAAE,wBAAwB;IACjC,aAAa,EAAE,2JAA2J;IAC1K,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE;QACZ,SAAS,EAAE;YACT,OAAO,EAAE,4DAA4D;YACrE,aAAa,EAAE,6GAA6G;SAC7H;QACD,MAAM,EAAE;YACN,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,EAAE;YACf,SAAS,EAAE,uDAAuD;YAClE,aAAa,EAAE,6BAA6B;SAC7C;QACD,SAAS,EAAE;YACT,MAAM,EAAE,QAAQ;SACjB;QACD,aAAa,EAAE;YACb,MAAM,EAAE,QAAQ;SACjB;QACD,QAAQ,EAAE;YACR,MAAM,EAAE,QAAQ;YAChB,YAAY,EAAE;gBACZ,MAAM,EAAE;oBACN,MAAM,EAAE,QAAQ;iBACjB;gBACD,OAAO,EAAE;oBACP,MAAM,EAAE,QAAQ;iBACjB;gBACD,KAAK,EAAE;oBACL,MAAM,EAAE,QAAQ;iBACjB;aACF;YACD,sBAAsB,EAAE,KAAK;SAC9B;QACD,UAAU,EAAE;YACV,MAAM,EAAE,QAAQ;SACjB;QACD,YAAY,EAAE;YACZ,MAAM,EAAE,QAAQ;SACjB;QACD,SAAS,EAAE;YACT,MAAM,EAAE,QAAQ;SACjB;QACD,UAAU,EAAE;YACV,MAAM,EAAE,OAAO;YACf,OAAO,EAAE;gBACP,MAAM,EAAE,QAAQ;aACjB;SACF;QACD,YAAY,EAAE;YACZ,MAAM,EAAE,QAAQ;YAChB,aAAa,EAAE,6IAA6I;YAC5J,sBAAsB,EAAE;gBACtB,MAAM,EAAE,QAAQ;aACjB;SACF;KACF;IACD,UAAU,EAAE;QACV,SAAS;QACT,MAAM;KACP;IACD,sBAAsB,EAAE,KAAK;CACrB,CAAC"}
@@ -0,0 +1,12 @@
1
+ export declare const PLUGIN_SCHEMA_1_0_0_ID: "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json";
2
+ export declare const MCP_SCHEMA_1_0_0_ID: "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json";
3
+ export type ValidationResult = {
4
+ valid: true;
5
+ } | {
6
+ valid: false;
7
+ errors: string[];
8
+ };
9
+ export declare function validatePluginManifest(manifest: unknown): ValidationResult;
10
+ export declare function validateMcpDocumentShape(doc: unknown): ValidationResult;
11
+ export declare function validateMcpServerEntry(entry: unknown): ValidationResult;
12
+ //# sourceMappingURL=spec-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-schema.d.ts","sourceRoot":"","sources":["../src/spec-schema.ts"],"names":[],"mappings":"AA4BA,eAAO,MAAM,sBAAsB,8DAAsB,CAAC;AAC1D,eAAO,MAAM,mBAAmB,2DAAmB,CAAC;AAcpD,MAAM,MAAM,gBAAgB,GAAG;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAkBpF,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,OAAO,GAAG,gBAAgB,CAE1E;AAOD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAEvE;AAKD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAEvE"}
@@ -0,0 +1,71 @@
1
+ import { Ajv2020 } from "ajv/dist/2020.js";
2
+ import { pluginSchema100 } from "./schemas/plugin-schema-1.0.0.js";
3
+ import { mcpSchema100 } from "./schemas/mcp-schema-1.0.0.js";
4
+ // Validates plugin.json and mcp.json documents (and individual MCP server
5
+ // entries) against the *published* Agent Plugins JSON schemas, vendored
6
+ // verbatim under ./schemas — never against a hand-copied field list.
7
+ // dodopayments/dodo-agent-plugin#13 found their own hand-authored .mcp.json
8
+ // carried an `enabled` key the real schema's closed union
9
+ // (`additionalProperties: false`) rejects — this project's prior
10
+ // STDIO_KEYS/HTTP_KEYS-based checks already happened to list the right keys
11
+ // for that specific case, but the general risk they carry is real: any field
12
+ // the schema forbids but nobody thought to add to a hand-copied key set
13
+ // silently passes. One concrete case this switch does newly catch: the real
14
+ // schema's `env` sub-schema forbids declaring `PLUGIN_ROOT`/`PLUGIN_DATA`
15
+ // (property name validation on the whole object), where the prior hand-
16
+ // rolled check only dropped those two keys and kept the rest of the entry —
17
+ // see discovery.test.js's "reserved PLUGIN_ROOT/PLUGIN_DATA env keys" tests
18
+ // for both that behavior change and the version-fallback path preserving
19
+ // the old (looser) handling for any schema version not vendored here.
20
+ //
21
+ // Only version 1.0.0 is vendored (it's the only version published today).
22
+ // PLUGIN_SCHEMA/MCP_SCHEMA in schema.ts still accept any 1.x.x for the
23
+ // $schema gate itself; callers apply these stricter validators only when the
24
+ // declared version exactly matches what's vendored here, and fall back to
25
+ // their pre-existing lenient checks otherwise — a future 1.1.0 manifest is
26
+ // never rejected just because this plugin hasn't vendored its schema yet.
27
+ export const PLUGIN_SCHEMA_1_0_0_ID = pluginSchema100.$id;
28
+ export const MCP_SCHEMA_1_0_0_ID = mcpSchema100.$id;
29
+ const ajv = new Ajv2020({ allErrors: true, strict: true });
30
+ const validatePluginDoc = ajv.compile(pluginSchema100);
31
+ const validateMcpDoc = ajv.compile(mcpSchema100);
32
+ // A standalone schema reusing mcp.schema.json's $defs, rather than a pointer
33
+ // into the already-compiled document: self-contained, so it validates one
34
+ // server entry on its own without depending on cross-schema $id resolution.
35
+ const validateMcpEntry = ajv.compile({
36
+ $defs: mcpSchema100.$defs,
37
+ $ref: "#/$defs/server",
38
+ });
39
+ function formatError(e) {
40
+ const path = e.instancePath || "(document root)";
41
+ return `${path} ${e.message ?? "is invalid"}`;
42
+ }
43
+ function toResult(validate, ok) {
44
+ if (ok)
45
+ return { valid: true };
46
+ // A oneOf mismatch (e.g. a server entry matching none of
47
+ // stdio/streamable-http/sse) reports one error per failed branch, which is
48
+ // accurate but repetitive; dedupe rather than lose any distinct message.
49
+ const errors = [...new Set((validate.errors ?? []).map(formatError))];
50
+ return { valid: false, errors };
51
+ }
52
+ // Validates a plugin.json document against Agent Plugins 1.0.0's
53
+ // plugin.schema.json (root manifest shape: name, $schema, extensions, etc.).
54
+ export function validatePluginManifest(manifest) {
55
+ return toResult(validatePluginDoc, validatePluginDoc(manifest));
56
+ }
57
+ // Validates an mcp.json document's top-level shape ($schema + mcpServers
58
+ // container) against Agent Plugins 1.0.0's mcp.schema.json. Does not validate
59
+ // individual server entries — use validateMcpServerEntry for those, so one
60
+ // malformed server never fails the whole document (the existing per-entry
61
+ // fail-closed philosophy this module preserves, not just formalizes).
62
+ export function validateMcpDocumentShape(doc) {
63
+ return toResult(validateMcpDoc, validateMcpDoc(doc));
64
+ }
65
+ // Validates one mcpServers[name] entry against the spec's server union
66
+ // (stdio | streamable-http | sse). A failure here means only that one
67
+ // server is skipped by the caller — never the rest of the package.
68
+ export function validateMcpServerEntry(entry) {
69
+ return toResult(validateMcpEntry, validateMcpEntry(entry));
70
+ }
71
+ //# sourceMappingURL=spec-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-schema.js","sourceRoot":"","sources":["../src/spec-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,0EAA0E;AAC1E,wEAAwE;AACxE,qEAAqE;AACrE,4EAA4E;AAC5E,0DAA0D;AAC1D,iEAAiE;AACjE,4EAA4E;AAC5E,6EAA6E;AAC7E,wEAAwE;AACxE,4EAA4E;AAC5E,0EAA0E;AAC1E,wEAAwE;AACxE,4EAA4E;AAC5E,4EAA4E;AAC5E,yEAAyE;AACzE,sEAAsE;AACtE,EAAE;AACF,0EAA0E;AAC1E,uEAAuE;AACvE,6EAA6E;AAC7E,0EAA0E;AAC1E,2EAA2E;AAC3E,0EAA0E;AAC1E,MAAM,CAAC,MAAM,sBAAsB,GAAG,eAAe,CAAC,GAAG,CAAC;AAC1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAC,GAAG,CAAC;AAEpD,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAE3D,MAAM,iBAAiB,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AACvD,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACjD,6EAA6E;AAC7E,0EAA0E;AAC1E,4EAA4E;AAC5E,MAAM,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAAC;IACnC,KAAK,EAAE,YAAY,CAAC,KAAK;IACzB,IAAI,EAAE,gBAAgB;CACvB,CAAC,CAAC;AAIH,SAAS,WAAW,CAAC,CAAc;IACjC,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,IAAI,iBAAiB,CAAC;IACjD,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,YAAY,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,QAAQ,CAAC,QAA0B,EAAE,EAAW;IACvD,IAAI,EAAE;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC/B,yDAAyD;IACzD,2EAA2E;IAC3E,yEAAyE;IACzE,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACtE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAClC,CAAC;AAED,iEAAiE;AACjE,6EAA6E;AAC7E,MAAM,UAAU,sBAAsB,CAAC,QAAiB;IACtD,OAAO,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,yEAAyE;AACzE,8EAA8E;AAC9E,2EAA2E;AAC3E,0EAA0E;AAC1E,sEAAsE;AACtE,MAAM,UAAU,wBAAwB,CAAC,GAAY;IACnD,OAAO,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,uEAAuE;AACvE,sEAAsE;AACtE,mEAAmE;AACnE,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,OAAO,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-skill-autodiscovery",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "OpenCode plugin that auto-discovers skills installed by VS Code agent plugins, Claude Code plugins, and Agent Plugins 1.0.0 packages, and registers them with the local opencode config.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -41,7 +41,10 @@
41
41
  ],
42
42
  "devDependencies": {
43
43
  "@opencode-ai/plugin": "1.18.13",
44
- "typescript": "^5.5.0",
45
- "@types/node": "^20.0.0"
44
+ "@types/node": "^20.0.0",
45
+ "typescript": "^5.5.0"
46
+ },
47
+ "dependencies": {
48
+ "ajv": "^8.20.0"
46
49
  }
47
50
  }