@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,2 +1,3 @@
1
- import { ApprovalRequest, ApprovalStatus, ApprovalStore, ApprovalWorkflow, InMemoryApprovalStore, createApprovalWorkflow } from "./workflow.js";
2
- export { type ApprovalRequest, type ApprovalStatus, type ApprovalStore, ApprovalWorkflow, InMemoryApprovalStore, createApprovalWorkflow };
1
+ export * from './workflow';
2
+ export type { ApprovalStatus, ApprovalRequest, ApprovalStore, } from './workflow';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/approval/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,YAAY,EACV,cAAc,EACd,eAAe,EACf,aAAa,GACd,MAAM,YAAY,CAAC"}
@@ -1,3 +1,129 @@
1
- import { ApprovalWorkflow, InMemoryApprovalStore, createApprovalWorkflow } from "./workflow.js";
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;
2
14
 
3
- export { ApprovalWorkflow, InMemoryApprovalStore, createApprovalWorkflow };
15
+ // src/approval/workflow.ts
16
+ import { randomUUID } from "crypto";
17
+
18
+ class InMemoryApprovalStore {
19
+ items = new Map;
20
+ async create(request) {
21
+ this.items.set(request.id, request);
22
+ }
23
+ async get(id) {
24
+ return this.items.get(id) ?? null;
25
+ }
26
+ async getByToolCallId(toolCallId) {
27
+ for (const request of this.items.values()) {
28
+ if (request.toolCallId === toolCallId) {
29
+ return request;
30
+ }
31
+ }
32
+ return null;
33
+ }
34
+ async update(id, updates) {
35
+ const existing = this.items.get(id);
36
+ if (existing) {
37
+ this.items.set(id, { ...existing, ...updates });
38
+ }
39
+ }
40
+ async list(options) {
41
+ let results = [...this.items.values()];
42
+ if (options?.status) {
43
+ results = results.filter((r) => r.status === options.status);
44
+ }
45
+ if (options?.agentId) {
46
+ results = results.filter((r) => r.agentId === options.agentId);
47
+ }
48
+ if (options?.tenantId) {
49
+ results = results.filter((r) => r.tenantId === options.tenantId);
50
+ }
51
+ return results.sort((a, b) => b.requestedAt.getTime() - a.requestedAt.getTime());
52
+ }
53
+ clear() {
54
+ this.items.clear();
55
+ }
56
+ }
57
+
58
+ class ApprovalWorkflow {
59
+ store;
60
+ constructor(store = new InMemoryApprovalStore) {
61
+ this.store = store;
62
+ }
63
+ async requestApproval(params) {
64
+ const request = {
65
+ id: randomUUID(),
66
+ sessionId: params.sessionId,
67
+ agentId: params.agentId,
68
+ tenantId: params.tenantId,
69
+ toolName: params.toolName,
70
+ toolCallId: params.toolCallId,
71
+ toolArgs: params.toolArgs,
72
+ reason: params.reason,
73
+ requestedAt: new Date,
74
+ status: "pending",
75
+ payload: params.payload
76
+ };
77
+ await this.store.create(request);
78
+ return request;
79
+ }
80
+ async requestApprovalFromToolCall(toolCall, context) {
81
+ return this.requestApproval({
82
+ sessionId: context.sessionId,
83
+ agentId: context.agentId,
84
+ tenantId: context.tenantId,
85
+ toolName: toolCall.toolName,
86
+ toolCallId: toolCall.toolCallId,
87
+ toolArgs: toolCall.args,
88
+ reason: context.reason ?? `Tool "${toolCall.toolName}" requires approval`
89
+ });
90
+ }
91
+ async approve(id, reviewer, notes) {
92
+ await this.store.update(id, {
93
+ status: "approved",
94
+ reviewer,
95
+ resolvedAt: new Date,
96
+ notes
97
+ });
98
+ }
99
+ async reject(id, reviewer, notes) {
100
+ await this.store.update(id, {
101
+ status: "rejected",
102
+ reviewer,
103
+ resolvedAt: new Date,
104
+ notes
105
+ });
106
+ }
107
+ async getStatus(toolCallId) {
108
+ const request = await this.store.getByToolCallId(toolCallId);
109
+ return request?.status ?? null;
110
+ }
111
+ async isApproved(toolCallId) {
112
+ const status = await this.getStatus(toolCallId);
113
+ return status === "approved";
114
+ }
115
+ async listPending(options) {
116
+ return this.store.list({ ...options, status: "pending" });
117
+ }
118
+ async get(id) {
119
+ return this.store.get(id);
120
+ }
121
+ }
122
+ function createApprovalWorkflow(store) {
123
+ return new ApprovalWorkflow(store);
124
+ }
125
+ export {
126
+ createApprovalWorkflow,
127
+ InMemoryApprovalStore,
128
+ ApprovalWorkflow
129
+ };
@@ -1,72 +1,70 @@
1
- import { ToolCallInfo } from "../types.js";
2
-
3
- //#region src/approval/workflow.d.ts
4
- type ApprovalStatus = 'pending' | 'approved' | 'rejected';
1
+ import type { ToolCallInfo } from '../types';
2
+ export type ApprovalStatus = 'pending' | 'approved' | 'rejected';
5
3
  /**
6
4
  * Approval request for a tool execution.
7
5
  *
8
6
  * When a tool has `needsApproval: true` in AI SDK v6, the agent
9
7
  * will pause and wait for approval before executing the tool.
10
8
  */
11
- interface ApprovalRequest {
12
- /** Unique request ID */
13
- id: string;
14
- /** Agent session ID */
15
- sessionId: string;
16
- /** Agent ID */
17
- agentId: string;
18
- /** Tenant ID for scoping */
19
- tenantId?: string;
20
- /** Tool name requiring approval */
21
- toolName: string;
22
- /** Tool call ID from AI SDK */
23
- toolCallId: string;
24
- /** Tool arguments */
25
- toolArgs: unknown;
26
- /** Human-readable reason for approval */
27
- reason: string;
28
- /** When the approval was requested */
29
- requestedAt: Date;
30
- /** Current status */
31
- status: ApprovalStatus;
32
- /** Additional context payload */
33
- payload?: Record<string, unknown>;
34
- /** Who resolved the approval */
35
- reviewer?: string;
36
- /** When the approval was resolved */
37
- resolvedAt?: Date;
38
- /** Reviewer notes */
39
- notes?: string;
9
+ export interface ApprovalRequest {
10
+ /** Unique request ID */
11
+ id: string;
12
+ /** Agent session ID */
13
+ sessionId: string;
14
+ /** Agent ID */
15
+ agentId: string;
16
+ /** Tenant ID for scoping */
17
+ tenantId?: string;
18
+ /** Tool name requiring approval */
19
+ toolName: string;
20
+ /** Tool call ID from AI SDK */
21
+ toolCallId: string;
22
+ /** Tool arguments */
23
+ toolArgs: unknown;
24
+ /** Human-readable reason for approval */
25
+ reason: string;
26
+ /** When the approval was requested */
27
+ requestedAt: Date;
28
+ /** Current status */
29
+ status: ApprovalStatus;
30
+ /** Additional context payload */
31
+ payload?: Record<string, unknown>;
32
+ /** Who resolved the approval */
33
+ reviewer?: string;
34
+ /** When the approval was resolved */
35
+ resolvedAt?: Date;
36
+ /** Reviewer notes */
37
+ notes?: string;
40
38
  }
41
39
  /**
42
40
  * Storage interface for approval requests.
43
41
  */
44
- interface ApprovalStore {
45
- create(request: ApprovalRequest): Promise<void>;
46
- get(id: string): Promise<ApprovalRequest | null>;
47
- getByToolCallId(toolCallId: string): Promise<ApprovalRequest | null>;
48
- update(id: string, updates: Partial<Omit<ApprovalRequest, 'id' | 'sessionId'>>): Promise<void>;
49
- list(options?: {
50
- status?: ApprovalStatus;
51
- agentId?: string;
52
- tenantId?: string;
53
- }): Promise<ApprovalRequest[]>;
42
+ export interface ApprovalStore {
43
+ create(request: ApprovalRequest): Promise<void>;
44
+ get(id: string): Promise<ApprovalRequest | null>;
45
+ getByToolCallId(toolCallId: string): Promise<ApprovalRequest | null>;
46
+ update(id: string, updates: Partial<Omit<ApprovalRequest, 'id' | 'sessionId'>>): Promise<void>;
47
+ list(options?: {
48
+ status?: ApprovalStatus;
49
+ agentId?: string;
50
+ tenantId?: string;
51
+ }): Promise<ApprovalRequest[]>;
54
52
  }
55
53
  /**
56
54
  * In-memory approval store for development and testing.
57
55
  */
58
- declare class InMemoryApprovalStore implements ApprovalStore {
59
- private readonly items;
60
- create(request: ApprovalRequest): Promise<void>;
61
- get(id: string): Promise<ApprovalRequest | null>;
62
- getByToolCallId(toolCallId: string): Promise<ApprovalRequest | null>;
63
- update(id: string, updates: Partial<Omit<ApprovalRequest, 'id' | 'sessionId'>>): Promise<void>;
64
- list(options?: {
65
- status?: ApprovalStatus;
66
- agentId?: string;
67
- tenantId?: string;
68
- }): Promise<ApprovalRequest[]>;
69
- clear(): void;
56
+ export declare class InMemoryApprovalStore implements ApprovalStore {
57
+ private readonly items;
58
+ create(request: ApprovalRequest): Promise<void>;
59
+ get(id: string): Promise<ApprovalRequest | null>;
60
+ getByToolCallId(toolCallId: string): Promise<ApprovalRequest | null>;
61
+ update(id: string, updates: Partial<Omit<ApprovalRequest, 'id' | 'sessionId'>>): Promise<void>;
62
+ list(options?: {
63
+ status?: ApprovalStatus;
64
+ agentId?: string;
65
+ tenantId?: string;
66
+ }): Promise<ApprovalRequest[]>;
67
+ clear(): void;
70
68
  }
71
69
  /**
72
70
  * Approval workflow for managing tool execution approvals.
@@ -94,63 +92,61 @@ declare class InMemoryApprovalStore implements ApprovalStore {
94
92
  * await workflow.reject(request.id, 'admin@example.com', 'Suspicious activity');
95
93
  * ```
96
94
  */
97
- declare class ApprovalWorkflow {
98
- private readonly store;
99
- constructor(store?: ApprovalStore);
100
- /**
101
- * Request approval for a tool execution.
102
- */
103
- requestApproval(params: {
104
- sessionId: string;
105
- agentId: string;
106
- tenantId?: string;
107
- toolName: string;
108
- toolCallId: string;
109
- toolArgs: unknown;
110
- reason: string;
111
- payload?: Record<string, unknown>;
112
- }): Promise<ApprovalRequest>;
113
- /**
114
- * Request approval from an AI SDK tool call.
115
- */
116
- requestApprovalFromToolCall(toolCall: ToolCallInfo, context: {
117
- sessionId: string;
118
- agentId: string;
119
- tenantId?: string;
120
- reason?: string;
121
- }): Promise<ApprovalRequest>;
122
- /**
123
- * Approve a pending request.
124
- */
125
- approve(id: string, reviewer: string, notes?: string): Promise<void>;
126
- /**
127
- * Reject a pending request.
128
- */
129
- reject(id: string, reviewer: string, notes?: string): Promise<void>;
130
- /**
131
- * Get approval status for a tool call.
132
- */
133
- getStatus(toolCallId: string): Promise<ApprovalStatus | null>;
134
- /**
135
- * Check if a tool call is approved.
136
- */
137
- isApproved(toolCallId: string): Promise<boolean>;
138
- /**
139
- * List pending approvals.
140
- */
141
- listPending(options?: {
142
- agentId?: string;
143
- tenantId?: string;
144
- }): Promise<ApprovalRequest[]>;
145
- /**
146
- * Get approval request by ID.
147
- */
148
- get(id: string): Promise<ApprovalRequest | null>;
95
+ export declare class ApprovalWorkflow {
96
+ private readonly store;
97
+ constructor(store?: ApprovalStore);
98
+ /**
99
+ * Request approval for a tool execution.
100
+ */
101
+ requestApproval(params: {
102
+ sessionId: string;
103
+ agentId: string;
104
+ tenantId?: string;
105
+ toolName: string;
106
+ toolCallId: string;
107
+ toolArgs: unknown;
108
+ reason: string;
109
+ payload?: Record<string, unknown>;
110
+ }): Promise<ApprovalRequest>;
111
+ /**
112
+ * Request approval from an AI SDK tool call.
113
+ */
114
+ requestApprovalFromToolCall(toolCall: ToolCallInfo, context: {
115
+ sessionId: string;
116
+ agentId: string;
117
+ tenantId?: string;
118
+ reason?: string;
119
+ }): Promise<ApprovalRequest>;
120
+ /**
121
+ * Approve a pending request.
122
+ */
123
+ approve(id: string, reviewer: string, notes?: string): Promise<void>;
124
+ /**
125
+ * Reject a pending request.
126
+ */
127
+ reject(id: string, reviewer: string, notes?: string): Promise<void>;
128
+ /**
129
+ * Get approval status for a tool call.
130
+ */
131
+ getStatus(toolCallId: string): Promise<ApprovalStatus | null>;
132
+ /**
133
+ * Check if a tool call is approved.
134
+ */
135
+ isApproved(toolCallId: string): Promise<boolean>;
136
+ /**
137
+ * List pending approvals.
138
+ */
139
+ listPending(options?: {
140
+ agentId?: string;
141
+ tenantId?: string;
142
+ }): Promise<ApprovalRequest[]>;
143
+ /**
144
+ * Get approval request by ID.
145
+ */
146
+ get(id: string): Promise<ApprovalRequest | null>;
149
147
  }
150
148
  /**
151
149
  * Create an approval workflow instance.
152
150
  */
153
- declare function createApprovalWorkflow(store?: ApprovalStore): ApprovalWorkflow;
154
- //#endregion
155
- export { ApprovalRequest, ApprovalStatus, ApprovalStore, ApprovalWorkflow, InMemoryApprovalStore, createApprovalWorkflow };
151
+ export declare function createApprovalWorkflow(store?: ApprovalStore): ApprovalWorkflow;
156
152
  //# sourceMappingURL=workflow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.d.ts","names":[],"sources":["../../src/approval/workflow.ts"],"mappings":";;;KAGY,cAAA;;AAAZ;;;;;UAQiB,eAAA;EAAe;EAE9B,EAAA;EAgBa;EAdb,SAAA;EAkBU;EAhBV,OAAA;EAoBiB;EAlBjB,QAAA;EANA;EAQA,QAAA;EAJA;EAMA,UAAA;EAFA;EAIA,QAAA;EAAA;EAEA,MAAA;EAEA;EAAA,WAAA,EAAa,IAAA;EAEb;EAAA,MAAA,EAAQ,cAAA;EAER;EAAA,OAAA,GAAU,MAAA;EAEV;EAAA,QAAA;EAEa;EAAb,UAAA,GAAa,IAAA;EAER;EAAL,KAAA;AAAA;;;;UAMe,aAAA;EACf,MAAA,CAAO,OAAA,EAAS,eAAA,GAAkB,OAAA;EAClC,GAAA,CAAI,EAAA,WAAa,OAAA,CAAQ,eAAA;EACzB,eAAA,CAAgB,UAAA,WAAqB,OAAA,CAAQ,eAAA;EAC7C,MAAA,CACE,EAAA,UACA,OAAA,EAAS,OAAA,CAAQ,IAAA,CAAK,eAAA,yBACrB,OAAA;EACH,IAAA,CAAK,OAAA;IACH,MAAA,GAAS,cAAA;IACT,OAAA;IACA,QAAA;EAAA,IACE,OAAA,CAAQ,eAAA;AAAA;;;;cAMD,qBAAA,YAAiC,aAAA;EAAA,iBAC3B,KAAA;EAEX,MAAA,CAAO,OAAA,EAAS,eAAA,GAAkB,OAAA;EAIlC,GAAA,CAAI,EAAA,WAAa,OAAA,CAAQ,eAAA;EAIzB,eAAA,CAAgB,UAAA,WAAqB,OAAA,CAAQ,eAAA;EAS7C,MAAA,CACJ,EAAA,UACA,OAAA,EAAS,OAAA,CAAQ,IAAA,CAAK,eAAA,yBACrB,OAAA;EAOG,IAAA,CAAK,OAAA;IACT,MAAA,GAAS,cAAA;IACT,OAAA;IACA,QAAA;EAAA,IACE,OAAA,CAAQ,eAAA;EAkBZ,KAAA,CAAA;AAAA;;;;;;;;;;;;;;;;;AApDF;;;;;;;;;;cAmFa,gBAAA;EAAA,iBAEQ,KAAA;cAAA,KAAA,GAAO,aAAA;EAtDf;;;EA4DL,eAAA,CAAgB,MAAA;IACpB,SAAA;IACA,OAAA;IACA,QAAA;IACA,QAAA;IACA,UAAA;IACA,QAAA;IACA,MAAA;IACA,OAAA,GAAU,MAAA;EAAA,IACR,OAAA,CAAQ,eAAA;EA7FF;;;EAmHJ,2BAAA,CACJ,QAAA,EAAU,YAAA,EACV,OAAA;IACE,SAAA;IACA,OAAA;IACA,QAAA;IACA,MAAA;EAAA,IAED,OAAA,CAAQ,eAAA;EA5GA;;;EA2HL,OAAA,CAAQ,EAAA,UAAY,QAAA,UAAkB,KAAA,YAAiB,OAAA;EA1H1D;;;EAsIG,MAAA,CAAO,EAAA,UAAY,QAAA,UAAkB,KAAA,YAAiB,OAAA;EA7H1D;;;EAyII,SAAA,CAAU,UAAA,WAAqB,OAAA,CAAQ,cAAA;EAvIjC;;;EA+IN,UAAA,CAAW,UAAA,WAAqB,OAAA;EA9F3B;;;EAsGL,WAAA,CAAY,OAAA;IAChB,OAAA;IACA,QAAA;EAAA,IACE,OAAA,CAAQ,eAAA;EAjEA;;;EAwEN,GAAA,CAAI,EAAA,WAAa,OAAA,CAAQ,eAAA;AAAA;;;;iBAQjB,sBAAA,CACd,KAAA,GAAQ,aAAA,GACP,gBAAA"}
1
+ {"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/approval/workflow.ts"],"names":[],"mappings":"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"}