@vellumai/assistant 0.10.7-dev.202607102035.64f07ea → 0.10.7-staging.1
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/AGENTS.md +1 -3
- package/ARCHITECTURE.md +9 -9
- package/README.md +1 -1
- package/docs/architecture/memory.md +3 -1
- package/docs/credential-execution-service.md +96 -9
- package/docs/runbook-trusted-contacts.md +93 -132
- package/docs/trusted-contact-access.md +115 -125
- package/docs/workspace-tools.md +2 -4
- package/eslint-rules/__tests__/cli-no-daemon-internals.test.ts +360 -62
- package/eslint-rules/cli-no-daemon-internals.js +269 -91
- package/eslint.config.mjs +4 -4
- package/knip.json +1 -2
- package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/package.json +2 -1
- package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/__tests__/contracts.test.ts +2 -0
- package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/__tests__/grants.test.ts +686 -0
- package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/credential-rpc.ts +5 -3
- package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/grants.ts +184 -0
- package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/index.ts +4 -2
- package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/rendering.ts +135 -0
- package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/rpc.ts +447 -4
- package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/package.json +2 -1
- package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/__tests__/contracts.test.ts +2 -0
- package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/__tests__/grants.test.ts +686 -0
- package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/credential-rpc.ts +5 -3
- package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/grants.ts +184 -0
- package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/index.ts +4 -2
- package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/rendering.ts +135 -0
- package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/rpc.ts +447 -4
- package/node_modules/@vellumai/gateway-client/src/__tests__/invite-contract.test.ts +18 -0
- package/node_modules/@vellumai/gateway-client/src/__tests__/trust-verdict-contract.test.ts +6 -40
- package/node_modules/@vellumai/gateway-client/src/channel-permission-contract.ts +0 -13
- package/node_modules/@vellumai/gateway-client/src/index.ts +2 -24
- package/node_modules/@vellumai/gateway-client/src/invite-contract.ts +16 -146
- package/node_modules/@vellumai/gateway-client/src/trust-verdict-contract.ts +4 -22
- package/node_modules/@vellumai/service-contracts/package.json +2 -1
- package/node_modules/@vellumai/service-contracts/src/__tests__/contracts.test.ts +2 -0
- package/node_modules/@vellumai/service-contracts/src/__tests__/grants.test.ts +686 -0
- package/node_modules/@vellumai/service-contracts/src/credential-rpc.ts +5 -3
- package/node_modules/@vellumai/service-contracts/src/grants.ts +184 -0
- package/node_modules/@vellumai/service-contracts/src/index.ts +4 -2
- package/node_modules/@vellumai/service-contracts/src/rendering.ts +135 -0
- package/node_modules/@vellumai/service-contracts/src/rpc.ts +447 -4
- package/openapi.yaml +541 -1513
- package/package.json +5 -4
- package/scripts/generate-bundled-tool-registry.ts +223 -0
- package/scripts/memory-inspect.ts +8 -2
- package/scripts/test.sh +494 -0
- package/src/__tests__/access-request-card-view.test.ts +0 -38
- package/src/__tests__/activation-early-marking.test.ts +8 -1
- package/src/__tests__/actor-token-service.test.ts +22 -1
- package/src/__tests__/actor-trust-resolver-address-fallback.test.ts +255 -0
- package/src/__tests__/add-message-preassigned-id.test.ts +1 -1
- package/src/__tests__/agent-loop-callsite-precedence.test.ts +5 -0
- package/src/__tests__/agent-loop-compaction-events.test.ts +1 -1
- package/src/__tests__/agent-loop-compaction-strip.test.ts +1 -1
- package/src/__tests__/agent-loop-exit-reason.test.ts +1 -1
- package/src/__tests__/agent-loop-mutable-latest-user-message.test.ts +6 -0
- package/src/__tests__/agent-loop-override-profile.test.ts +5 -66
- package/src/__tests__/agent-loop-pushes-post-hook-prompt.test.ts +9 -1
- package/src/__tests__/agent-loop-regrowth-guard.test.ts +1 -1
- package/src/__tests__/agent-loop-sentry-hygiene.test.ts +137 -0
- package/src/__tests__/agent-loop-set-system-prompt.test.ts +7 -1
- package/src/__tests__/agent-wake-disk-pressure-callsite.test.ts +0 -1
- package/src/__tests__/agent-wake-override-profile.test.ts +1 -21
- package/src/__tests__/annotate-activity-metadata.test.ts +10 -4
- package/src/__tests__/annotate-risk-options.test.ts +10 -4
- package/src/__tests__/anthropic-error-formatting.test.ts +2 -193
- package/src/__tests__/anthropic-provider.test.ts +0 -58
- package/src/__tests__/app-bundler.test.ts +8 -0
- package/src/__tests__/app-conversation-ids-backfill.test.ts +8 -1
- package/src/__tests__/app-routes-csp.test.ts +8 -0
- package/src/__tests__/approval-cascade.test.ts +21 -0
- package/src/__tests__/approval-interception-trust-gates.test.ts +7 -0
- package/src/__tests__/approval-primitive.test.ts +9 -1
- package/src/__tests__/approval-routes-http.test.ts +16 -1
- package/src/__tests__/assistant-attachment-directive.test.ts +0 -1
- package/src/__tests__/assistant-attachments.test.ts +0 -211
- package/src/__tests__/assistant-event-hub-machine-name.test.ts +7 -0
- package/src/__tests__/assistant-events-sse-hardening.test.ts +7 -0
- package/src/__tests__/assistant-feature-flag-guard.test.ts +3 -3
- package/src/__tests__/assistant-feature-flag-guardrails.test.ts +1 -1
- package/src/__tests__/attachment-stored-path-annotation.test.ts +7 -0
- package/src/__tests__/attachment-upload-trusted-source.test.ts +7 -0
- package/src/__tests__/attachments-store-heic-normalize.test.ts +7 -0
- package/src/__tests__/attachments-store.test.ts +8 -43
- package/src/__tests__/attachments.test.ts +0 -77
- package/src/__tests__/audit-log-rotation.test.ts +9 -1
- package/src/__tests__/auth-fallback-events-store.test.ts +7 -0
- package/src/__tests__/auto-analysis-end-to-end.test.ts +621 -0
- package/src/__tests__/auto-analysis-prompt.test.ts +50 -0
- package/src/__tests__/avatar-generator.test.ts +9 -0
- package/src/__tests__/background-shell-host-bash.test.ts +7 -0
- package/src/__tests__/background-workers-disk-pressure.test.ts +3 -4
- package/src/__tests__/browser-fill-credential.test.ts +7 -0
- package/src/__tests__/browser-manager.test.ts +8 -1
- package/src/__tests__/btw-routes.test.ts +7 -0
- package/src/__tests__/build-persisted-content.test.ts +8 -0
- package/src/__tests__/call-constants.test.ts +1 -1
- package/src/__tests__/call-controller.test.ts +34 -783
- package/src/__tests__/call-conversation-messages.test.ts +9 -2
- package/src/__tests__/call-domain.test.ts +24 -7
- package/src/__tests__/call-pointer-message-composer.test.ts +8 -0
- package/src/__tests__/call-pointer-messages.test.ts +8 -1
- package/src/__tests__/call-recovery.test.ts +8 -1
- package/src/__tests__/call-routes-http.test.ts +7 -0
- package/src/__tests__/call-setup-flow-invite.test.ts +1 -1
- package/src/__tests__/call-setup-flow-midcall-trust.test.ts +97 -76
- package/src/__tests__/call-setup-flow-name-capture.test.ts +1 -1
- package/src/__tests__/call-setup-flow-verification.test.ts +1 -1
- package/src/__tests__/call-setup-flow.test.ts +2 -2
- package/src/__tests__/call-site-routing-provider.test.ts +5 -1
- package/src/__tests__/call-state.test.ts +8 -1
- package/src/__tests__/call-store.test.ts +8 -1
- package/src/__tests__/cancel-resolves-conversation-key.test.ts +7 -0
- package/src/__tests__/canonical-guardian-store.test.ts +8 -1
- package/src/__tests__/catalog-cache.test.ts +8 -0
- package/src/__tests__/catalog-files.test.ts +8 -0
- package/src/__tests__/catalog-install-normalize.test.ts +7 -0
- package/src/__tests__/ces-rpc-credential-backend.test.ts +7 -0
- package/src/__tests__/channel-approval-routes.test.ts +7 -0
- package/src/__tests__/channel-approvals.test.ts +7 -0
- package/src/__tests__/channel-delivery-store.test.ts +7 -0
- package/src/__tests__/channel-guardian.test.ts +16 -29
- package/src/__tests__/channel-inbound-disk-pressure.test.ts +7 -0
- package/src/__tests__/channel-reply-delivery.test.ts +5 -18
- package/src/__tests__/channel-retry-sweep.test.ts +7 -0
- package/src/__tests__/clawhub-files.test.ts +8 -0
- package/src/__tests__/clawhub.test.ts +7 -0
- package/src/__tests__/clear-all-lexical.test.ts +6 -0
- package/src/__tests__/client-os-metadata-persistence.test.ts +5 -0
- package/src/__tests__/compaction-direct.test.ts +0 -47
- package/src/__tests__/compaction-events.test.ts +29 -14
- package/src/__tests__/compaction-ledger-store.test.ts +7 -1
- package/src/__tests__/compaction-trail-store.test.ts +8 -2
- package/src/__tests__/compaction.benchmark.test.ts +5 -0
- package/src/__tests__/compactor-call-site-logging.test.ts +21 -0
- package/src/__tests__/compactor-low-watermark-cut.test.ts +23 -8
- package/src/__tests__/compactor-media-strip.test.ts +21 -0
- package/src/__tests__/compactor-preserved-tail-count.test.ts +21 -0
- package/src/__tests__/compactor-summary-call-truncation.test.ts +21 -0
- package/src/__tests__/compactor-web-search-strip.test.ts +25 -21
- package/src/__tests__/config-analysis.test.ts +83 -0
- package/src/__tests__/config-get-vision-flag.test.ts +6 -0
- package/src/__tests__/config-loader-backfill.test.ts +316 -332
- package/src/__tests__/config-loader-platform-defaults.test.ts +21 -0
- package/src/__tests__/config-schema.test.ts +30 -85
- package/src/__tests__/config-set-route.test.ts +6 -0
- package/src/__tests__/config-watcher-cleanup-throttle.test.ts +24 -12
- package/src/__tests__/config-watcher-skill-reseed.test.ts +8 -1
- package/src/__tests__/config-watcher.test.ts +12 -22
- package/src/__tests__/confirmation-request-guardian-bridge.test.ts +9 -1
- package/src/__tests__/contact-store-interaction-info.test.ts +8 -1
- package/src/__tests__/contact-store-user-file.test.ts +14 -1
- package/src/__tests__/contacts-tools.test.ts +7 -0
- package/src/__tests__/contacts-write.test.ts +8 -1
- package/src/__tests__/context-search-memory-source.test.ts +1 -0
- package/src/__tests__/context-search-memory-v2-source.test.ts +6 -0
- package/src/__tests__/context-window-manager-compact-retry.test.ts +21 -118
- package/src/__tests__/context-window-manager-overflow-rung.test.ts +21 -0
- package/src/__tests__/conversation-abort-tool-results.test.ts +5 -0
- package/src/__tests__/conversation-agent-loop-disk-pressure.test.ts +12 -0
- package/src/__tests__/conversation-agent-loop-inference-profile.test.ts +12 -5
- package/src/__tests__/conversation-agent-loop-overflow.test.ts +21 -45
- package/src/__tests__/conversation-agent-loop.test.ts +22 -74
- package/src/__tests__/conversation-analysis-routes.test.ts +156 -0
- package/src/__tests__/conversation-app-control-instantiation.test.ts +8 -20
- package/src/__tests__/conversation-app-control-lifecycle.test.ts +9 -0
- package/src/__tests__/conversation-attachments.test.ts +7 -1
- package/src/__tests__/conversation-attention-store.test.ts +9 -1
- package/src/__tests__/conversation-attention-telegram.test.ts +8 -0
- package/src/__tests__/conversation-clear-safety.test.ts +7 -0
- package/src/__tests__/conversation-confirmation-signals.test.ts +21 -0
- package/src/__tests__/conversation-crud-enabled-plugins.test.ts +7 -1
- package/src/__tests__/conversation-crud-inference-profile.test.ts +7 -1
- package/src/__tests__/conversation-delete-schedule-cleanup.test.ts +7 -0
- package/src/__tests__/conversation-disk-view-integration.test.ts +7 -0
- package/src/__tests__/conversation-disk-view.test.ts +7 -0
- package/src/__tests__/conversation-enabledplugins-route.test.ts +8 -2
- package/src/__tests__/conversation-error.test.ts +3 -284
- package/src/__tests__/conversation-fork-crud.test.ts +37 -52
- package/src/__tests__/conversation-fork-retrospective.test.ts +7 -486
- package/src/__tests__/conversation-fork-route.test.ts +7 -0
- package/src/__tests__/conversation-history-web-search.test.ts +17 -39
- package/src/__tests__/conversation-inference-profile-list.test.ts +6 -0
- package/src/__tests__/conversation-inference-profile-route.test.ts +5 -0
- package/src/__tests__/conversation-init.benchmark.test.ts +2 -6
- package/src/__tests__/conversation-initial-prompt.test.ts +1 -1
- package/src/__tests__/conversation-key-store-disk-view.test.ts +7 -0
- package/src/__tests__/conversation-lifecycle.test.ts +62 -108
- package/src/__tests__/conversation-list-source.test.ts +7 -0
- package/src/__tests__/conversation-load-history-repair.test.ts +53 -39
- package/src/__tests__/conversation-load-history-stripped.test.ts +19 -12
- package/src/__tests__/conversation-loop-db-lock-resilience.test.ts +8 -0
- package/src/__tests__/conversation-pairing.test.ts +7 -0
- package/src/__tests__/conversation-process-app-control-preactivation.test.ts +5 -0
- package/src/__tests__/conversation-process-callsite.test.ts +7 -14
- package/src/__tests__/conversation-provider-retry-repair.test.ts +5 -0
- package/src/__tests__/conversation-queue.test.ts +21 -91
- package/src/__tests__/conversation-routes-disk-view.test.ts +11 -0
- package/src/__tests__/conversation-routes-enabled-plugins.test.ts +11 -3
- package/src/__tests__/conversation-routes-guardian-reply.test.ts +11 -3
- package/src/__tests__/conversation-routes-hidden-queue.test.ts +11 -3
- package/src/__tests__/conversation-routes-slash-commands.test.ts +13 -24
- package/src/__tests__/conversation-runtime-assembly.test.ts +9 -37
- package/src/__tests__/conversation-skill-tools.test.ts +15 -31
- package/src/__tests__/conversation-slash-commands.test.ts +4 -5
- package/src/__tests__/conversation-slash-queue.test.ts +5 -0
- package/src/__tests__/conversation-slash-unknown.test.ts +5 -0
- package/src/__tests__/conversation-speed-override.test.ts +23 -13
- package/src/__tests__/conversation-starter-routes.test.ts +7 -0
- package/src/__tests__/conversation-store.test.ts +22 -9
- package/src/__tests__/conversation-surfaces-activation-emit.test.ts +8 -0
- package/src/__tests__/conversation-surfaces-data-persist.test.ts +2 -4
- package/src/__tests__/conversation-title-service.test.ts +7 -0
- package/src/__tests__/conversation-tool-setup-app-refresh.test.ts +19 -0
- package/src/__tests__/conversation-tool-setup-attribution.test.ts +8 -4
- package/src/__tests__/conversation-unread-route.test.ts +7 -0
- package/src/__tests__/conversation-usage.test.ts +8 -10
- package/src/__tests__/conversation-workspace-cache-state.test.ts +5 -0
- package/src/__tests__/conversation-workspace-injection.test.ts +5 -0
- package/src/__tests__/conversation-workspace-tool-tracking.test.ts +5 -0
- package/src/__tests__/conversations-import-system-filter.test.ts +7 -0
- package/src/__tests__/credential-broker-browser-fill.test.ts +9 -0
- package/src/__tests__/credential-broker-server-use.test.ts +9 -0
- package/src/__tests__/credential-execution-admin-cli.test.ts +504 -0
- package/src/__tests__/credential-execution-api-key-propagation.test.ts +40 -0
- package/src/__tests__/credential-execution-approval-bridge.test.ts +297 -0
- package/src/__tests__/credential-execution-client.test.ts +38 -3
- package/src/__tests__/credential-execution-feature-gates.test.ts +185 -0
- package/src/__tests__/credential-execution-managed-contract.test.ts +106 -10
- package/src/__tests__/credential-execution-shell-lockdown.test.ts +120 -0
- package/src/__tests__/credential-execution-tools.test.ts +289 -0
- package/src/__tests__/credential-health-service.test.ts +9 -0
- package/src/__tests__/credential-metadata-store.test.ts +8 -0
- package/src/__tests__/credential-prompt-route.test.ts +9 -80
- package/src/__tests__/credential-resolve.test.ts +8 -0
- package/src/__tests__/credential-security-invariants.test.ts +10 -3
- package/src/__tests__/credential-token-resolver.test.ts +9 -0
- package/src/__tests__/daemon-assistant-events.test.ts +9 -1
- package/src/__tests__/daemon-credential-client.test.ts +7 -0
- package/src/__tests__/db-conversation-fork-lineage-migration.test.ts +8 -1
- package/src/__tests__/db-conversation-inference-profile-migration.test.ts +7 -1
- package/src/__tests__/db-llm-request-log-provider-migration.test.ts +8 -0
- package/src/__tests__/db-proxy-transaction.test.ts +206 -0
- package/src/__tests__/db-readiness-http-gate.test.ts +7 -0
- package/src/__tests__/db-rename-inference-profile-snake-case-migration.test.ts +7 -1
- package/src/__tests__/delete-managed-skill-tool.test.ts +7 -0
- package/src/__tests__/delete-propagation.test.ts +7 -0
- package/src/__tests__/deterministic-verification-control-plane.test.ts +7 -0
- package/src/__tests__/device-id.test.ts +9 -1
- package/src/__tests__/disk-pressure-tools.test.ts +4 -0
- package/src/__tests__/dm-backfill.test.ts +7 -0
- package/src/__tests__/dm-persistence.test.ts +5 -0
- package/src/__tests__/docker-signing-key-bootstrap.test.ts +8 -1
- package/src/__tests__/edit-propagation.test.ts +8 -1
- package/src/__tests__/embedding-managed-proxy-selection.test.ts +8 -0
- package/src/__tests__/emit-signal-routing-intent.test.ts +7 -175
- package/src/__tests__/encrypted-store.test.ts +9 -0
- package/src/__tests__/event-bus.test.ts +222 -0
- package/src/__tests__/events-client-registration.test.ts +7 -0
- package/src/__tests__/events-dev-bypass-actor.test.ts +9 -2
- package/src/__tests__/file-write-tool.test.ts +13 -9
- package/src/__tests__/followup-tools.test.ts +7 -0
- package/src/__tests__/gateway-flag-listener.test.ts +23 -2
- package/src/__tests__/gemini-inline-media.test.ts +2 -2
- package/src/__tests__/gemini-provider.test.ts +1 -140
- package/src/__tests__/get-skill-detail-audit.test.ts +1 -89
- package/src/__tests__/graph-extraction-event-date.test.ts +9 -0
- package/src/__tests__/guardian-action-sweep.test.ts +7 -0
- package/src/__tests__/guardian-binding-drift-heal.test.ts +7 -0
- package/src/__tests__/guardian-card-withdrawal.test.ts +8 -0
- package/src/__tests__/guardian-decision-primitive-canonical.test.ts +9 -1
- package/src/__tests__/guardian-dispatch.test.ts +7 -0
- package/src/__tests__/guardian-expiry-notifier.test.ts +9 -1
- package/src/__tests__/guardian-outbound-http.test.ts +7 -0
- package/src/__tests__/guardian-principal-id-roundtrip.test.ts +8 -1
- package/src/__tests__/guardian-routing-invariants.test.ts +8 -0
- package/src/__tests__/guardian-routing-state.test.ts +9 -1
- package/src/__tests__/guardian-verification-voice-binding.test.ts +7 -0
- package/src/__tests__/handlers-skills-memory-v2-reseed.test.ts +2 -0
- package/src/__tests__/handlers-user-message-approval-consumption.test.ts +5 -4
- package/src/__tests__/headless-browser-interactions.test.ts +7 -0
- package/src/__tests__/headless-browser-mode.test.ts +9 -0
- package/src/__tests__/headless-browser-navigate.test.ts +13 -91
- package/src/__tests__/headless-browser-read-tools.test.ts +7 -0
- package/src/__tests__/headless-browser-snapshot.test.ts +7 -0
- package/src/__tests__/heartbeat-disk-pressure.test.ts +9 -0
- package/src/__tests__/host-bash-proxy.test.ts +3 -3
- package/src/__tests__/host-browser-proxy.test.ts +20 -15
- package/src/__tests__/host-cu-routes-targeted.test.ts +1 -0
- package/src/__tests__/host-shell-tool.test.ts +69 -5
- package/src/__tests__/http-conversation-lineage.test.ts +7 -0
- package/src/__tests__/http-user-message-parity.test.ts +7 -0
- package/src/__tests__/identity-routes.test.ts +9 -1
- package/src/__tests__/inbound-invite-redemption.test.ts +7 -0
- package/src/__tests__/inbound-slack-persistence.test.ts +5 -0
- package/src/__tests__/inbound-trust-verdict.test.ts +8 -1
- package/src/__tests__/inference-profile-reaper.test.ts +7 -1
- package/src/__tests__/inference-profile-session-handler.test.ts +6 -0
- package/src/__tests__/inference-profile-session-ipc.test.ts +6 -0
- package/src/__tests__/ingress-url-consistency.test.ts +23 -1
- package/src/__tests__/injection-block.test.ts +1 -0
- package/src/__tests__/injector-chain.test.ts +0 -17
- package/src/__tests__/injector-pkb-v2-silenced.test.ts +0 -8
- package/src/__tests__/injector-registry-order-guard.test.ts +0 -1
- package/src/__tests__/inline-command-runner.test.ts +7 -0
- package/src/__tests__/inline-skill-load-permissions.test.ts +31 -29
- package/src/__tests__/internal-telemetry-routes.test.ts +7 -72
- package/src/__tests__/introduction-card-resolver.test.ts +9 -0
- package/src/__tests__/invite-redeemed-ipc.test.ts +7 -0
- package/src/__tests__/invite-routes-http.test.ts +11 -46
- package/src/__tests__/job-handler-registration-guard.test.ts +1 -1
- package/src/__tests__/jobs-store-qdrant-breaker.test.ts +7 -0
- package/src/__tests__/jobs-store-upsert-debounced.test.ts +7 -0
- package/src/__tests__/lexical-index-dual-write.test.ts +8 -2
- package/src/__tests__/list-messages-attachments.test.ts +7 -0
- package/src/__tests__/list-messages-background-tool-completion.test.ts +7 -0
- package/src/__tests__/list-messages-client-message-id.test.ts +7 -0
- package/src/__tests__/list-messages-hidden-metadata.test.ts +7 -0
- package/src/__tests__/list-messages-page-latest.test.ts +7 -0
- package/src/__tests__/list-messages-queued.test.ts +10 -9
- package/src/__tests__/list-messages-tool-merge.test.ts +7 -0
- package/src/__tests__/llm-catalog-parity.test.ts +0 -20
- package/src/__tests__/llm-context-resolution.test.ts +1 -26
- package/src/__tests__/llm-context-route-provider.test.ts +8 -1
- package/src/__tests__/llm-request-log-agent-loop-exit-reason.test.ts +16 -9
- package/src/__tests__/llm-request-log-call-site.test.ts +12 -5
- package/src/__tests__/llm-request-log-source-clickhouse.test.ts +22 -1
- package/src/__tests__/llm-request-log-source-factory.test.ts +21 -0
- package/src/__tests__/llm-request-log-turn-query.test.ts +7 -0
- package/src/__tests__/llm-resolver.test.ts +6 -167
- package/src/__tests__/llm-usage-store.test.ts +7 -1
- package/src/__tests__/log-export-routes.test.ts +7 -0
- package/src/__tests__/log-export-workspace.test.ts +7 -0
- package/src/__tests__/managed-profile-guard.test.ts +6 -240
- package/src/__tests__/managed-skill-lifecycle.test.ts +7 -0
- package/src/__tests__/managed-store.test.ts +16 -1
- package/src/__tests__/mcp-auth-routes.test.ts +8 -1
- package/src/__tests__/mcp-config-secret-boundary.test.ts +5 -17
- package/src/__tests__/media-generate-image.test.ts +7 -20
- package/src/__tests__/media-stream-output.test.ts +71 -755
- package/src/__tests__/media-stream-server-integration.test.ts +60 -290
- package/src/__tests__/media-stream-stt-session.test.ts +13 -26
- package/src/__tests__/memory-jobs-worker-backoff.test.ts +7 -8
- package/src/__tests__/memory-jobs-worker-lanes.test.ts +7 -0
- package/src/__tests__/memory-recall-log-store.test.ts +7 -0
- package/src/__tests__/memory-upsert-concurrency.test.ts +7 -0
- package/src/__tests__/message-queue.test.ts +0 -40
- package/src/__tests__/messages-after-tiebreaker.test.ts +8 -1
- package/src/__tests__/messaging-send-tool.test.ts +7 -0
- package/src/__tests__/migration-cross-version-compatibility.test.ts +7 -0
- package/src/__tests__/migration-export-http.test.ts +12 -10
- package/src/__tests__/migration-export-streaming.test.ts +7 -0
- package/src/__tests__/migration-export-to-gcs.test.ts +7 -60
- package/src/__tests__/migration-import-commit-http.test.ts +12 -11
- package/src/__tests__/migration-import-from-gcs.test.ts +7 -0
- package/src/__tests__/migration-import-from-url.test.ts +7 -0
- package/src/__tests__/migration-import-preflight-http.test.ts +11 -10
- package/src/__tests__/migration-jobs-status.test.ts +11 -8
- package/src/__tests__/migration-validate-http.test.ts +8 -2
- package/src/__tests__/model-intents.test.ts +0 -18
- package/src/__tests__/mtime-cache.test.ts +9 -102
- package/src/__tests__/non-member-access-request.test.ts +7 -145
- package/src/__tests__/notification-broadcaster.test.ts +7 -0
- package/src/__tests__/notification-candidate-guardian-context.test.ts +8 -1
- package/src/__tests__/notification-decision-fallback.test.ts +7 -0
- package/src/__tests__/notification-decision-identity.test.ts +7 -0
- package/src/__tests__/notification-decision-recipient-context.test.ts +7 -0
- package/src/__tests__/notification-deep-link.test.ts +11 -415
- package/src/__tests__/notification-guardian-path.test.ts +7 -0
- package/src/__tests__/notification-platform-adapter.test.ts +7 -0
- package/src/__tests__/notification-routing-intent.test.ts +9 -1
- package/src/__tests__/notification-schedule-notify-dedup.test.ts +9 -1
- package/src/__tests__/notification-telegram-adapter.test.ts +7 -0
- package/src/__tests__/oauth-cli.test.ts +1 -0
- package/src/__tests__/oauth-connect-orchestrator.test.ts +8 -0
- package/src/__tests__/oauth-connect-routes.test.ts +18 -19
- package/src/__tests__/oauth-provider-profiles.test.ts +7 -0
- package/src/__tests__/oauth-provider-visibility.test.ts +7 -0
- package/src/__tests__/oauth-store.test.ts +7 -0
- package/src/__tests__/openai-provider.test.ts +0 -11
- package/src/__tests__/openrouter-provider-only.test.ts +5 -16
- package/src/__tests__/openrouter-token-estimation.test.ts +2 -2
- package/src/__tests__/outbound-slack-persistence.test.ts +7 -0
- package/src/__tests__/outlook-email-watcher.test.ts +9 -0
- package/src/__tests__/path-policy.test.ts +7 -0
- package/src/__tests__/pending-interactions-resolved-event.test.ts +4 -26
- package/src/__tests__/persist-unsendable-image-downscale.test.ts +4 -4
- package/src/__tests__/persist-unsendable-image.test.ts +3 -1
- package/src/__tests__/persist-user-message-set-processing-failure.test.ts +0 -41
- package/src/__tests__/persistence-secret-redaction.test.ts +7 -0
- package/src/__tests__/persona-resolver.test.ts +1 -1
- package/src/__tests__/personal-memory-auth-bypass.test.ts +4 -2
- package/src/__tests__/platform-bash-auto-approve.test.ts +10 -20
- package/src/__tests__/platform-callback-registration.test.ts +9 -10
- package/src/__tests__/platform-proxy-context.test.ts +8 -0
- package/src/__tests__/playbook-execution.test.ts +33 -2
- package/src/__tests__/playbook-tools.test.ts +7 -0
- package/src/__tests__/plugin-api-model-profiles.test.ts +4 -25
- package/src/__tests__/plugin-effective-enabled-set.test.ts +29 -29
- package/src/__tests__/plugin-import-boundary-guard.test.ts +25 -13
- package/src/__tests__/plugin-types.test.ts +1 -1
- package/src/__tests__/pointer-conversation-trust.test.ts +4 -2
- package/src/__tests__/pricing.test.ts +2 -85
- package/src/__tests__/process-message-background-slack.test.ts +5 -4
- package/src/__tests__/process-message-display-content.test.ts +10 -102
- package/src/__tests__/processing-flag-persist-failure.test.ts +5 -0
- package/src/__tests__/provider-commit-message-generator.test.ts +8 -15
- package/src/__tests__/provider-error-scenarios.test.ts +5 -68
- package/src/__tests__/provider-platform-proxy-integration.test.ts +2 -17
- package/src/__tests__/provider-registry-ollama.test.ts +1 -14
- package/src/__tests__/provider-send-message-override-profile.test.ts +5 -13
- package/src/__tests__/provider-streaming.benchmark.test.ts +6 -1
- package/src/__tests__/provider-usage-tracking.test.ts +6 -9
- package/src/__tests__/proxy-approval-callback.test.ts +6 -0
- package/src/__tests__/prune-old-conversations-job.test.ts +9 -1
- package/src/__tests__/prune-old-tool-invocations-job.test.ts +9 -1
- package/src/__tests__/public-ingress-urls.test.ts +24 -1
- package/src/__tests__/qdrant-collection-migration.test.ts +7 -0
- package/src/__tests__/qdrant-manager.test.ts +8 -0
- package/src/__tests__/ratelimit.test.ts +8 -1
- package/src/__tests__/reaction-intercept-cold-cache-warm.test.ts +141 -0
- package/src/__tests__/reaction-intercept-member-verdict-warm.test.ts +157 -0
- package/src/__tests__/reaction-persistence.test.ts +7 -0
- package/src/__tests__/rebuild-index-graph-nodes.test.ts +11 -0
- package/src/__tests__/registry.test.ts +12 -39
- package/src/__tests__/require-fresh-approval.test.ts +182 -47
- package/src/__tests__/resolve-trust-class.test.ts +1 -1
- package/src/__tests__/retry-openrouter-only-normalization.test.ts +5 -9
- package/src/__tests__/retry-thinking-adaptive-only.test.ts +5 -19
- package/src/__tests__/retry-thinking-tool-choice.test.ts +5 -65
- package/src/__tests__/retry-verbosity-normalization.test.ts +5 -9
- package/src/__tests__/runtime-attachment-metadata.test.ts +7 -0
- package/src/__tests__/runtime-events-sse-bilingual.test.ts +7 -0
- package/src/__tests__/runtime-events-sse-parity.test.ts +7 -0
- package/src/__tests__/runtime-events-sse-reconnect.test.ts +7 -0
- package/src/__tests__/runtime-events-sse.test.ts +7 -0
- package/src/__tests__/scaffold-managed-skill-tool.test.ts +9 -131
- package/src/__tests__/schedule-retry.test.ts +8 -0
- package/src/__tests__/schedule-routes-workflow-validation.test.ts +7 -0
- package/src/__tests__/schedule-routes.test.ts +7 -0
- package/src/__tests__/schedule-store.test.ts +8 -0
- package/src/__tests__/schedule-tools.test.ts +7 -0
- package/src/__tests__/scheduler-disk-pressure.test.ts +10 -0
- package/src/__tests__/scheduler-recurrence.test.ts +96 -19
- package/src/__tests__/scheduler-reuse-conversation.test.ts +88 -75
- package/src/__tests__/scheduler-wake.test.ts +60 -12
- package/src/__tests__/scheduler-worker-standdown.test.ts +8 -0
- package/src/__tests__/scoped-approval-grants.test.ts +9 -1
- package/src/__tests__/scoped-grant-security-matrix.test.ts +9 -1
- package/src/__tests__/secret-allowlist.test.ts +8 -1
- package/src/__tests__/secret-ingress-channel.test.ts +7 -0
- package/src/__tests__/secret-ingress-cli.test.ts +7 -0
- package/src/__tests__/secret-ingress-http.test.ts +11 -3
- package/src/__tests__/secret-prompter-channel-fallback.test.ts +9 -35
- package/src/__tests__/secret-response-routing.test.ts +1 -1
- package/src/__tests__/secret-routes-platform-proxy.test.ts +7 -0
- package/src/__tests__/secure-keys-managed-failover.test.ts +7 -0
- package/src/__tests__/secure-keys.test.ts +33 -142
- package/src/__tests__/send-endpoint-busy.test.ts +19 -0
- package/src/__tests__/sequence-store.test.ts +9 -0
- package/src/__tests__/server-history-render.test.ts +8 -61
- package/src/__tests__/service-contracts-import-guard.test.ts +9 -4
- package/src/__tests__/set-permission-mode.test.ts +7 -0
- package/src/__tests__/settings-routes.test.ts +7 -0
- package/src/__tests__/shell-credential-ref.test.ts +8 -0
- package/src/__tests__/shell-tool-proxy-mode.test.ts +7 -0
- package/src/__tests__/skill-memory.test.ts +85 -0
- package/src/__tests__/skill-projection-feature-flag.test.ts +17 -35
- package/src/__tests__/skill-projection.benchmark.test.ts +7 -7
- package/src/__tests__/skill-runtime-path.test.ts +63 -0
- package/src/__tests__/skill-script-runner-sandbox.test.ts +7 -0
- package/src/__tests__/skills-files-catalog-fallback.test.ts +7 -0
- package/src/__tests__/slack-channels-routes.test.ts +16 -34
- package/src/__tests__/slack-inbound-verification.test.ts +7 -0
- package/src/__tests__/slack-reaction-canonical-approval.test.ts +8 -0
- package/src/__tests__/slim-skill-category.test.ts +7 -0
- package/src/__tests__/stale-approval-dedup.test.ts +7 -0
- package/src/__tests__/subagent-call-site-routing.test.ts +11 -45
- package/src/__tests__/subagent-detail.test.ts +1 -2
- package/src/__tests__/subagent-fork-prompt-role.test.ts +5 -0
- package/src/__tests__/subagent-fork-spawn.test.ts +37 -0
- package/src/__tests__/subagent-spawn-and-await.test.ts +5 -0
- package/src/__tests__/subagent-tool-gate-mode.test.ts +7 -1
- package/src/__tests__/subagent-tools.test.ts +36 -77
- package/src/__tests__/suggestion-routes.test.ts +42 -28
- package/src/__tests__/task-compiler.test.ts +7 -0
- package/src/__tests__/task-management-tools.test.ts +7 -0
- package/src/__tests__/task-memory-cleanup.test.ts +18 -0
- package/src/__tests__/task-scheduler.test.ts +9 -40
- package/src/__tests__/telegram-bot-username-resolution.test.ts +8 -0
- package/src/__tests__/telephony-tts-guard.test.ts +26 -118
- package/src/__tests__/test-preload.ts +1 -11
- package/src/__tests__/thread-backfill.test.ts +8 -2
- package/src/__tests__/token-manager.test.ts +9 -0
- package/src/__tests__/tool-approval-handler.test.ts +88 -57
- package/src/__tests__/{tool-audit.test.ts → tool-audit-listener.test.ts} +255 -230
- package/src/__tests__/tool-domain-event-publisher.test.ts +216 -0
- package/src/__tests__/tool-execution-abort-cleanup.test.ts +33 -5
- package/src/__tests__/tool-execution-pipeline.benchmark.test.ts +8 -1
- package/src/__tests__/tool-executor-lifecycle-events.test.ts +411 -308
- package/src/__tests__/tool-executor.test.ts +26 -37
- package/src/__tests__/tool-grant-request-escalation.test.ts +31 -17
- package/src/__tests__/tool-metrics-listener.test.ts +194 -0
- package/src/__tests__/tool-preview-lifecycle.test.ts +8 -0
- package/src/__tests__/tool-profiling-listener.test.ts +219 -0
- package/src/__tests__/tool-result-metadata-plumbing.test.ts +8 -0
- package/src/__tests__/tool-start-timestamp.test.ts +10 -4
- package/src/__tests__/tools-get-route.test.ts +3 -75
- package/src/__tests__/trust-context-guards.test.ts +1 -1
- package/src/__tests__/trusted-contact-approval-notifier.test.ts +1 -1
- package/src/__tests__/trusted-contact-inline-approval-integration.test.ts +26 -9
- package/src/__tests__/trusted-contact-lifecycle-notifications.test.ts +7 -0
- package/src/__tests__/trusted-contact-multichannel.test.ts +7 -0
- package/src/__tests__/trusted-contact-verification.test.ts +139 -6
- package/src/__tests__/turn-boundary-resolution.test.ts +7 -0
- package/src/__tests__/turn-events-store.test.ts +7 -51
- package/src/__tests__/twilio-config.test.ts +7 -0
- package/src/__tests__/twilio-provider.test.ts +7 -0
- package/src/__tests__/twilio-routes-twiml.test.ts +8 -1
- package/src/__tests__/twilio-routes.test.ts +5 -12
- package/src/__tests__/twilio-validation.test.ts +7 -0
- package/src/__tests__/usage-attribution.test.ts +1 -91
- package/src/__tests__/usage-cache-backfill-migration.test.ts +7 -0
- package/src/__tests__/usage-routes.test.ts +8 -1
- package/src/__tests__/vbundle-pax-and-symlink.test.ts +7 -0
- package/src/__tests__/vercel-config.test.ts +7 -0
- package/src/__tests__/verification-control-plane-policy.test.ts +31 -60
- package/src/__tests__/voice-approval-resolver-relay.test.ts +9 -3
- package/src/__tests__/voice-config-update.test.ts +22 -1
- package/src/__tests__/voice-guardian-cold-cache-warm.test.ts +17 -8
- package/src/__tests__/voice-scoped-grant-consumer.test.ts +10 -1
- package/src/__tests__/voice-session-bridge-processing-wait.test.ts +7 -0
- package/src/__tests__/voice-session-bridge.test.ts +68 -116
- package/src/__tests__/workspace-migration-009-backfill-conversation-disk-view.test.ts +8 -0
- package/src/__tests__/workspace-migration-013-repair-conversation-disk-view.test.ts +8 -0
- package/src/__tests__/workspace-migration-028-recover-conversations-from-disk-view.test.ts +8 -0
- package/src/__tests__/workspace-tool-loader.test.ts +1 -5
- package/src/a2a/__tests__/e2e-a2a-channel.test.ts +10 -1
- package/src/a2a/__tests__/task-store.test.ts +9 -0
- package/src/acp/__tests__/session-manager-persistence.test.ts +8 -1
- package/src/acp/__tests__/session-manager-resume.test.ts +7 -0
- package/src/acp/__tests__/session-manager-startup.test.ts +8 -1
- package/src/agent/attachments.ts +0 -57
- package/src/agent/loop-exclusive-tool.test.ts +5 -28
- package/src/agent/loop.ts +63 -25
- package/src/api/responses/conversation-message.ts +15 -9
- package/src/approvals/guardian-expiry-notifier.ts +0 -6
- package/src/approvals/guardian-request-resolvers.ts +21 -42
- package/src/background-wake/wake-intent-hooks.test.ts +10 -2
- package/src/browser/operations.ts +477 -2
- package/src/calls/__tests__/call-setup-router.test.ts +321 -341
- package/src/calls/__tests__/channel-admission-reader.test.ts +24 -50
- package/src/calls/__tests__/fish-audio-client.test.ts +11 -35
- package/src/calls/__tests__/inbound-trust-reader.test.ts +34 -157
- package/src/calls/__tests__/tts-text-sanitizer.test.ts +0 -22
- package/src/calls/access-request-wait.ts +1 -3
- package/src/calls/audio-store.ts +6 -6
- package/src/calls/call-constants.ts +1 -1
- package/src/calls/call-controller.ts +64 -242
- package/src/calls/call-setup-flow-types.ts +2 -2
- package/src/calls/call-setup-flow.ts +57 -19
- package/src/calls/call-setup-router.ts +39 -63
- package/src/calls/call-speech-output.ts +39 -39
- package/src/calls/call-transport.ts +5 -17
- package/src/calls/channel-admission-reader.ts +28 -38
- package/src/calls/fish-audio-client.ts +52 -24
- package/src/calls/gateway-invite-reader.ts +19 -15
- package/src/calls/inbound-trust-reader.ts +25 -74
- package/src/calls/media-stream-audio-transcode.ts +1 -1
- package/src/calls/media-stream-output.ts +64 -482
- package/src/calls/media-stream-server.ts +83 -156
- package/src/calls/media-stream-stt-session.ts +0 -1
- package/src/calls/resolve-call-tts-provider.ts +17 -60
- package/src/calls/telephony-tts-capability.ts +13 -13
- package/src/calls/tts-text-sanitizer.ts +3 -5
- package/src/calls/voice-session-bridge.ts +52 -397
- package/src/channels/gateway-verification-sessions.ts +8 -4
- package/src/cli/AGENTS.md +51 -60
- package/src/cli/commands/__tests__/schedules.test.ts +1 -133
- package/src/cli/commands/attachment.ts +157 -92
- package/src/cli/commands/audit.ts +86 -66
- package/src/cli/commands/auth.ts +43 -10
- package/src/cli/commands/avatar.ts +250 -66
- package/src/cli/commands/backup.ts +276 -109
- package/src/cli/commands/bash.ts +75 -55
- package/src/cli/commands/browser.ts +352 -241
- package/src/cli/commands/config.ts +164 -166
- package/src/cli/commands/contacts.ts +22 -13
- package/src/cli/commands/credential-execution.ts +362 -0
- package/src/cli/commands/credentials.ts +28 -38
- package/src/cli/commands/db/repair-step-conversation-backfill.ts +10 -19
- package/src/cli/commands/db/repair.ts +8 -20
- package/src/cli/commands/default-action.ts +3 -8
- package/src/cli/commands/domain.ts +22 -36
- package/src/cli/commands/email.ts +36 -77
- package/src/cli/commands/inference-providers.ts +24 -117
- package/src/cli/commands/inference.ts +0 -6
- package/src/cli/commands/keys.ts +38 -27
- package/src/cli/commands/memory/index.ts +0 -8
- package/src/cli/commands/memory/memory-retrospective.ts +5 -7
- package/src/cli/commands/memory/memory-v2-compare-render.ts +2 -2
- package/src/cli/commands/oauth/shared.ts +1 -1
- package/src/cli/commands/oauth/status.test.ts +6 -6
- package/src/cli/commands/oauth/status.ts +6 -12
- package/src/cli/commands/oauth/token.ts +26 -1
- package/src/cli/commands/plugins.ts +116 -210
- package/src/cli/commands/schedules.ts +2 -17
- package/src/cli/commands/tools-run.ts +4 -4
- package/src/cli/commands/tools.ts +7 -23
- package/src/cli/commands/ui.ts +3 -2
- package/src/cli/commands/usage.ts +21 -59
- package/src/cli/lib/__tests__/diff-plugin.test.ts +5 -2
- package/src/cli/lib/__tests__/inspect-plugin.test.ts +1 -1
- package/src/cli/lib/__tests__/install-from-github.test.ts +5 -37
- package/src/cli/lib/__tests__/list-installed-plugins.test.ts +0 -36
- package/src/cli/lib/__tests__/plugin-artifact.test.ts +1 -54
- package/src/cli/lib/__tests__/plugin-details.test.ts +1 -137
- package/src/cli/lib/__tests__/plugin-marketplace.test.ts +1 -1
- package/src/cli/lib/__tests__/plugin-pin-history.test.ts +1 -1
- package/src/cli/lib/__tests__/search-plugins.test.ts +1 -1
- package/src/cli/lib/__tests__/uninstall-plugin.test.ts +21 -82
- package/src/cli/lib/__tests__/upgrade-plugin.test.ts +1 -1
- package/src/cli/lib/diff-plugin.ts +2 -2
- package/src/cli/lib/inspect-plugin.ts +2 -2
- package/src/cli/lib/install-from-github.ts +15 -61
- package/src/cli/lib/list-installed-plugins.ts +5 -39
- package/src/cli/lib/plugin-artifact.ts +0 -30
- package/src/cli/lib/plugin-details.ts +11 -51
- package/src/cli/lib/plugin-marketplace.ts +4 -1
- package/src/cli/lib/plugin-pin-history.ts +12 -27
- package/src/cli/lib/publish-plugin.ts +3 -3
- package/src/cli/lib/search-plugins.ts +6 -2
- package/src/cli/lib/uninstall-plugin.ts +2 -24
- package/src/cli/lib/upgrade-plugin.ts +22 -8
- package/src/cli/program.ts +2 -0
- package/src/cli.ts +13 -22
- package/src/config/__tests__/bundled-tool-registry-guard.test.ts +120 -0
- package/src/config/__tests__/deployment-context-defaults.test.ts +21 -0
- package/src/config/__tests__/loader-callsite-strip-fallback.test.ts +21 -0
- package/src/config/__tests__/sync-gated-profiles.test.ts +34 -27
- package/src/config/assistant-feature-flags.ts +1 -1
- package/src/config/bundled-skills/_shared/CLI_RETRIEVAL_PATTERN.md +8 -9
- package/src/config/bundled-skills/messaging/tools/messaging-analyze-style.ts +6 -0
- package/src/config/bundled-skills/phone-calls/references/CONFIG.md +2 -2
- package/src/config/bundled-skills/playbooks/tools/playbook-create.ts +3 -0
- package/src/config/bundled-skills/playbooks/tools/playbook-delete.ts +3 -0
- package/src/config/bundled-skills/playbooks/tools/playbook-list.ts +3 -1
- package/src/config/bundled-skills/playbooks/tools/playbook-update.ts +4 -0
- package/src/config/bundled-skills/schedule/SKILL.md +0 -17
- package/src/config/bundled-skills/transcribe/tools/transcribe-media.test.ts +7 -0
- package/src/config/bundled-tool-registry.ts +281 -0
- package/src/config/call-site-defaults.ts +2 -5
- package/src/config/env-registry.ts +0 -2
- package/src/config/env.ts +6 -0
- package/src/config/feature-flag-registry.json +48 -40
- package/src/config/inference-profile-validation.ts +4 -5
- package/src/config/llm-resolver.ts +24 -447
- package/src/config/loader.ts +10 -345
- package/src/config/schema.ts +52 -2
- package/src/config/schemas/__tests__/llm-request-logs.test.ts +5 -33
- package/src/config/schemas/analysis.ts +32 -0
- package/src/config/schemas/call-site-catalog.ts +6 -0
- package/src/config/schemas/calls.ts +0 -9
- package/src/config/schemas/conversations.ts +1 -1
- package/src/config/schemas/llm-request-logs.ts +27 -78
- package/src/config/schemas/llm.ts +2 -53
- package/src/config/schemas/memory-lifecycle.ts +6 -0
- package/src/config/schemas/memory.ts +1 -57
- package/src/config/seed-inference-profiles.ts +289 -100
- package/src/config/sync-gated-profiles.ts +23 -17
- package/src/contacts/canonical-guardian-store.ts +0 -6
- package/src/contacts/contact-store.ts +51 -272
- package/src/contacts/contacts-write.ts +22 -0
- package/src/contacts/guardian-contact-reader.ts +2 -3
- package/src/contacts/member-write-relay.ts +19 -2
- package/src/contacts/types.ts +1 -2
- package/src/context/compactor.ts +38 -230
- package/src/context/image-dimensions.ts +3 -25
- package/src/context/token-estimator.ts +7 -11
- package/src/conversations/__tests__/message-consolidation.test.ts +5 -6
- package/src/conversations/job-handlers/summarization.ts +2 -0
- package/src/conversations/message-consolidation.ts +112 -34
- package/src/credential-execution/approval-bridge.ts +320 -0
- package/src/credential-execution/executable-discovery.ts +144 -16
- package/src/credential-execution/feature-gates.ts +61 -0
- package/src/credential-execution/process-manager.test.ts +112 -1
- package/src/credential-execution/process-manager.ts +379 -13
- package/src/credential-execution/prompted-credential.ts +1 -1
- package/src/daemon/__tests__/conversation-lifecycle-auto-analyze.test.ts +449 -0
- package/src/daemon/__tests__/conversation-surfaces-launch.test.ts +1 -1
- package/src/daemon/__tests__/inference-profile-notification.test.ts +8 -0
- package/src/daemon/__tests__/native-web-search-metadata.test.ts +8 -0
- package/src/daemon/__tests__/wake-conversation-ops-completion.test.ts +6 -0
- package/src/daemon/__tests__/web-search-status-text.test.ts +8 -0
- package/src/daemon/approval-generators.ts +11 -17
- package/src/daemon/assistant-attachments.ts +87 -86
- package/src/daemon/config-watcher.ts +21 -67
- package/src/daemon/conversation-agent-loop-handlers.ts +29 -52
- package/src/daemon/conversation-agent-loop.ts +34 -136
- package/src/daemon/conversation-error.ts +110 -277
- package/src/daemon/conversation-history.ts +12 -6
- package/src/daemon/conversation-initial-prompt.ts +1 -1
- package/src/daemon/conversation-launch.ts +1 -1
- package/src/daemon/conversation-lifecycle.ts +22 -5
- package/src/daemon/conversation-media-retry.ts +2 -3
- package/src/daemon/conversation-messaging.ts +66 -296
- package/src/daemon/conversation-notifiers.ts +1 -1
- package/src/daemon/conversation-process.ts +12 -162
- package/src/daemon/conversation-queue-manager.ts +0 -12
- package/src/daemon/conversation-runtime-assembly.ts +53 -197
- package/src/daemon/conversation-skill-tools.ts +9 -27
- package/src/daemon/conversation-slash.ts +4 -2
- package/src/daemon/conversation-store.ts +13 -11
- package/src/daemon/conversation-surfaces.ts +176 -145
- package/src/daemon/conversation-tool-setup.ts +12 -18
- package/src/daemon/conversation-turn-finalize.ts +1 -0
- package/src/daemon/conversation.ts +85 -265
- package/src/daemon/disk-pressure-policy.ts +1 -1
- package/src/daemon/event-loop-watchdog.test.ts +6 -1
- package/src/daemon/event-loop-watchdog.ts +20 -2
- package/src/daemon/handlers/__tests__/config-a2a-accept.test.ts +7 -0
- package/src/daemon/handlers/__tests__/config-a2a-complete.test.ts +8 -1
- package/src/daemon/handlers/__tests__/config-a2a-invite.test.ts +8 -1
- package/src/daemon/handlers/__tests__/config-a2a-redeem.test.ts +8 -1
- package/src/daemon/handlers/__tests__/config-a2a.test.ts +8 -1
- package/src/daemon/handlers/config-a2a.ts +3 -0
- package/src/daemon/handlers/conversation-history.ts +4 -6
- package/src/daemon/handlers/shared.ts +79 -224
- package/src/daemon/handlers/skills.ts +0 -8
- package/src/daemon/lifecycle.ts +64 -120
- package/src/daemon/main.ts +5 -1
- package/src/daemon/message-types/conversations.ts +0 -2
- package/src/daemon/message-types/host-bash.ts +1 -1
- package/src/daemon/message-types/skills.ts +0 -6
- package/src/daemon/message-types/sync.ts +0 -1
- package/src/daemon/orphan-reaper.test.ts +6 -1
- package/src/daemon/pointer-conversation-trust.ts +4 -2
- package/src/daemon/process-message.ts +8 -82
- package/src/daemon/providers-setup.ts +4 -1
- package/src/daemon/shutdown-handlers.ts +4 -0
- package/src/daemon/sqlite-corruption-watchdog.test.ts +13 -0
- package/src/daemon/sqlite-corruption-watchdog.ts +15 -2
- package/src/daemon/tool-setup-types.ts +1 -1
- package/src/daemon/trust-context.ts +55 -5
- package/src/daemon/wake-conversation-ops.ts +1 -4
- package/src/documents/document-comments-store.test.ts +7 -1
- package/src/events/bus.ts +177 -0
- package/src/events/domain-events.ts +68 -0
- package/src/events/tool-audit-listener.ts +184 -0
- package/src/events/tool-domain-event-publisher.ts +90 -0
- package/src/events/tool-metrics-listener.ts +134 -0
- package/src/events/tool-permission-telemetry-listener.ts +44 -0
- package/src/{tools/tool-profiler.ts → events/tool-profiling-listener.ts} +32 -64
- package/src/export/__tests__/transcript-formatter.test.ts +8 -13
- package/src/export/formatter.ts +17 -8
- package/src/export/transcript-formatter.ts +40 -13
- package/src/heartbeat/__tests__/heartbeat-run-store.test.ts +9 -0
- package/src/heartbeat/__tests__/heartbeat-service.test.ts +2 -0
- package/src/home/__tests__/home-content-refresh.test.ts +7 -0
- package/src/home/__tests__/suggested-prompts.test.ts +12 -4
- package/src/home/conversation-starter-checkpoints.ts +5 -9
- package/src/home/job-handlers/conversation-starters.ts +54 -24
- package/src/home/suggested-prompts.ts +77 -4
- package/src/hooks/__tests__/hook-live-reload.test.ts +48 -62
- package/src/hooks/hook-loader.ts +194 -215
- package/src/hooks/types.ts +2 -2
- package/src/instrument.ts +213 -0
- package/src/ipc/__tests__/contacts-info-ipc.test.ts +11 -66
- package/src/ipc/assistant-server.ts +34 -14
- package/src/ipc/gateway-flag-listener.ts +25 -14
- package/src/ipc/routes/__tests__/contacts-mirror-ipc-routes.test.ts +17 -149
- package/src/ipc/routes/__tests__/invite-ipc-routes.test.ts +7 -0
- package/src/ipc/routes/__tests__/memory-v2-backfill.test.ts +7 -5
- package/src/ipc/routes/contacts-info-ipc-routes.ts +2 -5
- package/src/ipc/routes/contacts-mirror-ipc-routes.ts +1 -78
- package/src/ipc/routes/db-proxy-transaction.ts +151 -0
- package/src/ipc/routes/db-proxy.ts +15 -9
- package/src/live-voice/__tests__/live-voice-archive.test.ts +8 -1
- package/src/live-voice/__tests__/live-voice-integration.test.ts +0 -124
- package/src/live-voice/__tests__/live-voice-metrics.test.ts +0 -67
- package/src/live-voice/__tests__/live-voice-stt.test.ts +19 -464
- package/src/live-voice/__tests__/live-voice-tts-session.test.ts +4 -350
- package/src/live-voice/__tests__/live-voice-tts.test.ts +10 -186
- package/src/live-voice/__tests__/live-voice-vad.test.ts +10 -372
- package/src/live-voice/__tests__/protocol.test.ts +0 -2
- package/src/live-voice/__tests__/runtime-websocket-shell.test.ts +9 -61
- package/src/live-voice/live-voice-metrics.ts +0 -44
- package/src/live-voice/live-voice-session-manager.ts +0 -19
- package/src/live-voice/live-voice-session.ts +276 -1015
- package/src/live-voice/live-voice-tts.ts +4 -50
- package/src/live-voice/protocol.ts +0 -8
- package/src/mcp/__tests__/mcp-auth-orchestrator.test.ts +7 -3
- package/src/messaging/channel-binding-schema.ts +7 -15
- package/src/messaging/providers/a2a/__tests__/deliver.test.ts +9 -0
- package/src/messaging/providers/slack/__tests__/download.test.ts +8 -1
- package/src/messaging/providers/slack/binding-metadata.ts +0 -6
- package/src/messaging/providers/slack/conversation-utils.ts +4 -7
- package/src/messaging/providers/slack/send.test.ts +7 -0
- package/src/messaging/providers/slack/types.ts +0 -2
- package/src/messaging/providers/slack/withdraw.test.ts +6 -0
- package/src/messaging/providers/telegram-bot/send.test.ts +7 -0
- package/src/monitoring/__tests__/resource-sampler.test.ts +4 -2
- package/src/monitoring/__tests__/stall-capture.test.ts +1 -1
- package/src/monitoring/process-memory.ts +1 -6
- package/src/monitoring/resource-sampler.ts +69 -7
- package/src/monitoring/stall-capture.ts +1 -1
- package/src/notifications/__tests__/broadcaster.test.ts +9 -100
- package/src/notifications/__tests__/connected-channels.test.ts +8 -11
- package/src/notifications/__tests__/decision-engine.test.ts +7 -0
- package/src/notifications/__tests__/destination-resolver.test.ts +12 -18
- package/src/notifications/__tests__/deterministic-checks.test.ts +9 -1
- package/src/notifications/access-request-copy.ts +1 -33
- package/src/notifications/adapters/slack.ts +2 -7
- package/src/notifications/approval-card-data.ts +2 -4
- package/src/notifications/broadcaster.ts +67 -118
- package/src/notifications/copy-composer.ts +2 -6
- package/src/notifications/emit-signal.ts +1 -23
- package/src/notifications/signal.ts +4 -5
- package/src/notifications/types.ts +1 -1
- package/src/oauth/byo-connection.test.ts +10 -1
- package/src/oauth/connect-orchestrator.ts +1 -1
- package/src/oauth/connection-resolver.test.ts +7 -140
- package/src/oauth/connection-resolver.ts +12 -48
- package/src/oauth/oauth-store.ts +11 -4
- package/src/onboarding/__tests__/onboarding-events-store.test.ts +8 -0
- package/src/permissions/approval-policy.test.ts +314 -0
- package/src/permissions/approval-policy.ts +90 -38
- package/src/permissions/checker.test.ts +14 -3
- package/src/permissions/checker.ts +19 -95
- package/src/permissions/gateway-threshold-reader.test.ts +8 -0
- package/src/permissions/ipc-risk-types.ts +0 -2
- package/src/permissions/prompter.ts +3 -16
- package/src/permissions/secret-prompter.ts +19 -21
- package/src/permissions/types.ts +14 -0
- package/src/persistence/__tests__/conversation-queries-search.test.ts +7 -0
- package/src/persistence/__tests__/slow-query-log.test.ts +0 -125
- package/src/persistence/attachments-store.ts +26 -90
- package/src/persistence/auto-analysis-constants.ts +13 -4
- package/src/persistence/cleanup-schedule-state.ts +21 -51
- package/src/persistence/conversation-bootstrap.ts +3 -3
- package/src/persistence/conversation-crud.ts +94 -311
- package/src/persistence/conversation-disk-view.ts +15 -32
- package/src/persistence/conversation-group-migration.test.ts +8 -1
- package/src/persistence/conversation-key-store.ts +2 -0
- package/src/persistence/conversation-row-batch-delete.ts +1 -16
- package/src/persistence/conversation-title-service.ts +22 -59
- package/src/persistence/conversation-types.ts +4 -19
- package/src/persistence/db-async-query.ts +9 -18
- package/src/persistence/db-connection.ts +4 -20
- package/src/persistence/db-init.ts +173 -16
- package/src/persistence/db-maintenance.ts +6 -78
- package/src/persistence/embeddings/__tests__/messages-lexical-index.test.ts +7 -0
- package/src/persistence/embeddings/qdrant-client.ts +18 -2
- package/src/persistence/fork-message-copy.ts +4 -18
- package/src/persistence/job-handlers/__tests__/message-lexical-backfill.test.ts +7 -0
- package/src/persistence/job-handlers/__tests__/message-lexical-enqueue.test.ts +6 -0
- package/src/persistence/job-handlers/__tests__/message-lexical.test.ts +7 -0
- package/src/persistence/jobs-store.ts +85 -48
- package/src/persistence/llm-request-log-store.ts +100 -213
- package/src/persistence/message-content.ts +72 -33
- package/src/persistence/migrations/__tests__/297-move-llm-request-logs.test.ts +2 -2
- package/src/persistence/schema/conversations.ts +1 -25
- package/src/persistence/schema/guardian.ts +0 -5
- package/src/persistence/schema/infrastructure.ts +0 -21
- package/src/persistence/schema/memory-core.ts +28 -17
- package/src/persistence/schema/memory-graph.ts +4 -0
- package/src/persistence/schema/memory-injection.ts +1 -3
- package/src/persistence/schema/tasks.ts +1 -0
- package/src/persistence/slow-query-log.ts +21 -58
- package/src/persistence/steps.ts +0 -12
- package/src/platform/consent-cache.test.ts +7 -0
- package/src/playbooks/playbook-compiler.ts +10 -2
- package/src/plugin-api/index.ts +0 -79
- package/src/plugin-api/model-profiles.test.ts +3 -31
- package/src/plugin-api/model-profiles.ts +1 -3
- package/src/plugin-api/types.ts +3 -12
- package/src/plugin-api/vision-support.ts +3 -4
- package/src/plugins/defaults/compaction/compact.ts +0 -13
- package/src/plugins/defaults/compaction/window-manager.ts +43 -207
- package/src/plugins/defaults/image-fallback/__tests__/image-fallback.test.ts +2 -281
- package/src/plugins/defaults/image-fallback/hooks/post-tool-use.ts +4 -7
- package/src/plugins/defaults/image-fallback/hooks/user-prompt-submit.ts +12 -12
- package/src/plugins/defaults/image-fallback/src/caption-blocks.ts +15 -73
- package/src/plugins/defaults/image-fallback/src/caption-cache.ts +20 -206
- package/src/plugins/defaults/image-fallback/src/vision-caption.ts +3 -11
- package/src/plugins/defaults/image-recovery/recover.ts +23 -50
- package/src/plugins/defaults/index.ts +5 -29
- package/src/plugins/defaults/injector-order.ts +0 -1
- package/src/plugins/defaults/memory/__tests__/activation-session-store.test.ts +8 -1
- package/src/plugins/defaults/memory/__tests__/clear-stale-processing-flags.test.ts +8 -1
- package/src/plugins/defaults/memory/__tests__/conversation-queries.test.ts +8 -1
- package/src/plugins/defaults/memory/__tests__/conversation-row-batch-delete.test.ts +6 -0
- package/src/plugins/defaults/memory/__tests__/db-maintenance.test.ts +11 -105
- package/src/plugins/defaults/memory/__tests__/db-memory-attach.test.ts +18 -22
- package/src/plugins/defaults/memory/__tests__/embedding-cache.test.ts +6 -0
- package/src/plugins/defaults/memory/__tests__/find-analysis-conversation.test.ts +197 -0
- package/src/plugins/defaults/memory/__tests__/find-most-recent-retrospective-for.test.ts +8 -1
- package/src/plugins/defaults/memory/__tests__/fork-message-copy.test.ts +6 -0
- package/src/plugins/defaults/memory/__tests__/jobs-store-enqueue-gate.test.ts +70 -7
- package/src/plugins/defaults/memory/__tests__/jobs-worker-memory-disabled.test.ts +7 -0
- package/src/plugins/defaults/memory/__tests__/jobs-worker-pkb-schedule.test.ts +0 -7
- package/src/plugins/defaults/memory/__tests__/jobs-worker-v2-graph-trigger-embed.test.ts +5 -0
- package/src/plugins/defaults/memory/__tests__/jobs-worker-v2-schedule.test.ts +0 -7
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-enqueue.test.ts +7 -0
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-job.test.ts +19 -186
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-startup-cleanup.test.ts +82 -136
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-state.test.ts +6 -0
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-trigger-check.test.ts +2 -217
- package/src/plugins/defaults/memory/__tests__/memory-v2-activation-log-store.test.ts +7 -0
- package/src/plugins/defaults/memory/__tests__/memory-v2-concept-frequency.test.ts +7 -0
- package/src/plugins/defaults/memory/__tests__/table-relocation.test.ts +0 -49
- package/src/plugins/defaults/memory/activation-session-store.ts +1 -1
- package/src/plugins/defaults/memory/anisotropy.ts +1 -1
- package/src/plugins/defaults/memory/config.ts +6 -155
- package/src/plugins/defaults/memory/context-search/agent-protocol.ts +1 -1
- package/src/plugins/defaults/memory/context-search/search.ts +1 -1
- package/src/plugins/defaults/memory/context-search/sources/conversations.ts +23 -26
- package/src/plugins/defaults/memory/context-search/sources/memory-v2.ts +1 -1
- package/src/plugins/defaults/memory/context-search/sources/memory.ts +1 -1
- package/src/plugins/defaults/memory/embeddings.ts +40 -8
- package/src/plugins/defaults/memory/filing-jobs.ts +1 -1
- package/src/plugins/defaults/memory/fork-conversation-memory.ts +4 -8
- package/src/plugins/defaults/memory/frontmatter.ts +1 -1
- package/src/plugins/defaults/memory/graph/__tests__/handle-remember-v2.test.ts +25 -4
- package/src/plugins/defaults/memory/graph/bootstrap.ts +19 -13
- package/src/plugins/defaults/memory/graph/capability-seed.ts +33 -62
- package/src/plugins/defaults/memory/graph/consolidation.ts +15 -8
- package/src/plugins/defaults/memory/graph/conversation-graph-memory.ts +4 -12
- package/src/plugins/defaults/memory/graph/decay.ts +10 -5
- package/src/plugins/defaults/memory/graph/extraction-job.ts +3 -2
- package/src/plugins/defaults/memory/graph/extraction.test.ts +9 -1
- package/src/plugins/defaults/memory/graph/extraction.ts +63 -144
- package/src/plugins/defaults/memory/graph/graph-search.test.ts +6 -0
- package/src/plugins/defaults/memory/graph/graph-search.ts +15 -33
- package/src/plugins/defaults/memory/graph/image-ref-utils.ts +3 -7
- package/src/plugins/defaults/memory/graph/injection.test.ts +1 -0
- package/src/plugins/defaults/memory/graph/injection.ts +1 -1
- package/src/plugins/defaults/memory/graph/narrative.ts +4 -2
- package/src/plugins/defaults/memory/graph/pattern-scan.ts +5 -2
- package/src/plugins/defaults/memory/graph/retriever.test.ts +28 -27
- package/src/plugins/defaults/memory/graph/retriever.ts +42 -89
- package/src/plugins/defaults/memory/graph/scoring.test.ts +1 -0
- package/src/plugins/defaults/memory/graph/store.test.ts +58 -6
- package/src/plugins/defaults/memory/graph/store.ts +43 -5
- package/src/plugins/defaults/memory/graph/tool-handlers.ts +8 -244
- package/src/plugins/defaults/memory/graph/tools.ts +1 -1
- package/src/plugins/defaults/memory/graph/types.ts +3 -0
- package/src/plugins/defaults/memory/hooks/init.ts +1 -1
- package/src/plugins/defaults/memory/hooks/user-prompt-submit.ts +10 -10
- package/src/plugins/defaults/memory/indexer.ts +54 -18
- package/src/plugins/defaults/memory/injectors.ts +8 -5
- package/src/plugins/defaults/memory/job-handler-registration.ts +4 -0
- package/src/plugins/defaults/memory/job-handlers/backfill.ts +3 -2
- package/src/plugins/defaults/memory/job-handlers/embedding.test.ts +8 -0
- package/src/plugins/defaults/memory/job-handlers/embedding.ts +15 -29
- package/src/plugins/defaults/memory/job-handlers/index-maintenance.ts +4 -6
- package/src/plugins/defaults/memory/job-handlers.ts +9 -10
- package/src/plugins/defaults/memory/jobs/__tests__/embed-concept-page.test.ts +7 -0
- package/src/plugins/defaults/memory/jobs/embed-concept-page.ts +3 -3
- package/src/plugins/defaults/memory/jobs/embed-pkb-file.test.ts +28 -41
- package/src/plugins/defaults/memory/jobs/embed-pkb-file.ts +5 -10
- package/src/plugins/defaults/memory/jobs-worker.ts +50 -161
- package/src/plugins/defaults/memory/memory-retrospective-constants.ts +7 -19
- package/src/plugins/defaults/memory/memory-retrospective-enqueue.ts +6 -5
- package/src/plugins/defaults/memory/memory-retrospective-fork-boundary.ts +20 -57
- package/src/plugins/defaults/memory/memory-retrospective-job.ts +79 -220
- package/src/plugins/defaults/memory/memory-retrospective-startup-cleanup.ts +39 -52
- package/src/plugins/defaults/memory/memory-retrospective-state.ts +10 -14
- package/src/plugins/defaults/memory/memory-retrospective-trigger-check.ts +3 -8
- package/src/plugins/defaults/memory/pkb/autoinject.ts +1 -1
- package/src/plugins/defaults/memory/pkb/context.ts +2 -2
- package/src/plugins/defaults/memory/pkb/pkb-index.test.ts +44 -25
- package/src/plugins/defaults/memory/pkb/pkb-index.ts +25 -24
- package/src/plugins/defaults/memory/pkb/pkb-reconcile.test.ts +34 -46
- package/src/plugins/defaults/memory/pkb/pkb-reconcile.ts +9 -4
- package/src/plugins/defaults/memory/pkb/pkb-search.test.ts +17 -5
- package/src/plugins/defaults/memory/pkb/pkb-search.ts +9 -2
- package/src/plugins/defaults/memory/pkb/types.ts +12 -1
- package/src/plugins/defaults/memory/pkb-schedule.ts +2 -2
- package/src/plugins/defaults/memory/rerank-local.ts +4 -3
- package/src/plugins/defaults/memory/routes/__tests__/memory-v2-simulate-route.test.ts +17 -9
- package/src/plugins/defaults/memory/routes/memory-eval-routes.ts +2 -2
- package/src/plugins/defaults/memory/routes/memory-item-routes.test.ts +9 -149
- package/src/plugins/defaults/memory/routes/memory-item-routes.ts +12 -147
- package/src/plugins/defaults/memory/routes/memory-v2-routes.ts +11 -7
- package/src/plugins/defaults/memory/routes/memory-v3-routes.ts +1 -1
- package/src/plugins/defaults/memory/startup.ts +4 -3
- package/src/plugins/defaults/memory/task-memory-cleanup.ts +1 -1
- package/src/plugins/defaults/memory/tools.test.ts +9 -1
- package/src/plugins/defaults/memory/tools.ts +1 -0
- package/src/plugins/defaults/memory/v2/__tests__/activation.test.ts +5 -0
- package/src/plugins/defaults/memory/v2/__tests__/backfill-jobs.test.ts +6 -0
- package/src/plugins/defaults/memory/v2/__tests__/cli-command-store.test.ts +6 -6
- package/src/plugins/defaults/memory/v2/__tests__/consolidation-job.test.ts +6 -48
- package/src/plugins/defaults/memory/v2/__tests__/harness-compare.test.ts +5 -0
- package/src/plugins/defaults/memory/v2/__tests__/harness-oracle.test.ts +5 -0
- package/src/plugins/defaults/memory/v2/__tests__/harness-replay-input.test.ts +5 -0
- package/src/plugins/defaults/memory/v2/__tests__/injection-events.test.ts +69 -61
- package/src/plugins/defaults/memory/v2/__tests__/injection.test.ts +5 -0
- package/src/plugins/defaults/memory/v2/__tests__/migration.test.ts +6 -0
- package/src/plugins/defaults/memory/v2/__tests__/page-index.test.ts +5 -0
- package/src/plugins/defaults/memory/v2/__tests__/prompts-consolidation.test.ts +0 -28
- package/src/plugins/defaults/memory/v2/__tests__/qdrant.test.ts +6 -3
- package/src/plugins/defaults/memory/v2/__tests__/reranker.test.ts +5 -3
- package/src/plugins/defaults/memory/v2/__tests__/router.test.ts +27 -16
- package/src/plugins/defaults/memory/v2/__tests__/sim.test.ts +5 -0
- package/src/plugins/defaults/memory/v2/__tests__/skill-content.test.ts +1 -1
- package/src/plugins/defaults/memory/v2/__tests__/skill-store.test.ts +22 -56
- package/src/plugins/defaults/memory/v2/__tests__/static-context.test.ts +6 -9
- package/src/plugins/defaults/memory/v2/__tests__/sweep-job.test.ts +6 -6
- package/src/plugins/defaults/memory/v2/backfill-jobs.ts +16 -31
- package/src/plugins/defaults/memory/v2/cli-command-content.ts +0 -78
- package/src/plugins/defaults/memory/v2/cli-command-store.ts +11 -32
- package/src/plugins/defaults/memory/v2/consolidation-job.ts +5 -45
- package/src/plugins/defaults/memory/v2/frontmatter-sweep.ts +1 -1
- package/src/plugins/defaults/memory/v2/harness/retriever.ts +8 -1
- package/src/plugins/defaults/memory/v2/harness/router-retriever.ts +8 -1
- package/src/plugins/defaults/memory/v2/harness/trace.ts +1 -1
- package/src/plugins/defaults/memory/v2/injection-events.ts +15 -34
- package/src/plugins/defaults/memory/v2/injection.ts +4 -3
- package/src/plugins/defaults/memory/v2/memory-v2-startup.test.ts +5 -0
- package/src/plugins/defaults/memory/v2/memory-v2-startup.ts +2 -2
- package/src/plugins/defaults/memory/v2/migration.ts +1 -1
- package/src/plugins/defaults/memory/v2/page-index.ts +1 -1
- package/src/plugins/defaults/memory/v2/prompts/consolidation.ts +2 -6
- package/src/plugins/defaults/memory/v2/prompts/router.ts +1 -1
- package/src/plugins/defaults/memory/v2/qdrant.ts +2 -2
- package/src/plugins/defaults/memory/v2/reranker.ts +2 -2
- package/src/plugins/defaults/memory/v2/router.ts +20 -10
- package/src/plugins/defaults/memory/v2/skill-content.ts +4 -23
- package/src/plugins/defaults/memory/v2/skill-store.ts +43 -44
- package/src/plugins/defaults/memory/v2/static-context.ts +12 -7
- package/src/plugins/defaults/memory/v2/sweep-job.ts +13 -23
- package/src/plugins/defaults/memory/v3/__tests__/carry-integration.test.ts +0 -19
- package/src/plugins/defaults/memory/v3/__tests__/dense.test.ts +5 -0
- package/src/plugins/defaults/memory/v3/__tests__/injection.test.ts +0 -17
- package/src/plugins/defaults/memory/v3/__tests__/live-integration.test.ts +4 -14
- package/src/plugins/defaults/memory/v3/__tests__/maintain-job.test.ts +17 -23
- package/src/plugins/defaults/memory/v3/__tests__/orchestrate.test.ts +6 -20
- package/src/plugins/defaults/memory/v3/__tests__/pool-select.test.ts +0 -2
- package/src/plugins/defaults/memory/v3/__tests__/section-dense-store.test.ts +5 -0
- package/src/plugins/defaults/memory/v3/candidate-match.ts +11 -20
- package/src/plugins/defaults/memory/v3/dense.ts +1 -1
- package/src/plugins/defaults/memory/v3/injector.ts +1 -1
- package/src/plugins/defaults/memory/v3/learned-edges.test.ts +0 -14
- package/src/plugins/defaults/memory/v3/learned-edges.ts +1 -6
- package/src/plugins/defaults/memory/v3/maintain-job.ts +31 -39
- package/src/plugins/defaults/memory/v3/orchestrate.ts +1 -1
- package/src/plugins/defaults/memory/v3/page-content.ts +1 -1
- package/src/plugins/defaults/memory/v3/pool-select.ts +3 -2
- package/src/plugins/defaults/memory/v3/prune.test.ts +0 -10
- package/src/plugins/defaults/memory/v3/prune.ts +1 -1
- package/src/plugins/defaults/memory/v3/section-dense-store.ts +1 -1
- package/src/plugins/defaults/memory/v3/selection-log-store.ts +1 -1
- package/src/plugins/defaults/memory/v3/shadow-plugin.ts +25 -47
- package/src/plugins/defaults/memory/v3-eval/eval-packets.ts +11 -31
- package/src/plugins/defaults/memory/worker.ts +2 -2
- package/src/plugins/defaults/workspace/injectors.ts +5 -116
- package/src/plugins/mtime-cache.ts +105 -207
- package/src/plugins/pipeline.ts +5 -195
- package/src/plugins/surface-import.ts +14 -52
- package/src/plugins/types.ts +15 -10
- package/src/prompts/persona-resolver.ts +1 -1
- package/src/prompts/system-prompt.ts +4 -2
- package/src/prompts/templates/system-sections.ts +0 -12
- package/src/providers/__tests__/connection-model-compat.test.ts +5 -0
- package/src/providers/__tests__/count-tokens-forwarding.test.ts +21 -1
- package/src/providers/__tests__/dispatch-connection-routing.test.ts +6 -12
- package/src/providers/__tests__/registry-native-web-search.test.ts +3 -21
- package/src/providers/__tests__/retry-callsite.test.ts +8 -207
- package/src/providers/__tests__/satellite-connection-routing.test.ts +6 -12
- package/src/providers/__tests__/vellum-mismatch-routing.test.ts +5 -0
- package/src/providers/anthropic/client.ts +7 -109
- package/src/providers/call-site-routing.ts +0 -1
- package/src/providers/connection-resolution.ts +6 -192
- package/src/providers/gemini/client.ts +22 -84
- package/src/providers/gemini/inline-media.ts +3 -2
- package/src/providers/inference/__tests__/base-url-route-validation.test.ts +0 -5
- package/src/providers/inference/__tests__/codex-token-refresh.test.ts +15 -1
- package/src/providers/inference/adapter-factory.ts +0 -13
- package/src/providers/inference/connections.ts +10 -6
- package/src/providers/model-catalog.ts +17 -337
- package/src/providers/model-intents.ts +0 -6
- package/src/providers/openai/__tests__/api-error-normalization.test.ts +0 -98
- package/src/providers/openai/__tests__/chat-completions-provider-reasoning.test.ts +0 -112
- package/src/providers/openai/api-error-normalization.ts +0 -61
- package/src/providers/openai/chat-completions-provider.ts +10 -73
- package/src/providers/openai/responses-provider.ts +3 -10
- package/src/providers/openrouter/client.ts +39 -6
- package/src/providers/platform-proxy/constants.ts +0 -4
- package/src/providers/provider-availability.ts +1 -23
- package/src/providers/provider-send-message.ts +3 -19
- package/src/providers/registry.ts +1 -5
- package/src/providers/retry.ts +29 -91
- package/src/providers/speech-to-text/__tests__/resolve.test.ts +0 -31
- package/src/providers/speech-to-text/deepgram-realtime.test.ts +1 -393
- package/src/providers/speech-to-text/deepgram-realtime.ts +13 -213
- package/src/providers/speech-to-text/resolve.ts +5 -33
- package/src/providers/types.ts +24 -69
- package/src/providers/vellum-model-routing.ts +0 -11
- package/src/runtime/__tests__/agent-wake.test.ts +16 -232
- package/src/runtime/__tests__/background-job-runner.test.ts +2 -71
- package/src/runtime/__tests__/guardian-vellum-migration.test.ts +15 -5
- package/src/runtime/__tests__/local-principal-trust.test.ts +6 -0
- package/src/runtime/__tests__/member-verdict-cache.test.ts +15 -2
- package/src/runtime/__tests__/trust-verdict-consumer.test.ts +30 -91
- package/src/runtime/access-request-helper.ts +3 -75
- package/src/runtime/actor-trust-resolver.ts +108 -33
- package/src/runtime/agent-wake.ts +25 -45
- package/src/runtime/assistant-event-hub.ts +105 -0
- package/src/runtime/auth/__tests__/middleware.test.ts +10 -1
- package/src/runtime/auth/__tests__/route-policy.test.ts +7 -0
- package/src/runtime/auth/__tests__/token-service.test.ts +8 -1
- package/src/runtime/background-job-runner.ts +2 -57
- package/src/runtime/capabilities.ts +3 -3
- package/src/runtime/channel-reply-delivery.ts +19 -38
- package/src/runtime/channel-retry-sweep.ts +1 -1
- package/src/runtime/confirmation-request-guardian-bridge.ts +3 -4
- package/src/runtime/effective-capabilities.test.ts +36 -0
- package/src/runtime/effective-capabilities.ts +23 -8
- package/src/runtime/guardian-vellum-migration.ts +16 -12
- package/src/runtime/http-router.ts +115 -2
- package/src/runtime/http-server.ts +2 -11
- package/src/runtime/http-types.ts +1 -1
- package/src/runtime/introduction-policy.ts +0 -89
- package/src/runtime/local-actor-identity.ts +50 -4
- package/src/runtime/local-principal-trust.ts +1 -1
- package/src/runtime/member-verdict-cache.ts +0 -0
- package/src/runtime/migrations/__tests__/gcs-signed-url.test.ts +1 -51
- package/src/runtime/migrations/gcs-signed-url.ts +7 -21
- package/src/runtime/migrations/origin-mode.ts +11 -16
- package/src/runtime/pending-interactions.ts +3 -8
- package/src/runtime/routes/__tests__/acp-routes.test.ts +7 -0
- package/src/runtime/routes/__tests__/backup-routes.test.ts +7 -0
- package/src/runtime/routes/__tests__/bookmark-routes.test.ts +1 -0
- package/src/runtime/routes/__tests__/channel-verification-revoke.test.ts +16 -0
- package/src/runtime/routes/__tests__/client-routes.test.ts +7 -0
- package/src/runtime/routes/__tests__/connection-routes-vs-cli-parity.test.ts +5 -4
- package/src/runtime/routes/__tests__/consolidation-routes.test.ts +8 -8
- package/src/runtime/routes/__tests__/contact-routes.test.ts +3 -2
- package/src/runtime/routes/__tests__/content-source-routes.test.ts +7 -0
- package/src/runtime/routes/__tests__/conversation-compaction-routes.test.ts +9 -31
- package/src/runtime/routes/__tests__/conversation-list-routes.test.ts +7 -0
- package/src/runtime/routes/__tests__/conversation-management-routes.test.ts +8 -0
- package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +11 -260
- package/src/runtime/routes/__tests__/conversation-surface-routes.test.ts +7 -0
- package/src/runtime/routes/__tests__/global-search-routes.test.ts +1 -0
- package/src/runtime/routes/__tests__/inference-provider-connection-routes.test.ts +6 -219
- package/src/runtime/routes/__tests__/invite-relay-routes.test.ts +15 -70
- package/src/runtime/routes/__tests__/monitoring-routes.test.ts +1 -1
- package/src/runtime/routes/__tests__/plugins-routes.test.ts +38 -182
- package/src/runtime/routes/__tests__/retrospective-routes.test.ts +8 -1
- package/src/runtime/routes/__tests__/sanity-routes.test.ts +7 -0
- package/src/runtime/routes/__tests__/stt-routes.test.ts +9 -0
- package/src/runtime/routes/__tests__/suggest-trust-rule-routes.test.ts +7 -0
- package/src/runtime/routes/__tests__/task-routes.test.ts +2 -2
- package/src/runtime/routes/__tests__/tts-routes.test.ts +7 -0
- package/src/runtime/routes/__tests__/user-route-dispatcher.test.ts +9 -1
- package/src/runtime/routes/__tests__/wake-conversation-routes.test.ts +7 -0
- package/src/runtime/routes/acp-routes.ts +14 -20
- package/src/runtime/routes/approval-routes.ts +2 -21
- package/src/runtime/routes/contact-routes.ts +43 -75
- package/src/runtime/routes/conversation-analysis-routes.ts +75 -0
- package/src/runtime/routes/conversation-attention-routes.ts +1 -1
- package/src/runtime/routes/conversation-cli-routes.ts +2 -2
- package/src/runtime/routes/conversation-compaction-routes.ts +0 -5
- package/src/runtime/routes/conversation-management-routes.ts +2 -147
- package/src/runtime/routes/conversation-query-routes.ts +43 -378
- package/src/runtime/routes/conversation-routes.ts +181 -89
- package/src/runtime/routes/conversation-starter-routes.ts +23 -12
- package/src/runtime/routes/credential-prompt-routes.ts +4 -48
- package/src/runtime/routes/credential-routes.ts +5 -40
- package/src/runtime/routes/errors.ts +0 -17
- package/src/runtime/routes/events-routes.ts +39 -158
- package/src/runtime/routes/guardian-approval-interception.ts +1 -1
- package/src/runtime/routes/http-adapter.ts +1 -1
- package/src/runtime/routes/inbound-message-handler.ts +6 -61
- package/src/runtime/routes/inbound-stages/acl-enforcement.test.ts +26 -58
- package/src/runtime/routes/inbound-stages/acl-enforcement.ts +87 -73
- package/src/runtime/routes/inbound-stages/admission-policy.ts +1 -2
- package/src/runtime/routes/inbound-stages/background-dispatch.test.ts +8 -1
- package/src/runtime/routes/inbound-stages/background-dispatch.ts +2 -3
- package/src/runtime/routes/inbound-stages/bootstrap-intercept.test.ts +5 -0
- package/src/runtime/routes/inbound-stages/edit-intercept.ts +1 -5
- package/src/runtime/routes/inbound-stages/escalation-intercept.test.ts +5 -0
- package/src/runtime/routes/inbound-stages/guardian-activation-intercept.test.ts +9 -0
- package/src/runtime/routes/inbound-stages/guardian-reply-intercept.test.ts +9 -0
- package/src/runtime/routes/inbound-stages/reaction-intercept.ts +37 -27
- package/src/runtime/routes/inbound-stages/secret-ingress-check.ts +1 -1
- package/src/runtime/routes/inbound-stages/transcribe-audio.test.ts +9 -0
- package/src/runtime/routes/index.ts +4 -16
- package/src/runtime/routes/inference-profile-session-handler.ts +1 -2
- package/src/runtime/routes/inference-provider-connection-routes.ts +1 -38
- package/src/runtime/routes/inference-send-routes.ts +1 -2
- package/src/runtime/routes/integrations/slack/channels.ts +4 -26
- package/src/runtime/routes/internal-telemetry-routes.ts +0 -44
- package/src/runtime/routes/llm-call-sites-routes.ts +1 -2
- package/src/runtime/routes/migration-routes.ts +47 -94
- package/src/runtime/routes/monitoring-routes.ts +1 -1
- package/src/runtime/routes/notification-routes.ts +1 -1
- package/src/runtime/routes/playground/__tests__/reset-circuit.test.ts +7 -0
- package/src/runtime/routes/plugins-routes.ts +16 -169
- package/src/runtime/routes/schedule-routes.ts +1 -38
- package/src/runtime/routes/secret-routes.ts +7 -0
- package/src/runtime/routes/settings-routes.ts +22 -160
- package/src/runtime/routes/skills-routes.ts +0 -6
- package/src/runtime/routes/subagents-routes.ts +18 -17
- package/src/runtime/routes/surface-action-routes.ts +2 -4
- package/src/runtime/routes/types.ts +1 -2
- package/src/runtime/routes/work-items-routes.test.ts +74 -0
- package/src/runtime/routes/work-items-routes.ts +881 -0
- package/src/runtime/routes/workflow-routes.ts +1 -1
- package/src/runtime/services/__tests__/analyze-conversation.test.ts +477 -0
- package/src/runtime/services/__tests__/auto-analysis-enqueue.test.ts +386 -0
- package/src/runtime/services/__tests__/auto-analysis-guard.test.ts +16 -2
- package/src/runtime/services/__tests__/auto-analysis-prompt.test.ts +53 -0
- package/src/runtime/services/__tests__/conversation-analyze-job.test.ts +213 -0
- package/src/runtime/services/__tests__/conversation-serializer.test.ts +1 -0
- package/src/runtime/services/__tests__/manual-analysis-prompt.test.ts +41 -0
- package/src/runtime/services/analyze-conversation.ts +332 -0
- package/src/runtime/services/auto-analysis-enqueue.ts +130 -0
- package/src/runtime/services/auto-analysis-guard.ts +5 -5
- package/src/runtime/services/auto-analysis-prompt.ts +55 -0
- package/src/runtime/services/conversation-analyze-job.ts +53 -0
- package/src/runtime/services/conversation-serializer.ts +3 -2
- package/src/runtime/sync/resource-sync-events.ts +0 -4
- package/src/runtime/trust-context-resolver.ts +9 -9
- package/src/runtime/trust-verdict-consumer.ts +5 -46
- package/src/schedule/scheduler.ts +18 -61
- package/src/security/__tests__/oauth2-device-code.test.ts +60 -12
- package/src/security/__tests__/provider-key-env-fallback.test.ts +10 -0
- package/src/security/secret-patterns.ts +0 -3
- package/src/security/secure-keys.ts +49 -222
- package/src/sequence/engine.ts +6 -15
- package/src/signals/user-message.ts +1 -3
- package/src/skills/install-meta.ts +0 -8
- package/src/skills/managed-store.ts +0 -10
- package/src/skills/skill-memory.ts +44 -0
- package/src/stt/types.ts +2 -33
- package/src/subagent/manager.ts +6 -5
- package/src/tasks/SPEC.md +17 -10
- package/src/tasks/tool-sanitizer.ts +1 -3
- package/src/telemetry/__tests__/watchdog-events-store.test.ts +8 -0
- package/src/telemetry/skill-loaded-events-store.test.ts +8 -0
- package/src/telemetry/tool-executed-events-store.test.ts +27 -19
- package/src/telemetry/tool-executed-events-store.ts +5 -5
- package/src/telemetry/turn-events-store.ts +0 -36
- package/src/telemetry/turn-trace-store.test.ts +8 -156
- package/src/telemetry/turn-trace-store.ts +4 -53
- package/src/telemetry/types.ts +2 -91
- package/src/telemetry/usage-telemetry-reporter.test.ts +24 -239
- package/src/telemetry/usage-telemetry-reporter.ts +17 -94
- package/src/telemetry/watchdog-direct-emit.test.ts +5 -0
- package/src/tools/AGENTS.md +26 -0
- package/src/tools/acp/spawn.test.ts +7 -0
- package/src/tools/browser/browser-execution.ts +75 -99
- package/src/tools/browser/cdp-client/__tests__/cdp-inspect-client.test.ts +11 -1
- package/src/tools/browser/cdp-client/__tests__/local-cdp-client.test.ts +10 -0
- package/src/tools/browser/network-recorder.test.ts +11 -0
- package/src/tools/credential-execution/make-authenticated-request.ts +198 -0
- package/src/tools/credential-execution/manage-secure-command-tool.ts +371 -0
- package/src/tools/credential-execution/run-authenticated-command.ts +261 -0
- package/src/tools/document/document-comment-tool.test.ts +7 -1
- package/src/tools/execution-target.ts +1 -1
- package/src/tools/executor.ts +275 -63
- package/src/tools/filesystem/write.ts +2 -0
- package/src/tools/flag-gated-tools.test.ts +76 -0
- package/src/tools/host-terminal/host-shell.test.ts +7 -0
- package/src/tools/host-terminal/host-shell.ts +49 -6
- package/src/tools/permission-checker.ts +81 -33
- package/src/tools/registry.ts +166 -261
- package/src/tools/run-standalone.ts +13 -6
- package/src/tools/side-effects.ts +1 -0
- package/src/tools/skills/find-similar-skills.test.ts +9 -5
- package/src/tools/skills/scaffold-managed.ts +4 -31
- package/src/tools/skills/skill-script-runner.ts +31 -17
- package/src/tools/skills/skill-tool-factory.ts +6 -2
- package/src/tools/subagent/read.ts +4 -6
- package/src/tools/subagent/spawn.ts +29 -28
- package/src/tools/terminal/safe-env.ts +3 -8
- package/src/tools/terminal/shell.test.ts +6 -0
- package/src/tools/terminal/shell.ts +50 -1
- package/src/tools/tool-approval-handler.ts +166 -99
- package/src/tools/tool-defaults.ts +6 -2
- package/src/tools/tool-manifest.ts +49 -0
- package/src/tools/tool-types.ts +95 -4
- package/src/tools/types.ts +140 -27
- package/src/tools/workflows/manage-workflows.ts +1 -2
- package/src/tools/workflows/run-workflow.test.ts +1 -6
- package/src/tools/workflows/run-workflow.ts +4 -2
- package/src/tools/workspace-tools/loader.ts +14 -26
- package/src/tts/__tests__/provider-adapters.test.ts +22 -891
- package/src/tts/__tests__/provider-catalog.test.ts +10 -43
- package/src/tts/__tests__/synthesis-stream.test.ts +1 -5
- package/src/tts/provider-definition.ts +7 -6
- package/src/tts/providers/deepgram-provider.ts +102 -160
- package/src/tts/providers/elevenlabs-provider.ts +105 -182
- package/src/tts/providers/fish-audio-provider.ts +105 -72
- package/src/tts/providers/xai-provider.ts +22 -131
- package/src/tts/synthesis-stream.ts +5 -9
- package/src/tts/synthesize-text.ts +5 -15
- package/src/tts/types.ts +0 -21
- package/src/usage/attribution.ts +9 -43
- package/src/util/errors.ts +0 -26
- package/src/util/logger.ts +68 -67
- package/src/util/platform.ts +60 -19
- package/src/util/pricing.ts +11 -14
- package/src/util/process-tree.ts +13 -25
- package/src/util/sentry-log-stream.ts +51 -0
- package/src/util/sqlite-retry.ts +2 -14
- package/src/util/unicode.ts +1 -1
- package/src/watcher/engine.ts +2 -87
- package/src/workflows/capabilities.test.ts +32 -2
- package/src/workflows/capabilities.ts +25 -18
- package/src/workflows/engine-integration.test.ts +7 -1
- package/src/workflows/engine.test.ts +10 -2
- package/src/workflows/engine.ts +1 -1
- package/src/workflows/fanout-load.test.ts +1 -1
- package/src/workflows/journal-store.test.ts +9 -1
- package/src/workflows/leaf-runner.test.ts +6 -0
- package/src/workflows/leaf-runner.ts +5 -4
- package/src/workflows/library.test.ts +9 -1
- package/src/workflows/run-manager.test.ts +10 -2
- package/src/workflows/run-manager.ts +4 -2
- package/src/workspace/adaptive-thinking-repair.ts +1 -1
- package/src/workspace/migrations/028-recover-conversations-from-disk-view.ts +1 -0
- package/src/workspace/migrations/097-enable-adaptive-thinking-managed-profiles.ts +1 -1
- package/src/workspace/migrations/registry.ts +0 -8
- package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/__tests__/attachment-naming.test.ts +0 -104
- package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/attachment-naming.ts +0 -118
- package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/__tests__/attachment-naming.test.ts +0 -104
- package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/attachment-naming.ts +0 -118
- package/node_modules/@vellumai/service-contracts/src/__tests__/attachment-naming.test.ts +0 -104
- package/node_modules/@vellumai/service-contracts/src/attachment-naming.ts +0 -118
- package/scripts/build-test-fixtures.ts +0 -105
- package/scripts/test.ts +0 -597
- package/src/__tests__/anthropic-gateway-shared.test.ts +0 -140
- package/src/__tests__/available-skills.test.ts +0 -266
- package/src/__tests__/compaction-summary-head-persisted-count.test.ts +0 -417
- package/src/__tests__/compactor-fixed-boundary.test.ts +0 -334
- package/src/__tests__/config-loader-validation-reset-notice.test.ts +0 -183
- package/src/__tests__/conversation-message-id-uuidv7.test.ts +0 -73
- package/src/__tests__/conversation-summarize-route.test.ts +0 -445
- package/src/__tests__/conversation-summarize-up-to.test.ts +0 -711
- package/src/__tests__/conversation-wait-for-idle.test.ts +0 -391
- package/src/__tests__/credential-request-route.test.ts +0 -76
- package/src/__tests__/custom-profile-ensure.test.ts +0 -232
- package/src/__tests__/db-processing-resume-attempts-migration.test.ts +0 -116
- package/src/__tests__/default-provider-ensure.test.ts +0 -343
- package/src/__tests__/drain-requeue-on-contention.test.ts +0 -202
- package/src/__tests__/dynamic-skill-background-guard.test.ts +0 -174
- package/src/__tests__/ensure-conversation-exists.test.ts +0 -85
- package/src/__tests__/events-tail-route.test.ts +0 -172
- package/src/__tests__/helpers/set-config.ts +0 -40
- package/src/__tests__/inbound-admitted-introduction-nudge.test.ts +0 -296
- package/src/__tests__/injector-config-validation-reset-notice.test.ts +0 -121
- package/src/__tests__/interrupted-turn-reconciler.test.ts +0 -126
- package/src/__tests__/llm-request-log-clickhouse-routing.test.ts +0 -117
- package/src/__tests__/llm-request-log-clickhouse-writer-guards.test.ts +0 -115
- package/src/__tests__/llm-request-log-disabled-writes.test.ts +0 -72
- package/src/__tests__/llm-request-log-sink-clickhouse.test.ts +0 -211
- package/src/__tests__/llm-resolver-override-or-default.test.ts +0 -563
- package/src/__tests__/memory-config-file-parity.test.ts +0 -187
- package/src/__tests__/memory-identity-context-parity.test.ts +0 -103
- package/src/__tests__/memory-jobs-worker-cleanup-cadence.test.ts +0 -296
- package/src/__tests__/persist-media-references.test.ts +0 -112
- package/src/__tests__/plugin-hook-pipeline-hardening.test.ts +0 -249
- package/src/__tests__/plugin-import-boundary-reverse-guard.test.ts +0 -316
- package/src/__tests__/request-secret-standalone-channel-gate.test.ts +0 -270
- package/src/__tests__/secret-patterns.test.ts +0 -27
- package/src/__tests__/slack-users-routes.test.ts +0 -148
- package/src/__tests__/summarize-boundary.test.ts +0 -169
- package/src/__tests__/tool-profiler.test.ts +0 -139
- package/src/__tests__/turn-outcome-read.test.ts +0 -75
- package/src/__tests__/vercel-ai-gateway-provider.test.ts +0 -283
- package/src/__tests__/workspace-migration-126-strip-managed-profile-bodies.test.ts +0 -192
- package/src/__tests__/workspace-migration-127-backfill-default-provider.test.ts +0 -277
- package/src/__tests__/workspace-migration-128-repair-stale-openrouter-grok-model-ids.test.ts +0 -135
- package/src/__tests__/workspace-migration-129-remove-analyze-conversation-config.test.ts +0 -190
- package/src/browser/operation-meta.ts +0 -493
- package/src/calls/__tests__/voice-session-bridge.test.ts +0 -884
- package/src/calls/unresolved-caller-trust.ts +0 -36
- package/src/channels/__tests__/gateway-invites.test.ts +0 -257
- package/src/channels/gateway-invites.ts +0 -142
- package/src/cli/commands/__tests__/inference-models.test.ts +0 -86
- package/src/cli/commands/__tests__/inference-profiles.test.ts +0 -254
- package/src/cli/commands/__tests__/inference-providers.test.ts +0 -171
- package/src/cli/commands/__tests__/usage.test.ts +0 -131
- package/src/cli/commands/attachment.help.ts +0 -100
- package/src/cli/commands/audit.help.ts +0 -40
- package/src/cli/commands/auth.help.ts +0 -46
- package/src/cli/commands/avatar.help.ts +0 -236
- package/src/cli/commands/backup.help.ts +0 -190
- package/src/cli/commands/bash.help.ts +0 -45
- package/src/cli/commands/browser.help.ts +0 -196
- package/src/cli/commands/inference-callsites.ts +0 -158
- package/src/cli/commands/inference-models.ts +0 -84
- package/src/cli/commands/inference-profiles.ts +0 -371
- package/src/cli/commands/inference-providers-default.ts +0 -89
- package/src/cli/commands/memory/nodes.ts +0 -301
- package/src/cli/index.help.ts +0 -31
- package/src/cli/lib/__tests__/cli-output.test.ts +0 -20
- package/src/cli/lib/__tests__/install-from-platform.test.ts +0 -497
- package/src/cli/lib/__tests__/plugin-icon-file.test.ts +0 -142
- package/src/cli/lib/cli-command-help.ts +0 -119
- package/src/cli/lib/cli-output.ts +0 -55
- package/src/cli/lib/fetch-like.ts +0 -11
- package/src/cli/lib/install-from-platform.ts +0 -618
- package/src/cli/lib/plugin-constants.ts +0 -27
- package/src/cli/lib/plugin-icon-file.ts +0 -101
- package/src/config/__tests__/default-profile-catalog.test.ts +0 -384
- package/src/config/__tests__/default-provider.test.ts +0 -245
- package/src/config/__tests__/loader-last-known-good.test.ts +0 -208
- package/src/config/__tests__/loader-sparse-array-cleanup.test.ts +0 -145
- package/src/config/__tests__/profile-materialization.test.ts +0 -297
- package/src/config/__tests__/seed-default-provider.test.ts +0 -210
- package/src/config/default-profile-catalog.ts +0 -481
- package/src/config/default-profile-names.ts +0 -44
- package/src/config/default-provider-resolution.ts +0 -33
- package/src/config/default-provider.ts +0 -38
- package/src/config/profile-materialization.ts +0 -151
- package/src/config/schemas/__tests__/live-voice.test.ts +0 -108
- package/src/config/schemas/live-voice.ts +0 -77
- package/src/daemon/interrupted-turn-reconciler.ts +0 -134
- package/src/daemon/persist-media-references.ts +0 -151
- package/src/daemon/summarize-boundary.ts +0 -62
- package/src/daemon/trust-context-types.ts +0 -61
- package/src/home/suggested-prompts-cache.ts +0 -91
- package/src/ipc/gateway-validated-call.ts +0 -32
- package/src/ipc/routes/__tests__/contacts-mirror-merge-contact.test.ts +0 -197
- package/src/ipc/routes/__tests__/contacts-mirror-upsert-full.test.ts +0 -368
- package/src/ipc/routes/__tests__/guardian-label-ipc-routes.test.ts +0 -74
- package/src/ipc/routes/guardian-label-ipc-routes.ts +0 -42
- package/src/live-voice/__tests__/live-voice-credential-preflight.test.ts +0 -275
- package/src/live-voice/__tests__/live-voice-session-preflight.test.ts +0 -156
- package/src/live-voice/live-voice-credential-preflight.ts +0 -205
- package/src/messaging/providers/slack/binding-metadata.test.ts +0 -63
- package/src/monitoring/resource-sample-types.ts +0 -71
- package/src/notifications/urgency.ts +0 -5
- package/src/permissions/confirmation-canonical-request.ts +0 -118
- package/src/permissions/secret-prompt-types.ts +0 -34
- package/src/persistence/__tests__/bulk-write-gate.test.ts +0 -159
- package/src/persistence/__tests__/immediate-transaction-guard.test.ts +0 -70
- package/src/persistence/__tests__/message-content-file.test.ts +0 -259
- package/src/persistence/bulk-write-gate.ts +0 -82
- package/src/persistence/conversation-plugin-facade.ts +0 -190
- package/src/persistence/embeddings/plugin-facade.ts +0 -37
- package/src/persistence/llm-request-log-sink-clickhouse.ts +0 -325
- package/src/persistence/llm-request-log-writer-types.ts +0 -80
- package/src/persistence/message-content-file.ts +0 -297
- package/src/persistence/migrations/321-canonical-guardian-request-trigger.ts +0 -27
- package/src/persistence/migrations/322-add-processing-resume-attempts.ts +0 -31
- package/src/persistence/migrations/323-delete-non-default-memory-scopes.test.ts +0 -148
- package/src/persistence/migrations/323-delete-non-default-memory-scopes.ts +0 -35
- package/src/persistence/migrations/324-message-finalized-column.ts +0 -26
- package/src/persistence/migrations/325-create-config-setting-events.ts +0 -40
- package/src/persistence/migrations/326-move-injection-events-to-memory-db.ts +0 -104
- package/src/plugins/AGENTS.md +0 -19
- package/src/plugins/__tests__/plugin-state-boundary-guard.test.ts +0 -65
- package/src/plugins/defaults/image-fallback/__tests__/caption-cache-persistence.test.ts +0 -216
- package/src/plugins/defaults/image-fallback/__tests__/vision-recovery.test.ts +0 -268
- package/src/plugins/defaults/image-fallback/hooks/conversation-deleted.ts +0 -27
- package/src/plugins/defaults/image-fallback/hooks/init.ts +0 -16
- package/src/plugins/defaults/image-fallback/hooks/post-compact.ts +0 -52
- package/src/plugins/defaults/image-fallback/hooks/post-model-call.ts +0 -80
- package/src/plugins/defaults/image-fallback/hooks/shutdown.ts +0 -14
- package/src/plugins/defaults/image-fallback/hooks/stop.ts +0 -23
- package/src/plugins/defaults/image-fallback/src/recovery-state.ts +0 -49
- package/src/plugins/defaults/image-fallback/src/vision-error.ts +0 -19
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-skill-card.test.ts +0 -926
- package/src/plugins/defaults/memory/graph/tool-handlers.test.ts +0 -318
- package/src/plugins/defaults/memory/graph-topology/__tests__/build-memory-graph.test.ts +0 -130
- package/src/plugins/defaults/memory/graph-topology/build-memory-graph.ts +0 -303
- package/src/plugins/defaults/memory/graph-topology/flag.ts +0 -14
- package/src/plugins/defaults/memory/graph-topology/types.ts +0 -84
- package/src/plugins/defaults/memory/host-utils.ts +0 -80
- package/src/plugins/defaults/memory/identity-context.ts +0 -39
- package/src/plugins/defaults/memory/logging.ts +0 -17
- package/src/plugins/defaults/memory/memory-retrospective-accounting.ts +0 -143
- package/src/plugins/defaults/memory/memory-retrospective-skill-card.ts +0 -448
- package/src/plugins/defaults/memory/message-media.ts +0 -80
- package/src/plugins/defaults/memory/paths.ts +0 -48
- package/src/plugins/defaults/memory/routes/memory-graph-routes.ts +0 -71
- package/src/plugins/defaults/memory/v2/harness/harness-types.ts +0 -12
- package/src/providers/__tests__/preflight-resolved-config.test.ts +0 -189
- package/src/providers/anthropic-gateway-shared.ts +0 -63
- package/src/providers/content-block-schema.ts +0 -149
- package/src/providers/inference/connection-availability.ts +0 -193
- package/src/providers/media-resolve.ts +0 -193
- package/src/providers/vercel-ai-gateway/client.ts +0 -142
- package/src/runtime/__tests__/actor-trust-resolver.test.ts +0 -132
- package/src/runtime/http-router-types.ts +0 -119
- package/src/runtime/migrations/__tests__/origin-mode.test.ts +0 -62
- package/src/runtime/routes/__tests__/default-provider-routes.test.ts +0 -499
- package/src/runtime/routes/__tests__/inference-callsites-routes.test.ts +0 -54
- package/src/runtime/routes/__tests__/inference-models-routes.test.ts +0 -54
- package/src/runtime/routes/__tests__/inference-profiles-routes.test.ts +0 -403
- package/src/runtime/routes/__tests__/inference-routes-registration.test.ts +0 -42
- package/src/runtime/routes/__tests__/theme-routes.test.ts +0 -66
- package/src/runtime/routes/canned-message-complete.ts +0 -82
- package/src/runtime/routes/channel-metadata.ts +0 -49
- package/src/runtime/routes/credential-request-routes.ts +0 -85
- package/src/runtime/routes/default-provider-routes.ts +0 -132
- package/src/runtime/routes/inbound-stages/reaction-intercept.test.ts +0 -302
- package/src/runtime/routes/inference-callsites-routes.ts +0 -211
- package/src/runtime/routes/inference-models-routes.ts +0 -104
- package/src/runtime/routes/inference-profiles-routes.ts +0 -717
- package/src/runtime/routes/integrations/slack/users.ts +0 -78
- package/src/runtime/routes/llm-request-logs-access.ts +0 -19
- package/src/runtime/routes/theme-routes.ts +0 -36
- package/src/security/__tests__/secret-normalize.test.ts +0 -96
- package/src/security/secret-normalize.ts +0 -41
- package/src/skills/available-skills.ts +0 -134
- package/src/telemetry/__tests__/config-setting-events-store.test.ts +0 -126
- package/src/telemetry/config-setting-events-store.ts +0 -97
- package/src/telemetry/tool-audit.ts +0 -285
- package/src/telemetry/turn-outcome.ts +0 -116
- package/src/theme/workspace-theme.test.ts +0 -269
- package/src/theme/workspace-theme.ts +0 -304
- package/src/tools/execution-target.test.ts +0 -31
- package/src/tts/__tests__/pcm-chunk-aligner.test.ts +0 -48
- package/src/tts/__tests__/pcm-sample-rates.test.ts +0 -59
- package/src/tts/__tests__/speakable-segments.test.ts +0 -427
- package/src/tts/pcm-chunk-aligner.ts +0 -29
- package/src/tts/pcm-sample-rates.ts +0 -47
- package/src/tts/providers/__tests__/xai-tts-socket.test.ts +0 -406
- package/src/tts/providers/xai-tts-socket.ts +0 -311
- package/src/tts/speakable-segments.ts +0 -188
- package/src/tts/stream-read.ts +0 -136
- package/src/util/provider-error-patterns.ts +0 -21
- package/src/util/sqlite-query-label.ts +0 -51
- package/src/watcher/__tests__/engine-auth-notify.test.ts +0 -316
- package/src/workspace/custom-profile-ensure.ts +0 -133
- package/src/workspace/default-provider-ensure.ts +0 -162
- package/src/workspace/migrations/126-strip-managed-profile-bodies.ts +0 -92
- package/src/workspace/migrations/127-backfill-default-provider.ts +0 -176
- package/src/workspace/migrations/128-repair-stale-openrouter-grok-model-ids.ts +0 -112
- package/src/workspace/migrations/129-remove-analyze-conversation-config.ts +0 -59
package/AGENTS.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
For error handling conventions (throw vs result objects vs null), see [docs/error-handling.md](docs/error-handling.md).
|
|
4
4
|
|
|
5
|
-
Subdirectory-scoped rules live in local AGENTS.md files: `src/cli/`, `src/runtime/`, `src/approvals/`, `src/notifications/`, `src/
|
|
5
|
+
Subdirectory-scoped rules live in local AGENTS.md files: `src/cli/`, `src/runtime/`, `src/approvals/`, `src/notifications/`, `src/workspace/migrations/`.
|
|
6
6
|
|
|
7
7
|
## Adding new environment variables
|
|
8
8
|
|
|
@@ -12,8 +12,6 @@ When you introduce a new env var that the assistant process needs to read at run
|
|
|
12
12
|
|
|
13
13
|
**Default to including it.** If the var doesn't contain secrets (e.g. a URL, a feature flag, a path, a mode string), add it. Only omit it if it carries credential material (tokens, passwords, private keys) — those must stay isolated to CES.
|
|
14
14
|
|
|
15
|
-
`CES_LOCAL_SOCKET` is intentionally included despite the socket exposing credential RPCs — assistant subprocesses are expected to reach CES. Credential protection is rules-based access control inside CES, not socket-path secrecy (see root `AGENTS.md`).
|
|
16
|
-
|
|
17
15
|
## Daemon startup philosophy
|
|
18
16
|
|
|
19
17
|
The daemon must **never** block startup due to **subsystem** failures (DB, Qdrant, plugins, feature flags, etc.). If an individual subsystem fails, log the error and continue in degraded mode so the process remains reachable for health checks and diagnostics.
|
package/ARCHITECTURE.md
CHANGED
|
@@ -98,8 +98,7 @@ All HTTP API requests use a single `Authorization: Bearer <jwt>` header for auth
|
|
|
98
98
|
| `src/runtime/auth/route-policy.ts` | Route-level scope/principal enforcement |
|
|
99
99
|
| `src/runtime/routes/guardian-bootstrap-routes.ts` | `POST /v1/guardian/init` (initial JWT issuance) |
|
|
100
100
|
| `src/runtime/routes/guardian-refresh-routes.ts` | `POST /v1/guardian/refresh` (token rotation) |
|
|
101
|
-
| `src/runtime/local-actor-identity.ts` | `
|
|
102
|
-
| `src/runtime/local-principal-trust.ts` | `resolveLocalPrincipalTrustContext` — local-principal trust from the gateway guardian binding |
|
|
101
|
+
| `src/runtime/local-actor-identity.ts` | `resolveLocalGuardianContext` — deterministic local identity |
|
|
103
102
|
| `src/channels/channel-verification-sessions.ts` | Guardian binding types, verification session management |
|
|
104
103
|
|
|
105
104
|
### Channel-Agnostic Scoped Approval Grants
|
|
@@ -500,7 +499,7 @@ Voice invites use a short numeric code (6 digits) instead of a URL token. The gu
|
|
|
500
499
|
|
|
501
500
|
**Call-time redemption subflow (`invite_redemption`):**
|
|
502
501
|
|
|
503
|
-
1. Unknown caller dials in. The media-stream server resolves trust
|
|
502
|
+
1. Unknown caller dials in. The media-stream server resolves trust (gateway trust verdict first, `resolveActorTrust` fallback inside `routeSetup`). Caller is `unknown`, no pending guardian challenge.
|
|
504
503
|
2. `routeSetup` asks the gateway for the active voice invite bound to the caller's phone number (`get_active_voice_invite` IPC via `calls/gateway-invite-reader.ts`; fail-soft — any gateway failure falls through to the unverified path).
|
|
505
504
|
3. If an active, non-expired invite exists, the `CallSetupFlow` runs the `invite_redemption` sub-flow (collecting the code via DTMF or spoken digits) and prompts the caller with personalized copy: `Welcome <friend-name>. Please enter the 6-digit code that <guardian-name> provided you to verify your identity.`
|
|
506
505
|
4. The gateway's `redeem_voice_invite` engine validates: identity match, code hash match, expiry, use count. On success, the phone channel is activated in the gateway ACL and the call transitions to the normal call flow.
|
|
@@ -537,7 +536,7 @@ The voice inbound security model determines how unknown callers are handled when
|
|
|
537
536
|
Unknown caller dials in
|
|
538
537
|
|
|
|
539
538
|
v
|
|
540
|
-
|
|
539
|
+
resolveActorTrust() → trustClass
|
|
541
540
|
|
|
|
542
541
|
├── guardian / trusted_contact → normal call flow
|
|
543
542
|
├── blocked → immediate denial + disconnect
|
|
@@ -593,7 +592,7 @@ All guardian decisions for voice access requests flow through:
|
|
|
593
592
|
| `src/runtime/access-request-helper.ts` | Creates canonical access request and notifies guardian |
|
|
594
593
|
| `src/approvals/guardian-decision-primitive.ts` | `applyCanonicalGuardianDecision` — unified decision primitive |
|
|
595
594
|
| `src/approvals/guardian-request-resolvers.ts` | `access_request` resolver — voice direct activation, text-channel verification session |
|
|
596
|
-
| `src/runtime/trust-
|
|
595
|
+
| `src/runtime/actor-trust-resolver.ts` | `resolveActorTrust` — caller trust classification |
|
|
597
596
|
| `src/contacts/canonical-guardian-store.ts` | Canonical request persistence and CAS resolution |
|
|
598
597
|
|
|
599
598
|
### Speech-to-Text (STT) Boundaries
|
|
@@ -735,7 +734,7 @@ The assistant-side live voice module is intentionally bounded under `src/live-vo
|
|
|
735
734
|
|
|
736
735
|
Live voice STT uses the same `resolveStreamingTranscriber()` path as conversation streaming. For V1 latency-sensitive behavior, the selected `services.stt.provider` must resolve to a `daemon-streaming` transcriber whose catalog entry has `conversationStreamingMode: "realtime-ws"` and usable credentials. Providers that only support batch or incremental-batch transcription remain valid for other voice surfaces, but do not satisfy live voice's streaming STT requirement.
|
|
737
736
|
|
|
738
|
-
Live voice TTS uses `streamLiveVoiceTtsAudio()` and the configured `services.tts.provider`. The selected provider must be registered, catalog-compatible, and expose `capabilities.supportsStreaming` plus `synthesizeStream()`.
|
|
737
|
+
Live voice TTS uses `streamLiveVoiceTtsAudio()` and the configured `services.tts.provider`. The selected provider must be registered, catalog-compatible, and expose `capabilities.supportsStreaming` plus `synthesizeStream()`. Fish Audio is the current catalog provider with streaming synthesis support; non-streaming providers remain available for buffered message playback or other supported surfaces, but live voice reports a TTS error instead of silently falling back to buffered playback.
|
|
739
738
|
|
|
740
739
|
V1 is local/gateway-scoped. Managed/cloud WebSocket proxy support, cross-region routing, and p50/p95 latency guarantees are out of scope for this version. Metrics frames expose timing data for measurement, but the architecture does not promise a hard latency SLO.
|
|
741
740
|
|
|
@@ -786,7 +785,7 @@ Conversation starters follow the same pattern via `GET /v1/conversation-starters
|
|
|
786
785
|
|
|
787
786
|
The assistant feature-flag resolver (`src/config/assistant-feature-flags.ts`) is the canonical module for determining whether an assistant feature flag is enabled. It loads default values from the unified registry at `meta/feature-flags/feature-flag-registry.json` (bundled copy at `src/config/feature-flag-registry.json`) and resolves the effective state for each declared assistant-scope flag. Assistant feature flags are declaration-driven assistant-scoped booleans that can gate any assistant behavior; skill availability is one consumer.
|
|
788
787
|
|
|
789
|
-
**Canonical key format:** Simple kebab-case (e.g., `contacts`, `
|
|
788
|
+
**Canonical key format:** Simple kebab-case (e.g., `contacts`, `ces-tools`).
|
|
790
789
|
|
|
791
790
|
**Resolution priority** (highest wins):
|
|
792
791
|
|
|
@@ -814,7 +813,7 @@ The assistant feature-flag resolver (`src/config/assistant-feature-flags.ts`) is
|
|
|
814
813
|
|
|
815
814
|
All six enforcement points derive the flag key via `skillFlagKey(skill)` — which returns `undefined` for ungated skills, short-circuiting the check — and then call `isAssistantFeatureFlagEnabled(flagKey, config)` for consistency.
|
|
816
815
|
|
|
817
|
-
**Migration path:** The legacy `skills.<id>.enabled` and `feature_flags.<id>.enabled` key formats are no longer supported. All code must use simple kebab-case keys (e.g., `contacts`, `
|
|
816
|
+
**Migration path:** The legacy `skills.<id>.enabled` and `feature_flags.<id>.enabled` key formats are no longer supported. All code must use simple kebab-case keys (e.g., `contacts`, `ces-tools`). Guard tests enforce canonical key usage and declaration coverage for literal key references in the unified registry.
|
|
818
817
|
|
|
819
818
|
**Key source files:**
|
|
820
819
|
|
|
@@ -857,10 +856,11 @@ graph LR
|
|
|
857
856
|
|
|
858
857
|
subgraph "$VELLUM_WORKSPACE_DIR/data/db/assistant.db (SQLite + WAL)"
|
|
859
858
|
direction TB
|
|
860
|
-
CONV["conversations<br/>───────────────<br/>id, title, timestamps<br/>token counts, estimated cost<br/>context_summary (compaction)<br/>conversation_type: 'standard' | 'background' | 'scheduled'"]
|
|
859
|
+
CONV["conversations<br/>───────────────<br/>id, title, timestamps<br/>token counts, estimated cost<br/>context_summary (compaction)<br/>conversation_type: 'standard' | 'background' | 'scheduled'<br/>memory_scope_id: 'default' | '_pkb_workspace' | 'subagent:<id>'"]
|
|
861
860
|
MSG["messages<br/>───────────────<br/>id, conversation_id (FK)<br/>role: user | assistant<br/>content: JSON array<br/>created_at"]
|
|
862
861
|
TOOL["tool_invocations<br/>───────────────<br/>tool_name, input, result<br/>decision, risk_level<br/>duration_ms"]
|
|
863
862
|
SEG["memory_segments<br/>───────────────<br/>Text chunks for retrieval<br/>Linked to messages<br/>token_estimate per segment"]
|
|
863
|
+
ITEMS["memory_items<br/>───────────────<br/>Extracted facts/entities<br/>kind, subject, statement<br/>confidence, fingerprint (dedup)<br/>verification_state, scope_id<br/>first/last seen timestamps"]
|
|
864
864
|
SUM["memory_summaries<br/>───────────────<br/>scope: conversation | weekly<br/>Compressed history for context<br/>window management"]
|
|
865
865
|
EMB["memory_embeddings<br/>───────────────<br/>target: segment | item | summary<br/>provider + model metadata<br/>vector_json (float array)<br/>Powers semantic search"]
|
|
866
866
|
JOBS["memory_jobs<br/>───────────────<br/>Async task queue<br/>Types: embed, extract,<br/>summarize, backfill, cleanup<br/>Status: pending → running →<br/>completed | failed"]
|
package/README.md
CHANGED
|
@@ -252,7 +252,7 @@ The channel guardian service generates verification challenge instructions with
|
|
|
252
252
|
The vellum channel (macOS) uses JWTs to bind guardian identity to HTTP requests. This enables identity-based authentication for the local desktop channel, paralleling how external channels (Telegram) use `actorExternalId` for guardian identity. The CLI authenticates using its bearer token obtained during `hatch`.
|
|
253
253
|
|
|
254
254
|
- **Bootstrap**: After hatch, the macOS client calls `POST /v1/guardian/init` with `{ platform, deviceId }`. Returns `{ guardianPrincipalId, accessToken, accessTokenExpiresAt, refreshToken, refreshTokenExpiresAt, refreshAfter, isNew }`. The endpoint is idempotent -- repeated calls with the same device return the same principal but mint fresh credentials. The CLI does not bootstrap separately; it uses the bearer token minted during `hatch`.
|
|
255
|
-
- **Local identity**: Local connections
|
|
255
|
+
- **Local identity**: Local connections resolve identity server-side via `resolveLocalGuardianContext()` without requiring a JWT.
|
|
256
256
|
- **HTTP enforcement**: All vellum HTTP routes require a valid JWT via the `Authorization: Bearer <jwt>` header. The JWT carries identity claims (`sub` with principal type and ID) and scope permissions. Route-level enforcement in `route-policy.ts` checks scopes and principal types.
|
|
257
257
|
- **Startup migration**: On gateway start, `ensureVellumGuardianBinding()` in `gateway/src/auth/guardian-bootstrap.ts` backfills a vellum guardian binding for existing installations so the identity system works without requiring a manual bootstrap step.
|
|
258
258
|
|
|
@@ -155,6 +155,7 @@ graph TB
|
|
|
155
155
|
EMBED_Q["Generate dense + sparse<br/>query embeddings"]
|
|
156
156
|
HYBRID["Hybrid Search<br/>dense + sparse RRF on Qdrant"]
|
|
157
157
|
MERGE["Merge + Deduplicate<br/>weighted score combination"]
|
|
158
|
+
SCOPE["Scope Filter<br/>scope_id filtering<br/>(strict | global_fallback)<br/>Subagents: own scope + 'default'"]
|
|
158
159
|
TIER["Tier Classification<br/>score > 0.8 → tier 1<br/>score > 0.6 → tier 2<br/>below → dropped"]
|
|
159
160
|
STALE["Staleness Computation<br/>kind-specific lifetimes<br/>+ reinforcement from<br/>source conversation count"]
|
|
160
161
|
DEMOTE["Stale Demotion<br/>very_stale tier 1 → tier 2"]
|
|
@@ -214,7 +215,8 @@ graph TB
|
|
|
214
215
|
EMBED_Q --> SPARSE_GEN
|
|
215
216
|
EMBED_Q --> HYBRID
|
|
216
217
|
HYBRID --> RRF
|
|
217
|
-
HYBRID -->
|
|
218
|
+
HYBRID --> SCOPE
|
|
219
|
+
SCOPE --> MERGE
|
|
218
220
|
MERGE --> TIER
|
|
219
221
|
TIER --> STALE
|
|
220
222
|
STALE --> DEMOTE
|
|
@@ -34,15 +34,23 @@ For local single-user and development deployments, the assistant spawns CES as a
|
|
|
34
34
|
|
|
35
35
|
For managed multi-tenant deployments, CES runs as a sidecar container in the same pod. Communication occurs over a **bootstrap Unix socket** mounted at a well-known path in a shared `emptyDir` volume. The sidecar starts independently and the assistant connects to the socket on startup.
|
|
36
36
|
|
|
37
|
-
## CES
|
|
37
|
+
## CES Tools
|
|
38
38
|
|
|
39
|
-
CES
|
|
39
|
+
CES exposes exactly three tools to the assistant, registered as a **deliberate exception** to the skill-first tool direction (see `AGENTS.md` and `assistant/src/tools/AGENTS.md`). These tools are not skills because they require hard process-boundary isolation that skill scripts cannot provide.
|
|
40
40
|
|
|
41
|
-
|
|
|
42
|
-
| ---------------------------- |
|
|
43
|
-
| `run_authenticated_command` | Execute a shell command with credential environment variables injected by CES. The credential values are set in the CES process environment only — never transmitted to the
|
|
44
|
-
| `make_authenticated_request` | Execute an HTTP request with credential-bearing headers/auth injected by CES. CES performs the HTTP call and returns the response body and status to the
|
|
45
|
-
| `manage_secure_command_tool` | Register and manage secure command tool bundles in the CES toolstore. Handles bundle lifecycle (registration, unregistration) for manifest-driven credential-bearing commands.
|
|
41
|
+
| Tool | Purpose |
|
|
42
|
+
| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
43
|
+
| `run_authenticated_command` | Execute a shell command with credential environment variables injected by CES. The credential values are set in the CES process environment only — never transmitted to the assistant. |
|
|
44
|
+
| `make_authenticated_request` | Execute an HTTP request with credential-bearing headers/auth injected by CES. CES performs the HTTP call and returns the response body and status to the assistant. |
|
|
45
|
+
| `manage_secure_command_tool` | Register and manage secure command tool bundles in the CES toolstore. Handles bundle lifecycle (registration, unregistration) for manifest-driven credential-bearing commands. |
|
|
46
|
+
|
|
47
|
+
### Tool registration
|
|
48
|
+
|
|
49
|
+
CES tools use the standard `class ... implements Tool` registration pattern. These are justified exceptions to the general preference for skills because:
|
|
50
|
+
|
|
51
|
+
- The security boundary requires that credential materialization happens in a separate process
|
|
52
|
+
- Skill scripts run inside the assistant process and cannot enforce the hard isolation invariant
|
|
53
|
+
- The tools are thin RPC stubs; the actual logic lives in the `credential-executor/` package
|
|
46
54
|
|
|
47
55
|
## Locked Decisions
|
|
48
56
|
|
|
@@ -217,13 +225,47 @@ These invariants are enforced by guard tests and code review:
|
|
|
217
225
|
|
|
218
226
|
1. **No cross-package source imports**: `assistant/` must not import from `credential-executor/` and vice versa. Communication is RPC only. Shared types flow through `packages/` only.
|
|
219
227
|
2. **No credential values in assistant process memory**: The assistant sends credential handles (not values) to CES. CES materializes and uses them internally.
|
|
220
|
-
3. **
|
|
228
|
+
3. **CES tools justify tool registrations over skills** for credential-bearing execution because of the hard process-boundary isolation requirement. All other credential use continues through the existing broker for local deployments.
|
|
221
229
|
4. **Grants and audit logs are CES-internal**: The assistant cannot read CES grant tables or audit logs directly. CES exposes grant status and audit summaries via RPC responses.
|
|
222
230
|
5. **No generic authenticated HTTP clients in secure commands**: `curl`, `wget`, `httpie`, interpreters, and shell trampolines are structurally denied as secure command entrypoints. This is checked at manifest validation and re-checked at execution time.
|
|
223
231
|
6. **Managed CES container runs as non-root**: The CES Docker image runs as `uid 1001` (user `ces`). The CES data volume is owned by this user.
|
|
224
232
|
7. **Single active bootstrap connection**: In managed mode, CES accepts one connection on the bootstrap socket and unlinks the socket path while that connection is live, so no second process can connect concurrently. CES is a long-lived sidecar: when the active session ends (the assistant disconnects or its container restarts), CES re-binds the socket and awaits the assistant's reconnection rather than shutting down. At most one connection is ever active; the sidecar only exits on SIGTERM/SIGINT.
|
|
225
233
|
|
|
226
|
-
##
|
|
234
|
+
## Rollout
|
|
235
|
+
|
|
236
|
+
CES is rolled out incrementally via feature flags, all defaulting to `false` (off). The flags are ordered to allow progressive enablement without user-facing disruption.
|
|
237
|
+
|
|
238
|
+
### Feature flag order
|
|
239
|
+
|
|
240
|
+
Enable flags in this order. Each flag is safe to enable independently, but later flags depend on earlier ones being on for meaningful behavior.
|
|
241
|
+
|
|
242
|
+
| Order | Flag | Gate | Safe to enable alone? |
|
|
243
|
+
| ----- | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
|
|
244
|
+
| 1 | `ces-tools` | Register CES tools (`run_authenticated_command`, `make_authenticated_request`, `manage_secure_command_tool`) in the agent loop | Yes — tools register but are not invoked unless the agent discovers credentials that require CES |
|
|
245
|
+
| 2 | `ces-shell-lockdown` | Enforce shell lockdown for untrusted agents with CES-active credentials; direct shell access to credentialed services is denied | Yes — only activates when CES credentials are present |
|
|
246
|
+
| 3 | `ces-secure-install` | Route tool/command installation through CES secure bundle pipeline instead of direct shell | Yes — falls back to standard install if CES is unavailable |
|
|
247
|
+
| 4 | `ces-grant-audit` | Gate CLI execution of grant listing, grant revocation, and audit inspection commands (commands are always registered but check the flag at runtime) | Yes — read-only inspection surfaces |
|
|
248
|
+
| 5 | `ces-managed-sidecar` | Use managed sidecar transport (Unix socket) instead of local child-process transport | **No** — requires the CES sidecar container to be present in the pod template. Only enable after the sidecar image is deployed. |
|
|
249
|
+
|
|
250
|
+
### Dark-launching the managed sidecar
|
|
251
|
+
|
|
252
|
+
To dark-launch CES in managed deployments without user impact:
|
|
253
|
+
|
|
254
|
+
1. **Deploy the CES container image** via the `credential_executor_image` field in `POST /v1/internal/assistant-image-releases/`. The warm-pool manager picks it up and includes it in pod templates. The CES container starts, binds its bootstrap socket and health port (8090), but does nothing until an assistant connects.
|
|
255
|
+
|
|
256
|
+
2. **Verify sidecar health** using kubelet probes: `/healthz` (liveness, returns `{"status": "ok"}`) and `/readyz` (readiness, always returns 200; includes `rpcConnected` field for observability).
|
|
257
|
+
|
|
258
|
+
3. **Enable `ces-tools`** first on a test cohort. The assistant spawns a local CES child process and registers tools. Verify tool registration, grant creation, and audit logging work end-to-end without affecting existing workflows.
|
|
259
|
+
|
|
260
|
+
4. **Enable `ces-managed-sidecar`** on the same cohort. The assistant switches from child-process transport to the bootstrap Unix socket. CES `/readyz` always returns 200 with `{"status": "ok", "rpcConnected": <boolean>}`; check the `rpcConnected` field to verify the assistant has connected.
|
|
261
|
+
|
|
262
|
+
5. **Progressive rollout**: Widen the cohort by enabling flags on more assistants. Monitor for grant failures, materializer errors, and egress proxy issues.
|
|
263
|
+
|
|
264
|
+
### Local deployment rollout
|
|
265
|
+
|
|
266
|
+
Local deployments do not require image changes. Enabling `ces-tools` causes the assistant to spawn CES as a child process automatically. The remaining flags can be enabled in any order.
|
|
267
|
+
|
|
268
|
+
### Guarantees by deployment mode
|
|
227
269
|
|
|
228
270
|
| Guarantee | Local | Managed |
|
|
229
271
|
| ------------------------------------------ | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
@@ -234,6 +276,51 @@ These invariants are enforced by guard tests and code review:
|
|
|
234
276
|
| Secret scrubbing in HTTP responses | Defense-in-depth only | Defense-in-depth only |
|
|
235
277
|
| `host_bash` restriction | Policy-only (trust rules can deny, but the tool exists) | Policy-only (same; managed deployments should deny `host_bash` for untrusted agents) |
|
|
236
278
|
|
|
279
|
+
## Rollback
|
|
280
|
+
|
|
281
|
+
### Disabling CES entirely
|
|
282
|
+
|
|
283
|
+
Turn off all CES feature flags. The assistant stops registering CES tools and reverts to the pre-CES credential broker for all credential operations. No data migration is needed — CES grant and audit state is CES-private and does not affect the assistant's own tables.
|
|
284
|
+
|
|
285
|
+
Flag disable order:
|
|
286
|
+
|
|
287
|
+
> **Important — managed deployments**: In managed containers, the assistant image does not ship the `credential-executor` binary, so local CES transport is unavailable. Disabling `ces-managed-sidecar` while `ces-tools` is still enabled will break credentialed tool execution because the assistant cannot fall back to local discovery. Always disable `ces-tools` before `ces-managed-sidecar` in managed deployments.
|
|
288
|
+
|
|
289
|
+
**Local deployments** (reverse of enable order):
|
|
290
|
+
|
|
291
|
+
1. `ces-managed-sidecar` — assistant reverts to local child-process transport
|
|
292
|
+
2. `ces-grant-audit` — inspection surfaces disappear
|
|
293
|
+
3. `ces-secure-install` — tool installation reverts to direct shell
|
|
294
|
+
4. `ces-shell-lockdown` — shell lockdown is lifted
|
|
295
|
+
5. `ces-tools` — CES tools are unregistered from the agent loop
|
|
296
|
+
|
|
297
|
+
**Managed deployments** (`ces-tools` must be disabled before the sidecar):
|
|
298
|
+
|
|
299
|
+
1. `ces-grant-audit` — inspection surfaces disappear
|
|
300
|
+
2. `ces-secure-install` — tool installation reverts to direct shell
|
|
301
|
+
3. `ces-shell-lockdown` — shell lockdown is lifted
|
|
302
|
+
4. `ces-tools` — CES tools are unregistered; assistant reverts to the pre-CES credential broker
|
|
303
|
+
5. `ces-managed-sidecar` — sidecar transport is deactivated (safe now that no CES tools are registered)
|
|
304
|
+
|
|
305
|
+
### Removing the managed sidecar
|
|
306
|
+
|
|
307
|
+
If the CES sidecar container causes pod scheduling issues or resource pressure:
|
|
308
|
+
|
|
309
|
+
1. Disable `ces-tools` on all assistants first (prevents the assistant from attempting CES calls).
|
|
310
|
+
2. Disable `ces-managed-sidecar` on all assistants.
|
|
311
|
+
3. Remove the CES container and its volume mounts from the pod template in vembda.
|
|
312
|
+
4. CES grant/audit data on the `/ces-data` volume is orphaned and can be cleaned up at convenience.
|
|
313
|
+
|
|
314
|
+
The assistant reverts to the pre-CES credential broker once `ces-tools` is disabled.
|
|
315
|
+
|
|
316
|
+
### Partial rollback
|
|
317
|
+
|
|
318
|
+
Individual flags can be disabled independently:
|
|
319
|
+
|
|
320
|
+
- Disabling `ces-shell-lockdown` alone re-allows direct shell access to credentialed services while keeping CES tools available.
|
|
321
|
+
- Disabling `ces-grant-audit` alone removes inspection surfaces without affecting CES execution.
|
|
322
|
+
- Disabling `ces-secure-install` alone reverts tool installation to direct shell without affecting CES command execution.
|
|
323
|
+
|
|
237
324
|
## Residual Risks
|
|
238
325
|
|
|
239
326
|
Risks that are acknowledged and accepted for v1, documented here so they are explicit rather than implied.
|