@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
|
@@ -79,9 +79,9 @@ var import_crypto = require("crypto");
|
|
|
79
79
|
var import_events = require("events");
|
|
80
80
|
var import_zod = require("zod");
|
|
81
81
|
var import_contributors = require("../systemPrompt/contributors.js");
|
|
82
|
+
var import_skills = require("../skills/index.js");
|
|
82
83
|
var import_resources = require("../resources/index.js");
|
|
83
84
|
var import_utils = require("../context/utils.js");
|
|
84
|
-
var import_storage = require("../storage/index.js");
|
|
85
85
|
var import_prompts = require("../prompts/index.js");
|
|
86
86
|
var import_session = require("../session/index.js");
|
|
87
87
|
var import_decorators = require("../telemetry/decorators.js");
|
|
@@ -153,6 +153,7 @@ let _DextoAgent = class _DextoAgent {
|
|
|
153
153
|
systemPromptManager;
|
|
154
154
|
agentEventBus;
|
|
155
155
|
promptManager;
|
|
156
|
+
skillManager;
|
|
156
157
|
stateManager;
|
|
157
158
|
sessionManager;
|
|
158
159
|
workspaceManager;
|
|
@@ -171,7 +172,7 @@ let _DextoAgent = class _DextoAgent {
|
|
|
171
172
|
eventSubscribers = /* @__PURE__ */ new Set();
|
|
172
173
|
// Telemetry instance for distributed tracing
|
|
173
174
|
telemetry;
|
|
174
|
-
// Approval handler for manual tool
|
|
175
|
+
// Approval handler for manual tool approval and elicitation
|
|
175
176
|
// Set via setApprovalHandler() before start() if needed
|
|
176
177
|
approvalHandler;
|
|
177
178
|
mcpAuthProviderFactory = null;
|
|
@@ -182,6 +183,7 @@ let _DextoAgent = class _DextoAgent {
|
|
|
182
183
|
toolkitLoader;
|
|
183
184
|
loadedToolkits = /* @__PURE__ */ new Set();
|
|
184
185
|
loadingToolkits = /* @__PURE__ */ new Set();
|
|
186
|
+
skillSources;
|
|
185
187
|
// DI-provided local tools.
|
|
186
188
|
tools;
|
|
187
189
|
compactionStrategy;
|
|
@@ -231,7 +233,7 @@ let _DextoAgent = class _DextoAgent {
|
|
|
231
233
|
constructor(options) {
|
|
232
234
|
const {
|
|
233
235
|
logger,
|
|
234
|
-
|
|
236
|
+
stores,
|
|
235
237
|
tools: toolsInput,
|
|
236
238
|
hooks: hooksInput,
|
|
237
239
|
compaction,
|
|
@@ -245,21 +247,15 @@ let _DextoAgent = class _DextoAgent {
|
|
|
245
247
|
this.tools = tools;
|
|
246
248
|
this.compactionStrategy = compaction ?? null;
|
|
247
249
|
const overrides = { ...overridesInput ?? {} };
|
|
248
|
-
if (overrides.
|
|
249
|
-
overrides.
|
|
250
|
-
{
|
|
251
|
-
cache: storage.cache,
|
|
252
|
-
database: storage.database,
|
|
253
|
-
blobStore: storage.blob
|
|
254
|
-
},
|
|
255
|
-
this.logger
|
|
256
|
-
);
|
|
250
|
+
if (overrides.stores === void 0) {
|
|
251
|
+
overrides.stores = stores;
|
|
257
252
|
}
|
|
258
253
|
if (overrides.hooks === void 0) {
|
|
259
254
|
overrides.hooks = hooks;
|
|
260
255
|
}
|
|
261
256
|
this.overrides = overrides;
|
|
262
257
|
this.toolkitLoader = options.toolkitLoader;
|
|
258
|
+
this.skillSources = options.skillSources ?? [];
|
|
263
259
|
if (overrides.mcpAuthProviderFactory !== void 0) {
|
|
264
260
|
this.mcpAuthProviderFactory = overrides.mcpAuthProviderFactory;
|
|
265
261
|
}
|
|
@@ -309,7 +305,7 @@ let _DextoAgent = class _DextoAgent {
|
|
|
309
305
|
`An approval handler is required but not configured (${reasons.join(" and ")}).
|
|
310
306
|
Either:
|
|
311
307
|
\u2022 Call agent.setApprovalHandler() before starting
|
|
312
|
-
\u2022 Set permissions: { mode: "auto-approve" }
|
|
308
|
+
\u2022 Set permissions: { mode: "auto-approve" }
|
|
313
309
|
\u2022 Disable elicitation: { enabled: false }`
|
|
314
310
|
);
|
|
315
311
|
}
|
|
@@ -332,23 +328,24 @@ Either:
|
|
|
332
328
|
this.resourceManager,
|
|
333
329
|
this.config,
|
|
334
330
|
this.agentEventBus,
|
|
335
|
-
services.
|
|
331
|
+
services.stores,
|
|
336
332
|
this.logger
|
|
337
333
|
);
|
|
338
334
|
await promptManager.initialize();
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
};
|
|
335
|
+
const skillManager = new import_skills.CompositeSkillManager([
|
|
336
|
+
...this.skillSources,
|
|
337
|
+
new import_skills.WorkspaceSkillSource(services.workspaceManager)
|
|
338
|
+
]);
|
|
339
|
+
Object.assign(this, { promptManager, skillManager });
|
|
345
340
|
const toolExecutionServices = {
|
|
346
341
|
approval: services.approvalManager,
|
|
347
342
|
search: services.searchService,
|
|
348
343
|
resources: services.resourceManager,
|
|
349
344
|
prompts: promptManager,
|
|
345
|
+
skills: skillManager,
|
|
350
346
|
mcp: services.mcpManager,
|
|
351
|
-
taskForker: null
|
|
347
|
+
taskForker: null,
|
|
348
|
+
workspaceManager: services.workspaceManager
|
|
352
349
|
};
|
|
353
350
|
services.toolManager.setToolExecutionContextFactory((baseContext) => ({
|
|
354
351
|
...baseContext,
|
|
@@ -356,7 +353,7 @@ Either:
|
|
|
356
353
|
hostRuntime: baseContext.runContext.hostRuntime
|
|
357
354
|
},
|
|
358
355
|
agent: this,
|
|
359
|
-
|
|
356
|
+
toolState: services.stores.getStore("toolState"),
|
|
360
357
|
services: toolExecutionServices
|
|
361
358
|
}));
|
|
362
359
|
const agentTools = this.tools;
|
|
@@ -365,7 +362,7 @@ Either:
|
|
|
365
362
|
"skills",
|
|
366
363
|
50,
|
|
367
364
|
// Priority after memories (40) but before most other content
|
|
368
|
-
|
|
365
|
+
skillManager,
|
|
369
366
|
this.logger
|
|
370
367
|
);
|
|
371
368
|
services.systemPromptManager.addContributor(skillsContributor);
|
|
@@ -451,13 +448,13 @@ Either:
|
|
|
451
448
|
shutdownErrors.push(new Error(`ResourceManager cleanup failed: ${err.message}`));
|
|
452
449
|
}
|
|
453
450
|
try {
|
|
454
|
-
if (this.services?.
|
|
455
|
-
await this.services.
|
|
456
|
-
this.logger.debug("
|
|
451
|
+
if (this.services?.stores) {
|
|
452
|
+
await this.services.stores.disconnect();
|
|
453
|
+
this.logger.debug("Stores disconnected successfully");
|
|
457
454
|
}
|
|
458
455
|
} catch (error) {
|
|
459
456
|
const err = error instanceof Error ? error : new Error(String(error));
|
|
460
|
-
shutdownErrors.push(new Error(`
|
|
457
|
+
shutdownErrors.push(new Error(`Store disconnect failed: ${err.message}`));
|
|
461
458
|
}
|
|
462
459
|
this._isStopped = true;
|
|
463
460
|
this._isStarted = false;
|
|
@@ -651,7 +648,7 @@ Either:
|
|
|
651
648
|
return {
|
|
652
649
|
toolName: tc.toolName,
|
|
653
650
|
args: tc.args,
|
|
654
|
-
callId: tc.callId
|
|
651
|
+
callId: tc.callId,
|
|
655
652
|
result: toolResult ? {
|
|
656
653
|
success: toolResult.success,
|
|
657
654
|
data: toolResult.sanitized
|
|
@@ -743,6 +740,7 @@ Either:
|
|
|
743
740
|
let contentParts = typeof content === "string" ? [{ type: "text", text: content }] : [...content];
|
|
744
741
|
const eventQueue = [];
|
|
745
742
|
let completed = false;
|
|
743
|
+
let terminalError;
|
|
746
744
|
let sawFatalErrorEvent = false;
|
|
747
745
|
let sawRunCompleteEvent = false;
|
|
748
746
|
const controller = new AbortController();
|
|
@@ -817,10 +815,16 @@ Either:
|
|
|
817
815
|
eventQueue.push({ name: "llm:tool-result", ...data });
|
|
818
816
|
};
|
|
819
817
|
addStreamingListener("llm:tool-result", toolResultListener);
|
|
818
|
+
const retryingListener = (data) => {
|
|
819
|
+
if (data.sessionId !== sessionId) return;
|
|
820
|
+
eventQueue.push({ name: "llm:retrying", ...data });
|
|
821
|
+
};
|
|
822
|
+
addStreamingListener("llm:retrying", retryingListener);
|
|
820
823
|
const errorListener = (data) => {
|
|
821
824
|
if (data.sessionId !== sessionId) return;
|
|
822
825
|
if (data.recoverable !== true) {
|
|
823
826
|
sawFatalErrorEvent = true;
|
|
827
|
+
terminalError = data.error;
|
|
824
828
|
}
|
|
825
829
|
eventQueue.push({ name: "llm:error", ...data });
|
|
826
830
|
};
|
|
@@ -878,6 +882,9 @@ Either:
|
|
|
878
882
|
const runCompleteListener = (data) => {
|
|
879
883
|
if (data.sessionId !== sessionId) return;
|
|
880
884
|
sawRunCompleteEvent = true;
|
|
885
|
+
if (data.finishReason === "error" && data.error !== void 0) {
|
|
886
|
+
terminalError = data.error;
|
|
887
|
+
}
|
|
881
888
|
eventQueue.push({ name: "run:complete", ...data });
|
|
882
889
|
completed = true;
|
|
883
890
|
};
|
|
@@ -1054,6 +1061,7 @@ Either:
|
|
|
1054
1061
|
return;
|
|
1055
1062
|
}
|
|
1056
1063
|
completed = true;
|
|
1064
|
+
terminalError = error;
|
|
1057
1065
|
this.logger.error(`Error in DextoAgent.stream: ${error.message}`);
|
|
1058
1066
|
const errorEvent = {
|
|
1059
1067
|
name: "llm:error",
|
|
@@ -1083,6 +1091,9 @@ Either:
|
|
|
1083
1091
|
if (completed) {
|
|
1084
1092
|
cleanupListeners();
|
|
1085
1093
|
controller.abort();
|
|
1094
|
+
if (terminalError !== void 0) {
|
|
1095
|
+
throw terminalError;
|
|
1096
|
+
}
|
|
1086
1097
|
return { done: true, value: void 0 };
|
|
1087
1098
|
}
|
|
1088
1099
|
cleanupListeners();
|
|
@@ -1110,61 +1121,129 @@ Either:
|
|
|
1110
1121
|
return session?.isBusy?.() ?? false;
|
|
1111
1122
|
}
|
|
1112
1123
|
/**
|
|
1113
|
-
* Queue a message
|
|
1114
|
-
* The message
|
|
1124
|
+
* Queue a message as active-turn steer input for a session.
|
|
1125
|
+
* The message is injected at the next executor boundary while the current turn is active.
|
|
1115
1126
|
*
|
|
1116
1127
|
* @param sessionId Session id
|
|
1117
|
-
* @param message The user message to
|
|
1128
|
+
* @param message The user message to use as steer input
|
|
1118
1129
|
* @returns Queue position and message ID
|
|
1119
|
-
* @throws Error if session doesn't support message queueing
|
|
1120
1130
|
*/
|
|
1121
|
-
async
|
|
1131
|
+
async steer(sessionId, message) {
|
|
1132
|
+
this.ensureStarted();
|
|
1133
|
+
const session = await this.sessionManager.getSession(sessionId, false);
|
|
1134
|
+
if (!session) {
|
|
1135
|
+
throw import_session.SessionError.notFound(sessionId);
|
|
1136
|
+
}
|
|
1137
|
+
return session.steer(message);
|
|
1138
|
+
}
|
|
1139
|
+
/**
|
|
1140
|
+
* Queue a message as follow-up work for a session.
|
|
1141
|
+
* The message is processed only after the active turn would otherwise stop.
|
|
1142
|
+
*
|
|
1143
|
+
* @param sessionId Session id
|
|
1144
|
+
* @param message The user message to queue as follow-up work
|
|
1145
|
+
* @returns Queue position and message ID
|
|
1146
|
+
*/
|
|
1147
|
+
async followUp(sessionId, message) {
|
|
1148
|
+
this.ensureStarted();
|
|
1149
|
+
const session = await this.sessionManager.getSession(sessionId, false);
|
|
1150
|
+
if (!session) {
|
|
1151
|
+
throw import_session.SessionError.notFound(sessionId);
|
|
1152
|
+
}
|
|
1153
|
+
return session.followUp(message);
|
|
1154
|
+
}
|
|
1155
|
+
/**
|
|
1156
|
+
* Get all steer messages for a session.
|
|
1157
|
+
* @param sessionId Session id
|
|
1158
|
+
* @returns Array of steer messages
|
|
1159
|
+
*/
|
|
1160
|
+
async getSteerMessages(sessionId) {
|
|
1161
|
+
this.ensureStarted();
|
|
1162
|
+
const session = await this.sessionManager.getSession(sessionId, false);
|
|
1163
|
+
if (!session) {
|
|
1164
|
+
throw import_session.SessionError.notFound(sessionId);
|
|
1165
|
+
}
|
|
1166
|
+
return session.getSteerMessages();
|
|
1167
|
+
}
|
|
1168
|
+
/**
|
|
1169
|
+
* Get all follow-up messages for a session.
|
|
1170
|
+
* @param sessionId Session id
|
|
1171
|
+
* @returns Array of follow-up messages
|
|
1172
|
+
*/
|
|
1173
|
+
async getFollowUpMessages(sessionId) {
|
|
1122
1174
|
this.ensureStarted();
|
|
1123
1175
|
const session = await this.sessionManager.getSession(sessionId, false);
|
|
1124
1176
|
if (!session) {
|
|
1125
1177
|
throw import_session.SessionError.notFound(sessionId);
|
|
1126
1178
|
}
|
|
1127
|
-
return session.
|
|
1179
|
+
return session.getFollowUpMessages();
|
|
1128
1180
|
}
|
|
1129
1181
|
/**
|
|
1130
|
-
*
|
|
1182
|
+
* Remove a steer message.
|
|
1131
1183
|
* @param sessionId Session id
|
|
1132
|
-
* @
|
|
1184
|
+
* @param messageId The ID of the steer message to remove
|
|
1185
|
+
* @returns true if message was found and removed, false otherwise
|
|
1133
1186
|
*/
|
|
1134
|
-
async
|
|
1187
|
+
async removeSteerMessage(sessionId, messageId) {
|
|
1135
1188
|
this.ensureStarted();
|
|
1136
1189
|
const session = await this.sessionManager.getSession(sessionId, false);
|
|
1137
1190
|
if (!session) {
|
|
1138
1191
|
throw import_session.SessionError.notFound(sessionId);
|
|
1139
1192
|
}
|
|
1140
|
-
return session.
|
|
1193
|
+
return session.removeSteerMessage(messageId);
|
|
1141
1194
|
}
|
|
1142
1195
|
/**
|
|
1143
|
-
* Remove a
|
|
1196
|
+
* Remove a follow-up message.
|
|
1144
1197
|
* @param sessionId Session id
|
|
1145
|
-
* @param messageId The ID of the
|
|
1198
|
+
* @param messageId The ID of the follow-up message to remove
|
|
1146
1199
|
* @returns true if message was found and removed, false otherwise
|
|
1147
1200
|
*/
|
|
1148
|
-
async
|
|
1201
|
+
async removeFollowUpMessage(sessionId, messageId) {
|
|
1202
|
+
this.ensureStarted();
|
|
1203
|
+
const session = await this.sessionManager.getSession(sessionId, false);
|
|
1204
|
+
if (!session) {
|
|
1205
|
+
throw import_session.SessionError.notFound(sessionId);
|
|
1206
|
+
}
|
|
1207
|
+
return session.removeFollowUpMessage(messageId);
|
|
1208
|
+
}
|
|
1209
|
+
/**
|
|
1210
|
+
* Clear all steer messages for a session.
|
|
1211
|
+
* @param sessionId Session id
|
|
1212
|
+
* @returns Number of messages that were cleared
|
|
1213
|
+
*/
|
|
1214
|
+
async clearSteerQueue(sessionId) {
|
|
1149
1215
|
this.ensureStarted();
|
|
1150
1216
|
const session = await this.sessionManager.getSession(sessionId, false);
|
|
1151
1217
|
if (!session) {
|
|
1152
1218
|
throw import_session.SessionError.notFound(sessionId);
|
|
1153
1219
|
}
|
|
1154
|
-
return session.
|
|
1220
|
+
return session.clearSteerQueue();
|
|
1155
1221
|
}
|
|
1156
1222
|
/**
|
|
1157
|
-
* Clear all
|
|
1223
|
+
* Clear all follow-up messages for a session.
|
|
1158
1224
|
* @param sessionId Session id
|
|
1159
1225
|
* @returns Number of messages that were cleared
|
|
1160
1226
|
*/
|
|
1161
|
-
async
|
|
1227
|
+
async clearFollowUpQueue(sessionId) {
|
|
1162
1228
|
this.ensureStarted();
|
|
1163
1229
|
const session = await this.sessionManager.getSession(sessionId, false);
|
|
1164
1230
|
if (!session) {
|
|
1165
1231
|
throw import_session.SessionError.notFound(sessionId);
|
|
1166
1232
|
}
|
|
1167
|
-
return session.
|
|
1233
|
+
return session.clearFollowUpQueue();
|
|
1234
|
+
}
|
|
1235
|
+
/**
|
|
1236
|
+
* Clear all pending steer and follow-up input for a session.
|
|
1237
|
+
* @param sessionId Session id
|
|
1238
|
+
* @returns Number of messages that were cleared
|
|
1239
|
+
*/
|
|
1240
|
+
async clearPendingInput(sessionId) {
|
|
1241
|
+
this.ensureStarted();
|
|
1242
|
+
const session = await this.sessionManager.getSession(sessionId, false);
|
|
1243
|
+
if (!session) {
|
|
1244
|
+
throw import_session.SessionError.notFound(sessionId);
|
|
1245
|
+
}
|
|
1246
|
+
return session.clearPendingInput();
|
|
1168
1247
|
}
|
|
1169
1248
|
/**
|
|
1170
1249
|
* Cancels the currently running turn for a session.
|
|
@@ -1328,6 +1407,16 @@ Either:
|
|
|
1328
1407
|
* @returns Promise that resolves to the generated title, or null if generation failed
|
|
1329
1408
|
*/
|
|
1330
1409
|
async generateSessionTitle(sessionId) {
|
|
1410
|
+
const result = await this.generateSessionTitleDetails(sessionId);
|
|
1411
|
+
return result?.title ?? null;
|
|
1412
|
+
}
|
|
1413
|
+
/**
|
|
1414
|
+
* Generate a title for a session and report whether it came from the LLM or heuristic fallback.
|
|
1415
|
+
*
|
|
1416
|
+
* @param sessionId Session ID to generate title for
|
|
1417
|
+
* @returns Promise that resolves to title details, or null if generation failed
|
|
1418
|
+
*/
|
|
1419
|
+
async generateSessionTitleDetails(sessionId) {
|
|
1331
1420
|
this.ensureStarted();
|
|
1332
1421
|
const metadata = await this.sessionManager.getSessionMetadata(sessionId);
|
|
1333
1422
|
if (!metadata) {
|
|
@@ -1337,7 +1426,10 @@ Either:
|
|
|
1337
1426
|
this.logger.debug(
|
|
1338
1427
|
`[SessionTitle] Session ${sessionId} already has title '${metadata.title}'`
|
|
1339
1428
|
);
|
|
1340
|
-
return
|
|
1429
|
+
return {
|
|
1430
|
+
source: "existing",
|
|
1431
|
+
title: metadata.title
|
|
1432
|
+
};
|
|
1341
1433
|
}
|
|
1342
1434
|
const session = await this.sessionManager.getSession(sessionId);
|
|
1343
1435
|
if (!session) {
|
|
@@ -1355,24 +1447,25 @@ Either:
|
|
|
1355
1447
|
return null;
|
|
1356
1448
|
}
|
|
1357
1449
|
const llmConfig = this.getEffectiveConfig(sessionId).llm;
|
|
1358
|
-
const result = await (0, import_title_generator.generateSessionTitle)(
|
|
1359
|
-
|
|
1360
|
-
this.
|
|
1361
|
-
|
|
1362
|
-
this.resourceManager,
|
|
1363
|
-
userText,
|
|
1364
|
-
this.logger,
|
|
1365
|
-
{
|
|
1366
|
-
...this.overrides.languageModelFactory !== void 0 && {
|
|
1367
|
-
languageModelFactory: this.overrides.languageModelFactory
|
|
1368
|
-
}
|
|
1450
|
+
const result = await (0, import_title_generator.generateSessionTitle)(llmConfig, userText, this.logger, {
|
|
1451
|
+
providerContext: { sessionId },
|
|
1452
|
+
...this.overrides.languageModelFactory !== void 0 && {
|
|
1453
|
+
languageModelFactory: this.overrides.languageModelFactory
|
|
1369
1454
|
}
|
|
1370
|
-
);
|
|
1455
|
+
});
|
|
1371
1456
|
let title = result.title;
|
|
1372
1457
|
if (!title) {
|
|
1373
1458
|
title = (0, import_title_generator.deriveHeuristicTitle)(userText);
|
|
1374
1459
|
if (title) {
|
|
1375
1460
|
this.logger.info(`[SessionTitle] Using heuristic title for ${sessionId}: ${title}`);
|
|
1461
|
+
const details = {
|
|
1462
|
+
...result.error !== void 0 && { reason: result.error },
|
|
1463
|
+
...result.timedOut !== void 0 && { timedOut: result.timedOut },
|
|
1464
|
+
source: "heuristic",
|
|
1465
|
+
title
|
|
1466
|
+
};
|
|
1467
|
+
await this.sessionManager.setSessionTitle(sessionId, title, { ifUnsetOnly: true });
|
|
1468
|
+
return details;
|
|
1376
1469
|
} else {
|
|
1377
1470
|
this.logger.debug(`[SessionTitle] No suitable title derived for ${sessionId}`);
|
|
1378
1471
|
return null;
|
|
@@ -1381,7 +1474,10 @@ Either:
|
|
|
1381
1474
|
this.logger.info(`[SessionTitle] Generated LLM title for ${sessionId}: ${title}`);
|
|
1382
1475
|
}
|
|
1383
1476
|
await this.sessionManager.setSessionTitle(sessionId, title, { ifUnsetOnly: true });
|
|
1384
|
-
return
|
|
1477
|
+
return {
|
|
1478
|
+
source: "llm",
|
|
1479
|
+
title
|
|
1480
|
+
};
|
|
1385
1481
|
}
|
|
1386
1482
|
/**
|
|
1387
1483
|
* Gets the conversation history for a specific session.
|
|
@@ -2639,11 +2735,10 @@ Either:
|
|
|
2639
2735
|
* - Prompt key resolution (resolving aliases)
|
|
2640
2736
|
* - Argument normalization (including special _context field)
|
|
2641
2737
|
* - Prompt execution and flattening
|
|
2642
|
-
* - Returning per-prompt overrides (allowedTools, model) for the invoker to apply
|
|
2643
2738
|
*
|
|
2644
2739
|
* @param name The prompt name or alias
|
|
2645
2740
|
* @param options Optional configuration for prompt resolution
|
|
2646
|
-
* @returns Promise resolving to the resolved text
|
|
2741
|
+
* @returns Promise resolving to the resolved text and resource URIs.
|
|
2647
2742
|
*/
|
|
2648
2743
|
async resolvePrompt(name, options = {}) {
|
|
2649
2744
|
this.ensureStarted();
|
|
@@ -2671,7 +2766,7 @@ Either:
|
|
|
2671
2766
|
* Set a custom approval handler for manual approval mode.
|
|
2672
2767
|
*
|
|
2673
2768
|
* When `permissions.mode` is set to 'manual', an approval handler must be
|
|
2674
|
-
* provided to process tool
|
|
2769
|
+
* provided to process tool approval requests. The handler will be called
|
|
2675
2770
|
* whenever a tool execution requires user approval.
|
|
2676
2771
|
*
|
|
2677
2772
|
* The handler receives an approval request and must return a promise that resolves
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { MCPManager } from '../mcp/manager.js';
|
|
2
2
|
import { ToolManager } from '../tools/tool-manager.js';
|
|
3
3
|
import { SystemPromptManager } from '../systemPrompt/manager.js';
|
|
4
|
+
import { type SkillManager } from '../skills/index.js';
|
|
4
5
|
import { ResourceManager } from '../resources/index.js';
|
|
5
6
|
import type { InternalMessage } from '../context/types.js';
|
|
6
7
|
import { PromptManager } from '../prompts/index.js';
|
|
7
8
|
import type { PromptsConfig } from '../prompts/schemas.js';
|
|
8
9
|
import { AgentStateManager } from './state-manager.js';
|
|
9
10
|
import { SessionManager, ChatSession } from '../session/index.js';
|
|
10
|
-
import type { SessionMetadata } from '../session/index.js';
|
|
11
|
+
import type { QueuedMessage, SessionMetadata } from '../session/index.js';
|
|
12
|
+
import type { UserMessageInput } from '../session/message-queue.js';
|
|
11
13
|
import { AgentServices } from '../utils/service-initializer.js';
|
|
12
14
|
import type { Logger, LogLevel } from '../logger/v2/types.js';
|
|
13
15
|
import type { McpServerConfig, McpServerStatus, ValidatedMcpServerConfig } from '../mcp/schemas.js';
|
|
@@ -30,6 +32,13 @@ import type { SetWorkspaceInput, WorkspaceContext } from '../workspace/types.js'
|
|
|
30
32
|
export interface AgentEventSubscriber {
|
|
31
33
|
subscribe(eventBus: AgentEventBus): void;
|
|
32
34
|
}
|
|
35
|
+
export type SessionTitleSource = 'existing' | 'llm' | 'heuristic';
|
|
36
|
+
export interface SessionTitleGenerationDetails {
|
|
37
|
+
title: string;
|
|
38
|
+
source: SessionTitleSource;
|
|
39
|
+
reason?: string;
|
|
40
|
+
timedOut?: boolean;
|
|
41
|
+
}
|
|
33
42
|
/**
|
|
34
43
|
* The main entry point into Dexto's core functionality.
|
|
35
44
|
*
|
|
@@ -97,6 +106,7 @@ export declare class DextoAgent {
|
|
|
97
106
|
readonly systemPromptManager: SystemPromptManager;
|
|
98
107
|
private readonly agentEventBus;
|
|
99
108
|
readonly promptManager: PromptManager;
|
|
109
|
+
readonly skillManager: SkillManager;
|
|
100
110
|
readonly stateManager: AgentStateManager;
|
|
101
111
|
readonly sessionManager: SessionManager;
|
|
102
112
|
readonly workspaceManager: WorkspaceManager;
|
|
@@ -117,6 +127,7 @@ export declare class DextoAgent {
|
|
|
117
127
|
private readonly toolkitLoader;
|
|
118
128
|
private readonly loadedToolkits;
|
|
119
129
|
private readonly loadingToolkits;
|
|
130
|
+
private readonly skillSources;
|
|
120
131
|
private tools;
|
|
121
132
|
private readonly compactionStrategy;
|
|
122
133
|
readonly logger: Logger;
|
|
@@ -282,38 +293,75 @@ export declare class DextoAgent {
|
|
|
282
293
|
*/
|
|
283
294
|
isSessionBusy(sessionId: string): Promise<boolean>;
|
|
284
295
|
/**
|
|
285
|
-
* Queue a message
|
|
286
|
-
* The message
|
|
296
|
+
* Queue a message as active-turn steer input for a session.
|
|
297
|
+
* The message is injected at the next executor boundary while the current turn is active.
|
|
287
298
|
*
|
|
288
299
|
* @param sessionId Session id
|
|
289
|
-
* @param message The user message to
|
|
300
|
+
* @param message The user message to use as steer input
|
|
290
301
|
* @returns Queue position and message ID
|
|
291
|
-
* @throws Error if session doesn't support message queueing
|
|
292
302
|
*/
|
|
293
|
-
|
|
303
|
+
steer(sessionId: string, message: UserMessageInput): Promise<{
|
|
294
304
|
queued: true;
|
|
295
305
|
position: number;
|
|
296
306
|
id: string;
|
|
297
307
|
}>;
|
|
298
308
|
/**
|
|
299
|
-
*
|
|
309
|
+
* Queue a message as follow-up work for a session.
|
|
310
|
+
* The message is processed only after the active turn would otherwise stop.
|
|
311
|
+
*
|
|
300
312
|
* @param sessionId Session id
|
|
301
|
-
* @
|
|
313
|
+
* @param message The user message to queue as follow-up work
|
|
314
|
+
* @returns Queue position and message ID
|
|
302
315
|
*/
|
|
303
|
-
|
|
316
|
+
followUp(sessionId: string, message: UserMessageInput): Promise<{
|
|
317
|
+
queued: true;
|
|
318
|
+
position: number;
|
|
319
|
+
id: string;
|
|
320
|
+
}>;
|
|
304
321
|
/**
|
|
305
|
-
*
|
|
322
|
+
* Get all steer messages for a session.
|
|
306
323
|
* @param sessionId Session id
|
|
307
|
-
* @
|
|
324
|
+
* @returns Array of steer messages
|
|
325
|
+
*/
|
|
326
|
+
getSteerMessages(sessionId: string): Promise<QueuedMessage[]>;
|
|
327
|
+
/**
|
|
328
|
+
* Get all follow-up messages for a session.
|
|
329
|
+
* @param sessionId Session id
|
|
330
|
+
* @returns Array of follow-up messages
|
|
331
|
+
*/
|
|
332
|
+
getFollowUpMessages(sessionId: string): Promise<QueuedMessage[]>;
|
|
333
|
+
/**
|
|
334
|
+
* Remove a steer message.
|
|
335
|
+
* @param sessionId Session id
|
|
336
|
+
* @param messageId The ID of the steer message to remove
|
|
308
337
|
* @returns true if message was found and removed, false otherwise
|
|
309
338
|
*/
|
|
310
|
-
|
|
339
|
+
removeSteerMessage(sessionId: string, messageId: string): Promise<boolean>;
|
|
311
340
|
/**
|
|
312
|
-
*
|
|
341
|
+
* Remove a follow-up message.
|
|
342
|
+
* @param sessionId Session id
|
|
343
|
+
* @param messageId The ID of the follow-up message to remove
|
|
344
|
+
* @returns true if message was found and removed, false otherwise
|
|
345
|
+
*/
|
|
346
|
+
removeFollowUpMessage(sessionId: string, messageId: string): Promise<boolean>;
|
|
347
|
+
/**
|
|
348
|
+
* Clear all steer messages for a session.
|
|
349
|
+
* @param sessionId Session id
|
|
350
|
+
* @returns Number of messages that were cleared
|
|
351
|
+
*/
|
|
352
|
+
clearSteerQueue(sessionId: string): Promise<number>;
|
|
353
|
+
/**
|
|
354
|
+
* Clear all follow-up messages for a session.
|
|
355
|
+
* @param sessionId Session id
|
|
356
|
+
* @returns Number of messages that were cleared
|
|
357
|
+
*/
|
|
358
|
+
clearFollowUpQueue(sessionId: string): Promise<number>;
|
|
359
|
+
/**
|
|
360
|
+
* Clear all pending steer and follow-up input for a session.
|
|
313
361
|
* @param sessionId Session id
|
|
314
362
|
* @returns Number of messages that were cleared
|
|
315
363
|
*/
|
|
316
|
-
|
|
364
|
+
clearPendingInput(sessionId: string): Promise<number>;
|
|
317
365
|
/**
|
|
318
366
|
* Cancels the currently running turn for a session.
|
|
319
367
|
* Safe to call even if no run is in progress.
|
|
@@ -405,6 +453,13 @@ export declare class DextoAgent {
|
|
|
405
453
|
* @returns Promise that resolves to the generated title, or null if generation failed
|
|
406
454
|
*/
|
|
407
455
|
generateSessionTitle(sessionId: string): Promise<string | null>;
|
|
456
|
+
/**
|
|
457
|
+
* Generate a title for a session and report whether it came from the LLM or heuristic fallback.
|
|
458
|
+
*
|
|
459
|
+
* @param sessionId Session ID to generate title for
|
|
460
|
+
* @returns Promise that resolves to title details, or null if generation failed
|
|
461
|
+
*/
|
|
462
|
+
generateSessionTitleDetails(sessionId: string): Promise<SessionTitleGenerationDetails | null>;
|
|
408
463
|
/**
|
|
409
464
|
* Gets the conversation history for a specific session.
|
|
410
465
|
* @param sessionId The session ID
|
|
@@ -921,11 +976,10 @@ export declare class DextoAgent {
|
|
|
921
976
|
* - Prompt key resolution (resolving aliases)
|
|
922
977
|
* - Argument normalization (including special _context field)
|
|
923
978
|
* - Prompt execution and flattening
|
|
924
|
-
* - Returning per-prompt overrides (allowedTools, model) for the invoker to apply
|
|
925
979
|
*
|
|
926
980
|
* @param name The prompt name or alias
|
|
927
981
|
* @param options Optional configuration for prompt resolution
|
|
928
|
-
* @returns Promise resolving to the resolved text
|
|
982
|
+
* @returns Promise resolving to the resolved text and resource URIs.
|
|
929
983
|
*/
|
|
930
984
|
resolvePrompt(name: string, options?: {
|
|
931
985
|
context?: string;
|
|
@@ -943,7 +997,7 @@ export declare class DextoAgent {
|
|
|
943
997
|
* Set a custom approval handler for manual approval mode.
|
|
944
998
|
*
|
|
945
999
|
* When `permissions.mode` is set to 'manual', an approval handler must be
|
|
946
|
-
* provided to process tool
|
|
1000
|
+
* provided to process tool approval requests. The handler will be called
|
|
947
1001
|
* whenever a tool execution requires user approval.
|
|
948
1002
|
*
|
|
949
1003
|
* The handler receives an approval request and must return a promise that resolves
|