@contractspec/lib.ai-agent 1.45.6 → 1.46.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.
Files changed (77) hide show
  1. package/dist/_virtual/rolldown_runtime.js +8 -0
  2. package/dist/agent/index.d.ts +2 -2
  3. package/dist/agent/index.js +2 -2
  4. package/dist/agent/unified-agent.d.ts +131 -0
  5. package/dist/agent/unified-agent.d.ts.map +1 -0
  6. package/dist/agent/unified-agent.js +267 -0
  7. package/dist/agent/unified-agent.js.map +1 -0
  8. package/dist/exporters/claude-agent-exporter.d.ts +64 -0
  9. package/dist/exporters/claude-agent-exporter.d.ts.map +1 -0
  10. package/dist/exporters/claude-agent-exporter.js +210 -0
  11. package/dist/exporters/claude-agent-exporter.js.map +1 -0
  12. package/dist/exporters/index.d.ts +4 -0
  13. package/dist/exporters/index.js +4 -0
  14. package/dist/exporters/opencode-exporter.d.ts +64 -0
  15. package/dist/exporters/opencode-exporter.d.ts.map +1 -0
  16. package/dist/exporters/opencode-exporter.js +200 -0
  17. package/dist/exporters/opencode-exporter.js.map +1 -0
  18. package/dist/exporters/types.d.ts +239 -0
  19. package/dist/exporters/types.d.ts.map +1 -0
  20. package/dist/exporters/types.js +0 -0
  21. package/dist/index.d.ts +16 -3
  22. package/dist/index.js +11 -2
  23. package/dist/interop/index.d.ts +4 -0
  24. package/dist/interop/index.js +4 -0
  25. package/dist/interop/spec-consumer.d.ts +81 -0
  26. package/dist/interop/spec-consumer.d.ts.map +1 -0
  27. package/dist/interop/spec-consumer.js +287 -0
  28. package/dist/interop/spec-consumer.js.map +1 -0
  29. package/dist/interop/tool-consumer.d.ts +68 -0
  30. package/dist/interop/tool-consumer.d.ts.map +1 -0
  31. package/dist/interop/tool-consumer.js +220 -0
  32. package/dist/interop/tool-consumer.js.map +1 -0
  33. package/dist/interop/types.d.ts +262 -0
  34. package/dist/interop/types.d.ts.map +1 -0
  35. package/dist/interop/types.js +0 -0
  36. package/dist/providers/claude-agent-sdk/adapter.d.ts +58 -0
  37. package/dist/providers/claude-agent-sdk/adapter.d.ts.map +1 -0
  38. package/dist/providers/claude-agent-sdk/adapter.js +306 -0
  39. package/dist/providers/claude-agent-sdk/adapter.js.map +1 -0
  40. package/dist/providers/claude-agent-sdk/index.d.ts +4 -0
  41. package/dist/providers/claude-agent-sdk/index.js +5 -0
  42. package/dist/providers/claude-agent-sdk/session-bridge.d.ts +101 -0
  43. package/dist/providers/claude-agent-sdk/session-bridge.d.ts.map +1 -0
  44. package/dist/providers/claude-agent-sdk/session-bridge.js +158 -0
  45. package/dist/providers/claude-agent-sdk/session-bridge.js.map +1 -0
  46. package/dist/providers/claude-agent-sdk/tool-bridge.d.ts +110 -0
  47. package/dist/providers/claude-agent-sdk/tool-bridge.d.ts.map +1 -0
  48. package/dist/providers/claude-agent-sdk/tool-bridge.js +122 -0
  49. package/dist/providers/claude-agent-sdk/tool-bridge.js.map +1 -0
  50. package/dist/providers/index.d.ts +7 -0
  51. package/dist/providers/index.js +8 -0
  52. package/dist/providers/opencode-sdk/adapter.d.ts +54 -0
  53. package/dist/providers/opencode-sdk/adapter.d.ts.map +1 -0
  54. package/dist/providers/opencode-sdk/adapter.js +276 -0
  55. package/dist/providers/opencode-sdk/adapter.js.map +1 -0
  56. package/dist/providers/opencode-sdk/agent-bridge.d.ts +94 -0
  57. package/dist/providers/opencode-sdk/agent-bridge.d.ts.map +1 -0
  58. package/dist/providers/opencode-sdk/agent-bridge.js +165 -0
  59. package/dist/providers/opencode-sdk/agent-bridge.js.map +1 -0
  60. package/dist/providers/opencode-sdk/index.d.ts +4 -0
  61. package/dist/providers/opencode-sdk/index.js +5 -0
  62. package/dist/providers/opencode-sdk/tool-bridge.d.ts +81 -0
  63. package/dist/providers/opencode-sdk/tool-bridge.d.ts.map +1 -0
  64. package/dist/providers/opencode-sdk/tool-bridge.js +127 -0
  65. package/dist/providers/opencode-sdk/tool-bridge.js.map +1 -0
  66. package/dist/providers/registry.d.ts +22 -0
  67. package/dist/providers/registry.d.ts.map +1 -0
  68. package/dist/providers/registry.js +52 -0
  69. package/dist/providers/registry.js.map +1 -0
  70. package/dist/providers/types.d.ts +243 -0
  71. package/dist/providers/types.d.ts.map +1 -0
  72. package/dist/providers/types.js +44 -0
  73. package/dist/providers/types.js.map +1 -0
  74. package/dist/tools/index.d.ts +1 -1
  75. package/dist/types.d.ts +1 -1
  76. package/dist/types.d.ts.map +1 -1
  77. package/package.json +37 -5
@@ -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 CHANGED
@@ -4,14 +4,19 @@ import { AgentCallOptions, AgentEventEmitter, AgentEventName, AgentEventPayload,
4
4
  import { AgentSessionStore, InMemorySessionStore, createInMemorySessionStore, generateSessionId } from "./session/store.js";
5
5
  import { InMemoryTelemetryCollector, OperationMetricSample, TelemetryCollector, createInMemoryTelemetryCollector, noopTelemetryCollector, trackAgentStep } from "./telemetry/adapter.js";
6
6
  import { ContractSpecAgent, ContractSpecAgentConfig } from "./agent/contract-spec-agent.js";
7
- import { AgentFactory, AgentFactoryConfig, CreateAgentOptions, createAgentFactory } from "./agent/agent-factory.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";
8
10
  import "./agent/index.js";
9
11
  import { ApprovalRequest, ApprovalStatus, ApprovalStore, ApprovalWorkflow, InMemoryApprovalStore, createApprovalWorkflow } from "./approval/workflow.js";
10
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";
11
17
  import "./spec/index.js";
12
18
  import { buildToolHandlers, createToolHandler, specToolToAISDKTool, specToolsToAISDKTools } from "./tools/tool-adapter.js";
13
19
  import { createKnowledgeQueryTool } from "./tools/knowledge-tool.js";
14
- import { McpClientConfig, McpClientResult, createMcpToolsets, mcpServerToTools } from "./tools/mcp-client.js";
15
20
  import { AgentMcpServerConfig, agentToMcpServer, createAgentMcpServer } from "./tools/mcp-server.js";
16
21
  import "./tools/index.js";
17
22
  import { jsonSchemaToZod, jsonSchemaToZodSafe } from "./schema/json-schema-to-zod.js";
@@ -20,5 +25,13 @@ import "./schema/index.js";
20
25
  import { createKnowledgeInjector, injectStaticKnowledge } from "./knowledge/injector.js";
21
26
  import "./session/index.js";
22
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";
23
36
  import { Experimental_Agent as ToolLoopAgent, LanguageModel, LanguageModelUsage, ModelMessage, StepResult, Tool, ToolSet } from "ai";
24
- export { AgentCallOptions, AgentConfidencePolicy, AgentEscalationPolicy, AgentEventEmitter, AgentEventName, AgentEventPayload, AgentFactory, AgentFactoryConfig, AgentFinishReason, AgentGenerateParams, AgentGenerateResult, AgentKnowledgeRef, AgentMcpServerConfig, AgentMemoryConfig, AgentMessage, AgentMeta, AgentPolicy, AgentRegistry, AgentSessionState, AgentSessionStore, AgentSpec, AgentStatus, AgentStepMetrics, AgentStreamParams, AgentToolConfig, ApprovalRequest, ApprovalStatus, ApprovalStore, ApprovalWorkflow, ContractSpecAgent, ContractSpecAgentConfig, CreateAgentOptions, InMemoryApprovalStore, InMemorySessionStore, InMemoryTelemetryCollector, type LanguageModel, type LanguageModelUsage, McpClientConfig, McpClientResult, type ModelMessage, OperationMetricSample, SchemaOutput, type StepResult, TelemetryCollector, type Tool, ToolCallInfo, ToolExecutionContext, ToolHandler, ToolLoopAgent, ToolResultInfo, type ToolSet, agentKey, agentToMcpServer, buildToolHandlers, createAgentFactory, createAgentMcpServer, createAgentRegistry, createApprovalWorkflow, createInMemorySessionStore, createInMemoryTelemetryCollector, createKnowledgeInjector, createKnowledgeQueryTool, createMcpToolsets, createToolHandler, defineAgent, enumToChoiceOutput, generateSessionId, injectStaticKnowledge, jsonSchemaToArrayOutput, jsonSchemaToOutput, jsonSchemaToZod, jsonSchemaToZodSafe, mcpServerToTools, noopTelemetryCollector, specToolToAISDKTool, specToolsToAISDKTools, textOutput, trackAgentStep, zodToOutput };
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, getAvailableBackends, injectStaticKnowledge, jsonSchemaToArrayOutput, jsonSchemaToOutput, jsonSchemaToZod, jsonSchemaToZodSafe, mcpServerToTools, noopTelemetryCollector, specToolToAISDKTool, specToolsToAISDKTools, textOutput, trackAgentStep, validateForClaudeAgent, validateForOpenCode, zodToOutput };
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ import { createKnowledgeInjector, injectStaticKnowledge } from "./knowledge/inje
6
6
  import { InMemorySessionStore, createInMemorySessionStore, generateSessionId } from "./session/store.js";
7
7
  import { InMemoryTelemetryCollector, createInMemoryTelemetryCollector, noopTelemetryCollector, trackAgentStep } from "./telemetry/adapter.js";
8
8
  import { ContractSpecAgent } from "./agent/contract-spec-agent.js";
9
- import { AgentFactory, createAgentFactory } from "./agent/agent-factory.js";
9
+ import { UnifiedAgent, createAISDKAgent, createClaudeAgentSDKAgent, createOpenCodeSDKAgent, createUnifiedAgent, getAvailableBackends } from "./agent/unified-agent.js";
10
10
  import "./agent/index.js";
11
11
  import { AgentRegistry, createAgentRegistry } from "./spec/registry.js";
12
12
  import "./spec/index.js";
@@ -17,6 +17,15 @@ import { SchemaOutput, enumToChoiceOutput, jsonSchemaToArrayOutput, jsonSchemaTo
17
17
  import "./schema/index.js";
18
18
  import { ApprovalWorkflow, InMemoryApprovalStore, createApprovalWorkflow } from "./approval/workflow.js";
19
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";
20
29
  import { Experimental_Agent as ToolLoopAgent } from "ai";
21
30
 
22
- export { AgentFactory, AgentRegistry, ApprovalWorkflow, ContractSpecAgent, InMemoryApprovalStore, InMemorySessionStore, InMemoryTelemetryCollector, SchemaOutput, ToolLoopAgent, agentKey, agentToMcpServer, buildToolHandlers, createAgentFactory, createAgentMcpServer, createAgentRegistry, createApprovalWorkflow, createInMemorySessionStore, createInMemoryTelemetryCollector, createKnowledgeInjector, createKnowledgeQueryTool, createMcpToolsets, createToolHandler, defineAgent, enumToChoiceOutput, generateSessionId, injectStaticKnowledge, jsonSchemaToArrayOutput, jsonSchemaToOutput, jsonSchemaToZod, jsonSchemaToZodSafe, mcpServerToTools, noopTelemetryCollector, specToolToAISDKTool, specToolsToAISDKTools, textOutput, trackAgentStep, zodToOutput };
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"}