@ddse/acm-sdk 0.5.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/LICENSE +21 -0
- package/README.md +221 -0
- package/dist/capability.d.ts +10 -0
- package/dist/capability.d.ts.map +1 -0
- package/dist/capability.js +3 -0
- package/dist/capability.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/policy.d.ts +5 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +2 -0
- package/dist/policy.js.map +1 -0
- package/dist/registry.d.ts +6 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +3 -0
- package/dist/registry.js.map +1 -0
- package/dist/src/capability-map.d.ts +6 -0
- package/dist/src/capability-map.d.ts.map +1 -0
- package/dist/src/capability-map.js +281 -0
- package/dist/src/capability-map.js.map +1 -0
- package/dist/src/capability.d.ts +10 -0
- package/dist/src/capability.d.ts.map +1 -0
- package/dist/src/capability.js +3 -0
- package/dist/src/capability.js.map +1 -0
- package/dist/src/context-provider.d.ts +36 -0
- package/dist/src/context-provider.d.ts.map +1 -0
- package/dist/src/context-provider.js +59 -0
- package/dist/src/context-provider.js.map +1 -0
- package/dist/src/context.d.ts +42 -0
- package/dist/src/context.d.ts.map +1 -0
- package/dist/src/context.js +148 -0
- package/dist/src/context.js.map +1 -0
- package/dist/src/index.d.ts +12 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +13 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/nucleus.d.ts +105 -0
- package/dist/src/nucleus.d.ts.map +1 -0
- package/dist/src/nucleus.js +208 -0
- package/dist/src/nucleus.js.map +1 -0
- package/dist/src/policy.d.ts +5 -0
- package/dist/src/policy.d.ts.map +1 -0
- package/dist/src/policy.js +2 -0
- package/dist/src/policy.js.map +1 -0
- package/dist/src/registry.d.ts +6 -0
- package/dist/src/registry.d.ts.map +1 -0
- package/dist/src/registry.js +3 -0
- package/dist/src/registry.js.map +1 -0
- package/dist/src/stream.d.ts +8 -0
- package/dist/src/stream.d.ts.map +1 -0
- package/dist/src/stream.js +19 -0
- package/dist/src/stream.js.map +1 -0
- package/dist/src/task.d.ts +24 -0
- package/dist/src/task.d.ts.map +1 -0
- package/dist/src/task.js +11 -0
- package/dist/src/task.js.map +1 -0
- package/dist/src/tool.d.ts +5 -0
- package/dist/src/tool.d.ts.map +1 -0
- package/dist/src/tool.js +4 -0
- package/dist/src/tool.js.map +1 -0
- package/dist/src/types.d.ts +195 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils.d.ts +22 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/src/utils.js +194 -0
- package/dist/src/utils.js.map +1 -0
- package/dist/src/validators.d.ts +20 -0
- package/dist/src/validators.d.ts.map +1 -0
- package/dist/src/validators.js +209 -0
- package/dist/src/validators.js.map +1 -0
- package/dist/stream.d.ts +8 -0
- package/dist/stream.d.ts.map +1 -0
- package/dist/stream.js +19 -0
- package/dist/stream.js.map +1 -0
- package/dist/task.d.ts +11 -0
- package/dist/task.d.ts.map +1 -0
- package/dist/task.js +9 -0
- package/dist/task.js.map +1 -0
- package/dist/tests/phase4-integration.test.d.ts +2 -0
- package/dist/tests/phase4-integration.test.d.ts.map +1 -0
- package/dist/tests/phase4-integration.test.js +115 -0
- package/dist/tests/phase4-integration.test.js.map +1 -0
- package/dist/tool.d.ts +5 -0
- package/dist/tool.d.ts.map +1 -0
- package/dist/tool.js +4 -0
- package/dist/tool.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types.d.ts +77 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +26 -0
- package/src/capability.ts +11 -0
- package/src/context-provider.ts +136 -0
- package/src/context.ts +190 -0
- package/src/index.ts +12 -0
- package/src/nucleus.ts +341 -0
- package/src/policy.ts +9 -0
- package/src/registry.ts +7 -0
- package/src/stream.ts +24 -0
- package/src/task.ts +38 -0
- package/src/tool.ts +6 -0
- package/src/types.ts +233 -0
- package/src/utils.ts +271 -0
- package/tests/phase4-integration.test.ts +138 -0
- package/tsconfig.json +8 -0
- package/tsconfig.tsbuildinfo +1 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 DDSE Foundation
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
# @ddse/acm-sdk
|
|
2
|
+
|
|
3
|
+
Core types and abstract classes for the ACM v0.5 Node.js Framework.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
The SDK package provides the foundational types and interfaces that all other ACM packages build upon. It's designed to be minimal, with zero dependencies beyond Node.js built-ins.
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
pnpm add @ddse/acm-sdk
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## What's Included
|
|
16
|
+
|
|
17
|
+
### Abstract Classes
|
|
18
|
+
|
|
19
|
+
- **Tool<I, O>**: Base class for atomic operations
|
|
20
|
+
- **Task<I, O>**: Base class for logical task units
|
|
21
|
+
- **CapabilityRegistry**: Interface for task registries
|
|
22
|
+
- **ToolRegistry**: Interface for tool registries
|
|
23
|
+
|
|
24
|
+
### Types
|
|
25
|
+
|
|
26
|
+
- **Goal**: Represents user intent
|
|
27
|
+
- **Context**: Immutable facts for planning
|
|
28
|
+
- **Plan**: Task graph with edges and guards
|
|
29
|
+
- **TaskSpec**: Task configuration
|
|
30
|
+
- **LedgerEntry**: Memory ledger entry
|
|
31
|
+
- **PolicyDecision**: Authorization result
|
|
32
|
+
- **RunContext**: Execution context passed to tasks
|
|
33
|
+
|
|
34
|
+
### Utilities
|
|
35
|
+
|
|
36
|
+
- **DefaultStreamSink**: Stream multiplexer for real-time updates
|
|
37
|
+
- **PolicyEngine**: Interface for policy decision points
|
|
38
|
+
|
|
39
|
+
## Usage
|
|
40
|
+
|
|
41
|
+
### Defining a Tool
|
|
42
|
+
|
|
43
|
+
```typescript
|
|
44
|
+
import { Tool } from '@ddse/acm-sdk';
|
|
45
|
+
|
|
46
|
+
export class MyTool extends Tool<{ input: string }, { output: string }> {
|
|
47
|
+
name(): string {
|
|
48
|
+
return 'my-tool';
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
async call(input: { input: string }): Promise<{ output: string }> {
|
|
52
|
+
// Your implementation
|
|
53
|
+
return { output: `Processed: ${input.input}` };
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Defining a Task
|
|
59
|
+
|
|
60
|
+
```typescript
|
|
61
|
+
import { Task, type RunContext } from '@ddse/acm-sdk';
|
|
62
|
+
|
|
63
|
+
export class MyTask extends Task<{ query: string }, { result: any }> {
|
|
64
|
+
constructor() {
|
|
65
|
+
super('my-task-id', 'my-capability');
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
async execute(ctx: RunContext, input: { query: string }): Promise<{ result: any }> {
|
|
69
|
+
const tool = ctx.getTool('my-tool');
|
|
70
|
+
if (!tool) throw new Error('Tool not found');
|
|
71
|
+
|
|
72
|
+
const result = await tool.call({ input: input.query });
|
|
73
|
+
return { result };
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Optional: for idempotency
|
|
77
|
+
idemKey(ctx: RunContext, input: { query: string }): string {
|
|
78
|
+
return `my-task:${input.query}`;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Optional: for policy evaluation
|
|
82
|
+
policyInput(ctx: RunContext, input: { query: string }): Record<string, unknown> {
|
|
83
|
+
return { query: input.query, userId: ctx.context.facts.userId };
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Optional: for verification
|
|
87
|
+
verification(): string[] {
|
|
88
|
+
return ['output.result !== undefined'];
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Implementing Registries
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
import { CapabilityRegistry, ToolRegistry, type Capability, type Task, type Tool } from '@ddse/acm-sdk';
|
|
97
|
+
|
|
98
|
+
export class MyCapabilityRegistry extends CapabilityRegistry {
|
|
99
|
+
private tasks = new Map<string, Task>();
|
|
100
|
+
private capabilities = new Map<string, Capability>();
|
|
101
|
+
|
|
102
|
+
register(capability: Capability, task: Task): void {
|
|
103
|
+
this.capabilities.set(capability.name, capability);
|
|
104
|
+
this.tasks.set(capability.name, task);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
list(): Capability[] {
|
|
108
|
+
return Array.from(this.capabilities.values());
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
has(name: string): boolean {
|
|
112
|
+
return this.capabilities.has(name);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
resolve(name: string): Task | undefined {
|
|
116
|
+
return this.tasks.get(name);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
inputSchema(name: string): unknown | undefined {
|
|
120
|
+
return this.capabilities.get(name)?.inputSchema;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
outputSchema(name: string): unknown | undefined {
|
|
124
|
+
return this.capabilities.get(name)?.outputSchema;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Using Streaming
|
|
130
|
+
|
|
131
|
+
```typescript
|
|
132
|
+
import { DefaultStreamSink } from '@ddse/acm-sdk';
|
|
133
|
+
|
|
134
|
+
const stream = new DefaultStreamSink();
|
|
135
|
+
|
|
136
|
+
// Attach listeners
|
|
137
|
+
stream.attach('task', (update) => {
|
|
138
|
+
console.log('Task update:', update);
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
stream.attach('planner', (chunk) => {
|
|
142
|
+
if (chunk.delta) {
|
|
143
|
+
process.stdout.write(chunk.delta);
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
// Emit events
|
|
148
|
+
stream.emit('task', { taskId: 't1', status: 'running' });
|
|
149
|
+
stream.emit('planner', { delta: 'Generating plan...' });
|
|
150
|
+
|
|
151
|
+
// Clean up
|
|
152
|
+
stream.close('task');
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Type Reference
|
|
156
|
+
|
|
157
|
+
### Goal
|
|
158
|
+
|
|
159
|
+
```typescript
|
|
160
|
+
type Goal = {
|
|
161
|
+
id: string;
|
|
162
|
+
intent: string;
|
|
163
|
+
constraints?: Record<string, any>;
|
|
164
|
+
};
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Context
|
|
168
|
+
|
|
169
|
+
```typescript
|
|
170
|
+
type Context = {
|
|
171
|
+
id: string;
|
|
172
|
+
facts: Record<string, any>;
|
|
173
|
+
version?: string;
|
|
174
|
+
};
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Plan
|
|
178
|
+
|
|
179
|
+
```typescript
|
|
180
|
+
type Plan = {
|
|
181
|
+
id: string;
|
|
182
|
+
contextRef: string;
|
|
183
|
+
capabilityMapVersion: string;
|
|
184
|
+
tasks: TaskSpec[];
|
|
185
|
+
edges: PlanEdge[];
|
|
186
|
+
join?: 'all' | 'any';
|
|
187
|
+
alternatives?: string[];
|
|
188
|
+
rationale?: string;
|
|
189
|
+
};
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### TaskSpec
|
|
193
|
+
|
|
194
|
+
```typescript
|
|
195
|
+
type TaskSpec = {
|
|
196
|
+
id: string;
|
|
197
|
+
capability: string;
|
|
198
|
+
input?: any;
|
|
199
|
+
retry?: {
|
|
200
|
+
attempts: number;
|
|
201
|
+
backoff: 'fixed' | 'exp';
|
|
202
|
+
baseMs?: number;
|
|
203
|
+
jitter?: boolean;
|
|
204
|
+
};
|
|
205
|
+
verification?: string[];
|
|
206
|
+
};
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
## ACM v0.5 Mapping
|
|
210
|
+
|
|
211
|
+
This package implements the core abstractions from ACM v0.5:
|
|
212
|
+
- **Goal**: Section 2.1
|
|
213
|
+
- **Capability**: Section 2.3
|
|
214
|
+
- **Task**: Section 2.4
|
|
215
|
+
- **Tool**: Section 2.5
|
|
216
|
+
- **Context**: Section 4
|
|
217
|
+
- **Plan**: Section 5.4
|
|
218
|
+
|
|
219
|
+
## License
|
|
220
|
+
|
|
221
|
+
Apache-2.0
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Capability } from './types.js';
|
|
2
|
+
import type { Task } from './task.js';
|
|
3
|
+
export declare abstract class CapabilityRegistry {
|
|
4
|
+
abstract list(): Capability[];
|
|
5
|
+
abstract has(name: string): boolean;
|
|
6
|
+
abstract resolve(name: string): Task<any, any> | undefined;
|
|
7
|
+
abstract inputSchema(name: string): unknown | undefined;
|
|
8
|
+
abstract outputSchema(name: string): unknown | undefined;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=capability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,8BAAsB,kBAAkB;IACtC,QAAQ,CAAC,IAAI,IAAI,UAAU,EAAE;IAC7B,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IACnC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS;IAC1D,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IACvD,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;CACzD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability.js","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":"AAIA,MAAM,OAAgB,kBAAkB;CAMvC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// SDK exports
|
|
2
|
+
export * from './types.js';
|
|
3
|
+
export * from './tool.js';
|
|
4
|
+
export * from './task.js';
|
|
5
|
+
export * from './capability.js';
|
|
6
|
+
export * from './registry.js';
|
|
7
|
+
export * from './policy.js';
|
|
8
|
+
export * from './stream.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
package/dist/policy.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CACN,MAAM,EAAE,YAAY,GAAG,UAAU,GAAG,WAAW,EAC/C,OAAO,EAAE,GAAG,GACX,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5B"}
|
package/dist/policy.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,8BAAsB,YAAY;IAChC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS;IACtD,QAAQ,CAAC,IAAI,IAAI,MAAM,EAAE;CAC1B"}
|
package/dist/registry.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAGA,MAAM,OAAgB,YAAY;CAGjC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CapabilityMap } from './types.js';
|
|
2
|
+
export declare const CAPABILITY_MAP_VERSION = "capability-map.v2025.10";
|
|
3
|
+
export declare const DEFAULT_CAPABILITIES: CapabilityMap['capabilities'];
|
|
4
|
+
export declare const DEFAULT_CAPABILITY_MAP: CapabilityMap;
|
|
5
|
+
export declare function findCapability(name: string, map?: CapabilityMap): (CapabilityMap['capabilities'][number]) | undefined;
|
|
6
|
+
//# sourceMappingURL=capability-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability-map.d.ts","sourceRoot":"","sources":["../../src/capability-map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,sBAAsB,4BAA4B,CAAC;AAEhE,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC,cAAc,CA+Q9D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,aAGpC,CAAC;AAEF,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,GAAG,GAAE,aAAsC,GAC1C,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAErD"}
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
export const CAPABILITY_MAP_VERSION = 'capability-map.v2025.10';
|
|
2
|
+
export const DEFAULT_CAPABILITIES = [
|
|
3
|
+
{
|
|
4
|
+
name: 'search',
|
|
5
|
+
version: 'v1.0.0',
|
|
6
|
+
inputSchema: {
|
|
7
|
+
type: 'object',
|
|
8
|
+
properties: {
|
|
9
|
+
query: { type: 'string' },
|
|
10
|
+
limit: { type: 'number', minimum: 1, maximum: 25 },
|
|
11
|
+
},
|
|
12
|
+
required: ['query'],
|
|
13
|
+
},
|
|
14
|
+
outputSchema: {
|
|
15
|
+
type: 'object',
|
|
16
|
+
properties: {
|
|
17
|
+
results: {
|
|
18
|
+
type: 'array',
|
|
19
|
+
items: {
|
|
20
|
+
type: 'object',
|
|
21
|
+
properties: {
|
|
22
|
+
id: { type: 'string' },
|
|
23
|
+
title: { type: 'string' },
|
|
24
|
+
snippet: { type: 'string' },
|
|
25
|
+
score: { type: 'number' },
|
|
26
|
+
},
|
|
27
|
+
required: ['id', 'title', 'snippet'],
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
required: ['results'],
|
|
32
|
+
},
|
|
33
|
+
invariants: ['results is an array of ranked documents'],
|
|
34
|
+
sideEffects: false,
|
|
35
|
+
tools: [{ name: 'search', version: 'v1.0.0' }],
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'enrich_and_act',
|
|
39
|
+
version: 'v1.0.0',
|
|
40
|
+
inputSchema: {
|
|
41
|
+
type: 'object',
|
|
42
|
+
properties: {
|
|
43
|
+
searchQuery: { type: 'string' },
|
|
44
|
+
orderId: { type: 'string' },
|
|
45
|
+
},
|
|
46
|
+
required: ['searchQuery', 'orderId'],
|
|
47
|
+
},
|
|
48
|
+
outputSchema: {
|
|
49
|
+
type: 'object',
|
|
50
|
+
properties: {
|
|
51
|
+
action: { type: 'string', enum: ['ESCALATE', 'PROCEED'] },
|
|
52
|
+
details: { type: 'object' },
|
|
53
|
+
},
|
|
54
|
+
required: ['action'],
|
|
55
|
+
},
|
|
56
|
+
invariants: ['action must be ESCALATE or PROCEED'],
|
|
57
|
+
sideEffects: false,
|
|
58
|
+
tools: [
|
|
59
|
+
{ name: 'search', version: 'v1.0.0' },
|
|
60
|
+
{ name: 'extract_entities', version: 'v1.0.0' },
|
|
61
|
+
{ name: 'assess_risk', version: 'v1.0.0' },
|
|
62
|
+
],
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: 'refund_flow',
|
|
66
|
+
version: 'v1.0.0',
|
|
67
|
+
inputSchema: {
|
|
68
|
+
type: 'object',
|
|
69
|
+
properties: {
|
|
70
|
+
orderId: { type: 'string' },
|
|
71
|
+
amount: { type: 'number', minimum: 0 },
|
|
72
|
+
},
|
|
73
|
+
required: ['orderId', 'amount'],
|
|
74
|
+
},
|
|
75
|
+
outputSchema: {
|
|
76
|
+
type: 'object',
|
|
77
|
+
properties: {
|
|
78
|
+
transactionId: { type: 'string' },
|
|
79
|
+
notified: { type: 'boolean' },
|
|
80
|
+
},
|
|
81
|
+
required: ['transactionId', 'notified'],
|
|
82
|
+
},
|
|
83
|
+
invariants: ['transactionId must be non-empty'],
|
|
84
|
+
sideEffects: ['Creates financial transaction', 'Sends supervisor notification'],
|
|
85
|
+
tools: [
|
|
86
|
+
{ name: 'create_refund_txn', version: 'v1.0.0' },
|
|
87
|
+
{ name: 'notify_supervisor', version: 'v1.0.0' },
|
|
88
|
+
],
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
name: 'check_entitlement',
|
|
92
|
+
version: 'v1.0.0',
|
|
93
|
+
inputSchema: {
|
|
94
|
+
type: 'object',
|
|
95
|
+
properties: {
|
|
96
|
+
customerId: { type: 'string' },
|
|
97
|
+
benefitCode: { type: 'string' },
|
|
98
|
+
},
|
|
99
|
+
required: ['customerId', 'benefitCode'],
|
|
100
|
+
},
|
|
101
|
+
outputSchema: {
|
|
102
|
+
type: 'object',
|
|
103
|
+
properties: {
|
|
104
|
+
eligible: { type: 'boolean' },
|
|
105
|
+
rationale: { type: 'string' },
|
|
106
|
+
},
|
|
107
|
+
required: ['eligible'],
|
|
108
|
+
},
|
|
109
|
+
invariants: ['Eligibility decisions must include rationale when false'],
|
|
110
|
+
sideEffects: false,
|
|
111
|
+
tools: [
|
|
112
|
+
{ name: 'fetch_customer_profile', version: 'v1.0.0' },
|
|
113
|
+
{ name: 'evaluate_entitlement', version: 'v1.0.0' },
|
|
114
|
+
],
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
name: 'summarize_snippet',
|
|
118
|
+
version: 'v1.0.0',
|
|
119
|
+
inputSchema: {
|
|
120
|
+
type: 'object',
|
|
121
|
+
properties: {
|
|
122
|
+
documentId: { type: 'string' },
|
|
123
|
+
snippet: { type: 'string' },
|
|
124
|
+
},
|
|
125
|
+
required: ['documentId', 'snippet'],
|
|
126
|
+
},
|
|
127
|
+
outputSchema: {
|
|
128
|
+
type: 'object',
|
|
129
|
+
properties: {
|
|
130
|
+
summary: { type: 'string' },
|
|
131
|
+
followUps: {
|
|
132
|
+
type: 'array',
|
|
133
|
+
items: { type: 'string' },
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
required: ['summary'],
|
|
137
|
+
},
|
|
138
|
+
invariants: ['Summary must be <= 200 tokens'],
|
|
139
|
+
sideEffects: false,
|
|
140
|
+
tools: [{ name: 'llm.summarize', version: 'v1.0.0' }],
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
name: 'route_incident',
|
|
144
|
+
version: 'v1.0.0',
|
|
145
|
+
inputSchema: {
|
|
146
|
+
type: 'object',
|
|
147
|
+
properties: {
|
|
148
|
+
incidentId: { type: 'string' },
|
|
149
|
+
severity: { type: 'string' },
|
|
150
|
+
},
|
|
151
|
+
required: ['incidentId', 'severity'],
|
|
152
|
+
},
|
|
153
|
+
outputSchema: {
|
|
154
|
+
type: 'object',
|
|
155
|
+
properties: {
|
|
156
|
+
queue: { type: 'string' },
|
|
157
|
+
escalated: { type: 'boolean' },
|
|
158
|
+
},
|
|
159
|
+
required: ['queue', 'escalated'],
|
|
160
|
+
},
|
|
161
|
+
invariants: ['High severity incidents must set escalated=true'],
|
|
162
|
+
sideEffects: ['Logs routing decision'],
|
|
163
|
+
tools: [
|
|
164
|
+
{ name: 'classify_severity', version: 'v1.0.0' },
|
|
165
|
+
{ name: 'select_queue', version: 'v1.0.0' },
|
|
166
|
+
{ name: 'escalate_incident', version: 'v1.0.0' },
|
|
167
|
+
],
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
name: 'verify_invoice',
|
|
171
|
+
version: 'v1.0.0',
|
|
172
|
+
inputSchema: {
|
|
173
|
+
type: 'object',
|
|
174
|
+
properties: {
|
|
175
|
+
invoiceId: { type: 'string' },
|
|
176
|
+
},
|
|
177
|
+
required: ['invoiceId'],
|
|
178
|
+
},
|
|
179
|
+
outputSchema: {
|
|
180
|
+
type: 'object',
|
|
181
|
+
properties: {
|
|
182
|
+
discrepancies: {
|
|
183
|
+
type: 'array',
|
|
184
|
+
items: { type: 'string' },
|
|
185
|
+
},
|
|
186
|
+
status: { type: 'string', enum: ['PASS', 'FAIL'] },
|
|
187
|
+
},
|
|
188
|
+
required: ['status'],
|
|
189
|
+
},
|
|
190
|
+
invariants: ['status must be FAIL when discrepancies array is non-empty'],
|
|
191
|
+
sideEffects: ['Writes reconciliation report when FAIL'],
|
|
192
|
+
tools: [
|
|
193
|
+
{ name: 'fetch_invoice', version: 'v1.0.0' },
|
|
194
|
+
{ name: 'fetch_purchase_order', version: 'v1.0.0' },
|
|
195
|
+
{ name: 'compare_line_items', version: 'v1.0.0' },
|
|
196
|
+
{ name: 'record_findings', version: 'v1.0.0' },
|
|
197
|
+
],
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
name: 'coach_agent',
|
|
201
|
+
version: 'v1.0.0',
|
|
202
|
+
inputSchema: {
|
|
203
|
+
type: 'object',
|
|
204
|
+
properties: {
|
|
205
|
+
transcriptId: { type: 'string' },
|
|
206
|
+
},
|
|
207
|
+
required: ['transcriptId'],
|
|
208
|
+
},
|
|
209
|
+
outputSchema: {
|
|
210
|
+
type: 'object',
|
|
211
|
+
properties: {
|
|
212
|
+
insights: {
|
|
213
|
+
type: 'array',
|
|
214
|
+
items: { type: 'string' },
|
|
215
|
+
},
|
|
216
|
+
summary: { type: 'string' },
|
|
217
|
+
},
|
|
218
|
+
required: ['insights'],
|
|
219
|
+
},
|
|
220
|
+
invariants: ['Insights must include at least one action item'],
|
|
221
|
+
sideEffects: ['Logs coaching session'],
|
|
222
|
+
tools: [
|
|
223
|
+
{ name: 'analyze_transcript', version: 'v1.0.0' },
|
|
224
|
+
{ name: 'generate_feedback', version: 'v1.0.0' },
|
|
225
|
+
{ name: 'log_coaching_note', version: 'v1.0.0' },
|
|
226
|
+
],
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
name: 'create_refund_txn',
|
|
230
|
+
version: 'v1.0.0',
|
|
231
|
+
inputSchema: {
|
|
232
|
+
type: 'object',
|
|
233
|
+
properties: {
|
|
234
|
+
orderId: { type: 'string' },
|
|
235
|
+
amount: { type: 'number', minimum: 0 },
|
|
236
|
+
},
|
|
237
|
+
required: ['orderId', 'amount'],
|
|
238
|
+
},
|
|
239
|
+
outputSchema: {
|
|
240
|
+
type: 'object',
|
|
241
|
+
properties: {
|
|
242
|
+
transactionId: { type: 'string' },
|
|
243
|
+
status: { type: 'string', enum: ['COMPLETED'] },
|
|
244
|
+
},
|
|
245
|
+
required: ['transactionId'],
|
|
246
|
+
},
|
|
247
|
+
invariants: ['Amount must be >= 0'],
|
|
248
|
+
sideEffects: ['Writes refund transaction ledger'],
|
|
249
|
+
tools: [{ name: 'billing.refund', version: 'v1.0.0' }],
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
name: 'notify_supervisor',
|
|
253
|
+
version: 'v1.0.0',
|
|
254
|
+
inputSchema: {
|
|
255
|
+
type: 'object',
|
|
256
|
+
properties: {
|
|
257
|
+
message: { type: 'string' },
|
|
258
|
+
channel: { type: 'string' },
|
|
259
|
+
},
|
|
260
|
+
required: ['message', 'channel'],
|
|
261
|
+
},
|
|
262
|
+
outputSchema: {
|
|
263
|
+
type: 'object',
|
|
264
|
+
properties: {
|
|
265
|
+
sent: { type: 'boolean' },
|
|
266
|
+
},
|
|
267
|
+
required: ['sent'],
|
|
268
|
+
},
|
|
269
|
+
invariants: ['Notifications must capture sent flag'],
|
|
270
|
+
sideEffects: ['Sends supervisor notification'],
|
|
271
|
+
tools: [{ name: 'notify_supervisor', version: 'v1.0.0' }],
|
|
272
|
+
},
|
|
273
|
+
];
|
|
274
|
+
export const DEFAULT_CAPABILITY_MAP = {
|
|
275
|
+
version: CAPABILITY_MAP_VERSION,
|
|
276
|
+
capabilities: DEFAULT_CAPABILITIES,
|
|
277
|
+
};
|
|
278
|
+
export function findCapability(name, map = DEFAULT_CAPABILITY_MAP) {
|
|
279
|
+
return map.capabilities.find(capability => capability.name === name);
|
|
280
|
+
}
|
|
281
|
+
//# sourceMappingURL=capability-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability-map.js","sourceRoot":"","sources":["../../src/capability-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Capability } from './types.js';
|
|
2
|
+
import type { Task } from './task.js';
|
|
3
|
+
export declare abstract class CapabilityRegistry {
|
|
4
|
+
abstract list(): Capability[];
|
|
5
|
+
abstract has(name: string): boolean;
|
|
6
|
+
abstract resolve(name: string): Task<any, any> | undefined;
|
|
7
|
+
abstract inputSchema(name: string): unknown | undefined;
|
|
8
|
+
abstract outputSchema(name: string): unknown | undefined;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=capability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../../src/capability.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,8BAAsB,kBAAkB;IACtC,QAAQ,CAAC,IAAI,IAAI,UAAU,EAAE;IAC7B,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IACnC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS;IAC1D,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IACvD,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;CACzD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability.js","sourceRoot":"","sources":["../../src/capability.ts"],"names":[],"mappings":"AAIA,MAAM,OAAgB,kBAAkB;CAMvC"}
|