comisai 1.0.37 → 1.0.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/dist/cli-entry.js +3 -2
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/orchestrator.d.ts +1 -0
- package/dist/orchestrator.js +2 -0
- package/node_modules/@comis/agent/dist/background/auto-background-middleware.d.ts +3 -3
- package/node_modules/@comis/agent/dist/background/auto-background-middleware.js +5 -4
- package/node_modules/@comis/agent/dist/background/background-task-manager.d.ts +12 -10
- package/node_modules/@comis/agent/dist/background/background-task-manager.js +25 -26
- package/node_modules/@comis/agent/dist/background/background-task-persistence.js +3 -2
- package/node_modules/@comis/agent/dist/background/background-task-types.d.ts +3 -2
- package/node_modules/@comis/agent/dist/background/completion-dispatcher.d.ts +1 -1
- package/node_modules/@comis/agent/dist/background/completion-runner.d.ts +1 -1
- package/node_modules/@comis/agent/dist/background/completion-runner.js +3 -2
- package/node_modules/@comis/agent/dist/background/session-resolver.js +1 -0
- package/node_modules/@comis/agent/dist/bootstrap/sections/core-sections.js +2 -1
- package/node_modules/@comis/agent/dist/bootstrap/sections/tool-descriptions.js +2 -1
- package/node_modules/@comis/agent/dist/bootstrap/sections/tooling-sections.d.ts +8 -23
- package/node_modules/@comis/agent/dist/bootstrap/sections/tooling-sections.js +18 -57
- package/node_modules/@comis/agent/dist/bootstrap/system-prompt-assembler.d.ts +0 -22
- package/node_modules/@comis/agent/dist/bootstrap/system-prompt-assembler.js +2 -8
- package/node_modules/@comis/agent/dist/bootstrap/workspace-loader.js +1 -0
- package/node_modules/@comis/agent/dist/bridge/bridge-metrics.js +2 -1
- package/node_modules/@comis/agent/dist/bridge/bridge-safety-controls.d.ts +1 -1
- package/node_modules/@comis/agent/dist/bridge/bridge-safety-controls.js +5 -4
- package/node_modules/@comis/agent/dist/bridge/pi-event-bridge.d.ts +4 -5
- package/node_modules/@comis/agent/dist/bridge/pi-event-bridge.js +24 -26
- package/node_modules/@comis/agent/dist/budget/budget-guard.js +6 -5
- package/node_modules/@comis/agent/dist/budget/budget-parser.d.ts +49 -0
- package/node_modules/@comis/agent/dist/budget/budget-parser.js +109 -0
- package/node_modules/@comis/agent/dist/budget/cost-tracker.js +3 -2
- package/node_modules/@comis/agent/dist/context-engine/cleanup-helpers.d.ts +4 -3
- package/node_modules/@comis/agent/dist/context-engine/cleanup-helpers.js +4 -3
- package/node_modules/@comis/agent/dist/context-engine/constants.js +0 -1
- package/node_modules/@comis/agent/dist/context-engine/context-engine.js +13 -16
- package/node_modules/@comis/agent/dist/context-engine/dag-assembler.d.ts +0 -2
- package/node_modules/@comis/agent/dist/context-engine/dag-assembler.js +0 -2
- package/node_modules/@comis/agent/dist/context-engine/dag-integrity.js +5 -4
- package/node_modules/@comis/agent/dist/context-engine/dag-reconciliation.d.ts +4 -5
- package/node_modules/@comis/agent/dist/context-engine/dag-reconciliation.js +13 -12
- package/node_modules/@comis/agent/dist/context-engine/dag-triggers.d.ts +4 -4
- package/node_modules/@comis/agent/dist/context-engine/dag-triggers.js +4 -3
- package/node_modules/@comis/agent/dist/context-engine/history-window.d.ts +1 -1
- package/node_modules/@comis/agent/dist/context-engine/llm-compaction.js +1 -1
- package/node_modules/@comis/agent/dist/context-engine/microcompaction-guard.d.ts +2 -2
- package/node_modules/@comis/agent/dist/context-engine/objective-reinforcement.js +2 -1
- package/node_modules/@comis/agent/dist/context-engine/reasoning-tag-stripper.d.ts +2 -2
- package/node_modules/@comis/agent/dist/context-engine/reasoning-tag-stripper.js +1 -1
- package/node_modules/@comis/agent/dist/context-engine/reread-detector.d.ts +1 -1
- package/node_modules/@comis/agent/dist/context-engine/signature-replay-scrubber.d.ts +4 -10
- package/node_modules/@comis/agent/dist/context-engine/signature-replay-scrubber.js +2 -5
- package/node_modules/@comis/agent/dist/context-engine/signature-surrogate-guard.d.ts +1 -1
- package/node_modules/@comis/agent/dist/context-engine/signature-surrogate-guard.js +1 -1
- package/node_modules/@comis/agent/dist/context-engine/types-anchor.d.ts +28 -0
- package/node_modules/@comis/agent/dist/context-engine/types-anchor.js +11 -0
- package/node_modules/@comis/agent/dist/context-engine/types-compaction.d.ts +2 -2
- package/node_modules/@comis/agent/dist/context-engine/types-core.d.ts +7 -27
- package/node_modules/@comis/agent/dist/context-engine/types-dag.d.ts +4 -5
- package/node_modules/@comis/agent/dist/context-engine/types-integrity.d.ts +2 -3
- package/node_modules/@comis/agent/dist/envelope/message-envelope.js +2 -1
- package/node_modules/@comis/agent/dist/executor/adaptive-cache-retention.d.ts +2 -4
- package/node_modules/@comis/agent/dist/executor/adaptive-cache-retention.js +13 -24
- package/node_modules/@comis/agent/dist/executor/cache-break-diff-writer.js +3 -4
- package/node_modules/@comis/agent/dist/executor/cache-detection/anthropic-extractor.d.ts +19 -0
- package/node_modules/@comis/agent/dist/executor/cache-detection/anthropic-extractor.js +156 -0
- package/node_modules/@comis/agent/dist/executor/cache-detection/cache-state-types.d.ts +164 -0
- package/node_modules/@comis/agent/dist/executor/cache-detection/cache-state-types.js +11 -0
- package/node_modules/@comis/agent/dist/executor/cache-detection/cache-state.d.ts +33 -0
- package/node_modules/@comis/agent/dist/executor/cache-detection/cache-state.js +239 -0
- package/node_modules/@comis/agent/dist/executor/cache-detection/gemini-extractor.d.ts +22 -0
- package/node_modules/@comis/agent/dist/executor/cache-detection/gemini-extractor.js +57 -0
- package/node_modules/@comis/agent/dist/executor/cache-detection/index.d.ts +14 -0
- package/node_modules/@comis/agent/dist/executor/cache-detection/index.js +14 -0
- package/node_modules/@comis/agent/dist/executor/cache-detection/lru-map.d.ts +22 -0
- package/node_modules/@comis/agent/dist/executor/cache-detection/lru-map.js +50 -0
- package/node_modules/@comis/agent/dist/executor/cache-detection/prompt-state-utils.d.ts +46 -0
- package/node_modules/@comis/agent/dist/executor/cache-detection/prompt-state-utils.js +192 -0
- package/node_modules/@comis/agent/dist/executor/cache-usage-helpers.js +1 -2
- package/node_modules/@comis/agent/dist/executor/command-directive-types.d.ts +88 -0
- package/node_modules/@comis/agent/dist/executor/command-directive-types.js +31 -0
- package/node_modules/@comis/agent/dist/executor/drain-helper.d.ts +1 -1
- package/node_modules/@comis/agent/dist/executor/executor-command-handlers.d.ts +5 -3
- package/node_modules/@comis/agent/dist/executor/executor-command-handlers.js +1 -1
- package/node_modules/@comis/agent/dist/executor/executor-context-engine-setup.d.ts +6 -4
- package/node_modules/@comis/agent/dist/executor/executor-context-engine-setup.js +6 -5
- package/node_modules/@comis/agent/dist/executor/executor-input-guard.d.ts +4 -2
- package/node_modules/@comis/agent/dist/executor/executor-input-guard.js +7 -7
- package/node_modules/@comis/agent/dist/executor/executor-post-execution.d.ts +8 -5
- package/node_modules/@comis/agent/dist/executor/executor-post-execution.js +17 -11
- package/node_modules/@comis/agent/dist/executor/executor-response-filter.d.ts +4 -2
- package/node_modules/@comis/agent/dist/executor/executor-response-filter.js +6 -6
- package/node_modules/@comis/agent/dist/executor/executor-session-state.d.ts +4 -2
- package/node_modules/@comis/agent/dist/executor/executor-session-state.js +30 -7
- package/node_modules/@comis/agent/dist/executor/executor-stream-setup.d.ts +8 -6
- package/node_modules/@comis/agent/dist/executor/executor-stream-setup.js +9 -7
- package/node_modules/@comis/agent/dist/executor/executor-tool-assembly.d.ts +8 -6
- package/node_modules/@comis/agent/dist/executor/executor-tool-assembly.js +5 -4
- package/node_modules/@comis/agent/dist/executor/executor-tool-pipeline.d.ts +2 -2
- package/node_modules/@comis/agent/dist/executor/fault-injector.d.ts +6 -5
- package/node_modules/@comis/agent/dist/executor/fault-injector.js +9 -10
- package/node_modules/@comis/agent/dist/executor/gemini-cache-injector.d.ts +1 -1
- package/node_modules/@comis/agent/dist/executor/gemini-cache-manager.d.ts +3 -2
- package/node_modules/@comis/agent/dist/executor/gemini-cache-manager.js +11 -11
- package/node_modules/@comis/agent/dist/executor/jit-guide-injector.d.ts +3 -3
- package/node_modules/@comis/agent/dist/executor/model-retry.d.ts +9 -5
- package/node_modules/@comis/agent/dist/executor/model-retry.js +22 -22
- package/node_modules/@comis/agent/dist/executor/overflow-recovery.d.ts +2 -2
- package/node_modules/@comis/agent/dist/executor/pi-executor/before-tool-call-guard.d.ts +29 -0
- package/node_modules/@comis/agent/dist/executor/pi-executor/before-tool-call-guard.js +65 -0
- package/node_modules/@comis/agent/dist/executor/pi-executor/compaction-trigger.d.ts +41 -0
- package/node_modules/@comis/agent/dist/executor/pi-executor/compaction-trigger.js +49 -0
- package/node_modules/@comis/agent/dist/executor/pi-executor/executor-error-mapping.d.ts +56 -0
- package/node_modules/@comis/agent/dist/executor/pi-executor/executor-error-mapping.js +49 -0
- package/node_modules/@comis/agent/dist/executor/pi-executor/index.d.ts +14 -0
- package/node_modules/@comis/agent/dist/executor/pi-executor/index.js +14 -0
- package/node_modules/@comis/agent/dist/executor/pi-executor/message-envelope.d.ts +68 -0
- package/node_modules/@comis/agent/dist/executor/pi-executor/message-envelope.js +90 -0
- package/node_modules/@comis/agent/dist/executor/pi-executor/pi-executor-types.d.ts +158 -0
- package/node_modules/@comis/agent/dist/executor/pi-executor/pi-executor-types.js +10 -0
- package/node_modules/@comis/agent/dist/executor/pi-executor/pi-executor.d.ts +45 -0
- package/node_modules/@comis/agent/dist/executor/pi-executor/pi-executor.js +946 -0
- package/node_modules/@comis/agent/dist/executor/pi-executor/safety-gate.d.ts +66 -0
- package/node_modules/@comis/agent/dist/executor/pi-executor/safety-gate.js +83 -0
- package/node_modules/@comis/agent/dist/executor/pi-executor/session-bootstrap.d.ts +103 -0
- package/node_modules/@comis/agent/dist/executor/pi-executor/session-bootstrap.js +123 -0
- package/node_modules/@comis/agent/dist/executor/pi-executor/session-stats.d.ts +33 -0
- package/node_modules/@comis/agent/dist/executor/pi-executor/session-stats.js +37 -0
- package/node_modules/@comis/agent/dist/executor/post-batch-continuation.d.ts +1 -1
- package/node_modules/@comis/agent/dist/executor/prompt-assembly.d.ts +7 -5
- package/node_modules/@comis/agent/dist/executor/prompt-assembly.js +13 -20
- package/node_modules/@comis/agent/dist/executor/prompt-runner/budget-precheck.d.ts +30 -0
- package/node_modules/@comis/agent/dist/executor/prompt-runner/budget-precheck.js +55 -0
- package/node_modules/@comis/agent/dist/executor/prompt-runner/envelope-wrapper.d.ts +43 -0
- package/node_modules/@comis/agent/dist/executor/prompt-runner/envelope-wrapper.js +143 -0
- package/node_modules/@comis/agent/dist/executor/prompt-runner/failure-path.d.ts +30 -0
- package/node_modules/@comis/agent/dist/executor/prompt-runner/failure-path.js +220 -0
- package/node_modules/@comis/agent/dist/executor/prompt-runner/index.d.ts +14 -0
- package/node_modules/@comis/agent/dist/executor/prompt-runner/index.js +14 -0
- package/node_modules/@comis/agent/dist/executor/prompt-runner/output-escalation.d.ts +29 -0
- package/node_modules/@comis/agent/dist/executor/prompt-runner/output-escalation.js +330 -0
- package/node_modules/@comis/agent/dist/executor/prompt-runner/prompt-runner-types.d.ts +130 -0
- package/node_modules/@comis/agent/dist/executor/prompt-runner/prompt-runner-types.js +12 -0
- package/node_modules/@comis/agent/dist/executor/prompt-runner/prompt-runner.d.ts +23 -0
- package/node_modules/@comis/agent/dist/executor/prompt-runner/prompt-runner.js +43 -0
- package/node_modules/@comis/agent/dist/executor/prompt-runner/retry-loop.d.ts +38 -0
- package/node_modules/@comis/agent/dist/executor/prompt-runner/retry-loop.js +209 -0
- package/node_modules/@comis/agent/dist/executor/prompt-runner/silent-failure-handlers.d.ts +44 -0
- package/node_modules/@comis/agent/dist/executor/prompt-runner/silent-failure-handlers.js +272 -0
- package/node_modules/@comis/agent/dist/executor/prompt-timeout.d.ts +3 -2
- package/node_modules/@comis/agent/dist/executor/prompt-timeout.js +9 -7
- package/node_modules/@comis/agent/dist/executor/replay-drift-detector.d.ts +2 -2
- package/node_modules/@comis/agent/dist/executor/replay-drift-detector.js +1 -2
- package/node_modules/@comis/agent/dist/executor/session-snapshot-cleanup.d.ts +1 -1
- package/node_modules/@comis/agent/dist/executor/session-snapshot-cleanup.js +3 -3
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/api-payload-trace-writer.d.ts +3 -1
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/api-payload-trace-writer.js +4 -4
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/cache-trace-writer.d.ts +3 -1
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/cache-trace-writer.js +1 -1
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/compose.d.ts +2 -2
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/config-resolver.d.ts +2 -2
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/index.d.ts +2 -2
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/index.js +1 -1
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/breakpoint-orchestration.d.ts +36 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/breakpoint-orchestration.js +276 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/breakpoint-placement.d.ts +52 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/breakpoint-placement.js +282 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/cache-breakpoints.d.ts +111 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/cache-breakpoints.js +273 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/cache-control-block.d.ts +34 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/cache-control-block.js +51 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/cadence-tracker.d.ts +25 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/cadence-tracker.js +22 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/cadence-tracking.d.ts +22 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/cadence-tracking.js +66 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/context-window.d.ts +18 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/context-window.js +30 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/factory.d.ts +47 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/factory.js +284 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/index.d.ts +18 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/index.js +23 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/kill-switch.d.ts +21 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/kill-switch.js +43 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/marker-upgrade.d.ts +23 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/marker-upgrade.js +49 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/microcompact.d.ts +33 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/microcompact.js +75 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/prefix-stability.d.ts +28 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/prefix-stability.js +100 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/service-tier.d.ts +17 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/service-tier.js +22 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/skip-cache-write-marker.d.ts +26 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/skip-cache-write-marker.js +88 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/store-flag.d.ts +22 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/store-flag.js +27 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/token-estimation.d.ts +17 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/token-estimation.js +22 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/tool-cache.d.ts +24 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/tool-cache.js +73 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/tool-deferral-injection.d.ts +27 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/tool-deferral-injection.js +68 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/tool-result-clearing.d.ts +64 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/tool-result-clearing.js +225 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/ttl-split-estimation.d.ts +18 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/ttl-split-estimation.js +74 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/types.d.ts +143 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body/types.js +11 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/stub-filter-injector.d.ts +1 -1
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/tool-result-size-bouncer.d.ts +1 -1
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/tool-schema-cache.js +3 -3
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/turn-result-budget-wrapper.d.ts +1 -1
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/types.d.ts +1 -1
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/validation-error-formatter.d.ts +1 -1
- package/node_modules/@comis/agent/dist/executor/tool-deferral.d.ts +9 -7
- package/node_modules/@comis/agent/dist/executor/tool-deferral.js +6 -5
- package/node_modules/@comis/agent/dist/executor/tool-parallelism.d.ts +3 -10
- package/node_modules/@comis/agent/dist/executor/tool-parallelism.js +4 -52
- package/node_modules/@comis/agent/dist/executor/ttl-guard.d.ts +6 -4
- package/node_modules/@comis/agent/dist/executor/ttl-guard.js +5 -5
- package/node_modules/@comis/agent/dist/executor/types.d.ts +2 -2
- package/node_modules/@comis/agent/dist/greeting/session-greeting.js +5 -4
- package/node_modules/@comis/agent/dist/identity/identity-loader.js +3 -2
- package/node_modules/@comis/agent/dist/identity/identity-updater.js +2 -2
- package/node_modules/@comis/agent/dist/index.d.ts +9 -47
- package/node_modules/@comis/agent/dist/index.js +48 -43
- package/node_modules/@comis/agent/dist/memory/memory-review-job.d.ts +2 -8
- package/node_modules/@comis/agent/dist/memory/memory-review-job.js +26 -31
- package/node_modules/@comis/agent/dist/model/auth-profile.js +10 -8
- package/node_modules/@comis/agent/dist/model/auth-provider.d.ts +10 -3
- package/node_modules/@comis/agent/dist/model/auth-provider.js +1 -0
- package/node_modules/@comis/agent/dist/model/auth-rotation-adapter.d.ts +1 -1
- package/node_modules/@comis/agent/dist/model/auth-storage-adapter.d.ts +1 -1
- package/node_modules/@comis/agent/dist/model/auth-storage-adapter.js +1 -1
- package/node_modules/@comis/agent/dist/model/auth-usage-tracker.js +3 -2
- package/node_modules/@comis/agent/dist/model/compaction-model-resolver.js +1 -1
- package/node_modules/@comis/agent/dist/model/context-window-resolver.d.ts +1 -1
- package/node_modules/@comis/agent/dist/model/last-known-model.js +2 -1
- package/node_modules/@comis/agent/dist/model/model-alias-resolver.d.ts +1 -1
- package/node_modules/@comis/agent/dist/model/model-registry-adapter.d.ts +4 -4
- package/node_modules/@comis/agent/dist/model/model-registry-adapter.js +2 -2
- package/node_modules/@comis/agent/dist/model/model-scanner.js +8 -7
- package/node_modules/@comis/agent/dist/model/oauth-token-manager.d.ts +16 -6
- package/node_modules/@comis/agent/dist/model/oauth-token-manager.js +98 -50
- package/node_modules/@comis/agent/dist/model/operation-model-defaults.js +1 -1
- package/node_modules/@comis/agent/dist/model/resolve-provider-api-key.d.ts +1 -1
- package/node_modules/@comis/agent/dist/model/resolve-provider-api-key.js +2 -1
- package/node_modules/@comis/agent/dist/provider/capabilities.js +1 -1
- package/node_modules/@comis/agent/dist/provider/model-id-normalize.js +1 -1
- package/node_modules/@comis/agent/dist/provider/response/sanitize-pipeline.d.ts +1 -1
- package/node_modules/@comis/agent/dist/provider/tool-schema/normalize.d.ts +2 -2
- package/node_modules/@comis/agent/dist/rag/hybrid-memory-injector.js +2 -1
- package/node_modules/@comis/agent/dist/rag/rag-retriever.d.ts +1 -1
- package/node_modules/@comis/agent/dist/rag/rag-retriever.js +6 -6
- package/node_modules/@comis/agent/dist/safety/circuit-breaker.d.ts +3 -3
- package/node_modules/@comis/agent/dist/safety/circuit-breaker.js +5 -5
- package/node_modules/@comis/agent/dist/safety/provider-health-monitor.js +5 -4
- package/node_modules/@comis/agent/dist/safety/token-estimator.d.ts +1 -1
- package/node_modules/@comis/agent/dist/safety/tool-schema-safety.d.ts +1 -20
- package/node_modules/@comis/agent/dist/safety/tool-schema-safety.js +0 -20
- package/node_modules/@comis/agent/dist/safety/turn-result-budget.d.ts +1 -1
- package/node_modules/@comis/agent/dist/session/comis-session-manager.d.ts +17 -1
- package/node_modules/@comis/agent/dist/session/comis-session-manager.js +53 -15
- package/node_modules/@comis/agent/dist/session/orphaned-message-repair.d.ts +1 -1
- package/node_modules/@comis/agent/dist/session/orphaned-message-repair.js +3 -2
- package/node_modules/@comis/agent/dist/session/scrub-redacted-tool-calls.d.ts +1 -1
- package/node_modules/@comis/agent/dist/session/session-label-store.d.ts +5 -5
- package/node_modules/@comis/agent/dist/session/session-label-store.js +3 -3
- package/node_modules/@comis/agent/dist/session/session-lifecycle.d.ts +8 -8
- package/node_modules/@comis/agent/dist/session/session-lifecycle.js +7 -6
- package/node_modules/@comis/agent/dist/session/session-reset-policy.d.ts +27 -9
- package/node_modules/@comis/agent/dist/session/session-reset-policy.js +20 -20
- package/node_modules/@comis/agent/dist/session/session-write-lock.d.ts +39 -14
- package/node_modules/@comis/agent/dist/session/session-write-lock.js +59 -94
- package/node_modules/@comis/agent/dist/spawn/announcement-ports.d.ts +78 -0
- package/node_modules/@comis/agent/dist/spawn/announcement-ports.js +23 -0
- package/node_modules/@comis/agent/dist/spawn/generate-parent-summary.d.ts +1 -1
- package/node_modules/@comis/agent/dist/spawn/generate-parent-summary.js +2 -2
- package/node_modules/@comis/agent/dist/spawn/index.d.ts +4 -1
- package/node_modules/@comis/agent/dist/spawn/index.js +3 -1
- package/node_modules/@comis/agent/dist/spawn/lifecycle-hooks.js +3 -2
- package/node_modules/@comis/agent/dist/spawn/pi-mono-adapters.js +1 -1
- package/node_modules/@comis/agent/dist/spawn/result-condenser.js +4 -5
- package/node_modules/@comis/agent/dist/spawn/sub-agent-result-processor.d.ts +142 -0
- package/node_modules/@comis/agent/dist/spawn/sub-agent-result-processor.js +495 -0
- package/node_modules/@comis/agent/dist/spawn/sub-agent-runner.d.ts +340 -0
- package/node_modules/@comis/agent/dist/spawn/sub-agent-runner.js +1265 -0
- package/node_modules/@comis/agent/dist/workspace/onboarding-detector.js +2 -2
- package/node_modules/@comis/agent/dist/workspace/workspace-manager.d.ts +1 -1
- package/node_modules/@comis/agent/dist/workspace/workspace-manager.js +6 -5
- package/node_modules/@comis/agent/package.json +1 -1
- package/node_modules/@comis/channels/dist/discord/credential-validator.d.ts +4 -1
- package/node_modules/@comis/channels/dist/discord/credential-validator.js +27 -21
- package/node_modules/@comis/channels/dist/discord/discord-actions.d.ts +1 -1
- package/node_modules/@comis/channels/dist/discord/discord-actions.js +84 -45
- package/node_modules/@comis/channels/dist/discord/discord-adapter-types.d.ts +96 -0
- package/node_modules/@comis/channels/dist/discord/discord-adapter-types.js +71 -0
- package/node_modules/@comis/channels/dist/discord/discord-adapter.d.ts +14 -1
- package/node_modules/@comis/channels/dist/discord/discord-adapter.js +33 -27
- package/node_modules/@comis/channels/dist/discord/discord-resolver.js +4 -2
- package/node_modules/@comis/channels/dist/echo/echo-adapter.js +4 -3
- package/node_modules/@comis/channels/dist/email/email-adapter.d.ts +1 -1
- package/node_modules/@comis/channels/dist/email/email-adapter.js +5 -4
- package/node_modules/@comis/channels/dist/email/imap-lifecycle.d.ts +1 -1
- package/node_modules/@comis/channels/dist/email/imap-lifecycle.js +9 -8
- package/node_modules/@comis/channels/dist/email/message-mapper.js +2 -2
- package/node_modules/@comis/channels/dist/imessage/credential-validator.js +3 -2
- package/node_modules/@comis/channels/dist/imessage/imessage-adapter.d.ts +1 -1
- package/node_modules/@comis/channels/dist/imessage/imessage-adapter.js +7 -6
- package/node_modules/@comis/channels/dist/imessage/imessage-client.js +7 -6
- package/node_modules/@comis/channels/dist/imessage/imessage-resolver.d.ts +1 -1
- package/node_modules/@comis/channels/dist/imessage/imessage-resolver.js +5 -4
- package/node_modules/@comis/channels/dist/imessage/message-mapper.js +4 -3
- package/node_modules/@comis/channels/dist/index.d.ts +14 -13
- package/node_modules/@comis/channels/dist/index.js +53 -10
- package/node_modules/@comis/channels/dist/irc/credential-validator.js +3 -2
- package/node_modules/@comis/channels/dist/irc/irc-adapter.d.ts +1 -1
- package/node_modules/@comis/channels/dist/irc/irc-adapter.js +8 -7
- package/node_modules/@comis/channels/dist/irc/message-mapper.d.ts +1 -1
- package/node_modules/@comis/channels/dist/irc/message-mapper.js +3 -2
- package/node_modules/@comis/channels/dist/line/credential-validator.d.ts +7 -2
- package/node_modules/@comis/channels/dist/line/credential-validator.js +27 -30
- package/node_modules/@comis/channels/dist/line/line-adapter.d.ts +12 -1
- package/node_modules/@comis/channels/dist/line/line-adapter.js +11 -4
- package/node_modules/@comis/channels/dist/line/line-resolver.js +4 -2
- package/node_modules/@comis/channels/dist/shared/approval-notifier.d.ts +7 -2
- package/node_modules/@comis/channels/dist/shared/approval-notifier.js +4 -3
- package/node_modules/@comis/channels/dist/shared/block-pacer.js +3 -2
- package/node_modules/@comis/channels/dist/shared/channel-health-monitor.js +16 -15
- package/node_modules/@comis/channels/dist/shared/channel-registry.js +3 -3
- package/node_modules/@comis/channels/dist/shared/lifecycle-reactor.d.ts +1 -1
- package/node_modules/@comis/channels/dist/shared/lifecycle-reactor.js +24 -23
- package/node_modules/@comis/channels/dist/shared/response-filter.d.ts +0 -2
- package/node_modules/@comis/channels/dist/shared/response-filter.js +0 -2
- package/node_modules/@comis/channels/dist/shared/typing-controller.d.ts +0 -1
- package/node_modules/@comis/channels/dist/shared/typing-controller.js +18 -13
- package/node_modules/@comis/channels/dist/shared/typing-lifecycle-controller.js +4 -3
- package/node_modules/@comis/channels/dist/shared/voice-response-pipeline.js +4 -4
- package/node_modules/@comis/channels/dist/signal/message-mapper.js +3 -2
- package/node_modules/@comis/channels/dist/signal/signal-adapter.d.ts +1 -1
- package/node_modules/@comis/channels/dist/signal/signal-adapter.js +5 -4
- package/node_modules/@comis/channels/dist/signal/signal-client.js +8 -6
- package/node_modules/@comis/channels/dist/signal/signal-format.d.ts +1 -1
- package/node_modules/@comis/channels/dist/signal/signal-resolver.js +4 -2
- package/node_modules/@comis/channels/dist/slack/credential-validator.d.ts +9 -1
- package/node_modules/@comis/channels/dist/slack/credential-validator.js +34 -36
- package/node_modules/@comis/channels/dist/slack/media-handler.js +1 -0
- package/node_modules/@comis/channels/dist/slack/slack-actions.d.ts +1 -1
- package/node_modules/@comis/channels/dist/slack/slack-adapter.d.ts +16 -1
- package/node_modules/@comis/channels/dist/slack/slack-adapter.js +17 -6
- package/node_modules/@comis/channels/dist/slack/slack-resolver.js +4 -2
- package/node_modules/@comis/channels/dist/telegram/credential-validator.d.ts +3 -1
- package/node_modules/@comis/channels/dist/telegram/credential-validator.js +23 -20
- package/node_modules/@comis/channels/dist/telegram/telegram-adapter/index.d.ts +28 -0
- package/node_modules/@comis/channels/dist/telegram/telegram-adapter/index.js +81 -0
- package/node_modules/@comis/channels/dist/telegram/telegram-adapter/telegram-adapter-types.d.ts +80 -0
- package/node_modules/@comis/channels/dist/telegram/telegram-adapter/telegram-adapter-types.js +35 -0
- package/node_modules/@comis/channels/dist/telegram/telegram-adapter/telegram-inbound.d.ts +35 -0
- package/node_modules/@comis/channels/dist/telegram/telegram-adapter/telegram-inbound.js +189 -0
- package/node_modules/@comis/channels/dist/telegram/telegram-adapter/telegram-lifecycle.d.ts +32 -0
- package/node_modules/@comis/channels/dist/telegram/telegram-adapter/telegram-lifecycle.js +120 -0
- package/node_modules/@comis/channels/dist/telegram/telegram-adapter/telegram-outbound.d.ts +29 -0
- package/node_modules/@comis/channels/dist/telegram/telegram-adapter/telegram-outbound.js +360 -0
- package/node_modules/@comis/channels/dist/telegram/telegram-adapter/telegram-webhook.d.ts +55 -0
- package/node_modules/@comis/channels/dist/telegram/telegram-adapter/telegram-webhook.js +102 -0
- package/node_modules/@comis/channels/dist/telegram/telegram-plugin.d.ts +1 -1
- package/node_modules/@comis/channels/dist/telegram/telegram-plugin.js +1 -1
- package/node_modules/@comis/channels/dist/telegram/telegram-resolver.js +3 -3
- package/node_modules/@comis/channels/dist/whatsapp/credential-validator.js +2 -2
- package/node_modules/@comis/channels/dist/whatsapp/message-mapper.js +2 -1
- package/node_modules/@comis/channels/dist/whatsapp/whatsapp-adapter.d.ts +15 -1
- package/node_modules/@comis/channels/dist/whatsapp/whatsapp-adapter.js +10 -5
- package/node_modules/@comis/channels/dist/whatsapp/whatsapp-resolver.js +4 -2
- package/node_modules/@comis/channels/package.json +1 -1
- package/node_modules/@comis/cli/dist/client/provider-list.js +7 -4
- package/node_modules/@comis/cli/dist/client/rpc-client.d.ts +25 -0
- package/node_modules/@comis/cli/dist/client/rpc-client.js +62 -13
- package/node_modules/@comis/cli/dist/commands/agent.js +13 -9
- package/node_modules/@comis/cli/dist/commands/auth.d.ts +26 -16
- package/node_modules/@comis/cli/dist/commands/auth.js +226 -86
- package/node_modules/@comis/cli/dist/commands/channel.js +5 -2
- package/node_modules/@comis/cli/dist/commands/config-parsers.d.ts +30 -0
- package/node_modules/@comis/cli/dist/commands/config-parsers.js +82 -0
- package/node_modules/@comis/cli/dist/commands/config.js +311 -55
- package/node_modules/@comis/cli/dist/commands/daemon.js +7 -4
- package/node_modules/@comis/cli/dist/commands/init.js +1 -0
- package/node_modules/@comis/cli/dist/commands/memory.js +34 -13
- package/node_modules/@comis/cli/dist/commands/models.js +3 -3
- package/node_modules/@comis/cli/dist/commands/providers.js +4 -4
- package/node_modules/@comis/cli/dist/commands/reset.js +9 -3
- package/node_modules/@comis/cli/dist/commands/secrets.d.ts +11 -6
- package/node_modules/@comis/cli/dist/commands/secrets.js +67 -130
- package/node_modules/@comis/cli/dist/commands/sessions.d.ts +3 -0
- package/node_modules/@comis/cli/dist/commands/sessions.js +38 -42
- package/node_modules/@comis/cli/dist/commands/status.js +18 -15
- package/node_modules/@comis/cli/dist/commands/uninstall.js +1 -0
- package/node_modules/@comis/cli/dist/doctor/checks/channel-health.js +2 -2
- package/node_modules/@comis/cli/dist/doctor/checks/config-health.js +2 -3
- package/node_modules/@comis/cli/dist/doctor/checks/oauth-health.js +11 -5
- package/node_modules/@comis/cli/dist/doctor/repairs/repair-config.js +3 -3
- package/node_modules/@comis/cli/dist/index.d.ts +1 -22
- package/node_modules/@comis/cli/dist/index.js +12 -50
- package/node_modules/@comis/cli/dist/mock-rpc-client.js +2 -1
- package/node_modules/@comis/cli/dist/output/relative-time.d.ts +1 -1
- package/node_modules/@comis/cli/dist/output/relative-time.js +3 -2
- package/node_modules/@comis/cli/dist/output/spinner.js +1 -0
- package/node_modules/@comis/cli/dist/security/fix-runner.js +2 -1
- package/node_modules/@comis/cli/dist/sync-tooling/atomic-write.d.ts +76 -0
- package/node_modules/@comis/cli/dist/sync-tooling/atomic-write.js +153 -0
- package/node_modules/@comis/cli/dist/sync-tooling/backup.d.ts +93 -0
- package/node_modules/@comis/cli/dist/sync-tooling/backup.js +201 -0
- package/node_modules/@comis/cli/dist/sync-tooling/daemon-guard.d.ts +28 -0
- package/node_modules/@comis/cli/dist/sync-tooling/daemon-guard.js +59 -0
- package/node_modules/@comis/cli/dist/sync-tooling/diff.d.ts +65 -0
- package/node_modules/@comis/cli/dist/sync-tooling/diff.js +142 -0
- package/node_modules/@comis/cli/dist/sync-tooling/discover.d.ts +85 -0
- package/node_modules/@comis/cli/dist/sync-tooling/discover.js +218 -0
- package/node_modules/@comis/cli/dist/sync-tooling/generate.d.ts +77 -0
- package/node_modules/@comis/cli/dist/sync-tooling/generate.js +278 -0
- package/node_modules/@comis/cli/dist/sync-tooling/index.d.ts +15 -0
- package/node_modules/@comis/cli/dist/sync-tooling/index.js +16 -0
- package/node_modules/@comis/cli/dist/test-helpers.js +1 -0
- package/node_modules/@comis/cli/dist/tooling-fill/agent-call.d.ts +62 -0
- package/node_modules/@comis/cli/dist/tooling-fill/agent-call.js +151 -0
- package/node_modules/@comis/cli/dist/tooling-fill/apply-hint.d.ts +68 -0
- package/node_modules/@comis/cli/dist/tooling-fill/apply-hint.js +132 -0
- package/node_modules/@comis/cli/dist/tooling-fill/index.d.ts +20 -0
- package/node_modules/@comis/cli/dist/tooling-fill/index.js +21 -0
- package/node_modules/@comis/cli/dist/tooling-fill/orchestrator/index.d.ts +25 -0
- package/node_modules/@comis/cli/dist/tooling-fill/orchestrator/index.js +18 -0
- package/node_modules/@comis/cli/dist/tooling-fill/orchestrator/orchestrator-discover.d.ts +23 -0
- package/node_modules/@comis/cli/dist/tooling-fill/orchestrator/orchestrator-discover.js +307 -0
- package/node_modules/@comis/cli/dist/tooling-fill/orchestrator/orchestrator-fill.d.ts +22 -0
- package/node_modules/@comis/cli/dist/tooling-fill/orchestrator/orchestrator-fill.js +281 -0
- package/node_modules/@comis/cli/dist/tooling-fill/orchestrator/orchestrator-types.d.ts +101 -0
- package/node_modules/@comis/cli/dist/tooling-fill/orchestrator/orchestrator-types.js +7 -0
- package/node_modules/@comis/cli/dist/tooling-fill/orchestrator/orchestrator-verify.d.ts +25 -0
- package/node_modules/@comis/cli/dist/tooling-fill/orchestrator/orchestrator-verify.js +273 -0
- package/node_modules/@comis/cli/dist/tooling-fill/prompt-template.d.ts +40 -0
- package/node_modules/@comis/cli/dist/tooling-fill/prompt-template.js +86 -0
- package/node_modules/@comis/cli/dist/tooling-fill/response-parser.d.ts +44 -0
- package/node_modules/@comis/cli/dist/tooling-fill/response-parser.js +100 -0
- package/node_modules/@comis/cli/dist/tooling-fill/supervisor.d.ts +104 -0
- package/node_modules/@comis/cli/dist/tooling-fill/supervisor.js +237 -0
- package/node_modules/@comis/cli/dist/tooling-fill/validators.d.ts +60 -0
- package/node_modules/@comis/cli/dist/tooling-fill/validators.js +80 -0
- package/node_modules/@comis/cli/dist/util/daemon-required.d.ts +38 -0
- package/node_modules/@comis/cli/dist/util/daemon-required.js +56 -0
- package/node_modules/@comis/cli/dist/util/exit-codes.d.ts +23 -0
- package/node_modules/@comis/cli/dist/util/exit-codes.js +23 -0
- package/node_modules/@comis/cli/dist/wizard/clack-adapter.js +1 -0
- package/node_modules/@comis/cli/dist/wizard/non-interactive.js +2 -1
- package/node_modules/@comis/cli/dist/wizard/state.js +3 -1
- package/node_modules/@comis/cli/dist/wizard/steps/00-welcome.d.ts +1 -1
- package/node_modules/@comis/cli/dist/wizard/steps/00-welcome.js +33 -6
- package/node_modules/@comis/cli/dist/wizard/steps/01-detect-existing.d.ts +1 -1
- package/node_modules/@comis/cli/dist/wizard/steps/01-detect-existing.js +5 -2
- package/node_modules/@comis/cli/dist/wizard/steps/02-flow-select.d.ts +1 -1
- package/node_modules/@comis/cli/dist/wizard/steps/02-flow-select.js +1 -1
- package/node_modules/@comis/cli/dist/wizard/steps/03-provider.d.ts +1 -1
- package/node_modules/@comis/cli/dist/wizard/steps/03-provider.js +2 -1
- package/node_modules/@comis/cli/dist/wizard/steps/04-credentials.d.ts +1 -1
- package/node_modules/@comis/cli/dist/wizard/steps/04-credentials.js +22 -14
- package/node_modules/@comis/cli/dist/wizard/steps/05-agent.d.ts +1 -1
- package/node_modules/@comis/cli/dist/wizard/steps/05-agent.js +4 -2
- package/node_modules/@comis/cli/dist/wizard/steps/06-channels.d.ts +1 -1
- package/node_modules/@comis/cli/dist/wizard/steps/06-channels.js +15 -11
- package/node_modules/@comis/cli/dist/wizard/steps/07-gateway.d.ts +1 -1
- package/node_modules/@comis/cli/dist/wizard/steps/07-gateway.js +4 -1
- package/node_modules/@comis/cli/dist/wizard/steps/08-workspace.d.ts +1 -1
- package/node_modules/@comis/cli/dist/wizard/steps/08-workspace.js +2 -1
- package/node_modules/@comis/cli/dist/wizard/steps/08b-tool-providers.d.ts +1 -1
- package/node_modules/@comis/cli/dist/wizard/steps/08b-tool-providers.js +3 -1
- package/node_modules/@comis/cli/dist/wizard/steps/09-review.d.ts +1 -1
- package/node_modules/@comis/cli/dist/wizard/steps/09-review.js +4 -1
- package/node_modules/@comis/cli/dist/wizard/steps/10-write-config.d.ts +1 -1
- package/node_modules/@comis/cli/dist/wizard/steps/10-write-config.js +4 -1
- package/node_modules/@comis/cli/dist/wizard/steps/11-daemon-start.d.ts +1 -1
- package/node_modules/@comis/cli/dist/wizard/steps/11-daemon-start.js +22 -22
- package/node_modules/@comis/cli/dist/wizard/steps/12-finish.d.ts +1 -1
- package/node_modules/@comis/cli/dist/wizard/steps/12-finish.js +2 -1
- package/node_modules/@comis/cli/package.json +1 -1
- package/node_modules/@comis/core/dist/api-contracts/agents.d.ts +632 -0
- package/node_modules/@comis/core/dist/api-contracts/agents.js +685 -0
- package/node_modules/@comis/core/dist/api-contracts/auth.d.ts +90 -0
- package/node_modules/@comis/core/dist/api-contracts/auth.js +112 -0
- package/node_modules/@comis/core/dist/api-contracts/channels.d.ts +625 -0
- package/node_modules/@comis/core/dist/api-contracts/channels.js +658 -0
- package/node_modules/@comis/core/dist/api-contracts/config.d.ts +524 -0
- package/node_modules/@comis/core/dist/api-contracts/config.js +597 -0
- package/node_modules/@comis/core/dist/api-contracts/daemon.d.ts +67 -0
- package/node_modules/@comis/core/dist/api-contracts/daemon.js +79 -0
- package/node_modules/@comis/core/dist/api-contracts/index.d.ts +47 -0
- package/node_modules/@comis/core/dist/api-contracts/index.js +55 -0
- package/node_modules/@comis/core/dist/api-contracts/internals.d.ts +29 -0
- package/node_modules/@comis/core/dist/api-contracts/internals.js +56 -0
- package/node_modules/@comis/core/dist/api-contracts/mcp.d.ts +456 -0
- package/node_modules/@comis/core/dist/api-contracts/mcp.js +404 -0
- package/node_modules/@comis/core/dist/api-contracts/media.d.ts +563 -0
- package/node_modules/@comis/core/dist/api-contracts/media.js +605 -0
- package/node_modules/@comis/core/dist/api-contracts/memory.d.ts +653 -0
- package/node_modules/@comis/core/dist/api-contracts/memory.js +625 -0
- package/node_modules/@comis/core/dist/api-contracts/observability.d.ts +577 -0
- package/node_modules/@comis/core/dist/api-contracts/observability.js +667 -0
- package/node_modules/@comis/core/dist/api-contracts/orchestrator/cron-handlers.d.ts +254 -0
- package/node_modules/@comis/core/dist/api-contracts/orchestrator/cron-handlers.js +271 -0
- package/node_modules/@comis/core/dist/api-contracts/orchestrator/graph-handlers.d.ts +389 -0
- package/node_modules/@comis/core/dist/api-contracts/orchestrator/graph-handlers.js +402 -0
- package/node_modules/@comis/core/dist/api-contracts/orchestrator/heartbeat-handlers.d.ts +188 -0
- package/node_modules/@comis/core/dist/api-contracts/orchestrator/heartbeat-handlers.js +175 -0
- package/node_modules/@comis/core/dist/api-contracts/orchestrator/index.d.ts +234 -0
- package/node_modules/@comis/core/dist/api-contracts/orchestrator/index.js +35 -0
- package/node_modules/@comis/core/dist/api-contracts/orchestrator/subagent-handlers.d.ts +90 -0
- package/node_modules/@comis/core/dist/api-contracts/orchestrator/subagent-handlers.js +106 -0
- package/node_modules/@comis/core/dist/api-contracts/secrets.d.ts +174 -0
- package/node_modules/@comis/core/dist/api-contracts/secrets.js +202 -0
- package/node_modules/@comis/core/dist/api-contracts/sessions.d.ts +590 -0
- package/node_modules/@comis/core/dist/api-contracts/sessions.js +580 -0
- package/node_modules/@comis/core/dist/api-contracts/tokens.d.ts +203 -0
- package/node_modules/@comis/core/dist/api-contracts/tokens.js +234 -0
- package/node_modules/@comis/core/dist/api-contracts/types.d.ts +34 -0
- package/node_modules/@comis/core/dist/api-contracts/types.js +8 -0
- package/node_modules/@comis/core/dist/api-contracts/workspace/approval-handlers.d.ts +125 -0
- package/node_modules/@comis/core/dist/api-contracts/workspace/approval-handlers.js +148 -0
- package/node_modules/@comis/core/dist/api-contracts/workspace/browser-handlers.d.ts +283 -0
- package/node_modules/@comis/core/dist/api-contracts/workspace/browser-handlers.js +308 -0
- package/node_modules/@comis/core/dist/api-contracts/workspace/index.d.ts +279 -0
- package/node_modules/@comis/core/dist/api-contracts/workspace/index.js +40 -0
- package/node_modules/@comis/core/dist/api-contracts/workspace/notification-handlers.d.ts +71 -0
- package/node_modules/@comis/core/dist/api-contracts/workspace/notification-handlers.js +63 -0
- package/node_modules/@comis/core/dist/api-contracts/workspace/skill-handlers.d.ts +235 -0
- package/node_modules/@comis/core/dist/api-contracts/workspace/skill-handlers.js +208 -0
- package/node_modules/@comis/core/dist/api-contracts/workspace/workspace-handlers.d.ts +304 -0
- package/node_modules/@comis/core/dist/api-contracts/workspace/workspace-handlers.js +326 -0
- package/node_modules/@comis/core/dist/approval/approval-gate.d.ts +5 -0
- package/node_modules/@comis/core/dist/approval/approval-gate.js +19 -19
- package/node_modules/@comis/core/dist/bootstrap.d.ts +2 -2
- package/node_modules/@comis/core/dist/bootstrap.js +1 -5
- package/node_modules/@comis/core/dist/config/backup.js +3 -2
- package/node_modules/@comis/core/dist/config/env-substitution.js +12 -10
- package/node_modules/@comis/core/dist/config/field-metadata.js +10 -39
- package/node_modules/@comis/core/dist/config/git-manager.js +13 -6
- package/node_modules/@comis/core/dist/config/index.d.ts +2 -2
- package/node_modules/@comis/core/dist/config/index.js +1 -1
- package/node_modules/@comis/core/dist/config/managed-sections.d.ts +10 -46
- package/node_modules/@comis/core/dist/config/managed-sections.js +33 -125
- package/node_modules/@comis/core/dist/config/migrate.js +3 -0
- package/node_modules/@comis/core/dist/config/schema-agent/index.d.ts +33 -0
- package/node_modules/@comis/core/dist/config/schema-agent/index.js +34 -0
- package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-context.d.ts +243 -0
- package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-context.js +289 -0
- package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-model.d.ts +157 -0
- package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-model.js +149 -0
- package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-prompt.d.ts +147 -0
- package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-prompt.js +164 -0
- package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-runtime.d.ts +1226 -0
- package/node_modules/@comis/core/dist/config/schema-agent/schema-agent-runtime.js +260 -0
- package/node_modules/@comis/core/dist/config/schema-approvals.d.ts +3 -3
- package/node_modules/@comis/core/dist/config/schema-channel.d.ts +82 -0
- package/node_modules/@comis/core/dist/config/schema-channel.js +33 -1
- package/node_modules/@comis/core/dist/config/schema-security.d.ts +2 -2
- package/node_modules/@comis/core/dist/config/schema-serializer.js +10 -33
- package/node_modules/@comis/core/dist/config/schema-skills.d.ts +1 -1
- package/node_modules/@comis/core/dist/config/schema-streaming.d.ts +2 -2
- package/node_modules/@comis/core/dist/config/schema.d.ts +17 -8
- package/node_modules/@comis/core/dist/config/schema.js +1 -1
- package/node_modules/@comis/core/dist/config/section-registry.d.ts +111 -0
- package/node_modules/@comis/core/dist/config/section-registry.js +279 -0
- package/node_modules/@comis/core/dist/config/types.d.ts +1 -1
- package/node_modules/@comis/core/dist/context/context.js +1 -0
- package/node_modules/@comis/core/dist/delivery/chunk-for-delivery.d.ts +40 -0
- package/node_modules/@comis/core/dist/delivery/chunk-for-delivery.js +77 -0
- package/node_modules/@comis/core/dist/delivery/delivery-service.d.ts +87 -0
- package/node_modules/@comis/core/dist/delivery/delivery-service.js +471 -0
- package/node_modules/@comis/core/dist/delivery/no-op-delivery-mirror.d.ts +9 -0
- package/node_modules/@comis/core/dist/delivery/no-op-delivery-mirror.js +19 -0
- package/node_modules/@comis/core/dist/delivery/no-op-delivery-queue.d.ts +9 -0
- package/node_modules/@comis/core/dist/delivery/no-op-delivery-queue.js +25 -0
- package/node_modules/@comis/core/dist/delivery/queue-backoff.d.ts +41 -0
- package/node_modules/@comis/core/dist/delivery/queue-backoff.js +73 -0
- package/node_modules/@comis/core/dist/delivery/retry-engine.d.ts +89 -0
- package/node_modules/@comis/core/dist/delivery/retry-engine.js +259 -0
- package/node_modules/@comis/core/dist/delivery/types.d.ts +80 -0
- package/node_modules/@comis/core/dist/delivery/types.js +11 -0
- package/node_modules/@comis/core/dist/domain/channel-capability.d.ts +49 -0
- package/node_modules/@comis/core/dist/domain/channel-capability.js +61 -0
- package/node_modules/@comis/core/dist/domain/execution-graph.d.ts +2 -2
- package/node_modules/@comis/core/dist/domain/memory-entry.d.ts +1 -1
- package/node_modules/@comis/core/dist/domain/normalized-message.d.ts +1 -1
- package/node_modules/@comis/core/dist/domain/rich-message.d.ts +1 -1
- package/node_modules/@comis/core/dist/domain/session-key.d.ts +9 -8
- package/node_modules/@comis/core/dist/domain/session-key.js +11 -23
- package/node_modules/@comis/core/dist/event-bus/events-channel.d.ts +1 -1
- package/node_modules/@comis/core/dist/exports/delivery.d.ts +14 -0
- package/node_modules/@comis/core/dist/exports/delivery.js +42 -0
- package/node_modules/@comis/core/dist/exports/hooks.d.ts +1 -1
- package/node_modules/@comis/core/dist/exports/hooks.js +1 -1
- package/node_modules/@comis/core/dist/exports/logging.d.ts +3 -0
- package/node_modules/@comis/core/dist/exports/logging.js +7 -0
- package/node_modules/@comis/core/dist/exports/model.d.ts +2 -0
- package/node_modules/@comis/core/dist/exports/model.js +3 -0
- package/node_modules/@comis/core/dist/exports/oauth.d.ts +10 -0
- package/node_modules/@comis/core/dist/exports/oauth.js +10 -0
- package/node_modules/@comis/core/dist/exports/ports.d.ts +6 -2
- package/node_modules/@comis/core/dist/exports/ports.js +8 -1
- package/node_modules/@comis/core/dist/exports/runtime.d.ts +6 -0
- package/node_modules/@comis/core/dist/exports/runtime.js +15 -0
- package/node_modules/@comis/core/dist/exports/security.d.ts +4 -0
- package/node_modules/@comis/core/dist/exports/security.js +4 -0
- package/node_modules/@comis/core/dist/exports/workspace.d.ts +2 -0
- package/node_modules/@comis/core/dist/exports/workspace.js +3 -0
- package/node_modules/@comis/core/dist/hooks/hook-runner.js +7 -6
- package/node_modules/@comis/core/dist/hooks/index.d.ts +0 -1
- package/node_modules/@comis/core/dist/hooks/index.js +0 -1
- package/node_modules/@comis/core/dist/hooks/plugin-registry.js +3 -2
- package/node_modules/@comis/core/dist/index.d.ts +7 -0
- package/node_modules/@comis/core/dist/index.js +7 -0
- package/node_modules/@comis/core/dist/load-env.js +1 -0
- package/node_modules/@comis/core/dist/logging/console-logger.d.ts +15 -0
- package/node_modules/@comis/core/dist/logging/console-logger.js +47 -0
- package/node_modules/@comis/core/dist/logging/index.d.ts +1 -0
- package/node_modules/@comis/core/dist/logging/index.js +5 -0
- package/node_modules/@comis/core/dist/logging/log-fields.d.ts +254 -0
- package/node_modules/@comis/core/dist/logging/log-fields.js +31 -0
- package/node_modules/@comis/core/dist/model/model-catalog.d.ts +93 -0
- package/node_modules/@comis/core/dist/model/model-catalog.js +152 -0
- package/node_modules/@comis/core/dist/oauth/index.d.ts +22 -0
- package/node_modules/@comis/core/dist/oauth/index.js +24 -0
- package/node_modules/@comis/core/dist/oauth/oauth-credential-store-file.d.ts +54 -0
- package/node_modules/@comis/core/dist/oauth/oauth-credential-store-file.js +289 -0
- package/node_modules/@comis/core/dist/oauth/oauth-credential-store-selector.d.ts +71 -0
- package/node_modules/@comis/core/dist/oauth/oauth-credential-store-selector.js +52 -0
- package/node_modules/@comis/core/dist/oauth/oauth-device-code.d.ts +61 -0
- package/node_modules/@comis/core/dist/oauth/oauth-device-code.js +307 -0
- package/node_modules/@comis/core/dist/oauth/oauth-login-runner.d.ts +99 -0
- package/node_modules/@comis/core/dist/oauth/oauth-login-runner.js +374 -0
- package/node_modules/@comis/core/dist/oauth/oauth-token-manager.d.ts +134 -0
- package/node_modules/@comis/core/dist/oauth/oauth-token-manager.js +23 -0
- package/node_modules/@comis/core/dist/ports/channel-plugin.d.ts +2 -70
- package/node_modules/@comis/core/dist/ports/channel-plugin.js +1 -59
- package/node_modules/@comis/core/dist/ports/channel.d.ts +21 -1
- package/node_modules/@comis/core/dist/ports/clock.d.ts +17 -0
- package/node_modules/@comis/core/dist/ports/clock.js +13 -0
- package/node_modules/@comis/core/dist/ports/context-store-types.d.ts +115 -0
- package/node_modules/@comis/core/dist/ports/context-store-types.js +15 -0
- package/node_modules/@comis/core/dist/ports/context-store.d.ts +152 -0
- package/node_modules/@comis/core/dist/ports/context-store.js +17 -0
- package/node_modules/@comis/core/dist/ports/delivery-mirror.d.ts +5 -9
- package/node_modules/@comis/core/dist/ports/delivery-mirror.js +4 -17
- package/node_modules/@comis/core/dist/ports/delivery-queue.d.ts +5 -9
- package/node_modules/@comis/core/dist/ports/delivery-queue.js +4 -23
- package/node_modules/@comis/core/dist/ports/env.d.ts +19 -0
- package/node_modules/@comis/core/dist/ports/env.js +13 -0
- package/node_modules/@comis/core/dist/ports/file-lock.d.ts +94 -0
- package/node_modules/@comis/core/dist/ports/index.d.ts +11 -6
- package/node_modules/@comis/core/dist/ports/index.js +5 -5
- package/node_modules/@comis/core/dist/ports/oauth-credential-store.d.ts +0 -16
- package/node_modules/@comis/core/dist/ports/oauth-credential-store.js +1 -37
- package/node_modules/@comis/core/dist/ports/plugin.d.ts +1 -1
- package/node_modules/@comis/core/dist/ports/schedule-callback.d.ts +52 -0
- package/node_modules/@comis/core/dist/ports/schedule-callback.js +20 -0
- package/node_modules/@comis/core/dist/ports/session-store-types.d.ts +36 -0
- package/node_modules/@comis/core/dist/ports/session-store-types.js +15 -0
- package/node_modules/@comis/core/dist/ports/session-store.d.ts +40 -0
- package/node_modules/@comis/core/dist/ports/session-store.js +16 -0
- package/node_modules/@comis/core/dist/ports/timer.d.ts +25 -0
- package/node_modules/@comis/core/dist/ports/timer.js +13 -0
- package/node_modules/@comis/core/dist/runtime/file-lock.d.ts +69 -0
- package/node_modules/@comis/core/dist/runtime/file-lock.js +257 -0
- package/node_modules/@comis/core/dist/runtime/is-docker.d.ts +1 -0
- package/node_modules/@comis/core/dist/runtime/is-docker.js +40 -0
- package/node_modules/@comis/core/dist/runtime/system-time.d.ts +96 -0
- package/node_modules/@comis/core/dist/runtime/system-time.js +113 -0
- package/node_modules/@comis/core/dist/security/audit-aggregator.d.ts +14 -2
- package/node_modules/@comis/core/dist/security/audit-aggregator.js +12 -11
- package/node_modules/@comis/core/dist/security/audit.js +2 -1
- package/node_modules/@comis/core/dist/security/index.d.ts +5 -0
- package/node_modules/@comis/core/dist/security/index.js +6 -0
- package/node_modules/@comis/core/dist/security/injection-rate-limiter.d.ts +14 -2
- package/node_modules/@comis/core/dist/security/injection-rate-limiter.js +11 -11
- package/node_modules/@comis/core/dist/security/master-key.d.ts +33 -0
- package/node_modules/@comis/core/dist/security/master-key.js +48 -0
- package/node_modules/@comis/core/dist/security/oauth-helpers.d.ts +97 -0
- package/node_modules/@comis/core/dist/security/oauth-helpers.js +223 -0
- package/node_modules/@comis/core/dist/security/profile-id.d.ts +17 -0
- package/node_modules/@comis/core/dist/security/profile-id.js +37 -0
- package/node_modules/@comis/core/dist/security/secret-manager.js +3 -2
- package/node_modules/@comis/core/dist/tool-capability/no-op-tool-capability.d.ts +30 -0
- package/node_modules/@comis/core/dist/workspace/index.d.ts +18 -0
- package/node_modules/@comis/core/dist/workspace/index.js +16 -0
- package/node_modules/@comis/core/dist/workspace/templates.d.ts +11 -0
- package/node_modules/@comis/core/dist/workspace/templates.js +503 -0
- package/node_modules/@comis/core/dist/workspace/workspace-manager.d.ts +127 -0
- package/node_modules/@comis/core/dist/workspace/workspace-manager.js +244 -0
- package/node_modules/@comis/core/dist/workspace/workspace-resolver.d.ts +13 -0
- package/node_modules/@comis/core/dist/workspace/workspace-resolver.js +27 -0
- package/node_modules/@comis/core/dist/workspace/workspace-state.d.ts +39 -0
- package/node_modules/@comis/core/dist/workspace/workspace-state.js +120 -0
- package/node_modules/@comis/core/package.json +1 -1
- package/node_modules/@comis/daemon/dist/api/agent-handlers.d.ts +21 -0
- package/node_modules/@comis/daemon/dist/api/agent-handlers.js +514 -0
- package/node_modules/@comis/daemon/dist/api/approval-handlers.d.ts +41 -0
- package/node_modules/@comis/daemon/dist/api/approval-handlers.js +122 -0
- package/node_modules/@comis/daemon/dist/api/auth-handlers.d.ts +74 -0
- package/node_modules/@comis/daemon/dist/api/auth-handlers.js +245 -0
- package/node_modules/@comis/daemon/dist/api/browser-handlers.d.ts +9 -0
- package/node_modules/@comis/daemon/dist/api/browser-handlers.js +193 -0
- package/node_modules/@comis/daemon/dist/api/channel-handlers.d.ts +25 -0
- package/node_modules/@comis/daemon/dist/api/channel-handlers.js +290 -0
- package/node_modules/@comis/daemon/dist/api/config-handlers/config-export.d.ts +26 -0
- package/node_modules/@comis/daemon/dist/api/config-handlers/config-export.js +299 -0
- package/node_modules/@comis/daemon/dist/api/config-handlers/config-helpers.d.ts +110 -0
- package/node_modules/@comis/daemon/dist/api/config-handlers/config-helpers.js +265 -0
- package/node_modules/@comis/daemon/dist/api/config-handlers/config-read.d.ts +19 -0
- package/node_modules/@comis/daemon/dist/api/config-handlers/config-read.js +174 -0
- package/node_modules/@comis/daemon/dist/api/config-handlers/config-validate.d.ts +79 -0
- package/node_modules/@comis/daemon/dist/api/config-handlers/config-validate.js +223 -0
- package/node_modules/@comis/daemon/dist/api/config-handlers/config-write.d.ts +36 -0
- package/node_modules/@comis/daemon/dist/api/config-handlers/config-write.js +292 -0
- package/node_modules/@comis/daemon/dist/api/config-handlers/index.d.ts +29 -0
- package/node_modules/@comis/daemon/dist/api/config-handlers/index.js +39 -0
- package/node_modules/@comis/daemon/dist/api/context-handlers.d.ts +51 -0
- package/node_modules/@comis/daemon/dist/api/context-handlers.js +455 -0
- package/node_modules/@comis/daemon/dist/api/cron-handlers.d.ts +27 -0
- package/node_modules/@comis/daemon/dist/api/cron-handlers.js +324 -0
- package/node_modules/@comis/daemon/dist/api/daemon-handlers.d.ts +15 -0
- package/node_modules/@comis/daemon/dist/api/daemon-handlers.js +113 -0
- package/node_modules/@comis/daemon/dist/api/env-handlers.d.ts +45 -0
- package/node_modules/@comis/daemon/dist/api/env-handlers.js +334 -0
- package/node_modules/@comis/daemon/dist/api/graph-handlers/graph-export.d.ts +15 -0
- package/node_modules/@comis/daemon/dist/api/graph-handlers/graph-export.js +53 -0
- package/node_modules/@comis/daemon/dist/api/graph-handlers/graph-helpers.d.ts +80 -0
- package/node_modules/@comis/daemon/dist/api/graph-handlers/graph-helpers.js +323 -0
- package/node_modules/@comis/daemon/dist/api/graph-handlers/graph-mutate.d.ts +20 -0
- package/node_modules/@comis/daemon/dist/api/graph-handlers/graph-mutate.js +226 -0
- package/node_modules/@comis/daemon/dist/api/graph-handlers/graph-query.d.ts +23 -0
- package/node_modules/@comis/daemon/dist/api/graph-handlers/graph-query.js +349 -0
- package/node_modules/@comis/daemon/dist/api/graph-handlers/index.d.ts +17 -0
- package/node_modules/@comis/daemon/dist/api/graph-handlers/index.js +24 -0
- package/node_modules/@comis/daemon/dist/api/heartbeat-handlers.d.ts +27 -0
- package/node_modules/@comis/daemon/dist/api/heartbeat-handlers.js +240 -0
- package/node_modules/@comis/daemon/dist/api/image-handlers.d.ts +45 -0
- package/node_modules/@comis/daemon/dist/api/image-handlers.js +122 -0
- package/node_modules/@comis/daemon/dist/api/index.d.ts +26 -0
- package/node_modules/@comis/daemon/dist/api/index.js +25 -0
- package/node_modules/@comis/daemon/dist/api/mcp-handlers.d.ts +38 -0
- package/node_modules/@comis/daemon/dist/api/mcp-handlers.js +327 -0
- package/node_modules/@comis/daemon/dist/api/media-handlers.d.ts +47 -0
- package/node_modules/@comis/daemon/dist/api/media-handlers.js +599 -0
- package/node_modules/@comis/daemon/dist/api/memory-handlers.d.ts +36 -0
- package/node_modules/@comis/daemon/dist/api/memory-handlers.js +333 -0
- package/node_modules/@comis/daemon/dist/api/message-handlers.d.ts +27 -0
- package/node_modules/@comis/daemon/dist/api/message-handlers.js +389 -0
- package/node_modules/@comis/daemon/dist/api/model-handlers.d.ts +18 -0
- package/node_modules/@comis/daemon/dist/api/model-handlers.js +180 -0
- package/node_modules/@comis/daemon/dist/api/notification-handlers.d.ts +39 -0
- package/node_modules/@comis/daemon/dist/api/notification-handlers.js +95 -0
- package/node_modules/@comis/daemon/dist/api/obs-handlers/index.d.ts +20 -0
- package/node_modules/@comis/daemon/dist/api/obs-handlers/index.js +27 -0
- package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-diagnostics.d.ts +22 -0
- package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-diagnostics.js +270 -0
- package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-export.d.ts +22 -0
- package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-export.js +110 -0
- package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-helpers.d.ts +21 -0
- package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-helpers.js +21 -0
- package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-metrics.d.ts +22 -0
- package/node_modules/@comis/daemon/dist/api/obs-handlers/obs-metrics.js +393 -0
- package/node_modules/@comis/daemon/dist/api/provider-handlers.d.ts +25 -0
- package/node_modules/@comis/daemon/dist/api/provider-handlers.js +448 -0
- package/node_modules/@comis/daemon/dist/api/rpc-dispatch.d.ts +31 -0
- package/node_modules/@comis/daemon/dist/api/rpc-dispatch.js +307 -0
- package/node_modules/@comis/daemon/dist/api/secrets-handlers.d.ts +64 -0
- package/node_modules/@comis/daemon/dist/api/secrets-handlers.js +463 -0
- package/node_modules/@comis/daemon/dist/api/session-handlers/index.d.ts +14 -0
- package/node_modules/@comis/daemon/dist/api/session-handlers/index.js +23 -0
- package/node_modules/@comis/daemon/dist/api/session-handlers/session-archive.d.ts +17 -0
- package/node_modules/@comis/daemon/dist/api/session-handlers/session-archive.js +91 -0
- package/node_modules/@comis/daemon/dist/api/session-handlers/session-helpers.d.ts +66 -0
- package/node_modules/@comis/daemon/dist/api/session-handlers/session-helpers.js +215 -0
- package/node_modules/@comis/daemon/dist/api/session-handlers/session-list.d.ts +16 -0
- package/node_modules/@comis/daemon/dist/api/session-handlers/session-list.js +239 -0
- package/node_modules/@comis/daemon/dist/api/session-handlers/session-mutate.d.ts +17 -0
- package/node_modules/@comis/daemon/dist/api/session-handlers/session-mutate.js +191 -0
- package/node_modules/@comis/daemon/dist/api/session-handlers/session-read.d.ts +18 -0
- package/node_modules/@comis/daemon/dist/api/session-handlers/session-read.js +277 -0
- package/node_modules/@comis/daemon/dist/api/shared/builtin-provider-guard.js +60 -0
- package/node_modules/@comis/daemon/dist/api/shared/credential-resolver.js +162 -0
- package/node_modules/@comis/daemon/dist/api/shared/persist-to-config.d.ts +105 -0
- package/node_modules/@comis/daemon/dist/api/shared/persist-to-config.js +235 -0
- package/node_modules/@comis/daemon/dist/api/skill-handlers.d.ts +50 -0
- package/node_modules/@comis/daemon/dist/api/skill-handlers.js +523 -0
- package/node_modules/@comis/daemon/dist/api/subagent-handlers.d.ts +24 -0
- package/node_modules/@comis/daemon/dist/api/subagent-handlers.js +116 -0
- package/node_modules/@comis/daemon/dist/api/token-handlers.d.ts +83 -0
- package/node_modules/@comis/daemon/dist/api/token-handlers.js +311 -0
- package/node_modules/@comis/daemon/dist/api/types.d.ts +466 -0
- package/node_modules/@comis/daemon/dist/api/types.js +18 -0
- package/node_modules/@comis/daemon/dist/api/workspace-handlers.d.ts +40 -0
- package/node_modules/@comis/daemon/dist/api/workspace-handlers.js +513 -0
- package/node_modules/@comis/daemon/dist/config/last-known-good.js +3 -2
- package/node_modules/@comis/daemon/dist/daemon-types.d.ts +322 -9
- package/node_modules/@comis/daemon/dist/daemon-types.js +9 -2
- package/node_modules/@comis/daemon/dist/daemon.d.ts +9 -6
- package/node_modules/@comis/daemon/dist/daemon.js +456 -1060
- package/node_modules/@comis/daemon/dist/device/device-pairing.js +3 -3
- package/node_modules/@comis/daemon/dist/graph/graph-cleanup.js +5 -4
- package/node_modules/@comis/daemon/dist/graph/graph-completion.js +11 -11
- package/node_modules/@comis/daemon/dist/graph/graph-coordinator-state.d.ts +1 -1
- package/node_modules/@comis/daemon/dist/graph/graph-coordinator.d.ts +1 -1
- package/node_modules/@comis/daemon/dist/graph/graph-coordinator.js +11 -11
- package/node_modules/@comis/daemon/dist/graph/graph-driver-handler.js +21 -22
- package/node_modules/@comis/daemon/dist/graph/graph-node-lifecycle.js +19 -20
- package/node_modules/@comis/daemon/dist/graph/graph-prewarm.js +5 -4
- package/node_modules/@comis/daemon/dist/graph/graph-state-machine.js +7 -6
- package/node_modules/@comis/daemon/dist/health/watchdog.js +4 -4
- package/node_modules/@comis/daemon/dist/index.d.ts +8 -9
- package/node_modules/@comis/daemon/dist/index.js +20 -8
- package/node_modules/@comis/daemon/dist/monitoring/disk-space-source.js +2 -1
- package/node_modules/@comis/daemon/dist/monitoring/exec-helpers.js +2 -1
- package/node_modules/@comis/daemon/dist/monitoring/git-watcher-source.js +2 -1
- package/node_modules/@comis/daemon/dist/monitoring/security-update-source.js +3 -1
- package/node_modules/@comis/daemon/dist/monitoring/system-resources-source.js +3 -1
- package/node_modules/@comis/daemon/dist/monitoring/systemd-service-source.js +3 -1
- package/node_modules/@comis/daemon/dist/observability/billing-estimator.js +4 -3
- package/node_modules/@comis/daemon/dist/observability/channel-activity-tracker.js +4 -3
- package/node_modules/@comis/daemon/dist/observability/channel-health-logger.js +5 -4
- package/node_modules/@comis/daemon/dist/observability/delivery-queue-logger.js +2 -2
- package/node_modules/@comis/daemon/dist/observability/delivery-tracer.js +8 -8
- package/node_modules/@comis/daemon/dist/observability/diagnostic-collector.js +4 -4
- package/node_modules/@comis/daemon/dist/observability/latency-recorder.js +3 -2
- package/node_modules/@comis/daemon/dist/observability/log-infra.js +3 -2
- package/node_modules/@comis/daemon/dist/observability/obs-persistence-wiring.js +7 -6
- package/node_modules/@comis/daemon/dist/observability/token-tracker.js +2 -1
- package/node_modules/@comis/daemon/dist/process/graceful-shutdown.js +8 -7
- package/node_modules/@comis/daemon/dist/process/process-monitor.js +4 -3
- package/node_modules/@comis/daemon/dist/stages/agents-helpers.d.ts +89 -0
- package/node_modules/@comis/daemon/dist/stages/agents-helpers.js +155 -0
- package/node_modules/@comis/daemon/dist/stages/channels-helpers.d.ts +127 -0
- package/node_modules/@comis/daemon/dist/stages/channels-helpers.js +223 -0
- package/node_modules/@comis/daemon/dist/stages/foundation-helpers.d.ts +53 -0
- package/node_modules/@comis/daemon/dist/stages/foundation-helpers.js +208 -0
- package/node_modules/@comis/daemon/dist/stages/gateway-helpers.d.ts +120 -0
- package/node_modules/@comis/daemon/dist/stages/gateway-helpers.js +277 -0
- package/node_modules/@comis/daemon/dist/stages/index.d.ts +14 -0
- package/node_modules/@comis/daemon/dist/stages/index.js +15 -0
- package/node_modules/@comis/daemon/dist/stages/shutdown-helpers.d.ts +84 -0
- package/node_modules/@comis/daemon/dist/stages/shutdown-helpers.js +157 -0
- package/node_modules/@comis/daemon/dist/wiring/daemon-context.d.ts +8 -8
- package/node_modules/@comis/daemon/dist/wiring/daemon-context.js +3 -2
- package/node_modules/@comis/daemon/dist/wiring/daemon-utils.d.ts +12 -11
- package/node_modules/@comis/daemon/dist/wiring/daemon-utils.js +15 -2
- package/node_modules/@comis/daemon/dist/wiring/inbound-message-id-resolver.d.ts +1 -1
- package/node_modules/@comis/daemon/dist/wiring/inbound-message-id-resolver.js +10 -1
- package/node_modules/@comis/daemon/dist/wiring/index.d.ts +4 -4
- package/node_modules/@comis/daemon/dist/wiring/index.js +4 -4
- package/node_modules/@comis/daemon/dist/wiring/oauth-preflight.js +3 -3
- package/node_modules/@comis/daemon/dist/wiring/restart-continuation.js +4 -3
- package/node_modules/@comis/daemon/dist/wiring/setup-agents/index.d.ts +18 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-agents/index.js +17 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-agents/setup-agents-registry.d.ts +141 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-agents/setup-agents-registry.js +278 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-agents/setup-agents-runtime.d.ts +31 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-agents/setup-agents-runtime.js +419 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-agents/setup-agents-tooling.d.ts +51 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-agents/setup-agents-tooling.js +103 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-agents/setup-agents-types.d.ts +127 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-agents/setup-agents-types.js +11 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-background-tasks.d.ts +5 -1
- package/node_modules/@comis/daemon/dist/wiring/setup-background-tasks.js +3 -1
- package/node_modules/@comis/daemon/dist/wiring/setup-channels/index.d.ts +15 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-channels/index.js +15 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-credentials.d.ts +76 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-credentials.js +361 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-registry.d.ts +183 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-registry.js +140 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-runtime.d.ts +111 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-channels/setup-channels-runtime.js +429 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-channels-adapters.js +51 -4
- package/node_modules/@comis/daemon/dist/wiring/setup-channels-media.js +5 -5
- package/node_modules/@comis/daemon/dist/wiring/setup-cross-session/index.d.ts +16 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-cross-session/index.js +16 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-cross-session/setup-cross-session-events.d.ts +37 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-cross-session/setup-cross-session-events.js +104 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-cross-session/setup-cross-session-graph.d.ts +90 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-cross-session/setup-cross-session-graph.js +419 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-cross-session/setup-cross-session-runtime.d.ts +96 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-cross-session/setup-cross-session-runtime.js +241 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-delivery.d.ts +1 -2
- package/node_modules/@comis/daemon/dist/wiring/setup-delivery.js +16 -17
- package/node_modules/@comis/daemon/dist/wiring/setup-gateway/index.d.ts +22 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-gateway/index.js +21 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-gateway/setup-gateway-admin.d.ts +100 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-gateway/setup-gateway-admin.js +273 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-gateway/setup-gateway-routes.d.ts +121 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-gateway/setup-gateway-routes.js +147 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-gateway/setup-gateway-rpc.d.ts +103 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-gateway/setup-gateway-rpc.js +415 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-gateway-api.d.ts +60 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-gateway-api.js +68 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-gateway-routes.js +11 -10
- package/node_modules/@comis/daemon/dist/wiring/setup-heartbeat.d.ts +1 -3
- package/node_modules/@comis/daemon/dist/wiring/setup-heartbeat.js +4 -5
- package/node_modules/@comis/daemon/dist/wiring/setup-mcp.js +1 -1
- package/node_modules/@comis/daemon/dist/wiring/setup-memory.d.ts +2 -0
- package/node_modules/@comis/daemon/dist/wiring/setup-memory.js +2 -2
- package/node_modules/@comis/daemon/dist/wiring/setup-observability.js +2 -1
- package/node_modules/@comis/daemon/dist/wiring/setup-output-retention.js +4 -4
- package/node_modules/@comis/daemon/dist/wiring/setup-schedulers.d.ts +8 -4
- package/node_modules/@comis/daemon/dist/wiring/setup-schedulers.js +33 -23
- package/node_modules/@comis/daemon/dist/wiring/setup-shutdown.d.ts +1 -1
- package/node_modules/@comis/daemon/dist/wiring/setup-shutdown.js +51 -51
- package/node_modules/@comis/daemon/dist/wiring/setup-tools.d.ts +1 -1
- package/node_modules/@comis/daemon/dist/wiring/setup-tools.js +101 -93
- package/node_modules/@comis/daemon/dist/wiring/tool-capability-adapter.js +1 -1
- package/node_modules/@comis/daemon/package.json +1 -1
- package/node_modules/@comis/gateway/dist/acp/acp-server.js +1 -0
- package/node_modules/@comis/gateway/dist/auth/mtls-verifier.js +3 -2
- package/node_modules/@comis/gateway/dist/oauth/oauth-callback-route.d.ts +3 -3
- package/node_modules/@comis/gateway/dist/oauth/oauth-callback-route.js +7 -6
- package/node_modules/@comis/gateway/dist/openai/openai-completions.js +2 -1
- package/node_modules/@comis/gateway/dist/rpc/ws-handler.js +10 -9
- package/node_modules/@comis/gateway/dist/server/gateway-logger.d.ts +17 -0
- package/node_modules/@comis/gateway/dist/server/gateway-logger.js +1 -0
- package/node_modules/@comis/gateway/dist/server/hono-server.d.ts +2 -13
- package/node_modules/@comis/gateway/dist/server/hono-server.js +2 -2
- package/node_modules/@comis/gateway/dist/web/media-routes.js +3 -2
- package/node_modules/@comis/gateway/dist/web/rest-api.js +3 -3
- package/node_modules/@comis/gateway/dist/webhook/hmac-verifier.js +2 -1
- package/node_modules/@comis/gateway/dist/webhook/webhook-endpoint.js +2 -1
- package/node_modules/@comis/gateway/package.json +1 -1
- package/node_modules/@comis/infra/dist/index.d.ts +5 -2
- package/node_modules/@comis/infra/dist/index.js +10 -1
- package/node_modules/@comis/infra/dist/logging/index.d.ts +2 -2
- package/node_modules/@comis/infra/dist/logging/index.js +8 -2
- package/node_modules/@comis/infra/dist/logging/logger.d.ts +23 -5
- package/node_modules/@comis/infra/dist/logging/logger.js +19 -4
- package/node_modules/@comis/infra/dist/runtime/clock.d.ts +12 -0
- package/node_modules/@comis/infra/dist/runtime/clock.js +6 -0
- package/node_modules/@comis/infra/dist/runtime/env.d.ts +15 -0
- package/node_modules/@comis/infra/dist/runtime/env.js +11 -0
- package/node_modules/@comis/infra/dist/runtime/timers.d.ts +20 -0
- package/node_modules/@comis/infra/dist/runtime/timers.js +27 -0
- package/node_modules/@comis/infra/package.json +1 -1
- package/node_modules/@comis/memory/dist/compaction.d.ts +3 -4
- package/node_modules/@comis/memory/dist/compaction.js +6 -5
- package/node_modules/@comis/memory/dist/context-store.d.ts +3 -119
- package/node_modules/@comis/memory/dist/context-store.js +110 -38
- package/node_modules/@comis/memory/dist/credential-mapping-store.js +25 -8
- package/node_modules/@comis/memory/dist/delivery-mirror-adapter.js +12 -5
- package/node_modules/@comis/memory/dist/delivery-queue-adapter.js +40 -12
- package/node_modules/@comis/memory/dist/embedding-cache-sqlite.js +16 -7
- package/node_modules/@comis/memory/dist/hybrid-search.js +37 -3
- package/node_modules/@comis/memory/dist/identity-link-store.js +14 -4
- package/node_modules/@comis/memory/dist/index.d.ts +5 -5
- package/node_modules/@comis/memory/dist/index.js +10 -1
- package/node_modules/@comis/memory/dist/memory-api.d.ts +2 -3
- package/node_modules/@comis/memory/dist/memory-api.js +25 -9
- package/node_modules/@comis/memory/dist/named-graph-store.js +22 -6
- package/node_modules/@comis/memory/dist/oauth-profile-store-encrypted.js +31 -24
- package/node_modules/@comis/memory/dist/observability-store/index.d.ts +27 -0
- package/node_modules/@comis/memory/dist/observability-store/index.js +35 -0
- package/node_modules/@comis/memory/dist/observability-store/observability-mutations.d.ts +20 -0
- package/node_modules/@comis/memory/dist/observability-store/observability-mutations.js +63 -0
- package/node_modules/@comis/memory/dist/observability-store/observability-queries.d.ts +20 -0
- package/node_modules/@comis/memory/dist/observability-store/observability-queries.js +256 -0
- package/node_modules/@comis/memory/dist/observability-store/observability-reset.d.ts +20 -0
- package/node_modules/@comis/memory/dist/observability-store/observability-reset.js +61 -0
- package/node_modules/@comis/memory/dist/observability-store/observability-store-types.d.ts +336 -0
- package/node_modules/@comis/memory/dist/observability-store/observability-store-types.js +116 -0
- package/node_modules/@comis/memory/dist/row-mapper.d.ts +62 -0
- package/node_modules/@comis/memory/dist/row-mapper.js +113 -5
- package/node_modules/@comis/memory/dist/row-schemas.d.ts +559 -0
- package/node_modules/@comis/memory/dist/row-schemas.js +560 -0
- package/node_modules/@comis/memory/dist/schema.js +1 -0
- package/node_modules/@comis/memory/dist/secret-store-schema.js +3 -1
- package/node_modules/@comis/memory/dist/session-store.d.ts +3 -75
- package/node_modules/@comis/memory/dist/session-store.js +37 -9
- package/node_modules/@comis/memory/dist/sqlite-adapter-base.d.ts +3 -3
- package/node_modules/@comis/memory/dist/sqlite-adapter-base.js +3 -3
- package/node_modules/@comis/memory/dist/sqlite-memory-adapter.js +55 -34
- package/node_modules/@comis/memory/dist/sqlite-secret-store.js +35 -4
- package/node_modules/@comis/memory/dist/types.d.ts +0 -114
- package/node_modules/@comis/memory/dist/types.js +7 -0
- package/node_modules/@comis/memory/package.json +1 -1
- package/node_modules/@comis/orchestrator/dist/channel-manager.d.ts +230 -0
- package/node_modules/@comis/orchestrator/dist/channel-manager.js +229 -0
- package/node_modules/@comis/orchestrator/dist/commands/command-handler.js +509 -0
- package/node_modules/@comis/orchestrator/dist/cross-session/announcement-batcher.js +235 -0
- package/node_modules/@comis/orchestrator/dist/cross-session/announcement-dead-letter.d.ts +92 -0
- package/node_modules/@comis/orchestrator/dist/cross-session/announcement-dead-letter.js +219 -0
- package/node_modules/@comis/orchestrator/dist/cross-session/cross-session-sender.js +145 -0
- package/node_modules/@comis/orchestrator/dist/execution/execution-deliver.d.ts +20 -0
- package/node_modules/@comis/orchestrator/dist/execution/execution-deliver.js +173 -0
- package/node_modules/@comis/orchestrator/dist/execution/execution-execute.d.ts +45 -0
- package/node_modules/@comis/orchestrator/dist/execution/execution-execute.js +176 -0
- package/node_modules/@comis/orchestrator/dist/execution/execution-filter.d.ts +30 -0
- package/node_modules/@comis/orchestrator/dist/execution/execution-filter.js +182 -0
- package/node_modules/@comis/orchestrator/dist/execution/execution-pipeline.d.ts +106 -0
- package/node_modules/@comis/orchestrator/dist/execution/execution-pipeline.js +294 -0
- package/node_modules/@comis/orchestrator/dist/execution/execution-policy.d.ts +34 -0
- package/node_modules/@comis/orchestrator/dist/execution/execution-policy.js +127 -0
- package/node_modules/@comis/orchestrator/dist/inbound/inbound-gate.d.ts +35 -0
- package/node_modules/@comis/orchestrator/dist/inbound/inbound-gate.js +387 -0
- package/node_modules/@comis/orchestrator/dist/inbound/inbound-pipeline.d.ts +158 -0
- package/node_modules/@comis/orchestrator/dist/inbound/inbound-pipeline.js +90 -0
- package/node_modules/@comis/orchestrator/dist/inbound/inbound-preprocess.js +83 -0
- package/node_modules/@comis/orchestrator/dist/inbound/inbound-resolve.js +57 -0
- package/node_modules/@comis/orchestrator/dist/inbound/inbound-route.d.ts +24 -0
- package/node_modules/@comis/orchestrator/dist/inbound/inbound-route.js +248 -0
- package/node_modules/@comis/orchestrator/dist/inbound/inbound-setup.d.ts +32 -0
- package/node_modules/@comis/orchestrator/dist/inbound/inbound-setup.js +147 -0
- package/node_modules/@comis/orchestrator/dist/index.d.ts +31 -0
- package/node_modules/@comis/orchestrator/dist/index.js +75 -0
- package/node_modules/@comis/orchestrator/dist/queue/coalescer.js +59 -0
- package/node_modules/@comis/orchestrator/dist/queue/command-queue.d.ts +88 -0
- package/node_modules/@comis/orchestrator/dist/queue/command-queue.js +351 -0
- package/node_modules/@comis/orchestrator/dist/queue/debounce-buffer.js +132 -0
- package/node_modules/@comis/orchestrator/dist/queue/followup-trigger.js +63 -0
- package/node_modules/@comis/orchestrator/dist/queue/overflow.js +98 -0
- package/node_modules/@comis/orchestrator/dist/queue/priority-scheduler.js +200 -0
- package/node_modules/@comis/orchestrator/dist/session-key/session-key-builder.d.ts +49 -0
- package/node_modules/@comis/orchestrator/dist/session-key/session-key-builder.js +100 -0
- package/node_modules/@comis/orchestrator/package.json +44 -0
- package/node_modules/@comis/scheduler/dist/cron/cron-expression.js +3 -2
- package/node_modules/@comis/scheduler/dist/cron/cron-scheduler.d.ts +1 -1
- package/node_modules/@comis/scheduler/dist/cron/cron-scheduler.js +6 -5
- package/node_modules/@comis/scheduler/dist/cron/cron-store.js +13 -7
- package/node_modules/@comis/scheduler/dist/cron/index.d.ts +1 -1
- package/node_modules/@comis/scheduler/dist/execution/execution-tracker.js +1 -0
- package/node_modules/@comis/scheduler/dist/execution/index.d.ts +0 -2
- package/node_modules/@comis/scheduler/dist/execution/index.js +4 -3
- package/node_modules/@comis/scheduler/dist/heartbeat/agent-heartbeat-source.d.ts +7 -2
- package/node_modules/@comis/scheduler/dist/heartbeat/agent-heartbeat-source.js +7 -7
- package/node_modules/@comis/scheduler/dist/heartbeat/delivery-bridge.js +5 -4
- package/node_modules/@comis/scheduler/dist/heartbeat/heartbeat-runner.js +3 -3
- package/node_modules/@comis/scheduler/dist/heartbeat/per-agent-heartbeat-runner.js +4 -3
- package/node_modules/@comis/scheduler/dist/heartbeat/prompt-builder.js +2 -1
- package/node_modules/@comis/scheduler/dist/heartbeat/quiet-hours.js +3 -1
- package/node_modules/@comis/scheduler/dist/heartbeat/response-cache.d.ts +4 -1
- package/node_modules/@comis/scheduler/dist/heartbeat/response-cache.js +6 -2
- package/node_modules/@comis/scheduler/dist/heartbeat/wake-coalescer.js +7 -6
- package/node_modules/@comis/scheduler/dist/index.d.ts +1 -3
- package/node_modules/@comis/scheduler/dist/index.js +3 -2
- package/node_modules/@comis/scheduler/dist/tasks/task-priority.js +2 -1
- package/node_modules/@comis/scheduler/dist/tasks/task-store.js +3 -2
- package/node_modules/@comis/scheduler/package.json +1 -1
- package/node_modules/@comis/shared/dist/timeout.d.ts +16 -1
- package/node_modules/@comis/shared/dist/timeout.js +19 -4
- package/node_modules/@comis/shared/dist/ttl-cache.d.ts +13 -3
- package/node_modules/@comis/shared/dist/ttl-cache.js +12 -2
- package/node_modules/@comis/shared/package.json +1 -1
- package/node_modules/@comis/skills/dist/index.d.ts +9 -60
- package/node_modules/@comis/skills/dist/index.js +9 -109
- package/node_modules/@comis/skills/dist/platform-tools/admin-manage-factory.d.ts +70 -0
- package/node_modules/@comis/skills/dist/platform-tools/index.d.ts +68 -0
- package/node_modules/@comis/skills/dist/platform-tools/index.js +84 -0
- package/node_modules/@comis/skills/dist/platform-tools/messaging-factory.d.ts +92 -0
- package/node_modules/@comis/skills/dist/platform-tools/platform-action-tool.d.ts +60 -0
- package/node_modules/@comis/skills/dist/platform-tools/registry.d.ts +104 -0
- package/node_modules/@comis/skills/dist/platform-tools/registry.js +324 -0
- package/node_modules/@comis/skills/dist/platform-tools/tool-helpers.d.ts +163 -0
- package/node_modules/@comis/skills/dist/platform-tools/tool-helpers.js +238 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/agents-manage-tool.d.ts +116 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/agents-manage-tool.js +401 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/background-tasks-tool.d.ts +54 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/background-tasks-tool.js +158 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/browser-tool-schema.d.ts +88 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/browser-tool.d.ts +43 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/browser-tool.js +98 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/channels-manage-tool.d.ts +37 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/channels-manage-tool.js +140 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/cron-tool.d.ts +49 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/cron-tool.js +172 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/ctx-expand-tool.d.ts +25 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/ctx-expand-tool.js +48 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/ctx-inspect-tool.d.ts +23 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/ctx-inspect-tool.js +47 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/ctx-recall-tool.d.ts +27 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/ctx-recall-tool.js +62 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/ctx-search-tool.d.ts +27 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/ctx-search-tool.js +52 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/describe-video-tool.d.ts +24 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/describe-video-tool.js +53 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/discord-action-tool.d.ts +30 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/discord-action-tool.js +90 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/extract-document-tool.d.ts +24 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/extract-document-tool.js +53 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/gateway-tool.d.ts +59 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/gateway-tool.js +274 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/heartbeat-manage-tool.d.ts +37 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/heartbeat-manage-tool.js +139 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/image-generate-tool.d.ts +27 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/image-generate-tool.js +41 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/image-tool.d.ts +28 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/image-tool.js +73 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/mcp-manage-tool.d.ts +24 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/mcp-manage-tool.js +109 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/memory-get-tool.d.ts +28 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/memory-get-tool.js +55 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/memory-manage-tool.d.ts +42 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/memory-manage-tool.js +183 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/memory-search-tool.d.ts +24 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/memory-search-tool.js +44 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/memory-store-tool.d.ts +23 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/memory-store-tool.js +66 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/message-tool.d.ts +50 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/message-tool.js +209 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/models-manage-tool.d.ts +33 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/models-manage-tool.js +83 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/notify-tool.d.ts +29 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/notify-tool.js +54 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/obs-query-tool.d.ts +26 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/obs-query-tool.js +180 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/pipeline-tool.d.ts +63 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/pipeline-tool.js +461 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/providers-manage-tool.d.ts +57 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/providers-manage-tool.js +203 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/session-search-tool.d.ts +33 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/session-search-tool.js +76 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/session-status-tool.d.ts +22 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/session-status-tool.js +43 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/sessions-history-tool.d.ts +24 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/sessions-history-tool.js +51 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/sessions-list-tool.d.ts +23 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/sessions-list-tool.js +51 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/sessions-manage-tool.d.ts +34 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/sessions-manage-tool.js +82 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/sessions-send-tool.d.ts +30 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/sessions-send-tool.js +58 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/sessions-spawn-tool.d.ts +39 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/sessions-spawn-tool.js +84 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/skills-manage-tool.d.ts +39 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/skills-manage-tool.js +107 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/slack-action-tool.d.ts +24 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/slack-action-tool.js +77 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/subagents-tool.d.ts +27 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/subagents-tool.js +101 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/telegram-action-tool.d.ts +22 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/telegram-action-tool.js +72 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/tokens-manage-tool.d.ts +34 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/tokens-manage-tool.js +87 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/transcribe-audio-tool.d.ts +24 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/transcribe-audio-tool.js +53 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/tts-tool.d.ts +26 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/tts-tool.js +61 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/unified-context-tool.d.ts +35 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/unified-context-tool.js +106 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/unified-memory-tool.d.ts +45 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/unified-memory-tool.js +230 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/unified-session-tool.d.ts +33 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/unified-session-tool.js +130 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/whatsapp-action-tool.d.ts +25 -0
- package/node_modules/@comis/skills/dist/platform-tools/tools/whatsapp-action-tool.js +79 -0
- package/node_modules/@comis/skills/dist/skills/audit/skill-audit.js +72 -0
- package/node_modules/@comis/skills/dist/skills/bridge/credential-injector.d.ts +90 -0
- package/node_modules/@comis/skills/dist/skills/bridge/credential-injector.js +236 -0
- package/node_modules/@comis/skills/dist/skills/bridge/mcp-tool-bridge.d.ts +70 -0
- package/node_modules/@comis/skills/dist/skills/bridge/mcp-tool-bridge.js +242 -0
- package/node_modules/@comis/skills/dist/skills/bridge/schema-validator.js +169 -0
- package/node_modules/@comis/skills/dist/skills/bridge/tool-audit.d.ts +25 -0
- package/node_modules/@comis/skills/dist/skills/bridge/tool-audit.js +79 -0
- package/node_modules/@comis/skills/dist/skills/bridge/tool-bridge.d.ts +91 -0
- package/node_modules/@comis/skills/dist/skills/bridge/tool-bridge.js +137 -0
- package/node_modules/@comis/skills/dist/skills/bridge/tool-definition-adapter.d.ts +33 -0
- package/node_modules/@comis/skills/dist/skills/bridge/tool-metadata-enforcement.d.ts +45 -0
- package/node_modules/@comis/skills/dist/skills/bridge/tool-metadata-enforcement.js +114 -0
- package/node_modules/@comis/skills/dist/skills/bridge/tool-metadata-registry.js +493 -0
- package/node_modules/@comis/skills/dist/skills/index.d.ts +75 -0
- package/node_modules/@comis/skills/dist/skills/index.js +108 -0
- package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/index.d.ts +25 -0
- package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/index.js +64 -0
- package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-call.d.ts +23 -0
- package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-call.js +114 -0
- package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-connect.d.ts +24 -0
- package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-connect.js +190 -0
- package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-discover.d.ts +75 -0
- package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-discover.js +214 -0
- package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-reconnect.d.ts +42 -0
- package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-reconnect.js +234 -0
- package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-types.d.ts +201 -0
- package/node_modules/@comis/skills/dist/skills/integrations/mcp-client/mcp-client-types.js +42 -0
- package/node_modules/@comis/skills/dist/skills/policy/tool-policy.d.ts +74 -0
- package/node_modules/@comis/skills/dist/skills/prompt/sanitizer.d.ts +57 -0
- package/node_modules/@comis/skills/dist/skills/prompt/sanitizer.js +67 -0
- package/node_modules/@comis/skills/dist/skills/registry/discovery.d.ts +102 -0
- package/node_modules/@comis/skills/dist/skills/registry/discovery.js +339 -0
- package/node_modules/@comis/skills/dist/skills/registry/skill-registry/index.d.ts +17 -0
- package/node_modules/@comis/skills/dist/skills/registry/skill-registry/index.js +18 -0
- package/node_modules/@comis/skills/dist/skills/registry/skill-registry/skill-registry-cache.d.ts +34 -0
- package/node_modules/@comis/skills/dist/skills/registry/skill-registry/skill-registry-cache.js +391 -0
- package/node_modules/@comis/skills/dist/skills/registry/skill-registry/skill-registry-discovery.d.ts +67 -0
- package/node_modules/@comis/skills/dist/skills/registry/skill-registry/skill-registry-discovery.js +224 -0
- package/node_modules/@comis/skills/dist/skills/registry/skill-registry/skill-registry-types.d.ts +160 -0
- package/node_modules/@comis/skills/dist/skills/registry/skill-registry/skill-registry-types.js +17 -0
- package/node_modules/@comis/skills/dist/skills/registry/skill-watcher.js +167 -0
- package/node_modules/@comis/skills/dist/tools/browser/browser-service.js +193 -0
- package/node_modules/@comis/skills/dist/tools/browser/cdp.d.ts +59 -0
- package/node_modules/@comis/skills/dist/tools/browser/cdp.js +95 -0
- package/node_modules/@comis/skills/dist/tools/browser/chrome-detection.d.ts +50 -0
- package/node_modules/@comis/skills/dist/tools/browser/chrome-detection.js +325 -0
- package/node_modules/@comis/skills/dist/tools/browser/playwright-actions.js +242 -0
- package/node_modules/@comis/skills/dist/tools/browser/playwright-session.js +343 -0
- package/node_modules/@comis/skills/dist/tools/browser/profiles.js +71 -0
- package/node_modules/@comis/skills/dist/tools/browser/screenshots.js +66 -0
- package/node_modules/@comis/skills/dist/tools/builtin/exec-security/exec-security-allowlist.d.ts +72 -0
- package/node_modules/@comis/skills/dist/tools/builtin/exec-security/exec-security-allowlist.js +391 -0
- package/node_modules/@comis/skills/dist/tools/builtin/exec-security/exec-security-pre-check.d.ts +87 -0
- package/node_modules/@comis/skills/dist/tools/builtin/exec-security/exec-security-pre-check.js +331 -0
- package/node_modules/@comis/skills/dist/tools/builtin/exec-security/exec-security-sandbox.d.ts +75 -0
- package/node_modules/@comis/skills/dist/tools/builtin/exec-security/exec-security-sandbox.js +332 -0
- package/node_modules/@comis/skills/dist/tools/builtin/exec-security/index.d.ts +13 -0
- package/node_modules/@comis/skills/dist/tools/builtin/exec-security/index.js +18 -0
- package/node_modules/@comis/skills/dist/tools/builtin/exec-tool/exec-background.d.ts +23 -0
- package/node_modules/@comis/skills/dist/tools/builtin/exec-tool/exec-background.js +213 -0
- package/node_modules/@comis/skills/dist/tools/builtin/exec-tool/exec-foreground.d.ts +14 -0
- package/node_modules/@comis/skills/dist/tools/builtin/exec-tool/exec-foreground.js +338 -0
- package/node_modules/@comis/skills/dist/tools/builtin/exec-tool/exec-shared.d.ts +102 -0
- package/node_modules/@comis/skills/dist/tools/builtin/exec-tool/exec-shared.js +386 -0
- package/node_modules/@comis/skills/dist/tools/builtin/exec-tool/exec-types.d.ts +100 -0
- package/node_modules/@comis/skills/dist/tools/builtin/exec-tool/exec-types.js +60 -0
- package/node_modules/@comis/skills/dist/tools/builtin/exec-tool/index.d.ts +27 -0
- package/node_modules/@comis/skills/dist/tools/builtin/exec-tool/index.js +155 -0
- package/node_modules/@comis/skills/dist/tools/builtin/file/apply-patch-tool.d.ts +17 -0
- package/node_modules/@comis/skills/dist/tools/builtin/file/apply-patch-tool.js +419 -0
- package/node_modules/@comis/skills/dist/tools/builtin/file/file-state-tracker.js +139 -0
- package/node_modules/@comis/skills/dist/tools/builtin/file/file-tools.d.ts +31 -0
- package/node_modules/@comis/skills/dist/tools/builtin/file/path-suggest.js +209 -0
- package/node_modules/@comis/skills/dist/tools/builtin/file-tools/edit-tool.d.ts +41 -0
- package/node_modules/@comis/skills/dist/tools/builtin/file-tools/edit-tool.js +309 -0
- package/node_modules/@comis/skills/dist/tools/builtin/file-tools/find-tool.d.ts +37 -0
- package/node_modules/@comis/skills/dist/tools/builtin/file-tools/find-tool.js +314 -0
- package/node_modules/@comis/skills/dist/tools/builtin/file-tools/grep-tool.d.ts +47 -0
- package/node_modules/@comis/skills/dist/tools/builtin/file-tools/grep-tool.js +425 -0
- package/node_modules/@comis/skills/dist/tools/builtin/file-tools/ls-tool.d.ts +35 -0
- package/node_modules/@comis/skills/dist/tools/builtin/file-tools/ls-tool.js +167 -0
- package/node_modules/@comis/skills/dist/tools/builtin/file-tools/notebook-edit-tool.d.ts +33 -0
- package/node_modules/@comis/skills/dist/tools/builtin/file-tools/notebook-edit-tool.js +196 -0
- package/node_modules/@comis/skills/dist/tools/builtin/file-tools/read-tool.d.ts +51 -0
- package/node_modules/@comis/skills/dist/tools/builtin/file-tools/read-tool.js +428 -0
- package/node_modules/@comis/skills/dist/tools/builtin/file-tools/shared/edit-diff.js +576 -0
- package/node_modules/@comis/skills/dist/tools/builtin/file-tools/write-tool.d.ts +37 -0
- package/node_modules/@comis/skills/dist/tools/builtin/file-tools/write-tool.js +284 -0
- package/node_modules/@comis/skills/dist/tools/builtin/install-detour.js +342 -0
- package/node_modules/@comis/skills/dist/tools/builtin/process-registry.js +215 -0
- package/node_modules/@comis/skills/dist/tools/builtin/process-tool.d.ts +56 -0
- package/node_modules/@comis/skills/dist/tools/builtin/process-tool.js +122 -0
- package/node_modules/@comis/skills/dist/tools/builtin/sandbox/bwrap-provider.js +281 -0
- package/node_modules/@comis/skills/dist/tools/builtin/sandbox/sandbox-exec-provider.js +182 -0
- package/node_modules/@comis/skills/dist/tools/builtin/tool-provisioner.js +227 -0
- package/node_modules/@comis/skills/dist/tools/builtin/web-fetch-tool.d.ts +78 -0
- package/node_modules/@comis/skills/dist/tools/builtin/web-fetch-tool.js +528 -0
- package/node_modules/@comis/skills/dist/tools/builtin/web-search-brave.js +148 -0
- package/node_modules/@comis/skills/dist/tools/builtin/web-search-duckduckgo.js +193 -0
- package/node_modules/@comis/skills/dist/tools/builtin/web-search-exa.js +85 -0
- package/node_modules/@comis/skills/dist/tools/builtin/web-search-grok.js +88 -0
- package/node_modules/@comis/skills/dist/tools/builtin/web-search-jina.js +95 -0
- package/node_modules/@comis/skills/dist/tools/builtin/web-search-perplexity.js +116 -0
- package/node_modules/@comis/skills/dist/tools/builtin/web-search-searxng.js +101 -0
- package/node_modules/@comis/skills/dist/tools/builtin/web-search-tavily.js +88 -0
- package/node_modules/@comis/skills/dist/tools/builtin/web-search-tool/index.d.ts +53 -0
- package/node_modules/@comis/skills/dist/tools/builtin/web-search-tool/index.js +100 -0
- package/node_modules/@comis/skills/dist/tools/builtin/web-search-tool/web-search-formatting.d.ts +78 -0
- package/node_modules/@comis/skills/dist/tools/builtin/web-search-tool/web-search-formatting.js +258 -0
- package/node_modules/@comis/skills/dist/tools/builtin/web-search-tool/web-search-normalization.d.ts +63 -0
- package/node_modules/@comis/skills/dist/tools/builtin/web-search-tool/web-search-normalization.js +172 -0
- package/node_modules/@comis/skills/dist/tools/builtin/web-search-tool/web-search-providers.d.ts +124 -0
- package/node_modules/@comis/skills/dist/tools/builtin/web-search-tool/web-search-providers.js +207 -0
- package/node_modules/@comis/skills/dist/tools/builtin/web-shared.js +128 -0
- package/node_modules/@comis/skills/dist/tools/index.d.ts +63 -0
- package/node_modules/@comis/skills/dist/tools/index.js +76 -0
- package/node_modules/@comis/skills/dist/tools/integrations/deepgram-stt-adapter.js +82 -0
- package/node_modules/@comis/skills/dist/tools/integrations/document/file-extractor.js +149 -0
- package/node_modules/@comis/skills/dist/tools/integrations/document/pdf-extractor.js +215 -0
- package/node_modules/@comis/skills/dist/tools/integrations/groq-stt-adapter.js +77 -0
- package/node_modules/@comis/skills/dist/tools/integrations/image-gen/rate-limiter.d.ts +19 -0
- package/node_modules/@comis/skills/dist/tools/integrations/image-gen/rate-limiter.js +37 -0
- package/node_modules/@comis/skills/dist/tools/integrations/link/link-fetcher.js +74 -0
- package/node_modules/@comis/skills/dist/tools/integrations/media-handler-audio.js +63 -0
- package/node_modules/@comis/skills/dist/tools/integrations/openai-stt-adapter.js +79 -0
- package/node_modules/@comis/skills/dist/tools/media/audio-converter.d.ts +39 -0
- package/node_modules/@comis/skills/dist/tools/media/audio-converter.js +154 -0
- package/node_modules/@comis/skills/dist/tools/media/media-persistence.d.ts +64 -0
- package/node_modules/@comis/skills/dist/tools/media/media-persistence.js +95 -0
- package/node_modules/@comis/skills/dist/tools/media/media-store.d.ts +64 -0
- package/node_modules/@comis/skills/dist/tools/media/media-store.js +178 -0
- package/node_modules/@comis/skills/dist/tools/media/media-temp.d.ts +53 -0
- package/node_modules/@comis/skills/dist/tools/media/media-temp.js +135 -0
- package/node_modules/@comis/skills/dist/tools/media/ssrf-fetcher.js +216 -0
- package/node_modules/@comis/skills/package.json +11 -5
- package/node_modules/@comis/web/dist/assets/agent-detail-DXSFtHWB.js +615 -0
- package/node_modules/@comis/web/dist/assets/agent-editor-CiuLrd4A.js +2173 -0
- package/node_modules/@comis/web/dist/assets/agent-list-CSZqnk49.js +504 -0
- package/node_modules/@comis/web/dist/assets/billing-view-Dt9hN2-S.js +375 -0
- package/node_modules/@comis/web/dist/assets/channel-detail-Bxd-eTyq.js +681 -0
- package/node_modules/@comis/web/dist/assets/channel-list-BTQK5Su0.js +323 -0
- package/node_modules/@comis/web/dist/assets/chat-console-BWFla-NT.js +522 -0
- package/node_modules/@comis/web/dist/assets/config-editor-B0KqHvNZ.js +880 -0
- package/node_modules/@comis/web/dist/assets/context-dag-browser-DrU6rs_2.js +393 -0
- package/node_modules/@comis/web/dist/assets/context-engine-4Or7ghQM.js +393 -0
- package/node_modules/@comis/web/dist/assets/delivery-view-DTqEXWkS.js +392 -0
- package/node_modules/@comis/web/dist/assets/diagnostics-view-BgRS9D1X.js +231 -0
- package/node_modules/@comis/web/dist/assets/ic-chat-message-b8x6Gh80.js +352 -0
- package/node_modules/@comis/web/dist/assets/ic-connection-dot-gE_3dfRP.js +54 -0
- package/node_modules/@comis/web/dist/assets/ic-delivery-row-F-EU0Xak.js +67 -0
- package/node_modules/@comis/web/dist/assets/ic-empty-state-BRy4ZXds.js +52 -0
- package/node_modules/@comis/web/dist/assets/ic-graph-canvas-BoTtvCKw.js +359 -0
- package/node_modules/@comis/web/dist/assets/ic-relative-time-D6XlY7ay.js +12 -0
- package/node_modules/@comis/web/dist/assets/ic-search-input-BpNiR0Fq.js +92 -0
- package/node_modules/@comis/web/dist/assets/ic-time-range-picker-BBLngsQy.js +93 -0
- package/node_modules/@comis/web/dist/assets/ic-tool-call-BgawpBdb.js +146 -0
- package/node_modules/@comis/web/dist/assets/index-D-Jo4yjp.css +2 -0
- package/node_modules/@comis/web/dist/assets/index-D_ZV_sV5.js +2793 -0
- package/node_modules/@comis/web/dist/assets/mcp-management-b4i92dMD.js +582 -0
- package/node_modules/@comis/web/dist/assets/media-config-CWrVZl6U.js +314 -0
- package/node_modules/@comis/web/dist/assets/media-test-Bmo-rRC7.js +496 -0
- package/node_modules/@comis/web/dist/assets/memory-inspector-BxrE6SZ2.js +1139 -0
- package/node_modules/@comis/web/dist/assets/message-center-DWeWxIrB.js +372 -0
- package/node_modules/@comis/web/dist/assets/models-Kqn-n6hZ.js +894 -0
- package/node_modules/@comis/web/dist/assets/observe-view-D6TtO4wV.js +814 -0
- package/node_modules/@comis/web/dist/assets/pipeline-builder-B37sMf0m.js +1495 -0
- package/node_modules/@comis/web/dist/assets/pipeline-history-DsOViMHn.js +317 -0
- package/node_modules/@comis/web/dist/assets/pipeline-history-detail-D6g-NB_Q.js +287 -0
- package/node_modules/@comis/web/dist/assets/pipeline-list-Cdq3gXY-.js +518 -0
- package/node_modules/@comis/web/dist/assets/pipeline-monitor-5Cpf53xw.js +972 -0
- package/node_modules/@comis/web/dist/assets/scheduler-BhvTHH12.js +1182 -0
- package/node_modules/@comis/web/dist/assets/security-CVla4rqz.js +1224 -0
- package/node_modules/@comis/web/dist/assets/session-detail-DY2vzwAA.js +632 -0
- package/node_modules/@comis/web/dist/assets/session-key-parser-DKcjXRm7.js +1 -0
- package/node_modules/@comis/web/dist/assets/session-list-Do6x1E42.js +231 -0
- package/node_modules/@comis/web/dist/assets/setup-wizard-BWXGUpsz.js +466 -0
- package/node_modules/@comis/web/dist/assets/skills-LNGRvGqi.js +317 -0
- package/node_modules/@comis/web/dist/assets/subagents-Cw3fWHL2.js +193 -0
- package/node_modules/@comis/web/dist/assets/system-time-B0nBw4nV.js +1 -0
- package/node_modules/@comis/web/dist/assets/workspace-manager-CQEZ9ckL.js +785 -0
- package/node_modules/@comis/web/dist/index.html +3 -2
- package/node_modules/@comis/web/package.json +1 -1
- package/package.json +24 -18
- package/node_modules/@comis/agent/dist/commands/command-handler.js +0 -508
- package/node_modules/@comis/agent/dist/executor/cache-break-detection.d.ts +0 -228
- package/node_modules/@comis/agent/dist/executor/cache-break-detection.js +0 -656
- package/node_modules/@comis/agent/dist/executor/executor-prompt-runner.d.ts +0 -143
- package/node_modules/@comis/agent/dist/executor/executor-prompt-runner.js +0 -1013
- package/node_modules/@comis/agent/dist/executor/pi-executor.d.ts +0 -222
- package/node_modules/@comis/agent/dist/executor/pi-executor.js +0 -1215
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/__test-helpers.d.ts +0 -9
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/__test-helpers.js +0 -43
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body-injector.d.ts +0 -282
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body-injector.js +0 -1732
- package/node_modules/@comis/agent/dist/model/model-catalog.d.ts +0 -93
- package/node_modules/@comis/agent/dist/model/model-catalog.js +0 -152
- package/node_modules/@comis/agent/dist/model/oauth-credential-store-file.d.ts +0 -37
- package/node_modules/@comis/agent/dist/model/oauth-credential-store-file.js +0 -279
- package/node_modules/@comis/agent/dist/model/oauth-credential-store-selector.d.ts +0 -49
- package/node_modules/@comis/agent/dist/model/oauth-credential-store-selector.js +0 -50
- package/node_modules/@comis/agent/dist/model/oauth-device-code.d.ts +0 -57
- package/node_modules/@comis/agent/dist/model/oauth-device-code.js +0 -302
- package/node_modules/@comis/agent/dist/model/oauth-errors.d.ts +0 -41
- package/node_modules/@comis/agent/dist/model/oauth-errors.js +0 -88
- package/node_modules/@comis/agent/dist/model/oauth-identity.d.ts +0 -53
- package/node_modules/@comis/agent/dist/model/oauth-identity.js +0 -141
- package/node_modules/@comis/agent/dist/model/oauth-login-runner.d.ts +0 -99
- package/node_modules/@comis/agent/dist/model/oauth-login-runner.js +0 -374
- package/node_modules/@comis/agent/dist/queue/coalescer.js +0 -58
- package/node_modules/@comis/agent/dist/queue/command-queue.d.ts +0 -88
- package/node_modules/@comis/agent/dist/queue/command-queue.js +0 -351
- package/node_modules/@comis/agent/dist/queue/debounce-buffer.js +0 -132
- package/node_modules/@comis/agent/dist/queue/followup-trigger.js +0 -62
- package/node_modules/@comis/agent/dist/queue/overflow.js +0 -97
- package/node_modules/@comis/agent/dist/queue/priority-scheduler.js +0 -198
- package/node_modules/@comis/agent/dist/session/session-key-builder.d.ts +0 -46
- package/node_modules/@comis/agent/dist/session/session-key-builder.js +0 -100
- package/node_modules/@comis/channels/dist/shared/channel-manager.d.ts +0 -193
- package/node_modules/@comis/channels/dist/shared/channel-manager.js +0 -230
- package/node_modules/@comis/channels/dist/shared/chunk-for-delivery.d.ts +0 -40
- package/node_modules/@comis/channels/dist/shared/chunk-for-delivery.js +0 -77
- package/node_modules/@comis/channels/dist/shared/deliver-to-channel.d.ts +0 -166
- package/node_modules/@comis/channels/dist/shared/deliver-to-channel.js +0 -533
- package/node_modules/@comis/channels/dist/shared/execution-deliver.d.ts +0 -21
- package/node_modules/@comis/channels/dist/shared/execution-deliver.js +0 -174
- package/node_modules/@comis/channels/dist/shared/execution-execute.d.ts +0 -45
- package/node_modules/@comis/channels/dist/shared/execution-execute.js +0 -175
- package/node_modules/@comis/channels/dist/shared/execution-filter.d.ts +0 -30
- package/node_modules/@comis/channels/dist/shared/execution-filter.js +0 -186
- package/node_modules/@comis/channels/dist/shared/execution-pipeline.d.ts +0 -103
- package/node_modules/@comis/channels/dist/shared/execution-pipeline.js +0 -294
- package/node_modules/@comis/channels/dist/shared/execution-policy.d.ts +0 -34
- package/node_modules/@comis/channels/dist/shared/execution-policy.js +0 -128
- package/node_modules/@comis/channels/dist/shared/inbound-gate.d.ts +0 -35
- package/node_modules/@comis/channels/dist/shared/inbound-gate.js +0 -386
- package/node_modules/@comis/channels/dist/shared/inbound-pipeline.d.ts +0 -159
- package/node_modules/@comis/channels/dist/shared/inbound-pipeline.js +0 -89
- package/node_modules/@comis/channels/dist/shared/inbound-preprocess.js +0 -83
- package/node_modules/@comis/channels/dist/shared/inbound-resolve.js +0 -55
- package/node_modules/@comis/channels/dist/shared/inbound-route.d.ts +0 -26
- package/node_modules/@comis/channels/dist/shared/inbound-route.js +0 -247
- package/node_modules/@comis/channels/dist/shared/inbound-setup.d.ts +0 -32
- package/node_modules/@comis/channels/dist/shared/inbound-setup.js +0 -148
- package/node_modules/@comis/channels/dist/shared/retry-engine.d.ts +0 -88
- package/node_modules/@comis/channels/dist/shared/retry-engine.js +0 -258
- package/node_modules/@comis/channels/dist/telegram/telegram-adapter.d.ts +0 -36
- package/node_modules/@comis/channels/dist/telegram/telegram-adapter.js +0 -679
- package/node_modules/@comis/core/dist/config/schema-agent.d.ts +0 -1708
- package/node_modules/@comis/core/dist/config/schema-agent.js +0 -790
- package/node_modules/@comis/core/dist/hooks/hook-runner-global.d.ts +0 -4
- package/node_modules/@comis/core/dist/hooks/hook-runner-global.js +0 -22
- package/node_modules/@comis/core/dist/ports/no-op-tool-capability.d.ts +0 -30
- package/node_modules/@comis/daemon/dist/announcement-batcher.js +0 -229
- package/node_modules/@comis/daemon/dist/announcement-dead-letter.d.ts +0 -71
- package/node_modules/@comis/daemon/dist/announcement-dead-letter.js +0 -216
- package/node_modules/@comis/daemon/dist/cross-session-sender.js +0 -144
- package/node_modules/@comis/daemon/dist/rpc/agent-handlers.d.ts +0 -64
- package/node_modules/@comis/daemon/dist/rpc/agent-handlers.js +0 -466
- package/node_modules/@comis/daemon/dist/rpc/approval-handlers.d.ts +0 -18
- package/node_modules/@comis/daemon/dist/rpc/approval-handlers.js +0 -68
- package/node_modules/@comis/daemon/dist/rpc/browser-handlers.d.ts +0 -22
- package/node_modules/@comis/daemon/dist/rpc/browser-handlers.js +0 -118
- package/node_modules/@comis/daemon/dist/rpc/builtin-provider-guard.js +0 -60
- package/node_modules/@comis/daemon/dist/rpc/channel-handlers.d.ts +0 -34
- package/node_modules/@comis/daemon/dist/rpc/channel-handlers.js +0 -217
- package/node_modules/@comis/daemon/dist/rpc/config-handlers.d.ts +0 -103
- package/node_modules/@comis/daemon/dist/rpc/config-handlers.js +0 -1008
- package/node_modules/@comis/daemon/dist/rpc/context-handlers.d.ts +0 -42
- package/node_modules/@comis/daemon/dist/rpc/context-handlers.js +0 -371
- package/node_modules/@comis/daemon/dist/rpc/credential-resolver.js +0 -162
- package/node_modules/@comis/daemon/dist/rpc/cron-handlers.d.ts +0 -22
- package/node_modules/@comis/daemon/dist/rpc/cron-handlers.js +0 -204
- package/node_modules/@comis/daemon/dist/rpc/daemon-handlers.d.ts +0 -19
- package/node_modules/@comis/daemon/dist/rpc/daemon-handlers.js +0 -49
- package/node_modules/@comis/daemon/dist/rpc/env-handlers.d.ts +0 -26
- package/node_modules/@comis/daemon/dist/rpc/env-handlers.js +0 -289
- package/node_modules/@comis/daemon/dist/rpc/graph-handlers.d.ts +0 -84
- package/node_modules/@comis/daemon/dist/rpc/graph-handlers.js +0 -803
- package/node_modules/@comis/daemon/dist/rpc/heartbeat-handlers.d.ts +0 -30
- package/node_modules/@comis/daemon/dist/rpc/heartbeat-handlers.js +0 -195
- package/node_modules/@comis/daemon/dist/rpc/image-handlers.d.ts +0 -28
- package/node_modules/@comis/daemon/dist/rpc/image-handlers.js +0 -95
- package/node_modules/@comis/daemon/dist/rpc/index.d.ts +0 -24
- package/node_modules/@comis/daemon/dist/rpc/index.js +0 -23
- package/node_modules/@comis/daemon/dist/rpc/mcp-handlers.d.ts +0 -32
- package/node_modules/@comis/daemon/dist/rpc/mcp-handlers.js +0 -209
- package/node_modules/@comis/daemon/dist/rpc/media-handlers.d.ts +0 -59
- package/node_modules/@comis/daemon/dist/rpc/media-handlers.js +0 -480
- package/node_modules/@comis/daemon/dist/rpc/memory-handlers.d.ts +0 -36
- package/node_modules/@comis/daemon/dist/rpc/memory-handlers.js +0 -246
- package/node_modules/@comis/daemon/dist/rpc/message-handlers.d.ts +0 -45
- package/node_modules/@comis/daemon/dist/rpc/message-handlers.js +0 -317
- package/node_modules/@comis/daemon/dist/rpc/model-handlers.d.ts +0 -30
- package/node_modules/@comis/daemon/dist/rpc/model-handlers.js +0 -142
- package/node_modules/@comis/daemon/dist/rpc/notification-handlers.d.ts +0 -25
- package/node_modules/@comis/daemon/dist/rpc/notification-handlers.js +0 -56
- package/node_modules/@comis/daemon/dist/rpc/obs-handlers.d.ts +0 -86
- package/node_modules/@comis/daemon/dist/rpc/obs-handlers.js +0 -570
- package/node_modules/@comis/daemon/dist/rpc/persist-to-config.d.ts +0 -74
- package/node_modules/@comis/daemon/dist/rpc/persist-to-config.js +0 -204
- package/node_modules/@comis/daemon/dist/rpc/provider-handlers.d.ts +0 -37
- package/node_modules/@comis/daemon/dist/rpc/provider-handlers.js +0 -403
- package/node_modules/@comis/daemon/dist/rpc/rpc-dispatch.d.ts +0 -205
- package/node_modules/@comis/daemon/dist/rpc/rpc-dispatch.js +0 -241
- package/node_modules/@comis/daemon/dist/rpc/session-handlers.d.ts +0 -73
- package/node_modules/@comis/daemon/dist/rpc/session-handlers.js +0 -854
- package/node_modules/@comis/daemon/dist/rpc/skill-handlers.d.ts +0 -34
- package/node_modules/@comis/daemon/dist/rpc/skill-handlers.js +0 -444
- package/node_modules/@comis/daemon/dist/rpc/subagent-handlers.d.ts +0 -25
- package/node_modules/@comis/daemon/dist/rpc/subagent-handlers.js +0 -80
- package/node_modules/@comis/daemon/dist/rpc/token-handlers.d.ts +0 -56
- package/node_modules/@comis/daemon/dist/rpc/token-handlers.js +0 -212
- package/node_modules/@comis/daemon/dist/rpc/types.d.ts +0 -2
- package/node_modules/@comis/daemon/dist/rpc/workspace-handlers.d.ts +0 -34
- package/node_modules/@comis/daemon/dist/rpc/workspace-handlers.js +0 -424
- package/node_modules/@comis/daemon/dist/sub-agent-result-processor.d.ts +0 -143
- package/node_modules/@comis/daemon/dist/sub-agent-result-processor.js +0 -493
- package/node_modules/@comis/daemon/dist/sub-agent-runner.d.ts +0 -339
- package/node_modules/@comis/daemon/dist/sub-agent-runner.js +0 -1256
- package/node_modules/@comis/daemon/dist/wiring/setup-agents.d.ts +0 -275
- package/node_modules/@comis/daemon/dist/wiring/setup-agents.js +0 -706
- package/node_modules/@comis/daemon/dist/wiring/setup-channels.d.ts +0 -180
- package/node_modules/@comis/daemon/dist/wiring/setup-channels.js +0 -785
- package/node_modules/@comis/daemon/dist/wiring/setup-cross-session.d.ts +0 -123
- package/node_modules/@comis/daemon/dist/wiring/setup-cross-session.js +0 -738
- package/node_modules/@comis/daemon/dist/wiring/setup-gateway-rpc.d.ts +0 -31
- package/node_modules/@comis/daemon/dist/wiring/setup-gateway-rpc.js +0 -235
- package/node_modules/@comis/daemon/dist/wiring/setup-gateway.d.ts +0 -166
- package/node_modules/@comis/daemon/dist/wiring/setup-gateway.js +0 -743
- package/node_modules/@comis/infra/dist/logging/log-fields.d.ts +0 -187
- package/node_modules/@comis/infra/dist/logging/log-fields.js +0 -19
- package/node_modules/@comis/memory/dist/observability-store.d.ts +0 -184
- package/node_modules/@comis/memory/dist/observability-store.js +0 -387
- package/node_modules/@comis/scheduler/dist/execution/execution-lock.d.ts +0 -45
- package/node_modules/@comis/scheduler/dist/execution/execution-lock.js +0 -86
- package/node_modules/@comis/skills/dist/audit/skill-audit.js +0 -72
- package/node_modules/@comis/skills/dist/bridge/credential-injector.d.ts +0 -90
- package/node_modules/@comis/skills/dist/bridge/credential-injector.js +0 -235
- package/node_modules/@comis/skills/dist/bridge/mcp-tool-bridge.d.ts +0 -70
- package/node_modules/@comis/skills/dist/bridge/mcp-tool-bridge.js +0 -242
- package/node_modules/@comis/skills/dist/bridge/schema-validator.js +0 -169
- package/node_modules/@comis/skills/dist/bridge/tool-audit.d.ts +0 -25
- package/node_modules/@comis/skills/dist/bridge/tool-audit.js +0 -78
- package/node_modules/@comis/skills/dist/bridge/tool-bridge.d.ts +0 -91
- package/node_modules/@comis/skills/dist/bridge/tool-bridge.js +0 -136
- package/node_modules/@comis/skills/dist/bridge/tool-definition-adapter.d.ts +0 -33
- package/node_modules/@comis/skills/dist/bridge/tool-metadata-enforcement.d.ts +0 -45
- package/node_modules/@comis/skills/dist/bridge/tool-metadata-enforcement.js +0 -113
- package/node_modules/@comis/skills/dist/bridge/tool-metadata-registry.js +0 -493
- package/node_modules/@comis/skills/dist/browser/browser-service.js +0 -192
- package/node_modules/@comis/skills/dist/browser/cdp.d.ts +0 -60
- package/node_modules/@comis/skills/dist/browser/cdp.js +0 -91
- package/node_modules/@comis/skills/dist/browser/chrome-detection.d.ts +0 -45
- package/node_modules/@comis/skills/dist/browser/chrome-detection.js +0 -256
- package/node_modules/@comis/skills/dist/browser/playwright-actions.js +0 -232
- package/node_modules/@comis/skills/dist/browser/playwright-session.js +0 -341
- package/node_modules/@comis/skills/dist/browser/profiles.js +0 -70
- package/node_modules/@comis/skills/dist/browser/screenshots.js +0 -65
- package/node_modules/@comis/skills/dist/builtin/exec-security.d.ts +0 -204
- package/node_modules/@comis/skills/dist/builtin/exec-security.js +0 -1026
- package/node_modules/@comis/skills/dist/builtin/exec-tool.d.ts +0 -130
- package/node_modules/@comis/skills/dist/builtin/exec-tool.js +0 -1259
- package/node_modules/@comis/skills/dist/builtin/file/apply-patch-tool.d.ts +0 -17
- package/node_modules/@comis/skills/dist/builtin/file/apply-patch-tool.js +0 -418
- package/node_modules/@comis/skills/dist/builtin/file/file-state-tracker.js +0 -138
- package/node_modules/@comis/skills/dist/builtin/file/file-tools.d.ts +0 -31
- package/node_modules/@comis/skills/dist/builtin/file/path-suggest.js +0 -208
- package/node_modules/@comis/skills/dist/builtin/file-tools/edit-tool.d.ts +0 -41
- package/node_modules/@comis/skills/dist/builtin/file-tools/edit-tool.js +0 -308
- package/node_modules/@comis/skills/dist/builtin/file-tools/find-tool.d.ts +0 -37
- package/node_modules/@comis/skills/dist/builtin/file-tools/find-tool.js +0 -313
- package/node_modules/@comis/skills/dist/builtin/file-tools/grep-tool.d.ts +0 -47
- package/node_modules/@comis/skills/dist/builtin/file-tools/grep-tool.js +0 -424
- package/node_modules/@comis/skills/dist/builtin/file-tools/ls-tool.d.ts +0 -35
- package/node_modules/@comis/skills/dist/builtin/file-tools/ls-tool.js +0 -166
- package/node_modules/@comis/skills/dist/builtin/file-tools/notebook-edit-tool.d.ts +0 -33
- package/node_modules/@comis/skills/dist/builtin/file-tools/notebook-edit-tool.js +0 -195
- package/node_modules/@comis/skills/dist/builtin/file-tools/read-tool.d.ts +0 -51
- package/node_modules/@comis/skills/dist/builtin/file-tools/read-tool.js +0 -427
- package/node_modules/@comis/skills/dist/builtin/file-tools/shared/edit-diff.js +0 -575
- package/node_modules/@comis/skills/dist/builtin/file-tools/write-tool.d.ts +0 -37
- package/node_modules/@comis/skills/dist/builtin/file-tools/write-tool.js +0 -283
- package/node_modules/@comis/skills/dist/builtin/install-detour.js +0 -342
- package/node_modules/@comis/skills/dist/builtin/platform/admin-manage-factory.d.ts +0 -70
- package/node_modules/@comis/skills/dist/builtin/platform/agents-manage-tool.d.ts +0 -117
- package/node_modules/@comis/skills/dist/builtin/platform/agents-manage-tool.js +0 -401
- package/node_modules/@comis/skills/dist/builtin/platform/background-tasks-tool.d.ts +0 -54
- package/node_modules/@comis/skills/dist/builtin/platform/background-tasks-tool.js +0 -157
- package/node_modules/@comis/skills/dist/builtin/platform/browser-tool-schema.d.ts +0 -88
- package/node_modules/@comis/skills/dist/builtin/platform/browser-tool.d.ts +0 -43
- package/node_modules/@comis/skills/dist/builtin/platform/browser-tool.js +0 -98
- package/node_modules/@comis/skills/dist/builtin/platform/channels-manage-tool.d.ts +0 -37
- package/node_modules/@comis/skills/dist/builtin/platform/channels-manage-tool.js +0 -140
- package/node_modules/@comis/skills/dist/builtin/platform/cron-tool.d.ts +0 -49
- package/node_modules/@comis/skills/dist/builtin/platform/cron-tool.js +0 -172
- package/node_modules/@comis/skills/dist/builtin/platform/ctx-expand-tool.d.ts +0 -25
- package/node_modules/@comis/skills/dist/builtin/platform/ctx-expand-tool.js +0 -48
- package/node_modules/@comis/skills/dist/builtin/platform/ctx-inspect-tool.d.ts +0 -23
- package/node_modules/@comis/skills/dist/builtin/platform/ctx-inspect-tool.js +0 -47
- package/node_modules/@comis/skills/dist/builtin/platform/ctx-recall-tool.d.ts +0 -27
- package/node_modules/@comis/skills/dist/builtin/platform/ctx-recall-tool.js +0 -62
- package/node_modules/@comis/skills/dist/builtin/platform/ctx-search-tool.d.ts +0 -27
- package/node_modules/@comis/skills/dist/builtin/platform/ctx-search-tool.js +0 -52
- package/node_modules/@comis/skills/dist/builtin/platform/describe-video-tool.d.ts +0 -24
- package/node_modules/@comis/skills/dist/builtin/platform/describe-video-tool.js +0 -53
- package/node_modules/@comis/skills/dist/builtin/platform/discord-action-tool.d.ts +0 -30
- package/node_modules/@comis/skills/dist/builtin/platform/discord-action-tool.js +0 -90
- package/node_modules/@comis/skills/dist/builtin/platform/extract-document-tool.d.ts +0 -24
- package/node_modules/@comis/skills/dist/builtin/platform/extract-document-tool.js +0 -53
- package/node_modules/@comis/skills/dist/builtin/platform/gateway-tool.d.ts +0 -59
- package/node_modules/@comis/skills/dist/builtin/platform/gateway-tool.js +0 -274
- package/node_modules/@comis/skills/dist/builtin/platform/heartbeat-manage-tool.d.ts +0 -37
- package/node_modules/@comis/skills/dist/builtin/platform/heartbeat-manage-tool.js +0 -139
- package/node_modules/@comis/skills/dist/builtin/platform/image-generate-tool.d.ts +0 -27
- package/node_modules/@comis/skills/dist/builtin/platform/image-generate-tool.js +0 -41
- package/node_modules/@comis/skills/dist/builtin/platform/image-tool.d.ts +0 -28
- package/node_modules/@comis/skills/dist/builtin/platform/image-tool.js +0 -73
- package/node_modules/@comis/skills/dist/builtin/platform/index.d.ts +0 -60
- package/node_modules/@comis/skills/dist/builtin/platform/index.js +0 -74
- package/node_modules/@comis/skills/dist/builtin/platform/mcp-manage-tool.d.ts +0 -24
- package/node_modules/@comis/skills/dist/builtin/platform/mcp-manage-tool.js +0 -109
- package/node_modules/@comis/skills/dist/builtin/platform/memory-get-tool.d.ts +0 -28
- package/node_modules/@comis/skills/dist/builtin/platform/memory-get-tool.js +0 -55
- package/node_modules/@comis/skills/dist/builtin/platform/memory-manage-tool.d.ts +0 -42
- package/node_modules/@comis/skills/dist/builtin/platform/memory-manage-tool.js +0 -183
- package/node_modules/@comis/skills/dist/builtin/platform/memory-search-tool.d.ts +0 -24
- package/node_modules/@comis/skills/dist/builtin/platform/memory-search-tool.js +0 -44
- package/node_modules/@comis/skills/dist/builtin/platform/memory-store-tool.d.ts +0 -23
- package/node_modules/@comis/skills/dist/builtin/platform/memory-store-tool.js +0 -66
- package/node_modules/@comis/skills/dist/builtin/platform/message-tool.d.ts +0 -50
- package/node_modules/@comis/skills/dist/builtin/platform/message-tool.js +0 -208
- package/node_modules/@comis/skills/dist/builtin/platform/messaging-factory.d.ts +0 -92
- package/node_modules/@comis/skills/dist/builtin/platform/models-manage-tool.d.ts +0 -33
- package/node_modules/@comis/skills/dist/builtin/platform/models-manage-tool.js +0 -83
- package/node_modules/@comis/skills/dist/builtin/platform/notify-tool.d.ts +0 -29
- package/node_modules/@comis/skills/dist/builtin/platform/notify-tool.js +0 -54
- package/node_modules/@comis/skills/dist/builtin/platform/obs-query-tool.d.ts +0 -26
- package/node_modules/@comis/skills/dist/builtin/platform/obs-query-tool.js +0 -179
- package/node_modules/@comis/skills/dist/builtin/platform/pipeline-tool.d.ts +0 -63
- package/node_modules/@comis/skills/dist/builtin/platform/pipeline-tool.js +0 -460
- package/node_modules/@comis/skills/dist/builtin/platform/platform-action-tool.d.ts +0 -60
- package/node_modules/@comis/skills/dist/builtin/platform/providers-manage-tool.d.ts +0 -57
- package/node_modules/@comis/skills/dist/builtin/platform/providers-manage-tool.js +0 -203
- package/node_modules/@comis/skills/dist/builtin/platform/session-search-tool.d.ts +0 -33
- package/node_modules/@comis/skills/dist/builtin/platform/session-search-tool.js +0 -76
- package/node_modules/@comis/skills/dist/builtin/platform/session-status-tool.d.ts +0 -22
- package/node_modules/@comis/skills/dist/builtin/platform/session-status-tool.js +0 -43
- package/node_modules/@comis/skills/dist/builtin/platform/sessions-history-tool.d.ts +0 -24
- package/node_modules/@comis/skills/dist/builtin/platform/sessions-history-tool.js +0 -51
- package/node_modules/@comis/skills/dist/builtin/platform/sessions-list-tool.d.ts +0 -23
- package/node_modules/@comis/skills/dist/builtin/platform/sessions-list-tool.js +0 -51
- package/node_modules/@comis/skills/dist/builtin/platform/sessions-manage-tool.d.ts +0 -34
- package/node_modules/@comis/skills/dist/builtin/platform/sessions-manage-tool.js +0 -82
- package/node_modules/@comis/skills/dist/builtin/platform/sessions-send-tool.d.ts +0 -30
- package/node_modules/@comis/skills/dist/builtin/platform/sessions-send-tool.js +0 -58
- package/node_modules/@comis/skills/dist/builtin/platform/sessions-spawn-tool.d.ts +0 -39
- package/node_modules/@comis/skills/dist/builtin/platform/sessions-spawn-tool.js +0 -84
- package/node_modules/@comis/skills/dist/builtin/platform/skills-manage-tool.d.ts +0 -39
- package/node_modules/@comis/skills/dist/builtin/platform/skills-manage-tool.js +0 -107
- package/node_modules/@comis/skills/dist/builtin/platform/slack-action-tool.d.ts +0 -24
- package/node_modules/@comis/skills/dist/builtin/platform/slack-action-tool.js +0 -77
- package/node_modules/@comis/skills/dist/builtin/platform/subagents-tool.d.ts +0 -27
- package/node_modules/@comis/skills/dist/builtin/platform/subagents-tool.js +0 -100
- package/node_modules/@comis/skills/dist/builtin/platform/telegram-action-tool.d.ts +0 -22
- package/node_modules/@comis/skills/dist/builtin/platform/telegram-action-tool.js +0 -72
- package/node_modules/@comis/skills/dist/builtin/platform/tokens-manage-tool.d.ts +0 -34
- package/node_modules/@comis/skills/dist/builtin/platform/tokens-manage-tool.js +0 -87
- package/node_modules/@comis/skills/dist/builtin/platform/tool-helpers.d.ts +0 -163
- package/node_modules/@comis/skills/dist/builtin/platform/tool-helpers.js +0 -237
- package/node_modules/@comis/skills/dist/builtin/platform/transcribe-audio-tool.d.ts +0 -24
- package/node_modules/@comis/skills/dist/builtin/platform/transcribe-audio-tool.js +0 -53
- package/node_modules/@comis/skills/dist/builtin/platform/tts-tool.d.ts +0 -26
- package/node_modules/@comis/skills/dist/builtin/platform/tts-tool.js +0 -61
- package/node_modules/@comis/skills/dist/builtin/platform/unified-context-tool.d.ts +0 -35
- package/node_modules/@comis/skills/dist/builtin/platform/unified-context-tool.js +0 -106
- package/node_modules/@comis/skills/dist/builtin/platform/unified-memory-tool.d.ts +0 -45
- package/node_modules/@comis/skills/dist/builtin/platform/unified-memory-tool.js +0 -230
- package/node_modules/@comis/skills/dist/builtin/platform/unified-session-tool.d.ts +0 -33
- package/node_modules/@comis/skills/dist/builtin/platform/unified-session-tool.js +0 -130
- package/node_modules/@comis/skills/dist/builtin/platform/whatsapp-action-tool.d.ts +0 -25
- package/node_modules/@comis/skills/dist/builtin/platform/whatsapp-action-tool.js +0 -79
- package/node_modules/@comis/skills/dist/builtin/process-registry.js +0 -213
- package/node_modules/@comis/skills/dist/builtin/process-tool.d.ts +0 -56
- package/node_modules/@comis/skills/dist/builtin/process-tool.js +0 -122
- package/node_modules/@comis/skills/dist/builtin/sandbox/bwrap-provider.js +0 -303
- package/node_modules/@comis/skills/dist/builtin/sandbox/sandbox-exec-provider.js +0 -201
- package/node_modules/@comis/skills/dist/builtin/tool-provisioner.js +0 -227
- package/node_modules/@comis/skills/dist/builtin/web-fetch-tool.d.ts +0 -78
- package/node_modules/@comis/skills/dist/builtin/web-fetch-tool.js +0 -528
- package/node_modules/@comis/skills/dist/builtin/web-search-brave.js +0 -147
- package/node_modules/@comis/skills/dist/builtin/web-search-duckduckgo.js +0 -192
- package/node_modules/@comis/skills/dist/builtin/web-search-exa.js +0 -84
- package/node_modules/@comis/skills/dist/builtin/web-search-grok.js +0 -87
- package/node_modules/@comis/skills/dist/builtin/web-search-jina.js +0 -94
- package/node_modules/@comis/skills/dist/builtin/web-search-perplexity.js +0 -115
- package/node_modules/@comis/skills/dist/builtin/web-search-searxng.js +0 -100
- package/node_modules/@comis/skills/dist/builtin/web-search-tavily.js +0 -87
- package/node_modules/@comis/skills/dist/builtin/web-search-tool.d.ts +0 -175
- package/node_modules/@comis/skills/dist/builtin/web-search-tool.js +0 -666
- package/node_modules/@comis/skills/dist/builtin/web-shared.js +0 -127
- package/node_modules/@comis/skills/dist/integrations/deepgram-stt-adapter.js +0 -81
- package/node_modules/@comis/skills/dist/integrations/document/file-extractor.js +0 -148
- package/node_modules/@comis/skills/dist/integrations/document/pdf-extractor.js +0 -214
- package/node_modules/@comis/skills/dist/integrations/groq-stt-adapter.js +0 -76
- package/node_modules/@comis/skills/dist/integrations/image-gen/rate-limiter.d.ts +0 -22
- package/node_modules/@comis/skills/dist/integrations/image-gen/rate-limiter.js +0 -32
- package/node_modules/@comis/skills/dist/integrations/link/link-fetcher.js +0 -74
- package/node_modules/@comis/skills/dist/integrations/mcp-client.d.ts +0 -163
- package/node_modules/@comis/skills/dist/integrations/mcp-client.js +0 -705
- package/node_modules/@comis/skills/dist/integrations/media-handler-audio.js +0 -62
- package/node_modules/@comis/skills/dist/integrations/openai-stt-adapter.js +0 -78
- package/node_modules/@comis/skills/dist/media/audio-converter.d.ts +0 -39
- package/node_modules/@comis/skills/dist/media/audio-converter.js +0 -154
- package/node_modules/@comis/skills/dist/media/media-persistence.d.ts +0 -64
- package/node_modules/@comis/skills/dist/media/media-persistence.js +0 -95
- package/node_modules/@comis/skills/dist/media/media-store.d.ts +0 -64
- package/node_modules/@comis/skills/dist/media/media-store.js +0 -178
- package/node_modules/@comis/skills/dist/media/media-temp.d.ts +0 -53
- package/node_modules/@comis/skills/dist/media/media-temp.js +0 -134
- package/node_modules/@comis/skills/dist/media/ssrf-fetcher.js +0 -215
- package/node_modules/@comis/skills/dist/policy/tool-policy.d.ts +0 -74
- package/node_modules/@comis/skills/dist/prompt/sanitizer.d.ts +0 -62
- package/node_modules/@comis/skills/dist/prompt/sanitizer.js +0 -72
- package/node_modules/@comis/skills/dist/registry/discovery.d.ts +0 -102
- package/node_modules/@comis/skills/dist/registry/discovery.js +0 -339
- package/node_modules/@comis/skills/dist/registry/skill-registry.d.ts +0 -171
- package/node_modules/@comis/skills/dist/registry/skill-registry.js +0 -559
- package/node_modules/@comis/skills/dist/registry/skill-watcher.js +0 -166
- package/node_modules/@comis/web/dist/assets/agent-detail-q8t1NB7w.js +0 -615
- package/node_modules/@comis/web/dist/assets/agent-editor-B46io5gv.js +0 -2173
- package/node_modules/@comis/web/dist/assets/agent-list-DQ6g2Rcx.js +0 -504
- package/node_modules/@comis/web/dist/assets/billing-view-IWPR8LgF.js +0 -375
- package/node_modules/@comis/web/dist/assets/channel-detail-DlNNZuuC.js +0 -681
- package/node_modules/@comis/web/dist/assets/channel-list-DhGwxiMc.js +0 -323
- package/node_modules/@comis/web/dist/assets/chat-console-Nv6fM3Rc.js +0 -940
- package/node_modules/@comis/web/dist/assets/config-editor-BYKuJF76.js +0 -1374
- package/node_modules/@comis/web/dist/assets/context-dag-browser-ClNEtzYE.js +0 -393
- package/node_modules/@comis/web/dist/assets/context-engine-BZJ6HChd.js +0 -393
- package/node_modules/@comis/web/dist/assets/delivery-view-Cb7I3vGu.js +0 -392
- package/node_modules/@comis/web/dist/assets/diagnostics-view-9u9Lyu5a.js +0 -231
- package/node_modules/@comis/web/dist/assets/ic-chat-message-BFt3cVpx.js +0 -352
- package/node_modules/@comis/web/dist/assets/ic-connection-dot-y77LZ3Gu.js +0 -54
- package/node_modules/@comis/web/dist/assets/ic-delivery-row-B3YwjjuM.js +0 -67
- package/node_modules/@comis/web/dist/assets/ic-empty-state-CM3Wbj2f.js +0 -52
- package/node_modules/@comis/web/dist/assets/ic-graph-canvas-ByRjij68.js +0 -359
- package/node_modules/@comis/web/dist/assets/ic-relative-time-B3UAnTqg.js +0 -12
- package/node_modules/@comis/web/dist/assets/ic-search-input-B02AGw1i.js +0 -92
- package/node_modules/@comis/web/dist/assets/ic-time-range-picker-DXbYeBmY.js +0 -93
- package/node_modules/@comis/web/dist/assets/ic-tool-call-qt6w1NQl.js +0 -146
- package/node_modules/@comis/web/dist/assets/index-8Tg9oc-C.js +0 -2792
- package/node_modules/@comis/web/dist/assets/index-CVEaS9aY.css +0 -2
- package/node_modules/@comis/web/dist/assets/mcp-management-69dtH_kY.js +0 -582
- package/node_modules/@comis/web/dist/assets/media-config-BdjLj5c1.js +0 -314
- package/node_modules/@comis/web/dist/assets/media-test-DuPqrixi.js +0 -496
- package/node_modules/@comis/web/dist/assets/memory-inspector-B-Pepbq-.js +0 -1139
- package/node_modules/@comis/web/dist/assets/message-center-B7l0yNYY.js +0 -785
- package/node_modules/@comis/web/dist/assets/models-JHFHuv5S.js +0 -894
- package/node_modules/@comis/web/dist/assets/observe-view-r8mqhy4O.js +0 -814
- package/node_modules/@comis/web/dist/assets/pipeline-builder-XjkiZRcR.js +0 -1495
- package/node_modules/@comis/web/dist/assets/pipeline-history-CZqJv_Hj.js +0 -317
- package/node_modules/@comis/web/dist/assets/pipeline-history-detail-BEFGMoDy.js +0 -287
- package/node_modules/@comis/web/dist/assets/pipeline-list-B6q5LvO1.js +0 -518
- package/node_modules/@comis/web/dist/assets/pipeline-monitor-BNomXjVL.js +0 -972
- package/node_modules/@comis/web/dist/assets/scheduler-BJEjcGKA.js +0 -1182
- package/node_modules/@comis/web/dist/assets/security-2G1jhBfV.js +0 -1224
- package/node_modules/@comis/web/dist/assets/session-detail-DmVPzFBR.js +0 -632
- package/node_modules/@comis/web/dist/assets/session-key-parser-Dkqcj2Ss.js +0 -1
- package/node_modules/@comis/web/dist/assets/session-list-CsqMQoHs.js +0 -231
- package/node_modules/@comis/web/dist/assets/setup-wizard-CAdM-gSP.js +0 -881
- package/node_modules/@comis/web/dist/assets/skills-2ODqKaWr.js +0 -1051
- package/node_modules/@comis/web/dist/assets/subagents-BFlwfTbD.js +0 -193
- package/node_modules/@comis/web/dist/assets/workspace-manager--CbOx_dI.js +0 -785
- /package/node_modules/@comis/{channels/dist/shared → core/dist/delivery}/block-chunker.d.ts +0 -0
- /package/node_modules/@comis/{channels/dist/shared → core/dist/delivery}/block-chunker.js +0 -0
- /package/node_modules/@comis/{channels/dist/shared → core/dist/delivery}/format-for-channel.d.ts +0 -0
- /package/node_modules/@comis/{channels/dist/shared → core/dist/delivery}/format-for-channel.js +0 -0
- /package/node_modules/@comis/{channels/dist/shared → core/dist/delivery}/ir-chunker.d.ts +0 -0
- /package/node_modules/@comis/{channels/dist/shared → core/dist/delivery}/ir-chunker.js +0 -0
- /package/node_modules/@comis/{channels/dist/shared → core/dist/delivery}/ir-renderer.d.ts +0 -0
- /package/node_modules/@comis/{channels/dist/shared → core/dist/delivery}/ir-renderer.js +0 -0
- /package/node_modules/@comis/{channels/dist/shared → core/dist/delivery}/markdown-ir.d.ts +0 -0
- /package/node_modules/@comis/{channels/dist/shared → core/dist/delivery}/markdown-ir.js +0 -0
- /package/node_modules/@comis/{channels/dist/shared → core/dist/delivery}/markdown-tables.d.ts +0 -0
- /package/node_modules/@comis/{channels/dist/shared → core/dist/delivery}/markdown-tables.js +0 -0
- /package/node_modules/@comis/{channels/dist/shared → core/dist/delivery}/permanent-errors.d.ts +0 -0
- /package/node_modules/@comis/{channels/dist/shared → core/dist/delivery}/permanent-errors.js +0 -0
- /package/node_modules/@comis/{channels/dist/shared → core/dist/delivery}/sanitize-for-plain-text.d.ts +0 -0
- /package/node_modules/@comis/{channels/dist/shared → core/dist/delivery}/sanitize-for-plain-text.js +0 -0
- /package/node_modules/@comis/{channels/dist/shared → core/dist/delivery}/table-converter.d.ts +0 -0
- /package/node_modules/@comis/{channels/dist/shared → core/dist/delivery}/table-converter.js +0 -0
- /package/node_modules/@comis/{channels/dist/shared → core/dist/delivery}/telegram-file-ref-guard.d.ts +0 -0
- /package/node_modules/@comis/{channels/dist/shared → core/dist/delivery}/telegram-file-ref-guard.js +0 -0
- /package/node_modules/@comis/{agent/dist/model → core/dist/oauth}/oauth-tls-preflight.d.ts +0 -0
- /package/node_modules/@comis/{agent/dist/model → core/dist/oauth}/oauth-tls-preflight.js +0 -0
- /package/node_modules/@comis/{daemon/dist/rpc/types.js → core/dist/ports/file-lock.js} +0 -0
- /package/node_modules/@comis/{agent/dist/model/oauth-env.d.ts → core/dist/runtime/is-remote-env.d.ts} +0 -0
- /package/node_modules/@comis/{agent/dist/model/oauth-env.js → core/dist/runtime/is-remote-env.js} +0 -0
- /package/node_modules/@comis/core/dist/{ports → tool-capability}/no-op-tool-capability.js +0 -0
- /package/node_modules/@comis/daemon/dist/{rpc → api}/agent-inline-workspace.d.ts +0 -0
- /package/node_modules/@comis/daemon/dist/{rpc → api}/agent-inline-workspace.js +0 -0
- /package/node_modules/@comis/daemon/dist/{rpc → api/shared}/builtin-provider-guard.d.ts +0 -0
- /package/node_modules/@comis/daemon/dist/{rpc → api/shared}/credential-resolver.d.ts +0 -0
- /package/node_modules/@comis/daemon/dist/{rpc → api/shared}/probe-provider-auth.d.ts +0 -0
- /package/node_modules/@comis/daemon/dist/{rpc → api/shared}/probe-provider-auth.js +0 -0
- /package/node_modules/@comis/{agent → orchestrator}/dist/commands/budget-command.d.ts +0 -0
- /package/node_modules/@comis/{agent → orchestrator}/dist/commands/budget-command.js +0 -0
- /package/node_modules/@comis/{agent → orchestrator}/dist/commands/command-handler.d.ts +0 -0
- /package/node_modules/@comis/{agent → orchestrator}/dist/commands/command-parser.d.ts +0 -0
- /package/node_modules/@comis/{agent → orchestrator}/dist/commands/command-parser.js +0 -0
- /package/node_modules/@comis/{agent → orchestrator}/dist/commands/index.d.ts +0 -0
- /package/node_modules/@comis/{agent → orchestrator}/dist/commands/index.js +0 -0
- /package/node_modules/@comis/{agent → orchestrator}/dist/commands/prompt-skill-command.d.ts +0 -0
- /package/node_modules/@comis/{agent → orchestrator}/dist/commands/prompt-skill-command.js +0 -0
- /package/node_modules/@comis/{agent → orchestrator}/dist/commands/types.d.ts +0 -0
- /package/node_modules/@comis/{agent → orchestrator}/dist/commands/types.js +0 -0
- /package/node_modules/@comis/{daemon/dist → orchestrator/dist/cross-session}/announcement-batcher.d.ts +0 -0
- /package/node_modules/@comis/{daemon/dist → orchestrator/dist/cross-session}/cross-session-sender.d.ts +0 -0
- /package/node_modules/@comis/{channels/dist/shared → orchestrator/dist/inbound}/inbound-preprocess.d.ts +0 -0
- /package/node_modules/@comis/{channels/dist/shared → orchestrator/dist/inbound}/inbound-resolve.d.ts +0 -0
- /package/node_modules/@comis/{agent → orchestrator}/dist/queue/coalescer.d.ts +0 -0
- /package/node_modules/@comis/{agent → orchestrator}/dist/queue/debounce-buffer.d.ts +0 -0
- /package/node_modules/@comis/{agent → orchestrator}/dist/queue/followup-trigger.d.ts +0 -0
- /package/node_modules/@comis/{agent → orchestrator}/dist/queue/index.d.ts +0 -0
- /package/node_modules/@comis/{agent → orchestrator}/dist/queue/index.js +0 -0
- /package/node_modules/@comis/{agent → orchestrator}/dist/queue/lane.d.ts +0 -0
- /package/node_modules/@comis/{agent → orchestrator}/dist/queue/lane.js +0 -0
- /package/node_modules/@comis/{agent → orchestrator}/dist/queue/overflow.d.ts +0 -0
- /package/node_modules/@comis/{agent → orchestrator}/dist/queue/priority-scheduler.d.ts +0 -0
- /package/node_modules/@comis/{agent → orchestrator}/dist/routing/message-router.d.ts +0 -0
- /package/node_modules/@comis/{agent → orchestrator}/dist/routing/message-router.js +0 -0
- /package/node_modules/@comis/skills/dist/{builtin/platform → platform-tools}/admin-manage-factory.js +0 -0
- /package/node_modules/@comis/skills/dist/{builtin/platform → platform-tools}/messaging-factory.js +0 -0
- /package/node_modules/@comis/skills/dist/{builtin/platform → platform-tools}/platform-action-tool.js +0 -0
- /package/node_modules/@comis/skills/dist/{builtin/platform → platform-tools/tools}/browser-tool-schema.js +0 -0
- /package/node_modules/@comis/skills/dist/{builtin/platform → platform-tools/tools}/fts5-sanitizer.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin/platform → platform-tools/tools}/fts5-sanitizer.js +0 -0
- /package/node_modules/@comis/skills/dist/{audit → skills/audit}/skill-audit.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{bridge → skills/bridge}/json-truncate.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{bridge → skills/bridge}/json-truncate.js +0 -0
- /package/node_modules/@comis/skills/dist/{bridge → skills/bridge}/schema-validator.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{bridge → skills/bridge}/tool-definition-adapter.js +0 -0
- /package/node_modules/@comis/skills/dist/{bridge → skills/bridge}/tool-metadata-registry.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{manifest → skills/manifest}/capability-parser.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{manifest → skills/manifest}/capability-parser.js +0 -0
- /package/node_modules/@comis/skills/dist/{manifest → skills/manifest}/parser.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{manifest → skills/manifest}/parser.js +0 -0
- /package/node_modules/@comis/skills/dist/{manifest → skills/manifest}/schema.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{manifest → skills/manifest}/schema.js +0 -0
- /package/node_modules/@comis/skills/dist/{policy → skills/policy}/index.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{policy → skills/policy}/index.js +0 -0
- /package/node_modules/@comis/skills/dist/{policy → skills/policy}/tool-policy.js +0 -0
- /package/node_modules/@comis/skills/dist/{prompt → skills/prompt}/content-scanner.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{prompt → skills/prompt}/content-scanner.js +0 -0
- /package/node_modules/@comis/skills/dist/{prompt → skills/prompt}/processor.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{prompt → skills/prompt}/processor.js +0 -0
- /package/node_modules/@comis/skills/dist/{registry → skills/registry}/diagnostics.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{registry → skills/registry}/diagnostics.js +0 -0
- /package/node_modules/@comis/skills/dist/{registry → skills/registry}/eligibility.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{registry → skills/registry}/eligibility.js +0 -0
- /package/node_modules/@comis/skills/dist/{registry → skills/registry}/skill-watcher.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{browser → tools/browser}/browser-service.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{browser → tools/browser}/config.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{browser → tools/browser}/config.js +0 -0
- /package/node_modules/@comis/skills/dist/{browser → tools/browser}/constants.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{browser → tools/browser}/constants.js +0 -0
- /package/node_modules/@comis/skills/dist/{browser → tools/browser}/downloads.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{browser → tools/browser}/downloads.js +0 -0
- /package/node_modules/@comis/skills/dist/{browser → tools/browser}/index.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{browser → tools/browser}/index.js +0 -0
- /package/node_modules/@comis/skills/dist/{browser → tools/browser}/playwright-actions.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{browser → tools/browser}/playwright-session.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{browser → tools/browser}/playwright-snapshots.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{browser → tools/browser}/playwright-snapshots.js +0 -0
- /package/node_modules/@comis/skills/dist/{browser → tools/browser}/profile-decoration.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{browser → tools/browser}/profile-decoration.js +0 -0
- /package/node_modules/@comis/skills/dist/{browser → tools/browser}/profiles-service.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{browser → tools/browser}/profiles-service.js +0 -0
- /package/node_modules/@comis/skills/dist/{browser → tools/browser}/profiles.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{browser → tools/browser}/screenshot-normalizer.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{browser → tools/browser}/screenshot-normalizer.js +0 -0
- /package/node_modules/@comis/skills/dist/{browser → tools/browser}/screenshots.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{browser → tools/browser}/smart-waits.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{browser → tools/browser}/smart-waits.js +0 -0
- /package/node_modules/@comis/skills/dist/{browser → tools/browser}/viewport.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{browser → tools/browser}/viewport.js +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/exec-diagnostics.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/exec-diagnostics.js +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/file/apply-patch-parser.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/file/apply-patch-parser.js +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/file/apply-patch-similarity.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/file/apply-patch-similarity.js +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/file/file-state-tracker.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/file/file-tools.js +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/file/path-suggest.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/file/safe-path-wrapper.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/file/safe-path-wrapper.js +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/file-tools/shared/edit-diff.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/file-tools/shared/file-encoding.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/file-tools/shared/file-encoding.js +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/file-tools/shared/file-mutation-queue.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/file-tools/shared/file-mutation-queue.js +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/file-tools/shared/git-diff.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/file-tools/shared/git-diff.js +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/file-tools/shared/notebook-edit-ops.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/file-tools/shared/notebook-edit-ops.js +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/file-tools/shared/notebook-utils.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/file-tools/shared/notebook-utils.js +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/install-detour.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/output-cleaner.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/output-cleaner.js +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/process-registry.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/sandbox/bwrap-provider.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/sandbox/detect-provider.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/sandbox/detect-provider.js +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/sandbox/sandbox-exec-provider.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/sandbox/types.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/sandbox/types.js +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/search-provider.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/search-provider.js +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/tool-provisioner.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/tool-source-profiles.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/tool-source-profiles.js +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/truncate.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/truncate.js +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/web-fetch-utils.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/web-fetch-utils.js +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/web-fetch-visibility.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/web-fetch-visibility.js +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/web-search-brave.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/web-search-duckduckgo.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/web-search-exa.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/web-search-grok.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/web-search-jina.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/web-search-perplexity.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/web-search-searxng.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/web-search-tavily.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{builtin → tools/builtin}/web-shared.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/deepgram-stt-adapter.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/document/binary-detector.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/document/binary-detector.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/document/composite-extractor.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/document/composite-extractor.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/document/file-classifier.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/document/file-classifier.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/document/file-extractor.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/document/pdf-extractor.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/document/pdf-page-renderer.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/document/pdf-page-renderer.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/document/text-decoder.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/document/text-decoder.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/document/xml-block.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/document/xml-block.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/edge-tts-adapter.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/edge-tts-adapter.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/elevenlabs-tts-adapter.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/elevenlabs-tts-adapter.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/groq-stt-adapter.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/image-gen/fal-adapter.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/image-gen/fal-adapter.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/image-gen/image-gen-factory.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/image-gen/image-gen-factory.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/image-gen/index.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/image-gen/index.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/image-gen/openai-adapter.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/image-gen/openai-adapter.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/image-sanitizer.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/image-sanitizer.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/link/link-detector.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/link/link-detector.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/link/link-fetcher.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/link/link-formatter.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/link/link-formatter.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/link/link-runner.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/link/link-runner.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/mcp-result-sanitizer.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/mcp-result-sanitizer.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/media-adapter-shared.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/media-adapter-shared.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/media-handler-audio.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/media-handler-document.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/media-handler-document.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/media-handler-factory.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/media-handler-factory.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/media-handler-image.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/media-handler-image.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/media-handler-video.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/media-handler-video.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/media-preprocessor.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/media-preprocessor.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/multimodal-analyzer.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/multimodal-analyzer.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/openai-stt-adapter.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/openai-tts-adapter.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/openai-tts-adapter.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/outbound-media-parser.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/outbound-media-parser.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/stt-factory.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/stt-factory.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/tts/tts-auto-mode.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/tts/tts-auto-mode.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/tts/tts-directive-parser.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/tts/tts-directive-parser.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/tts/tts-output-format.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/tts/tts-output-format.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/tts-factory.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/tts-factory.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/vision/gemini-vision-adapter.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/vision/gemini-vision-adapter.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/vision/scope-resolver.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/vision/scope-resolver.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/vision/video-handler.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/vision/video-handler.js +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/vision/vision-provider-registry.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{integrations → tools/integrations}/vision/vision-provider-registry.js +0 -0
- /package/node_modules/@comis/skills/dist/{media → tools/media}/audio-tags.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{media → tools/media}/audio-tags.js +0 -0
- /package/node_modules/@comis/skills/dist/{media → tools/media}/composite-resolver.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{media → tools/media}/composite-resolver.js +0 -0
- /package/node_modules/@comis/skills/dist/{media → tools/media}/constants.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{media → tools/media}/constants.js +0 -0
- /package/node_modules/@comis/skills/dist/{media → tools/media}/ffmpeg-detect.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{media → tools/media}/ffmpeg-detect.js +0 -0
- /package/node_modules/@comis/skills/dist/{media → tools/media}/file-validator.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{media → tools/media}/file-validator.js +0 -0
- /package/node_modules/@comis/skills/dist/{media → tools/media}/image-ops.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{media → tools/media}/image-ops.js +0 -0
- /package/node_modules/@comis/skills/dist/{media → tools/media}/index.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{media → tools/media}/index.js +0 -0
- /package/node_modules/@comis/skills/dist/{media → tools/media}/media-semaphore.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{media → tools/media}/media-semaphore.js +0 -0
- /package/node_modules/@comis/skills/dist/{media → tools/media}/mime-detection.d.ts +0 -0
- /package/node_modules/@comis/skills/dist/{media → tools/media}/mime-detection.js +0 -0
- /package/node_modules/@comis/skills/dist/{media → tools/media}/ssrf-fetcher.d.ts +0 -0
- /package/node_modules/@comis/web/dist/assets/{approvals-C-K6hN2U.js → approvals-BCnwA_Wl.js} +0 -0
- /package/node_modules/@comis/web/dist/assets/{directive-BOYXJ-K-.js → directive-BLQp04BH.js} +0 -0
- /package/node_modules/@comis/web/dist/assets/{extract-variables-B7-Doo7l.js → extract-variables-B5H_luKW.js} +0 -0
- /package/node_modules/@comis/web/dist/assets/{ic-array-editor-BLoEyeLS.js → ic-array-editor-Cyy1IkY8.js} +0 -0
- /package/node_modules/@comis/web/dist/assets/{ic-breadcrumb-DqN6G3gc.js → ic-breadcrumb-1qP0UJ5v.js} +0 -0
- /package/node_modules/@comis/web/dist/assets/{ic-budget-segment-bar-zLsMzjDO.js → ic-budget-segment-bar-BWIGfwtb.js} +0 -0
- /package/node_modules/@comis/web/dist/assets/{ic-confirm-dialog-DGlPbV1T.js → ic-confirm-dialog-Wdt0QSRg.js} +0 -0
- /package/node_modules/@comis/web/dist/assets/{ic-data-table-CKIvr-ag.js → ic-data-table-DPg9-J1A.js} +0 -0
- /package/node_modules/@comis/web/dist/assets/{ic-detail-panel-DiCe4hLr.js → ic-detail-panel-DGevqzFo.js} +0 -0
- /package/node_modules/@comis/web/dist/assets/{ic-icon-BGNCCPpZ.js → ic-icon-BkVssjSQ.js} +0 -0
- /package/node_modules/@comis/web/dist/assets/{ic-layer-waterfall-WkaFyu-l.js → ic-layer-waterfall-CFPbnC1V.js} +0 -0
- /package/node_modules/@comis/web/dist/assets/{ic-select-BqfZISjw.js → ic-select-BEeaNppH.js} +0 -0
- /package/node_modules/@comis/web/dist/assets/{ic-tabs-yBjkWKJH.js → ic-tabs-BM8xZY4a.js} +0 -0
- /package/node_modules/@comis/web/dist/assets/{ic-tag-CvMVQFRR.js → ic-tag-CKh2gHHX.js} +0 -0
|
@@ -1,1732 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
-
/**
|
|
3
|
-
* Request body injector stream wrapper.
|
|
4
|
-
*
|
|
5
|
-
* Mutates the outgoing request body via the onPayload hook. Consolidates:
|
|
6
|
-
* 1. Cache breakpoints (Anthropic-family): cache_control markers
|
|
7
|
-
* 2. 1M beta header (direct Anthropic only)
|
|
8
|
-
* 3. service_tier (Responses API + fastMode)
|
|
9
|
-
* 4. store (Responses API + storeCompletions)
|
|
10
|
-
*
|
|
11
|
-
* Cache breakpoints:
|
|
12
|
-
*
|
|
13
|
-
* @module
|
|
14
|
-
*/
|
|
15
|
-
import { SYSTEM_PROMPT_DYNAMIC_BOUNDARY, resolveBreakpointStrategy } from "./config-resolver.js";
|
|
16
|
-
import { createAccumulativeLatch } from "../session-latch.js";
|
|
17
|
-
import { MIN_CACHEABLE_TOKENS, DEFAULT_MIN_CACHEABLE_TOKENS, CHARS_PER_TOKEN_RATIO, CHARS_PER_TOKEN_RATIO_STRUCTURED, CACHE_LOOKBACK_WINDOW } from "../../context-engine/index.js";
|
|
18
|
-
import { isAnthropicFamily } from "../../provider/capabilities.js";
|
|
19
|
-
import { estimateContextChars } from "../../safety/token-estimator.js";
|
|
20
|
-
import { computeHash, djb2 } from "../cache-break-detection.js";
|
|
21
|
-
import { supportsToolSearch } from "../tool-deferral.js";
|
|
22
|
-
// ---------------------------------------------------------------------------
|
|
23
|
-
// Tool schema caches extracted to tool-schema-cache.ts (leaf module).
|
|
24
|
-
// Re-exported here for backward compatibility with existing consumers.
|
|
25
|
-
// ---------------------------------------------------------------------------
|
|
26
|
-
import { sessionRenderedToolCache, getOrCacheRenderedTool } from "./tool-schema-cache.js";
|
|
27
|
-
export { clearSessionRenderedToolCache, getOrCacheRenderedTool, clearSessionPerToolCache } from "./tool-schema-cache.js";
|
|
28
|
-
// ---------------------------------------------------------------------------
|
|
29
|
-
// Sticky-on beta header latches.
|
|
30
|
-
// Tracks individual beta header values seen per session. Once a beta value
|
|
31
|
-
// appears in any API call, it is latched and included in all subsequent calls.
|
|
32
|
-
// Prevents mid-session beta header toggling from busting the cache prefix.
|
|
33
|
-
// ---------------------------------------------------------------------------
|
|
34
|
-
const sessionBetaHeaderLatches = new Map();
|
|
35
|
-
// ---------------------------------------------------------------------------
|
|
36
|
-
// Prefix stability tracking.
|
|
37
|
-
// Hashes the first N messages before microcompaction to detect prefix instability.
|
|
38
|
-
// When the prefix hash changes on consecutive turns, the cache prefix is unstable
|
|
39
|
-
// and every turn will miss cache reads beyond the system prompt.
|
|
40
|
-
// ---------------------------------------------------------------------------
|
|
41
|
-
const sessionPrefixStability = new Map();
|
|
42
|
-
export function clearSessionPrefixStability(sessionKey) {
|
|
43
|
-
sessionPrefixStability.delete(sessionKey);
|
|
44
|
-
}
|
|
45
|
-
export function clearSessionBetaHeaderLatches(sessionKey) {
|
|
46
|
-
sessionBetaHeaderLatches.delete(sessionKey);
|
|
47
|
-
}
|
|
48
|
-
const sessionCadenceTracker = new Map();
|
|
49
|
-
export function clearSessionCadenceTracker(sessionKey) {
|
|
50
|
-
sessionCadenceTracker.delete(sessionKey);
|
|
51
|
-
}
|
|
52
|
-
const SLOW_CADENCE_PROMOTION_THRESHOLD = 3;
|
|
53
|
-
const FAST_CADENCE_DEMOTION_THRESHOLD = 5;
|
|
54
|
-
const SLOW_CADENCE_MS = 5 * 60 * 1000; // 5 minutes
|
|
55
|
-
// ---------------------------------------------------------------------------
|
|
56
|
-
// Per-model cache retention override resolution.
|
|
57
|
-
// Enables selectively disabling or changing prompt caching for specific model
|
|
58
|
-
// families. Longest-prefix-first matching ensures specific model variants
|
|
59
|
-
// (e.g., "claude-sonnet-4-6") take priority over broad families ("claude-sonnet").
|
|
60
|
-
// ---------------------------------------------------------------------------
|
|
61
|
-
/**
|
|
62
|
-
* Resolve effective cache retention for a model, considering per-model overrides.
|
|
63
|
-
* Uses longest-prefix-first matching: "claude-sonnet-4-6" wins over "claude-sonnet".
|
|
64
|
-
*
|
|
65
|
-
* @param modelId - Full model identifier (e.g., "claude-sonnet-4-6-20260301")
|
|
66
|
-
* @param agentRetention - Agent-level default cache retention
|
|
67
|
-
* @param overrides - Optional per-model family overrides (prefix -> retention)
|
|
68
|
-
* @returns Resolved cache retention value
|
|
69
|
-
*/
|
|
70
|
-
export function resolveCacheRetention(modelId, agentRetention, overrides) {
|
|
71
|
-
if (!overrides || Object.keys(overrides).length === 0) {
|
|
72
|
-
return agentRetention;
|
|
73
|
-
}
|
|
74
|
-
// Sort by key length descending (longest-prefix-first)
|
|
75
|
-
const sorted = Object.entries(overrides).sort((a, b) => b[0].length - a[0].length);
|
|
76
|
-
for (const [prefix, retention] of sorted) {
|
|
77
|
-
if (modelId.startsWith(prefix))
|
|
78
|
-
return retention;
|
|
79
|
-
}
|
|
80
|
-
return agentRetention;
|
|
81
|
-
}
|
|
82
|
-
// ---------------------------------------------------------------------------
|
|
83
|
-
// Internal helpers
|
|
84
|
-
// ---------------------------------------------------------------------------
|
|
85
|
-
/** Anthropic beta header for 1M context window. */
|
|
86
|
-
const CONTEXT_1M_BETA = "context-1m-2025-08-07";
|
|
87
|
-
/** Check if a model uses the OpenAI Responses API. */
|
|
88
|
-
function isResponsesApiProvider(model) {
|
|
89
|
-
return model.api === "openai-responses" || model.api === "azure-openai-responses";
|
|
90
|
-
}
|
|
91
|
-
/** Parse a comma-separated header list, returning individual values. */
|
|
92
|
-
function parseHeaderList(header) {
|
|
93
|
-
if (!header)
|
|
94
|
-
return [];
|
|
95
|
-
return header.split(",").map(s => s.trim()).filter(Boolean);
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Compute a hash of rendered tools excluding cache_control.
|
|
99
|
-
* Uses computeHash (djb2 over JSON.stringify) from cache-break-detection.
|
|
100
|
-
*/
|
|
101
|
-
function computeRenderedToolsHash(tools) {
|
|
102
|
-
const forHash = tools.map(t => ({
|
|
103
|
-
name: t.name,
|
|
104
|
-
description: t.description,
|
|
105
|
-
input_schema: t.input_schema,
|
|
106
|
-
}));
|
|
107
|
-
return computeHash(forHash);
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Pre-sorted MIN_CACHEABLE_TOKENS entries by key length descending.
|
|
111
|
-
* Ensures longest-prefix-first matching: "claude-opus-4-6" (len 15)
|
|
112
|
-
* always matches before "claude-opus-4-" (len 14).
|
|
113
|
-
* Computed once at module load time.
|
|
114
|
-
*/
|
|
115
|
-
const SORTED_MIN_CACHEABLE_ENTRIES = Object.entries(MIN_CACHEABLE_TOKENS).sort((a, b) => b[0].length - a[0].length);
|
|
116
|
-
/**
|
|
117
|
-
* Resolve minimum cacheable tokens for a model ID.
|
|
118
|
-
* Matches by prefix: "claude-opus-4-6-20260301" -> "claude-opus-4-6".
|
|
119
|
-
* Uses pre-sorted entries to guarantee longest prefix wins.
|
|
120
|
-
* Falls back to DEFAULT_MIN_CACHEABLE_TOKENS (1024).
|
|
121
|
-
*/
|
|
122
|
-
export function getMinCacheableTokens(modelId) {
|
|
123
|
-
if (!modelId)
|
|
124
|
-
return DEFAULT_MIN_CACHEABLE_TOKENS;
|
|
125
|
-
for (const [prefix, threshold] of SORTED_MIN_CACHEABLE_ENTRIES) {
|
|
126
|
-
if (modelId.startsWith(prefix))
|
|
127
|
-
return threshold;
|
|
128
|
-
}
|
|
129
|
-
return DEFAULT_MIN_CACHEABLE_TOKENS;
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Count existing cache_control breakpoints in an Anthropic API payload.
|
|
133
|
-
* Counts across tools, system blocks, and message content blocks.
|
|
134
|
-
* Tools are counted first because their breakpoints consume slots from
|
|
135
|
-
* the same 4-breakpoint budget.
|
|
136
|
-
*/
|
|
137
|
-
function countCacheBreakpoints(params) {
|
|
138
|
-
let count = 0;
|
|
139
|
-
// Count in tools array
|
|
140
|
-
const tools = params.tools;
|
|
141
|
-
if (Array.isArray(tools)) {
|
|
142
|
-
for (const tool of tools) {
|
|
143
|
-
if (tool.cache_control)
|
|
144
|
-
count++;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
// Count in system array
|
|
148
|
-
const system = params.system;
|
|
149
|
-
if (Array.isArray(system)) {
|
|
150
|
-
for (const block of system) {
|
|
151
|
-
if (block.cache_control)
|
|
152
|
-
count++;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
// Count in messages
|
|
156
|
-
const messages = params.messages;
|
|
157
|
-
if (Array.isArray(messages)) {
|
|
158
|
-
for (const msg of messages) {
|
|
159
|
-
const content = msg.content;
|
|
160
|
-
if (Array.isArray(content)) {
|
|
161
|
-
for (const block of content) {
|
|
162
|
-
if (block.cache_control)
|
|
163
|
-
count++;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
return count;
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Block types eligible for cache_control markers.
|
|
172
|
-
* Thinking and redacted_thinking blocks must never receive cache_control
|
|
173
|
-
* because they waste breakpoint slots.
|
|
174
|
-
*/
|
|
175
|
-
export const CACHEABLE_BLOCK_TYPES = new Set(["text", "tool_use", "tool_result", "image"]);
|
|
176
|
-
/**
|
|
177
|
-
* Add cache_control marker to the last cacheable content block of a message.
|
|
178
|
-
*
|
|
179
|
-
* Walks backwards through the content array to find the last block whose
|
|
180
|
-
* type is in CACHEABLE_BLOCK_TYPES. Thinking and redacted_thinking blocks
|
|
181
|
-
* are skipped because they waste breakpoint slots.
|
|
182
|
-
*
|
|
183
|
-
* When retention is "long", uses ttl="1h" to match the pi-ai SDK's
|
|
184
|
-
* Anthropic provider which sets `{ type: "ephemeral", ttl: "1h" }` on
|
|
185
|
-
* the last user message. The Anthropic API requires TTLs to be
|
|
186
|
-
* monotonically non-increasing across the request (tools -> system ->
|
|
187
|
-
* messages). Since Comis places breakpoints earlier in the message array
|
|
188
|
-
* than the SDK, using the same "1h" TTL ensures ordering compliance.
|
|
189
|
-
*
|
|
190
|
-
* When retention is "short" or undefined, uses the 5m default (no
|
|
191
|
-
* explicit TTL) which is the Anthropic API baseline.
|
|
192
|
-
*/
|
|
193
|
-
export function addCacheControlToLastBlock(message, retention) {
|
|
194
|
-
const content = message.content;
|
|
195
|
-
if (!Array.isArray(content) || content.length === 0)
|
|
196
|
-
return;
|
|
197
|
-
const cacheControl = retention === "long"
|
|
198
|
-
? { type: "ephemeral", ttl: "1h" }
|
|
199
|
-
: { type: "ephemeral" };
|
|
200
|
-
// Walk backwards to find the last cacheable block (skip thinking, redacted_thinking, etc.)
|
|
201
|
-
for (let i = content.length - 1; i >= 0; i--) {
|
|
202
|
-
const block = content[i];
|
|
203
|
-
if (CACHEABLE_BLOCK_TYPES.has(block.type)) {
|
|
204
|
-
block.cache_control = cacheControl;
|
|
205
|
-
return;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
// Edge case: no cacheable block found -- place on last block as fallback
|
|
209
|
-
content[content.length - 1].cache_control = cacheControl;
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Place exactly 1 cache_control marker on the second-to-last user message.
|
|
213
|
-
* The SDK already places one on the last user message, so we target second-to-last
|
|
214
|
-
* to avoid duplication while still getting one Comis-controlled breakpoint.
|
|
215
|
-
*
|
|
216
|
-
* When skipCacheWrite is true, target the third-to-last user message instead,
|
|
217
|
-
* falling back to second-to-last if insufficient user messages exist.
|
|
218
|
-
*/
|
|
219
|
-
/* eslint-disable @typescript-eslint/no-explicit-any -- SDK message types lack public type exports */
|
|
220
|
-
function placeSingleBreakpoint(messages, retention, skipCacheWrite) {
|
|
221
|
-
if (messages.length < 2)
|
|
222
|
-
return 0;
|
|
223
|
-
// When skipCacheWrite, find third-to-last instead of second-to-last
|
|
224
|
-
const targetOrdinal = skipCacheWrite ? 3 : 2; // 1st=last, 2nd=second-to-last, 3rd=third-to-last
|
|
225
|
-
let userCount = 0;
|
|
226
|
-
for (let i = messages.length - 1; i >= 0; i--) {
|
|
227
|
-
if (messages[i].role === "user") {
|
|
228
|
-
userCount++;
|
|
229
|
-
if (userCount === targetOrdinal) {
|
|
230
|
-
addCacheControlToLastBlock(messages[i], retention);
|
|
231
|
-
return 1;
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
// Fallback: if not enough user messages for the target ordinal,
|
|
236
|
-
// try second-to-last (skipCacheWrite fallback)
|
|
237
|
-
if (skipCacheWrite && userCount >= 2) {
|
|
238
|
-
let fallbackCount = 0;
|
|
239
|
-
for (let i = messages.length - 1; i >= 0; i--) {
|
|
240
|
-
if (messages[i].role === "user") {
|
|
241
|
-
fallbackCount++;
|
|
242
|
-
if (fallbackCount === 2) {
|
|
243
|
-
addCacheControlToLastBlock(messages[i], retention);
|
|
244
|
-
return 1;
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
return 0;
|
|
250
|
-
}
|
|
251
|
-
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
252
|
-
/**
|
|
253
|
-
* Place cache breakpoints at strategic positions within the messages array.
|
|
254
|
-
*
|
|
255
|
-
* Zone strategy (up to 3 custom breakpoints):
|
|
256
|
-
* - Breakpoint #2 (semi-stable zone): After the compaction summary or the
|
|
257
|
-
* boundary between old and recent messages.
|
|
258
|
-
* - Breakpoint #3 (recent zone): On the second-to-last user message (the
|
|
259
|
-
* SDK places #4 on the last user message).
|
|
260
|
-
* - Breakpoint #3.5 (mid zone): At the midpoint between semi-stable and
|
|
261
|
-
* second-to-last user -- covers the gap in longer conversations.
|
|
262
|
-
*
|
|
263
|
-
* @param messages - The messages array from the Anthropic API payload
|
|
264
|
-
* @param options - Breakpoint placement options
|
|
265
|
-
* @returns Number of breakpoints actually placed
|
|
266
|
-
*/
|
|
267
|
-
/* eslint-disable @typescript-eslint/no-explicit-any -- SDK message types lack public type exports */
|
|
268
|
-
function placeCacheBreakpoints(messages, options) {
|
|
269
|
-
const { minTokens, maxBreakpoints, retention, resolvedRetention, strategy, skipCacheWrite } = options;
|
|
270
|
-
if (messages.length < 4 || maxBreakpoints <= 0)
|
|
271
|
-
return 0;
|
|
272
|
-
// Single-breakpoint strategy dispatch
|
|
273
|
-
if (strategy === "single") {
|
|
274
|
-
return placeSingleBreakpoint(messages, retention, skipCacheWrite);
|
|
275
|
-
}
|
|
276
|
-
let placed = 0;
|
|
277
|
-
const remaining = Math.min(maxBreakpoints, 3); // Use full budget (4 total - SDK's 1 = 3 available)
|
|
278
|
-
// Find the second-to-last user message for breakpoint #3
|
|
279
|
-
let secondToLastUserIdx = -1;
|
|
280
|
-
let lastUserIdx = -1;
|
|
281
|
-
for (let i = messages.length - 1; i >= 0; i--) {
|
|
282
|
-
if (messages[i].role === "user") {
|
|
283
|
-
if (lastUserIdx === -1) {
|
|
284
|
-
lastUserIdx = i;
|
|
285
|
-
}
|
|
286
|
-
else if (secondToLastUserIdx === -1) {
|
|
287
|
-
secondToLastUserIdx = i;
|
|
288
|
-
break;
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
// For sub-agent spawns, shift recent-zone breakpoint back by one
|
|
293
|
-
// user message to avoid cache_creation on the final message pair.
|
|
294
|
-
if (skipCacheWrite && secondToLastUserIdx >= 0) {
|
|
295
|
-
let thirdToLastUserIdx = -1;
|
|
296
|
-
for (let i = secondToLastUserIdx - 1; i >= 0; i--) {
|
|
297
|
-
if (messages[i].role === "user") {
|
|
298
|
-
thirdToLastUserIdx = i;
|
|
299
|
-
break;
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
if (thirdToLastUserIdx >= 0) {
|
|
303
|
-
secondToLastUserIdx = thirdToLastUserIdx;
|
|
304
|
-
}
|
|
305
|
-
// If no third-to-last user found, fall through to original secondToLastUserIdx
|
|
306
|
-
}
|
|
307
|
-
// Estimate cumulative tokens for threshold checking.
|
|
308
|
-
// Uses content-aware char/token ratio: structured content (tool results,
|
|
309
|
-
// tool use JSON) tokenizes at ~3 chars/token; natural language at ~4.
|
|
310
|
-
function estimateTokensInRange(start, end) {
|
|
311
|
-
let tokens = 0;
|
|
312
|
-
for (let i = start; i <= end && i < messages.length; i++) {
|
|
313
|
-
const msg = messages[i];
|
|
314
|
-
const content = msg.content;
|
|
315
|
-
const isStructured = msg.role === "user"
|
|
316
|
-
? Array.isArray(content) && content.some((b) => b.type === "tool_result")
|
|
317
|
-
: msg.role === "assistant"
|
|
318
|
-
? Array.isArray(content) && content.some((b) => b.type === "tool_use")
|
|
319
|
-
: false;
|
|
320
|
-
const ratio = isStructured ? CHARS_PER_TOKEN_RATIO_STRUCTURED : CHARS_PER_TOKEN_RATIO;
|
|
321
|
-
if (typeof content === "string") {
|
|
322
|
-
tokens += Math.ceil(content.length / ratio);
|
|
323
|
-
}
|
|
324
|
-
else if (Array.isArray(content)) {
|
|
325
|
-
for (const block of content) {
|
|
326
|
-
if (typeof block.text === "string") {
|
|
327
|
-
tokens += Math.ceil(block.text.length / ratio);
|
|
328
|
-
}
|
|
329
|
-
// tool_result blocks nest text inside block.content[]
|
|
330
|
-
if (Array.isArray(block.content)) {
|
|
331
|
-
for (const inner of block.content) {
|
|
332
|
-
if (typeof inner.text === "string") {
|
|
333
|
-
tokens += Math.ceil(inner.text.length / ratio);
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
return tokens;
|
|
341
|
-
}
|
|
342
|
-
// Find compaction summary position (breakpoint #2 candidate)
|
|
343
|
-
let semiStableIdx = -1;
|
|
344
|
-
for (let i = 0; i < messages.length; i++) {
|
|
345
|
-
const msg = messages[i];
|
|
346
|
-
if (msg.role === "user") {
|
|
347
|
-
const content = msg.content;
|
|
348
|
-
const text = typeof content === "string" ? content :
|
|
349
|
-
(Array.isArray(content) ? content.find((b) => b.type === "text")?.text ?? "" : "");
|
|
350
|
-
if (text.startsWith("<summary>") || text.includes("[Compaction summary]")) {
|
|
351
|
-
semiStableIdx = i;
|
|
352
|
-
break;
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
// Place at 50% cumulative token threshold (not 50% message index).
|
|
357
|
-
// Token-density placement ensures sessions with tool-heavy early messages
|
|
358
|
-
// place the breakpoint at the actual token midpoint.
|
|
359
|
-
if (semiStableIdx === -1 && secondToLastUserIdx > 2) {
|
|
360
|
-
const totalTokens = estimateTokensInRange(0, secondToLastUserIdx);
|
|
361
|
-
const halfTokens = totalTokens / 2;
|
|
362
|
-
let cumulative = 0;
|
|
363
|
-
let crossingIdx = -1;
|
|
364
|
-
for (let i = 0; i <= secondToLastUserIdx; i++) {
|
|
365
|
-
cumulative += estimateTokensInRange(i, i);
|
|
366
|
-
if (cumulative >= halfTokens) {
|
|
367
|
-
crossingIdx = i;
|
|
368
|
-
break;
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
// Find nearest user message at or before the crossing point
|
|
372
|
-
if (crossingIdx >= 0) {
|
|
373
|
-
for (let i = crossingIdx; i >= 0; i--) {
|
|
374
|
-
if (messages[i].role === "user") {
|
|
375
|
-
semiStableIdx = i;
|
|
376
|
-
break;
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
// Fallback: if no user message at/before crossing, scan forward
|
|
380
|
-
if (semiStableIdx === -1) {
|
|
381
|
-
for (let i = crossingIdx + 1; i <= secondToLastUserIdx; i++) {
|
|
382
|
-
if (messages[i].role === "user") {
|
|
383
|
-
semiStableIdx = i;
|
|
384
|
-
break;
|
|
385
|
-
}
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
// Place breakpoint #2 if above threshold
|
|
391
|
-
if (semiStableIdx >= 0 && placed < remaining) {
|
|
392
|
-
const tokensToPoint = estimateTokensInRange(0, semiStableIdx);
|
|
393
|
-
if (tokensToPoint >= minTokens) {
|
|
394
|
-
addCacheControlToLastBlock(messages[semiStableIdx], resolvedRetention ?? retention);
|
|
395
|
-
placed++;
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
// Place breakpoint #3 on second-to-last user message if above threshold
|
|
399
|
-
if (secondToLastUserIdx >= 0 && placed < remaining) {
|
|
400
|
-
const startFrom = semiStableIdx >= 0 ? semiStableIdx + 1 : 0;
|
|
401
|
-
const tokensInRange = estimateTokensInRange(startFrom, secondToLastUserIdx);
|
|
402
|
-
if (tokensInRange >= minTokens) {
|
|
403
|
-
// Promote recent-zone to "long" when cadence indicates user pauses exceed 5m.
|
|
404
|
-
// Monotonicity guard: recent zone can only be promoted when
|
|
405
|
-
// resolvedRetention (tool/system) is already "long".
|
|
406
|
-
let recentRetention = retention;
|
|
407
|
-
if (options.promoteRecentZoneOnSlowCadence && options.sessionKey) {
|
|
408
|
-
const cadence = sessionCadenceTracker.get(options.sessionKey);
|
|
409
|
-
if (cadence?.promoted && resolvedRetention === "long") {
|
|
410
|
-
recentRetention = "long";
|
|
411
|
-
}
|
|
412
|
-
}
|
|
413
|
-
addCacheControlToLastBlock(messages[secondToLastUserIdx], recentRetention);
|
|
414
|
-
placed++;
|
|
415
|
-
}
|
|
416
|
-
}
|
|
417
|
-
// Place breakpoint at mid-point between semi-stable and second-to-last user.
|
|
418
|
-
// Covers the gap in longer conversations where the semi-stable zone (compaction summary)
|
|
419
|
-
// is far from the recent zone (second-to-last user message).
|
|
420
|
-
if (semiStableIdx >= 0 && secondToLastUserIdx >= 0 && placed < remaining) {
|
|
421
|
-
const midIdx = Math.floor((semiStableIdx + secondToLastUserIdx) / 2);
|
|
422
|
-
if (midIdx > semiStableIdx && midIdx < secondToLastUserIdx) {
|
|
423
|
-
// Find nearest user message at or before the midpoint
|
|
424
|
-
let midUserIdx = -1;
|
|
425
|
-
for (let i = midIdx; i > semiStableIdx; i--) {
|
|
426
|
-
if (messages[i].role === "user") {
|
|
427
|
-
midUserIdx = i;
|
|
428
|
-
break;
|
|
429
|
-
}
|
|
430
|
-
}
|
|
431
|
-
if (midUserIdx >= 0) {
|
|
432
|
-
const startFrom = semiStableIdx + 1;
|
|
433
|
-
const tokensInRange = estimateTokensInRange(startFrom, midUserIdx);
|
|
434
|
-
if (tokensInRange >= minTokens) {
|
|
435
|
-
addCacheControlToLastBlock(messages[midUserIdx], resolvedRetention ?? retention);
|
|
436
|
-
placed++;
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
|
-
}
|
|
440
|
-
}
|
|
441
|
-
// Lookback window enforcement: check gaps between consecutive breakpoints.
|
|
442
|
-
// The Anthropic API uses a 20-block lookback window for cache prefix matching.
|
|
443
|
-
// If any gap exceeds the window and slots remain, place a bridging breakpoint
|
|
444
|
-
// at the midpoint of the gap to prevent silent cache misses.
|
|
445
|
-
if (placed > 0 && placed < maxBreakpoints) {
|
|
446
|
-
const breakpointPositions = [];
|
|
447
|
-
for (let i = 0; i < messages.length; i++) {
|
|
448
|
-
const content = messages[i].content;
|
|
449
|
-
if (Array.isArray(content)) {
|
|
450
|
-
for (const block of content) {
|
|
451
|
-
if (block.cache_control) {
|
|
452
|
-
breakpointPositions.push(i);
|
|
453
|
-
break;
|
|
454
|
-
}
|
|
455
|
-
}
|
|
456
|
-
}
|
|
457
|
-
}
|
|
458
|
-
// Check gaps between consecutive breakpoints
|
|
459
|
-
for (let g = 1; g < breakpointPositions.length && placed < maxBreakpoints; g++) {
|
|
460
|
-
const gap = breakpointPositions[g] - breakpointPositions[g - 1];
|
|
461
|
-
if (gap > CACHE_LOOKBACK_WINDOW) {
|
|
462
|
-
// Find a user message near the midpoint of the gap
|
|
463
|
-
const midTarget = Math.floor((breakpointPositions[g - 1] + breakpointPositions[g]) / 2);
|
|
464
|
-
for (let j = midTarget; j > breakpointPositions[g - 1]; j--) {
|
|
465
|
-
if (messages[j].role === "user") {
|
|
466
|
-
const startFrom = breakpointPositions[g - 1] + 1;
|
|
467
|
-
const tokensInRange = estimateTokensInRange(startFrom, j);
|
|
468
|
-
if (tokensInRange >= minTokens) {
|
|
469
|
-
addCacheControlToLastBlock(messages[j], resolvedRetention ?? retention);
|
|
470
|
-
placed++;
|
|
471
|
-
}
|
|
472
|
-
break;
|
|
473
|
-
}
|
|
474
|
-
}
|
|
475
|
-
}
|
|
476
|
-
}
|
|
477
|
-
}
|
|
478
|
-
return placed;
|
|
479
|
-
}
|
|
480
|
-
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
481
|
-
// ---------------------------------------------------------------------------
|
|
482
|
-
// Time-based microcompact helper
|
|
483
|
-
// ---------------------------------------------------------------------------
|
|
484
|
-
/** Minimum content length (chars) for a tool result to be considered clearable. */
|
|
485
|
-
const MICROCOMPACT_MIN_CONTENT_LENGTH = 1000;
|
|
486
|
-
/**
|
|
487
|
-
* Read-only tool names whose results are safely clearable during microcompact.
|
|
488
|
-
* Edit/write tool results are preserved because they carry the LLM's understanding
|
|
489
|
-
* of what was changed -- clearing them loses context.
|
|
490
|
-
*/
|
|
491
|
-
const COMPACTABLE_TOOL_NAMES = new Set([
|
|
492
|
-
"grep", "glob", "file_read", "web_search", "web_fetch",
|
|
493
|
-
"exec_tool", // Shell equivalent -- output is ephemeral
|
|
494
|
-
"list_dir", // Directory listing -- ephemeral
|
|
495
|
-
"search_files", // File search -- ephemeral
|
|
496
|
-
]);
|
|
497
|
-
/**
|
|
498
|
-
* Edit/write tool names whose tool_use INPUT blocks are clearable during microcompact.
|
|
499
|
-
* Unlike COMPACTABLE_TOOL_NAMES (which clears tool_result output), this clears the
|
|
500
|
-
* tool_use input (the request the LLM sent). The tool_result (what the tool returned)
|
|
501
|
-
* is preserved because edit/write results carry confirmation of what changed.
|
|
502
|
-
*/
|
|
503
|
-
const CLEARABLE_USES_TOOL_NAMES = new Set([
|
|
504
|
-
"file_edit",
|
|
505
|
-
"file_write",
|
|
506
|
-
"notebook_edit",
|
|
507
|
-
]);
|
|
508
|
-
/**
|
|
509
|
-
* Clear stale tool results from messages, preserving the most recent ones.
|
|
510
|
-
* Replaces long tool_result content with a placeholder to reduce cache-write
|
|
511
|
-
* token cost when the cache has expired after an idle gap.
|
|
512
|
-
*
|
|
513
|
-
* Only clears read-only (compactable) tool types. Edit/write tool
|
|
514
|
-
* results and orphaned results (no matching tool_use) are preserved.
|
|
515
|
-
*
|
|
516
|
-
* @param messages - The messages array (mutated in place)
|
|
517
|
-
* @param keepWindow - Number of most recent tool_result messages to preserve
|
|
518
|
-
* @returns Number of tool results cleared
|
|
519
|
-
*/
|
|
520
|
-
function clearStaleToolResults(messages, keepWindow, fenceIndex = -1) {
|
|
521
|
-
// Build tool_use_id -> tool_name map for type filtering
|
|
522
|
-
const toolNameById = new Map();
|
|
523
|
-
for (const msg of messages) {
|
|
524
|
-
if (msg.role === "assistant" && Array.isArray(msg.content)) {
|
|
525
|
-
for (const block of msg.content) {
|
|
526
|
-
if (block.type === "tool_use" && typeof block.id === "string" && typeof block.name === "string") {
|
|
527
|
-
toolNameById.set(block.id, block.name);
|
|
528
|
-
}
|
|
529
|
-
}
|
|
530
|
-
}
|
|
531
|
-
}
|
|
532
|
-
// Find all tool_result indices (role === "tool" in Anthropic API format)
|
|
533
|
-
const toolResultIndices = [];
|
|
534
|
-
for (let i = 0; i < messages.length; i++) {
|
|
535
|
-
if (messages[i].role === "tool") {
|
|
536
|
-
toolResultIndices.push(i);
|
|
537
|
-
}
|
|
538
|
-
}
|
|
539
|
-
// Protect the last `keepWindow` tool results
|
|
540
|
-
const clearableIndices = toolResultIndices.slice(0, Math.max(0, toolResultIndices.length - keepWindow));
|
|
541
|
-
let cleared = 0;
|
|
542
|
-
for (const idx of clearableIndices) {
|
|
543
|
-
// Protect messages within the cached prefix (at or below the fence).
|
|
544
|
-
if (idx <= fenceIndex)
|
|
545
|
-
continue;
|
|
546
|
-
const msg = messages[idx];
|
|
547
|
-
// Only clear compactable (read-only) tool types
|
|
548
|
-
const toolUseId = msg.tool_use_id;
|
|
549
|
-
if (toolUseId) {
|
|
550
|
-
const toolName = toolNameById.get(toolUseId);
|
|
551
|
-
if (toolName && !COMPACTABLE_TOOL_NAMES.has(toolName)) {
|
|
552
|
-
continue; // Preserve edit/write tool results
|
|
553
|
-
}
|
|
554
|
-
// If tool name not found (orphaned result), skip clearing (conservative)
|
|
555
|
-
if (!toolName) {
|
|
556
|
-
continue;
|
|
557
|
-
}
|
|
558
|
-
}
|
|
559
|
-
const content = msg.content;
|
|
560
|
-
if (Array.isArray(content)) {
|
|
561
|
-
// Check if any content block exceeds the threshold
|
|
562
|
-
let totalLen = 0;
|
|
563
|
-
for (const block of content) {
|
|
564
|
-
if (typeof block.text === "string") {
|
|
565
|
-
totalLen += block.text.length;
|
|
566
|
-
}
|
|
567
|
-
}
|
|
568
|
-
if (totalLen >= MICROCOMPACT_MIN_CONTENT_LENGTH) {
|
|
569
|
-
// Replace content with lightweight placeholder
|
|
570
|
-
msg.content = [{ type: "text", text: "[Stale tool result cleared: idle > TTL]" }];
|
|
571
|
-
cleared++;
|
|
572
|
-
}
|
|
573
|
-
}
|
|
574
|
-
else if (typeof content === "string" && content.length >= MICROCOMPACT_MIN_CONTENT_LENGTH) {
|
|
575
|
-
msg.content = [{ type: "text", text: "[Stale tool result cleared: idle > TTL]" }];
|
|
576
|
-
cleared++;
|
|
577
|
-
}
|
|
578
|
-
}
|
|
579
|
-
// Second pass -- clear tool_use input blocks for edit/write tools.
|
|
580
|
-
// These tool_use blocks contain the full file content the LLM wanted to write/edit.
|
|
581
|
-
// After the result is confirmed, the input is no longer needed and just wastes cache space.
|
|
582
|
-
const assistantWithToolUseIndices = [];
|
|
583
|
-
for (let i = 0; i < messages.length; i++) {
|
|
584
|
-
const msg = messages[i];
|
|
585
|
-
if (msg.role === "assistant" && Array.isArray(msg.content)) {
|
|
586
|
-
const content = msg.content;
|
|
587
|
-
if (content.some(b => b.type === "tool_use")) {
|
|
588
|
-
assistantWithToolUseIndices.push(i);
|
|
589
|
-
}
|
|
590
|
-
}
|
|
591
|
-
}
|
|
592
|
-
const clearableAssistantIndices = assistantWithToolUseIndices.slice(0, Math.max(0, assistantWithToolUseIndices.length - keepWindow));
|
|
593
|
-
for (const idx of clearableAssistantIndices) {
|
|
594
|
-
// Protect messages within the cached prefix.
|
|
595
|
-
if (idx <= fenceIndex)
|
|
596
|
-
continue;
|
|
597
|
-
const msg = messages[idx];
|
|
598
|
-
const content = msg.content;
|
|
599
|
-
for (const block of content) {
|
|
600
|
-
if (block.type !== "tool_use")
|
|
601
|
-
continue;
|
|
602
|
-
const toolName = block.name;
|
|
603
|
-
if (!CLEARABLE_USES_TOOL_NAMES.has(toolName))
|
|
604
|
-
continue;
|
|
605
|
-
const inputStr = JSON.stringify(block.input);
|
|
606
|
-
if (inputStr.length >= MICROCOMPACT_MIN_CONTENT_LENGTH) {
|
|
607
|
-
block.input = { _cleared: true, reason: "stale edit/write input" };
|
|
608
|
-
cleared++;
|
|
609
|
-
}
|
|
610
|
-
}
|
|
611
|
-
}
|
|
612
|
-
return cleared;
|
|
613
|
-
}
|
|
614
|
-
/**
|
|
615
|
-
* Clear non-redacted thinking blocks from old assistant messages.
|
|
616
|
-
* Thinking blocks (5-20K tokens each) waste cache_creation budget when the cache
|
|
617
|
-
* is cold. This function strips them from assistant messages beyond the keepWindow,
|
|
618
|
-
* preserving redacted thinking blocks (which carry encrypted signatures for API continuity).
|
|
619
|
-
*
|
|
620
|
-
* Mutates messages in place (same pattern as clearStaleToolResults).
|
|
621
|
-
*
|
|
622
|
-
* @param messages - The messages array (mutated in place)
|
|
623
|
-
* @param keepWindow - Number of most recent assistant messages to preserve thinking blocks in
|
|
624
|
-
* @returns Number of thinking blocks cleared
|
|
625
|
-
*/
|
|
626
|
-
export function clearStaleThinkingBlocks(messages, keepWindow, fenceIndex = -1) {
|
|
627
|
-
// Collect assistant message indices
|
|
628
|
-
const assistantIndices = [];
|
|
629
|
-
for (let i = 0; i < messages.length; i++) {
|
|
630
|
-
if (messages[i].role === "assistant") {
|
|
631
|
-
assistantIndices.push(i);
|
|
632
|
-
}
|
|
633
|
-
}
|
|
634
|
-
// Calculate how many are clearable (beyond keepWindow)
|
|
635
|
-
const clearableCount = Math.max(0, assistantIndices.length - keepWindow);
|
|
636
|
-
if (clearableCount === 0)
|
|
637
|
-
return 0;
|
|
638
|
-
const clearableIndices = new Set(assistantIndices.slice(0, clearableCount));
|
|
639
|
-
let cleared = 0;
|
|
640
|
-
for (const idx of clearableIndices) {
|
|
641
|
-
// Protect messages within the cached prefix.
|
|
642
|
-
if (idx <= fenceIndex)
|
|
643
|
-
continue;
|
|
644
|
-
const msg = messages[idx];
|
|
645
|
-
const content = msg.content;
|
|
646
|
-
if (!Array.isArray(content))
|
|
647
|
-
continue;
|
|
648
|
-
// Filter: keep everything EXCEPT non-redacted thinking blocks
|
|
649
|
-
const filtered = content.filter(block => {
|
|
650
|
-
if (block.type !== "thinking")
|
|
651
|
-
return true;
|
|
652
|
-
// Preserve redacted thinking blocks (encrypted signatures for API continuity)
|
|
653
|
-
return block.redacted === true;
|
|
654
|
-
});
|
|
655
|
-
if (filtered.length < content.length) {
|
|
656
|
-
cleared += content.length - filtered.length;
|
|
657
|
-
msg.content = filtered;
|
|
658
|
-
}
|
|
659
|
-
}
|
|
660
|
-
return cleared;
|
|
661
|
-
}
|
|
662
|
-
/**
|
|
663
|
-
* Reorder content blocks within user messages for deterministic cache prefix.
|
|
664
|
-
* Moves non-text blocks (images, media) before text blocks within each user message.
|
|
665
|
-
* This ensures attachments always appear at the start of a message, preventing
|
|
666
|
-
* cache prefix invalidation when the user sends text+image in varying orders.
|
|
667
|
-
*
|
|
668
|
-
* Only reorders within user messages. Assistant and tool messages are unchanged.
|
|
669
|
-
* Must run AFTER structuredClone and BEFORE any cache_control marker placement.
|
|
670
|
-
*/
|
|
671
|
-
function reorderContentForStablePrefix(messages) {
|
|
672
|
-
for (const msg of messages) {
|
|
673
|
-
if (msg.role !== "user" || !Array.isArray(msg.content))
|
|
674
|
-
continue;
|
|
675
|
-
const content = msg.content;
|
|
676
|
-
if (content.length <= 1)
|
|
677
|
-
continue;
|
|
678
|
-
// Partition: non-text blocks first, then text blocks (stable sort within groups)
|
|
679
|
-
const nonText = [];
|
|
680
|
-
const text = [];
|
|
681
|
-
for (const block of content) {
|
|
682
|
-
if (block.type === "text") {
|
|
683
|
-
text.push(block);
|
|
684
|
-
}
|
|
685
|
-
else {
|
|
686
|
-
nonText.push(block);
|
|
687
|
-
}
|
|
688
|
-
}
|
|
689
|
-
// Only reorder if there are both types (avoid unnecessary mutations)
|
|
690
|
-
if (nonText.length > 0 && text.length > 0) {
|
|
691
|
-
msg.content = [...nonText, ...text];
|
|
692
|
-
}
|
|
693
|
-
}
|
|
694
|
-
}
|
|
695
|
-
// ---------------------------------------------------------------------------
|
|
696
|
-
// Tool suffix ordering for cache-stable Anthropic payloads
|
|
697
|
-
// ---------------------------------------------------------------------------
|
|
698
|
-
/**
|
|
699
|
-
* Sort tools for Anthropic cache prefix stability: built-in tools first
|
|
700
|
-
* (preserving original order), then MCP tools sorted alphabetically.
|
|
701
|
-
*
|
|
702
|
-
* This ensures dynamic MCP tool late-joins always append AFTER the cached
|
|
703
|
-
* built-in tool prefix, preventing mid-array insertions from busting
|
|
704
|
-
* Anthropic's prefix cache matching.
|
|
705
|
-
*
|
|
706
|
-
* Server-side tools (type: "tool_search_tool_*") are excluded from sorting
|
|
707
|
-
* and placed at the end since they are appended by the deferral pipeline.
|
|
708
|
-
*/
|
|
709
|
-
export function sortToolsForCacheStability(tools) {
|
|
710
|
-
const builtins = [];
|
|
711
|
-
const mcpTools = [];
|
|
712
|
-
const serverTools = [];
|
|
713
|
-
for (const tool of tools) {
|
|
714
|
-
const name = tool.name ?? "";
|
|
715
|
-
const type = tool.type ?? "";
|
|
716
|
-
if (type.startsWith("tool_search_tool_")) {
|
|
717
|
-
serverTools.push(tool);
|
|
718
|
-
}
|
|
719
|
-
else if (name.startsWith("mcp:") || name.startsWith("mcp__")) {
|
|
720
|
-
mcpTools.push(tool);
|
|
721
|
-
}
|
|
722
|
-
else {
|
|
723
|
-
builtins.push(tool);
|
|
724
|
-
}
|
|
725
|
-
}
|
|
726
|
-
mcpTools.sort((a, b) => (a.name ?? "").localeCompare(b.name ?? ""));
|
|
727
|
-
return [...builtins, ...mcpTools, ...serverTools];
|
|
728
|
-
}
|
|
729
|
-
// ---------------------------------------------------------------------------
|
|
730
|
-
// Adaptive TTL promotion helpers
|
|
731
|
-
// ---------------------------------------------------------------------------
|
|
732
|
-
/**
|
|
733
|
-
* Identify the logical zone for a message breakpoint position.
|
|
734
|
-
* Three zones based on placeCacheBreakpoints() placement logic:
|
|
735
|
-
* - "semi-stable": Near compaction summary or first-third boundary (breakpoint #2)
|
|
736
|
-
* - "mid": Midpoint between semi-stable and recent (breakpoint #3.5)
|
|
737
|
-
* - "recent": Second-to-last user message (breakpoint #3)
|
|
738
|
-
*
|
|
739
|
-
* Uses relative position within the message array since absolute indices drift.
|
|
740
|
-
* Zone boundaries: first 40% = semi-stable, last 30% = recent, middle = mid.
|
|
741
|
-
*/
|
|
742
|
-
export function identifyBreakpointZone(breakpointIdx, messageCount) {
|
|
743
|
-
if (messageCount <= 0)
|
|
744
|
-
return "recent";
|
|
745
|
-
const ratio = breakpointIdx / messageCount;
|
|
746
|
-
if (ratio <= 0.4)
|
|
747
|
-
return "semi-stable";
|
|
748
|
-
if (ratio >= 0.7)
|
|
749
|
-
return "recent";
|
|
750
|
-
return "mid";
|
|
751
|
-
}
|
|
752
|
-
/**
|
|
753
|
-
* Hash message content at and around a breakpoint position for stability tracking.
|
|
754
|
-
* Hashes the message at the breakpoint index plus 1 message before it (context window).
|
|
755
|
-
* Strips cache_control from content blocks to avoid circular dependency where
|
|
756
|
-
* the hash changes when TTL changes.
|
|
757
|
-
*/
|
|
758
|
-
export function hashBreakpointContent(messages, breakpointIdx) {
|
|
759
|
-
let combined = "";
|
|
760
|
-
const start = Math.max(0, breakpointIdx - 1);
|
|
761
|
-
for (let i = start; i <= breakpointIdx && i < messages.length; i++) {
|
|
762
|
-
const content = messages[i].content;
|
|
763
|
-
if (Array.isArray(content)) {
|
|
764
|
-
for (const block of content) {
|
|
765
|
-
// Strip cache_control to avoid circular hash dependency
|
|
766
|
-
const { cache_control: _cc, ...rest } = block;
|
|
767
|
-
combined += JSON.stringify(rest);
|
|
768
|
-
}
|
|
769
|
-
}
|
|
770
|
-
else if (typeof content === "string") {
|
|
771
|
-
combined += content;
|
|
772
|
-
}
|
|
773
|
-
}
|
|
774
|
-
return computeHash(combined);
|
|
775
|
-
}
|
|
776
|
-
/**
|
|
777
|
-
* Walk placed message breakpoints, record zone hashes, and promote
|
|
778
|
-
* stable zones from 5m to 1h TTL. Only promotes when resolvedRetention is "long"
|
|
779
|
-
* (monotonicity constraint: tools >= system >= messages).
|
|
780
|
-
*
|
|
781
|
-
* Must be called AFTER placeCacheBreakpoints() and BEFORE onPayloadForCacheDetection().
|
|
782
|
-
*
|
|
783
|
-
* @param messages - The messages array with placed breakpoints
|
|
784
|
-
* @param tracker - BlockStabilityTracker for per-session zone tracking
|
|
785
|
-
* @param sessionKey - The session key for per-session state
|
|
786
|
-
* @param threshold - Number of consecutive unchanged calls before promotion
|
|
787
|
-
* @param resolvedRetention - Current cache retention level (must be "long" for promotion)
|
|
788
|
-
* @returns Number of breakpoints promoted from 5m to 1h TTL
|
|
789
|
-
*/
|
|
790
|
-
export function maybePromoteBreakpoints(messages, tracker, sessionKey, threshold, resolvedRetention) {
|
|
791
|
-
// Monotonicity guard: cannot promote to 1h if tools/system use 5m
|
|
792
|
-
if (resolvedRetention !== "long")
|
|
793
|
-
return 0;
|
|
794
|
-
let promoted = 0;
|
|
795
|
-
for (let i = 0; i < messages.length; i++) {
|
|
796
|
-
const msg = messages[i];
|
|
797
|
-
const content = msg.content;
|
|
798
|
-
if (!Array.isArray(content))
|
|
799
|
-
continue;
|
|
800
|
-
for (const block of content) {
|
|
801
|
-
// Find message-level breakpoints (placed by placeCacheBreakpoints)
|
|
802
|
-
const cc = block.cache_control;
|
|
803
|
-
if (!cc || cc.type !== "ephemeral")
|
|
804
|
-
continue;
|
|
805
|
-
// Skip breakpoints that already have 1h TTL (tool/system breakpoints)
|
|
806
|
-
if (cc.ttl === "1h")
|
|
807
|
-
continue;
|
|
808
|
-
// This is a message breakpoint with 5m TTL -- check stability
|
|
809
|
-
const zone = identifyBreakpointZone(i, messages.length);
|
|
810
|
-
const contentHash = hashBreakpointContent(messages, i);
|
|
811
|
-
tracker.recordZoneHash(sessionKey, zone, contentHash);
|
|
812
|
-
if (tracker.isStable(sessionKey, zone, threshold)) {
|
|
813
|
-
// Promote to 1h TTL
|
|
814
|
-
block.cache_control = { type: "ephemeral", ttl: "1h" };
|
|
815
|
-
promoted++;
|
|
816
|
-
}
|
|
817
|
-
}
|
|
818
|
-
}
|
|
819
|
-
return promoted;
|
|
820
|
-
}
|
|
821
|
-
// ---------------------------------------------------------------------------
|
|
822
|
-
// Main factory
|
|
823
|
-
// ---------------------------------------------------------------------------
|
|
824
|
-
// ---------------------------------------------------------------------------
|
|
825
|
-
// 49-01: Per-block token estimator for TTL split estimation
|
|
826
|
-
// ---------------------------------------------------------------------------
|
|
827
|
-
/**
|
|
828
|
-
* Estimate the token count for a single content block.
|
|
829
|
-
*
|
|
830
|
-
* Extracts the `text` field when present (text blocks) and divides by
|
|
831
|
-
* CHARS_PER_TOKEN_RATIO. For non-text blocks (images, tool_use JSON) falls
|
|
832
|
-
* back to JSON.stringify length / CHARS_PER_TOKEN_RATIO. The 3.5 ratio
|
|
833
|
-
* better matches Anthropic's tokenizer than the previously used 4.0 ratio.
|
|
834
|
-
*
|
|
835
|
-
* @param block - A content block from the API payload
|
|
836
|
-
* @returns Estimated token count (always >= 1)
|
|
837
|
-
*/
|
|
838
|
-
export function estimateBlockTokens(block) {
|
|
839
|
-
const text = typeof block.text === "string" ? block.text : JSON.stringify(block);
|
|
840
|
-
return Math.ceil(text.length / CHARS_PER_TOKEN_RATIO);
|
|
841
|
-
}
|
|
842
|
-
/**
|
|
843
|
-
* Create a stream wrapper that mutates the outgoing request body via the
|
|
844
|
-
* onPayload hook. Consolidates four concerns:
|
|
845
|
-
*
|
|
846
|
-
* 1. **Cache breakpoints** (Anthropic-family): injects cache_control markers
|
|
847
|
-
* at strategic positions in the message array.
|
|
848
|
-
* 2. **1M beta header** (direct Anthropic only): appends the context-1m beta
|
|
849
|
-
* header for 1M context window models.
|
|
850
|
-
* 3. **service_tier** (Responses API + fastMode): injects service_tier: "auto".
|
|
851
|
-
* 4. **store** (Responses API + storeCompletions): injects store: true.
|
|
852
|
-
*
|
|
853
|
-
* The wrapper only activates when the model matches at least one concern;
|
|
854
|
-
* for non-Anthropic non-Responses providers, it passes through unchanged.
|
|
855
|
-
*
|
|
856
|
-
* @param config - Request body injector configuration
|
|
857
|
-
* @param logger - Logger for debug output
|
|
858
|
-
* @returns A named StreamFnWrapper ("requestBodyInjector")
|
|
859
|
-
*/
|
|
860
|
-
export function createRequestBodyInjector(config, logger) {
|
|
861
|
-
return function requestBodyInjector(next) {
|
|
862
|
-
return (model, context, options) => {
|
|
863
|
-
const needsCacheBreakpoints = isAnthropicFamily(model.provider);
|
|
864
|
-
const needsResponsesApiInjection = isResponsesApiProvider(model);
|
|
865
|
-
if (!needsCacheBreakpoints && !needsResponsesApiInjection) {
|
|
866
|
-
return next(model, context, options);
|
|
867
|
-
}
|
|
868
|
-
const minTokens = config.getMinTokensOverride?.() ?? getMinCacheableTokens(model.id);
|
|
869
|
-
// Concern 2: 1M beta header (direct Anthropic only -- NOT Bedrock/Vertex)
|
|
870
|
-
// Must be injected as HTTP headers via options.headers, NOT in the request body.
|
|
871
|
-
// The pi-ai SDK passes options.headers to createClient() for HTTP transport,
|
|
872
|
-
// while onPayload mutates the JSON body -- putting headers there causes
|
|
873
|
-
// Anthropic API to reject with "headers: Extra inputs are not permitted".
|
|
874
|
-
let mergedHeaders;
|
|
875
|
-
if (model.provider === "anthropic") {
|
|
876
|
-
const existingHeaders = options?.headers;
|
|
877
|
-
const headers = { ...(existingHeaders ?? {}) };
|
|
878
|
-
const existingBetas = parseHeaderList(headers["anthropic-beta"]);
|
|
879
|
-
if (!existingBetas.includes(CONTEXT_1M_BETA)) {
|
|
880
|
-
existingBetas.push(CONTEXT_1M_BETA);
|
|
881
|
-
headers["anthropic-beta"] = existingBetas.join(", ");
|
|
882
|
-
mergedHeaders = headers;
|
|
883
|
-
}
|
|
884
|
-
// SESS-LATCH: Latch beta header on first use
|
|
885
|
-
const betaLatch = config.getBetaHeaderLatch?.();
|
|
886
|
-
if (betaLatch) {
|
|
887
|
-
if (mergedHeaders) {
|
|
888
|
-
const betaValue = mergedHeaders["anthropic-beta"];
|
|
889
|
-
if (betaValue) {
|
|
890
|
-
mergedHeaders["anthropic-beta"] = betaLatch.setOnce(betaValue);
|
|
891
|
-
}
|
|
892
|
-
}
|
|
893
|
-
else {
|
|
894
|
-
// No new headers to merge but latch has a value -- use latched value
|
|
895
|
-
const latched = betaLatch.get();
|
|
896
|
-
if (latched) {
|
|
897
|
-
mergedHeaders = { ...(existingHeaders ?? {}), "anthropic-beta": latched };
|
|
898
|
-
}
|
|
899
|
-
}
|
|
900
|
-
}
|
|
901
|
-
// Sticky-on beta header latches -- accumulate individual beta
|
|
902
|
-
// values across calls. Unlike SESS-LATCH (set-once for entire string), this
|
|
903
|
-
// tracks individual values and ensures once-seen-always-included semantics.
|
|
904
|
-
if (config.sessionKey) {
|
|
905
|
-
// Ensure mergedHeaders exists (even if CONTEXT_1M_BETA was already present)
|
|
906
|
-
if (!mergedHeaders) {
|
|
907
|
-
mergedHeaders = { ...(existingHeaders ?? {}) };
|
|
908
|
-
}
|
|
909
|
-
const currentBetas = parseHeaderList(mergedHeaders["anthropic-beta"]);
|
|
910
|
-
let latched = sessionBetaHeaderLatches.get(config.sessionKey);
|
|
911
|
-
if (!latched) {
|
|
912
|
-
latched = createAccumulativeLatch();
|
|
913
|
-
sessionBetaHeaderLatches.set(config.sessionKey, latched);
|
|
914
|
-
}
|
|
915
|
-
// Latch all current beta values (sticky-on: once seen, always included)
|
|
916
|
-
for (const beta of currentBetas) {
|
|
917
|
-
latched.add(beta);
|
|
918
|
-
}
|
|
919
|
-
// Merge any previously-latched values not in current set
|
|
920
|
-
let changed = false;
|
|
921
|
-
for (const beta of latched.getAll()) {
|
|
922
|
-
if (!currentBetas.includes(beta)) {
|
|
923
|
-
currentBetas.push(beta);
|
|
924
|
-
changed = true;
|
|
925
|
-
}
|
|
926
|
-
}
|
|
927
|
-
if (changed) {
|
|
928
|
-
mergedHeaders["anthropic-beta"] = currentBetas.join(", ");
|
|
929
|
-
}
|
|
930
|
-
}
|
|
931
|
-
}
|
|
932
|
-
// Chain onPayload: preserve any existing onPayload callback
|
|
933
|
-
const existingOnPayload = options?.onPayload;
|
|
934
|
-
const enhancedOptions = {
|
|
935
|
-
...options,
|
|
936
|
-
...(mergedHeaders ? { headers: mergedHeaders } : {}),
|
|
937
|
-
onPayload: async (payload, payloadModel) => {
|
|
938
|
-
// Let existing onPayload run first
|
|
939
|
-
const transformed = existingOnPayload
|
|
940
|
-
? await existingOnPayload(payload, payloadModel)
|
|
941
|
-
: undefined;
|
|
942
|
-
const params = (transformed ?? payload);
|
|
943
|
-
// Clone mutable sub-structures before any mutation.
|
|
944
|
-
// Prevents contaminating reused content in secondary queries (title generation, compaction)
|
|
945
|
-
// that may share the original params reference. The SDK builds params fresh each call
|
|
946
|
-
// via buildParams(), but we must not mutate SDK-owned objects to prevent stale marker
|
|
947
|
-
// accumulation if the SDK ever caches or reuses params across calls.
|
|
948
|
-
const result = { ...params };
|
|
949
|
-
if (needsCacheBreakpoints) {
|
|
950
|
-
if (Array.isArray(params.system)) {
|
|
951
|
-
result.system = structuredClone(params.system);
|
|
952
|
-
}
|
|
953
|
-
if (Array.isArray(params.tools)) {
|
|
954
|
-
result.tools = structuredClone(params.tools);
|
|
955
|
-
}
|
|
956
|
-
if (Array.isArray(params.messages)) {
|
|
957
|
-
result.messages = structuredClone(params.messages);
|
|
958
|
-
}
|
|
959
|
-
}
|
|
960
|
-
// Reorder content blocks for stable prefix (before any cache marker placement)
|
|
961
|
-
if (needsCacheBreakpoints && Array.isArray(result.messages)) {
|
|
962
|
-
reorderContentForStablePrefix(result.messages);
|
|
963
|
-
}
|
|
964
|
-
// 2.1: TTL expiry guard for skipCacheWrite -- when the parent's cache write
|
|
965
|
-
// timestamp indicates the shared prefix cache has likely expired (>80% of TTL
|
|
966
|
-
// elapsed), disable skipCacheWrite so the sub-agent creates its own cache entry
|
|
967
|
-
// instead of referencing a stale one. Prevents 100% cache misses on round-2
|
|
968
|
-
// sub-agents where the 5-minute TTL expired between rounds.
|
|
969
|
-
// Computed early so the W2 guard below can defer to the sub-agent bypass
|
|
970
|
-
// path (line ~1854) for SDK-placed tool markers.
|
|
971
|
-
let effectiveSkipCacheWrite = config.skipCacheWrite ?? false;
|
|
972
|
-
if (effectiveSkipCacheWrite && config.cacheWriteTimestamp != null) {
|
|
973
|
-
const TTL_MAP = { short: 300_000, long: 3_600_000 };
|
|
974
|
-
const ttlMs = TTL_MAP[config.parentCacheRetention ?? "short"] ?? 300_000;
|
|
975
|
-
const SAFETY_MARGIN = 0.8;
|
|
976
|
-
const elapsed = Date.now() - config.cacheWriteTimestamp;
|
|
977
|
-
if (elapsed > ttlMs * SAFETY_MARGIN) {
|
|
978
|
-
effectiveSkipCacheWrite = false;
|
|
979
|
-
logger.debug({ elapsed, ttlMs, safetyMargin: SAFETY_MARGIN, sessionKey: config.sessionKey }, "TTL likely expired, disabling skipCacheWrite");
|
|
980
|
-
}
|
|
981
|
-
}
|
|
982
|
-
// pi-ai 0.67.4+ auto-places cache_control on the last tool in
|
|
983
|
-
// convertTools(). W2 keeps tools at zero breakpoints (cached
|
|
984
|
-
// implicitly via the cumulative hash at the system breakpoint), so
|
|
985
|
-
// strip the auto-placed marker before our budget + zone strategy runs.
|
|
986
|
-
//
|
|
987
|
-
// Skipped for effectiveSkipCacheWrite=true (sub-agent path): single-turn
|
|
988
|
-
// sub-agents need SDK-placed markers intact to match the parent's cached
|
|
989
|
-
// prefix; multi-turn sub-agents strip+re-place at line ~1874 anyway.
|
|
990
|
-
if (needsCacheBreakpoints && !effectiveSkipCacheWrite && Array.isArray(result.tools)) {
|
|
991
|
-
for (const tool of result.tools) {
|
|
992
|
-
if (tool.cache_control)
|
|
993
|
-
delete tool.cache_control;
|
|
994
|
-
}
|
|
995
|
-
}
|
|
996
|
-
// Sort tools for cache-stable prefix: builtins first, MCP alphabetically
|
|
997
|
-
if (needsCacheBreakpoints && Array.isArray(result.tools) && result.tools.length > 0) {
|
|
998
|
-
result.tools = sortToolsForCacheStability(result.tools);
|
|
999
|
-
}
|
|
1000
|
-
// Rendered tool cache -- ensures byte-identical
|
|
1001
|
-
// tool JSON across turns when composition is unchanged. On aggregate cache miss,
|
|
1002
|
-
// per-tool content-addressed memoization preserves unchanged individual tools.
|
|
1003
|
-
if (config.sessionKey && needsCacheBreakpoints && Array.isArray(result.tools)) {
|
|
1004
|
-
// When ALL MCP tools use defer_loading, tool composition is guaranteed stable.
|
|
1005
|
-
// Skip per-tool hash recomputation since no MCP tool connect/disconnect can change schemas.
|
|
1006
|
-
// Only activate after defer_loading latch is set AND tool cache exists (not first turn).
|
|
1007
|
-
const allDeferredToolHashSkip = (() => {
|
|
1008
|
-
if (!config.getDeferredToolNames || !config.getTotalMcpToolCount)
|
|
1009
|
-
return false;
|
|
1010
|
-
const deferredNames = config.getDeferredToolNames();
|
|
1011
|
-
const totalMcpTools = config.getTotalMcpToolCount();
|
|
1012
|
-
if (totalMcpTools === 0 || deferredNames.size === 0)
|
|
1013
|
-
return false;
|
|
1014
|
-
// All MCP tools deferred AND we have a cached entry from a prior turn
|
|
1015
|
-
return deferredNames.size >= totalMcpTools && sessionRenderedToolCache.has(config.sessionKey);
|
|
1016
|
-
})();
|
|
1017
|
-
if (allDeferredToolHashSkip) {
|
|
1018
|
-
logger.debug({ sessionKey: config.sessionKey }, "All tools deferred, skipping per-tool hash recomputation");
|
|
1019
|
-
// Use cached tools from prior turn (already in sessionRenderedToolCache)
|
|
1020
|
-
const cached = sessionRenderedToolCache.get(config.sessionKey);
|
|
1021
|
-
if (cached) {
|
|
1022
|
-
result.tools = structuredClone(cached.tools);
|
|
1023
|
-
}
|
|
1024
|
-
}
|
|
1025
|
-
else {
|
|
1026
|
-
const tools = result.tools;
|
|
1027
|
-
const renderedHash = computeRenderedToolsHash(tools);
|
|
1028
|
-
// Include feature flag hash so config changes that affect tool rendering
|
|
1029
|
-
// invalidate the cached tool array.
|
|
1030
|
-
const featureFlagHash = config.featureFlagHash ?? "default";
|
|
1031
|
-
const cached = sessionRenderedToolCache.get(config.sessionKey);
|
|
1032
|
-
if (cached && cached.hash === renderedHash && cached.featureFlagHash === featureFlagHash) {
|
|
1033
|
-
// Aggregate cache hit -- replace with cached copy for byte-identical output
|
|
1034
|
-
result.tools = structuredClone(cached.tools);
|
|
1035
|
-
}
|
|
1036
|
-
else {
|
|
1037
|
-
// Aggregate hash changed -- iterate per-tool cache.
|
|
1038
|
-
// Unchanged individual tools keep byte-identical references while
|
|
1039
|
-
// changed ones get new snapshots via getOrCacheRenderedTool().
|
|
1040
|
-
const perToolCached = tools.map(t => getOrCacheRenderedTool(config.sessionKey, t));
|
|
1041
|
-
// Store rebuilt array as new aggregate snapshot
|
|
1042
|
-
result.tools = perToolCached;
|
|
1043
|
-
sessionRenderedToolCache.set(config.sessionKey, {
|
|
1044
|
-
hash: renderedHash,
|
|
1045
|
-
featureFlagHash,
|
|
1046
|
-
tools: structuredClone(perToolCached), // Snapshot before cache_control
|
|
1047
|
-
});
|
|
1048
|
-
}
|
|
1049
|
-
}
|
|
1050
|
-
}
|
|
1051
|
-
// Time-based microcompact -- clear stale tool results when cache is cold.
|
|
1052
|
-
// Runs BEFORE breakpoint placement because clearing results changes message sizes.
|
|
1053
|
-
// Fence-aware — skip clearing messages at/below the previous turn's
|
|
1054
|
-
// cache fence to preserve prefix stability after cache breaks.
|
|
1055
|
-
if (needsCacheBreakpoints && config.getElapsedSinceLastResponse && config.sessionKey) {
|
|
1056
|
-
const elapsed = config.getElapsedSinceLastResponse();
|
|
1057
|
-
if (elapsed !== undefined) {
|
|
1058
|
-
// Determine TTL from current retention (pre-latch, since we're checking if cache is cold)
|
|
1059
|
-
const baseRetentionForTtl = config.getCacheRetention() ?? "long";
|
|
1060
|
-
const ttlMs = baseRetentionForTtl === "long" ? 3_600_000 : 300_000;
|
|
1061
|
-
if (elapsed > ttlMs && Array.isArray(result.messages)) {
|
|
1062
|
-
const keepWindow = config.observationKeepWindow ?? 25;
|
|
1063
|
-
const microcompactFence = config.getCacheFenceIndex?.() ?? -1;
|
|
1064
|
-
const cleared = clearStaleToolResults(result.messages, keepWindow, microcompactFence);
|
|
1065
|
-
// Also clear thinking blocks from old assistant messages
|
|
1066
|
-
const thinkingCleared = clearStaleThinkingBlocks(result.messages, keepWindow, microcompactFence);
|
|
1067
|
-
if (cleared > 0 || thinkingCleared > 0) {
|
|
1068
|
-
config.onContentModification?.();
|
|
1069
|
-
if (cleared > 0)
|
|
1070
|
-
config.onAdaptiveRetentionReset?.();
|
|
1071
|
-
logger.debug({ cleared, thinkingCleared, elapsedMs: elapsed, ttlMs, keepWindow, sessionKey: config.sessionKey }, "Time-based microcompact cleared stale content");
|
|
1072
|
-
}
|
|
1073
|
-
}
|
|
1074
|
-
}
|
|
1075
|
-
}
|
|
1076
|
-
// Token-ceiling microcompact -- clear stale content when context grows too large.
|
|
1077
|
-
// Runs independently of TTL: a session with rapid back-and-forth can accumulate massive
|
|
1078
|
-
// context within a single TTL window. Unlike TTL trigger, does NOT reset adaptive retention
|
|
1079
|
-
// because the cache may still be warm.
|
|
1080
|
-
// Fence-aware — respects cache fence.
|
|
1081
|
-
if (needsCacheBreakpoints && config.microcompactTokenCeiling && config.sessionKey) {
|
|
1082
|
-
const msgs = result.messages;
|
|
1083
|
-
if (Array.isArray(msgs)) {
|
|
1084
|
-
const estimatedTokens = estimateContextChars(msgs) / CHARS_PER_TOKEN_RATIO;
|
|
1085
|
-
if (estimatedTokens > config.microcompactTokenCeiling) {
|
|
1086
|
-
const keepWindow = config.observationKeepWindow ?? 25;
|
|
1087
|
-
const ceilingFence = config.getCacheFenceIndex?.() ?? -1;
|
|
1088
|
-
const cleared = clearStaleToolResults(msgs, keepWindow, ceilingFence);
|
|
1089
|
-
const thinkingCleared = clearStaleThinkingBlocks(msgs, keepWindow, ceilingFence);
|
|
1090
|
-
if (cleared > 0 || thinkingCleared > 0) {
|
|
1091
|
-
config.onContentModification?.();
|
|
1092
|
-
// NOTE: Do NOT call onAdaptiveRetentionReset -- cache may still be warm
|
|
1093
|
-
logger.debug({ cleared, thinkingCleared, estimatedTokens: Math.round(estimatedTokens), ceiling: config.microcompactTokenCeiling, sessionKey: config.sessionKey }, "Token-ceiling microcompact cleared stale content");
|
|
1094
|
-
}
|
|
1095
|
-
}
|
|
1096
|
-
}
|
|
1097
|
-
}
|
|
1098
|
-
// Prefix stability diagnostic — detect when microcompaction
|
|
1099
|
-
// changes the cache-fenced prefix between turns (indicating permanent cache collapse).
|
|
1100
|
-
// Fence-index-aware: growing fence (normal conversation growth) is benign unless
|
|
1101
|
-
// the old prefix content was mutated. Fence shrink (compaction) resets the counter.
|
|
1102
|
-
// Uses getCacheFenceIndex() to hash only the cached region; skips detection
|
|
1103
|
-
// when no fence is set yet (early bootstrap / non-Anthropic provider).
|
|
1104
|
-
if (needsCacheBreakpoints && config.sessionKey && Array.isArray(result.messages)) {
|
|
1105
|
-
const diagFenceIdx = config.getCacheFenceIndex?.() ?? -1;
|
|
1106
|
-
if (diagFenceIdx >= 0) {
|
|
1107
|
-
const msgs = result.messages;
|
|
1108
|
-
/** Hash role + first 200 chars of content for messages up to endIdx (inclusive). */
|
|
1109
|
-
const hashMessageSlice = (messages, endIdx) => {
|
|
1110
|
-
const slice = messages.slice(0, endIdx + 1);
|
|
1111
|
-
return computeHash(slice.map(m => {
|
|
1112
|
-
const c = m.content;
|
|
1113
|
-
const text = typeof c === "string" ? c.slice(0, 200) :
|
|
1114
|
-
Array.isArray(c) ? c.map(b => String(b.text ?? b.type ?? "")).join("").slice(0, 200) : "";
|
|
1115
|
-
return `${m.role}:${text}`;
|
|
1116
|
-
}));
|
|
1117
|
-
};
|
|
1118
|
-
const prefixHash = hashMessageSlice(msgs, diagFenceIdx);
|
|
1119
|
-
const prev = sessionPrefixStability.get(config.sessionKey);
|
|
1120
|
-
if (!prev) {
|
|
1121
|
-
// First observation — store baseline, no comparison needed
|
|
1122
|
-
sessionPrefixStability.set(config.sessionKey, { hash: prefixHash, fenceIdx: diagFenceIdx, consecutiveChanges: 0 });
|
|
1123
|
-
}
|
|
1124
|
-
else if (diagFenceIdx < prev.fenceIdx) {
|
|
1125
|
-
// Case C: Fence shrank (compaction reset) — reset counter entirely
|
|
1126
|
-
sessionPrefixStability.set(config.sessionKey, { hash: prefixHash, fenceIdx: diagFenceIdx, consecutiveChanges: 0 });
|
|
1127
|
-
}
|
|
1128
|
-
else if (diagFenceIdx > prev.fenceIdx) {
|
|
1129
|
-
// Case A: Fence grew (normal conversation growth).
|
|
1130
|
-
// Re-hash using the old fence boundary to check if old prefix content is intact.
|
|
1131
|
-
const oldRangeHash = hashMessageSlice(msgs, prev.fenceIdx);
|
|
1132
|
-
if (oldRangeHash === prev.hash) {
|
|
1133
|
-
// Old prefix content unchanged — benign growth, reset counter
|
|
1134
|
-
sessionPrefixStability.set(config.sessionKey, { hash: prefixHash, fenceIdx: diagFenceIdx, consecutiveChanges: 0 });
|
|
1135
|
-
}
|
|
1136
|
-
else {
|
|
1137
|
-
// Old prefix content was mutated — genuine instability
|
|
1138
|
-
const changes = prev.consecutiveChanges + 1;
|
|
1139
|
-
sessionPrefixStability.set(config.sessionKey, { hash: prefixHash, fenceIdx: diagFenceIdx, consecutiveChanges: changes });
|
|
1140
|
-
if (changes >= 3) {
|
|
1141
|
-
logger.warn({
|
|
1142
|
-
sessionKey: config.sessionKey,
|
|
1143
|
-
consecutiveChanges: changes,
|
|
1144
|
-
hint: "Cache prefix changing every turn — microcompaction or content modification destabilizing the prefix. Cache writes are wasted.",
|
|
1145
|
-
errorKind: "performance",
|
|
1146
|
-
}, "Unstable prefix detected");
|
|
1147
|
-
}
|
|
1148
|
-
}
|
|
1149
|
-
}
|
|
1150
|
-
else {
|
|
1151
|
-
// Case B: Same fence position — direct hash comparison
|
|
1152
|
-
if (prev.hash !== prefixHash) {
|
|
1153
|
-
const changes = prev.consecutiveChanges + 1;
|
|
1154
|
-
sessionPrefixStability.set(config.sessionKey, { hash: prefixHash, fenceIdx: diagFenceIdx, consecutiveChanges: changes });
|
|
1155
|
-
if (changes >= 3) {
|
|
1156
|
-
logger.warn({
|
|
1157
|
-
sessionKey: config.sessionKey,
|
|
1158
|
-
consecutiveChanges: changes,
|
|
1159
|
-
hint: "Cache prefix changing every turn — microcompaction or content modification destabilizing the prefix. Cache writes are wasted.",
|
|
1160
|
-
errorKind: "performance",
|
|
1161
|
-
}, "Unstable prefix detected");
|
|
1162
|
-
}
|
|
1163
|
-
}
|
|
1164
|
-
else {
|
|
1165
|
-
// Prefix stable — reset counter
|
|
1166
|
-
sessionPrefixStability.set(config.sessionKey, { hash: prefixHash, fenceIdx: diagFenceIdx, consecutiveChanges: 0 });
|
|
1167
|
-
}
|
|
1168
|
-
}
|
|
1169
|
-
}
|
|
1170
|
-
}
|
|
1171
|
-
// Hoist resolvedRetention for kill switch access after needsCacheBreakpoints block
|
|
1172
|
-
let resolvedRetention;
|
|
1173
|
-
// Concern 1: Cache breakpoints (Anthropic-family)
|
|
1174
|
-
if (needsCacheBreakpoints) {
|
|
1175
|
-
// Resolve per-model cache retention override before latching
|
|
1176
|
-
const baseRetention = config.getCacheRetention() ?? "long";
|
|
1177
|
-
const modelId = config.getModelId?.() ?? model.id;
|
|
1178
|
-
const effectiveRetention = resolveCacheRetention(modelId, baseRetention, config.getCacheRetentionOverrides?.());
|
|
1179
|
-
// Latch retention on first resolution
|
|
1180
|
-
const rawRetention = effectiveRetention;
|
|
1181
|
-
const retentionLatch = config.getRetentionLatch?.();
|
|
1182
|
-
resolvedRetention = retentionLatch
|
|
1183
|
-
? retentionLatch.setOnce(rawRetention)
|
|
1184
|
-
: rawRetention;
|
|
1185
|
-
// Replace single system block with multi-block for independent caching.
|
|
1186
|
-
// Must run AFTER structuredClone (operates on cloned system) and BEFORE the
|
|
1187
|
-
// TTL upgrade (so all new blocks get upgraded). The SDK-placed single-block
|
|
1188
|
-
// cache_control is discarded -- we inject cache_control on all blocks explicitly.
|
|
1189
|
-
const promptBlocks = config.getSystemPromptBlocks?.();
|
|
1190
|
-
if (promptBlocks && Array.isArray(result.system)) {
|
|
1191
|
-
const blocks = [
|
|
1192
|
-
{ type: "text", text: promptBlocks.staticPrefix + SYSTEM_PROMPT_DYNAMIC_BOUNDARY },
|
|
1193
|
-
];
|
|
1194
|
-
// Attribution block only when non-empty (empty in "none" mode)
|
|
1195
|
-
if (promptBlocks.attribution) {
|
|
1196
|
-
blocks.push({ type: "text", text: promptBlocks.attribution });
|
|
1197
|
-
}
|
|
1198
|
-
blocks.push({ type: "text", text: promptBlocks.semiStableBody });
|
|
1199
|
-
result.system = blocks;
|
|
1200
|
-
// Only last system block gets cache_control -- cumulative hash covers
|
|
1201
|
-
// all prior blocks. Frees 2 breakpoint slots for message breakpoints.
|
|
1202
|
-
const sysBlocks = result.system;
|
|
1203
|
-
for (const block of sysBlocks) {
|
|
1204
|
-
delete block.cache_control;
|
|
1205
|
-
}
|
|
1206
|
-
sysBlocks[sysBlocks.length - 1].cache_control = resolvedRetention === "long"
|
|
1207
|
-
? { type: "ephemeral", ttl: "1h" }
|
|
1208
|
-
: { type: "ephemeral" };
|
|
1209
|
-
logger.debug({ blockCount: blocks.length, retention: resolvedRetention, modelId: model.id }, "Multi-block system prompt injected");
|
|
1210
|
-
}
|
|
1211
|
-
// Log first system prompt block hash for prefix-matching debug.
|
|
1212
|
-
// Runs after multi-block injection so the hash reflects the final static prefix.
|
|
1213
|
-
if (Array.isArray(result.system)) {
|
|
1214
|
-
const sysBlocks = result.system;
|
|
1215
|
-
if (sysBlocks.length > 0 && typeof sysBlocks[0]?.text === "string") {
|
|
1216
|
-
const text = sysBlocks[0].text;
|
|
1217
|
-
logger.debug({
|
|
1218
|
-
firstBlockHash: djb2(text),
|
|
1219
|
-
firstBlockSnippet: text.slice(0, 80).replace(/\n/g, "\\n"),
|
|
1220
|
-
blockCount: sysBlocks.length,
|
|
1221
|
-
modelId: model.id,
|
|
1222
|
-
}, "System prompt first-block hash");
|
|
1223
|
-
}
|
|
1224
|
-
}
|
|
1225
|
-
// Upgrade system prompt TTL to satisfy monotonicity constraint.
|
|
1226
|
-
// The SDK always sets system blocks to { type: "ephemeral" } (5m) because
|
|
1227
|
-
// configResolver passes getMessageRetention() = "short" for the SDK's
|
|
1228
|
-
// cacheRetention option (we can't give the SDK different values for system
|
|
1229
|
-
// vs last-user-message). But after adaptive escalation, the tool breakpoint
|
|
1230
|
-
// uses ttl: "1h". Without this upgrade, system(5m) -> tools(1h) violates
|
|
1231
|
-
// Anthropic's non-increasing TTL requirement, causing the API to silently
|
|
1232
|
-
// downgrade tools to 5m.
|
|
1233
|
-
if (resolvedRetention === "long" && Array.isArray(result.system)) {
|
|
1234
|
-
for (const block of result.system) {
|
|
1235
|
-
if (block.cache_control) {
|
|
1236
|
-
block.cache_control = { type: "ephemeral", ttl: "1h" };
|
|
1237
|
-
}
|
|
1238
|
-
}
|
|
1239
|
-
}
|
|
1240
|
-
// Count breakpoints on `result` (post-clone, post-multi-block-injection)
|
|
1241
|
-
// not `params` (pre-clone). Multi-block injection may have added cache_control to
|
|
1242
|
-
// 2 system blocks that didn't exist in the original params.
|
|
1243
|
-
const existingCount = countCacheBreakpoints(result);
|
|
1244
|
-
let slotsAvailable = 4 - existingCount;
|
|
1245
|
-
// Breakpoint budget audit -- 1 per API call.
|
|
1246
|
-
{
|
|
1247
|
-
let systemBpCount = 0;
|
|
1248
|
-
let toolBpCount = 0;
|
|
1249
|
-
if (Array.isArray(result.system)) {
|
|
1250
|
-
for (const block of result.system) {
|
|
1251
|
-
if (block.cache_control)
|
|
1252
|
-
systemBpCount++;
|
|
1253
|
-
}
|
|
1254
|
-
}
|
|
1255
|
-
if (Array.isArray(result.tools)) {
|
|
1256
|
-
for (const tool of result.tools) {
|
|
1257
|
-
if (tool.cache_control)
|
|
1258
|
-
toolBpCount++;
|
|
1259
|
-
}
|
|
1260
|
-
}
|
|
1261
|
-
logger.info({
|
|
1262
|
-
existingCount,
|
|
1263
|
-
slotsAvailable,
|
|
1264
|
-
systemBreakpoints: systemBpCount,
|
|
1265
|
-
toolBreakpoints: toolBpCount,
|
|
1266
|
-
modelId: model.id,
|
|
1267
|
-
}, "Breakpoint budget audit (pre-message-placement)");
|
|
1268
|
-
}
|
|
1269
|
-
// W2: Tool breakpoint removed -- tools cached implicitly via cumulative hash
|
|
1270
|
-
// at system breakpoint position (zero tool breakpoints).
|
|
1271
|
-
// DEFER-TOOL: Inject defer_loading on deferred tools for Anthropic non-Haiku models.
|
|
1272
|
-
// Runs after tool cache breakpoints so deferred marking doesn't pollute breakpoint logic.
|
|
1273
|
-
if (config.getDeferredToolNames && supportsToolSearch(model.id)) {
|
|
1274
|
-
const deferredNames = config.getDeferredToolNames();
|
|
1275
|
-
// SESS-LATCH: Latch defer_loading activation
|
|
1276
|
-
const deferLatch = config.getDeferLoadingLatch?.();
|
|
1277
|
-
const shouldDeferLoad = deferLatch
|
|
1278
|
-
? deferLatch.setOnce(deferredNames.size > 0)
|
|
1279
|
-
: deferredNames.size > 0;
|
|
1280
|
-
if (shouldDeferLoad && Array.isArray(result.tools)) {
|
|
1281
|
-
const tools = result.tools;
|
|
1282
|
-
let deferCount = 0;
|
|
1283
|
-
for (const tool of tools) {
|
|
1284
|
-
if (deferredNames.has(tool.name)) {
|
|
1285
|
-
tool.defer_loading = true;
|
|
1286
|
-
deferCount++;
|
|
1287
|
-
}
|
|
1288
|
-
}
|
|
1289
|
-
// Only switch to server-side tool_search when tools were actually
|
|
1290
|
-
// marked defer_loading in the payload. When deferred tools are
|
|
1291
|
-
// excluded upstream (tool-deferral.ts client-side exclusion),
|
|
1292
|
-
// deferCount is 0 and the payload lacks deferred definitions —
|
|
1293
|
-
// injecting tool_search_tool without any deferred tools crashes
|
|
1294
|
-
// the Anthropic API/SDK.
|
|
1295
|
-
if (deferCount > 0) {
|
|
1296
|
-
// Remove client-side discover_tools (replaced by server-side tool_search)
|
|
1297
|
-
const discoverIdx = tools.findIndex(t => t.name === "discover_tools");
|
|
1298
|
-
if (discoverIdx !== -1) {
|
|
1299
|
-
tools.splice(discoverIdx, 1);
|
|
1300
|
-
}
|
|
1301
|
-
// Append server-side search tool (only if not already present)
|
|
1302
|
-
const hasSearchTool = tools.some(t => typeof t.type === "string" && t.type.startsWith("tool_search_tool_"));
|
|
1303
|
-
if (!hasSearchTool) {
|
|
1304
|
-
tools.push({
|
|
1305
|
-
type: "tool_search_tool_regex_20251119",
|
|
1306
|
-
name: "tool_search_tool_regex",
|
|
1307
|
-
});
|
|
1308
|
-
}
|
|
1309
|
-
}
|
|
1310
|
-
logger.debug({ deferCount, modelId: model.id, searchToolAppended: deferCount > 0 }, "DEFER-TOOL: Injected defer_loading on deferred tools");
|
|
1311
|
-
}
|
|
1312
|
-
}
|
|
1313
|
-
// GRAPH-BREAKPOINT: Place a cache breakpoint on graph context envelope.
|
|
1314
|
-
// Wave 2+ subagents and graph-enabled sessions receive injected research
|
|
1315
|
-
// results as the first user message. This dynamic content (~100K+ tokens)
|
|
1316
|
-
// falls between the standard cache breakpoints, paying full uncached input
|
|
1317
|
-
// rate. Placing a breakpoint captures it under the cache prefix.
|
|
1318
|
-
// Must run INSIDE the budget-aware block to consume a slot from slotsAvailable.
|
|
1319
|
-
if (slotsAvailable > 0 && !effectiveSkipCacheWrite && Array.isArray(result.messages)) {
|
|
1320
|
-
const msgs = result.messages;
|
|
1321
|
-
for (let i = 0; i < Math.min(msgs.length, 3); i++) {
|
|
1322
|
-
const msg = msgs[i];
|
|
1323
|
-
if (msg.role !== "user")
|
|
1324
|
-
continue;
|
|
1325
|
-
const content = Array.isArray(msg.content) ? msg.content : [];
|
|
1326
|
-
const hasGraphContext = content.some((block) => typeof block.text === "string" && block.text.includes("## Graph Context"));
|
|
1327
|
-
if (hasGraphContext) {
|
|
1328
|
-
addCacheControlToLastBlock(msg, resolvedRetention ?? "long");
|
|
1329
|
-
slotsAvailable--;
|
|
1330
|
-
logger.debug({ modelId: model.id, messageIndex: i, sessionKey: config.sessionKey }, "GRAPH-BREAKPOINT: Placed cache breakpoint on graph context envelope message");
|
|
1331
|
-
break;
|
|
1332
|
-
}
|
|
1333
|
-
}
|
|
1334
|
-
}
|
|
1335
|
-
// During eviction cooldown, limit to 1 breakpoint (recent zone) at "short" retention.
|
|
1336
|
-
const evictionCooldown = config.getEvictionCooldown?.();
|
|
1337
|
-
const inCooldown = evictionCooldown != null && evictionCooldown.turnsRemaining > 0;
|
|
1338
|
-
if (slotsAvailable > 0 && Array.isArray(result.messages)) {
|
|
1339
|
-
// Conversation breakpoints use zone-aware retention.
|
|
1340
|
-
// Recent zone always uses "short" (5m); semi-stable/mid zones get escalated retention.
|
|
1341
|
-
const messageRetention = config.getMessageRetention?.() ?? resolvedRetention;
|
|
1342
|
-
const placed = placeCacheBreakpoints(result.messages, {
|
|
1343
|
-
minTokens,
|
|
1344
|
-
maxBreakpoints: inCooldown ? 1 : slotsAvailable,
|
|
1345
|
-
retention: "short", // Recent zone always "short" (5m)
|
|
1346
|
-
resolvedRetention: inCooldown ? "short" : messageRetention, // Force "short" during cooldown
|
|
1347
|
-
strategy: resolveBreakpointStrategy(config.cacheBreakpointStrategy, model.provider),
|
|
1348
|
-
skipCacheWrite: effectiveSkipCacheWrite,
|
|
1349
|
-
promoteRecentZoneOnSlowCadence: config.promoteRecentZoneOnSlowCadence,
|
|
1350
|
-
sessionKey: config.sessionKey,
|
|
1351
|
-
});
|
|
1352
|
-
if (placed > 0) {
|
|
1353
|
-
logger.debug({
|
|
1354
|
-
placed,
|
|
1355
|
-
existingCount,
|
|
1356
|
-
totalBreakpoints: existingCount + placed,
|
|
1357
|
-
minTokens,
|
|
1358
|
-
modelId: model.id,
|
|
1359
|
-
strategy: resolveBreakpointStrategy(config.cacheBreakpointStrategy, model.provider),
|
|
1360
|
-
}, "Message breakpoints placed");
|
|
1361
|
-
}
|
|
1362
|
-
else if (Array.isArray(result.messages) && result.messages.length >= 4) {
|
|
1363
|
-
logger.debug({ messageCount: result.messages.length, minTokens, modelId: model.id, existingCount }, "Cache breakpoints skipped: token gaps below minTokens threshold");
|
|
1364
|
-
}
|
|
1365
|
-
// W12: Unconditional scan for ANY message breakpoint (including SDK auto-marker).
|
|
1366
|
-
// Ensures cacheFenceIndex is set for all sessions, not just those with explicit placements.
|
|
1367
|
-
if (config.onBreakpointsPlaced && Array.isArray(result.messages)) {
|
|
1368
|
-
let highestBreakpointIdx = -1;
|
|
1369
|
-
const scanMsgs = result.messages;
|
|
1370
|
-
for (let i = scanMsgs.length - 1; i >= 0; i--) {
|
|
1371
|
-
const content = scanMsgs[i].content;
|
|
1372
|
-
if (Array.isArray(content)) {
|
|
1373
|
-
for (const block of content) {
|
|
1374
|
-
if (block.cache_control) {
|
|
1375
|
-
highestBreakpointIdx = i;
|
|
1376
|
-
break;
|
|
1377
|
-
}
|
|
1378
|
-
}
|
|
1379
|
-
}
|
|
1380
|
-
if (highestBreakpointIdx >= 0)
|
|
1381
|
-
break;
|
|
1382
|
-
}
|
|
1383
|
-
if (highestBreakpointIdx >= 0) {
|
|
1384
|
-
config.onBreakpointsPlaced(highestBreakpointIdx);
|
|
1385
|
-
logger.debug({ highestBreakpointIdx, modelId: model.id }, "Cache fence callback fired");
|
|
1386
|
-
}
|
|
1387
|
-
}
|
|
1388
|
-
}
|
|
1389
|
-
// W12-FALLBACK: When all breakpoint slots are consumed, still scan for SDK auto-marker
|
|
1390
|
-
// to set cache fence. The SDK always places a marker on the last user message.
|
|
1391
|
-
if (slotsAvailable <= 0 && config.onBreakpointsPlaced && Array.isArray(result.messages)) {
|
|
1392
|
-
let highestBreakpointIdx = -1;
|
|
1393
|
-
const fallbackMsgs = result.messages;
|
|
1394
|
-
for (let i = fallbackMsgs.length - 1; i >= 0; i--) {
|
|
1395
|
-
const content = fallbackMsgs[i].content;
|
|
1396
|
-
if (Array.isArray(content)) {
|
|
1397
|
-
for (const block of content) {
|
|
1398
|
-
if (block.cache_control) {
|
|
1399
|
-
highestBreakpointIdx = i;
|
|
1400
|
-
break;
|
|
1401
|
-
}
|
|
1402
|
-
}
|
|
1403
|
-
}
|
|
1404
|
-
if (highestBreakpointIdx >= 0)
|
|
1405
|
-
break;
|
|
1406
|
-
}
|
|
1407
|
-
if (highestBreakpointIdx >= 0) {
|
|
1408
|
-
config.onBreakpointsPlaced(highestBreakpointIdx);
|
|
1409
|
-
logger.debug({ highestBreakpointIdx, modelId: model.id, source: "sdk-auto-marker" }, "W12-FALLBACK: Cache fence set from SDK auto-marker (no explicit slots available)");
|
|
1410
|
-
}
|
|
1411
|
-
}
|
|
1412
|
-
// Warn when cache fence remains unset in mature conversation.
|
|
1413
|
-
// This indicates no cache_control markers exist on any message -- neither explicit nor SDK auto.
|
|
1414
|
-
if (config.onBreakpointsPlaced && Array.isArray(result.messages) && result.messages.length >= 10) {
|
|
1415
|
-
const scanForFence = result.messages;
|
|
1416
|
-
let fenceFound = false;
|
|
1417
|
-
for (let i = scanForFence.length - 1; i >= 0; i--) {
|
|
1418
|
-
const content = scanForFence[i].content;
|
|
1419
|
-
if (Array.isArray(content)) {
|
|
1420
|
-
for (const block of content) {
|
|
1421
|
-
if (block.cache_control) {
|
|
1422
|
-
fenceFound = true;
|
|
1423
|
-
break;
|
|
1424
|
-
}
|
|
1425
|
-
}
|
|
1426
|
-
}
|
|
1427
|
-
if (fenceFound)
|
|
1428
|
-
break;
|
|
1429
|
-
}
|
|
1430
|
-
if (!fenceFound) {
|
|
1431
|
-
logger.warn({
|
|
1432
|
-
messageCount: result.messages.length,
|
|
1433
|
-
modelId: model.id,
|
|
1434
|
-
hint: "No cache breakpoint found on any message in mature conversation. Cache fence is unset -- thinking block cleaner has no protection boundary.",
|
|
1435
|
-
errorKind: "performance",
|
|
1436
|
-
}, "Cache fence unset in mature session");
|
|
1437
|
-
}
|
|
1438
|
-
}
|
|
1439
|
-
// W7: Diagnostic WARN when breakpoint budget exhausted on mature conversation.
|
|
1440
|
-
if (slotsAvailable <= 0 && Array.isArray(result.messages) && result.messages.length >= 20) {
|
|
1441
|
-
logger.warn({
|
|
1442
|
-
existingCount,
|
|
1443
|
-
messageCount: result.messages.length,
|
|
1444
|
-
modelId: model.id,
|
|
1445
|
-
hint: "Breakpoint budget exhausted before message breakpoints. System prompt may need consolidation or tool breakpoint reduction.",
|
|
1446
|
-
errorKind: "performance",
|
|
1447
|
-
}, "W7: Cache breakpoint budget exhausted -- no message breakpoints placed on mature conversation");
|
|
1448
|
-
}
|
|
1449
|
-
}
|
|
1450
|
-
// Promote stable message breakpoints from 5m to 1h TTL
|
|
1451
|
-
// Skip breakpoint TTL promotion during eviction cooldown (conservative caching).
|
|
1452
|
-
{
|
|
1453
|
-
const cooldownForPromotion = config.getEvictionCooldown?.();
|
|
1454
|
-
const promotionBlocked = cooldownForPromotion != null && cooldownForPromotion.turnsRemaining > 0;
|
|
1455
|
-
if (config.blockStabilityTracker && config.sessionKey && !effectiveSkipCacheWrite && !promotionBlocked) {
|
|
1456
|
-
const promotionThreshold = config.stabilityThreshold ?? 3;
|
|
1457
|
-
const promotedCount = maybePromoteBreakpoints(result.messages, config.blockStabilityTracker, config.sessionKey, promotionThreshold, resolvedRetention);
|
|
1458
|
-
if (promotedCount > 0) {
|
|
1459
|
-
logger.debug({ promoted: promotedCount, threshold: promotionThreshold, modelId: model.id }, "Message breakpoints promoted to 1h TTL");
|
|
1460
|
-
}
|
|
1461
|
-
}
|
|
1462
|
-
} // end eviction cooldown promotion scope
|
|
1463
|
-
// Sticky-on sweep -- capture any beta headers modified inside onPayload
|
|
1464
|
-
// and merge previously-latched values. Ensures consistency regardless of where
|
|
1465
|
-
// beta headers are added (outer scope or inside onPayload callbacks).
|
|
1466
|
-
if (config.sessionKey && mergedHeaders) {
|
|
1467
|
-
const allBetas = parseHeaderList(mergedHeaders["anthropic-beta"]);
|
|
1468
|
-
let latched = sessionBetaHeaderLatches.get(config.sessionKey);
|
|
1469
|
-
if (!latched) {
|
|
1470
|
-
latched = createAccumulativeLatch();
|
|
1471
|
-
sessionBetaHeaderLatches.set(config.sessionKey, latched);
|
|
1472
|
-
}
|
|
1473
|
-
for (const beta of allBetas)
|
|
1474
|
-
latched.add(beta);
|
|
1475
|
-
// Inject any previously latched values not yet in current headers
|
|
1476
|
-
let changed = false;
|
|
1477
|
-
for (const beta of latched.getAll()) {
|
|
1478
|
-
if (!allBetas.includes(beta)) {
|
|
1479
|
-
allBetas.push(beta);
|
|
1480
|
-
changed = true;
|
|
1481
|
-
}
|
|
1482
|
-
}
|
|
1483
|
-
if (changed) {
|
|
1484
|
-
mergedHeaders["anthropic-beta"] = allBetas.join(", ");
|
|
1485
|
-
}
|
|
1486
|
-
}
|
|
1487
|
-
// Feed payload to cache break detector (after breakpoint placement)
|
|
1488
|
-
if (config.onPayloadForCacheDetection) {
|
|
1489
|
-
config.onPayloadForCacheDetection(result, model, mergedHeaders);
|
|
1490
|
-
}
|
|
1491
|
-
// Track cadence for recent-zone promotion (symmetric: promote slow, demote on fast).
|
|
1492
|
-
// Runs after onPayloadForCacheDetection so the detection snapshot reflects the
|
|
1493
|
-
// pre-mutation state. Mutation takes effect on the next turn's placeCacheBreakpoints().
|
|
1494
|
-
if (config.promoteRecentZoneOnSlowCadence && config.sessionKey
|
|
1495
|
-
&& config.getElapsedSinceLastResponse && config.getLastResponseTs) {
|
|
1496
|
-
const lastResponseTs = config.getLastResponseTs();
|
|
1497
|
-
if (lastResponseTs !== undefined) {
|
|
1498
|
-
let tracker = sessionCadenceTracker.get(config.sessionKey);
|
|
1499
|
-
if (!tracker) {
|
|
1500
|
-
tracker = {
|
|
1501
|
-
consecutiveSlowTurns: 0,
|
|
1502
|
-
consecutiveFastTurns: 0,
|
|
1503
|
-
promoted: false,
|
|
1504
|
-
lastObservedResponseTs: undefined,
|
|
1505
|
-
};
|
|
1506
|
-
sessionCadenceTracker.set(config.sessionKey, tracker);
|
|
1507
|
-
}
|
|
1508
|
-
// Same-turn guard: successive onPayload calls inside one execute() all
|
|
1509
|
-
// observe the same lastResponseTs. Only count once per turn boundary.
|
|
1510
|
-
if (lastResponseTs !== tracker.lastObservedResponseTs) {
|
|
1511
|
-
tracker.lastObservedResponseTs = lastResponseTs;
|
|
1512
|
-
const elapsed = config.getElapsedSinceLastResponse();
|
|
1513
|
-
if (elapsed !== undefined) {
|
|
1514
|
-
if (elapsed > SLOW_CADENCE_MS) {
|
|
1515
|
-
tracker.consecutiveSlowTurns++;
|
|
1516
|
-
tracker.consecutiveFastTurns = 0;
|
|
1517
|
-
if (!tracker.promoted && tracker.consecutiveSlowTurns >= SLOW_CADENCE_PROMOTION_THRESHOLD) {
|
|
1518
|
-
tracker.promoted = true;
|
|
1519
|
-
logger.info({ sessionKey: config.sessionKey, consecutiveSlowTurns: tracker.consecutiveSlowTurns }, "Recent-zone TTL promoted to long: slow cadence detected");
|
|
1520
|
-
}
|
|
1521
|
-
}
|
|
1522
|
-
else {
|
|
1523
|
-
tracker.consecutiveFastTurns++;
|
|
1524
|
-
tracker.consecutiveSlowTurns = 0;
|
|
1525
|
-
if (tracker.promoted && tracker.consecutiveFastTurns >= FAST_CADENCE_DEMOTION_THRESHOLD) {
|
|
1526
|
-
tracker.promoted = false;
|
|
1527
|
-
logger.info({ sessionKey: config.sessionKey, consecutiveFastTurns: tracker.consecutiveFastTurns }, "Recent-zone TTL demoted to short: fast cadence resumed");
|
|
1528
|
-
}
|
|
1529
|
-
}
|
|
1530
|
-
}
|
|
1531
|
-
}
|
|
1532
|
-
}
|
|
1533
|
-
}
|
|
1534
|
-
// SDK-UPGRADE: Upgrade SDK auto-placed 5m markers to 1h when retention is long.
|
|
1535
|
-
// The pi-ai SDK places cache_control: { type: "ephemeral" } (5m TTL) on the last
|
|
1536
|
-
// user message. When the session uses "long" retention, these 5m writes waste money
|
|
1537
|
-
// because they expire before the conversation can reuse them. Upgrading to 1h aligns
|
|
1538
|
-
// SDK markers with our retention strategy.
|
|
1539
|
-
// Runs BEFORE (skipCacheWrite overrides these anyway for subagents) and
|
|
1540
|
-
// BEFORE TTL split estimation (so estimates see the upgraded TTLs).
|
|
1541
|
-
// Note: message markers respect getMessageRetention (may be "short" even when
|
|
1542
|
-
// resolvedRetention is "long" -- e.g., adaptive retention splits tool/system from
|
|
1543
|
-
// conversation). System and tool markers always use resolvedRetention.
|
|
1544
|
-
if (needsCacheBreakpoints && resolvedRetention === "long" && !effectiveSkipCacheWrite) {
|
|
1545
|
-
const upgradeMarkers = (blocks) => {
|
|
1546
|
-
for (const block of blocks) {
|
|
1547
|
-
const cc = block.cache_control;
|
|
1548
|
-
if (cc && cc.type === "ephemeral" && !cc.ttl) {
|
|
1549
|
-
cc.ttl = "1h";
|
|
1550
|
-
}
|
|
1551
|
-
}
|
|
1552
|
-
};
|
|
1553
|
-
// Upgrade system blocks (always follow resolvedRetention)
|
|
1554
|
-
if (Array.isArray(result.system)) {
|
|
1555
|
-
upgradeMarkers(result.system);
|
|
1556
|
-
}
|
|
1557
|
-
// Upgrade tool blocks (always follow resolvedRetention)
|
|
1558
|
-
if (Array.isArray(result.tools)) {
|
|
1559
|
-
upgradeMarkers(result.tools);
|
|
1560
|
-
}
|
|
1561
|
-
// Do NOT upgrade message markers here. placeCacheBreakpoints
|
|
1562
|
-
// already assigns zone-aware TTLs: semi-stable/mid get 1h, recent stays 5m.
|
|
1563
|
-
// Upgrading all message markers would override the intentionally "short"
|
|
1564
|
-
// recent-zone markers. System and tool markers above still get upgraded.
|
|
1565
|
-
// The SDK's auto-placed marker on the last user message is in the recent
|
|
1566
|
-
// zone and should remain at 5m.
|
|
1567
|
-
logger.debug({ modelId: model.id, sessionKey: config.sessionKey }, "SDK-UPGRADE: Upgraded SDK 5m auto-markers to 1h for long retention");
|
|
1568
|
-
}
|
|
1569
|
-
// skipCacheWrite places marker at shared-prefix point instead of stripping all.
|
|
1570
|
-
// The second-to-last user message is the shared-prefix boundary -- the parent's cache
|
|
1571
|
-
// already covers everything up to that point. Placing a marker there (instead of stripping)
|
|
1572
|
-
// lets the server merge with the existing cache entry without creating new writes.
|
|
1573
|
-
if (needsCacheBreakpoints && effectiveSkipCacheWrite && Array.isArray(result.messages)) {
|
|
1574
|
-
const msgs = result.messages;
|
|
1575
|
-
// Count user messages FIRST. Single-turn sub-agents (userCount < 2) have
|
|
1576
|
-
// no second-to-last-user anchor, so the shared-prefix strip+replace logic
|
|
1577
|
-
// cannot do anything useful. If we stripped markers unconditionally, the
|
|
1578
|
-
// request would reach Anthropic with ZERO cache_control anywhere -> 100%
|
|
1579
|
-
// cache miss, full-price input tokens. Bypass here so the SDK's earlier
|
|
1580
|
-
// auto-placed markers (system/tools, and last-user at 5m) remain intact
|
|
1581
|
-
// and the sub-agent can still match the parent's cached prefix.
|
|
1582
|
-
let userCount = 0;
|
|
1583
|
-
for (const msg of msgs) {
|
|
1584
|
-
if (msg.role === "user")
|
|
1585
|
-
userCount++;
|
|
1586
|
-
}
|
|
1587
|
-
if (userCount < 2) {
|
|
1588
|
-
logger.debug({ modelId: model.id, sessionKey: config.sessionKey, userCount }, "skipCacheWrite bypassed -- single-turn sub-agent keeps standard cache markers");
|
|
1589
|
-
}
|
|
1590
|
-
else {
|
|
1591
|
-
// Strip system block cache_control markers (shared prefix)
|
|
1592
|
-
if (Array.isArray(result.system)) {
|
|
1593
|
-
for (const block of result.system) {
|
|
1594
|
-
delete block.cache_control;
|
|
1595
|
-
}
|
|
1596
|
-
}
|
|
1597
|
-
// Strip tool definition cache_control markers (shared prefix)
|
|
1598
|
-
if (Array.isArray(result.tools)) {
|
|
1599
|
-
for (const tool of result.tools) {
|
|
1600
|
-
delete tool.cache_control;
|
|
1601
|
-
}
|
|
1602
|
-
}
|
|
1603
|
-
// Strip all existing message-level cache_control markers
|
|
1604
|
-
for (const msg of msgs) {
|
|
1605
|
-
if (Array.isArray(msg.content)) {
|
|
1606
|
-
for (const block of msg.content) {
|
|
1607
|
-
delete block.cache_control;
|
|
1608
|
-
}
|
|
1609
|
-
}
|
|
1610
|
-
}
|
|
1611
|
-
// Then: place marker on second-to-last user message (shared-prefix point)
|
|
1612
|
-
let seen = 0;
|
|
1613
|
-
for (let i = msgs.length - 1; i >= 0; i--) {
|
|
1614
|
-
if (msgs[i].role === "user") {
|
|
1615
|
-
seen++;
|
|
1616
|
-
if (seen === 2) {
|
|
1617
|
-
addCacheControlToLastBlock(msgs[i], resolvedRetention ?? "long");
|
|
1618
|
-
break;
|
|
1619
|
-
}
|
|
1620
|
-
}
|
|
1621
|
-
}
|
|
1622
|
-
// Re-place marker on last user message (volatile per-turn content).
|
|
1623
|
-
// The SDK's auto-placed last-user-message marker was stripped above. Re-placing
|
|
1624
|
-
// with "short" (5m) TTL ensures the last user message (with tool results) gets
|
|
1625
|
-
// cache reads ($0.30/MTok) instead of full-price uncached input ($3/MTok).
|
|
1626
|
-
for (let i = msgs.length - 1; i >= 0; i--) {
|
|
1627
|
-
if (msgs[i].role === "user") {
|
|
1628
|
-
addCacheControlToLastBlock(msgs[i], "short");
|
|
1629
|
-
break;
|
|
1630
|
-
}
|
|
1631
|
-
}
|
|
1632
|
-
logger.debug({ modelId: model.id, sessionKey: config.sessionKey, markerPlaced: true, lastUserMarkerPlaced: true }, "skipCacheWrite shared-prefix marker placement");
|
|
1633
|
-
}
|
|
1634
|
-
}
|
|
1635
|
-
// Kill switch -- strip ALL cache_control when resolved retention is "none".
|
|
1636
|
-
// Must run AFTER all breakpoint/marker placement (system, tools, messages) so
|
|
1637
|
-
// nothing gets re-added after the strip pass.
|
|
1638
|
-
if (needsCacheBreakpoints && resolvedRetention === "none") {
|
|
1639
|
-
if (Array.isArray(result.system)) {
|
|
1640
|
-
for (const block of result.system) {
|
|
1641
|
-
delete block.cache_control;
|
|
1642
|
-
}
|
|
1643
|
-
}
|
|
1644
|
-
if (Array.isArray(result.tools)) {
|
|
1645
|
-
for (const tool of result.tools) {
|
|
1646
|
-
delete tool.cache_control;
|
|
1647
|
-
}
|
|
1648
|
-
}
|
|
1649
|
-
if (Array.isArray(result.messages)) {
|
|
1650
|
-
for (const msg of result.messages) {
|
|
1651
|
-
if (Array.isArray(msg.content)) {
|
|
1652
|
-
for (const block of msg.content) {
|
|
1653
|
-
delete block.cache_control;
|
|
1654
|
-
}
|
|
1655
|
-
}
|
|
1656
|
-
}
|
|
1657
|
-
}
|
|
1658
|
-
logger.debug({ modelId: model.id, sessionKey: config.sessionKey }, "Kill switch active -- stripped all cache_control markers");
|
|
1659
|
-
}
|
|
1660
|
-
// Count per-TTL token distribution from final cache_control markers.
|
|
1661
|
-
// Runs AFTER all breakpoint placement and kill-switch stripping so counts
|
|
1662
|
-
// reflect the exact markers sent to the API.
|
|
1663
|
-
if (config.onTtlSplitEstimate && needsCacheBreakpoints) {
|
|
1664
|
-
let cacheWrite5mTokens = 0;
|
|
1665
|
-
let cacheWrite1hTokens = 0;
|
|
1666
|
-
// Uses module-level estimateBlockTokens (text extraction + CHARS_PER_TOKEN_RATIO)
|
|
1667
|
-
// Count system blocks with cache_control
|
|
1668
|
-
if (Array.isArray(result.system)) {
|
|
1669
|
-
for (const block of result.system) {
|
|
1670
|
-
if (block.cache_control) {
|
|
1671
|
-
const tokens = estimateBlockTokens(block);
|
|
1672
|
-
const cc = block.cache_control;
|
|
1673
|
-
if (cc.ttl === "1h") {
|
|
1674
|
-
cacheWrite1hTokens += tokens;
|
|
1675
|
-
}
|
|
1676
|
-
else {
|
|
1677
|
-
cacheWrite5mTokens += tokens;
|
|
1678
|
-
}
|
|
1679
|
-
}
|
|
1680
|
-
}
|
|
1681
|
-
}
|
|
1682
|
-
// Count tool definitions with cache_control
|
|
1683
|
-
if (Array.isArray(result.tools)) {
|
|
1684
|
-
for (const tool of result.tools) {
|
|
1685
|
-
if (tool.cache_control) {
|
|
1686
|
-
const tokens = estimateBlockTokens(tool);
|
|
1687
|
-
const cc = tool.cache_control;
|
|
1688
|
-
if (cc.ttl === "1h") {
|
|
1689
|
-
cacheWrite1hTokens += tokens;
|
|
1690
|
-
}
|
|
1691
|
-
else {
|
|
1692
|
-
cacheWrite5mTokens += tokens;
|
|
1693
|
-
}
|
|
1694
|
-
}
|
|
1695
|
-
}
|
|
1696
|
-
}
|
|
1697
|
-
// Count message blocks with cache_control
|
|
1698
|
-
if (Array.isArray(result.messages)) {
|
|
1699
|
-
for (const msg of result.messages) {
|
|
1700
|
-
if (Array.isArray(msg.content)) {
|
|
1701
|
-
for (const block of msg.content) {
|
|
1702
|
-
if (block.cache_control) {
|
|
1703
|
-
const tokens = estimateBlockTokens(block);
|
|
1704
|
-
const cc = block.cache_control;
|
|
1705
|
-
if (cc.ttl === "1h") {
|
|
1706
|
-
cacheWrite1hTokens += tokens;
|
|
1707
|
-
}
|
|
1708
|
-
else {
|
|
1709
|
-
cacheWrite5mTokens += tokens;
|
|
1710
|
-
}
|
|
1711
|
-
}
|
|
1712
|
-
}
|
|
1713
|
-
}
|
|
1714
|
-
}
|
|
1715
|
-
}
|
|
1716
|
-
config.onTtlSplitEstimate({ cacheWrite5mTokens, cacheWrite1hTokens });
|
|
1717
|
-
}
|
|
1718
|
-
// Concern 3: service_tier (Responses API + fastMode)
|
|
1719
|
-
if (needsResponsesApiInjection && config.fastMode) {
|
|
1720
|
-
result.service_tier = "auto";
|
|
1721
|
-
}
|
|
1722
|
-
// Concern 4: store (Responses API + storeCompletions)
|
|
1723
|
-
if (needsResponsesApiInjection && config.storeCompletions) {
|
|
1724
|
-
result.store = true;
|
|
1725
|
-
}
|
|
1726
|
-
return result;
|
|
1727
|
-
},
|
|
1728
|
-
};
|
|
1729
|
-
return next(model, context, enhancedOptions);
|
|
1730
|
-
};
|
|
1731
|
-
};
|
|
1732
|
-
}
|