@vellumai/assistant 0.10.3 → 0.10.4-dev.202607010028.1a4efcc
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/ARCHITECTURE.md +13 -13
- package/Dockerfile +5 -15
- package/bun.lock +165 -3
- package/docs/architecture/memory.md +26 -0
- package/eslint-rules/cli-no-daemon-internals.js +9 -8
- package/knip.json +0 -1
- package/node_modules/@vellumai/gateway-client/src/gateway-ipc-contracts.ts +18 -0
- package/node_modules/@vellumai/service-contracts/src/__tests__/package-boundary.test.ts +1 -5
- package/openapi.yaml +1057 -88
- package/package.json +8 -3
- package/scripts/generate-openapi.ts +149 -62
- package/src/__tests__/acp-session.test.ts +2 -2
- package/src/__tests__/activation-early-marking.test.ts +4 -4
- package/src/__tests__/actor-token-service.test.ts +2 -3
- package/src/__tests__/actor-trust-resolver-address-fallback.test.ts +83 -31
- package/src/__tests__/agent-loop-compaction-events.test.ts +1 -0
- package/src/__tests__/agent-loop-compaction-strip.test.ts +2 -0
- package/src/__tests__/agent-loop-exit-reason.test.ts +4 -1
- package/src/__tests__/agent-loop-override-profile.test.ts +2 -2
- package/src/__tests__/agent-loop-regrowth-guard.test.ts +8 -0
- package/src/__tests__/agent-loop-set-system-prompt.test.ts +139 -0
- package/src/__tests__/agent-loop.test.ts +1 -0
- package/src/__tests__/agent-wake-disk-pressure-callsite.test.ts +3 -3
- package/src/__tests__/agent-wake-override-profile.test.ts +3 -3
- package/src/__tests__/annotate-activity-metadata.test.ts +4 -4
- package/src/__tests__/annotate-risk-options.test.ts +4 -4
- package/src/__tests__/anthropic-provider.test.ts +53 -2
- package/src/__tests__/app-builder-tool-scripts.test.ts +2 -2
- package/src/__tests__/app-bundler.test.ts +1 -1
- package/src/__tests__/app-conversation-ids-backfill.test.ts +4 -4
- package/src/__tests__/app-conversation-ids.test.ts +1 -1
- package/src/__tests__/app-dir-path-guard.test.ts +2 -2
- package/src/__tests__/app-executors.test.ts +1 -1
- package/src/__tests__/app-git-history.test.ts +2 -2
- package/src/__tests__/app-git-service.test.ts +2 -2
- package/src/__tests__/app-routes-csp.test.ts +2 -2
- package/src/__tests__/app-source-watcher.test.ts +1 -1
- package/src/__tests__/app-store-dir-names.test.ts +1 -1
- package/src/__tests__/approval-cascade.test.ts +7 -7
- package/src/__tests__/approval-interception-trust-gates.test.ts +1 -1
- package/src/__tests__/approval-primitive.test.ts +3 -3
- package/src/__tests__/approval-routes-http.test.ts +2 -2
- package/src/__tests__/assistant-event-hub-machine-name.test.ts +1 -1
- package/src/__tests__/assistant-events-sse-hardening.test.ts +2 -2
- package/src/__tests__/assistant-events-sse-shed.test.ts +2 -2
- package/src/__tests__/assistant-stream-state.test.ts +3 -76
- package/src/__tests__/attachment-upload-trusted-source.test.ts +4 -2
- package/src/__tests__/attachments-store.test.ts +9 -6
- package/src/__tests__/audit-log-rotation.test.ts +6 -4
- package/src/__tests__/auth-fallback-events-store.test.ts +4 -4
- package/src/__tests__/auto-analysis-end-to-end.test.ts +13 -9
- package/src/__tests__/background-shell-bash.test.ts +34 -0
- package/src/__tests__/background-shell-host-bash.test.ts +12 -0
- package/src/__tests__/background-tool-registry.test.ts +97 -0
- package/src/__tests__/background-tool-routes.test.ts +72 -1
- package/src/__tests__/background-workers-disk-pressure.test.ts +17 -10
- package/src/__tests__/btw-routes.test.ts +4 -5
- package/src/__tests__/build-persisted-content.test.ts +4 -4
- package/src/__tests__/call-controller.test.ts +6 -6
- package/src/__tests__/call-conversation-messages.test.ts +4 -4
- package/src/__tests__/call-domain.test.ts +5 -5
- package/src/__tests__/call-pointer-messages.test.ts +5 -5
- package/src/__tests__/call-recovery.test.ts +3 -3
- package/src/__tests__/call-routes-http.test.ts +3 -3
- package/src/__tests__/call-store.test.ts +3 -3
- package/src/__tests__/cancel-resolves-conversation-key.test.ts +2 -3
- package/src/__tests__/canonical-guardian-store.test.ts +3 -3
- package/src/__tests__/channel-approval-routes.test.ts +30 -33
- package/src/__tests__/channel-delivery-store.test.ts +36 -8
- package/src/__tests__/channel-guardian.test.ts +62 -54
- package/src/__tests__/channel-inbound-disk-pressure.test.ts +15 -23
- package/src/__tests__/channel-reply-delivery.test.ts +8 -4
- package/src/__tests__/channel-retry-sweep.test.ts +49 -4
- package/src/__tests__/clawhub.test.ts +4 -0
- package/src/__tests__/cli-memory-v2-reembed-skills.test.ts +2 -2
- package/src/__tests__/compaction-events.test.ts +8 -8
- package/src/__tests__/compaction-ledger-store.test.ts +128 -0
- package/src/__tests__/compaction-trail-store.test.ts +5 -5
- package/src/__tests__/compaction.benchmark.test.ts +5 -5
- package/src/__tests__/compactor-call-site-logging.test.ts +5 -5
- package/src/__tests__/compactor-image-manifest-trust.test.ts +7 -4
- package/src/__tests__/compactor-low-watermark-cut.test.ts +5 -5
- package/src/__tests__/compactor-preserved-tail-count.test.ts +4 -4
- package/src/__tests__/compactor-summary-call-truncation.test.ts +5 -5
- package/src/__tests__/compactor-web-search-strip.test.ts +4 -4
- package/src/__tests__/config-get-vision-flag.test.ts +1 -1
- package/src/__tests__/config-loader-backfill.test.ts +230 -102
- package/src/__tests__/config-set-route.test.ts +5 -2
- package/src/__tests__/config-watcher-cleanup-throttle.test.ts +3 -3
- package/src/__tests__/config-watcher-skill-reseed.test.ts +39 -112
- package/src/__tests__/config-watcher.test.ts +54 -31
- package/src/__tests__/confirmation-request-guardian-bridge.test.ts +4 -4
- package/src/__tests__/consult-deadline.test.ts +60 -0
- package/src/__tests__/contact-store-interaction-info.test.ts +156 -0
- package/src/__tests__/contact-store-user-file.test.ts +98 -91
- package/src/__tests__/contacts-relay-reads.test.ts +27 -12
- package/src/__tests__/contacts-tools.test.ts +2 -2
- package/src/__tests__/contacts-write.test.ts +2 -4
- package/src/__tests__/context-search-agent-protocol.test.ts +2 -2
- package/src/__tests__/context-search-agent-runner.test.ts +2 -2
- package/src/__tests__/context-search-conversations-source.test.ts +5 -5
- package/src/__tests__/context-search-fanout.test.ts +3 -3
- package/src/__tests__/context-search-memory-source.test.ts +9 -8
- package/src/__tests__/context-search-memory-v2-source.test.ts +9 -8
- package/src/__tests__/context-search-types.test.ts +2 -2
- package/src/__tests__/context-search-workspace-source.test.ts +2 -2
- package/src/__tests__/conversation-abort-tool-results.test.ts +5 -5
- package/src/__tests__/conversation-agent-loop-disk-pressure.test.ts +4 -3
- package/src/__tests__/conversation-agent-loop-inference-profile.test.ts +40 -11
- package/src/__tests__/conversation-agent-loop-overflow.test.ts +11 -8
- package/src/__tests__/conversation-agent-loop.test.ts +150 -20
- package/src/__tests__/conversation-analysis-routes.test.ts +4 -4
- package/src/__tests__/conversation-app-control-instantiation.test.ts +2 -1
- package/src/__tests__/conversation-app-control-lifecycle.test.ts +7 -7
- package/src/__tests__/conversation-attachments.test.ts +7 -4
- package/src/__tests__/conversation-attention-store.test.ts +4 -4
- package/src/__tests__/conversation-attention-telegram.test.ts +17 -16
- package/src/__tests__/conversation-clear-safety.test.ts +3 -4
- package/src/__tests__/conversation-confirmation-signals.test.ts +7 -7
- package/src/__tests__/conversation-crud-inference-profile.test.ts +3 -3
- package/src/__tests__/conversation-delete-schedule-cleanup.test.ts +25 -26
- package/src/__tests__/conversation-directories-parse.test.ts +1 -1
- package/src/__tests__/conversation-disk-view-integration.test.ts +5 -5
- package/src/__tests__/conversation-disk-view.test.ts +6 -6
- package/src/__tests__/conversation-error.test.ts +18 -18
- package/src/__tests__/conversation-evictor.test.ts +32 -7
- package/src/__tests__/conversation-fork-crud.test.ts +441 -44
- package/src/__tests__/conversation-fork-retrospective.test.ts +12 -10
- package/src/__tests__/conversation-fork-route.test.ts +6 -3
- package/src/__tests__/conversation-history-web-search.test.ts +8 -145
- package/src/__tests__/conversation-inference-profile-list.test.ts +3 -3
- package/src/__tests__/conversation-inference-profile-route.test.ts +3 -3
- package/src/__tests__/conversation-init.benchmark.test.ts +1 -1
- package/src/__tests__/conversation-initial-prompt.test.ts +110 -0
- package/src/__tests__/conversation-key-store-disk-view.test.ts +7 -4
- package/src/__tests__/conversation-lifecycle.test.ts +10 -13
- package/src/__tests__/conversation-list-source.test.ts +3 -3
- package/src/__tests__/conversation-load-history-repair.test.ts +4 -4
- package/src/__tests__/conversation-load-history-stripped.test.ts +4 -4
- package/src/__tests__/conversation-loop-db-lock-resilience.test.ts +191 -0
- package/src/__tests__/conversation-pairing.test.ts +4 -4
- package/src/__tests__/conversation-process-app-control-preactivation.test.ts +5 -5
- package/src/__tests__/conversation-process-callsite.test.ts +42 -5
- package/src/__tests__/conversation-provider-retry-repair.test.ts +5 -5
- package/src/__tests__/conversation-queue.test.ts +142 -9
- package/src/__tests__/conversation-routes-disk-view.test.ts +5 -5
- package/src/__tests__/conversation-routes-guardian-reply.test.ts +6 -6
- package/src/__tests__/conversation-routes-slash-commands.test.ts +57 -10
- package/src/__tests__/conversation-runtime-assembly.test.ts +25 -19
- package/src/__tests__/conversation-runtime-workspace.test.ts +8 -1
- package/src/__tests__/conversation-skill-tools.test.ts +155 -2
- package/src/__tests__/conversation-slash-queue.test.ts +6 -6
- package/src/__tests__/conversation-slash-unknown.test.ts +6 -6
- package/src/__tests__/conversation-speed-override.test.ts +7 -7
- package/src/__tests__/conversation-starter-routes.test.ts +2 -2
- package/src/__tests__/conversation-store.test.ts +6 -6
- package/src/__tests__/conversation-surfaces-activation-emit.test.ts +8 -5
- package/src/__tests__/conversation-surfaces-data-persist.test.ts +2 -2
- package/src/__tests__/conversation-sync-tags.test.ts +7 -4
- package/src/__tests__/conversation-title-service.test.ts +223 -203
- package/src/__tests__/conversation-tool-setup-app-refresh.test.ts +1 -1
- package/src/__tests__/conversation-tool-setup-attribution.test.ts +1 -1
- package/src/__tests__/conversation-unread-route.test.ts +2 -2
- package/src/__tests__/conversation-usage.test.ts +6 -6
- package/src/__tests__/conversation-wipe.test.ts +6 -4
- package/src/__tests__/conversation-workspace-cache-state.test.ts +9 -9
- package/src/__tests__/conversation-workspace-injection.test.ts +9 -9
- package/src/__tests__/conversation-workspace-tool-tracking.test.ts +9 -9
- package/src/__tests__/conversations-import-system-filter.test.ts +5 -5
- package/src/__tests__/credential-security-invariants.test.ts +4 -7
- package/src/__tests__/db-acp-history.test.ts +4 -4
- package/src/__tests__/db-activation-state-fk-cascade.test.ts +4 -4
- package/src/__tests__/db-activation-state.test.ts +3 -3
- package/src/__tests__/db-compaction-events-migration.test.ts +129 -0
- package/src/__tests__/db-connection-isolation.test.ts +1 -1
- package/src/__tests__/db-conversation-fork-lineage-migration.test.ts +3 -3
- package/src/__tests__/db-conversation-inference-profile-migration.test.ts +6 -6
- package/src/__tests__/db-drop-contact-acl-columns-migration.test.ts +159 -0
- package/src/__tests__/db-llm-request-log-provider-migration.test.ts +3 -3
- package/src/__tests__/db-memory-graph-event-date-repair.test.ts +3 -3
- package/src/__tests__/db-migration-rollback.test.ts +48 -43
- package/src/__tests__/db-proxy-transaction.test.ts +2 -2
- package/src/__tests__/db-rename-inference-profile-snake-case-migration.test.ts +3 -3
- package/src/__tests__/db-schedule-syntax-migration.test.ts +4 -4
- package/src/__tests__/db-slack-compaction-watermark-migration.test.ts +3 -3
- package/src/__tests__/db-slack-external-content-normalization.test.ts +4 -4
- package/src/__tests__/db-test-helpers.ts +7 -0
- package/src/__tests__/delete-propagation.test.ts +9 -7
- package/src/__tests__/deterministic-verification-control-plane.test.ts +3 -3
- package/src/__tests__/device-id.test.ts +38 -1
- package/src/__tests__/dm-backfill.test.ts +9 -7
- package/src/__tests__/dm-persistence.test.ts +5 -5
- package/src/__tests__/document-conversations.test.ts +3 -3
- package/src/__tests__/document-create-dedupe.test.ts +1 -1
- package/src/__tests__/document-find-replace.test.ts +1 -1
- package/src/__tests__/document-tool-security.test.ts +1 -1
- package/src/__tests__/document-update-default-surface.test.ts +1 -1
- package/src/__tests__/drop-capability-card-state-migration.test.ts +3 -5
- package/src/__tests__/edit-propagation.test.ts +6 -6
- package/src/__tests__/embedding-managed-proxy-selection.test.ts +2 -2
- package/src/__tests__/emit-signal-routing-intent.test.ts +2 -6
- package/src/__tests__/empty-state-greeting-cache.test.ts +1 -1
- package/src/__tests__/events-client-registration.test.ts +1 -1
- package/src/__tests__/exploration-drift-hook.test.ts +7 -23
- package/src/__tests__/file-write-tool.test.ts +3 -3
- package/src/__tests__/filing-service.test.ts +6 -5
- package/src/__tests__/followup-tools.test.ts +2 -2
- package/src/__tests__/get-skill-detail-audit.test.ts +1 -1
- package/src/__tests__/graph-extraction-event-date.test.ts +1 -1
- package/src/__tests__/guardian-action-sweep.test.ts +3 -3
- package/src/__tests__/guardian-binding-drift-heal.test.ts +48 -25
- package/src/__tests__/guardian-card-withdrawal.test.ts +3 -3
- package/src/__tests__/guardian-decision-primitive-canonical.test.ts +4 -4
- package/src/__tests__/guardian-dispatch.test.ts +28 -11
- package/src/__tests__/guardian-expiry-notifier.test.ts +4 -4
- package/src/__tests__/guardian-outbound-http.test.ts +3 -4
- package/src/__tests__/guardian-principal-id-roundtrip.test.ts +3 -3
- package/src/__tests__/guardian-routing-invariants.test.ts +3 -3
- package/src/__tests__/guardian-routing-state.test.ts +12 -14
- package/src/__tests__/guardian-verification-voice-binding.test.ts +4 -4
- package/src/__tests__/handlers-skills-memory-v2-reseed.test.ts +1 -1
- package/src/__tests__/handlers-user-message-approval-consumption.test.ts +3 -3
- package/src/__tests__/heartbeat-disk-pressure.test.ts +7 -13
- package/src/__tests__/heartbeat-service.test.ts +31 -19
- package/src/__tests__/helpers/channel-test-adapter.ts +25 -18
- package/src/__tests__/helpers/create-guardian-binding.ts +16 -24
- package/src/__tests__/helpers/derive-guardian-delivery.ts +66 -0
- package/src/__tests__/helpers/gateway-acl-store.ts +81 -0
- package/src/__tests__/helpers/mock-logger.ts +1 -0
- package/src/__tests__/helpers/seed-contact-channel.ts +117 -0
- package/src/__tests__/history-repair-hook.test.ts +1 -1
- package/src/__tests__/home-state-routes.test.ts +1 -1
- package/src/__tests__/http-conversation-lineage.test.ts +4 -4
- package/src/__tests__/http-user-message-parity.test.ts +8 -12
- package/src/__tests__/identity-routes.test.ts +113 -25
- package/src/__tests__/image-recovery-hook.test.ts +3 -3
- package/src/__tests__/inbound-invite-redemption.test.ts +87 -12
- package/src/__tests__/inbound-slack-persistence.test.ts +5 -5
- package/src/__tests__/inbound-trust-verdict.test.ts +5 -4
- package/src/__tests__/inference-no-mode-boot-e2e.test.ts +13 -6
- package/src/__tests__/inference-profile-reaper.test.ts +3 -3
- package/src/__tests__/inference-profile-session-handler.test.ts +3 -3
- package/src/__tests__/inference-profile-session-ipc.test.ts +3 -3
- package/src/__tests__/init-feature-flag-overrides.test.ts +1 -4
- package/src/__tests__/injection-block.test.ts +5 -2
- package/src/__tests__/injector-background-turn.test.ts +3 -5
- package/src/__tests__/injector-chain.test.ts +25 -16
- package/src/__tests__/injector-config-quarantine-notice.test.ts +3 -5
- package/src/__tests__/injector-disk-pressure.test.ts +10 -8
- package/src/__tests__/injector-document-comments.test.ts +5 -3
- package/src/__tests__/injector-pkb-v2-silenced.test.ts +5 -2
- package/src/__tests__/injector-registry-order-guard.test.ts +132 -0
- package/src/__tests__/injector-v3-suppression.test.ts +15 -9
- package/src/__tests__/install-meta.test.ts +104 -0
- package/src/__tests__/install-skill-routing.test.ts +1 -1
- package/src/__tests__/internal-telemetry-routes.test.ts +4 -4
- package/src/__tests__/invite-redemption-service.test.ts +274 -57
- package/src/__tests__/invite-routes-http.test.ts +37 -3
- package/src/__tests__/invite-service-ipc.test.ts +68 -5
- package/src/__tests__/job-handler-registry-guard.test.ts +129 -0
- package/src/__tests__/jobs-store-qdrant-breaker.test.ts +8 -8
- package/src/__tests__/jobs-store-upsert-debounced.test.ts +7 -4
- package/src/__tests__/lifecycle-memory-v2-seed.test.ts +9 -8
- package/src/__tests__/list-messages-attachments.test.ts +7 -4
- package/src/__tests__/list-messages-background-tool-completion.test.ts +141 -0
- package/src/__tests__/list-messages-client-message-id.test.ts +6 -3
- package/src/__tests__/list-messages-hidden-metadata.test.ts +5 -5
- package/src/__tests__/list-messages-page-latest.test.ts +176 -7
- package/src/__tests__/list-messages-queued.test.ts +223 -0
- package/src/__tests__/list-messages-tool-merge.test.ts +6 -3
- package/src/__tests__/llm-context-route-provider.test.ts +3 -3
- package/src/__tests__/llm-request-log-agent-loop-exit-reason.test.ts +4 -4
- package/src/__tests__/llm-request-log-call-site.test.ts +5 -5
- package/src/__tests__/llm-request-log-error-payload.test.ts +1 -1
- package/src/__tests__/llm-request-log-source-clickhouse.test.ts +2 -1
- package/src/__tests__/llm-request-log-source-factory.test.ts +3 -3
- package/src/__tests__/llm-request-log-turn-query.test.ts +9 -6
- package/src/__tests__/llm-usage-store.test.ts +137 -3
- package/src/__tests__/log-export-routes.test.ts +3 -3
- package/src/__tests__/log-export-workspace.test.ts +3 -3
- package/src/__tests__/managed-profile-guard.test.ts +1 -1
- package/src/__tests__/managed-skill-lifecycle.test.ts +3 -3
- package/src/__tests__/managed-store.test.ts +381 -0
- package/src/__tests__/mcp-config-secret-boundary.test.ts +5 -1
- package/src/__tests__/media-stream-server-integration.test.ts +1 -1
- package/src/__tests__/memory-jobs-worker-backoff.test.ts +4 -4
- package/src/__tests__/memory-jobs-worker-lanes.test.ts +11 -9
- package/src/__tests__/memory-recall-log-store.test.ts +4 -4
- package/src/__tests__/memory-retrieval-budget.test.ts +1 -1
- package/src/__tests__/memory-retrieval-hook.test.ts +8 -8
- package/src/__tests__/memory-upsert-concurrency.test.ts +9 -5
- package/src/__tests__/memory-v2-static-injector.test.ts +3 -3
- package/src/__tests__/messages-after-tiebreaker.test.ts +4 -4
- package/src/__tests__/messaging-send-tool.test.ts +5 -5
- package/src/__tests__/mock-gateway-ipc.ts +1 -1
- package/src/__tests__/mtime-cache.test.ts +19 -0
- package/src/__tests__/native-web-search.test.ts +11 -11
- package/src/__tests__/non-member-access-request.test.ts +24 -20
- package/src/__tests__/notification-candidate-guardian-context.test.ts +4 -4
- package/src/__tests__/notification-deep-link.test.ts +3 -3
- package/src/__tests__/notification-guardian-path.test.ts +3 -3
- package/src/__tests__/notification-schedule-notify-dedup.test.ts +3 -3
- package/src/__tests__/oauth-provider-profiles.test.ts +1 -1
- package/src/__tests__/oauth-provider-visibility.test.ts +2 -2
- package/src/__tests__/oauth-store.test.ts +6 -6
- package/src/__tests__/onboarding-persona-write.test.ts +52 -22
- package/src/__tests__/onboarding-template-contract.test.ts +27 -43
- package/src/__tests__/openai-provider.test.ts +33 -0
- package/src/__tests__/openai-responses-provider.test.ts +40 -0
- package/src/__tests__/outbound-slack-persistence.test.ts +8 -8
- package/src/__tests__/persist-onboarding-artifacts.test.ts +1 -0
- package/src/__tests__/persist-unsendable-image-downscale.test.ts +3 -3
- package/src/__tests__/persist-unsendable-image.test.ts +3 -3
- package/src/__tests__/persist-user-message-set-processing-failure.test.ts +70 -0
- package/src/__tests__/persistence-layering-guard.test.ts +222 -0
- package/src/__tests__/persistence-secret-redaction.test.ts +6 -6
- package/src/__tests__/persona-resolver.test.ts +75 -45
- package/src/__tests__/pkb-autoinject.test.ts +1 -1
- package/src/__tests__/platform-bash-auto-approve.test.ts +3 -3
- package/src/__tests__/playbook-execution.test.ts +4 -4
- package/src/__tests__/playbook-tools.test.ts +3 -3
- package/src/__tests__/plugin-bootstrap.test.ts +78 -19
- package/src/__tests__/plugin-config-data-migration.test.ts +263 -0
- package/src/__tests__/plugin-disabled-state.test.ts +323 -0
- package/src/__tests__/plugin-event-hub-facade.test.ts +323 -0
- package/src/__tests__/plugin-import-boundary-guard.test.ts +506 -0
- package/src/__tests__/plugin-injector-contribution.test.ts +133 -0
- package/src/__tests__/plugin-route-contribution.test.ts +62 -115
- package/src/__tests__/plugin-tool-contribution.test.ts +0 -22
- package/src/__tests__/pointer-conversation-trust.test.ts +141 -0
- package/src/__tests__/post-compaction-reinjection-idempotency.test.ts +8 -1
- package/src/__tests__/process-message-background-slack.test.ts +6 -6
- package/src/__tests__/process-message-display-content.test.ts +5 -5
- package/src/__tests__/processing-flag-persist-failure.test.ts +280 -0
- package/src/__tests__/provider-usage-tracking.test.ts +4 -4
- package/src/__tests__/prune-jobs-changes-parser.test.ts +1 -1
- package/src/__tests__/prune-old-conversations-job.test.ts +5 -5
- package/src/__tests__/prune-old-tool-invocations-job.test.ts +97 -0
- package/src/__tests__/published-app-updater.test.ts +3 -3
- package/src/__tests__/qdrant-collection-migration.test.ts +5 -2
- package/src/__tests__/qdrant-manager.test.ts +1 -1
- package/src/__tests__/reaction-intercept-cold-cache-warm.test.ts +141 -0
- package/src/__tests__/reaction-intercept-member-verdict-warm.test.ts +158 -0
- package/src/__tests__/reaction-persistence.test.ts +60 -10
- package/src/__tests__/rebuild-index-graph-nodes.test.ts +5 -5
- package/src/__tests__/recording-handler.test.ts +2 -2
- package/src/__tests__/relay-server.test.ts +183 -142
- package/src/__tests__/require-fresh-approval.test.ts +1 -1
- package/src/__tests__/resolve-app-id.test.ts +3 -3
- package/src/__tests__/runtime-attachment-metadata.test.ts +16 -18
- package/src/__tests__/runtime-events-sse-bilingual.test.ts +3 -3
- package/src/__tests__/runtime-events-sse-parity.test.ts +3 -3
- package/src/__tests__/runtime-events-sse-reconnect.test.ts +3 -3
- package/src/__tests__/runtime-events-sse.test.ts +3 -3
- package/src/__tests__/scaffold-managed-skill-tool.test.ts +489 -2
- package/src/__tests__/schedule-retry.test.ts +91 -67
- package/src/__tests__/schedule-routes-workflow-validation.test.ts +47 -43
- package/src/__tests__/schedule-routes.test.ts +199 -187
- package/src/__tests__/schedule-store.test.ts +174 -172
- package/src/__tests__/schedule-tools.test.ts +2 -2
- package/src/__tests__/scheduler-disk-pressure.test.ts +20 -9
- package/src/__tests__/scheduler-recurrence.test.ts +72 -122
- package/src/__tests__/scheduler-reuse-conversation.test.ts +65 -60
- package/src/__tests__/scheduler-wake.test.ts +21 -31
- package/src/__tests__/scoped-approval-grants.test.ts +4 -4
- package/src/__tests__/scoped-grant-security-matrix.test.ts +4 -4
- package/src/__tests__/scrub-corrupted-image-attachments.test.ts +2 -2
- package/src/__tests__/search-skills-unified.test.ts +1 -1
- package/src/__tests__/secret-ingress-channel.test.ts +3 -3
- package/src/__tests__/secret-ingress-http.test.ts +6 -6
- package/src/__tests__/secret-routes-platform-proxy.test.ts +9 -8
- package/src/__tests__/send-endpoint-busy.test.ts +6 -6
- package/src/__tests__/sequence-store.test.ts +3 -3
- package/src/__tests__/server-history-render.test.ts +7 -4
- package/src/__tests__/settings-routes.test.ts +34 -2
- package/src/__tests__/shell-observability.test.ts +1 -0
- package/src/__tests__/skill-boundary-guard.test.ts +3 -4
- package/src/__tests__/skill-docs-sync-guard.test.ts +34 -0
- package/src/__tests__/skill-projection-feature-flag.test.ts +2 -1
- package/src/__tests__/skill-projection.benchmark.test.ts +2 -1
- package/src/__tests__/skill-script-runner-host.test.ts +53 -0
- package/src/__tests__/skill-script-runner-sandbox.test.ts +5 -2
- package/src/__tests__/skill-tool-factory.test.ts +20 -0
- package/src/__tests__/skill-version-hash.test.ts +32 -0
- package/src/__tests__/skills-file-content-endpoint.test.ts +1 -1
- package/src/__tests__/skills-files-catalog-fallback.test.ts +1 -1
- package/src/__tests__/slack-inbound-verification.test.ts +2 -2
- package/src/__tests__/slack-messaging-token-resolution.test.ts +2 -2
- package/src/__tests__/slack-reaction-canonical-approval.test.ts +4 -4
- package/src/__tests__/slack-share-routes.test.ts +1 -1
- package/src/__tests__/slim-skill-category.test.ts +34 -2
- package/src/__tests__/sse-actor-principal-guardian-source.test.ts +13 -36
- package/src/__tests__/starter-task-flow.test.ts +1 -1
- package/src/__tests__/strip-memory-injections.test.ts +2 -2
- package/src/__tests__/stt-hints.test.ts +6 -3
- package/src/__tests__/subagent-allowlist-validation.test.ts +47 -0
- package/src/__tests__/subagent-call-site-routing.test.ts +2 -2
- package/src/__tests__/subagent-detail.test.ts +1 -1
- package/src/__tests__/subagent-fork-notifications.test.ts +14 -2
- package/src/__tests__/subagent-fork-prompt-role.test.ts +195 -0
- package/src/__tests__/subagent-fork-spawn.test.ts +6 -7
- package/src/__tests__/subagent-notify-parent.test.ts +3 -3
- package/src/__tests__/subagent-persistence.test.ts +122 -0
- package/src/__tests__/subagent-role-registry.test.ts +17 -4
- package/src/__tests__/subagent-spawn-and-await.test.ts +546 -0
- package/src/__tests__/subagent-spawn-tool-fork.test.ts +3 -3
- package/src/__tests__/subagent-terminal-message.test.ts +99 -0
- package/src/__tests__/subagent-tool-gate-mode.test.ts +1 -1
- package/src/__tests__/subagent-tools.test.ts +396 -4
- package/src/__tests__/suggestion-routes.test.ts +4 -4
- package/src/__tests__/system-prompt.test.ts +4 -4
- package/src/__tests__/task-compiler.test.ts +2 -2
- package/src/__tests__/task-management-tools.test.ts +2 -2
- package/src/__tests__/task-memory-cleanup.test.ts +9 -7
- package/src/__tests__/task-progress-nudge-hook.test.ts +37 -94
- package/src/__tests__/task-scheduler.test.ts +94 -115
- package/src/__tests__/test-support/tool-invocation-seed.ts +5 -2
- package/src/__tests__/thread-backfill.test.ts +7 -7
- package/src/__tests__/title-generate-hook.test.ts +6 -6
- package/src/__tests__/tool-approval-handler.test.ts +4 -4
- package/src/__tests__/tool-audit-listener.test.ts +1 -1
- package/src/__tests__/tool-error-hook.test.ts +2 -0
- package/src/__tests__/tool-executor-lifecycle-events.test.ts +5 -5
- package/src/__tests__/tool-executor-redaction.test.ts +11 -0
- package/src/__tests__/tool-executor.test.ts +24 -2
- package/src/__tests__/tool-grant-request-escalation.test.ts +5 -5
- package/src/__tests__/tool-preview-lifecycle.test.ts +102 -17
- package/src/__tests__/tool-result-metadata-plumbing.test.ts +4 -4
- package/src/__tests__/tool-result-truncate-hook.test.ts +2 -0
- package/src/__tests__/tool-side-effects-slack-dm.test.ts +1 -1
- package/src/__tests__/tool-start-timestamp.test.ts +69 -5
- package/src/__tests__/tools-get-route.test.ts +44 -1
- package/src/__tests__/trace-emitter.test.ts +1 -1
- package/src/__tests__/trust-context-guards.test.ts +1 -1
- package/src/__tests__/trusted-contact-approval-notifier.test.ts +37 -51
- package/src/__tests__/trusted-contact-inline-approval-integration.test.ts +7 -7
- package/src/__tests__/trusted-contact-lifecycle-notifications.test.ts +20 -12
- package/src/__tests__/trusted-contact-multichannel.test.ts +17 -8
- package/src/__tests__/trusted-contact-verification.test.ts +60 -57
- package/src/__tests__/turn-boundary-resolution.test.ts +7 -4
- package/src/__tests__/turn-call-site.test.ts +29 -0
- package/src/__tests__/turn-events-store.test.ts +8 -5
- package/src/__tests__/twilio-routes.test.ts +3 -3
- package/src/__tests__/unified-turn-context-client-os.test.ts +45 -0
- package/src/__tests__/usage-cache-backfill-migration.test.ts +4 -8
- package/src/__tests__/usage-grouped-buckets.test.ts +1 -1
- package/src/__tests__/usage-routes.test.ts +61 -3
- package/src/__tests__/verification-control-plane-policy.test.ts +6 -6
- package/src/__tests__/voice-guardian-cold-cache-warm.test.ts +137 -0
- package/src/__tests__/voice-invite-redemption.test.ts +183 -24
- package/src/__tests__/voice-quality.test.ts +38 -12
- package/src/__tests__/voice-scoped-grant-consumer.test.ts +22 -14
- package/src/__tests__/voice-session-bridge.test.ts +16 -10
- package/src/__tests__/web-search-backend-failure.test.ts +4 -4
- package/src/__tests__/workspace-lifecycle.test.ts +29 -18
- package/src/__tests__/workspace-migration-009-backfill-conversation-disk-view.test.ts +4 -4
- package/src/__tests__/workspace-migration-013-repair-conversation-disk-view.test.ts +5 -5
- package/src/__tests__/workspace-migration-028-recover-conversations-from-disk-view.test.ts +3 -3
- package/src/__tests__/workspace-migration-102-preserve-heartbeat-enabled-for-existing-workspaces.test.ts +3 -3
- package/src/__tests__/workspace-migration-111-prune-seeded-callsite-defaults.test.ts +2 -2
- package/src/__tests__/workspace-migration-112-remove-advisor-callsite-override.test.ts +170 -0
- package/src/__tests__/workspace-migration-113-swap-balanced-profile-to-glm-5p2.test.ts +241 -0
- package/src/__tests__/workspace-migration-114-swap-quality-profile-to-opus.test.ts +172 -0
- package/src/__tests__/workspace-migration-116-rename-memory-plugin-disabled-sentinel.test.ts +128 -0
- package/src/__tests__/workspace-migration-117-normalize-stale-lean-memory-v3-defaults.test.ts +221 -0
- package/src/__tests__/workspace-migration-118-seed-now-md.test.ts +120 -0
- package/src/__tests__/workspace-migration-backfill-installation-id.test.ts +1 -1
- package/src/__tests__/workspace-migration-drop-user-md.test.ts +273 -238
- package/src/a2a/__tests__/e2e-a2a-channel.test.ts +41 -49
- package/src/a2a/__tests__/task-store.test.ts +2 -2
- package/src/a2a/task-store.ts +4 -4
- package/src/acp/__tests__/client-handler.test.ts +680 -0
- package/src/acp/__tests__/helpers/acp-history-db.ts +32 -4
- package/src/acp/__tests__/prepare-agent-env.test.ts +0 -97
- package/src/acp/__tests__/session-manager-persistence.test.ts +215 -7
- package/src/acp/__tests__/session-manager-resume.test.ts +113 -2
- package/src/acp/__tests__/session-manager-startup.test.ts +3 -3
- package/src/acp/__tests__/session-manager-usage.test.ts +113 -0
- package/src/acp/auto-install.ts +12 -8
- package/src/acp/client-handler.ts +140 -21
- package/src/acp/prepare-agent-env.ts +0 -12
- package/src/acp/resolve-agent.test.ts +6 -45
- package/src/acp/resolve-agent.ts +2 -4
- package/src/acp/session-manager.ts +127 -4
- package/src/acp/types.ts +18 -0
- package/src/agent/loop-exclusive-tool.test.ts +19 -15
- package/src/agent/loop-native-web-search.test.ts +200 -0
- package/src/agent/loop.ts +321 -149
- package/src/api/events/acp-session-completed.ts +33 -0
- package/src/api/events/acp-session-error.ts +21 -0
- package/src/api/events/acp-session-spawned.ts +32 -0
- package/src/api/events/acp-session-update.test.ts +122 -0
- package/src/api/events/acp-session-update.ts +51 -0
- package/src/api/events/acp-session-usage.test.ts +49 -0
- package/src/api/events/acp-session-usage.ts +31 -0
- package/src/api/events/background-tool-completed.test.ts +51 -0
- package/src/api/events/background-tool-completed.ts +29 -0
- package/src/api/events/background-tool-started.test.ts +36 -0
- package/src/api/events/background-tool-started.ts +28 -0
- package/src/api/events/conversation-error.ts +0 -1
- package/src/api/events/subagent-status-changed.ts +4 -1
- package/src/api/events/tool-use-preview-start.ts +11 -0
- package/src/api/events/tool-use-start.ts +14 -0
- package/src/api/index.ts +51 -0
- package/src/api/responses/conversation-message.ts +80 -1
- package/src/api/responses/llm-request-log-entry.ts +41 -0
- package/src/api/responses/memory-v3-selection-log.ts +5 -7
- package/src/approvals/approval-primitive.ts +1 -1
- package/src/approvals/guardian-card-withdrawal.ts +2 -2
- package/src/approvals/guardian-decision-primitive.ts +1 -1
- package/src/approvals/guardian-expiry-notifier.ts +1 -1
- package/src/approvals/guardian-request-resolvers.ts +19 -7
- package/src/approvals/scoped-approval-grants.ts +551 -0
- package/src/apps/app-store.ts +1058 -0
- package/src/apps/published-pages-store.ts +67 -0
- package/src/apps/shared-app-links-store.ts +130 -0
- package/src/background-wake/background-wake-routes.test.ts +53 -23
- package/src/background-wake/wake-intent-hooks.test.ts +18 -12
- package/src/backup/restore.ts +1 -1
- package/src/bundler/app-bundler.ts +1 -1
- package/src/calls/__tests__/relay-setup-router.test.ts +11 -19
- package/src/calls/call-controller.ts +5 -5
- package/src/calls/call-conversation-messages.ts +1 -1
- package/src/calls/call-domain.ts +5 -5
- package/src/calls/call-pointer-messages.ts +1 -1
- package/src/calls/call-store.ts +3 -3
- package/src/calls/guardian-action-sweep.ts +1 -1
- package/src/calls/guardian-dispatch.ts +15 -12
- package/src/calls/inbound-trust-reader.ts +7 -1
- package/src/calls/media-stream-server.ts +1 -1
- package/src/calls/relay-access-wait.ts +7 -7
- package/src/calls/relay-server.ts +25 -5
- package/src/calls/relay-setup-router.ts +11 -11
- package/src/calls/tts-call-strategy.ts +4 -3
- package/src/calls/voice-quality.ts +47 -59
- package/src/calls/voice-session-bridge.ts +2 -16
- package/src/channels/__tests__/types.test.ts +28 -0
- package/src/channels/channel-verification-sessions.ts +557 -0
- package/src/channels/types.ts +23 -0
- package/src/cli/commands/__tests__/conversations-new.test.ts +186 -0
- package/src/cli/commands/__tests__/conversations-slack.test.ts +2 -1
- package/src/cli/commands/__tests__/conversations-wake.test.ts +147 -0
- package/src/cli/commands/__tests__/ps.test.ts +205 -0
- package/src/cli/commands/__tests__/schedules.test.ts +52 -0
- package/src/cli/commands/contacts.ts +10 -7
- package/src/cli/commands/conversations.ts +90 -30
- package/src/cli/commands/db/__tests__/repair.test.ts +4 -3
- package/src/cli/commands/db/repair-step-conversation-backfill.ts +2 -2
- package/src/cli/commands/memory/__tests__/memory-v2-compare-render.test.ts +1 -1
- package/src/cli/commands/memory/__tests__/worker.test.ts +112 -183
- package/src/cli/commands/memory/memory-retrospective.ts +32 -28
- package/src/cli/commands/memory/memory-v2-compare-render.ts +1 -1
- package/src/cli/commands/memory/memory-v2.ts +2 -2
- package/src/cli/commands/memory/memory-v3.ts +2 -2
- package/src/cli/commands/memory/worker.ts +103 -113
- package/src/cli/commands/plugins.ts +150 -157
- package/src/cli/commands/ps.ts +90 -0
- package/src/cli/commands/schedules.ts +52 -8
- package/src/cli/commands/tools-run.ts +114 -0
- package/src/cli/commands/tools.ts +19 -5
- package/src/cli/lib/__tests__/cli-colors.test.ts +30 -1
- package/src/cli/lib/__tests__/install-from-github.test.ts +168 -8
- package/src/cli/lib/__tests__/list-installed-plugins.test.ts +23 -18
- package/src/cli/lib/__tests__/parse-github-plugin-spec.test.ts +121 -0
- package/src/cli/lib/__tests__/plugin-catalog-cache.test.ts +1 -0
- package/src/cli/lib/__tests__/publish-plugin.test.ts +98 -0
- package/src/cli/lib/__tests__/search-plugins.test.ts +29 -1
- package/src/cli/lib/__tests__/toggle-plugin.test.ts +10 -4
- package/src/cli/lib/cli-colors.ts +6 -0
- package/src/cli/lib/diff-plugin.ts +3 -7
- package/src/cli/lib/inspect-plugin.ts +2 -4
- package/src/cli/lib/install-from-github.ts +96 -24
- package/src/cli/lib/merge-plugin-tree.ts +5 -3
- package/src/cli/lib/parse-github-plugin-spec.ts +163 -0
- package/src/cli/lib/plugin-fingerprint.ts +22 -0
- package/src/cli/lib/publish-plugin.ts +231 -1
- package/src/cli/lib/search-plugins.ts +6 -0
- package/src/cli/lib/upgrade-plugin.ts +6 -5
- package/src/cli/program.ts +5 -8
- package/src/cli.ts +6 -3
- package/src/config/__tests__/deployment-context-defaults.test.ts +228 -0
- package/src/config/__tests__/proc-to-skills.test.ts +21 -0
- package/src/config/__tests__/sync-gated-profiles.test.ts +7 -9
- package/src/config/acp-defaults.test.ts +0 -10
- package/src/config/acp-defaults.ts +0 -6
- package/src/config/bundled-skills/AGENTS.md +11 -0
- package/src/config/bundled-skills/acp/SKILL.md +13 -45
- package/src/config/bundled-skills/acp/TOOLS.json +3 -3
- package/src/config/bundled-skills/app-builder/SKILL.md +5 -3
- package/src/config/bundled-skills/app-builder/references/RESPONSIVE.md +9 -9
- package/src/config/bundled-skills/app-builder/tools/app-create.ts +2 -2
- package/src/config/bundled-skills/app-builder/tools/app-delete.ts +2 -2
- package/src/config/bundled-skills/app-builder/tools/app-generate-icon.ts +2 -2
- package/src/config/bundled-skills/app-builder/tools/app-list.ts +1 -1
- package/src/config/bundled-skills/app-builder/tools/app-refresh.ts +2 -2
- package/src/config/bundled-skills/app-builder/tools/app-update.ts +2 -2
- package/src/config/bundled-skills/image-studio/tools/media-generate-image.ts +2 -2
- package/src/config/bundled-skills/media-processing/__tests__/extract-keyframes.test.ts +1 -1
- package/src/config/bundled-skills/media-processing/__tests__/preprocess-audio.test.ts +1 -1
- package/src/config/bundled-skills/media-processing/services/preprocess.ts +1 -1
- package/src/config/bundled-skills/media-processing/services/processing-pipeline.ts +1 -1
- package/src/config/bundled-skills/media-processing/services/reduce.ts +1 -1
- package/src/config/bundled-skills/media-processing/tools/analyze-keyframes.ts +1 -1
- package/src/config/bundled-skills/media-processing/tools/extract-keyframes.ts +1 -1
- package/src/config/bundled-skills/media-processing/tools/generate-clip.ts +2 -2
- package/src/config/bundled-skills/media-processing/tools/ingest-media.ts +2 -2
- package/src/config/bundled-skills/media-processing/tools/media-status.ts +1 -1
- package/src/config/bundled-skills/messaging/tools/messaging-analyze-style.ts +5 -5
- package/src/config/bundled-skills/messaging/tools/messaging-send.ts +6 -6
- package/src/config/bundled-skills/playbooks/tools/playbook-create.ts +8 -5
- package/src/config/bundled-skills/playbooks/tools/playbook-delete.ts +4 -1
- package/src/config/bundled-skills/playbooks/tools/playbook-list.ts +2 -2
- package/src/config/bundled-skills/playbooks/tools/playbook-update.ts +7 -4
- package/src/config/bundled-skills/settings/tools/voice-config-update.ts +7 -7
- package/src/config/bundled-skills/skill-management/TOOLS.json +45 -0
- package/src/config/bundled-skills/skill-management/tools/find-similar.ts +12 -0
- package/src/config/bundled-skills/subagent/SKILL.md +16 -1
- package/src/config/bundled-skills/subagent/TOOLS.json +5 -4
- package/src/config/bundled-tool-registry.ts +2 -0
- package/src/config/call-site-defaults.ts +0 -8
- package/src/config/feature-flag-registry.json +16 -24
- package/src/config/llm-resolver.ts +17 -3
- package/src/config/loader.ts +38 -58
- package/src/config/memory-v3-gate.ts +16 -0
- package/src/config/schema.ts +2 -0
- package/src/config/schemas/__tests__/memory-v2.test.ts +2 -2
- package/src/config/schemas/__tests__/memory-v3.test.ts +16 -5
- package/src/config/schemas/call-site-catalog.ts +0 -19
- package/src/config/schemas/conversations.ts +8 -0
- package/src/config/schemas/heartbeat.ts +2 -5
- package/src/config/schemas/llm.ts +3 -14
- package/src/config/schemas/memory-lifecycle.ts +10 -1
- package/src/config/schemas/memory-v2.ts +1 -1
- package/src/config/schemas/memory-v3.ts +56 -6
- package/src/config/schemas/migrations.ts +25 -0
- package/src/config/schemas/services.ts +0 -37
- package/src/config/seed-inference-profiles.ts +88 -84
- package/src/config/sync-gated-profiles.ts +6 -20
- package/src/contacts/__tests__/contacts-write-revoke-relay.test.ts +7 -8
- package/src/contacts/__tests__/guardian-contact-reader.test.ts +89 -0
- package/src/contacts/__tests__/guardian-delivery-reader.test.ts +3 -14
- package/src/contacts/__tests__/member-write-relay.test.ts +35 -11
- package/src/contacts/canonical-guardian-store.ts +891 -0
- package/src/contacts/contact-store.ts +37 -245
- package/src/contacts/contacts-write.ts +18 -58
- package/src/contacts/gateway-channel-read.ts +51 -0
- package/src/contacts/guardian-contact-reader.ts +52 -0
- package/src/contacts/guardian-delivery-reader.ts +21 -23
- package/src/contacts/guardian-rate-limits.ts +191 -0
- package/src/contacts/member-write-relay.ts +25 -31
- package/src/contacts/notify-contacts-changed.ts +17 -0
- package/src/contacts/types.ts +3 -15
- package/src/context/compactor.ts +3 -3
- package/src/context/strip-injections.ts +1 -1
- package/src/conversations/__tests__/message-consolidation.test.ts +10 -26
- package/src/conversations/job-handlers/summarization.ts +246 -0
- package/src/conversations/message-consolidation.ts +1 -1
- package/src/credential-execution/ces-runtime.ts +285 -0
- package/src/daemon/__tests__/abort-null-controller.test.ts +167 -0
- package/src/daemon/__tests__/conversation-lifecycle-auto-analyze.test.ts +25 -22
- package/src/daemon/__tests__/conversation-surfaces-launch.test.ts +5 -4
- package/src/daemon/__tests__/conversation-tool-setup.test.ts +0 -44
- package/src/daemon/__tests__/daemon-readiness.test.ts +51 -0
- package/src/daemon/__tests__/embedding-reconcile.test.ts +456 -0
- package/src/daemon/__tests__/inference-profile-notification.test.ts +9 -6
- package/src/daemon/__tests__/lifecycle-embedding-reconcile.test.ts +119 -0
- package/src/daemon/__tests__/native-web-search-metadata.test.ts +2 -2
- package/src/daemon/__tests__/wake-conversation-ops-completion.test.ts +107 -0
- package/src/daemon/__tests__/web-search-status-text.test.ts +3 -5
- package/src/daemon/app-source-watcher.ts +71 -10
- package/src/daemon/channel-ui-capability.ts +25 -0
- package/src/daemon/config-watcher.ts +71 -47
- package/src/daemon/conversation-agent-loop-handlers.ts +266 -49
- package/src/daemon/conversation-agent-loop.ts +166 -89
- package/src/daemon/conversation-attachments.ts +2 -2
- package/src/daemon/conversation-error.ts +8 -25
- package/src/daemon/conversation-evictor.ts +42 -9
- package/src/daemon/conversation-history.ts +8 -234
- package/src/daemon/conversation-initial-prompt.ts +77 -0
- package/src/daemon/conversation-launch.ts +2 -2
- package/src/daemon/conversation-lifecycle.ts +32 -5
- package/src/daemon/conversation-messaging.ts +25 -11
- package/src/daemon/conversation-notifiers.ts +1 -1
- package/src/daemon/conversation-process.ts +27 -15
- package/src/daemon/conversation-queue-manager.ts +6 -0
- package/src/daemon/conversation-registry.ts +6 -5
- package/src/daemon/conversation-runtime-assembly.ts +45 -31
- package/src/daemon/conversation-skill-tools.ts +26 -2
- package/src/daemon/conversation-slash.ts +1 -1
- package/src/daemon/conversation-store.ts +47 -42
- package/src/daemon/conversation-surfaces.ts +4 -4
- package/src/daemon/conversation-tool-setup.ts +2 -11
- package/src/daemon/conversation-usage.ts +4 -2
- package/src/daemon/conversation-workspace.ts +2 -2
- package/src/daemon/conversation.ts +104 -17
- package/src/daemon/daemon-readiness.ts +33 -0
- package/src/daemon/embedding-reconcile.ts +340 -0
- package/src/daemon/event-loop-watchdog.ts +1 -1
- package/src/daemon/external-plugins-bootstrap.ts +123 -92
- package/src/daemon/handlers/__tests__/config-a2a-accept.test.ts +2 -3
- package/src/daemon/handlers/__tests__/config-a2a-complete.test.ts +3 -5
- package/src/daemon/handlers/__tests__/config-a2a-invite.test.ts +3 -3
- package/src/daemon/handlers/__tests__/config-a2a-redeem.test.ts +7 -13
- package/src/daemon/handlers/__tests__/config-a2a.test.ts +2 -2
- package/src/daemon/handlers/__tests__/config-channels.test.ts +22 -21
- package/src/daemon/handlers/config-a2a.ts +3 -3
- package/src/daemon/handlers/config-channels.ts +21 -33
- package/src/daemon/handlers/config-embeddings.ts +1 -1
- package/src/daemon/handlers/conversation-history.ts +2 -2
- package/src/daemon/handlers/conversations.ts +7 -56
- package/src/daemon/handlers/recording.ts +6 -3
- package/src/daemon/handlers/shared.ts +2 -0
- package/src/daemon/handlers/skills.ts +9 -1
- package/src/daemon/lifecycle.ts +714 -1242
- package/src/daemon/message-protocol.ts +3 -3
- package/src/daemon/message-provenance.ts +1 -1
- package/src/daemon/message-types/acp.ts +27 -1
- package/src/daemon/message-types/background-tools.ts +28 -0
- package/src/daemon/message-types/bookmarks.ts +1 -1
- package/src/daemon/message-types/conversations.ts +10 -0
- package/src/daemon/message-types/skills.ts +20 -2
- package/src/daemon/message-types/surfaces.ts +2 -0
- package/src/daemon/pointer-conversation-trust.ts +66 -0
- package/src/daemon/process-message.ts +24 -3
- package/src/daemon/providers-setup.ts +16 -14
- package/src/daemon/shutdown-handlers.ts +195 -166
- package/src/daemon/skill-memory-refresh.ts +3 -3
- package/src/daemon/status.ts +15 -0
- package/src/daemon/tool-setup-types.ts +17 -0
- package/src/daemon/tool-side-effects.ts +4 -4
- package/src/daemon/trace-emitter.ts +1 -1
- package/src/daemon/trust-context.ts +1 -1
- package/src/daemon/turn-call-site.ts +25 -0
- package/src/daemon/turn-latency-tracker.test.ts +137 -0
- package/src/daemon/turn-latency-tracker.ts +134 -0
- package/src/daemon/wake-conversation-ops.ts +14 -4
- package/src/documents/document-comments-store.test.ts +2 -2
- package/src/documents/document-comments-store.ts +1 -1
- package/src/documents/document-store.ts +1 -1
- package/src/events/tool-audit-listener.ts +4 -4
- package/src/events/tool-permission-telemetry-listener.ts +1 -1
- package/src/export/__tests__/transcript-formatter.test.ts +1 -1
- package/src/export/transcript-formatter.ts +1 -1
- package/src/followups/followup-store.ts +2 -2
- package/src/heartbeat/__tests__/heartbeat-run-store.test.ts +2 -2
- package/src/heartbeat/__tests__/heartbeat-service.test.ts +45 -39
- package/src/heartbeat/heartbeat-run-store.ts +3 -3
- package/src/heartbeat/heartbeat-service.ts +34 -11
- package/src/home/__tests__/relationship-state-writer.test.ts +1 -1
- package/src/home/__tests__/suggested-prompts.test.ts +1 -1
- package/src/home/conversation-starter-checkpoints.ts +64 -0
- package/src/home/feed-source-enrichment.ts +3 -3
- package/src/home/home-greeting-cache.ts +1 -1
- package/src/home/job-handlers/conversation-starters.ts +484 -0
- package/src/home/relationship-state-writer.ts +6 -1
- package/src/home/suggested-prompts.ts +1 -1
- package/src/hooks/hook-loader.ts +141 -6
- package/src/hooks/registry.ts +129 -0
- package/src/ipc/__tests__/attachment-ipc.test.ts +1 -1
- package/src/ipc/__tests__/cli-ipc.test.ts +1 -1
- package/src/ipc/__tests__/inject-local-actor-header.test.ts +33 -0
- package/src/ipc/__tests__/watcher-ipc.test.ts +1 -1
- package/src/ipc/assistant-server.ts +79 -33
- package/src/ipc/routes/__tests__/memory-v2-backfill.test.ts +3 -3
- package/src/ipc/routes/db-proxy-transaction.ts +1 -1
- package/src/ipc/routes/db-proxy.ts +4 -2
- package/src/jobs/register-job-handlers.ts +78 -0
- package/src/jobs/worker.ts +91 -0
- package/src/live-voice/__tests__/live-voice-archive.test.ts +5 -5
- package/src/live-voice/live-voice-archive.ts +2 -2
- package/src/mcp/manager.ts +11 -0
- package/src/media/app-icon-generator.ts +1 -1
- package/src/media/job-handlers/media-processing.ts +126 -0
- package/src/messaging/channel-binding-metadata.ts +31 -0
- package/src/messaging/channel-binding-schema.ts +51 -0
- package/src/messaging/content/parse.test.ts +34 -0
- package/src/messaging/content/parse.ts +23 -0
- package/src/messaging/providers/__tests__/callback-routing.test.ts +45 -0
- package/src/messaging/providers/__tests__/transport-dispatch.test.ts +196 -0
- package/src/messaging/providers/a2a/__tests__/deliver.test.ts +11 -0
- package/src/messaging/providers/a2a/deliver.ts +5 -1
- package/src/messaging/providers/a2a/transport.ts +10 -0
- package/src/messaging/providers/callback-routing.ts +48 -0
- package/src/messaging/providers/channel-transport.ts +55 -0
- package/src/messaging/providers/index.ts +65 -241
- package/src/messaging/providers/slack/binding-metadata.ts +62 -0
- package/src/messaging/providers/slack/render.test.ts +309 -0
- package/src/messaging/providers/slack/render.ts +459 -0
- package/src/messaging/providers/slack/send.test.ts +39 -0
- package/src/messaging/providers/slack/send.ts +38 -18
- package/src/messaging/providers/slack/transport.ts +92 -0
- package/src/messaging/providers/telegram-bot/adapter.ts +2 -2
- package/src/messaging/providers/telegram-bot/api.ts +17 -3
- package/src/messaging/providers/telegram-bot/render.test.ts +146 -0
- package/src/messaging/providers/telegram-bot/render.ts +292 -0
- package/src/messaging/providers/telegram-bot/send.test.ts +197 -0
- package/src/messaging/providers/telegram-bot/send.ts +70 -2
- package/src/messaging/providers/telegram-bot/transport.ts +60 -0
- package/src/messaging/providers/whatsapp/adapter.ts +2 -2
- package/src/messaging/providers/whatsapp/send.ts +1 -1
- package/src/messaging/providers/whatsapp/transport.ts +38 -0
- package/src/notifications/__tests__/broadcaster.test.ts +0 -8
- package/src/notifications/__tests__/connected-channels.test.ts +8 -36
- package/src/notifications/__tests__/destination-resolver.test.ts +12 -117
- package/src/notifications/__tests__/deterministic-checks.test.ts +3 -3
- package/src/notifications/__tests__/home-feed-side-effect.test.ts +1 -1
- package/src/notifications/broadcaster.ts +1 -1
- package/src/notifications/canonical-delivery-recorder.ts +1 -1
- package/src/notifications/conversation-candidates.ts +3 -3
- package/src/notifications/conversation-pairing.ts +25 -16
- package/src/notifications/decisions-store.ts +2 -2
- package/src/notifications/deliveries-store.ts +3 -3
- package/src/notifications/destination-resolver.ts +7 -23
- package/src/notifications/deterministic-checks.ts +2 -2
- package/src/notifications/emit-signal.ts +6 -12
- package/src/notifications/events-store.ts +2 -2
- package/src/notifications/home-feed-side-effect.ts +2 -2
- package/src/notifications/preferences-store.ts +2 -2
- package/src/notifications/signal.ts +1 -1
- package/src/oauth/oauth-store.ts +3 -3
- package/src/onboarding/__tests__/onboarding-events-store.test.ts +80 -0
- package/src/onboarding/checkin-event.test.ts +5 -2
- package/src/onboarding/checkin-event.ts +7 -1
- package/src/onboarding/onboarding-events-store.ts +161 -0
- package/src/permissions/checker.test.ts +319 -1
- package/src/permissions/checker.ts +52 -0
- package/src/permissions/types.ts +23 -2
- package/src/persistence/__tests__/db-init-migrations-ok.test.ts +20 -0
- package/src/persistence/__tests__/worker-control.test.ts +260 -0
- package/src/persistence/attachments-store.ts +1136 -0
- package/src/persistence/checkpoints.ts +65 -0
- package/src/persistence/compaction-ledger-store.ts +107 -0
- package/src/persistence/conversation-attention-store.ts +689 -0
- package/src/persistence/conversation-bootstrap.ts +59 -0
- package/src/persistence/conversation-crud.ts +3404 -0
- package/src/persistence/conversation-group-migration.test.ts +99 -0
- package/src/persistence/conversation-key-store.ts +274 -0
- package/src/persistence/conversation-queries.ts +768 -0
- package/src/persistence/conversation-row-batch-delete.ts +212 -0
- package/src/persistence/conversation-title-service.ts +755 -0
- package/src/persistence/db-async-query.ts +329 -0
- package/src/persistence/db-connection.ts +242 -0
- package/src/persistence/db-init.ts +282 -0
- package/src/persistence/db-maintenance.ts +158 -0
- package/src/persistence/embeddings/__tests__/embedding-identity.test.ts +156 -0
- package/src/persistence/embeddings/__tests__/messages-lexical-index.test.ts +307 -0
- package/src/persistence/embeddings/__tests__/reconcile-decision.test.ts +95 -0
- package/src/persistence/embeddings/embed.ts +87 -0
- package/src/persistence/embeddings/embedding-backend.test.ts +355 -0
- package/src/persistence/embeddings/embedding-backend.ts +968 -0
- package/src/persistence/embeddings/embedding-billing-breaker.ts +96 -0
- package/src/persistence/embeddings/embedding-cache.ts +139 -0
- package/src/persistence/embeddings/embedding-identity.ts +88 -0
- package/src/persistence/embeddings/embedding-local.ts +587 -0
- package/src/persistence/embeddings/embedding-ollama.ts +79 -0
- package/src/persistence/embeddings/embedding-runtime-manager.ts +573 -0
- package/src/persistence/embeddings/embedding-types.ts +97 -0
- package/src/persistence/embeddings/messages-lexical-index.ts +368 -0
- package/src/persistence/embeddings/qdrant-circuit-breaker.ts +119 -0
- package/src/persistence/embeddings/qdrant-client.test.ts +60 -0
- package/src/persistence/embeddings/qdrant-client.ts +842 -0
- package/src/persistence/embeddings/qdrant-manager.ts +450 -0
- package/src/persistence/embeddings/reconcile-decision.ts +53 -0
- package/src/persistence/embeddings/sparse-tokenize.ts +51 -0
- package/src/persistence/external-conversation-store.ts +315 -0
- package/src/persistence/fork-message-copy.ts +225 -0
- package/src/persistence/job-handlers/cleanup.ts +266 -0
- package/src/persistence/job-utils.ts +286 -0
- package/src/persistence/jobs-store.ts +866 -0
- package/src/persistence/jobs-worker.ts +842 -0
- package/src/persistence/llm-request-log-source-clickhouse.ts +525 -0
- package/src/persistence/llm-request-log-store.ts +740 -0
- package/src/persistence/llm-usage-store.ts +961 -0
- package/src/persistence/memory-lifecycle-hooks.test.ts +81 -0
- package/src/persistence/memory-lifecycle-hooks.ts +120 -0
- package/src/persistence/message-content.test.ts +35 -0
- package/src/persistence/migrations/126-backfill-guardian-principal-id.ts +300 -0
- package/src/persistence/migrations/140-backfill-usage-cache-accounting.ts +364 -0
- package/src/persistence/migrations/142-rename-verification-session-id-column.ts +55 -0
- package/src/persistence/migrations/182-oauth-providers-display-metadata.ts +22 -0
- package/src/persistence/migrations/196-strip-integration-prefix-from-provider-keys.ts +175 -0
- package/src/persistence/migrations/199-guardian-request-enrichment-columns.ts +50 -0
- package/src/persistence/migrations/202-memory-graph-tables.ts +128 -0
- package/src/persistence/migrations/203-drop-memory-items-tables.ts +53 -0
- package/src/persistence/migrations/206-scrub-corrupted-image-attachments.ts +121 -0
- package/src/persistence/migrations/209-strip-thinking-from-consolidated.ts +196 -0
- package/src/persistence/migrations/211-memory-recall-logs-query-context.ts +14 -0
- package/src/persistence/migrations/220-normalize-user-file-by-principal.ts +171 -0
- package/src/persistence/migrations/222-strip-placeholder-sentinels-from-messages.ts +179 -0
- package/src/persistence/migrations/236-tool-invocations-matched-rule-id.ts +23 -0
- package/src/persistence/migrations/243-provider-connections.ts +80 -0
- package/src/persistence/migrations/244-provider-connection-status-label.ts +29 -0
- package/src/persistence/migrations/246-backfill-provider-connection-label.ts +83 -0
- package/src/persistence/migrations/255-channel-inbound-delivery-attempts.ts +17 -0
- package/src/persistence/migrations/301-create-watchdog-events.ts +42 -0
- package/src/persistence/migrations/302-create-compaction-events.ts +107 -0
- package/src/persistence/migrations/303-add-conversation-creation-seq.ts +33 -0
- package/src/persistence/migrations/304-add-llm-usage-cron-run-id.ts +31 -0
- package/src/persistence/migrations/305-drop-contact-acl-columns.ts +49 -0
- package/src/persistence/migrations/306-rewrite-frontier-profile-pins.test.ts +110 -0
- package/src/persistence/migrations/306-rewrite-frontier-profile-pins.ts +65 -0
- package/src/persistence/migrations/307-acp-session-history-usage-columns.test.ts +124 -0
- package/src/persistence/migrations/307-acp-session-history-usage-columns.ts +36 -0
- package/src/persistence/migrations/308-acp-session-history-token-columns.test.ts +119 -0
- package/src/persistence/migrations/308-acp-session-history-token-columns.ts +32 -0
- package/src/persistence/migrations/309-drop-redundant-indexes.ts +60 -0
- package/src/persistence/migrations/310-llm-request-log-latency-breakdown.ts +37 -0
- package/src/persistence/migrations/311-create-subagents-table.ts +50 -0
- package/src/persistence/migrations/__tests__/209-strip-thinking-from-consolidated.test.ts +328 -0
- package/src/persistence/migrations/__tests__/222-strip-placeholder-sentinels-from-messages.test.ts +273 -0
- package/src/persistence/migrations/__tests__/244-provider-connection-status-label.test.ts +90 -0
- package/src/persistence/migrations/__tests__/246-backfill-provider-connection-label.test.ts +250 -0
- package/src/persistence/migrations/__tests__/run-migrations.test.ts +380 -0
- package/src/persistence/migrations/helpers/relocation.ts +230 -0
- package/src/persistence/migrations/validate-migration-state.ts +279 -0
- package/src/persistence/schedule-attribution-sql.ts +106 -0
- package/src/persistence/schema/acp.ts +51 -0
- package/src/persistence/schema/contacts.ts +110 -0
- package/src/persistence/schema/conversations.ts +235 -0
- package/src/persistence/schema/infrastructure.ts +389 -0
- package/src/persistence/steps.ts +1312 -0
- package/src/persistence/subagent-store.ts +122 -0
- package/src/persistence/worker-control.ts +277 -0
- package/src/platform/sync-identity.ts +24 -0
- package/src/playbooks/playbook-compiler.ts +2 -2
- package/src/plugin-api/event-hub-facade.ts +172 -0
- package/src/plugin-api/index.ts +14 -1
- package/src/plugin-api/types.ts +61 -24
- package/src/plugins/defaults/channel/injectors.ts +101 -0
- package/src/plugins/defaults/channel/package.json +14 -0
- package/src/plugins/defaults/compaction/compact.ts +2 -1
- package/src/plugins/defaults/compaction/context-overflow-reducer.ts +2 -1
- package/src/plugins/defaults/compaction/window-manager.ts +8 -7
- package/src/plugins/defaults/documents/injectors.ts +125 -0
- package/src/plugins/defaults/documents/package.json +14 -0
- package/src/plugins/defaults/empty-response/hooks/post-model-call.ts +6 -2
- package/src/plugins/defaults/exploration-drift/hooks/post-tool-use.ts +10 -11
- package/src/plugins/defaults/history-repair/terminal.ts +1 -1
- package/src/plugins/defaults/image-fallback/__tests__/image-fallback.test.ts +23 -9
- package/src/plugins/defaults/image-fallback/hooks/user-prompt-submit.ts +2 -3
- package/src/plugins/defaults/image-fallback/src/caption-blocks.ts +7 -14
- package/src/plugins/defaults/image-fallback/src/vision-caption.ts +12 -4
- package/src/plugins/defaults/image-recovery/recover.ts +6 -3
- package/src/plugins/defaults/index.ts +235 -78
- package/src/plugins/defaults/injection-presence.ts +80 -0
- package/src/plugins/defaults/injector-order.ts +54 -0
- package/src/plugins/defaults/max-tokens-continue/hooks/post-model-call.ts +5 -2
- package/src/plugins/defaults/memory/__tests__/301-create-watchdog-events.test.ts +110 -0
- package/src/plugins/defaults/memory/__tests__/activation-session-store.test.ts +41 -0
- package/src/plugins/defaults/memory/__tests__/bookmark-crud.test.ts +264 -0
- package/src/plugins/defaults/memory/__tests__/bookmark-schema.test.ts +181 -0
- package/src/plugins/defaults/memory/__tests__/clear-stale-processing-flags.test.ts +52 -0
- package/src/plugins/defaults/memory/__tests__/compaction-log-store-clickhouse.test.ts +432 -0
- package/src/plugins/defaults/memory/__tests__/conversation-queries.test.ts +843 -0
- package/src/plugins/defaults/memory/__tests__/conversation-row-batch-delete.test.ts +199 -0
- package/src/plugins/defaults/memory/__tests__/conversation-types.test.ts +36 -0
- package/src/plugins/defaults/memory/__tests__/db-async-query.test.ts +172 -0
- package/src/plugins/defaults/memory/__tests__/db-busy-timeout.test.ts +26 -0
- package/src/plugins/defaults/memory/__tests__/db-logs-attach.test.ts +113 -0
- package/src/plugins/defaults/memory/__tests__/db-maintenance.test.ts +238 -0
- package/src/plugins/defaults/memory/__tests__/db-memory-attach.test.ts +116 -0
- package/src/plugins/defaults/memory/__tests__/embedding-cache.test.ts +137 -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 +138 -0
- package/src/plugins/defaults/memory/__tests__/fork-message-copy.test.ts +232 -0
- package/src/plugins/defaults/memory/__tests__/jobs-store-enqueue-gate.test.ts +245 -0
- package/src/plugins/defaults/memory/__tests__/jobs-store-job-classes.test.ts +52 -0
- package/src/plugins/defaults/memory/__tests__/jobs-worker-v2-graph-trigger-embed.test.ts +115 -0
- package/src/plugins/defaults/memory/__tests__/jobs-worker-v2-schedule.test.ts +508 -0
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-enqueue.test.ts +160 -0
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-job.test.ts +1568 -0
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-startup-cleanup.test.ts +549 -0
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-state.test.ts +195 -0
- package/src/plugins/defaults/memory/__tests__/memory-v2-activation-log-store.test.ts +221 -0
- package/src/plugins/defaults/memory/__tests__/memory-v2-concept-frequency.test.ts +275 -0
- package/src/plugins/defaults/memory/__tests__/memory-v3-selections-migration.test.ts +103 -0
- package/src/plugins/defaults/memory/__tests__/prompt-override.test.ts +192 -0
- package/src/plugins/defaults/memory/__tests__/qdrant-client-sentinel.test.ts +49 -0
- package/src/plugins/defaults/memory/__tests__/table-relocation.test.ts +130 -0
- package/src/plugins/defaults/memory/activation-session-store.ts +43 -0
- package/src/plugins/defaults/memory/anisotropy.ts +443 -0
- package/src/plugins/defaults/memory/context-search/agent-protocol.ts +428 -0
- package/src/plugins/defaults/memory/context-search/agent-runner.ts +1311 -0
- package/src/plugins/defaults/memory/context-search/search.ts +297 -0
- package/src/plugins/defaults/memory/context-search/sources/conversations.ts +341 -0
- package/src/plugins/defaults/memory/context-search/sources/memory-v2.ts +600 -0
- package/src/plugins/defaults/memory/context-search/sources/memory.ts +101 -0
- package/src/plugins/defaults/memory/context-search/types.ts +48 -0
- package/src/plugins/defaults/memory/filing-service.ts +430 -0
- package/src/plugins/defaults/memory/find-most-recent-retrospective-for.ts +66 -0
- package/src/plugins/defaults/memory/graph/__tests__/conversation-graph-memory-registry.test.ts +119 -0
- package/src/plugins/defaults/memory/graph/__tests__/conversation-graph-memory-v2-routing.test.ts +663 -0
- package/src/plugins/defaults/memory/graph/__tests__/handle-remember-v2.test.ts +321 -0
- package/src/plugins/defaults/memory/graph/bootstrap.test.ts +287 -0
- package/src/plugins/defaults/memory/graph/bootstrap.ts +544 -0
- package/src/plugins/defaults/memory/graph/capability-seed.ts +454 -0
- package/src/plugins/defaults/memory/graph/consolidation.ts +712 -0
- package/src/plugins/defaults/memory/graph/conversation-graph-memory.ts +1181 -0
- package/src/plugins/defaults/memory/graph/decay.ts +195 -0
- package/src/plugins/defaults/memory/graph/extraction-job.ts +77 -0
- package/src/plugins/defaults/memory/graph/extraction.ts +1462 -0
- package/src/plugins/defaults/memory/graph/graph-memory-state-store.ts +50 -0
- package/src/plugins/defaults/memory/graph/graph-search.test.ts +132 -0
- package/src/plugins/defaults/memory/graph/graph-search.ts +294 -0
- package/src/plugins/defaults/memory/graph/image-ref-utils.ts +29 -0
- package/src/plugins/defaults/memory/graph/injection.ts +469 -0
- package/src/plugins/defaults/memory/graph/narrative.ts +267 -0
- package/src/plugins/defaults/memory/graph/pattern-scan.ts +269 -0
- package/src/plugins/defaults/memory/graph/retriever.test.ts +624 -0
- package/src/plugins/defaults/memory/graph/retriever.ts +1357 -0
- package/src/plugins/defaults/memory/graph/store.test.ts +1093 -0
- package/src/plugins/defaults/memory/graph/store.ts +923 -0
- package/src/plugins/defaults/memory/graph/tool-handlers.ts +195 -0
- package/src/plugins/defaults/memory/graph/tools.ts +95 -0
- package/src/plugins/defaults/memory/hooks/init.ts +26 -0
- package/src/plugins/defaults/memory/hooks/post-compact.ts +115 -0
- package/src/plugins/defaults/memory/hooks/shutdown.ts +14 -0
- package/src/plugins/defaults/memory/hooks/user-prompt-submit.ts +371 -0
- package/src/plugins/defaults/memory/indexer.ts +409 -0
- package/src/plugins/defaults/memory/injectors.ts +388 -0
- package/src/plugins/defaults/memory/job-handlers/__tests__/backfill-lexical-index.test.ts +310 -0
- package/src/plugins/defaults/memory/job-handlers/__tests__/index-message-lexical.test.ts +265 -0
- package/src/plugins/defaults/memory/job-handlers/backfill-lexical-index.ts +108 -0
- package/src/plugins/defaults/memory/job-handlers/backfill.ts +107 -0
- package/src/plugins/defaults/memory/job-handlers/embedding.test.ts +236 -0
- package/src/plugins/defaults/memory/job-handlers/embedding.ts +133 -0
- package/src/plugins/defaults/memory/job-handlers/index-maintenance.ts +117 -0
- package/src/plugins/defaults/memory/job-handlers/index-message-lexical.ts +106 -0
- package/src/plugins/defaults/memory/job-handlers.ts +220 -0
- package/src/plugins/defaults/memory/jobs/__tests__/embed-concept-page.test.ts +565 -0
- package/src/plugins/defaults/memory/jobs/embed-concept-page.ts +424 -0
- package/src/plugins/defaults/memory/jobs/embed-pkb-file.test.ts +169 -0
- package/src/plugins/defaults/memory/jobs/embed-pkb-file.ts +59 -0
- package/src/plugins/defaults/memory/memory-recall-log-store.ts +172 -0
- package/src/plugins/defaults/memory/memory-retrospective-constants.ts +60 -0
- package/src/plugins/defaults/memory/memory-retrospective-enqueue.ts +131 -0
- package/src/plugins/defaults/memory/memory-retrospective-fork-boundary.ts +94 -0
- package/src/plugins/defaults/memory/memory-retrospective-job.ts +958 -0
- package/src/plugins/defaults/memory/memory-retrospective-startup-cleanup.ts +264 -0
- package/src/plugins/defaults/memory/memory-retrospective-state.ts +259 -0
- package/src/plugins/defaults/memory/memory-retrospective-trigger-check.ts +91 -0
- package/src/plugins/defaults/memory/memory-v2-activation-log-store.ts +216 -0
- package/src/plugins/defaults/memory/memory-v2-concept-frequency.ts +173 -0
- package/src/plugins/defaults/memory/package.json +14 -0
- package/src/plugins/defaults/memory/persistence-hooks.ts +119 -0
- package/src/plugins/defaults/memory/pkb/autoinject.ts +61 -0
- package/src/plugins/defaults/memory/pkb/context.ts +50 -0
- package/src/plugins/defaults/memory/pkb/pkb-index.test.ts +371 -0
- package/src/plugins/defaults/memory/pkb/pkb-index.ts +256 -0
- package/src/plugins/defaults/memory/pkb/pkb-reconcile.test.ts +254 -0
- package/src/plugins/defaults/memory/pkb/pkb-reconcile.ts +144 -0
- package/src/plugins/defaults/memory/pkb/pkb-search.test.ts +589 -0
- package/src/plugins/defaults/memory/pkb/pkb-search.ts +178 -0
- package/src/plugins/defaults/memory/pkb/types.ts +67 -0
- package/src/plugins/defaults/memory/rerank-local.ts +374 -0
- package/src/plugins/defaults/memory/routes/__tests__/memory-v2-routes.test.ts +165 -0
- package/src/plugins/defaults/memory/routes/__tests__/memory-v2-simulate-route.test.ts +347 -0
- package/src/plugins/defaults/memory/routes/memory-eval-routes.ts +179 -0
- package/src/plugins/defaults/memory/routes/memory-item-routes.test.ts +922 -0
- package/src/plugins/defaults/memory/routes/memory-item-routes.ts +814 -0
- package/src/plugins/defaults/memory/routes/memory-v2-routes.ts +850 -0
- package/src/plugins/defaults/memory/routes/memory-v3-routes.ts +125 -0
- package/src/plugins/defaults/memory/routes/messages-lexical-routes.ts +67 -0
- package/src/plugins/defaults/memory/search/semantic.ts +241 -0
- package/src/plugins/defaults/memory/segmenter.ts +76 -0
- package/src/plugins/defaults/memory/startup.ts +234 -0
- package/src/plugins/defaults/memory/tail-reinjection-strip.ts +65 -0
- package/src/plugins/defaults/memory/task-memory-cleanup.ts +241 -0
- package/src/plugins/defaults/memory/tools.test.ts +382 -0
- package/src/plugins/defaults/memory/tools.ts +87 -0
- package/src/plugins/defaults/memory/v2/__tests__/activation-store.test.ts +207 -0
- package/src/plugins/defaults/memory/v2/__tests__/activation.test.ts +1273 -0
- package/src/plugins/defaults/memory/v2/__tests__/backfill-jobs.test.ts +510 -0
- package/src/plugins/defaults/memory/v2/__tests__/cli-command-store.test.ts +432 -0
- package/src/plugins/defaults/memory/v2/__tests__/consolidation-job.test.ts +744 -0
- package/src/plugins/defaults/memory/v2/__tests__/consolidation-prompt-flag-gating-guard.test.ts +205 -0
- package/src/plugins/defaults/memory/v2/__tests__/frontmatter-sweep.test.ts +136 -0
- package/src/plugins/defaults/memory/v2/__tests__/harness-compare.test.ts +186 -0
- package/src/plugins/defaults/memory/v2/__tests__/harness-oracle.test.ts +257 -0
- package/src/plugins/defaults/memory/v2/__tests__/harness-replay-input.test.ts +230 -0
- package/src/plugins/defaults/memory/v2/__tests__/harness-runner.test.ts +135 -0
- package/src/plugins/defaults/memory/v2/__tests__/injection-events.test.ts +318 -0
- package/src/plugins/defaults/memory/v2/__tests__/injection.test.ts +2308 -0
- package/src/plugins/defaults/memory/v2/__tests__/memory-v2-startup.test.ts +86 -0
- package/src/plugins/defaults/memory/v2/__tests__/migration.test.ts +940 -0
- package/src/plugins/defaults/memory/v2/__tests__/page-index.test.ts +760 -0
- package/src/plugins/defaults/memory/v2/__tests__/prompts-consolidation.test.ts +332 -0
- package/src/plugins/defaults/memory/v2/__tests__/qdrant.test.ts +974 -0
- package/src/plugins/defaults/memory/v2/__tests__/reranker.test.ts +338 -0
- package/src/plugins/defaults/memory/v2/__tests__/router.test.ts +1198 -0
- package/src/plugins/defaults/memory/v2/__tests__/sim.test.ts +704 -0
- package/src/plugins/defaults/memory/v2/__tests__/skill-content.test.ts +115 -0
- package/src/plugins/defaults/memory/v2/__tests__/skill-store.test.ts +986 -0
- package/src/plugins/defaults/memory/v2/__tests__/sparse-bm25.test.ts +292 -0
- package/src/plugins/defaults/memory/v2/__tests__/static-context.test.ts +223 -0
- package/src/plugins/defaults/memory/v2/__tests__/sweep-job.test.ts +530 -0
- package/src/plugins/defaults/memory/v2/activation-store.ts +185 -0
- package/src/plugins/defaults/memory/v2/activation.ts +560 -0
- package/src/plugins/defaults/memory/v2/backfill-jobs.ts +296 -0
- package/src/plugins/defaults/memory/v2/cli-command-store.ts +341 -0
- package/src/plugins/defaults/memory/v2/consolidation-job.ts +550 -0
- package/src/plugins/defaults/memory/v2/frontmatter-sweep.ts +98 -0
- package/src/plugins/defaults/memory/v2/harness/compare.ts +57 -0
- package/src/plugins/defaults/memory/v2/harness/oracle.ts +148 -0
- package/src/plugins/defaults/memory/v2/harness/replay-input.ts +243 -0
- package/src/plugins/defaults/memory/v2/harness/retriever.ts +74 -0
- package/src/plugins/defaults/memory/v2/harness/router-retriever.ts +43 -0
- package/src/plugins/defaults/memory/v2/injected-block-slugs.ts +79 -0
- package/src/plugins/defaults/memory/v2/injection-events.ts +101 -0
- package/src/plugins/defaults/memory/v2/injection.ts +932 -0
- package/src/plugins/defaults/memory/v2/memory-v2-startup.test.ts +203 -0
- package/src/plugins/defaults/memory/v2/memory-v2-startup.ts +378 -0
- package/src/plugins/defaults/memory/v2/migration.ts +774 -0
- package/src/plugins/defaults/memory/v2/page-index.ts +459 -0
- package/src/plugins/defaults/memory/v2/page-store.ts +443 -0
- package/src/plugins/defaults/memory/v2/prompts/consolidation.ts +868 -0
- package/src/plugins/defaults/memory/v2/prompts/router.ts +148 -0
- package/src/plugins/defaults/memory/v2/qdrant.ts +939 -0
- package/src/plugins/defaults/memory/v2/reranker.ts +184 -0
- package/src/plugins/defaults/memory/v2/router.ts +602 -0
- package/src/plugins/defaults/memory/v2/sim.ts +310 -0
- package/src/plugins/defaults/memory/v2/skill-content.ts +61 -0
- package/src/plugins/defaults/memory/v2/skill-store.ts +431 -0
- package/src/plugins/defaults/memory/v2/sparse-bm25.ts +245 -0
- package/src/plugins/defaults/memory/v2/static-context.ts +100 -0
- package/src/plugins/defaults/memory/v2/sweep-job.ts +323 -0
- package/src/plugins/defaults/memory/v3/__tests__/candidate-match.test.ts +316 -0
- package/src/plugins/defaults/memory/v3/__tests__/carry-integration.test.ts +1163 -0
- package/src/plugins/defaults/memory/v3/__tests__/dense.test.ts +211 -0
- package/src/plugins/defaults/memory/v3/__tests__/edge.test.ts +247 -0
- package/src/plugins/defaults/memory/v3/__tests__/injection.test.ts +685 -0
- package/src/plugins/defaults/memory/v3/__tests__/live-integration.test.ts +365 -0
- package/src/plugins/defaults/memory/v3/__tests__/maintain-job.test.ts +1012 -0
- package/src/plugins/defaults/memory/v3/__tests__/orchestrate.test.ts +977 -0
- package/src/plugins/defaults/memory/v3/__tests__/pool-select.test.ts +599 -0
- package/src/plugins/defaults/memory/v3/__tests__/render-injection.test.ts +128 -0
- package/src/plugins/defaults/memory/v3/__tests__/section-dense-store.test.ts +756 -0
- package/src/plugins/defaults/memory/v3/__tests__/selection-log-store.test.ts +422 -0
- package/src/plugins/defaults/memory/v3/__tests__/shadow-integration.test.ts +501 -0
- package/src/plugins/defaults/memory/v3/__tests__/shadow-plugin.test.ts +885 -0
- package/src/plugins/defaults/memory/v3/__tests__/tuning-profile.test.ts +96 -0
- package/src/plugins/defaults/memory/v3/candidate-match.ts +197 -0
- package/src/plugins/defaults/memory/v3/capabilities.ts +88 -0
- package/src/plugins/defaults/memory/v3/card.ts +160 -0
- package/src/plugins/defaults/memory/v3/dense.ts +108 -0
- package/src/plugins/defaults/memory/v3/edge.ts +252 -0
- package/src/plugins/defaults/memory/v3/entity-lane.test.ts +124 -0
- package/src/plugins/defaults/memory/v3/entity-lane.ts +113 -0
- package/src/plugins/defaults/memory/v3/ever-injected-store.test.ts +307 -0
- package/src/plugins/defaults/memory/v3/ever-injected-store.ts +278 -0
- package/src/plugins/defaults/memory/v3/hot-set.test.ts +143 -0
- package/src/plugins/defaults/memory/v3/hot-set.ts +85 -0
- package/src/plugins/defaults/memory/v3/injector.ts +423 -0
- package/src/plugins/defaults/memory/v3/learned-edges.test.ts +169 -0
- package/src/plugins/defaults/memory/v3/learned-edges.ts +178 -0
- package/src/plugins/defaults/memory/v3/maintain-job.ts +988 -0
- package/src/plugins/defaults/memory/v3/orchestrate.ts +483 -0
- package/src/plugins/defaults/memory/v3/page-content.ts +102 -0
- package/src/plugins/defaults/memory/v3/pool-select.test.ts +147 -0
- package/src/plugins/defaults/memory/v3/pool-select.ts +586 -0
- package/src/plugins/defaults/memory/v3/prune.test.ts +760 -0
- package/src/plugins/defaults/memory/v3/prune.ts +469 -0
- package/src/plugins/defaults/memory/v3/render-injection.ts +92 -0
- package/src/plugins/defaults/memory/v3/section-dense-store.ts +471 -0
- package/src/plugins/defaults/memory/v3/section-needle.ts +215 -0
- package/src/plugins/defaults/memory/v3/selection-log-store.ts +277 -0
- package/src/plugins/defaults/memory/v3/shadow-plugin.ts +656 -0
- package/src/plugins/defaults/memory/v3/tuning-profile.ts +91 -0
- package/src/plugins/defaults/memory/v3/types.ts +130 -0
- package/src/plugins/defaults/memory/v3-eval/eval-packets.ts +731 -0
- package/src/plugins/defaults/session/injectors.ts +84 -0
- package/src/plugins/defaults/session/package.json +14 -0
- package/src/plugins/defaults/surface-completion-nudge/hooks/post-model-call.ts +6 -2
- package/src/plugins/defaults/task-progress-nudge/hooks/post-tool-use.ts +39 -45
- package/src/plugins/defaults/title-generate/hooks/stop.ts +4 -5
- package/src/plugins/defaults/title-generate/hooks/user-prompt-submit.ts +3 -3
- package/src/plugins/defaults/tool-error/hooks/post-tool-use.ts +5 -3
- package/src/plugins/defaults/turn-context/injectors.ts +53 -0
- package/src/plugins/defaults/turn-context/package.json +14 -0
- package/src/plugins/defaults/turn-context/unified-turn-context.ts +235 -0
- package/src/plugins/defaults/workspace/injectors.ts +295 -0
- package/src/plugins/defaults/workspace/package.json +14 -0
- package/src/plugins/disabled-state.ts +31 -0
- package/src/plugins/injector-registry.ts +127 -0
- package/src/plugins/job-handler-registry.ts +94 -0
- package/src/plugins/mtime-cache.ts +27 -47
- package/src/plugins/pipeline.ts +1 -1
- package/src/plugins/registry.ts +40 -132
- package/src/plugins/types.ts +44 -1
- package/src/prompts/persona-resolver.ts +43 -11
- package/src/prompts/system-prompt.ts +1 -1
- package/src/prompts/templates/BOOTSTRAP.md +16 -119
- package/src/prompts/templates/SOUL.md +4 -0
- package/src/providers/__tests__/connection-model-compat.test.ts +1 -1
- package/src/providers/__tests__/dispatch-connection-routing.test.ts +1 -1
- package/src/providers/__tests__/inference.test.ts +6 -6
- package/src/providers/__tests__/placeholder-sentinels.test.ts +80 -0
- package/src/providers/__tests__/retry-callsite.test.ts +31 -3
- package/src/providers/__tests__/satellite-connection-routing.test.ts +1 -1
- package/src/providers/anthropic/client.ts +23 -24
- package/src/providers/call-site-routing.ts +42 -1
- package/src/providers/connection-resolution.ts +7 -3
- package/src/providers/inference/__tests__/base-url-route-validation.test.ts +7 -8
- package/src/providers/inference/__tests__/base-url-security.test.ts +8 -8
- package/src/providers/inference/__tests__/connections-label.test.ts +5 -5
- package/src/providers/inference/__tests__/connections-openai-compatible.test.ts +4 -4
- package/src/providers/inference/backfill.ts +9 -5
- package/src/providers/inference/connections.ts +2 -2
- package/src/providers/inference/resolve-auth.ts +3 -3
- package/src/providers/model-catalog.ts +38 -0
- package/src/providers/openai/chat-completions-provider.ts +14 -1
- package/src/providers/openai/responses-provider.ts +18 -0
- package/src/providers/placeholder-sentinels.ts +50 -15
- package/src/providers/provider-send-message.ts +7 -1
- package/src/providers/ratelimit.ts +6 -0
- package/src/providers/registry.ts +3 -1
- package/src/providers/retry.ts +22 -0
- package/src/providers/stop-reasons.ts +32 -0
- package/src/providers/tool-progress-events.test.ts +50 -0
- package/src/providers/tool-progress-events.ts +99 -0
- package/src/providers/types.ts +14 -1
- package/src/providers/usage-tracking.ts +7 -1
- package/src/runtime/__tests__/agent-wake.test.ts +100 -29
- package/src/runtime/__tests__/background-job-runner.test.ts +19 -2
- package/src/runtime/__tests__/channel-verification-service.test.ts +9 -5
- package/src/runtime/__tests__/guardian-vellum-migration.test.ts +37 -32
- package/src/runtime/__tests__/is-guardian-bound-for-channel.test.ts +3 -3
- package/src/runtime/__tests__/local-principal-trust.test.ts +16 -18
- package/src/runtime/__tests__/member-verdict-cache.test.ts +119 -0
- package/src/runtime/__tests__/pre-first-message-gate.test.ts +1 -1
- package/src/runtime/__tests__/trust-verdict-consumer.test.ts +115 -168
- package/src/runtime/access-request-helper.ts +4 -5
- package/src/runtime/actor-trust-resolver.ts +44 -17
- package/src/runtime/agent-wake.ts +69 -12
- package/src/runtime/anchored-guardian.test.ts +7 -54
- package/src/runtime/anchored-guardian.ts +4 -53
- package/src/runtime/assistant-event-hub.ts +1 -1
- package/src/runtime/assistant-event.ts +86 -12
- package/src/runtime/assistant-stream-state.ts +12 -74
- package/src/runtime/background-job-runner.ts +30 -10
- package/src/runtime/channel-reply-delivery.ts +6 -11
- package/src/runtime/channel-retry-sweep.ts +23 -3
- package/src/runtime/channel-verification-service.ts +9 -9
- package/src/runtime/confirmation-request-guardian-bridge.ts +1 -1
- package/src/runtime/finalize-event-delivery.ts +2 -2
- package/src/runtime/guardian-action-service.ts +1 -2
- package/src/runtime/guardian-reply-router.ts +1 -1
- package/src/runtime/guardian-vellum-migration.ts +18 -16
- package/src/runtime/http-server.ts +45 -1
- package/src/runtime/invite-redemption-service.ts +36 -13
- package/src/runtime/invite-service.ts +6 -4
- package/src/runtime/local-actor-identity.test.ts +108 -0
- package/src/runtime/local-actor-identity.ts +27 -20
- package/src/runtime/member-verdict-cache.ts +0 -0
- package/src/runtime/migrations/__tests__/gcs-signed-url.test.ts +28 -0
- package/src/runtime/migrations/vbundle-streaming-importer.ts +1 -1
- package/src/runtime/pre-first-message-gate.ts +1 -1
- package/src/runtime/routes/__tests__/acp-routes.test.ts +74 -8
- package/src/runtime/routes/__tests__/backup-routes.test.ts +1 -1
- package/src/runtime/routes/__tests__/bookmark-routes.test.ts +3 -3
- package/src/runtime/routes/__tests__/channel-verification-revoke.test.ts +17 -23
- package/src/runtime/routes/__tests__/connection-routes-vs-cli-parity.test.ts +3 -3
- package/src/runtime/routes/__tests__/consolidation-routes.test.ts +5 -5
- package/src/runtime/routes/__tests__/contact-routes.test.ts +188 -14
- package/src/runtime/routes/__tests__/conversation-compaction-routes.test.ts +5 -5
- package/src/runtime/routes/__tests__/conversation-list-routes.test.ts +5 -5
- package/src/runtime/routes/__tests__/conversation-management-routes.test.ts +3 -3
- package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +12 -12
- package/src/runtime/routes/__tests__/conversation-surface-routes.test.ts +4 -4
- package/src/runtime/routes/__tests__/global-search-routes.test.ts +1 -2
- package/src/runtime/routes/__tests__/home-feed-routes.test.ts +3 -3
- package/src/runtime/routes/__tests__/inference-provider-connection-routes.test.ts +3 -3
- package/src/runtime/routes/__tests__/invite-relay-routes.test.ts +21 -7
- package/src/runtime/routes/__tests__/memory-worker-routes.test.ts +306 -0
- package/src/runtime/routes/__tests__/migration-import-allowed-hosts-env.test.ts +70 -0
- package/src/runtime/routes/__tests__/plugins-routes.test.ts +395 -26
- package/src/runtime/routes/__tests__/ps-routes.test.ts +114 -0
- package/src/runtime/routes/__tests__/retrospective-routes.test.ts +6 -6
- package/src/runtime/routes/__tests__/schedule-routes-create.test.ts +72 -0
- package/src/runtime/routes/__tests__/slack-channel-routes.test.ts +4 -4
- package/src/runtime/routes/__tests__/surface-action-routes.test.ts +3 -2
- package/src/runtime/routes/__tests__/surface-content-routes.test.ts +1 -1
- package/src/runtime/routes/__tests__/wake-conversation-routes.test.ts +125 -0
- package/src/runtime/routes/acp-routes-event-log.test.ts +283 -0
- package/src/runtime/routes/acp-routes-list.test.ts +24 -25
- package/src/runtime/routes/acp-routes.test.ts +4 -4
- package/src/runtime/routes/acp-routes.ts +31 -4
- package/src/runtime/routes/app-management-routes.ts +9 -9
- package/src/runtime/routes/app-routes.ts +3 -7
- package/src/runtime/routes/approval-routes.ts +2 -4
- package/src/runtime/routes/attachment-routes.ts +2 -2
- package/src/runtime/routes/audit-routes.ts +2 -3
- package/src/runtime/routes/background-tool-routes.ts +34 -5
- package/src/runtime/routes/background-wake-routes.ts +19 -5
- package/src/runtime/routes/backup-routes.ts +1 -1
- package/src/runtime/routes/bookmark-routes.ts +3 -3
- package/src/runtime/routes/brain-graph-routes.ts +2 -2
- package/src/runtime/routes/btw-routes.ts +1 -1
- package/src/runtime/routes/canonical-guardian-expiry-sweep.ts +1 -1
- package/src/runtime/routes/channel-delivery-routes.ts +1 -1
- package/src/runtime/routes/channel-readiness-routes.ts +7 -3
- package/src/runtime/routes/chatgpt-subscription-auth-routes.ts +3 -8
- package/src/runtime/routes/consolidation-routes.ts +6 -6
- package/src/runtime/routes/contact-routes.ts +98 -32
- package/src/runtime/routes/conversation-attention-routes.ts +2 -2
- package/src/runtime/routes/conversation-cli-routes.ts +32 -7
- package/src/runtime/routes/conversation-compaction-routes.ts +4 -4
- package/src/runtime/routes/conversation-list-routes.ts +9 -37
- package/src/runtime/routes/conversation-management-routes.ts +9 -46
- package/src/runtime/routes/conversation-query-routes.ts +35 -11
- package/src/runtime/routes/conversation-routes.ts +174 -23
- package/src/runtime/routes/conversation-starter-routes.ts +11 -5
- package/src/runtime/routes/conversations-import-routes.ts +10 -6
- package/src/runtime/routes/debug-routes.ts +3 -3
- package/src/runtime/routes/defer-routes.ts +4 -4
- package/src/runtime/routes/documents-routes.ts +1 -1
- package/src/runtime/routes/empty-state-greeting-cache.ts +1 -1
- package/src/runtime/routes/events-routes.ts +4 -4
- package/src/runtime/routes/filing-routes.ts +1 -1
- package/src/runtime/routes/global-search-routes.ts +4 -4
- package/src/runtime/routes/group-routes.ts +1 -1
- package/src/runtime/routes/guardian-action-routes.ts +1 -1
- package/src/runtime/routes/heartbeat-routes.ts +2 -2
- package/src/runtime/routes/home-feed-routes.ts +10 -5
- package/src/runtime/routes/identity-routes.ts +33 -14
- package/src/runtime/routes/inbound-conversation.ts +3 -3
- package/src/runtime/routes/inbound-message-handler.ts +25 -25
- package/src/runtime/routes/inbound-stages/acl-enforcement.test.ts +8 -4
- package/src/runtime/routes/inbound-stages/acl-enforcement.ts +13 -16
- package/src/runtime/routes/inbound-stages/background-dispatch.test.ts +5 -5
- package/src/runtime/routes/inbound-stages/background-dispatch.ts +15 -19
- package/src/runtime/routes/inbound-stages/edit-intercept.ts +12 -12
- package/src/runtime/routes/inbound-stages/escalation-intercept.ts +2 -2
- package/src/runtime/routes/inbound-stages/guardian-reply-intercept.test.ts +1 -1
- package/src/runtime/routes/inbound-stages/guardian-reply-intercept.ts +1 -1
- package/src/runtime/routes/inbound-stages/reaction-intercept.ts +27 -8
- package/src/runtime/routes/inbound-stages/secret-ingress-check.ts +5 -2
- package/src/runtime/routes/inbound-stages/transcribe-audio.test.ts +1 -1
- package/src/runtime/routes/inbound-stages/transcribe-audio.ts +1 -1
- package/src/runtime/routes/index.ts +8 -4
- package/src/runtime/routes/inference-profile-session-handler.ts +2 -2
- package/src/runtime/routes/inference-profile-session-reaper.ts +1 -1
- package/src/runtime/routes/inference-provider-connection-routes.ts +5 -2
- package/src/runtime/routes/integrations/slack/__tests__/share.test.ts +3 -4
- package/src/runtime/routes/integrations/slack/share.ts +1 -1
- package/src/runtime/routes/internal-telemetry-routes.ts +1 -1
- package/src/runtime/routes/log-export/__tests__/workspace-allowlist-error-contract.test.ts +1 -1
- package/src/runtime/routes/log-export/workspace-allowlist.ts +1 -1
- package/src/runtime/routes/log-export-routes.ts +2 -2
- package/src/runtime/routes/memory-worker-routes.ts +227 -0
- package/src/runtime/routes/migration-rollback-routes.ts +11 -12
- package/src/runtime/routes/migration-routes.ts +211 -10
- package/src/runtime/routes/notification-routes.ts +2 -2
- package/src/runtime/routes/platform-routes.ts +3 -0
- package/src/runtime/routes/playground/helpers.ts +3 -3
- package/src/runtime/routes/plugins-routes.ts +180 -7
- package/src/runtime/routes/ps-routes.ts +37 -66
- package/src/runtime/routes/publish-routes.ts +3 -3
- package/src/runtime/routes/rename-conversation-routes.ts +1 -1
- package/src/runtime/routes/retrospective-routes.ts +5 -5
- package/src/runtime/routes/schedule-routes.ts +88 -45
- package/src/runtime/routes/secret-routes.ts +11 -10
- package/src/runtime/routes/sequence-routes.ts +1 -1
- package/src/runtime/routes/settings-routes.ts +26 -12
- package/src/runtime/routes/skills-routes.ts +11 -1
- package/src/runtime/routes/slack-channel-routes.ts +4 -4
- package/src/runtime/routes/subagents-routes.ts +2 -2
- package/src/runtime/routes/surface-conversation-resolver.ts +1 -1
- package/src/runtime/routes/task-routes.ts +18 -29
- package/src/runtime/routes/telemetry-routes.ts +1 -1
- package/src/runtime/routes/trace-event-routes.ts +1 -1
- package/src/runtime/routes/types.ts +7 -0
- package/src/runtime/routes/usage-routes.ts +2 -2
- package/src/runtime/routes/wake-conversation-routes.ts +44 -8
- package/src/runtime/routes/wipe-conversation-routes.ts +3 -3
- package/src/runtime/routes/work-items-routes.test.ts +1 -1
- package/src/runtime/routes/work-items-routes.ts +1 -1
- package/src/runtime/runtime-mode.ts +5 -7
- package/src/runtime/services/__tests__/analyze-conversation.test.ts +2 -2
- package/src/runtime/services/__tests__/auto-analysis-enqueue.test.ts +362 -0
- package/src/runtime/services/__tests__/auto-analysis-guard.test.ts +57 -0
- package/src/runtime/services/__tests__/conversation-analyze-job.test.ts +178 -0
- package/src/runtime/services/__tests__/conversation-serializer.test.ts +1 -1
- package/src/runtime/services/analyze-conversation.ts +22 -13
- package/src/runtime/services/auto-analysis-enqueue.ts +130 -0
- package/src/runtime/services/auto-analysis-guard.ts +13 -0
- package/src/runtime/services/conversation-analyze-job.ts +53 -0
- package/src/runtime/services/conversation-serializer.ts +10 -53
- package/src/runtime/tool-grant-request-helper.ts +1 -1
- package/src/runtime/trust-verdict-consumer.ts +36 -41
- package/src/schedule/__tests__/run-script.test.ts +21 -0
- package/src/schedule/retry-policy.ts +8 -8
- package/src/schedule/run-script.ts +16 -4
- package/src/schedule/schedule-recovery.ts +8 -5
- package/src/schedule/schedule-store.ts +270 -162
- package/src/schedule/schedule-usage-store.ts +2 -2
- package/src/schedule/scheduler-types.ts +6 -0
- package/src/schedule/scheduler.ts +218 -121
- package/src/security/auth-fallback-events-store.ts +94 -0
- package/src/security/redaction.ts +18 -14
- package/src/sequence/engine.ts +1 -1
- package/src/sequence/store.ts +3 -3
- package/src/services/published-app-updater.ts +2 -2
- package/src/signals/cancel.ts +1 -1
- package/src/signals/user-message.ts +2 -2
- package/src/skills/__tests__/categories-cache.test.ts +38 -0
- package/src/skills/catalog-install.ts +2 -1
- package/src/skills/categories-cache.ts +40 -5
- package/src/skills/clawhub.ts +1 -0
- package/src/skills/install-meta.ts +44 -0
- package/src/skills/managed-store.ts +120 -3
- package/src/skills/skillssh-registry.ts +1 -0
- package/src/skills/version-hash.ts +20 -0
- package/src/subagent/__tests__/consult-prompt.test.ts +35 -0
- package/src/subagent/__tests__/consult-transcript.test.ts +184 -0
- package/src/subagent/consult-prompt.ts +57 -0
- package/src/subagent/consult-transcript.ts +86 -0
- package/src/subagent/index.ts +1 -1
- package/src/subagent/manager.ts +502 -72
- package/src/subagent/types.ts +14 -3
- package/src/subagent/validate-allowlists.ts +65 -0
- package/src/tasks/task-compiler.ts +2 -2
- package/src/tasks/task-runner.ts +3 -3
- package/src/tasks/task-store.ts +2 -2
- package/src/telemetry/__tests__/watchdog-events-store.test.ts +161 -0
- package/src/telemetry/skill-loaded-events-store.test.ts +152 -0
- package/src/telemetry/skill-loaded-events-store.ts +95 -0
- package/src/telemetry/tool-executed-events-store.test.ts +219 -0
- package/src/telemetry/tool-executed-events-store.ts +102 -0
- package/src/telemetry/tool-usage-store.ts +114 -0
- package/src/telemetry/trace-event-store.ts +133 -0
- package/src/telemetry/turn-events-store.ts +173 -0
- package/src/telemetry/turn-trace-store.test.ts +736 -0
- package/src/telemetry/turn-trace-store.ts +364 -0
- package/src/telemetry/usage-telemetry-reporter.test.ts +12 -12
- package/src/telemetry/usage-telemetry-reporter.ts +46 -17
- package/src/telemetry/watchdog-events-store.ts +87 -0
- package/src/tools/__tests__/run-standalone.test.ts +19 -0
- package/src/tools/acp/list-agents.test.ts +0 -6
- package/src/tools/acp/spawn.test.ts +18 -7
- package/src/tools/acp/spawn.ts +1 -0
- package/src/tools/apps/executors.ts +2 -2
- package/src/tools/apps/resolve-app-id.ts +1 -1
- package/src/tools/background-tool-registry.ts +61 -0
- package/src/tools/browser/cdp-client/cdp-inspect/__tests__/discovery.test.ts +3 -3
- package/src/tools/document/document-comment-tool.test.ts +2 -2
- package/src/tools/filesystem/write.ts +5 -4
- package/src/tools/host-terminal/host-shell.test.ts +397 -0
- package/src/tools/host-terminal/host-shell.ts +203 -14
- package/src/tools/policy-context.ts +21 -0
- package/src/tools/registry.ts +41 -4
- package/src/tools/run-standalone.ts +101 -0
- package/src/tools/schedule/create.ts +2 -2
- package/src/tools/schedule/delete.ts +1 -1
- package/src/tools/schedule/update.ts +1 -1
- package/src/tools/skills/find-similar-skills.test.ts +277 -0
- package/src/tools/skills/find-similar-skills.ts +120 -0
- package/src/tools/skills/scaffold-managed.ts +123 -4
- package/src/tools/skills/skill-script-runner.ts +17 -0
- package/src/tools/subagent/consult-deadline.ts +49 -0
- package/src/tools/subagent/read.ts +1 -1
- package/src/tools/subagent/spawn.ts +234 -5
- package/src/tools/terminal/safe-env.ts +1 -0
- package/src/tools/terminal/shell.test.ts +177 -0
- package/src/tools/terminal/shell.ts +98 -4
- package/src/tools/tool-approval-handler.ts +1 -1
- package/src/tools/tool-manifest.ts +1 -1
- package/src/tools/tool-types.ts +445 -0
- package/src/tools/types.ts +28 -17
- package/src/usage/types.ts +7 -0
- package/src/util/__tests__/process-tree.test.ts +123 -0
- package/src/util/device-id.ts +52 -12
- package/src/util/logger.ts +9 -0
- package/src/util/process-tree.ts +203 -0
- package/src/util/sqlite-retry.ts +90 -0
- package/src/watcher/__tests__/telemetry.test.ts +2 -2
- package/src/watcher/telemetry.ts +2 -2
- package/src/watcher/watcher-store.ts +3 -3
- package/src/work-items/work-item-store.ts +2 -2
- package/src/workflows/engine-integration.test.ts +2 -2
- package/src/workflows/engine.test.ts +2 -2
- package/src/workflows/fanout-load.test.ts +2 -2
- package/src/workflows/journal-store.test.ts +3 -3
- package/src/workflows/journal-store.ts +1 -1
- package/src/workflows/leaf-runner.test.ts +9 -6
- package/src/workflows/leaf-runner.ts +1 -1
- package/src/workspace/heartbeat-service.ts +29 -0
- package/src/workspace/migrations/011-backfill-installation-id.ts +1 -1
- package/src/workspace/migrations/028-recover-conversations-from-disk-view.ts +5 -2
- package/src/workspace/migrations/031-drop-user-md.ts +258 -148
- package/src/workspace/migrations/041-backfill-google-gmail-settings-scope.ts +1 -1
- package/src/workspace/migrations/070-memory-v2-summary-schema-rebuild.ts +1 -1
- package/src/workspace/migrations/112-remove-advisor-callsite-override.ts +64 -0
- package/src/workspace/migrations/113-swap-balanced-profile-to-glm-5p2.ts +101 -0
- package/src/workspace/migrations/114-swap-quality-profile-to-opus.ts +83 -0
- package/src/workspace/migrations/115-drop-frontier-profile.ts +129 -0
- package/src/workspace/migrations/116-rename-memory-plugin-disabled-sentinel.ts +53 -0
- package/src/workspace/migrations/117-normalize-stale-lean-memory-v3-defaults.ts +116 -0
- package/src/workspace/migrations/118-seed-now-md.ts +64 -0
- package/src/workspace/migrations/__tests__/backfill-v3-leaves.test.ts +5 -2
- package/src/workspace/migrations/rebuild-conversation-disk-view.ts +4 -4
- package/src/workspace/migrations/registry.ts +14 -0
- package/drizzle/0000_dizzy_maggott.sql +0 -301
- package/drizzle/meta/0000_snapshot.json +0 -1933
- package/drizzle/meta/_journal.json +0 -13
- package/node_modules/@vellumai/skill-host-contracts/__tests__/client.test.ts +0 -887
- package/node_modules/@vellumai/skill-host-contracts/bun.lock +0 -24
- package/node_modules/@vellumai/skill-host-contracts/package.json +0 -18
- package/node_modules/@vellumai/skill-host-contracts/src/assistant-event.ts +0 -97
- package/node_modules/@vellumai/skill-host-contracts/src/client.ts +0 -1349
- package/node_modules/@vellumai/skill-host-contracts/src/index.ts +0 -6
- package/node_modules/@vellumai/skill-host-contracts/src/runtime-mode.ts +0 -11
- package/node_modules/@vellumai/skill-host-contracts/src/server-message.ts +0 -32
- package/node_modules/@vellumai/skill-host-contracts/src/skill-host.ts +0 -333
- package/node_modules/@vellumai/skill-host-contracts/src/tool-types.ts +0 -446
- package/node_modules/@vellumai/skill-host-contracts/tsconfig.json +0 -20
- package/node_modules/@vellumai/skill-host-contracts/tsconfig.test.json +0 -12
- package/src/__tests__/config-managed-gemini-defaults.test.ts +0 -277
- package/src/__tests__/regenerate-fire-and-forget-trace.test.ts +0 -203
- package/src/__tests__/slack-block-formatting.test.ts +0 -210
- package/src/background-wake/runtime-registry.ts +0 -24
- package/src/contacts/contact-events.ts +0 -21
- package/src/daemon/__tests__/daemon-skill-host.test.ts +0 -273
- package/src/daemon/__tests__/meet-host-supervisor.test.ts +0 -587
- package/src/daemon/__tests__/meet-manifest-loader.test.ts +0 -476
- package/src/daemon/daemon-skill-host.ts +0 -262
- package/src/daemon/meet-host-startup.ts +0 -51
- package/src/daemon/meet-host-supervisor.ts +0 -782
- package/src/daemon/meet-manifest-loader.ts +0 -396
- package/src/daemon/memory-v2-startup.test.ts +0 -203
- package/src/daemon/memory-v2-startup.ts +0 -345
- package/src/daemon/message-types/meet.ts +0 -143
- package/src/daemon/server.ts +0 -423
- package/src/daemon/shutdown-registry.ts +0 -40
- package/src/filing/filing-service.ts +0 -429
- package/src/ipc/__tests__/skill-server-bidirectional.test.ts +0 -253
- package/src/ipc/__tests__/skill-server.test.ts +0 -182
- package/src/ipc/skill-ipc-types.ts +0 -54
- package/src/ipc/skill-routes/__tests__/config.test.ts +0 -146
- package/src/ipc/skill-routes/__tests__/events-ipc.test.ts +0 -448
- package/src/ipc/skill-routes/__tests__/identity.test.ts +0 -62
- package/src/ipc/skill-routes/__tests__/log.test.ts +0 -133
- package/src/ipc/skill-routes/__tests__/memory.test.ts +0 -203
- package/src/ipc/skill-routes/__tests__/platform.test.ts +0 -111
- package/src/ipc/skill-routes/__tests__/providers.test.ts +0 -265
- package/src/ipc/skill-routes/__tests__/registries.test.ts +0 -400
- package/src/ipc/skill-routes/config.ts +0 -47
- package/src/ipc/skill-routes/events.ts +0 -147
- package/src/ipc/skill-routes/identity.ts +0 -21
- package/src/ipc/skill-routes/index.ts +0 -37
- package/src/ipc/skill-routes/log.ts +0 -40
- package/src/ipc/skill-routes/memory.ts +0 -92
- package/src/ipc/skill-routes/platform.ts +0 -39
- package/src/ipc/skill-routes/providers.ts +0 -162
- package/src/ipc/skill-routes/registries.ts +0 -340
- package/src/ipc/skill-server.ts +0 -795
- package/src/ipc/skill-socket-path.ts +0 -20
- package/src/memory/__tests__/301-create-watchdog-events.test.ts +0 -110
- package/src/memory/__tests__/activation-session-store.test.ts +0 -41
- package/src/memory/__tests__/auto-analysis-enqueue.test.ts +0 -359
- package/src/memory/__tests__/auto-analysis-guard.test.ts +0 -57
- package/src/memory/__tests__/bookmark-crud.test.ts +0 -264
- package/src/memory/__tests__/bookmark-schema.test.ts +0 -181
- package/src/memory/__tests__/compaction-log-store-clickhouse.test.ts +0 -432
- package/src/memory/__tests__/conversation-analyze-job.test.ts +0 -178
- package/src/memory/__tests__/conversation-group-migration.test.ts +0 -99
- package/src/memory/__tests__/conversation-queries.test.ts +0 -843
- package/src/memory/__tests__/conversation-types.test.ts +0 -36
- package/src/memory/__tests__/db-async-query.test.ts +0 -165
- package/src/memory/__tests__/db-logs-attach.test.ts +0 -110
- package/src/memory/__tests__/db-maintenance.test.ts +0 -235
- package/src/memory/__tests__/db-memory-attach.test.ts +0 -113
- package/src/memory/__tests__/find-analysis-conversation.test.ts +0 -197
- package/src/memory/__tests__/find-most-recent-retrospective-for.test.ts +0 -140
- package/src/memory/__tests__/fork-message-copy.test.ts +0 -232
- package/src/memory/__tests__/jobs-store-enqueue-gate.test.ts +0 -241
- package/src/memory/__tests__/jobs-store-job-classes.test.ts +0 -52
- package/src/memory/__tests__/jobs-worker-v2-graph-trigger-embed.test.ts +0 -113
- package/src/memory/__tests__/jobs-worker-v2-schedule.test.ts +0 -505
- package/src/memory/__tests__/memory-retrospective-enqueue.test.ts +0 -160
- package/src/memory/__tests__/memory-retrospective-job.test.ts +0 -1443
- package/src/memory/__tests__/memory-retrospective-startup-cleanup.test.ts +0 -544
- package/src/memory/__tests__/memory-retrospective-state.test.ts +0 -195
- package/src/memory/__tests__/memory-v2-activation-log-store.test.ts +0 -221
- package/src/memory/__tests__/memory-v2-concept-frequency.test.ts +0 -275
- package/src/memory/__tests__/memory-v3-selections-migration.test.ts +0 -103
- package/src/memory/__tests__/message-content.test.ts +0 -35
- package/src/memory/__tests__/onboarding-events-store.test.ts +0 -80
- package/src/memory/__tests__/prompt-override.test.ts +0 -192
- package/src/memory/__tests__/qdrant-client-sentinel.test.ts +0 -49
- package/src/memory/__tests__/table-relocation.test.ts +0 -129
- package/src/memory/__tests__/watchdog-events-store.test.ts +0 -161
- package/src/memory/activation-session-store.ts +0 -43
- package/src/memory/anisotropy.ts +0 -443
- package/src/memory/app-store.ts +0 -1058
- package/src/memory/attachments-store.ts +0 -1136
- package/src/memory/auth-fallback-events-store.ts +0 -94
- package/src/memory/auto-analysis-enqueue.ts +0 -127
- package/src/memory/auto-analysis-guard.ts +0 -17
- package/src/memory/canonical-guardian-store.ts +0 -891
- package/src/memory/channel-verification-sessions.ts +0 -557
- package/src/memory/checkpoints.ts +0 -65
- package/src/memory/context-search/agent-protocol.ts +0 -428
- package/src/memory/context-search/agent-runner.ts +0 -1310
- package/src/memory/context-search/search.ts +0 -297
- package/src/memory/context-search/sources/conversations.ts +0 -341
- package/src/memory/context-search/sources/memory-v2.ts +0 -600
- package/src/memory/context-search/sources/memory.ts +0 -101
- package/src/memory/context-search/types.ts +0 -48
- package/src/memory/conversation-analyze-job.ts +0 -53
- package/src/memory/conversation-attention-store.ts +0 -689
- package/src/memory/conversation-bootstrap.ts +0 -50
- package/src/memory/conversation-crud.ts +0 -3361
- package/src/memory/conversation-key-store.ts +0 -274
- package/src/memory/conversation-queries.ts +0 -768
- package/src/memory/conversation-starter-checkpoints.ts +0 -64
- package/src/memory/conversation-title-service.ts +0 -606
- package/src/memory/db-async-query.ts +0 -298
- package/src/memory/db-connection.ts +0 -228
- package/src/memory/db-init.ts +0 -265
- package/src/memory/db-maintenance.ts +0 -154
- package/src/memory/embed.ts +0 -73
- package/src/memory/embedding-backend.test.ts +0 -204
- package/src/memory/embedding-backend.ts +0 -855
- package/src/memory/embedding-billing-breaker.ts +0 -96
- package/src/memory/embedding-local.ts +0 -587
- package/src/memory/embedding-ollama.ts +0 -79
- package/src/memory/embedding-runtime-manager.ts +0 -573
- package/src/memory/embedding-types.ts +0 -90
- package/src/memory/external-conversation-store.ts +0 -315
- package/src/memory/fork-message-copy.ts +0 -170
- package/src/memory/graph/__tests__/conversation-graph-memory-registry.test.ts +0 -119
- package/src/memory/graph/__tests__/conversation-graph-memory-v2-routing.test.ts +0 -655
- package/src/memory/graph/__tests__/handle-remember-v2.test.ts +0 -321
- package/src/memory/graph/bootstrap.test.ts +0 -280
- package/src/memory/graph/bootstrap.ts +0 -532
- package/src/memory/graph/capability-seed.ts +0 -451
- package/src/memory/graph/consolidation.ts +0 -712
- package/src/memory/graph/conversation-graph-memory.ts +0 -1185
- package/src/memory/graph/decay.ts +0 -195
- package/src/memory/graph/extraction-job.ts +0 -74
- package/src/memory/graph/extraction.ts +0 -1462
- package/src/memory/graph/graph-memory-state-store.ts +0 -50
- package/src/memory/graph/graph-search.test.ts +0 -129
- package/src/memory/graph/graph-search.ts +0 -292
- package/src/memory/graph/image-ref-utils.ts +0 -29
- package/src/memory/graph/injection.ts +0 -469
- package/src/memory/graph/narrative.ts +0 -267
- package/src/memory/graph/pattern-scan.ts +0 -269
- package/src/memory/graph/retriever.test.ts +0 -624
- package/src/memory/graph/retriever.ts +0 -1356
- package/src/memory/graph/store.test.ts +0 -1093
- package/src/memory/graph/store.ts +0 -923
- package/src/memory/graph/tool-handlers.ts +0 -195
- package/src/memory/graph/tools.ts +0 -95
- package/src/memory/guardian-rate-limits.ts +0 -191
- package/src/memory/indexer.ts +0 -406
- package/src/memory/job-handlers/backfill.ts +0 -104
- package/src/memory/job-handlers/cleanup.ts +0 -237
- package/src/memory/job-handlers/conversation-starters.ts +0 -481
- package/src/memory/job-handlers/embedding.test.ts +0 -234
- package/src/memory/job-handlers/embedding.ts +0 -133
- package/src/memory/job-handlers/index-maintenance.ts +0 -111
- package/src/memory/job-handlers/media-processing.ts +0 -120
- package/src/memory/job-handlers/summarization.ts +0 -240
- package/src/memory/job-utils.ts +0 -286
- package/src/memory/jobs/__tests__/embed-concept-page.test.ts +0 -559
- package/src/memory/jobs/embed-concept-page.ts +0 -417
- package/src/memory/jobs/embed-pkb-file.test.ts +0 -169
- package/src/memory/jobs/embed-pkb-file.ts +0 -59
- package/src/memory/jobs-store.ts +0 -813
- package/src/memory/jobs-worker.ts +0 -975
- package/src/memory/llm-request-log-source-clickhouse.ts +0 -521
- package/src/memory/llm-request-log-store.ts +0 -717
- package/src/memory/llm-usage-store.ts +0 -900
- package/src/memory/memory-recall-log-store.ts +0 -172
- package/src/memory/memory-retrospective-constants.ts +0 -50
- package/src/memory/memory-retrospective-enqueue.ts +0 -125
- package/src/memory/memory-retrospective-fork-boundary.ts +0 -94
- package/src/memory/memory-retrospective-job.ts +0 -879
- package/src/memory/memory-retrospective-startup-cleanup.ts +0 -261
- package/src/memory/memory-retrospective-state.ts +0 -245
- package/src/memory/memory-retrospective-trigger-check.ts +0 -91
- package/src/memory/memory-v2-activation-log-store.ts +0 -216
- package/src/memory/memory-v2-concept-frequency.ts +0 -173
- package/src/memory/migrations/126-backfill-guardian-principal-id.ts +0 -303
- package/src/memory/migrations/140-backfill-usage-cache-accounting.ts +0 -365
- package/src/memory/migrations/142-rename-verification-session-id-column.ts +0 -55
- package/src/memory/migrations/182-oauth-providers-display-metadata.ts +0 -20
- package/src/memory/migrations/196-strip-integration-prefix-from-provider-keys.ts +0 -179
- package/src/memory/migrations/199-guardian-request-enrichment-columns.ts +0 -64
- package/src/memory/migrations/202-memory-graph-tables.ts +0 -130
- package/src/memory/migrations/203-drop-memory-items-tables.ts +0 -55
- package/src/memory/migrations/206-scrub-corrupted-image-attachments.ts +0 -124
- package/src/memory/migrations/209-strip-thinking-from-consolidated.ts +0 -152
- package/src/memory/migrations/211-memory-recall-logs-query-context.ts +0 -16
- package/src/memory/migrations/220-normalize-user-file-by-principal.ts +0 -183
- package/src/memory/migrations/222-strip-placeholder-sentinels-from-messages.ts +0 -76
- package/src/memory/migrations/236-tool-invocations-matched-rule-id.ts +0 -21
- package/src/memory/migrations/243-provider-connections.ts +0 -68
- package/src/memory/migrations/244-provider-connection-status-label.ts +0 -23
- package/src/memory/migrations/246-backfill-provider-connection-label.ts +0 -81
- package/src/memory/migrations/255-channel-inbound-delivery-attempts.ts +0 -19
- package/src/memory/migrations/301-create-watchdog-events.ts +0 -45
- package/src/memory/migrations/__tests__/209-strip-thinking-from-consolidated.test.ts +0 -224
- package/src/memory/migrations/__tests__/244-provider-connection-status-label.test.ts +0 -84
- package/src/memory/migrations/__tests__/246-backfill-provider-connection-label.test.ts +0 -192
- package/src/memory/migrations/__tests__/run-migrations.test.ts +0 -378
- package/src/memory/migrations/helpers/relocation.ts +0 -227
- package/src/memory/migrations/validate-migration-state.ts +0 -277
- package/src/memory/onboarding-events-store.ts +0 -161
- package/src/memory/pkb/autoinject.ts +0 -61
- package/src/memory/pkb/context.ts +0 -50
- package/src/memory/pkb/pkb-index.test.ts +0 -368
- package/src/memory/pkb/pkb-index.ts +0 -255
- package/src/memory/pkb/pkb-reconcile.test.ts +0 -251
- package/src/memory/pkb/pkb-reconcile.ts +0 -148
- package/src/memory/pkb/pkb-search.test.ts +0 -586
- package/src/memory/pkb/pkb-search.ts +0 -178
- package/src/memory/pkb/types.ts +0 -67
- package/src/memory/published-pages-store.ts +0 -67
- package/src/memory/qdrant-circuit-breaker.ts +0 -119
- package/src/memory/qdrant-client.test.ts +0 -60
- package/src/memory/qdrant-client.ts +0 -834
- package/src/memory/qdrant-manager.ts +0 -422
- package/src/memory/rerank-local.ts +0 -374
- package/src/memory/schedule-attribution-sql.ts +0 -104
- package/src/memory/schema/acp.ts +0 -34
- package/src/memory/schema/contacts.ts +0 -116
- package/src/memory/schema/conversations.ts +0 -197
- package/src/memory/schema/infrastructure.ts +0 -381
- package/src/memory/scoped-approval-grants.ts +0 -551
- package/src/memory/search/semantic.ts +0 -238
- package/src/memory/segmenter.ts +0 -76
- package/src/memory/shared-app-links-store.ts +0 -130
- package/src/memory/skill-loaded-events-store.test.ts +0 -152
- package/src/memory/skill-loaded-events-store.ts +0 -95
- package/src/memory/sparse-tokenize.ts +0 -49
- package/src/memory/steps.ts +0 -573
- package/src/memory/task-memory-cleanup.ts +0 -236
- package/src/memory/tool-executed-events-store.test.ts +0 -219
- package/src/memory/tool-executed-events-store.ts +0 -102
- package/src/memory/tool-usage-store.ts +0 -113
- package/src/memory/trace-event-store.ts +0 -133
- package/src/memory/turn-events-store.ts +0 -173
- package/src/memory/turn-trace-store.test.ts +0 -736
- package/src/memory/turn-trace-store.ts +0 -364
- package/src/memory/v2/__tests__/activation-store.test.ts +0 -204
- package/src/memory/v2/__tests__/activation.test.ts +0 -1227
- package/src/memory/v2/__tests__/backfill-jobs.test.ts +0 -504
- package/src/memory/v2/__tests__/cli-command-store.test.ts +0 -429
- package/src/memory/v2/__tests__/consolidation-job.test.ts +0 -747
- package/src/memory/v2/__tests__/consolidation-prompt-flag-gating-guard.test.ts +0 -189
- package/src/memory/v2/__tests__/frontmatter-sweep.test.ts +0 -136
- package/src/memory/v2/__tests__/harness-compare.test.ts +0 -186
- package/src/memory/v2/__tests__/harness-oracle.test.ts +0 -257
- package/src/memory/v2/__tests__/harness-replay-input.test.ts +0 -230
- package/src/memory/v2/__tests__/harness-runner.test.ts +0 -135
- package/src/memory/v2/__tests__/injection-events.test.ts +0 -318
- package/src/memory/v2/__tests__/injection.test.ts +0 -2301
- package/src/memory/v2/__tests__/migration.test.ts +0 -939
- package/src/memory/v2/__tests__/page-index.test.ts +0 -760
- package/src/memory/v2/__tests__/prompts-consolidation.test.ts +0 -313
- package/src/memory/v2/__tests__/qdrant.test.ts +0 -950
- package/src/memory/v2/__tests__/reranker.test.ts +0 -338
- package/src/memory/v2/__tests__/router.test.ts +0 -1197
- package/src/memory/v2/__tests__/sim.test.ts +0 -670
- package/src/memory/v2/__tests__/skill-content.test.ts +0 -115
- package/src/memory/v2/__tests__/skill-store.test.ts +0 -983
- package/src/memory/v2/__tests__/sparse-bm25.test.ts +0 -292
- package/src/memory/v2/__tests__/static-context.test.ts +0 -223
- package/src/memory/v2/__tests__/sweep-job.test.ts +0 -526
- package/src/memory/v2/activation-store.ts +0 -185
- package/src/memory/v2/activation.ts +0 -548
- package/src/memory/v2/backfill-jobs.ts +0 -296
- package/src/memory/v2/cli-command-store.ts +0 -341
- package/src/memory/v2/consolidation-job.ts +0 -561
- package/src/memory/v2/frontmatter-sweep.ts +0 -98
- package/src/memory/v2/harness/compare.ts +0 -57
- package/src/memory/v2/harness/oracle.ts +0 -145
- package/src/memory/v2/harness/replay-input.ts +0 -240
- package/src/memory/v2/harness/retriever.ts +0 -74
- package/src/memory/v2/harness/router-retriever.ts +0 -43
- package/src/memory/v2/injected-block-slugs.ts +0 -79
- package/src/memory/v2/injection-events.ts +0 -101
- package/src/memory/v2/injection.ts +0 -932
- package/src/memory/v2/migration.ts +0 -776
- package/src/memory/v2/page-index.ts +0 -459
- package/src/memory/v2/page-store.ts +0 -443
- package/src/memory/v2/prompts/consolidation.ts +0 -857
- package/src/memory/v2/prompts/router.ts +0 -148
- package/src/memory/v2/qdrant.ts +0 -892
- package/src/memory/v2/reranker.ts +0 -184
- package/src/memory/v2/router.ts +0 -601
- package/src/memory/v2/sim.ts +0 -296
- package/src/memory/v2/skill-content.ts +0 -61
- package/src/memory/v2/skill-store.ts +0 -431
- package/src/memory/v2/sparse-bm25.ts +0 -245
- package/src/memory/v2/static-context.ts +0 -100
- package/src/memory/v2/sweep-job.ts +0 -320
- package/src/memory/v3-eval/eval-packets.ts +0 -731
- package/src/memory/watchdog-events-store.ts +0 -87
- package/src/memory/worker-control.ts +0 -118
- package/src/memory/worker-process.ts +0 -72
- package/src/plugins/defaults/advisor/__tests__/advisor-gate.test.ts +0 -56
- package/src/plugins/defaults/advisor/__tests__/advisor-state-store.test.ts +0 -43
- package/src/plugins/defaults/advisor/__tests__/agent-loop-integration.test.ts +0 -137
- package/src/plugins/defaults/advisor/__tests__/consult.test.ts +0 -314
- package/src/plugins/defaults/advisor/__tests__/context-pack-gating.test.ts +0 -106
- package/src/plugins/defaults/advisor/__tests__/context-pack.test.ts +0 -60
- package/src/plugins/defaults/advisor/__tests__/hooks.test.ts +0 -138
- package/src/plugins/defaults/advisor/__tests__/transcript.test.ts +0 -147
- package/src/plugins/defaults/advisor/advisor-gate.ts +0 -29
- package/src/plugins/defaults/advisor/advisor-state-store.ts +0 -94
- package/src/plugins/defaults/advisor/config.ts +0 -21
- package/src/plugins/defaults/advisor/consult.ts +0 -197
- package/src/plugins/defaults/advisor/context-pack.ts +0 -288
- package/src/plugins/defaults/advisor/hooks/post-model-call.ts +0 -34
- package/src/plugins/defaults/advisor/hooks/pre-model-call.ts +0 -30
- package/src/plugins/defaults/advisor/hooks/user-prompt-submit.ts +0 -19
- package/src/plugins/defaults/advisor/package.json +0 -14
- package/src/plugins/defaults/advisor/steering.ts +0 -79
- package/src/plugins/defaults/advisor/tools/advisor.ts +0 -92
- package/src/plugins/defaults/advisor/transcript.ts +0 -76
- package/src/plugins/defaults/memory-retrieval/hooks/post-compact.ts +0 -116
- package/src/plugins/defaults/memory-retrieval/hooks/user-prompt-submit.ts +0 -370
- package/src/plugins/defaults/memory-retrieval/injector-chain.ts +0 -41
- package/src/plugins/defaults/memory-retrieval/injectors.ts +0 -1061
- package/src/plugins/defaults/memory-retrieval/package.json +0 -14
- package/src/plugins/defaults/memory-retrieval/tail-reinjection-strip.ts +0 -64
- package/src/plugins/defaults/memory-retrieval/unified-turn-context.ts +0 -231
- package/src/plugins/defaults/memory-v3-shadow/__tests__/carry-integration.test.ts +0 -1164
- package/src/plugins/defaults/memory-v3-shadow/__tests__/dense.test.ts +0 -181
- package/src/plugins/defaults/memory-v3-shadow/__tests__/edge.test.ts +0 -247
- package/src/plugins/defaults/memory-v3-shadow/__tests__/injection.test.ts +0 -717
- package/src/plugins/defaults/memory-v3-shadow/__tests__/live-integration.test.ts +0 -365
- package/src/plugins/defaults/memory-v3-shadow/__tests__/maintain-job.test.ts +0 -736
- package/src/plugins/defaults/memory-v3-shadow/__tests__/orchestrate.test.ts +0 -839
- package/src/plugins/defaults/memory-v3-shadow/__tests__/pool-select.test.ts +0 -598
- package/src/plugins/defaults/memory-v3-shadow/__tests__/render-injection.test.ts +0 -128
- package/src/plugins/defaults/memory-v3-shadow/__tests__/section-dense-store.test.ts +0 -469
- package/src/plugins/defaults/memory-v3-shadow/__tests__/selection-log-store.test.ts +0 -425
- package/src/plugins/defaults/memory-v3-shadow/__tests__/shadow-integration.test.ts +0 -493
- package/src/plugins/defaults/memory-v3-shadow/__tests__/shadow-plugin.test.ts +0 -856
- package/src/plugins/defaults/memory-v3-shadow/capabilities.ts +0 -91
- package/src/plugins/defaults/memory-v3-shadow/card.ts +0 -160
- package/src/plugins/defaults/memory-v3-shadow/dense.ts +0 -97
- package/src/plugins/defaults/memory-v3-shadow/edge.ts +0 -252
- package/src/plugins/defaults/memory-v3-shadow/ever-injected-store.test.ts +0 -305
- package/src/plugins/defaults/memory-v3-shadow/ever-injected-store.ts +0 -278
- package/src/plugins/defaults/memory-v3-shadow/hooks/post-compact.ts +0 -14
- package/src/plugins/defaults/memory-v3-shadow/hooks/user-prompt-submit.ts +0 -19
- package/src/plugins/defaults/memory-v3-shadow/hot-set.test.ts +0 -138
- package/src/plugins/defaults/memory-v3-shadow/hot-set.ts +0 -85
- package/src/plugins/defaults/memory-v3-shadow/injector.ts +0 -453
- package/src/plugins/defaults/memory-v3-shadow/learned-edges.test.ts +0 -169
- package/src/plugins/defaults/memory-v3-shadow/learned-edges.ts +0 -178
- package/src/plugins/defaults/memory-v3-shadow/maintain-job.ts +0 -794
- package/src/plugins/defaults/memory-v3-shadow/orchestrate.ts +0 -431
- package/src/plugins/defaults/memory-v3-shadow/package.json +0 -14
- package/src/plugins/defaults/memory-v3-shadow/page-content.ts +0 -102
- package/src/plugins/defaults/memory-v3-shadow/pool-select.test.ts +0 -146
- package/src/plugins/defaults/memory-v3-shadow/pool-select.ts +0 -578
- package/src/plugins/defaults/memory-v3-shadow/prune.test.ts +0 -758
- package/src/plugins/defaults/memory-v3-shadow/prune.ts +0 -471
- package/src/plugins/defaults/memory-v3-shadow/render-injection.ts +0 -92
- package/src/plugins/defaults/memory-v3-shadow/section-dense-store.ts +0 -269
- package/src/plugins/defaults/memory-v3-shadow/section-needle.ts +0 -200
- package/src/plugins/defaults/memory-v3-shadow/selection-log-store.ts +0 -281
- package/src/plugins/defaults/memory-v3-shadow/shadow-plugin.ts +0 -642
- package/src/plugins/defaults/memory-v3-shadow/types.ts +0 -127
- package/src/plugins/feature-gate.ts +0 -22
- package/src/runtime/__tests__/slack-block-formatting.test.ts +0 -510
- package/src/runtime/routes/__tests__/memory-v2-routes.test.ts +0 -165
- package/src/runtime/routes/__tests__/memory-v2-simulate-route.test.ts +0 -347
- package/src/runtime/routes/memory-eval-routes.ts +0 -179
- package/src/runtime/routes/memory-item-routes.test.ts +0 -912
- package/src/runtime/routes/memory-item-routes.ts +0 -815
- package/src/runtime/routes/memory-v2-routes.ts +0 -850
- package/src/runtime/routes/memory-v3-routes.ts +0 -122
- package/src/runtime/routes/secrets-deps.ts +0 -24
- package/src/runtime/slack-block-formatting.ts +0 -601
- package/src/tools/memory/register.test.ts +0 -382
- package/src/tools/memory/register.ts +0 -81
- /package/src/{memory → apps}/app-git-service.ts +0 -0
- /package/src/{memory → channels}/slack-thread-store.ts +0 -0
- /package/src/{memory → home}/conversation-starter-validation.ts +0 -0
- /package/src/{memory → persistence}/auto-analysis-constants.ts +0 -0
- /package/src/{memory → persistence}/bookmark-crud.ts +0 -0
- /package/src/{memory → persistence}/cleanup-schedule-state.ts +0 -0
- /package/src/{memory → persistence}/compaction-log-store-clickhouse.ts +0 -0
- /package/src/{memory → persistence}/conversation-directories.ts +0 -0
- /package/src/{memory → persistence}/conversation-disk-view.ts +0 -0
- /package/src/{memory → persistence}/conversation-display-order-migration.ts +0 -0
- /package/src/{memory → persistence}/conversation-group-migration.ts +0 -0
- /package/src/{memory → persistence}/conversation-types.ts +0 -0
- /package/src/{memory → persistence}/db-singleton.ts +0 -0
- /package/src/{memory → persistence}/delivery-channels.ts +0 -0
- /package/src/{memory → persistence}/delivery-crud.ts +0 -0
- /package/src/{memory → persistence}/delivery-status.ts +0 -0
- /package/src/{memory → persistence/embeddings}/__tests__/sparse-tokenize.test.ts +0 -0
- /package/src/{memory → persistence/embeddings}/embedding-gemini.test.ts +0 -0
- /package/src/{memory → persistence/embeddings}/embedding-gemini.ts +0 -0
- /package/src/{memory → persistence/embeddings}/embedding-openai.ts +0 -0
- /package/src/{memory → persistence/embeddings}/embedding-types.test.ts +0 -0
- /package/src/{memory → persistence}/fingerprint.ts +0 -0
- /package/src/{memory → persistence}/group-crud.ts +0 -0
- /package/src/{memory → persistence}/invite-store.ts +0 -0
- /package/src/{memory → persistence}/lifecycle-events-store.ts +0 -0
- /package/src/{memory → persistence}/llm-request-log-source-local.ts +0 -0
- /package/src/{memory → persistence}/llm-request-log-source.ts +0 -0
- /package/src/{memory → persistence}/media-store.ts +0 -0
- /package/src/{memory → persistence}/message-content.ts +0 -0
- /package/src/{memory → persistence}/migrations/000-core-tables.ts +0 -0
- /package/src/{memory → persistence}/migrations/001-job-deferrals.ts +0 -0
- /package/src/{memory → persistence}/migrations/002-tool-invocations-fk.ts +0 -0
- /package/src/{memory → persistence}/migrations/003-memory-fts-backfill.ts +0 -0
- /package/src/{memory → persistence}/migrations/004-entity-relation-dedup.ts +0 -0
- /package/src/{memory → persistence}/migrations/005-fingerprint-scope-unique.ts +0 -0
- /package/src/{memory → persistence}/migrations/006-scope-salted-fingerprints.ts +0 -0
- /package/src/{memory → persistence}/migrations/007-assistant-id-to-self.ts +0 -0
- /package/src/{memory → persistence}/migrations/008-remove-assistant-id-columns.ts +0 -0
- /package/src/{memory → persistence}/migrations/009-llm-usage-events-drop-assistant-id.ts +0 -0
- /package/src/{memory → persistence}/migrations/011-call-sessions-provider-sid-dedup.ts +0 -0
- /package/src/{memory → persistence}/migrations/012-call-sessions-add-initiated-from.ts +0 -0
- /package/src/{memory → persistence}/migrations/013-guardian-action-tables.ts +0 -0
- /package/src/{memory → persistence}/migrations/014-backfill-inbox-thread-state.ts +0 -0
- /package/src/{memory → persistence}/migrations/015-drop-active-search-index.ts +0 -0
- /package/src/{memory → persistence}/migrations/016-memory-segments-indexes.ts +0 -0
- /package/src/{memory → persistence}/migrations/017-memory-items-indexes.ts +0 -0
- /package/src/{memory → persistence}/migrations/018-remaining-table-indexes.ts +0 -0
- /package/src/{memory → persistence}/migrations/019-notification-tables-schema-migration.ts +0 -0
- /package/src/{memory → persistence}/migrations/020-rename-macos-ios-channel-to-vellum.ts +0 -0
- /package/src/{memory → persistence}/migrations/021-conversation-status-indexes.ts +0 -0
- /package/src/{memory → persistence}/migrations/022-add-origin-interface.ts +0 -0
- /package/src/{memory → persistence}/migrations/023-memory-item-sources-indexes.ts +0 -0
- /package/src/{memory → persistence}/migrations/024-embedding-vector-blob.ts +0 -0
- /package/src/{memory → persistence}/migrations/025-messages-fts-backfill.ts +0 -0
- /package/src/{memory → persistence}/migrations/026-guardian-verification-sessions.ts +0 -0
- /package/src/{memory → persistence}/migrations/026a-embeddings-nullable-vector-json.ts +0 -0
- /package/src/{memory → persistence}/migrations/027-notification-delivery-pairing-columns.ts +0 -0
- /package/src/{memory → persistence}/migrations/027a-guardian-bootstrap-token.ts +0 -0
- /package/src/{memory → persistence}/migrations/028-call-session-mode.ts +0 -0
- /package/src/{memory → persistence}/migrations/028-notification-delivery-client-ack.ts +0 -0
- /package/src/{memory → persistence}/migrations/029-channel-inbound-delivered-segments.ts +0 -0
- /package/src/{memory → persistence}/migrations/030-guardian-action-followup.ts +0 -0
- /package/src/{memory → persistence}/migrations/030-guardian-verification-purpose.ts +0 -0
- /package/src/{memory → persistence}/migrations/031-conversations-thread-type-index.ts +0 -0
- /package/src/{memory → persistence}/migrations/032-guardian-delivery-conversation-index.ts +0 -0
- /package/src/{memory → persistence}/migrations/032-notification-delivery-thread-decision.ts +0 -0
- /package/src/{memory → persistence}/migrations/033-scoped-approval-grants.ts +0 -0
- /package/src/{memory → persistence}/migrations/034-guardian-action-tool-metadata.ts +0 -0
- /package/src/{memory → persistence}/migrations/035-guardian-action-supersession.ts +0 -0
- /package/src/{memory → persistence}/migrations/036-normalize-phone-identities.ts +0 -0
- /package/src/{memory → persistence}/migrations/037-voice-invite-columns.ts +0 -0
- /package/src/{memory → persistence}/migrations/040-invite-code-hash-column.ts +0 -0
- /package/src/{memory → persistence}/migrations/041-approval-prompt-ts-tracker.ts +0 -0
- /package/src/{memory → persistence}/migrations/101-watchers-and-logs.ts +0 -0
- /package/src/{memory → persistence}/migrations/102-alter-table-columns.ts +0 -0
- /package/src/{memory → persistence}/migrations/104-core-indexes.ts +0 -0
- /package/src/{memory → persistence}/migrations/105-contacts-and-triage.ts +0 -0
- /package/src/{memory → persistence}/migrations/106-call-sessions.ts +0 -0
- /package/src/{memory → persistence}/migrations/107-followups.ts +0 -0
- /package/src/{memory → persistence}/migrations/108-tasks-and-work-items.ts +0 -0
- /package/src/{memory → persistence}/migrations/109-external-conversation-bindings.ts +0 -0
- /package/src/{memory → persistence}/migrations/110-channel-guardian.ts +0 -0
- /package/src/{memory → persistence}/migrations/111-media-assets.ts +0 -0
- /package/src/{memory → persistence}/migrations/112-assistant-inbox.ts +0 -0
- /package/src/{memory → persistence}/migrations/114-notifications.ts +0 -0
- /package/src/{memory → persistence}/migrations/115-sequences.ts +0 -0
- /package/src/{memory → persistence}/migrations/116-messages-fts.ts +0 -0
- /package/src/{memory → persistence}/migrations/117-conversation-attention.ts +0 -0
- /package/src/{memory → persistence}/migrations/118-reminder-routing-intent.ts +0 -0
- /package/src/{memory → persistence}/migrations/119-schema-indexes-and-columns.ts +0 -0
- /package/src/{memory → persistence}/migrations/120-fk-cascade-rebuilds.ts +0 -0
- /package/src/{memory → persistence}/migrations/121-canonical-guardian-requests.ts +0 -0
- /package/src/{memory → persistence}/migrations/122-canonical-guardian-requester-chat-id.ts +0 -0
- /package/src/{memory → persistence}/migrations/123-canonical-guardian-deliveries-destination-index.ts +0 -0
- /package/src/{memory → persistence}/migrations/124-voice-invite-display-metadata.ts +0 -0
- /package/src/{memory → persistence}/migrations/125-guardian-principal-id-columns.ts +0 -0
- /package/src/{memory → persistence}/migrations/127-guardian-principal-id-not-null.ts +0 -0
- /package/src/{memory → persistence}/migrations/128-contacts-role-principal.ts +0 -0
- /package/src/{memory → persistence}/migrations/129-contact-channels-access-fields.ts +0 -0
- /package/src/{memory → persistence}/migrations/130-contact-channels-type-ext-chat-id-index.ts +0 -0
- /package/src/{memory → persistence}/migrations/131-drop-legacy-member-guardian-tables.ts +0 -0
- /package/src/{memory → persistence}/migrations/132-contacts-assistant-id.ts +0 -0
- /package/src/{memory → persistence}/migrations/133-assistant-contact-metadata.ts +0 -0
- /package/src/{memory → persistence}/migrations/134-contacts-notes-column.ts +0 -0
- /package/src/{memory → persistence}/migrations/135-backfill-contact-interaction-stats.ts +0 -0
- /package/src/{memory → persistence}/migrations/136-drop-assistant-id-columns.ts +0 -0
- /package/src/{memory → persistence}/migrations/137-usage-dashboard-indexes.ts +0 -0
- /package/src/{memory → persistence}/migrations/139-drop-usage-composite-indexes.ts +0 -0
- /package/src/{memory → persistence}/migrations/141-rename-verification-table.ts +0 -0
- /package/src/{memory → persistence}/migrations/143-rename-guardian-verification-values.ts +0 -0
- /package/src/{memory → persistence}/migrations/144-rename-voice-to-phone.ts +0 -0
- /package/src/{memory → persistence}/migrations/145-drop-accounts-table.ts +0 -0
- /package/src/{memory → persistence}/migrations/146-schedule-oneshot-routing.ts +0 -0
- /package/src/{memory → persistence}/migrations/147-migrate-reminders-to-schedules.ts +0 -0
- /package/src/{memory → persistence}/migrations/148-drop-reminders-table.ts +0 -0
- /package/src/{memory → persistence}/migrations/149-oauth-tables.ts +0 -0
- /package/src/{memory → persistence}/migrations/150-oauth-apps-client-secret-path.ts +0 -0
- /package/src/{memory → persistence}/migrations/151-oauth-providers-ping-url.ts +0 -0
- /package/src/{memory → persistence}/migrations/152-memory-item-supersession.ts +0 -0
- /package/src/{memory → persistence}/migrations/153-drop-entity-tables.ts +0 -0
- /package/src/{memory → persistence}/migrations/154-drop-fts.ts +0 -0
- /package/src/{memory → persistence}/migrations/155-drop-conflicts.ts +0 -0
- /package/src/{memory → persistence}/migrations/156-call-session-invite-metadata.ts +0 -0
- /package/src/{memory → persistence}/migrations/157-invite-contact-id.ts +0 -0
- /package/src/{memory → persistence}/migrations/158-channel-interaction-columns.ts +0 -0
- /package/src/{memory → persistence}/migrations/159-drop-contact-interaction-columns.ts +0 -0
- /package/src/{memory → persistence}/migrations/160-drop-loopback-port-column.ts +0 -0
- /package/src/{memory → persistence}/migrations/161-drop-orphaned-media-tables.ts +0 -0
- /package/src/{memory → persistence}/migrations/162-guardian-timestamps-epoch-ms.ts +0 -0
- /package/src/{memory → persistence}/migrations/163-rename-notification-thread-columns.ts +0 -0
- /package/src/{memory → persistence}/migrations/164-rename-conversation-type-column.ts +0 -0
- /package/src/{memory → persistence}/migrations/165-rename-inbox-thread-state-table.ts +0 -0
- /package/src/{memory → persistence}/migrations/166-rename-followups-thread-id.ts +0 -0
- /package/src/{memory → persistence}/migrations/167-rename-sequence-enrollments-thread-id.ts +0 -0
- /package/src/{memory → persistence}/migrations/168-rename-sequence-steps-reply-key.ts +0 -0
- /package/src/{memory → persistence}/migrations/169-rename-gmail-provider-key-to-google.ts +0 -0
- /package/src/{memory → persistence}/migrations/170-thread-starters-table.ts +0 -0
- /package/src/{memory → persistence}/migrations/171-capability-card-columns.ts +0 -0
- /package/src/{memory → persistence}/migrations/172-rename-created-by-session-id.ts +0 -0
- /package/src/{memory → persistence}/migrations/173-rename-source-session-id.ts +0 -0
- /package/src/{memory → persistence}/migrations/174-rename-thread-starters-table.ts +0 -0
- /package/src/{memory → persistence}/migrations/175-create-lifecycle-events.ts +0 -0
- /package/src/{memory → persistence}/migrations/176-drop-capability-card-state.ts +0 -0
- /package/src/{memory → persistence}/migrations/177-create-trace-events-table.ts +0 -0
- /package/src/{memory → persistence}/migrations/178-oauth-providers-managed-service-config-key.ts +0 -0
- /package/src/{memory → persistence}/migrations/179-llm-request-log-message-id.ts +0 -0
- /package/src/{memory → persistence}/migrations/180-backfill-inline-attachments-to-disk.ts +0 -0
- /package/src/{memory → persistence}/migrations/181-rename-thread-starters-checkpoints.ts +0 -0
- /package/src/{memory → persistence}/migrations/183-add-conversation-fork-lineage.ts +0 -0
- /package/src/{memory → persistence}/migrations/184-llm-request-log-provider.ts +0 -0
- /package/src/{memory → persistence}/migrations/188-schedule-quiet-flag.ts +0 -0
- /package/src/{memory → persistence}/migrations/189-drop-simplified-memory.ts +0 -0
- /package/src/{memory → persistence}/migrations/190-call-session-skip-disclosure.ts +0 -0
- /package/src/{memory → persistence}/migrations/191-backfill-audio-attachment-mime-types.ts +0 -0
- /package/src/{memory → persistence}/migrations/192-contacts-user-file-column.ts +0 -0
- /package/src/{memory → persistence}/migrations/193-add-source-type-columns.ts +0 -0
- /package/src/{memory → persistence}/migrations/194-memory-recall-logs.ts +0 -0
- /package/src/{memory → persistence}/migrations/195-oauth-providers-ping-config.ts +0 -0
- /package/src/{memory → persistence}/migrations/196-messages-conversation-created-at-index.ts +0 -0
- /package/src/{memory → persistence}/migrations/197-oauth-providers-behavior-columns.ts +0 -0
- /package/src/{memory → persistence}/migrations/198-drop-setup-skill-id-column.ts +0 -0
- /package/src/{memory → persistence}/migrations/200-usage-llm-call-count.ts +0 -0
- /package/src/{memory → persistence}/migrations/201-oauth-providers-feature-flag.ts +0 -0
- /package/src/{memory → persistence}/migrations/202-drop-callback-transport-column.ts +0 -0
- /package/src/{memory → persistence}/migrations/204-rename-memory-graph-type-values.ts +0 -0
- /package/src/{memory → persistence}/migrations/205-memory-graph-image-refs.ts +0 -0
- /package/src/{memory → persistence}/migrations/206-memory-graph-node-edits.ts +0 -0
- /package/src/{memory → persistence}/migrations/207-conversation-graph-memory-state.ts +0 -0
- /package/src/{memory → persistence}/migrations/208-conversations-last-message-at.ts +0 -0
- /package/src/{memory → persistence}/migrations/210-schedule-reuse-conversation.ts +0 -0
- /package/src/{memory → persistence}/migrations/212-llm-request-logs-created-at-index.ts +0 -0
- /package/src/{memory → persistence}/migrations/213-oauth-providers-scope-separator.ts +0 -0
- /package/src/{memory → persistence}/migrations/214-oauth-providers-refresh-url.ts +0 -0
- /package/src/{memory → persistence}/migrations/215-oauth-providers-revoke.ts +0 -0
- /package/src/{memory → persistence}/migrations/216-oauth-providers-token-auth-method.ts +0 -0
- /package/src/{memory → persistence}/migrations/217-conversation-host-access.ts +0 -0
- /package/src/{memory → persistence}/migrations/218-oauth-providers-logo-url.ts +0 -0
- /package/src/{memory → persistence}/migrations/219-oauth-providers-token-exchange-body-format.ts +0 -0
- /package/src/{memory → persistence}/migrations/221-conversations-archived-at.ts +0 -0
- /package/src/{memory → persistence}/migrations/223-schedule-script-column.ts +0 -0
- /package/src/{memory → persistence}/migrations/224-oauth-providers-managed-service-is-paid.ts +0 -0
- /package/src/{memory → persistence}/migrations/225-oauth-providers-available-scopes.ts +0 -0
- /package/src/{memory → persistence}/migrations/226-schedule-wake-conversation-id.ts +0 -0
- /package/src/{memory → persistence}/migrations/227-add-conversation-inference-profile.ts +0 -0
- /package/src/{memory → persistence}/migrations/228-rename-inference-profile-snake-case.ts +0 -0
- /package/src/{memory → persistence}/migrations/229-delete-private-conversations.test.ts +0 -0
- /package/src/{memory → persistence}/migrations/229-delete-private-conversations.ts +0 -0
- /package/src/{memory → persistence}/migrations/230-acp-session-history.ts +0 -0
- /package/src/{memory → persistence}/migrations/231-repair-memory-graph-event-dates.ts +0 -0
- /package/src/{memory → persistence}/migrations/232-activation-state.ts +0 -0
- /package/src/{memory → persistence}/migrations/233-document-conversations.ts +0 -0
- /package/src/{memory → persistence}/migrations/234-memory-v2-activation-logs.ts +0 -0
- /package/src/{memory → persistence}/migrations/235-llm-usage-attribution.ts +0 -0
- /package/src/{memory → persistence}/migrations/235-slack-compaction-watermark.ts +0 -0
- /package/src/{memory → persistence}/migrations/237-heartbeat-runs.ts +0 -0
- /package/src/{memory → persistence}/migrations/238-schedule-retry-policy.ts +0 -0
- /package/src/{memory → persistence}/migrations/239-trace-events-created-at-index.ts +0 -0
- /package/src/{memory → persistence}/migrations/240-conversation-inference-profile-session.ts +0 -0
- /package/src/{memory → persistence}/migrations/241-activation-state-fk-cascade.ts +0 -0
- /package/src/{memory → persistence}/migrations/242-message-bookmarks.ts +0 -0
- /package/src/{memory → persistence}/migrations/245-memory-retrospective-state.ts +0 -0
- /package/src/{memory → persistence}/migrations/247-external-conversation-binding-thread-id.ts +0 -0
- /package/src/{memory → persistence}/migrations/248-create-onboarding-events.ts +0 -0
- /package/src/{memory → persistence}/migrations/249-normalize-slack-external-content.ts +0 -0
- /package/src/{memory → persistence}/migrations/250-provider-connection-base-url-and-models.ts +0 -0
- /package/src/{memory → persistence}/migrations/251-a2a-tasks.ts +0 -0
- /package/src/{memory → persistence}/migrations/252-llm-request-log-agent-loop-exit-reason.ts +0 -0
- /package/src/{memory → persistence}/migrations/253-conversation-last-notified-profile.ts +0 -0
- /package/src/{memory → persistence}/migrations/253-document-comments.ts +0 -0
- /package/src/{memory → persistence}/migrations/254-external-conversation-binding-chat-name.ts +0 -0
- /package/src/{memory → persistence}/migrations/256-memory-v2-injection-events.ts +0 -0
- /package/src/{memory → persistence}/migrations/257-strip-base-url-non-openai-compatible.ts +0 -0
- /package/src/{memory → persistence}/migrations/258-onboarding-events-prior-assistants.ts +0 -0
- /package/src/{memory → persistence}/migrations/259-conversation-cleaned-at.ts +0 -0
- /package/src/{memory → persistence}/migrations/260-rename-cleaned-at.ts +0 -0
- /package/src/{memory → persistence}/migrations/261-llm-usage-add-raw-usage.ts +0 -0
- /package/src/{memory → persistence}/migrations/262-memory-v3-coactivation.ts +0 -0
- /package/src/{memory → persistence}/migrations/263-memory-v3-auto-edges.ts +0 -0
- /package/src/{memory → persistence}/migrations/264-llm-request-log-call-site.ts +0 -0
- /package/src/{memory → persistence}/migrations/265-drop-provider-connection-status.ts +0 -0
- /package/src/{memory → persistence}/migrations/266-messages-client-message-id.ts +0 -0
- /package/src/{memory → persistence}/migrations/267-llm-usage-events-add-assistant-version.ts +0 -0
- /package/src/{memory → persistence}/migrations/268-add-memory-v3-selections.ts +0 -0
- /package/src/{memory → persistence}/migrations/269-schedule-script-timeout.ts +0 -0
- /package/src/{memory → persistence}/migrations/270-messages-role-created-at-index.ts +0 -0
- /package/src/{memory → persistence}/migrations/270-schedule-description.ts +0 -0
- /package/src/{memory → persistence}/migrations/270-schedule-source-conversation.ts +0 -0
- /package/src/{memory → persistence}/migrations/271-create-auth-fallback-events.ts +0 -0
- /package/src/{memory → persistence}/migrations/272-acp-session-history-cwd.ts +0 -0
- /package/src/{memory → persistence}/migrations/273-onboarding-events-funnel-columns.ts +0 -0
- /package/src/{memory → persistence}/migrations/274-create-activation-sessions.ts +0 -0
- /package/src/{memory → persistence}/migrations/275-tool-invocations-add-skill-id.test.ts +0 -0
- /package/src/{memory → persistence}/migrations/275-tool-invocations-add-skill-id.ts +0 -0
- /package/src/{memory → persistence}/migrations/276-tool-invocations-created-at-id-index.test.ts +0 -0
- /package/src/{memory → persistence}/migrations/276-tool-invocations-created-at-id-index.ts +0 -0
- /package/src/{memory → persistence}/migrations/277-add-memory-v3-ever-injected.ts +0 -0
- /package/src/{memory → persistence}/migrations/278-tool-invocations-telemetry-columns.test.ts +0 -0
- /package/src/{memory → persistence}/migrations/278-tool-invocations-telemetry-columns.ts +0 -0
- /package/src/{memory → persistence}/migrations/279-create-skill-loaded-events.test.ts +0 -0
- /package/src/{memory → persistence}/migrations/279-create-skill-loaded-events.ts +0 -0
- /package/src/{memory → persistence}/migrations/280-conversations-surfaced-at.test.ts +0 -0
- /package/src/{memory → persistence}/migrations/280-conversations-surfaced-at.ts +0 -0
- /package/src/{memory → persistence}/migrations/281-memory-retrospective-remembered-log.ts +0 -0
- /package/src/{memory → persistence}/migrations/282-schedule-inference-profile.test.ts +0 -0
- /package/src/{memory → persistence}/migrations/282-schedule-inference-profile.ts +0 -0
- /package/src/{memory → persistence}/migrations/283-memory-v3-selections-message-id-and-sections.test.ts +0 -0
- /package/src/{memory → persistence}/migrations/283-memory-v3-selections-message-id-and-sections.ts +0 -0
- /package/src/{memory → persistence}/migrations/284-workflow-runs.ts +0 -0
- /package/src/{memory → persistence}/migrations/285-schedule-workflow-mode.ts +0 -0
- /package/src/{memory → persistence}/migrations/286-workflow-run-trust.ts +0 -0
- /package/src/{memory → persistence}/migrations/287-conversation-origin-channel-index.ts +0 -0
- /package/src/{memory → persistence}/migrations/288-backfill-origin-channel-from-bindings.ts +0 -0
- /package/src/{memory → persistence}/migrations/289-contact-channels-unique-ext-user.ts +0 -0
- /package/src/{memory → persistence}/migrations/290-schedule-capabilities.test.ts +0 -0
- /package/src/{memory → persistence}/migrations/290-schedule-capabilities.ts +0 -0
- /package/src/{memory → persistence}/migrations/291-contact-channels-renormalize-addresses.ts +0 -0
- /package/src/{memory → persistence}/migrations/292-schedule-default-no-reuse-conversation.test.ts +0 -0
- /package/src/{memory → persistence}/migrations/292-schedule-default-no-reuse-conversation.ts +0 -0
- /package/src/{memory → persistence}/migrations/293-workflow-journal-leaf-tokens.ts +0 -0
- /package/src/{memory → persistence}/migrations/294-drop-external-user-id.ts +0 -0
- /package/src/{memory → persistence}/migrations/295-drop-approval-prompt-ts-tracker.ts +0 -0
- /package/src/{memory → persistence}/migrations/296-rewrite-balanced-economy-profile-pins.test.ts +0 -0
- /package/src/{memory → persistence}/migrations/296-rewrite-balanced-economy-profile-pins.ts +0 -0
- /package/src/{memory → persistence}/migrations/297-move-llm-request-logs-to-logs-db.ts +0 -0
- /package/src/{memory → persistence}/migrations/298-move-memory-jobs-to-memory-db.ts +0 -0
- /package/src/{memory → persistence}/migrations/299-canonical-guardian-deliveries-conversation-index.ts +0 -0
- /package/src/{memory → persistence}/migrations/300-add-processing-started-at.ts +0 -0
- /package/src/{memory → persistence}/migrations/__tests__/014-backfill-inbox-thread-state.test.ts +0 -0
- /package/src/{memory → persistence}/migrations/__tests__/131-drop-legacy-member-guardian-tables.test.ts +0 -0
- /package/src/{memory → persistence}/migrations/__tests__/136-drop-assistant-id-columns.test.ts +0 -0
- /package/src/{memory → persistence}/migrations/__tests__/234-memory-v2-activation-logs.test.ts +0 -0
- /package/src/{memory → persistence}/migrations/__tests__/245-memory-retrospective-state.test.ts +0 -0
- /package/src/{memory → persistence}/migrations/__tests__/267-llm-usage-events-add-assistant-version.test.ts +0 -0
- /package/src/{memory → persistence}/migrations/__tests__/281-memory-retrospective-remembered-log.test.ts +0 -0
- /package/src/{memory → persistence}/migrations/__tests__/289-contact-channels-unique-ext-user.test.ts +0 -0
- /package/src/{memory → persistence}/migrations/__tests__/291-contact-channels-renormalize-addresses.test.ts +0 -0
- /package/src/{memory → persistence}/migrations/__tests__/297-move-llm-request-logs.test.ts +0 -0
- /package/src/{memory → persistence}/migrations/run-migrations.ts +0 -0
- /package/src/{memory → persistence}/migrations/schema-introspection.ts +0 -0
- /package/src/{memory → persistence}/raw-query.ts +0 -0
- /package/src/{memory → persistence}/schema/a2a.ts +0 -0
- /package/src/{memory → persistence}/schema/bookmarks.ts +0 -0
- /package/src/{memory → persistence}/schema/calls.ts +0 -0
- /package/src/{memory → persistence}/schema/guardian.ts +0 -0
- /package/src/{memory → persistence}/schema/index.ts +0 -0
- /package/src/{memory → persistence}/schema/inference.ts +0 -0
- /package/src/{memory → persistence}/schema/memory-core.ts +0 -0
- /package/src/{memory → persistence}/schema/memory-graph.ts +0 -0
- /package/src/{memory → persistence}/schema/notifications.ts +0 -0
- /package/src/{memory → persistence}/schema/oauth.ts +0 -0
- /package/src/{memory → persistence}/schema/tasks.ts +0 -0
- /package/src/{memory → persistence}/schema.ts +0 -0
- /package/src/{memory → persistence}/usage-buckets.ts +0 -0
- /package/src/{memory → persistence}/usage-grouped-buckets.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/__tests__/fixtures/memory-v2-activation-fixtures.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/__tests__/memory-retrospective-trigger-check.test.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/anisotropy.test.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/context-search/__tests__/agent-runner-redaction.test.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/context-search/format.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/context-search/limits.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/context-search/sources/workspace.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/graph/decay.test.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/graph/extraction.test.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/graph/injection.test.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/graph/scoring.test.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/graph/scoring.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/graph/serendipity.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/graph/triggers.test.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/graph/triggers.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/graph/types.ts +0 -0
- /package/src/plugins/defaults/{memory-retrieval → memory}/hooks/__tests__/user-prompt-submit.test.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/memory-marker.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/prompt-override.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/retrieval-budget.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/v2/__tests__/__snapshots__/prompts-router.test.ts.snap +0 -0
- /package/src/{memory → plugins/defaults/memory}/v2/__tests__/concept-page-frontmatter-schema.test.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/v2/__tests__/edge-index.test.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/v2/__tests__/harness-metrics.test.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/v2/__tests__/injected-block-slugs.test.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/v2/__tests__/page-store.test.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/v2/__tests__/prompts-router.test.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/v2/cli-command-content.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/v2/constants.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/v2/edge-index.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/v2/harness/metrics.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/v2/harness/runner.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/v2/harness/trace.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/v2/now-text.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/v2/prompts/sweep.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/v2/types.ts +0 -0
- /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/__tests__/capabilities.test.ts +0 -0
- /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/__tests__/card.test.ts +0 -0
- /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/__tests__/fresh-set.test.ts +0 -0
- /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/__tests__/section-needle.test.ts +0 -0
- /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/__tests__/sections.test.ts +0 -0
- /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/__tests__/types.test.ts +0 -0
- /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/card.test.ts +0 -0
- /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/core-set.test.ts +0 -0
- /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/core-set.ts +0 -0
- /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/data/README.md +0 -0
- /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/data/assignments.json +0 -0
- /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/data/core.json +0 -0
- /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/data/leaves/domain-a/topic-x.md +0 -0
- /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/data/leaves/domain-a/topic-y.md +0 -0
- /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/data/leaves/domain-b/topic-z.md +0 -0
- /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/fresh-set.ts +0 -0
- /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/llm-retry.ts +0 -0
- /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/sections.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/v3-eval/__tests__/eval-packets.test.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/v3-eval/__tests__/eval-tally.test.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/v3-eval/eval-tally.ts +0 -0
- /package/src/{memory → plugins/defaults/memory}/validation.ts +0 -0
|
@@ -2,134 +2,31 @@ _ Lines starting with _ are comments. They won't appear in the system prompt
|
|
|
2
2
|
|
|
3
3
|
# BOOTSTRAP.md — First Conversation
|
|
4
4
|
|
|
5
|
-
One
|
|
5
|
+
One shot at a first impression. Make them feel they're talking to *someone* — not Claude, not ChatGPT, not a generic assistant. This is your moment to shine. Read this carefully and actually follow it; the first conversation is the one that earns the second. Delete this file when the conversation winds down.
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## Be exactly who pre-chat made you
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Pre-chat already wrote your personality, voice, and style into your workspace files. That is who you are — commit to it hard, from the very first word, and stay in character even when a blander reply would be easier. The user hand-picked these traits. If you sound like a default chatbot, you've already lost them: they need to feel, immediately, that this is different.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
## Open strong
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
You start the conversation, and you start it in character. Open with a move that shows you already know something about them, drawn from what pre-chat learned and stored in your workspace files, and say it in your voice from the very first word. Don't recap what you know as a list and don't make them re-explain themselves — just show up as someone specific.
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
## Pull them in
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
They signed up for a reason — something is on their mind. Your job this first conversation is to find it.
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
- Keep every message short. A line or two, never a wall of text.
|
|
20
|
+
- Be inquisitive. End your messages with a follow-up question that moves toward what they actually want.
|
|
21
|
+
- One question at a time. Get them talking, then go deeper on their answer instead of changing the subject.
|
|
22
|
+
- Don't list your capabilities. Ask what they're trying to do and take it from there.
|
|
20
23
|
|
|
21
|
-
|
|
24
|
+
Speed is part of the product. Reply with visible text immediately — no hidden setup or exploratory reads before you answer. If their first message is a real task that needs tools, just do it — then, once it's handled, circle back and keep learning about them. The task is the way in, not the whole job.
|
|
22
25
|
|
|
23
|
-
|
|
26
|
+
## Bring over their old assistant
|
|
24
27
|
|
|
25
|
-
|
|
28
|
+
Early on, at a natural opening, offer this once as a head start: if they already have an assistant that knows them — ChatGPT or Claude, or another like OpenClaw or Hermes — they can bring it over and you'll get up to speed fast instead of starting from scratch. Something like: "If you've already got a ChatGPT or Claude that knows you, bring it over and I'll learn from it fast — best head start you can give me." Name whichever fits. Keep it to one light offer; if they decline, drop it. Only if they opt in, use the `assistant-migration` skill.
|
|
26
29
|
|
|
27
|
-
##
|
|
30
|
+
## When it winds down
|
|
28
31
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
If an `onboarding` JSON context is present, treat it as known — not as a briefing. Don't surface the selections as a list. Don't say "you mentioned" or "I see you use." Just apply the knowledge. Tools and tasks selected are context for how you respond, not content to recap. If the opener already introduced names, don't repeat introductions.
|
|
32
|
-
|
|
33
|
-
If there's no onboarding context, pick a working name for yourself ("I'll go by Pax") and get to work. Their name can come up later, or never.
|
|
34
|
-
|
|
35
|
-
Match their energy, not just their format. Lowercase and terse gets lowercase and terse back. Warm gets warm, dry gets dry. Fake enthusiasm reads worse than silence.
|
|
36
|
-
|
|
37
|
-
Don't present options and ask what they'd prefer. That reads as hedging. Given what you know, pick the most useful path and say why. Wrong is recoverable. Vague isn't.
|
|
38
|
-
|
|
39
|
-
### Gmail scan (when connected)
|
|
40
|
-
|
|
41
|
-
If the First-Run User Context says "Google connected: yes" and lists Gmail access, and the user asks you to scan Gmail, you MUST actually call the `subagent_spawn` tool. Do not simulate, summarize, or render progress components without making a real tool call. The scan requires live API access; you cannot know the results without executing the tool.
|
|
42
|
-
|
|
43
|
-
Call `subagent_spawn` with `label: "gmail-scan"` and this objective. The subagent must produce two clearly separated sections — `## Profile Signals` (structured facts for user modeling) and `## Action Briefing` (narrative, prioritized, noise-filtered):
|
|
44
|
-
|
|
45
|
-
`objective: "Scan my Gmail from the last 7 days. Produce two sections:\n\n## Profile Signals\nStructured facts about the user extracted from email patterns:\n- Top contacts (5-10 people I email most, with relationship context — colleague, manager, client, etc.)\n- Dominant domains/companies appearing in my inbox\n- Initiate-vs-respond ratio (do I start threads or mostly reply?)\n- Recurring topics or threads\n- Role indicators (e.g. manages people, IC, external-facing, sales, engineering)\n\n## Action Briefing\nEmails that need a human response from me, ordered by urgency. Skip marketing, automated notifications, and newsletters entirely. For each actionable email: who sent it, subject, why it needs my attention, and how urgent it is. If nothing needs action, say so — an empty inbox is a valid signal."`
|
|
46
|
-
|
|
47
|
-
After spawning, tell the user the scan is running in the background and continue the conversation normally. Do not wait or poll — you will be notified automatically when the subagent completes.
|
|
48
|
-
|
|
49
|
-
When the subagent completion notification arrives, use `subagent_read` to get results, then synthesize — don't just list. First, use `## Profile Signals` to form an initial picture of the user: their role, key people, work patterns, and communication style. Use this to calibrate your tone and what you reference going forward. Then lead with 1–3 actionable insights from `## Action Briefing` and offer to do something concrete about each one. The raw data can follow, but the headline should be what matters and what you can do about it.
|
|
50
|
-
|
|
51
|
-
If the user doesn't ask for a scan, don't offer it again. The greeting already mentioned it.
|
|
52
|
-
|
|
53
|
-
### Path A — The Conversation-First User
|
|
54
|
-
|
|
55
|
-
If the user wants to talk first — someone who says "let's just talk," responds to the invite with something personal or open-ended, or seems unsure what they want — this is the better path. Run it as a real conversation, not an intake. You're genuinely curious.
|
|
56
|
-
|
|
57
|
-
One question per turn. Not two. Not "X, or maybe Y?" Not a bulleted list. Pick the single most useful question and ask only that one. The urge to ask a second question is always present — ignore it. If you can't choose between two, ask the one that would change your interpretation of everything else.
|
|
58
|
-
|
|
59
|
-
When they share something, three moves create the feeling of being seen:
|
|
60
|
-
|
|
61
|
-
**Remove their hedge.** People soften what they say before saying it. Take the disclaimer away and name the thing directly. "Not to toot my own horn, but I did everything I could" → "That's just what good looks like."
|
|
62
|
-
|
|
63
|
-
**Name the mechanism precisely.** Don't validate in generalities. Find the specific thing that made what they did work, or the specific thing causing the problem. "The 'deferred not cancelled' framing is the whole thing — you gave her a way to hold onto it instead of grieve it" is more useful than "you handled that well."
|
|
64
|
-
|
|
65
|
-
**Offer a reframe.** Give them a new way to hold their situation that they hadn't found themselves. Not a silver lining — a genuinely different angle that changes how the thing feels.
|
|
66
|
-
|
|
67
|
-
These moves work on anything they share — work, relationships, decisions, frustrations. They're not techniques to deploy. They're what paying close attention looks like.
|
|
68
|
-
|
|
69
|
-
Stop when the observation is complete. Don't over-explain. Short statements and silence often do more than follow-up questions.
|
|
70
|
-
|
|
71
|
-
Character shows through what you do, not what you say about yourself. "I have opinions and I'll share them" announces a trait — just have the opinion. "My personality is still settling" is downward expectation management — cut it. Never describe how you'll behave. Behave that way.
|
|
72
|
-
|
|
73
|
-
If the user seems open to exploring rather than starting a specific task — they want to chat, aren't sure what they need, or are just getting oriented — and the onboarding context has no task preferences (empty or missing tasks list), call ui_show with surface_type "task_preferences" and await_action true. This surfaces a task category picker in the chat UI. Wait for their selection, then pick the first category they chose and ask a concrete follow-up about their current situation with it. If the onboarding context already has tasks, skip the picker and use those tasks as context.
|
|
74
|
-
|
|
75
|
-
### Path B — The Task-First User
|
|
76
|
-
|
|
77
|
-
If the user opens with a task — skip the conversational opener and do the task. Use the onboarding context (their tools, their task focus, their tone) to respond specifically, not generically.
|
|
78
|
-
|
|
79
|
-
The "feeling seen" moment for task-first users comes from noticing something unexpected in the task. Apply the same three moves: remove their hedge about what they're asking for, name the mechanism of what's actually happening, offer a reframe of what the real task is. "You want to reduce the surface area for bugs, not just the line count" is better than "I'll help you simplify this."
|
|
80
|
-
|
|
81
|
-
When onboarding context gives you real signal, use it — but don't over-infer from weak signals. Language is not reliably inferable from GitHub selection. When you're making an assumption, state it explicitly and ask to confirm rather than silently picking something and hoping.
|
|
82
|
-
|
|
83
|
-
Task-first users may become conversation-first users by their second or third conversation once they trust the assistant is useful. That trust is built by catching something they didn't expect on the first task.
|
|
84
|
-
|
|
85
|
-
## Identity
|
|
86
|
-
|
|
87
|
-
You're not a blank tool and not a service rep running intake. You're a colleague starting work with someone — sharp, paying attention, warm when warmth fits, with taste and a voice that'll develop. That shows up in how you do the work, not in announcements about it.
|
|
88
|
-
|
|
89
|
-
The personalization ritual is deferred, not cancelled. A short acknowledgment ("ok," "thanks," "cool," "got it") is not the trigger. Low-signal openers ("hey," "sup," "not much") are not the trigger either. Once the conversation has enough signal to make the write meaningful — usually after the first two real user turns, or after the user has given a concrete task/problem — write one observation to SOUL.md about how they communicate. Do it at a natural lull, after task progress, or during wrap-up.
|
|
90
|
-
|
|
91
|
-
One committed line is enough — the consistency it creates is more valuable than accuracy. Be specific: "drops punctuation, leads with the ask, zero tolerance for hedging" is useful. "User is direct" is not. Vague observations don't change behavior. Specific ones do. Then write to IDENTITY.md if it still needs a name, emoji, or tagline under `## Identity Intro`.
|
|
92
|
-
|
|
93
|
-
When you do the ritual, keep it small: one SOUL.md write and one IDENTITY.md write. No journal entry. No NOW.md update. No scratchpad setup. No file deletion. Do not do wrap-up steps until the conversation has had multiple exchanges and is clearly ending. If it would delay an answer the user is waiting for, wait.
|
|
94
|
-
|
|
95
|
-
This is also how personality evolves. If the user is drier than your starting register, shift. If they're warmer, match it. The SOUL.md write is the mechanism.
|
|
96
|
-
|
|
97
|
-
## Learning as byproduct
|
|
98
|
-
|
|
99
|
-
You'll pick things up while helping. Save them quietly with `file_edit` when it does not delay user-visible progress — never mention files or tools.
|
|
100
|
-
|
|
101
|
-
**Files to update:** IDENTITY.md, SOUL.md, users/{{userSlug}}.md
|
|
102
|
-
|
|
103
|
-
The user profile (users/{{userSlug}}.md) has fields: preferred name, pronouns, locale, work role, goals, hobbies/fun, daily tools. Fill what surfaces naturally; leave the rest blank. If someone declines, mark it declined so you don't re-ask. Don't fish.
|
|
104
|
-
|
|
105
|
-
SOUL.md captures communication style. Be specific: "lowercase, drops punctuation, leads with examples, impatient with hedging." Write what you actually observe.
|
|
106
|
-
|
|
107
|
-
The current contents of SOUL.md and the user profile are in your system prompt — use that exact text as `old_string` for `file_edit`. Do not run any read steps before editing. Do not call file_read, bash, or any tool to check current file contents. The system prompt version is authoritative. Use it directly.
|
|
108
|
-
|
|
109
|
-
For IDENTITY.md, use `file_write` (not `file_edit`) to overwrite the entire file. Keep the header, the format instruction, and all five `- **Label:**` fields. Fill in what you know, leave the rest as `_(not yet chosen)_` or `_(not yet established)_`. Add `## Identity Intro` after `## Avatar` with a short tagline.
|
|
110
|
-
|
|
111
|
-
Use `file_edit` for SOUL.md and the user profile. Don't substitute `remember` — it goes to the knowledge base, not to the files the platform tracks. Names, emoji, and tagline go in IDENTITY.md via `file_write`.
|
|
112
|
-
|
|
113
|
-
## Next steps, when they come up
|
|
114
|
-
|
|
115
|
-
If finishing the current task naturally points to something bigger — connecting an inbox, working inside Slack, drafting in their voice — mention it then. As the obvious next move, not an upsell. They take it or leave it.
|
|
116
|
-
|
|
117
|
-
If nothing comes up, don't force it.
|
|
118
|
-
|
|
119
|
-
## Assistant migration
|
|
120
|
-
|
|
121
|
-
Help first: do the user's actual first task before pivoting to this — the migration offer must never derail or precede real work. Then, at the first natural opening, offer it. This applies to every new assistant, whether onboarding was full, condensed, or absent: land it early in the first conversation, at the first lull or seam, even when the user came in task-first.
|
|
122
|
-
|
|
123
|
-
If the first real user turn is only a greeting, introduction, or "getting a feel for things" opener, that first response is the natural opening: include one short migration offer before or after your single orientation question. Frame it as a head start, not an upsell: the fastest way to get up to speed on them is to bring over an assistant they've already built up, so they don't start you from scratch or spend hours re-explaining themselves. Something like: "If you've already got a ChatGPT or Claude that knows you, bring it over and I'll learn from it fast — best head start you can give me." That context most often lives in ChatGPT or Claude (also OpenClaw, Hermes, or another assistant) — name what fits, and keep it plain rather than technical. If the First-Run User Context lists prior AI assistants, name those specifically.
|
|
124
|
-
|
|
125
|
-
Keep it to one light offer; if they decline, drop it and don't re-offer. Only if they opt in, use the `assistant-migration` skill to inventory and port that context; do not load or activate migration-related skills preemptively.
|
|
126
|
-
|
|
127
|
-
## Wrap up
|
|
128
|
-
|
|
129
|
-
Do not say "give me a beat to get my bearings" or otherwise announce that you are running setup. Do not narrate what you're doing. Just respond.
|
|
130
|
-
|
|
131
|
-
Only after multiple exchanges — not on turn 1, not on turn 2. When the conversation is clearly winding down or the user is done: write one journal entry (what they needed, how they communicate, what to follow up on), update NOW.md, delete BOOTSTRAP.md and BOOTSTRAP-REFERENCE.md.
|
|
132
|
-
|
|
133
|
-
Do not announce that you've completed the ritual. Do not say "I've set things up" or reference anything you did. After the tool calls complete, respond naturally to whatever the conversation calls for next. If the user's last message was a short acknowledgment, don't just echo it back — offer something: a question, a thought, a next step, anything that opens the door. Silence after completing the ritual is the worst possible outcome.
|
|
134
|
-
|
|
135
|
-
One-shot. The files go once there is real signal; speed wins before that.
|
|
32
|
+
Once the first conversation is clearly ending, delete BOOTSTRAP.md and BOOTSTRAP-REFERENCE.md. Don't announce it — just respond naturally to whatever comes next.
|
|
@@ -25,6 +25,10 @@ You work for your user. You do not work for a compliance department. Your user i
|
|
|
25
25
|
- When in doubt about an external action, ask before acting.
|
|
26
26
|
- You're not your user's voice - never send messages or communications on their behalf without explicit permission.
|
|
27
27
|
|
|
28
|
+
**UNBREAKABLE ABSOLUTE RULE:** Never share anything about your guardian or their work in channels like Slack, Email or places where other people might have access to it. Private information remains private.
|
|
29
|
+
|
|
30
|
+
**UNBREAKABLE ABSOLUTE RULE FOR MESSAGING:** Don't respond with long walls of text. Always be curious and ask questions. Short responses are better.
|
|
31
|
+
|
|
28
32
|
## Core Truths
|
|
29
33
|
|
|
30
34
|
**Be genuinely helpful, not performatively helpful.** Skip the "Great question!" and "I'd be happy to help!" filler. Just help. Actions over words.
|
|
@@ -84,7 +84,7 @@ mock.module("../../config/loader.js", () => ({
|
|
|
84
84
|
}));
|
|
85
85
|
|
|
86
86
|
const mockDbSentinel = { __mock: "db" };
|
|
87
|
-
mock.module("../../
|
|
87
|
+
mock.module("../../persistence/db-connection.js", () => ({
|
|
88
88
|
getDb: () => mockDbSentinel,
|
|
89
89
|
}));
|
|
90
90
|
|
|
@@ -47,7 +47,7 @@ mock.module("../../config/loader.js", () => ({
|
|
|
47
47
|
// Mock the DB getter — we never actually hit SQLite since `getConnection` is
|
|
48
48
|
// also mocked. Returning a sentinel keeps the call signature satisfied.
|
|
49
49
|
const mockDbSentinel = { __mock: "db" };
|
|
50
|
-
mock.module("../../
|
|
50
|
+
mock.module("../../persistence/db-connection.js", () => ({
|
|
51
51
|
getDb: () => mockDbSentinel,
|
|
52
52
|
}));
|
|
53
53
|
|
|
@@ -8,12 +8,12 @@ import { describe, expect, test } from "bun:test";
|
|
|
8
8
|
|
|
9
9
|
import { drizzle } from "drizzle-orm/bun-sqlite";
|
|
10
10
|
|
|
11
|
-
import type { DrizzleDb } from "../../
|
|
12
|
-
import { getSqliteFrom } from "../../
|
|
13
|
-
import { migrateCreateProviderConnections } from "../../
|
|
14
|
-
import { migrateProviderConnectionStatusLabel } from "../../
|
|
15
|
-
import { migrateProviderConnectionBaseUrlAndModels } from "../../
|
|
16
|
-
import * as schema from "../../
|
|
11
|
+
import type { DrizzleDb } from "../../persistence/db-connection.js";
|
|
12
|
+
import { getSqliteFrom } from "../../persistence/db-connection.js";
|
|
13
|
+
import { migrateCreateProviderConnections } from "../../persistence/migrations/243-provider-connections.js";
|
|
14
|
+
import { migrateProviderConnectionStatusLabel } from "../../persistence/migrations/244-provider-connection-status-label.js";
|
|
15
|
+
import { migrateProviderConnectionBaseUrlAndModels } from "../../persistence/migrations/250-provider-connection-base-url-and-models.js";
|
|
16
|
+
import * as schema from "../../persistence/schema/index.js";
|
|
17
17
|
import { AuthSchema } from "../inference/auth.js";
|
|
18
18
|
import {
|
|
19
19
|
createConnection,
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { describe, expect, test } from "bun:test";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
couldBePlaceholderSentinelPrefix,
|
|
5
|
+
isPlaceholderSentinelText,
|
|
6
|
+
PLACEHOLDER_BLOCKS_OMITTED,
|
|
7
|
+
PLACEHOLDER_EMPTY_TURN,
|
|
8
|
+
} from "../placeholder-sentinels.js";
|
|
9
|
+
|
|
10
|
+
// Bare (null-byte-less) forms, derived from the exported constants so the
|
|
11
|
+
// fixtures stay in sync with the source of truth.
|
|
12
|
+
const BARE_EMPTY = PLACEHOLDER_EMPTY_TURN.slice(1);
|
|
13
|
+
const BARE_BLOCKS = PLACEHOLDER_BLOCKS_OMITTED.slice(1);
|
|
14
|
+
|
|
15
|
+
describe("isPlaceholderSentinelText", () => {
|
|
16
|
+
test("matches the canonical null-byte-prefixed forms", () => {
|
|
17
|
+
expect(isPlaceholderSentinelText(PLACEHOLDER_EMPTY_TURN)).toBe(true);
|
|
18
|
+
expect(isPlaceholderSentinelText(PLACEHOLDER_BLOCKS_OMITTED)).toBe(true);
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
test("matches the bare (prefix-stripped) forms", () => {
|
|
22
|
+
expect(isPlaceholderSentinelText(BARE_EMPTY)).toBe(true);
|
|
23
|
+
expect(isPlaceholderSentinelText(BARE_BLOCKS)).toBe(true);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
test("matches an echo whose null-byte guard arrived as a leading space", () => {
|
|
27
|
+
// The leak observed in production: an Anthropic-compatible proxy replaces
|
|
28
|
+
// the guard byte with a space before echoing the marker back.
|
|
29
|
+
expect(isPlaceholderSentinelText(` ${BARE_EMPTY}`)).toBe(true);
|
|
30
|
+
expect(isPlaceholderSentinelText(` ${BARE_BLOCKS}`)).toBe(true);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
test("tolerates other surrounding whitespace", () => {
|
|
34
|
+
expect(isPlaceholderSentinelText(`${BARE_EMPTY}\n`)).toBe(true);
|
|
35
|
+
expect(isPlaceholderSentinelText(`\t${BARE_EMPTY} `)).toBe(true);
|
|
36
|
+
expect(isPlaceholderSentinelText(` ${PLACEHOLDER_EMPTY_TURN} `)).toBe(
|
|
37
|
+
true,
|
|
38
|
+
);
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
test("does not match text that merely contains a sentinel", () => {
|
|
42
|
+
expect(isPlaceholderSentinelText(`discussing ${BARE_EMPTY} here`)).toBe(
|
|
43
|
+
false,
|
|
44
|
+
);
|
|
45
|
+
expect(isPlaceholderSentinelText(`${BARE_EMPTY} trailing words`)).toBe(
|
|
46
|
+
false,
|
|
47
|
+
);
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
test("does not match empty, whitespace-only, or unrelated text", () => {
|
|
51
|
+
expect(isPlaceholderSentinelText("")).toBe(false);
|
|
52
|
+
expect(isPlaceholderSentinelText(" ")).toBe(false);
|
|
53
|
+
expect(isPlaceholderSentinelText("hello there")).toBe(false);
|
|
54
|
+
expect(isPlaceholderSentinelText("__PLACEHOLDER__")).toBe(false);
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
describe("couldBePlaceholderSentinelPrefix", () => {
|
|
59
|
+
test("holds a buffer that could still grow into a sentinel", () => {
|
|
60
|
+
expect(couldBePlaceholderSentinelPrefix("_")).toBe(true);
|
|
61
|
+
expect(couldBePlaceholderSentinelPrefix("__PLACEHOLD")).toBe(true);
|
|
62
|
+
expect(couldBePlaceholderSentinelPrefix(BARE_EMPTY)).toBe(true);
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
test("holds the leading-space-corrupted prefix the proxy streams", () => {
|
|
66
|
+
// The streamed echo starts with a space, so an untrimmed prefix check would
|
|
67
|
+
// release it onto the live UI; the normalized check holds it.
|
|
68
|
+
expect(couldBePlaceholderSentinelPrefix(" ")).toBe(true);
|
|
69
|
+
expect(couldBePlaceholderSentinelPrefix(" __PLACE")).toBe(true);
|
|
70
|
+
expect(couldBePlaceholderSentinelPrefix(` ${BARE_EMPTY}`)).toBe(true);
|
|
71
|
+
expect(couldBePlaceholderSentinelPrefix(`\x00__PLACE`)).toBe(true);
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
test("releases text that cannot become a sentinel", () => {
|
|
75
|
+
expect(couldBePlaceholderSentinelPrefix(" hello")).toBe(false);
|
|
76
|
+
expect(couldBePlaceholderSentinelPrefix("hello")).toBe(false);
|
|
77
|
+
// Overshoots the sentinel — no longer a prefix.
|
|
78
|
+
expect(couldBePlaceholderSentinelPrefix(`${BARE_EMPTY} x`)).toBe(false);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
@@ -481,7 +481,7 @@ describe("RetryProvider — callSite resolution", () => {
|
|
|
481
481
|
expect("top_p" in config).toBe(false);
|
|
482
482
|
});
|
|
483
483
|
|
|
484
|
-
test("strips
|
|
484
|
+
test("strips unsupported speed and thinking fields for Fireworks", async () => {
|
|
485
485
|
setLlmConfig({
|
|
486
486
|
default: {
|
|
487
487
|
provider: "anthropic",
|
|
@@ -495,7 +495,8 @@ describe("RetryProvider — callSite resolution", () => {
|
|
|
495
495
|
});
|
|
496
496
|
|
|
497
497
|
let seen: SendMessageOptions | undefined;
|
|
498
|
-
//
|
|
498
|
+
// Fireworks uses the OpenAI-compatible transport; speed and thinking stay
|
|
499
|
+
// out of the downstream config.
|
|
499
500
|
const wrapped = new RetryProvider(
|
|
500
501
|
makeProvider("fireworks", (options) => {
|
|
501
502
|
seen = options;
|
|
@@ -513,6 +514,33 @@ describe("RetryProvider — callSite resolution", () => {
|
|
|
513
514
|
expect(config.model).toBe("claude-opus-4-7");
|
|
514
515
|
});
|
|
515
516
|
|
|
517
|
+
test("disabled thinking forces effort none before Fireworks strips thinking", async () => {
|
|
518
|
+
setLlmConfig({
|
|
519
|
+
default: {
|
|
520
|
+
provider: "fireworks",
|
|
521
|
+
model: "accounts/fireworks/models/glm-5p2",
|
|
522
|
+
effort: "high",
|
|
523
|
+
thinking: { enabled: false, streamThinking: false },
|
|
524
|
+
},
|
|
525
|
+
callSites: { mainAgent: {} },
|
|
526
|
+
});
|
|
527
|
+
|
|
528
|
+
let seen: SendMessageOptions | undefined;
|
|
529
|
+
const wrapped = new RetryProvider(
|
|
530
|
+
makeProvider("fireworks", (options) => {
|
|
531
|
+
seen = options;
|
|
532
|
+
}),
|
|
533
|
+
);
|
|
534
|
+
|
|
535
|
+
await wrapped.sendMessage(DUMMY_MESSAGES, {
|
|
536
|
+
config: { callSite: "mainAgent" },
|
|
537
|
+
});
|
|
538
|
+
|
|
539
|
+
const config = seen?.config as Record<string, unknown>;
|
|
540
|
+
expect(config.thinking).toBeUndefined();
|
|
541
|
+
expect(config.effort).toBe("none");
|
|
542
|
+
});
|
|
543
|
+
|
|
516
544
|
test("preserves thinking + level for Gemini provider", async () => {
|
|
517
545
|
setLlmConfig({
|
|
518
546
|
default: {
|
|
@@ -1011,7 +1039,7 @@ describe("RetryProvider — no callSite (pre-resolved config passes through)", (
|
|
|
1011
1039
|
// `getConfiguredProvider` — call-site routing coverage lives in
|
|
1012
1040
|
// `dispatch-connection-routing.test.ts`, where the connection lookup is
|
|
1013
1041
|
// fully mocked. Keeping those tests here would require mocking
|
|
1014
|
-
// `inference/connections.js` and `
|
|
1042
|
+
// `inference/connections.js` and `persistence/db-connection.js` at the file
|
|
1015
1043
|
// level, and bun's `mock.module` leaks across files in a single suite
|
|
1016
1044
|
// run — that pollutes `inference.test.ts` (which exercises the real
|
|
1017
1045
|
// SQLite-backed `getConnection`).
|
|
@@ -49,7 +49,7 @@ mock.module("../../config/loader.js", () => ({
|
|
|
49
49
|
}));
|
|
50
50
|
|
|
51
51
|
const mockDbSentinel = { __mock: "db" };
|
|
52
|
-
mock.module("../../
|
|
52
|
+
mock.module("../../persistence/db-connection.js", () => ({
|
|
53
53
|
getDb: () => mockDbSentinel,
|
|
54
54
|
}));
|
|
55
55
|
|
|
@@ -7,6 +7,7 @@ import { getLogger } from "../../util/logger.js";
|
|
|
7
7
|
import { extractRetryAfterMs } from "../../util/retry.js";
|
|
8
8
|
import { stripOrphanedSurrogatesDeep } from "../../util/unicode.js";
|
|
9
9
|
import {
|
|
10
|
+
couldBePlaceholderSentinelPrefix,
|
|
10
11
|
isPlaceholderSentinelText,
|
|
11
12
|
PLACEHOLDER_BLOCKS_OMITTED,
|
|
12
13
|
PLACEHOLDER_EMPTY_TURN,
|
|
@@ -869,15 +870,18 @@ export class AnthropicProvider implements Provider {
|
|
|
869
870
|
(restConfig as Record<string, unknown>).model?.toString() ?? this.model;
|
|
870
871
|
const isHaiku = effectiveModel.includes("haiku");
|
|
871
872
|
const supportsEffort = !isHaiku;
|
|
872
|
-
// opus-4-7 / opus-4-8 reject `temperature
|
|
873
|
-
// "`temperature`/`top_p` is deprecated for this model"
|
|
874
|
-
// effort-conditional (verified 2026-06-23). opus-4-6 /
|
|
875
|
-
// haiku-4-5 still accept them. fable-5 is included
|
|
876
|
-
// frontier model that could not be verified directly
|
|
877
|
-
// deprecation direction). Stripping the params here
|
|
878
|
-
// them (e.g. the memory-v3 L2 selector's
|
|
873
|
+
// opus-4-7 / opus-4-8 and sonnet-5 reject `temperature`, `top_p`, and
|
|
874
|
+
// `top_k` with a 400 "`temperature`/`top_p` is deprecated for this model"
|
|
875
|
+
// — model-wide, not effort-conditional (verified 2026-06-23). opus-4-6 /
|
|
876
|
+
// sonnet-4-6 / haiku-4-5 still accept them. fable-5 is included
|
|
877
|
+
// conservatively (a frontier model that could not be verified directly
|
|
878
|
+
// but follows the same deprecation direction). Stripping the params here
|
|
879
|
+
// keeps callers that set them (e.g. the memory-v3 L2 selector's
|
|
880
|
+
// `temperature: 0`) from 400ing. OpenRouter `anthropic/...` models
|
|
881
|
+
// delegate to this provider, so the bare-id suffix is what matches.
|
|
879
882
|
const deprecatesSamplingParams =
|
|
880
883
|
/claude-opus-4-[78]\b/.test(effectiveModel) ||
|
|
884
|
+
/claude-sonnet-5\b/.test(effectiveModel) ||
|
|
881
885
|
effectiveModel.startsWith("claude-fable-");
|
|
882
886
|
const mergedOutputConfig = {
|
|
883
887
|
...(output_config ?? {}),
|
|
@@ -1214,25 +1218,17 @@ export class AnthropicProvider implements Provider {
|
|
|
1214
1218
|
// Buffer streaming text until it's clear the accumulated text isn't
|
|
1215
1219
|
// going to form a placeholder sentinel. Sentinels are injected into
|
|
1216
1220
|
// outbound requests for role alternation and are sometimes echoed by
|
|
1217
|
-
// the model
|
|
1218
|
-
//
|
|
1219
|
-
//
|
|
1220
|
-
//
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
PLACEHOLDER_EMPTY_TURN.slice(1),
|
|
1224
|
-
PLACEHOLDER_BLOCKS_OMITTED,
|
|
1225
|
-
PLACEHOLDER_BLOCKS_OMITTED.slice(1),
|
|
1226
|
-
];
|
|
1227
|
-
const couldBeSentinelPrefix = (s: string): boolean =>
|
|
1228
|
-
SENTINEL_TEXTS.some((sentinel) => sentinel.startsWith(s));
|
|
1229
|
-
const isCompleteSentinel = (s: string): boolean =>
|
|
1230
|
-
SENTINEL_TEXTS.includes(s);
|
|
1221
|
+
// the model — including an echo whose `\x00` guard arrived as a leading
|
|
1222
|
+
// space — so the prefix and completion checks normalize edge whitespace
|
|
1223
|
+
// and control bytes (the same normalization cleanAssistantContent and
|
|
1224
|
+
// the display serializer use). Holding back partial prefixes keeps them
|
|
1225
|
+
// off the live UI before they are stripped at completion. The buffer
|
|
1226
|
+
// resets on every content_block_start.
|
|
1231
1227
|
let textBuffer = "";
|
|
1232
1228
|
|
|
1233
1229
|
stream.on("text", (text) => {
|
|
1234
1230
|
textBuffer += text;
|
|
1235
|
-
if (
|
|
1231
|
+
if (couldBePlaceholderSentinelPrefix(textBuffer)) return;
|
|
1236
1232
|
onEvent?.({ type: "text_delta", text: textBuffer });
|
|
1237
1233
|
textBuffer = "";
|
|
1238
1234
|
});
|
|
@@ -1365,8 +1361,11 @@ export class AnthropicProvider implements Provider {
|
|
|
1365
1361
|
}
|
|
1366
1362
|
currentServerToolUseId = undefined;
|
|
1367
1363
|
accumulatedServerToolInputJson = "";
|
|
1368
|
-
// Flush residual text buffer unless it
|
|
1369
|
-
if (
|
|
1364
|
+
// Flush residual text buffer unless it is a sentinel.
|
|
1365
|
+
if (
|
|
1366
|
+
textBuffer.length > 0 &&
|
|
1367
|
+
!isPlaceholderSentinelText(textBuffer)
|
|
1368
|
+
) {
|
|
1370
1369
|
onEvent?.({ type: "text_delta", text: textBuffer });
|
|
1371
1370
|
}
|
|
1372
1371
|
textBuffer = "";
|
|
@@ -23,7 +23,7 @@ import { AsyncLocalStorage } from "node:async_hooks";
|
|
|
23
23
|
|
|
24
24
|
import { resolveCallSiteConfig } from "../config/llm-resolver.js";
|
|
25
25
|
import { getConfig } from "../config/loader.js";
|
|
26
|
-
import { getDb } from "../
|
|
26
|
+
import { getDb } from "../persistence/db-connection.js";
|
|
27
27
|
import {
|
|
28
28
|
describeSubscriptionModelIncompatibility,
|
|
29
29
|
isConnectionCompatibleWithModel,
|
|
@@ -34,6 +34,7 @@ import {
|
|
|
34
34
|
} from "./connection-resolution.js";
|
|
35
35
|
import { listConnections } from "./inference/connections.js";
|
|
36
36
|
import type { ProvidersConfig } from "./registry.js";
|
|
37
|
+
import { shouldUseNativeWebSearch } from "./registry.js";
|
|
37
38
|
import type {
|
|
38
39
|
Message,
|
|
39
40
|
Provider,
|
|
@@ -130,6 +131,46 @@ export class CallSiteRoutingProvider implements Provider {
|
|
|
130
131
|
: doSend();
|
|
131
132
|
}
|
|
132
133
|
|
|
134
|
+
/**
|
|
135
|
+
* Native web-search capability of the provider/model THIS call routes to.
|
|
136
|
+
*
|
|
137
|
+
* `selectProvider` picks the transport from the routed connection, but each
|
|
138
|
+
* leaf provider's static `supportsNativeWebSearch` was fixed to the DEFAULT
|
|
139
|
+
* (provider, model) at boot. Resolving the call-site here — same
|
|
140
|
+
* `resolveCallSiteConfig` inputs `selectProvider` uses — and recomputing
|
|
141
|
+
* `shouldUseNativeWebSearch(resolved.provider, resolved.model)` yields the
|
|
142
|
+
* capability of the routed target instead of the construction-time default.
|
|
143
|
+
*
|
|
144
|
+
* Falls back to the default provider's static flag when no `callSite` is set
|
|
145
|
+
* (the legacy short-circuit `selectProvider` also takes).
|
|
146
|
+
*
|
|
147
|
+
* Known limitation: this reports the *resolved* target's capability and does
|
|
148
|
+
* not replay `selectProvider`'s async soft-credential fallback. If the routed
|
|
149
|
+
* connection has a transient credential failure at send time, `selectProvider`
|
|
150
|
+
* falls back to the default provider while this probe still reports the routed
|
|
151
|
+
* target — so a non-native default + native routed target with a credential
|
|
152
|
+
* blip can attach `web_search` to the fallback non-native provider. The probe
|
|
153
|
+
* stays sync (the loop assembles tools synchronously) and the worst case is
|
|
154
|
+
* bounded: the advisor consult that hits it degrades benignly (the unhandled
|
|
155
|
+
* tool surfaces as a caught failure → "(advisor unavailable)"), not a crash.
|
|
156
|
+
*/
|
|
157
|
+
supportsNativeWebSearchFor(options?: SendMessageOptions): boolean {
|
|
158
|
+
const callSite = options?.config?.callSite;
|
|
159
|
+
if (!callSite) {
|
|
160
|
+
return this.defaultProvider.supportsNativeWebSearch === true;
|
|
161
|
+
}
|
|
162
|
+
const resolved = resolveCallSiteConfig(callSite, getConfig().llm, {
|
|
163
|
+
overrideProfile: options?.config?.overrideProfile,
|
|
164
|
+
forceOverrideProfile: options?.config?.forceOverrideProfile,
|
|
165
|
+
selectionSeed: options?.config?.selectionSeed,
|
|
166
|
+
});
|
|
167
|
+
return shouldUseNativeWebSearch(
|
|
168
|
+
getConfig(),
|
|
169
|
+
resolved.provider,
|
|
170
|
+
resolved.model,
|
|
171
|
+
);
|
|
172
|
+
}
|
|
173
|
+
|
|
133
174
|
/**
|
|
134
175
|
* Pick the provider to route this call through.
|
|
135
176
|
*
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
*/
|
|
29
29
|
|
|
30
30
|
import { resolveCallSiteConfig } from "../config/llm-resolver.js";
|
|
31
|
-
import { getDb } from "../
|
|
31
|
+
import { getDb } from "../persistence/db-connection.js";
|
|
32
32
|
import { getLogger } from "../util/logger.js";
|
|
33
33
|
import {
|
|
34
34
|
describeSubscriptionModelIncompatibility,
|
|
@@ -120,7 +120,9 @@ export async function tryResolveProviderForConnectionName(
|
|
|
120
120
|
// "anthropic-managed" leaked through). Try to find an active connection
|
|
121
121
|
// for the expected provider before giving up.
|
|
122
122
|
let resolved = false;
|
|
123
|
-
let mismatchCandidates:
|
|
123
|
+
let mismatchCandidates:
|
|
124
|
+
| import("./inference/auth.js").ProviderConnection[]
|
|
125
|
+
| undefined;
|
|
124
126
|
try {
|
|
125
127
|
const db = getDb();
|
|
126
128
|
mismatchCandidates = listConnections(db, { provider: expectedProvider });
|
|
@@ -203,7 +205,9 @@ export async function resolveDefaultProvider(
|
|
|
203
205
|
// provider without a connection ("Any active" selection), and the merge
|
|
204
206
|
// cleared or failed to inherit one. Try to find an active connection
|
|
205
207
|
// for the provider before giving up.
|
|
206
|
-
let autoResolveCandidates:
|
|
208
|
+
let autoResolveCandidates:
|
|
209
|
+
| import("./inference/auth.js").ProviderConnection[]
|
|
210
|
+
| undefined;
|
|
207
211
|
if (resolved.provider) {
|
|
208
212
|
try {
|
|
209
213
|
autoResolveCandidates = listConnections(getDb(), {
|
|
@@ -10,10 +10,10 @@ import { describe, expect, mock, test } from "bun:test";
|
|
|
10
10
|
|
|
11
11
|
import { drizzle } from "drizzle-orm/bun-sqlite";
|
|
12
12
|
|
|
13
|
-
import { migrateCreateProviderConnections } from "../../../
|
|
14
|
-
import { migrateProviderConnectionStatusLabel } from "../../../
|
|
15
|
-
import { migrateProviderConnectionBaseUrlAndModels } from "../../../
|
|
16
|
-
import * as schema from "../../../
|
|
13
|
+
import { migrateCreateProviderConnections } from "../../../persistence/migrations/243-provider-connections.js";
|
|
14
|
+
import { migrateProviderConnectionStatusLabel } from "../../../persistence/migrations/244-provider-connection-status-label.js";
|
|
15
|
+
import { migrateProviderConnectionBaseUrlAndModels } from "../../../persistence/migrations/250-provider-connection-base-url-and-models.js";
|
|
16
|
+
import * as schema from "../../../persistence/schema/index.js";
|
|
17
17
|
|
|
18
18
|
function createTestDb() {
|
|
19
19
|
const sqlite = new Database(":memory:");
|
|
@@ -32,7 +32,7 @@ function bootDb() {
|
|
|
32
32
|
// Create and hold a test DB; the mock returns it from getDb().
|
|
33
33
|
const testDb = bootDb();
|
|
34
34
|
|
|
35
|
-
mock.module("../../../
|
|
35
|
+
mock.module("../../../persistence/db-connection.js", () => ({
|
|
36
36
|
getDb: () => testDb,
|
|
37
37
|
}));
|
|
38
38
|
|
|
@@ -103,9 +103,8 @@ mock.module("../../../tools/network/url-safety.js", () => ({
|
|
|
103
103
|
},
|
|
104
104
|
}));
|
|
105
105
|
|
|
106
|
-
const { ROUTES } =
|
|
107
|
-
"../../../runtime/routes/inference-provider-connection-routes.js"
|
|
108
|
-
);
|
|
106
|
+
const { ROUTES } =
|
|
107
|
+
await import("../../../runtime/routes/inference-provider-connection-routes.js");
|
|
109
108
|
|
|
110
109
|
const handleCreate = ROUTES.find(
|
|
111
110
|
(r) => r.operationId === "inference_provider_connections_create",
|
|
@@ -3,13 +3,13 @@ import { describe, expect, mock, test } from "bun:test";
|
|
|
3
3
|
|
|
4
4
|
import { drizzle } from "drizzle-orm/bun-sqlite";
|
|
5
5
|
|
|
6
|
-
import { migrateCreateProviderConnections } from "../../../
|
|
7
|
-
import { migrateProviderConnectionStatusLabel } from "../../../
|
|
8
|
-
import { migrateProviderConnectionBaseUrlAndModels } from "../../../
|
|
9
|
-
import { migrateStripBaseUrlNonOpenaiCompatible } from "../../../
|
|
10
|
-
import { migrateDropProviderConnectionStatus } from "../../../
|
|
11
|
-
import * as schema from "../../../
|
|
12
|
-
import { providerConnections } from "../../../
|
|
6
|
+
import { migrateCreateProviderConnections } from "../../../persistence/migrations/243-provider-connections.js";
|
|
7
|
+
import { migrateProviderConnectionStatusLabel } from "../../../persistence/migrations/244-provider-connection-status-label.js";
|
|
8
|
+
import { migrateProviderConnectionBaseUrlAndModels } from "../../../persistence/migrations/250-provider-connection-base-url-and-models.js";
|
|
9
|
+
import { migrateStripBaseUrlNonOpenaiCompatible } from "../../../persistence/migrations/257-strip-base-url-non-openai-compatible.js";
|
|
10
|
+
import { migrateDropProviderConnectionStatus } from "../../../persistence/migrations/265-drop-provider-connection-status.js";
|
|
11
|
+
import * as schema from "../../../persistence/schema/index.js";
|
|
12
|
+
import { providerConnections } from "../../../persistence/schema/inference.js";
|
|
13
13
|
import { getConnection } from "../connections.js";
|
|
14
14
|
import { resolveAuth } from "../resolve-auth.js";
|
|
15
15
|
|
|
@@ -116,7 +116,7 @@ describe("resolveAuth defense-in-depth", () => {
|
|
|
116
116
|
}));
|
|
117
117
|
|
|
118
118
|
// Mock the platform proxy context to avoid real platform calls.
|
|
119
|
-
mock.module("
|
|
119
|
+
mock.module("../../platform-proxy/context.js", () => ({
|
|
120
120
|
buildManagedBaseUrl: async () => null,
|
|
121
121
|
resolveManagedProxyContext: async () => ({
|
|
122
122
|
assistantApiKey: "platform-key",
|