@strands-agents/sdk 0.5.0 → 0.7.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 +64 -0
- package/dist/src/__fixtures__/agent-helpers.d.ts +37 -4
- package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/agent-helpers.js +31 -4
- package/dist/src/__fixtures__/agent-helpers.js.map +1 -1
- package/dist/src/__fixtures__/metrics-helpers.d.ts +55 -0
- package/dist/src/__fixtures__/metrics-helpers.d.ts.map +1 -0
- package/dist/src/__fixtures__/metrics-helpers.js +57 -0
- package/dist/src/__fixtures__/metrics-helpers.js.map +1 -0
- package/dist/src/__fixtures__/mock-message-model.d.ts +8 -4
- package/dist/src/__fixtures__/mock-message-model.d.ts.map +1 -1
- package/dist/src/__fixtures__/mock-message-model.js +25 -7
- package/dist/src/__fixtures__/mock-message-model.js.map +1 -1
- package/dist/src/__fixtures__/mock-meter.d.ts +32 -0
- package/dist/src/__fixtures__/mock-meter.d.ts.map +1 -0
- package/dist/src/__fixtures__/mock-meter.js +47 -0
- package/dist/src/__fixtures__/mock-meter.js.map +1 -0
- package/dist/src/__fixtures__/mock-plugin.d.ts +13 -0
- package/dist/src/__fixtures__/mock-plugin.d.ts.map +1 -0
- package/dist/src/__fixtures__/{mock-hook-provider.js → mock-plugin.js} +8 -5
- package/dist/src/__fixtures__/mock-plugin.js.map +1 -0
- package/dist/src/__fixtures__/mock-storage-provider.d.ts +5 -0
- package/dist/src/__fixtures__/mock-storage-provider.d.ts.map +1 -1
- package/dist/src/__fixtures__/mock-storage-provider.js +23 -6
- package/dist/src/__fixtures__/mock-storage-provider.js.map +1 -1
- package/dist/src/__fixtures__/slim-types.d.ts +2 -1
- package/dist/src/__fixtures__/slim-types.d.ts.map +1 -1
- package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/tool-helpers.js +5 -2
- package/dist/src/__fixtures__/tool-helpers.js.map +1 -1
- package/dist/src/__tests__/index.test.js +21 -0
- package/dist/src/__tests__/index.test.js.map +1 -1
- package/dist/src/__tests__/mcp.test.js +45 -15
- package/dist/src/__tests__/mcp.test.js.map +1 -1
- package/dist/src/__tests__/mime.test.d.ts +2 -0
- package/dist/src/__tests__/mime.test.d.ts.map +1 -0
- package/dist/src/__tests__/mime.test.js +83 -0
- package/dist/src/__tests__/mime.test.js.map +1 -0
- package/dist/src/__tests__/state-store.test.d.ts +2 -0
- package/dist/src/__tests__/state-store.test.d.ts.map +1 -0
- package/dist/src/__tests__/{app-state.test.js → state-store.test.js} +86 -51
- package/dist/src/__tests__/state-store.test.js.map +1 -0
- package/dist/src/a2a/__tests__/a2a-agent.test.d.ts +2 -0
- package/dist/src/a2a/__tests__/a2a-agent.test.d.ts.map +1 -0
- package/dist/src/a2a/__tests__/a2a-agent.test.js +364 -0
- package/dist/src/a2a/__tests__/a2a-agent.test.js.map +1 -0
- package/dist/src/a2a/__tests__/adapters.test.d.ts +2 -0
- package/dist/src/a2a/__tests__/adapters.test.d.ts.map +1 -0
- package/dist/src/a2a/__tests__/adapters.test.js +151 -0
- package/dist/src/a2a/__tests__/adapters.test.js.map +1 -0
- package/dist/src/a2a/__tests__/executor.test.d.ts +2 -0
- package/dist/src/a2a/__tests__/executor.test.d.ts.map +1 -0
- package/dist/src/a2a/__tests__/executor.test.js +196 -0
- package/dist/src/a2a/__tests__/executor.test.js.map +1 -0
- package/dist/src/a2a/__tests__/server.test.d.ts +2 -0
- package/dist/src/a2a/__tests__/server.test.d.ts.map +1 -0
- package/dist/src/a2a/__tests__/server.test.js +51 -0
- package/dist/src/a2a/__tests__/server.test.js.map +1 -0
- package/dist/src/a2a/__tests__/server.test.node.d.ts +2 -0
- package/dist/src/a2a/__tests__/server.test.node.d.ts.map +1 -0
- package/dist/src/a2a/__tests__/server.test.node.js +110 -0
- package/dist/src/a2a/__tests__/server.test.node.js.map +1 -0
- package/dist/src/a2a/a2a-agent.d.ts +132 -0
- package/dist/src/a2a/a2a-agent.d.ts.map +1 -0
- package/dist/src/a2a/a2a-agent.js +255 -0
- package/dist/src/a2a/a2a-agent.js.map +1 -0
- package/dist/src/a2a/adapters.d.ts +27 -0
- package/dist/src/a2a/adapters.d.ts.map +1 -0
- package/dist/src/a2a/adapters.js +175 -0
- package/dist/src/a2a/adapters.js.map +1 -0
- package/dist/src/a2a/events.d.ts +42 -0
- package/dist/src/a2a/events.d.ts.map +1 -0
- package/dist/src/a2a/events.js +35 -0
- package/dist/src/a2a/events.js.map +1 -0
- package/dist/src/a2a/executor.d.ts +57 -0
- package/dist/src/a2a/executor.d.ts.map +1 -0
- package/dist/src/a2a/executor.js +130 -0
- package/dist/src/a2a/executor.js.map +1 -0
- package/dist/src/a2a/express-server.d.ts +67 -0
- package/dist/src/a2a/express-server.d.ts.map +1 -0
- package/dist/src/a2a/express-server.js +95 -0
- package/dist/src/a2a/express-server.js.map +1 -0
- package/dist/src/a2a/index.d.ts +16 -0
- package/dist/src/a2a/index.d.ts.map +1 -0
- package/dist/src/a2a/index.js +16 -0
- package/dist/src/a2a/index.js.map +1 -0
- package/dist/src/a2a/logging.d.ts +8 -0
- package/dist/src/a2a/logging.d.ts.map +1 -0
- package/dist/src/a2a/logging.js +15 -0
- package/dist/src/a2a/logging.js.map +1 -0
- package/dist/src/a2a/server.d.ts +67 -0
- package/dist/src/a2a/server.d.ts.map +1 -0
- package/dist/src/a2a/server.js +67 -0
- package/dist/src/a2a/server.js.map +1 -0
- package/dist/src/agent/__tests__/agent.hook.test.js +87 -51
- package/dist/src/agent/__tests__/agent.hook.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.test.js +176 -101
- package/dist/src/agent/__tests__/agent.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.tracer.test.js +10 -10
- package/dist/src/agent/__tests__/agent.tracer.test.js.map +1 -1
- package/dist/src/agent/__tests__/snapshot.test.js +11 -11
- package/dist/src/agent/__tests__/snapshot.test.js.map +1 -1
- package/dist/src/agent/agent.d.ts +71 -58
- package/dist/src/agent/agent.d.ts.map +1 -1
- package/dist/src/agent/agent.js +177 -93
- package/dist/src/agent/agent.js.map +1 -1
- package/dist/src/agent/snapshot.d.ts.map +1 -1
- package/dist/src/agent/snapshot.js +3 -2
- package/dist/src/agent/snapshot.js.map +1 -1
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts +2 -0
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts.map +1 -0
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.js +100 -0
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +1 -0
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js +26 -10
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js.map +1 -1
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +84 -21
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +1 -1
- package/dist/src/conversation-manager/conversation-manager.d.ts +87 -0
- package/dist/src/conversation-manager/conversation-manager.d.ts.map +1 -0
- package/dist/src/conversation-manager/conversation-manager.js +59 -0
- package/dist/src/conversation-manager/conversation-manager.js.map +1 -0
- package/dist/src/conversation-manager/index.d.ts +1 -0
- package/dist/src/conversation-manager/index.d.ts.map +1 -1
- package/dist/src/conversation-manager/index.js +1 -0
- package/dist/src/conversation-manager/index.js.map +1 -1
- package/dist/src/conversation-manager/null-conversation-manager.d.ts +12 -8
- package/dist/src/conversation-manager/null-conversation-manager.d.ts.map +1 -1
- package/dist/src/conversation-manager/null-conversation-manager.js +13 -7
- package/dist/src/conversation-manager/null-conversation-manager.js.map +1 -1
- package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts +28 -19
- package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts.map +1 -1
- package/dist/src/conversation-manager/sliding-window-conversation-manager.js +44 -36
- package/dist/src/conversation-manager/sliding-window-conversation-manager.js.map +1 -1
- package/dist/src/errors.d.ts +6 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +9 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/hooks/__tests__/events.test.js +2 -0
- package/dist/src/hooks/__tests__/events.test.js.map +1 -1
- package/dist/src/hooks/__tests__/registry.test.js +10 -154
- package/dist/src/hooks/__tests__/registry.test.js.map +1 -1
- package/dist/src/hooks/events.d.ts +60 -44
- package/dist/src/hooks/events.d.ts.map +1 -1
- package/dist/src/hooks/events.js +11 -11
- package/dist/src/hooks/events.js.map +1 -1
- package/dist/src/hooks/index.d.ts +4 -4
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/hooks/index.js +2 -2
- package/dist/src/hooks/registry.d.ts +1 -32
- package/dist/src/hooks/registry.d.ts.map +1 -1
- package/dist/src/hooks/registry.js +1 -47
- package/dist/src/hooks/registry.js.map +1 -1
- package/dist/src/hooks/types.d.ts +0 -31
- package/dist/src/hooks/types.d.ts.map +1 -1
- package/dist/src/index.d.ts +30 -15
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +21 -8
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp.d.ts +38 -0
- package/dist/src/mcp.d.ts.map +1 -1
- package/dist/src/mcp.js +23 -6
- package/dist/src/mcp.js.map +1 -1
- package/dist/src/mime.d.ts +24 -0
- package/dist/src/mime.d.ts.map +1 -0
- package/dist/src/mime.js +82 -0
- package/dist/src/mime.js.map +1 -0
- package/dist/src/models/__tests__/anthropic.test.js +78 -1
- package/dist/src/models/__tests__/anthropic.test.js.map +1 -1
- package/dist/src/models/__tests__/bedrock.test.js +2050 -131
- package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
- package/dist/src/models/__tests__/gemini.test.js +100 -1
- package/dist/src/models/__tests__/gemini.test.js.map +1 -1
- package/dist/src/models/__tests__/model.test.js +131 -0
- package/dist/src/models/__tests__/model.test.js.map +1 -1
- package/dist/src/models/__tests__/openai.test.js +184 -32
- package/dist/src/models/__tests__/openai.test.js.map +1 -1
- package/dist/src/models/__tests__/streaming.test.d.ts +2 -0
- package/dist/src/models/__tests__/streaming.test.d.ts.map +1 -0
- package/dist/src/models/__tests__/streaming.test.js +50 -0
- package/dist/src/models/__tests__/streaming.test.js.map +1 -0
- package/dist/src/models/anthropic.d.ts.map +1 -1
- package/dist/src/models/anthropic.js +6 -7
- package/dist/src/models/anthropic.js.map +1 -1
- package/dist/src/models/bedrock.d.ts +144 -11
- package/dist/src/models/bedrock.d.ts.map +1 -1
- package/dist/src/models/bedrock.js +416 -28
- package/dist/src/models/bedrock.js.map +1 -1
- package/dist/src/models/gemini/adapters.d.ts.map +1 -1
- package/dist/src/models/gemini/adapters.js +65 -14
- package/dist/src/models/gemini/adapters.js.map +1 -1
- package/dist/src/models/model.d.ts +18 -0
- package/dist/src/models/model.d.ts.map +1 -1
- package/dist/src/models/model.js +57 -11
- package/dist/src/models/model.js.map +1 -1
- package/dist/src/models/openai.d.ts +15 -0
- package/dist/src/models/openai.d.ts.map +1 -1
- package/dist/src/models/openai.js +108 -64
- package/dist/src/models/openai.js.map +1 -1
- package/dist/src/models/streaming.d.ts +88 -2
- package/dist/src/models/streaming.d.ts.map +1 -1
- package/dist/src/models/streaming.js +26 -0
- package/dist/src/models/streaming.js.map +1 -1
- package/dist/src/multiagent/__tests__/events.test.js +41 -8
- package/dist/src/multiagent/__tests__/events.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/graph.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/graph.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/graph.test.js +453 -0
- package/dist/src/multiagent/__tests__/graph.test.js.map +1 -0
- package/dist/src/multiagent/__tests__/nodes.test.js +34 -16
- package/dist/src/multiagent/__tests__/nodes.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/queue.test.js +22 -0
- package/dist/src/multiagent/__tests__/queue.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/swarm.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/swarm.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/swarm.test.js +264 -0
- package/dist/src/multiagent/__tests__/swarm.test.js.map +1 -0
- package/dist/src/multiagent/edge.d.ts +9 -2
- package/dist/src/multiagent/edge.d.ts.map +1 -1
- package/dist/src/multiagent/events.d.ts +63 -15
- package/dist/src/multiagent/events.d.ts.map +1 -1
- package/dist/src/multiagent/events.js +28 -3
- package/dist/src/multiagent/events.js.map +1 -1
- package/dist/src/multiagent/graph.d.ts +135 -0
- package/dist/src/multiagent/graph.d.ts.map +1 -0
- package/dist/src/multiagent/graph.js +400 -0
- package/dist/src/multiagent/graph.js.map +1 -0
- package/dist/src/multiagent/index.d.ts +8 -3
- package/dist/src/multiagent/index.d.ts.map +1 -1
- package/dist/src/multiagent/index.js +3 -1
- package/dist/src/multiagent/index.js.map +1 -1
- package/dist/src/multiagent/multiagent.d.ts +41 -0
- package/dist/src/multiagent/multiagent.d.ts.map +1 -0
- package/dist/src/multiagent/multiagent.js +2 -0
- package/dist/src/multiagent/multiagent.js.map +1 -0
- package/dist/src/multiagent/nodes.d.ts +24 -25
- package/dist/src/multiagent/nodes.d.ts.map +1 -1
- package/dist/src/multiagent/nodes.js +42 -15
- package/dist/src/multiagent/nodes.js.map +1 -1
- package/dist/src/multiagent/plugins.d.ts +70 -0
- package/dist/src/multiagent/plugins.d.ts.map +1 -0
- package/dist/src/multiagent/plugins.js +70 -0
- package/dist/src/multiagent/plugins.js.map +1 -0
- package/dist/src/multiagent/queue.d.ts +6 -0
- package/dist/src/multiagent/queue.d.ts.map +1 -1
- package/dist/src/multiagent/queue.js +13 -0
- package/dist/src/multiagent/queue.js.map +1 -1
- package/dist/src/multiagent/state.d.ts +4 -2
- package/dist/src/multiagent/state.d.ts.map +1 -1
- package/dist/src/multiagent/state.js +5 -2
- package/dist/src/multiagent/state.js.map +1 -1
- package/dist/src/multiagent/swarm.d.ts +112 -0
- package/dist/src/multiagent/swarm.d.ts.map +1 -0
- package/dist/src/multiagent/swarm.js +256 -0
- package/dist/src/multiagent/swarm.js.map +1 -0
- package/dist/src/plugins/__tests__/plugin.test.d.ts +2 -0
- package/dist/src/plugins/__tests__/plugin.test.d.ts.map +1 -0
- package/dist/src/plugins/__tests__/plugin.test.js +114 -0
- package/dist/src/plugins/__tests__/plugin.test.js.map +1 -0
- package/dist/src/plugins/__tests__/registry.test.d.ts +2 -0
- package/dist/src/plugins/__tests__/registry.test.d.ts.map +1 -0
- package/dist/src/plugins/__tests__/registry.test.js +147 -0
- package/dist/src/plugins/__tests__/registry.test.js.map +1 -0
- package/dist/src/plugins/index.d.ts +30 -0
- package/dist/src/plugins/index.d.ts.map +1 -0
- package/dist/src/plugins/index.js +30 -0
- package/dist/src/plugins/index.js.map +1 -0
- package/dist/src/plugins/plugin.d.ts +74 -0
- package/dist/src/plugins/plugin.d.ts.map +1 -0
- package/dist/src/plugins/plugin.js +8 -0
- package/dist/src/plugins/plugin.js.map +1 -0
- package/dist/src/plugins/registry.d.ts +25 -0
- package/dist/src/plugins/registry.d.ts.map +1 -0
- package/dist/src/plugins/registry.js +41 -0
- package/dist/src/plugins/registry.js.map +1 -0
- package/dist/src/registry/__tests__/tool-registry.test.d.ts +2 -0
- package/dist/src/registry/__tests__/tool-registry.test.d.ts.map +1 -0
- package/dist/src/registry/__tests__/tool-registry.test.js +124 -0
- package/dist/src/registry/__tests__/tool-registry.test.js.map +1 -0
- package/dist/src/registry/tool-registry.d.ts +32 -20
- package/dist/src/registry/tool-registry.d.ts.map +1 -1
- package/dist/src/registry/tool-registry.js +60 -158
- package/dist/src/registry/tool-registry.js.map +1 -1
- package/dist/src/session/__tests__/file-storage.test.node.js +75 -15
- package/dist/src/session/__tests__/file-storage.test.node.js.map +1 -1
- package/dist/src/session/__tests__/s3-storage.test.d.ts +2 -0
- package/dist/src/session/__tests__/s3-storage.test.d.ts.map +1 -0
- package/dist/src/session/__tests__/{s3-storage.test.node.js → s3-storage.test.js} +161 -75
- package/dist/src/session/__tests__/s3-storage.test.js.map +1 -0
- package/dist/src/session/__tests__/session-manager.test.d.ts +2 -0
- package/dist/src/session/__tests__/session-manager.test.d.ts.map +1 -0
- package/dist/src/session/__tests__/session-manager.test.js +443 -0
- package/dist/src/session/__tests__/session-manager.test.js.map +1 -0
- package/dist/src/session/__tests__/validation.test.js +28 -1
- package/dist/src/session/__tests__/validation.test.js.map +1 -1
- package/dist/src/session/file-storage.d.ts +53 -27
- package/dist/src/session/file-storage.d.ts.map +1 -1
- package/dist/src/session/file-storage.js +103 -52
- package/dist/src/session/file-storage.js.map +1 -1
- package/dist/src/session/index.d.ts +6 -14
- package/dist/src/session/index.d.ts.map +1 -1
- package/dist/src/session/index.js +4 -13
- package/dist/src/session/index.js.map +1 -1
- package/dist/src/session/s3-storage.d.ts +49 -20
- package/dist/src/session/s3-storage.d.ts.map +1 -1
- package/dist/src/session/s3-storage.js +120 -35
- package/dist/src/session/s3-storage.js.map +1 -1
- package/dist/src/session/session-manager.d.ts +87 -0
- package/dist/src/session/session-manager.d.ts.map +1 -0
- package/dist/src/session/session-manager.js +128 -0
- package/dist/src/session/session-manager.js.map +1 -0
- package/dist/src/session/storage.d.ts +20 -12
- package/dist/src/session/storage.d.ts.map +1 -1
- package/dist/src/session/types.d.ts +8 -20
- package/dist/src/session/types.d.ts.map +1 -1
- package/dist/src/session/validation.d.ts +7 -0
- package/dist/src/session/validation.d.ts.map +1 -1
- package/dist/src/session/validation.js +12 -0
- package/dist/src/session/validation.js.map +1 -1
- package/dist/src/{app-state.d.ts → state-store.d.ts} +11 -11
- package/dist/src/state-store.d.ts.map +1 -0
- package/dist/src/{app-state.js → state-store.js} +8 -7
- package/dist/src/state-store.js.map +1 -0
- package/dist/src/structured-output/__tests__/context.test.js +13 -13
- package/dist/src/structured-output/__tests__/context.test.js.map +1 -1
- package/dist/src/structured-output/context.js +1 -1
- package/dist/src/structured-output/context.js.map +1 -1
- package/dist/src/telemetry/__tests__/config.test.d.ts +2 -0
- package/dist/src/telemetry/__tests__/config.test.d.ts.map +1 -0
- package/dist/src/telemetry/__tests__/config.test.js +64 -0
- package/dist/src/telemetry/__tests__/config.test.js.map +1 -0
- package/dist/src/telemetry/__tests__/config.test.node.js +66 -36
- package/dist/src/telemetry/__tests__/config.test.node.js.map +1 -1
- package/dist/src/telemetry/__tests__/meter.test.d.ts +2 -0
- package/dist/src/telemetry/__tests__/meter.test.d.ts.map +1 -0
- package/dist/src/telemetry/__tests__/meter.test.js +624 -0
- package/dist/src/telemetry/__tests__/meter.test.js.map +1 -0
- package/dist/src/telemetry/__tests__/tracer.test.node.js +123 -2
- package/dist/src/telemetry/__tests__/tracer.test.node.js.map +1 -1
- package/dist/src/telemetry/config.d.ts +104 -23
- package/dist/src/telemetry/config.d.ts.map +1 -1
- package/dist/src/telemetry/config.js +152 -43
- package/dist/src/telemetry/config.js.map +1 -1
- package/dist/src/telemetry/index.d.ts +10 -7
- package/dist/src/telemetry/index.d.ts.map +1 -1
- package/dist/src/telemetry/index.js +9 -6
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/meter.d.ts +296 -0
- package/dist/src/telemetry/meter.d.ts.map +1 -0
- package/dist/src/telemetry/meter.js +365 -0
- package/dist/src/telemetry/meter.js.map +1 -0
- package/dist/src/telemetry/tracer.d.ts +27 -0
- package/dist/src/telemetry/tracer.d.ts.map +1 -1
- package/dist/src/telemetry/tracer.js +79 -4
- package/dist/src/telemetry/tracer.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +2 -0
- package/dist/src/telemetry/types.d.ts.map +1 -1
- package/dist/src/telemetry/utils.d.ts +10 -0
- package/dist/src/telemetry/utils.d.ts.map +1 -0
- package/dist/src/telemetry/utils.js +13 -0
- package/dist/src/telemetry/utils.js.map +1 -0
- package/dist/src/tools/__tests__/tool-factory.test.d.ts +2 -0
- package/dist/src/tools/__tests__/tool-factory.test.d.ts.map +1 -0
- package/dist/src/tools/__tests__/tool-factory.test.js +98 -0
- package/dist/src/tools/__tests__/tool-factory.test.js.map +1 -0
- package/dist/src/tools/__tests__/tool.test.js +22 -1
- package/dist/src/tools/__tests__/tool.test.js.map +1 -1
- package/dist/src/tools/__tests__/zod-tool.test-d.js +1 -1
- package/dist/src/tools/__tests__/zod-tool.test-d.js.map +1 -1
- package/dist/src/tools/__tests__/zod-tool.test.js +3 -4
- package/dist/src/tools/__tests__/zod-tool.test.js.map +1 -1
- package/dist/src/tools/function-tool.d.ts +26 -3
- package/dist/src/tools/function-tool.d.ts.map +1 -1
- package/dist/src/tools/function-tool.js +88 -3
- package/dist/src/tools/function-tool.js.map +1 -1
- package/dist/src/tools/tool-factory.d.ts +22 -0
- package/dist/src/tools/tool-factory.d.ts.map +1 -0
- package/dist/src/tools/tool-factory.js +55 -0
- package/dist/src/tools/tool-factory.js.map +1 -0
- package/dist/src/tools/tool.d.ts +2 -2
- package/dist/src/tools/tool.d.ts.map +1 -1
- package/dist/src/tools/zod-tool.d.ts +55 -52
- package/dist/src/tools/zod-tool.d.ts.map +1 -1
- package/dist/src/tools/zod-tool.js +7 -61
- package/dist/src/tools/zod-tool.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/types/__tests__/agent.test.js +11 -0
- package/dist/src/types/__tests__/agent.test.js.map +1 -1
- package/dist/src/types/__tests__/citations.test.d.ts +2 -0
- package/dist/src/types/__tests__/citations.test.d.ts.map +1 -0
- package/dist/src/types/__tests__/citations.test.js +104 -0
- package/dist/src/types/__tests__/citations.test.js.map +1 -0
- package/dist/src/types/__tests__/media.test.js +22 -16
- package/dist/src/types/__tests__/media.test.js.map +1 -1
- package/dist/src/types/__tests__/messages.test.js +26 -0
- package/dist/src/types/__tests__/messages.test.js.map +1 -1
- package/dist/src/types/agent.d.ts +82 -7
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/agent.js +9 -0
- package/dist/src/types/agent.js.map +1 -1
- package/dist/src/types/citations.d.ts +180 -0
- package/dist/src/types/citations.d.ts.map +1 -0
- package/dist/src/types/citations.js +45 -0
- package/dist/src/types/citations.js.map +1 -0
- package/dist/src/types/media.d.ts +27 -30
- package/dist/src/types/media.d.ts.map +1 -1
- package/dist/src/types/media.js +15 -56
- package/dist/src/types/media.js.map +1 -1
- package/dist/src/types/messages.d.ts +23 -5
- package/dist/src/types/messages.d.ts.map +1 -1
- package/dist/src/types/messages.js +26 -26
- package/dist/src/types/messages.js.map +1 -1
- package/dist/src/types/serializable.d.ts +34 -4
- package/dist/src/types/serializable.d.ts.map +1 -1
- package/dist/src/types/serializable.js +31 -2
- package/dist/src/types/serializable.js.map +1 -1
- package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +5 -4
- package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +1 -1
- package/dist/src/vended-tools/bash/bash.d.ts.map +1 -1
- package/dist/src/vended-tools/bash/bash.js +1 -2
- package/dist/src/vended-tools/bash/bash.js.map +1 -1
- package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.d.ts.map +1 -0
- package/dist/src/vended-tools/{file_editor → file-editor}/__tests__/file-editor.test.node.js +11 -4
- package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js.map +1 -0
- package/dist/src/vended-tools/{file_editor → file-editor}/file-editor.d.ts +1 -1
- package/dist/src/vended-tools/{file_editor → file-editor}/file-editor.d.ts.map +1 -1
- package/dist/src/vended-tools/{file_editor → file-editor}/file-editor.js +3 -3
- package/dist/src/vended-tools/{file_editor → file-editor}/file-editor.js.map +1 -1
- package/dist/src/vended-tools/{file_editor → file-editor}/index.d.ts.map +1 -1
- package/dist/src/vended-tools/file-editor/index.js.map +1 -0
- package/dist/src/vended-tools/{file_editor → file-editor}/types.d.ts.map +1 -1
- package/dist/src/vended-tools/file-editor/types.js.map +1 -0
- package/dist/src/vended-tools/http-request/__tests__/http-request.test.d.ts.map +1 -0
- package/dist/src/vended-tools/{http_request → http-request}/__tests__/http-request.test.js.map +1 -1
- package/dist/src/vended-tools/http-request/http-request.d.ts.map +1 -0
- package/dist/src/vended-tools/{http_request → http-request}/http-request.js +1 -2
- package/dist/src/vended-tools/http-request/http-request.js.map +1 -0
- package/dist/src/vended-tools/{http_request → http-request}/index.d.ts.map +1 -1
- package/dist/src/vended-tools/http-request/index.js.map +1 -0
- package/dist/src/vended-tools/{http_request → http-request}/types.d.ts.map +1 -1
- package/dist/src/vended-tools/http-request/types.js.map +1 -0
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +5 -4
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.js.map +1 -1
- package/dist/src/vended-tools/notebook/notebook.d.ts +1 -1
- package/dist/src/vended-tools/notebook/notebook.js +2 -2
- package/dist/src/vended-tools/notebook/notebook.js.map +1 -1
- package/package.json +66 -12
- package/dist/src/__fixtures__/mock-hook-provider.d.ts +0 -10
- package/dist/src/__fixtures__/mock-hook-provider.d.ts.map +0 -1
- package/dist/src/__fixtures__/mock-hook-provider.js.map +0 -1
- package/dist/src/__tests__/app-state.test.d.ts +0 -2
- package/dist/src/__tests__/app-state.test.d.ts.map +0 -1
- package/dist/src/__tests__/app-state.test.js.map +0 -1
- package/dist/src/app-state.d.ts.map +0 -1
- package/dist/src/app-state.js.map +0 -1
- package/dist/src/multiagent/base.d.ts +0 -25
- package/dist/src/multiagent/base.d.ts.map +0 -1
- package/dist/src/multiagent/base.js +0 -2
- package/dist/src/multiagent/base.js.map +0 -1
- package/dist/src/registry/registry.d.ts +0 -117
- package/dist/src/registry/registry.d.ts.map +0 -1
- package/dist/src/registry/registry.js +0 -298
- package/dist/src/registry/registry.js.map +0 -1
- package/dist/src/session/__tests__/s3-storage.test.node.d.ts +0 -2
- package/dist/src/session/__tests__/s3-storage.test.node.d.ts.map +0 -1
- package/dist/src/session/__tests__/s3-storage.test.node.js.map +0 -1
- package/dist/src/vended-tools/file_editor/__tests__/file-editor.test.node.d.ts.map +0 -1
- package/dist/src/vended-tools/file_editor/__tests__/file-editor.test.node.js.map +0 -1
- package/dist/src/vended-tools/file_editor/index.js.map +0 -1
- package/dist/src/vended-tools/file_editor/types.js.map +0 -1
- package/dist/src/vended-tools/http_request/__tests__/http-request.test.d.ts.map +0 -1
- package/dist/src/vended-tools/http_request/http-request.d.ts.map +0 -1
- package/dist/src/vended-tools/http_request/http-request.js.map +0 -1
- package/dist/src/vended-tools/http_request/index.js.map +0 -1
- package/dist/src/vended-tools/http_request/types.js.map +0 -1
- /package/dist/src/vended-tools/{file_editor → file-editor}/__tests__/file-editor.test.node.d.ts +0 -0
- /package/dist/src/vended-tools/{file_editor → file-editor}/index.d.ts +0 -0
- /package/dist/src/vended-tools/{file_editor → file-editor}/index.js +0 -0
- /package/dist/src/vended-tools/{file_editor → file-editor}/types.d.ts +0 -0
- /package/dist/src/vended-tools/{file_editor → file-editor}/types.js +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/__tests__/http-request.test.d.ts +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/__tests__/http-request.test.js +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/http-request.d.ts +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/index.d.ts +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/index.js +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/types.d.ts +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/types.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-storage.d.ts","sourceRoot":"","sources":["../../../src/session/file-storage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file-storage.d.ts","sourceRoot":"","sources":["../../../src/session/file-storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAW5D;;;;;;;;;;;GAWG;AACH,qBAAa,WAAY,YAAW,eAAe;IACjD,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IAEjC;;OAEG;gBACS,OAAO,EAAE,MAAM;IAI3B;;;OAGG;YACW,QAAQ;IAOtB;;;OAGG;YACW,cAAc;IAM5B;;;;OAIG;IACG,YAAY,CAAC,MAAM,EAAE;QACzB,QAAQ,EAAE,gBAAgB,CAAA;QAC1B,UAAU,EAAE,MAAM,CAAA;QAClB,QAAQ,EAAE,OAAO,CAAA;QACjB,QAAQ,EAAE,QAAQ,CAAA;KACnB,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjB;;;;OAIG;IACG,YAAY,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,gBAAgB,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAQzG;;;;;;OAMG;IACG,eAAe,CAAC,MAAM,EAAE;QAC5B,QAAQ,EAAE,gBAAgB,CAAA;QAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAwBrB;;;OAGG;IACG,aAAa,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUjE;;;OAGG;IACG,YAAY,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,gBAAgB,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAYrF;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,gBAAgB,CAAC;QAAC,QAAQ,EAAE,gBAAgB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrG;;;OAGG;YACW,UAAU;IAaxB;;;OAGG;YACW,SAAS;IAgBvB,iFAAiF;IACjF,OAAO,CAAC,oBAAoB;IAI5B,+EAA+E;YACjE,sBAAsB;IAIpC;;;OAGG;YACW,uBAAuB;CAQtC"}
|
|
@@ -1,112 +1,147 @@
|
|
|
1
|
-
import { promises as fs } from 'fs';
|
|
2
|
-
import { join, dirname } from 'path';
|
|
3
1
|
import { SessionError } from '../errors.js';
|
|
4
|
-
import { validateIdentifier } from './validation.js';
|
|
2
|
+
import { validateIdentifier, validateUuidV7 } from './validation.js';
|
|
5
3
|
const MANIFEST = 'manifest.json';
|
|
6
4
|
const SNAPSHOT_LATEST = 'snapshot_latest.json';
|
|
7
5
|
const IMMUTABLE_HISTORY = 'immutable_history';
|
|
8
|
-
const SNAPSHOT_REGEX = /snapshot_(\
|
|
6
|
+
const SNAPSHOT_REGEX = /snapshot_([\w-]+)\.json$/;
|
|
9
7
|
const SCHEMA_VERSION = '1.0';
|
|
10
|
-
const DEFAULT_SNAPSHOT_ID = '1';
|
|
11
8
|
/**
|
|
12
|
-
* File-based implementation of SnapshotStorage
|
|
9
|
+
* File-based implementation of SnapshotStorage.
|
|
10
|
+
* Persists session snapshots to the local filesystem under a configurable base directory.
|
|
11
|
+
*
|
|
12
|
+
* Directory layout:
|
|
13
|
+
* ```
|
|
14
|
+
* <baseDir>/<sessionId>/scopes/<scope>/<scopeId>/snapshots/
|
|
15
|
+
* snapshot_latest.json
|
|
16
|
+
* immutable_history/
|
|
17
|
+
* snapshot_<uuid7>.json
|
|
18
|
+
* ```
|
|
13
19
|
*/
|
|
14
20
|
export class FileStorage {
|
|
15
|
-
/**
|
|
21
|
+
/** Absolute path to the root directory where all session data is stored. */
|
|
16
22
|
_baseDir;
|
|
17
23
|
/**
|
|
18
|
-
*
|
|
19
|
-
* @param baseDir - Base directory path for storing snapshots
|
|
24
|
+
* @param baseDir - Absolute path to the root directory for storing session snapshots.
|
|
20
25
|
*/
|
|
21
26
|
constructor(baseDir) {
|
|
22
27
|
this._baseDir = baseDir;
|
|
23
28
|
}
|
|
24
29
|
/**
|
|
25
|
-
*
|
|
30
|
+
* Resolves the absolute file path for a given scope location and filename.
|
|
31
|
+
* Validates sessionId and scopeId before constructing the path.
|
|
26
32
|
*/
|
|
27
|
-
_getPath(location, filename) {
|
|
33
|
+
async _getPath(location, filename) {
|
|
34
|
+
const { join } = await import('path');
|
|
28
35
|
validateIdentifier(location.sessionId);
|
|
29
36
|
validateIdentifier(location.scopeId);
|
|
30
37
|
return join(this._baseDir, location.sessionId, 'scopes', location.scope, location.scopeId, 'snapshots', filename);
|
|
31
38
|
}
|
|
32
39
|
/**
|
|
33
|
-
*
|
|
40
|
+
* Resolves the absolute path to the root directory for a session.
|
|
41
|
+
* Used by deleteSession to remove all data under `<baseDir>/<sessionId>/`.
|
|
42
|
+
*/
|
|
43
|
+
async _getSessionDir(sessionId) {
|
|
44
|
+
const { join } = await import('path');
|
|
45
|
+
validateIdentifier(sessionId);
|
|
46
|
+
return join(this._baseDir, sessionId);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Persists a snapshot to disk.
|
|
50
|
+
* If `isLatest` is true, writes to `snapshot_latest.json` (overwriting any previous).
|
|
51
|
+
* Otherwise, writes to `immutable_history/snapshot_<snapshotId>.json`.
|
|
34
52
|
*/
|
|
35
53
|
async saveSnapshot(params) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
await this.
|
|
39
|
-
|
|
54
|
+
const path = params.isLatest
|
|
55
|
+
? await this._getLatestSnapshotPath(params.location)
|
|
56
|
+
: await this._getHistorySnapshotPath(params.location, params.snapshotId);
|
|
57
|
+
await this._writeJSON(path, params.snapshot);
|
|
40
58
|
}
|
|
41
59
|
/**
|
|
42
|
-
* Loads snapshot
|
|
60
|
+
* Loads a snapshot from disk.
|
|
61
|
+
* If `snapshotId` is omitted, loads `snapshot_latest.json`.
|
|
62
|
+
* Returns null if the file does not exist.
|
|
43
63
|
*/
|
|
44
64
|
async loadSnapshot(params) {
|
|
45
65
|
const path = params.snapshotId === undefined
|
|
46
|
-
? this._getLatestSnapshotPath(params.location)
|
|
47
|
-
: this._getHistorySnapshotPath(params.location, params.snapshotId);
|
|
66
|
+
? await this._getLatestSnapshotPath(params.location)
|
|
67
|
+
: await this._getHistorySnapshotPath(params.location, params.snapshotId);
|
|
48
68
|
return this._readJSON(path);
|
|
49
69
|
}
|
|
50
70
|
/**
|
|
51
|
-
*
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Lists all snapshot IDs for a session scope.
|
|
58
|
-
*
|
|
59
|
-
* TODO: Add pagination support for long-running agents with many snapshots.
|
|
60
|
-
* Future signature could be:
|
|
61
|
-
* ```typescript
|
|
62
|
-
* listSnapshots(params: {
|
|
63
|
-
* sessionId: string
|
|
64
|
-
* scope: Scope
|
|
65
|
-
* limit?: number // Max results to return (e.g., 100)
|
|
66
|
-
* startAfter?: string // Snapshot ID to start after (for cursor-based pagination)
|
|
67
|
-
* }): Promise<{ snapshotIds: string[]; nextToken?: string }>
|
|
68
|
-
* ```
|
|
71
|
+
* Lists immutable snapshot IDs for a scope, sorted chronologically.
|
|
72
|
+
* Since IDs are UUID v7, lexicographic sort equals chronological order.
|
|
73
|
+
* `startAfter` filters to IDs after the given UUID v7 (exclusive cursor).
|
|
74
|
+
* `limit` caps the number of returned IDs.
|
|
75
|
+
* Returns an empty array if no snapshots exist yet.
|
|
69
76
|
*/
|
|
70
77
|
async listSnapshotIds(params) {
|
|
71
|
-
|
|
78
|
+
if (params.limit !== undefined && params.limit <= 0)
|
|
79
|
+
return [];
|
|
80
|
+
if (params.startAfter)
|
|
81
|
+
validateUuidV7(params.startAfter);
|
|
82
|
+
const dirPath = await this._getPath(params.location, IMMUTABLE_HISTORY);
|
|
72
83
|
try {
|
|
84
|
+
const { promises: fs } = await import('fs');
|
|
73
85
|
const files = await fs.readdir(dirPath);
|
|
74
|
-
|
|
86
|
+
let ids = files
|
|
75
87
|
.map((file) => file.match(SNAPSHOT_REGEX)?.[1])
|
|
76
88
|
.filter((id) => id !== undefined)
|
|
77
|
-
.sort(
|
|
89
|
+
.sort();
|
|
90
|
+
if (params.startAfter) {
|
|
91
|
+
ids = ids.filter((id) => id > params.startAfter);
|
|
92
|
+
}
|
|
93
|
+
if (params.limit !== undefined) {
|
|
94
|
+
ids = ids.slice(0, params.limit);
|
|
95
|
+
}
|
|
96
|
+
return ids;
|
|
78
97
|
}
|
|
79
98
|
catch (error) {
|
|
80
|
-
if (this._isFileNotFoundError(error))
|
|
99
|
+
if (this._isFileNotFoundError(error))
|
|
81
100
|
return [];
|
|
82
|
-
}
|
|
83
101
|
throw new SessionError(`Failed to list snapshots for session ${params.location.sessionId}`, { cause: error });
|
|
84
102
|
}
|
|
85
103
|
}
|
|
86
104
|
/**
|
|
87
|
-
*
|
|
105
|
+
* Deletes all data for a session by removing its root directory (`<baseDir>/<sessionId>/`) recursively.
|
|
106
|
+
* No-ops if the session directory does not exist.
|
|
107
|
+
*/
|
|
108
|
+
async deleteSession(params) {
|
|
109
|
+
const sessionDir = await this._getSessionDir(params.sessionId);
|
|
110
|
+
try {
|
|
111
|
+
const { promises: fs } = await import('fs');
|
|
112
|
+
await fs.rm(sessionDir, { recursive: true, force: true });
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
throw new SessionError(`Failed to delete session ${params.sessionId}`, { cause: error });
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Loads the snapshot manifest for a scope.
|
|
120
|
+
* Returns a default manifest with the current timestamp if none exists yet.
|
|
88
121
|
*/
|
|
89
122
|
async loadManifest(params) {
|
|
90
|
-
const path = this._getPath(params.location, MANIFEST);
|
|
123
|
+
const path = await this._getPath(params.location, MANIFEST);
|
|
91
124
|
const manifest = await this._readJSON(path);
|
|
92
125
|
return (manifest ?? {
|
|
93
126
|
schemaVersion: SCHEMA_VERSION,
|
|
94
|
-
nextSnapshotId: DEFAULT_SNAPSHOT_ID,
|
|
95
127
|
updatedAt: new Date().toISOString(),
|
|
96
128
|
});
|
|
97
129
|
}
|
|
98
130
|
/**
|
|
99
|
-
*
|
|
131
|
+
* Persists the snapshot manifest for a scope to disk.
|
|
100
132
|
*/
|
|
101
133
|
async saveManifest(params) {
|
|
102
|
-
const path = this._getPath(params.location, MANIFEST);
|
|
134
|
+
const path = await this._getPath(params.location, MANIFEST);
|
|
103
135
|
await this._writeJSON(path, params.manifest);
|
|
104
136
|
}
|
|
105
137
|
/**
|
|
106
|
-
*
|
|
138
|
+
* Atomically writes JSON to a file using a `.tmp` intermediary to prevent partial writes.
|
|
139
|
+
* Creates parent directories if they do not exist.
|
|
107
140
|
*/
|
|
108
141
|
async _writeJSON(path, data) {
|
|
109
142
|
try {
|
|
143
|
+
const { promises: fs } = await import('fs');
|
|
144
|
+
const { dirname } = await import('path');
|
|
110
145
|
await fs.mkdir(dirname(path), { recursive: true });
|
|
111
146
|
const tmpPath = `${path}.tmp`;
|
|
112
147
|
await fs.writeFile(tmpPath, JSON.stringify(data, null, 2), 'utf8');
|
|
@@ -117,10 +152,12 @@ export class FileStorage {
|
|
|
117
152
|
}
|
|
118
153
|
}
|
|
119
154
|
/**
|
|
120
|
-
* Reads and parses JSON
|
|
155
|
+
* Reads and parses a JSON file. Returns null if the file does not exist.
|
|
156
|
+
* Throws SessionError on parse failure or unexpected filesystem errors.
|
|
121
157
|
*/
|
|
122
158
|
async _readJSON(path) {
|
|
123
159
|
try {
|
|
160
|
+
const { promises: fs } = await import('fs');
|
|
124
161
|
const content = await fs.readFile(path, 'utf8');
|
|
125
162
|
return JSON.parse(content);
|
|
126
163
|
}
|
|
@@ -134,11 +171,25 @@ export class FileStorage {
|
|
|
134
171
|
throw new SessionError(`File system error reading ${path}`, { cause: error });
|
|
135
172
|
}
|
|
136
173
|
}
|
|
137
|
-
|
|
174
|
+
/** Returns true if the error represents a missing file or directory (ENOENT). */
|
|
175
|
+
_isFileNotFoundError(error) {
|
|
176
|
+
return error !== null && typeof error === 'object' && 'code' in error && error.code === 'ENOENT';
|
|
177
|
+
}
|
|
178
|
+
/** Returns the file path for `snapshot_latest.json` within the given scope. */
|
|
179
|
+
async _getLatestSnapshotPath(location) {
|
|
138
180
|
return this._getPath(location, SNAPSHOT_LATEST);
|
|
139
181
|
}
|
|
140
|
-
|
|
141
|
-
|
|
182
|
+
/**
|
|
183
|
+
* Returns the file path for an immutable snapshot in `immutable_history/`.
|
|
184
|
+
* Validates the snapshotId and guards against path traversal outside `_baseDir`.
|
|
185
|
+
*/
|
|
186
|
+
async _getHistorySnapshotPath(location, snapshotId) {
|
|
187
|
+
validateIdentifier(snapshotId);
|
|
188
|
+
const resolved = await this._getPath(location, `${IMMUTABLE_HISTORY}/snapshot_${snapshotId}.json`);
|
|
189
|
+
if (!resolved.startsWith(this._baseDir)) {
|
|
190
|
+
throw new SessionError(`Invalid snapshotId '${snapshotId}': resolves outside storage directory`);
|
|
191
|
+
}
|
|
192
|
+
return resolved;
|
|
142
193
|
}
|
|
143
194
|
}
|
|
144
195
|
//# sourceMappingURL=file-storage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-storage.js","sourceRoot":"","sources":["../../../src/session/file-storage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file-storage.js","sourceRoot":"","sources":["../../../src/session/file-storage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEpE,MAAM,QAAQ,GAAG,eAAe,CAAA;AAChC,MAAM,eAAe,GAAG,sBAAsB,CAAA;AAC9C,MAAM,iBAAiB,GAAG,mBAAmB,CAAA;AAC7C,MAAM,cAAc,GAAG,0BAA0B,CAAA;AACjD,MAAM,cAAc,GAAG,KAAK,CAAA;AAE5B;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,WAAW;IACtB,4EAA4E;IAC3D,QAAQ,CAAQ;IAEjC;;OAEG;IACH,YAAY,OAAe;QACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;IACzB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,QAAQ,CAAC,QAA0B,EAAE,QAAgB;QACjE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAA;QACrC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QACtC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;IACnH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,cAAc,CAAC,SAAiB;QAC5C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAA;QACrC,kBAAkB,CAAC,SAAS,CAAC,CAAA;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;IACvC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,MAKlB;QACC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ;YAC1B,CAAC,CAAC,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC;YACpD,CAAC,CAAC,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;QAC1E,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC9C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,MAA2D;QAC5E,MAAM,IAAI,GACR,MAAM,CAAC,UAAU,KAAK,SAAS;YAC7B,CAAC,CAAC,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC;YACpD,CAAC,CAAC,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;QAC5E,OAAO,IAAI,CAAC,SAAS,CAAW,IAAI,CAAC,CAAA;IACvC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,eAAe,CAAC,MAIrB;QACC,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC;YAAE,OAAO,EAAE,CAAA;QAC9D,IAAI,MAAM,CAAC,UAAU;YAAE,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACxD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAA;QACvE,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAA;YAC3C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YACvC,IAAI,GAAG,GAAG,KAAK;iBACZ,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;iBAC9C,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC;iBAC9C,IAAI,EAAE,CAAA;YACT,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,UAAW,CAAC,CAAA;YACnD,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;YAClC,CAAC;YACD,OAAO,GAAG,CAAA;QACZ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAA;YAC/C,MAAM,IAAI,YAAY,CAAC,wCAAwC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;QAC/G,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,MAA6B;QAC/C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC9D,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAA;YAC3C,MAAM,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3D,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,IAAI,YAAY,CAAC,4BAA4B,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;QAC1F,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,MAAsC;QACvD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAC3D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAmB,IAAI,CAAC,CAAA;QAE7D,OAAO,CACL,QAAQ,IAAI;YACV,aAAa,EAAE,cAAc;YAC7B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CACF,CAAA;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,MAAkE;QACnF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAC3D,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC9C,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,IAAa;QAClD,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAA;YAC3C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAA;YACxC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAClD,MAAM,OAAO,GAAG,GAAG,IAAI,MAAM,CAAA;YAC7B,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;YAClE,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAChC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,IAAI,YAAY,CAAC,wBAAwB,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;QAC1E,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,SAAS,CAAI,IAAY;QACrC,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAA;YAC3C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC5B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAO,IAAI,CAAA;YACb,CAAC;YACD,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;gBACjC,MAAM,IAAI,YAAY,CAAC,wBAAwB,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;YAC1E,CAAC;YACD,MAAM,IAAI,YAAY,CAAC,6BAA6B,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;QAC/E,CAAC;IACH,CAAC;IAED,iFAAiF;IACzE,oBAAoB,CAAC,KAAc;QACzC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAA;IAClG,CAAC;IAED,+EAA+E;IACvE,KAAK,CAAC,sBAAsB,CAAC,QAA0B;QAC7D,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAA;IACjD,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,uBAAuB,CAAC,QAA0B,EAAE,UAAkB;QAClF,kBAAkB,CAAC,UAAU,CAAC,CAAA;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,iBAAiB,aAAa,UAAU,OAAO,CAAC,CAAA;QAClG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,YAAY,CAAC,uBAAuB,UAAU,uCAAuC,CAAC,CAAA;QAClG,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF"}
|
|
@@ -1,19 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Session management module
|
|
3
|
-
*
|
|
4
|
-
* Provides snapshot-based session management with pluggable storage backends.
|
|
5
|
-
* Supports conversation history, state persistence, and branching.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```typescript
|
|
9
|
-
* import { FileStorage, SnapshotStorage } from '@strands/agents/session'
|
|
10
|
-
*
|
|
11
|
-
* const storage = new FileStorage('./sessions')
|
|
12
|
-
* await storage.saveSnapshot({ sessionId, scope, isLatest: true, snapshot })
|
|
13
|
-
* ```
|
|
2
|
+
* Session management module re-exports.
|
|
3
|
+
* These are exported from the main `@strands-agents/sdk` entry point.
|
|
14
4
|
*/
|
|
15
|
-
export
|
|
5
|
+
export { SessionManager } from './session-manager.js';
|
|
6
|
+
export type { SessionManagerConfig, SaveLatestStrategy } from './session-manager.js';
|
|
7
|
+
export type { SnapshotManifest, SnapshotTriggerCallback, SnapshotTriggerParams } from './types.js';
|
|
16
8
|
export type { SessionStorage, SnapshotStorage, SnapshotLocation } from './storage.js';
|
|
17
9
|
export { FileStorage } from './file-storage.js';
|
|
18
|
-
export {
|
|
10
|
+
export type { Scope, Snapshot } from '../agent/snapshot.js';
|
|
19
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/session/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/session/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACpF,YAAY,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAGlG,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAGrF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA"}
|
|
@@ -1,18 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Session management module
|
|
3
|
-
*
|
|
4
|
-
* Provides snapshot-based session management with pluggable storage backends.
|
|
5
|
-
* Supports conversation history, state persistence, and branching.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```typescript
|
|
9
|
-
* import { FileStorage, SnapshotStorage } from '@strands/agents/session'
|
|
10
|
-
*
|
|
11
|
-
* const storage = new FileStorage('./sessions')
|
|
12
|
-
* await storage.saveSnapshot({ sessionId, scope, isLatest: true, snapshot })
|
|
13
|
-
* ```
|
|
2
|
+
* Session management module re-exports.
|
|
3
|
+
* These are exported from the main `@strands-agents/sdk` entry point.
|
|
14
4
|
*/
|
|
5
|
+
// Core types
|
|
6
|
+
export { SessionManager } from './session-manager.js';
|
|
15
7
|
// Storage implementations
|
|
16
8
|
export { FileStorage } from './file-storage.js';
|
|
17
|
-
export { S3Storage } from './s3-storage.js';
|
|
18
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/session/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/session/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAOrD,0BAA0B;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA"}
|
|
@@ -15,7 +15,16 @@ export type S3StorageConfig = {
|
|
|
15
15
|
s3Client?: S3Client;
|
|
16
16
|
};
|
|
17
17
|
/**
|
|
18
|
-
* S3-based implementation of SnapshotStorage
|
|
18
|
+
* S3-based implementation of SnapshotStorage.
|
|
19
|
+
* Persists session snapshots as JSON objects in an S3 bucket.
|
|
20
|
+
*
|
|
21
|
+
* Object key layout:
|
|
22
|
+
* ```
|
|
23
|
+
* [<prefix>/]<sessionId>/scopes/<scope>/<scopeId>/snapshots/
|
|
24
|
+
* snapshot_latest.json
|
|
25
|
+
* immutable_history/
|
|
26
|
+
* snapshot_<uuid7>.json
|
|
27
|
+
* ```
|
|
19
28
|
*/
|
|
20
29
|
export declare class S3Storage implements SnapshotStorage {
|
|
21
30
|
/** S3 client instance */
|
|
@@ -30,11 +39,19 @@ export declare class S3Storage implements SnapshotStorage {
|
|
|
30
39
|
*/
|
|
31
40
|
constructor(config: S3StorageConfig);
|
|
32
41
|
/**
|
|
33
|
-
*
|
|
42
|
+
* Resolves the full S3 object key for a given scope location and path.
|
|
43
|
+
* Validates sessionId and scopeId before constructing the key.
|
|
34
44
|
*/
|
|
35
45
|
private _getKey;
|
|
36
46
|
/**
|
|
37
|
-
*
|
|
47
|
+
* Resolves the S3 key prefix for an entire session (`[<prefix>/]<sessionId>/`).
|
|
48
|
+
* Used by deleteSession to list and remove all objects under the session.
|
|
49
|
+
*/
|
|
50
|
+
private _getSessionPrefix;
|
|
51
|
+
/**
|
|
52
|
+
* Persists a snapshot to S3.
|
|
53
|
+
* If `isLatest` is true, writes to `snapshot_latest.json` (overwriting any previous).
|
|
54
|
+
* Otherwise, writes to `immutable_history/snapshot_<snapshotId>.json`.
|
|
38
55
|
*/
|
|
39
56
|
saveSnapshot(params: {
|
|
40
57
|
location: SnapshotLocation;
|
|
@@ -43,51 +60,63 @@ export declare class S3Storage implements SnapshotStorage {
|
|
|
43
60
|
snapshot: Snapshot;
|
|
44
61
|
}): Promise<void>;
|
|
45
62
|
/**
|
|
46
|
-
* Loads snapshot
|
|
63
|
+
* Loads a snapshot from S3.
|
|
64
|
+
* If `snapshotId` is omitted, loads `snapshot_latest.json`.
|
|
65
|
+
* Returns null if the object does not exist.
|
|
47
66
|
*/
|
|
48
67
|
loadSnapshot(params: {
|
|
49
68
|
location: SnapshotLocation;
|
|
50
69
|
snapshotId?: string;
|
|
51
70
|
}): Promise<Snapshot | null>;
|
|
52
71
|
/**
|
|
53
|
-
* Lists
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
* listSnapshots(params: {
|
|
59
|
-
* sessionId: string
|
|
60
|
-
* scope: Scope
|
|
61
|
-
* limit?: number // Max results to return (e.g., 100)
|
|
62
|
-
* startAfter?: string // Snapshot ID to start after (for cursor-based pagination)
|
|
63
|
-
* }): Promise<{ snapshotIds: string[]; nextToken?: string }>
|
|
64
|
-
* ```
|
|
72
|
+
* Lists immutable snapshot IDs for a scope, sorted chronologically.
|
|
73
|
+
* Since IDs are UUID v7, lexicographic sort equals chronological order.
|
|
74
|
+
* Pushes `startAfter` and `limit` down to S3 via `StartAfter` and `MaxKeys`
|
|
75
|
+
* to avoid fetching unnecessary objects.
|
|
76
|
+
* Returns an empty array if no snapshots exist yet.
|
|
65
77
|
*/
|
|
66
78
|
listSnapshotIds(params: {
|
|
67
79
|
location: SnapshotLocation;
|
|
80
|
+
limit?: number;
|
|
81
|
+
startAfter?: string;
|
|
68
82
|
}): Promise<string[]>;
|
|
69
83
|
/**
|
|
70
|
-
*
|
|
84
|
+
* Deletes all S3 objects belonging to a session by listing and batch-deleting
|
|
85
|
+
* everything under `[<prefix>/]<sessionId>/`.
|
|
86
|
+
* Handles buckets with more than 1000 objects via continuation token pagination.
|
|
87
|
+
* No-ops if the session has no objects.
|
|
88
|
+
*/
|
|
89
|
+
deleteSession(params: {
|
|
90
|
+
sessionId: string;
|
|
91
|
+
}): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* Loads the snapshot manifest for a scope from S3.
|
|
94
|
+
* Returns a default manifest with the current timestamp if none exists yet.
|
|
71
95
|
*/
|
|
72
96
|
loadManifest(params: {
|
|
73
97
|
location: SnapshotLocation;
|
|
74
98
|
}): Promise<SnapshotManifest>;
|
|
75
99
|
/**
|
|
76
|
-
*
|
|
100
|
+
* Persists the snapshot manifest for a scope to S3.
|
|
77
101
|
*/
|
|
78
102
|
saveManifest(params: {
|
|
79
103
|
location: SnapshotLocation;
|
|
80
104
|
manifest: SnapshotManifest;
|
|
81
105
|
}): Promise<void>;
|
|
82
106
|
/**
|
|
83
|
-
*
|
|
107
|
+
* Serializes data as JSON and writes it to S3 with `application/json` content type.
|
|
84
108
|
*/
|
|
85
109
|
private _writeJSON;
|
|
86
110
|
/**
|
|
87
|
-
* Reads and parses JSON from S3
|
|
111
|
+
* Reads and parses a JSON object from S3. Returns null if the object does not exist.
|
|
112
|
+
* Throws SessionError on parse failure or unexpected S3 errors.
|
|
88
113
|
*/
|
|
89
114
|
private _readJSON;
|
|
115
|
+
/** Returns true if the error represents a missing S3 object (`NoSuchKey`) or bucket (`NoSuchBucket`). */
|
|
116
|
+
private _isNotFoundError;
|
|
117
|
+
/** Returns the S3 key for `snapshot_latest.json` within the given scope. */
|
|
90
118
|
private _getLatestSnapshotKey;
|
|
119
|
+
/** Returns the S3 key for an immutable snapshot in `immutable_history/`. Validates the snapshotId before constructing the key. */
|
|
91
120
|
private _getHistorySnapshotKey;
|
|
92
121
|
}
|
|
93
122
|
//# sourceMappingURL=s3-storage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3-storage.d.ts","sourceRoot":"","sources":["../../../src/session/s3-storage.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"s3-storage.d.ts","sourceRoot":"","sources":["../../../src/session/s3-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAKT,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAW5D;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB,CAAA;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,SAAU,YAAW,eAAe;IAC/C,yBAAyB;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;IAC9B,qBAAqB;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,iCAAiC;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC;;;OAGG;gBACS,MAAM,EAAE,eAAe;IAUnC;;;OAGG;IACH,OAAO,CAAC,OAAO;IAOf;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;;;OAIG;IACG,YAAY,CAAC,MAAM,EAAE;QACzB,QAAQ,EAAE,gBAAgB,CAAA;QAC1B,UAAU,EAAE,MAAM,CAAA;QAClB,QAAQ,EAAE,OAAO,CAAA;QACjB,QAAQ,EAAE,QAAQ,CAAA;KACnB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjB;;;;OAIG;IACG,YAAY,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,gBAAgB,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAQzG;;;;;;OAMG;IACG,eAAe,CAAC,MAAM,EAAE;QAC5B,QAAQ,EAAE,gBAAgB,CAAA;QAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA4CrB;;;;;OAKG;IACG,aAAa,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBjE;;;OAGG;IACG,YAAY,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,gBAAgB,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAYrF;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,gBAAgB,CAAC;QAAC,QAAQ,EAAE,gBAAgB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrG;;OAEG;YACW,UAAU;IAexB;;;OAGG;YACW,SAAS;IAiBvB,yGAAyG;IACzG,OAAO,CAAC,gBAAgB;IAUxB,4EAA4E;IAC5E,OAAO,CAAC,qBAAqB;IAI7B,kIAAkI;IAClI,OAAO,CAAC,sBAAsB;CAI/B"}
|