@contractspec/lib.ai-agent 0.0.0-canary-20260113162409
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.
- package/LICENSE +21 -0
- package/README.md +49 -0
- package/dist/_virtual/rolldown_runtime.js +8 -0
- package/dist/agent/agent-factory.d.ts +104 -0
- package/dist/agent/agent-factory.d.ts.map +1 -0
- package/dist/agent/agent-factory.js +103 -0
- package/dist/agent/agent-factory.js.map +1 -0
- package/dist/agent/contract-spec-agent.d.ts +75 -0
- package/dist/agent/contract-spec-agent.d.ts.map +1 -0
- package/dist/agent/contract-spec-agent.js +148 -0
- package/dist/agent/contract-spec-agent.js.map +1 -0
- package/dist/agent/index.d.ts +3 -0
- package/dist/agent/index.js +4 -0
- package/dist/agent/unified-agent.d.ts +131 -0
- package/dist/agent/unified-agent.d.ts.map +1 -0
- package/dist/agent/unified-agent.js +267 -0
- package/dist/agent/unified-agent.js.map +1 -0
- package/dist/approval/index.d.ts +2 -0
- package/dist/approval/index.js +3 -0
- package/dist/approval/workflow.d.ts +156 -0
- package/dist/approval/workflow.d.ts.map +1 -0
- package/dist/approval/workflow.js +160 -0
- package/dist/approval/workflow.js.map +1 -0
- package/dist/exporters/claude-agent-exporter.d.ts +64 -0
- package/dist/exporters/claude-agent-exporter.d.ts.map +1 -0
- package/dist/exporters/claude-agent-exporter.js +210 -0
- package/dist/exporters/claude-agent-exporter.js.map +1 -0
- package/dist/exporters/index.d.ts +4 -0
- package/dist/exporters/index.js +4 -0
- package/dist/exporters/opencode-exporter.d.ts +64 -0
- package/dist/exporters/opencode-exporter.d.ts.map +1 -0
- package/dist/exporters/opencode-exporter.js +200 -0
- package/dist/exporters/opencode-exporter.js.map +1 -0
- package/dist/exporters/types.d.ts +239 -0
- package/dist/exporters/types.d.ts.map +1 -0
- package/dist/exporters/types.js +0 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.js +31 -0
- package/dist/interop/index.d.ts +4 -0
- package/dist/interop/index.js +4 -0
- package/dist/interop/spec-consumer.d.ts +81 -0
- package/dist/interop/spec-consumer.d.ts.map +1 -0
- package/dist/interop/spec-consumer.js +287 -0
- package/dist/interop/spec-consumer.js.map +1 -0
- package/dist/interop/tool-consumer.d.ts +68 -0
- package/dist/interop/tool-consumer.d.ts.map +1 -0
- package/dist/interop/tool-consumer.js +220 -0
- package/dist/interop/tool-consumer.js.map +1 -0
- package/dist/interop/types.d.ts +262 -0
- package/dist/interop/types.d.ts.map +1 -0
- package/dist/interop/types.js +0 -0
- package/dist/knowledge/index.d.ts +2 -0
- package/dist/knowledge/index.js +3 -0
- package/dist/knowledge/injector.d.ts +38 -0
- package/dist/knowledge/injector.d.ts.map +1 -0
- package/dist/knowledge/injector.js +58 -0
- package/dist/knowledge/injector.js.map +1 -0
- package/dist/memory/in-memory.d.ts +22 -0
- package/dist/memory/in-memory.d.ts.map +1 -0
- package/dist/memory/in-memory.js +48 -0
- package/dist/memory/in-memory.js.map +1 -0
- package/dist/memory/index.d.ts +3 -0
- package/dist/memory/index.js +4 -0
- package/dist/memory/manager.d.ts +42 -0
- package/dist/memory/manager.d.ts.map +1 -0
- package/dist/memory/manager.js +80 -0
- package/dist/memory/manager.js.map +1 -0
- package/dist/providers/claude-agent-sdk/adapter.d.ts +58 -0
- package/dist/providers/claude-agent-sdk/adapter.d.ts.map +1 -0
- package/dist/providers/claude-agent-sdk/adapter.js +306 -0
- package/dist/providers/claude-agent-sdk/adapter.js.map +1 -0
- package/dist/providers/claude-agent-sdk/index.d.ts +4 -0
- package/dist/providers/claude-agent-sdk/index.js +5 -0
- package/dist/providers/claude-agent-sdk/session-bridge.d.ts +101 -0
- package/dist/providers/claude-agent-sdk/session-bridge.d.ts.map +1 -0
- package/dist/providers/claude-agent-sdk/session-bridge.js +158 -0
- package/dist/providers/claude-agent-sdk/session-bridge.js.map +1 -0
- package/dist/providers/claude-agent-sdk/tool-bridge.d.ts +110 -0
- package/dist/providers/claude-agent-sdk/tool-bridge.d.ts.map +1 -0
- package/dist/providers/claude-agent-sdk/tool-bridge.js +122 -0
- package/dist/providers/claude-agent-sdk/tool-bridge.js.map +1 -0
- package/dist/providers/index.d.ts +7 -0
- package/dist/providers/index.js +8 -0
- package/dist/providers/opencode-sdk/adapter.d.ts +54 -0
- package/dist/providers/opencode-sdk/adapter.d.ts.map +1 -0
- package/dist/providers/opencode-sdk/adapter.js +276 -0
- package/dist/providers/opencode-sdk/adapter.js.map +1 -0
- package/dist/providers/opencode-sdk/agent-bridge.d.ts +94 -0
- package/dist/providers/opencode-sdk/agent-bridge.d.ts.map +1 -0
- package/dist/providers/opencode-sdk/agent-bridge.js +165 -0
- package/dist/providers/opencode-sdk/agent-bridge.js.map +1 -0
- package/dist/providers/opencode-sdk/index.d.ts +4 -0
- package/dist/providers/opencode-sdk/index.js +5 -0
- package/dist/providers/opencode-sdk/tool-bridge.d.ts +81 -0
- package/dist/providers/opencode-sdk/tool-bridge.d.ts.map +1 -0
- package/dist/providers/opencode-sdk/tool-bridge.js +127 -0
- package/dist/providers/opencode-sdk/tool-bridge.js.map +1 -0
- package/dist/providers/registry.d.ts +22 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/registry.js +52 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/providers/types.d.ts +243 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +44 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/schema/index.d.ts +3 -0
- package/dist/schema/index.js +4 -0
- package/dist/schema/json-schema-to-zod.d.ts +55 -0
- package/dist/schema/json-schema-to-zod.d.ts.map +1 -0
- package/dist/schema/json-schema-to-zod.js +124 -0
- package/dist/schema/json-schema-to-zod.js.map +1 -0
- package/dist/schema/schema-output.d.ts +77 -0
- package/dist/schema/schema-output.d.ts.map +1 -0
- package/dist/schema/schema-output.js +65 -0
- package/dist/schema/schema-output.js.map +1 -0
- package/dist/session/index.d.ts +2 -0
- package/dist/session/index.js +3 -0
- package/dist/session/store.d.ts +74 -0
- package/dist/session/store.d.ts.map +1 -0
- package/dist/session/store.js +79 -0
- package/dist/session/store.js.map +1 -0
- package/dist/spec/index.d.ts +3 -0
- package/dist/spec/index.js +4 -0
- package/dist/spec/registry.d.ts +47 -0
- package/dist/spec/registry.d.ts.map +1 -0
- package/dist/spec/registry.js +65 -0
- package/dist/spec/registry.js.map +1 -0
- package/dist/spec/spec.d.ts +127 -0
- package/dist/spec/spec.d.ts.map +1 -0
- package/dist/spec/spec.js +30 -0
- package/dist/spec/spec.js.map +1 -0
- package/dist/telemetry/adapter.d.ts +73 -0
- package/dist/telemetry/adapter.d.ts.map +1 -0
- package/dist/telemetry/adapter.js +103 -0
- package/dist/telemetry/adapter.js.map +1 -0
- package/dist/telemetry/index.d.ts +2 -0
- package/dist/telemetry/index.js +3 -0
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/index.js +6 -0
- package/dist/tools/knowledge-tool.d.ts +21 -0
- package/dist/tools/knowledge-tool.d.ts.map +1 -0
- package/dist/tools/knowledge-tool.js +54 -0
- package/dist/tools/knowledge-tool.js.map +1 -0
- package/dist/tools/mcp-client.d.ts +59 -0
- package/dist/tools/mcp-client.d.ts.map +1 -0
- package/dist/tools/mcp-client.js +58 -0
- package/dist/tools/mcp-client.js.map +1 -0
- package/dist/tools/mcp-server.d.ts +46 -0
- package/dist/tools/mcp-server.d.ts.map +1 -0
- package/dist/tools/mcp-server.js +69 -0
- package/dist/tools/mcp-server.js.map +1 -0
- package/dist/tools/tool-adapter.d.ts +50 -0
- package/dist/tools/tool-adapter.d.ts.map +1 -0
- package/dist/tools/tool-adapter.js +80 -0
- package/dist/tools/tool-adapter.js.map +1 -0
- package/dist/types.d.ts +146 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +0 -0
- package/package.json +155 -0
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { agentKey } from "../spec/spec.js";
|
|
2
|
+
import { inferAgentType } from "../providers/opencode-sdk/agent-bridge.js";
|
|
3
|
+
|
|
4
|
+
//#region src/exporters/opencode-exporter.ts
|
|
5
|
+
/**
|
|
6
|
+
* OpenCode SDK Exporter.
|
|
7
|
+
*/
|
|
8
|
+
var OpenCodeExporter = class {
|
|
9
|
+
format = "opencode";
|
|
10
|
+
/**
|
|
11
|
+
* Export an AgentSpec to OpenCode SDK format.
|
|
12
|
+
*/
|
|
13
|
+
export(spec, options = {}) {
|
|
14
|
+
const jsonConfig = this.buildJsonConfig(spec, options);
|
|
15
|
+
return {
|
|
16
|
+
jsonConfig,
|
|
17
|
+
markdownConfig: this.generateMarkdown(spec, jsonConfig, options),
|
|
18
|
+
exportedAt: /* @__PURE__ */ new Date(),
|
|
19
|
+
sourceSpec: agentKey(spec.meta)
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Export multiple specs.
|
|
24
|
+
*/
|
|
25
|
+
exportMany(specs, options = {}) {
|
|
26
|
+
return specs.map((spec) => this.export(spec, options));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Validate that a spec can be exported.
|
|
30
|
+
*/
|
|
31
|
+
validate(spec) {
|
|
32
|
+
const errors = [];
|
|
33
|
+
if (!spec.meta?.key) errors.push("Spec must have a meta.key");
|
|
34
|
+
if (!spec.instructions) errors.push("Spec must have instructions");
|
|
35
|
+
for (const tool of spec.tools ?? []) {
|
|
36
|
+
if (!tool.name) errors.push("All tools must have a name");
|
|
37
|
+
if (tool.name && !/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(tool.name)) errors.push(`Tool name '${tool.name}' should be a valid identifier (letters, numbers, underscores)`);
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
valid: errors.length === 0,
|
|
41
|
+
errors
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Build OpenCode agent JSON configuration.
|
|
46
|
+
*/
|
|
47
|
+
buildJsonConfig(spec, options) {
|
|
48
|
+
const agentType = options.agentType ?? inferAgentType(spec);
|
|
49
|
+
return {
|
|
50
|
+
name: spec.meta.key,
|
|
51
|
+
version: spec.meta.version,
|
|
52
|
+
description: spec.description,
|
|
53
|
+
type: agentType,
|
|
54
|
+
instructions: spec.instructions,
|
|
55
|
+
tools: this.exportTools(spec),
|
|
56
|
+
config: {
|
|
57
|
+
max_steps: options.maxSteps ?? spec.maxSteps ?? 10,
|
|
58
|
+
temperature: options.temperature ?? .7,
|
|
59
|
+
model: options.model
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Export tools to OpenCode format.
|
|
65
|
+
*/
|
|
66
|
+
exportTools(spec) {
|
|
67
|
+
return spec.tools.map((tool) => ({
|
|
68
|
+
name: tool.name,
|
|
69
|
+
description: tool.description ?? `Execute ${tool.name}`,
|
|
70
|
+
schema: tool.schema ?? { type: "object" },
|
|
71
|
+
requires_approval: tool.requiresApproval ?? !tool.automationSafe
|
|
72
|
+
}));
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Generate markdown agent file content.
|
|
76
|
+
*/
|
|
77
|
+
generateMarkdown(spec, jsonConfig, options) {
|
|
78
|
+
const lines = [];
|
|
79
|
+
lines.push("---");
|
|
80
|
+
lines.push(`name: ${jsonConfig.name}`);
|
|
81
|
+
lines.push(`type: ${jsonConfig.type}`);
|
|
82
|
+
if (jsonConfig.version) lines.push(`version: ${jsonConfig.version}`);
|
|
83
|
+
if (jsonConfig.config.model) lines.push(`model: ${jsonConfig.config.model}`);
|
|
84
|
+
if (jsonConfig.config.temperature !== void 0) lines.push(`temperature: ${jsonConfig.config.temperature}`);
|
|
85
|
+
if (jsonConfig.config.max_steps !== void 0) lines.push(`max_steps: ${jsonConfig.config.max_steps}`);
|
|
86
|
+
if (jsonConfig.tools.length > 0) {
|
|
87
|
+
lines.push("tools:");
|
|
88
|
+
for (const tool of jsonConfig.tools) {
|
|
89
|
+
const permission = tool.requires_approval ? " # requires approval" : "";
|
|
90
|
+
lines.push(` - ${tool.name}${permission}`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
lines.push("---");
|
|
94
|
+
lines.push("");
|
|
95
|
+
lines.push(`# ${spec.meta.key}`);
|
|
96
|
+
lines.push("");
|
|
97
|
+
if (spec.description) {
|
|
98
|
+
lines.push(spec.description);
|
|
99
|
+
lines.push("");
|
|
100
|
+
}
|
|
101
|
+
lines.push(`> Agent type: **${jsonConfig.type}**`);
|
|
102
|
+
lines.push("");
|
|
103
|
+
lines.push(this.getAgentTypeDescription(jsonConfig.type));
|
|
104
|
+
lines.push("");
|
|
105
|
+
lines.push("## Instructions");
|
|
106
|
+
lines.push("");
|
|
107
|
+
lines.push(spec.instructions);
|
|
108
|
+
lines.push("");
|
|
109
|
+
if (spec.tools.length > 0) {
|
|
110
|
+
lines.push("## Tools");
|
|
111
|
+
lines.push("");
|
|
112
|
+
for (const tool of spec.tools) {
|
|
113
|
+
const approval = tool.requiresApproval ? " *(requires approval)*" : "";
|
|
114
|
+
const safe = tool.automationSafe === false ? " *(not automation safe)*" : "";
|
|
115
|
+
lines.push(`### ${tool.name}${approval}${safe}`);
|
|
116
|
+
lines.push("");
|
|
117
|
+
if (tool.description) {
|
|
118
|
+
lines.push(tool.description);
|
|
119
|
+
lines.push("");
|
|
120
|
+
}
|
|
121
|
+
if (tool.schema && options.includeComments !== false) {
|
|
122
|
+
lines.push("**Parameters:**");
|
|
123
|
+
lines.push("");
|
|
124
|
+
lines.push("```json");
|
|
125
|
+
lines.push(JSON.stringify(tool.schema, null, options.prettyPrint !== false ? 2 : 0));
|
|
126
|
+
lines.push("```");
|
|
127
|
+
lines.push("");
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (spec.knowledge && spec.knowledge.length > 0) {
|
|
132
|
+
lines.push("## Knowledge Sources");
|
|
133
|
+
lines.push("");
|
|
134
|
+
for (const k of spec.knowledge) {
|
|
135
|
+
const required = k.required ? "(required)" : "(optional)";
|
|
136
|
+
lines.push(`- **${k.key}** ${required}`);
|
|
137
|
+
if (k.instructions) lines.push(` - ${k.instructions}`);
|
|
138
|
+
}
|
|
139
|
+
lines.push("");
|
|
140
|
+
}
|
|
141
|
+
if (spec.policy) {
|
|
142
|
+
lines.push("## Policy");
|
|
143
|
+
lines.push("");
|
|
144
|
+
if (spec.policy.confidence?.min) lines.push(`- Minimum confidence: ${spec.policy.confidence.min}`);
|
|
145
|
+
if (spec.policy.escalation) lines.push("- Escalation policy configured");
|
|
146
|
+
lines.push("");
|
|
147
|
+
}
|
|
148
|
+
lines.push("## Configuration");
|
|
149
|
+
lines.push("");
|
|
150
|
+
lines.push("```json");
|
|
151
|
+
lines.push(JSON.stringify(jsonConfig.config, null, options.prettyPrint !== false ? 2 : 0));
|
|
152
|
+
lines.push("```");
|
|
153
|
+
lines.push("");
|
|
154
|
+
lines.push("---");
|
|
155
|
+
lines.push("");
|
|
156
|
+
lines.push(`*Generated from ContractSpec: ${agentKey(spec.meta)}*`);
|
|
157
|
+
lines.push(`*Exported at: ${(/* @__PURE__ */ new Date()).toISOString()}*`);
|
|
158
|
+
return lines.join("\n");
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Get description for agent type.
|
|
162
|
+
*/
|
|
163
|
+
getAgentTypeDescription(type) {
|
|
164
|
+
switch (type) {
|
|
165
|
+
case "build": return "Primary agent with full tool access for code generation and modification.";
|
|
166
|
+
case "plan": return "Restricted agent for analysis and planning. File edits and bash commands require approval.";
|
|
167
|
+
case "general": return "General-purpose subagent for complex questions and multi-step tasks.";
|
|
168
|
+
case "explore": return "Fast subagent optimized for codebase exploration and pattern searching.";
|
|
169
|
+
default: return "";
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
/**
|
|
174
|
+
* Export an AgentSpec to OpenCode SDK format.
|
|
175
|
+
*/
|
|
176
|
+
function exportToOpenCode(spec, options) {
|
|
177
|
+
return new OpenCodeExporter().export(spec, options);
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Generate OpenCode agent markdown from an AgentSpec.
|
|
181
|
+
*/
|
|
182
|
+
function generateOpenCodeMarkdown(spec, options) {
|
|
183
|
+
return new OpenCodeExporter().export(spec, options).markdownConfig;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Generate OpenCode agent JSON from an AgentSpec.
|
|
187
|
+
*/
|
|
188
|
+
function generateOpenCodeJSON(spec, options) {
|
|
189
|
+
return new OpenCodeExporter().export(spec, options).jsonConfig;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Validate an AgentSpec for OpenCode SDK export.
|
|
193
|
+
*/
|
|
194
|
+
function validateForOpenCode(spec) {
|
|
195
|
+
return new OpenCodeExporter().validate(spec);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
//#endregion
|
|
199
|
+
export { OpenCodeExporter, exportToOpenCode, generateOpenCodeJSON, generateOpenCodeMarkdown, validateForOpenCode };
|
|
200
|
+
//# sourceMappingURL=opencode-exporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-exporter.js","names":[],"sources":["../../src/exporters/opencode-exporter.ts"],"sourcesContent":["/**\n * OpenCode SDK Exporter\n *\n * Exports ContractSpec AgentSpec definitions to formats compatible with\n * @opencode-ai/sdk (JSON config and markdown agent files).\n */\n\nimport type { AgentSpec } from '../spec/spec';\nimport { agentKey } from '../spec/spec';\nimport type {\n Exporter,\n OpenCodeAgentJSON,\n OpenCodeExportOptions,\n OpenCodeExportResult,\n OpenCodeToolJSON,\n} from './types';\nimport type { OpenCodeAgentType } from '../providers/types';\nimport { inferAgentType } from '../providers/opencode-sdk/agent-bridge';\n\n// ============================================================================\n// Exporter Implementation\n// ============================================================================\n\n/**\n * OpenCode SDK Exporter.\n */\nexport class OpenCodeExporter implements Exporter<\n OpenCodeExportOptions,\n OpenCodeExportResult\n> {\n readonly format = 'opencode' as const;\n\n /**\n * Export an AgentSpec to OpenCode SDK format.\n */\n export(\n spec: AgentSpec,\n options: OpenCodeExportOptions = {}\n ): OpenCodeExportResult {\n const jsonConfig = this.buildJsonConfig(spec, options);\n const markdownConfig = this.generateMarkdown(spec, jsonConfig, options);\n\n return {\n jsonConfig,\n markdownConfig,\n exportedAt: new Date(),\n sourceSpec: agentKey(spec.meta),\n };\n }\n\n /**\n * Export multiple specs.\n */\n exportMany(\n specs: AgentSpec[],\n options: OpenCodeExportOptions = {}\n ): OpenCodeExportResult[] {\n return specs.map((spec) => this.export(spec, options));\n }\n\n /**\n * Validate that a spec can be exported.\n */\n validate(spec: AgentSpec): { valid: boolean; errors: string[] } {\n const errors: string[] = [];\n\n if (!spec.meta?.key) {\n errors.push('Spec must have a meta.key');\n }\n\n if (!spec.instructions) {\n errors.push('Spec must have instructions');\n }\n\n // OpenCode doesn't require tools, but we check for valid tool names\n for (const tool of spec.tools ?? []) {\n if (!tool.name) {\n errors.push('All tools must have a name');\n }\n // OpenCode tool names should be valid identifiers\n if (tool.name && !/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(tool.name)) {\n errors.push(\n `Tool name '${tool.name}' should be a valid identifier (letters, numbers, underscores)`\n );\n }\n }\n\n return { valid: errors.length === 0, errors };\n }\n\n // ============================================================================\n // Private Methods\n // ============================================================================\n\n /**\n * Build OpenCode agent JSON configuration.\n */\n private buildJsonConfig(\n spec: AgentSpec,\n options: OpenCodeExportOptions\n ): OpenCodeAgentJSON {\n const agentType: OpenCodeAgentType =\n options.agentType ?? inferAgentType(spec);\n\n return {\n name: spec.meta.key,\n version: spec.meta.version,\n description: spec.description,\n type: agentType,\n instructions: spec.instructions,\n tools: this.exportTools(spec),\n config: {\n max_steps: options.maxSteps ?? spec.maxSteps ?? 10,\n temperature: options.temperature ?? 0.7,\n model: options.model,\n },\n };\n }\n\n /**\n * Export tools to OpenCode format.\n */\n private exportTools(spec: AgentSpec): OpenCodeToolJSON[] {\n return spec.tools.map((tool) => ({\n name: tool.name,\n description: tool.description ?? `Execute ${tool.name}`,\n schema: tool.schema ?? { type: 'object' },\n requires_approval: tool.requiresApproval ?? !tool.automationSafe,\n }));\n }\n\n /**\n * Generate markdown agent file content.\n */\n private generateMarkdown(\n spec: AgentSpec,\n jsonConfig: OpenCodeAgentJSON,\n options: OpenCodeExportOptions\n ): string {\n const lines: string[] = [];\n\n // Frontmatter\n lines.push('---');\n lines.push(`name: ${jsonConfig.name}`);\n lines.push(`type: ${jsonConfig.type}`);\n\n if (jsonConfig.version) {\n lines.push(`version: ${jsonConfig.version}`);\n }\n\n if (jsonConfig.config.model) {\n lines.push(`model: ${jsonConfig.config.model}`);\n }\n\n if (jsonConfig.config.temperature !== undefined) {\n lines.push(`temperature: ${jsonConfig.config.temperature}`);\n }\n\n if (jsonConfig.config.max_steps !== undefined) {\n lines.push(`max_steps: ${jsonConfig.config.max_steps}`);\n }\n\n // Tool list in frontmatter\n if (jsonConfig.tools.length > 0) {\n lines.push('tools:');\n for (const tool of jsonConfig.tools) {\n const permission = tool.requires_approval ? ' # requires approval' : '';\n lines.push(` - ${tool.name}${permission}`);\n }\n }\n\n lines.push('---');\n lines.push('');\n\n // Title\n lines.push(`# ${spec.meta.key}`);\n lines.push('');\n\n // Description\n if (spec.description) {\n lines.push(spec.description);\n lines.push('');\n }\n\n // Agent type explanation\n lines.push(`> Agent type: **${jsonConfig.type}**`);\n lines.push('');\n lines.push(this.getAgentTypeDescription(jsonConfig.type));\n lines.push('');\n\n // Instructions\n lines.push('## Instructions');\n lines.push('');\n lines.push(spec.instructions);\n lines.push('');\n\n // Tools section\n if (spec.tools.length > 0) {\n lines.push('## Tools');\n lines.push('');\n for (const tool of spec.tools) {\n const approval = tool.requiresApproval ? ' *(requires approval)*' : '';\n const safe =\n tool.automationSafe === false ? ' *(not automation safe)*' : '';\n lines.push(`### ${tool.name}${approval}${safe}`);\n lines.push('');\n if (tool.description) {\n lines.push(tool.description);\n lines.push('');\n }\n if (tool.schema && options.includeComments !== false) {\n lines.push('**Parameters:**');\n lines.push('');\n lines.push('```json');\n lines.push(\n JSON.stringify(\n tool.schema,\n null,\n options.prettyPrint !== false ? 2 : 0\n )\n );\n lines.push('```');\n lines.push('');\n }\n }\n }\n\n // Knowledge sources\n if (spec.knowledge && spec.knowledge.length > 0) {\n lines.push('## Knowledge Sources');\n lines.push('');\n for (const k of spec.knowledge) {\n const required = k.required ? '(required)' : '(optional)';\n lines.push(`- **${k.key}** ${required}`);\n if (k.instructions) {\n lines.push(` - ${k.instructions}`);\n }\n }\n lines.push('');\n }\n\n // Policy\n if (spec.policy) {\n lines.push('## Policy');\n lines.push('');\n if (spec.policy.confidence?.min) {\n lines.push(`- Minimum confidence: ${spec.policy.confidence.min}`);\n }\n if (spec.policy.escalation) {\n lines.push('- Escalation policy configured');\n }\n lines.push('');\n }\n\n // Configuration (JSON)\n lines.push('## Configuration');\n lines.push('');\n lines.push('```json');\n lines.push(\n JSON.stringify(\n jsonConfig.config,\n null,\n options.prettyPrint !== false ? 2 : 0\n )\n );\n lines.push('```');\n lines.push('');\n\n // Footer\n lines.push('---');\n lines.push('');\n lines.push(`*Generated from ContractSpec: ${agentKey(spec.meta)}*`);\n lines.push(`*Exported at: ${new Date().toISOString()}*`);\n\n return lines.join('\\n');\n }\n\n /**\n * Get description for agent type.\n */\n private getAgentTypeDescription(type: OpenCodeAgentType): string {\n switch (type) {\n case 'build':\n return 'Primary agent with full tool access for code generation and modification.';\n case 'plan':\n return 'Restricted agent for analysis and planning. File edits and bash commands require approval.';\n case 'general':\n return 'General-purpose subagent for complex questions and multi-step tasks.';\n case 'explore':\n return 'Fast subagent optimized for codebase exploration and pattern searching.';\n default:\n return '';\n }\n }\n}\n\n// ============================================================================\n// Convenience Functions\n// ============================================================================\n\n/**\n * Export an AgentSpec to OpenCode SDK format.\n */\nexport function exportToOpenCode(\n spec: AgentSpec,\n options?: OpenCodeExportOptions\n): OpenCodeExportResult {\n const exporter = new OpenCodeExporter();\n return exporter.export(spec, options);\n}\n\n/**\n * Generate OpenCode agent markdown from an AgentSpec.\n */\nexport function generateOpenCodeMarkdown(\n spec: AgentSpec,\n options?: OpenCodeExportOptions\n): string {\n const exporter = new OpenCodeExporter();\n const result = exporter.export(spec, options);\n return result.markdownConfig;\n}\n\n/**\n * Generate OpenCode agent JSON from an AgentSpec.\n */\nexport function generateOpenCodeJSON(\n spec: AgentSpec,\n options?: OpenCodeExportOptions\n): OpenCodeAgentJSON {\n const exporter = new OpenCodeExporter();\n const result = exporter.export(spec, options);\n return result.jsonConfig;\n}\n\n/**\n * Validate an AgentSpec for OpenCode SDK export.\n */\nexport function validateForOpenCode(spec: AgentSpec): {\n valid: boolean;\n errors: string[];\n} {\n const exporter = new OpenCodeExporter();\n return exporter.validate(spec);\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { AgentSpec } from "../spec/spec.js";
|
|
2
|
+
import { OpenCodeAgentType } from "../providers/types.js";
|
|
3
|
+
|
|
4
|
+
//#region src/exporters/types.d.ts
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Base export options.
|
|
8
|
+
*/
|
|
9
|
+
interface ExportOptions {
|
|
10
|
+
/** Include comments/documentation in output */
|
|
11
|
+
includeComments?: boolean;
|
|
12
|
+
/** Pretty-print JSON output */
|
|
13
|
+
prettyPrint?: boolean;
|
|
14
|
+
/** Custom metadata to include */
|
|
15
|
+
metadata?: Record<string, unknown>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Export target format.
|
|
19
|
+
*/
|
|
20
|
+
type ExportFormat = 'claude-agent' | 'opencode' | 'mcp' | 'json';
|
|
21
|
+
/**
|
|
22
|
+
* Options for Claude Agent SDK export.
|
|
23
|
+
*/
|
|
24
|
+
interface ClaudeAgentExportOptions extends ExportOptions {
|
|
25
|
+
/** Model to use */
|
|
26
|
+
model?: string;
|
|
27
|
+
/** Generate CLAUDE.md for Claude Code CLI */
|
|
28
|
+
generateClaudeMd?: boolean;
|
|
29
|
+
/** Enable computer use in exported config */
|
|
30
|
+
computerUse?: boolean;
|
|
31
|
+
/** Enable extended thinking in exported config */
|
|
32
|
+
extendedThinking?: boolean;
|
|
33
|
+
/** MCP servers to include */
|
|
34
|
+
mcpServers?: {
|
|
35
|
+
name: string;
|
|
36
|
+
command: string;
|
|
37
|
+
args?: string[];
|
|
38
|
+
}[];
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Claude Agent SDK export result.
|
|
42
|
+
*/
|
|
43
|
+
interface ClaudeAgentExportResult {
|
|
44
|
+
/** SDK configuration object */
|
|
45
|
+
config: ClaudeAgentConfig;
|
|
46
|
+
/** Generated CLAUDE.md content (if requested) */
|
|
47
|
+
claudeMd?: string;
|
|
48
|
+
/** Tool definitions in SDK format */
|
|
49
|
+
tools: ClaudeToolDefinition[];
|
|
50
|
+
/** Export metadata */
|
|
51
|
+
exportedAt: Date;
|
|
52
|
+
/** Source spec key */
|
|
53
|
+
sourceSpec: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Claude Agent SDK configuration.
|
|
57
|
+
*/
|
|
58
|
+
interface ClaudeAgentConfig {
|
|
59
|
+
model: string;
|
|
60
|
+
system: string;
|
|
61
|
+
tools: ClaudeToolDefinition[];
|
|
62
|
+
max_turns?: number;
|
|
63
|
+
computer_use?: boolean;
|
|
64
|
+
extended_thinking?: boolean;
|
|
65
|
+
mcp_servers?: {
|
|
66
|
+
name: string;
|
|
67
|
+
command: string;
|
|
68
|
+
args?: string[];
|
|
69
|
+
}[];
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Claude Agent SDK tool definition.
|
|
73
|
+
*/
|
|
74
|
+
interface ClaudeToolDefinition {
|
|
75
|
+
name: string;
|
|
76
|
+
description: string;
|
|
77
|
+
input_schema: {
|
|
78
|
+
type: 'object';
|
|
79
|
+
properties?: Record<string, unknown>;
|
|
80
|
+
required?: string[];
|
|
81
|
+
};
|
|
82
|
+
requires_confirmation?: boolean;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Options for OpenCode SDK export.
|
|
86
|
+
*/
|
|
87
|
+
interface OpenCodeExportOptions extends ExportOptions {
|
|
88
|
+
/** Agent type override */
|
|
89
|
+
agentType?: OpenCodeAgentType;
|
|
90
|
+
/** Model to use */
|
|
91
|
+
model?: string;
|
|
92
|
+
/** Temperature */
|
|
93
|
+
temperature?: number;
|
|
94
|
+
/** Maximum steps */
|
|
95
|
+
maxSteps?: number;
|
|
96
|
+
/** Output format */
|
|
97
|
+
format?: 'json' | 'markdown';
|
|
98
|
+
/** Output path for agent file */
|
|
99
|
+
outputPath?: string;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* OpenCode SDK export result.
|
|
103
|
+
*/
|
|
104
|
+
interface OpenCodeExportResult {
|
|
105
|
+
/** JSON agent configuration */
|
|
106
|
+
jsonConfig: OpenCodeAgentJSON;
|
|
107
|
+
/** Markdown agent file content */
|
|
108
|
+
markdownConfig: string;
|
|
109
|
+
/** Export metadata */
|
|
110
|
+
exportedAt: Date;
|
|
111
|
+
/** Source spec key */
|
|
112
|
+
sourceSpec: string;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* OpenCode agent JSON configuration.
|
|
116
|
+
*/
|
|
117
|
+
interface OpenCodeAgentJSON {
|
|
118
|
+
name: string;
|
|
119
|
+
version?: string;
|
|
120
|
+
description?: string;
|
|
121
|
+
type: OpenCodeAgentType;
|
|
122
|
+
instructions: string;
|
|
123
|
+
tools: OpenCodeToolJSON[];
|
|
124
|
+
config: {
|
|
125
|
+
max_steps?: number;
|
|
126
|
+
temperature?: number;
|
|
127
|
+
model?: string;
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* OpenCode tool JSON definition.
|
|
132
|
+
*/
|
|
133
|
+
interface OpenCodeToolJSON {
|
|
134
|
+
name: string;
|
|
135
|
+
description: string;
|
|
136
|
+
schema: Record<string, unknown>;
|
|
137
|
+
requires_approval?: boolean;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Options for MCP export.
|
|
141
|
+
*/
|
|
142
|
+
interface MCPExportOptions extends ExportOptions {
|
|
143
|
+
/** Server name */
|
|
144
|
+
serverName?: string;
|
|
145
|
+
/** Server version */
|
|
146
|
+
serverVersion?: string;
|
|
147
|
+
/** Include resources */
|
|
148
|
+
includeResources?: boolean;
|
|
149
|
+
/** Include prompts */
|
|
150
|
+
includePrompts?: boolean;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* MCP export result.
|
|
154
|
+
*/
|
|
155
|
+
interface MCPExportResult {
|
|
156
|
+
/** Server definition */
|
|
157
|
+
server: MCPServerDefinition;
|
|
158
|
+
/** Tool definitions */
|
|
159
|
+
tools: MCPToolDefinition[];
|
|
160
|
+
/** Resource definitions (if included) */
|
|
161
|
+
resources?: MCPResourceDefinition[];
|
|
162
|
+
/** Prompt definitions (if included) */
|
|
163
|
+
prompts?: MCPPromptDefinition[];
|
|
164
|
+
/** Export metadata */
|
|
165
|
+
exportedAt: Date;
|
|
166
|
+
/** Source spec key */
|
|
167
|
+
sourceSpec: string;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* MCP server definition.
|
|
171
|
+
*/
|
|
172
|
+
interface MCPServerDefinition {
|
|
173
|
+
name: string;
|
|
174
|
+
version: string;
|
|
175
|
+
description?: string;
|
|
176
|
+
capabilities: {
|
|
177
|
+
tools?: boolean;
|
|
178
|
+
resources?: boolean;
|
|
179
|
+
prompts?: boolean;
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* MCP tool definition.
|
|
184
|
+
*/
|
|
185
|
+
interface MCPToolDefinition {
|
|
186
|
+
name: string;
|
|
187
|
+
description: string;
|
|
188
|
+
inputSchema: {
|
|
189
|
+
type: 'object';
|
|
190
|
+
properties?: Record<string, unknown>;
|
|
191
|
+
required?: string[];
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* MCP resource definition.
|
|
196
|
+
*/
|
|
197
|
+
interface MCPResourceDefinition {
|
|
198
|
+
uri: string;
|
|
199
|
+
name: string;
|
|
200
|
+
description?: string;
|
|
201
|
+
mimeType?: string;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* MCP prompt definition.
|
|
205
|
+
*/
|
|
206
|
+
interface MCPPromptDefinition {
|
|
207
|
+
name: string;
|
|
208
|
+
description?: string;
|
|
209
|
+
arguments?: {
|
|
210
|
+
name: string;
|
|
211
|
+
description?: string;
|
|
212
|
+
required?: boolean;
|
|
213
|
+
}[];
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Generic exporter interface.
|
|
217
|
+
*/
|
|
218
|
+
interface Exporter<TOptions extends ExportOptions, TResult> {
|
|
219
|
+
/** Export format identifier */
|
|
220
|
+
readonly format: ExportFormat;
|
|
221
|
+
/**
|
|
222
|
+
* Export an AgentSpec to the target format.
|
|
223
|
+
*/
|
|
224
|
+
export(spec: AgentSpec, options?: TOptions): TResult;
|
|
225
|
+
/**
|
|
226
|
+
* Export multiple specs.
|
|
227
|
+
*/
|
|
228
|
+
exportMany(specs: AgentSpec[], options?: TOptions): TResult[];
|
|
229
|
+
/**
|
|
230
|
+
* Validate that a spec can be exported.
|
|
231
|
+
*/
|
|
232
|
+
validate(spec: AgentSpec): {
|
|
233
|
+
valid: boolean;
|
|
234
|
+
errors: string[];
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
//#endregion
|
|
238
|
+
export { ClaudeAgentConfig, ClaudeAgentExportOptions, ClaudeAgentExportResult, ClaudeToolDefinition, ExportFormat, ExportOptions, Exporter, MCPExportOptions, MCPExportResult, MCPPromptDefinition, MCPResourceDefinition, MCPServerDefinition, MCPToolDefinition, OpenCodeAgentJSON, OpenCodeExportOptions, OpenCodeExportResult, OpenCodeToolJSON };
|
|
239
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../../src/exporters/types.ts"],"sourcesContent":[],"mappings":";;;;;;;;AA8DkB,UA7CD,aAAA,CA6CC;EAQD;EAaA,eAAA,CAAA,EAAA,OAAoB;EAkBpB;EAkBA,WAAA,CAAA,EAAA,OAAA;EAcA;EAiBA,QAAA,CAAA,EA/HJ,MA+HI,CAAA,MAAgB,EAAA,OAGvB,CAAA;AAWV;AAcA;;;AAMc,KA3JF,YAAA,GA2JE,cAAA,GAAA,UAAA,GAAA,KAAA,GAAA,MAAA;;;;AAYG,UA9JA,wBAAA,SAAiC,aA8Jd,CAAA;EAcnB;EAaA,KAAA,CAAA,EAAA,MAAA;EAUA;EAiBA,gBAAQ,CAAA,EAAA,OAAA;EAAkB;EAExB,WAAA,CAAA,EAAA,OAAA;EAKJ;EAAqB,gBAAA,CAAA,EAAA,OAAA;EAAW;EAK3B,UAAA,CAAA,EAAA;IAAuB,IAAA,EAAA,MAAA;IAAW,OAAA,EAAA,MAAA;IAKrC,IAAA,CAAA,EAAA,MAAA,EAAA;EAAS,CAAA,EAAA;;;;;UArNT,uBAAA;;UAEP;;;;SAID;;cAEK;;;;;;;UAQG,iBAAA;;;SAGR;;;;;;;;;;;;;UAUQ,oBAAA;;;;;iBAKA;;;;;;;;UAaA,qBAAA,SAA8B;;cAEjC;;;;;;;;;;;;;;;UAgBG,oBAAA;;cAEH;;;;cAIA;;;;;;;UAQG,iBAAA;;;;QAIT;;SAEC;;;;;;;;;;UAWQ,gBAAA;;;UAGP;;;;;;UAWO,gBAAA,SAAyB;;;;;;;;;;;;;UAczB,eAAA;;UAEP;;SAED;;cAEK;;YAEF;;cAEE;;;;;;;UAQG,mBAAA;;;;;;;;;;;;;UAcA,iBAAA;;;;;iBAKA;;;;;;;UAQA,qBAAA;;;;;;;;;UAUA,mBAAA;;;;;;;;;;;;UAiBA,0BAA0B;;mBAExB;;;;eAKJ,qBAAqB,WAAW;;;;oBAK3B,uBAAuB,WAAW;;;;iBAKrC"}
|
|
File without changes
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { AgentConfidencePolicy, AgentEscalationPolicy, AgentKnowledgeRef, AgentMemoryConfig, AgentMeta, AgentPolicy, AgentSpec, AgentToolConfig, agentKey, defineAgent } from "./spec/spec.js";
|
|
2
|
+
import { AgentRegistry, createAgentRegistry } from "./spec/registry.js";
|
|
3
|
+
import { AgentCallOptions, AgentEventEmitter, AgentEventName, AgentEventPayload, AgentFinishReason, AgentGenerateParams, AgentGenerateResult, AgentMessage, AgentSessionState, AgentStatus, AgentStepMetrics, AgentStreamParams, ToolCallInfo, ToolExecutionContext, ToolHandler, ToolResultInfo } from "./types.js";
|
|
4
|
+
import { AgentSessionStore, InMemorySessionStore, createInMemorySessionStore, generateSessionId } from "./session/store.js";
|
|
5
|
+
import { InMemoryTelemetryCollector, OperationMetricSample, TelemetryCollector, createInMemoryTelemetryCollector, noopTelemetryCollector, trackAgentStep } from "./telemetry/adapter.js";
|
|
6
|
+
import { ContractSpecAgent, ContractSpecAgentConfig } from "./agent/contract-spec-agent.js";
|
|
7
|
+
import { McpClientConfig, McpClientResult, createMcpToolsets, mcpServerToTools } from "./tools/mcp-client.js";
|
|
8
|
+
import { ClaudeAgentContextMetadata, ClaudeAgentSDKConfig, ContextCreationError, ExternalAgentContext, ExternalAgentProvider, ExternalExecuteParams, ExternalExecuteResult, ExternalProviderError, ExternalProviderFactory, ExternalStreamChunk, ExternalToolDefinition, ExternalToolSet, ExternalUsage, OpenCodeAgentType, OpenCodeContextMetadata, OpenCodeSDKConfig, ProviderExecutionError, ProviderNotAvailableError, ProviderRegistry } from "./providers/types.js";
|
|
9
|
+
import { UnifiedAgent, UnifiedAgentBackend, UnifiedAgentBackendConfig, UnifiedAgentConfig, UnifiedAgentRunOptions, UnifiedAgentState, createAISDKAgent, createClaudeAgentSDKAgent, createOpenCodeSDKAgent, createUnifiedAgent, getAvailableBackends } from "./agent/unified-agent.js";
|
|
10
|
+
import "./agent/index.js";
|
|
11
|
+
import { ApprovalRequest, ApprovalStatus, ApprovalStore, ApprovalWorkflow, InMemoryApprovalStore, createApprovalWorkflow } from "./approval/workflow.js";
|
|
12
|
+
import "./approval/index.js";
|
|
13
|
+
import { ClaudeAgentConfig, ClaudeAgentExportOptions, ClaudeAgentExportResult, ClaudeToolDefinition, ExportFormat, ExportOptions, Exporter, MCPExportOptions, MCPExportResult, MCPPromptDefinition, MCPResourceDefinition, MCPServerDefinition, MCPToolDefinition, OpenCodeAgentJSON, OpenCodeExportOptions, OpenCodeExportResult, OpenCodeToolJSON } from "./exporters/types.js";
|
|
14
|
+
import { ClaudeAgentExporter, exportToClaudeAgent, generateClaudeMd, validateForClaudeAgent } from "./exporters/claude-agent-exporter.js";
|
|
15
|
+
import { OpenCodeExporter, exportToOpenCode, generateOpenCodeJSON, generateOpenCodeMarkdown, validateForOpenCode } from "./exporters/opencode-exporter.js";
|
|
16
|
+
import "./exporters/index.js";
|
|
17
|
+
import "./spec/index.js";
|
|
18
|
+
import { buildToolHandlers, createToolHandler, specToolToAISDKTool, specToolsToAISDKTools } from "./tools/tool-adapter.js";
|
|
19
|
+
import { createKnowledgeQueryTool } from "./tools/knowledge-tool.js";
|
|
20
|
+
import { AgentMcpServerConfig, agentToMcpServer, createAgentMcpServer } from "./tools/mcp-server.js";
|
|
21
|
+
import "./tools/index.js";
|
|
22
|
+
import { jsonSchemaToZod, jsonSchemaToZodSafe } from "./schema/json-schema-to-zod.js";
|
|
23
|
+
import { SchemaOutput, enumToChoiceOutput, jsonSchemaToArrayOutput, jsonSchemaToOutput, textOutput, zodToOutput } from "./schema/schema-output.js";
|
|
24
|
+
import "./schema/index.js";
|
|
25
|
+
import { createKnowledgeInjector, injectStaticKnowledge } from "./knowledge/injector.js";
|
|
26
|
+
import "./session/index.js";
|
|
27
|
+
import "./telemetry/index.js";
|
|
28
|
+
import { ClaudeAgentSDKProvider } from "./providers/claude-agent-sdk/adapter.js";
|
|
29
|
+
import { OpenCodeSDKProvider } from "./providers/opencode-sdk/adapter.js";
|
|
30
|
+
import { createProviderRegistry, defaultProviderRegistry } from "./providers/registry.js";
|
|
31
|
+
import "./providers/index.js";
|
|
32
|
+
import { ExecutionMode, ExternalToolConfig, ImplementationPromptOptions, ImplementationTaskType, McpServerConfig, McpToolDefinition, SpecConsumer, SpecConsumerConfig, SpecExportFormat, SpecListEntry, SpecListOptions, SpecListResult, SpecMarkdownOptions, SpecPromptOptions, SpecQueryResult, ToolConsumer, ToolConsumerConfig, ToolExportFormat, ToolExportTarget, ToolServer, ToolServerConfig, ToolWithHandler, UnifiedAgentProvider, UnifiedAgentStatus } from "./interop/types.js";
|
|
33
|
+
import { ContractSpecConsumer, createSingleSpecConsumer, createSpecConsumer } from "./interop/spec-consumer.js";
|
|
34
|
+
import { ContractSpecToolConsumer, createToolConsumer, createToolServer, exportToolsForExternalSDK } from "./interop/tool-consumer.js";
|
|
35
|
+
import "./interop/index.js";
|
|
36
|
+
import { Experimental_Agent as ToolLoopAgent, LanguageModel, LanguageModelUsage, ModelMessage, StepResult, Tool, ToolSet, generateText } from "ai";
|
|
37
|
+
export { AgentCallOptions, AgentConfidencePolicy, AgentEscalationPolicy, AgentEventEmitter, AgentEventName, AgentEventPayload, AgentFinishReason, AgentGenerateParams, AgentGenerateResult, AgentKnowledgeRef, AgentMcpServerConfig, AgentMemoryConfig, AgentMessage, AgentMeta, AgentPolicy, AgentRegistry, AgentSessionState, AgentSessionStore, AgentSpec, AgentStatus, AgentStepMetrics, AgentStreamParams, AgentToolConfig, ApprovalRequest, ApprovalStatus, ApprovalStore, ApprovalWorkflow, ClaudeAgentConfig, ClaudeAgentContextMetadata, ClaudeAgentExportOptions, ClaudeAgentExportResult, ClaudeAgentExporter, ClaudeAgentSDKConfig, ClaudeAgentSDKProvider, ClaudeToolDefinition, ContextCreationError, ContractSpecAgent, ContractSpecAgentConfig, ContractSpecConsumer, ContractSpecToolConsumer, ExecutionMode, ExportFormat, ExportOptions, Exporter, ExternalAgentContext, ExternalAgentProvider, ExternalExecuteParams, ExternalExecuteResult, ExternalProviderError, ExternalProviderFactory, ExternalStreamChunk, ExternalToolConfig, ExternalToolDefinition, ExternalToolSet, ExternalUsage, ImplementationPromptOptions, ImplementationTaskType, InMemoryApprovalStore, InMemorySessionStore, InMemoryTelemetryCollector, type LanguageModel, type LanguageModelUsage, MCPExportOptions, MCPExportResult, MCPPromptDefinition, MCPResourceDefinition, MCPServerDefinition, MCPToolDefinition, McpClientConfig, McpClientResult, McpServerConfig, McpToolDefinition, type ModelMessage, OpenCodeAgentJSON, OpenCodeAgentType, OpenCodeContextMetadata, OpenCodeExportOptions, OpenCodeExportResult, OpenCodeExporter, OpenCodeSDKConfig, OpenCodeSDKProvider, OpenCodeToolJSON, OperationMetricSample, ProviderExecutionError, ProviderNotAvailableError, ProviderRegistry, SchemaOutput, SpecConsumer, SpecConsumerConfig, SpecExportFormat, SpecListEntry, SpecListOptions, SpecListResult, SpecMarkdownOptions, SpecPromptOptions, SpecQueryResult, type StepResult, TelemetryCollector, type Tool, ToolCallInfo, ToolConsumer, ToolConsumerConfig, ToolExecutionContext, ToolExportFormat, ToolExportTarget, ToolHandler, ToolLoopAgent, ToolResultInfo, ToolServer, ToolServerConfig, type ToolSet, ToolWithHandler, UnifiedAgent, UnifiedAgentBackend, UnifiedAgentBackendConfig, UnifiedAgentConfig, UnifiedAgentProvider, UnifiedAgentRunOptions, UnifiedAgentState, UnifiedAgentStatus, agentKey, agentToMcpServer, buildToolHandlers, createAISDKAgent, createAgentMcpServer, createAgentRegistry, createApprovalWorkflow, createClaudeAgentSDKAgent, createInMemorySessionStore, createInMemoryTelemetryCollector, createKnowledgeInjector, createKnowledgeQueryTool, createMcpToolsets, createOpenCodeSDKAgent, createProviderRegistry, createSingleSpecConsumer, createSpecConsumer, createToolConsumer, createToolHandler, createToolServer, createUnifiedAgent, defaultProviderRegistry, defineAgent, enumToChoiceOutput, exportToClaudeAgent, exportToOpenCode, exportToolsForExternalSDK, generateClaudeMd, generateOpenCodeJSON, generateOpenCodeMarkdown, generateSessionId, type generateText, getAvailableBackends, injectStaticKnowledge, jsonSchemaToArrayOutput, jsonSchemaToOutput, jsonSchemaToZod, jsonSchemaToZodSafe, mcpServerToTools, noopTelemetryCollector, specToolToAISDKTool, specToolsToAISDKTools, textOutput, trackAgentStep, validateForClaudeAgent, validateForOpenCode, zodToOutput };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { agentKey, defineAgent } from "./spec/spec.js";
|
|
2
|
+
import { jsonSchemaToZod, jsonSchemaToZodSafe } from "./schema/json-schema-to-zod.js";
|
|
3
|
+
import { buildToolHandlers, createToolHandler, specToolToAISDKTool, specToolsToAISDKTools } from "./tools/tool-adapter.js";
|
|
4
|
+
import { createKnowledgeQueryTool } from "./tools/knowledge-tool.js";
|
|
5
|
+
import { createKnowledgeInjector, injectStaticKnowledge } from "./knowledge/injector.js";
|
|
6
|
+
import { InMemorySessionStore, createInMemorySessionStore, generateSessionId } from "./session/store.js";
|
|
7
|
+
import { InMemoryTelemetryCollector, createInMemoryTelemetryCollector, noopTelemetryCollector, trackAgentStep } from "./telemetry/adapter.js";
|
|
8
|
+
import { ContractSpecAgent } from "./agent/contract-spec-agent.js";
|
|
9
|
+
import { UnifiedAgent, createAISDKAgent, createClaudeAgentSDKAgent, createOpenCodeSDKAgent, createUnifiedAgent, getAvailableBackends } from "./agent/unified-agent.js";
|
|
10
|
+
import "./agent/index.js";
|
|
11
|
+
import { AgentRegistry, createAgentRegistry } from "./spec/registry.js";
|
|
12
|
+
import "./spec/index.js";
|
|
13
|
+
import { createMcpToolsets, mcpServerToTools } from "./tools/mcp-client.js";
|
|
14
|
+
import { agentToMcpServer, createAgentMcpServer } from "./tools/mcp-server.js";
|
|
15
|
+
import "./tools/index.js";
|
|
16
|
+
import { SchemaOutput, enumToChoiceOutput, jsonSchemaToArrayOutput, jsonSchemaToOutput, textOutput, zodToOutput } from "./schema/schema-output.js";
|
|
17
|
+
import "./schema/index.js";
|
|
18
|
+
import { ApprovalWorkflow, InMemoryApprovalStore, createApprovalWorkflow } from "./approval/workflow.js";
|
|
19
|
+
import "./approval/index.js";
|
|
20
|
+
import { ContextCreationError, ExternalProviderError, ProviderExecutionError, ProviderNotAvailableError } from "./providers/types.js";
|
|
21
|
+
import { ClaudeAgentSDKProvider } from "./providers/claude-agent-sdk/adapter.js";
|
|
22
|
+
import { OpenCodeSDKProvider } from "./providers/opencode-sdk/adapter.js";
|
|
23
|
+
import { createProviderRegistry, defaultProviderRegistry } from "./providers/registry.js";
|
|
24
|
+
import "./providers/index.js";
|
|
25
|
+
import { ClaudeAgentExporter, exportToClaudeAgent, generateClaudeMd, validateForClaudeAgent } from "./exporters/claude-agent-exporter.js";
|
|
26
|
+
import { OpenCodeExporter, exportToOpenCode, generateOpenCodeJSON, generateOpenCodeMarkdown, validateForOpenCode } from "./exporters/opencode-exporter.js";
|
|
27
|
+
import { ContractSpecConsumer, createSingleSpecConsumer, createSpecConsumer } from "./interop/spec-consumer.js";
|
|
28
|
+
import { ContractSpecToolConsumer, createToolConsumer, createToolServer, exportToolsForExternalSDK } from "./interop/tool-consumer.js";
|
|
29
|
+
import { Experimental_Agent as ToolLoopAgent } from "ai";
|
|
30
|
+
|
|
31
|
+
export { AgentRegistry, ApprovalWorkflow, ClaudeAgentExporter, ClaudeAgentSDKProvider, ContextCreationError, ContractSpecAgent, ContractSpecConsumer, ContractSpecToolConsumer, ExternalProviderError, InMemoryApprovalStore, InMemorySessionStore, InMemoryTelemetryCollector, OpenCodeExporter, OpenCodeSDKProvider, ProviderExecutionError, ProviderNotAvailableError, SchemaOutput, ToolLoopAgent, UnifiedAgent, agentKey, agentToMcpServer, buildToolHandlers, createAISDKAgent, createAgentMcpServer, createAgentRegistry, createApprovalWorkflow, createClaudeAgentSDKAgent, createInMemorySessionStore, createInMemoryTelemetryCollector, createKnowledgeInjector, createKnowledgeQueryTool, createMcpToolsets, createOpenCodeSDKAgent, createProviderRegistry, createSingleSpecConsumer, createSpecConsumer, createToolConsumer, createToolHandler, createToolServer, createUnifiedAgent, defaultProviderRegistry, defineAgent, enumToChoiceOutput, exportToClaudeAgent, exportToOpenCode, exportToolsForExternalSDK, generateClaudeMd, generateOpenCodeJSON, generateOpenCodeMarkdown, generateSessionId, getAvailableBackends, injectStaticKnowledge, jsonSchemaToArrayOutput, jsonSchemaToOutput, jsonSchemaToZod, jsonSchemaToZodSafe, mcpServerToTools, noopTelemetryCollector, specToolToAISDKTool, specToolsToAISDKTools, textOutput, trackAgentStep, validateForClaudeAgent, validateForOpenCode, zodToOutput };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ExecutionMode, ExternalToolConfig, ImplementationPromptOptions, ImplementationTaskType, McpServerConfig, McpToolDefinition, SpecConsumer, SpecConsumerConfig, SpecExportFormat, SpecListEntry, SpecListOptions, SpecListResult, SpecMarkdownOptions, SpecPromptOptions, SpecQueryResult, ToolConsumer, ToolConsumerConfig, ToolExportFormat, ToolExportTarget, ToolServer, ToolServerConfig, ToolWithHandler, UnifiedAgentProvider, UnifiedAgentStatus } from "./types.js";
|
|
2
|
+
import { ContractSpecConsumer, createSingleSpecConsumer, createSpecConsumer } from "./spec-consumer.js";
|
|
3
|
+
import { ContractSpecToolConsumer, createToolConsumer, createToolServer, exportToolsForExternalSDK } from "./tool-consumer.js";
|
|
4
|
+
export { ContractSpecConsumer, ContractSpecToolConsumer, ExecutionMode, ExternalToolConfig, ImplementationPromptOptions, ImplementationTaskType, McpServerConfig, McpToolDefinition, SpecConsumer, SpecConsumerConfig, SpecExportFormat, SpecListEntry, SpecListOptions, SpecListResult, SpecMarkdownOptions, SpecPromptOptions, SpecQueryResult, ToolConsumer, ToolConsumerConfig, ToolExportFormat, ToolExportTarget, ToolServer, ToolServerConfig, ToolWithHandler, UnifiedAgentProvider, UnifiedAgentStatus, createSingleSpecConsumer, createSpecConsumer, createToolConsumer, createToolServer, exportToolsForExternalSDK };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ContractSpecConsumer, createSingleSpecConsumer, createSpecConsumer } from "./spec-consumer.js";
|
|
2
|
+
import { ContractSpecToolConsumer, createToolConsumer, createToolServer, exportToolsForExternalSDK } from "./tool-consumer.js";
|
|
3
|
+
|
|
4
|
+
export { ContractSpecConsumer, ContractSpecToolConsumer, createSingleSpecConsumer, createSpecConsumer, createToolConsumer, createToolServer, exportToolsForExternalSDK };
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { AgentSpec } from "../spec/spec.js";
|
|
2
|
+
import { SpecConsumer, SpecConsumerConfig, SpecListOptions, SpecListResult, SpecMarkdownOptions, SpecPromptOptions, SpecQueryResult } from "./types.js";
|
|
3
|
+
|
|
4
|
+
//#region src/interop/spec-consumer.d.ts
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* ContractSpec consumer for external agents.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const consumer = createSpecConsumer({
|
|
12
|
+
* specs: [myAgentSpec, anotherSpec],
|
|
13
|
+
* includeMetadata: true,
|
|
14
|
+
* });
|
|
15
|
+
*
|
|
16
|
+
* // Get markdown representation
|
|
17
|
+
* const markdown = consumer.getSpecMarkdown('my-agent.v1.0.0');
|
|
18
|
+
*
|
|
19
|
+
* // Get prompt for LLM
|
|
20
|
+
* const prompt = consumer.getSpecPrompt('my-agent.v1.0.0', {
|
|
21
|
+
* includeTools: true,
|
|
22
|
+
* });
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
declare class ContractSpecConsumer implements SpecConsumer {
|
|
26
|
+
private readonly specs;
|
|
27
|
+
private readonly includeMetadata;
|
|
28
|
+
private readonly baseUrl?;
|
|
29
|
+
constructor(config: SpecConsumerConfig);
|
|
30
|
+
/**
|
|
31
|
+
* Get a spec as markdown.
|
|
32
|
+
*/
|
|
33
|
+
getSpecMarkdown(specKey: string, options?: SpecMarkdownOptions): string;
|
|
34
|
+
/**
|
|
35
|
+
* Get a spec as an LLM prompt.
|
|
36
|
+
*/
|
|
37
|
+
getSpecPrompt(specKey: string, options?: SpecPromptOptions): string;
|
|
38
|
+
/**
|
|
39
|
+
* List available specs.
|
|
40
|
+
*/
|
|
41
|
+
listSpecs(options?: SpecListOptions): SpecListResult[];
|
|
42
|
+
/**
|
|
43
|
+
* Query a spec by key.
|
|
44
|
+
*/
|
|
45
|
+
querySpec(specKey: string): SpecQueryResult | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* Check if a spec exists.
|
|
48
|
+
*/
|
|
49
|
+
hasSpec(specKey: string): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Get a spec by key.
|
|
52
|
+
*/
|
|
53
|
+
getSpec(specKey: string): AgentSpec | undefined;
|
|
54
|
+
/**
|
|
55
|
+
* Get all specs.
|
|
56
|
+
*/
|
|
57
|
+
getAllSpecs(): AgentSpec[];
|
|
58
|
+
/**
|
|
59
|
+
* Get spec count.
|
|
60
|
+
*/
|
|
61
|
+
getSpecCount(): number;
|
|
62
|
+
/**
|
|
63
|
+
* Add a spec to the consumer.
|
|
64
|
+
*/
|
|
65
|
+
addSpec(spec: AgentSpec): void;
|
|
66
|
+
/**
|
|
67
|
+
* Remove a spec from the consumer.
|
|
68
|
+
*/
|
|
69
|
+
removeSpec(specKey: string): boolean;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Create a new spec consumer.
|
|
73
|
+
*/
|
|
74
|
+
declare function createSpecConsumer(config: SpecConsumerConfig): SpecConsumer;
|
|
75
|
+
/**
|
|
76
|
+
* Create a spec consumer from a single spec.
|
|
77
|
+
*/
|
|
78
|
+
declare function createSingleSpecConsumer(spec: AgentSpec, options?: Omit<SpecConsumerConfig, 'specs'>): SpecConsumer;
|
|
79
|
+
//#endregion
|
|
80
|
+
export { ContractSpecConsumer, createSingleSpecConsumer, createSpecConsumer };
|
|
81
|
+
//# sourceMappingURL=spec-consumer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-consumer.d.ts","names":[],"sources":["../../src/interop/spec-consumer.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;AAsYA;AAOA;;;;;;;;;;;;cAlWa,oBAAA,YAAgC;;;;sBAKvB;;;;6CAeuB;;;;2CA6IF;;;;sBAsFrB,kBAAkB;;;;8BAmCV;;;;;;;;4BAwBF;;;;iBAOX;;;;;;;;gBAcD;;;;;;;;;iBAoBA,kBAAA,SAA2B,qBAAqB;;;;iBAOhD,wBAAA,OACR,qBACI,KAAK,+BACd"}
|