@vellumai/assistant 0.10.12 → 0.11.0-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 -1
- package/ARCHITECTURE.md +4 -5
- package/README.md +1 -1
- package/docs/architecture/memory.md +60 -23
- package/docs/error-handling.md +3 -3
- package/docs/guardian-request-flow.md +112 -0
- package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/package.json +1 -0
- package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/__tests__/channels.test.ts +9 -1
- package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/__tests__/secret-detection.test.ts +449 -0
- package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/channels.ts +1 -0
- package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/secret-detection.ts +468 -0
- package/node_modules/@vellumai/gateway-client/node_modules/@slack/types/dist/events/app.d.ts +28 -0
- package/node_modules/@vellumai/gateway-client/node_modules/@slack/types/dist/events/app.d.ts.map +1 -1
- package/node_modules/@vellumai/gateway-client/node_modules/@slack/types/dist/events/index.d.ts +2 -2
- package/node_modules/@vellumai/gateway-client/node_modules/@slack/types/dist/events/index.d.ts.map +1 -1
- package/node_modules/@vellumai/gateway-client/node_modules/@slack/types/dist/events/index.js.map +1 -1
- package/node_modules/@vellumai/gateway-client/node_modules/@slack/types/dist/events/message.d.ts +2 -0
- package/node_modules/@vellumai/gateway-client/node_modules/@slack/types/dist/events/message.d.ts.map +1 -1
- package/node_modules/@vellumai/gateway-client/node_modules/@slack/types/package.json +1 -1
- package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/package.json +1 -0
- package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/__tests__/channels.test.ts +9 -1
- package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/__tests__/secret-detection.test.ts +449 -0
- package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/channels.ts +1 -0
- package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/secret-detection.ts +468 -0
- package/node_modules/@vellumai/gateway-client/package.json +1 -1
- package/node_modules/@vellumai/gateway-client/src/admission-policy-contract.ts +6 -0
- package/node_modules/@vellumai/gateway-client/src/inbound-contract.ts +34 -0
- package/node_modules/@vellumai/service-contracts/package.json +1 -0
- package/node_modules/@vellumai/service-contracts/src/__tests__/channels.test.ts +9 -1
- package/node_modules/@vellumai/service-contracts/src/__tests__/secret-detection.test.ts +449 -0
- package/node_modules/@vellumai/service-contracts/src/channels.ts +1 -0
- package/node_modules/@vellumai/service-contracts/src/secret-detection.ts +468 -0
- package/openapi.yaml +246 -10
- package/package.json +2 -2
- package/src/__tests__/acp-session.test.ts +3 -3
- package/src/__tests__/agent-loop-mutable-latest-user-message.test.ts +3 -0
- package/src/__tests__/anthropic-provider.test.ts +40 -0
- package/src/__tests__/approval-cascade.test.ts +5 -5
- package/src/__tests__/approval-routes-http.test.ts +3 -3
- package/src/__tests__/ask-question-resolver.test.ts +207 -0
- package/src/__tests__/assistant-event-hub-self-exclusion.test.ts +16 -16
- package/src/__tests__/assistant-event-hub-targeted.test.ts +13 -11
- package/src/__tests__/assistant-event-hub.test.ts +13 -11
- package/src/__tests__/assistant-event.test.ts +12 -9
- 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__/assistant-id-boundary-guard.test.ts +0 -58
- package/src/__tests__/assistant-stream-state.test.ts +17 -7
- package/src/__tests__/avatar-identity-sync.test.ts +3 -3
- package/src/__tests__/background-workers-disk-pressure.test.ts +1 -0
- package/src/__tests__/call-conversation-messages.test.ts +134 -18
- package/src/__tests__/call-start-guardian-guard.test.ts +27 -0
- package/src/__tests__/channel-approvals.test.ts +0 -27
- package/src/__tests__/channel-guardian.test.ts +85 -512
- package/src/__tests__/channel-readiness-slack-remote.test.ts +151 -3
- package/src/__tests__/channel-retry-sweep.test.ts +88 -1
- package/src/__tests__/channel-setup-panel-ack.test.ts +12 -9
- package/src/__tests__/chat-reveal-guard-priming.test.ts +31 -34
- package/src/__tests__/cli-memory-v2-reembed-skills.test.ts +2 -2
- package/src/__tests__/compaction-events.test.ts +8 -8
- package/src/__tests__/config-loader-platform-defaults.test.ts +54 -28
- package/src/__tests__/config-model-image-provider.test.ts +20 -0
- package/src/__tests__/config-schema-memory-substrate.test.ts +306 -0
- package/src/__tests__/config-schema.test.ts +14 -2
- package/src/__tests__/config-set-platform-guard.test.ts +11 -12
- package/src/__tests__/config-sounds-sync.test.ts +4 -4
- package/src/__tests__/confirmation-request-guardian-bridge.test.ts +5 -0
- package/src/__tests__/context-search-memory-source.test.ts +1 -1
- package/src/__tests__/context-search-memory-v2-source.test.ts +6 -6
- package/src/__tests__/context-token-estimator.test.ts +54 -1
- package/src/__tests__/conversation-agent-loop-disk-pressure.test.ts +12 -3
- package/src/__tests__/conversation-agent-loop-fatal-cleanup.test.ts +13 -4
- package/src/__tests__/conversation-agent-loop-handlers-max-tokens.test.ts +4 -4
- package/src/__tests__/conversation-agent-loop-inference-profile.test.ts +10 -1
- package/src/__tests__/conversation-agent-loop-overflow.test.ts +22 -13
- package/src/__tests__/conversation-agent-loop.test.ts +39 -30
- package/src/__tests__/conversation-confirmation-signals.test.ts +14 -14
- package/src/__tests__/conversation-evictor.test.ts +49 -0
- package/src/__tests__/conversation-fork-crud.test.ts +1 -1
- package/src/__tests__/conversation-history-web-search.test.ts +1 -1
- package/src/__tests__/conversation-key-store-disk-view.test.ts +5 -5
- package/src/__tests__/conversation-loop-db-lock-resilience.test.ts +5 -5
- package/src/__tests__/conversation-message-sync-tags.test.ts +4 -4
- package/src/__tests__/conversation-queue.test.ts +81 -81
- package/src/__tests__/conversation-routes-enabled-plugins.test.ts +8 -1
- package/src/__tests__/conversation-routes-hidden-queue.test.ts +8 -1
- package/src/__tests__/conversation-routes-slash-commands.test.ts +10 -1
- package/src/__tests__/conversation-runtime-assembly.test.ts +29 -2
- package/src/__tests__/conversation-slash-queue.test.ts +11 -11
- package/src/__tests__/conversation-slash-unknown.test.ts +2 -2
- package/src/__tests__/conversation-speed-override.test.ts +2 -2
- package/src/__tests__/conversation-summarize-route.test.ts +9 -0
- package/src/__tests__/conversation-surfaces-action-delivery.test.ts +18 -16
- package/src/__tests__/conversation-surfaces-activation-emit.test.ts +17 -17
- package/src/__tests__/conversation-surfaces-app-open.test.ts +7 -4
- package/src/__tests__/conversation-surfaces-data-persist.test.ts +7 -7
- package/src/__tests__/conversation-surfaces-standalone-payloads.test.ts +9 -9
- package/src/__tests__/conversation-surfaces-standalone.test.ts +12 -12
- package/src/__tests__/conversation-surfaces-state-update.test.ts +8 -5
- package/src/__tests__/conversation-surfaces-table-action.test.ts +6 -3
- package/src/__tests__/conversation-surfaces-task-progress.test.ts +46 -46
- package/src/__tests__/conversation-sync-tags.test.ts +5 -5
- package/src/__tests__/conversation-wait-for-idle.test.ts +2 -2
- package/src/__tests__/conversation-workspace-cache-state.test.ts +0 -4
- package/src/__tests__/conversation-workspace-injection.test.ts +0 -3
- package/src/__tests__/conversation-workspace-tool-tracking.test.ts +0 -3
- package/src/__tests__/copy-composer-tc-templates.test.ts +3 -131
- package/src/__tests__/credential-security-invariants.test.ts +1 -0
- package/src/__tests__/daemon-assistant-events.test.ts +14 -15
- package/src/__tests__/db-test-helpers.ts +13 -27
- package/src/__tests__/disk-pressure-routes.test.ts +12 -3
- package/src/__tests__/document-tool-security.test.ts +95 -0
- package/src/__tests__/drain-kick-guard.test.ts +232 -0
- package/src/__tests__/dynamic-skill-background-guard.test.ts +19 -6
- package/src/__tests__/emit-event-signal.test.ts +5 -6
- package/src/__tests__/encrypted-store-test-helpers.ts +10 -20
- package/src/__tests__/events-tail-route.test.ts +6 -4
- package/src/__tests__/feature-flag-test-helpers.ts +10 -20
- package/src/__tests__/file-edit-tool.test.ts +24 -4
- package/src/__tests__/file-list-tool.test.ts +2 -1
- package/src/__tests__/file-read-tool.test.ts +62 -10
- package/src/__tests__/file-write-tool.test.ts +24 -5
- package/src/__tests__/followup-tools.test.ts +58 -0
- package/src/__tests__/gateway-threshold-reader-mock.ts +99 -0
- package/src/__tests__/graph-extraction-event-date.test.ts +1 -1
- package/src/__tests__/guardian-question-mode.test.ts +42 -3
- package/src/__tests__/guardian-reply-router-answer-mode.test.ts +283 -0
- package/src/__tests__/guardian-vellum-destination-pinning.test.ts +221 -0
- package/src/__tests__/heartbeat-disk-pressure.test.ts +1 -0
- package/src/__tests__/heartbeat-service.test.ts +1 -0
- package/src/__tests__/helpers/native-web-search-harness.ts +10 -10
- package/src/__tests__/host-browser-proxy.test.ts +1 -1
- package/src/__tests__/host-file-edit-tool.test.ts +3 -3
- package/src/__tests__/host-file-read-tool.test.ts +2 -2
- package/src/__tests__/host-file-write-tool.test.ts +7 -3
- package/src/__tests__/host-shell-tool.test.ts +17 -5
- package/src/__tests__/host-transfer-pending-interactions.test.ts +8 -8
- package/src/__tests__/image-credentials.test.ts +65 -8
- package/src/__tests__/injection-block.test.ts +4 -4
- package/src/__tests__/injector-chain.test.ts +1 -1
- package/src/__tests__/injector-pkb-v2-silenced.test.ts +2 -2
- package/src/__tests__/injector-registry-order-guard.test.ts +4 -9
- package/src/__tests__/injector-v3-suppression.test.ts +6 -4
- package/src/__tests__/lifecycle-memory-v2-seed.test.ts +27 -28
- package/src/__tests__/list-messages-page-latest.test.ts +2 -2
- package/src/__tests__/llm-usage-store.test.ts +67 -4
- package/src/__tests__/log-redact.test.ts +18 -0
- package/src/__tests__/managed-profile-guard.test.ts +27 -0
- package/src/__tests__/managed-skill-lifecycle.test.ts +2 -2
- package/src/__tests__/media-generate-image.test.ts +62 -11
- package/src/__tests__/memory-identity-context-parity.test.ts +1 -1
- package/src/__tests__/memory-jobs-worker-lanes.test.ts +9 -1
- package/src/__tests__/memory-retrieval-hook.test.ts +4 -4
- package/src/__tests__/notification-decision-strategy.test.ts +115 -11
- package/src/__tests__/notification-deep-link.test.ts +12 -12
- package/src/__tests__/notification-vellum-adapter.test.ts +8 -8
- package/src/__tests__/outbound-slack-persistence.test.ts +8 -8
- package/src/__tests__/path-policy.test.ts +315 -0
- package/src/__tests__/pending-interactions-resolved-event.test.ts +6 -6
- package/src/__tests__/persistence-layering-guard.test.ts +2 -2
- package/src/__tests__/pkb-autoinject.test.ts +1 -1
- package/src/__tests__/platform-bash-auto-approve.test.ts +1 -0
- package/src/__tests__/plugin-event-hub-facade.test.ts +22 -15
- package/src/__tests__/plugin-import-boundary-guard.test.ts +15 -15
- package/src/__tests__/processing-flag-persist-failure.test.ts +0 -4
- package/src/__tests__/provider-platform-proxy-integration.test.ts +0 -1
- package/src/__tests__/rebuild-index-graph-nodes.test.ts +1 -1
- package/src/__tests__/request-secret-standalone-channel-gate.test.ts +5 -5
- package/src/__tests__/require-fresh-approval.test.ts +38 -38
- package/src/__tests__/run-due-schedules.test.ts +72 -1
- package/src/__tests__/runtime-events-sse-parity.test.ts +11 -10
- package/src/__tests__/runtime-events-sse.test.ts +1 -1
- package/src/__tests__/schedule-routes.test.ts +44 -5
- package/src/__tests__/schedule-store.test.ts +3 -3
- package/src/__tests__/schedule-tools.test.ts +176 -0
- package/src/__tests__/secret-prompt-log-hygiene.test.ts +3 -3
- package/src/__tests__/secret-prompter-channel-fallback.test.ts +3 -3
- package/src/__tests__/secret-response-routing.test.ts +3 -3
- package/src/__tests__/secret-routes-platform-proxy.test.ts +4 -7
- package/src/__tests__/secret-scanner.test.ts +36 -0
- package/src/__tests__/send-endpoint-busy.test.ts +7 -7
- package/src/__tests__/slack-required-scopes-mirror.test.ts +81 -0
- package/src/__tests__/starter-task-flow.test.ts +6 -3
- package/src/__tests__/subagent-call-site-routing.test.ts +2 -2
- package/src/__tests__/subagent-disposal.test.ts +40 -11
- package/src/__tests__/subagent-fork-notifications.test.ts +4 -4
- package/src/__tests__/subagent-fork-prompt-role.test.ts +3 -3
- package/src/__tests__/subagent-fork-spawn.test.ts +4 -4
- package/src/__tests__/subagent-manager-notify.test.ts +73 -14
- package/src/__tests__/subagent-notify-parent.test.ts +48 -4
- package/src/__tests__/subagent-spawn-and-await.test.ts +62 -14
- package/src/__tests__/subagent-tools.test.ts +64 -0
- package/src/__tests__/sync-message-contract.test.ts +3 -3
- package/src/__tests__/terminal-tools.test.ts +12 -3
- package/src/__tests__/test-preload.ts +9 -0
- package/src/__tests__/tool-approval-handler.test.ts +583 -43
- package/src/__tests__/tool-execution-pipeline.benchmark.test.ts +7 -4
- package/src/__tests__/tool-executor.test.ts +116 -0
- package/src/__tests__/tool-grant-request-escalation.test.ts +5 -0
- package/src/__tests__/tool-preview-lifecycle.test.ts +32 -29
- package/src/__tests__/tool-result-metadata-plumbing.test.ts +5 -5
- package/src/__tests__/tool-start-timestamp.test.ts +4 -4
- package/src/__tests__/trusted-contact-lifecycle-notifications.test.ts +9 -22
- package/src/__tests__/ui-choice-copy-surfaces.test.ts +13 -13
- package/src/__tests__/ui-work-result-surface.test.ts +3 -3
- package/src/__tests__/voice-scoped-grant-consumer.test.ts +6 -6
- package/src/__tests__/voice-session-bridge.test.ts +44 -44
- package/src/__tests__/workspace-migration-134-image-generation-mode-to-provider.test.ts +284 -0
- package/src/__tests__/workspace-policy.test.ts +399 -0
- package/src/acp/__tests__/client-handler.test.ts +3 -3
- package/src/acp/__tests__/session-manager-persistence.test.ts +10 -10
- package/src/acp/__tests__/session-manager-resume.test.ts +7 -7
- package/src/acp/client-handler.ts +3 -3
- package/src/acp/session-manager.ts +8 -8
- package/src/api/events/subagent-event.ts +2 -2
- package/src/api/responses/memory-v2-activation-log.ts +2 -2
- package/src/approvals/AGENTS.md +2 -0
- package/src/approvals/guardian-request-resolvers.ts +118 -24
- package/src/calls/__tests__/voice-control-protocol.test.ts +57 -0
- package/src/calls/__tests__/voice-session-bridge.test.ts +158 -4
- package/src/calls/__tests__/voice-triage-escalate.test.ts +3 -4
- package/src/calls/call-controller.ts +27 -27
- package/src/calls/call-conversation-messages.ts +58 -18
- package/src/calls/voice-control-protocol.ts +56 -0
- package/src/calls/voice-session-bridge.ts +156 -58
- package/src/calls/voice-triage-escalate.ts +2 -3
- package/src/channels/config.ts +8 -0
- package/src/channels/types.ts +1 -0
- package/src/cli/commands/config.ts +49 -13
- package/src/cli/commands/memory/index.help.ts +4 -2
- package/src/cli/commands/memory/memory-retrospective.ts +5 -0
- package/src/cli/lib/bundled-marketplace.json +12 -0
- package/src/cli.ts +2 -109
- package/src/config/__tests__/deployment-context-defaults.test.ts +9 -0
- package/src/config/__tests__/substrate-twin-shadowing.test.ts +191 -0
- package/src/config/assistant-feature-flags.ts +1 -1
- package/src/config/bundled-skills/image-studio/tools/media-generate-image.ts +13 -7
- package/src/config/feature-flag-cache.ts +6 -16
- package/src/config/feature-flag-registry.json +14 -30
- package/src/config/loader.ts +7 -1
- package/src/config/memory-tier.ts +15 -10
- package/src/config/memory-v3-gate.test.ts +278 -1
- package/src/config/memory-v3-gate.ts +88 -26
- package/src/config/raw-config-utils.ts +1 -1
- package/src/config/schemas/__tests__/live-voice.test.ts +27 -16
- package/src/config/schemas/__tests__/memory-v3.test.ts +1 -0
- package/src/config/schemas/live-voice.ts +33 -7
- package/src/config/schemas/llm.ts +1 -0
- package/src/config/schemas/memory-retrospective.ts +13 -0
- package/src/config/schemas/memory-substrate.ts +183 -0
- package/src/config/schemas/memory-v2.ts +3 -2
- package/src/config/schemas/memory-v3.ts +11 -4
- package/src/config/schemas/memory.ts +35 -1
- package/src/config/schemas/services.ts +10 -2
- package/src/config/substrate-twin-shadowing.ts +195 -0
- package/src/config/webhook-routing.ts +67 -0
- package/src/context/compactor.ts +10 -3
- package/src/context/token-estimator.ts +21 -0
- package/src/daemon/__tests__/channel-ui-capability.test.ts +85 -0
- package/src/daemon/__tests__/conversation-surfaces-launch.test.ts +3 -3
- package/src/daemon/__tests__/embedding-reconcile.test.ts +3 -3
- package/src/daemon/__tests__/inference-profile-notification.test.ts +3 -6
- package/src/daemon/__tests__/native-web-search-metadata.test.ts +5 -5
- package/src/daemon/__tests__/web-search-status-text.test.ts +2 -2
- package/src/daemon/channel-ui-capability.ts +70 -1
- package/src/daemon/conversation-agent-loop-handlers.ts +4 -4
- package/src/daemon/conversation-agent-loop.ts +12 -5
- package/src/daemon/conversation-evictor.ts +26 -4
- package/src/daemon/conversation-launch.ts +11 -14
- package/src/daemon/conversation-messaging.ts +14 -14
- package/src/daemon/conversation-notifiers.ts +2 -2
- package/src/daemon/conversation-process.ts +133 -21
- package/src/daemon/conversation-queue-manager.ts +7 -7
- package/src/daemon/conversation-runtime-assembly.ts +16 -0
- package/src/daemon/conversation-store.ts +11 -3
- package/src/daemon/conversation-surfaces.ts +4 -4
- package/src/daemon/conversation-tool-setup.ts +13 -7
- package/src/daemon/conversation-usage.ts +12 -11
- package/src/daemon/conversation.ts +38 -15
- package/src/daemon/disk-pressure-guard.ts +5 -12
- package/src/daemon/embedding-reconcile.ts +14 -9
- package/src/daemon/handlers/config-channels.ts +40 -134
- package/src/daemon/handlers/config-model.ts +15 -7
- package/src/daemon/handlers/conversations.ts +4 -2
- package/src/daemon/handlers/shared.ts +29 -0
- package/src/daemon/host-proxy-base.ts +4 -4
- package/src/daemon/lifecycle.ts +13 -0
- package/src/daemon/message-protocol.ts +8 -144
- package/src/daemon/message-types/computer-use.ts +0 -12
- package/src/daemon/message-types/conversations.ts +9 -345
- package/src/daemon/message-types/host-app-control.ts +0 -9
- package/src/daemon/message-types/host-browser.ts +0 -7
- package/src/daemon/message-types/host-ui-snapshot.ts +0 -7
- package/src/daemon/message-types/messages.ts +0 -48
- package/src/daemon/message-types/notifications.ts +0 -7
- package/src/daemon/message-types/skills.ts +0 -5
- package/src/daemon/message-types/surfaces.ts +0 -9
- package/src/daemon/message-types/sync.ts +0 -2
- package/src/daemon/process-message.ts +5 -5
- package/src/daemon/skill-memory-refresh.ts +5 -5
- package/src/daemon/tool-side-effects.ts +13 -13
- package/src/daemon/trust-context.ts +1 -1
- package/src/daemon/wake-conversation-ops.ts +4 -4
- package/src/heartbeat/__tests__/heartbeat-run-store.test.ts +100 -7
- package/src/heartbeat/__tests__/heartbeat-service.test.ts +67 -0
- package/src/heartbeat/heartbeat-run-store.ts +81 -4
- package/src/heartbeat/heartbeat-service.ts +32 -1
- package/src/home/__tests__/feed-writer.test.ts +7 -7
- package/src/home/__tests__/home-content-refresh.test.ts +3 -0
- package/src/home/__tests__/suggested-prompts.test.ts +1 -0
- package/src/home/feed-writer.ts +6 -13
- package/src/home/home-content-refresh.ts +6 -9
- package/src/home/relationship-state-writer.ts +5 -12
- package/src/home/suggested-prompts-cache.ts +6 -19
- package/src/ipc/__tests__/events-publish-client.test.ts +67 -0
- package/src/ipc/events-publish-client.ts +44 -0
- package/src/ipc/routes/__tests__/conversation-sync-ipc-routes.test.ts +2 -2
- package/src/ipc/routes/__tests__/events-ipc-routes.test.ts +38 -9
- package/src/ipc/routes/events-ipc-routes.ts +11 -31
- package/src/live-voice/__tests__/front-decision.test.ts +4 -176
- package/src/live-voice/__tests__/live-voice-agent-turn.test.ts +276 -68
- package/src/live-voice/__tests__/live-voice-events.test.ts +6 -3
- package/src/live-voice/__tests__/live-voice-progress.test.ts +185 -46
- package/src/live-voice/__tests__/live-voice-triage-escalate.test.ts +24 -59
- package/src/live-voice/__tests__/live-voice-tts-session.test.ts +38 -54
- package/src/live-voice/__tests__/live-voice-vad.test.ts +218 -422
- package/src/live-voice/front-decision.ts +5 -155
- package/src/live-voice/live-voice-metrics.ts +4 -1
- package/src/live-voice/live-voice-session.ts +650 -333
- package/src/live-voice/progress-phrases.ts +17 -0
- package/src/live-voice/protocol.ts +15 -0
- package/src/media/app-icon-generator.ts +15 -8
- package/src/media/avatar-router.ts +9 -5
- package/src/media/image-credentials.ts +42 -10
- package/src/media/image-service.ts +1 -13
- package/src/media/types.ts +26 -3
- package/src/notifications/AGENTS.md +2 -0
- package/src/notifications/__tests__/broadcaster.test.ts +95 -0
- package/src/notifications/adapters/macos.ts +3 -3
- package/src/notifications/broadcaster.ts +57 -0
- package/src/notifications/copy-composer.ts +0 -15
- package/src/notifications/decision-engine.ts +21 -22
- package/src/notifications/guardian-question-mode.ts +57 -2
- package/src/notifications/home-feed-side-effect.ts +4 -0
- package/src/notifications/signal.ts +6 -4
- package/src/notifications/trusted-contact-payloads.ts +3 -4
- package/src/notifications/vellum-card-affinity.ts +39 -0
- package/src/oauth/AGENTS.md +1 -1
- package/src/permissions/channel-permission-query.test.ts +69 -0
- package/src/permissions/channel-permission-query.ts +73 -1
- package/src/permissions/checker.test.ts +85 -9
- package/src/permissions/checker.ts +17 -22
- package/src/permissions/confirmation-guardian-request.test.ts +2 -2
- package/src/permissions/confirmation-guardian-request.ts +2 -2
- package/src/permissions/gateway-threshold-reader.test.ts +224 -17
- package/src/permissions/gateway-threshold-reader.ts +82 -10
- package/src/permissions/ipc-risk-types.ts +8 -0
- package/src/permissions/prompter.ts +5 -5
- package/src/permissions/question-guardian-request.test.ts +222 -0
- package/src/permissions/question-guardian-request.ts +179 -0
- package/src/permissions/question-prompter.test.ts +8 -8
- package/src/permissions/question-prompter.ts +18 -0
- package/src/permissions/secret-prompter.ts +2 -4
- package/src/permissions/workspace-policy.ts +236 -34
- package/src/persistence/__tests__/lifecycle-quiesce.test.ts +82 -0
- package/src/persistence/__tests__/message-content-file.test.ts +58 -3
- package/src/persistence/conversation-crud.ts +93 -0
- package/src/persistence/conversation-key-store.ts +63 -0
- package/src/persistence/db-async-query.ts +1 -1
- package/src/persistence/db-singleton.ts +14 -27
- package/src/persistence/delivery-crud.ts +45 -0
- package/src/persistence/embeddings/embedding-backend.ts +2 -1
- package/src/persistence/embeddings/embedding-identity.ts +7 -3
- package/src/persistence/job-utils.ts +32 -27
- package/src/persistence/jobs-store.ts +92 -3
- package/src/persistence/lifecycle-quiesce.ts +80 -0
- package/src/persistence/llm-usage-store.ts +45 -8
- package/src/persistence/message-content-file.ts +4 -4
- package/src/persistence/migrations/336-move-memory-v2-activation-logs-to-memory-db.ts +1 -1
- package/src/persistence/migrations/351-schedule-skill-script-handoff.ts +39 -0
- package/src/persistence/migrations/352-drop-schedule-skill-script-handoff.test.ts +83 -0
- package/src/persistence/migrations/352-drop-schedule-skill-script-handoff.ts +36 -0
- package/src/persistence/migrations/353-add-llm-usage-conversation-type.test.ts +110 -0
- package/src/persistence/migrations/353-add-llm-usage-conversation-type.ts +49 -0
- package/src/persistence/schema/infrastructure.ts +11 -0
- package/src/persistence/steps.ts +7 -1
- package/src/plugin-api/__tests__/publish-event-forwarding.test.ts +113 -0
- package/src/plugin-api/__tests__/publish-event.test.ts +57 -0
- package/src/plugin-api/conversation-turn.ts +4 -4
- package/src/plugin-api/event-hub-facade.ts +15 -6
- package/src/plugin-api/index.ts +10 -4
- package/src/plugin-api/publish-event.ts +36 -0
- package/src/plugins/AGENTS.md +2 -0
- package/src/plugins/defaults/compaction/window-manager.ts +9 -0
- package/src/plugins/defaults/index.ts +9 -13
- package/src/plugins/defaults/memory/AGENTS.md +775 -0
- package/src/plugins/defaults/memory/__tests__/capability-seed-embed-gate.test.ts +186 -0
- package/src/plugins/defaults/memory/__tests__/fixtures/memory-v2-activation-fixtures.ts +1 -1
- package/src/plugins/defaults/memory/__tests__/indexer-tier-dispatch.test.ts +129 -0
- package/src/plugins/defaults/memory/__tests__/jobs-worker-quiesce-gate.test.ts +91 -0
- package/src/plugins/defaults/memory/__tests__/jobs-worker-v1-graph-substrate-noop.test.ts +342 -0
- package/src/plugins/defaults/memory/__tests__/jobs-worker-v2-graph-trigger-embed.test.ts +9 -1
- package/src/plugins/defaults/memory/__tests__/jobs-worker-v2-schedule.test.ts +36 -1
- package/src/plugins/defaults/memory/__tests__/jobs-worker-v2-sweep-defer.test.ts +9 -1
- package/src/plugins/defaults/memory/__tests__/memory-log-stores-degraded.test.ts +2 -2
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-job.test.ts +44 -10
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-sweep.test.ts +151 -10
- package/src/plugins/defaults/memory/__tests__/memory-tier-boundary-guard.test.ts +1155 -0
- package/src/plugins/defaults/memory/__tests__/memory-v2-activation-log-store.test.ts +1 -1
- package/src/plugins/defaults/memory/__tests__/memory-v2-concept-frequency.test.ts +3 -3
- package/src/plugins/defaults/memory/__tests__/tools-delete-memory-page.test.ts +1 -1
- package/src/plugins/defaults/memory/context-search/sources/memory-v2.ts +71 -35
- package/src/plugins/defaults/memory/context-search/sources/memory.ts +5 -1
- package/src/plugins/defaults/memory/fork-conversation-memory.ts +4 -4
- package/src/plugins/defaults/memory/graph/__tests__/conversation-graph-memory-v2-routing.test.ts +80 -10
- package/src/plugins/defaults/memory/graph/__tests__/handle-remember-v2.test.ts +1 -1
- package/src/plugins/defaults/memory/graph/capability-seed.ts +24 -10
- package/src/plugins/defaults/memory/graph/conversation-graph-memory.ts +123 -49
- package/src/plugins/defaults/memory/graph/graph-search.ts +6 -118
- package/src/plugins/defaults/memory/graph/in-context-tracker.test.ts +173 -0
- package/src/plugins/defaults/memory/graph/in-context-tracker.ts +109 -0
- package/src/plugins/defaults/memory/graph/store.ts +1 -0
- package/src/plugins/defaults/memory/graph/tool-handlers.test.ts +1 -1
- package/src/plugins/defaults/memory/graph/tool-handlers.ts +5 -2
- package/src/plugins/defaults/memory/graph-topology/__tests__/build-memory-graph.test.ts +1 -1
- package/src/plugins/defaults/memory/graph-topology/build-memory-graph.ts +6 -9
- package/src/plugins/defaults/memory/hooks/__tests__/user-prompt-submit.test.ts +30 -16
- package/src/plugins/defaults/memory/hooks/user-prompt-submit.ts +18 -14
- package/src/plugins/defaults/memory/indexer.ts +146 -89
- package/src/plugins/defaults/memory/injectors.ts +86 -41
- package/src/plugins/defaults/memory/job-handlers.ts +130 -39
- package/src/plugins/defaults/memory/jobs/__tests__/embed-concept-page.test.ts +2 -2
- package/src/plugins/defaults/memory/jobs/embed-concept-page.ts +22 -10
- package/src/plugins/defaults/memory/jobs-worker.ts +279 -208
- package/src/plugins/defaults/memory/memory-retrospective-enqueue.ts +4 -2
- package/src/plugins/defaults/memory/memory-retrospective-job.ts +40 -3
- package/src/plugins/defaults/memory/memory-retrospective-sweep.ts +99 -11
- package/src/plugins/defaults/memory/src/__tests__/memory-v2-routes.test.ts +5 -3
- package/src/plugins/defaults/memory/src/__tests__/memory-v2-simulate-route.test.ts +3 -4
- package/src/plugins/defaults/memory/src/memory-graph-routes.ts +2 -1
- package/src/plugins/defaults/memory/src/memory-item-routes.test.ts +7 -5
- package/src/plugins/defaults/memory/src/memory-item-routes.ts +51 -19
- package/src/plugins/defaults/memory/src/memory-v2-routes.ts +31 -20
- package/src/plugins/defaults/memory/startup.ts +58 -21
- package/src/plugins/defaults/memory/substrate/__tests__/boot-maintenance.test.ts +335 -0
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/__tests__/cli-command-store.test.ts +14 -8
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/__tests__/consolidation-job.test.ts +51 -21
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/__tests__/edge-index.test.ts +1 -1
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/__tests__/frontmatter-sweep.test.ts +3 -3
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/__tests__/page-index.test.ts +1 -1
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/__tests__/page-store.test.ts +1 -1
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/__tests__/prompts-consolidation.test.ts +2 -2
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/__tests__/qdrant.test.ts +23 -14
- package/src/plugins/defaults/memory/substrate/__tests__/reembed-job.test.ts +262 -0
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/__tests__/sim.test.ts +9 -12
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/__tests__/skill-content.test.ts +2 -2
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/__tests__/skill-store.test.ts +9 -9
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/__tests__/sparse-bm25.test.ts +12 -5
- package/src/plugins/defaults/memory/substrate/__tests__/spread.test.ts +276 -0
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/__tests__/static-context.test.ts +17 -8
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/__tests__/sweep-job.test.ts +9 -9
- package/src/plugins/defaults/memory/{v3/substrate/memory-v2-startup.ts → substrate/boot-maintenance.ts} +43 -24
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/cli-command-store.ts +13 -8
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/consolidation-job.ts +51 -27
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/constants.ts +1 -0
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/edge-index.ts +28 -9
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/frontmatter-sweep.ts +14 -7
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/injected-block-slugs.ts +9 -3
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/page-index.ts +29 -10
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/page-store.ts +35 -12
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/prompts/consolidation.ts +14 -8
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/prompts/sweep.ts +4 -1
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/qdrant.ts +96 -36
- package/src/plugins/defaults/memory/substrate/reembed-job.ts +54 -0
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/sim.ts +26 -15
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/skill-content.ts +1 -1
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/skill-store.ts +13 -8
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/sparse-bm25.ts +27 -10
- package/src/plugins/defaults/memory/substrate/spread.ts +165 -0
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/static-context.ts +12 -7
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/sweep-job.ts +20 -15
- package/src/plugins/defaults/memory/substrate/tuning.ts +93 -0
- package/src/plugins/defaults/memory/{v3/substrate → substrate}/types.ts +7 -4
- package/src/plugins/defaults/memory/tools.test.ts +1 -1
- package/src/plugins/defaults/memory/tools.ts +1 -1
- package/src/plugins/defaults/memory/v1/README.md +5 -0
- package/src/plugins/defaults/memory/{__tests__ → v1/__tests__}/filing-jobs.test.ts +4 -4
- package/src/plugins/defaults/memory/{filing-jobs.ts → v1/filing-jobs.ts} +3 -3
- package/src/plugins/defaults/memory/{graph → v1/graph}/bootstrap.test.ts +68 -6
- package/src/plugins/defaults/memory/{graph → v1/graph}/bootstrap.ts +40 -21
- package/src/plugins/defaults/memory/{graph → v1/graph}/consolidation.ts +14 -14
- package/src/plugins/defaults/memory/{graph → v1/graph}/decay.test.ts +1 -1
- package/src/plugins/defaults/memory/{graph → v1/graph}/decay.ts +3 -3
- package/src/plugins/defaults/memory/{graph → v1/graph}/extraction-job.ts +5 -5
- package/src/plugins/defaults/memory/{graph → v1/graph}/extraction.test.ts +1 -1
- package/src/plugins/defaults/memory/{graph → v1/graph}/extraction.ts +20 -14
- package/src/plugins/defaults/memory/{graph → v1/graph}/graph-search.test.ts +3 -3
- package/src/plugins/defaults/memory/v1/graph/graph-search.ts +123 -0
- package/src/plugins/defaults/memory/{graph → v1/graph}/injection.test.ts +1 -118
- package/src/plugins/defaults/memory/{graph → v1/graph}/injection.ts +9 -111
- package/src/plugins/defaults/memory/{graph → v1/graph}/narrative.ts +6 -6
- package/src/plugins/defaults/memory/{graph → v1/graph}/pattern-scan.ts +5 -5
- package/src/plugins/defaults/memory/{graph → v1/graph}/retriever.test.ts +135 -42
- package/src/plugins/defaults/memory/{graph → v1/graph}/retriever.ts +40 -22
- package/src/plugins/defaults/memory/{graph → v1/graph}/scoring.test.ts +1 -1
- package/src/plugins/defaults/memory/{graph → v1/graph}/scoring.ts +1 -1
- package/src/plugins/defaults/memory/{graph → v1/graph}/serendipity.ts +1 -1
- package/src/plugins/defaults/memory/{graph → v1/graph}/triggers.test.ts +1 -1
- package/src/plugins/defaults/memory/{graph → v1/graph}/triggers.ts +1 -1
- package/src/plugins/defaults/memory/{identity-context.ts → v1/identity-context.ts} +4 -4
- package/src/plugins/defaults/memory/{job-handlers → v1/job-handlers}/backfill.ts +6 -6
- package/src/plugins/defaults/memory/{job-handlers → v1/job-handlers}/embedding.test.ts +6 -6
- package/src/plugins/defaults/memory/{job-handlers → v1/job-handlers}/embedding.ts +6 -6
- package/src/plugins/defaults/memory/{job-handlers → v1/job-handlers}/index-maintenance.ts +8 -8
- package/src/plugins/defaults/memory/{jobs → v1/jobs}/embed-pkb-file.test.ts +7 -7
- package/src/plugins/defaults/memory/{jobs → v1/jobs}/embed-pkb-file.ts +5 -5
- package/src/plugins/defaults/memory/{pkb → v1/pkb}/autoinject.ts +1 -1
- package/src/plugins/defaults/memory/{pkb → v1/pkb}/context.ts +2 -2
- package/src/plugins/defaults/memory/{pkb → v1/pkb}/pkb-index.test.ts +3 -3
- package/src/plugins/defaults/memory/{pkb → v1/pkb}/pkb-index.ts +2 -2
- package/src/plugins/defaults/memory/{pkb → v1/pkb}/pkb-reconcile.test.ts +3 -3
- package/src/plugins/defaults/memory/{pkb → v1/pkb}/pkb-reconcile.ts +2 -2
- package/src/plugins/defaults/memory/{pkb → v1/pkb}/pkb-search.test.ts +3 -3
- package/src/plugins/defaults/memory/{pkb → v1/pkb}/pkb-search.ts +6 -6
- package/src/plugins/defaults/memory/{pkb → v1/pkb}/types.ts +3 -5
- package/src/plugins/defaults/memory/{pkb-schedule.ts → v1/pkb-schedule.ts} +2 -2
- package/src/plugins/defaults/memory/{search/semantic.ts → v1/semantic-search.ts} +1 -1
- package/src/plugins/defaults/memory/v2/__tests__/activation-store.test.ts +1 -1
- package/src/plugins/defaults/memory/v2/__tests__/activation.test.ts +11 -274
- package/src/plugins/defaults/memory/v2/__tests__/backfill-jobs.test.ts +9 -131
- package/src/plugins/defaults/memory/v2/__tests__/harness-compare.test.ts +1 -1
- package/src/plugins/defaults/memory/v2/__tests__/harness-oracle.test.ts +1 -1
- package/src/plugins/defaults/memory/v2/__tests__/harness-replay-input.test.ts +1 -1
- package/src/plugins/defaults/memory/v2/__tests__/injection.test.ts +14 -10
- package/src/plugins/defaults/memory/v2/__tests__/reranker.test.ts +7 -5
- package/src/plugins/defaults/memory/v2/__tests__/router.test.ts +12 -6
- package/src/plugins/defaults/memory/{memory-v2-activation-log-store.ts → v2/activation-log-store.ts} +2 -2
- package/src/plugins/defaults/memory/v2/activation-store.ts +22 -8
- package/src/plugins/defaults/memory/v2/activation.ts +30 -163
- package/src/plugins/defaults/memory/v2/backfill-jobs.ts +7 -54
- package/src/plugins/defaults/memory/{memory-v2-concept-frequency.ts → v2/concept-frequency.ts} +3 -3
- package/src/plugins/defaults/memory/v2/harness/oracle.ts +1 -1
- package/src/plugins/defaults/memory/v2/harness/replay-input.ts +2 -2
- package/src/plugins/defaults/memory/v2/harness/retriever.ts +1 -1
- package/src/plugins/defaults/memory/v2/injection.ts +36 -26
- package/src/plugins/defaults/memory/v2/migration.ts +2 -2
- package/src/plugins/defaults/memory/{rerank-local.ts → v2/rerank-local.ts} +44 -18
- package/src/plugins/defaults/memory/v2/reranker.ts +29 -11
- package/src/plugins/defaults/memory/v2/router.ts +38 -15
- package/src/plugins/defaults/memory/v3/__tests__/candidate-match.test.ts +5 -3
- package/src/plugins/defaults/memory/v3/__tests__/carry-integration.test.ts +21 -8
- package/src/plugins/defaults/memory/v3/__tests__/edge.test.ts +1 -1
- package/src/plugins/defaults/memory/v3/__tests__/live-integration.test.ts +1 -1
- package/src/plugins/defaults/memory/v3/__tests__/maintain-job.test.ts +4 -1
- package/src/plugins/defaults/memory/v3/__tests__/orchestrate.test.ts +181 -3
- package/src/plugins/defaults/memory/v3/__tests__/selection-log-store.test.ts +3 -0
- package/src/plugins/defaults/memory/v3/__tests__/shadow-integration.test.ts +14 -5
- package/src/plugins/defaults/memory/v3/__tests__/shadow-plugin.test.ts +40 -50
- package/src/plugins/defaults/memory/v3/__tests__/tuning-profile.test.ts +1 -0
- package/src/plugins/defaults/memory/v3/candidate-match.ts +2 -2
- package/src/plugins/defaults/memory/v3/capabilities.ts +6 -4
- package/src/plugins/defaults/memory/v3/card.ts +25 -9
- package/src/plugins/defaults/memory/v3/edge.ts +52 -18
- package/src/plugins/defaults/memory/v3/gate.ts +4 -4
- package/src/plugins/defaults/memory/v3/injector.ts +10 -3
- package/src/plugins/defaults/memory/v3/maintain-job.ts +3 -3
- package/src/plugins/defaults/memory/v3/orchestrate.ts +100 -18
- package/src/plugins/defaults/memory/v3/page-content.ts +26 -10
- package/src/plugins/defaults/memory/v3/prune.ts +40 -16
- package/src/plugins/defaults/memory/v3/selection-log-store.ts +34 -12
- package/src/plugins/defaults/memory/v3/shadow-plugin.ts +9 -13
- package/src/plugins/defaults/memory/v3/span-query.test.ts +86 -0
- package/src/plugins/defaults/memory/v3/span-query.ts +71 -0
- package/src/plugins/defaults/memory/v3/tuning-profile.ts +3 -0
- package/src/plugins/defaults/memory/v3/types.ts +4 -1
- package/src/plugins/defaults/memory/v3-eval/eval-packets.ts +2 -2
- package/src/plugins/defaults/memory/validation.ts +1 -1
- package/src/plugins/defaults/memory/worker.ts +2 -1
- package/src/plugins/defaults/platform-hosted/__tests__/reengage.test.ts +104 -12
- package/src/plugins/defaults/platform-hosted/routes/reengage.ts +104 -12
- package/src/plugins/types.ts +2 -2
- package/src/providers/__tests__/registry-native-web-search.test.ts +47 -2
- package/src/providers/anthropic/client.ts +15 -6
- package/src/providers/content-block-schema.ts +26 -0
- package/src/providers/inference/__tests__/connections-credential-normalize.test.ts +87 -0
- package/src/providers/inference/adapter-factory.ts +6 -0
- package/src/providers/inference/connections.ts +30 -14
- package/src/providers/model-catalog.ts +77 -0
- package/src/providers/openai/__tests__/chat-completions-input-audio.test.ts +260 -0
- package/src/providers/openai/chat-completions-provider.ts +65 -17
- package/src/providers/openai/input-audio.ts +76 -0
- package/src/providers/openrouter/client.ts +0 -2
- package/src/providers/platform-proxy/constants.ts +4 -0
- package/src/providers/poolside/client.ts +42 -0
- package/src/providers/registry.ts +40 -8
- package/src/providers/retry.ts +2 -0
- package/src/providers/types.ts +39 -1
- package/src/providers/vercel-ai-gateway/client.ts +0 -2
- package/src/runtime/AGENTS.md +7 -5
- package/src/runtime/__tests__/question-request-guardian-bridge.test.ts +173 -0
- package/src/runtime/__tests__/question-resolution.test.ts +111 -0
- package/src/runtime/access-request-helper.ts +7 -15
- package/src/runtime/assistant-event-hub.ts +43 -31
- package/src/runtime/assistant-event-publish-options.ts +31 -0
- package/src/runtime/assistant-event.ts +19 -30
- package/src/runtime/assistant-stream-state.ts +4 -4
- package/src/runtime/channel-approvals.ts +0 -25
- package/src/runtime/channel-readiness-service.ts +99 -40
- package/src/runtime/channel-retry-sweep.ts +38 -15
- package/src/runtime/confirmation-request-guardian-bridge.ts +4 -0
- package/src/runtime/guardian-reply-router.ts +108 -0
- package/src/runtime/http-server.ts +8 -0
- package/src/runtime/http-types.ts +2 -2
- package/src/runtime/process-role.ts +42 -0
- package/src/runtime/question-request-guardian-bridge.ts +184 -0
- package/src/runtime/question-resolution.ts +153 -0
- package/src/runtime/routes/__tests__/bookmark-routes.test.ts +6 -2
- package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +1 -1
- package/src/runtime/routes/acp-routes.ts +2 -2
- package/src/runtime/routes/bookmark-routes.ts +3 -15
- package/src/runtime/routes/canned-message-complete.ts +2 -2
- package/src/runtime/routes/consolidation-routes.ts +8 -2
- package/src/runtime/routes/conversation-list-routes.ts +3 -19
- package/src/runtime/routes/conversation-management-routes.ts +1 -5
- package/src/runtime/routes/conversation-query-routes.ts +52 -8
- package/src/runtime/routes/conversation-routes.ts +36 -22
- package/src/runtime/routes/credential-request-routes.ts +0 -1
- package/src/runtime/routes/filing-routes.ts +7 -7
- package/src/runtime/routes/global-search-routes.ts +1 -1
- package/src/runtime/routes/guardian-approval-prompt.ts +2 -2
- package/src/runtime/routes/image-generation-routes.ts +12 -9
- package/src/runtime/routes/inbound-message-handler.ts +17 -0
- package/src/runtime/routes/inbound-stages/acl-enforcement.test.ts +50 -0
- package/src/runtime/routes/inbound-stages/acl-enforcement.ts +19 -0
- package/src/runtime/routes/inbound-stages/background-dispatch.ts +4 -4
- package/src/runtime/routes/inbound-stages/inbound-content-prep.test.ts +129 -0
- package/src/runtime/routes/inbound-stages/inbound-content-prep.ts +141 -9
- package/src/runtime/routes/index.ts +2 -0
- package/src/runtime/routes/lifecycle-routes.ts +199 -0
- package/src/runtime/routes/platform-routes.ts +3 -8
- package/src/runtime/routes/playground/__tests__/inject-failures.test.ts +7 -7
- package/src/runtime/routes/playground/__tests__/reset-circuit.test.ts +5 -5
- package/src/runtime/routes/question-routes.ts +34 -87
- package/src/runtime/routes/secret-routes.ts +11 -1
- package/src/runtime/routes/settings-routes.ts +8 -18
- package/src/runtime/routes/upgrade-broadcast-routes.ts +4 -5
- package/src/runtime/routes/workspace-routes.test.ts +7 -4
- package/src/runtime/slack-reply-session.test.ts +12 -12
- package/src/runtime/slack-reply-session.ts +17 -17
- package/src/runtime/sync/sync-publisher.test.ts +7 -5
- package/src/runtime/tool-grant-request-helper.ts +4 -0
- package/src/schedule/schedule-store.ts +70 -0
- package/src/schedule/scheduler.ts +27 -0
- package/src/security/AGENTS.md +1 -1
- package/src/security/credential-key.ts +17 -0
- package/src/security/secret-ingress.ts +14 -105
- package/src/security/secret-patterns.ts +8 -139
- package/src/security/secret-scanner.ts +8 -3
- package/src/security/store-path-override.ts +6 -16
- package/src/sequence/store.ts +8 -0
- package/src/signals/emit-event.ts +5 -10
- package/src/signals/event-stream.ts +20 -10
- package/src/subagent/manager.ts +76 -25
- package/src/subagent/notify.ts +8 -0
- package/src/subagent/types.ts +13 -3
- package/src/telegram/__tests__/webhook-health.test.ts +442 -0
- package/src/telegram/webhook-health.ts +478 -0
- package/src/telemetry/AGENTS.md +6 -0
- package/src/telemetry/memory-corpus-size.test.ts +129 -0
- package/src/telemetry/memory-corpus-size.ts +184 -0
- package/src/telemetry/memory-tier-reporter.test.ts +67 -2
- package/src/telemetry/memory-tier-reporter.ts +30 -3
- package/src/tools/__tests__/document-tool-input-schemas.test.ts +103 -0
- package/src/tools/__tests__/followup-call-acp-tool-input-schemas.test.ts +125 -0
- package/src/tools/__tests__/schedule-tool-input-schemas.test.ts +83 -0
- package/src/tools/__tests__/subagent-workflow-tool-input-schemas.test.ts +116 -0
- package/src/tools/__tests__/tool-input-schemas.test.ts +192 -0
- package/src/tools/__tests__/tool-schema-drift-harness.ts +142 -0
- package/src/tools/acp/abort.ts +21 -1
- package/src/tools/acp/context.ts +5 -5
- package/src/tools/acp/spawn.test.ts +15 -5
- package/src/tools/acp/spawn.ts +26 -3
- package/src/tools/acp/status.ts +20 -1
- package/src/tools/acp/steer.test.ts +20 -0
- package/src/tools/acp/steer.ts +23 -2
- package/src/tools/ask-question/ask-question-tool.test.ts +65 -0
- package/src/tools/ask-question/ask-question-tool.ts +68 -92
- package/src/tools/browser/browser-screencast.ts +6 -6
- package/src/tools/calls/call-end.ts +24 -3
- package/src/tools/calls/call-start.ts +35 -11
- package/src/tools/calls/call-status.ts +20 -1
- package/src/tools/document/document-comment-tool.test.ts +49 -0
- package/src/tools/document/document-comment-tool.ts +45 -6
- package/src/tools/document/document-tool.ts +142 -24
- package/src/tools/executor.ts +27 -13
- package/src/tools/filesystem/edit.ts +62 -60
- package/src/tools/filesystem/list.ts +36 -29
- package/src/tools/filesystem/read.ts +56 -39
- package/src/tools/filesystem/write.ts +44 -38
- package/src/tools/followups/followup_create.ts +41 -12
- package/src/tools/followups/followup_list.ts +34 -6
- package/src/tools/followups/followup_resolve.ts +26 -4
- package/src/tools/host-filesystem/edit.ts +50 -60
- package/src/tools/host-filesystem/read.ts +45 -39
- package/src/tools/host-filesystem/write.ts +31 -36
- package/src/tools/host-terminal/host-shell.ts +76 -62
- package/src/tools/policy-context.ts +27 -10
- package/src/tools/schedule/create.ts +76 -33
- package/src/tools/schedule/delete.ts +21 -2
- package/src/tools/schedule/list.ts +25 -3
- package/src/tools/schedule/update.ts +105 -48
- package/src/tools/shared/filesystem/path-policy.ts +246 -40
- package/src/tools/shared/zod-tool-schema.ts +117 -0
- package/src/tools/subagent/abort.ts +12 -4
- package/src/tools/subagent/consult-deadline.ts +9 -3
- package/src/tools/subagent/message.ts +21 -5
- package/src/tools/subagent/notify-parent.ts +44 -23
- package/src/tools/subagent/read.ts +15 -4
- package/src/tools/subagent/resolve.ts +26 -4
- package/src/tools/subagent/spawn.ts +37 -13
- package/src/tools/subagent/status.ts +12 -4
- package/src/tools/system/request-permission.ts +35 -26
- package/src/tools/terminal/shell.ts +68 -55
- package/src/tools/tool-approval-handler.ts +327 -53
- package/src/tools/tool-input-schemas.ts +85 -0
- package/src/tools/tool-types.ts +7 -0
- package/src/tools/types.ts +8 -0
- package/src/tools/workflows/manage-workflows.ts +30 -2
- package/src/tools/workflows/run-workflow.test.ts +54 -2
- package/src/tools/workflows/run-workflow.ts +32 -4
- package/src/util/fs-symlinks.ts +30 -0
- package/src/util/log-redact.ts +7 -3
- package/src/vellum-assistant-namespace.d.ts +80 -0
- package/src/watcher/watcher-store.ts +8 -0
- package/src/workflows/leaf-runner.test.ts +104 -2
- package/src/workflows/leaf-runner.ts +31 -6
- package/src/workspace/migrations/070-memory-v2-summary-schema-rebuild.ts +2 -2
- package/src/workspace/migrations/134-image-generation-mode-to-provider.ts +128 -0
- package/src/workspace/migrations/135-copy-substrate-tunables.ts +248 -0
- package/src/workspace/migrations/__tests__/135-copy-substrate-tunables.test.ts +446 -0
- package/src/workspace/migrations/__tests__/backfill-v3-leaves.test.ts +2 -2
- package/src/workspace/migrations/registry.ts +4 -0
- package/src/__tests__/memory-retrieval-budget.test.ts +0 -49
- package/src/__tests__/secret-patterns.test.ts +0 -27
- package/src/config/__tests__/proc-to-skills.test.ts +0 -21
- package/src/config/memory-tier.test.ts +0 -44
- package/src/daemon/message-types/acp.ts +0 -20
- package/src/daemon/message-types/apps.ts +0 -11
- package/src/daemon/message-types/background-tools.ts +0 -14
- package/src/daemon/message-types/bookmarks.ts +0 -13
- package/src/daemon/message-types/contacts.ts +0 -13
- package/src/daemon/message-types/document-comments.ts +0 -14
- package/src/daemon/message-types/documents.ts +0 -13
- package/src/daemon/message-types/home.ts +0 -15
- package/src/daemon/message-types/host-bash.ts +0 -12
- package/src/daemon/message-types/host-cu.ts +0 -10
- package/src/daemon/message-types/host-file.ts +0 -12
- package/src/daemon/message-types/host-transfer.ts +0 -12
- package/src/daemon/message-types/integrations.ts +0 -90
- package/src/daemon/message-types/memory.ts +0 -10
- package/src/daemon/message-types/schedules.ts +0 -14
- package/src/daemon/message-types/settings.ts +0 -17
- package/src/daemon/message-types/subagents.ts +0 -63
- package/src/daemon/message-types/upgrades.ts +0 -14
- package/src/daemon/message-types/workflows.ts +0 -25
- package/src/daemon/message-types/workspace.ts +0 -137
- package/src/live-voice/ack-phrases.ts +0 -58
- package/src/plugins/defaults/memory/retrieval-budget.ts +0 -29
- package/src/plugins/defaults/memory/v3/__tests__/gate-flag.test.ts +0 -69
- package/src/plugins/defaults/memory/v3/gate-flag.ts +0 -20
- package/src/plugins/defaults/memory/v3/substrate/__tests__/memory-v2-startup.test.ts +0 -86
- package/src/plugins/defaults/memory/v3/substrate/memory-v2-startup.test.ts +0 -205
- /package/src/plugins/defaults/memory/{v3/substrate → substrate}/__tests__/concept-page-frontmatter-schema.test.ts +0 -0
- /package/src/plugins/defaults/memory/{v3/substrate → substrate}/__tests__/consolidation-prompt-flag-gating-guard.test.ts +0 -0
- /package/src/plugins/defaults/memory/{v3/substrate → substrate}/__tests__/injected-block-slugs.test.ts +0 -0
- /package/src/plugins/defaults/memory/{v3/substrate → substrate}/cli-command-content.ts +0 -0
|
@@ -131,6 +131,8 @@ import { speechModeToProviderMigration } from "./130-speech-mode-to-provider.js"
|
|
|
131
131
|
import { dropWebFetchModeMigration } from "./131-drop-web-fetch-mode.js";
|
|
132
132
|
import { webSearchModeToProviderMigration } from "./132-web-search-mode-to-provider.js";
|
|
133
133
|
import { collapseProviderConnectionsMigration } from "./133-collapse-provider-connections.js";
|
|
134
|
+
import { imageGenerationModeToProviderMigration } from "./134-image-generation-mode-to-provider.js";
|
|
135
|
+
import { copySubstrateTunablesMigration } from "./135-copy-substrate-tunables.js";
|
|
134
136
|
import { migrateToWorkspaceVolumeMigration } from "./migrate-to-workspace-volume.js";
|
|
135
137
|
import type { WorkspaceMigration } from "./types.js";
|
|
136
138
|
|
|
@@ -277,4 +279,6 @@ export const WORKSPACE_MIGRATIONS: WorkspaceMigration[] = [
|
|
|
277
279
|
dropWebFetchModeMigration,
|
|
278
280
|
webSearchModeToProviderMigration,
|
|
279
281
|
collapseProviderConnectionsMigration,
|
|
282
|
+
imageGenerationModeToProviderMigration,
|
|
283
|
+
copySubstrateTunablesMigration,
|
|
280
284
|
];
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { describe, expect, test } from "bun:test";
|
|
2
|
-
|
|
3
|
-
import { computeRecallBudget } from "../plugins/defaults/memory/retrieval-budget.js";
|
|
4
|
-
|
|
5
|
-
describe("memory retrieval budget", () => {
|
|
6
|
-
test("clamps to maxInjectTokens when headroom is large", () => {
|
|
7
|
-
const budget = computeRecallBudget({
|
|
8
|
-
estimatedPromptTokens: 20_000,
|
|
9
|
-
maxInputTokens: 180_000,
|
|
10
|
-
targetHeadroomTokens: 8_000,
|
|
11
|
-
minInjectTokens: 1_200,
|
|
12
|
-
maxInjectTokens: 10_000,
|
|
13
|
-
});
|
|
14
|
-
expect(budget).toBe(10_000);
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
test("clamps to minInjectTokens when headroom is tight", () => {
|
|
18
|
-
const budget = computeRecallBudget({
|
|
19
|
-
estimatedPromptTokens: 172_000,
|
|
20
|
-
maxInputTokens: 180_000,
|
|
21
|
-
targetHeadroomTokens: 8_000,
|
|
22
|
-
minInjectTokens: 1_200,
|
|
23
|
-
maxInjectTokens: 10_000,
|
|
24
|
-
});
|
|
25
|
-
expect(budget).toBe(1_200);
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
test("returns computed value when between min and max", () => {
|
|
29
|
-
const budget = computeRecallBudget({
|
|
30
|
-
estimatedPromptTokens: 165_000,
|
|
31
|
-
maxInputTokens: 180_000,
|
|
32
|
-
targetHeadroomTokens: 8_000,
|
|
33
|
-
minInjectTokens: 1_200,
|
|
34
|
-
maxInjectTokens: 10_000,
|
|
35
|
-
});
|
|
36
|
-
expect(budget).toBe(7_000);
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
test("normalizes invalid min/max ordering safely", () => {
|
|
40
|
-
const budget = computeRecallBudget({
|
|
41
|
-
estimatedPromptTokens: 150_000,
|
|
42
|
-
maxInputTokens: 180_000,
|
|
43
|
-
targetHeadroomTokens: 8_000,
|
|
44
|
-
minInjectTokens: 12_000,
|
|
45
|
-
maxInjectTokens: 1_200,
|
|
46
|
-
});
|
|
47
|
-
expect(budget).toBe(12_000);
|
|
48
|
-
});
|
|
49
|
-
});
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { describe, expect, test } from "bun:test";
|
|
2
|
-
|
|
3
|
-
import { PREFIX_PATTERNS } from "../security/secret-patterns.js";
|
|
4
|
-
|
|
5
|
-
function matchingLabels(text: string): string[] {
|
|
6
|
-
return PREFIX_PATTERNS.filter((p) => p.regex.test(text)).map((p) => p.label);
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
describe("Vercel AI Gateway API Key", () => {
|
|
10
|
-
test("matches a vck_ key as exactly one pattern", () => {
|
|
11
|
-
expect(matchingLabels(`vck_${"a".repeat(32)}`)).toEqual([
|
|
12
|
-
"Vercel AI Gateway API Key",
|
|
13
|
-
]);
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
test("does not match a short vck_ string", () => {
|
|
17
|
-
expect(matchingLabels("vck_abc")).toEqual([]);
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
describe("OpenRouter API Key", () => {
|
|
22
|
-
test("matches an sk-or-v1- key", () => {
|
|
23
|
-
expect(matchingLabels(`sk-or-v1-${"a".repeat(40)}`)).toEqual([
|
|
24
|
-
"OpenRouter API Key",
|
|
25
|
-
]);
|
|
26
|
-
});
|
|
27
|
-
});
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { describe, expect, test } from "bun:test";
|
|
2
|
-
|
|
3
|
-
import { isProcToSkillsActive } from "../memory-v3-gate.js";
|
|
4
|
-
import type { AssistantConfig } from "../schema.js";
|
|
5
|
-
|
|
6
|
-
describe("isProcToSkillsActive (v3-live)", () => {
|
|
7
|
-
const v3Live = { memory: { v3: { live: true } } } as AssistantConfig;
|
|
8
|
-
const v3NotLive = { memory: { v3: { live: false } } } as AssistantConfig;
|
|
9
|
-
|
|
10
|
-
test("false when v3 is not live", () => {
|
|
11
|
-
expect(isProcToSkillsActive(v3NotLive)).toBe(false);
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
test("false by default (no v3 config)", () => {
|
|
15
|
-
expect(isProcToSkillsActive({} as AssistantConfig)).toBe(false);
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
test("true when v3 is live", () => {
|
|
19
|
-
expect(isProcToSkillsActive(v3Live)).toBe(true);
|
|
20
|
-
});
|
|
21
|
-
});
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { describe, expect, test } from "bun:test";
|
|
2
|
-
|
|
3
|
-
import { memoryTier } from "./memory-tier.js";
|
|
4
|
-
import type { AssistantConfig } from "./schema.js";
|
|
5
|
-
|
|
6
|
-
describe("memoryTier", () => {
|
|
7
|
-
test("off when memory is explicitly disabled", () => {
|
|
8
|
-
const config = { memory: { enabled: false } } as AssistantConfig;
|
|
9
|
-
expect(memoryTier(config)).toBe("off");
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
test("off wins even when v3 is live (OFF over v3 precedence)", () => {
|
|
13
|
-
const config = {
|
|
14
|
-
memory: { enabled: false, v3: { live: true } },
|
|
15
|
-
} as AssistantConfig;
|
|
16
|
-
expect(memoryTier(config)).toBe("off");
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
test("v3 when memory-v3 is live", () => {
|
|
20
|
-
const config = { memory: { v3: { live: true } } } as AssistantConfig;
|
|
21
|
-
expect(memoryTier(config)).toBe("v3");
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
test("v2 when v2 is enabled and v3 is not live", () => {
|
|
25
|
-
const config = {
|
|
26
|
-
memory: { v2: { enabled: true }, v3: { live: false } },
|
|
27
|
-
} as AssistantConfig;
|
|
28
|
-
expect(memoryTier(config)).toBe("v2");
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
test("v3 wins over v2 when both are truthy (v3 over v2 precedence)", () => {
|
|
32
|
-
const config = {
|
|
33
|
-
memory: { v2: { enabled: true }, v3: { live: true } },
|
|
34
|
-
} as AssistantConfig;
|
|
35
|
-
expect(memoryTier(config)).toBe("v3");
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
test("v1 when memory is on but neither v2 nor v3 is selected", () => {
|
|
39
|
-
const config = {
|
|
40
|
-
memory: { enabled: true, v2: { enabled: false }, v3: { live: false } },
|
|
41
|
-
} as AssistantConfig;
|
|
42
|
-
expect(memoryTier(config)).toBe("v1");
|
|
43
|
-
});
|
|
44
|
-
});
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
// ACP (Agent Client Protocol) session lifecycle and communication types.
|
|
2
|
-
//
|
|
3
|
-
// Server→client events are single-sourced from their canonical `api/events`
|
|
4
|
-
// wire schemas; this file only composes them into the domain union consumed by
|
|
5
|
-
// `message-protocol.ts`.
|
|
6
|
-
|
|
7
|
-
import type { AcpSessionCompletedEvent } from "../../api/events/acp-session-completed.js";
|
|
8
|
-
import type { AcpSessionErrorEvent } from "../../api/events/acp-session-error.js";
|
|
9
|
-
import type { AcpSessionSpawnedEvent } from "../../api/events/acp-session-spawned.js";
|
|
10
|
-
import type { AcpSessionUpdateEvent } from "../../api/events/acp-session-update.js";
|
|
11
|
-
import type { AcpSessionUsageEvent } from "../../api/events/acp-session-usage.js";
|
|
12
|
-
|
|
13
|
-
// --- Domain-level union alias (consumed by message-protocol.ts) ---
|
|
14
|
-
|
|
15
|
-
export type _AcpServerMessages =
|
|
16
|
-
| AcpSessionSpawnedEvent
|
|
17
|
-
| AcpSessionUpdateEvent
|
|
18
|
-
| AcpSessionCompletedEvent
|
|
19
|
-
| AcpSessionErrorEvent
|
|
20
|
-
| AcpSessionUsageEvent;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
// App management, publishing, and sharing.
|
|
2
|
-
//
|
|
3
|
-
// Server→client events that are live hub broadcasts are single-sourced from
|
|
4
|
-
// their canonical `api/events` wire schemas; this file only composes them into
|
|
5
|
-
// the domain union consumed by `message-protocol.ts`. App management — listing,
|
|
6
|
-
// bundling, sharing, publishing, history/diff/restore, signing — is served by
|
|
7
|
-
// the HTTP app-management routes, not by client messages.
|
|
8
|
-
|
|
9
|
-
import type { AppFilesChangedEvent } from "../../api/events/app-files-changed.js";
|
|
10
|
-
|
|
11
|
-
export type _AppsServerMessages = AppFilesChangedEvent;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
// Background bash/host_bash command lifecycle types.
|
|
2
|
-
//
|
|
3
|
-
// Server→client events are single-sourced from their canonical `api/events`
|
|
4
|
-
// wire schemas; this file only composes them into the domain union consumed by
|
|
5
|
-
// `message-protocol.ts`.
|
|
6
|
-
|
|
7
|
-
import type { BackgroundToolCompletedEvent } from "../../api/events/background-tool-completed.js";
|
|
8
|
-
import type { BackgroundToolStartedEvent } from "../../api/events/background-tool-started.js";
|
|
9
|
-
|
|
10
|
-
// --- Domain-level union alias (consumed by message-protocol.ts) ---
|
|
11
|
-
|
|
12
|
-
export type _BackgroundToolsServerMessages =
|
|
13
|
-
| BackgroundToolStartedEvent
|
|
14
|
-
| BackgroundToolCompletedEvent;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
// Bookmark events. Surfaced over SSE so a `BookmarkStore` instance in any
|
|
2
|
-
// connected client can stay in sync when another window mutates the list.
|
|
3
|
-
//
|
|
4
|
-
// Server→client events are single-sourced from their canonical `api/events`
|
|
5
|
-
// wire schemas; this file only composes them into the domain union consumed by
|
|
6
|
-
// `message-protocol.ts`.
|
|
7
|
-
|
|
8
|
-
import type { BookmarkCreatedEvent } from "../../api/events/bookmark-created.js";
|
|
9
|
-
import type { BookmarkDeletedEvent } from "../../api/events/bookmark-deleted.js";
|
|
10
|
-
|
|
11
|
-
export type _BookmarksServerMessages =
|
|
12
|
-
| BookmarkCreatedEvent
|
|
13
|
-
| BookmarkDeletedEvent;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
// Contact events.
|
|
2
|
-
//
|
|
3
|
-
// Server→client events are single-sourced from their canonical `api/events`
|
|
4
|
-
// wire schemas; this file only composes them into the domain union consumed by
|
|
5
|
-
// `message-protocol.ts`. Contact list/get/delete are served by the HTTP
|
|
6
|
-
// `contacts` routes, not by a client message.
|
|
7
|
-
|
|
8
|
-
import type { ContactRequestEvent } from "../../api/events/contact-request.js";
|
|
9
|
-
import type { ContactsChangedEvent } from "../../api/events/contacts-changed.js";
|
|
10
|
-
|
|
11
|
-
export type _ContactsServerMessages =
|
|
12
|
-
| ContactsChangedEvent
|
|
13
|
-
| ContactRequestEvent;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
// Document comment event types (Server → Client).
|
|
2
|
-
|
|
3
|
-
import type { DocumentCommentCreatedEvent } from "../../api/events/document-comment-created.js";
|
|
4
|
-
import type { DocumentCommentDeletedEvent } from "../../api/events/document-comment-deleted.js";
|
|
5
|
-
import type { DocumentCommentReopenedEvent } from "../../api/events/document-comment-reopened.js";
|
|
6
|
-
import type { DocumentCommentResolvedEvent } from "../../api/events/document-comment-resolved.js";
|
|
7
|
-
|
|
8
|
-
// --- Domain-level union alias (consumed by the barrel file) ---
|
|
9
|
-
|
|
10
|
-
export type _DocumentCommentsServerMessages =
|
|
11
|
-
| DocumentCommentCreatedEvent
|
|
12
|
-
| DocumentCommentResolvedEvent
|
|
13
|
-
| DocumentCommentReopenedEvent
|
|
14
|
-
| DocumentCommentDeletedEvent;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
// Document editor events.
|
|
2
|
-
//
|
|
3
|
-
// Server→client events are single-sourced from their canonical `api/events`
|
|
4
|
-
// wire schemas; this file only composes them into the domain union consumed by
|
|
5
|
-
// `message-protocol.ts`. Document save/load/list are served by the document
|
|
6
|
-
// tools and HTTP document routes, not by client messages.
|
|
7
|
-
|
|
8
|
-
import type { DocumentEditorShowEvent } from "../../api/events/document-editor-show.js";
|
|
9
|
-
import type { DocumentEditorUpdateEvent } from "../../api/events/document-editor-update.js";
|
|
10
|
-
|
|
11
|
-
export type _DocumentsServerMessages =
|
|
12
|
-
| DocumentEditorShowEvent
|
|
13
|
-
| DocumentEditorUpdateEvent;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Home — server → client push messages for the macOS Home page.
|
|
3
|
-
*
|
|
4
|
-
* These messages are fire-and-forget notifications; the client reacts
|
|
5
|
-
* by refetching the authoritative state from the HTTP route
|
|
6
|
-
* (`GET /v1/home/state`). Payloads stay deliberately tiny — they carry
|
|
7
|
-
* just enough metadata to invalidate a cache and trigger a refetch.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import type { HomeFeedUpdatedEvent } from "../../api/events/home-feed-updated.js";
|
|
11
|
-
import type { RelationshipStateUpdatedEvent } from "../../api/events/relationship-state-updated.js";
|
|
12
|
-
|
|
13
|
-
export type _HomeServerMessages =
|
|
14
|
-
| RelationshipStateUpdatedEvent
|
|
15
|
-
| HomeFeedUpdatedEvent;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
// Host bash proxy events.
|
|
2
|
-
//
|
|
3
|
-
// Server→client events are single-sourced from their canonical `api/events`
|
|
4
|
-
// wire schemas; this file only composes them into the domain union consumed by
|
|
5
|
-
// `message-protocol.ts`.
|
|
6
|
-
|
|
7
|
-
import type { HostBashCancelEvent } from "../../api/events/host-bash.js";
|
|
8
|
-
import type { HostBashRequestEvent } from "../../api/events/host-bash.js";
|
|
9
|
-
|
|
10
|
-
export type _HostBashServerMessages =
|
|
11
|
-
| HostBashRequestEvent
|
|
12
|
-
| HostBashCancelEvent;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
// Host computer-use proxy events.
|
|
2
|
-
//
|
|
3
|
-
// Server→client events are single-sourced from their canonical `api/events`
|
|
4
|
-
// wire schemas; this file only composes them into the domain union consumed by
|
|
5
|
-
// `message-protocol.ts`.
|
|
6
|
-
|
|
7
|
-
import type { HostCuCancelEvent } from "../../api/events/host-cu.js";
|
|
8
|
-
import type { HostCuRequestEvent } from "../../api/events/host-cu.js";
|
|
9
|
-
|
|
10
|
-
export type _HostCuServerMessages = HostCuRequestEvent | HostCuCancelEvent;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
// Host file proxy events.
|
|
2
|
-
//
|
|
3
|
-
// Server→client events are single-sourced from their canonical `api/events`
|
|
4
|
-
// wire schemas; this file only composes them into the domain union consumed by
|
|
5
|
-
// `message-protocol.ts`.
|
|
6
|
-
|
|
7
|
-
import type { HostFileCancelEvent } from "../../api/events/host-file.js";
|
|
8
|
-
import type { HostFileRequestEvent } from "../../api/events/host-file.js";
|
|
9
|
-
|
|
10
|
-
export type _HostFileServerMessages =
|
|
11
|
-
| HostFileRequestEvent
|
|
12
|
-
| HostFileCancelEvent;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
// Host transfer proxy events.
|
|
2
|
-
//
|
|
3
|
-
// Server→client events are single-sourced from their canonical `api/events`
|
|
4
|
-
// wire schemas; this file only composes them into the domain union consumed by
|
|
5
|
-
// `message-protocol.ts`.
|
|
6
|
-
|
|
7
|
-
import type { HostTransferCancelEvent } from "../../api/events/host-transfer.js";
|
|
8
|
-
import type { HostTransferRequestEvent } from "../../api/events/host-transfer.js";
|
|
9
|
-
|
|
10
|
-
export type _HostTransferServerMessages =
|
|
11
|
-
| HostTransferRequestEvent
|
|
12
|
-
| HostTransferCancelEvent;
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
// External service integrations: Slack, Telegram, Vercel, ingress, platform.
|
|
2
|
-
//
|
|
3
|
-
// Server→client events that are live hub broadcasts are single-sourced from
|
|
4
|
-
// their canonical `api/events` wire schemas; this file only composes them into
|
|
5
|
-
// the domain union consumed by `message-protocol.ts`. Config get/set flows
|
|
6
|
-
// (Slack webhook, ingress, platform, Vercel, Telegram, integration listing and
|
|
7
|
-
// connect) are served by the HTTP settings routes, not by client messages.
|
|
8
|
-
|
|
9
|
-
import type { NavigateSettingsEvent } from "../../api/events/navigate-settings.js";
|
|
10
|
-
import type { OAuthConnectResultEvent } from "../../api/events/oauth-connect-result.js";
|
|
11
|
-
import type { OpenPanelEvent } from "../../api/events/open-panel.js";
|
|
12
|
-
import type { OpenUrlEvent } from "../../api/events/open-url.js";
|
|
13
|
-
import type { PlatformDisconnectedEvent } from "../../api/events/platform-disconnected.js";
|
|
14
|
-
import type { ShowPlatformLoginEvent } from "../../api/events/show-platform-login.js";
|
|
15
|
-
import type { ChannelId } from "../../channels/types.js";
|
|
16
|
-
|
|
17
|
-
// === Client → Server ===
|
|
18
|
-
|
|
19
|
-
export interface ChannelVerificationSessionRequest {
|
|
20
|
-
type: "channel_verification_session";
|
|
21
|
-
action:
|
|
22
|
-
| "create_session"
|
|
23
|
-
| "status"
|
|
24
|
-
| "cancel_session"
|
|
25
|
-
| "revoke"
|
|
26
|
-
| "resend_session";
|
|
27
|
-
channel?: ChannelId; // Defaults to 'telegram'
|
|
28
|
-
conversationId?: string;
|
|
29
|
-
rebind?: boolean; // When true, allows creating a challenge even if a binding already exists
|
|
30
|
-
/** E.164 phone number for phone, Telegram handle/chat-id. Used by outbound actions. */
|
|
31
|
-
destination?: string;
|
|
32
|
-
/** Origin conversation ID so completion/failure pointers can route back. */
|
|
33
|
-
originConversationId?: string;
|
|
34
|
-
/** Distinguishes guardian vs trusted-contact verification flows in the unified create endpoint. */
|
|
35
|
-
purpose?: "guardian" | "trusted_contact";
|
|
36
|
-
/** Contact-channel ID for the absorbed contact-channel verify flow. */
|
|
37
|
-
contactChannelId?: string;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
// === Server → Client ===
|
|
41
|
-
|
|
42
|
-
export interface ChannelVerificationSessionResponse {
|
|
43
|
-
type: "channel_verification_session_response";
|
|
44
|
-
success: boolean;
|
|
45
|
-
secret?: string;
|
|
46
|
-
instruction?: string;
|
|
47
|
-
/** Present when action is 'status'. */
|
|
48
|
-
bound?: boolean;
|
|
49
|
-
guardianExternalUserId?: string;
|
|
50
|
-
/** The channel this status pertains to (e.g. "telegram", "phone"). Present when action is 'status'. */
|
|
51
|
-
channel?: ChannelId;
|
|
52
|
-
/** The assistant ID scoped to this status. Present when action is 'status'. */
|
|
53
|
-
assistantId?: string;
|
|
54
|
-
/** The delivery chat ID for the guardian (e.g. Telegram chat ID). Present when action is 'status' and bound is true. */
|
|
55
|
-
guardianDeliveryChatId?: string;
|
|
56
|
-
/** Optional channel username/handle for the bound guardian (for UI display). */
|
|
57
|
-
guardianUsername?: string;
|
|
58
|
-
/** Optional display name for the bound guardian (for UI display). */
|
|
59
|
-
guardianDisplayName?: string;
|
|
60
|
-
/** Whether a pending verification challenge exists for this (assistantId, channel). Used by relay setup to detect active voice verification sessions. */
|
|
61
|
-
hasPendingChallenge?: boolean;
|
|
62
|
-
error?: string;
|
|
63
|
-
/** Human-readable error detail (e.g. for already_bound failures). */
|
|
64
|
-
message?: string;
|
|
65
|
-
/** Conversation ID for outbound verification flows. */
|
|
66
|
-
verificationSessionId?: string;
|
|
67
|
-
/** Epoch ms when the verification session expires. */
|
|
68
|
-
expiresAt?: number;
|
|
69
|
-
/** Epoch ms after which a resend is allowed. */
|
|
70
|
-
nextResendAt?: number;
|
|
71
|
-
/** Number of sends for this session. */
|
|
72
|
-
sendCount?: number;
|
|
73
|
-
/** Telegram deep-link URL for bootstrap (M3 placeholder). */
|
|
74
|
-
telegramBootstrapUrl?: string;
|
|
75
|
-
/** True when the outbound session is still in pending_bootstrap state (Telegram handle flow). Prevents the client from clearing the bootstrap URL during status polling. */
|
|
76
|
-
pendingBootstrap?: boolean;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
// --- Domain-level union aliases (consumed by the barrel file) ---
|
|
80
|
-
|
|
81
|
-
export type _IntegrationsClientMessages = ChannelVerificationSessionRequest;
|
|
82
|
-
|
|
83
|
-
export type _IntegrationsServerMessages =
|
|
84
|
-
| ChannelVerificationSessionResponse
|
|
85
|
-
| OAuthConnectResultEvent
|
|
86
|
-
| OpenUrlEvent
|
|
87
|
-
| OpenPanelEvent
|
|
88
|
-
| NavigateSettingsEvent
|
|
89
|
-
| ShowPlatformLoginEvent
|
|
90
|
-
| PlatformDisconnectedEvent;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
// Memory recall and status events.
|
|
2
|
-
//
|
|
3
|
-
// Server→client events are single-sourced from their canonical `api/events`
|
|
4
|
-
// wire schemas; this file only composes them into the domain union consumed by
|
|
5
|
-
// `message-protocol.ts`. Memory has no client messages.
|
|
6
|
-
|
|
7
|
-
import type { MemoryRecalledEvent } from "../../api/events/memory-recalled.js";
|
|
8
|
-
import type { MemoryStatusEvent } from "../../api/events/memory-status.js";
|
|
9
|
-
|
|
10
|
-
export type _MemoryServerMessages = MemoryRecalledEvent | MemoryStatusEvent;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
// Heartbeat events.
|
|
2
|
-
//
|
|
3
|
-
// Server→client events are single-sourced from their canonical `api/events`
|
|
4
|
-
// wire schemas; this file only composes them into the domain union consumed by
|
|
5
|
-
// `message-protocol.ts`. Schedule / heartbeat / filing management (list,
|
|
6
|
-
// config, run-now, checklist) is served by the HTTP heartbeat and filing
|
|
7
|
-
// routes, not by client messages.
|
|
8
|
-
|
|
9
|
-
import type { HeartbeatAlertEvent } from "../../api/events/heartbeat-alert.js";
|
|
10
|
-
import type { HeartbeatConversationCreatedEvent } from "../../api/events/heartbeat-conversation-created.js";
|
|
11
|
-
|
|
12
|
-
export type _SchedulesServerMessages =
|
|
13
|
-
| HeartbeatAlertEvent
|
|
14
|
-
| HeartbeatConversationCreatedEvent;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
// Client settings: daemon-pushed configuration updates to connected clients.
|
|
2
|
-
//
|
|
3
|
-
// Server→client events are single-sourced from their canonical `api/events`
|
|
4
|
-
// wire schemas; this file only composes them into the domain union consumed by
|
|
5
|
-
// `message-protocol.ts`. Settings mutations (voice config, avatar generation)
|
|
6
|
-
// are served by the HTTP settings/avatar routes, not by client messages.
|
|
7
|
-
|
|
8
|
-
import type { AvatarUpdatedEvent } from "../../api/events/avatar-updated.js";
|
|
9
|
-
import type { ClientSettingsUpdateEvent } from "../../api/events/client-settings-update.js";
|
|
10
|
-
import type { ConfigChangedEvent } from "../../api/events/config-changed.js";
|
|
11
|
-
import type { SoundsConfigUpdatedEvent } from "../../api/events/sounds-config-updated.js";
|
|
12
|
-
|
|
13
|
-
export type _SettingsServerMessages =
|
|
14
|
-
| ClientSettingsUpdateEvent
|
|
15
|
-
| AvatarUpdatedEvent
|
|
16
|
-
| ConfigChangedEvent
|
|
17
|
-
| SoundsConfigUpdatedEvent;
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
// Subagent lifecycle and communication types.
|
|
2
|
-
//
|
|
3
|
-
// The `subagent_spawned` and `subagent_status_changed` server events are
|
|
4
|
-
// single-sourced from their canonical `api/events` wire schemas; this file
|
|
5
|
-
// composes them into the domain union consumed by `message-protocol.ts`.
|
|
6
|
-
|
|
7
|
-
import type { SubagentSpawnedEvent } from "../../api/events/subagent-spawned.js";
|
|
8
|
-
import type { SubagentStatusChangedEvent } from "../../api/events/subagent-status-changed.js";
|
|
9
|
-
import type { UsageStats } from "./shared.js";
|
|
10
|
-
|
|
11
|
-
// === Server → Client ===
|
|
12
|
-
|
|
13
|
-
export interface SubagentDetailResponse {
|
|
14
|
-
type: "subagent_detail_response";
|
|
15
|
-
subagentId: string;
|
|
16
|
-
objective?: string;
|
|
17
|
-
usage?: UsageStats;
|
|
18
|
-
events: Array<{
|
|
19
|
-
type: string;
|
|
20
|
-
content: string;
|
|
21
|
-
toolName?: string;
|
|
22
|
-
isError?: boolean;
|
|
23
|
-
messageId?: string;
|
|
24
|
-
}>;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
// === Client → Server ===
|
|
28
|
-
|
|
29
|
-
export interface SubagentAbortRequest {
|
|
30
|
-
type: "subagent_abort";
|
|
31
|
-
subagentId: string;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export interface SubagentStatusRequest {
|
|
35
|
-
type: "subagent_status";
|
|
36
|
-
/** If omitted, returns all subagents for the conversation. */
|
|
37
|
-
subagentId?: string;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export interface SubagentMessageRequest {
|
|
41
|
-
type: "subagent_message";
|
|
42
|
-
subagentId: string;
|
|
43
|
-
content: string;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export interface SubagentDetailRequest {
|
|
47
|
-
type: "subagent_detail_request";
|
|
48
|
-
subagentId: string;
|
|
49
|
-
conversationId: string;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
// --- Domain-level union aliases (consumed by the barrel file) ---
|
|
53
|
-
|
|
54
|
-
export type _SubagentsClientMessages =
|
|
55
|
-
| SubagentAbortRequest
|
|
56
|
-
| SubagentStatusRequest
|
|
57
|
-
| SubagentMessageRequest
|
|
58
|
-
| SubagentDetailRequest;
|
|
59
|
-
|
|
60
|
-
export type _SubagentsServerMessages =
|
|
61
|
-
| SubagentSpawnedEvent
|
|
62
|
-
| SubagentStatusChangedEvent
|
|
63
|
-
| SubagentDetailResponse;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
// Service-group upgrade lifecycle events.
|
|
2
|
-
//
|
|
3
|
-
// Server→client events are single-sourced from their canonical `api/events`
|
|
4
|
-
// wire schemas; this file only composes them into the domain union consumed by
|
|
5
|
-
// `message-protocol.ts`.
|
|
6
|
-
|
|
7
|
-
import type { ServiceGroupUpdateCompleteEvent } from "../../api/events/service-group-update-complete.js";
|
|
8
|
-
import type { ServiceGroupUpdateProgressEvent } from "../../api/events/service-group-update-progress.js";
|
|
9
|
-
import type { ServiceGroupUpdateStartingEvent } from "../../api/events/service-group-update-starting.js";
|
|
10
|
-
|
|
11
|
-
export type _UpgradesServerMessages =
|
|
12
|
-
| ServiceGroupUpdateStartingEvent
|
|
13
|
-
| ServiceGroupUpdateProgressEvent
|
|
14
|
-
| ServiceGroupUpdateCompleteEvent;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
// Workflow orchestration run lifecycle events.
|
|
2
|
-
//
|
|
3
|
-
// Emitted by the `WorkflowRunManager` (run-manager.ts) as a workflow run
|
|
4
|
-
// progresses and completes. These are server → client push events only — the
|
|
5
|
-
// run is launched via the workflow tool / scheduler / routes (later PRs), not
|
|
6
|
-
// via a client message in this union.
|
|
7
|
-
//
|
|
8
|
-
// The events are single-sourced from their canonical `api/events` wire
|
|
9
|
-
// schemas; this file only composes them into the domain union consumed by
|
|
10
|
-
// `message-protocol.ts`.
|
|
11
|
-
|
|
12
|
-
import type { WorkflowCompletedEvent } from "../../api/events/workflow-completed.js";
|
|
13
|
-
import type { WorkflowLeafFinishedEvent } from "../../api/events/workflow-leaf-finished.js";
|
|
14
|
-
import type { WorkflowLeafStartedEvent } from "../../api/events/workflow-leaf-started.js";
|
|
15
|
-
import type { WorkflowProgressEvent } from "../../api/events/workflow-progress.js";
|
|
16
|
-
import type { WorkflowStartedEvent } from "../../api/events/workflow-started.js";
|
|
17
|
-
|
|
18
|
-
// --- Domain-level union aliases (consumed by the barrel file) ---
|
|
19
|
-
|
|
20
|
-
export type _WorkflowsServerMessages =
|
|
21
|
-
| WorkflowProgressEvent
|
|
22
|
-
| WorkflowCompletedEvent
|
|
23
|
-
| WorkflowStartedEvent
|
|
24
|
-
| WorkflowLeafStartedEvent
|
|
25
|
-
| WorkflowLeafFinishedEvent;
|