@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.
- package/dist/agent/agent-factory.d.ts +67 -71
- package/dist/agent/agent-factory.d.ts.map +1 -1
- package/dist/agent/agent-factory.js +658 -100
- package/dist/agent/agent.test.d.ts +2 -0
- package/dist/agent/agent.test.d.ts.map +1 -0
- package/dist/agent/contract-spec-agent.d.ts +48 -52
- package/dist/agent/contract-spec-agent.d.ts.map +1 -1
- package/dist/agent/contract-spec-agent.js +605 -146
- package/dist/agent/index.d.ts +4 -4
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +2102 -4
- package/dist/agent/json-runner.d.ts +15 -19
- package/dist/agent/json-runner.d.ts.map +1 -1
- package/dist/agent/json-runner.js +672 -57
- package/dist/agent/json-runner.test.d.ts +2 -0
- package/dist/agent/json-runner.test.d.ts.map +1 -0
- package/dist/agent/unified-agent.d.ts +132 -109
- package/dist/agent/unified-agent.d.ts.map +1 -1
- package/dist/agent/unified-agent.js +2011 -293
- package/dist/approval/index.d.ts +3 -2
- package/dist/approval/index.d.ts.map +1 -0
- package/dist/approval/index.js +128 -2
- package/dist/approval/workflow.d.ts +106 -110
- package/dist/approval/workflow.d.ts.map +1 -1
- package/dist/approval/workflow.js +126 -157
- package/dist/exporters/claude-agent-exporter.d.ts +50 -48
- package/dist/exporters/claude-agent-exporter.d.ts.map +1 -1
- package/dist/exporters/claude-agent-exporter.js +258 -203
- package/dist/exporters/index.d.ts +28 -4
- package/dist/exporters/index.d.ts.map +1 -0
- package/dist/exporters/index.js +737 -3
- package/dist/exporters/opencode-exporter.d.ts +47 -45
- package/dist/exporters/opencode-exporter.d.ts.map +1 -1
- package/dist/exporters/opencode-exporter.js +507 -191
- package/dist/exporters/types.d.ts +171 -169
- package/dist/exporters/types.d.ts.map +1 -1
- package/dist/exporters/types.js +1 -0
- package/dist/index.d.ts +15 -39
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3337 -32
- package/dist/interop/index.d.ts +48 -4
- package/dist/interop/index.d.ts.map +1 -0
- package/dist/interop/index.js +709 -3
- package/dist/interop/spec-consumer.d.ts +57 -53
- package/dist/interop/spec-consumer.d.ts.map +1 -1
- package/dist/interop/spec-consumer.js +302 -282
- package/dist/interop/tool-consumer.d.ts +57 -53
- package/dist/interop/tool-consumer.d.ts.map +1 -1
- package/dist/interop/tool-consumer.js +412 -213
- package/dist/interop/types.d.ts +173 -171
- package/dist/interop/types.d.ts.map +1 -1
- package/dist/interop/types.js +1 -0
- package/dist/knowledge/index.d.ts +2 -2
- package/dist/knowledge/index.d.ts.map +1 -0
- package/dist/knowledge/index.js +66 -2
- package/dist/knowledge/injector.d.ts +16 -20
- package/dist/knowledge/injector.d.ts.map +1 -1
- package/dist/knowledge/injector.js +56 -47
- package/dist/memory/in-memory.d.ts +15 -19
- package/dist/memory/in-memory.d.ts.map +1 -1
- package/dist/memory/in-memory.js +152 -46
- package/dist/memory/index.d.ts +3 -3
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +155 -3
- package/dist/memory/manager.d.ts +32 -36
- package/dist/memory/manager.d.ts.map +1 -1
- package/dist/memory/manager.js +96 -70
- package/dist/memory/memory.test.d.ts +2 -0
- package/dist/memory/memory.test.d.ts.map +1 -0
- package/dist/node/agent/agent-factory.js +661 -0
- package/dist/node/agent/contract-spec-agent.js +607 -0
- package/dist/node/agent/index.js +2103 -0
- package/dist/node/agent/json-runner.js +684 -0
- package/dist/node/agent/unified-agent.js +2019 -0
- package/dist/node/approval/index.js +129 -0
- package/dist/node/approval/workflow.js +129 -0
- package/dist/node/exporters/claude-agent-exporter.js +265 -0
- package/dist/node/exporters/index.js +738 -0
- package/dist/node/exporters/opencode-exporter.js +516 -0
- package/dist/node/exporters/types.js +0 -0
- package/dist/node/index.js +3337 -0
- package/dist/node/interop/index.js +710 -0
- package/dist/node/interop/spec-consumer.js +307 -0
- package/dist/node/interop/tool-consumer.js +419 -0
- package/dist/node/interop/types.js +0 -0
- package/dist/node/knowledge/index.js +67 -0
- package/dist/node/knowledge/injector.js +67 -0
- package/dist/node/memory/in-memory.js +154 -0
- package/dist/node/memory/index.js +156 -0
- package/dist/node/memory/manager.js +105 -0
- package/dist/node/providers/claude-agent-sdk/adapter.js +624 -0
- package/dist/node/providers/claude-agent-sdk/index.js +673 -0
- package/dist/node/providers/claude-agent-sdk/session-bridge.js +149 -0
- package/dist/node/providers/claude-agent-sdk/tool-bridge.js +118 -0
- package/dist/node/providers/index.js +1261 -0
- package/dist/node/providers/opencode-sdk/adapter.js +669 -0
- package/dist/node/providers/opencode-sdk/agent-bridge.js +299 -0
- package/dist/node/providers/opencode-sdk/index.js +703 -0
- package/dist/node/providers/opencode-sdk/tool-bridge.js +141 -0
- package/dist/node/providers/registry.js +89 -0
- package/dist/node/providers/types.js +56 -0
- package/dist/node/schema/index.js +195 -0
- package/dist/node/schema/json-schema-to-zod.js +152 -0
- package/dist/node/schema/schema-output.js +190 -0
- package/dist/node/session/index.js +90 -0
- package/dist/node/session/store.js +90 -0
- package/dist/node/spec/index.js +85 -0
- package/dist/node/spec/registry.js +56 -0
- package/dist/node/spec/spec.js +44 -0
- package/dist/node/telemetry/adapter.js +85 -0
- package/dist/node/telemetry/index.js +86 -0
- package/dist/node/tools/index.js +345 -0
- package/dist/node/tools/knowledge-tool.js +74 -0
- package/dist/node/tools/mcp-client.js +47 -0
- package/dist/node/tools/mcp-server.js +205 -0
- package/dist/node/tools/tool-adapter.js +197 -0
- package/dist/node/types.js +0 -0
- package/dist/providers/claude-agent-sdk/adapter.d.ts +60 -52
- package/dist/providers/claude-agent-sdk/adapter.d.ts.map +1 -1
- package/dist/providers/claude-agent-sdk/adapter.js +622 -304
- package/dist/providers/claude-agent-sdk/index.d.ts +22 -4
- package/dist/providers/claude-agent-sdk/index.d.ts.map +1 -0
- package/dist/providers/claude-agent-sdk/index.js +672 -4
- package/dist/providers/claude-agent-sdk/session-bridge.d.ts +43 -40
- package/dist/providers/claude-agent-sdk/session-bridge.d.ts.map +1 -1
- package/dist/providers/claude-agent-sdk/session-bridge.js +121 -130
- package/dist/providers/claude-agent-sdk/tool-bridge.d.ts +63 -60
- package/dist/providers/claude-agent-sdk/tool-bridge.d.ts.map +1 -1
- package/dist/providers/claude-agent-sdk/tool-bridge.js +104 -108
- package/dist/providers/index.d.ts +28 -7
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +1261 -8
- package/dist/providers/opencode-sdk/adapter.d.ts +56 -48
- package/dist/providers/opencode-sdk/adapter.d.ts.map +1 -1
- package/dist/providers/opencode-sdk/adapter.js +667 -274
- package/dist/providers/opencode-sdk/agent-bridge.d.ts +62 -57
- package/dist/providers/opencode-sdk/agent-bridge.d.ts.map +1 -1
- package/dist/providers/opencode-sdk/agent-bridge.js +289 -155
- package/dist/providers/opencode-sdk/index.d.ts +22 -4
- package/dist/providers/opencode-sdk/index.d.ts.map +1 -0
- package/dist/providers/opencode-sdk/index.js +702 -4
- package/dist/providers/opencode-sdk/tool-bridge.d.ts +41 -42
- package/dist/providers/opencode-sdk/tool-bridge.d.ts.map +1 -1
- package/dist/providers/opencode-sdk/tool-bridge.js +121 -107
- package/dist/providers/registry.d.ts +10 -11
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/registry.js +86 -49
- package/dist/providers/types.d.ts +169 -166
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js +54 -42
- package/dist/schema/index.d.ts +3 -3
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +194 -3
- package/dist/schema/json-schema-to-zod.d.ts +23 -26
- package/dist/schema/json-schema-to-zod.d.ts.map +1 -1
- package/dist/schema/json-schema-to-zod.js +138 -110
- package/dist/schema/schema-output.d.ts +29 -32
- package/dist/schema/schema-output.d.ts.map +1 -1
- package/dist/schema/schema-output.js +178 -53
- package/dist/session/index.d.ts +2 -2
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +89 -2
- package/dist/session/store.d.ts +51 -55
- package/dist/session/store.d.ts.map +1 -1
- package/dist/session/store.js +85 -74
- package/dist/spec/index.d.ts +3 -3
- package/dist/spec/index.d.ts.map +1 -0
- package/dist/spec/index.js +84 -3
- package/dist/spec/registry.d.ts +32 -36
- package/dist/spec/registry.d.ts.map +1 -1
- package/dist/spec/registry.js +51 -60
- package/dist/spec/spec.d.ts +80 -84
- package/dist/spec/spec.d.ts.map +1 -1
- package/dist/spec/spec.js +40 -26
- package/dist/telemetry/adapter.d.ts +33 -37
- package/dist/telemetry/adapter.d.ts.map +1 -1
- package/dist/telemetry/adapter.js +78 -96
- package/dist/telemetry/index.d.ts +2 -2
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +85 -2
- package/dist/tools/index.d.ts +5 -5
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +344 -5
- package/dist/tools/knowledge-tool.d.ts +4 -8
- package/dist/tools/knowledge-tool.d.ts.map +1 -1
- package/dist/tools/knowledge-tool.js +68 -48
- package/dist/tools/mcp-client.d.ts +17 -21
- package/dist/tools/mcp-client.d.ts.map +1 -1
- package/dist/tools/mcp-client.js +42 -53
- package/dist/tools/mcp-server.d.ts +14 -18
- package/dist/tools/mcp-server.d.ts.map +1 -1
- package/dist/tools/mcp-server.js +200 -64
- package/dist/tools/tool-adapter.d.ts +7 -11
- package/dist/tools/tool-adapter.d.ts.map +1 -1
- package/dist/tools/tool-adapter.js +187 -70
- package/dist/tools/tools.test.d.ts +2 -0
- package/dist/tools/tools.test.d.ts.map +1 -0
- package/dist/types.d.ts +108 -111
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/package.json +448 -90
- package/dist/_virtual/_rolldown/runtime.js +0 -8
- package/dist/agent/agent-factory.js.map +0 -1
- package/dist/agent/contract-spec-agent.js.map +0 -1
- package/dist/agent/json-runner.js.map +0 -1
- package/dist/agent/unified-agent.js.map +0 -1
- package/dist/approval/workflow.js.map +0 -1
- package/dist/exporters/claude-agent-exporter.js.map +0 -1
- package/dist/exporters/opencode-exporter.js.map +0 -1
- package/dist/interop/spec-consumer.js.map +0 -1
- package/dist/interop/tool-consumer.js.map +0 -1
- package/dist/knowledge/injector.js.map +0 -1
- package/dist/memory/in-memory.js.map +0 -1
- package/dist/memory/manager.js.map +0 -1
- package/dist/providers/claude-agent-sdk/adapter.js.map +0 -1
- package/dist/providers/claude-agent-sdk/session-bridge.js.map +0 -1
- package/dist/providers/claude-agent-sdk/tool-bridge.js.map +0 -1
- package/dist/providers/opencode-sdk/adapter.js.map +0 -1
- package/dist/providers/opencode-sdk/agent-bridge.js.map +0 -1
- package/dist/providers/opencode-sdk/tool-bridge.js.map +0 -1
- package/dist/providers/registry.js.map +0 -1
- package/dist/providers/types.js.map +0 -1
- package/dist/schema/json-schema-to-zod.js.map +0 -1
- package/dist/schema/schema-output.js.map +0 -1
- package/dist/session/store.js.map +0 -1
- package/dist/spec/registry.js.map +0 -1
- package/dist/spec/spec.js.map +0 -1
- package/dist/telemetry/adapter.js.map +0 -1
- package/dist/tools/knowledge-tool.js.map +0 -1
- package/dist/tools/mcp-client.js.map +0 -1
- package/dist/tools/mcp-server.js.map +0 -1
- package/dist/tools/tool-adapter.js.map +0 -1
package/dist/approval/index.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
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"}
|
package/dist/approval/index.js
CHANGED
|
@@ -1,3 +1,129 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
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","
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/approval/workflow.ts"],"names":[],"mappings":"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"}
|