@animalabs/agent-framework 0.1.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 +233 -0
- package/dist/src/agent.d.ts +130 -0
- package/dist/src/agent.d.ts.map +1 -0
- package/dist/src/agent.js +406 -0
- package/dist/src/agent.js.map +1 -0
- package/dist/src/api/mcp-server.d.ts +37 -0
- package/dist/src/api/mcp-server.d.ts.map +1 -0
- package/dist/src/api/mcp-server.js +598 -0
- package/dist/src/api/mcp-server.js.map +1 -0
- package/dist/src/api/server.d.ts +83 -0
- package/dist/src/api/server.d.ts.map +1 -0
- package/dist/src/api/server.js +785 -0
- package/dist/src/api/server.js.map +1 -0
- package/dist/src/api/types.d.ts +395 -0
- package/dist/src/api/types.d.ts.map +1 -0
- package/dist/src/api/types.js +5 -0
- package/dist/src/api/types.js.map +1 -0
- package/dist/src/framework.d.ts +309 -0
- package/dist/src/framework.d.ts.map +1 -0
- package/dist/src/framework.js +2309 -0
- package/dist/src/framework.js.map +1 -0
- package/dist/src/gate/event-gate.d.ts +75 -0
- package/dist/src/gate/event-gate.d.ts.map +1 -0
- package/dist/src/gate/event-gate.js +503 -0
- package/dist/src/gate/event-gate.js.map +1 -0
- package/dist/src/gate/index.d.ts +3 -0
- package/dist/src/gate/index.d.ts.map +1 -0
- package/dist/src/gate/index.js +2 -0
- package/dist/src/gate/index.js.map +1 -0
- package/dist/src/gate/types.d.ts +82 -0
- package/dist/src/gate/types.d.ts.map +1 -0
- package/dist/src/gate/types.js +9 -0
- package/dist/src/gate/types.js.map +1 -0
- package/dist/src/index.d.ts +17 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +18 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/mcpl/channel-registry.d.ts +141 -0
- package/dist/src/mcpl/channel-registry.d.ts.map +1 -0
- package/dist/src/mcpl/channel-registry.js +647 -0
- package/dist/src/mcpl/channel-registry.js.map +1 -0
- package/dist/src/mcpl/checkpoint-manager.d.ts +79 -0
- package/dist/src/mcpl/checkpoint-manager.d.ts.map +1 -0
- package/dist/src/mcpl/checkpoint-manager.js +430 -0
- package/dist/src/mcpl/checkpoint-manager.js.map +1 -0
- package/dist/src/mcpl/errors.d.ts +52 -0
- package/dist/src/mcpl/errors.d.ts.map +1 -0
- package/dist/src/mcpl/errors.js +93 -0
- package/dist/src/mcpl/errors.js.map +1 -0
- package/dist/src/mcpl/feature-set-manager.d.ts +91 -0
- package/dist/src/mcpl/feature-set-manager.d.ts.map +1 -0
- package/dist/src/mcpl/feature-set-manager.js +250 -0
- package/dist/src/mcpl/feature-set-manager.js.map +1 -0
- package/dist/src/mcpl/hook-orchestrator.d.ts +51 -0
- package/dist/src/mcpl/hook-orchestrator.d.ts.map +1 -0
- package/dist/src/mcpl/hook-orchestrator.js +217 -0
- package/dist/src/mcpl/hook-orchestrator.js.map +1 -0
- package/dist/src/mcpl/index.d.ts +14 -0
- package/dist/src/mcpl/index.d.ts.map +1 -0
- package/dist/src/mcpl/index.js +21 -0
- package/dist/src/mcpl/index.js.map +1 -0
- package/dist/src/mcpl/inference-router.d.ts +67 -0
- package/dist/src/mcpl/inference-router.d.ts.map +1 -0
- package/dist/src/mcpl/inference-router.js +249 -0
- package/dist/src/mcpl/inference-router.js.map +1 -0
- package/dist/src/mcpl/push-handler.d.ts +60 -0
- package/dist/src/mcpl/push-handler.d.ts.map +1 -0
- package/dist/src/mcpl/push-handler.js +162 -0
- package/dist/src/mcpl/push-handler.js.map +1 -0
- package/dist/src/mcpl/scope-manager.d.ts +76 -0
- package/dist/src/mcpl/scope-manager.d.ts.map +1 -0
- package/dist/src/mcpl/scope-manager.js +213 -0
- package/dist/src/mcpl/scope-manager.js.map +1 -0
- package/dist/src/mcpl/server-connection.d.ts +174 -0
- package/dist/src/mcpl/server-connection.d.ts.map +1 -0
- package/dist/src/mcpl/server-connection.js +559 -0
- package/dist/src/mcpl/server-connection.js.map +1 -0
- package/dist/src/mcpl/server-registry.d.ts +63 -0
- package/dist/src/mcpl/server-registry.d.ts.map +1 -0
- package/dist/src/mcpl/server-registry.js +119 -0
- package/dist/src/mcpl/server-registry.js.map +1 -0
- package/dist/src/mcpl/types.d.ts +755 -0
- package/dist/src/mcpl/types.d.ts.map +1 -0
- package/dist/src/mcpl/types.js +48 -0
- package/dist/src/mcpl/types.js.map +1 -0
- package/dist/src/module-registry.d.ts +93 -0
- package/dist/src/module-registry.d.ts.map +1 -0
- package/dist/src/module-registry.js +386 -0
- package/dist/src/module-registry.js.map +1 -0
- package/dist/src/modules/api/index.d.ts +22 -0
- package/dist/src/modules/api/index.d.ts.map +1 -0
- package/dist/src/modules/api/index.js +63 -0
- package/dist/src/modules/api/index.js.map +1 -0
- package/dist/src/modules/discord/discord-js-client.d.ts +58 -0
- package/dist/src/modules/discord/discord-js-client.d.ts.map +1 -0
- package/dist/src/modules/discord/discord-js-client.js +273 -0
- package/dist/src/modules/discord/discord-js-client.js.map +1 -0
- package/dist/src/modules/discord/index.d.ts +82 -0
- package/dist/src/modules/discord/index.d.ts.map +1 -0
- package/dist/src/modules/discord/index.js +959 -0
- package/dist/src/modules/discord/index.js.map +1 -0
- package/dist/src/modules/discord/types.d.ts +327 -0
- package/dist/src/modules/discord/types.d.ts.map +1 -0
- package/dist/src/modules/discord/types.js +5 -0
- package/dist/src/modules/discord/types.js.map +1 -0
- package/dist/src/modules/index.d.ts +11 -0
- package/dist/src/modules/index.d.ts.map +1 -0
- package/dist/src/modules/index.js +7 -0
- package/dist/src/modules/index.js.map +1 -0
- package/dist/src/modules/workspace/index.d.ts +59 -0
- package/dist/src/modules/workspace/index.d.ts.map +1 -0
- package/dist/src/modules/workspace/index.js +831 -0
- package/dist/src/modules/workspace/index.js.map +1 -0
- package/dist/src/modules/workspace/sync.d.ts +48 -0
- package/dist/src/modules/workspace/sync.d.ts.map +1 -0
- package/dist/src/modules/workspace/sync.js +253 -0
- package/dist/src/modules/workspace/sync.js.map +1 -0
- package/dist/src/modules/workspace/types.d.ts +166 -0
- package/dist/src/modules/workspace/types.d.ts.map +1 -0
- package/dist/src/modules/workspace/types.js +5 -0
- package/dist/src/modules/workspace/types.js.map +1 -0
- package/dist/src/modules/workspace/watcher.d.ts +43 -0
- package/dist/src/modules/workspace/watcher.d.ts.map +1 -0
- package/dist/src/modules/workspace/watcher.js +120 -0
- package/dist/src/modules/workspace/watcher.js.map +1 -0
- package/dist/src/queue.d.ts +50 -0
- package/dist/src/queue.d.ts.map +1 -0
- package/dist/src/queue.js +95 -0
- package/dist/src/queue.js.map +1 -0
- package/dist/src/safe-slice.d.ts +8 -0
- package/dist/src/safe-slice.d.ts.map +1 -0
- package/dist/src/safe-slice.js +18 -0
- package/dist/src/safe-slice.js.map +1 -0
- package/dist/src/types/agent.d.ts +118 -0
- package/dist/src/types/agent.d.ts.map +1 -0
- package/dist/src/types/agent.js +2 -0
- package/dist/src/types/agent.js.map +1 -0
- package/dist/src/types/events.d.ts +220 -0
- package/dist/src/types/events.d.ts.map +1 -0
- package/dist/src/types/events.js +2 -0
- package/dist/src/types/events.js.map +1 -0
- package/dist/src/types/framework.d.ts +184 -0
- package/dist/src/types/framework.d.ts.map +1 -0
- package/dist/src/types/framework.js +2 -0
- package/dist/src/types/framework.js.map +1 -0
- package/dist/src/types/index.d.ts +7 -0
- package/dist/src/types/index.d.ts.map +1 -0
- package/dist/src/types/index.js +7 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/types/inference-log.d.ts +64 -0
- package/dist/src/types/inference-log.d.ts.map +1 -0
- package/dist/src/types/inference-log.js +5 -0
- package/dist/src/types/inference-log.js.map +1 -0
- package/dist/src/types/module.d.ts +302 -0
- package/dist/src/types/module.d.ts.map +1 -0
- package/dist/src/types/module.js +2 -0
- package/dist/src/types/module.js.map +1 -0
- package/dist/src/types/trace.d.ts +173 -0
- package/dist/src/types/trace.d.ts.map +1 -0
- package/dist/src/types/trace.js +2 -0
- package/dist/src/types/trace.js.map +1 -0
- package/dist/test/event-gate.test.d.ts +2 -0
- package/dist/test/event-gate.test.d.ts.map +1 -0
- package/dist/test/event-gate.test.js +535 -0
- package/dist/test/event-gate.test.js.map +1 -0
- package/dist/test/framework.test.d.ts +5 -0
- package/dist/test/framework.test.d.ts.map +1 -0
- package/dist/test/framework.test.js +738 -0
- package/dist/test/framework.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +58 -0
- package/src/agent.ts +512 -0
- package/src/api/mcp-server.ts +687 -0
- package/src/api/server.ts +1023 -0
- package/src/api/types.ts +542 -0
- package/src/framework.ts +2784 -0
- package/src/gate/event-gate.ts +623 -0
- package/src/gate/index.ts +12 -0
- package/src/gate/types.ts +112 -0
- package/src/index.ts +63 -0
- package/src/mcpl/channel-registry.ts +824 -0
- package/src/mcpl/checkpoint-manager.ts +545 -0
- package/src/mcpl/errors.ts +114 -0
- package/src/mcpl/feature-set-manager.ts +333 -0
- package/src/mcpl/hook-orchestrator.ts +281 -0
- package/src/mcpl/index.ts +134 -0
- package/src/mcpl/inference-router.ts +335 -0
- package/src/mcpl/push-handler.ts +232 -0
- package/src/mcpl/scope-manager.ts +262 -0
- package/src/mcpl/server-connection.ts +694 -0
- package/src/mcpl/server-registry.ts +144 -0
- package/src/mcpl/types.ts +991 -0
- package/src/module-registry.ts +547 -0
- package/src/modules/api/index.ts +94 -0
- package/src/modules/discord/discord-js-client.ts +353 -0
- package/src/modules/discord/index.ts +1146 -0
- package/src/modules/discord/types.ts +465 -0
- package/src/modules/index.ts +43 -0
- package/src/modules/workspace/index.ts +969 -0
- package/src/modules/workspace/sync.ts +314 -0
- package/src/modules/workspace/types.ts +202 -0
- package/src/modules/workspace/watcher.ts +142 -0
- package/src/queue.ts +106 -0
- package/src/safe-slice.ts +18 -0
- package/src/types/agent.ts +119 -0
- package/src/types/events.ts +252 -0
- package/src/types/framework.ts +211 -0
- package/src/types/index.ts +6 -0
- package/src/types/inference-log.ts +64 -0
- package/src/types/module.ts +367 -0
- package/src/types/trace.ts +196 -0
package/src/api/types.ts
ADDED
|
@@ -0,0 +1,542 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API types for WebSocket communication with the agent framework
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import type { ContentBlock } from '@animalabs/membrane';
|
|
6
|
+
import type { AgentStatus, ToolCall, ToolResult } from '../types/index.js';
|
|
7
|
+
|
|
8
|
+
// ============================================================================
|
|
9
|
+
// Protocol
|
|
10
|
+
// ============================================================================
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Base message structure for all API communication.
|
|
14
|
+
*/
|
|
15
|
+
export interface ApiMessage {
|
|
16
|
+
/** Message type */
|
|
17
|
+
type: string;
|
|
18
|
+
/** Request ID for correlation (client provides, server echoes) */
|
|
19
|
+
id?: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Request from client to server.
|
|
24
|
+
*/
|
|
25
|
+
export interface ApiRequest extends ApiMessage {
|
|
26
|
+
type: 'request';
|
|
27
|
+
/** Command to execute */
|
|
28
|
+
command: string;
|
|
29
|
+
/** Command parameters */
|
|
30
|
+
params?: Record<string, unknown>;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Response from server to client.
|
|
35
|
+
*/
|
|
36
|
+
export interface ApiResponse extends ApiMessage {
|
|
37
|
+
type: 'response';
|
|
38
|
+
/** Whether the request succeeded */
|
|
39
|
+
success: boolean;
|
|
40
|
+
/** Response data (if success) */
|
|
41
|
+
data?: unknown;
|
|
42
|
+
/** Error message (if failure) */
|
|
43
|
+
error?: string;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Event from server to client.
|
|
48
|
+
*/
|
|
49
|
+
export interface ApiEvent extends ApiMessage {
|
|
50
|
+
type: 'event';
|
|
51
|
+
/** Event name */
|
|
52
|
+
event: string;
|
|
53
|
+
/** Event data */
|
|
54
|
+
data: unknown;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// ============================================================================
|
|
58
|
+
// Commands
|
|
59
|
+
// ============================================================================
|
|
60
|
+
|
|
61
|
+
export type ApiCommand =
|
|
62
|
+
// Conversation
|
|
63
|
+
| 'message.send'
|
|
64
|
+
| 'message.list'
|
|
65
|
+
| 'inference.request'
|
|
66
|
+
| 'inference.abort'
|
|
67
|
+
// Branching
|
|
68
|
+
| 'branch.list'
|
|
69
|
+
| 'branch.create'
|
|
70
|
+
| 'branch.switch'
|
|
71
|
+
| 'branch.current'
|
|
72
|
+
| 'branch.delete'
|
|
73
|
+
// Inspection
|
|
74
|
+
| 'agent.list'
|
|
75
|
+
| 'agent.context'
|
|
76
|
+
| 'module.list'
|
|
77
|
+
| 'module.state'
|
|
78
|
+
| 'store.states'
|
|
79
|
+
| 'store.inspect'
|
|
80
|
+
| 'store.search'
|
|
81
|
+
// Subscriptions
|
|
82
|
+
| 'store.subscribe'
|
|
83
|
+
| 'store.unsubscribe'
|
|
84
|
+
// Inference logs
|
|
85
|
+
| 'inference.tail'
|
|
86
|
+
| 'inference.inspect'
|
|
87
|
+
| 'inference.search'
|
|
88
|
+
// Event logs
|
|
89
|
+
| 'events.tail'
|
|
90
|
+
| 'events.inspect'
|
|
91
|
+
| 'events.search'
|
|
92
|
+
| 'events.subscribe';
|
|
93
|
+
|
|
94
|
+
// ============================================================================
|
|
95
|
+
// Command Parameters
|
|
96
|
+
// ============================================================================
|
|
97
|
+
|
|
98
|
+
export interface MessageSendParams {
|
|
99
|
+
/** Participant name (who is sending) */
|
|
100
|
+
participant: string;
|
|
101
|
+
/** Message content (text) */
|
|
102
|
+
content: string;
|
|
103
|
+
/** Whether to trigger inference after (default: true) */
|
|
104
|
+
triggerInference?: boolean;
|
|
105
|
+
/** Specific agents to trigger */
|
|
106
|
+
targetAgents?: string[];
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export interface MessageListParams {
|
|
110
|
+
/** Maximum number of messages to return */
|
|
111
|
+
limit?: number;
|
|
112
|
+
/** Offset from end (0 = most recent) */
|
|
113
|
+
offset?: number;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export interface InferenceRequestParams {
|
|
117
|
+
/** Agent to run inference for (or all if not specified) */
|
|
118
|
+
agentName?: string;
|
|
119
|
+
/** Reason for the request */
|
|
120
|
+
reason?: string;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export interface InferenceAbortParams {
|
|
124
|
+
/** Agent to abort inference for */
|
|
125
|
+
agentName: string;
|
|
126
|
+
/** Optional reason for abort */
|
|
127
|
+
reason?: string;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export interface BranchCreateParams {
|
|
131
|
+
/** Name for the new branch */
|
|
132
|
+
name: string;
|
|
133
|
+
/** Whether to switch to the new branch (default: false) */
|
|
134
|
+
switchTo?: boolean;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
export interface BranchSwitchParams {
|
|
138
|
+
/** Branch name to switch to */
|
|
139
|
+
name: string;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
export interface BranchDeleteParams {
|
|
143
|
+
/** Branch name to delete */
|
|
144
|
+
name: string;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
export interface AgentContextParams {
|
|
148
|
+
/** Agent name */
|
|
149
|
+
agentName: string;
|
|
150
|
+
/** Maximum tokens to include (optional) */
|
|
151
|
+
maxTokens?: number;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
export interface ModuleStateParams {
|
|
155
|
+
/** Module name */
|
|
156
|
+
moduleName: string;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export interface StoreInspectParams {
|
|
160
|
+
/** State ID to inspect */
|
|
161
|
+
stateId: string;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
export interface StoreStatesParams {
|
|
165
|
+
/** Filter by namespace prefix (e.g., 'agents/', 'modules/') */
|
|
166
|
+
namespace?: string;
|
|
167
|
+
/** Maximum number of states to return (default: 50) */
|
|
168
|
+
limit?: number;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
export interface StoreSearchParams {
|
|
172
|
+
/** Filter by namespace prefix */
|
|
173
|
+
namespace?: string;
|
|
174
|
+
/** Regex pattern to match against state content (JSON stringified) */
|
|
175
|
+
contentPattern?: string;
|
|
176
|
+
/** Maximum number of results (default: 20) */
|
|
177
|
+
limit?: number;
|
|
178
|
+
/** Skip first N results for pagination (default: 0) */
|
|
179
|
+
offset?: number;
|
|
180
|
+
/** Preview length in characters (default: 300) */
|
|
181
|
+
previewLength?: number;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
export interface InferenceTailParams {
|
|
185
|
+
/** Number of recent entries to return (default: 10) */
|
|
186
|
+
count?: number;
|
|
187
|
+
/** Filter by agent name */
|
|
188
|
+
agentName?: string;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
export interface InferenceInspectParams {
|
|
192
|
+
/** Sequence number of the log entry to inspect */
|
|
193
|
+
sequence: number;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
export interface InferenceSearchParams {
|
|
197
|
+
/** Filter by agent name */
|
|
198
|
+
agentName?: string;
|
|
199
|
+
/** Maximum number of results (default: 20) */
|
|
200
|
+
limit?: number;
|
|
201
|
+
/** Skip first N results for pagination (default: 0) */
|
|
202
|
+
offset?: number;
|
|
203
|
+
/** Regex pattern to match against log content */
|
|
204
|
+
pattern?: string;
|
|
205
|
+
/** Only show failed inferences */
|
|
206
|
+
errorsOnly?: boolean;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
// --- Event Log Parameters ---
|
|
210
|
+
|
|
211
|
+
export interface EventsTailParams {
|
|
212
|
+
/** Number of recent entries to return (default: 10) */
|
|
213
|
+
count?: number;
|
|
214
|
+
/** Filter by event type */
|
|
215
|
+
eventType?: string;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
export interface EventsInspectParams {
|
|
219
|
+
/** Sequence number of the log entry to inspect */
|
|
220
|
+
sequence: number;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
export interface EventsSearchParams {
|
|
224
|
+
/** Filter by event type */
|
|
225
|
+
eventType?: string;
|
|
226
|
+
/** Filter by module name */
|
|
227
|
+
moduleName?: string;
|
|
228
|
+
/** Maximum number of results (default: 20) */
|
|
229
|
+
limit?: number;
|
|
230
|
+
/** Skip first N results for pagination (default: 0) */
|
|
231
|
+
offset?: number;
|
|
232
|
+
/** Regex pattern to match against log content */
|
|
233
|
+
pattern?: string;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
export interface EventsSubscribeParams {
|
|
237
|
+
/** Event type patterns to subscribe to (e.g., 'inference:*', 'tool:*') */
|
|
238
|
+
types?: string[];
|
|
239
|
+
/** Maximum number of historical events to return (default: 100) */
|
|
240
|
+
limit?: number;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
export interface PersistedEvent {
|
|
244
|
+
/** Unique event ID */
|
|
245
|
+
id: string;
|
|
246
|
+
/** Sequence number in the event log */
|
|
247
|
+
sequence?: number;
|
|
248
|
+
/** Event timestamp */
|
|
249
|
+
timestamp: number;
|
|
250
|
+
/** Event type */
|
|
251
|
+
type: string;
|
|
252
|
+
/** Event payload */
|
|
253
|
+
payload: unknown;
|
|
254
|
+
/** Source of the event */
|
|
255
|
+
source: string;
|
|
256
|
+
/** ID of event that caused this one */
|
|
257
|
+
causedBy?: string;
|
|
258
|
+
/** Agent name (if applicable) */
|
|
259
|
+
agentName?: string;
|
|
260
|
+
/** Module name (if applicable) */
|
|
261
|
+
moduleName?: string;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
// --- Subscription Parameters ---
|
|
265
|
+
|
|
266
|
+
export interface StoreSubscribeParams {
|
|
267
|
+
/** Max buffered events before dropping (default: 1000) */
|
|
268
|
+
bufferSize?: number;
|
|
269
|
+
/** Max bytes for state snapshots (default: 10MB) */
|
|
270
|
+
maxSnapshotBytes?: number;
|
|
271
|
+
/** Starting sequence for catch-up (undefined = live only) */
|
|
272
|
+
fromSequence?: number;
|
|
273
|
+
/** Filter configuration */
|
|
274
|
+
filter?: SubscriptionFilterParams;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
export interface SubscriptionFilterParams {
|
|
278
|
+
/** Filter by record types (undefined = all) */
|
|
279
|
+
recordTypes?: string[];
|
|
280
|
+
/** Filter by branch name */
|
|
281
|
+
branch?: string;
|
|
282
|
+
/** Subscribe to specific state IDs */
|
|
283
|
+
stateIds?: string[];
|
|
284
|
+
/** Include record events (default: false) */
|
|
285
|
+
includeRecords?: boolean;
|
|
286
|
+
/** Include state change events (default: false) */
|
|
287
|
+
includeStateChanges?: boolean;
|
|
288
|
+
/** Include branch events (default: false) */
|
|
289
|
+
includeBranchEvents?: boolean;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
export interface StoreUnsubscribeParams {
|
|
293
|
+
/** Subscription ID to remove */
|
|
294
|
+
subscriptionId: string;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
// ============================================================================
|
|
298
|
+
// Response Data
|
|
299
|
+
// ============================================================================
|
|
300
|
+
|
|
301
|
+
export interface MessageInfo {
|
|
302
|
+
/** Internal message ID */
|
|
303
|
+
id: string;
|
|
304
|
+
/** Participant name */
|
|
305
|
+
participant: string;
|
|
306
|
+
/** Content blocks */
|
|
307
|
+
content: ContentBlock[];
|
|
308
|
+
/** Timestamp */
|
|
309
|
+
timestamp?: Date;
|
|
310
|
+
/** Metadata */
|
|
311
|
+
metadata?: Record<string, unknown>;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
export interface BranchInfo {
|
|
315
|
+
/** Branch name */
|
|
316
|
+
name: string;
|
|
317
|
+
/** Whether this is the current branch */
|
|
318
|
+
isCurrent: boolean;
|
|
319
|
+
/** Parent branch name */
|
|
320
|
+
parent?: string;
|
|
321
|
+
/** Creation timestamp */
|
|
322
|
+
createdAt?: number;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
export interface AgentInfo {
|
|
326
|
+
/** Agent name */
|
|
327
|
+
name: string;
|
|
328
|
+
/** Model */
|
|
329
|
+
model: string;
|
|
330
|
+
/** Current status */
|
|
331
|
+
status: AgentStatus;
|
|
332
|
+
/** System prompt (truncated) */
|
|
333
|
+
systemPromptPreview: string;
|
|
334
|
+
/** Allowed tools */
|
|
335
|
+
allowedTools: 'all' | string[];
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
export interface ModuleInfo {
|
|
339
|
+
/** Module name */
|
|
340
|
+
name: string;
|
|
341
|
+
/** Available tools */
|
|
342
|
+
tools: string[];
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
export interface StateInfo {
|
|
346
|
+
/** State ID */
|
|
347
|
+
id: string;
|
|
348
|
+
/** Strategy */
|
|
349
|
+
strategy: string;
|
|
350
|
+
/** Has data */
|
|
351
|
+
hasData: boolean;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
// ============================================================================
|
|
355
|
+
// Events
|
|
356
|
+
// ============================================================================
|
|
357
|
+
|
|
358
|
+
export type ApiEventType =
|
|
359
|
+
// Trace events (from framework)
|
|
360
|
+
| 'process:completed'
|
|
361
|
+
| 'inference:started'
|
|
362
|
+
| 'inference:completed'
|
|
363
|
+
| 'inference:aborted'
|
|
364
|
+
| 'inference:failed'
|
|
365
|
+
| 'tool:started'
|
|
366
|
+
| 'tool:completed'
|
|
367
|
+
| 'tool:failed'
|
|
368
|
+
| 'tool:result_dropped'
|
|
369
|
+
| 'module:added'
|
|
370
|
+
| 'module:removed'
|
|
371
|
+
| 'message:added'
|
|
372
|
+
// Server-specific events
|
|
373
|
+
| 'connected'
|
|
374
|
+
| 'speech'
|
|
375
|
+
// Branch events
|
|
376
|
+
| 'branch:switched'
|
|
377
|
+
| 'branch:created'
|
|
378
|
+
| 'branch:deleted'
|
|
379
|
+
// Store subscription events
|
|
380
|
+
| 'store:record'
|
|
381
|
+
| 'store:state_snapshot'
|
|
382
|
+
| 'store:state_delta'
|
|
383
|
+
| 'store:branch_head'
|
|
384
|
+
| 'store:branch_created'
|
|
385
|
+
| 'store:branch_deleted'
|
|
386
|
+
| 'store:caught_up'
|
|
387
|
+
| 'store:dropped';
|
|
388
|
+
|
|
389
|
+
export interface InferenceStartEvent {
|
|
390
|
+
agentName: string;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
export interface InferenceCompleteEvent {
|
|
394
|
+
agentName: string;
|
|
395
|
+
durationMs: number;
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
export interface InferenceAbortedEvent {
|
|
399
|
+
agentName: string;
|
|
400
|
+
durationMs: number;
|
|
401
|
+
reason?: string;
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
export interface InferenceErrorEvent {
|
|
405
|
+
agentName: string;
|
|
406
|
+
error: string;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
export interface ToolStartEvent {
|
|
410
|
+
moduleName: string;
|
|
411
|
+
toolName: string;
|
|
412
|
+
callId: string;
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
export interface ToolCompleteEvent {
|
|
416
|
+
moduleName: string;
|
|
417
|
+
toolName: string;
|
|
418
|
+
callId: string;
|
|
419
|
+
durationMs: number;
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
export interface ToolErrorEvent {
|
|
423
|
+
moduleName: string;
|
|
424
|
+
toolName: string;
|
|
425
|
+
callId: string;
|
|
426
|
+
error: string;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
export interface SpeechEvent {
|
|
430
|
+
agentName: string;
|
|
431
|
+
content: ContentBlock[];
|
|
432
|
+
turnComplete: boolean;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
export interface MessageAddedEvent {
|
|
436
|
+
messageId: string;
|
|
437
|
+
participant: string;
|
|
438
|
+
content: ContentBlock[];
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
export interface MessageEditedEvent {
|
|
442
|
+
messageId: string;
|
|
443
|
+
newContent: ContentBlock[];
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
export interface MessageRemovedEvent {
|
|
447
|
+
messageId: string;
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
export interface BranchSwitchedEvent {
|
|
451
|
+
from: string;
|
|
452
|
+
to: string;
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
export interface BranchCreatedEvent {
|
|
456
|
+
name: string;
|
|
457
|
+
parent: string;
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
export interface BranchDeletedEvent {
|
|
461
|
+
name: string;
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
// --- Store Subscription Events ---
|
|
465
|
+
|
|
466
|
+
export interface StoreRecordEvent {
|
|
467
|
+
subscriptionId: string;
|
|
468
|
+
record: {
|
|
469
|
+
id: number;
|
|
470
|
+
sequence: number;
|
|
471
|
+
branch: number;
|
|
472
|
+
recordType: string;
|
|
473
|
+
timestamp: number;
|
|
474
|
+
payloadSize: number;
|
|
475
|
+
payload?: unknown;
|
|
476
|
+
};
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
export interface StoreStateSnapshotEvent {
|
|
480
|
+
subscriptionId: string;
|
|
481
|
+
stateId: string;
|
|
482
|
+
data: unknown;
|
|
483
|
+
sequence: number;
|
|
484
|
+
truncated: boolean;
|
|
485
|
+
totalBytes: number;
|
|
486
|
+
fromIndex?: number;
|
|
487
|
+
totalLength?: number;
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
export interface StoreStateDeltaEvent {
|
|
491
|
+
subscriptionId: string;
|
|
492
|
+
stateId: string;
|
|
493
|
+
operation: unknown;
|
|
494
|
+
sequence: number;
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
export interface StoreBranchHeadEvent {
|
|
498
|
+
subscriptionId: string;
|
|
499
|
+
branch: string;
|
|
500
|
+
head: number;
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
export interface StoreBranchCreatedEvent {
|
|
504
|
+
subscriptionId: string;
|
|
505
|
+
branch: {
|
|
506
|
+
id: number;
|
|
507
|
+
name: string;
|
|
508
|
+
head: number;
|
|
509
|
+
parent?: string;
|
|
510
|
+
branchPoint?: number;
|
|
511
|
+
created: number;
|
|
512
|
+
};
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
export interface StoreBranchDeletedEvent {
|
|
516
|
+
subscriptionId: string;
|
|
517
|
+
name: string;
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
export interface StoreCaughtUpEvent {
|
|
521
|
+
subscriptionId: string;
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
export interface StoreDroppedEvent {
|
|
525
|
+
subscriptionId: string;
|
|
526
|
+
reason: string;
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
// ============================================================================
|
|
530
|
+
// Server Configuration
|
|
531
|
+
// ============================================================================
|
|
532
|
+
|
|
533
|
+
export interface ApiServerConfig {
|
|
534
|
+
/** Port to listen on (default: 8765) */
|
|
535
|
+
port?: number;
|
|
536
|
+
/** Host to bind to (default: 'localhost') */
|
|
537
|
+
host?: string;
|
|
538
|
+
/** Path for WebSocket endpoint (default: '/ws') */
|
|
539
|
+
path?: string;
|
|
540
|
+
/** Enable HTTP endpoints alongside WebSocket (default: true) */
|
|
541
|
+
enableHttp?: boolean;
|
|
542
|
+
}
|