@contractspec/lib.ai-agent 1.57.0 → 1.59.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 (232) hide show
  1. package/dist/agent/agent-factory.d.ts +67 -71
  2. package/dist/agent/agent-factory.d.ts.map +1 -1
  3. package/dist/agent/agent-factory.js +658 -100
  4. package/dist/agent/agent.test.d.ts +2 -0
  5. package/dist/agent/agent.test.d.ts.map +1 -0
  6. package/dist/agent/contract-spec-agent.d.ts +48 -52
  7. package/dist/agent/contract-spec-agent.d.ts.map +1 -1
  8. package/dist/agent/contract-spec-agent.js +605 -146
  9. package/dist/agent/index.d.ts +4 -4
  10. package/dist/agent/index.d.ts.map +1 -0
  11. package/dist/agent/index.js +2102 -4
  12. package/dist/agent/json-runner.d.ts +15 -19
  13. package/dist/agent/json-runner.d.ts.map +1 -1
  14. package/dist/agent/json-runner.js +672 -57
  15. package/dist/agent/json-runner.test.d.ts +2 -0
  16. package/dist/agent/json-runner.test.d.ts.map +1 -0
  17. package/dist/agent/unified-agent.d.ts +132 -109
  18. package/dist/agent/unified-agent.d.ts.map +1 -1
  19. package/dist/agent/unified-agent.js +2011 -293
  20. package/dist/approval/index.d.ts +3 -2
  21. package/dist/approval/index.d.ts.map +1 -0
  22. package/dist/approval/index.js +128 -2
  23. package/dist/approval/workflow.d.ts +106 -110
  24. package/dist/approval/workflow.d.ts.map +1 -1
  25. package/dist/approval/workflow.js +126 -157
  26. package/dist/exporters/claude-agent-exporter.d.ts +50 -48
  27. package/dist/exporters/claude-agent-exporter.d.ts.map +1 -1
  28. package/dist/exporters/claude-agent-exporter.js +258 -203
  29. package/dist/exporters/index.d.ts +28 -4
  30. package/dist/exporters/index.d.ts.map +1 -0
  31. package/dist/exporters/index.js +737 -3
  32. package/dist/exporters/opencode-exporter.d.ts +47 -45
  33. package/dist/exporters/opencode-exporter.d.ts.map +1 -1
  34. package/dist/exporters/opencode-exporter.js +507 -191
  35. package/dist/exporters/types.d.ts +171 -169
  36. package/dist/exporters/types.d.ts.map +1 -1
  37. package/dist/exporters/types.js +1 -0
  38. package/dist/index.d.ts +15 -39
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +3337 -32
  41. package/dist/interop/index.d.ts +48 -4
  42. package/dist/interop/index.d.ts.map +1 -0
  43. package/dist/interop/index.js +709 -3
  44. package/dist/interop/spec-consumer.d.ts +57 -53
  45. package/dist/interop/spec-consumer.d.ts.map +1 -1
  46. package/dist/interop/spec-consumer.js +302 -282
  47. package/dist/interop/tool-consumer.d.ts +57 -53
  48. package/dist/interop/tool-consumer.d.ts.map +1 -1
  49. package/dist/interop/tool-consumer.js +412 -213
  50. package/dist/interop/types.d.ts +173 -171
  51. package/dist/interop/types.d.ts.map +1 -1
  52. package/dist/interop/types.js +1 -0
  53. package/dist/knowledge/index.d.ts +2 -2
  54. package/dist/knowledge/index.d.ts.map +1 -0
  55. package/dist/knowledge/index.js +66 -2
  56. package/dist/knowledge/injector.d.ts +16 -20
  57. package/dist/knowledge/injector.d.ts.map +1 -1
  58. package/dist/knowledge/injector.js +56 -47
  59. package/dist/memory/in-memory.d.ts +15 -19
  60. package/dist/memory/in-memory.d.ts.map +1 -1
  61. package/dist/memory/in-memory.js +152 -46
  62. package/dist/memory/index.d.ts +3 -3
  63. package/dist/memory/index.d.ts.map +1 -0
  64. package/dist/memory/index.js +155 -3
  65. package/dist/memory/manager.d.ts +32 -36
  66. package/dist/memory/manager.d.ts.map +1 -1
  67. package/dist/memory/manager.js +96 -70
  68. package/dist/memory/memory.test.d.ts +2 -0
  69. package/dist/memory/memory.test.d.ts.map +1 -0
  70. package/dist/node/agent/agent-factory.js +661 -0
  71. package/dist/node/agent/contract-spec-agent.js +607 -0
  72. package/dist/node/agent/index.js +2103 -0
  73. package/dist/node/agent/json-runner.js +684 -0
  74. package/dist/node/agent/unified-agent.js +2019 -0
  75. package/dist/node/approval/index.js +129 -0
  76. package/dist/node/approval/workflow.js +129 -0
  77. package/dist/node/exporters/claude-agent-exporter.js +265 -0
  78. package/dist/node/exporters/index.js +738 -0
  79. package/dist/node/exporters/opencode-exporter.js +516 -0
  80. package/dist/node/exporters/types.js +0 -0
  81. package/dist/node/index.js +3337 -0
  82. package/dist/node/interop/index.js +710 -0
  83. package/dist/node/interop/spec-consumer.js +307 -0
  84. package/dist/node/interop/tool-consumer.js +419 -0
  85. package/dist/node/interop/types.js +0 -0
  86. package/dist/node/knowledge/index.js +67 -0
  87. package/dist/node/knowledge/injector.js +67 -0
  88. package/dist/node/memory/in-memory.js +154 -0
  89. package/dist/node/memory/index.js +156 -0
  90. package/dist/node/memory/manager.js +105 -0
  91. package/dist/node/providers/claude-agent-sdk/adapter.js +624 -0
  92. package/dist/node/providers/claude-agent-sdk/index.js +673 -0
  93. package/dist/node/providers/claude-agent-sdk/session-bridge.js +149 -0
  94. package/dist/node/providers/claude-agent-sdk/tool-bridge.js +118 -0
  95. package/dist/node/providers/index.js +1261 -0
  96. package/dist/node/providers/opencode-sdk/adapter.js +669 -0
  97. package/dist/node/providers/opencode-sdk/agent-bridge.js +299 -0
  98. package/dist/node/providers/opencode-sdk/index.js +703 -0
  99. package/dist/node/providers/opencode-sdk/tool-bridge.js +141 -0
  100. package/dist/node/providers/registry.js +89 -0
  101. package/dist/node/providers/types.js +56 -0
  102. package/dist/node/schema/index.js +195 -0
  103. package/dist/node/schema/json-schema-to-zod.js +152 -0
  104. package/dist/node/schema/schema-output.js +190 -0
  105. package/dist/node/session/index.js +90 -0
  106. package/dist/node/session/store.js +90 -0
  107. package/dist/node/spec/index.js +85 -0
  108. package/dist/node/spec/registry.js +56 -0
  109. package/dist/node/spec/spec.js +44 -0
  110. package/dist/node/telemetry/adapter.js +85 -0
  111. package/dist/node/telemetry/index.js +86 -0
  112. package/dist/node/tools/index.js +345 -0
  113. package/dist/node/tools/knowledge-tool.js +74 -0
  114. package/dist/node/tools/mcp-client.js +47 -0
  115. package/dist/node/tools/mcp-server.js +205 -0
  116. package/dist/node/tools/tool-adapter.js +197 -0
  117. package/dist/node/types.js +0 -0
  118. package/dist/providers/claude-agent-sdk/adapter.d.ts +60 -52
  119. package/dist/providers/claude-agent-sdk/adapter.d.ts.map +1 -1
  120. package/dist/providers/claude-agent-sdk/adapter.js +622 -304
  121. package/dist/providers/claude-agent-sdk/index.d.ts +22 -4
  122. package/dist/providers/claude-agent-sdk/index.d.ts.map +1 -0
  123. package/dist/providers/claude-agent-sdk/index.js +672 -4
  124. package/dist/providers/claude-agent-sdk/session-bridge.d.ts +43 -40
  125. package/dist/providers/claude-agent-sdk/session-bridge.d.ts.map +1 -1
  126. package/dist/providers/claude-agent-sdk/session-bridge.js +121 -130
  127. package/dist/providers/claude-agent-sdk/tool-bridge.d.ts +63 -60
  128. package/dist/providers/claude-agent-sdk/tool-bridge.d.ts.map +1 -1
  129. package/dist/providers/claude-agent-sdk/tool-bridge.js +104 -108
  130. package/dist/providers/index.d.ts +28 -7
  131. package/dist/providers/index.d.ts.map +1 -0
  132. package/dist/providers/index.js +1261 -8
  133. package/dist/providers/opencode-sdk/adapter.d.ts +56 -48
  134. package/dist/providers/opencode-sdk/adapter.d.ts.map +1 -1
  135. package/dist/providers/opencode-sdk/adapter.js +667 -274
  136. package/dist/providers/opencode-sdk/agent-bridge.d.ts +62 -57
  137. package/dist/providers/opencode-sdk/agent-bridge.d.ts.map +1 -1
  138. package/dist/providers/opencode-sdk/agent-bridge.js +289 -155
  139. package/dist/providers/opencode-sdk/index.d.ts +22 -4
  140. package/dist/providers/opencode-sdk/index.d.ts.map +1 -0
  141. package/dist/providers/opencode-sdk/index.js +702 -4
  142. package/dist/providers/opencode-sdk/tool-bridge.d.ts +41 -42
  143. package/dist/providers/opencode-sdk/tool-bridge.d.ts.map +1 -1
  144. package/dist/providers/opencode-sdk/tool-bridge.js +121 -107
  145. package/dist/providers/registry.d.ts +10 -11
  146. package/dist/providers/registry.d.ts.map +1 -1
  147. package/dist/providers/registry.js +86 -49
  148. package/dist/providers/types.d.ts +169 -166
  149. package/dist/providers/types.d.ts.map +1 -1
  150. package/dist/providers/types.js +54 -42
  151. package/dist/schema/index.d.ts +3 -3
  152. package/dist/schema/index.d.ts.map +1 -0
  153. package/dist/schema/index.js +194 -3
  154. package/dist/schema/json-schema-to-zod.d.ts +23 -26
  155. package/dist/schema/json-schema-to-zod.d.ts.map +1 -1
  156. package/dist/schema/json-schema-to-zod.js +138 -110
  157. package/dist/schema/schema-output.d.ts +29 -32
  158. package/dist/schema/schema-output.d.ts.map +1 -1
  159. package/dist/schema/schema-output.js +178 -53
  160. package/dist/session/index.d.ts +2 -2
  161. package/dist/session/index.d.ts.map +1 -0
  162. package/dist/session/index.js +89 -2
  163. package/dist/session/store.d.ts +51 -55
  164. package/dist/session/store.d.ts.map +1 -1
  165. package/dist/session/store.js +85 -74
  166. package/dist/spec/index.d.ts +3 -3
  167. package/dist/spec/index.d.ts.map +1 -0
  168. package/dist/spec/index.js +84 -3
  169. package/dist/spec/registry.d.ts +32 -36
  170. package/dist/spec/registry.d.ts.map +1 -1
  171. package/dist/spec/registry.js +51 -60
  172. package/dist/spec/spec.d.ts +80 -84
  173. package/dist/spec/spec.d.ts.map +1 -1
  174. package/dist/spec/spec.js +40 -26
  175. package/dist/telemetry/adapter.d.ts +33 -37
  176. package/dist/telemetry/adapter.d.ts.map +1 -1
  177. package/dist/telemetry/adapter.js +78 -96
  178. package/dist/telemetry/index.d.ts +2 -2
  179. package/dist/telemetry/index.d.ts.map +1 -0
  180. package/dist/telemetry/index.js +85 -2
  181. package/dist/tools/index.d.ts +5 -5
  182. package/dist/tools/index.d.ts.map +1 -0
  183. package/dist/tools/index.js +344 -5
  184. package/dist/tools/knowledge-tool.d.ts +4 -8
  185. package/dist/tools/knowledge-tool.d.ts.map +1 -1
  186. package/dist/tools/knowledge-tool.js +68 -48
  187. package/dist/tools/mcp-client.d.ts +17 -21
  188. package/dist/tools/mcp-client.d.ts.map +1 -1
  189. package/dist/tools/mcp-client.js +42 -53
  190. package/dist/tools/mcp-server.d.ts +14 -18
  191. package/dist/tools/mcp-server.d.ts.map +1 -1
  192. package/dist/tools/mcp-server.js +200 -64
  193. package/dist/tools/tool-adapter.d.ts +7 -11
  194. package/dist/tools/tool-adapter.d.ts.map +1 -1
  195. package/dist/tools/tool-adapter.js +187 -70
  196. package/dist/tools/tools.test.d.ts +2 -0
  197. package/dist/tools/tools.test.d.ts.map +1 -0
  198. package/dist/types.d.ts +108 -111
  199. package/dist/types.d.ts.map +1 -1
  200. package/dist/types.js +1 -0
  201. package/package.json +448 -90
  202. package/dist/_virtual/_rolldown/runtime.js +0 -8
  203. package/dist/agent/agent-factory.js.map +0 -1
  204. package/dist/agent/contract-spec-agent.js.map +0 -1
  205. package/dist/agent/json-runner.js.map +0 -1
  206. package/dist/agent/unified-agent.js.map +0 -1
  207. package/dist/approval/workflow.js.map +0 -1
  208. package/dist/exporters/claude-agent-exporter.js.map +0 -1
  209. package/dist/exporters/opencode-exporter.js.map +0 -1
  210. package/dist/interop/spec-consumer.js.map +0 -1
  211. package/dist/interop/tool-consumer.js.map +0 -1
  212. package/dist/knowledge/injector.js.map +0 -1
  213. package/dist/memory/in-memory.js.map +0 -1
  214. package/dist/memory/manager.js.map +0 -1
  215. package/dist/providers/claude-agent-sdk/adapter.js.map +0 -1
  216. package/dist/providers/claude-agent-sdk/session-bridge.js.map +0 -1
  217. package/dist/providers/claude-agent-sdk/tool-bridge.js.map +0 -1
  218. package/dist/providers/opencode-sdk/adapter.js.map +0 -1
  219. package/dist/providers/opencode-sdk/agent-bridge.js.map +0 -1
  220. package/dist/providers/opencode-sdk/tool-bridge.js.map +0 -1
  221. package/dist/providers/registry.js.map +0 -1
  222. package/dist/providers/types.js.map +0 -1
  223. package/dist/schema/json-schema-to-zod.js.map +0 -1
  224. package/dist/schema/schema-output.js.map +0 -1
  225. package/dist/session/store.js.map +0 -1
  226. package/dist/spec/registry.js.map +0 -1
  227. package/dist/spec/spec.js.map +0 -1
  228. package/dist/telemetry/adapter.js.map +0 -1
  229. package/dist/tools/knowledge-tool.js.map +0 -1
  230. package/dist/tools/mcp-client.js.map +0 -1
  231. package/dist/tools/mcp-server.js.map +0 -1
  232. package/dist/tools/tool-adapter.js.map +0 -1
@@ -1,80 +1,79 @@
1
- import { AgentToolConfig } from "../../spec/spec.js";
2
- import { ToolExecutionContext, ToolHandler } from "../../types.js";
3
- import { ExternalToolDefinition } from "../types.js";
4
-
5
- //#region src/providers/opencode-sdk/tool-bridge.d.ts
1
+ /**
2
+ * Tool bridge for converting between ContractSpec and OpenCode SDK tool formats.
3
+ */
4
+ import type { AgentToolConfig } from '../../spec/spec';
5
+ import type { ToolHandler, ToolExecutionContext } from '../../types';
6
+ import type { ExternalToolDefinition } from '../types';
6
7
  /**
7
8
  * OpenCode SDK tool definition.
8
9
  */
9
- interface OpenCodeTool {
10
- /** Tool name */
11
- name: string;
12
- /** Tool description */
13
- description: string;
14
- /** Input parameters schema */
15
- parameters: {
16
- type: 'object';
17
- properties?: Record<string, OpenCodeParameter>;
18
- required?: string[];
19
- };
20
- /** Tool category */
21
- category?: string;
22
- /** Permission level */
23
- permission?: 'allow' | 'ask' | 'deny';
10
+ export interface OpenCodeTool {
11
+ /** Tool name */
12
+ name: string;
13
+ /** Tool description */
14
+ description: string;
15
+ /** Input parameters schema */
16
+ parameters: {
17
+ type: 'object';
18
+ properties?: Record<string, OpenCodeParameter>;
19
+ required?: string[];
20
+ };
21
+ /** Tool category */
22
+ category?: string;
23
+ /** Permission level */
24
+ permission?: 'allow' | 'ask' | 'deny';
24
25
  }
25
26
  /**
26
27
  * OpenCode parameter definition.
27
28
  */
28
- interface OpenCodeParameter {
29
- type: string;
30
- description?: string;
31
- enum?: string[];
32
- default?: unknown;
29
+ export interface OpenCodeParameter {
30
+ type: string;
31
+ description?: string;
32
+ enum?: string[];
33
+ default?: unknown;
33
34
  }
34
35
  /**
35
36
  * OpenCode tool call from session.
36
37
  */
37
- interface OpenCodeToolCall {
38
- id: string;
39
- name: string;
40
- arguments: Record<string, unknown>;
38
+ export interface OpenCodeToolCall {
39
+ id: string;
40
+ name: string;
41
+ arguments: Record<string, unknown>;
41
42
  }
42
43
  /**
43
44
  * OpenCode tool result.
44
45
  */
45
- interface OpenCodeToolResult {
46
- tool_call_id: string;
47
- output: string;
48
- is_error?: boolean;
46
+ export interface OpenCodeToolResult {
47
+ tool_call_id: string;
48
+ output: string;
49
+ is_error?: boolean;
49
50
  }
50
51
  /**
51
52
  * Convert a ContractSpec AgentToolConfig to OpenCode tool format.
52
53
  */
53
- declare function specToolToOpenCodeTool(tool: AgentToolConfig): OpenCodeTool;
54
+ export declare function specToolToOpenCodeTool(tool: AgentToolConfig): OpenCodeTool;
54
55
  /**
55
56
  * Convert multiple ContractSpec tools to OpenCode format.
56
57
  */
57
- declare function specToolsToOpenCodeTools(tools: AgentToolConfig[]): OpenCodeTool[];
58
+ export declare function specToolsToOpenCodeTools(tools: AgentToolConfig[]): OpenCodeTool[];
58
59
  /**
59
60
  * Convert an OpenCode tool to ContractSpec AgentToolConfig.
60
61
  */
61
- declare function openCodeToolToSpecTool(openCodeTool: OpenCodeTool): AgentToolConfig;
62
+ export declare function openCodeToolToSpecTool(openCodeTool: OpenCodeTool): AgentToolConfig;
62
63
  /**
63
64
  * Convert multiple OpenCode tools to ContractSpec format.
64
65
  */
65
- declare function openCodeToolsToSpecTools(openCodeTools: OpenCodeTool[]): AgentToolConfig[];
66
+ export declare function openCodeToolsToSpecTools(openCodeTools: OpenCodeTool[]): AgentToolConfig[];
66
67
  /**
67
68
  * Convert ContractSpec tool to ExternalToolDefinition format for OpenCode.
68
69
  */
69
- declare function specToolToExternalToolForOpenCode(tool: AgentToolConfig, handler?: ToolHandler, context?: Partial<ToolExecutionContext>): ExternalToolDefinition;
70
+ export declare function specToolToExternalToolForOpenCode(tool: AgentToolConfig, handler?: ToolHandler, context?: Partial<ToolExecutionContext>): ExternalToolDefinition;
70
71
  /**
71
72
  * Create a tool handler map from ExternalToolSet.
72
73
  */
73
- declare function createToolHandlerMap(tools: Record<string, ExternalToolDefinition>): Map<string, (input: unknown) => Promise<unknown>>;
74
+ export declare function createToolHandlerMap(tools: Record<string, ExternalToolDefinition>): Map<string, (input: unknown) => Promise<unknown>>;
74
75
  /**
75
76
  * Execute a tool call and format the result.
76
77
  */
77
- declare function executeToolCall(toolCall: OpenCodeToolCall, handlers: Map<string, (input: unknown) => Promise<unknown>>): Promise<OpenCodeToolResult>;
78
- //#endregion
79
- export { OpenCodeParameter, OpenCodeTool, OpenCodeToolCall, OpenCodeToolResult, createToolHandlerMap, executeToolCall, openCodeToolToSpecTool, openCodeToolsToSpecTools, specToolToExternalToolForOpenCode, specToolToOpenCodeTool, specToolsToOpenCodeTools };
78
+ export declare function executeToolCall(toolCall: OpenCodeToolCall, handlers: Map<string, (input: unknown) => Promise<unknown>>): Promise<OpenCodeToolResult>;
80
79
  //# sourceMappingURL=tool-bridge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-bridge.d.ts","names":[],"sources":["../../../src/providers/opencode-sdk/tool-bridge.ts"],"mappings":";;;;;;;;UAeiB,YAAA;EAIf;EAFA,IAAA;EAKE;EAHF,WAAA;EAIe;EAFf,UAAA;IACE,IAAA;IACA,UAAA,GAAa,MAAA,SAAe,iBAAA;IAC5B,QAAA;EAAA;EAKQ;EAFV,QAAA;EAQgC;EANhC,UAAA;AAAA;;;;UAMe,iBAAA;EACf,IAAA;EACA,WAAA;EACA,IAAA;EACA,OAAA;AAAA;;;;UAMe,gBAAA;EACf,EAAA;EACA,IAAA;EACA,SAAA,EAAW,MAAA;AAAA;;;;UAMI,kBAAA;EACf,YAAA;EACA,MAAA;EACA,QAAA;AAAA;AAUF;;;AAAA,iBAAgB,sBAAA,CAAuB,IAAA,EAAM,eAAA,GAAkB,YAAA;;;;iBAa/C,wBAAA,CACd,KAAA,EAAO,eAAA,KACN,YAAA;;AAFH;;iBA0BgB,sBAAA,CACd,YAAA,EAAc,YAAA,GACb,eAAA;;;;iBAca,wBAAA,CACd,aAAA,EAAe,YAAA,KACd,eAAA;;;AAlBH;iBA6BgB,iCAAA,CACd,IAAA,EAAM,eAAA,EACN,OAAA,GAAU,WAAA,EACV,OAAA,GAAU,OAAA,CAAQ,oBAAA,IACjB,sBAAA;;;;iBAyFa,oBAAA,CACd,KAAA,EAAO,MAAA,SAAe,sBAAA,IACrB,GAAA,UAAa,KAAA,cAAmB,OAAA;;;;iBAeb,eAAA,CACpB,QAAA,EAAU,gBAAA,EACV,QAAA,EAAU,GAAA,UAAa,KAAA,cAAmB,OAAA,aACzC,OAAA,CAAQ,kBAAA"}
1
+ {"version":3,"file":"tool-bridge.d.ts","sourceRoot":"","sources":["../../../src/providers/opencode-sdk/tool-bridge.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAMvD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QAC/C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,oBAAoB;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,UAAU,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAMD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,eAAe,GAAG,YAAY,CAQ1E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,eAAe,EAAE,GACvB,YAAY,EAAE,CAEhB;AAmBD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,YAAY,GACzB,eAAe,CASjB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,YAAY,EAAE,GAC5B,eAAe,EAAE,CAEnB;AAMD;;GAEG;AACH,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,eAAe,EACrB,OAAO,CAAC,EAAE,WAAW,EACrB,OAAO,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GACtC,sBAAsB,CAoBxB;AAkED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAC5C,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAUnD;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,GAC1D,OAAO,CAAC,kBAAkB,CAAC,CAwB7B"}
@@ -1,127 +1,141 @@
1
- //#region src/providers/opencode-sdk/tool-bridge.ts
2
- /**
3
- * Convert a ContractSpec AgentToolConfig to OpenCode tool format.
4
- */
1
+ // @bun
2
+ var __defProp = Object.defineProperty;
3
+ var __export = (target, all) => {
4
+ for (var name in all)
5
+ __defProp(target, name, {
6
+ get: all[name],
7
+ enumerable: true,
8
+ configurable: true,
9
+ set: (newValue) => all[name] = () => newValue
10
+ });
11
+ };
12
+ var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
13
+ var __require = import.meta.require;
14
+
15
+ // src/providers/opencode-sdk/tool-bridge.ts
5
16
  function specToolToOpenCodeTool(tool) {
6
- return {
7
- name: tool.name,
8
- description: tool.description ?? `Execute ${tool.name}`,
9
- parameters: normalizeToOpenCodeParameters(tool.schema),
10
- permission: getPermissionLevel(tool)
11
- };
17
+ return {
18
+ name: tool.name,
19
+ description: tool.description ?? `Execute ${tool.name}`,
20
+ parameters: normalizeToOpenCodeParameters(tool.schema),
21
+ permission: getPermissionLevel(tool)
22
+ };
12
23
  }
13
- /**
14
- * Convert multiple ContractSpec tools to OpenCode format.
15
- */
16
24
  function specToolsToOpenCodeTools(tools) {
17
- return tools.map(specToolToOpenCodeTool);
25
+ return tools.map(specToolToOpenCodeTool);
18
26
  }
19
- /**
20
- * Determine permission level from tool config.
21
- */
22
27
  function getPermissionLevel(tool) {
23
- if (tool.requiresApproval) return "ask";
24
- if (tool.automationSafe === false) return "ask";
25
- return "allow";
28
+ if (tool.requiresApproval) {
29
+ return "ask";
30
+ }
31
+ if (tool.automationSafe === false) {
32
+ return "ask";
33
+ }
34
+ return "allow";
26
35
  }
27
- /**
28
- * Convert an OpenCode tool to ContractSpec AgentToolConfig.
29
- */
30
36
  function openCodeToolToSpecTool(openCodeTool) {
31
- return {
32
- name: openCodeTool.name,
33
- description: openCodeTool.description,
34
- schema: openCodeTool.parameters,
35
- requiresApproval: openCodeTool.permission === "ask",
36
- automationSafe: openCodeTool.permission === "allow"
37
- };
37
+ return {
38
+ name: openCodeTool.name,
39
+ description: openCodeTool.description,
40
+ schema: openCodeTool.parameters,
41
+ requiresApproval: openCodeTool.permission === "ask",
42
+ automationSafe: openCodeTool.permission === "allow"
43
+ };
38
44
  }
39
- /**
40
- * Convert multiple OpenCode tools to ContractSpec format.
41
- */
42
45
  function openCodeToolsToSpecTools(openCodeTools) {
43
- return openCodeTools.map(openCodeToolToSpecTool);
46
+ return openCodeTools.map(openCodeToolToSpecTool);
44
47
  }
45
- /**
46
- * Convert ContractSpec tool to ExternalToolDefinition format for OpenCode.
47
- */
48
48
  function specToolToExternalToolForOpenCode(tool, handler, context) {
49
- return {
50
- name: tool.name,
51
- description: tool.description ?? `Execute ${tool.name}`,
52
- inputSchema: tool.schema ?? { type: "object" },
53
- requiresApproval: tool.requiresApproval ?? !tool.automationSafe,
54
- execute: handler ? async (input) => {
55
- return handler(input, {
56
- agentId: context?.agentId ?? "unknown",
57
- sessionId: context?.sessionId ?? "unknown",
58
- tenantId: context?.tenantId,
59
- actorId: context?.actorId,
60
- metadata: context?.metadata,
61
- signal: context?.signal
62
- });
63
- } : void 0
64
- };
49
+ return {
50
+ name: tool.name,
51
+ description: tool.description ?? `Execute ${tool.name}`,
52
+ inputSchema: tool.schema ?? { type: "object" },
53
+ requiresApproval: tool.requiresApproval ?? !tool.automationSafe,
54
+ execute: handler ? async (input) => {
55
+ const fullContext = {
56
+ agentId: context?.agentId ?? "unknown",
57
+ sessionId: context?.sessionId ?? "unknown",
58
+ tenantId: context?.tenantId,
59
+ actorId: context?.actorId,
60
+ metadata: context?.metadata,
61
+ signal: context?.signal
62
+ };
63
+ return handler(input, fullContext);
64
+ } : undefined
65
+ };
65
66
  }
66
- /**
67
- * Normalize a schema to OpenCode's expected parameter format.
68
- */
69
67
  function normalizeToOpenCodeParameters(schema) {
70
- if (!schema) return { type: "object" };
71
- if (schema.type === "object") return {
72
- type: "object",
73
- properties: schema.properties,
74
- required: schema.required
75
- };
76
- return {
77
- type: "object",
78
- properties: { value: convertToOpenCodeParameter(schema) },
79
- required: ["value"]
80
- };
68
+ if (!schema) {
69
+ return { type: "object" };
70
+ }
71
+ if (schema.type === "object") {
72
+ return {
73
+ type: "object",
74
+ properties: schema.properties,
75
+ required: schema.required
76
+ };
77
+ }
78
+ return {
79
+ type: "object",
80
+ properties: {
81
+ value: convertToOpenCodeParameter(schema)
82
+ },
83
+ required: ["value"]
84
+ };
81
85
  }
82
- /**
83
- * Convert a JSON Schema property to OpenCode parameter format.
84
- */
85
86
  function convertToOpenCodeParameter(schema) {
86
- const param = { type: schema.type ?? "string" };
87
- if (schema.description) param.description = schema.description;
88
- if (schema.enum) param.enum = schema.enum;
89
- if (schema.default !== void 0) param.default = schema.default;
90
- return param;
87
+ const param = {
88
+ type: schema.type ?? "string"
89
+ };
90
+ if (schema.description) {
91
+ param.description = schema.description;
92
+ }
93
+ if (schema.enum) {
94
+ param.enum = schema.enum;
95
+ }
96
+ if (schema.default !== undefined) {
97
+ param.default = schema.default;
98
+ }
99
+ return param;
91
100
  }
92
- /**
93
- * Create a tool handler map from ExternalToolSet.
94
- */
95
101
  function createToolHandlerMap(tools) {
96
- const handlers = /* @__PURE__ */ new Map();
97
- for (const [name, tool] of Object.entries(tools)) if (tool.execute) handlers.set(name, tool.execute);
98
- return handlers;
102
+ const handlers = new Map;
103
+ for (const [name, tool] of Object.entries(tools)) {
104
+ if (tool.execute) {
105
+ handlers.set(name, tool.execute);
106
+ }
107
+ }
108
+ return handlers;
99
109
  }
100
- /**
101
- * Execute a tool call and format the result.
102
- */
103
110
  async function executeToolCall(toolCall, handlers) {
104
- const handler = handlers.get(toolCall.name);
105
- if (!handler) return {
106
- tool_call_id: toolCall.id,
107
- output: `Error: Tool '${toolCall.name}' not found`,
108
- is_error: true
109
- };
110
- try {
111
- const result = await handler(toolCall.arguments);
112
- return {
113
- tool_call_id: toolCall.id,
114
- output: typeof result === "string" ? result : JSON.stringify(result)
115
- };
116
- } catch (error) {
117
- return {
118
- tool_call_id: toolCall.id,
119
- output: `Error: ${error instanceof Error ? error.message : String(error)}`,
120
- is_error: true
121
- };
122
- }
111
+ const handler = handlers.get(toolCall.name);
112
+ if (!handler) {
113
+ return {
114
+ tool_call_id: toolCall.id,
115
+ output: `Error: Tool '${toolCall.name}' not found`,
116
+ is_error: true
117
+ };
118
+ }
119
+ try {
120
+ const result = await handler(toolCall.arguments);
121
+ return {
122
+ tool_call_id: toolCall.id,
123
+ output: typeof result === "string" ? result : JSON.stringify(result)
124
+ };
125
+ } catch (error) {
126
+ return {
127
+ tool_call_id: toolCall.id,
128
+ output: `Error: ${error instanceof Error ? error.message : String(error)}`,
129
+ is_error: true
130
+ };
131
+ }
123
132
  }
124
-
125
- //#endregion
126
- export { createToolHandlerMap, executeToolCall, openCodeToolToSpecTool, openCodeToolsToSpecTools, specToolToExternalToolForOpenCode, specToolToOpenCodeTool, specToolsToOpenCodeTools };
127
- //# sourceMappingURL=tool-bridge.js.map
133
+ export {
134
+ specToolsToOpenCodeTools,
135
+ specToolToOpenCodeTool,
136
+ specToolToExternalToolForOpenCode,
137
+ openCodeToolsToSpecTools,
138
+ openCodeToolToSpecTool,
139
+ executeToolCall,
140
+ createToolHandlerMap
141
+ };
@@ -1,21 +1,20 @@
1
- import { ExternalAgentProvider, ProviderRegistry } from "./types.js";
2
-
3
- //#region src/providers/registry.d.ts
1
+ /**
2
+ * Provider registry for managing external SDK providers.
3
+ */
4
+ import type { ExternalAgentProvider, ProviderRegistry } from './types';
4
5
  /**
5
6
  * Create a new provider registry.
6
7
  */
7
- declare function createProviderRegistry(): ProviderRegistry & {
8
- require: (name: string) => ExternalAgentProvider;
9
- clear: () => void;
8
+ export declare function createProviderRegistry(): ProviderRegistry & {
9
+ require: (name: string) => ExternalAgentProvider;
10
+ clear: () => void;
10
11
  };
11
12
  /**
12
13
  * Global default provider registry.
13
14
  * Use this for convenience when you don't need multiple registries.
14
15
  */
15
- declare const defaultProviderRegistry: ProviderRegistry & {
16
- require: (name: string) => ExternalAgentProvider;
17
- clear: () => void;
16
+ export declare const defaultProviderRegistry: ProviderRegistry & {
17
+ require: (name: string) => ExternalAgentProvider;
18
+ clear: () => void;
18
19
  };
19
- //#endregion
20
- export { createProviderRegistry, defaultProviderRegistry };
21
20
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","names":[],"sources":["../../src/providers/registry.ts"],"mappings":";;;;;;iBA0DgB,sBAAA,CAAA,GAA0B,gBAAA;EACxC,OAAA,GAAU,IAAA,aAAiB,qBAAA;EAC3B,KAAA;AAAA;;;;AASF;cAAa,uBAAA,EAAuB,gBAAA;YAVxB,IAAA,aAAiB,qBAAA"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAmDvE;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,gBAAgB,GAAG;IAC3D,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,qBAAqB,CAAC;IACjD,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAEA;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB;aAVzB,CAAC,IAAI,EAAE,MAAM,KAAK,qBAAqB;WACzC,MAAM,IAAI;CAS4C,CAAC"}
@@ -1,52 +1,89 @@
1
- import { ProviderNotAvailableError } from "./types.js";
2
-
3
- //#region src/providers/registry.ts
4
- /**
5
- * In-memory implementation of the provider registry.
6
- */
7
- var InMemoryProviderRegistry = class {
8
- providers = /* @__PURE__ */ new Map();
9
- get(name) {
10
- return this.providers.get(name);
11
- }
12
- register(name, provider) {
13
- this.providers.set(name, provider);
14
- }
15
- list() {
16
- return Array.from(this.providers.keys());
17
- }
18
- isAvailable(name) {
19
- const provider = this.providers.get(name);
20
- return provider !== void 0 && provider.isAvailable();
21
- }
22
- /**
23
- * Get a provider, throwing if not found or not available.
24
- */
25
- require(name) {
26
- const provider = this.providers.get(name);
27
- if (!provider) throw new ProviderNotAvailableError(name, "not registered");
28
- if (!provider.isAvailable()) throw new ProviderNotAvailableError(name, "dependencies not installed or not configured");
29
- return provider;
30
- }
31
- /**
32
- * Clear all registered providers.
33
- */
34
- clear() {
35
- this.providers.clear();
36
- }
1
+ // @bun
2
+ var __defProp = Object.defineProperty;
3
+ var __export = (target, all) => {
4
+ for (var name in all)
5
+ __defProp(target, name, {
6
+ get: all[name],
7
+ enumerable: true,
8
+ configurable: true,
9
+ set: (newValue) => all[name] = () => newValue
10
+ });
37
11
  };
38
- /**
39
- * Create a new provider registry.
40
- */
12
+ var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
13
+ var __require = import.meta.require;
14
+
15
+ // src/providers/types.ts
16
+ var ExternalProviderError, ProviderNotAvailableError, ProviderExecutionError, ContextCreationError;
17
+ var init_types = __esm(() => {
18
+ ExternalProviderError = class ExternalProviderError extends Error {
19
+ provider;
20
+ code;
21
+ cause;
22
+ constructor(message, provider, code, cause) {
23
+ super(message);
24
+ this.provider = provider;
25
+ this.code = code;
26
+ this.cause = cause;
27
+ this.name = "ExternalProviderError";
28
+ }
29
+ };
30
+ ProviderNotAvailableError = class ProviderNotAvailableError extends ExternalProviderError {
31
+ constructor(provider, reason) {
32
+ super(`Provider '${provider}' is not available${reason ? `: ${reason}` : ""}`, provider, "PROVIDER_NOT_AVAILABLE");
33
+ this.name = "ProviderNotAvailableError";
34
+ }
35
+ };
36
+ ProviderExecutionError = class ProviderExecutionError extends ExternalProviderError {
37
+ constructor(provider, message, cause) {
38
+ super(message, provider, "EXECUTION_FAILED", cause);
39
+ this.name = "ProviderExecutionError";
40
+ }
41
+ };
42
+ ContextCreationError = class ContextCreationError extends ExternalProviderError {
43
+ constructor(provider, message, cause) {
44
+ super(message, provider, "CONTEXT_CREATION_FAILED", cause);
45
+ this.name = "ContextCreationError";
46
+ }
47
+ };
48
+ });
49
+
50
+ // src/providers/registry.ts
51
+ init_types();
52
+
53
+ class InMemoryProviderRegistry {
54
+ providers = new Map;
55
+ get(name) {
56
+ return this.providers.get(name);
57
+ }
58
+ register(name, provider) {
59
+ this.providers.set(name, provider);
60
+ }
61
+ list() {
62
+ return Array.from(this.providers.keys());
63
+ }
64
+ isAvailable(name) {
65
+ const provider = this.providers.get(name);
66
+ return provider !== undefined && provider.isAvailable();
67
+ }
68
+ require(name) {
69
+ const provider = this.providers.get(name);
70
+ if (!provider) {
71
+ throw new ProviderNotAvailableError(name, "not registered");
72
+ }
73
+ if (!provider.isAvailable()) {
74
+ throw new ProviderNotAvailableError(name, "dependencies not installed or not configured");
75
+ }
76
+ return provider;
77
+ }
78
+ clear() {
79
+ this.providers.clear();
80
+ }
81
+ }
41
82
  function createProviderRegistry() {
42
- return new InMemoryProviderRegistry();
83
+ return new InMemoryProviderRegistry;
43
84
  }
44
- /**
45
- * Global default provider registry.
46
- * Use this for convenience when you don't need multiple registries.
47
- */
48
- const defaultProviderRegistry = createProviderRegistry();
49
-
50
- //#endregion
51
- export { createProviderRegistry, defaultProviderRegistry };
52
- //# sourceMappingURL=registry.js.map
85
+ var defaultProviderRegistry = createProviderRegistry();
86
+ export {
87
+ defaultProviderRegistry,
88
+ createProviderRegistry
89
+ };