@dexto/core 1.7.2 → 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 +44 -33
- package/dist/context/manager.d.ts +7 -7
- package/dist/context/manager.d.ts.map +1 -1
- package/dist/context/manager.js +45 -34
- 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
package/dist/context/utils.cjs
CHANGED
|
@@ -50,6 +50,7 @@ __export(utils_exports, {
|
|
|
50
50
|
});
|
|
51
51
|
module.exports = __toCommonJS(utils_exports);
|
|
52
52
|
var import_types = require("./types.js");
|
|
53
|
+
var import_content_clone = require("./content-clone.js");
|
|
53
54
|
var import_display_types = require("../tools/display-types.js");
|
|
54
55
|
var import_registry = require("../llm/registry/index.js");
|
|
55
56
|
var import_safe_stringify = require("../utils/safe-stringify.js");
|
|
@@ -77,28 +78,7 @@ function generateUniqueSuffix() {
|
|
|
77
78
|
return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 6)}`;
|
|
78
79
|
}
|
|
79
80
|
function clonePart(part) {
|
|
80
|
-
|
|
81
|
-
return { type: "text", text: part.text };
|
|
82
|
-
}
|
|
83
|
-
if (part.type === "image") {
|
|
84
|
-
const cloned2 = {
|
|
85
|
-
type: "image",
|
|
86
|
-
image: part.image
|
|
87
|
-
};
|
|
88
|
-
if (part.mimeType) {
|
|
89
|
-
cloned2.mimeType = part.mimeType;
|
|
90
|
-
}
|
|
91
|
-
return cloned2;
|
|
92
|
-
}
|
|
93
|
-
const cloned = {
|
|
94
|
-
type: "file",
|
|
95
|
-
data: part.data,
|
|
96
|
-
mimeType: part.mimeType
|
|
97
|
-
};
|
|
98
|
-
if (part.filename) {
|
|
99
|
-
cloned.filename = part.filename;
|
|
100
|
-
}
|
|
101
|
-
return cloned;
|
|
81
|
+
return (0, import_content_clone.clonePromptContentPart)(part);
|
|
102
82
|
}
|
|
103
83
|
function coerceContentToParts(content) {
|
|
104
84
|
if (content == null) {
|
|
@@ -873,13 +853,13 @@ function shouldPersistInlineMedia(hint) {
|
|
|
873
853
|
}
|
|
874
854
|
async function persistToolMedia(normalized, options, logger) {
|
|
875
855
|
const parts = normalized.parts.map((part) => clonePart(part));
|
|
876
|
-
const
|
|
856
|
+
const artifactStore = options.artifactStore;
|
|
877
857
|
const namingOptions = options.toolName || options.toolCallId ? {
|
|
878
858
|
...options.toolName ? { toolName: options.toolName } : {},
|
|
879
859
|
...options.toolCallId ? { toolCallId: options.toolCallId } : {}
|
|
880
860
|
} : void 0;
|
|
881
861
|
const storedBlobs = [];
|
|
882
|
-
if (
|
|
862
|
+
if (artifactStore) {
|
|
883
863
|
for (const hint of normalized.inlineMedia) {
|
|
884
864
|
if (!shouldPersistInlineMedia(hint)) {
|
|
885
865
|
continue;
|
|
@@ -890,15 +870,21 @@ async function persistToolMedia(normalized, options, logger) {
|
|
|
890
870
|
hint.mimeType,
|
|
891
871
|
namingOptions
|
|
892
872
|
);
|
|
893
|
-
const blobRef = await
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
873
|
+
const blobRef = await artifactStore.store({
|
|
874
|
+
data: hint.data,
|
|
875
|
+
metadata: {
|
|
876
|
+
mimeType: hint.mimeType,
|
|
877
|
+
originalName,
|
|
878
|
+
source: "tool"
|
|
879
|
+
}
|
|
897
880
|
});
|
|
898
881
|
const resourceUri = blobRef.uri;
|
|
899
882
|
let publicUrl;
|
|
900
883
|
try {
|
|
901
|
-
const urlResult = await
|
|
884
|
+
const urlResult = await artifactStore.retrieve({
|
|
885
|
+
reference: resourceUri,
|
|
886
|
+
format: "url"
|
|
887
|
+
});
|
|
902
888
|
if (urlResult.format === "url") {
|
|
903
889
|
publicUrl = urlResult.data;
|
|
904
890
|
}
|
|
@@ -946,7 +932,7 @@ async function persistToolMedia(normalized, options, logger) {
|
|
|
946
932
|
...resources ? { resources } : {}
|
|
947
933
|
};
|
|
948
934
|
}
|
|
949
|
-
async function sanitizeToolResultToContentWithBlobs(result, logger,
|
|
935
|
+
async function sanitizeToolResultToContentWithBlobs(result, logger, artifactStore, namingOptions) {
|
|
950
936
|
try {
|
|
951
937
|
if (typeof result === "string") {
|
|
952
938
|
const dataUri = parseDataUri(result);
|
|
@@ -956,16 +942,19 @@ async function sanitizeToolResultToContentWithBlobs(result, logger, blobStore, n
|
|
|
956
942
|
`sanitizeToolResultToContentWithBlobs: detected data URI (${mediaType})`
|
|
957
943
|
);
|
|
958
944
|
const approxSize = Math.floor(dataUri.base64.length * 3 / 4);
|
|
959
|
-
const shouldStoreAsBlob =
|
|
945
|
+
const shouldStoreAsBlob = artifactStore && approxSize > 1024;
|
|
960
946
|
if (shouldStoreAsBlob) {
|
|
961
947
|
try {
|
|
962
948
|
logger.debug(
|
|
963
949
|
`Storing data URI as blob (${approxSize} bytes, ${mediaType})`
|
|
964
950
|
);
|
|
965
|
-
const blobRef = await
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
951
|
+
const blobRef = await artifactStore.store({
|
|
952
|
+
data: result,
|
|
953
|
+
metadata: {
|
|
954
|
+
mimeType: mediaType,
|
|
955
|
+
source: "tool",
|
|
956
|
+
originalName: buildToolBlobName("output", mediaType, namingOptions)
|
|
957
|
+
}
|
|
969
958
|
});
|
|
970
959
|
logger.debug(`Stored blob: ${blobRef.uri} (${approxSize} bytes)`);
|
|
971
960
|
if (mediaType.startsWith("image/")) {
|
|
@@ -1013,7 +1002,7 @@ ${tail}`
|
|
|
1013
1002
|
const processedItem = await sanitizeToolResultToContentWithBlobs(
|
|
1014
1003
|
item,
|
|
1015
1004
|
logger,
|
|
1016
|
-
|
|
1005
|
+
artifactStore,
|
|
1017
1006
|
namingOptions
|
|
1018
1007
|
);
|
|
1019
1008
|
if (Array.isArray(processedItem)) {
|
|
@@ -1067,21 +1056,24 @@ ${tail}`
|
|
|
1067
1056
|
const fileData = resource.text;
|
|
1068
1057
|
const mimeType = resource.mimeType;
|
|
1069
1058
|
const approxSize = typeof fileData === "string" ? Math.floor(fileData.length * 3 / 4) : 0;
|
|
1070
|
-
const shouldStoreAsBlob =
|
|
1059
|
+
const shouldStoreAsBlob = artifactStore && approxSize > 1024;
|
|
1071
1060
|
if (shouldStoreAsBlob) {
|
|
1072
1061
|
try {
|
|
1073
1062
|
logger.debug(
|
|
1074
1063
|
`Storing MCP resource as blob (${approxSize} bytes, ${mimeType})`
|
|
1075
1064
|
);
|
|
1076
|
-
const blobRef = await
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
originalName: buildToolBlobName(
|
|
1080
|
-
mimeType.startsWith("image/") ? "image" : "file",
|
|
1065
|
+
const blobRef = await artifactStore.store({
|
|
1066
|
+
data: fileData,
|
|
1067
|
+
metadata: {
|
|
1081
1068
|
mimeType,
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1069
|
+
source: "tool",
|
|
1070
|
+
originalName: buildToolBlobName(
|
|
1071
|
+
mimeType.startsWith("image/") ? "image" : "file",
|
|
1072
|
+
mimeType,
|
|
1073
|
+
namingOptions,
|
|
1074
|
+
resource.title
|
|
1075
|
+
)
|
|
1076
|
+
}
|
|
1085
1077
|
});
|
|
1086
1078
|
logger.debug(
|
|
1087
1079
|
`Stored MCP resource blob: ${blobRef.uri} (${approxSize} bytes)`
|
|
@@ -1134,21 +1126,24 @@ ${tail}`
|
|
|
1134
1126
|
const fileData = getFileData({ data: item.data }, logger);
|
|
1135
1127
|
const mimeType = item.mimeType;
|
|
1136
1128
|
const approxSize = typeof fileData === "string" ? Math.floor(fileData.length * 3 / 4) : 0;
|
|
1137
|
-
const shouldStoreAsBlob =
|
|
1129
|
+
const shouldStoreAsBlob = artifactStore && approxSize > 1024;
|
|
1138
1130
|
if (shouldStoreAsBlob) {
|
|
1139
1131
|
try {
|
|
1140
1132
|
logger.debug(
|
|
1141
1133
|
`Storing MCP content item as blob (${approxSize} bytes, ${mimeType})`
|
|
1142
1134
|
);
|
|
1143
|
-
const blobRef = await
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
originalName: buildToolBlobName(
|
|
1147
|
-
item.type === "image" ? "image" : "file",
|
|
1135
|
+
const blobRef = await artifactStore.store({
|
|
1136
|
+
data: fileData,
|
|
1137
|
+
metadata: {
|
|
1148
1138
|
mimeType,
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1139
|
+
source: "tool",
|
|
1140
|
+
originalName: buildToolBlobName(
|
|
1141
|
+
item.type === "image" ? "image" : "file",
|
|
1142
|
+
mimeType,
|
|
1143
|
+
namingOptions,
|
|
1144
|
+
item.filename
|
|
1145
|
+
)
|
|
1146
|
+
}
|
|
1152
1147
|
});
|
|
1153
1148
|
logger.debug(
|
|
1154
1149
|
`Stored MCP blob: ${blobRef.uri} (${approxSize} bytes)`
|
|
@@ -1194,13 +1189,16 @@ ${tail}`
|
|
|
1194
1189
|
const imageData = getImageData({ image: anyObj.image }, logger);
|
|
1195
1190
|
const mimeType = anyObj.mimeType || "image/jpeg";
|
|
1196
1191
|
const approxSize = typeof imageData === "string" ? Math.floor(imageData.length * 3 / 4) : 0;
|
|
1197
|
-
const shouldStoreAsBlob =
|
|
1192
|
+
const shouldStoreAsBlob = artifactStore && approxSize > 1024;
|
|
1198
1193
|
if (shouldStoreAsBlob) {
|
|
1199
1194
|
try {
|
|
1200
|
-
const blobRef = await
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1195
|
+
const blobRef = await artifactStore.store({
|
|
1196
|
+
data: imageData,
|
|
1197
|
+
metadata: {
|
|
1198
|
+
mimeType,
|
|
1199
|
+
source: "tool",
|
|
1200
|
+
originalName: buildToolBlobName("image", mimeType, namingOptions)
|
|
1201
|
+
}
|
|
1204
1202
|
});
|
|
1205
1203
|
logger.debug(
|
|
1206
1204
|
`Stored tool image as blob: ${blobRef.uri} (${approxSize} bytes)`
|
|
@@ -1224,18 +1222,21 @@ ${tail}`
|
|
|
1224
1222
|
const fileData = getFileData({ data: anyObj.data }, logger);
|
|
1225
1223
|
const mimeType = anyObj.mimeType;
|
|
1226
1224
|
const approxSize = typeof fileData === "string" ? Math.floor(fileData.length * 3 / 4) : 0;
|
|
1227
|
-
const shouldStoreAsBlob =
|
|
1225
|
+
const shouldStoreAsBlob = artifactStore && approxSize > 1024;
|
|
1228
1226
|
if (shouldStoreAsBlob) {
|
|
1229
1227
|
try {
|
|
1230
|
-
const blobRef = await
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
originalName: buildToolBlobName(
|
|
1234
|
-
"file",
|
|
1228
|
+
const blobRef = await artifactStore.store({
|
|
1229
|
+
data: fileData,
|
|
1230
|
+
metadata: {
|
|
1235
1231
|
mimeType,
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1232
|
+
source: "tool",
|
|
1233
|
+
originalName: buildToolBlobName(
|
|
1234
|
+
"file",
|
|
1235
|
+
mimeType,
|
|
1236
|
+
namingOptions,
|
|
1237
|
+
anyObj.filename
|
|
1238
|
+
)
|
|
1239
|
+
}
|
|
1239
1240
|
});
|
|
1240
1241
|
logger.debug(
|
|
1241
1242
|
`Stored tool file as blob: ${blobRef.uri} (${approxSize} bytes)`
|
|
@@ -1327,7 +1328,7 @@ async function sanitizeToolResult(result, options, logger) {
|
|
|
1327
1328
|
const persisted = await persistToolMedia(
|
|
1328
1329
|
normalized,
|
|
1329
1330
|
{
|
|
1330
|
-
...options.
|
|
1331
|
+
...options.artifactStore ? { artifactStore: options.artifactStore } : {},
|
|
1331
1332
|
toolName: options.toolName,
|
|
1332
1333
|
toolCallId: options.toolCallId
|
|
1333
1334
|
},
|
package/dist/context/utils.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export interface NormalizedToolResult {
|
|
|
21
21
|
inlineMedia: InlineMediaHint[];
|
|
22
22
|
}
|
|
23
23
|
interface PersistToolMediaOptions {
|
|
24
|
-
|
|
24
|
+
artifactStore?: import('../storage/artifacts/types.js').ArtifactStore;
|
|
25
25
|
toolName?: string;
|
|
26
26
|
toolCallId?: string;
|
|
27
27
|
}
|
|
@@ -225,9 +225,9 @@ export declare function persistToolMedia(normalized: NormalizedToolResult, optio
|
|
|
225
225
|
* - Removes huge binary blobs inside objects
|
|
226
226
|
* - Truncates extremely long raw text
|
|
227
227
|
*/
|
|
228
|
-
export declare function sanitizeToolResultToContentWithBlobs(result: unknown, logger: Logger,
|
|
228
|
+
export declare function sanitizeToolResultToContentWithBlobs(result: unknown, logger: Logger, artifactStore?: import('../storage/artifacts/types.js').ArtifactStore, namingOptions?: ToolBlobNamingOptions): Promise<InternalMessage['content']>;
|
|
229
229
|
export declare function sanitizeToolResult(result: unknown, options: {
|
|
230
|
-
|
|
230
|
+
artifactStore?: import('../storage/artifacts/types.js').ArtifactStore;
|
|
231
231
|
toolName: string;
|
|
232
232
|
toolCallId: string;
|
|
233
233
|
success: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/context/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,eAAe,EACf,QAAQ,EACR,SAAS,EACT,QAAQ,EAER,cAAc,EACd,WAAW,EACX,mBAAmB,EAEtB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/context/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/context/utils.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import "../chunk-
|
|
1
|
+
import "../chunk-C6A6W6XS.js";
|
|
2
2
|
import {
|
|
3
3
|
isToolMessage
|
|
4
4
|
} from "./types.js";
|
|
5
|
+
import { clonePromptContentPart } from "./content-clone.js";
|
|
5
6
|
import { isValidDisplayData } from "../tools/display-types.js";
|
|
6
7
|
import { validateModelFileSupport } from "../llm/registry/index.js";
|
|
7
8
|
import { safeStringify } from "../utils/safe-stringify.js";
|
|
@@ -29,28 +30,7 @@ function generateUniqueSuffix() {
|
|
|
29
30
|
return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 6)}`;
|
|
30
31
|
}
|
|
31
32
|
function clonePart(part) {
|
|
32
|
-
|
|
33
|
-
return { type: "text", text: part.text };
|
|
34
|
-
}
|
|
35
|
-
if (part.type === "image") {
|
|
36
|
-
const cloned2 = {
|
|
37
|
-
type: "image",
|
|
38
|
-
image: part.image
|
|
39
|
-
};
|
|
40
|
-
if (part.mimeType) {
|
|
41
|
-
cloned2.mimeType = part.mimeType;
|
|
42
|
-
}
|
|
43
|
-
return cloned2;
|
|
44
|
-
}
|
|
45
|
-
const cloned = {
|
|
46
|
-
type: "file",
|
|
47
|
-
data: part.data,
|
|
48
|
-
mimeType: part.mimeType
|
|
49
|
-
};
|
|
50
|
-
if (part.filename) {
|
|
51
|
-
cloned.filename = part.filename;
|
|
52
|
-
}
|
|
53
|
-
return cloned;
|
|
33
|
+
return clonePromptContentPart(part);
|
|
54
34
|
}
|
|
55
35
|
function coerceContentToParts(content) {
|
|
56
36
|
if (content == null) {
|
|
@@ -825,13 +805,13 @@ function shouldPersistInlineMedia(hint) {
|
|
|
825
805
|
}
|
|
826
806
|
async function persistToolMedia(normalized, options, logger) {
|
|
827
807
|
const parts = normalized.parts.map((part) => clonePart(part));
|
|
828
|
-
const
|
|
808
|
+
const artifactStore = options.artifactStore;
|
|
829
809
|
const namingOptions = options.toolName || options.toolCallId ? {
|
|
830
810
|
...options.toolName ? { toolName: options.toolName } : {},
|
|
831
811
|
...options.toolCallId ? { toolCallId: options.toolCallId } : {}
|
|
832
812
|
} : void 0;
|
|
833
813
|
const storedBlobs = [];
|
|
834
|
-
if (
|
|
814
|
+
if (artifactStore) {
|
|
835
815
|
for (const hint of normalized.inlineMedia) {
|
|
836
816
|
if (!shouldPersistInlineMedia(hint)) {
|
|
837
817
|
continue;
|
|
@@ -842,15 +822,21 @@ async function persistToolMedia(normalized, options, logger) {
|
|
|
842
822
|
hint.mimeType,
|
|
843
823
|
namingOptions
|
|
844
824
|
);
|
|
845
|
-
const blobRef = await
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
825
|
+
const blobRef = await artifactStore.store({
|
|
826
|
+
data: hint.data,
|
|
827
|
+
metadata: {
|
|
828
|
+
mimeType: hint.mimeType,
|
|
829
|
+
originalName,
|
|
830
|
+
source: "tool"
|
|
831
|
+
}
|
|
849
832
|
});
|
|
850
833
|
const resourceUri = blobRef.uri;
|
|
851
834
|
let publicUrl;
|
|
852
835
|
try {
|
|
853
|
-
const urlResult = await
|
|
836
|
+
const urlResult = await artifactStore.retrieve({
|
|
837
|
+
reference: resourceUri,
|
|
838
|
+
format: "url"
|
|
839
|
+
});
|
|
854
840
|
if (urlResult.format === "url") {
|
|
855
841
|
publicUrl = urlResult.data;
|
|
856
842
|
}
|
|
@@ -898,7 +884,7 @@ async function persistToolMedia(normalized, options, logger) {
|
|
|
898
884
|
...resources ? { resources } : {}
|
|
899
885
|
};
|
|
900
886
|
}
|
|
901
|
-
async function sanitizeToolResultToContentWithBlobs(result, logger,
|
|
887
|
+
async function sanitizeToolResultToContentWithBlobs(result, logger, artifactStore, namingOptions) {
|
|
902
888
|
try {
|
|
903
889
|
if (typeof result === "string") {
|
|
904
890
|
const dataUri = parseDataUri(result);
|
|
@@ -908,16 +894,19 @@ async function sanitizeToolResultToContentWithBlobs(result, logger, blobStore, n
|
|
|
908
894
|
`sanitizeToolResultToContentWithBlobs: detected data URI (${mediaType})`
|
|
909
895
|
);
|
|
910
896
|
const approxSize = Math.floor(dataUri.base64.length * 3 / 4);
|
|
911
|
-
const shouldStoreAsBlob =
|
|
897
|
+
const shouldStoreAsBlob = artifactStore && approxSize > 1024;
|
|
912
898
|
if (shouldStoreAsBlob) {
|
|
913
899
|
try {
|
|
914
900
|
logger.debug(
|
|
915
901
|
`Storing data URI as blob (${approxSize} bytes, ${mediaType})`
|
|
916
902
|
);
|
|
917
|
-
const blobRef = await
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
903
|
+
const blobRef = await artifactStore.store({
|
|
904
|
+
data: result,
|
|
905
|
+
metadata: {
|
|
906
|
+
mimeType: mediaType,
|
|
907
|
+
source: "tool",
|
|
908
|
+
originalName: buildToolBlobName("output", mediaType, namingOptions)
|
|
909
|
+
}
|
|
921
910
|
});
|
|
922
911
|
logger.debug(`Stored blob: ${blobRef.uri} (${approxSize} bytes)`);
|
|
923
912
|
if (mediaType.startsWith("image/")) {
|
|
@@ -965,7 +954,7 @@ ${tail}`
|
|
|
965
954
|
const processedItem = await sanitizeToolResultToContentWithBlobs(
|
|
966
955
|
item,
|
|
967
956
|
logger,
|
|
968
|
-
|
|
957
|
+
artifactStore,
|
|
969
958
|
namingOptions
|
|
970
959
|
);
|
|
971
960
|
if (Array.isArray(processedItem)) {
|
|
@@ -1019,21 +1008,24 @@ ${tail}`
|
|
|
1019
1008
|
const fileData = resource.text;
|
|
1020
1009
|
const mimeType = resource.mimeType;
|
|
1021
1010
|
const approxSize = typeof fileData === "string" ? Math.floor(fileData.length * 3 / 4) : 0;
|
|
1022
|
-
const shouldStoreAsBlob =
|
|
1011
|
+
const shouldStoreAsBlob = artifactStore && approxSize > 1024;
|
|
1023
1012
|
if (shouldStoreAsBlob) {
|
|
1024
1013
|
try {
|
|
1025
1014
|
logger.debug(
|
|
1026
1015
|
`Storing MCP resource as blob (${approxSize} bytes, ${mimeType})`
|
|
1027
1016
|
);
|
|
1028
|
-
const blobRef = await
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
originalName: buildToolBlobName(
|
|
1032
|
-
mimeType.startsWith("image/") ? "image" : "file",
|
|
1017
|
+
const blobRef = await artifactStore.store({
|
|
1018
|
+
data: fileData,
|
|
1019
|
+
metadata: {
|
|
1033
1020
|
mimeType,
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1021
|
+
source: "tool",
|
|
1022
|
+
originalName: buildToolBlobName(
|
|
1023
|
+
mimeType.startsWith("image/") ? "image" : "file",
|
|
1024
|
+
mimeType,
|
|
1025
|
+
namingOptions,
|
|
1026
|
+
resource.title
|
|
1027
|
+
)
|
|
1028
|
+
}
|
|
1037
1029
|
});
|
|
1038
1030
|
logger.debug(
|
|
1039
1031
|
`Stored MCP resource blob: ${blobRef.uri} (${approxSize} bytes)`
|
|
@@ -1086,21 +1078,24 @@ ${tail}`
|
|
|
1086
1078
|
const fileData = getFileData({ data: item.data }, logger);
|
|
1087
1079
|
const mimeType = item.mimeType;
|
|
1088
1080
|
const approxSize = typeof fileData === "string" ? Math.floor(fileData.length * 3 / 4) : 0;
|
|
1089
|
-
const shouldStoreAsBlob =
|
|
1081
|
+
const shouldStoreAsBlob = artifactStore && approxSize > 1024;
|
|
1090
1082
|
if (shouldStoreAsBlob) {
|
|
1091
1083
|
try {
|
|
1092
1084
|
logger.debug(
|
|
1093
1085
|
`Storing MCP content item as blob (${approxSize} bytes, ${mimeType})`
|
|
1094
1086
|
);
|
|
1095
|
-
const blobRef = await
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
originalName: buildToolBlobName(
|
|
1099
|
-
item.type === "image" ? "image" : "file",
|
|
1087
|
+
const blobRef = await artifactStore.store({
|
|
1088
|
+
data: fileData,
|
|
1089
|
+
metadata: {
|
|
1100
1090
|
mimeType,
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1091
|
+
source: "tool",
|
|
1092
|
+
originalName: buildToolBlobName(
|
|
1093
|
+
item.type === "image" ? "image" : "file",
|
|
1094
|
+
mimeType,
|
|
1095
|
+
namingOptions,
|
|
1096
|
+
item.filename
|
|
1097
|
+
)
|
|
1098
|
+
}
|
|
1104
1099
|
});
|
|
1105
1100
|
logger.debug(
|
|
1106
1101
|
`Stored MCP blob: ${blobRef.uri} (${approxSize} bytes)`
|
|
@@ -1146,13 +1141,16 @@ ${tail}`
|
|
|
1146
1141
|
const imageData = getImageData({ image: anyObj.image }, logger);
|
|
1147
1142
|
const mimeType = anyObj.mimeType || "image/jpeg";
|
|
1148
1143
|
const approxSize = typeof imageData === "string" ? Math.floor(imageData.length * 3 / 4) : 0;
|
|
1149
|
-
const shouldStoreAsBlob =
|
|
1144
|
+
const shouldStoreAsBlob = artifactStore && approxSize > 1024;
|
|
1150
1145
|
if (shouldStoreAsBlob) {
|
|
1151
1146
|
try {
|
|
1152
|
-
const blobRef = await
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1147
|
+
const blobRef = await artifactStore.store({
|
|
1148
|
+
data: imageData,
|
|
1149
|
+
metadata: {
|
|
1150
|
+
mimeType,
|
|
1151
|
+
source: "tool",
|
|
1152
|
+
originalName: buildToolBlobName("image", mimeType, namingOptions)
|
|
1153
|
+
}
|
|
1156
1154
|
});
|
|
1157
1155
|
logger.debug(
|
|
1158
1156
|
`Stored tool image as blob: ${blobRef.uri} (${approxSize} bytes)`
|
|
@@ -1176,18 +1174,21 @@ ${tail}`
|
|
|
1176
1174
|
const fileData = getFileData({ data: anyObj.data }, logger);
|
|
1177
1175
|
const mimeType = anyObj.mimeType;
|
|
1178
1176
|
const approxSize = typeof fileData === "string" ? Math.floor(fileData.length * 3 / 4) : 0;
|
|
1179
|
-
const shouldStoreAsBlob =
|
|
1177
|
+
const shouldStoreAsBlob = artifactStore && approxSize > 1024;
|
|
1180
1178
|
if (shouldStoreAsBlob) {
|
|
1181
1179
|
try {
|
|
1182
|
-
const blobRef = await
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
originalName: buildToolBlobName(
|
|
1186
|
-
"file",
|
|
1180
|
+
const blobRef = await artifactStore.store({
|
|
1181
|
+
data: fileData,
|
|
1182
|
+
metadata: {
|
|
1187
1183
|
mimeType,
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1184
|
+
source: "tool",
|
|
1185
|
+
originalName: buildToolBlobName(
|
|
1186
|
+
"file",
|
|
1187
|
+
mimeType,
|
|
1188
|
+
namingOptions,
|
|
1189
|
+
anyObj.filename
|
|
1190
|
+
)
|
|
1191
|
+
}
|
|
1191
1192
|
});
|
|
1192
1193
|
logger.debug(
|
|
1193
1194
|
`Stored tool file as blob: ${blobRef.uri} (${approxSize} bytes)`
|
|
@@ -1279,7 +1280,7 @@ async function sanitizeToolResult(result, options, logger) {
|
|
|
1279
1280
|
const persisted = await persistToolMedia(
|
|
1280
1281
|
normalized,
|
|
1281
1282
|
{
|
|
1282
|
-
...options.
|
|
1283
|
+
...options.artifactStore ? { artifactStore: options.artifactStore } : {},
|
|
1283
1284
|
toolName: options.toolName,
|
|
1284
1285
|
toolCallId: options.toolCallId
|
|
1285
1286
|
},
|
package/dist/errors/index.js
CHANGED
package/dist/errors/types.js
CHANGED
package/dist/events/index.cjs
CHANGED
|
@@ -72,6 +72,7 @@ const FORWARDED_SESSION_EVENT_NAMES = [
|
|
|
72
72
|
"llm:tool-call",
|
|
73
73
|
"llm:tool-call-partial",
|
|
74
74
|
"llm:tool-result",
|
|
75
|
+
"llm:retrying",
|
|
75
76
|
"llm:error",
|
|
76
77
|
"llm:unsupported-input",
|
|
77
78
|
"tool:running",
|
|
@@ -97,6 +98,7 @@ const STREAMING_EVENTS = [
|
|
|
97
98
|
"llm:tool-call",
|
|
98
99
|
"llm:tool-call-partial",
|
|
99
100
|
"llm:tool-result",
|
|
101
|
+
"llm:retrying",
|
|
100
102
|
"llm:error",
|
|
101
103
|
"llm:unsupported-input",
|
|
102
104
|
// Tool execution events
|
|
@@ -112,7 +114,7 @@ const STREAMING_EVENTS = [
|
|
|
112
114
|
"run:complete",
|
|
113
115
|
// Session metadata
|
|
114
116
|
"session:title-updated",
|
|
115
|
-
// Approval events (needed for tool
|
|
117
|
+
// Approval events (needed for tool approval in streaming UIs)
|
|
116
118
|
"approval:request",
|
|
117
119
|
"approval:response",
|
|
118
120
|
// Service events (extensible pattern for non-core services)
|
|
@@ -334,6 +336,12 @@ function forwardSessionEventsToAgentBus({
|
|
|
334
336
|
withForwardedSessionContext(payload, sessionId, hostRuntime)
|
|
335
337
|
);
|
|
336
338
|
});
|
|
339
|
+
on("llm:retrying", (payload) => {
|
|
340
|
+
agentEventBus.emit(
|
|
341
|
+
"llm:retrying",
|
|
342
|
+
withForwardedSessionContext(payload, sessionId, hostRuntime)
|
|
343
|
+
);
|
|
344
|
+
});
|
|
337
345
|
on("llm:error", (payload) => {
|
|
338
346
|
agentEventBus.emit(
|
|
339
347
|
"llm:error",
|