@inteleion-ai/afmx 1.3.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/README.md ADDED
@@ -0,0 +1,154 @@
1
+ # @agentdyne9/afmx
2
+
3
+ > TypeScript SDK for [AFMX](https://github.com/inteleion-ai/AFMX) — Agent Flow Matrix Execution Engine
4
+
5
+ [![npm](https://img.shields.io/npm/v/@agentdyne9/afmx)](https://www.npmjs.com/package/@agentdyne9/afmx)
6
+ [![License](https://img.shields.io/badge/license-Apache%202.0-green)](../../LICENSE)
7
+
8
+ Type-safe client for the AFMX REST API. Works in Node.js 18+, browsers, and edge runtimes (Cloudflare Workers, Vercel Edge, Deno).
9
+
10
+ ## Install
11
+
12
+ ```bash
13
+ npm install @agentdyne9/afmx
14
+ # or
15
+ pnpm add @agentdyne9/afmx
16
+ # or
17
+ yarn add @agentdyne9/afmx
18
+ ```
19
+
20
+ ## Quick start
21
+
22
+ ```typescript
23
+ import { AFMXClient, ExecutionMode, CognitiveLayer, NodeType, buildNode, buildEdge } from '@agentdyne9/afmx';
24
+
25
+ const client = new AFMXClient({ baseUrl: 'http://localhost:8100' });
26
+
27
+ // Build a DIAGONAL matrix — AFMX auto-routes cheap/premium models by layer
28
+ const result = await client.execute({
29
+ matrix: {
30
+ name: 'risk-analysis',
31
+ mode: ExecutionMode.DIAGONAL,
32
+ nodes: [
33
+ buildNode({
34
+ id: 'retrieve',
35
+ name: 'retrieve-market-data',
36
+ handler: 'data_retriever',
37
+ layer: CognitiveLayer.RETRIEVE, // → Haiku / gpt-4o-mini (cheap)
38
+ role: 'QUANT',
39
+ }),
40
+ buildNode({
41
+ id: 'analyse',
42
+ name: 'analyse-risk',
43
+ handler: 'risk_analyser',
44
+ layer: CognitiveLayer.REASON, // → Opus / gpt-4o (premium)
45
+ role: 'RISK_MANAGER',
46
+ }),
47
+ ],
48
+ edges: [buildEdge('retrieve', 'analyse')],
49
+ },
50
+ input: { ticker: 'AAPL', lookback_days: 30 },
51
+ });
52
+
53
+ console.log(result.status, result.duration_ms + 'ms');
54
+ console.log(result.node_results);
55
+ ```
56
+
57
+ ## API
58
+
59
+ ### `new AFMXClient(config)`
60
+
61
+ ```typescript
62
+ const client = new AFMXClient({
63
+ baseUrl: 'http://localhost:8100', // AFMX server URL
64
+ apiKey: 'afmx_....', // optional — if RBAC enabled
65
+ timeoutMs: 30_000, // default: 30 s
66
+ });
67
+ ```
68
+
69
+ ### Execution
70
+
71
+ | Method | Description |
72
+ |--------|-------------|
73
+ | `execute(req)` | Execute synchronously, wait for result |
74
+ | `executeAsync(req)` | Fire-and-forget, returns `execution_id` |
75
+ | `pollUntilDone(id, opts?)` | Poll until terminal state |
76
+ | `getStatus(id)` | Poll once |
77
+ | `getResult(id)` | Full result with node outputs |
78
+ | `cancel(id)` | Cancel a running execution |
79
+ | `retry(id)` | Retry a failed execution |
80
+ | `resume(id)` | Resume from last checkpoint |
81
+
82
+ ### Cognitive Matrix
83
+
84
+ ```typescript
85
+ // Get the 2D heatmap for a completed execution:
86
+ // CognitiveLayer × AgentRole, with model tier + cost per cell
87
+ const view = await client.matrixView(executionId);
88
+
89
+ view.cells['REASON:RISK_MANAGER']
90
+ // → { status: 'SUCCESS', model_tier: 'premium', duration_ms: 847 }
91
+ ```
92
+
93
+ ### Domain packs
94
+
95
+ ```typescript
96
+ const domains = await client.listDomains();
97
+ // → { count: 5, domains: [{ name: 'finance', roles: {...} }, ...] }
98
+
99
+ const finance = await client.getDomain('finance');
100
+ // → { name: 'finance', roles: { QUANT: '...', RISK_MANAGER: '...' } }
101
+ ```
102
+
103
+ ### Async with polling
104
+
105
+ ```typescript
106
+ const { execution_id } = await client.executeAsync({ matrix, input });
107
+
108
+ // Poll every 500 ms, timeout after 5 minutes
109
+ const result = await client.pollUntilDone(execution_id, {
110
+ intervalMs: 500,
111
+ timeoutMs: 300_000,
112
+ });
113
+ ```
114
+
115
+ ## Types
116
+
117
+ All AFMX domain types are exported:
118
+
119
+ ```typescript
120
+ import type {
121
+ ExecutionMatrix,
122
+ ExecutionResponse,
123
+ Node,
124
+ Edge,
125
+ MatrixViewResponse,
126
+ DomainPack,
127
+ } from '@agentdyne9/afmx';
128
+
129
+ import {
130
+ CognitiveLayer, // PERCEIVE | RETRIEVE | REASON | PLAN | ACT | EVALUATE | REPORT
131
+ ExecutionMode, // SEQUENTIAL | PARALLEL | HYBRID | DIAGONAL
132
+ NodeType, // TOOL | AGENT | FUNCTION | MCP
133
+ ExecutionStatus, // QUEUED | RUNNING | COMPLETED | FAILED | ABORTED | TIMEOUT | PARTIAL
134
+ AFMXError, // thrown on HTTP errors — has .status and .detail
135
+ } from '@agentdyne9/afmx';
136
+ ```
137
+
138
+ ## CognitiveLayer routing
139
+
140
+ AFMX automatically routes cheap models to high-frequency layers and premium models to reasoning layers:
141
+
142
+ | Layer | Typical use | Default model tier |
143
+ |-------|------------|-------------------|
144
+ | `PERCEIVE` | Ingest signals, alerts | Cheap (Haiku, gpt-4o-mini) |
145
+ | `RETRIEVE` | RAG, DB lookups | Cheap |
146
+ | `REASON` | Analysis, synthesis | **Premium** (Opus, gpt-4o) |
147
+ | `PLAN` | Strategy, runbooks | **Premium** |
148
+ | `ACT` | Execute tools, APIs | Cheap |
149
+ | `EVALUATE` | Validate, audit | **Premium** |
150
+ | `REPORT` | Summarise, alert | Cheap |
151
+
152
+ ## License
153
+
154
+ Apache 2.0 — see [LICENSE](../../LICENSE).
@@ -0,0 +1,450 @@
1
+ /**
2
+ * @agentdyne9/afmx — TypeScript SDK for AFMX
3
+ *
4
+ * Type-safe client for the AFMX REST API.
5
+ * Works in Node.js 18+, browser (with fetch), and edge runtimes.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { AFMXClient, ExecutionMode, CognitiveLayer } from '@agentdyne9/afmx';
10
+ *
11
+ * const client = new AFMXClient({ baseUrl: 'http://localhost:8100' });
12
+ *
13
+ * const result = await client.execute({
14
+ * matrix: {
15
+ * name: 'risk-analysis',
16
+ * mode: ExecutionMode.DIAGONAL,
17
+ * nodes: [
18
+ * {
19
+ * id: 'retrieve',
20
+ * name: 'retrieve-data',
21
+ * type: 'AGENT',
22
+ * handler: 'data_retriever',
23
+ * cognitive_layer: CognitiveLayer.RETRIEVE,
24
+ * agent_role: 'QUANT',
25
+ * },
26
+ * {
27
+ * id: 'analyse',
28
+ * name: 'analyse-risk',
29
+ * type: 'AGENT',
30
+ * handler: 'risk_analyser',
31
+ * cognitive_layer: CognitiveLayer.REASON,
32
+ * agent_role: 'RISK_MANAGER',
33
+ * },
34
+ * ],
35
+ * edges: [{ from: 'retrieve', to: 'analyse' }],
36
+ * },
37
+ * input: { ticker: 'AAPL', lookback_days: 30 },
38
+ * });
39
+ *
40
+ * console.log(result.status, result.duration_ms);
41
+ * ```
42
+ */
43
+ /** Cognitive layer for automatic LLM tier routing. */
44
+ export declare enum CognitiveLayer {
45
+ /** Ingest signals, alerts, documents, telemetry — cheap model. */
46
+ PERCEIVE = "PERCEIVE",
47
+ /** Fetch knowledge, RAG, DB lookups — cheap model. */
48
+ RETRIEVE = "RETRIEVE",
49
+ /** Analysis, correlation, synthesis — premium model. */
50
+ REASON = "REASON",
51
+ /** Strategy, fix plans, runbooks — premium model. */
52
+ PLAN = "PLAN",
53
+ /** Execute tools, APIs, deployments — cheap model. */
54
+ ACT = "ACT",
55
+ /** Validate, test, audit, verify — premium model. */
56
+ EVALUATE = "EVALUATE",
57
+ /** Summarise, escalate, alert — cheap model. */
58
+ REPORT = "REPORT"
59
+ }
60
+ /** Execution mode for the matrix. */
61
+ export declare enum ExecutionMode {
62
+ /** One node at a time in topological order. */
63
+ SEQUENTIAL = "SEQUENTIAL",
64
+ /** All nodes concurrently. */
65
+ PARALLEL = "PARALLEL",
66
+ /** DAG level-sets: parallel within each level, sequential across levels. */
67
+ HYBRID = "HYBRID",
68
+ /** Grouped by CognitiveLayer; each layer's nodes run in parallel. */
69
+ DIAGONAL = "DIAGONAL"
70
+ }
71
+ /** Node type. */
72
+ export declare enum NodeType {
73
+ TOOL = "TOOL",
74
+ AGENT = "AGENT",
75
+ FUNCTION = "FUNCTION",
76
+ MCP = "MCP"
77
+ }
78
+ /** Execution status. */
79
+ export declare enum ExecutionStatus {
80
+ QUEUED = "QUEUED",
81
+ RUNNING = "RUNNING",
82
+ COMPLETED = "COMPLETED",
83
+ FAILED = "FAILED",
84
+ ABORTED = "ABORTED",
85
+ TIMEOUT = "TIMEOUT",
86
+ PARTIAL = "PARTIAL"
87
+ }
88
+ /** Retry policy for a node. */
89
+ export interface RetryPolicy {
90
+ retries?: number;
91
+ backoff_seconds?: number;
92
+ backoff_multiplier?: number;
93
+ max_backoff_seconds?: number;
94
+ jitter?: boolean;
95
+ }
96
+ /** Timeout policy for a node. */
97
+ export interface TimeoutPolicy {
98
+ timeout_seconds: number;
99
+ hard_kill?: boolean;
100
+ }
101
+ /** Edge connecting two nodes. */
102
+ export interface Edge {
103
+ /** Source node ID. */
104
+ from: string;
105
+ /** Target node ID. */
106
+ to: string;
107
+ /** Optional condition expression. */
108
+ condition?: string;
109
+ /** Optional label for the dashboard. */
110
+ label?: string;
111
+ }
112
+ /** A single execution node. */
113
+ export interface Node {
114
+ id: string;
115
+ name: string;
116
+ type: NodeType | string;
117
+ handler: string;
118
+ cognitive_layer?: CognitiveLayer | string;
119
+ agent_role?: string;
120
+ priority?: number;
121
+ retry_policy?: RetryPolicy;
122
+ timeout_policy?: TimeoutPolicy;
123
+ fallback_node_id?: string;
124
+ metadata?: Record<string, unknown>;
125
+ config?: {
126
+ params?: Record<string, unknown>;
127
+ env?: Record<string, string>;
128
+ tags?: string[];
129
+ };
130
+ }
131
+ /** An execution matrix — the primary AFMX orchestration primitive. */
132
+ export interface ExecutionMatrix {
133
+ id?: string;
134
+ name: string;
135
+ version?: string;
136
+ mode?: ExecutionMode | string;
137
+ nodes: Node[];
138
+ edges?: Edge[];
139
+ abort_policy?: 'FAIL_FAST' | 'CONTINUE' | 'CRITICAL_ONLY';
140
+ max_parallelism?: number;
141
+ global_timeout_seconds?: number;
142
+ metadata?: Record<string, unknown>;
143
+ tags?: string[];
144
+ }
145
+ /** Result of a single node execution. */
146
+ export interface NodeResult {
147
+ node_id: string;
148
+ node_name: string;
149
+ status: string;
150
+ output?: unknown;
151
+ error?: string | null;
152
+ error_type?: string | null;
153
+ attempt?: number;
154
+ duration_ms?: number | null;
155
+ started_at?: number | null;
156
+ finished_at?: number | null;
157
+ metadata?: Record<string, unknown>;
158
+ }
159
+ /** Full execution response. */
160
+ export interface ExecutionResponse {
161
+ execution_id: string;
162
+ matrix_id: string;
163
+ matrix_name: string;
164
+ status: ExecutionStatus | string;
165
+ total_nodes: number;
166
+ completed_nodes: number;
167
+ failed_nodes: number;
168
+ skipped_nodes: number;
169
+ duration_ms?: number | null;
170
+ error?: string | null;
171
+ error_node_id?: string | null;
172
+ node_results: Record<string, NodeResult>;
173
+ queued_at: number;
174
+ started_at?: number | null;
175
+ finished_at?: number | null;
176
+ tags?: string[];
177
+ }
178
+ /** Status-only response for polling. */
179
+ export interface ExecutionStatusResponse {
180
+ execution_id: string;
181
+ status: ExecutionStatus | string;
182
+ matrix_id: string;
183
+ matrix_name: string;
184
+ total_nodes: number;
185
+ completed_nodes: number;
186
+ failed_nodes: number;
187
+ skipped_nodes: number;
188
+ duration_ms?: number | null;
189
+ error?: string | null;
190
+ queued_at: number;
191
+ started_at?: number | null;
192
+ finished_at?: number | null;
193
+ }
194
+ /** Cognitive Matrix view for an execution. */
195
+ export interface MatrixViewCell {
196
+ node_id: string;
197
+ node_name: string;
198
+ status: string;
199
+ duration_ms?: number | null;
200
+ model_tier?: string | null;
201
+ model?: string | null;
202
+ error?: string | null;
203
+ attempt?: number;
204
+ }
205
+ export interface MatrixViewSummary {
206
+ total_possible: number;
207
+ active_cells: number;
208
+ success_cells: number;
209
+ failed_cells: number;
210
+ coverage_pct: number;
211
+ success_rate: number;
212
+ }
213
+ export interface MatrixViewResponse {
214
+ execution_id: string;
215
+ matrix_name: string;
216
+ status: string;
217
+ layers: string[];
218
+ roles: string[];
219
+ role_meta: Record<string, {
220
+ description?: string;
221
+ domain?: string;
222
+ }>;
223
+ cells: Record<string, MatrixViewCell>;
224
+ summary: MatrixViewSummary;
225
+ }
226
+ /** Execute request body. */
227
+ export interface ExecuteRequest {
228
+ matrix: ExecutionMatrix;
229
+ input?: unknown;
230
+ memory?: Record<string, unknown>;
231
+ variables?: Record<string, unknown>;
232
+ metadata?: Record<string, unknown>;
233
+ triggered_by?: string;
234
+ tags?: string[];
235
+ }
236
+ /** Async execute response. */
237
+ export interface AsyncExecuteResponse {
238
+ execution_id: string;
239
+ status: string;
240
+ message: string;
241
+ poll_url: string;
242
+ stream_url: string;
243
+ }
244
+ /** Domain pack. */
245
+ export interface DomainPack {
246
+ name: string;
247
+ description: string;
248
+ roles: Record<string, string>;
249
+ tags: string[];
250
+ }
251
+ /** Validation response. */
252
+ export interface ValidateResponse {
253
+ valid: boolean;
254
+ errors: string[];
255
+ node_count: number;
256
+ edge_count: number;
257
+ execution_order: string[];
258
+ }
259
+ /** HTTP error from the AFMX API. */
260
+ export declare class AFMXError extends Error {
261
+ readonly status: number;
262
+ readonly detail: string;
263
+ constructor(status: number, detail: string);
264
+ }
265
+ export interface AFMXClientConfig {
266
+ /**
267
+ * Base URL of the AFMX server (e.g. ``"http://localhost:8100"``).
268
+ * Do NOT include the ``/afmx`` path prefix — the client adds it.
269
+ */
270
+ baseUrl: string;
271
+ /**
272
+ * Optional API key for RBAC authentication.
273
+ * Set the ``AFMX_RBAC_ENABLED=true`` env var on the server to require this.
274
+ */
275
+ apiKey?: string;
276
+ /**
277
+ * Request timeout in milliseconds (default: 30 000).
278
+ */
279
+ timeoutMs?: number;
280
+ /**
281
+ * Custom fetch implementation (default: globalThis.fetch).
282
+ * Useful for Node.js 16 environments where fetch is not global.
283
+ *
284
+ * @example
285
+ * ```typescript
286
+ * import fetch from 'node-fetch';
287
+ * const client = new AFMXClient({ baseUrl: '...', fetch });
288
+ * ```
289
+ */
290
+ fetch?: typeof globalThis.fetch;
291
+ }
292
+ /**
293
+ * Type-safe AFMX REST API client.
294
+ *
295
+ * Works in any environment with a global ``fetch`` (Node 18+, browser,
296
+ * Deno, Cloudflare Workers, Vercel Edge).
297
+ *
298
+ * @example
299
+ * ```typescript
300
+ * const client = new AFMXClient({ baseUrl: 'http://localhost:8100' });
301
+ *
302
+ * // Execute synchronously
303
+ * const result = await client.execute({ matrix, input });
304
+ *
305
+ * // Execute asynchronously and poll
306
+ * const { execution_id } = await client.executeAsync({ matrix, input });
307
+ * const final = await client.pollUntilDone(execution_id);
308
+ * ```
309
+ */
310
+ export declare class AFMXClient {
311
+ private readonly baseUrl;
312
+ private readonly headers;
313
+ private readonly timeoutMs;
314
+ private readonly _fetch;
315
+ constructor(config: AFMXClientConfig);
316
+ /**
317
+ * Execute a matrix synchronously.
318
+ *
319
+ * Waits for the execution to complete before returning.
320
+ * For long-running matrices, use {@link executeAsync} + {@link pollUntilDone}.
321
+ */
322
+ execute(request: ExecuteRequest): Promise<ExecutionResponse>;
323
+ /**
324
+ * Execute a matrix asynchronously (fire-and-forget).
325
+ *
326
+ * Returns immediately with an ``execution_id``. Poll via {@link getStatus}
327
+ * or use {@link pollUntilDone} for a blocking wait.
328
+ */
329
+ executeAsync(request: ExecuteRequest): Promise<AsyncExecuteResponse>;
330
+ /**
331
+ * Get the current status of an execution.
332
+ */
333
+ getStatus(executionId: string): Promise<ExecutionStatusResponse>;
334
+ /**
335
+ * Get the full result of a completed execution.
336
+ */
337
+ getResult(executionId: string): Promise<ExecutionResponse>;
338
+ /**
339
+ * Cancel a running execution.
340
+ */
341
+ cancel(executionId: string): Promise<{
342
+ message: string;
343
+ status: string;
344
+ }>;
345
+ /**
346
+ * Retry a failed execution.
347
+ */
348
+ retry(executionId: string): Promise<{
349
+ original_execution_id: string;
350
+ new_execution_id: string;
351
+ status: string;
352
+ duration_ms?: number | null;
353
+ }>;
354
+ /**
355
+ * Resume a failed/partial execution from its last checkpoint.
356
+ */
357
+ resume(executionId: string): Promise<{
358
+ original_execution_id: string;
359
+ new_execution_id: string;
360
+ status: string;
361
+ resumed_from_node_count: number;
362
+ duration_ms?: number | null;
363
+ }>;
364
+ /**
365
+ * Poll an execution until it reaches a terminal state.
366
+ *
367
+ * @param executionId The execution ID from {@link executeAsync}.
368
+ * @param options.intervalMs Poll interval (default: 500 ms).
369
+ * @param options.timeoutMs Max wait time (default: 300 000 ms / 5 min).
370
+ *
371
+ * @throws {AFMXError} if the timeout is exceeded.
372
+ */
373
+ pollUntilDone(executionId: string, options?: {
374
+ intervalMs?: number;
375
+ timeoutMs?: number;
376
+ }): Promise<ExecutionResponse>;
377
+ /**
378
+ * Validate a matrix definition without executing it.
379
+ */
380
+ validate(matrix: ExecutionMatrix): Promise<ValidateResponse>;
381
+ /**
382
+ * List recent executions.
383
+ */
384
+ listExecutions(options?: {
385
+ limit?: number;
386
+ status?: string;
387
+ matrix_name?: string;
388
+ }): Promise<{
389
+ count: number;
390
+ executions: ExecutionStatusResponse[];
391
+ }>;
392
+ /**
393
+ * Get the Cognitive Matrix view for a completed execution.
394
+ *
395
+ * Returns a 2D cell map: ``CognitiveLayer × AgentRole``.
396
+ * Includes per-cell model tier, cost, duration, and status.
397
+ */
398
+ matrixView(executionId: string): Promise<MatrixViewResponse>;
399
+ /**
400
+ * List all registered domain packs (tech, finance, healthcare, legal, manufacturing).
401
+ */
402
+ listDomains(): Promise<{
403
+ count: number;
404
+ domains: DomainPack[];
405
+ }>;
406
+ /**
407
+ * Get a specific domain pack by name.
408
+ */
409
+ getDomain(name: string): Promise<DomainPack>;
410
+ /**
411
+ * Check AFMX server health.
412
+ */
413
+ health(): Promise<{
414
+ status: string;
415
+ version: string;
416
+ }>;
417
+ private _get;
418
+ private _post;
419
+ }
420
+ /**
421
+ * Build a simple AFMX node with sensible defaults.
422
+ *
423
+ * @example
424
+ * ```typescript
425
+ * const node = buildNode({
426
+ * id: 'analyst',
427
+ * name: 'analyse-risk',
428
+ * handler: 'risk_analyser',
429
+ * layer: CognitiveLayer.REASON,
430
+ * role: 'RISK_MANAGER',
431
+ * });
432
+ * ```
433
+ */
434
+ export declare function buildNode(opts: {
435
+ id: string;
436
+ name: string;
437
+ handler: string;
438
+ layer?: CognitiveLayer | string;
439
+ role?: string;
440
+ type?: NodeType | string;
441
+ retries?: number;
442
+ timeoutSeconds?: number;
443
+ fallbackNodeId?: string;
444
+ metadata?: Record<string, unknown>;
445
+ }): Node;
446
+ /**
447
+ * Build an edge between two nodes.
448
+ */
449
+ export declare function buildEdge(from: string, to: string, condition?: string): Edge;
450
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,380 @@
1
+ "use strict";
2
+ // Copyright 2026 Agentdyne9
3
+ //
4
+ // Licensed under the Apache License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License.
6
+ // You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.AFMXClient = exports.AFMXError = exports.ExecutionStatus = exports.NodeType = exports.ExecutionMode = exports.CognitiveLayer = void 0;
17
+ exports.buildNode = buildNode;
18
+ exports.buildEdge = buildEdge;
19
+ /**
20
+ * @agentdyne9/afmx — TypeScript SDK for AFMX
21
+ *
22
+ * Type-safe client for the AFMX REST API.
23
+ * Works in Node.js 18+, browser (with fetch), and edge runtimes.
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * import { AFMXClient, ExecutionMode, CognitiveLayer } from '@agentdyne9/afmx';
28
+ *
29
+ * const client = new AFMXClient({ baseUrl: 'http://localhost:8100' });
30
+ *
31
+ * const result = await client.execute({
32
+ * matrix: {
33
+ * name: 'risk-analysis',
34
+ * mode: ExecutionMode.DIAGONAL,
35
+ * nodes: [
36
+ * {
37
+ * id: 'retrieve',
38
+ * name: 'retrieve-data',
39
+ * type: 'AGENT',
40
+ * handler: 'data_retriever',
41
+ * cognitive_layer: CognitiveLayer.RETRIEVE,
42
+ * agent_role: 'QUANT',
43
+ * },
44
+ * {
45
+ * id: 'analyse',
46
+ * name: 'analyse-risk',
47
+ * type: 'AGENT',
48
+ * handler: 'risk_analyser',
49
+ * cognitive_layer: CognitiveLayer.REASON,
50
+ * agent_role: 'RISK_MANAGER',
51
+ * },
52
+ * ],
53
+ * edges: [{ from: 'retrieve', to: 'analyse' }],
54
+ * },
55
+ * input: { ticker: 'AAPL', lookback_days: 30 },
56
+ * });
57
+ *
58
+ * console.log(result.status, result.duration_ms);
59
+ * ```
60
+ */
61
+ // ─── Enums ────────────────────────────────────────────────────────────────────
62
+ /** Cognitive layer for automatic LLM tier routing. */
63
+ var CognitiveLayer;
64
+ (function (CognitiveLayer) {
65
+ /** Ingest signals, alerts, documents, telemetry — cheap model. */
66
+ CognitiveLayer["PERCEIVE"] = "PERCEIVE";
67
+ /** Fetch knowledge, RAG, DB lookups — cheap model. */
68
+ CognitiveLayer["RETRIEVE"] = "RETRIEVE";
69
+ /** Analysis, correlation, synthesis — premium model. */
70
+ CognitiveLayer["REASON"] = "REASON";
71
+ /** Strategy, fix plans, runbooks — premium model. */
72
+ CognitiveLayer["PLAN"] = "PLAN";
73
+ /** Execute tools, APIs, deployments — cheap model. */
74
+ CognitiveLayer["ACT"] = "ACT";
75
+ /** Validate, test, audit, verify — premium model. */
76
+ CognitiveLayer["EVALUATE"] = "EVALUATE";
77
+ /** Summarise, escalate, alert — cheap model. */
78
+ CognitiveLayer["REPORT"] = "REPORT";
79
+ })(CognitiveLayer || (exports.CognitiveLayer = CognitiveLayer = {}));
80
+ /** Execution mode for the matrix. */
81
+ var ExecutionMode;
82
+ (function (ExecutionMode) {
83
+ /** One node at a time in topological order. */
84
+ ExecutionMode["SEQUENTIAL"] = "SEQUENTIAL";
85
+ /** All nodes concurrently. */
86
+ ExecutionMode["PARALLEL"] = "PARALLEL";
87
+ /** DAG level-sets: parallel within each level, sequential across levels. */
88
+ ExecutionMode["HYBRID"] = "HYBRID";
89
+ /** Grouped by CognitiveLayer; each layer's nodes run in parallel. */
90
+ ExecutionMode["DIAGONAL"] = "DIAGONAL";
91
+ })(ExecutionMode || (exports.ExecutionMode = ExecutionMode = {}));
92
+ /** Node type. */
93
+ var NodeType;
94
+ (function (NodeType) {
95
+ NodeType["TOOL"] = "TOOL";
96
+ NodeType["AGENT"] = "AGENT";
97
+ NodeType["FUNCTION"] = "FUNCTION";
98
+ NodeType["MCP"] = "MCP";
99
+ })(NodeType || (exports.NodeType = NodeType = {}));
100
+ /** Execution status. */
101
+ var ExecutionStatus;
102
+ (function (ExecutionStatus) {
103
+ ExecutionStatus["QUEUED"] = "QUEUED";
104
+ ExecutionStatus["RUNNING"] = "RUNNING";
105
+ ExecutionStatus["COMPLETED"] = "COMPLETED";
106
+ ExecutionStatus["FAILED"] = "FAILED";
107
+ ExecutionStatus["ABORTED"] = "ABORTED";
108
+ ExecutionStatus["TIMEOUT"] = "TIMEOUT";
109
+ ExecutionStatus["PARTIAL"] = "PARTIAL";
110
+ })(ExecutionStatus || (exports.ExecutionStatus = ExecutionStatus = {}));
111
+ // ─── Error types ──────────────────────────────────────────────────────────────
112
+ /** HTTP error from the AFMX API. */
113
+ class AFMXError extends Error {
114
+ status;
115
+ detail;
116
+ constructor(status, detail) {
117
+ super(`AFMX API error ${status}: ${detail}`);
118
+ this.name = 'AFMXError';
119
+ this.status = status;
120
+ this.detail = detail;
121
+ }
122
+ }
123
+ exports.AFMXError = AFMXError;
124
+ // ─── Main client ──────────────────────────────────────────────────────────────
125
+ /**
126
+ * Type-safe AFMX REST API client.
127
+ *
128
+ * Works in any environment with a global ``fetch`` (Node 18+, browser,
129
+ * Deno, Cloudflare Workers, Vercel Edge).
130
+ *
131
+ * @example
132
+ * ```typescript
133
+ * const client = new AFMXClient({ baseUrl: 'http://localhost:8100' });
134
+ *
135
+ * // Execute synchronously
136
+ * const result = await client.execute({ matrix, input });
137
+ *
138
+ * // Execute asynchronously and poll
139
+ * const { execution_id } = await client.executeAsync({ matrix, input });
140
+ * const final = await client.pollUntilDone(execution_id);
141
+ * ```
142
+ */
143
+ class AFMXClient {
144
+ baseUrl;
145
+ headers;
146
+ timeoutMs;
147
+ _fetch;
148
+ constructor(config) {
149
+ this.baseUrl = config.baseUrl.replace(/\/+$/, '') + '/afmx';
150
+ this.timeoutMs = config.timeoutMs ?? 30_000;
151
+ this._fetch = config.fetch ?? globalThis.fetch;
152
+ this.headers = {
153
+ 'Content-Type': 'application/json',
154
+ 'User-Agent': '@agentdyne9/afmx/1.3.0',
155
+ };
156
+ if (config.apiKey) {
157
+ this.headers['X-API-Key'] = config.apiKey;
158
+ }
159
+ }
160
+ // ── Execution ─────────────────────────────────────────────────────────────
161
+ /**
162
+ * Execute a matrix synchronously.
163
+ *
164
+ * Waits for the execution to complete before returning.
165
+ * For long-running matrices, use {@link executeAsync} + {@link pollUntilDone}.
166
+ */
167
+ async execute(request) {
168
+ return this._post('/execute', request);
169
+ }
170
+ /**
171
+ * Execute a matrix asynchronously (fire-and-forget).
172
+ *
173
+ * Returns immediately with an ``execution_id``. Poll via {@link getStatus}
174
+ * or use {@link pollUntilDone} for a blocking wait.
175
+ */
176
+ async executeAsync(request) {
177
+ return this._post('/execute/async', request);
178
+ }
179
+ /**
180
+ * Get the current status of an execution.
181
+ */
182
+ async getStatus(executionId) {
183
+ return this._get(`/status/${executionId}`);
184
+ }
185
+ /**
186
+ * Get the full result of a completed execution.
187
+ */
188
+ async getResult(executionId) {
189
+ return this._get(`/result/${executionId}`);
190
+ }
191
+ /**
192
+ * Cancel a running execution.
193
+ */
194
+ async cancel(executionId) {
195
+ return this._post(`/cancel/${executionId}`, {});
196
+ }
197
+ /**
198
+ * Retry a failed execution.
199
+ */
200
+ async retry(executionId) {
201
+ return this._post(`/retry/${executionId}`, {});
202
+ }
203
+ /**
204
+ * Resume a failed/partial execution from its last checkpoint.
205
+ */
206
+ async resume(executionId) {
207
+ return this._post(`/resume/${executionId}`, {});
208
+ }
209
+ /**
210
+ * Poll an execution until it reaches a terminal state.
211
+ *
212
+ * @param executionId The execution ID from {@link executeAsync}.
213
+ * @param options.intervalMs Poll interval (default: 500 ms).
214
+ * @param options.timeoutMs Max wait time (default: 300 000 ms / 5 min).
215
+ *
216
+ * @throws {AFMXError} if the timeout is exceeded.
217
+ */
218
+ async pollUntilDone(executionId, options = {}) {
219
+ const interval = options.intervalMs ?? 500;
220
+ const timeoutMs = options.timeoutMs ?? 300_000;
221
+ const deadline = Date.now() + timeoutMs;
222
+ const terminal = new Set([
223
+ 'COMPLETED', 'FAILED', 'ABORTED', 'TIMEOUT', 'PARTIAL',
224
+ ]);
225
+ while (Date.now() < deadline) {
226
+ const status = await this.getStatus(executionId);
227
+ if (terminal.has(status.status)) {
228
+ return this.getResult(executionId);
229
+ }
230
+ await _sleep(interval);
231
+ }
232
+ throw new AFMXError(408, `Execution '${executionId}' did not complete within ${timeoutMs}ms`);
233
+ }
234
+ // ── Matrix management ─────────────────────────────────────────────────────
235
+ /**
236
+ * Validate a matrix definition without executing it.
237
+ */
238
+ async validate(matrix) {
239
+ return this._post('/validate', { matrix });
240
+ }
241
+ /**
242
+ * List recent executions.
243
+ */
244
+ async listExecutions(options = {}) {
245
+ const params = new URLSearchParams();
246
+ if (options.limit !== undefined)
247
+ params.set('limit', String(options.limit));
248
+ if (options.status !== undefined)
249
+ params.set('status_filter', options.status);
250
+ if (options.matrix_name !== undefined)
251
+ params.set('matrix_name', options.matrix_name);
252
+ const qs = params.toString();
253
+ return this._get(`/executions${qs ? '?' + qs : ''}`);
254
+ }
255
+ // ── Cognitive Matrix view ─────────────────────────────────────────────────
256
+ /**
257
+ * Get the Cognitive Matrix view for a completed execution.
258
+ *
259
+ * Returns a 2D cell map: ``CognitiveLayer × AgentRole``.
260
+ * Includes per-cell model tier, cost, duration, and status.
261
+ */
262
+ async matrixView(executionId) {
263
+ return this._get(`/matrix-view/${executionId}`);
264
+ }
265
+ // ── Domain packs ──────────────────────────────────────────────────────────
266
+ /**
267
+ * List all registered domain packs (tech, finance, healthcare, legal, manufacturing).
268
+ */
269
+ async listDomains() {
270
+ return this._get('/domains');
271
+ }
272
+ /**
273
+ * Get a specific domain pack by name.
274
+ */
275
+ async getDomain(name) {
276
+ return this._get(`/domains/${encodeURIComponent(name)}`);
277
+ }
278
+ // ── Health ────────────────────────────────────────────────────────────────
279
+ /**
280
+ * Check AFMX server health.
281
+ */
282
+ async health() {
283
+ return this._get('/../health');
284
+ }
285
+ // ── Internal ──────────────────────────────────────────────────────────────
286
+ async _get(path) {
287
+ const url = this.baseUrl + path;
288
+ const ctrl = new AbortController();
289
+ const tid = setTimeout(() => ctrl.abort(), this.timeoutMs);
290
+ try {
291
+ const resp = await this._fetch(url, {
292
+ method: 'GET',
293
+ headers: this.headers,
294
+ signal: ctrl.signal,
295
+ });
296
+ return _handleResponse(resp);
297
+ }
298
+ finally {
299
+ clearTimeout(tid);
300
+ }
301
+ }
302
+ async _post(path, body) {
303
+ const url = this.baseUrl + path;
304
+ const ctrl = new AbortController();
305
+ const tid = setTimeout(() => ctrl.abort(), this.timeoutMs);
306
+ try {
307
+ const resp = await this._fetch(url, {
308
+ method: 'POST',
309
+ headers: this.headers,
310
+ body: JSON.stringify(body),
311
+ signal: ctrl.signal,
312
+ });
313
+ return _handleResponse(resp);
314
+ }
315
+ finally {
316
+ clearTimeout(tid);
317
+ }
318
+ }
319
+ }
320
+ exports.AFMXClient = AFMXClient;
321
+ // ─── Helpers ──────────────────────────────────────────────────────────────────
322
+ async function _handleResponse(resp) {
323
+ if (resp.ok) {
324
+ return (await resp.json());
325
+ }
326
+ let detail = `HTTP ${resp.status}`;
327
+ try {
328
+ const body = await resp.json();
329
+ detail = body.detail ?? detail;
330
+ }
331
+ catch {
332
+ // ignore parse failures
333
+ }
334
+ throw new AFMXError(resp.status, detail);
335
+ }
336
+ function _sleep(ms) {
337
+ return new Promise((resolve) => setTimeout(resolve, ms));
338
+ }
339
+ // ─── Convenience builder ──────────────────────────────────────────────────────
340
+ /**
341
+ * Build a simple AFMX node with sensible defaults.
342
+ *
343
+ * @example
344
+ * ```typescript
345
+ * const node = buildNode({
346
+ * id: 'analyst',
347
+ * name: 'analyse-risk',
348
+ * handler: 'risk_analyser',
349
+ * layer: CognitiveLayer.REASON,
350
+ * role: 'RISK_MANAGER',
351
+ * });
352
+ * ```
353
+ */
354
+ function buildNode(opts) {
355
+ return {
356
+ id: opts.id,
357
+ name: opts.name,
358
+ type: opts.type ?? NodeType.AGENT,
359
+ handler: opts.handler,
360
+ cognitive_layer: opts.layer,
361
+ agent_role: opts.role,
362
+ fallback_node_id: opts.fallbackNodeId,
363
+ metadata: opts.metadata,
364
+ ...(opts.retries !== undefined && {
365
+ retry_policy: { retries: opts.retries },
366
+ }),
367
+ ...(opts.timeoutSeconds !== undefined && {
368
+ timeout_policy: { timeout_seconds: opts.timeoutSeconds },
369
+ }),
370
+ };
371
+ }
372
+ /**
373
+ * Build an edge between two nodes.
374
+ */
375
+ function buildEdge(from, to, condition) {
376
+ return { from, to, ...(condition !== undefined && { condition }) };
377
+ }
378
+ // All types are already exported directly above via 'export interface' / 'export class'.
379
+ // No re-export block needed — adding one causes TS2484 (conflicting declarations).
380
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "@inteleion-ai/afmx",
3
+ "version": "1.3.0",
4
+ "description": "TypeScript SDK for AFMX — Agent Flow Matrix Execution Engine",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": ["dist", "README.md", "LICENSE"],
8
+ "scripts": {
9
+ "build": "tsc",
10
+ "build:watch": "tsc --watch",
11
+ "test": "jest --passWithNoTests",
12
+ "test:watch": "jest --watch",
13
+ "lint": "eslint src --ext .ts",
14
+ "typecheck": "tsc --noEmit",
15
+ "prepublishOnly": "npm run build && npm test"
16
+ },
17
+ "keywords": [
18
+ "afmx", "agents", "ai", "orchestration", "multi-agent",
19
+ "langchain", "openai", "mcp", "model-context-protocol",
20
+ "semantic-kernel", "google-adk", "bedrock",
21
+ "cognitive", "matrix", "agentdyne9"
22
+ ],
23
+ "author": "Agentdyne9 <hello@agentdyne9.com>",
24
+ "license": "Apache-2.0",
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "https://github.com/inteleion-ai/AFMX.git",
28
+ "directory": "sdk/typescript"
29
+ },
30
+ "homepage": "https://github.com/inteleion-ai/AFMX/tree/main/sdk/typescript",
31
+ "bugs": {
32
+ "url": "https://github.com/inteleion-ai/AFMX/issues"
33
+ },
34
+ "dependencies": {},
35
+ "devDependencies": {
36
+ "@types/node": "^20.0.0",
37
+ "@typescript-eslint/eslint-plugin": "^7.0.0",
38
+ "@typescript-eslint/parser": "^7.0.0",
39
+ "eslint": "^8.57.0",
40
+ "jest": "^29.0.0",
41
+ "ts-jest": "^29.0.0",
42
+ "typescript": "^5.4.0"
43
+ },
44
+ "engines": { "node": ">=18.0.0" },
45
+ "jest": {
46
+ "preset": "ts-jest",
47
+ "testEnvironment": "node",
48
+ "testMatch": ["**/*.test.ts"],
49
+ "collectCoverageFrom": ["src/**/*.ts"]
50
+ }
51
+ }