@strands-agents/sdk 0.3.0 → 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/README.md +43 -0
- package/dist/src/__fixtures__/agent-helpers.d.ts +10 -1
- package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/agent-helpers.js +13 -2
- package/dist/src/__fixtures__/agent-helpers.js.map +1 -1
- package/dist/src/__fixtures__/mock-hook-provider.d.ts +3 -7
- package/dist/src/__fixtures__/mock-hook-provider.d.ts.map +1 -1
- package/dist/src/__fixtures__/mock-hook-provider.js +3 -9
- package/dist/src/__fixtures__/mock-hook-provider.js.map +1 -1
- package/dist/src/__fixtures__/mock-message-model.d.ts +8 -2
- package/dist/src/__fixtures__/mock-message-model.d.ts.map +1 -1
- package/dist/src/__fixtures__/mock-message-model.js +1 -0
- package/dist/src/__fixtures__/mock-message-model.js.map +1 -1
- package/dist/src/__fixtures__/mock-span.d.ts +78 -0
- package/dist/src/__fixtures__/mock-span.d.ts.map +1 -0
- package/dist/src/__fixtures__/mock-span.js +93 -0
- package/dist/src/__fixtures__/mock-span.js.map +1 -0
- package/dist/src/__fixtures__/mock-storage-provider.d.ts +37 -0
- package/dist/src/__fixtures__/mock-storage-provider.d.ts.map +1 -0
- package/dist/src/__fixtures__/mock-storage-provider.js +105 -0
- package/dist/src/__fixtures__/mock-storage-provider.js.map +1 -0
- package/dist/src/__fixtures__/slim-types.d.ts +50 -0
- package/dist/src/__fixtures__/slim-types.d.ts.map +1 -0
- package/dist/src/__fixtures__/slim-types.js +6 -0
- package/dist/src/__fixtures__/slim-types.js.map +1 -0
- package/dist/src/__fixtures__/tool-helpers.d.ts +10 -5
- package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/tool-helpers.js +5 -5
- package/dist/src/__fixtures__/tool-helpers.js.map +1 -1
- package/dist/src/__tests__/app-state.test.d.ts +2 -0
- package/dist/src/__tests__/app-state.test.d.ts.map +1 -0
- package/dist/src/{agent/__tests__/state.test.js → __tests__/app-state.test.js} +62 -43
- package/dist/src/__tests__/app-state.test.js.map +1 -0
- package/dist/src/__tests__/mcp.test.js +96 -15
- package/dist/src/__tests__/mcp.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.hook.test.js +18 -18
- package/dist/src/agent/__tests__/agent.hook.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.test.js +234 -8
- package/dist/src/agent/__tests__/agent.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.tracer.test.d.ts +2 -0
- package/dist/src/agent/__tests__/agent.tracer.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/agent.tracer.test.js +470 -0
- package/dist/src/agent/__tests__/agent.tracer.test.js.map +1 -0
- package/dist/src/agent/__tests__/printer.test.js +5 -9
- package/dist/src/agent/__tests__/printer.test.js.map +1 -1
- package/dist/src/agent/__tests__/snapshot.test.d.ts +2 -0
- package/dist/src/agent/__tests__/snapshot.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/snapshot.test.js +249 -0
- package/dist/src/agent/__tests__/snapshot.test.js.map +1 -0
- package/dist/src/agent/agent.d.ts +78 -10
- package/dist/src/agent/agent.d.ts.map +1 -1
- package/dist/src/agent/agent.js +252 -55
- package/dist/src/agent/agent.js.map +1 -1
- package/dist/src/agent/printer.d.ts +4 -0
- package/dist/src/agent/printer.d.ts.map +1 -1
- package/dist/src/agent/printer.js +18 -6
- package/dist/src/agent/printer.js.map +1 -1
- package/dist/src/agent/snapshot.d.ts +132 -0
- package/dist/src/agent/snapshot.d.ts.map +1 -0
- package/dist/src/agent/snapshot.js +151 -0
- package/dist/src/agent/snapshot.js.map +1 -0
- package/dist/src/{agent/state.d.ts → app-state.d.ts} +19 -6
- package/dist/src/app-state.d.ts.map +1 -0
- package/dist/src/{agent/state.js → app-state.js} +27 -6
- package/dist/src/app-state.js.map +1 -0
- package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts +1 -1
- package/dist/src/conversation-manager/sliding-window-conversation-manager.js +1 -1
- package/dist/src/errors.d.ts +15 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +18 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/hooks/__tests__/events.test.js +102 -21
- package/dist/src/hooks/__tests__/events.test.js.map +1 -1
- package/dist/src/hooks/events.d.ts +156 -22
- package/dist/src/hooks/events.d.ts.map +1 -1
- package/dist/src/hooks/events.js +158 -18
- package/dist/src/hooks/events.js.map +1 -1
- package/dist/src/hooks/index.d.ts +12 -4
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/hooks/index.js +11 -3
- package/dist/src/hooks/index.js.map +1 -1
- package/dist/src/hooks/registry.d.ts +5 -5
- package/dist/src/hooks/registry.d.ts.map +1 -1
- package/dist/src/hooks/registry.js.map +1 -1
- package/dist/src/hooks/types.d.ts +5 -5
- package/dist/src/hooks/types.d.ts.map +1 -1
- package/dist/src/index.d.ts +6 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +8 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp.d.ts +3 -0
- package/dist/src/mcp.d.ts.map +1 -1
- package/dist/src/mcp.js +38 -1
- package/dist/src/mcp.js.map +1 -1
- package/dist/src/models/__tests__/anthropic.test.js +31 -42
- package/dist/src/models/__tests__/anthropic.test.js.map +1 -1
- package/dist/src/models/__tests__/bedrock.test.js +70 -107
- package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
- package/dist/src/models/__tests__/gemini.test.js +18 -18
- package/dist/src/models/__tests__/gemini.test.js.map +1 -1
- package/dist/src/models/__tests__/model.test.js +21 -13
- package/dist/src/models/__tests__/model.test.js.map +1 -1
- package/dist/src/models/__tests__/openai.test.js +73 -83
- package/dist/src/models/__tests__/openai.test.js.map +1 -1
- package/dist/src/models/model.d.ts +4 -0
- package/dist/src/models/model.d.ts.map +1 -1
- package/dist/src/models/model.js +6 -0
- package/dist/src/models/model.js.map +1 -1
- package/dist/src/models/streaming.d.ts +9 -1
- package/dist/src/models/streaming.d.ts.map +1 -1
- package/dist/src/models/streaming.js +17 -0
- package/dist/src/models/streaming.js.map +1 -1
- package/dist/src/multiagent/__tests__/events.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/events.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/events.test.js +189 -0
- package/dist/src/multiagent/__tests__/events.test.js.map +1 -0
- package/dist/src/multiagent/__tests__/nodes.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/nodes.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/nodes.test.js +194 -0
- package/dist/src/multiagent/__tests__/nodes.test.js.map +1 -0
- package/dist/src/multiagent/__tests__/queue.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/queue.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/queue.test.js +96 -0
- package/dist/src/multiagent/__tests__/queue.test.js.map +1 -0
- package/dist/src/multiagent/base.d.ts +25 -0
- package/dist/src/multiagent/base.d.ts.map +1 -0
- package/dist/src/multiagent/base.js +2 -0
- package/dist/src/multiagent/base.js.map +1 -0
- package/dist/src/multiagent/edge.d.ts +29 -0
- package/dist/src/multiagent/edge.d.ts.map +1 -0
- package/dist/src/multiagent/edge.js +15 -0
- package/dist/src/multiagent/edge.js.map +1 -0
- package/dist/src/multiagent/events.d.ts +135 -0
- package/dist/src/multiagent/events.d.ts.map +1 -0
- package/dist/src/multiagent/events.js +140 -0
- package/dist/src/multiagent/events.js.map +1 -0
- package/dist/src/multiagent/index.d.ts +13 -0
- package/dist/src/multiagent/index.d.ts.map +1 -0
- package/dist/src/multiagent/index.js +8 -0
- package/dist/src/multiagent/index.js.map +1 -0
- package/dist/src/multiagent/nodes.d.ts +123 -0
- package/dist/src/multiagent/nodes.d.ts.map +1 -0
- package/dist/src/multiagent/nodes.js +148 -0
- package/dist/src/multiagent/nodes.js.map +1 -0
- package/dist/src/multiagent/queue.d.ts +67 -0
- package/dist/src/multiagent/queue.d.ts.map +1 -0
- package/dist/src/multiagent/queue.js +59 -0
- package/dist/src/multiagent/queue.js.map +1 -0
- package/dist/src/multiagent/state.d.ts +122 -0
- package/dist/src/multiagent/state.d.ts.map +1 -0
- package/dist/src/multiagent/state.js +132 -0
- package/dist/src/multiagent/state.js.map +1 -0
- package/dist/src/registry/tool-registry.d.ts +2 -1
- package/dist/src/registry/tool-registry.d.ts.map +1 -1
- package/dist/src/registry/tool-registry.js +4 -2
- package/dist/src/registry/tool-registry.js.map +1 -1
- package/dist/src/session/__tests__/file-storage.test.node.d.ts +2 -0
- package/dist/src/session/__tests__/file-storage.test.node.d.ts.map +1 -0
- package/dist/src/session/__tests__/file-storage.test.node.js +218 -0
- package/dist/src/session/__tests__/file-storage.test.node.js.map +1 -0
- package/dist/src/session/__tests__/s3-storage.test.node.d.ts +2 -0
- package/dist/src/session/__tests__/s3-storage.test.node.d.ts.map +1 -0
- package/dist/src/session/__tests__/s3-storage.test.node.js +375 -0
- package/dist/src/session/__tests__/s3-storage.test.node.js.map +1 -0
- package/dist/src/session/__tests__/validation.test.d.ts +2 -0
- package/dist/src/session/__tests__/validation.test.d.ts.map +1 -0
- package/dist/src/session/__tests__/validation.test.js +20 -0
- package/dist/src/session/__tests__/validation.test.js.map +1 -0
- package/dist/src/session/file-storage.d.ts +79 -0
- package/dist/src/session/file-storage.d.ts.map +1 -0
- package/dist/src/session/file-storage.js +144 -0
- package/dist/src/session/file-storage.js.map +1 -0
- package/dist/src/session/index.d.ts +19 -0
- package/dist/src/session/index.d.ts.map +1 -0
- package/dist/src/session/index.js +18 -0
- package/dist/src/session/index.js.map +1 -0
- package/dist/src/session/s3-storage.d.ts +93 -0
- package/dist/src/session/s3-storage.d.ts.map +1 -0
- package/dist/src/session/s3-storage.js +150 -0
- package/dist/src/session/s3-storage.js.map +1 -0
- package/dist/src/session/storage.d.ts +91 -0
- package/dist/src/session/storage.d.ts.map +1 -0
- package/dist/src/session/storage.js +2 -0
- package/dist/src/session/storage.js.map +1 -0
- package/dist/src/session/types.d.ts +49 -0
- package/dist/src/session/types.d.ts.map +1 -0
- package/dist/src/session/types.js +2 -0
- package/dist/src/session/types.js.map +1 -0
- package/dist/src/session/validation.d.ts +10 -0
- package/dist/src/session/validation.d.ts.map +1 -0
- package/dist/src/session/validation.js +16 -0
- package/dist/src/session/validation.js.map +1 -0
- package/dist/src/structured-output/__tests__/context.test.d.ts +2 -0
- package/dist/src/structured-output/__tests__/context.test.d.ts.map +1 -0
- package/dist/src/structured-output/__tests__/context.test.js +201 -0
- package/dist/src/structured-output/__tests__/context.test.js.map +1 -0
- package/dist/src/structured-output/__tests__/exceptions.test.d.ts +2 -0
- package/dist/src/structured-output/__tests__/exceptions.test.d.ts.map +1 -0
- package/dist/src/structured-output/__tests__/exceptions.test.js +103 -0
- package/dist/src/structured-output/__tests__/exceptions.test.js.map +1 -0
- package/dist/src/structured-output/__tests__/tool.test.d.ts +2 -0
- package/dist/src/structured-output/__tests__/tool.test.d.ts.map +1 -0
- package/dist/src/structured-output/__tests__/tool.test.js +256 -0
- package/dist/src/structured-output/__tests__/tool.test.js.map +1 -0
- package/dist/src/structured-output/__tests__/utils.test.d.ts +2 -0
- package/dist/src/structured-output/__tests__/utils.test.d.ts.map +1 -0
- package/dist/src/structured-output/__tests__/utils.test.js +183 -0
- package/dist/src/structured-output/__tests__/utils.test.js.map +1 -0
- package/dist/src/structured-output/context.d.ts +91 -0
- package/dist/src/structured-output/context.d.ts.map +1 -0
- package/dist/src/structured-output/context.js +112 -0
- package/dist/src/structured-output/context.js.map +1 -0
- package/dist/src/structured-output/exceptions.d.ts +18 -0
- package/dist/src/structured-output/exceptions.d.ts.map +1 -0
- package/dist/src/structured-output/exceptions.js +28 -0
- package/dist/src/structured-output/exceptions.js.map +1 -0
- package/dist/src/structured-output/tool.d.ts +33 -0
- package/dist/src/structured-output/tool.d.ts.map +1 -0
- package/dist/src/structured-output/tool.js +73 -0
- package/dist/src/structured-output/tool.js.map +1 -0
- package/dist/src/structured-output/utils.d.ts +23 -0
- package/dist/src/structured-output/utils.d.ts.map +1 -0
- package/dist/src/structured-output/utils.js +104 -0
- package/dist/src/structured-output/utils.js.map +1 -0
- package/dist/src/telemetry/__tests__/config.test.node.d.ts +2 -0
- package/dist/src/telemetry/__tests__/config.test.node.d.ts.map +1 -0
- package/dist/src/telemetry/__tests__/config.test.node.js +129 -0
- package/dist/src/telemetry/__tests__/config.test.node.js.map +1 -0
- package/dist/src/telemetry/__tests__/json.test.d.ts +2 -0
- package/dist/src/telemetry/__tests__/json.test.d.ts.map +1 -0
- package/dist/src/telemetry/__tests__/json.test.js +89 -0
- package/dist/src/telemetry/__tests__/json.test.js.map +1 -0
- package/dist/src/telemetry/__tests__/tracer.test.node.d.ts +2 -0
- package/dist/src/telemetry/__tests__/tracer.test.node.d.ts.map +1 -0
- package/dist/src/telemetry/__tests__/tracer.test.node.js +611 -0
- package/dist/src/telemetry/__tests__/tracer.test.node.js.map +1 -0
- package/dist/src/telemetry/config.d.ts +61 -0
- package/dist/src/telemetry/config.d.ts.map +1 -0
- package/dist/src/telemetry/config.js +101 -0
- package/dist/src/telemetry/config.js.map +1 -0
- package/dist/src/telemetry/index.d.ts +34 -0
- package/dist/src/telemetry/index.d.ts.map +1 -0
- package/dist/src/telemetry/index.js +33 -0
- package/dist/src/telemetry/index.js.map +1 -0
- package/dist/src/telemetry/json.d.ts +11 -0
- package/dist/src/telemetry/json.d.ts.map +1 -0
- package/dist/src/telemetry/json.js +25 -0
- package/dist/src/telemetry/json.js.map +1 -0
- package/dist/src/telemetry/tracer.d.ts +219 -0
- package/dist/src/telemetry/tracer.d.ts.map +1 -0
- package/dist/src/telemetry/tracer.js +610 -0
- package/dist/src/telemetry/tracer.js.map +1 -0
- package/dist/src/telemetry/types.d.ts +101 -0
- package/dist/src/telemetry/types.d.ts.map +1 -0
- package/dist/src/telemetry/types.js +5 -0
- package/dist/src/telemetry/types.js.map +1 -0
- package/dist/src/tools/tool.d.ts +1 -1
- package/dist/src/tools/tool.js +1 -1
- package/dist/src/tools/zod-tool.d.ts.map +1 -1
- package/dist/src/tools/zod-tool.js +2 -5
- package/dist/src/tools/zod-tool.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/types/__tests__/media.test.js +216 -1
- package/dist/src/types/__tests__/media.test.js.map +1 -1
- package/dist/src/types/__tests__/messages.test.js +193 -4
- package/dist/src/types/__tests__/messages.test.js.map +1 -1
- package/dist/src/types/agent.d.ts +16 -10
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/agent.js +8 -1
- package/dist/src/types/agent.js.map +1 -1
- package/dist/src/types/json.d.ts +61 -0
- package/dist/src/types/json.d.ts.map +1 -1
- package/dist/src/types/json.js +24 -0
- package/dist/src/types/json.js.map +1 -1
- package/dist/src/types/media.d.ts +84 -4
- package/dist/src/types/media.d.ts.map +1 -1
- package/dist/src/types/media.js +194 -0
- package/dist/src/types/media.js.map +1 -1
- package/dist/src/types/messages.d.ts +152 -13
- package/dist/src/types/messages.d.ts.map +1 -1
- package/dist/src/types/messages.js +235 -8
- package/dist/src/types/messages.js.map +1 -1
- package/dist/src/types/serializable.d.ts +31 -0
- package/dist/src/types/serializable.d.ts.map +1 -0
- package/dist/src/types/serializable.js +19 -0
- package/dist/src/types/serializable.js.map +1 -0
- package/dist/src/utils/zod.d.ts +11 -0
- package/dist/src/utils/zod.d.ts.map +1 -0
- package/dist/src/utils/zod.js +14 -0
- package/dist/src/utils/zod.js.map +1 -0
- package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +2 -2
- package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +1 -1
- package/dist/src/vended-tools/file_editor/__tests__/file-editor.test.node.js +4 -4
- package/dist/src/vended-tools/file_editor/__tests__/file-editor.test.node.js.map +1 -1
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +2 -2
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.js.map +1 -1
- package/package.json +17 -3
- package/dist/src/agent/__tests__/state.test.d.ts +0 -2
- package/dist/src/agent/__tests__/state.test.d.ts.map +0 -1
- package/dist/src/agent/__tests__/state.test.js.map +0 -1
- package/dist/src/agent/state.d.ts.map +0 -1
- package/dist/src/agent/state.js.map +0 -1
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { AppState } from '../app-state.js';
|
|
2
|
+
import type { ContentBlock } from '../types/messages.js';
|
|
3
|
+
import type { z } from 'zod';
|
|
4
|
+
/**
|
|
5
|
+
* Execution lifecycle status shared across all multi-agent patterns.
|
|
6
|
+
*/
|
|
7
|
+
export declare const Status: {
|
|
8
|
+
/** Execution has not yet started. */
|
|
9
|
+
readonly PENDING: "PENDING";
|
|
10
|
+
/** Execution is currently in progress. */
|
|
11
|
+
readonly EXECUTING: "EXECUTING";
|
|
12
|
+
/** Execution finished successfully. */
|
|
13
|
+
readonly COMPLETED: "COMPLETED";
|
|
14
|
+
/** Execution encountered an error. */
|
|
15
|
+
readonly FAILED: "FAILED";
|
|
16
|
+
/** Execution was cancelled before or during processing. */
|
|
17
|
+
readonly CANCELLED: "CANCELLED";
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Union of all valid status values.
|
|
21
|
+
*/
|
|
22
|
+
export type Status = (typeof Status)[keyof typeof Status];
|
|
23
|
+
/**
|
|
24
|
+
* Subset of {@link Status} representing terminal outcomes.
|
|
25
|
+
*/
|
|
26
|
+
export type ResultStatus = typeof Status.COMPLETED | typeof Status.FAILED | typeof Status.CANCELLED;
|
|
27
|
+
/**
|
|
28
|
+
* Result of executing a single node.
|
|
29
|
+
*/
|
|
30
|
+
export declare class NodeResult {
|
|
31
|
+
readonly type: "nodeResult";
|
|
32
|
+
readonly nodeId: string;
|
|
33
|
+
readonly status: ResultStatus;
|
|
34
|
+
/** Execution time in milliseconds. */
|
|
35
|
+
readonly duration: number;
|
|
36
|
+
readonly content: ContentBlock[];
|
|
37
|
+
readonly error?: Error;
|
|
38
|
+
/** Validated structured output, if a schema was provided. */
|
|
39
|
+
readonly structuredOutput?: z.output<z.ZodType>;
|
|
40
|
+
constructor(data: {
|
|
41
|
+
nodeId: string;
|
|
42
|
+
status: ResultStatus;
|
|
43
|
+
duration: number;
|
|
44
|
+
content?: ContentBlock[];
|
|
45
|
+
error?: Error;
|
|
46
|
+
structuredOutput?: z.output<z.ZodType>;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Partial result returned by {@link Node.handle} implementations.
|
|
51
|
+
*
|
|
52
|
+
* Contains implementer-controlled fields that are merged with
|
|
53
|
+
* framework-managed defaults (nodeId, status, duration) to
|
|
54
|
+
* produce the final {@link NodeResult}.
|
|
55
|
+
*/
|
|
56
|
+
export type NodeResultUpdate = Partial<Omit<NodeResult, 'type'>>;
|
|
57
|
+
/**
|
|
58
|
+
* Execution state of a single node within a multi-agent orchestration.
|
|
59
|
+
*/
|
|
60
|
+
export declare class NodeState {
|
|
61
|
+
readonly type: "nodeState";
|
|
62
|
+
status: Status;
|
|
63
|
+
/** Marks this node as the last one executed in an execution path. */
|
|
64
|
+
terminus: boolean;
|
|
65
|
+
readonly results: NodeResult[];
|
|
66
|
+
constructor();
|
|
67
|
+
/** Content from the most recent result, or empty array if none. */
|
|
68
|
+
get content(): readonly ContentBlock[];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Aggregate result from a multi-agent execution.
|
|
72
|
+
*/
|
|
73
|
+
export declare class MultiAgentResult {
|
|
74
|
+
readonly type: "multiAgentResult";
|
|
75
|
+
readonly status: ResultStatus;
|
|
76
|
+
readonly results: NodeResult[];
|
|
77
|
+
/** Combined content from terminus nodes, in completion order. */
|
|
78
|
+
readonly content: ContentBlock[];
|
|
79
|
+
readonly duration: number;
|
|
80
|
+
readonly error?: Error;
|
|
81
|
+
constructor(data: {
|
|
82
|
+
status?: ResultStatus;
|
|
83
|
+
results: NodeResult[];
|
|
84
|
+
content?: ContentBlock[];
|
|
85
|
+
duration: number;
|
|
86
|
+
error?: Error;
|
|
87
|
+
});
|
|
88
|
+
/** Derives the aggregate status from individual node results. */
|
|
89
|
+
private _resolveStatus;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Shared state for multi-agent orchestration patterns.
|
|
93
|
+
*/
|
|
94
|
+
export declare class MultiAgentState {
|
|
95
|
+
/** Execution start time in milliseconds since epoch. */
|
|
96
|
+
readonly startTime: number;
|
|
97
|
+
/** Number of node executions started so far. */
|
|
98
|
+
steps: number;
|
|
99
|
+
/** All node results in completion order. */
|
|
100
|
+
readonly results: NodeResult[];
|
|
101
|
+
/** App-level key-value state accessible from hooks, edge handlers, and custom nodes. */
|
|
102
|
+
readonly app: AppState;
|
|
103
|
+
/** Structured output schema to apply to node invocations. */
|
|
104
|
+
readonly structuredOutputSchema?: z.ZodSchema;
|
|
105
|
+
private readonly _nodes;
|
|
106
|
+
constructor(data?: {
|
|
107
|
+
nodeIds?: string[];
|
|
108
|
+
structuredOutputSchema?: z.ZodSchema;
|
|
109
|
+
});
|
|
110
|
+
/**
|
|
111
|
+
* Get the state of a specific node by ID.
|
|
112
|
+
*
|
|
113
|
+
* @param id - The node identifier
|
|
114
|
+
* @returns The node's state, or undefined if the node is not tracked
|
|
115
|
+
*/
|
|
116
|
+
node(id: string): NodeState | undefined;
|
|
117
|
+
/**
|
|
118
|
+
* All tracked node states.
|
|
119
|
+
*/
|
|
120
|
+
get nodes(): ReadonlyMap<string, NodeState>;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/multiagent/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAE5B;;GAEG;AACH,eAAO,MAAM,MAAM;IACjB,qCAAqC;;IAErC,0CAA0C;;IAE1C,uCAAuC;;IAEvC,sCAAsC;;IAEtC,2DAA2D;;CAEnD,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAA;AAEzD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,MAAM,CAAC,SAAS,GAAG,OAAO,MAAM,CAAC,MAAM,GAAG,OAAO,MAAM,CAAC,SAAS,CAAA;AAEnG;;GAEG;AACH,qBAAa,UAAU;IACrB,QAAQ,CAAC,IAAI,EAAG,YAAY,CAAS;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,CAAA;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;IACtB,6DAA6D;IAC7D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;gBAEnC,IAAI,EAAE;QAChB,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,EAAE,YAAY,CAAA;QACpB,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAA;QACxB,KAAK,CAAC,EAAE,KAAK,CAAA;QACb,gBAAgB,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;KACvC;CAQF;AAED;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAA;AAEhE;;GAEG;AACH,qBAAa,SAAS;IACpB,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAS;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,qEAAqE;IACrE,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,CAAA;;IAQ9B,mEAAmE;IACnE,IAAI,OAAO,IAAI,SAAS,YAAY,EAAE,CAGrC;CACF;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,IAAI,EAAG,kBAAkB,CAAS;IAC3C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,CAAA;IAC9B,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,CAAA;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;gBAEV,IAAI,EAAE;QAChB,MAAM,CAAC,EAAE,YAAY,CAAA;QACrB,OAAO,EAAE,UAAU,EAAE,CAAA;QACrB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAA;QACxB,QAAQ,EAAE,MAAM,CAAA;QAChB,KAAK,CAAC,EAAE,KAAK,CAAA;KACd;IAQD,iEAAiE;IACjE,OAAO,CAAC,cAAc;CAKvB;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,wDAAwD;IACxD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAA;IACb,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,CAAA;IAC9B,wFAAwF;IACxF,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAA;IACtB,6DAA6D;IAC7D,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,SAAS,CAAA;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;gBAEnC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,SAAS,CAAA;KAAE;IAY/E;;;;;OAKG;IACH,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIvC;;OAEG;IACH,IAAI,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAE1C;CACF"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { AppState } from '../app-state.js';
|
|
2
|
+
/**
|
|
3
|
+
* Execution lifecycle status shared across all multi-agent patterns.
|
|
4
|
+
*/
|
|
5
|
+
export const Status = {
|
|
6
|
+
/** Execution has not yet started. */
|
|
7
|
+
PENDING: 'PENDING',
|
|
8
|
+
/** Execution is currently in progress. */
|
|
9
|
+
EXECUTING: 'EXECUTING',
|
|
10
|
+
/** Execution finished successfully. */
|
|
11
|
+
COMPLETED: 'COMPLETED',
|
|
12
|
+
/** Execution encountered an error. */
|
|
13
|
+
FAILED: 'FAILED',
|
|
14
|
+
/** Execution was cancelled before or during processing. */
|
|
15
|
+
CANCELLED: 'CANCELLED',
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Result of executing a single node.
|
|
19
|
+
*/
|
|
20
|
+
export class NodeResult {
|
|
21
|
+
type = 'nodeResult';
|
|
22
|
+
nodeId;
|
|
23
|
+
status;
|
|
24
|
+
/** Execution time in milliseconds. */
|
|
25
|
+
duration;
|
|
26
|
+
content;
|
|
27
|
+
error;
|
|
28
|
+
/** Validated structured output, if a schema was provided. */
|
|
29
|
+
structuredOutput;
|
|
30
|
+
constructor(data) {
|
|
31
|
+
this.nodeId = data.nodeId;
|
|
32
|
+
this.status = data.status;
|
|
33
|
+
this.duration = data.duration;
|
|
34
|
+
this.content = data.content ?? [];
|
|
35
|
+
if ('error' in data)
|
|
36
|
+
this.error = data.error;
|
|
37
|
+
if ('structuredOutput' in data)
|
|
38
|
+
this.structuredOutput = data.structuredOutput;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Execution state of a single node within a multi-agent orchestration.
|
|
43
|
+
*/
|
|
44
|
+
export class NodeState {
|
|
45
|
+
type = 'nodeState';
|
|
46
|
+
status;
|
|
47
|
+
/** Marks this node as the last one executed in an execution path. */
|
|
48
|
+
terminus;
|
|
49
|
+
results;
|
|
50
|
+
constructor() {
|
|
51
|
+
this.status = Status.PENDING;
|
|
52
|
+
this.terminus = false;
|
|
53
|
+
this.results = [];
|
|
54
|
+
}
|
|
55
|
+
/** Content from the most recent result, or empty array if none. */
|
|
56
|
+
get content() {
|
|
57
|
+
const last = this.results[this.results.length - 1];
|
|
58
|
+
return last?.content ?? [];
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Aggregate result from a multi-agent execution.
|
|
63
|
+
*/
|
|
64
|
+
export class MultiAgentResult {
|
|
65
|
+
type = 'multiAgentResult';
|
|
66
|
+
status;
|
|
67
|
+
results;
|
|
68
|
+
/** Combined content from terminus nodes, in completion order. */
|
|
69
|
+
content;
|
|
70
|
+
duration;
|
|
71
|
+
error;
|
|
72
|
+
constructor(data) {
|
|
73
|
+
this.status = data.status ?? this._resolveStatus(data.results);
|
|
74
|
+
this.results = data.results;
|
|
75
|
+
this.content = data.content ?? [];
|
|
76
|
+
this.duration = data.duration;
|
|
77
|
+
if ('error' in data)
|
|
78
|
+
this.error = data.error;
|
|
79
|
+
}
|
|
80
|
+
/** Derives the aggregate status from individual node results. */
|
|
81
|
+
_resolveStatus(results) {
|
|
82
|
+
if (results.some((r) => r.status === Status.FAILED))
|
|
83
|
+
return Status.FAILED;
|
|
84
|
+
if (results.some((r) => r.status === Status.CANCELLED))
|
|
85
|
+
return Status.CANCELLED;
|
|
86
|
+
return Status.COMPLETED;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Shared state for multi-agent orchestration patterns.
|
|
91
|
+
*/
|
|
92
|
+
export class MultiAgentState {
|
|
93
|
+
/** Execution start time in milliseconds since epoch. */
|
|
94
|
+
startTime;
|
|
95
|
+
/** Number of node executions started so far. */
|
|
96
|
+
steps;
|
|
97
|
+
/** All node results in completion order. */
|
|
98
|
+
results;
|
|
99
|
+
/** App-level key-value state accessible from hooks, edge handlers, and custom nodes. */
|
|
100
|
+
app;
|
|
101
|
+
/** Structured output schema to apply to node invocations. */
|
|
102
|
+
structuredOutputSchema;
|
|
103
|
+
_nodes;
|
|
104
|
+
constructor(data) {
|
|
105
|
+
this.startTime = Date.now();
|
|
106
|
+
this.steps = 0;
|
|
107
|
+
this.results = [];
|
|
108
|
+
this.app = new AppState();
|
|
109
|
+
if (data?.structuredOutputSchema)
|
|
110
|
+
this.structuredOutputSchema = data.structuredOutputSchema;
|
|
111
|
+
this._nodes = new Map();
|
|
112
|
+
for (const id of data?.nodeIds ?? []) {
|
|
113
|
+
this._nodes.set(id, new NodeState());
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Get the state of a specific node by ID.
|
|
118
|
+
*
|
|
119
|
+
* @param id - The node identifier
|
|
120
|
+
* @returns The node's state, or undefined if the node is not tracked
|
|
121
|
+
*/
|
|
122
|
+
node(id) {
|
|
123
|
+
return this._nodes.get(id);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* All tracked node states.
|
|
127
|
+
*/
|
|
128
|
+
get nodes() {
|
|
129
|
+
return this._nodes;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/multiagent/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,13 +20,14 @@ export declare class ToolRegistry extends Registry<Tool, Tool> {
|
|
|
20
20
|
protected validate(tool: Tool): void;
|
|
21
21
|
/**
|
|
22
22
|
* Retrieves the first tool that matches the given name.
|
|
23
|
+
*
|
|
23
24
|
* @param name - The name of the tool to retrieve.
|
|
24
25
|
* @returns The tool if found, otherwise undefined.
|
|
25
26
|
*/
|
|
26
27
|
getByName(name: string): Tool | undefined;
|
|
27
28
|
/**
|
|
28
29
|
* Finds and removes the first tool that matches the given name.
|
|
29
|
-
*
|
|
30
|
+
*
|
|
30
31
|
* @param name - The name of the tool to remove.
|
|
31
32
|
*/
|
|
32
33
|
removeByName(name: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../../src/registry/tool-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmB,MAAM,eAAe,CAAA;AACzD,OAAO,KAAK,EAAE,IAAI,EAAuB,MAAM,kBAAkB,CAAA;AAIjE;;;GAGG;AACH,qBAAa,YAAa,SAAQ,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpD;;;;OAIG;IACH,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAItC;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../../src/registry/tool-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmB,MAAM,eAAe,CAAA;AACzD,OAAO,KAAK,EAAE,IAAI,EAAuB,MAAM,kBAAkB,CAAA;AAIjE;;;GAGG;AACH,qBAAa,YAAa,SAAQ,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpD;;;;OAIG;IACH,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAItC;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IA+BpC;;;;;OAKG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAIhD;;;;OAIG;IACI,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAGxC"}
|
|
@@ -41,12 +41,14 @@ export class ToolRegistry extends Registry {
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
// Check for duplicate names
|
|
44
|
-
|
|
44
|
+
const hasDuplicate = this.values().some((t) => t.name === tool.name);
|
|
45
|
+
if (hasDuplicate) {
|
|
45
46
|
throw new ValidationError(`Tool with name '${tool.name}' already registered`);
|
|
46
47
|
}
|
|
47
48
|
}
|
|
48
49
|
/**
|
|
49
50
|
* Retrieves the first tool that matches the given name.
|
|
51
|
+
*
|
|
50
52
|
* @param name - The name of the tool to retrieve.
|
|
51
53
|
* @returns The tool if found, otherwise undefined.
|
|
52
54
|
*/
|
|
@@ -55,7 +57,7 @@ export class ToolRegistry extends Registry {
|
|
|
55
57
|
}
|
|
56
58
|
/**
|
|
57
59
|
* Finds and removes the first tool that matches the given name.
|
|
58
|
-
*
|
|
60
|
+
*
|
|
59
61
|
* @param name - The name of the tool to remove.
|
|
60
62
|
*/
|
|
61
63
|
removeByName(name) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../../src/registry/tool-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD;;;GAGG;AACH,MAAM,OAAO,YAAa,SAAQ,QAAoB;IACpD;;;;OAIG;IACO,UAAU,CAAC,IAAU;QAC7B,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;;OAKG;IACO,QAAQ,CAAC,IAAU;QAC3B,iCAAiC;QACjC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,IAAI,eAAe,CAAC,4BAA4B,CAAC,CAAA;QACzD,CAAC;QAED,8CAA8C;QAC9C,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAClD,MAAM,IAAI,eAAe,CAAC,+CAA+C,CAAC,CAAA;QAC5E,CAAC;QAED,6BAA6B;QAC7B,MAAM,gBAAgB,GAAG,kBAAkB,CAAA;QAC3C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,eAAe,CAAC,+EAA+E,CAAC,CAAA;QAC5G,CAAC;QAED,uCAAuC;QACvC,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAChE,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxE,MAAM,IAAI,eAAe,CAAC,6CAA6C,CAAC,CAAA;YAC1E,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,
|
|
1
|
+
{"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../../src/registry/tool-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-storage.test.node.d.ts","sourceRoot":"","sources":["../../../../src/session/__tests__/file-storage.test.node.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import { describe, expect, it, beforeEach, afterEach, vi } from 'vitest';
|
|
2
|
+
import { promises as fs } from 'fs';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
import { tmpdir } from 'os';
|
|
5
|
+
import { FileStorage } from '../file-storage.js';
|
|
6
|
+
import { SessionError } from '../../errors.js';
|
|
7
|
+
import { createTestSnapshot, createTestManifest, createTestScope, createTestSnapshots, } from '../../__fixtures__/mock-storage-provider.js';
|
|
8
|
+
const SCOPE_ID = 'test-agent';
|
|
9
|
+
describe('FileStorage', () => {
|
|
10
|
+
let storage;
|
|
11
|
+
let testDir;
|
|
12
|
+
beforeEach(async () => {
|
|
13
|
+
testDir = join(tmpdir(), `file-storage-test-${Date.now()}-${Math.random().toString(36).slice(2)}`);
|
|
14
|
+
await fs.mkdir(testDir, { recursive: true });
|
|
15
|
+
storage = new FileStorage(testDir);
|
|
16
|
+
});
|
|
17
|
+
afterEach(async () => {
|
|
18
|
+
try {
|
|
19
|
+
await fs.rm(testDir, { recursive: true, force: true });
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
// Ignore cleanup errors
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
describe('saveSnapshot', () => {
|
|
26
|
+
describe('FileSnapshotStorage_When_saveSnapshot_Then_CreatesFiles', () => {
|
|
27
|
+
it('saves snapshot to history file', async () => {
|
|
28
|
+
const location = { sessionId: 'test-session', scope: createTestScope(), scopeId: SCOPE_ID };
|
|
29
|
+
const snapshot = createTestSnapshot();
|
|
30
|
+
await storage.saveSnapshot({ location, snapshotId: '1', isLatest: false, snapshot });
|
|
31
|
+
const historyPath = join(testDir, location.sessionId, 'scopes', 'agent', SCOPE_ID, 'snapshots', 'immutable_history', 'snapshot_00001.json');
|
|
32
|
+
const content = await fs.readFile(historyPath, 'utf8');
|
|
33
|
+
expect(JSON.parse(content)).toEqual(snapshot);
|
|
34
|
+
});
|
|
35
|
+
it('saves snapshot as latest when isLatest is true', async () => {
|
|
36
|
+
const location = { sessionId: 'test-session', scope: createTestScope(), scopeId: SCOPE_ID };
|
|
37
|
+
const snapshot = createTestSnapshot();
|
|
38
|
+
await storage.saveSnapshot({ location, snapshotId: '1', isLatest: true, snapshot });
|
|
39
|
+
const latestPath = join(testDir, location.sessionId, 'scopes', 'agent', SCOPE_ID, 'snapshots', 'snapshot_latest.json');
|
|
40
|
+
const content = await fs.readFile(latestPath, 'utf8');
|
|
41
|
+
expect(JSON.parse(content)).toEqual(snapshot);
|
|
42
|
+
});
|
|
43
|
+
it('creates directories recursively', async () => {
|
|
44
|
+
const location = {
|
|
45
|
+
sessionId: 'new-session',
|
|
46
|
+
scope: createTestScope('agent'),
|
|
47
|
+
scopeId: 'new-agent',
|
|
48
|
+
};
|
|
49
|
+
const snapshot = createTestSnapshot();
|
|
50
|
+
await storage.saveSnapshot({ location, snapshotId: '1', isLatest: true, snapshot });
|
|
51
|
+
const expectedDir = join(testDir, location.sessionId, 'scopes', 'agent', location.scopeId, 'snapshots');
|
|
52
|
+
const stats = await fs.stat(expectedDir);
|
|
53
|
+
expect(stats.isDirectory()).toBe(true);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
describe('FileSnapshotStorage_When_saveSnapshotFails_Then_ThrowsSessionError', () => {
|
|
57
|
+
it('throws SessionError when write fails', async () => {
|
|
58
|
+
const location = { sessionId: 'test-session', scope: createTestScope(), scopeId: SCOPE_ID };
|
|
59
|
+
const snapshot = createTestSnapshot();
|
|
60
|
+
vi.spyOn(fs, 'writeFile').mockRejectedValueOnce(new Error('Write failed'));
|
|
61
|
+
await expect(storage.saveSnapshot({ location, snapshotId: '1', isLatest: false, snapshot })).rejects.toThrow(SessionError);
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
describe('FileSnapshotStorage_When_MultiAgentScope_Then_SavesCorrectly', () => {
|
|
65
|
+
it('saves multi-agent snapshot to correct path', async () => {
|
|
66
|
+
const location = {
|
|
67
|
+
sessionId: 'multi-session',
|
|
68
|
+
scope: createTestScope('multiAgent'),
|
|
69
|
+
scopeId: 'graph-1',
|
|
70
|
+
};
|
|
71
|
+
const snapshot = createTestSnapshot({ scope: 'multiAgent' });
|
|
72
|
+
await storage.saveSnapshot({ location, snapshotId: '1', isLatest: true, snapshot });
|
|
73
|
+
const expectedPath = join(testDir, location.sessionId, 'scopes', 'multiAgent', location.scopeId, 'snapshots', 'snapshot_latest.json');
|
|
74
|
+
const content = await fs.readFile(expectedPath, 'utf8');
|
|
75
|
+
expect(JSON.parse(content)).toEqual(snapshot);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
describe('loadSnapshot', () => {
|
|
80
|
+
describe('FileSnapshotStorage_When_LoadLatestSnapshot_Then_ReturnsSnapshot', () => {
|
|
81
|
+
it('loads latest snapshot when snapshotId is undefined', async () => {
|
|
82
|
+
const location = { sessionId: 'test-session', scope: createTestScope(), scopeId: SCOPE_ID };
|
|
83
|
+
const snapshot = createTestSnapshot();
|
|
84
|
+
await storage.saveSnapshot({ location, snapshotId: '1', isLatest: true, snapshot });
|
|
85
|
+
const result = await storage.loadSnapshot({ location });
|
|
86
|
+
expect(result).toEqual(snapshot);
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
describe('FileSnapshotStorage_When_LoadSpecificSnapshot_Then_ReturnsSnapshot', () => {
|
|
90
|
+
it('loads specific snapshot by ID', async () => {
|
|
91
|
+
const location = { sessionId: 'test-session', scope: createTestScope(), scopeId: SCOPE_ID };
|
|
92
|
+
const snapshot = createTestSnapshot();
|
|
93
|
+
await storage.saveSnapshot({ location, snapshotId: '5', isLatest: false, snapshot });
|
|
94
|
+
const result = await storage.loadSnapshot({ location, snapshotId: '5' });
|
|
95
|
+
expect(result).toEqual(snapshot);
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
describe('FileSnapshotStorage_When_SnapshotNotFound_Then_ReturnsNull', () => {
|
|
99
|
+
it('returns null when snapshot file does not exist', async () => {
|
|
100
|
+
const result = await storage.loadSnapshot({
|
|
101
|
+
location: { sessionId: 'nonexistent', scope: 'agent', scopeId: SCOPE_ID },
|
|
102
|
+
});
|
|
103
|
+
expect(result).toBeNull();
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
describe('FileSnapshotStorage_When_InvalidJSON_Then_ThrowsSessionError', () => {
|
|
107
|
+
it('throws SessionError when JSON is invalid', async () => {
|
|
108
|
+
const sessionId = 'test-session';
|
|
109
|
+
const filePath = join(testDir, sessionId, 'scopes', 'agent', SCOPE_ID, 'snapshots', 'snapshot_latest.json');
|
|
110
|
+
await fs.mkdir(join(testDir, sessionId, 'scopes', 'agent', SCOPE_ID, 'snapshots'), { recursive: true });
|
|
111
|
+
await fs.writeFile(filePath, 'invalid json', 'utf8');
|
|
112
|
+
await expect(storage.loadSnapshot({ location: { sessionId, scope: 'agent', scopeId: SCOPE_ID } })).rejects.toThrow(SessionError);
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
describe('FileSnapshotStorage_When_ReadError_Then_ThrowsSessionError', () => {
|
|
116
|
+
it('throws SessionError when file read fails', async () => {
|
|
117
|
+
vi.spyOn(fs, 'readFile').mockRejectedValueOnce(new Error('Permission denied'));
|
|
118
|
+
await expect(storage.loadSnapshot({ location: { sessionId: 'test-session', scope: 'agent', scopeId: SCOPE_ID } })).rejects.toThrow(SessionError);
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
describe('listSnapshots', () => {
|
|
123
|
+
describe('FileSnapshotStorage_When_listSnapshots_Then_ReturnsOrderedIds', () => {
|
|
124
|
+
it('returns sorted snapshot IDs', async () => {
|
|
125
|
+
const location = { sessionId: 'test-session', scope: createTestScope(), scopeId: SCOPE_ID };
|
|
126
|
+
const snapshots = createTestSnapshots(3);
|
|
127
|
+
await storage.saveSnapshot({ location, snapshotId: '3', isLatest: false, snapshot: snapshots[2] });
|
|
128
|
+
await storage.saveSnapshot({ location, snapshotId: '1', isLatest: false, snapshot: snapshots[0] });
|
|
129
|
+
await storage.saveSnapshot({ location, snapshotId: '2', isLatest: false, snapshot: snapshots[1] });
|
|
130
|
+
const result = await storage.listSnapshotIds({ location });
|
|
131
|
+
expect(result).toEqual(['00001', '00002', '00003']);
|
|
132
|
+
});
|
|
133
|
+
it('returns empty array when no snapshots exist', async () => {
|
|
134
|
+
const result = await storage.listSnapshotIds({
|
|
135
|
+
location: { sessionId: 'empty-session', scope: 'agent', scopeId: SCOPE_ID },
|
|
136
|
+
});
|
|
137
|
+
expect(result).toEqual([]);
|
|
138
|
+
});
|
|
139
|
+
it('ignores non-snapshot files', async () => {
|
|
140
|
+
const location = { sessionId: 'test-session', scope: createTestScope(), scopeId: SCOPE_ID };
|
|
141
|
+
const snapshot = createTestSnapshot();
|
|
142
|
+
await storage.saveSnapshot({ location, snapshotId: '1', isLatest: false, snapshot });
|
|
143
|
+
const historyDir = join(testDir, location.sessionId, 'scopes', 'agent', SCOPE_ID, 'snapshots', 'immutable_history');
|
|
144
|
+
await fs.writeFile(join(historyDir, 'other-file.txt'), 'not a snapshot', 'utf8');
|
|
145
|
+
const result = await storage.listSnapshotIds({ location });
|
|
146
|
+
expect(result).toEqual(['00001']);
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
describe('FileSnapshotStorage_When_DirectoryNotFound_Then_ReturnsEmptyArray', () => {
|
|
150
|
+
it('returns empty array when directory does not exist', async () => {
|
|
151
|
+
const result = await storage.listSnapshotIds({
|
|
152
|
+
location: { sessionId: 'nonexistent', scope: 'agent', scopeId: SCOPE_ID },
|
|
153
|
+
});
|
|
154
|
+
expect(result).toEqual([]);
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
describe('FileSnapshotStorage_When_ReadDirFails_Then_ThrowsSessionError', () => {
|
|
158
|
+
it('throws SessionError when readdir fails with non-ENOENT error', async () => {
|
|
159
|
+
vi.spyOn(fs, 'readdir').mockRejectedValueOnce(new Error('Permission denied'));
|
|
160
|
+
await expect(storage.listSnapshotIds({ location: { sessionId: 'test-session', scope: 'agent', scopeId: SCOPE_ID } })).rejects.toThrow(SessionError);
|
|
161
|
+
});
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
describe('saveManifest', () => {
|
|
165
|
+
describe('FileSnapshotStorage_When_SaveManifest_Then_CreatesFile', () => {
|
|
166
|
+
it('saves manifest to correct path', async () => {
|
|
167
|
+
const location = { sessionId: 'test-session', scope: 'agent', scopeId: SCOPE_ID };
|
|
168
|
+
const manifest = createTestManifest();
|
|
169
|
+
await storage.saveManifest({ location, manifest });
|
|
170
|
+
const manifestPath = join(testDir, location.sessionId, 'scopes', 'agent', SCOPE_ID, 'snapshots', 'manifest.json');
|
|
171
|
+
const content = await fs.readFile(manifestPath, 'utf8');
|
|
172
|
+
expect(JSON.parse(content)).toEqual(manifest);
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
describe('FileSnapshotStorage_When_SaveManifestFails_Then_ThrowsSessionError', () => {
|
|
176
|
+
it('throws SessionError when write fails', async () => {
|
|
177
|
+
vi.spyOn(fs, 'writeFile').mockRejectedValueOnce(new Error('Write failed'));
|
|
178
|
+
await expect(storage.saveManifest({
|
|
179
|
+
location: { sessionId: 'test-session', scope: 'agent', scopeId: SCOPE_ID },
|
|
180
|
+
manifest: createTestManifest(),
|
|
181
|
+
})).rejects.toThrow(SessionError);
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
describe('loadManifest', () => {
|
|
186
|
+
describe('FileSnapshotStorage_When_LoadManifest_Then_ReturnsManifest', () => {
|
|
187
|
+
it('loads manifest from file', async () => {
|
|
188
|
+
const location = { sessionId: 'test-session', scope: 'agent', scopeId: SCOPE_ID };
|
|
189
|
+
const manifest = createTestManifest();
|
|
190
|
+
await storage.saveManifest({ location, manifest });
|
|
191
|
+
const result = await storage.loadManifest({ location });
|
|
192
|
+
expect(result).toEqual(manifest);
|
|
193
|
+
});
|
|
194
|
+
});
|
|
195
|
+
describe('FileSnapshotStorage_When_ManifestNotFound_Then_ReturnsDefault', () => {
|
|
196
|
+
it('returns default manifest when manifest file does not exist', async () => {
|
|
197
|
+
const result = await storage.loadManifest({
|
|
198
|
+
location: { sessionId: 'nonexistent', scope: 'agent', scopeId: SCOPE_ID },
|
|
199
|
+
});
|
|
200
|
+
expect(result).toEqual({
|
|
201
|
+
schemaVersion: '1.0',
|
|
202
|
+
nextSnapshotId: '1',
|
|
203
|
+
updatedAt: expect.any(String),
|
|
204
|
+
});
|
|
205
|
+
});
|
|
206
|
+
});
|
|
207
|
+
describe('FileSnapshotStorage_When_InvalidManifestJSON_Then_ThrowsSessionError', () => {
|
|
208
|
+
it('throws SessionError when JSON is invalid', async () => {
|
|
209
|
+
const sessionId = 'test-session';
|
|
210
|
+
const filePath = join(testDir, sessionId, 'scopes', 'agent', SCOPE_ID, 'snapshots', 'manifest.json');
|
|
211
|
+
await fs.mkdir(join(testDir, sessionId, 'scopes', 'agent', SCOPE_ID, 'snapshots'), { recursive: true });
|
|
212
|
+
await fs.writeFile(filePath, 'invalid json', 'utf8');
|
|
213
|
+
await expect(storage.loadManifest({ location: { sessionId, scope: 'agent', scopeId: SCOPE_ID } })).rejects.toThrow(SessionError);
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
});
|
|
217
|
+
});
|
|
218
|
+
//# sourceMappingURL=file-storage.test.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-storage.test.node.js","sourceRoot":"","sources":["../../../../src/session/__tests__/file-storage.test.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3-storage.test.node.d.ts","sourceRoot":"","sources":["../../../../src/session/__tests__/s3-storage.test.node.ts"],"names":[],"mappings":""}
|