@dexto/core 1.7.1 → 1.8.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/dist/agent/DextoAgent.cjs +157 -62
- package/dist/agent/DextoAgent.d.ts +71 -17
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +161 -63
- package/dist/agent/agent-options.d.ts +6 -10
- package/dist/agent/agent-options.d.ts.map +1 -1
- package/dist/agent/agentCard.js +1 -1
- package/dist/agent/error-codes.js +1 -1
- package/dist/agent/errors.js +1 -1
- package/dist/agent/index.d.ts +1 -0
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +1 -1
- package/dist/agent/schemas.d.ts +2 -2
- package/dist/agent/schemas.js +1 -1
- package/dist/agent/state-manager.js +1 -1
- package/dist/approval/error-codes.cjs +1 -1
- package/dist/approval/error-codes.d.ts +1 -1
- package/dist/approval/error-codes.d.ts.map +1 -1
- package/dist/approval/error-codes.js +2 -2
- package/dist/approval/errors.cjs +2 -5
- package/dist/approval/errors.d.ts.map +1 -1
- package/dist/approval/errors.js +3 -6
- package/dist/approval/factory.cjs +19 -4
- package/dist/approval/factory.d.ts +4 -1
- package/dist/approval/factory.d.ts.map +1 -1
- package/dist/approval/factory.js +19 -5
- package/dist/approval/index.d.ts +1 -1
- package/dist/approval/index.d.ts.map +1 -1
- package/dist/approval/index.js +1 -1
- package/dist/approval/manager.cjs +168 -26
- package/dist/approval/manager.d.ts +46 -12
- package/dist/approval/manager.d.ts.map +1 -1
- package/dist/approval/manager.js +177 -29
- package/dist/approval/schemas.cjs +26 -26
- package/dist/approval/schemas.d.ts +29 -29
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +23 -23
- package/dist/approval/types.cjs +5 -5
- package/dist/approval/types.d.ts +18 -18
- package/dist/approval/types.d.ts.map +1 -1
- package/dist/approval/types.js +6 -6
- package/dist/{chunk-PTJYTZNU.js → chunk-C6A6W6XS.js} +1 -44
- package/dist/config/index.cjs +75 -0
- package/dist/config/index.d.ts +15 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +50 -0
- package/dist/context/compaction/overflow.js +1 -1
- package/dist/context/compaction/strategies/noop.js +1 -1
- package/dist/context/compaction/strategies/reactive-overflow-compaction.js +1 -1
- package/dist/context/content-clone.cjs +131 -0
- package/dist/context/content-clone.d.ts +7 -0
- package/dist/context/content-clone.d.ts.map +1 -0
- package/dist/context/content-clone.js +104 -0
- package/dist/context/error-codes.js +1 -1
- package/dist/context/errors.js +1 -1
- package/dist/context/index.cjs +2 -0
- package/dist/context/index.d.ts +1 -0
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +2 -1
- package/dist/context/manager.cjs +47 -35
- package/dist/context/manager.d.ts +7 -7
- package/dist/context/manager.d.ts.map +1 -1
- package/dist/context/manager.js +48 -36
- package/dist/context/media-helpers.js +1 -1
- package/dist/context/schemas.cjs +77 -0
- package/dist/context/schemas.d.ts +5 -0
- package/dist/context/schemas.d.ts.map +1 -0
- package/dist/context/schemas.js +53 -0
- package/dist/context/types.js +1 -1
- package/dist/context/utils.cjs +70 -69
- package/dist/context/utils.d.ts +3 -3
- package/dist/context/utils.d.ts.map +1 -1
- package/dist/context/utils.js +71 -70
- package/dist/errors/DextoBaseError.js +1 -1
- package/dist/errors/DextoRuntimeError.js +1 -1
- package/dist/errors/DextoValidationError.js +1 -1
- package/dist/errors/index.js +1 -1
- package/dist/errors/result-bridge.js +1 -1
- package/dist/errors/types.js +1 -1
- package/dist/events/index.cjs +9 -1
- package/dist/events/index.d.ts +20 -8
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +10 -2
- package/dist/hooks/builtins/content-policy.js +1 -1
- package/dist/hooks/builtins/response-sanitizer.js +1 -1
- package/dist/hooks/error-codes.js +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/manager.cjs +1 -1
- package/dist/hooks/manager.d.ts +2 -2
- package/dist/hooks/manager.d.ts.map +1 -1
- package/dist/hooks/manager.js +2 -2
- package/dist/hooks/types.d.ts +2 -2
- package/dist/hooks/types.d.ts.map +1 -1
- package/dist/index.browser.js +1 -1
- package/dist/index.cjs +2 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/llm/curation-config.js +1 -1
- package/dist/llm/curation.js +1 -1
- package/dist/llm/error-codes.js +1 -1
- package/dist/llm/errors.js +1 -1
- package/dist/llm/executor/index.cjs +32 -0
- package/dist/llm/executor/index.d.ts +2 -0
- package/dist/llm/executor/index.d.ts.map +1 -0
- package/dist/llm/executor/index.js +11 -0
- package/dist/llm/executor/provider-options.js +1 -1
- package/dist/llm/executor/stream-processor.cjs +28 -139
- package/dist/llm/executor/stream-processor.d.ts +2 -13
- package/dist/llm/executor/stream-processor.d.ts.map +1 -1
- package/dist/llm/executor/stream-processor.js +29 -140
- package/dist/{session/history/memory.cjs → llm/executor/tool-definitions.cjs} +21 -33
- package/dist/llm/executor/tool-definitions.d.ts +4 -0
- package/dist/llm/executor/tool-definitions.d.ts.map +1 -0
- package/dist/llm/executor/tool-definitions.js +22 -0
- package/dist/llm/executor/tool-output-truncator.js +1 -1
- package/dist/llm/executor/turn-executor.cjs +1093 -458
- package/dist/llm/executor/turn-executor.d.ts +269 -43
- package/dist/llm/executor/turn-executor.d.ts.map +1 -1
- package/dist/llm/executor/turn-executor.js +1079 -405
- package/dist/llm/executor/types.d.ts +6 -0
- package/dist/llm/executor/types.d.ts.map +1 -1
- package/dist/llm/formatters/vercel.js +1 -1
- package/dist/llm/index.cjs +2 -0
- package/dist/llm/index.d.ts +1 -0
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +2 -1
- package/dist/llm/providers/codex-app-server.cjs +22 -2
- package/dist/llm/providers/codex-app-server.d.ts.map +1 -1
- package/dist/llm/providers/codex-app-server.js +23 -3
- package/dist/llm/providers/codex-base-url.js +1 -1
- package/dist/llm/providers/local/ai-sdk-adapter.js +1 -1
- package/dist/llm/providers/local/downloader.js +1 -1
- package/dist/llm/providers/local/error-codes.js +1 -1
- package/dist/llm/providers/local/errors.js +1 -1
- package/dist/llm/providers/local/gpu-detector.js +1 -1
- package/dist/llm/providers/local/index.js +1 -1
- package/dist/llm/providers/local/node-llama-provider.js +1 -1
- package/dist/llm/providers/local/ollama-provider.js +1 -1
- package/dist/llm/providers/local/registry.js +1 -1
- package/dist/llm/providers/local/schemas.js +1 -1
- package/dist/llm/providers/openrouter-model-registry.js +1 -1
- package/dist/llm/reasoning/anthropic-betas.js +1 -1
- package/dist/llm/reasoning/anthropic-thinking.js +1 -1
- package/dist/llm/reasoning/openai-reasoning-effort.js +1 -1
- package/dist/llm/reasoning/profile.js +1 -1
- package/dist/llm/reasoning/profiles/anthropic.js +1 -1
- package/dist/llm/reasoning/profiles/bedrock.js +1 -1
- package/dist/llm/reasoning/profiles/google.js +1 -1
- package/dist/llm/reasoning/profiles/openai-compatible.js +1 -1
- package/dist/llm/reasoning/profiles/openai.js +1 -1
- package/dist/llm/reasoning/profiles/openrouter.js +1 -1
- package/dist/llm/reasoning/profiles/shared.js +1 -1
- package/dist/llm/reasoning/profiles/vertex.js +1 -1
- package/dist/llm/registry/auto-update.js +1 -1
- package/dist/llm/registry/index.js +1 -1
- package/dist/llm/registry/models.generated.js +1 -1
- package/dist/llm/registry/models.manual.js +1 -1
- package/dist/llm/registry/sync.js +1 -1
- package/dist/llm/resolver.js +1 -1
- package/dist/llm/schemas.js +1 -1
- package/dist/llm/services/factory.cjs +5 -4
- package/dist/llm/services/factory.d.ts +3 -3
- package/dist/llm/services/factory.d.ts.map +1 -1
- package/dist/llm/services/factory.js +6 -5
- package/dist/llm/services/types.d.ts +10 -1
- package/dist/llm/services/types.d.ts.map +1 -1
- package/dist/llm/services/vercel.cjs +23 -8
- package/dist/llm/services/vercel.d.ts +11 -7
- package/dist/llm/services/vercel.d.ts.map +1 -1
- package/dist/llm/services/vercel.js +24 -9
- package/dist/llm/types.js +1 -1
- package/dist/llm/usage-metadata.cjs +20 -3
- package/dist/llm/usage-metadata.d.ts +1 -0
- package/dist/llm/usage-metadata.d.ts.map +1 -1
- package/dist/llm/usage-metadata.js +19 -3
- package/dist/llm/usage-scope.js +1 -1
- package/dist/llm/usage-summary.js +1 -1
- package/dist/llm/validation.js +1 -1
- package/dist/logger/browser.js +1 -1
- package/dist/logger/default-logger-factory.js +1 -1
- package/dist/logger/factory.js +1 -1
- package/dist/logger/index.js +1 -1
- package/dist/logger/logger.js +1 -1
- package/dist/logger/v2/dexto-logger.js +1 -1
- package/dist/logger/v2/error-codes.js +1 -1
- package/dist/logger/v2/errors.js +1 -1
- package/dist/logger/v2/schemas.js +1 -1
- package/dist/logger/v2/test-utils.js +1 -1
- package/dist/logger/v2/transport-factory.js +1 -1
- package/dist/logger/v2/transports/console-transport.js +1 -1
- package/dist/logger/v2/transports/file-transport.js +1 -1
- package/dist/logger/v2/transports/silent-transport.js +1 -1
- package/dist/logger/v2/types.js +1 -1
- package/dist/mcp/bundled-config.js +1 -1
- package/dist/mcp/error-codes.js +1 -1
- package/dist/mcp/errors.js +1 -1
- package/dist/mcp/index.js +1 -1
- package/dist/mcp/manager.js +1 -1
- package/dist/mcp/mcp-client.js +1 -1
- package/dist/mcp/resolver.js +1 -1
- package/dist/mcp/schemas.js +1 -1
- package/dist/memory/error-codes.js +1 -1
- package/dist/memory/errors.js +1 -1
- package/dist/memory/index.js +1 -1
- package/dist/memory/manager.cjs +7 -27
- package/dist/memory/manager.d.ts +4 -12
- package/dist/memory/manager.d.ts.map +1 -1
- package/dist/memory/manager.js +8 -28
- package/dist/memory/schemas.js +1 -1
- package/dist/prompts/error-codes.js +1 -1
- package/dist/prompts/errors.js +1 -1
- package/dist/prompts/index.js +1 -1
- package/dist/prompts/name-validation.js +1 -1
- package/dist/prompts/prompt-manager.cjs +9 -38
- package/dist/prompts/prompt-manager.d.ts +2 -10
- package/dist/prompts/prompt-manager.d.ts.map +1 -1
- package/dist/prompts/prompt-manager.js +10 -39
- package/dist/prompts/providers/config-prompt-provider.cjs +8 -87
- package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/config-prompt-provider.js +9 -88
- package/dist/prompts/providers/custom-prompt-provider.cjs +21 -22
- package/dist/prompts/providers/custom-prompt-provider.d.ts +19 -4
- package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/custom-prompt-provider.js +22 -23
- package/dist/prompts/providers/mcp-prompt-provider.js +1 -1
- package/dist/prompts/schemas.cjs +2 -24
- package/dist/prompts/schemas.d.ts +0 -52
- package/dist/prompts/schemas.d.ts.map +1 -1
- package/dist/prompts/schemas.js +3 -25
- package/dist/prompts/types.d.ts +5 -32
- package/dist/prompts/types.d.ts.map +1 -1
- package/dist/prompts/utils.js +1 -1
- package/dist/resources/agent-resources-provider.js +1 -1
- package/dist/resources/error-codes.js +1 -1
- package/dist/resources/errors.js +1 -1
- package/dist/resources/handlers/blob-handler.cjs +14 -11
- package/dist/resources/handlers/blob-handler.d.ts +4 -4
- package/dist/resources/handlers/blob-handler.d.ts.map +1 -1
- package/dist/resources/handlers/blob-handler.js +15 -12
- package/dist/resources/handlers/factory.cjs +3 -3
- package/dist/resources/handlers/factory.js +4 -4
- package/dist/resources/handlers/filesystem-handler.js +1 -1
- package/dist/resources/handlers/types.d.ts +2 -2
- package/dist/resources/handlers/types.d.ts.map +1 -1
- package/dist/resources/index.js +1 -1
- package/dist/resources/manager.cjs +10 -7
- package/dist/resources/manager.d.ts +4 -4
- package/dist/resources/manager.d.ts.map +1 -1
- package/dist/resources/manager.js +11 -8
- package/dist/resources/reference-parser.js +1 -1
- package/dist/resources/schemas.cjs +1 -1
- package/dist/resources/schemas.d.ts +2 -2
- package/dist/resources/schemas.js +2 -2
- package/dist/runtime/host-runtime.js +1 -1
- package/dist/runtime/index.cjs +3 -0
- package/dist/runtime/index.d.ts +2 -0
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +3 -1
- package/dist/runtime/run-context.js +1 -1
- package/dist/search/index.js +1 -1
- package/dist/search/search-service.cjs +6 -13
- package/dist/search/search-service.d.ts +5 -3
- package/dist/search/search-service.d.ts.map +1 -1
- package/dist/search/search-service.js +7 -14
- package/dist/session/chat-session.cjs +264 -108
- package/dist/session/chat-session.d.ts +75 -21
- package/dist/session/chat-session.d.ts.map +1 -1
- package/dist/session/chat-session.js +268 -108
- package/dist/session/error-codes.js +1 -1
- package/dist/session/errors.js +1 -1
- package/dist/session/index.cjs +19 -2
- package/dist/session/index.d.ts +4 -3
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js +19 -3
- package/dist/session/message-queue.cjs +82 -51
- package/dist/session/message-queue.d.ts +13 -8
- package/dist/session/message-queue.d.ts.map +1 -1
- package/dist/session/message-queue.js +83 -52
- package/dist/session/queue-clone.cjs +50 -0
- package/dist/session/queue-clone.d.ts +5 -0
- package/dist/session/queue-clone.d.ts.map +1 -0
- package/dist/session/queue-clone.js +25 -0
- package/dist/session/schemas.cjs +74 -2
- package/dist/session/schemas.d.ts +94 -0
- package/dist/session/schemas.d.ts.map +1 -1
- package/dist/session/schemas.js +69 -2
- package/dist/session/session-manager.cjs +107 -123
- package/dist/session/session-manager.d.ts +7 -6
- package/dist/session/session-manager.d.ts.map +1 -1
- package/dist/session/session-manager.js +108 -124
- package/dist/session/title-generator.cjs +14 -26
- package/dist/session/title-generator.d.ts +4 -6
- package/dist/session/title-generator.d.ts.map +1 -1
- package/dist/session/title-generator.js +16 -28
- package/dist/session/types.cjs +28 -0
- package/dist/session/types.d.ts +5 -1
- package/dist/session/types.d.ts.map +1 -1
- package/dist/session/types.js +19 -0
- package/dist/{session/history/factory.cjs → skills/index.cjs} +9 -9
- package/dist/skills/index.d.ts +4 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +7 -0
- package/dist/skills/skill-manager.cjs +76 -0
- package/dist/skills/skill-manager.d.ts +13 -0
- package/dist/skills/skill-manager.d.ts.map +1 -0
- package/dist/skills/skill-manager.js +53 -0
- package/dist/skills/types.d.ts +24 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/workspace-skill-source.cjs +120 -0
- package/dist/skills/workspace-skill-source.d.ts +16 -0
- package/dist/skills/workspace-skill-source.d.ts.map +1 -0
- package/dist/skills/workspace-skill-source.js +97 -0
- package/dist/storage/approvals/types.cjs +38 -0
- package/dist/storage/approvals/types.d.ts +54 -0
- package/dist/storage/approvals/types.d.ts.map +1 -0
- package/dist/storage/approvals/types.js +14 -0
- package/dist/storage/artifacts/types.d.ts +73 -0
- package/dist/storage/artifacts/types.d.ts.map +1 -0
- package/dist/storage/conversation/database.cjs +233 -0
- package/dist/storage/conversation/database.d.ts +38 -0
- package/dist/storage/conversation/database.d.ts.map +1 -0
- package/dist/storage/conversation/database.js +210 -0
- package/dist/storage/conversation/types.cjs +16 -0
- package/dist/storage/conversation/types.d.ts +21 -0
- package/dist/storage/conversation/types.d.ts.map +1 -0
- package/dist/storage/conversation/types.js +0 -0
- package/dist/storage/database/types.d.ts +4 -0
- package/dist/storage/database/types.d.ts.map +1 -1
- package/dist/storage/error-codes.js +1 -1
- package/dist/storage/errors.cjs +6 -6
- package/dist/storage/errors.d.ts +2 -2
- package/dist/storage/errors.js +7 -7
- package/dist/storage/index.cjs +42 -5
- package/dist/storage/index.d.ts +19 -8
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +39 -4
- package/dist/storage/memories/types.cjs +16 -0
- package/dist/storage/memories/types.d.ts +17 -0
- package/dist/storage/memories/types.d.ts.map +1 -0
- package/dist/storage/memories/types.js +0 -0
- package/dist/storage/message-queue/types.cjs +16 -0
- package/dist/storage/message-queue/types.d.ts +15 -0
- package/dist/storage/message-queue/types.d.ts.map +1 -0
- package/dist/storage/message-queue/types.js +0 -0
- package/dist/storage/prompts/types.cjs +16 -0
- package/dist/storage/prompts/types.d.ts +14 -0
- package/dist/storage/prompts/types.d.ts.map +1 -0
- package/dist/storage/prompts/types.js +0 -0
- package/dist/storage/runtime-events/types.cjs +16 -0
- package/dist/storage/runtime-events/types.d.ts +19 -0
- package/dist/storage/runtime-events/types.d.ts.map +1 -0
- package/dist/storage/runtime-events/types.js +0 -0
- package/dist/storage/sessions/types.cjs +16 -0
- package/dist/storage/sessions/types.d.ts +19 -0
- package/dist/storage/sessions/types.d.ts.map +1 -0
- package/dist/storage/sessions/types.js +0 -0
- package/dist/storage/stores/backend.cjs +702 -0
- package/dist/storage/stores/backend.d.ts +303 -0
- package/dist/storage/stores/backend.d.ts.map +1 -0
- package/dist/storage/stores/backend.js +677 -0
- package/dist/storage/stores/in-memory.cjs +510 -0
- package/dist/storage/stores/in-memory.d.ts +11 -0
- package/dist/storage/stores/in-memory.d.ts.map +1 -0
- package/dist/storage/stores/in-memory.js +487 -0
- package/dist/storage/stores/types.cjs +16 -0
- package/dist/storage/stores/types.d.ts +36 -0
- package/dist/storage/stores/types.d.ts.map +1 -0
- package/dist/storage/stores/types.js +0 -0
- package/dist/storage/tool-executions/types.cjs +127 -0
- package/dist/storage/tool-executions/types.d.ts +193 -0
- package/dist/storage/tool-executions/types.d.ts.map +1 -0
- package/dist/storage/tool-executions/types.js +96 -0
- package/dist/storage/tool-preferences/types.cjs +16 -0
- package/dist/storage/tool-preferences/types.d.ts +29 -0
- package/dist/storage/tool-preferences/types.d.ts.map +1 -0
- package/dist/storage/tool-preferences/types.js +0 -0
- package/dist/storage/tool-state/types.cjs +16 -0
- package/dist/storage/tool-state/types.d.ts +20 -0
- package/dist/storage/tool-state/types.d.ts.map +1 -0
- package/dist/storage/tool-state/types.js +0 -0
- package/dist/storage/workspaces/types.cjs +16 -0
- package/dist/storage/workspaces/types.d.ts +19 -0
- package/dist/storage/workspaces/types.d.ts.map +1 -0
- package/dist/storage/workspaces/types.js +0 -0
- package/dist/systemPrompt/contributors.cjs +10 -14
- package/dist/systemPrompt/contributors.d.ts +3 -3
- package/dist/systemPrompt/contributors.d.ts.map +1 -1
- package/dist/systemPrompt/contributors.js +11 -15
- package/dist/systemPrompt/error-codes.js +1 -1
- package/dist/systemPrompt/errors.js +1 -1
- package/dist/systemPrompt/in-built-prompts.js +1 -1
- package/dist/systemPrompt/index.js +1 -1
- package/dist/systemPrompt/manager.js +1 -1
- package/dist/systemPrompt/registry.js +1 -1
- package/dist/systemPrompt/schemas.js +1 -1
- package/dist/telemetry/decorators.js +1 -1
- package/dist/telemetry/error-codes.js +1 -1
- package/dist/telemetry/errors.js +1 -1
- package/dist/telemetry/exporters.js +1 -1
- package/dist/telemetry/index.js +1 -1
- package/dist/telemetry/schemas.js +1 -1
- package/dist/telemetry/telemetry.js +1 -1
- package/dist/telemetry/utils.js +1 -1
- package/dist/test-utils/in-memory-storage.cjs +9 -17
- package/dist/test-utils/in-memory-storage.js +9 -16
- package/dist/test-utils/session-state-stores.cjs +21 -24
- package/dist/test-utils/session-state-stores.js +22 -24
- package/dist/tools/{confirmation → approval}/allowed-tools-provider/factory.cjs +1 -1
- package/dist/tools/{confirmation → approval}/allowed-tools-provider/factory.d.ts +2 -2
- package/dist/tools/approval/allowed-tools-provider/factory.d.ts.map +1 -0
- package/dist/tools/{confirmation → approval}/allowed-tools-provider/factory.js +2 -2
- package/dist/tools/approval/allowed-tools-provider/in-memory.d.ts.map +1 -0
- package/dist/tools/{confirmation → approval}/allowed-tools-provider/in-memory.js +1 -1
- package/dist/tools/approval/allowed-tools-provider/storage.cjs +66 -0
- package/dist/tools/{confirmation → approval}/allowed-tools-provider/storage.d.ts +4 -10
- package/dist/tools/approval/allowed-tools-provider/storage.d.ts.map +1 -0
- package/dist/tools/approval/allowed-tools-provider/storage.js +43 -0
- package/dist/tools/approval/allowed-tools-provider/types.cjs +16 -0
- package/dist/tools/approval/allowed-tools-provider/types.d.ts.map +1 -0
- package/dist/tools/approval/allowed-tools-provider/types.js +0 -0
- package/dist/tools/approval/session-tool-policy.cjs +269 -0
- package/dist/tools/approval/session-tool-policy.d.ts +43 -0
- package/dist/tools/approval/session-tool-policy.d.ts.map +1 -0
- package/dist/tools/approval/session-tool-policy.js +245 -0
- package/dist/tools/define-tool.js +1 -1
- package/dist/tools/display-types.js +1 -1
- package/dist/tools/error-codes.cjs +3 -3
- package/dist/tools/error-codes.d.ts +4 -4
- package/dist/tools/error-codes.d.ts.map +1 -1
- package/dist/tools/error-codes.js +4 -4
- package/dist/tools/errors.cjs +12 -12
- package/dist/tools/errors.d.ts +6 -6
- package/dist/tools/errors.d.ts.map +1 -1
- package/dist/tools/errors.js +13 -13
- package/dist/tools/index.cjs +3 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +3 -1
- package/dist/tools/pattern-utils.js +1 -1
- package/dist/tools/presentation/tool-presentation.cjs +182 -0
- package/dist/tools/presentation/tool-presentation.d.ts +51 -0
- package/dist/tools/presentation/tool-presentation.d.ts.map +1 -0
- package/dist/tools/presentation/tool-presentation.js +159 -0
- package/dist/tools/presentation.js +1 -1
- package/dist/tools/schemas.cjs +5 -10
- package/dist/tools/schemas.d.ts +1 -4
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +6 -11
- package/dist/tools/session-tool-preferences-store.cjs +12 -28
- package/dist/tools/session-tool-preferences-store.d.ts +4 -7
- package/dist/tools/session-tool-preferences-store.d.ts.map +1 -1
- package/dist/tools/session-tool-preferences-store.js +12 -29
- package/dist/tools/tool-call-metadata.js +1 -1
- package/dist/tools/tool-manager.cjs +871 -834
- package/dist/tools/tool-manager.d.ts +94 -96
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +876 -833
- package/dist/tools/types.d.ts +10 -14
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/utils/api-key-resolver.js +1 -1
- package/dist/utils/async-context.js +1 -1
- package/dist/utils/debug.js +1 -1
- package/dist/utils/defer.js +1 -1
- package/dist/utils/env.js +1 -1
- package/dist/utils/error-conversion.js +1 -1
- package/dist/utils/execution-context.js +1 -1
- package/dist/utils/fs-walk.js +1 -1
- package/dist/utils/path.js +1 -1
- package/dist/utils/redactor.js +1 -1
- package/dist/utils/result.js +1 -1
- package/dist/utils/safe-stringify.js +1 -1
- package/dist/utils/schema.js +1 -1
- package/dist/utils/service-initializer.cjs +37 -33
- package/dist/utils/service-initializer.d.ts +9 -5
- package/dist/utils/service-initializer.d.ts.map +1 -1
- package/dist/utils/service-initializer.js +38 -34
- package/dist/utils/zod-schema-converter.js +1 -1
- package/dist/workspace/error-codes.cjs +5 -1
- package/dist/workspace/error-codes.d.ts +4 -0
- package/dist/workspace/error-codes.d.ts.map +1 -1
- package/dist/workspace/error-codes.js +6 -2
- package/dist/workspace/errors.cjs +43 -0
- package/dist/workspace/errors.d.ts +9 -0
- package/dist/workspace/errors.d.ts.map +1 -1
- package/dist/workspace/errors.js +44 -1
- package/dist/workspace/index.d.ts +1 -1
- package/dist/workspace/index.d.ts.map +1 -1
- package/dist/workspace/index.js +1 -1
- package/dist/workspace/manager.cjs +21 -29
- package/dist/workspace/manager.d.ts +6 -6
- package/dist/workspace/manager.d.ts.map +1 -1
- package/dist/workspace/manager.js +22 -30
- package/dist/workspace/types.d.ts +47 -0
- package/dist/workspace/types.d.ts.map +1 -1
- package/package.json +114 -2
- package/dist/approval/session-approval-store.cjs +0 -91
- package/dist/approval/session-approval-store.d.ts +0 -37
- package/dist/approval/session-approval-store.d.ts.map +0 -1
- package/dist/approval/session-approval-store.js +0 -68
- package/dist/session/history/database.cjs +0 -232
- package/dist/session/history/database.d.ts +0 -41
- package/dist/session/history/database.d.ts.map +0 -1
- package/dist/session/history/database.js +0 -209
- package/dist/session/history/factory.d.ts +0 -11
- package/dist/session/history/factory.d.ts.map +0 -1
- package/dist/session/history/factory.js +0 -8
- package/dist/session/history/memory.d.ts +0 -22
- package/dist/session/history/memory.d.ts.map +0 -1
- package/dist/session/history/memory.js +0 -34
- package/dist/session/history/types.d.ts +0 -26
- package/dist/session/history/types.d.ts.map +0 -1
- package/dist/session/message-queue-store.cjs +0 -75
- package/dist/session/message-queue-store.d.ts +0 -16
- package/dist/session/message-queue-store.d.ts.map +0 -1
- package/dist/session/message-queue-store.js +0 -52
- package/dist/storage/storage-manager.cjs +0 -209
- package/dist/storage/storage-manager.d.ts +0 -77
- package/dist/storage/storage-manager.d.ts.map +0 -1
- package/dist/storage/storage-manager.js +0 -186
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +0 -1
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts.map +0 -1
- package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +0 -69
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +0 -1
- package/dist/tools/confirmation/allowed-tools-provider/storage.js +0 -46
- package/dist/tools/confirmation/allowed-tools-provider/types.d.ts.map +0 -1
- /package/dist/{session/history → skills}/types.cjs +0 -0
- /package/dist/{session/history → skills}/types.js +0 -0
- /package/dist/{tools/confirmation/allowed-tools-provider → storage/artifacts}/types.cjs +0 -0
- /package/dist/{tools/confirmation/allowed-tools-provider → storage/artifacts}/types.js +0 -0
- /package/dist/tools/{confirmation → approval}/allowed-tools-provider/in-memory.cjs +0 -0
- /package/dist/tools/{confirmation → approval}/allowed-tools-provider/in-memory.d.ts +0 -0
- /package/dist/tools/{confirmation → approval}/allowed-tools-provider/types.d.ts +0 -0
|
@@ -35,6 +35,7 @@ var import_crypto = require("crypto");
|
|
|
35
35
|
var import_chat_session = require("./chat-session.js");
|
|
36
36
|
var import_types = require("../logger/v2/types.js");
|
|
37
37
|
var import_errors = require("./errors.js");
|
|
38
|
+
var import_usage_metadata = require("../llm/usage-metadata.js");
|
|
38
39
|
var import_zod = require("zod");
|
|
39
40
|
var import_schemas = require("../systemPrompt/schemas.js");
|
|
40
41
|
function defaultSessionLoggerFactory(options) {
|
|
@@ -52,7 +53,6 @@ class SessionManager {
|
|
|
52
53
|
sessions = /* @__PURE__ */ new Map();
|
|
53
54
|
maxSessions;
|
|
54
55
|
sessionTTL;
|
|
55
|
-
static MESSAGE_QUEUE_KEY_PREFIX = "session-message-queue:";
|
|
56
56
|
initialized = false;
|
|
57
57
|
cleanupInterval;
|
|
58
58
|
initializationPromise;
|
|
@@ -61,7 +61,6 @@ class SessionManager {
|
|
|
61
61
|
// Per-session mutex for any SessionData read-modify-write path.
|
|
62
62
|
sessionDataLocks = /* @__PURE__ */ new Map();
|
|
63
63
|
logger;
|
|
64
|
-
static FORK_HISTORY_BATCH_SIZE = 500;
|
|
65
64
|
static FORK_ID_GENERATION_MAX_ATTEMPTS = 5;
|
|
66
65
|
static FORK_TITLE_PREFIX = "Fork: ";
|
|
67
66
|
static FORK_PARENT_ID_PREVIEW_LENGTH = 8;
|
|
@@ -104,23 +103,21 @@ class SessionManager {
|
|
|
104
103
|
*/
|
|
105
104
|
async restoreSessionsFromStorage() {
|
|
106
105
|
try {
|
|
107
|
-
const
|
|
108
|
-
this.logger.debug(`Found ${
|
|
109
|
-
for (const
|
|
110
|
-
const
|
|
111
|
-
const sessionData = await this.services.storageManager.getDatabase().get(sessionKey);
|
|
106
|
+
const sessionIds = await this.services.sessionStore.listSessionIds();
|
|
107
|
+
this.logger.debug(`Found ${sessionIds.length} persisted sessions to restore`);
|
|
108
|
+
for (const sessionId of sessionIds) {
|
|
109
|
+
const sessionData = await this.services.sessionStore.getSession({ sessionId });
|
|
112
110
|
if (sessionData) {
|
|
113
111
|
const now = Date.now();
|
|
114
112
|
const lastActivity = sessionData.lastActivity;
|
|
115
113
|
if (now - lastActivity <= this.sessionTTL) {
|
|
116
114
|
this.logger.debug(`Session ${sessionId} restored from storage`);
|
|
117
115
|
} else {
|
|
118
|
-
await
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
this.logger.debug(`Expired session ${sessionId} cleaned up during restore`);
|
|
116
|
+
await this.services.sessionStore.evictSession({ sessionId });
|
|
117
|
+
this.evictSessionInteractionState(sessionId);
|
|
118
|
+
this.logger.debug(
|
|
119
|
+
`Expired session ${sessionId} evicted during restore; durable history preserved`
|
|
120
|
+
);
|
|
124
121
|
}
|
|
125
122
|
}
|
|
126
123
|
}
|
|
@@ -132,18 +129,19 @@ class SessionManager {
|
|
|
132
129
|
}
|
|
133
130
|
async clearPersistedQueuedMessages(reason) {
|
|
134
131
|
try {
|
|
135
|
-
const
|
|
136
|
-
|
|
132
|
+
const steerSessionIds = await this.services.steerQueueStore.listSessionIds();
|
|
133
|
+
const followUpSessionIds = await this.services.followUpQueueStore.listSessionIds();
|
|
134
|
+
const sessionIds = Array.from(/* @__PURE__ */ new Set([...steerSessionIds, ...followUpSessionIds]));
|
|
135
|
+
if (sessionIds.length === 0) {
|
|
137
136
|
return;
|
|
138
137
|
}
|
|
139
138
|
await Promise.all(
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
)
|
|
139
|
+
sessionIds.flatMap((sessionId) => [
|
|
140
|
+
this.services.steerQueueStore.delete({ sessionId }),
|
|
141
|
+
this.services.followUpQueueStore.delete({ sessionId })
|
|
142
|
+
])
|
|
145
143
|
);
|
|
146
|
-
const message = `${reason === "startup" ? "Cleared stale
|
|
144
|
+
const message = `${reason === "startup" ? "Cleared stale pending input state from previous agent run" : "Cleared pending input state during agent shutdown"} (${sessionIds.length} session bucket(s))`;
|
|
147
145
|
if (reason === "startup") {
|
|
148
146
|
this.logger.info(message);
|
|
149
147
|
} else {
|
|
@@ -204,21 +202,17 @@ class SessionManager {
|
|
|
204
202
|
*/
|
|
205
203
|
async forkSession(parentSessionId) {
|
|
206
204
|
await this.ensureInitialized();
|
|
207
|
-
const
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
const parentMessagesKey = `messages:${parentSessionId}`;
|
|
211
|
-
const parentSessionData = await database.get(parentSessionKey);
|
|
205
|
+
const parentSessionData = await this.services.sessionStore.getSession({
|
|
206
|
+
sessionId: parentSessionId
|
|
207
|
+
});
|
|
212
208
|
if (!parentSessionData) {
|
|
213
209
|
throw import_errors.SessionError.notFound(parentSessionId);
|
|
214
210
|
}
|
|
215
|
-
const
|
|
216
|
-
if (
|
|
217
|
-
throw import_errors.SessionError.maxSessionsExceeded(
|
|
211
|
+
const activeSessionIds = await this.services.sessionStore.listSessionIds();
|
|
212
|
+
if (activeSessionIds.length >= this.maxSessions) {
|
|
213
|
+
throw import_errors.SessionError.maxSessionsExceeded(activeSessionIds.length, this.maxSessions);
|
|
218
214
|
}
|
|
219
215
|
const childSessionId = await this.generateForkSessionId();
|
|
220
|
-
const childSessionKey = `session:${childSessionId}`;
|
|
221
|
-
const childMessagesKey = `messages:${childSessionId}`;
|
|
222
216
|
const now = Date.now();
|
|
223
217
|
const childTitle = this.buildForkTitle(parentSessionData, parentSessionId);
|
|
224
218
|
const childSessionData = {
|
|
@@ -245,16 +239,19 @@ class SessionManager {
|
|
|
245
239
|
}
|
|
246
240
|
};
|
|
247
241
|
try {
|
|
248
|
-
await
|
|
249
|
-
|
|
242
|
+
await this.services.sessionStore.saveSession({
|
|
243
|
+
sessionId: childSessionId,
|
|
244
|
+
session: childSessionData,
|
|
245
|
+
ttlSeconds: this.sessionTTL / 1e3
|
|
246
|
+
});
|
|
247
|
+
await this.copySessionHistory(parentSessionId, childSessionId);
|
|
250
248
|
const childSession = await this.createSession(childSessionId);
|
|
251
249
|
this.logger.info(`Forked session '${parentSessionId}' into child '${childSessionId}'`);
|
|
252
250
|
return childSession;
|
|
253
251
|
} catch (error) {
|
|
254
252
|
await Promise.allSettled([
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
cache.delete(childSessionKey)
|
|
253
|
+
this.services.sessionStore.deleteSession({ sessionId: childSessionId }),
|
|
254
|
+
this.services.conversationStore.clearMessages({ sessionId: childSessionId })
|
|
258
255
|
]);
|
|
259
256
|
const inMemorySession = this.sessions.get(childSessionId);
|
|
260
257
|
if (inMemorySession) {
|
|
@@ -275,13 +272,14 @@ class SessionManager {
|
|
|
275
272
|
return `${prefix}${baseTitle}`;
|
|
276
273
|
}
|
|
277
274
|
async generateForkSessionId() {
|
|
278
|
-
const database = this.services.storageManager.getDatabase();
|
|
279
275
|
for (let attempt = 0; attempt < SessionManager.FORK_ID_GENERATION_MAX_ATTEMPTS; attempt++) {
|
|
280
276
|
const candidateId = (0, import_crypto.randomUUID)();
|
|
281
277
|
if (this.sessions.has(candidateId) || this.pendingCreations.has(candidateId)) {
|
|
282
278
|
continue;
|
|
283
279
|
}
|
|
284
|
-
const existing = await
|
|
280
|
+
const existing = await this.services.sessionStore.getSession({
|
|
281
|
+
sessionId: candidateId
|
|
282
|
+
});
|
|
285
283
|
if (!existing) {
|
|
286
284
|
return candidateId;
|
|
287
285
|
}
|
|
@@ -291,25 +289,15 @@ class SessionManager {
|
|
|
291
289
|
"failed to generate unique child session ID"
|
|
292
290
|
);
|
|
293
291
|
}
|
|
294
|
-
async copySessionHistory(
|
|
295
|
-
const
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
);
|
|
303
|
-
if (batch.length === 0) {
|
|
304
|
-
return;
|
|
305
|
-
}
|
|
306
|
-
for (const message of batch) {
|
|
307
|
-
await database.append(childMessagesKey, message);
|
|
308
|
-
}
|
|
309
|
-
offset += batch.length;
|
|
310
|
-
if (batch.length < SessionManager.FORK_HISTORY_BATCH_SIZE) {
|
|
311
|
-
return;
|
|
312
|
-
}
|
|
292
|
+
async copySessionHistory(parentSessionId, childSessionId) {
|
|
293
|
+
const messages = await this.services.conversationStore.listMessages({
|
|
294
|
+
sessionId: parentSessionId
|
|
295
|
+
});
|
|
296
|
+
for (const message of messages) {
|
|
297
|
+
await this.services.conversationStore.saveMessage({
|
|
298
|
+
sessionId: childSessionId,
|
|
299
|
+
message
|
|
300
|
+
});
|
|
313
301
|
}
|
|
314
302
|
}
|
|
315
303
|
/**
|
|
@@ -318,8 +306,7 @@ class SessionManager {
|
|
|
318
306
|
*/
|
|
319
307
|
async createSessionInternal(id) {
|
|
320
308
|
await this.cleanupExpiredSessions();
|
|
321
|
-
const
|
|
322
|
-
const existingMetadata = await this.services.storageManager.getDatabase().get(sessionKey);
|
|
309
|
+
const existingMetadata = await this.services.sessionStore.getSession({ sessionId: id });
|
|
323
310
|
if (existingMetadata) {
|
|
324
311
|
await this.updateSessionActivity(id);
|
|
325
312
|
const runtimeConfig = this.services.stateManager.getRuntimeConfig();
|
|
@@ -329,7 +316,7 @@ class SessionManager {
|
|
|
329
316
|
agentId,
|
|
330
317
|
sessionId: id
|
|
331
318
|
});
|
|
332
|
-
const sessionData2 = await this.services.
|
|
319
|
+
const sessionData2 = await this.services.sessionStore.getSession({ sessionId: id });
|
|
333
320
|
if (sessionData2?.llmOverride) {
|
|
334
321
|
const { resolveApiKeyForProvider } = await import("../utils/api-key-resolver.js");
|
|
335
322
|
const apiKey = resolveApiKeyForProvider(sessionData2.llmOverride.provider);
|
|
@@ -354,7 +341,7 @@ class SessionManager {
|
|
|
354
341
|
this.logger.info(`Restored session from storage: ${id}`);
|
|
355
342
|
return session2;
|
|
356
343
|
}
|
|
357
|
-
const activeSessionKeys = await this.services.
|
|
344
|
+
const activeSessionKeys = await this.services.sessionStore.listSessionIds();
|
|
358
345
|
if (activeSessionKeys.length >= this.maxSessions) {
|
|
359
346
|
throw import_errors.SessionError.maxSessionsExceeded(activeSessionKeys.length, this.maxSessions);
|
|
360
347
|
}
|
|
@@ -368,7 +355,11 @@ class SessionManager {
|
|
|
368
355
|
...workspace?.id !== void 0 && { workspaceId: workspace.id }
|
|
369
356
|
};
|
|
370
357
|
try {
|
|
371
|
-
await this.services.
|
|
358
|
+
await this.services.sessionStore.saveSession({
|
|
359
|
+
sessionId: id,
|
|
360
|
+
session: sessionData,
|
|
361
|
+
ttlSeconds: this.sessionTTL / 1e3
|
|
362
|
+
});
|
|
372
363
|
} catch (error) {
|
|
373
364
|
this.logger.error(`Failed to store session metadata for ${id}:`, {
|
|
374
365
|
error: error instanceof Error ? error.message : String(error)
|
|
@@ -387,15 +378,13 @@ class SessionManager {
|
|
|
387
378
|
session = new import_chat_session.ChatSession(this.getChatSessionServices(), id, sessionLogger);
|
|
388
379
|
await session.init();
|
|
389
380
|
this.sessions.set(id, session);
|
|
390
|
-
await this.services.storageManager.getCache().set(sessionKey, sessionData, this.sessionTTL / 1e3);
|
|
391
381
|
this.logger.info(`Created new session: ${id}`);
|
|
392
382
|
return session;
|
|
393
383
|
} catch (error) {
|
|
394
384
|
this.logger.error(
|
|
395
385
|
`Failed to initialize session ${id}: ${error instanceof Error ? error.message : String(error)}`
|
|
396
386
|
);
|
|
397
|
-
await this.services.
|
|
398
|
-
await this.services.storageManager.getCache().delete(sessionKey);
|
|
387
|
+
await this.services.sessionStore.deleteSession({ sessionId: id });
|
|
399
388
|
const reason = error instanceof Error ? error.message : "unknown error";
|
|
400
389
|
throw import_errors.SessionError.initializationFailed(id, reason);
|
|
401
390
|
}
|
|
@@ -416,8 +405,7 @@ class SessionManager {
|
|
|
416
405
|
return this.sessions.get(sessionId);
|
|
417
406
|
}
|
|
418
407
|
if (restoreFromStorage) {
|
|
419
|
-
const
|
|
420
|
-
const sessionData = await this.services.storageManager.getDatabase().get(sessionKey);
|
|
408
|
+
const sessionData = await this.services.sessionStore.getSession({ sessionId });
|
|
421
409
|
if (sessionData) {
|
|
422
410
|
const runtimeConfig = this.services.stateManager.getRuntimeConfig();
|
|
423
411
|
const agentId = runtimeConfig.agentCard?.name ?? runtimeConfig.agentId;
|
|
@@ -469,8 +457,7 @@ class SessionManager {
|
|
|
469
457
|
await session.cleanup();
|
|
470
458
|
this.sessions.delete(sessionId);
|
|
471
459
|
}
|
|
472
|
-
|
|
473
|
-
await this.services.storageManager.getCache().delete(sessionKey);
|
|
460
|
+
await this.services.sessionStore.evictSession({ sessionId });
|
|
474
461
|
this.evictSessionInteractionState(sessionId);
|
|
475
462
|
this.logger.debug(
|
|
476
463
|
`Ended session (removed from memory, chat history preserved): ${sessionId}`
|
|
@@ -489,12 +476,9 @@ class SessionManager {
|
|
|
489
476
|
await session.cleanup();
|
|
490
477
|
this.sessions.delete(sessionId);
|
|
491
478
|
}
|
|
492
|
-
|
|
493
|
-
await this.services.storageManager.getDatabase().delete(sessionKey);
|
|
494
|
-
await this.services.storageManager.getCache().delete(sessionKey);
|
|
479
|
+
await this.services.sessionStore.deleteSession({ sessionId });
|
|
495
480
|
await this.deleteSessionInteractionState(sessionId);
|
|
496
|
-
|
|
497
|
-
await this.services.storageManager.getDatabase().delete(messagesKey);
|
|
481
|
+
await this.services.conversationStore.clearMessages({ sessionId });
|
|
498
482
|
this.logger.debug(`Deleted session and conversation history: ${sessionId}`);
|
|
499
483
|
}
|
|
500
484
|
/**
|
|
@@ -510,7 +494,7 @@ class SessionManager {
|
|
|
510
494
|
throw import_errors.SessionError.notFound(sessionId);
|
|
511
495
|
}
|
|
512
496
|
await session.reset();
|
|
513
|
-
await session.
|
|
497
|
+
await session.clearPendingInput();
|
|
514
498
|
await Promise.all([
|
|
515
499
|
this.services.toolManager.deleteSessionState(sessionId),
|
|
516
500
|
this.services.approvalManager.deleteSessionState(sessionId)
|
|
@@ -519,15 +503,15 @@ class SessionManager {
|
|
|
519
503
|
this.services.stateManager.clearSessionOverride(sessionId);
|
|
520
504
|
await session.switchLLM(this.services.stateManager.getRuntimeConfig().llm);
|
|
521
505
|
}
|
|
522
|
-
await this.runWithSessionDataLock(sessionId, async (
|
|
523
|
-
const sessionData = await this.services.
|
|
506
|
+
await this.runWithSessionDataLock(sessionId, async () => {
|
|
507
|
+
const sessionData = await this.services.sessionStore.getSession({ sessionId });
|
|
524
508
|
if (!sessionData) {
|
|
525
509
|
return;
|
|
526
510
|
}
|
|
527
511
|
sessionData.messageCount = 0;
|
|
528
512
|
sessionData.lastActivity = Date.now();
|
|
529
513
|
delete sessionData.llmOverride;
|
|
530
|
-
await this.persistSessionData(
|
|
514
|
+
await this.persistSessionData(sessionId, sessionData);
|
|
531
515
|
});
|
|
532
516
|
this.logger.debug(`Reset session conversation: ${sessionId}`);
|
|
533
517
|
}
|
|
@@ -538,8 +522,7 @@ class SessionManager {
|
|
|
538
522
|
*/
|
|
539
523
|
async listSessions() {
|
|
540
524
|
await this.ensureInitialized();
|
|
541
|
-
|
|
542
|
-
return sessionKeys.map((key) => key.replace("session:", ""));
|
|
525
|
+
return await this.services.sessionStore.listSessionIds();
|
|
543
526
|
}
|
|
544
527
|
/**
|
|
545
528
|
* Gets metadata for a specific session.
|
|
@@ -549,8 +532,7 @@ class SessionManager {
|
|
|
549
532
|
*/
|
|
550
533
|
async getSessionMetadata(sessionId) {
|
|
551
534
|
await this.ensureInitialized();
|
|
552
|
-
const
|
|
553
|
-
const sessionData = await this.services.storageManager.getDatabase().get(sessionKey);
|
|
535
|
+
const sessionData = await this.services.sessionStore.getSession({ sessionId });
|
|
554
536
|
if (!sessionData) return void 0;
|
|
555
537
|
return {
|
|
556
538
|
createdAt: sessionData.createdAt,
|
|
@@ -571,8 +553,7 @@ class SessionManager {
|
|
|
571
553
|
}
|
|
572
554
|
async getSessionSystemPromptContributors(sessionId) {
|
|
573
555
|
await this.ensureInitialized();
|
|
574
|
-
const
|
|
575
|
-
const sessionData = await this.services.storageManager.getDatabase().get(sessionKey);
|
|
556
|
+
const sessionData = await this.services.sessionStore.getSession({ sessionId });
|
|
576
557
|
if (!sessionData) {
|
|
577
558
|
throw import_errors.SessionError.notFound(sessionId);
|
|
578
559
|
}
|
|
@@ -580,8 +561,8 @@ class SessionManager {
|
|
|
580
561
|
}
|
|
581
562
|
async upsertSessionSystemPromptContributor(sessionId, contributor) {
|
|
582
563
|
await this.ensureInitialized();
|
|
583
|
-
return await this.runWithSessionDataLock(sessionId, async (
|
|
584
|
-
const sessionData = await this.services.
|
|
564
|
+
return await this.runWithSessionDataLock(sessionId, async () => {
|
|
565
|
+
const sessionData = await this.services.sessionStore.getSession({ sessionId });
|
|
585
566
|
if (!sessionData) {
|
|
586
567
|
throw import_errors.SessionError.notFound(sessionId);
|
|
587
568
|
}
|
|
@@ -593,14 +574,14 @@ class SessionManager {
|
|
|
593
574
|
sessionData.metadata = sessionData.metadata || {};
|
|
594
575
|
sessionData.metadata.systemPromptContributors = next;
|
|
595
576
|
sessionData.lastActivity = Date.now();
|
|
596
|
-
await this.persistSessionData(
|
|
577
|
+
await this.persistSessionData(sessionId, sessionData);
|
|
597
578
|
return replaced;
|
|
598
579
|
});
|
|
599
580
|
}
|
|
600
581
|
async removeSessionSystemPromptContributor(sessionId, contributorId) {
|
|
601
582
|
await this.ensureInitialized();
|
|
602
|
-
return await this.runWithSessionDataLock(sessionId, async (
|
|
603
|
-
const sessionData = await this.services.
|
|
583
|
+
return await this.runWithSessionDataLock(sessionId, async () => {
|
|
584
|
+
const sessionData = await this.services.sessionStore.getSession({ sessionId });
|
|
604
585
|
if (!sessionData) {
|
|
605
586
|
throw import_errors.SessionError.notFound(sessionId);
|
|
606
587
|
}
|
|
@@ -613,7 +594,7 @@ class SessionManager {
|
|
|
613
594
|
sessionData.metadata = sessionData.metadata || {};
|
|
614
595
|
sessionData.metadata.systemPromptContributors = next;
|
|
615
596
|
sessionData.lastActivity = Date.now();
|
|
616
|
-
await this.persistSessionData(
|
|
597
|
+
await this.persistSessionData(sessionId, sessionData);
|
|
617
598
|
return true;
|
|
618
599
|
});
|
|
619
600
|
}
|
|
@@ -631,8 +612,8 @@ class SessionManager {
|
|
|
631
612
|
}
|
|
632
613
|
async markUntrackedChatGPTLoginUsage(sessionId) {
|
|
633
614
|
await this.ensureInitialized();
|
|
634
|
-
await this.runWithSessionDataLock(sessionId, async (
|
|
635
|
-
const sessionData = await this.services.
|
|
615
|
+
await this.runWithSessionDataLock(sessionId, async () => {
|
|
616
|
+
const sessionData = await this.services.sessionStore.getSession({ sessionId });
|
|
636
617
|
if (!sessionData || sessionData.usageTracking?.hasUntrackedChatGPTLoginUsage) {
|
|
637
618
|
return;
|
|
638
619
|
}
|
|
@@ -640,7 +621,7 @@ class SessionManager {
|
|
|
640
621
|
...sessionData.usageTracking ?? {},
|
|
641
622
|
hasUntrackedChatGPTLoginUsage: true
|
|
642
623
|
};
|
|
643
|
-
await this.persistSessionData(
|
|
624
|
+
await this.persistSessionData(sessionId, sessionData);
|
|
644
625
|
});
|
|
645
626
|
}
|
|
646
627
|
/**
|
|
@@ -656,13 +637,13 @@ class SessionManager {
|
|
|
656
637
|
* Updates the last activity timestamp for a session.
|
|
657
638
|
*/
|
|
658
639
|
async updateSessionActivity(sessionId) {
|
|
659
|
-
await this.runWithSessionDataLock(sessionId, async (
|
|
660
|
-
const sessionData = await this.services.
|
|
640
|
+
await this.runWithSessionDataLock(sessionId, async () => {
|
|
641
|
+
const sessionData = await this.services.sessionStore.getSession({ sessionId });
|
|
661
642
|
if (!sessionData) {
|
|
662
643
|
return;
|
|
663
644
|
}
|
|
664
645
|
sessionData.lastActivity = Date.now();
|
|
665
|
-
await this.persistSessionData(
|
|
646
|
+
await this.persistSessionData(sessionId, sessionData);
|
|
666
647
|
});
|
|
667
648
|
}
|
|
668
649
|
/**
|
|
@@ -670,14 +651,14 @@ class SessionManager {
|
|
|
670
651
|
*/
|
|
671
652
|
async incrementMessageCount(sessionId) {
|
|
672
653
|
await this.ensureInitialized();
|
|
673
|
-
await this.runWithSessionDataLock(sessionId, async (
|
|
674
|
-
const sessionData = await this.services.
|
|
654
|
+
await this.runWithSessionDataLock(sessionId, async () => {
|
|
655
|
+
const sessionData = await this.services.sessionStore.getSession({ sessionId });
|
|
675
656
|
if (!sessionData) {
|
|
676
657
|
return;
|
|
677
658
|
}
|
|
678
659
|
sessionData.messageCount++;
|
|
679
660
|
sessionData.lastActivity = Date.now();
|
|
680
|
-
await this.persistSessionData(
|
|
661
|
+
await this.persistSessionData(sessionId, sessionData);
|
|
681
662
|
});
|
|
682
663
|
}
|
|
683
664
|
/**
|
|
@@ -693,11 +674,13 @@ class SessionManager {
|
|
|
693
674
|
*/
|
|
694
675
|
async accumulateTokenUsage(sessionId, usage, cost, modelInfo) {
|
|
695
676
|
await this.ensureInitialized();
|
|
696
|
-
await this.runWithSessionDataLock(sessionId, async (
|
|
697
|
-
const sessionData = await this.services.
|
|
677
|
+
await this.runWithSessionDataLock(sessionId, async () => {
|
|
678
|
+
const sessionData = await this.services.sessionStore.getSession({ sessionId });
|
|
679
|
+
const normalizedUsage = (0, import_usage_metadata.normalizeTokenUsageForAccounting)(usage);
|
|
680
|
+
const finiteCost = typeof cost === "number" && Number.isFinite(cost) ? cost : void 0;
|
|
698
681
|
if (!sessionData) return;
|
|
699
682
|
if (modelInfo) {
|
|
700
|
-
this.updateModelStats(sessionData,
|
|
683
|
+
this.updateModelStats(sessionData, normalizedUsage, finiteCost, modelInfo);
|
|
701
684
|
}
|
|
702
685
|
if (!sessionData.tokenUsage) {
|
|
703
686
|
sessionData.tokenUsage = {
|
|
@@ -709,12 +692,12 @@ class SessionManager {
|
|
|
709
692
|
totalTokens: 0
|
|
710
693
|
};
|
|
711
694
|
}
|
|
712
|
-
this.accumulateTokensInto(sessionData.tokenUsage,
|
|
713
|
-
if (
|
|
714
|
-
sessionData.estimatedCost = (sessionData.estimatedCost ?? 0) +
|
|
695
|
+
this.accumulateTokensInto(sessionData.tokenUsage, normalizedUsage);
|
|
696
|
+
if (finiteCost !== void 0) {
|
|
697
|
+
sessionData.estimatedCost = (sessionData.estimatedCost ?? 0) + finiteCost;
|
|
715
698
|
}
|
|
716
699
|
sessionData.lastActivity = Date.now();
|
|
717
|
-
await this.persistSessionData(
|
|
700
|
+
await this.persistSessionData(sessionId, sessionData);
|
|
718
701
|
});
|
|
719
702
|
}
|
|
720
703
|
/**
|
|
@@ -775,8 +758,8 @@ class SessionManager {
|
|
|
775
758
|
async setSessionTitle(sessionId, title, opts = {}) {
|
|
776
759
|
await this.ensureInitialized();
|
|
777
760
|
const normalized = title.trim().slice(0, 80);
|
|
778
|
-
await this.runWithSessionDataLock(sessionId, async (
|
|
779
|
-
const sessionData = await this.services.
|
|
761
|
+
await this.runWithSessionDataLock(sessionId, async () => {
|
|
762
|
+
const sessionData = await this.services.sessionStore.getSession({ sessionId });
|
|
780
763
|
if (!sessionData) {
|
|
781
764
|
throw import_errors.SessionError.notFound(sessionId);
|
|
782
765
|
}
|
|
@@ -786,7 +769,7 @@ class SessionManager {
|
|
|
786
769
|
sessionData.metadata = sessionData.metadata || {};
|
|
787
770
|
sessionData.metadata.title = normalized;
|
|
788
771
|
sessionData.lastActivity = Date.now();
|
|
789
|
-
await this.persistSessionData(
|
|
772
|
+
await this.persistSessionData(sessionId, sessionData);
|
|
790
773
|
});
|
|
791
774
|
}
|
|
792
775
|
/**
|
|
@@ -794,8 +777,7 @@ class SessionManager {
|
|
|
794
777
|
*/
|
|
795
778
|
async getSessionTitle(sessionId) {
|
|
796
779
|
await this.ensureInitialized();
|
|
797
|
-
const
|
|
798
|
-
const sessionData = await this.services.storageManager.getDatabase().get(sessionKey);
|
|
780
|
+
const sessionData = await this.services.sessionStore.getSession({ sessionId });
|
|
799
781
|
return sessionData?.metadata?.title;
|
|
800
782
|
}
|
|
801
783
|
/**
|
|
@@ -806,8 +788,7 @@ class SessionManager {
|
|
|
806
788
|
const now = Date.now();
|
|
807
789
|
const expiredSessions = [];
|
|
808
790
|
for (const [sessionId, _session] of this.sessions.entries()) {
|
|
809
|
-
const
|
|
810
|
-
const sessionData = await this.services.storageManager.getDatabase().get(sessionKey);
|
|
791
|
+
const sessionData = await this.services.sessionStore.getSession({ sessionId });
|
|
811
792
|
if (sessionData && now - sessionData.lastActivity > this.sessionTTL) {
|
|
812
793
|
expiredSessions.push(sessionId);
|
|
813
794
|
}
|
|
@@ -917,8 +898,8 @@ class SessionManager {
|
|
|
917
898
|
return configWithoutApiKey;
|
|
918
899
|
}
|
|
919
900
|
async setPersistedSessionLLMOverride(sessionId, llmOverride) {
|
|
920
|
-
await this.runWithSessionDataLock(sessionId, async (
|
|
921
|
-
const sessionData = await this.services.
|
|
901
|
+
await this.runWithSessionDataLock(sessionId, async () => {
|
|
902
|
+
const sessionData = await this.services.sessionStore.getSession({ sessionId });
|
|
922
903
|
if (!sessionData) {
|
|
923
904
|
return;
|
|
924
905
|
}
|
|
@@ -927,7 +908,7 @@ class SessionManager {
|
|
|
927
908
|
} else {
|
|
928
909
|
delete sessionData.llmOverride;
|
|
929
910
|
}
|
|
930
|
-
await this.persistSessionData(
|
|
911
|
+
await this.persistSessionData(sessionId, sessionData);
|
|
931
912
|
});
|
|
932
913
|
}
|
|
933
914
|
async deleteSessionInteractionState(sessionId) {
|
|
@@ -935,7 +916,8 @@ class SessionManager {
|
|
|
935
916
|
await Promise.all([
|
|
936
917
|
this.services.toolManager.deleteSessionState(sessionId),
|
|
937
918
|
this.services.approvalManager.deleteSessionState(sessionId),
|
|
938
|
-
this.services.
|
|
919
|
+
this.services.steerQueueStore.delete({ sessionId }),
|
|
920
|
+
this.services.followUpQueueStore.delete({ sessionId })
|
|
939
921
|
]);
|
|
940
922
|
}
|
|
941
923
|
evictSessionInteractionState(sessionId) {
|
|
@@ -946,7 +928,7 @@ class SessionManager {
|
|
|
946
928
|
const sessionKey = `session:${sessionId}`;
|
|
947
929
|
const previousLock = this.sessionDataLocks.get(sessionKey) ?? Promise.resolve();
|
|
948
930
|
const currentResult = previousLock.catch(() => {
|
|
949
|
-
}).then(() => fn(
|
|
931
|
+
}).then(() => fn());
|
|
950
932
|
const currentLock = currentResult.then(
|
|
951
933
|
() => void 0,
|
|
952
934
|
() => void 0
|
|
@@ -960,9 +942,12 @@ class SessionManager {
|
|
|
960
942
|
}
|
|
961
943
|
}
|
|
962
944
|
}
|
|
963
|
-
async persistSessionData(
|
|
964
|
-
await this.services.
|
|
965
|
-
|
|
945
|
+
async persistSessionData(sessionId, sessionData) {
|
|
946
|
+
await this.services.sessionStore.saveSession({
|
|
947
|
+
sessionId,
|
|
948
|
+
session: sessionData,
|
|
949
|
+
ttlSeconds: this.sessionTTL / 1e3
|
|
950
|
+
});
|
|
966
951
|
}
|
|
967
952
|
/**
|
|
968
953
|
* Get session statistics for monitoring and debugging.
|
|
@@ -986,8 +971,7 @@ class SessionManager {
|
|
|
986
971
|
*/
|
|
987
972
|
async getSessionData(sessionId) {
|
|
988
973
|
await this.ensureInitialized();
|
|
989
|
-
|
|
990
|
-
return await this.services.storageManager.getDatabase().get(sessionKey);
|
|
974
|
+
return await this.services.sessionStore.getSession({ sessionId });
|
|
991
975
|
}
|
|
992
976
|
/**
|
|
993
977
|
* Cleanup all sessions and resources.
|
|
@@ -5,14 +5,15 @@ import { AgentEventBus } from '../events/index.js';
|
|
|
5
5
|
import type { Logger } from '../logger/v2/types.js';
|
|
6
6
|
import type { AgentStateManager } from '../agent/state-manager.js';
|
|
7
7
|
import type { ValidatedLLMConfig } from '../llm/schemas.js';
|
|
8
|
-
import type { StorageManager } from '../storage/index.js';
|
|
9
8
|
import type { HookManager } from '../hooks/manager.js';
|
|
10
9
|
import type { ApprovalManager } from '../approval/manager.js';
|
|
11
10
|
import type { TokenUsage } from '../llm/types.js';
|
|
12
11
|
import type { LanguageModelFactory } from '../llm/services/types.js';
|
|
13
12
|
import type { CompactionStrategy } from '../context/compaction/types.js';
|
|
14
13
|
import { type SessionPromptContributor } from '../systemPrompt/schemas.js';
|
|
15
|
-
import type {
|
|
14
|
+
import type { SessionMessageQueueStore } from '../storage/message-queue/types.js';
|
|
15
|
+
import type { ConversationStore } from '../storage/conversation/types.js';
|
|
16
|
+
import type { SessionStore } from '../storage/sessions/types.js';
|
|
16
17
|
export type SessionLoggerFactory = (options: {
|
|
17
18
|
baseLogger: Logger;
|
|
18
19
|
agentId: string;
|
|
@@ -96,14 +97,12 @@ export declare class SessionManager {
|
|
|
96
97
|
private sessions;
|
|
97
98
|
private readonly maxSessions;
|
|
98
99
|
private readonly sessionTTL;
|
|
99
|
-
private static readonly MESSAGE_QUEUE_KEY_PREFIX;
|
|
100
100
|
private initialized;
|
|
101
101
|
private cleanupInterval?;
|
|
102
102
|
private initializationPromise;
|
|
103
103
|
private readonly pendingCreations;
|
|
104
104
|
private readonly sessionDataLocks;
|
|
105
105
|
private logger;
|
|
106
|
-
private static readonly FORK_HISTORY_BATCH_SIZE;
|
|
107
106
|
private static readonly FORK_ID_GENERATION_MAX_ATTEMPTS;
|
|
108
107
|
private static readonly FORK_TITLE_PREFIX;
|
|
109
108
|
private static readonly FORK_PARENT_ID_PREVIEW_LENGTH;
|
|
@@ -115,11 +114,13 @@ export declare class SessionManager {
|
|
|
115
114
|
toolManager: ToolManager;
|
|
116
115
|
approvalManager: ApprovalManager;
|
|
117
116
|
agentEventBus: AgentEventBus;
|
|
118
|
-
|
|
117
|
+
sessionStore: SessionStore;
|
|
118
|
+
conversationStore: ConversationStore;
|
|
119
119
|
resourceManager: import('../resources/index.js').ResourceManager;
|
|
120
120
|
hookManager: HookManager;
|
|
121
121
|
mcpManager: import('../mcp/manager.js').MCPManager;
|
|
122
|
-
|
|
122
|
+
steerQueueStore: SessionMessageQueueStore;
|
|
123
|
+
followUpQueueStore: SessionMessageQueueStore;
|
|
123
124
|
compactionStrategy: CompactionStrategy | null;
|
|
124
125
|
workspaceManager?: import('../workspace/manager.js').WorkspaceManager;
|
|
125
126
|
}, config: SessionManagerConfig | undefined, logger: Logger);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/session/session-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/session/session-manager.ts"],"names":[],"mappings":"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"}
|