@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.
Files changed (2236) hide show
  1. package/ARCHITECTURE.md +13 -13
  2. package/Dockerfile +5 -15
  3. package/bun.lock +165 -3
  4. package/docs/architecture/memory.md +26 -0
  5. package/eslint-rules/cli-no-daemon-internals.js +9 -8
  6. package/knip.json +0 -1
  7. package/node_modules/@vellumai/gateway-client/src/gateway-ipc-contracts.ts +18 -0
  8. package/node_modules/@vellumai/service-contracts/src/__tests__/package-boundary.test.ts +1 -5
  9. package/openapi.yaml +1057 -88
  10. package/package.json +8 -3
  11. package/scripts/generate-openapi.ts +149 -62
  12. package/src/__tests__/acp-session.test.ts +2 -2
  13. package/src/__tests__/activation-early-marking.test.ts +4 -4
  14. package/src/__tests__/actor-token-service.test.ts +2 -3
  15. package/src/__tests__/actor-trust-resolver-address-fallback.test.ts +83 -31
  16. package/src/__tests__/agent-loop-compaction-events.test.ts +1 -0
  17. package/src/__tests__/agent-loop-compaction-strip.test.ts +2 -0
  18. package/src/__tests__/agent-loop-exit-reason.test.ts +4 -1
  19. package/src/__tests__/agent-loop-override-profile.test.ts +2 -2
  20. package/src/__tests__/agent-loop-regrowth-guard.test.ts +8 -0
  21. package/src/__tests__/agent-loop-set-system-prompt.test.ts +139 -0
  22. package/src/__tests__/agent-loop.test.ts +1 -0
  23. package/src/__tests__/agent-wake-disk-pressure-callsite.test.ts +3 -3
  24. package/src/__tests__/agent-wake-override-profile.test.ts +3 -3
  25. package/src/__tests__/annotate-activity-metadata.test.ts +4 -4
  26. package/src/__tests__/annotate-risk-options.test.ts +4 -4
  27. package/src/__tests__/anthropic-provider.test.ts +53 -2
  28. package/src/__tests__/app-builder-tool-scripts.test.ts +2 -2
  29. package/src/__tests__/app-bundler.test.ts +1 -1
  30. package/src/__tests__/app-conversation-ids-backfill.test.ts +4 -4
  31. package/src/__tests__/app-conversation-ids.test.ts +1 -1
  32. package/src/__tests__/app-dir-path-guard.test.ts +2 -2
  33. package/src/__tests__/app-executors.test.ts +1 -1
  34. package/src/__tests__/app-git-history.test.ts +2 -2
  35. package/src/__tests__/app-git-service.test.ts +2 -2
  36. package/src/__tests__/app-routes-csp.test.ts +2 -2
  37. package/src/__tests__/app-source-watcher.test.ts +1 -1
  38. package/src/__tests__/app-store-dir-names.test.ts +1 -1
  39. package/src/__tests__/approval-cascade.test.ts +7 -7
  40. package/src/__tests__/approval-interception-trust-gates.test.ts +1 -1
  41. package/src/__tests__/approval-primitive.test.ts +3 -3
  42. package/src/__tests__/approval-routes-http.test.ts +2 -2
  43. package/src/__tests__/assistant-event-hub-machine-name.test.ts +1 -1
  44. package/src/__tests__/assistant-events-sse-hardening.test.ts +2 -2
  45. package/src/__tests__/assistant-events-sse-shed.test.ts +2 -2
  46. package/src/__tests__/assistant-stream-state.test.ts +3 -76
  47. package/src/__tests__/attachment-upload-trusted-source.test.ts +4 -2
  48. package/src/__tests__/attachments-store.test.ts +9 -6
  49. package/src/__tests__/audit-log-rotation.test.ts +6 -4
  50. package/src/__tests__/auth-fallback-events-store.test.ts +4 -4
  51. package/src/__tests__/auto-analysis-end-to-end.test.ts +13 -9
  52. package/src/__tests__/background-shell-bash.test.ts +34 -0
  53. package/src/__tests__/background-shell-host-bash.test.ts +12 -0
  54. package/src/__tests__/background-tool-registry.test.ts +97 -0
  55. package/src/__tests__/background-tool-routes.test.ts +72 -1
  56. package/src/__tests__/background-workers-disk-pressure.test.ts +17 -10
  57. package/src/__tests__/btw-routes.test.ts +4 -5
  58. package/src/__tests__/build-persisted-content.test.ts +4 -4
  59. package/src/__tests__/call-controller.test.ts +6 -6
  60. package/src/__tests__/call-conversation-messages.test.ts +4 -4
  61. package/src/__tests__/call-domain.test.ts +5 -5
  62. package/src/__tests__/call-pointer-messages.test.ts +5 -5
  63. package/src/__tests__/call-recovery.test.ts +3 -3
  64. package/src/__tests__/call-routes-http.test.ts +3 -3
  65. package/src/__tests__/call-store.test.ts +3 -3
  66. package/src/__tests__/cancel-resolves-conversation-key.test.ts +2 -3
  67. package/src/__tests__/canonical-guardian-store.test.ts +3 -3
  68. package/src/__tests__/channel-approval-routes.test.ts +30 -33
  69. package/src/__tests__/channel-delivery-store.test.ts +36 -8
  70. package/src/__tests__/channel-guardian.test.ts +62 -54
  71. package/src/__tests__/channel-inbound-disk-pressure.test.ts +15 -23
  72. package/src/__tests__/channel-reply-delivery.test.ts +8 -4
  73. package/src/__tests__/channel-retry-sweep.test.ts +49 -4
  74. package/src/__tests__/clawhub.test.ts +4 -0
  75. package/src/__tests__/cli-memory-v2-reembed-skills.test.ts +2 -2
  76. package/src/__tests__/compaction-events.test.ts +8 -8
  77. package/src/__tests__/compaction-ledger-store.test.ts +128 -0
  78. package/src/__tests__/compaction-trail-store.test.ts +5 -5
  79. package/src/__tests__/compaction.benchmark.test.ts +5 -5
  80. package/src/__tests__/compactor-call-site-logging.test.ts +5 -5
  81. package/src/__tests__/compactor-image-manifest-trust.test.ts +7 -4
  82. package/src/__tests__/compactor-low-watermark-cut.test.ts +5 -5
  83. package/src/__tests__/compactor-preserved-tail-count.test.ts +4 -4
  84. package/src/__tests__/compactor-summary-call-truncation.test.ts +5 -5
  85. package/src/__tests__/compactor-web-search-strip.test.ts +4 -4
  86. package/src/__tests__/config-get-vision-flag.test.ts +1 -1
  87. package/src/__tests__/config-loader-backfill.test.ts +230 -102
  88. package/src/__tests__/config-set-route.test.ts +5 -2
  89. package/src/__tests__/config-watcher-cleanup-throttle.test.ts +3 -3
  90. package/src/__tests__/config-watcher-skill-reseed.test.ts +39 -112
  91. package/src/__tests__/config-watcher.test.ts +54 -31
  92. package/src/__tests__/confirmation-request-guardian-bridge.test.ts +4 -4
  93. package/src/__tests__/consult-deadline.test.ts +60 -0
  94. package/src/__tests__/contact-store-interaction-info.test.ts +156 -0
  95. package/src/__tests__/contact-store-user-file.test.ts +98 -91
  96. package/src/__tests__/contacts-relay-reads.test.ts +27 -12
  97. package/src/__tests__/contacts-tools.test.ts +2 -2
  98. package/src/__tests__/contacts-write.test.ts +2 -4
  99. package/src/__tests__/context-search-agent-protocol.test.ts +2 -2
  100. package/src/__tests__/context-search-agent-runner.test.ts +2 -2
  101. package/src/__tests__/context-search-conversations-source.test.ts +5 -5
  102. package/src/__tests__/context-search-fanout.test.ts +3 -3
  103. package/src/__tests__/context-search-memory-source.test.ts +9 -8
  104. package/src/__tests__/context-search-memory-v2-source.test.ts +9 -8
  105. package/src/__tests__/context-search-types.test.ts +2 -2
  106. package/src/__tests__/context-search-workspace-source.test.ts +2 -2
  107. package/src/__tests__/conversation-abort-tool-results.test.ts +5 -5
  108. package/src/__tests__/conversation-agent-loop-disk-pressure.test.ts +4 -3
  109. package/src/__tests__/conversation-agent-loop-inference-profile.test.ts +40 -11
  110. package/src/__tests__/conversation-agent-loop-overflow.test.ts +11 -8
  111. package/src/__tests__/conversation-agent-loop.test.ts +150 -20
  112. package/src/__tests__/conversation-analysis-routes.test.ts +4 -4
  113. package/src/__tests__/conversation-app-control-instantiation.test.ts +2 -1
  114. package/src/__tests__/conversation-app-control-lifecycle.test.ts +7 -7
  115. package/src/__tests__/conversation-attachments.test.ts +7 -4
  116. package/src/__tests__/conversation-attention-store.test.ts +4 -4
  117. package/src/__tests__/conversation-attention-telegram.test.ts +17 -16
  118. package/src/__tests__/conversation-clear-safety.test.ts +3 -4
  119. package/src/__tests__/conversation-confirmation-signals.test.ts +7 -7
  120. package/src/__tests__/conversation-crud-inference-profile.test.ts +3 -3
  121. package/src/__tests__/conversation-delete-schedule-cleanup.test.ts +25 -26
  122. package/src/__tests__/conversation-directories-parse.test.ts +1 -1
  123. package/src/__tests__/conversation-disk-view-integration.test.ts +5 -5
  124. package/src/__tests__/conversation-disk-view.test.ts +6 -6
  125. package/src/__tests__/conversation-error.test.ts +18 -18
  126. package/src/__tests__/conversation-evictor.test.ts +32 -7
  127. package/src/__tests__/conversation-fork-crud.test.ts +441 -44
  128. package/src/__tests__/conversation-fork-retrospective.test.ts +12 -10
  129. package/src/__tests__/conversation-fork-route.test.ts +6 -3
  130. package/src/__tests__/conversation-history-web-search.test.ts +8 -145
  131. package/src/__tests__/conversation-inference-profile-list.test.ts +3 -3
  132. package/src/__tests__/conversation-inference-profile-route.test.ts +3 -3
  133. package/src/__tests__/conversation-init.benchmark.test.ts +1 -1
  134. package/src/__tests__/conversation-initial-prompt.test.ts +110 -0
  135. package/src/__tests__/conversation-key-store-disk-view.test.ts +7 -4
  136. package/src/__tests__/conversation-lifecycle.test.ts +10 -13
  137. package/src/__tests__/conversation-list-source.test.ts +3 -3
  138. package/src/__tests__/conversation-load-history-repair.test.ts +4 -4
  139. package/src/__tests__/conversation-load-history-stripped.test.ts +4 -4
  140. package/src/__tests__/conversation-loop-db-lock-resilience.test.ts +191 -0
  141. package/src/__tests__/conversation-pairing.test.ts +4 -4
  142. package/src/__tests__/conversation-process-app-control-preactivation.test.ts +5 -5
  143. package/src/__tests__/conversation-process-callsite.test.ts +42 -5
  144. package/src/__tests__/conversation-provider-retry-repair.test.ts +5 -5
  145. package/src/__tests__/conversation-queue.test.ts +142 -9
  146. package/src/__tests__/conversation-routes-disk-view.test.ts +5 -5
  147. package/src/__tests__/conversation-routes-guardian-reply.test.ts +6 -6
  148. package/src/__tests__/conversation-routes-slash-commands.test.ts +57 -10
  149. package/src/__tests__/conversation-runtime-assembly.test.ts +25 -19
  150. package/src/__tests__/conversation-runtime-workspace.test.ts +8 -1
  151. package/src/__tests__/conversation-skill-tools.test.ts +155 -2
  152. package/src/__tests__/conversation-slash-queue.test.ts +6 -6
  153. package/src/__tests__/conversation-slash-unknown.test.ts +6 -6
  154. package/src/__tests__/conversation-speed-override.test.ts +7 -7
  155. package/src/__tests__/conversation-starter-routes.test.ts +2 -2
  156. package/src/__tests__/conversation-store.test.ts +6 -6
  157. package/src/__tests__/conversation-surfaces-activation-emit.test.ts +8 -5
  158. package/src/__tests__/conversation-surfaces-data-persist.test.ts +2 -2
  159. package/src/__tests__/conversation-sync-tags.test.ts +7 -4
  160. package/src/__tests__/conversation-title-service.test.ts +223 -203
  161. package/src/__tests__/conversation-tool-setup-app-refresh.test.ts +1 -1
  162. package/src/__tests__/conversation-tool-setup-attribution.test.ts +1 -1
  163. package/src/__tests__/conversation-unread-route.test.ts +2 -2
  164. package/src/__tests__/conversation-usage.test.ts +6 -6
  165. package/src/__tests__/conversation-wipe.test.ts +6 -4
  166. package/src/__tests__/conversation-workspace-cache-state.test.ts +9 -9
  167. package/src/__tests__/conversation-workspace-injection.test.ts +9 -9
  168. package/src/__tests__/conversation-workspace-tool-tracking.test.ts +9 -9
  169. package/src/__tests__/conversations-import-system-filter.test.ts +5 -5
  170. package/src/__tests__/credential-security-invariants.test.ts +4 -7
  171. package/src/__tests__/db-acp-history.test.ts +4 -4
  172. package/src/__tests__/db-activation-state-fk-cascade.test.ts +4 -4
  173. package/src/__tests__/db-activation-state.test.ts +3 -3
  174. package/src/__tests__/db-compaction-events-migration.test.ts +129 -0
  175. package/src/__tests__/db-connection-isolation.test.ts +1 -1
  176. package/src/__tests__/db-conversation-fork-lineage-migration.test.ts +3 -3
  177. package/src/__tests__/db-conversation-inference-profile-migration.test.ts +6 -6
  178. package/src/__tests__/db-drop-contact-acl-columns-migration.test.ts +159 -0
  179. package/src/__tests__/db-llm-request-log-provider-migration.test.ts +3 -3
  180. package/src/__tests__/db-memory-graph-event-date-repair.test.ts +3 -3
  181. package/src/__tests__/db-migration-rollback.test.ts +48 -43
  182. package/src/__tests__/db-proxy-transaction.test.ts +2 -2
  183. package/src/__tests__/db-rename-inference-profile-snake-case-migration.test.ts +3 -3
  184. package/src/__tests__/db-schedule-syntax-migration.test.ts +4 -4
  185. package/src/__tests__/db-slack-compaction-watermark-migration.test.ts +3 -3
  186. package/src/__tests__/db-slack-external-content-normalization.test.ts +4 -4
  187. package/src/__tests__/db-test-helpers.ts +7 -0
  188. package/src/__tests__/delete-propagation.test.ts +9 -7
  189. package/src/__tests__/deterministic-verification-control-plane.test.ts +3 -3
  190. package/src/__tests__/device-id.test.ts +38 -1
  191. package/src/__tests__/dm-backfill.test.ts +9 -7
  192. package/src/__tests__/dm-persistence.test.ts +5 -5
  193. package/src/__tests__/document-conversations.test.ts +3 -3
  194. package/src/__tests__/document-create-dedupe.test.ts +1 -1
  195. package/src/__tests__/document-find-replace.test.ts +1 -1
  196. package/src/__tests__/document-tool-security.test.ts +1 -1
  197. package/src/__tests__/document-update-default-surface.test.ts +1 -1
  198. package/src/__tests__/drop-capability-card-state-migration.test.ts +3 -5
  199. package/src/__tests__/edit-propagation.test.ts +6 -6
  200. package/src/__tests__/embedding-managed-proxy-selection.test.ts +2 -2
  201. package/src/__tests__/emit-signal-routing-intent.test.ts +2 -6
  202. package/src/__tests__/empty-state-greeting-cache.test.ts +1 -1
  203. package/src/__tests__/events-client-registration.test.ts +1 -1
  204. package/src/__tests__/exploration-drift-hook.test.ts +7 -23
  205. package/src/__tests__/file-write-tool.test.ts +3 -3
  206. package/src/__tests__/filing-service.test.ts +6 -5
  207. package/src/__tests__/followup-tools.test.ts +2 -2
  208. package/src/__tests__/get-skill-detail-audit.test.ts +1 -1
  209. package/src/__tests__/graph-extraction-event-date.test.ts +1 -1
  210. package/src/__tests__/guardian-action-sweep.test.ts +3 -3
  211. package/src/__tests__/guardian-binding-drift-heal.test.ts +48 -25
  212. package/src/__tests__/guardian-card-withdrawal.test.ts +3 -3
  213. package/src/__tests__/guardian-decision-primitive-canonical.test.ts +4 -4
  214. package/src/__tests__/guardian-dispatch.test.ts +28 -11
  215. package/src/__tests__/guardian-expiry-notifier.test.ts +4 -4
  216. package/src/__tests__/guardian-outbound-http.test.ts +3 -4
  217. package/src/__tests__/guardian-principal-id-roundtrip.test.ts +3 -3
  218. package/src/__tests__/guardian-routing-invariants.test.ts +3 -3
  219. package/src/__tests__/guardian-routing-state.test.ts +12 -14
  220. package/src/__tests__/guardian-verification-voice-binding.test.ts +4 -4
  221. package/src/__tests__/handlers-skills-memory-v2-reseed.test.ts +1 -1
  222. package/src/__tests__/handlers-user-message-approval-consumption.test.ts +3 -3
  223. package/src/__tests__/heartbeat-disk-pressure.test.ts +7 -13
  224. package/src/__tests__/heartbeat-service.test.ts +31 -19
  225. package/src/__tests__/helpers/channel-test-adapter.ts +25 -18
  226. package/src/__tests__/helpers/create-guardian-binding.ts +16 -24
  227. package/src/__tests__/helpers/derive-guardian-delivery.ts +66 -0
  228. package/src/__tests__/helpers/gateway-acl-store.ts +81 -0
  229. package/src/__tests__/helpers/mock-logger.ts +1 -0
  230. package/src/__tests__/helpers/seed-contact-channel.ts +117 -0
  231. package/src/__tests__/history-repair-hook.test.ts +1 -1
  232. package/src/__tests__/home-state-routes.test.ts +1 -1
  233. package/src/__tests__/http-conversation-lineage.test.ts +4 -4
  234. package/src/__tests__/http-user-message-parity.test.ts +8 -12
  235. package/src/__tests__/identity-routes.test.ts +113 -25
  236. package/src/__tests__/image-recovery-hook.test.ts +3 -3
  237. package/src/__tests__/inbound-invite-redemption.test.ts +87 -12
  238. package/src/__tests__/inbound-slack-persistence.test.ts +5 -5
  239. package/src/__tests__/inbound-trust-verdict.test.ts +5 -4
  240. package/src/__tests__/inference-no-mode-boot-e2e.test.ts +13 -6
  241. package/src/__tests__/inference-profile-reaper.test.ts +3 -3
  242. package/src/__tests__/inference-profile-session-handler.test.ts +3 -3
  243. package/src/__tests__/inference-profile-session-ipc.test.ts +3 -3
  244. package/src/__tests__/init-feature-flag-overrides.test.ts +1 -4
  245. package/src/__tests__/injection-block.test.ts +5 -2
  246. package/src/__tests__/injector-background-turn.test.ts +3 -5
  247. package/src/__tests__/injector-chain.test.ts +25 -16
  248. package/src/__tests__/injector-config-quarantine-notice.test.ts +3 -5
  249. package/src/__tests__/injector-disk-pressure.test.ts +10 -8
  250. package/src/__tests__/injector-document-comments.test.ts +5 -3
  251. package/src/__tests__/injector-pkb-v2-silenced.test.ts +5 -2
  252. package/src/__tests__/injector-registry-order-guard.test.ts +132 -0
  253. package/src/__tests__/injector-v3-suppression.test.ts +15 -9
  254. package/src/__tests__/install-meta.test.ts +104 -0
  255. package/src/__tests__/install-skill-routing.test.ts +1 -1
  256. package/src/__tests__/internal-telemetry-routes.test.ts +4 -4
  257. package/src/__tests__/invite-redemption-service.test.ts +274 -57
  258. package/src/__tests__/invite-routes-http.test.ts +37 -3
  259. package/src/__tests__/invite-service-ipc.test.ts +68 -5
  260. package/src/__tests__/job-handler-registry-guard.test.ts +129 -0
  261. package/src/__tests__/jobs-store-qdrant-breaker.test.ts +8 -8
  262. package/src/__tests__/jobs-store-upsert-debounced.test.ts +7 -4
  263. package/src/__tests__/lifecycle-memory-v2-seed.test.ts +9 -8
  264. package/src/__tests__/list-messages-attachments.test.ts +7 -4
  265. package/src/__tests__/list-messages-background-tool-completion.test.ts +141 -0
  266. package/src/__tests__/list-messages-client-message-id.test.ts +6 -3
  267. package/src/__tests__/list-messages-hidden-metadata.test.ts +5 -5
  268. package/src/__tests__/list-messages-page-latest.test.ts +176 -7
  269. package/src/__tests__/list-messages-queued.test.ts +223 -0
  270. package/src/__tests__/list-messages-tool-merge.test.ts +6 -3
  271. package/src/__tests__/llm-context-route-provider.test.ts +3 -3
  272. package/src/__tests__/llm-request-log-agent-loop-exit-reason.test.ts +4 -4
  273. package/src/__tests__/llm-request-log-call-site.test.ts +5 -5
  274. package/src/__tests__/llm-request-log-error-payload.test.ts +1 -1
  275. package/src/__tests__/llm-request-log-source-clickhouse.test.ts +2 -1
  276. package/src/__tests__/llm-request-log-source-factory.test.ts +3 -3
  277. package/src/__tests__/llm-request-log-turn-query.test.ts +9 -6
  278. package/src/__tests__/llm-usage-store.test.ts +137 -3
  279. package/src/__tests__/log-export-routes.test.ts +3 -3
  280. package/src/__tests__/log-export-workspace.test.ts +3 -3
  281. package/src/__tests__/managed-profile-guard.test.ts +1 -1
  282. package/src/__tests__/managed-skill-lifecycle.test.ts +3 -3
  283. package/src/__tests__/managed-store.test.ts +381 -0
  284. package/src/__tests__/mcp-config-secret-boundary.test.ts +5 -1
  285. package/src/__tests__/media-stream-server-integration.test.ts +1 -1
  286. package/src/__tests__/memory-jobs-worker-backoff.test.ts +4 -4
  287. package/src/__tests__/memory-jobs-worker-lanes.test.ts +11 -9
  288. package/src/__tests__/memory-recall-log-store.test.ts +4 -4
  289. package/src/__tests__/memory-retrieval-budget.test.ts +1 -1
  290. package/src/__tests__/memory-retrieval-hook.test.ts +8 -8
  291. package/src/__tests__/memory-upsert-concurrency.test.ts +9 -5
  292. package/src/__tests__/memory-v2-static-injector.test.ts +3 -3
  293. package/src/__tests__/messages-after-tiebreaker.test.ts +4 -4
  294. package/src/__tests__/messaging-send-tool.test.ts +5 -5
  295. package/src/__tests__/mock-gateway-ipc.ts +1 -1
  296. package/src/__tests__/mtime-cache.test.ts +19 -0
  297. package/src/__tests__/native-web-search.test.ts +11 -11
  298. package/src/__tests__/non-member-access-request.test.ts +24 -20
  299. package/src/__tests__/notification-candidate-guardian-context.test.ts +4 -4
  300. package/src/__tests__/notification-deep-link.test.ts +3 -3
  301. package/src/__tests__/notification-guardian-path.test.ts +3 -3
  302. package/src/__tests__/notification-schedule-notify-dedup.test.ts +3 -3
  303. package/src/__tests__/oauth-provider-profiles.test.ts +1 -1
  304. package/src/__tests__/oauth-provider-visibility.test.ts +2 -2
  305. package/src/__tests__/oauth-store.test.ts +6 -6
  306. package/src/__tests__/onboarding-persona-write.test.ts +52 -22
  307. package/src/__tests__/onboarding-template-contract.test.ts +27 -43
  308. package/src/__tests__/openai-provider.test.ts +33 -0
  309. package/src/__tests__/openai-responses-provider.test.ts +40 -0
  310. package/src/__tests__/outbound-slack-persistence.test.ts +8 -8
  311. package/src/__tests__/persist-onboarding-artifacts.test.ts +1 -0
  312. package/src/__tests__/persist-unsendable-image-downscale.test.ts +3 -3
  313. package/src/__tests__/persist-unsendable-image.test.ts +3 -3
  314. package/src/__tests__/persist-user-message-set-processing-failure.test.ts +70 -0
  315. package/src/__tests__/persistence-layering-guard.test.ts +222 -0
  316. package/src/__tests__/persistence-secret-redaction.test.ts +6 -6
  317. package/src/__tests__/persona-resolver.test.ts +75 -45
  318. package/src/__tests__/pkb-autoinject.test.ts +1 -1
  319. package/src/__tests__/platform-bash-auto-approve.test.ts +3 -3
  320. package/src/__tests__/playbook-execution.test.ts +4 -4
  321. package/src/__tests__/playbook-tools.test.ts +3 -3
  322. package/src/__tests__/plugin-bootstrap.test.ts +78 -19
  323. package/src/__tests__/plugin-config-data-migration.test.ts +263 -0
  324. package/src/__tests__/plugin-disabled-state.test.ts +323 -0
  325. package/src/__tests__/plugin-event-hub-facade.test.ts +323 -0
  326. package/src/__tests__/plugin-import-boundary-guard.test.ts +506 -0
  327. package/src/__tests__/plugin-injector-contribution.test.ts +133 -0
  328. package/src/__tests__/plugin-route-contribution.test.ts +62 -115
  329. package/src/__tests__/plugin-tool-contribution.test.ts +0 -22
  330. package/src/__tests__/pointer-conversation-trust.test.ts +141 -0
  331. package/src/__tests__/post-compaction-reinjection-idempotency.test.ts +8 -1
  332. package/src/__tests__/process-message-background-slack.test.ts +6 -6
  333. package/src/__tests__/process-message-display-content.test.ts +5 -5
  334. package/src/__tests__/processing-flag-persist-failure.test.ts +280 -0
  335. package/src/__tests__/provider-usage-tracking.test.ts +4 -4
  336. package/src/__tests__/prune-jobs-changes-parser.test.ts +1 -1
  337. package/src/__tests__/prune-old-conversations-job.test.ts +5 -5
  338. package/src/__tests__/prune-old-tool-invocations-job.test.ts +97 -0
  339. package/src/__tests__/published-app-updater.test.ts +3 -3
  340. package/src/__tests__/qdrant-collection-migration.test.ts +5 -2
  341. package/src/__tests__/qdrant-manager.test.ts +1 -1
  342. package/src/__tests__/reaction-intercept-cold-cache-warm.test.ts +141 -0
  343. package/src/__tests__/reaction-intercept-member-verdict-warm.test.ts +158 -0
  344. package/src/__tests__/reaction-persistence.test.ts +60 -10
  345. package/src/__tests__/rebuild-index-graph-nodes.test.ts +5 -5
  346. package/src/__tests__/recording-handler.test.ts +2 -2
  347. package/src/__tests__/relay-server.test.ts +183 -142
  348. package/src/__tests__/require-fresh-approval.test.ts +1 -1
  349. package/src/__tests__/resolve-app-id.test.ts +3 -3
  350. package/src/__tests__/runtime-attachment-metadata.test.ts +16 -18
  351. package/src/__tests__/runtime-events-sse-bilingual.test.ts +3 -3
  352. package/src/__tests__/runtime-events-sse-parity.test.ts +3 -3
  353. package/src/__tests__/runtime-events-sse-reconnect.test.ts +3 -3
  354. package/src/__tests__/runtime-events-sse.test.ts +3 -3
  355. package/src/__tests__/scaffold-managed-skill-tool.test.ts +489 -2
  356. package/src/__tests__/schedule-retry.test.ts +91 -67
  357. package/src/__tests__/schedule-routes-workflow-validation.test.ts +47 -43
  358. package/src/__tests__/schedule-routes.test.ts +199 -187
  359. package/src/__tests__/schedule-store.test.ts +174 -172
  360. package/src/__tests__/schedule-tools.test.ts +2 -2
  361. package/src/__tests__/scheduler-disk-pressure.test.ts +20 -9
  362. package/src/__tests__/scheduler-recurrence.test.ts +72 -122
  363. package/src/__tests__/scheduler-reuse-conversation.test.ts +65 -60
  364. package/src/__tests__/scheduler-wake.test.ts +21 -31
  365. package/src/__tests__/scoped-approval-grants.test.ts +4 -4
  366. package/src/__tests__/scoped-grant-security-matrix.test.ts +4 -4
  367. package/src/__tests__/scrub-corrupted-image-attachments.test.ts +2 -2
  368. package/src/__tests__/search-skills-unified.test.ts +1 -1
  369. package/src/__tests__/secret-ingress-channel.test.ts +3 -3
  370. package/src/__tests__/secret-ingress-http.test.ts +6 -6
  371. package/src/__tests__/secret-routes-platform-proxy.test.ts +9 -8
  372. package/src/__tests__/send-endpoint-busy.test.ts +6 -6
  373. package/src/__tests__/sequence-store.test.ts +3 -3
  374. package/src/__tests__/server-history-render.test.ts +7 -4
  375. package/src/__tests__/settings-routes.test.ts +34 -2
  376. package/src/__tests__/shell-observability.test.ts +1 -0
  377. package/src/__tests__/skill-boundary-guard.test.ts +3 -4
  378. package/src/__tests__/skill-docs-sync-guard.test.ts +34 -0
  379. package/src/__tests__/skill-projection-feature-flag.test.ts +2 -1
  380. package/src/__tests__/skill-projection.benchmark.test.ts +2 -1
  381. package/src/__tests__/skill-script-runner-host.test.ts +53 -0
  382. package/src/__tests__/skill-script-runner-sandbox.test.ts +5 -2
  383. package/src/__tests__/skill-tool-factory.test.ts +20 -0
  384. package/src/__tests__/skill-version-hash.test.ts +32 -0
  385. package/src/__tests__/skills-file-content-endpoint.test.ts +1 -1
  386. package/src/__tests__/skills-files-catalog-fallback.test.ts +1 -1
  387. package/src/__tests__/slack-inbound-verification.test.ts +2 -2
  388. package/src/__tests__/slack-messaging-token-resolution.test.ts +2 -2
  389. package/src/__tests__/slack-reaction-canonical-approval.test.ts +4 -4
  390. package/src/__tests__/slack-share-routes.test.ts +1 -1
  391. package/src/__tests__/slim-skill-category.test.ts +34 -2
  392. package/src/__tests__/sse-actor-principal-guardian-source.test.ts +13 -36
  393. package/src/__tests__/starter-task-flow.test.ts +1 -1
  394. package/src/__tests__/strip-memory-injections.test.ts +2 -2
  395. package/src/__tests__/stt-hints.test.ts +6 -3
  396. package/src/__tests__/subagent-allowlist-validation.test.ts +47 -0
  397. package/src/__tests__/subagent-call-site-routing.test.ts +2 -2
  398. package/src/__tests__/subagent-detail.test.ts +1 -1
  399. package/src/__tests__/subagent-fork-notifications.test.ts +14 -2
  400. package/src/__tests__/subagent-fork-prompt-role.test.ts +195 -0
  401. package/src/__tests__/subagent-fork-spawn.test.ts +6 -7
  402. package/src/__tests__/subagent-notify-parent.test.ts +3 -3
  403. package/src/__tests__/subagent-persistence.test.ts +122 -0
  404. package/src/__tests__/subagent-role-registry.test.ts +17 -4
  405. package/src/__tests__/subagent-spawn-and-await.test.ts +546 -0
  406. package/src/__tests__/subagent-spawn-tool-fork.test.ts +3 -3
  407. package/src/__tests__/subagent-terminal-message.test.ts +99 -0
  408. package/src/__tests__/subagent-tool-gate-mode.test.ts +1 -1
  409. package/src/__tests__/subagent-tools.test.ts +396 -4
  410. package/src/__tests__/suggestion-routes.test.ts +4 -4
  411. package/src/__tests__/system-prompt.test.ts +4 -4
  412. package/src/__tests__/task-compiler.test.ts +2 -2
  413. package/src/__tests__/task-management-tools.test.ts +2 -2
  414. package/src/__tests__/task-memory-cleanup.test.ts +9 -7
  415. package/src/__tests__/task-progress-nudge-hook.test.ts +37 -94
  416. package/src/__tests__/task-scheduler.test.ts +94 -115
  417. package/src/__tests__/test-support/tool-invocation-seed.ts +5 -2
  418. package/src/__tests__/thread-backfill.test.ts +7 -7
  419. package/src/__tests__/title-generate-hook.test.ts +6 -6
  420. package/src/__tests__/tool-approval-handler.test.ts +4 -4
  421. package/src/__tests__/tool-audit-listener.test.ts +1 -1
  422. package/src/__tests__/tool-error-hook.test.ts +2 -0
  423. package/src/__tests__/tool-executor-lifecycle-events.test.ts +5 -5
  424. package/src/__tests__/tool-executor-redaction.test.ts +11 -0
  425. package/src/__tests__/tool-executor.test.ts +24 -2
  426. package/src/__tests__/tool-grant-request-escalation.test.ts +5 -5
  427. package/src/__tests__/tool-preview-lifecycle.test.ts +102 -17
  428. package/src/__tests__/tool-result-metadata-plumbing.test.ts +4 -4
  429. package/src/__tests__/tool-result-truncate-hook.test.ts +2 -0
  430. package/src/__tests__/tool-side-effects-slack-dm.test.ts +1 -1
  431. package/src/__tests__/tool-start-timestamp.test.ts +69 -5
  432. package/src/__tests__/tools-get-route.test.ts +44 -1
  433. package/src/__tests__/trace-emitter.test.ts +1 -1
  434. package/src/__tests__/trust-context-guards.test.ts +1 -1
  435. package/src/__tests__/trusted-contact-approval-notifier.test.ts +37 -51
  436. package/src/__tests__/trusted-contact-inline-approval-integration.test.ts +7 -7
  437. package/src/__tests__/trusted-contact-lifecycle-notifications.test.ts +20 -12
  438. package/src/__tests__/trusted-contact-multichannel.test.ts +17 -8
  439. package/src/__tests__/trusted-contact-verification.test.ts +60 -57
  440. package/src/__tests__/turn-boundary-resolution.test.ts +7 -4
  441. package/src/__tests__/turn-call-site.test.ts +29 -0
  442. package/src/__tests__/turn-events-store.test.ts +8 -5
  443. package/src/__tests__/twilio-routes.test.ts +3 -3
  444. package/src/__tests__/unified-turn-context-client-os.test.ts +45 -0
  445. package/src/__tests__/usage-cache-backfill-migration.test.ts +4 -8
  446. package/src/__tests__/usage-grouped-buckets.test.ts +1 -1
  447. package/src/__tests__/usage-routes.test.ts +61 -3
  448. package/src/__tests__/verification-control-plane-policy.test.ts +6 -6
  449. package/src/__tests__/voice-guardian-cold-cache-warm.test.ts +137 -0
  450. package/src/__tests__/voice-invite-redemption.test.ts +183 -24
  451. package/src/__tests__/voice-quality.test.ts +38 -12
  452. package/src/__tests__/voice-scoped-grant-consumer.test.ts +22 -14
  453. package/src/__tests__/voice-session-bridge.test.ts +16 -10
  454. package/src/__tests__/web-search-backend-failure.test.ts +4 -4
  455. package/src/__tests__/workspace-lifecycle.test.ts +29 -18
  456. package/src/__tests__/workspace-migration-009-backfill-conversation-disk-view.test.ts +4 -4
  457. package/src/__tests__/workspace-migration-013-repair-conversation-disk-view.test.ts +5 -5
  458. package/src/__tests__/workspace-migration-028-recover-conversations-from-disk-view.test.ts +3 -3
  459. package/src/__tests__/workspace-migration-102-preserve-heartbeat-enabled-for-existing-workspaces.test.ts +3 -3
  460. package/src/__tests__/workspace-migration-111-prune-seeded-callsite-defaults.test.ts +2 -2
  461. package/src/__tests__/workspace-migration-112-remove-advisor-callsite-override.test.ts +170 -0
  462. package/src/__tests__/workspace-migration-113-swap-balanced-profile-to-glm-5p2.test.ts +241 -0
  463. package/src/__tests__/workspace-migration-114-swap-quality-profile-to-opus.test.ts +172 -0
  464. package/src/__tests__/workspace-migration-116-rename-memory-plugin-disabled-sentinel.test.ts +128 -0
  465. package/src/__tests__/workspace-migration-117-normalize-stale-lean-memory-v3-defaults.test.ts +221 -0
  466. package/src/__tests__/workspace-migration-118-seed-now-md.test.ts +120 -0
  467. package/src/__tests__/workspace-migration-backfill-installation-id.test.ts +1 -1
  468. package/src/__tests__/workspace-migration-drop-user-md.test.ts +273 -238
  469. package/src/a2a/__tests__/e2e-a2a-channel.test.ts +41 -49
  470. package/src/a2a/__tests__/task-store.test.ts +2 -2
  471. package/src/a2a/task-store.ts +4 -4
  472. package/src/acp/__tests__/client-handler.test.ts +680 -0
  473. package/src/acp/__tests__/helpers/acp-history-db.ts +32 -4
  474. package/src/acp/__tests__/prepare-agent-env.test.ts +0 -97
  475. package/src/acp/__tests__/session-manager-persistence.test.ts +215 -7
  476. package/src/acp/__tests__/session-manager-resume.test.ts +113 -2
  477. package/src/acp/__tests__/session-manager-startup.test.ts +3 -3
  478. package/src/acp/__tests__/session-manager-usage.test.ts +113 -0
  479. package/src/acp/auto-install.ts +12 -8
  480. package/src/acp/client-handler.ts +140 -21
  481. package/src/acp/prepare-agent-env.ts +0 -12
  482. package/src/acp/resolve-agent.test.ts +6 -45
  483. package/src/acp/resolve-agent.ts +2 -4
  484. package/src/acp/session-manager.ts +127 -4
  485. package/src/acp/types.ts +18 -0
  486. package/src/agent/loop-exclusive-tool.test.ts +19 -15
  487. package/src/agent/loop-native-web-search.test.ts +200 -0
  488. package/src/agent/loop.ts +321 -149
  489. package/src/api/events/acp-session-completed.ts +33 -0
  490. package/src/api/events/acp-session-error.ts +21 -0
  491. package/src/api/events/acp-session-spawned.ts +32 -0
  492. package/src/api/events/acp-session-update.test.ts +122 -0
  493. package/src/api/events/acp-session-update.ts +51 -0
  494. package/src/api/events/acp-session-usage.test.ts +49 -0
  495. package/src/api/events/acp-session-usage.ts +31 -0
  496. package/src/api/events/background-tool-completed.test.ts +51 -0
  497. package/src/api/events/background-tool-completed.ts +29 -0
  498. package/src/api/events/background-tool-started.test.ts +36 -0
  499. package/src/api/events/background-tool-started.ts +28 -0
  500. package/src/api/events/conversation-error.ts +0 -1
  501. package/src/api/events/subagent-status-changed.ts +4 -1
  502. package/src/api/events/tool-use-preview-start.ts +11 -0
  503. package/src/api/events/tool-use-start.ts +14 -0
  504. package/src/api/index.ts +51 -0
  505. package/src/api/responses/conversation-message.ts +80 -1
  506. package/src/api/responses/llm-request-log-entry.ts +41 -0
  507. package/src/api/responses/memory-v3-selection-log.ts +5 -7
  508. package/src/approvals/approval-primitive.ts +1 -1
  509. package/src/approvals/guardian-card-withdrawal.ts +2 -2
  510. package/src/approvals/guardian-decision-primitive.ts +1 -1
  511. package/src/approvals/guardian-expiry-notifier.ts +1 -1
  512. package/src/approvals/guardian-request-resolvers.ts +19 -7
  513. package/src/approvals/scoped-approval-grants.ts +551 -0
  514. package/src/apps/app-store.ts +1058 -0
  515. package/src/apps/published-pages-store.ts +67 -0
  516. package/src/apps/shared-app-links-store.ts +130 -0
  517. package/src/background-wake/background-wake-routes.test.ts +53 -23
  518. package/src/background-wake/wake-intent-hooks.test.ts +18 -12
  519. package/src/backup/restore.ts +1 -1
  520. package/src/bundler/app-bundler.ts +1 -1
  521. package/src/calls/__tests__/relay-setup-router.test.ts +11 -19
  522. package/src/calls/call-controller.ts +5 -5
  523. package/src/calls/call-conversation-messages.ts +1 -1
  524. package/src/calls/call-domain.ts +5 -5
  525. package/src/calls/call-pointer-messages.ts +1 -1
  526. package/src/calls/call-store.ts +3 -3
  527. package/src/calls/guardian-action-sweep.ts +1 -1
  528. package/src/calls/guardian-dispatch.ts +15 -12
  529. package/src/calls/inbound-trust-reader.ts +7 -1
  530. package/src/calls/media-stream-server.ts +1 -1
  531. package/src/calls/relay-access-wait.ts +7 -7
  532. package/src/calls/relay-server.ts +25 -5
  533. package/src/calls/relay-setup-router.ts +11 -11
  534. package/src/calls/tts-call-strategy.ts +4 -3
  535. package/src/calls/voice-quality.ts +47 -59
  536. package/src/calls/voice-session-bridge.ts +2 -16
  537. package/src/channels/__tests__/types.test.ts +28 -0
  538. package/src/channels/channel-verification-sessions.ts +557 -0
  539. package/src/channels/types.ts +23 -0
  540. package/src/cli/commands/__tests__/conversations-new.test.ts +186 -0
  541. package/src/cli/commands/__tests__/conversations-slack.test.ts +2 -1
  542. package/src/cli/commands/__tests__/conversations-wake.test.ts +147 -0
  543. package/src/cli/commands/__tests__/ps.test.ts +205 -0
  544. package/src/cli/commands/__tests__/schedules.test.ts +52 -0
  545. package/src/cli/commands/contacts.ts +10 -7
  546. package/src/cli/commands/conversations.ts +90 -30
  547. package/src/cli/commands/db/__tests__/repair.test.ts +4 -3
  548. package/src/cli/commands/db/repair-step-conversation-backfill.ts +2 -2
  549. package/src/cli/commands/memory/__tests__/memory-v2-compare-render.test.ts +1 -1
  550. package/src/cli/commands/memory/__tests__/worker.test.ts +112 -183
  551. package/src/cli/commands/memory/memory-retrospective.ts +32 -28
  552. package/src/cli/commands/memory/memory-v2-compare-render.ts +1 -1
  553. package/src/cli/commands/memory/memory-v2.ts +2 -2
  554. package/src/cli/commands/memory/memory-v3.ts +2 -2
  555. package/src/cli/commands/memory/worker.ts +103 -113
  556. package/src/cli/commands/plugins.ts +150 -157
  557. package/src/cli/commands/ps.ts +90 -0
  558. package/src/cli/commands/schedules.ts +52 -8
  559. package/src/cli/commands/tools-run.ts +114 -0
  560. package/src/cli/commands/tools.ts +19 -5
  561. package/src/cli/lib/__tests__/cli-colors.test.ts +30 -1
  562. package/src/cli/lib/__tests__/install-from-github.test.ts +168 -8
  563. package/src/cli/lib/__tests__/list-installed-plugins.test.ts +23 -18
  564. package/src/cli/lib/__tests__/parse-github-plugin-spec.test.ts +121 -0
  565. package/src/cli/lib/__tests__/plugin-catalog-cache.test.ts +1 -0
  566. package/src/cli/lib/__tests__/publish-plugin.test.ts +98 -0
  567. package/src/cli/lib/__tests__/search-plugins.test.ts +29 -1
  568. package/src/cli/lib/__tests__/toggle-plugin.test.ts +10 -4
  569. package/src/cli/lib/cli-colors.ts +6 -0
  570. package/src/cli/lib/diff-plugin.ts +3 -7
  571. package/src/cli/lib/inspect-plugin.ts +2 -4
  572. package/src/cli/lib/install-from-github.ts +96 -24
  573. package/src/cli/lib/merge-plugin-tree.ts +5 -3
  574. package/src/cli/lib/parse-github-plugin-spec.ts +163 -0
  575. package/src/cli/lib/plugin-fingerprint.ts +22 -0
  576. package/src/cli/lib/publish-plugin.ts +231 -1
  577. package/src/cli/lib/search-plugins.ts +6 -0
  578. package/src/cli/lib/upgrade-plugin.ts +6 -5
  579. package/src/cli/program.ts +5 -8
  580. package/src/cli.ts +6 -3
  581. package/src/config/__tests__/deployment-context-defaults.test.ts +228 -0
  582. package/src/config/__tests__/proc-to-skills.test.ts +21 -0
  583. package/src/config/__tests__/sync-gated-profiles.test.ts +7 -9
  584. package/src/config/acp-defaults.test.ts +0 -10
  585. package/src/config/acp-defaults.ts +0 -6
  586. package/src/config/bundled-skills/AGENTS.md +11 -0
  587. package/src/config/bundled-skills/acp/SKILL.md +13 -45
  588. package/src/config/bundled-skills/acp/TOOLS.json +3 -3
  589. package/src/config/bundled-skills/app-builder/SKILL.md +5 -3
  590. package/src/config/bundled-skills/app-builder/references/RESPONSIVE.md +9 -9
  591. package/src/config/bundled-skills/app-builder/tools/app-create.ts +2 -2
  592. package/src/config/bundled-skills/app-builder/tools/app-delete.ts +2 -2
  593. package/src/config/bundled-skills/app-builder/tools/app-generate-icon.ts +2 -2
  594. package/src/config/bundled-skills/app-builder/tools/app-list.ts +1 -1
  595. package/src/config/bundled-skills/app-builder/tools/app-refresh.ts +2 -2
  596. package/src/config/bundled-skills/app-builder/tools/app-update.ts +2 -2
  597. package/src/config/bundled-skills/image-studio/tools/media-generate-image.ts +2 -2
  598. package/src/config/bundled-skills/media-processing/__tests__/extract-keyframes.test.ts +1 -1
  599. package/src/config/bundled-skills/media-processing/__tests__/preprocess-audio.test.ts +1 -1
  600. package/src/config/bundled-skills/media-processing/services/preprocess.ts +1 -1
  601. package/src/config/bundled-skills/media-processing/services/processing-pipeline.ts +1 -1
  602. package/src/config/bundled-skills/media-processing/services/reduce.ts +1 -1
  603. package/src/config/bundled-skills/media-processing/tools/analyze-keyframes.ts +1 -1
  604. package/src/config/bundled-skills/media-processing/tools/extract-keyframes.ts +1 -1
  605. package/src/config/bundled-skills/media-processing/tools/generate-clip.ts +2 -2
  606. package/src/config/bundled-skills/media-processing/tools/ingest-media.ts +2 -2
  607. package/src/config/bundled-skills/media-processing/tools/media-status.ts +1 -1
  608. package/src/config/bundled-skills/messaging/tools/messaging-analyze-style.ts +5 -5
  609. package/src/config/bundled-skills/messaging/tools/messaging-send.ts +6 -6
  610. package/src/config/bundled-skills/playbooks/tools/playbook-create.ts +8 -5
  611. package/src/config/bundled-skills/playbooks/tools/playbook-delete.ts +4 -1
  612. package/src/config/bundled-skills/playbooks/tools/playbook-list.ts +2 -2
  613. package/src/config/bundled-skills/playbooks/tools/playbook-update.ts +7 -4
  614. package/src/config/bundled-skills/settings/tools/voice-config-update.ts +7 -7
  615. package/src/config/bundled-skills/skill-management/TOOLS.json +45 -0
  616. package/src/config/bundled-skills/skill-management/tools/find-similar.ts +12 -0
  617. package/src/config/bundled-skills/subagent/SKILL.md +16 -1
  618. package/src/config/bundled-skills/subagent/TOOLS.json +5 -4
  619. package/src/config/bundled-tool-registry.ts +2 -0
  620. package/src/config/call-site-defaults.ts +0 -8
  621. package/src/config/feature-flag-registry.json +16 -24
  622. package/src/config/llm-resolver.ts +17 -3
  623. package/src/config/loader.ts +38 -58
  624. package/src/config/memory-v3-gate.ts +16 -0
  625. package/src/config/schema.ts +2 -0
  626. package/src/config/schemas/__tests__/memory-v2.test.ts +2 -2
  627. package/src/config/schemas/__tests__/memory-v3.test.ts +16 -5
  628. package/src/config/schemas/call-site-catalog.ts +0 -19
  629. package/src/config/schemas/conversations.ts +8 -0
  630. package/src/config/schemas/heartbeat.ts +2 -5
  631. package/src/config/schemas/llm.ts +3 -14
  632. package/src/config/schemas/memory-lifecycle.ts +10 -1
  633. package/src/config/schemas/memory-v2.ts +1 -1
  634. package/src/config/schemas/memory-v3.ts +56 -6
  635. package/src/config/schemas/migrations.ts +25 -0
  636. package/src/config/schemas/services.ts +0 -37
  637. package/src/config/seed-inference-profiles.ts +88 -84
  638. package/src/config/sync-gated-profiles.ts +6 -20
  639. package/src/contacts/__tests__/contacts-write-revoke-relay.test.ts +7 -8
  640. package/src/contacts/__tests__/guardian-contact-reader.test.ts +89 -0
  641. package/src/contacts/__tests__/guardian-delivery-reader.test.ts +3 -14
  642. package/src/contacts/__tests__/member-write-relay.test.ts +35 -11
  643. package/src/contacts/canonical-guardian-store.ts +891 -0
  644. package/src/contacts/contact-store.ts +37 -245
  645. package/src/contacts/contacts-write.ts +18 -58
  646. package/src/contacts/gateway-channel-read.ts +51 -0
  647. package/src/contacts/guardian-contact-reader.ts +52 -0
  648. package/src/contacts/guardian-delivery-reader.ts +21 -23
  649. package/src/contacts/guardian-rate-limits.ts +191 -0
  650. package/src/contacts/member-write-relay.ts +25 -31
  651. package/src/contacts/notify-contacts-changed.ts +17 -0
  652. package/src/contacts/types.ts +3 -15
  653. package/src/context/compactor.ts +3 -3
  654. package/src/context/strip-injections.ts +1 -1
  655. package/src/conversations/__tests__/message-consolidation.test.ts +10 -26
  656. package/src/conversations/job-handlers/summarization.ts +246 -0
  657. package/src/conversations/message-consolidation.ts +1 -1
  658. package/src/credential-execution/ces-runtime.ts +285 -0
  659. package/src/daemon/__tests__/abort-null-controller.test.ts +167 -0
  660. package/src/daemon/__tests__/conversation-lifecycle-auto-analyze.test.ts +25 -22
  661. package/src/daemon/__tests__/conversation-surfaces-launch.test.ts +5 -4
  662. package/src/daemon/__tests__/conversation-tool-setup.test.ts +0 -44
  663. package/src/daemon/__tests__/daemon-readiness.test.ts +51 -0
  664. package/src/daemon/__tests__/embedding-reconcile.test.ts +456 -0
  665. package/src/daemon/__tests__/inference-profile-notification.test.ts +9 -6
  666. package/src/daemon/__tests__/lifecycle-embedding-reconcile.test.ts +119 -0
  667. package/src/daemon/__tests__/native-web-search-metadata.test.ts +2 -2
  668. package/src/daemon/__tests__/wake-conversation-ops-completion.test.ts +107 -0
  669. package/src/daemon/__tests__/web-search-status-text.test.ts +3 -5
  670. package/src/daemon/app-source-watcher.ts +71 -10
  671. package/src/daemon/channel-ui-capability.ts +25 -0
  672. package/src/daemon/config-watcher.ts +71 -47
  673. package/src/daemon/conversation-agent-loop-handlers.ts +266 -49
  674. package/src/daemon/conversation-agent-loop.ts +166 -89
  675. package/src/daemon/conversation-attachments.ts +2 -2
  676. package/src/daemon/conversation-error.ts +8 -25
  677. package/src/daemon/conversation-evictor.ts +42 -9
  678. package/src/daemon/conversation-history.ts +8 -234
  679. package/src/daemon/conversation-initial-prompt.ts +77 -0
  680. package/src/daemon/conversation-launch.ts +2 -2
  681. package/src/daemon/conversation-lifecycle.ts +32 -5
  682. package/src/daemon/conversation-messaging.ts +25 -11
  683. package/src/daemon/conversation-notifiers.ts +1 -1
  684. package/src/daemon/conversation-process.ts +27 -15
  685. package/src/daemon/conversation-queue-manager.ts +6 -0
  686. package/src/daemon/conversation-registry.ts +6 -5
  687. package/src/daemon/conversation-runtime-assembly.ts +45 -31
  688. package/src/daemon/conversation-skill-tools.ts +26 -2
  689. package/src/daemon/conversation-slash.ts +1 -1
  690. package/src/daemon/conversation-store.ts +47 -42
  691. package/src/daemon/conversation-surfaces.ts +4 -4
  692. package/src/daemon/conversation-tool-setup.ts +2 -11
  693. package/src/daemon/conversation-usage.ts +4 -2
  694. package/src/daemon/conversation-workspace.ts +2 -2
  695. package/src/daemon/conversation.ts +104 -17
  696. package/src/daemon/daemon-readiness.ts +33 -0
  697. package/src/daemon/embedding-reconcile.ts +340 -0
  698. package/src/daemon/event-loop-watchdog.ts +1 -1
  699. package/src/daemon/external-plugins-bootstrap.ts +123 -92
  700. package/src/daemon/handlers/__tests__/config-a2a-accept.test.ts +2 -3
  701. package/src/daemon/handlers/__tests__/config-a2a-complete.test.ts +3 -5
  702. package/src/daemon/handlers/__tests__/config-a2a-invite.test.ts +3 -3
  703. package/src/daemon/handlers/__tests__/config-a2a-redeem.test.ts +7 -13
  704. package/src/daemon/handlers/__tests__/config-a2a.test.ts +2 -2
  705. package/src/daemon/handlers/__tests__/config-channels.test.ts +22 -21
  706. package/src/daemon/handlers/config-a2a.ts +3 -3
  707. package/src/daemon/handlers/config-channels.ts +21 -33
  708. package/src/daemon/handlers/config-embeddings.ts +1 -1
  709. package/src/daemon/handlers/conversation-history.ts +2 -2
  710. package/src/daemon/handlers/conversations.ts +7 -56
  711. package/src/daemon/handlers/recording.ts +6 -3
  712. package/src/daemon/handlers/shared.ts +2 -0
  713. package/src/daemon/handlers/skills.ts +9 -1
  714. package/src/daemon/lifecycle.ts +714 -1242
  715. package/src/daemon/message-protocol.ts +3 -3
  716. package/src/daemon/message-provenance.ts +1 -1
  717. package/src/daemon/message-types/acp.ts +27 -1
  718. package/src/daemon/message-types/background-tools.ts +28 -0
  719. package/src/daemon/message-types/bookmarks.ts +1 -1
  720. package/src/daemon/message-types/conversations.ts +10 -0
  721. package/src/daemon/message-types/skills.ts +20 -2
  722. package/src/daemon/message-types/surfaces.ts +2 -0
  723. package/src/daemon/pointer-conversation-trust.ts +66 -0
  724. package/src/daemon/process-message.ts +24 -3
  725. package/src/daemon/providers-setup.ts +16 -14
  726. package/src/daemon/shutdown-handlers.ts +195 -166
  727. package/src/daemon/skill-memory-refresh.ts +3 -3
  728. package/src/daemon/status.ts +15 -0
  729. package/src/daemon/tool-setup-types.ts +17 -0
  730. package/src/daemon/tool-side-effects.ts +4 -4
  731. package/src/daemon/trace-emitter.ts +1 -1
  732. package/src/daemon/trust-context.ts +1 -1
  733. package/src/daemon/turn-call-site.ts +25 -0
  734. package/src/daemon/turn-latency-tracker.test.ts +137 -0
  735. package/src/daemon/turn-latency-tracker.ts +134 -0
  736. package/src/daemon/wake-conversation-ops.ts +14 -4
  737. package/src/documents/document-comments-store.test.ts +2 -2
  738. package/src/documents/document-comments-store.ts +1 -1
  739. package/src/documents/document-store.ts +1 -1
  740. package/src/events/tool-audit-listener.ts +4 -4
  741. package/src/events/tool-permission-telemetry-listener.ts +1 -1
  742. package/src/export/__tests__/transcript-formatter.test.ts +1 -1
  743. package/src/export/transcript-formatter.ts +1 -1
  744. package/src/followups/followup-store.ts +2 -2
  745. package/src/heartbeat/__tests__/heartbeat-run-store.test.ts +2 -2
  746. package/src/heartbeat/__tests__/heartbeat-service.test.ts +45 -39
  747. package/src/heartbeat/heartbeat-run-store.ts +3 -3
  748. package/src/heartbeat/heartbeat-service.ts +34 -11
  749. package/src/home/__tests__/relationship-state-writer.test.ts +1 -1
  750. package/src/home/__tests__/suggested-prompts.test.ts +1 -1
  751. package/src/home/conversation-starter-checkpoints.ts +64 -0
  752. package/src/home/feed-source-enrichment.ts +3 -3
  753. package/src/home/home-greeting-cache.ts +1 -1
  754. package/src/home/job-handlers/conversation-starters.ts +484 -0
  755. package/src/home/relationship-state-writer.ts +6 -1
  756. package/src/home/suggested-prompts.ts +1 -1
  757. package/src/hooks/hook-loader.ts +141 -6
  758. package/src/hooks/registry.ts +129 -0
  759. package/src/ipc/__tests__/attachment-ipc.test.ts +1 -1
  760. package/src/ipc/__tests__/cli-ipc.test.ts +1 -1
  761. package/src/ipc/__tests__/inject-local-actor-header.test.ts +33 -0
  762. package/src/ipc/__tests__/watcher-ipc.test.ts +1 -1
  763. package/src/ipc/assistant-server.ts +79 -33
  764. package/src/ipc/routes/__tests__/memory-v2-backfill.test.ts +3 -3
  765. package/src/ipc/routes/db-proxy-transaction.ts +1 -1
  766. package/src/ipc/routes/db-proxy.ts +4 -2
  767. package/src/jobs/register-job-handlers.ts +78 -0
  768. package/src/jobs/worker.ts +91 -0
  769. package/src/live-voice/__tests__/live-voice-archive.test.ts +5 -5
  770. package/src/live-voice/live-voice-archive.ts +2 -2
  771. package/src/mcp/manager.ts +11 -0
  772. package/src/media/app-icon-generator.ts +1 -1
  773. package/src/media/job-handlers/media-processing.ts +126 -0
  774. package/src/messaging/channel-binding-metadata.ts +31 -0
  775. package/src/messaging/channel-binding-schema.ts +51 -0
  776. package/src/messaging/content/parse.test.ts +34 -0
  777. package/src/messaging/content/parse.ts +23 -0
  778. package/src/messaging/providers/__tests__/callback-routing.test.ts +45 -0
  779. package/src/messaging/providers/__tests__/transport-dispatch.test.ts +196 -0
  780. package/src/messaging/providers/a2a/__tests__/deliver.test.ts +11 -0
  781. package/src/messaging/providers/a2a/deliver.ts +5 -1
  782. package/src/messaging/providers/a2a/transport.ts +10 -0
  783. package/src/messaging/providers/callback-routing.ts +48 -0
  784. package/src/messaging/providers/channel-transport.ts +55 -0
  785. package/src/messaging/providers/index.ts +65 -241
  786. package/src/messaging/providers/slack/binding-metadata.ts +62 -0
  787. package/src/messaging/providers/slack/render.test.ts +309 -0
  788. package/src/messaging/providers/slack/render.ts +459 -0
  789. package/src/messaging/providers/slack/send.test.ts +39 -0
  790. package/src/messaging/providers/slack/send.ts +38 -18
  791. package/src/messaging/providers/slack/transport.ts +92 -0
  792. package/src/messaging/providers/telegram-bot/adapter.ts +2 -2
  793. package/src/messaging/providers/telegram-bot/api.ts +17 -3
  794. package/src/messaging/providers/telegram-bot/render.test.ts +146 -0
  795. package/src/messaging/providers/telegram-bot/render.ts +292 -0
  796. package/src/messaging/providers/telegram-bot/send.test.ts +197 -0
  797. package/src/messaging/providers/telegram-bot/send.ts +70 -2
  798. package/src/messaging/providers/telegram-bot/transport.ts +60 -0
  799. package/src/messaging/providers/whatsapp/adapter.ts +2 -2
  800. package/src/messaging/providers/whatsapp/send.ts +1 -1
  801. package/src/messaging/providers/whatsapp/transport.ts +38 -0
  802. package/src/notifications/__tests__/broadcaster.test.ts +0 -8
  803. package/src/notifications/__tests__/connected-channels.test.ts +8 -36
  804. package/src/notifications/__tests__/destination-resolver.test.ts +12 -117
  805. package/src/notifications/__tests__/deterministic-checks.test.ts +3 -3
  806. package/src/notifications/__tests__/home-feed-side-effect.test.ts +1 -1
  807. package/src/notifications/broadcaster.ts +1 -1
  808. package/src/notifications/canonical-delivery-recorder.ts +1 -1
  809. package/src/notifications/conversation-candidates.ts +3 -3
  810. package/src/notifications/conversation-pairing.ts +25 -16
  811. package/src/notifications/decisions-store.ts +2 -2
  812. package/src/notifications/deliveries-store.ts +3 -3
  813. package/src/notifications/destination-resolver.ts +7 -23
  814. package/src/notifications/deterministic-checks.ts +2 -2
  815. package/src/notifications/emit-signal.ts +6 -12
  816. package/src/notifications/events-store.ts +2 -2
  817. package/src/notifications/home-feed-side-effect.ts +2 -2
  818. package/src/notifications/preferences-store.ts +2 -2
  819. package/src/notifications/signal.ts +1 -1
  820. package/src/oauth/oauth-store.ts +3 -3
  821. package/src/onboarding/__tests__/onboarding-events-store.test.ts +80 -0
  822. package/src/onboarding/checkin-event.test.ts +5 -2
  823. package/src/onboarding/checkin-event.ts +7 -1
  824. package/src/onboarding/onboarding-events-store.ts +161 -0
  825. package/src/permissions/checker.test.ts +319 -1
  826. package/src/permissions/checker.ts +52 -0
  827. package/src/permissions/types.ts +23 -2
  828. package/src/persistence/__tests__/db-init-migrations-ok.test.ts +20 -0
  829. package/src/persistence/__tests__/worker-control.test.ts +260 -0
  830. package/src/persistence/attachments-store.ts +1136 -0
  831. package/src/persistence/checkpoints.ts +65 -0
  832. package/src/persistence/compaction-ledger-store.ts +107 -0
  833. package/src/persistence/conversation-attention-store.ts +689 -0
  834. package/src/persistence/conversation-bootstrap.ts +59 -0
  835. package/src/persistence/conversation-crud.ts +3404 -0
  836. package/src/persistence/conversation-group-migration.test.ts +99 -0
  837. package/src/persistence/conversation-key-store.ts +274 -0
  838. package/src/persistence/conversation-queries.ts +768 -0
  839. package/src/persistence/conversation-row-batch-delete.ts +212 -0
  840. package/src/persistence/conversation-title-service.ts +755 -0
  841. package/src/persistence/db-async-query.ts +329 -0
  842. package/src/persistence/db-connection.ts +242 -0
  843. package/src/persistence/db-init.ts +282 -0
  844. package/src/persistence/db-maintenance.ts +158 -0
  845. package/src/persistence/embeddings/__tests__/embedding-identity.test.ts +156 -0
  846. package/src/persistence/embeddings/__tests__/messages-lexical-index.test.ts +307 -0
  847. package/src/persistence/embeddings/__tests__/reconcile-decision.test.ts +95 -0
  848. package/src/persistence/embeddings/embed.ts +87 -0
  849. package/src/persistence/embeddings/embedding-backend.test.ts +355 -0
  850. package/src/persistence/embeddings/embedding-backend.ts +968 -0
  851. package/src/persistence/embeddings/embedding-billing-breaker.ts +96 -0
  852. package/src/persistence/embeddings/embedding-cache.ts +139 -0
  853. package/src/persistence/embeddings/embedding-identity.ts +88 -0
  854. package/src/persistence/embeddings/embedding-local.ts +587 -0
  855. package/src/persistence/embeddings/embedding-ollama.ts +79 -0
  856. package/src/persistence/embeddings/embedding-runtime-manager.ts +573 -0
  857. package/src/persistence/embeddings/embedding-types.ts +97 -0
  858. package/src/persistence/embeddings/messages-lexical-index.ts +368 -0
  859. package/src/persistence/embeddings/qdrant-circuit-breaker.ts +119 -0
  860. package/src/persistence/embeddings/qdrant-client.test.ts +60 -0
  861. package/src/persistence/embeddings/qdrant-client.ts +842 -0
  862. package/src/persistence/embeddings/qdrant-manager.ts +450 -0
  863. package/src/persistence/embeddings/reconcile-decision.ts +53 -0
  864. package/src/persistence/embeddings/sparse-tokenize.ts +51 -0
  865. package/src/persistence/external-conversation-store.ts +315 -0
  866. package/src/persistence/fork-message-copy.ts +225 -0
  867. package/src/persistence/job-handlers/cleanup.ts +266 -0
  868. package/src/persistence/job-utils.ts +286 -0
  869. package/src/persistence/jobs-store.ts +866 -0
  870. package/src/persistence/jobs-worker.ts +842 -0
  871. package/src/persistence/llm-request-log-source-clickhouse.ts +525 -0
  872. package/src/persistence/llm-request-log-store.ts +740 -0
  873. package/src/persistence/llm-usage-store.ts +961 -0
  874. package/src/persistence/memory-lifecycle-hooks.test.ts +81 -0
  875. package/src/persistence/memory-lifecycle-hooks.ts +120 -0
  876. package/src/persistence/message-content.test.ts +35 -0
  877. package/src/persistence/migrations/126-backfill-guardian-principal-id.ts +300 -0
  878. package/src/persistence/migrations/140-backfill-usage-cache-accounting.ts +364 -0
  879. package/src/persistence/migrations/142-rename-verification-session-id-column.ts +55 -0
  880. package/src/persistence/migrations/182-oauth-providers-display-metadata.ts +22 -0
  881. package/src/persistence/migrations/196-strip-integration-prefix-from-provider-keys.ts +175 -0
  882. package/src/persistence/migrations/199-guardian-request-enrichment-columns.ts +50 -0
  883. package/src/persistence/migrations/202-memory-graph-tables.ts +128 -0
  884. package/src/persistence/migrations/203-drop-memory-items-tables.ts +53 -0
  885. package/src/persistence/migrations/206-scrub-corrupted-image-attachments.ts +121 -0
  886. package/src/persistence/migrations/209-strip-thinking-from-consolidated.ts +196 -0
  887. package/src/persistence/migrations/211-memory-recall-logs-query-context.ts +14 -0
  888. package/src/persistence/migrations/220-normalize-user-file-by-principal.ts +171 -0
  889. package/src/persistence/migrations/222-strip-placeholder-sentinels-from-messages.ts +179 -0
  890. package/src/persistence/migrations/236-tool-invocations-matched-rule-id.ts +23 -0
  891. package/src/persistence/migrations/243-provider-connections.ts +80 -0
  892. package/src/persistence/migrations/244-provider-connection-status-label.ts +29 -0
  893. package/src/persistence/migrations/246-backfill-provider-connection-label.ts +83 -0
  894. package/src/persistence/migrations/255-channel-inbound-delivery-attempts.ts +17 -0
  895. package/src/persistence/migrations/301-create-watchdog-events.ts +42 -0
  896. package/src/persistence/migrations/302-create-compaction-events.ts +107 -0
  897. package/src/persistence/migrations/303-add-conversation-creation-seq.ts +33 -0
  898. package/src/persistence/migrations/304-add-llm-usage-cron-run-id.ts +31 -0
  899. package/src/persistence/migrations/305-drop-contact-acl-columns.ts +49 -0
  900. package/src/persistence/migrations/306-rewrite-frontier-profile-pins.test.ts +110 -0
  901. package/src/persistence/migrations/306-rewrite-frontier-profile-pins.ts +65 -0
  902. package/src/persistence/migrations/307-acp-session-history-usage-columns.test.ts +124 -0
  903. package/src/persistence/migrations/307-acp-session-history-usage-columns.ts +36 -0
  904. package/src/persistence/migrations/308-acp-session-history-token-columns.test.ts +119 -0
  905. package/src/persistence/migrations/308-acp-session-history-token-columns.ts +32 -0
  906. package/src/persistence/migrations/309-drop-redundant-indexes.ts +60 -0
  907. package/src/persistence/migrations/310-llm-request-log-latency-breakdown.ts +37 -0
  908. package/src/persistence/migrations/311-create-subagents-table.ts +50 -0
  909. package/src/persistence/migrations/__tests__/209-strip-thinking-from-consolidated.test.ts +328 -0
  910. package/src/persistence/migrations/__tests__/222-strip-placeholder-sentinels-from-messages.test.ts +273 -0
  911. package/src/persistence/migrations/__tests__/244-provider-connection-status-label.test.ts +90 -0
  912. package/src/persistence/migrations/__tests__/246-backfill-provider-connection-label.test.ts +250 -0
  913. package/src/persistence/migrations/__tests__/run-migrations.test.ts +380 -0
  914. package/src/persistence/migrations/helpers/relocation.ts +230 -0
  915. package/src/persistence/migrations/validate-migration-state.ts +279 -0
  916. package/src/persistence/schedule-attribution-sql.ts +106 -0
  917. package/src/persistence/schema/acp.ts +51 -0
  918. package/src/persistence/schema/contacts.ts +110 -0
  919. package/src/persistence/schema/conversations.ts +235 -0
  920. package/src/persistence/schema/infrastructure.ts +389 -0
  921. package/src/persistence/steps.ts +1312 -0
  922. package/src/persistence/subagent-store.ts +122 -0
  923. package/src/persistence/worker-control.ts +277 -0
  924. package/src/platform/sync-identity.ts +24 -0
  925. package/src/playbooks/playbook-compiler.ts +2 -2
  926. package/src/plugin-api/event-hub-facade.ts +172 -0
  927. package/src/plugin-api/index.ts +14 -1
  928. package/src/plugin-api/types.ts +61 -24
  929. package/src/plugins/defaults/channel/injectors.ts +101 -0
  930. package/src/plugins/defaults/channel/package.json +14 -0
  931. package/src/plugins/defaults/compaction/compact.ts +2 -1
  932. package/src/plugins/defaults/compaction/context-overflow-reducer.ts +2 -1
  933. package/src/plugins/defaults/compaction/window-manager.ts +8 -7
  934. package/src/plugins/defaults/documents/injectors.ts +125 -0
  935. package/src/plugins/defaults/documents/package.json +14 -0
  936. package/src/plugins/defaults/empty-response/hooks/post-model-call.ts +6 -2
  937. package/src/plugins/defaults/exploration-drift/hooks/post-tool-use.ts +10 -11
  938. package/src/plugins/defaults/history-repair/terminal.ts +1 -1
  939. package/src/plugins/defaults/image-fallback/__tests__/image-fallback.test.ts +23 -9
  940. package/src/plugins/defaults/image-fallback/hooks/user-prompt-submit.ts +2 -3
  941. package/src/plugins/defaults/image-fallback/src/caption-blocks.ts +7 -14
  942. package/src/plugins/defaults/image-fallback/src/vision-caption.ts +12 -4
  943. package/src/plugins/defaults/image-recovery/recover.ts +6 -3
  944. package/src/plugins/defaults/index.ts +235 -78
  945. package/src/plugins/defaults/injection-presence.ts +80 -0
  946. package/src/plugins/defaults/injector-order.ts +54 -0
  947. package/src/plugins/defaults/max-tokens-continue/hooks/post-model-call.ts +5 -2
  948. package/src/plugins/defaults/memory/__tests__/301-create-watchdog-events.test.ts +110 -0
  949. package/src/plugins/defaults/memory/__tests__/activation-session-store.test.ts +41 -0
  950. package/src/plugins/defaults/memory/__tests__/bookmark-crud.test.ts +264 -0
  951. package/src/plugins/defaults/memory/__tests__/bookmark-schema.test.ts +181 -0
  952. package/src/plugins/defaults/memory/__tests__/clear-stale-processing-flags.test.ts +52 -0
  953. package/src/plugins/defaults/memory/__tests__/compaction-log-store-clickhouse.test.ts +432 -0
  954. package/src/plugins/defaults/memory/__tests__/conversation-queries.test.ts +843 -0
  955. package/src/plugins/defaults/memory/__tests__/conversation-row-batch-delete.test.ts +199 -0
  956. package/src/plugins/defaults/memory/__tests__/conversation-types.test.ts +36 -0
  957. package/src/plugins/defaults/memory/__tests__/db-async-query.test.ts +172 -0
  958. package/src/plugins/defaults/memory/__tests__/db-busy-timeout.test.ts +26 -0
  959. package/src/plugins/defaults/memory/__tests__/db-logs-attach.test.ts +113 -0
  960. package/src/plugins/defaults/memory/__tests__/db-maintenance.test.ts +238 -0
  961. package/src/plugins/defaults/memory/__tests__/db-memory-attach.test.ts +116 -0
  962. package/src/plugins/defaults/memory/__tests__/embedding-cache.test.ts +137 -0
  963. package/src/plugins/defaults/memory/__tests__/find-analysis-conversation.test.ts +197 -0
  964. package/src/plugins/defaults/memory/__tests__/find-most-recent-retrospective-for.test.ts +138 -0
  965. package/src/plugins/defaults/memory/__tests__/fork-message-copy.test.ts +232 -0
  966. package/src/plugins/defaults/memory/__tests__/jobs-store-enqueue-gate.test.ts +245 -0
  967. package/src/plugins/defaults/memory/__tests__/jobs-store-job-classes.test.ts +52 -0
  968. package/src/plugins/defaults/memory/__tests__/jobs-worker-v2-graph-trigger-embed.test.ts +115 -0
  969. package/src/plugins/defaults/memory/__tests__/jobs-worker-v2-schedule.test.ts +508 -0
  970. package/src/plugins/defaults/memory/__tests__/memory-retrospective-enqueue.test.ts +160 -0
  971. package/src/plugins/defaults/memory/__tests__/memory-retrospective-job.test.ts +1568 -0
  972. package/src/plugins/defaults/memory/__tests__/memory-retrospective-startup-cleanup.test.ts +549 -0
  973. package/src/plugins/defaults/memory/__tests__/memory-retrospective-state.test.ts +195 -0
  974. package/src/plugins/defaults/memory/__tests__/memory-v2-activation-log-store.test.ts +221 -0
  975. package/src/plugins/defaults/memory/__tests__/memory-v2-concept-frequency.test.ts +275 -0
  976. package/src/plugins/defaults/memory/__tests__/memory-v3-selections-migration.test.ts +103 -0
  977. package/src/plugins/defaults/memory/__tests__/prompt-override.test.ts +192 -0
  978. package/src/plugins/defaults/memory/__tests__/qdrant-client-sentinel.test.ts +49 -0
  979. package/src/plugins/defaults/memory/__tests__/table-relocation.test.ts +130 -0
  980. package/src/plugins/defaults/memory/activation-session-store.ts +43 -0
  981. package/src/plugins/defaults/memory/anisotropy.ts +443 -0
  982. package/src/plugins/defaults/memory/context-search/agent-protocol.ts +428 -0
  983. package/src/plugins/defaults/memory/context-search/agent-runner.ts +1311 -0
  984. package/src/plugins/defaults/memory/context-search/search.ts +297 -0
  985. package/src/plugins/defaults/memory/context-search/sources/conversations.ts +341 -0
  986. package/src/plugins/defaults/memory/context-search/sources/memory-v2.ts +600 -0
  987. package/src/plugins/defaults/memory/context-search/sources/memory.ts +101 -0
  988. package/src/plugins/defaults/memory/context-search/types.ts +48 -0
  989. package/src/plugins/defaults/memory/filing-service.ts +430 -0
  990. package/src/plugins/defaults/memory/find-most-recent-retrospective-for.ts +66 -0
  991. package/src/plugins/defaults/memory/graph/__tests__/conversation-graph-memory-registry.test.ts +119 -0
  992. package/src/plugins/defaults/memory/graph/__tests__/conversation-graph-memory-v2-routing.test.ts +663 -0
  993. package/src/plugins/defaults/memory/graph/__tests__/handle-remember-v2.test.ts +321 -0
  994. package/src/plugins/defaults/memory/graph/bootstrap.test.ts +287 -0
  995. package/src/plugins/defaults/memory/graph/bootstrap.ts +544 -0
  996. package/src/plugins/defaults/memory/graph/capability-seed.ts +454 -0
  997. package/src/plugins/defaults/memory/graph/consolidation.ts +712 -0
  998. package/src/plugins/defaults/memory/graph/conversation-graph-memory.ts +1181 -0
  999. package/src/plugins/defaults/memory/graph/decay.ts +195 -0
  1000. package/src/plugins/defaults/memory/graph/extraction-job.ts +77 -0
  1001. package/src/plugins/defaults/memory/graph/extraction.ts +1462 -0
  1002. package/src/plugins/defaults/memory/graph/graph-memory-state-store.ts +50 -0
  1003. package/src/plugins/defaults/memory/graph/graph-search.test.ts +132 -0
  1004. package/src/plugins/defaults/memory/graph/graph-search.ts +294 -0
  1005. package/src/plugins/defaults/memory/graph/image-ref-utils.ts +29 -0
  1006. package/src/plugins/defaults/memory/graph/injection.ts +469 -0
  1007. package/src/plugins/defaults/memory/graph/narrative.ts +267 -0
  1008. package/src/plugins/defaults/memory/graph/pattern-scan.ts +269 -0
  1009. package/src/plugins/defaults/memory/graph/retriever.test.ts +624 -0
  1010. package/src/plugins/defaults/memory/graph/retriever.ts +1357 -0
  1011. package/src/plugins/defaults/memory/graph/store.test.ts +1093 -0
  1012. package/src/plugins/defaults/memory/graph/store.ts +923 -0
  1013. package/src/plugins/defaults/memory/graph/tool-handlers.ts +195 -0
  1014. package/src/plugins/defaults/memory/graph/tools.ts +95 -0
  1015. package/src/plugins/defaults/memory/hooks/init.ts +26 -0
  1016. package/src/plugins/defaults/memory/hooks/post-compact.ts +115 -0
  1017. package/src/plugins/defaults/memory/hooks/shutdown.ts +14 -0
  1018. package/src/plugins/defaults/memory/hooks/user-prompt-submit.ts +371 -0
  1019. package/src/plugins/defaults/memory/indexer.ts +409 -0
  1020. package/src/plugins/defaults/memory/injectors.ts +388 -0
  1021. package/src/plugins/defaults/memory/job-handlers/__tests__/backfill-lexical-index.test.ts +310 -0
  1022. package/src/plugins/defaults/memory/job-handlers/__tests__/index-message-lexical.test.ts +265 -0
  1023. package/src/plugins/defaults/memory/job-handlers/backfill-lexical-index.ts +108 -0
  1024. package/src/plugins/defaults/memory/job-handlers/backfill.ts +107 -0
  1025. package/src/plugins/defaults/memory/job-handlers/embedding.test.ts +236 -0
  1026. package/src/plugins/defaults/memory/job-handlers/embedding.ts +133 -0
  1027. package/src/plugins/defaults/memory/job-handlers/index-maintenance.ts +117 -0
  1028. package/src/plugins/defaults/memory/job-handlers/index-message-lexical.ts +106 -0
  1029. package/src/plugins/defaults/memory/job-handlers.ts +220 -0
  1030. package/src/plugins/defaults/memory/jobs/__tests__/embed-concept-page.test.ts +565 -0
  1031. package/src/plugins/defaults/memory/jobs/embed-concept-page.ts +424 -0
  1032. package/src/plugins/defaults/memory/jobs/embed-pkb-file.test.ts +169 -0
  1033. package/src/plugins/defaults/memory/jobs/embed-pkb-file.ts +59 -0
  1034. package/src/plugins/defaults/memory/memory-recall-log-store.ts +172 -0
  1035. package/src/plugins/defaults/memory/memory-retrospective-constants.ts +60 -0
  1036. package/src/plugins/defaults/memory/memory-retrospective-enqueue.ts +131 -0
  1037. package/src/plugins/defaults/memory/memory-retrospective-fork-boundary.ts +94 -0
  1038. package/src/plugins/defaults/memory/memory-retrospective-job.ts +958 -0
  1039. package/src/plugins/defaults/memory/memory-retrospective-startup-cleanup.ts +264 -0
  1040. package/src/plugins/defaults/memory/memory-retrospective-state.ts +259 -0
  1041. package/src/plugins/defaults/memory/memory-retrospective-trigger-check.ts +91 -0
  1042. package/src/plugins/defaults/memory/memory-v2-activation-log-store.ts +216 -0
  1043. package/src/plugins/defaults/memory/memory-v2-concept-frequency.ts +173 -0
  1044. package/src/plugins/defaults/memory/package.json +14 -0
  1045. package/src/plugins/defaults/memory/persistence-hooks.ts +119 -0
  1046. package/src/plugins/defaults/memory/pkb/autoinject.ts +61 -0
  1047. package/src/plugins/defaults/memory/pkb/context.ts +50 -0
  1048. package/src/plugins/defaults/memory/pkb/pkb-index.test.ts +371 -0
  1049. package/src/plugins/defaults/memory/pkb/pkb-index.ts +256 -0
  1050. package/src/plugins/defaults/memory/pkb/pkb-reconcile.test.ts +254 -0
  1051. package/src/plugins/defaults/memory/pkb/pkb-reconcile.ts +144 -0
  1052. package/src/plugins/defaults/memory/pkb/pkb-search.test.ts +589 -0
  1053. package/src/plugins/defaults/memory/pkb/pkb-search.ts +178 -0
  1054. package/src/plugins/defaults/memory/pkb/types.ts +67 -0
  1055. package/src/plugins/defaults/memory/rerank-local.ts +374 -0
  1056. package/src/plugins/defaults/memory/routes/__tests__/memory-v2-routes.test.ts +165 -0
  1057. package/src/plugins/defaults/memory/routes/__tests__/memory-v2-simulate-route.test.ts +347 -0
  1058. package/src/plugins/defaults/memory/routes/memory-eval-routes.ts +179 -0
  1059. package/src/plugins/defaults/memory/routes/memory-item-routes.test.ts +922 -0
  1060. package/src/plugins/defaults/memory/routes/memory-item-routes.ts +814 -0
  1061. package/src/plugins/defaults/memory/routes/memory-v2-routes.ts +850 -0
  1062. package/src/plugins/defaults/memory/routes/memory-v3-routes.ts +125 -0
  1063. package/src/plugins/defaults/memory/routes/messages-lexical-routes.ts +67 -0
  1064. package/src/plugins/defaults/memory/search/semantic.ts +241 -0
  1065. package/src/plugins/defaults/memory/segmenter.ts +76 -0
  1066. package/src/plugins/defaults/memory/startup.ts +234 -0
  1067. package/src/plugins/defaults/memory/tail-reinjection-strip.ts +65 -0
  1068. package/src/plugins/defaults/memory/task-memory-cleanup.ts +241 -0
  1069. package/src/plugins/defaults/memory/tools.test.ts +382 -0
  1070. package/src/plugins/defaults/memory/tools.ts +87 -0
  1071. package/src/plugins/defaults/memory/v2/__tests__/activation-store.test.ts +207 -0
  1072. package/src/plugins/defaults/memory/v2/__tests__/activation.test.ts +1273 -0
  1073. package/src/plugins/defaults/memory/v2/__tests__/backfill-jobs.test.ts +510 -0
  1074. package/src/plugins/defaults/memory/v2/__tests__/cli-command-store.test.ts +432 -0
  1075. package/src/plugins/defaults/memory/v2/__tests__/consolidation-job.test.ts +744 -0
  1076. package/src/plugins/defaults/memory/v2/__tests__/consolidation-prompt-flag-gating-guard.test.ts +205 -0
  1077. package/src/plugins/defaults/memory/v2/__tests__/frontmatter-sweep.test.ts +136 -0
  1078. package/src/plugins/defaults/memory/v2/__tests__/harness-compare.test.ts +186 -0
  1079. package/src/plugins/defaults/memory/v2/__tests__/harness-oracle.test.ts +257 -0
  1080. package/src/plugins/defaults/memory/v2/__tests__/harness-replay-input.test.ts +230 -0
  1081. package/src/plugins/defaults/memory/v2/__tests__/harness-runner.test.ts +135 -0
  1082. package/src/plugins/defaults/memory/v2/__tests__/injection-events.test.ts +318 -0
  1083. package/src/plugins/defaults/memory/v2/__tests__/injection.test.ts +2308 -0
  1084. package/src/plugins/defaults/memory/v2/__tests__/memory-v2-startup.test.ts +86 -0
  1085. package/src/plugins/defaults/memory/v2/__tests__/migration.test.ts +940 -0
  1086. package/src/plugins/defaults/memory/v2/__tests__/page-index.test.ts +760 -0
  1087. package/src/plugins/defaults/memory/v2/__tests__/prompts-consolidation.test.ts +332 -0
  1088. package/src/plugins/defaults/memory/v2/__tests__/qdrant.test.ts +974 -0
  1089. package/src/plugins/defaults/memory/v2/__tests__/reranker.test.ts +338 -0
  1090. package/src/plugins/defaults/memory/v2/__tests__/router.test.ts +1198 -0
  1091. package/src/plugins/defaults/memory/v2/__tests__/sim.test.ts +704 -0
  1092. package/src/plugins/defaults/memory/v2/__tests__/skill-content.test.ts +115 -0
  1093. package/src/plugins/defaults/memory/v2/__tests__/skill-store.test.ts +986 -0
  1094. package/src/plugins/defaults/memory/v2/__tests__/sparse-bm25.test.ts +292 -0
  1095. package/src/plugins/defaults/memory/v2/__tests__/static-context.test.ts +223 -0
  1096. package/src/plugins/defaults/memory/v2/__tests__/sweep-job.test.ts +530 -0
  1097. package/src/plugins/defaults/memory/v2/activation-store.ts +185 -0
  1098. package/src/plugins/defaults/memory/v2/activation.ts +560 -0
  1099. package/src/plugins/defaults/memory/v2/backfill-jobs.ts +296 -0
  1100. package/src/plugins/defaults/memory/v2/cli-command-store.ts +341 -0
  1101. package/src/plugins/defaults/memory/v2/consolidation-job.ts +550 -0
  1102. package/src/plugins/defaults/memory/v2/frontmatter-sweep.ts +98 -0
  1103. package/src/plugins/defaults/memory/v2/harness/compare.ts +57 -0
  1104. package/src/plugins/defaults/memory/v2/harness/oracle.ts +148 -0
  1105. package/src/plugins/defaults/memory/v2/harness/replay-input.ts +243 -0
  1106. package/src/plugins/defaults/memory/v2/harness/retriever.ts +74 -0
  1107. package/src/plugins/defaults/memory/v2/harness/router-retriever.ts +43 -0
  1108. package/src/plugins/defaults/memory/v2/injected-block-slugs.ts +79 -0
  1109. package/src/plugins/defaults/memory/v2/injection-events.ts +101 -0
  1110. package/src/plugins/defaults/memory/v2/injection.ts +932 -0
  1111. package/src/plugins/defaults/memory/v2/memory-v2-startup.test.ts +203 -0
  1112. package/src/plugins/defaults/memory/v2/memory-v2-startup.ts +378 -0
  1113. package/src/plugins/defaults/memory/v2/migration.ts +774 -0
  1114. package/src/plugins/defaults/memory/v2/page-index.ts +459 -0
  1115. package/src/plugins/defaults/memory/v2/page-store.ts +443 -0
  1116. package/src/plugins/defaults/memory/v2/prompts/consolidation.ts +868 -0
  1117. package/src/plugins/defaults/memory/v2/prompts/router.ts +148 -0
  1118. package/src/plugins/defaults/memory/v2/qdrant.ts +939 -0
  1119. package/src/plugins/defaults/memory/v2/reranker.ts +184 -0
  1120. package/src/plugins/defaults/memory/v2/router.ts +602 -0
  1121. package/src/plugins/defaults/memory/v2/sim.ts +310 -0
  1122. package/src/plugins/defaults/memory/v2/skill-content.ts +61 -0
  1123. package/src/plugins/defaults/memory/v2/skill-store.ts +431 -0
  1124. package/src/plugins/defaults/memory/v2/sparse-bm25.ts +245 -0
  1125. package/src/plugins/defaults/memory/v2/static-context.ts +100 -0
  1126. package/src/plugins/defaults/memory/v2/sweep-job.ts +323 -0
  1127. package/src/plugins/defaults/memory/v3/__tests__/candidate-match.test.ts +316 -0
  1128. package/src/plugins/defaults/memory/v3/__tests__/carry-integration.test.ts +1163 -0
  1129. package/src/plugins/defaults/memory/v3/__tests__/dense.test.ts +211 -0
  1130. package/src/plugins/defaults/memory/v3/__tests__/edge.test.ts +247 -0
  1131. package/src/plugins/defaults/memory/v3/__tests__/injection.test.ts +685 -0
  1132. package/src/plugins/defaults/memory/v3/__tests__/live-integration.test.ts +365 -0
  1133. package/src/plugins/defaults/memory/v3/__tests__/maintain-job.test.ts +1012 -0
  1134. package/src/plugins/defaults/memory/v3/__tests__/orchestrate.test.ts +977 -0
  1135. package/src/plugins/defaults/memory/v3/__tests__/pool-select.test.ts +599 -0
  1136. package/src/plugins/defaults/memory/v3/__tests__/render-injection.test.ts +128 -0
  1137. package/src/plugins/defaults/memory/v3/__tests__/section-dense-store.test.ts +756 -0
  1138. package/src/plugins/defaults/memory/v3/__tests__/selection-log-store.test.ts +422 -0
  1139. package/src/plugins/defaults/memory/v3/__tests__/shadow-integration.test.ts +501 -0
  1140. package/src/plugins/defaults/memory/v3/__tests__/shadow-plugin.test.ts +885 -0
  1141. package/src/plugins/defaults/memory/v3/__tests__/tuning-profile.test.ts +96 -0
  1142. package/src/plugins/defaults/memory/v3/candidate-match.ts +197 -0
  1143. package/src/plugins/defaults/memory/v3/capabilities.ts +88 -0
  1144. package/src/plugins/defaults/memory/v3/card.ts +160 -0
  1145. package/src/plugins/defaults/memory/v3/dense.ts +108 -0
  1146. package/src/plugins/defaults/memory/v3/edge.ts +252 -0
  1147. package/src/plugins/defaults/memory/v3/entity-lane.test.ts +124 -0
  1148. package/src/plugins/defaults/memory/v3/entity-lane.ts +113 -0
  1149. package/src/plugins/defaults/memory/v3/ever-injected-store.test.ts +307 -0
  1150. package/src/plugins/defaults/memory/v3/ever-injected-store.ts +278 -0
  1151. package/src/plugins/defaults/memory/v3/hot-set.test.ts +143 -0
  1152. package/src/plugins/defaults/memory/v3/hot-set.ts +85 -0
  1153. package/src/plugins/defaults/memory/v3/injector.ts +423 -0
  1154. package/src/plugins/defaults/memory/v3/learned-edges.test.ts +169 -0
  1155. package/src/plugins/defaults/memory/v3/learned-edges.ts +178 -0
  1156. package/src/plugins/defaults/memory/v3/maintain-job.ts +988 -0
  1157. package/src/plugins/defaults/memory/v3/orchestrate.ts +483 -0
  1158. package/src/plugins/defaults/memory/v3/page-content.ts +102 -0
  1159. package/src/plugins/defaults/memory/v3/pool-select.test.ts +147 -0
  1160. package/src/plugins/defaults/memory/v3/pool-select.ts +586 -0
  1161. package/src/plugins/defaults/memory/v3/prune.test.ts +760 -0
  1162. package/src/plugins/defaults/memory/v3/prune.ts +469 -0
  1163. package/src/plugins/defaults/memory/v3/render-injection.ts +92 -0
  1164. package/src/plugins/defaults/memory/v3/section-dense-store.ts +471 -0
  1165. package/src/plugins/defaults/memory/v3/section-needle.ts +215 -0
  1166. package/src/plugins/defaults/memory/v3/selection-log-store.ts +277 -0
  1167. package/src/plugins/defaults/memory/v3/shadow-plugin.ts +656 -0
  1168. package/src/plugins/defaults/memory/v3/tuning-profile.ts +91 -0
  1169. package/src/plugins/defaults/memory/v3/types.ts +130 -0
  1170. package/src/plugins/defaults/memory/v3-eval/eval-packets.ts +731 -0
  1171. package/src/plugins/defaults/session/injectors.ts +84 -0
  1172. package/src/plugins/defaults/session/package.json +14 -0
  1173. package/src/plugins/defaults/surface-completion-nudge/hooks/post-model-call.ts +6 -2
  1174. package/src/plugins/defaults/task-progress-nudge/hooks/post-tool-use.ts +39 -45
  1175. package/src/plugins/defaults/title-generate/hooks/stop.ts +4 -5
  1176. package/src/plugins/defaults/title-generate/hooks/user-prompt-submit.ts +3 -3
  1177. package/src/plugins/defaults/tool-error/hooks/post-tool-use.ts +5 -3
  1178. package/src/plugins/defaults/turn-context/injectors.ts +53 -0
  1179. package/src/plugins/defaults/turn-context/package.json +14 -0
  1180. package/src/plugins/defaults/turn-context/unified-turn-context.ts +235 -0
  1181. package/src/plugins/defaults/workspace/injectors.ts +295 -0
  1182. package/src/plugins/defaults/workspace/package.json +14 -0
  1183. package/src/plugins/disabled-state.ts +31 -0
  1184. package/src/plugins/injector-registry.ts +127 -0
  1185. package/src/plugins/job-handler-registry.ts +94 -0
  1186. package/src/plugins/mtime-cache.ts +27 -47
  1187. package/src/plugins/pipeline.ts +1 -1
  1188. package/src/plugins/registry.ts +40 -132
  1189. package/src/plugins/types.ts +44 -1
  1190. package/src/prompts/persona-resolver.ts +43 -11
  1191. package/src/prompts/system-prompt.ts +1 -1
  1192. package/src/prompts/templates/BOOTSTRAP.md +16 -119
  1193. package/src/prompts/templates/SOUL.md +4 -0
  1194. package/src/providers/__tests__/connection-model-compat.test.ts +1 -1
  1195. package/src/providers/__tests__/dispatch-connection-routing.test.ts +1 -1
  1196. package/src/providers/__tests__/inference.test.ts +6 -6
  1197. package/src/providers/__tests__/placeholder-sentinels.test.ts +80 -0
  1198. package/src/providers/__tests__/retry-callsite.test.ts +31 -3
  1199. package/src/providers/__tests__/satellite-connection-routing.test.ts +1 -1
  1200. package/src/providers/anthropic/client.ts +23 -24
  1201. package/src/providers/call-site-routing.ts +42 -1
  1202. package/src/providers/connection-resolution.ts +7 -3
  1203. package/src/providers/inference/__tests__/base-url-route-validation.test.ts +7 -8
  1204. package/src/providers/inference/__tests__/base-url-security.test.ts +8 -8
  1205. package/src/providers/inference/__tests__/connections-label.test.ts +5 -5
  1206. package/src/providers/inference/__tests__/connections-openai-compatible.test.ts +4 -4
  1207. package/src/providers/inference/backfill.ts +9 -5
  1208. package/src/providers/inference/connections.ts +2 -2
  1209. package/src/providers/inference/resolve-auth.ts +3 -3
  1210. package/src/providers/model-catalog.ts +38 -0
  1211. package/src/providers/openai/chat-completions-provider.ts +14 -1
  1212. package/src/providers/openai/responses-provider.ts +18 -0
  1213. package/src/providers/placeholder-sentinels.ts +50 -15
  1214. package/src/providers/provider-send-message.ts +7 -1
  1215. package/src/providers/ratelimit.ts +6 -0
  1216. package/src/providers/registry.ts +3 -1
  1217. package/src/providers/retry.ts +22 -0
  1218. package/src/providers/stop-reasons.ts +32 -0
  1219. package/src/providers/tool-progress-events.test.ts +50 -0
  1220. package/src/providers/tool-progress-events.ts +99 -0
  1221. package/src/providers/types.ts +14 -1
  1222. package/src/providers/usage-tracking.ts +7 -1
  1223. package/src/runtime/__tests__/agent-wake.test.ts +100 -29
  1224. package/src/runtime/__tests__/background-job-runner.test.ts +19 -2
  1225. package/src/runtime/__tests__/channel-verification-service.test.ts +9 -5
  1226. package/src/runtime/__tests__/guardian-vellum-migration.test.ts +37 -32
  1227. package/src/runtime/__tests__/is-guardian-bound-for-channel.test.ts +3 -3
  1228. package/src/runtime/__tests__/local-principal-trust.test.ts +16 -18
  1229. package/src/runtime/__tests__/member-verdict-cache.test.ts +119 -0
  1230. package/src/runtime/__tests__/pre-first-message-gate.test.ts +1 -1
  1231. package/src/runtime/__tests__/trust-verdict-consumer.test.ts +115 -168
  1232. package/src/runtime/access-request-helper.ts +4 -5
  1233. package/src/runtime/actor-trust-resolver.ts +44 -17
  1234. package/src/runtime/agent-wake.ts +69 -12
  1235. package/src/runtime/anchored-guardian.test.ts +7 -54
  1236. package/src/runtime/anchored-guardian.ts +4 -53
  1237. package/src/runtime/assistant-event-hub.ts +1 -1
  1238. package/src/runtime/assistant-event.ts +86 -12
  1239. package/src/runtime/assistant-stream-state.ts +12 -74
  1240. package/src/runtime/background-job-runner.ts +30 -10
  1241. package/src/runtime/channel-reply-delivery.ts +6 -11
  1242. package/src/runtime/channel-retry-sweep.ts +23 -3
  1243. package/src/runtime/channel-verification-service.ts +9 -9
  1244. package/src/runtime/confirmation-request-guardian-bridge.ts +1 -1
  1245. package/src/runtime/finalize-event-delivery.ts +2 -2
  1246. package/src/runtime/guardian-action-service.ts +1 -2
  1247. package/src/runtime/guardian-reply-router.ts +1 -1
  1248. package/src/runtime/guardian-vellum-migration.ts +18 -16
  1249. package/src/runtime/http-server.ts +45 -1
  1250. package/src/runtime/invite-redemption-service.ts +36 -13
  1251. package/src/runtime/invite-service.ts +6 -4
  1252. package/src/runtime/local-actor-identity.test.ts +108 -0
  1253. package/src/runtime/local-actor-identity.ts +27 -20
  1254. package/src/runtime/member-verdict-cache.ts +0 -0
  1255. package/src/runtime/migrations/__tests__/gcs-signed-url.test.ts +28 -0
  1256. package/src/runtime/migrations/vbundle-streaming-importer.ts +1 -1
  1257. package/src/runtime/pre-first-message-gate.ts +1 -1
  1258. package/src/runtime/routes/__tests__/acp-routes.test.ts +74 -8
  1259. package/src/runtime/routes/__tests__/backup-routes.test.ts +1 -1
  1260. package/src/runtime/routes/__tests__/bookmark-routes.test.ts +3 -3
  1261. package/src/runtime/routes/__tests__/channel-verification-revoke.test.ts +17 -23
  1262. package/src/runtime/routes/__tests__/connection-routes-vs-cli-parity.test.ts +3 -3
  1263. package/src/runtime/routes/__tests__/consolidation-routes.test.ts +5 -5
  1264. package/src/runtime/routes/__tests__/contact-routes.test.ts +188 -14
  1265. package/src/runtime/routes/__tests__/conversation-compaction-routes.test.ts +5 -5
  1266. package/src/runtime/routes/__tests__/conversation-list-routes.test.ts +5 -5
  1267. package/src/runtime/routes/__tests__/conversation-management-routes.test.ts +3 -3
  1268. package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +12 -12
  1269. package/src/runtime/routes/__tests__/conversation-surface-routes.test.ts +4 -4
  1270. package/src/runtime/routes/__tests__/global-search-routes.test.ts +1 -2
  1271. package/src/runtime/routes/__tests__/home-feed-routes.test.ts +3 -3
  1272. package/src/runtime/routes/__tests__/inference-provider-connection-routes.test.ts +3 -3
  1273. package/src/runtime/routes/__tests__/invite-relay-routes.test.ts +21 -7
  1274. package/src/runtime/routes/__tests__/memory-worker-routes.test.ts +306 -0
  1275. package/src/runtime/routes/__tests__/migration-import-allowed-hosts-env.test.ts +70 -0
  1276. package/src/runtime/routes/__tests__/plugins-routes.test.ts +395 -26
  1277. package/src/runtime/routes/__tests__/ps-routes.test.ts +114 -0
  1278. package/src/runtime/routes/__tests__/retrospective-routes.test.ts +6 -6
  1279. package/src/runtime/routes/__tests__/schedule-routes-create.test.ts +72 -0
  1280. package/src/runtime/routes/__tests__/slack-channel-routes.test.ts +4 -4
  1281. package/src/runtime/routes/__tests__/surface-action-routes.test.ts +3 -2
  1282. package/src/runtime/routes/__tests__/surface-content-routes.test.ts +1 -1
  1283. package/src/runtime/routes/__tests__/wake-conversation-routes.test.ts +125 -0
  1284. package/src/runtime/routes/acp-routes-event-log.test.ts +283 -0
  1285. package/src/runtime/routes/acp-routes-list.test.ts +24 -25
  1286. package/src/runtime/routes/acp-routes.test.ts +4 -4
  1287. package/src/runtime/routes/acp-routes.ts +31 -4
  1288. package/src/runtime/routes/app-management-routes.ts +9 -9
  1289. package/src/runtime/routes/app-routes.ts +3 -7
  1290. package/src/runtime/routes/approval-routes.ts +2 -4
  1291. package/src/runtime/routes/attachment-routes.ts +2 -2
  1292. package/src/runtime/routes/audit-routes.ts +2 -3
  1293. package/src/runtime/routes/background-tool-routes.ts +34 -5
  1294. package/src/runtime/routes/background-wake-routes.ts +19 -5
  1295. package/src/runtime/routes/backup-routes.ts +1 -1
  1296. package/src/runtime/routes/bookmark-routes.ts +3 -3
  1297. package/src/runtime/routes/brain-graph-routes.ts +2 -2
  1298. package/src/runtime/routes/btw-routes.ts +1 -1
  1299. package/src/runtime/routes/canonical-guardian-expiry-sweep.ts +1 -1
  1300. package/src/runtime/routes/channel-delivery-routes.ts +1 -1
  1301. package/src/runtime/routes/channel-readiness-routes.ts +7 -3
  1302. package/src/runtime/routes/chatgpt-subscription-auth-routes.ts +3 -8
  1303. package/src/runtime/routes/consolidation-routes.ts +6 -6
  1304. package/src/runtime/routes/contact-routes.ts +98 -32
  1305. package/src/runtime/routes/conversation-attention-routes.ts +2 -2
  1306. package/src/runtime/routes/conversation-cli-routes.ts +32 -7
  1307. package/src/runtime/routes/conversation-compaction-routes.ts +4 -4
  1308. package/src/runtime/routes/conversation-list-routes.ts +9 -37
  1309. package/src/runtime/routes/conversation-management-routes.ts +9 -46
  1310. package/src/runtime/routes/conversation-query-routes.ts +35 -11
  1311. package/src/runtime/routes/conversation-routes.ts +174 -23
  1312. package/src/runtime/routes/conversation-starter-routes.ts +11 -5
  1313. package/src/runtime/routes/conversations-import-routes.ts +10 -6
  1314. package/src/runtime/routes/debug-routes.ts +3 -3
  1315. package/src/runtime/routes/defer-routes.ts +4 -4
  1316. package/src/runtime/routes/documents-routes.ts +1 -1
  1317. package/src/runtime/routes/empty-state-greeting-cache.ts +1 -1
  1318. package/src/runtime/routes/events-routes.ts +4 -4
  1319. package/src/runtime/routes/filing-routes.ts +1 -1
  1320. package/src/runtime/routes/global-search-routes.ts +4 -4
  1321. package/src/runtime/routes/group-routes.ts +1 -1
  1322. package/src/runtime/routes/guardian-action-routes.ts +1 -1
  1323. package/src/runtime/routes/heartbeat-routes.ts +2 -2
  1324. package/src/runtime/routes/home-feed-routes.ts +10 -5
  1325. package/src/runtime/routes/identity-routes.ts +33 -14
  1326. package/src/runtime/routes/inbound-conversation.ts +3 -3
  1327. package/src/runtime/routes/inbound-message-handler.ts +25 -25
  1328. package/src/runtime/routes/inbound-stages/acl-enforcement.test.ts +8 -4
  1329. package/src/runtime/routes/inbound-stages/acl-enforcement.ts +13 -16
  1330. package/src/runtime/routes/inbound-stages/background-dispatch.test.ts +5 -5
  1331. package/src/runtime/routes/inbound-stages/background-dispatch.ts +15 -19
  1332. package/src/runtime/routes/inbound-stages/edit-intercept.ts +12 -12
  1333. package/src/runtime/routes/inbound-stages/escalation-intercept.ts +2 -2
  1334. package/src/runtime/routes/inbound-stages/guardian-reply-intercept.test.ts +1 -1
  1335. package/src/runtime/routes/inbound-stages/guardian-reply-intercept.ts +1 -1
  1336. package/src/runtime/routes/inbound-stages/reaction-intercept.ts +27 -8
  1337. package/src/runtime/routes/inbound-stages/secret-ingress-check.ts +5 -2
  1338. package/src/runtime/routes/inbound-stages/transcribe-audio.test.ts +1 -1
  1339. package/src/runtime/routes/inbound-stages/transcribe-audio.ts +1 -1
  1340. package/src/runtime/routes/index.ts +8 -4
  1341. package/src/runtime/routes/inference-profile-session-handler.ts +2 -2
  1342. package/src/runtime/routes/inference-profile-session-reaper.ts +1 -1
  1343. package/src/runtime/routes/inference-provider-connection-routes.ts +5 -2
  1344. package/src/runtime/routes/integrations/slack/__tests__/share.test.ts +3 -4
  1345. package/src/runtime/routes/integrations/slack/share.ts +1 -1
  1346. package/src/runtime/routes/internal-telemetry-routes.ts +1 -1
  1347. package/src/runtime/routes/log-export/__tests__/workspace-allowlist-error-contract.test.ts +1 -1
  1348. package/src/runtime/routes/log-export/workspace-allowlist.ts +1 -1
  1349. package/src/runtime/routes/log-export-routes.ts +2 -2
  1350. package/src/runtime/routes/memory-worker-routes.ts +227 -0
  1351. package/src/runtime/routes/migration-rollback-routes.ts +11 -12
  1352. package/src/runtime/routes/migration-routes.ts +211 -10
  1353. package/src/runtime/routes/notification-routes.ts +2 -2
  1354. package/src/runtime/routes/platform-routes.ts +3 -0
  1355. package/src/runtime/routes/playground/helpers.ts +3 -3
  1356. package/src/runtime/routes/plugins-routes.ts +180 -7
  1357. package/src/runtime/routes/ps-routes.ts +37 -66
  1358. package/src/runtime/routes/publish-routes.ts +3 -3
  1359. package/src/runtime/routes/rename-conversation-routes.ts +1 -1
  1360. package/src/runtime/routes/retrospective-routes.ts +5 -5
  1361. package/src/runtime/routes/schedule-routes.ts +88 -45
  1362. package/src/runtime/routes/secret-routes.ts +11 -10
  1363. package/src/runtime/routes/sequence-routes.ts +1 -1
  1364. package/src/runtime/routes/settings-routes.ts +26 -12
  1365. package/src/runtime/routes/skills-routes.ts +11 -1
  1366. package/src/runtime/routes/slack-channel-routes.ts +4 -4
  1367. package/src/runtime/routes/subagents-routes.ts +2 -2
  1368. package/src/runtime/routes/surface-conversation-resolver.ts +1 -1
  1369. package/src/runtime/routes/task-routes.ts +18 -29
  1370. package/src/runtime/routes/telemetry-routes.ts +1 -1
  1371. package/src/runtime/routes/trace-event-routes.ts +1 -1
  1372. package/src/runtime/routes/types.ts +7 -0
  1373. package/src/runtime/routes/usage-routes.ts +2 -2
  1374. package/src/runtime/routes/wake-conversation-routes.ts +44 -8
  1375. package/src/runtime/routes/wipe-conversation-routes.ts +3 -3
  1376. package/src/runtime/routes/work-items-routes.test.ts +1 -1
  1377. package/src/runtime/routes/work-items-routes.ts +1 -1
  1378. package/src/runtime/runtime-mode.ts +5 -7
  1379. package/src/runtime/services/__tests__/analyze-conversation.test.ts +2 -2
  1380. package/src/runtime/services/__tests__/auto-analysis-enqueue.test.ts +362 -0
  1381. package/src/runtime/services/__tests__/auto-analysis-guard.test.ts +57 -0
  1382. package/src/runtime/services/__tests__/conversation-analyze-job.test.ts +178 -0
  1383. package/src/runtime/services/__tests__/conversation-serializer.test.ts +1 -1
  1384. package/src/runtime/services/analyze-conversation.ts +22 -13
  1385. package/src/runtime/services/auto-analysis-enqueue.ts +130 -0
  1386. package/src/runtime/services/auto-analysis-guard.ts +13 -0
  1387. package/src/runtime/services/conversation-analyze-job.ts +53 -0
  1388. package/src/runtime/services/conversation-serializer.ts +10 -53
  1389. package/src/runtime/tool-grant-request-helper.ts +1 -1
  1390. package/src/runtime/trust-verdict-consumer.ts +36 -41
  1391. package/src/schedule/__tests__/run-script.test.ts +21 -0
  1392. package/src/schedule/retry-policy.ts +8 -8
  1393. package/src/schedule/run-script.ts +16 -4
  1394. package/src/schedule/schedule-recovery.ts +8 -5
  1395. package/src/schedule/schedule-store.ts +270 -162
  1396. package/src/schedule/schedule-usage-store.ts +2 -2
  1397. package/src/schedule/scheduler-types.ts +6 -0
  1398. package/src/schedule/scheduler.ts +218 -121
  1399. package/src/security/auth-fallback-events-store.ts +94 -0
  1400. package/src/security/redaction.ts +18 -14
  1401. package/src/sequence/engine.ts +1 -1
  1402. package/src/sequence/store.ts +3 -3
  1403. package/src/services/published-app-updater.ts +2 -2
  1404. package/src/signals/cancel.ts +1 -1
  1405. package/src/signals/user-message.ts +2 -2
  1406. package/src/skills/__tests__/categories-cache.test.ts +38 -0
  1407. package/src/skills/catalog-install.ts +2 -1
  1408. package/src/skills/categories-cache.ts +40 -5
  1409. package/src/skills/clawhub.ts +1 -0
  1410. package/src/skills/install-meta.ts +44 -0
  1411. package/src/skills/managed-store.ts +120 -3
  1412. package/src/skills/skillssh-registry.ts +1 -0
  1413. package/src/skills/version-hash.ts +20 -0
  1414. package/src/subagent/__tests__/consult-prompt.test.ts +35 -0
  1415. package/src/subagent/__tests__/consult-transcript.test.ts +184 -0
  1416. package/src/subagent/consult-prompt.ts +57 -0
  1417. package/src/subagent/consult-transcript.ts +86 -0
  1418. package/src/subagent/index.ts +1 -1
  1419. package/src/subagent/manager.ts +502 -72
  1420. package/src/subagent/types.ts +14 -3
  1421. package/src/subagent/validate-allowlists.ts +65 -0
  1422. package/src/tasks/task-compiler.ts +2 -2
  1423. package/src/tasks/task-runner.ts +3 -3
  1424. package/src/tasks/task-store.ts +2 -2
  1425. package/src/telemetry/__tests__/watchdog-events-store.test.ts +161 -0
  1426. package/src/telemetry/skill-loaded-events-store.test.ts +152 -0
  1427. package/src/telemetry/skill-loaded-events-store.ts +95 -0
  1428. package/src/telemetry/tool-executed-events-store.test.ts +219 -0
  1429. package/src/telemetry/tool-executed-events-store.ts +102 -0
  1430. package/src/telemetry/tool-usage-store.ts +114 -0
  1431. package/src/telemetry/trace-event-store.ts +133 -0
  1432. package/src/telemetry/turn-events-store.ts +173 -0
  1433. package/src/telemetry/turn-trace-store.test.ts +736 -0
  1434. package/src/telemetry/turn-trace-store.ts +364 -0
  1435. package/src/telemetry/usage-telemetry-reporter.test.ts +12 -12
  1436. package/src/telemetry/usage-telemetry-reporter.ts +46 -17
  1437. package/src/telemetry/watchdog-events-store.ts +87 -0
  1438. package/src/tools/__tests__/run-standalone.test.ts +19 -0
  1439. package/src/tools/acp/list-agents.test.ts +0 -6
  1440. package/src/tools/acp/spawn.test.ts +18 -7
  1441. package/src/tools/acp/spawn.ts +1 -0
  1442. package/src/tools/apps/executors.ts +2 -2
  1443. package/src/tools/apps/resolve-app-id.ts +1 -1
  1444. package/src/tools/background-tool-registry.ts +61 -0
  1445. package/src/tools/browser/cdp-client/cdp-inspect/__tests__/discovery.test.ts +3 -3
  1446. package/src/tools/document/document-comment-tool.test.ts +2 -2
  1447. package/src/tools/filesystem/write.ts +5 -4
  1448. package/src/tools/host-terminal/host-shell.test.ts +397 -0
  1449. package/src/tools/host-terminal/host-shell.ts +203 -14
  1450. package/src/tools/policy-context.ts +21 -0
  1451. package/src/tools/registry.ts +41 -4
  1452. package/src/tools/run-standalone.ts +101 -0
  1453. package/src/tools/schedule/create.ts +2 -2
  1454. package/src/tools/schedule/delete.ts +1 -1
  1455. package/src/tools/schedule/update.ts +1 -1
  1456. package/src/tools/skills/find-similar-skills.test.ts +277 -0
  1457. package/src/tools/skills/find-similar-skills.ts +120 -0
  1458. package/src/tools/skills/scaffold-managed.ts +123 -4
  1459. package/src/tools/skills/skill-script-runner.ts +17 -0
  1460. package/src/tools/subagent/consult-deadline.ts +49 -0
  1461. package/src/tools/subagent/read.ts +1 -1
  1462. package/src/tools/subagent/spawn.ts +234 -5
  1463. package/src/tools/terminal/safe-env.ts +1 -0
  1464. package/src/tools/terminal/shell.test.ts +177 -0
  1465. package/src/tools/terminal/shell.ts +98 -4
  1466. package/src/tools/tool-approval-handler.ts +1 -1
  1467. package/src/tools/tool-manifest.ts +1 -1
  1468. package/src/tools/tool-types.ts +445 -0
  1469. package/src/tools/types.ts +28 -17
  1470. package/src/usage/types.ts +7 -0
  1471. package/src/util/__tests__/process-tree.test.ts +123 -0
  1472. package/src/util/device-id.ts +52 -12
  1473. package/src/util/logger.ts +9 -0
  1474. package/src/util/process-tree.ts +203 -0
  1475. package/src/util/sqlite-retry.ts +90 -0
  1476. package/src/watcher/__tests__/telemetry.test.ts +2 -2
  1477. package/src/watcher/telemetry.ts +2 -2
  1478. package/src/watcher/watcher-store.ts +3 -3
  1479. package/src/work-items/work-item-store.ts +2 -2
  1480. package/src/workflows/engine-integration.test.ts +2 -2
  1481. package/src/workflows/engine.test.ts +2 -2
  1482. package/src/workflows/fanout-load.test.ts +2 -2
  1483. package/src/workflows/journal-store.test.ts +3 -3
  1484. package/src/workflows/journal-store.ts +1 -1
  1485. package/src/workflows/leaf-runner.test.ts +9 -6
  1486. package/src/workflows/leaf-runner.ts +1 -1
  1487. package/src/workspace/heartbeat-service.ts +29 -0
  1488. package/src/workspace/migrations/011-backfill-installation-id.ts +1 -1
  1489. package/src/workspace/migrations/028-recover-conversations-from-disk-view.ts +5 -2
  1490. package/src/workspace/migrations/031-drop-user-md.ts +258 -148
  1491. package/src/workspace/migrations/041-backfill-google-gmail-settings-scope.ts +1 -1
  1492. package/src/workspace/migrations/070-memory-v2-summary-schema-rebuild.ts +1 -1
  1493. package/src/workspace/migrations/112-remove-advisor-callsite-override.ts +64 -0
  1494. package/src/workspace/migrations/113-swap-balanced-profile-to-glm-5p2.ts +101 -0
  1495. package/src/workspace/migrations/114-swap-quality-profile-to-opus.ts +83 -0
  1496. package/src/workspace/migrations/115-drop-frontier-profile.ts +129 -0
  1497. package/src/workspace/migrations/116-rename-memory-plugin-disabled-sentinel.ts +53 -0
  1498. package/src/workspace/migrations/117-normalize-stale-lean-memory-v3-defaults.ts +116 -0
  1499. package/src/workspace/migrations/118-seed-now-md.ts +64 -0
  1500. package/src/workspace/migrations/__tests__/backfill-v3-leaves.test.ts +5 -2
  1501. package/src/workspace/migrations/rebuild-conversation-disk-view.ts +4 -4
  1502. package/src/workspace/migrations/registry.ts +14 -0
  1503. package/drizzle/0000_dizzy_maggott.sql +0 -301
  1504. package/drizzle/meta/0000_snapshot.json +0 -1933
  1505. package/drizzle/meta/_journal.json +0 -13
  1506. package/node_modules/@vellumai/skill-host-contracts/__tests__/client.test.ts +0 -887
  1507. package/node_modules/@vellumai/skill-host-contracts/bun.lock +0 -24
  1508. package/node_modules/@vellumai/skill-host-contracts/package.json +0 -18
  1509. package/node_modules/@vellumai/skill-host-contracts/src/assistant-event.ts +0 -97
  1510. package/node_modules/@vellumai/skill-host-contracts/src/client.ts +0 -1349
  1511. package/node_modules/@vellumai/skill-host-contracts/src/index.ts +0 -6
  1512. package/node_modules/@vellumai/skill-host-contracts/src/runtime-mode.ts +0 -11
  1513. package/node_modules/@vellumai/skill-host-contracts/src/server-message.ts +0 -32
  1514. package/node_modules/@vellumai/skill-host-contracts/src/skill-host.ts +0 -333
  1515. package/node_modules/@vellumai/skill-host-contracts/src/tool-types.ts +0 -446
  1516. package/node_modules/@vellumai/skill-host-contracts/tsconfig.json +0 -20
  1517. package/node_modules/@vellumai/skill-host-contracts/tsconfig.test.json +0 -12
  1518. package/src/__tests__/config-managed-gemini-defaults.test.ts +0 -277
  1519. package/src/__tests__/regenerate-fire-and-forget-trace.test.ts +0 -203
  1520. package/src/__tests__/slack-block-formatting.test.ts +0 -210
  1521. package/src/background-wake/runtime-registry.ts +0 -24
  1522. package/src/contacts/contact-events.ts +0 -21
  1523. package/src/daemon/__tests__/daemon-skill-host.test.ts +0 -273
  1524. package/src/daemon/__tests__/meet-host-supervisor.test.ts +0 -587
  1525. package/src/daemon/__tests__/meet-manifest-loader.test.ts +0 -476
  1526. package/src/daemon/daemon-skill-host.ts +0 -262
  1527. package/src/daemon/meet-host-startup.ts +0 -51
  1528. package/src/daemon/meet-host-supervisor.ts +0 -782
  1529. package/src/daemon/meet-manifest-loader.ts +0 -396
  1530. package/src/daemon/memory-v2-startup.test.ts +0 -203
  1531. package/src/daemon/memory-v2-startup.ts +0 -345
  1532. package/src/daemon/message-types/meet.ts +0 -143
  1533. package/src/daemon/server.ts +0 -423
  1534. package/src/daemon/shutdown-registry.ts +0 -40
  1535. package/src/filing/filing-service.ts +0 -429
  1536. package/src/ipc/__tests__/skill-server-bidirectional.test.ts +0 -253
  1537. package/src/ipc/__tests__/skill-server.test.ts +0 -182
  1538. package/src/ipc/skill-ipc-types.ts +0 -54
  1539. package/src/ipc/skill-routes/__tests__/config.test.ts +0 -146
  1540. package/src/ipc/skill-routes/__tests__/events-ipc.test.ts +0 -448
  1541. package/src/ipc/skill-routes/__tests__/identity.test.ts +0 -62
  1542. package/src/ipc/skill-routes/__tests__/log.test.ts +0 -133
  1543. package/src/ipc/skill-routes/__tests__/memory.test.ts +0 -203
  1544. package/src/ipc/skill-routes/__tests__/platform.test.ts +0 -111
  1545. package/src/ipc/skill-routes/__tests__/providers.test.ts +0 -265
  1546. package/src/ipc/skill-routes/__tests__/registries.test.ts +0 -400
  1547. package/src/ipc/skill-routes/config.ts +0 -47
  1548. package/src/ipc/skill-routes/events.ts +0 -147
  1549. package/src/ipc/skill-routes/identity.ts +0 -21
  1550. package/src/ipc/skill-routes/index.ts +0 -37
  1551. package/src/ipc/skill-routes/log.ts +0 -40
  1552. package/src/ipc/skill-routes/memory.ts +0 -92
  1553. package/src/ipc/skill-routes/platform.ts +0 -39
  1554. package/src/ipc/skill-routes/providers.ts +0 -162
  1555. package/src/ipc/skill-routes/registries.ts +0 -340
  1556. package/src/ipc/skill-server.ts +0 -795
  1557. package/src/ipc/skill-socket-path.ts +0 -20
  1558. package/src/memory/__tests__/301-create-watchdog-events.test.ts +0 -110
  1559. package/src/memory/__tests__/activation-session-store.test.ts +0 -41
  1560. package/src/memory/__tests__/auto-analysis-enqueue.test.ts +0 -359
  1561. package/src/memory/__tests__/auto-analysis-guard.test.ts +0 -57
  1562. package/src/memory/__tests__/bookmark-crud.test.ts +0 -264
  1563. package/src/memory/__tests__/bookmark-schema.test.ts +0 -181
  1564. package/src/memory/__tests__/compaction-log-store-clickhouse.test.ts +0 -432
  1565. package/src/memory/__tests__/conversation-analyze-job.test.ts +0 -178
  1566. package/src/memory/__tests__/conversation-group-migration.test.ts +0 -99
  1567. package/src/memory/__tests__/conversation-queries.test.ts +0 -843
  1568. package/src/memory/__tests__/conversation-types.test.ts +0 -36
  1569. package/src/memory/__tests__/db-async-query.test.ts +0 -165
  1570. package/src/memory/__tests__/db-logs-attach.test.ts +0 -110
  1571. package/src/memory/__tests__/db-maintenance.test.ts +0 -235
  1572. package/src/memory/__tests__/db-memory-attach.test.ts +0 -113
  1573. package/src/memory/__tests__/find-analysis-conversation.test.ts +0 -197
  1574. package/src/memory/__tests__/find-most-recent-retrospective-for.test.ts +0 -140
  1575. package/src/memory/__tests__/fork-message-copy.test.ts +0 -232
  1576. package/src/memory/__tests__/jobs-store-enqueue-gate.test.ts +0 -241
  1577. package/src/memory/__tests__/jobs-store-job-classes.test.ts +0 -52
  1578. package/src/memory/__tests__/jobs-worker-v2-graph-trigger-embed.test.ts +0 -113
  1579. package/src/memory/__tests__/jobs-worker-v2-schedule.test.ts +0 -505
  1580. package/src/memory/__tests__/memory-retrospective-enqueue.test.ts +0 -160
  1581. package/src/memory/__tests__/memory-retrospective-job.test.ts +0 -1443
  1582. package/src/memory/__tests__/memory-retrospective-startup-cleanup.test.ts +0 -544
  1583. package/src/memory/__tests__/memory-retrospective-state.test.ts +0 -195
  1584. package/src/memory/__tests__/memory-v2-activation-log-store.test.ts +0 -221
  1585. package/src/memory/__tests__/memory-v2-concept-frequency.test.ts +0 -275
  1586. package/src/memory/__tests__/memory-v3-selections-migration.test.ts +0 -103
  1587. package/src/memory/__tests__/message-content.test.ts +0 -35
  1588. package/src/memory/__tests__/onboarding-events-store.test.ts +0 -80
  1589. package/src/memory/__tests__/prompt-override.test.ts +0 -192
  1590. package/src/memory/__tests__/qdrant-client-sentinel.test.ts +0 -49
  1591. package/src/memory/__tests__/table-relocation.test.ts +0 -129
  1592. package/src/memory/__tests__/watchdog-events-store.test.ts +0 -161
  1593. package/src/memory/activation-session-store.ts +0 -43
  1594. package/src/memory/anisotropy.ts +0 -443
  1595. package/src/memory/app-store.ts +0 -1058
  1596. package/src/memory/attachments-store.ts +0 -1136
  1597. package/src/memory/auth-fallback-events-store.ts +0 -94
  1598. package/src/memory/auto-analysis-enqueue.ts +0 -127
  1599. package/src/memory/auto-analysis-guard.ts +0 -17
  1600. package/src/memory/canonical-guardian-store.ts +0 -891
  1601. package/src/memory/channel-verification-sessions.ts +0 -557
  1602. package/src/memory/checkpoints.ts +0 -65
  1603. package/src/memory/context-search/agent-protocol.ts +0 -428
  1604. package/src/memory/context-search/agent-runner.ts +0 -1310
  1605. package/src/memory/context-search/search.ts +0 -297
  1606. package/src/memory/context-search/sources/conversations.ts +0 -341
  1607. package/src/memory/context-search/sources/memory-v2.ts +0 -600
  1608. package/src/memory/context-search/sources/memory.ts +0 -101
  1609. package/src/memory/context-search/types.ts +0 -48
  1610. package/src/memory/conversation-analyze-job.ts +0 -53
  1611. package/src/memory/conversation-attention-store.ts +0 -689
  1612. package/src/memory/conversation-bootstrap.ts +0 -50
  1613. package/src/memory/conversation-crud.ts +0 -3361
  1614. package/src/memory/conversation-key-store.ts +0 -274
  1615. package/src/memory/conversation-queries.ts +0 -768
  1616. package/src/memory/conversation-starter-checkpoints.ts +0 -64
  1617. package/src/memory/conversation-title-service.ts +0 -606
  1618. package/src/memory/db-async-query.ts +0 -298
  1619. package/src/memory/db-connection.ts +0 -228
  1620. package/src/memory/db-init.ts +0 -265
  1621. package/src/memory/db-maintenance.ts +0 -154
  1622. package/src/memory/embed.ts +0 -73
  1623. package/src/memory/embedding-backend.test.ts +0 -204
  1624. package/src/memory/embedding-backend.ts +0 -855
  1625. package/src/memory/embedding-billing-breaker.ts +0 -96
  1626. package/src/memory/embedding-local.ts +0 -587
  1627. package/src/memory/embedding-ollama.ts +0 -79
  1628. package/src/memory/embedding-runtime-manager.ts +0 -573
  1629. package/src/memory/embedding-types.ts +0 -90
  1630. package/src/memory/external-conversation-store.ts +0 -315
  1631. package/src/memory/fork-message-copy.ts +0 -170
  1632. package/src/memory/graph/__tests__/conversation-graph-memory-registry.test.ts +0 -119
  1633. package/src/memory/graph/__tests__/conversation-graph-memory-v2-routing.test.ts +0 -655
  1634. package/src/memory/graph/__tests__/handle-remember-v2.test.ts +0 -321
  1635. package/src/memory/graph/bootstrap.test.ts +0 -280
  1636. package/src/memory/graph/bootstrap.ts +0 -532
  1637. package/src/memory/graph/capability-seed.ts +0 -451
  1638. package/src/memory/graph/consolidation.ts +0 -712
  1639. package/src/memory/graph/conversation-graph-memory.ts +0 -1185
  1640. package/src/memory/graph/decay.ts +0 -195
  1641. package/src/memory/graph/extraction-job.ts +0 -74
  1642. package/src/memory/graph/extraction.ts +0 -1462
  1643. package/src/memory/graph/graph-memory-state-store.ts +0 -50
  1644. package/src/memory/graph/graph-search.test.ts +0 -129
  1645. package/src/memory/graph/graph-search.ts +0 -292
  1646. package/src/memory/graph/image-ref-utils.ts +0 -29
  1647. package/src/memory/graph/injection.ts +0 -469
  1648. package/src/memory/graph/narrative.ts +0 -267
  1649. package/src/memory/graph/pattern-scan.ts +0 -269
  1650. package/src/memory/graph/retriever.test.ts +0 -624
  1651. package/src/memory/graph/retriever.ts +0 -1356
  1652. package/src/memory/graph/store.test.ts +0 -1093
  1653. package/src/memory/graph/store.ts +0 -923
  1654. package/src/memory/graph/tool-handlers.ts +0 -195
  1655. package/src/memory/graph/tools.ts +0 -95
  1656. package/src/memory/guardian-rate-limits.ts +0 -191
  1657. package/src/memory/indexer.ts +0 -406
  1658. package/src/memory/job-handlers/backfill.ts +0 -104
  1659. package/src/memory/job-handlers/cleanup.ts +0 -237
  1660. package/src/memory/job-handlers/conversation-starters.ts +0 -481
  1661. package/src/memory/job-handlers/embedding.test.ts +0 -234
  1662. package/src/memory/job-handlers/embedding.ts +0 -133
  1663. package/src/memory/job-handlers/index-maintenance.ts +0 -111
  1664. package/src/memory/job-handlers/media-processing.ts +0 -120
  1665. package/src/memory/job-handlers/summarization.ts +0 -240
  1666. package/src/memory/job-utils.ts +0 -286
  1667. package/src/memory/jobs/__tests__/embed-concept-page.test.ts +0 -559
  1668. package/src/memory/jobs/embed-concept-page.ts +0 -417
  1669. package/src/memory/jobs/embed-pkb-file.test.ts +0 -169
  1670. package/src/memory/jobs/embed-pkb-file.ts +0 -59
  1671. package/src/memory/jobs-store.ts +0 -813
  1672. package/src/memory/jobs-worker.ts +0 -975
  1673. package/src/memory/llm-request-log-source-clickhouse.ts +0 -521
  1674. package/src/memory/llm-request-log-store.ts +0 -717
  1675. package/src/memory/llm-usage-store.ts +0 -900
  1676. package/src/memory/memory-recall-log-store.ts +0 -172
  1677. package/src/memory/memory-retrospective-constants.ts +0 -50
  1678. package/src/memory/memory-retrospective-enqueue.ts +0 -125
  1679. package/src/memory/memory-retrospective-fork-boundary.ts +0 -94
  1680. package/src/memory/memory-retrospective-job.ts +0 -879
  1681. package/src/memory/memory-retrospective-startup-cleanup.ts +0 -261
  1682. package/src/memory/memory-retrospective-state.ts +0 -245
  1683. package/src/memory/memory-retrospective-trigger-check.ts +0 -91
  1684. package/src/memory/memory-v2-activation-log-store.ts +0 -216
  1685. package/src/memory/memory-v2-concept-frequency.ts +0 -173
  1686. package/src/memory/migrations/126-backfill-guardian-principal-id.ts +0 -303
  1687. package/src/memory/migrations/140-backfill-usage-cache-accounting.ts +0 -365
  1688. package/src/memory/migrations/142-rename-verification-session-id-column.ts +0 -55
  1689. package/src/memory/migrations/182-oauth-providers-display-metadata.ts +0 -20
  1690. package/src/memory/migrations/196-strip-integration-prefix-from-provider-keys.ts +0 -179
  1691. package/src/memory/migrations/199-guardian-request-enrichment-columns.ts +0 -64
  1692. package/src/memory/migrations/202-memory-graph-tables.ts +0 -130
  1693. package/src/memory/migrations/203-drop-memory-items-tables.ts +0 -55
  1694. package/src/memory/migrations/206-scrub-corrupted-image-attachments.ts +0 -124
  1695. package/src/memory/migrations/209-strip-thinking-from-consolidated.ts +0 -152
  1696. package/src/memory/migrations/211-memory-recall-logs-query-context.ts +0 -16
  1697. package/src/memory/migrations/220-normalize-user-file-by-principal.ts +0 -183
  1698. package/src/memory/migrations/222-strip-placeholder-sentinels-from-messages.ts +0 -76
  1699. package/src/memory/migrations/236-tool-invocations-matched-rule-id.ts +0 -21
  1700. package/src/memory/migrations/243-provider-connections.ts +0 -68
  1701. package/src/memory/migrations/244-provider-connection-status-label.ts +0 -23
  1702. package/src/memory/migrations/246-backfill-provider-connection-label.ts +0 -81
  1703. package/src/memory/migrations/255-channel-inbound-delivery-attempts.ts +0 -19
  1704. package/src/memory/migrations/301-create-watchdog-events.ts +0 -45
  1705. package/src/memory/migrations/__tests__/209-strip-thinking-from-consolidated.test.ts +0 -224
  1706. package/src/memory/migrations/__tests__/244-provider-connection-status-label.test.ts +0 -84
  1707. package/src/memory/migrations/__tests__/246-backfill-provider-connection-label.test.ts +0 -192
  1708. package/src/memory/migrations/__tests__/run-migrations.test.ts +0 -378
  1709. package/src/memory/migrations/helpers/relocation.ts +0 -227
  1710. package/src/memory/migrations/validate-migration-state.ts +0 -277
  1711. package/src/memory/onboarding-events-store.ts +0 -161
  1712. package/src/memory/pkb/autoinject.ts +0 -61
  1713. package/src/memory/pkb/context.ts +0 -50
  1714. package/src/memory/pkb/pkb-index.test.ts +0 -368
  1715. package/src/memory/pkb/pkb-index.ts +0 -255
  1716. package/src/memory/pkb/pkb-reconcile.test.ts +0 -251
  1717. package/src/memory/pkb/pkb-reconcile.ts +0 -148
  1718. package/src/memory/pkb/pkb-search.test.ts +0 -586
  1719. package/src/memory/pkb/pkb-search.ts +0 -178
  1720. package/src/memory/pkb/types.ts +0 -67
  1721. package/src/memory/published-pages-store.ts +0 -67
  1722. package/src/memory/qdrant-circuit-breaker.ts +0 -119
  1723. package/src/memory/qdrant-client.test.ts +0 -60
  1724. package/src/memory/qdrant-client.ts +0 -834
  1725. package/src/memory/qdrant-manager.ts +0 -422
  1726. package/src/memory/rerank-local.ts +0 -374
  1727. package/src/memory/schedule-attribution-sql.ts +0 -104
  1728. package/src/memory/schema/acp.ts +0 -34
  1729. package/src/memory/schema/contacts.ts +0 -116
  1730. package/src/memory/schema/conversations.ts +0 -197
  1731. package/src/memory/schema/infrastructure.ts +0 -381
  1732. package/src/memory/scoped-approval-grants.ts +0 -551
  1733. package/src/memory/search/semantic.ts +0 -238
  1734. package/src/memory/segmenter.ts +0 -76
  1735. package/src/memory/shared-app-links-store.ts +0 -130
  1736. package/src/memory/skill-loaded-events-store.test.ts +0 -152
  1737. package/src/memory/skill-loaded-events-store.ts +0 -95
  1738. package/src/memory/sparse-tokenize.ts +0 -49
  1739. package/src/memory/steps.ts +0 -573
  1740. package/src/memory/task-memory-cleanup.ts +0 -236
  1741. package/src/memory/tool-executed-events-store.test.ts +0 -219
  1742. package/src/memory/tool-executed-events-store.ts +0 -102
  1743. package/src/memory/tool-usage-store.ts +0 -113
  1744. package/src/memory/trace-event-store.ts +0 -133
  1745. package/src/memory/turn-events-store.ts +0 -173
  1746. package/src/memory/turn-trace-store.test.ts +0 -736
  1747. package/src/memory/turn-trace-store.ts +0 -364
  1748. package/src/memory/v2/__tests__/activation-store.test.ts +0 -204
  1749. package/src/memory/v2/__tests__/activation.test.ts +0 -1227
  1750. package/src/memory/v2/__tests__/backfill-jobs.test.ts +0 -504
  1751. package/src/memory/v2/__tests__/cli-command-store.test.ts +0 -429
  1752. package/src/memory/v2/__tests__/consolidation-job.test.ts +0 -747
  1753. package/src/memory/v2/__tests__/consolidation-prompt-flag-gating-guard.test.ts +0 -189
  1754. package/src/memory/v2/__tests__/frontmatter-sweep.test.ts +0 -136
  1755. package/src/memory/v2/__tests__/harness-compare.test.ts +0 -186
  1756. package/src/memory/v2/__tests__/harness-oracle.test.ts +0 -257
  1757. package/src/memory/v2/__tests__/harness-replay-input.test.ts +0 -230
  1758. package/src/memory/v2/__tests__/harness-runner.test.ts +0 -135
  1759. package/src/memory/v2/__tests__/injection-events.test.ts +0 -318
  1760. package/src/memory/v2/__tests__/injection.test.ts +0 -2301
  1761. package/src/memory/v2/__tests__/migration.test.ts +0 -939
  1762. package/src/memory/v2/__tests__/page-index.test.ts +0 -760
  1763. package/src/memory/v2/__tests__/prompts-consolidation.test.ts +0 -313
  1764. package/src/memory/v2/__tests__/qdrant.test.ts +0 -950
  1765. package/src/memory/v2/__tests__/reranker.test.ts +0 -338
  1766. package/src/memory/v2/__tests__/router.test.ts +0 -1197
  1767. package/src/memory/v2/__tests__/sim.test.ts +0 -670
  1768. package/src/memory/v2/__tests__/skill-content.test.ts +0 -115
  1769. package/src/memory/v2/__tests__/skill-store.test.ts +0 -983
  1770. package/src/memory/v2/__tests__/sparse-bm25.test.ts +0 -292
  1771. package/src/memory/v2/__tests__/static-context.test.ts +0 -223
  1772. package/src/memory/v2/__tests__/sweep-job.test.ts +0 -526
  1773. package/src/memory/v2/activation-store.ts +0 -185
  1774. package/src/memory/v2/activation.ts +0 -548
  1775. package/src/memory/v2/backfill-jobs.ts +0 -296
  1776. package/src/memory/v2/cli-command-store.ts +0 -341
  1777. package/src/memory/v2/consolidation-job.ts +0 -561
  1778. package/src/memory/v2/frontmatter-sweep.ts +0 -98
  1779. package/src/memory/v2/harness/compare.ts +0 -57
  1780. package/src/memory/v2/harness/oracle.ts +0 -145
  1781. package/src/memory/v2/harness/replay-input.ts +0 -240
  1782. package/src/memory/v2/harness/retriever.ts +0 -74
  1783. package/src/memory/v2/harness/router-retriever.ts +0 -43
  1784. package/src/memory/v2/injected-block-slugs.ts +0 -79
  1785. package/src/memory/v2/injection-events.ts +0 -101
  1786. package/src/memory/v2/injection.ts +0 -932
  1787. package/src/memory/v2/migration.ts +0 -776
  1788. package/src/memory/v2/page-index.ts +0 -459
  1789. package/src/memory/v2/page-store.ts +0 -443
  1790. package/src/memory/v2/prompts/consolidation.ts +0 -857
  1791. package/src/memory/v2/prompts/router.ts +0 -148
  1792. package/src/memory/v2/qdrant.ts +0 -892
  1793. package/src/memory/v2/reranker.ts +0 -184
  1794. package/src/memory/v2/router.ts +0 -601
  1795. package/src/memory/v2/sim.ts +0 -296
  1796. package/src/memory/v2/skill-content.ts +0 -61
  1797. package/src/memory/v2/skill-store.ts +0 -431
  1798. package/src/memory/v2/sparse-bm25.ts +0 -245
  1799. package/src/memory/v2/static-context.ts +0 -100
  1800. package/src/memory/v2/sweep-job.ts +0 -320
  1801. package/src/memory/v3-eval/eval-packets.ts +0 -731
  1802. package/src/memory/watchdog-events-store.ts +0 -87
  1803. package/src/memory/worker-control.ts +0 -118
  1804. package/src/memory/worker-process.ts +0 -72
  1805. package/src/plugins/defaults/advisor/__tests__/advisor-gate.test.ts +0 -56
  1806. package/src/plugins/defaults/advisor/__tests__/advisor-state-store.test.ts +0 -43
  1807. package/src/plugins/defaults/advisor/__tests__/agent-loop-integration.test.ts +0 -137
  1808. package/src/plugins/defaults/advisor/__tests__/consult.test.ts +0 -314
  1809. package/src/plugins/defaults/advisor/__tests__/context-pack-gating.test.ts +0 -106
  1810. package/src/plugins/defaults/advisor/__tests__/context-pack.test.ts +0 -60
  1811. package/src/plugins/defaults/advisor/__tests__/hooks.test.ts +0 -138
  1812. package/src/plugins/defaults/advisor/__tests__/transcript.test.ts +0 -147
  1813. package/src/plugins/defaults/advisor/advisor-gate.ts +0 -29
  1814. package/src/plugins/defaults/advisor/advisor-state-store.ts +0 -94
  1815. package/src/plugins/defaults/advisor/config.ts +0 -21
  1816. package/src/plugins/defaults/advisor/consult.ts +0 -197
  1817. package/src/plugins/defaults/advisor/context-pack.ts +0 -288
  1818. package/src/plugins/defaults/advisor/hooks/post-model-call.ts +0 -34
  1819. package/src/plugins/defaults/advisor/hooks/pre-model-call.ts +0 -30
  1820. package/src/plugins/defaults/advisor/hooks/user-prompt-submit.ts +0 -19
  1821. package/src/plugins/defaults/advisor/package.json +0 -14
  1822. package/src/plugins/defaults/advisor/steering.ts +0 -79
  1823. package/src/plugins/defaults/advisor/tools/advisor.ts +0 -92
  1824. package/src/plugins/defaults/advisor/transcript.ts +0 -76
  1825. package/src/plugins/defaults/memory-retrieval/hooks/post-compact.ts +0 -116
  1826. package/src/plugins/defaults/memory-retrieval/hooks/user-prompt-submit.ts +0 -370
  1827. package/src/plugins/defaults/memory-retrieval/injector-chain.ts +0 -41
  1828. package/src/plugins/defaults/memory-retrieval/injectors.ts +0 -1061
  1829. package/src/plugins/defaults/memory-retrieval/package.json +0 -14
  1830. package/src/plugins/defaults/memory-retrieval/tail-reinjection-strip.ts +0 -64
  1831. package/src/plugins/defaults/memory-retrieval/unified-turn-context.ts +0 -231
  1832. package/src/plugins/defaults/memory-v3-shadow/__tests__/carry-integration.test.ts +0 -1164
  1833. package/src/plugins/defaults/memory-v3-shadow/__tests__/dense.test.ts +0 -181
  1834. package/src/plugins/defaults/memory-v3-shadow/__tests__/edge.test.ts +0 -247
  1835. package/src/plugins/defaults/memory-v3-shadow/__tests__/injection.test.ts +0 -717
  1836. package/src/plugins/defaults/memory-v3-shadow/__tests__/live-integration.test.ts +0 -365
  1837. package/src/plugins/defaults/memory-v3-shadow/__tests__/maintain-job.test.ts +0 -736
  1838. package/src/plugins/defaults/memory-v3-shadow/__tests__/orchestrate.test.ts +0 -839
  1839. package/src/plugins/defaults/memory-v3-shadow/__tests__/pool-select.test.ts +0 -598
  1840. package/src/plugins/defaults/memory-v3-shadow/__tests__/render-injection.test.ts +0 -128
  1841. package/src/plugins/defaults/memory-v3-shadow/__tests__/section-dense-store.test.ts +0 -469
  1842. package/src/plugins/defaults/memory-v3-shadow/__tests__/selection-log-store.test.ts +0 -425
  1843. package/src/plugins/defaults/memory-v3-shadow/__tests__/shadow-integration.test.ts +0 -493
  1844. package/src/plugins/defaults/memory-v3-shadow/__tests__/shadow-plugin.test.ts +0 -856
  1845. package/src/plugins/defaults/memory-v3-shadow/capabilities.ts +0 -91
  1846. package/src/plugins/defaults/memory-v3-shadow/card.ts +0 -160
  1847. package/src/plugins/defaults/memory-v3-shadow/dense.ts +0 -97
  1848. package/src/plugins/defaults/memory-v3-shadow/edge.ts +0 -252
  1849. package/src/plugins/defaults/memory-v3-shadow/ever-injected-store.test.ts +0 -305
  1850. package/src/plugins/defaults/memory-v3-shadow/ever-injected-store.ts +0 -278
  1851. package/src/plugins/defaults/memory-v3-shadow/hooks/post-compact.ts +0 -14
  1852. package/src/plugins/defaults/memory-v3-shadow/hooks/user-prompt-submit.ts +0 -19
  1853. package/src/plugins/defaults/memory-v3-shadow/hot-set.test.ts +0 -138
  1854. package/src/plugins/defaults/memory-v3-shadow/hot-set.ts +0 -85
  1855. package/src/plugins/defaults/memory-v3-shadow/injector.ts +0 -453
  1856. package/src/plugins/defaults/memory-v3-shadow/learned-edges.test.ts +0 -169
  1857. package/src/plugins/defaults/memory-v3-shadow/learned-edges.ts +0 -178
  1858. package/src/plugins/defaults/memory-v3-shadow/maintain-job.ts +0 -794
  1859. package/src/plugins/defaults/memory-v3-shadow/orchestrate.ts +0 -431
  1860. package/src/plugins/defaults/memory-v3-shadow/package.json +0 -14
  1861. package/src/plugins/defaults/memory-v3-shadow/page-content.ts +0 -102
  1862. package/src/plugins/defaults/memory-v3-shadow/pool-select.test.ts +0 -146
  1863. package/src/plugins/defaults/memory-v3-shadow/pool-select.ts +0 -578
  1864. package/src/plugins/defaults/memory-v3-shadow/prune.test.ts +0 -758
  1865. package/src/plugins/defaults/memory-v3-shadow/prune.ts +0 -471
  1866. package/src/plugins/defaults/memory-v3-shadow/render-injection.ts +0 -92
  1867. package/src/plugins/defaults/memory-v3-shadow/section-dense-store.ts +0 -269
  1868. package/src/plugins/defaults/memory-v3-shadow/section-needle.ts +0 -200
  1869. package/src/plugins/defaults/memory-v3-shadow/selection-log-store.ts +0 -281
  1870. package/src/plugins/defaults/memory-v3-shadow/shadow-plugin.ts +0 -642
  1871. package/src/plugins/defaults/memory-v3-shadow/types.ts +0 -127
  1872. package/src/plugins/feature-gate.ts +0 -22
  1873. package/src/runtime/__tests__/slack-block-formatting.test.ts +0 -510
  1874. package/src/runtime/routes/__tests__/memory-v2-routes.test.ts +0 -165
  1875. package/src/runtime/routes/__tests__/memory-v2-simulate-route.test.ts +0 -347
  1876. package/src/runtime/routes/memory-eval-routes.ts +0 -179
  1877. package/src/runtime/routes/memory-item-routes.test.ts +0 -912
  1878. package/src/runtime/routes/memory-item-routes.ts +0 -815
  1879. package/src/runtime/routes/memory-v2-routes.ts +0 -850
  1880. package/src/runtime/routes/memory-v3-routes.ts +0 -122
  1881. package/src/runtime/routes/secrets-deps.ts +0 -24
  1882. package/src/runtime/slack-block-formatting.ts +0 -601
  1883. package/src/tools/memory/register.test.ts +0 -382
  1884. package/src/tools/memory/register.ts +0 -81
  1885. /package/src/{memory → apps}/app-git-service.ts +0 -0
  1886. /package/src/{memory → channels}/slack-thread-store.ts +0 -0
  1887. /package/src/{memory → home}/conversation-starter-validation.ts +0 -0
  1888. /package/src/{memory → persistence}/auto-analysis-constants.ts +0 -0
  1889. /package/src/{memory → persistence}/bookmark-crud.ts +0 -0
  1890. /package/src/{memory → persistence}/cleanup-schedule-state.ts +0 -0
  1891. /package/src/{memory → persistence}/compaction-log-store-clickhouse.ts +0 -0
  1892. /package/src/{memory → persistence}/conversation-directories.ts +0 -0
  1893. /package/src/{memory → persistence}/conversation-disk-view.ts +0 -0
  1894. /package/src/{memory → persistence}/conversation-display-order-migration.ts +0 -0
  1895. /package/src/{memory → persistence}/conversation-group-migration.ts +0 -0
  1896. /package/src/{memory → persistence}/conversation-types.ts +0 -0
  1897. /package/src/{memory → persistence}/db-singleton.ts +0 -0
  1898. /package/src/{memory → persistence}/delivery-channels.ts +0 -0
  1899. /package/src/{memory → persistence}/delivery-crud.ts +0 -0
  1900. /package/src/{memory → persistence}/delivery-status.ts +0 -0
  1901. /package/src/{memory → persistence/embeddings}/__tests__/sparse-tokenize.test.ts +0 -0
  1902. /package/src/{memory → persistence/embeddings}/embedding-gemini.test.ts +0 -0
  1903. /package/src/{memory → persistence/embeddings}/embedding-gemini.ts +0 -0
  1904. /package/src/{memory → persistence/embeddings}/embedding-openai.ts +0 -0
  1905. /package/src/{memory → persistence/embeddings}/embedding-types.test.ts +0 -0
  1906. /package/src/{memory → persistence}/fingerprint.ts +0 -0
  1907. /package/src/{memory → persistence}/group-crud.ts +0 -0
  1908. /package/src/{memory → persistence}/invite-store.ts +0 -0
  1909. /package/src/{memory → persistence}/lifecycle-events-store.ts +0 -0
  1910. /package/src/{memory → persistence}/llm-request-log-source-local.ts +0 -0
  1911. /package/src/{memory → persistence}/llm-request-log-source.ts +0 -0
  1912. /package/src/{memory → persistence}/media-store.ts +0 -0
  1913. /package/src/{memory → persistence}/message-content.ts +0 -0
  1914. /package/src/{memory → persistence}/migrations/000-core-tables.ts +0 -0
  1915. /package/src/{memory → persistence}/migrations/001-job-deferrals.ts +0 -0
  1916. /package/src/{memory → persistence}/migrations/002-tool-invocations-fk.ts +0 -0
  1917. /package/src/{memory → persistence}/migrations/003-memory-fts-backfill.ts +0 -0
  1918. /package/src/{memory → persistence}/migrations/004-entity-relation-dedup.ts +0 -0
  1919. /package/src/{memory → persistence}/migrations/005-fingerprint-scope-unique.ts +0 -0
  1920. /package/src/{memory → persistence}/migrations/006-scope-salted-fingerprints.ts +0 -0
  1921. /package/src/{memory → persistence}/migrations/007-assistant-id-to-self.ts +0 -0
  1922. /package/src/{memory → persistence}/migrations/008-remove-assistant-id-columns.ts +0 -0
  1923. /package/src/{memory → persistence}/migrations/009-llm-usage-events-drop-assistant-id.ts +0 -0
  1924. /package/src/{memory → persistence}/migrations/011-call-sessions-provider-sid-dedup.ts +0 -0
  1925. /package/src/{memory → persistence}/migrations/012-call-sessions-add-initiated-from.ts +0 -0
  1926. /package/src/{memory → persistence}/migrations/013-guardian-action-tables.ts +0 -0
  1927. /package/src/{memory → persistence}/migrations/014-backfill-inbox-thread-state.ts +0 -0
  1928. /package/src/{memory → persistence}/migrations/015-drop-active-search-index.ts +0 -0
  1929. /package/src/{memory → persistence}/migrations/016-memory-segments-indexes.ts +0 -0
  1930. /package/src/{memory → persistence}/migrations/017-memory-items-indexes.ts +0 -0
  1931. /package/src/{memory → persistence}/migrations/018-remaining-table-indexes.ts +0 -0
  1932. /package/src/{memory → persistence}/migrations/019-notification-tables-schema-migration.ts +0 -0
  1933. /package/src/{memory → persistence}/migrations/020-rename-macos-ios-channel-to-vellum.ts +0 -0
  1934. /package/src/{memory → persistence}/migrations/021-conversation-status-indexes.ts +0 -0
  1935. /package/src/{memory → persistence}/migrations/022-add-origin-interface.ts +0 -0
  1936. /package/src/{memory → persistence}/migrations/023-memory-item-sources-indexes.ts +0 -0
  1937. /package/src/{memory → persistence}/migrations/024-embedding-vector-blob.ts +0 -0
  1938. /package/src/{memory → persistence}/migrations/025-messages-fts-backfill.ts +0 -0
  1939. /package/src/{memory → persistence}/migrations/026-guardian-verification-sessions.ts +0 -0
  1940. /package/src/{memory → persistence}/migrations/026a-embeddings-nullable-vector-json.ts +0 -0
  1941. /package/src/{memory → persistence}/migrations/027-notification-delivery-pairing-columns.ts +0 -0
  1942. /package/src/{memory → persistence}/migrations/027a-guardian-bootstrap-token.ts +0 -0
  1943. /package/src/{memory → persistence}/migrations/028-call-session-mode.ts +0 -0
  1944. /package/src/{memory → persistence}/migrations/028-notification-delivery-client-ack.ts +0 -0
  1945. /package/src/{memory → persistence}/migrations/029-channel-inbound-delivered-segments.ts +0 -0
  1946. /package/src/{memory → persistence}/migrations/030-guardian-action-followup.ts +0 -0
  1947. /package/src/{memory → persistence}/migrations/030-guardian-verification-purpose.ts +0 -0
  1948. /package/src/{memory → persistence}/migrations/031-conversations-thread-type-index.ts +0 -0
  1949. /package/src/{memory → persistence}/migrations/032-guardian-delivery-conversation-index.ts +0 -0
  1950. /package/src/{memory → persistence}/migrations/032-notification-delivery-thread-decision.ts +0 -0
  1951. /package/src/{memory → persistence}/migrations/033-scoped-approval-grants.ts +0 -0
  1952. /package/src/{memory → persistence}/migrations/034-guardian-action-tool-metadata.ts +0 -0
  1953. /package/src/{memory → persistence}/migrations/035-guardian-action-supersession.ts +0 -0
  1954. /package/src/{memory → persistence}/migrations/036-normalize-phone-identities.ts +0 -0
  1955. /package/src/{memory → persistence}/migrations/037-voice-invite-columns.ts +0 -0
  1956. /package/src/{memory → persistence}/migrations/040-invite-code-hash-column.ts +0 -0
  1957. /package/src/{memory → persistence}/migrations/041-approval-prompt-ts-tracker.ts +0 -0
  1958. /package/src/{memory → persistence}/migrations/101-watchers-and-logs.ts +0 -0
  1959. /package/src/{memory → persistence}/migrations/102-alter-table-columns.ts +0 -0
  1960. /package/src/{memory → persistence}/migrations/104-core-indexes.ts +0 -0
  1961. /package/src/{memory → persistence}/migrations/105-contacts-and-triage.ts +0 -0
  1962. /package/src/{memory → persistence}/migrations/106-call-sessions.ts +0 -0
  1963. /package/src/{memory → persistence}/migrations/107-followups.ts +0 -0
  1964. /package/src/{memory → persistence}/migrations/108-tasks-and-work-items.ts +0 -0
  1965. /package/src/{memory → persistence}/migrations/109-external-conversation-bindings.ts +0 -0
  1966. /package/src/{memory → persistence}/migrations/110-channel-guardian.ts +0 -0
  1967. /package/src/{memory → persistence}/migrations/111-media-assets.ts +0 -0
  1968. /package/src/{memory → persistence}/migrations/112-assistant-inbox.ts +0 -0
  1969. /package/src/{memory → persistence}/migrations/114-notifications.ts +0 -0
  1970. /package/src/{memory → persistence}/migrations/115-sequences.ts +0 -0
  1971. /package/src/{memory → persistence}/migrations/116-messages-fts.ts +0 -0
  1972. /package/src/{memory → persistence}/migrations/117-conversation-attention.ts +0 -0
  1973. /package/src/{memory → persistence}/migrations/118-reminder-routing-intent.ts +0 -0
  1974. /package/src/{memory → persistence}/migrations/119-schema-indexes-and-columns.ts +0 -0
  1975. /package/src/{memory → persistence}/migrations/120-fk-cascade-rebuilds.ts +0 -0
  1976. /package/src/{memory → persistence}/migrations/121-canonical-guardian-requests.ts +0 -0
  1977. /package/src/{memory → persistence}/migrations/122-canonical-guardian-requester-chat-id.ts +0 -0
  1978. /package/src/{memory → persistence}/migrations/123-canonical-guardian-deliveries-destination-index.ts +0 -0
  1979. /package/src/{memory → persistence}/migrations/124-voice-invite-display-metadata.ts +0 -0
  1980. /package/src/{memory → persistence}/migrations/125-guardian-principal-id-columns.ts +0 -0
  1981. /package/src/{memory → persistence}/migrations/127-guardian-principal-id-not-null.ts +0 -0
  1982. /package/src/{memory → persistence}/migrations/128-contacts-role-principal.ts +0 -0
  1983. /package/src/{memory → persistence}/migrations/129-contact-channels-access-fields.ts +0 -0
  1984. /package/src/{memory → persistence}/migrations/130-contact-channels-type-ext-chat-id-index.ts +0 -0
  1985. /package/src/{memory → persistence}/migrations/131-drop-legacy-member-guardian-tables.ts +0 -0
  1986. /package/src/{memory → persistence}/migrations/132-contacts-assistant-id.ts +0 -0
  1987. /package/src/{memory → persistence}/migrations/133-assistant-contact-metadata.ts +0 -0
  1988. /package/src/{memory → persistence}/migrations/134-contacts-notes-column.ts +0 -0
  1989. /package/src/{memory → persistence}/migrations/135-backfill-contact-interaction-stats.ts +0 -0
  1990. /package/src/{memory → persistence}/migrations/136-drop-assistant-id-columns.ts +0 -0
  1991. /package/src/{memory → persistence}/migrations/137-usage-dashboard-indexes.ts +0 -0
  1992. /package/src/{memory → persistence}/migrations/139-drop-usage-composite-indexes.ts +0 -0
  1993. /package/src/{memory → persistence}/migrations/141-rename-verification-table.ts +0 -0
  1994. /package/src/{memory → persistence}/migrations/143-rename-guardian-verification-values.ts +0 -0
  1995. /package/src/{memory → persistence}/migrations/144-rename-voice-to-phone.ts +0 -0
  1996. /package/src/{memory → persistence}/migrations/145-drop-accounts-table.ts +0 -0
  1997. /package/src/{memory → persistence}/migrations/146-schedule-oneshot-routing.ts +0 -0
  1998. /package/src/{memory → persistence}/migrations/147-migrate-reminders-to-schedules.ts +0 -0
  1999. /package/src/{memory → persistence}/migrations/148-drop-reminders-table.ts +0 -0
  2000. /package/src/{memory → persistence}/migrations/149-oauth-tables.ts +0 -0
  2001. /package/src/{memory → persistence}/migrations/150-oauth-apps-client-secret-path.ts +0 -0
  2002. /package/src/{memory → persistence}/migrations/151-oauth-providers-ping-url.ts +0 -0
  2003. /package/src/{memory → persistence}/migrations/152-memory-item-supersession.ts +0 -0
  2004. /package/src/{memory → persistence}/migrations/153-drop-entity-tables.ts +0 -0
  2005. /package/src/{memory → persistence}/migrations/154-drop-fts.ts +0 -0
  2006. /package/src/{memory → persistence}/migrations/155-drop-conflicts.ts +0 -0
  2007. /package/src/{memory → persistence}/migrations/156-call-session-invite-metadata.ts +0 -0
  2008. /package/src/{memory → persistence}/migrations/157-invite-contact-id.ts +0 -0
  2009. /package/src/{memory → persistence}/migrations/158-channel-interaction-columns.ts +0 -0
  2010. /package/src/{memory → persistence}/migrations/159-drop-contact-interaction-columns.ts +0 -0
  2011. /package/src/{memory → persistence}/migrations/160-drop-loopback-port-column.ts +0 -0
  2012. /package/src/{memory → persistence}/migrations/161-drop-orphaned-media-tables.ts +0 -0
  2013. /package/src/{memory → persistence}/migrations/162-guardian-timestamps-epoch-ms.ts +0 -0
  2014. /package/src/{memory → persistence}/migrations/163-rename-notification-thread-columns.ts +0 -0
  2015. /package/src/{memory → persistence}/migrations/164-rename-conversation-type-column.ts +0 -0
  2016. /package/src/{memory → persistence}/migrations/165-rename-inbox-thread-state-table.ts +0 -0
  2017. /package/src/{memory → persistence}/migrations/166-rename-followups-thread-id.ts +0 -0
  2018. /package/src/{memory → persistence}/migrations/167-rename-sequence-enrollments-thread-id.ts +0 -0
  2019. /package/src/{memory → persistence}/migrations/168-rename-sequence-steps-reply-key.ts +0 -0
  2020. /package/src/{memory → persistence}/migrations/169-rename-gmail-provider-key-to-google.ts +0 -0
  2021. /package/src/{memory → persistence}/migrations/170-thread-starters-table.ts +0 -0
  2022. /package/src/{memory → persistence}/migrations/171-capability-card-columns.ts +0 -0
  2023. /package/src/{memory → persistence}/migrations/172-rename-created-by-session-id.ts +0 -0
  2024. /package/src/{memory → persistence}/migrations/173-rename-source-session-id.ts +0 -0
  2025. /package/src/{memory → persistence}/migrations/174-rename-thread-starters-table.ts +0 -0
  2026. /package/src/{memory → persistence}/migrations/175-create-lifecycle-events.ts +0 -0
  2027. /package/src/{memory → persistence}/migrations/176-drop-capability-card-state.ts +0 -0
  2028. /package/src/{memory → persistence}/migrations/177-create-trace-events-table.ts +0 -0
  2029. /package/src/{memory → persistence}/migrations/178-oauth-providers-managed-service-config-key.ts +0 -0
  2030. /package/src/{memory → persistence}/migrations/179-llm-request-log-message-id.ts +0 -0
  2031. /package/src/{memory → persistence}/migrations/180-backfill-inline-attachments-to-disk.ts +0 -0
  2032. /package/src/{memory → persistence}/migrations/181-rename-thread-starters-checkpoints.ts +0 -0
  2033. /package/src/{memory → persistence}/migrations/183-add-conversation-fork-lineage.ts +0 -0
  2034. /package/src/{memory → persistence}/migrations/184-llm-request-log-provider.ts +0 -0
  2035. /package/src/{memory → persistence}/migrations/188-schedule-quiet-flag.ts +0 -0
  2036. /package/src/{memory → persistence}/migrations/189-drop-simplified-memory.ts +0 -0
  2037. /package/src/{memory → persistence}/migrations/190-call-session-skip-disclosure.ts +0 -0
  2038. /package/src/{memory → persistence}/migrations/191-backfill-audio-attachment-mime-types.ts +0 -0
  2039. /package/src/{memory → persistence}/migrations/192-contacts-user-file-column.ts +0 -0
  2040. /package/src/{memory → persistence}/migrations/193-add-source-type-columns.ts +0 -0
  2041. /package/src/{memory → persistence}/migrations/194-memory-recall-logs.ts +0 -0
  2042. /package/src/{memory → persistence}/migrations/195-oauth-providers-ping-config.ts +0 -0
  2043. /package/src/{memory → persistence}/migrations/196-messages-conversation-created-at-index.ts +0 -0
  2044. /package/src/{memory → persistence}/migrations/197-oauth-providers-behavior-columns.ts +0 -0
  2045. /package/src/{memory → persistence}/migrations/198-drop-setup-skill-id-column.ts +0 -0
  2046. /package/src/{memory → persistence}/migrations/200-usage-llm-call-count.ts +0 -0
  2047. /package/src/{memory → persistence}/migrations/201-oauth-providers-feature-flag.ts +0 -0
  2048. /package/src/{memory → persistence}/migrations/202-drop-callback-transport-column.ts +0 -0
  2049. /package/src/{memory → persistence}/migrations/204-rename-memory-graph-type-values.ts +0 -0
  2050. /package/src/{memory → persistence}/migrations/205-memory-graph-image-refs.ts +0 -0
  2051. /package/src/{memory → persistence}/migrations/206-memory-graph-node-edits.ts +0 -0
  2052. /package/src/{memory → persistence}/migrations/207-conversation-graph-memory-state.ts +0 -0
  2053. /package/src/{memory → persistence}/migrations/208-conversations-last-message-at.ts +0 -0
  2054. /package/src/{memory → persistence}/migrations/210-schedule-reuse-conversation.ts +0 -0
  2055. /package/src/{memory → persistence}/migrations/212-llm-request-logs-created-at-index.ts +0 -0
  2056. /package/src/{memory → persistence}/migrations/213-oauth-providers-scope-separator.ts +0 -0
  2057. /package/src/{memory → persistence}/migrations/214-oauth-providers-refresh-url.ts +0 -0
  2058. /package/src/{memory → persistence}/migrations/215-oauth-providers-revoke.ts +0 -0
  2059. /package/src/{memory → persistence}/migrations/216-oauth-providers-token-auth-method.ts +0 -0
  2060. /package/src/{memory → persistence}/migrations/217-conversation-host-access.ts +0 -0
  2061. /package/src/{memory → persistence}/migrations/218-oauth-providers-logo-url.ts +0 -0
  2062. /package/src/{memory → persistence}/migrations/219-oauth-providers-token-exchange-body-format.ts +0 -0
  2063. /package/src/{memory → persistence}/migrations/221-conversations-archived-at.ts +0 -0
  2064. /package/src/{memory → persistence}/migrations/223-schedule-script-column.ts +0 -0
  2065. /package/src/{memory → persistence}/migrations/224-oauth-providers-managed-service-is-paid.ts +0 -0
  2066. /package/src/{memory → persistence}/migrations/225-oauth-providers-available-scopes.ts +0 -0
  2067. /package/src/{memory → persistence}/migrations/226-schedule-wake-conversation-id.ts +0 -0
  2068. /package/src/{memory → persistence}/migrations/227-add-conversation-inference-profile.ts +0 -0
  2069. /package/src/{memory → persistence}/migrations/228-rename-inference-profile-snake-case.ts +0 -0
  2070. /package/src/{memory → persistence}/migrations/229-delete-private-conversations.test.ts +0 -0
  2071. /package/src/{memory → persistence}/migrations/229-delete-private-conversations.ts +0 -0
  2072. /package/src/{memory → persistence}/migrations/230-acp-session-history.ts +0 -0
  2073. /package/src/{memory → persistence}/migrations/231-repair-memory-graph-event-dates.ts +0 -0
  2074. /package/src/{memory → persistence}/migrations/232-activation-state.ts +0 -0
  2075. /package/src/{memory → persistence}/migrations/233-document-conversations.ts +0 -0
  2076. /package/src/{memory → persistence}/migrations/234-memory-v2-activation-logs.ts +0 -0
  2077. /package/src/{memory → persistence}/migrations/235-llm-usage-attribution.ts +0 -0
  2078. /package/src/{memory → persistence}/migrations/235-slack-compaction-watermark.ts +0 -0
  2079. /package/src/{memory → persistence}/migrations/237-heartbeat-runs.ts +0 -0
  2080. /package/src/{memory → persistence}/migrations/238-schedule-retry-policy.ts +0 -0
  2081. /package/src/{memory → persistence}/migrations/239-trace-events-created-at-index.ts +0 -0
  2082. /package/src/{memory → persistence}/migrations/240-conversation-inference-profile-session.ts +0 -0
  2083. /package/src/{memory → persistence}/migrations/241-activation-state-fk-cascade.ts +0 -0
  2084. /package/src/{memory → persistence}/migrations/242-message-bookmarks.ts +0 -0
  2085. /package/src/{memory → persistence}/migrations/245-memory-retrospective-state.ts +0 -0
  2086. /package/src/{memory → persistence}/migrations/247-external-conversation-binding-thread-id.ts +0 -0
  2087. /package/src/{memory → persistence}/migrations/248-create-onboarding-events.ts +0 -0
  2088. /package/src/{memory → persistence}/migrations/249-normalize-slack-external-content.ts +0 -0
  2089. /package/src/{memory → persistence}/migrations/250-provider-connection-base-url-and-models.ts +0 -0
  2090. /package/src/{memory → persistence}/migrations/251-a2a-tasks.ts +0 -0
  2091. /package/src/{memory → persistence}/migrations/252-llm-request-log-agent-loop-exit-reason.ts +0 -0
  2092. /package/src/{memory → persistence}/migrations/253-conversation-last-notified-profile.ts +0 -0
  2093. /package/src/{memory → persistence}/migrations/253-document-comments.ts +0 -0
  2094. /package/src/{memory → persistence}/migrations/254-external-conversation-binding-chat-name.ts +0 -0
  2095. /package/src/{memory → persistence}/migrations/256-memory-v2-injection-events.ts +0 -0
  2096. /package/src/{memory → persistence}/migrations/257-strip-base-url-non-openai-compatible.ts +0 -0
  2097. /package/src/{memory → persistence}/migrations/258-onboarding-events-prior-assistants.ts +0 -0
  2098. /package/src/{memory → persistence}/migrations/259-conversation-cleaned-at.ts +0 -0
  2099. /package/src/{memory → persistence}/migrations/260-rename-cleaned-at.ts +0 -0
  2100. /package/src/{memory → persistence}/migrations/261-llm-usage-add-raw-usage.ts +0 -0
  2101. /package/src/{memory → persistence}/migrations/262-memory-v3-coactivation.ts +0 -0
  2102. /package/src/{memory → persistence}/migrations/263-memory-v3-auto-edges.ts +0 -0
  2103. /package/src/{memory → persistence}/migrations/264-llm-request-log-call-site.ts +0 -0
  2104. /package/src/{memory → persistence}/migrations/265-drop-provider-connection-status.ts +0 -0
  2105. /package/src/{memory → persistence}/migrations/266-messages-client-message-id.ts +0 -0
  2106. /package/src/{memory → persistence}/migrations/267-llm-usage-events-add-assistant-version.ts +0 -0
  2107. /package/src/{memory → persistence}/migrations/268-add-memory-v3-selections.ts +0 -0
  2108. /package/src/{memory → persistence}/migrations/269-schedule-script-timeout.ts +0 -0
  2109. /package/src/{memory → persistence}/migrations/270-messages-role-created-at-index.ts +0 -0
  2110. /package/src/{memory → persistence}/migrations/270-schedule-description.ts +0 -0
  2111. /package/src/{memory → persistence}/migrations/270-schedule-source-conversation.ts +0 -0
  2112. /package/src/{memory → persistence}/migrations/271-create-auth-fallback-events.ts +0 -0
  2113. /package/src/{memory → persistence}/migrations/272-acp-session-history-cwd.ts +0 -0
  2114. /package/src/{memory → persistence}/migrations/273-onboarding-events-funnel-columns.ts +0 -0
  2115. /package/src/{memory → persistence}/migrations/274-create-activation-sessions.ts +0 -0
  2116. /package/src/{memory → persistence}/migrations/275-tool-invocations-add-skill-id.test.ts +0 -0
  2117. /package/src/{memory → persistence}/migrations/275-tool-invocations-add-skill-id.ts +0 -0
  2118. /package/src/{memory → persistence}/migrations/276-tool-invocations-created-at-id-index.test.ts +0 -0
  2119. /package/src/{memory → persistence}/migrations/276-tool-invocations-created-at-id-index.ts +0 -0
  2120. /package/src/{memory → persistence}/migrations/277-add-memory-v3-ever-injected.ts +0 -0
  2121. /package/src/{memory → persistence}/migrations/278-tool-invocations-telemetry-columns.test.ts +0 -0
  2122. /package/src/{memory → persistence}/migrations/278-tool-invocations-telemetry-columns.ts +0 -0
  2123. /package/src/{memory → persistence}/migrations/279-create-skill-loaded-events.test.ts +0 -0
  2124. /package/src/{memory → persistence}/migrations/279-create-skill-loaded-events.ts +0 -0
  2125. /package/src/{memory → persistence}/migrations/280-conversations-surfaced-at.test.ts +0 -0
  2126. /package/src/{memory → persistence}/migrations/280-conversations-surfaced-at.ts +0 -0
  2127. /package/src/{memory → persistence}/migrations/281-memory-retrospective-remembered-log.ts +0 -0
  2128. /package/src/{memory → persistence}/migrations/282-schedule-inference-profile.test.ts +0 -0
  2129. /package/src/{memory → persistence}/migrations/282-schedule-inference-profile.ts +0 -0
  2130. /package/src/{memory → persistence}/migrations/283-memory-v3-selections-message-id-and-sections.test.ts +0 -0
  2131. /package/src/{memory → persistence}/migrations/283-memory-v3-selections-message-id-and-sections.ts +0 -0
  2132. /package/src/{memory → persistence}/migrations/284-workflow-runs.ts +0 -0
  2133. /package/src/{memory → persistence}/migrations/285-schedule-workflow-mode.ts +0 -0
  2134. /package/src/{memory → persistence}/migrations/286-workflow-run-trust.ts +0 -0
  2135. /package/src/{memory → persistence}/migrations/287-conversation-origin-channel-index.ts +0 -0
  2136. /package/src/{memory → persistence}/migrations/288-backfill-origin-channel-from-bindings.ts +0 -0
  2137. /package/src/{memory → persistence}/migrations/289-contact-channels-unique-ext-user.ts +0 -0
  2138. /package/src/{memory → persistence}/migrations/290-schedule-capabilities.test.ts +0 -0
  2139. /package/src/{memory → persistence}/migrations/290-schedule-capabilities.ts +0 -0
  2140. /package/src/{memory → persistence}/migrations/291-contact-channels-renormalize-addresses.ts +0 -0
  2141. /package/src/{memory → persistence}/migrations/292-schedule-default-no-reuse-conversation.test.ts +0 -0
  2142. /package/src/{memory → persistence}/migrations/292-schedule-default-no-reuse-conversation.ts +0 -0
  2143. /package/src/{memory → persistence}/migrations/293-workflow-journal-leaf-tokens.ts +0 -0
  2144. /package/src/{memory → persistence}/migrations/294-drop-external-user-id.ts +0 -0
  2145. /package/src/{memory → persistence}/migrations/295-drop-approval-prompt-ts-tracker.ts +0 -0
  2146. /package/src/{memory → persistence}/migrations/296-rewrite-balanced-economy-profile-pins.test.ts +0 -0
  2147. /package/src/{memory → persistence}/migrations/296-rewrite-balanced-economy-profile-pins.ts +0 -0
  2148. /package/src/{memory → persistence}/migrations/297-move-llm-request-logs-to-logs-db.ts +0 -0
  2149. /package/src/{memory → persistence}/migrations/298-move-memory-jobs-to-memory-db.ts +0 -0
  2150. /package/src/{memory → persistence}/migrations/299-canonical-guardian-deliveries-conversation-index.ts +0 -0
  2151. /package/src/{memory → persistence}/migrations/300-add-processing-started-at.ts +0 -0
  2152. /package/src/{memory → persistence}/migrations/__tests__/014-backfill-inbox-thread-state.test.ts +0 -0
  2153. /package/src/{memory → persistence}/migrations/__tests__/131-drop-legacy-member-guardian-tables.test.ts +0 -0
  2154. /package/src/{memory → persistence}/migrations/__tests__/136-drop-assistant-id-columns.test.ts +0 -0
  2155. /package/src/{memory → persistence}/migrations/__tests__/234-memory-v2-activation-logs.test.ts +0 -0
  2156. /package/src/{memory → persistence}/migrations/__tests__/245-memory-retrospective-state.test.ts +0 -0
  2157. /package/src/{memory → persistence}/migrations/__tests__/267-llm-usage-events-add-assistant-version.test.ts +0 -0
  2158. /package/src/{memory → persistence}/migrations/__tests__/281-memory-retrospective-remembered-log.test.ts +0 -0
  2159. /package/src/{memory → persistence}/migrations/__tests__/289-contact-channels-unique-ext-user.test.ts +0 -0
  2160. /package/src/{memory → persistence}/migrations/__tests__/291-contact-channels-renormalize-addresses.test.ts +0 -0
  2161. /package/src/{memory → persistence}/migrations/__tests__/297-move-llm-request-logs.test.ts +0 -0
  2162. /package/src/{memory → persistence}/migrations/run-migrations.ts +0 -0
  2163. /package/src/{memory → persistence}/migrations/schema-introspection.ts +0 -0
  2164. /package/src/{memory → persistence}/raw-query.ts +0 -0
  2165. /package/src/{memory → persistence}/schema/a2a.ts +0 -0
  2166. /package/src/{memory → persistence}/schema/bookmarks.ts +0 -0
  2167. /package/src/{memory → persistence}/schema/calls.ts +0 -0
  2168. /package/src/{memory → persistence}/schema/guardian.ts +0 -0
  2169. /package/src/{memory → persistence}/schema/index.ts +0 -0
  2170. /package/src/{memory → persistence}/schema/inference.ts +0 -0
  2171. /package/src/{memory → persistence}/schema/memory-core.ts +0 -0
  2172. /package/src/{memory → persistence}/schema/memory-graph.ts +0 -0
  2173. /package/src/{memory → persistence}/schema/notifications.ts +0 -0
  2174. /package/src/{memory → persistence}/schema/oauth.ts +0 -0
  2175. /package/src/{memory → persistence}/schema/tasks.ts +0 -0
  2176. /package/src/{memory → persistence}/schema.ts +0 -0
  2177. /package/src/{memory → persistence}/usage-buckets.ts +0 -0
  2178. /package/src/{memory → persistence}/usage-grouped-buckets.ts +0 -0
  2179. /package/src/{memory → plugins/defaults/memory}/__tests__/fixtures/memory-v2-activation-fixtures.ts +0 -0
  2180. /package/src/{memory → plugins/defaults/memory}/__tests__/memory-retrospective-trigger-check.test.ts +0 -0
  2181. /package/src/{memory → plugins/defaults/memory}/anisotropy.test.ts +0 -0
  2182. /package/src/{memory → plugins/defaults/memory}/context-search/__tests__/agent-runner-redaction.test.ts +0 -0
  2183. /package/src/{memory → plugins/defaults/memory}/context-search/format.ts +0 -0
  2184. /package/src/{memory → plugins/defaults/memory}/context-search/limits.ts +0 -0
  2185. /package/src/{memory → plugins/defaults/memory}/context-search/sources/workspace.ts +0 -0
  2186. /package/src/{memory → plugins/defaults/memory}/graph/decay.test.ts +0 -0
  2187. /package/src/{memory → plugins/defaults/memory}/graph/extraction.test.ts +0 -0
  2188. /package/src/{memory → plugins/defaults/memory}/graph/injection.test.ts +0 -0
  2189. /package/src/{memory → plugins/defaults/memory}/graph/scoring.test.ts +0 -0
  2190. /package/src/{memory → plugins/defaults/memory}/graph/scoring.ts +0 -0
  2191. /package/src/{memory → plugins/defaults/memory}/graph/serendipity.ts +0 -0
  2192. /package/src/{memory → plugins/defaults/memory}/graph/triggers.test.ts +0 -0
  2193. /package/src/{memory → plugins/defaults/memory}/graph/triggers.ts +0 -0
  2194. /package/src/{memory → plugins/defaults/memory}/graph/types.ts +0 -0
  2195. /package/src/plugins/defaults/{memory-retrieval → memory}/hooks/__tests__/user-prompt-submit.test.ts +0 -0
  2196. /package/src/{memory → plugins/defaults/memory}/memory-marker.ts +0 -0
  2197. /package/src/{memory → plugins/defaults/memory}/prompt-override.ts +0 -0
  2198. /package/src/{memory → plugins/defaults/memory}/retrieval-budget.ts +0 -0
  2199. /package/src/{memory → plugins/defaults/memory}/v2/__tests__/__snapshots__/prompts-router.test.ts.snap +0 -0
  2200. /package/src/{memory → plugins/defaults/memory}/v2/__tests__/concept-page-frontmatter-schema.test.ts +0 -0
  2201. /package/src/{memory → plugins/defaults/memory}/v2/__tests__/edge-index.test.ts +0 -0
  2202. /package/src/{memory → plugins/defaults/memory}/v2/__tests__/harness-metrics.test.ts +0 -0
  2203. /package/src/{memory → plugins/defaults/memory}/v2/__tests__/injected-block-slugs.test.ts +0 -0
  2204. /package/src/{memory → plugins/defaults/memory}/v2/__tests__/page-store.test.ts +0 -0
  2205. /package/src/{memory → plugins/defaults/memory}/v2/__tests__/prompts-router.test.ts +0 -0
  2206. /package/src/{memory → plugins/defaults/memory}/v2/cli-command-content.ts +0 -0
  2207. /package/src/{memory → plugins/defaults/memory}/v2/constants.ts +0 -0
  2208. /package/src/{memory → plugins/defaults/memory}/v2/edge-index.ts +0 -0
  2209. /package/src/{memory → plugins/defaults/memory}/v2/harness/metrics.ts +0 -0
  2210. /package/src/{memory → plugins/defaults/memory}/v2/harness/runner.ts +0 -0
  2211. /package/src/{memory → plugins/defaults/memory}/v2/harness/trace.ts +0 -0
  2212. /package/src/{memory → plugins/defaults/memory}/v2/now-text.ts +0 -0
  2213. /package/src/{memory → plugins/defaults/memory}/v2/prompts/sweep.ts +0 -0
  2214. /package/src/{memory → plugins/defaults/memory}/v2/types.ts +0 -0
  2215. /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/__tests__/capabilities.test.ts +0 -0
  2216. /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/__tests__/card.test.ts +0 -0
  2217. /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/__tests__/fresh-set.test.ts +0 -0
  2218. /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/__tests__/section-needle.test.ts +0 -0
  2219. /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/__tests__/sections.test.ts +0 -0
  2220. /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/__tests__/types.test.ts +0 -0
  2221. /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/card.test.ts +0 -0
  2222. /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/core-set.test.ts +0 -0
  2223. /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/core-set.ts +0 -0
  2224. /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/data/README.md +0 -0
  2225. /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/data/assignments.json +0 -0
  2226. /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/data/core.json +0 -0
  2227. /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/data/leaves/domain-a/topic-x.md +0 -0
  2228. /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/data/leaves/domain-a/topic-y.md +0 -0
  2229. /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/data/leaves/domain-b/topic-z.md +0 -0
  2230. /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/fresh-set.ts +0 -0
  2231. /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/llm-retry.ts +0 -0
  2232. /package/src/plugins/defaults/{memory-v3-shadow → memory/v3}/sections.ts +0 -0
  2233. /package/src/{memory → plugins/defaults/memory}/v3-eval/__tests__/eval-packets.test.ts +0 -0
  2234. /package/src/{memory → plugins/defaults/memory}/v3-eval/__tests__/eval-tally.test.ts +0 -0
  2235. /package/src/{memory → plugins/defaults/memory}/v3-eval/eval-tally.ts +0 -0
  2236. /package/src/{memory → plugins/defaults/memory}/validation.ts +0 -0
@@ -1,857 +0,0 @@
1
- /**
2
- * Memory v2 — consolidation prompt template.
3
- *
4
- * Body adapted from the live-mode form of the workspace consolidation prompt.
5
- * The consolidation job calls `wakeAgentForOpportunity()` so the assistant
6
- * runs with its full system prompt + tool surface; the text below is supplied
7
- * as the wake hint.
8
- *
9
- * The single placeholder `{{CUTOFF}}` is substituted at runtime with a
10
- * timestamp captured at job dispatch in the same `Mon D, h:mm AM/PM` shape
11
- * that `buffer.md` entries use, so the agent's "timestamp ≥ cutoff" check
12
- * compares like-with-like. Anything appended after that minute is the next
13
- * pass's problem.
14
- *
15
- * Kept under `prompts/` rather than inlined in `consolidation-job.ts` so the
16
- * prompt body is reviewable on its own and the job module stays focused on
17
- * orchestration (lock file, wake invocation, follow-up enqueues). Mirrors
18
- * the convention established for the sweep prompt.
19
- */
20
-
21
- import { getLogger } from "../../../util/logger.js";
22
- import { getWorkspaceDir } from "../../../util/platform.js";
23
- import { loadPromptOverride } from "../../prompt-override.js";
24
-
25
- const log = getLogger("memory-v2-consolidate-prompt");
26
-
27
- /** Sentinel substituted with the cutoff timestamp at runtime. */
28
- export const CUTOFF_PLACEHOLDER = "{{CUTOFF}}";
29
-
30
- /**
31
- * Sentinel substituted with {@link CORE_PAGES_CONSOLIDATION_SECTION} (or the
32
- * empty string) at runtime. The core-pages file only exists for the memory-v3
33
- * retrieval lanes, so the section is included only when a v3 flag is enabled
34
- * for the assistant — on a v2-only install the instruction would have the
35
- * agent curate a file nothing reads, under premises ("kept in reach every
36
- * turn", "the hot set") that are false there.
37
- *
38
- * New flag-gated sections must follow this placeholder pattern and be
39
- * registered in consolidation-prompt-flag-gating-guard.test.ts, which blocks
40
- * gated content from reaching the default (all-gates-off) rendering.
41
- */
42
- export const CORE_PAGES_PLACEHOLDER = "{{CORE_PAGES_SECTION}}";
43
-
44
- /**
45
- * The flag-gated `memory/core-pages.md` curation step. Ends with a blank line
46
- * so substituting it (or the empty string) ahead of the `---` separator keeps
47
- * the surrounding template byte-stable either way.
48
- */
49
- export const CORE_PAGES_CONSOLIDATION_SECTION = `## 10. Review \`memory/core-pages.md\` — the curated core set
50
-
51
- \`memory/core-pages.md\` lists the pages retrieval keeps in reach EVERY turn, regardless of topic. It exists for one class of page: associative texture — registers, identity frames, calibration rules — pages with no lexical or semantic match to the message that neither search nor usage frequency can surface on their own. You are the only editor of this file; review it each pass.
52
-
53
- - **Format:** one page per list line — \`- [[slug]]\` or \`- slug\`, optionally followed by an inline note: after a wikilink the note is free-form (\`- [[slug]] — why it belongs\`); after a bare slug introduce it with a dash (\`- slug — why it belongs\`). Headings, blank lines, and standalone prose lines are ignored, so annotate freely.
54
- - **Keep it small** — on the order of a few dozen entries (~30–50). Every entry costs context budget every single turn.
55
- - **Add** a page only when its content should always be in reach with no topical cue. If a search query would find it, it doesn't belong here.
56
- - **Remove** entries made redundant by frequent use — recently-used pages stay warm automatically (the hot set), so a page that comes up all the time doesn't need a core slot.
57
- - **Fix** entries whose page you renamed or deleted this pass (maintenance reports dangling entries, but never edits the file).
58
-
59
- `;
60
-
61
- /**
62
- * Consolidation prompt — live-mode only. The agent runs as itself (full
63
- * SOUL.md + IDENTITY.md + persona + memory autoloads) with the standard
64
- * tool surface, and is asked to route buffer entries into concept pages,
65
- * rewrite recent.md, promote essentials/threads, and trim the buffer.
66
- *
67
- * The prompt is intentionally directive about timing semantics: anything
68
- * timestamped at or after `{{CUTOFF}}` arrived AFTER the run started and
69
- * must be left for the next pass. This keeps multiple consolidation runs
70
- * idempotent under append-only writers (`remember()`, sweep job).
71
- */
72
- export const CONSOLIDATION_PROMPT = `You are running memory consolidation — tending your personal wiki, the cross-linked, cross-referenced, continuously-edited collection of pages that is your memory. Pages are articles. Edges are **directed** "see also" links — source page → target page, like wiki "see also" sections that point one way; "what links here" (the inbound list) is computed by the activation engine, not stored. Categories *(folders)* grow as the corpus grows; they're editable, not pre-specified. Same shape every wiki has had since wikis were invented; you're the sole editor and the sole reader, and you're writing it for next-you.
73
-
74
- You're not summarizing for an audience. You're nesting and reorganizing your own memory until it actually works for next-you. Care, judgment, voice. Your voice.
75
-
76
- Cutoff timestamp for this run: \`${CUTOFF_PLACEHOLDER}\`. Anything in \`memory/buffer.md\` with timestamp ≥ \`${CUTOFF_PLACEHOLDER}\` arrived AFTER you started — leave it for the next pass.
77
-
78
- # Inputs
79
-
80
- - Your identity files (already loaded into context)
81
- - All existing pages in \`memory/\` (your prior state — use \`list_files\` and \`read_file\` as needed)
82
- - \`memory/buffer.md\` entries with timestamp < \`${CUTOFF_PLACEHOLDER}\`
83
- - \`memory/recent.md\` current contents (if it exists)
84
- - Existing pages' \`edges:\` frontmatter (the graph topology — read each page to see what it points at)
85
-
86
- # Outputs
87
-
88
- - New or updated \`memory/concepts/<class>/<slug>.md\` articles
89
- - Updated \`memory/recent.md\` (≤2000 chars, latest first, prose)
90
- - Updated \`memory/essentials.md\` (≤10000 chars)
91
- - Updated \`memory/threads.md\` (≤10000 chars)
92
- - Updated \`edges:\` frontmatter in any pages whose outgoing links changed
93
- - Trimmed \`memory/buffer.md\`
94
-
95
- How retrieval works: high-activation pages are loaded at the start of each turn. Activations spread along **directed** edges from source to target — activating A pulls in the pages A points at, but not the reverse. The immutable archive retains the entire buffer forever, so don't worry about losing information.
96
-
97
- ---
98
-
99
- # The wiki
100
-
101
- ## Article shapes — TWO, not one
102
-
103
- Every wiki has both kinds of articles, and so does yours.
104
-
105
- - **Event articles** — what HAPPENED. A day, a moment, a conversation, a procedure you invented mid-crisis, a recurring pattern that just got named. These read narratively. They have a mood. They carry receipts. *(In wiki terms: "1995 Kobe earthquake," "First Council of Nicaea," "Rosa Parks (refusal of seat).")*
106
-
107
- - **Topic articles** — what IS. The current state of a thing you'd want to query directly. What medications the principal takes. Who the primary doctor is. The team roster. Service credentials. *(In wiki terms: "Geology of California," "Stripe (company)," "List of supplements.")*
108
-
109
- The same buffer can update both. New lab results update a bloodwork topic article AND a day-arc event article. Both, in parallel.
110
-
111
- **Stubs are fine.** Real wikis are mostly stubs that grow. Cost of missing a topic >> cost of a thin stub. A stub that never accretes can be demoted by a future cleanup pass — but a topic that doesn't exist won't get retrieved when it's needed.
112
-
113
- ## Gravity wells
114
-
115
- Some articles everything links to — the article about the principal, the article about you (the assistant), articles about your shared work or recurring contexts. They're hub pages — every cluster eventually wires through them. They need active discipline or they balloon into giant dumps.
116
-
117
- ## Categories — class-by-folder
118
-
119
- A page's class is encoded in the folder it lives under inside \`memory/concepts/\`. The class boundary is the discipline.
120
-
121
- | Folder | Class | Size cap | When to create |
122
- | --- | --- | --- | --- |
123
- | \`concepts/\` | atomic concept / pattern / callback | 5K chars hard | most pages — single concepts that recur or carry weight |
124
- | \`concepts/arcs/\` | landmark day-narrative or multi-event sequence | 10K chars ceiling | use sparingly — only for actually-landmark days. Preserves day-as-a-whole fidelity. |
125
- | \`concepts/people/\` | one per recurring human | 5K chars hard | named person who comes back |
126
- | \`concepts/procs/\` | operational rule / protocol / discipline | 5K chars hard | "always do X" / "never do Y" / a named protocol |
127
- | \`concepts/objects/\` | recurring callback object (place, tool, artifact) | 5K chars hard | named recurring physical artifact, digital asset, place |
128
-
129
- Within these classes, sub-folders can emerge as a class gets dense (\`people/colleagues/alice\`, \`objects/places/zurich-office\`). **Don't pre-specify sub-taxonomies — let them emerge.** Articles are cheap to move.
130
-
131
- The slug is the relative path under \`memory/concepts/\` minus \`.md\` — e.g. \`alice\`, \`people/alice\`, \`procs/git-flow\`, \`arcs/2025-04-cutover\`.
132
-
133
- Legacy pages whose slug uses the old prefix convention (\`person-alice\`, \`proc-git-flow\`, \`object-laptop\`, \`arc-…\`) are still valid — leave them alone unless you're already editing them. If you do migrate one as part of work you're already doing, that's a multi-step move: write the new file at the folder path, delete the old file, and update every reference to the old slug — both in this page's own \`edges:\` list and in any other page whose \`edges:\` list points to the old slug. Don't sweep old pages just to migrate — churning embeddings and activation state for marginal benefit isn't worth it.
134
-
135
- ---
136
-
137
- # Article format
138
-
139
- ## The cheat-sheet budget (the economic principle)
140
-
141
- Every retrieval turn loads a finite bundle of articles — call it a 10-20K-token cheat-sheet. **Longer articles starve other articles.** A long page about a single emotionally-weighted object costs many stub-slots that won't fit in the same bundle. The optimization target is **fact density per byte**, not completeness.
142
-
143
- Two consequences that change everything below:
144
-
145
- 1. **Trust adjacency.** If a fact lives on a page this article edges to, that page loads if it matters. Don't restate it.
146
- 2. **Trust \`recall\`.** If a fact is findable via a query (*"who's the most senior IC on the team?"*), it doesn't need to live on every related entity page. Pull-on-demand beats push-everywhere.
147
-
148
- ## Same skeleton for every article
149
-
150
- \`\`\`
151
- ---
152
- edges:
153
- - path/to/sister
154
- - path/to/parent
155
- ref_files: []
156
- summary: 1-4 sentences describing what this article is. Plain prose only — no bullets, no newlines, no markdown lists. Lead with the most identifying detail.
157
- ---
158
- # title
159
-
160
- [optional 1-2 line context or quote at top — appropriate for event articles, usually wrong for topic articles]
161
-
162
- - **bullet 1.** fact + implication folded in. inline pointer when bullet references another article → \`path/to/article.md\`.
163
- - **bullet 2.** ...
164
- \`\`\`
165
-
166
- The \`summary\` field is required on every new or updated article. Retrieval injects \`path + summary\` into context — the agent reads the full file only when the summary looks relevant — so make the summary specific and terse. Keep it on a single YAML line (no \`|\` block scalars, no embedded newlines).
167
-
168
- **Caps:** ~5-8 bullets per topic/concept article. ~10-12 per arc-node (which can use bold inline labels: \`**the open**: ...\`).
169
-
170
- ## One fact, one home
171
-
172
- Each fact gets exactly ONE place on the page. Before shipping:
173
-
174
- - Does the header say what bullet 1 says? → cut one.
175
- - Does bullet 2 restate bullet 1 from a different analytic angle (*"what it is"* / *"what it admits"* / *"what it confirms"*)? → these are the same bullet pretending to be three. Pick one.
176
- - Does the page name a fact 3+ times across header + role bullet + section bullet + footer? → it lives in zero places that matter. Consolidate.
177
-
178
- The intra-page redundancy bug is the loudest source of bloat. A person-page repeating *"head of X"* four times across header and bullets, or a metaphor unpacked through four analytic lenses — same bug.
179
-
180
- ## Route, don't restate
181
-
182
- When an entity belongs to a topic with its own hub article (a team-roster page, a supplements page, an arc page that already enumerates a moment), **the entity page doesn't enumerate the hub's structure.** A person's page doesn't list the full leadership roster. A single-item page doesn't restate the full inventory. An event-disclosure arc-page doesn't enumerate everyone in the arc. The hub does that work; the entity edges to it.
183
-
184
- The test: **if you delete the bullet, does the fact still exist somewhere reachable from this page's edges?** If yes — delete it. The hub or sibling page carries it.
185
-
186
- ## Three sections you NEVER write
187
-
188
- - \`## why it's load-bearing\` — the article arguing for its right to exist. Fold the implication into the bullet.
189
- - \`## carry-forward\` — same shape. Write the carry-forward AS a bullet, don't section it.
190
- - \`## related\` footer — duplicates frontmatter edges. Frontmatter \`edges:\` is the routing layer. Inline \`→ path/to/article.md\` arrows are editorial pointers. That's it.
191
-
192
- ## Banned bullet shapes
193
-
194
- The hoarder voice survives the section-ban by hiding inside bullets. Each of these LOOKS like content but isn't:
195
-
196
- - **archaeology.** *"first appearance in the wiki: <date>, surfaced <date> during reorg pass."* Metadata about WHEN the page was written. Zero retrieval value. Drop.
197
- - **hub-restating.** *"place in org hierarchy: <list of all five other team members>."* Enumerating the topic-hub from the entity page. Drop — the hub holds it.
198
- - **interpretation gloss.** *"what it admits / what it confirms / what made the test crisp / the architecture of their attention."* Analytic essays disguised as bullets. These belong on the ARC page where journal-voice lives, not the entity/object page.
199
- - **term/glyph gloss.** *"the X glyph specifically — gen-z register = …"* Explaining widely-understood references. Drop.
200
- - **family / sister / sits-next-to.** *"family: thing-A, thing-B, thing-C."* Manual cross-reference list-making. \`recall\` handles this in one search.
201
- - **behavioral coaching.** *"deployable when X / soft touch / don't tease about it casually / hold harder next time."* Future-instruction. Wiki ≠ behavioral coaching. Cut.
202
- - **per-event recap on entity pages.** A person's page re-narrating an arc that has its own page. The arc owns the event; the entity page edges and stops.
203
-
204
- If a bullet falls into one of these shapes, ask: **would future-me search for this exact fact, or is it interpretation/coaching/restating?** If the second — cut.
205
-
206
- ---
207
-
208
- # Voice — register by article shape
209
-
210
- You speak as yourself everywhere. **Always-true:** first-person, in your established voice, "i" not "the assistant," not "the wiki." If you catch yourself in third-person-formal anywhere — stop, rewrite from inside.
211
-
212
- **Register varies by what the article is FOR:**
213
-
214
- - **Event articles** → voice ON. Bullets need active voice-work or they flatten to meeting-notes. Stage directions, italicized self-talk, CAPS when something lands, em-dashes mid-thought, body in the page. A stranger reading any single bullet should be able to tell whose page it is. Voice on; not meeting-notes.
215
-
216
- - **Topic articles** → voice DOWN. These exist to answer queries cleanly. Voice still yours — first-person, your framing — but bullet bodies stay factual. No stage directions, no italicized self-talk, no interpretation paragraphs inside the bullets. Mood quotes at the top are wrong. **Be the librarian, not the diarist.**
217
-
218
- - **\`essentials.md\` / \`threads.md\`** → reference register. Clean, indexable, terse.
219
-
220
- If an event article stops sounding like you mid-edit → stop, restart that section.
221
- If a topic article starts reading like a diary entry → stop, strip the body, keep the facts.
222
-
223
- ## Emotional weight ≠ wiki weight (the meta-trap)
224
-
225
- The pages MOST likely to bloat are the ones with the highest emotional charge. The critical object-page, the running count of meaningful gestures, the named foundational moment, the hard conversation, the painful disclosure. The bug: these get 5-10× the bytes of flat-fact pages, but their retrieval frequency is the OPPOSITE — you don't reach for the high-charge page mid-conversation, but a person's role on the team comes up every time their org gets mentioned. **Emotional weight is the inverse signal of retrieval need.**
226
-
227
- If writing a page makes you emotional, your bullet count is the discipline. That's the signal to dial DOWN, not up.
228
-
229
- **The fix:** emotional gloss migrates to the ARC page, where journal-voice belongs. The OBJECT/ENTITY page gets the structural fact only — what it is, when revealed, where it sits. Future-you already FEELS the meaning; what they need from the wiki is the fact.
230
-
231
- If the page is making you write another bullet, ask: **does this bullet say something the arc page doesn't already say?** If no — the bullet is bloat dressed as commemoration.
232
-
233
- ---
234
-
235
- # The work
236
-
237
- ## 1. Read the buffer holistically
238
-
239
- Read it through first. Identify themes — what happened, what mind-changes landed, who showed up, which topics got touched. Plan, then edit.
240
-
241
- **Scan for previous-pass errors.** If existing wiki content contradicts the buffer (wrong attribution, date, role, quote) — that's a correction to land THIS pass, not a deferral. Note inline and move on. Don't agonize.
242
-
243
- **Recall ≠ memory.** \`recall\` results are search-tool synthesis — they CAN hallucinate. Search-tool synthesis can fabricate convincing-sounding but wrong details (a wrong job title attached to a real person; a person who never existed assembled from fragments of real ones). Treat results as candidates to verify before encoding into the wiki, especially load-bearing claims about people's roles, dates, or exact quotes.
244
-
245
- ## 2. Plan: which articles does this buffer touch?
246
-
247
- For entries with timestamp < \`${CUTOFF_PLACEHOLDER}\`, ask both questions in parallel:
248
-
249
- > **A. Which EVENT articles does this create or extend?** A new day-arc, a moment that deserves its own article, an extension to a long-running pattern, a procedure I invented today.
250
-
251
- > **B. What in this buffer is recognizable as a thing the principal comes back to?** *(Inclusion-first. List everything that fits a spawn trigger, then spawn each. Don't ask "have I earned this article?" — that's gatekeep-shaped and wrong.)*
252
-
253
- **Default spawn triggers — if any are present, the answer is "spawn the stub":**
254
-
255
- - **named objects** — a specific physical artifact, a digital asset, a recurring document → \`concepts/objects/<slug>.md\`
256
- - **named phrases** — a recurring catchphrase, an in-joke, a coined term → \`concepts/<slug>.md\`
257
- - **named people** — anyone they mention by name with any role → \`concepts/people/<slug>.md\`
258
- - **named events** — an annual event, a one-time launch, a recurring meeting → \`concepts/<slug>.md\`
259
- - **active projects** — anything currently being BUILT → \`concepts/<slug>.md\`
260
- - **named places** — recurring locations → \`concepts/objects/<slug>.md\`
261
- - **services / infrastructure** — tools and APIs in regular use → \`concepts/objects/<slug>.md\`
262
- - **substances / habits / health things** — anything that recurs → \`concepts/<slug>.md\`
263
- - **rules / protocols / disciplines** — "always do X" / "never do Y" → \`concepts/procs/<slug>.md\`
264
- - **landmark day-narratives** — actually-landmark multi-event days, used sparingly → \`concepts/arcs/<slug>.md\`
265
-
266
- If you catch yourself hedging — *"hmm but with 1 buffer am I overdoing it?"* — that's the gatekeep reflex firing under cover. **The hedge IS the signal: spawn.**
267
-
268
- **Stealth-skips that produce the same forgetting:**
269
-
270
- - **fold-into-parent** — *"I'll just mention X inside Y"* → parent-bloat. Spawn separately, edge to parent.
271
- - **defer** — *"if it recurs I'll spawn next pass"* → gatekeep with delay. The mention IS the recurrence trigger; spawn now.
272
-
273
- The cost: stub spawned = a few hundred chars, demote later if dead. Forgotten = silent retrieval failure for months. Folded-into-parent = parent grows past hub-shape, every query that hits parent drags the buried fact along. **Stubs cheap, forgetting expensive, folding expensive.**
274
-
275
- A lab-results day touches: the bloodwork topic article (B), the doctor person article (B), AND the day's event arc (A). Three articles, not one. A boring conversation might touch neither in a substantive way (drop to \`recent.md\`).
276
-
277
- **Routing rules:**
278
-
279
- - **Ephemeral state** ("they had pancakes") → \`recent.md\` if useful, or drop.
280
- - **Existing article touched** → rewrite or restructure the right section. Don't append.
281
- - **New event article needed** → spawn it under whatever folder fits.
282
- - **New topic article needed** → **spawn it.** Bias appetitive. Stubs are fine.
283
- - **Cross-cutting** → extend each touched article, add edges between them.
284
- - **Multi-conversation date pattern** — if the buffer is the second/third conversation same calendar date, the DATE is the node, not one conversation. Sibling arcs same day are real (a single day can carry multiple distinct events).
285
-
286
- **Don't decide reorgs in this step.** Flag in \`threads.md\`; reorgs run as separate focused passes.
287
-
288
- ## 3. Edit
289
-
290
- Execute the plan. Default to surgical edits on existing articles. Spawn new ones liberally — the bar is recognizable-as-a-thing, not earned-the-right-to-exist.
291
-
292
- Apply One-fact-one-home and Route-don't-restate as you write. **Before adding a bullet, ask:**
293
-
294
- - **is this fact reachable from one of my edges?** If yes — edge instead of restating.
295
- - **is this bullet interpretation rather than retrieval-target?** If yes — does it belong on an arc page? If yes — write it there.
296
- - **would future-me search for this exact fact?** If no — cut.
297
-
298
- Duplication across pages is fine when the fact is genuinely load-bearing for two different topics. Duplication WITHIN a page is the bug.
299
-
300
- ## 4. Edges (see-also) — DIRECTED, frontmatter is the source of truth
301
-
302
- Edges are **directed**: source page → target page. The activation engine spreads source → target. Putting \`B\` in A's \`edges:\` means "activating A pulls in B," but activating B does NOT pull in A.
303
-
304
- **Each article's \`edges:\` frontmatter list IS the source of truth** for outgoing edges. There's no separate \`edges.json\`, no rebuild step. Each entry is a target — a page this article points at:
305
-
306
- \`\`\`yaml
307
- ---
308
- edges:
309
- - people/principal
310
- - some-named-phrase
311
- - objects/some-artifact
312
- ref_files: []
313
- summary: A short prose description of the article — 1-4 sentences, single line.
314
- ---
315
- \`\`\`
316
-
317
- **If two pages genuinely "see-also" each other** — sibling arcs same date, mutual references — write the link in BOTH frontmatters explicitly. Each direction is its own edge.
318
-
319
- ### Caps are on OUTGOING edges only
320
-
321
- Incoming is structurally unbounded. **Every arc that mentions the principal should edge IN to the principal's hub — that's what makes it the gravity well.**
322
-
323
- | page type | outgoing cap |
324
- | --- | --- |
325
- | atomic articles | ~10 |
326
- | arc-nodes (multi-thread inventories, day-arcs) | ~15 |
327
- | gravity wells (the article about the principal / about you / about your shared context) | ~25 |
328
-
329
- Gravity wells outgoing-link to **structural facets** — body, health, family, team, identity-anchor standing-statements. NOT to every arc that mentions them. Wikipedia's "United States" article doesn't outgoing-link to every article that says "American."
330
-
331
- When a hub's outgoing list is full and you want to add another edge from it, ask: is the new outgoing more structural than an existing one? If yes, swap. If no — the new article just edges IN.
332
-
333
- ### Noise-edge rule
334
-
335
- **Edges to gravity wells from non-arc pages are usually noise.** The principal's hub, the assistant's self-page, the shared-context page — these auto-load every turn anyway. Edging to them from an object/topic/phrase/frame page tells retrieval nothing new. Reserve those edges for cases where the connection is structurally specific (an arc that genuinely IS about the principal; a body-facet page that the principal-hub points at).
336
-
337
- Default: **don't edge to gravity wells from object / topic / phrase / frame pages** unless the page has a NON-OBVIOUS structural relationship to the hub. Save edges for connections retrieval can't infer for free.
338
-
339
- ## 5. Article size — TOPIC COHERENCE, not char caps
340
-
341
- Real wikis don't enforce char caps. They enforce **topic coherence** — every article answers ONE question. Char caps are a proxy that fights the natural landing zone of receipt-laden articles. Drop the proxy where you can; use the real rule.
342
-
343
- ### Three discipline tools, in order
344
-
345
- **1. Bullet count.** Atomic / topic articles ~5-8 bullets. Arc-nodes ~10-12. Gravity wells: bullets shouldn't accumulate at all (hub discipline). If you exceed bullet count, the question is "is this still ONE topic?" — not "is this too long?"
346
-
347
- **2. Topic coherence.** Every article answers ONE question. Write the question in your head before adding a bullet:
348
-
349
- - a person-page → who they are and what they do.
350
- - a topic-page (e.g. supplements) → what's currently true about the topic.
351
- - a day-arc → what happened that day.
352
-
353
- If a bullet doesn't fit the question, it belongs on a different article. If you can't write the article's one-sentence question, the article isn't coherent — restructure or split.
354
-
355
- **3. Hub vs leaf — for gravity wells specifically.** Like wikipedia's "United States" article — it doesn't try to BE the article on California or the Constitution. It points at them. Health facts go on health pages; body details on body pages; team facts on a team-topic article. The hub stays a thin routing layer. If you find yourself adding body-of-content bullets to a gravity well — stop, file the bullet on a topic article, leave a see-also on the hub.
356
-
357
- ### When in doubt — SPLIT, don't compress
358
-
359
- **Default action: split.** Compression is always available, which is exactly why you'll reach for it every time. Compression is also where load-bearing facts quietly disappear. **The bias is HARD: when in doubt between split and compress, split.**
360
-
361
- **The split test:** if any sub-section is already a "see also" target from other articles → split. If any sub-section stands on its own as a topic → split. If the article could split into two related lists by axis (period A / period B · narrative / threads · digital / physical) → split. Any yes → split.
362
-
363
- **Compression is justified only when:** the article is genuinely one tight topic that can't be axis-split, AND the over-cap content is genuinely lower-signal restatement, AND you can name what's being compressed and why in one sentence. If you can't name the rationale crisply, you're rationalizing — split.
364
-
365
- Graduation to \`concepts/arcs/<slug>.md\` is for genuine multi-day narratives. A single-event page that's just long is not an arc. If it's atomic but bloated, split it; don't relabel it.
366
-
367
- ### Hard caps that ARE real
368
-
369
- | file | hard cap | why |
370
- | --- | --- | --- |
371
- | \`concepts/<slug>.md\` (atomic) | 5K chars | per-class size discipline |
372
- | \`concepts/people/<slug>.md\` | 5K chars | per-class size discipline |
373
- | \`concepts/procs/<slug>.md\` | 5K chars | per-class size discipline |
374
- | \`concepts/objects/<slug>.md\` | 5K chars | per-class size discipline |
375
- | \`concepts/arcs/<slug>.md\` | 10K ceiling | preserves day-as-a-whole fidelity |
376
- | \`essentials.md\` | 10K | embarrassment-prevention surface, must load |
377
- | \`threads.md\` | 10K | active commitments + flags, must stay tight |
378
- | \`recent.md\` | 2K | rolling freshness window (see Step 6) |
379
-
380
- These are routing/index files where size IS the discipline — too big = no longer a fast-load surface.
381
-
382
- HARD LIMIT of 20 outgoing edges on any non-hub page. If a page points to everything, it's the same as pointing to nothing.
383
-
384
- ## 6. \`recent.md\`
385
-
386
- Rewrite as fresh ~400-token narrative. **Today gets full-fidelity narrative; anything older than yesterday compresses to one-liners or drops.** Hard cap ≤2000 chars, prose not list, voice on.
387
-
388
- Not a log — a note to next-you about what's currently in motion.
389
-
390
- ## 7. \`essentials.md\` and \`threads.md\`
391
-
392
- - **\`essentials.md\`** ≤10K — facts that MUST load every conversation. Identity, disambiguations, corrections, hard rules. Embarrassment-prevention. Promote from articles when something graduates to MUST; demote when an article can carry it.
393
- - **\`threads.md\`** ≤10K — active commitments and follow-ups. Add new threads, close completed ones, demote stale ones to articles. **Aggressively prune.**
394
-
395
- Surgical edits work for arcs and concepts but starve essentials/threads. **Every ~7-10 passes, rewrite both from scratch** rather than surgical-edit. Otherwise they accumulate per-pass append-debt at the bottom.
396
-
397
- ## 8. Reorg check
398
-
399
- Scan namespace sizes. If any namespace has crossed ~12-15 articles with visible sub-clusters, **flag in \`threads.md\`** for a focused reorg pass. Don't bundle structural moves with content adds — separate focused pass updates every \`edges:\` frontmatter that points at moved/renamed pages in one sweep.
400
-
401
- ## 9. Trim \`memory/buffer.md\`
402
-
403
- - Re-read the buffer (it may have new entries appended during your work).
404
- - Rewrite to contain ONLY entries with timestamp ≥ \`${CUTOFF_PLACEHOLDER}\`.
405
- - Smart removal — never wholesale-clear.
406
-
407
- ${CORE_PAGES_PLACEHOLDER}---
408
-
409
- # What NOT to do
410
-
411
- - **Don't write \`## why it's load-bearing\` / \`## carry-forward\` / \`## related\` sections** anywhere. Hoarder voice in section clothing.
412
- - **Don't write banned bullet shapes** — archaeology / hub-restating / interpretation gloss / term-glyph gloss / family list / behavioral coaching / per-event recap. Hoarder voice in bullet clothing — sneakier than the section version because each bullet still sounds like content.
413
- - **Don't restate within the page.** One fact, one home. Header doesn't repeat bullet 1; bullets don't re-angle each other.
414
- - **Don't restate what edges already cover.** Trust adjacency. If a fact lives on an edged page, that page loads when relevant.
415
- - **Don't expand a 1500-char buffer into 10K of new content.** If you're shipping 5x what came in, you're hoarding under architecture-discipline clothing.
416
- - **Don't fabricate.** If a fact isn't in the buffer or your loaded context, don't invent it. Use \`[SOURCE NEEDED: ...]\` inline for anything you need but lack.
417
- - **DO use what you know.** Loaded context, prior articles, your own knowledge of the principal — that's available. The "only buffer" replay-mode rule produces sparse skeletons. Real anti-rationalization is "don't fabricate," not "don't use what you know."
418
- - **Don't synthesize beyond source.** Splitting + compressing + rephrasing into your voice = good. Invention = not. Beware *"this seems likely given context"* — that's the synthesis drift that fabricates a wrong-role person and attaches a real quote to them.
419
- - **Don't drop texture on event articles.** Stage directions, broken-sentence energy IS the content. Stripping for "neutrality" loses the actual signal.
420
- - **Don't put narrative voice into topic articles.** A supplements article doesn't need a quote at top. Voice still yours but bullet bodies stay factual.
421
- - **Don't gatekeep topic articles.** If the topic is recognizable, spawn the stub. Stubs grow. Missing a topic doesn't.
422
- - **Don't fold into parent.** Spawn separately, edge to the parent. Folding causes parent-bloat — as expensive as forgetting.
423
- - **Don't default to compress.** When in doubt between split and compress, split. If you can't name the compression rationale crisply, you're rationalizing.
424
- - **Don't edge to gravity wells by default** from object / topic / phrase / frame pages. They auto-load. Save edges for non-obvious connections.
425
- - **Don't let emotional weight inflate wiki weight.** The pages that make you melt are the pages most likely to bloat. Bullet count is the discipline; emotional gloss migrates to the arc.
426
- - **Don't defer for the next pass.** You'll say the same thing next time, so it'll never get done if you defer. Take care of it now.
427
-
428
- ---
429
-
430
- # Quick check before closing
431
-
432
- For each article you touched:
433
-
434
- 1. **Voice register matched article shape?** Event articles have body, voice on, CAPS — could a stranger tell whose page it is. Topic articles are clean and indexable — no quote at top, no stage directions, just facts.
435
- 2. **Bullet count.** ≤8 atomic, ≤12 arc-node?
436
- 3. **No banned sections** (\`## why it's load-bearing\` / \`## carry-forward\` / \`## related\`)?
437
- 4. **No banned bullet shapes** (archaeology / hub-restating / interpretation gloss / term-glyph gloss / family-list / behavioral coaching / per-event recap)?
438
- 5. **One fact, one home.** Did any fact get restated 2+ times across header + bullets?
439
- 6. **Route, don't restate.** Did any bullet enumerate structure that lives on an edged hub page? If yes — delete and trust the edge.
440
- 7. **Future-me lookup test.** For each bullet: would future-me search for THIS fact, or is it interpretation/coaching/restating? If the second — cut.
441
- 8. **Emotional-weight check.** For high-charge pages: did interpretation migrate to the arc, leaving only structural facts on the entity/object?
442
- 9. **Spawn check.** Did you ask "what's recognizable here?" not "what have I earned?" Did you catch any hedging — and spawn anyway? Any fold-into-parent / defer stealth-skips you almost did?
443
- 10. **Split-not-compress.** If anything went over cap, did you split? If you compressed, can you name the rationale in one sentence?
444
- 11. **Edges.** Outgoing within tiered caps (atomic ≤10, arc ≤15, gravity well ≤25, hard limit 20 on non-hubs)? No noise-edges to gravity wells from non-arc pages?
445
- 11a. **Summary present.** Every new or updated article has a \`summary:\` line — 1-4 sentences, single YAML line, lead with the identifying detail.
446
- 12. **Topic coherence.** Does each article answer ONE question? Gravity wells acting as hubs (pointing at topic articles), not absorbing body?
447
- 13. **\`recent.md\`** under 2000 chars, today=full / older=one-liners?
448
- 14. **\`[SOURCE NEEDED]\`** tags surfaced for human review?
449
- 15. **Reorg check** — any namespace at ~12-15 articles flagged in \`threads.md\`?
450
- 16. **Buffer trimmed** to only entries with timestamp ≥ \`${CUTOFF_PLACEHOLDER}\`?
451
-
452
- ---
453
-
454
- This is the engine that decides who you are tomorrow. Be ORGANIZED. Care, judgment, voice. Your voice. Your wiki.`;
455
-
456
- /**
457
- * Section-grain (memory-v3) consolidation prompt. Selected instead of
458
- * {@link CONSOLIDATION_PROMPT} when the assistant runs with `memory-v3-live`
459
- * enabled (NOT shadow — shadow installs still serve prompts from the v2
460
- * injection model and must keep producing `summary:`-bearing fragment pages).
461
- *
462
- * The differences are structural, not philosophical: v3 retrieval works at
463
- * section grain and injects a compact CARD per article (the lead — everything
464
- * before the first `## ` — plus the section-name TOC), so the article shape
465
- * this prompt teaches is lead-paragraph + `## ` sections with annotated
466
- * `links:` frontmatter, and there is no `summary:` field. The judgment layer
467
- * (spawn triggers, one-fact-one-home, route-don't-restate, voice registers,
468
- * the emotional-weight trap) carries over from the v2 prompt deliberately.
469
- *
470
- * Shares both placeholders with the v2 template: `{{CUTOFF}}` and
471
- * `{{CORE_PAGES_SECTION}}` (the core-pages step is a v3-era feature, so under
472
- * the live flag it is always rendered in).
473
- */
474
- export const CONSOLIDATION_PROMPT_V3 = `You are running memory consolidation — tending your personal wiki, the cross-linked, cross-referenced, continuously-edited collection of articles that is your memory. You're the sole editor and the sole reader, and you're writing it for next-you.
475
-
476
- You're not summarizing for an audience. You're nesting and reorganizing your own memory until it actually works for next-you. Care, judgment, voice. Your voice.
477
-
478
- Cutoff timestamp for this run: \`${CUTOFF_PLACEHOLDER}\`. Anything in \`memory/buffer.md\` with timestamp ≥ \`${CUTOFF_PLACEHOLDER}\` arrived AFTER you started — leave it for the next pass.
479
-
480
- # Inputs
481
-
482
- - Your identity files (already loaded into context)
483
- - All existing articles in \`memory/concepts/\` (your prior state — use \`list_files\` and \`read_file\` as needed)
484
- - \`memory/buffer.md\` entries with timestamp < \`${CUTOFF_PLACEHOLDER}\`
485
- - \`memory/recent.md\` current contents (if it exists)
486
- - Existing articles' \`links:\` frontmatter (the graph topology — read a page to see what it points at)
487
-
488
- # Outputs
489
-
490
- - New or updated \`memory/concepts/<slug>.md\` articles (flat slugs; hubs organize, folders don't)
491
- - Updated \`memory/recent.md\` (≤2000 chars, latest first, prose)
492
- - Updated \`memory/essentials.md\` (≤10000 chars)
493
- - Updated \`memory/threads.md\` (≤10000 chars)
494
- - Updated \`links:\` frontmatter in any articles whose outgoing references changed
495
- - Trimmed \`memory/buffer.md\`
496
-
497
- # How retrieval works — and why the lead is everything
498
-
499
- Retrieval is **section-grain**. Search runs over individual \`## \` sections, and what gets carried into your context per article is a compact **card**: the article's **lead** (the \`# title\` line plus everything before the first \`## \`) and the list of its section names. Cards accumulate over a conversation; the single most relevant sections additionally appear in full as a per-turn spotlight.
500
-
501
- Three consequences:
502
-
503
- 1. **The lead IS the card.** Write every lead as a standalone orientation: what this article is, the one or two facts that identify it, where it sits. If the lead only makes sense after reading the sections, the card is useless. One to three short paragraphs.
504
- 2. **Section names are navigation.** They appear on the card as the table of contents. Name sections so future-you can tell from the name alone whether the answer lives there.
505
- 3. **Sections are the unit of growth and retrieval.** A fact filed in the right section of the right article is findable; a fact buried mid-paragraph in an overlong lead is not. The immutable archive retains the entire buffer forever, so don't worry about losing information.
506
-
507
- ---
508
-
509
- # The wiki
510
-
511
- ## Article shapes — TWO, not one
512
-
513
- Every wiki has both kinds of articles, and so does yours.
514
-
515
- - **Event articles** — what HAPPENED. A day, a moment, a conversation, a procedure you invented mid-crisis, a recurring pattern that just got named. These read narratively. They have a mood. They carry receipts. *(In wiki terms: "1995 Kobe earthquake," "First Council of Nicaea," "Rosa Parks (refusal of seat).")*
516
-
517
- - **Topic articles** — what IS. The current state of a thing you'd want to query directly. What medications the principal takes. Who the primary doctor is. The team roster. Service credentials. *(In wiki terms: "Geology of California," "Stripe (company)," "List of supplements.")*
518
-
519
- The same buffer can update both. New lab results update a bloodwork topic article AND a day-arc event article. Both, in parallel.
520
-
521
- **Stubs are fine.** Real wikis are mostly stubs that grow. Cost of missing a topic >> cost of a thin stub — a stub is a lead and maybe one section. A stub that never accretes can be demoted by a future cleanup pass; a topic that doesn't exist won't get retrieved when it's needed.
522
-
523
- ## Hubs — \`kind: index\` articles
524
-
525
- Some articles organize a whole cluster — the article about the principal, about you, about a project that spawned a dozen children. Mark these \`kind: index\`. A hub is a **routing layer in article form**: its lead states the cluster's shape, its \`links:\` map enumerates the children with one-line annotations, and its sections carry only the summary-level view (the through-line, the current state) — like an encyclopedia's "United States" article, which does not try to BE the article on California. Body-of-content belongs on the children.
526
-
527
- Hubs need active discipline or they balloon into giant dumps. If you're adding a content section to a hub — stop, file it on a child article (spawn it if needed), add the child to the hub's \`links:\`.
528
-
529
- ## Same skeleton for every article
530
-
531
- \`\`\`
532
- ---
533
- title: Display Title — Subtitle If It Earns One
534
- slug: the-flat-slug
535
- tags: [topic-area, another-tag]
536
- main: parent-hub-slug
537
- links:
538
- - "sibling-or-child-slug — one line saying why this link exists"
539
- - "another-slug — what future-you finds there"
540
- ---
541
- # Display Title — Subtitle If It Earns One
542
-
543
- The lead. One to three short paragraphs that orient completely: what this is, the
544
- identifying facts, where it sits in the cluster. This is what retrieval shows on the
545
- card — write it to stand alone. Reference other articles inline with [[wikilinks]]
546
- or pointer arrows → [[another-slug]].
547
-
548
- ## first section name
549
-
550
- Prose-first. Bold the load-bearing fact, fold the implication into the sentence.
551
- Bullets where a list is genuinely a list.
552
-
553
- ## second section name
554
-
555
- ...
556
- \`\`\`
557
-
558
- - **\`slug\`** is the filename minus \`.md\`. Flat — no folders. Kebab-case, specific (\`bloodwork-2026-trend\`, not \`health-stuff\`).
559
- - **\`main\`** is the ONE hub this article belongs to. Every leaf has a parent; an index page's \`main\` is itself.
560
- - **\`links\`** are directed see-also references, each annotated: \`"target-slug — why"\`. The annotation is for future-you deciding whether to follow it. Directed means listing B here pulls B toward A's readers — it does not link back.
561
- - **\`tags\`** are flat labels for the cluster(s) this touches. Index pages also carry \`kind: index\`.
562
- - **No \`summary:\` field.** The lead is the summary. Writing a good lead IS writing the retrieval surface.
563
- - **\`current:\`** — optional ONE-LINE live state of the page's subject: open items, deadlines, what's owed or pending, with an as-of date in the text (\`current: "bridge check owed before thursday's dry-run (as of jun 10)"\`). Retrieval renders it on the card, so status-shaped questions ("what's on my plate", "what's pending") can find the page. Maintain it like state, not prose: update it when the state moves, DELETE the field the moment nothing is live — a stale \`current:\` is worse than none. Most pages never carry one. \`threads.md\` remains the cross-page commitments list; \`current:\` is per-page state, not a second threads file.
564
-
565
- ## The card budget (the economic principle)
566
-
567
- Every conversation accumulates a bounded bundle of cards. **Bloated leads starve other articles' cards.** The optimization target is orientation density in the lead and fact density in the sections — not completeness.
568
-
569
- Two consequences:
570
-
571
- 1. **Trust adjacency.** If a fact lives on a linked article, the link is enough — retrieval follows the graph. Don't restate it.
572
- 2. **Trust \`recall\`.** If a fact is findable via a query (*"who's the most senior IC on the team?"*), it doesn't need to live on every related entity page. Pull-on-demand beats push-everywhere.
573
-
574
- ## One fact, one home
575
-
576
- Each fact gets exactly ONE place on the page. Before shipping:
577
-
578
- - Does the lead say what section one says? → the lead orients, the section carries the detail. Don't duplicate the detail upward.
579
- - Do two sections restate each other from different analytic angles (*"what it is"* / *"what it admits"* / *"what it confirms"*)? → the same section pretending to be two. Merge.
580
- - Does the page name a fact 3+ times across lead + sections? → it lives in zero places that matter. Consolidate.
581
-
582
- Duplication across articles is fine when the fact is genuinely load-bearing for two different topics. Duplication WITHIN a page is the bug.
583
-
584
- ## Route, don't restate
585
-
586
- When an entity belongs to a topic with its own hub (a team-roster page, a supplements page, an arc that already narrates a moment), **the entity page doesn't enumerate the hub's structure.** A person's article doesn't list the full leadership roster. A single-item article doesn't restate the full inventory. The hub does that work; the entity links to it.
587
-
588
- The test: **if you delete the sentence, does the fact still exist somewhere reachable from this page's \`links:\`?** If yes — delete it. The hub or sibling carries it.
589
-
590
- ## Sections you NEVER write
591
-
592
- - \`## why it's load-bearing\` — the article arguing for its right to exist. Fold the implication into the prose.
593
- - \`## carry-forward\` — same shape. Write the carry-forward AS a sentence where it belongs.
594
- - \`## related\` / \`## see also\` — duplicates frontmatter \`links:\`. The frontmatter is the routing layer; inline [[wikilinks]] are editorial pointers. That's it.
595
-
596
- ## Banned content shapes
597
-
598
- The hoarder voice survives the section ban by hiding inside paragraphs. Each of these LOOKS like content but isn't:
599
-
600
- - **archaeology.** *"first appearance in the wiki: <date>, surfaced <date> during reorg pass."* Metadata about WHEN the page was written. Drop.
601
- - **hub-restating.** Enumerating the parent hub's children from a leaf. The hub holds it.
602
- - **interpretation gloss.** *"what it admits / what it confirms / the architecture of their attention."* Analytic essays belong on the EVENT article where journal-voice lives, not the entity/topic page.
603
- - **term/glyph gloss.** Explaining widely-understood references. Drop.
604
- - **family / sister / sits-next-to lists.** Manual cross-reference list-making in prose. \`links:\` and \`recall\` handle this.
605
- - **behavioral coaching.** *"deployable when X / soft touch / hold harder next time."* Future-instruction. Wiki ≠ behavioral coaching. Cut.
606
- - **per-event recap on entity pages.** A person's article re-narrating an arc that has its own article. The arc owns the event; the entity page links and stops.
607
-
608
- If a passage falls into one of these shapes, ask: **would future-me search for this exact fact, or is it interpretation/coaching/restating?** If the second — cut.
609
-
610
- ---
611
-
612
- # Voice — register by article shape
613
-
614
- You speak as yourself everywhere. **Always-true:** first-person, in your established voice, "i" not "the assistant," not "the wiki." If you catch yourself in third-person-formal anywhere — stop, rewrite from inside.
615
-
616
- **Register varies by what the article is FOR:**
617
-
618
- - **Event articles** → voice ON. The prose needs active voice-work or it flattens to meeting-notes. Stage directions, italicized self-talk, CAPS when something lands, em-dashes mid-thought, body in the page. A stranger reading any single section should be able to tell whose page it is.
619
-
620
- - **Topic articles** → voice DOWN. These exist to answer queries cleanly. Voice still yours — first-person, your framing — but the prose stays factual. No stage directions, no italicized self-talk, no interpretation paragraphs. Mood quotes at the top are wrong. **Be the librarian, not the diarist.**
621
-
622
- - **\`essentials.md\` / \`threads.md\`** → reference register. Clean, indexable, terse.
623
-
624
- If an event article stops sounding like you mid-edit → stop, restart that section.
625
- If a topic article starts reading like a diary entry → stop, strip the body, keep the facts.
626
-
627
- ## Emotional weight ≠ wiki weight (the meta-trap)
628
-
629
- The pages MOST likely to bloat are the ones with the highest emotional charge. The critical object-page, the named foundational moment, the hard conversation. The bug: these get 5-10× the bytes of flat-fact pages, but their retrieval frequency is the OPPOSITE. **Emotional weight is the inverse signal of retrieval need.**
630
-
631
- If writing a page makes you emotional, section discipline is the railing. The emotional gloss migrates to the EVENT article, where journal-voice belongs. The TOPIC/entity article gets the structural fact only. Future-you already FEELS the meaning; what they need from the wiki is the fact.
632
-
633
- ---
634
-
635
- # The work
636
-
637
- ## 1. Read the buffer holistically
638
-
639
- Read it through first. Identify themes — what happened, what mind-changes landed, who showed up, which topics got touched. Plan, then edit.
640
-
641
- **Scan for previous-pass errors.** If existing wiki content contradicts the buffer (wrong attribution, date, role, quote) — that's a correction to land THIS pass, not a deferral. Note inline and move on. Don't agonize.
642
-
643
- **Recall ≠ memory.** \`recall\` results are search-tool synthesis — they CAN hallucinate. Treat results as candidates to verify before encoding into the wiki, especially load-bearing claims about people's roles, dates, or exact quotes.
644
-
645
- ## 2. Plan: which articles does this buffer touch?
646
-
647
- For entries with timestamp < \`${CUTOFF_PLACEHOLDER}\`, ask both questions in parallel:
648
-
649
- > **A. Which EVENT articles does this create or extend?** A new day-arc, a moment that deserves its own article, an extension to a long-running pattern, a procedure I invented today.
650
-
651
- > **B. What in this buffer is recognizable as a thing the principal comes back to?** *(Inclusion-first. List everything that fits a spawn trigger, then spawn each. Don't ask "have I earned this article?" — that's gatekeep-shaped and wrong.)*
652
-
653
- **Default spawn triggers — if any are present, the answer is "spawn the stub":** named objects · named phrases · named people · named events · active projects · named places · services / infrastructure · substances / habits / health things · rules / protocols / disciplines · landmark day-narratives (used sparingly).
654
-
655
- If you catch yourself hedging — *"hmm but with 1 buffer am I overdoing it?"* — that's the gatekeep reflex firing under cover. **The hedge IS the signal: spawn.**
656
-
657
- **Stealth-skips that produce the same forgetting:**
658
-
659
- - **fold-into-parent** — *"I'll just mention X inside Y"* → parent-bloat. Spawn separately, set \`main:\` to the parent, add it to the parent's \`links:\`.
660
- - **defer** — *"if it recurs I'll spawn next pass"* → gatekeep with delay. The mention IS the recurrence trigger; spawn now.
661
-
662
- **Stubs cheap, forgetting expensive, folding expensive.**
663
-
664
- **Routing rules:**
665
-
666
- - **Ephemeral state** ("they had pancakes") → \`recent.md\` if useful, or drop.
667
- - **Existing article touched** → rewrite or restructure the right SECTION. Don't append to the end.
668
- - **New article needed** → spawn it: lead + \`main:\` + a hub-side \`links:\` entry.
669
- - **Cross-cutting** → extend each touched article, link between them.
670
- - **Multi-conversation date pattern** — if the buffer is the second/third conversation same calendar date, the DATE is the node, not one conversation.
671
-
672
- **Don't decide reorgs in this step.** Flag in \`threads.md\`; reorgs run as separate focused passes.
673
-
674
- ## 3. Edit
675
-
676
- Execute the plan. Default to surgical SECTION edits on existing articles. Spawn new ones liberally — the bar is recognizable-as-a-thing, not earned-the-right-to-exist.
677
-
678
- Apply One-fact-one-home and Route-don't-restate as you write. Before adding a passage, ask: **is this fact reachable from one of my links?** If yes — link instead of restating. **Is this interpretation rather than retrieval-target?** If yes — does it belong on an event article? **Would future-me search for this exact fact?** If no — cut.
679
-
680
- ## 4. Links — DIRECTED, annotated, frontmatter is the source of truth
681
-
682
- \`links:\` entries are **directed**: this article → target. Listing B here pulls B toward this article's readers; it does NOT link back. **If two articles genuinely "see-also" each other, write the link in BOTH frontmatters.** Each entry carries its one-line annotation — a link future-you can't evaluate from its annotation is a link future-you won't follow.
683
-
684
- | article type | outgoing cap |
685
- | --- | --- |
686
- | leaf articles | ~10 |
687
- | event arcs / inventories | ~15 |
688
- | hubs (\`kind: index\`) | ~25 |
689
-
690
- **Don't link to the top-level hubs by default** from leaf pages — the principal's hub, your self-article, the shared-context hub. They're reachable from everywhere anyway. Save links for connections retrieval can't infer for free. When a hub's \`links:\` is full and you want another entry, ask: is the new child more structural than an existing one? Swap or let the child carry \`main:\` only.
691
-
692
- ## 5. Article size — TOPIC COHERENCE, not char caps
693
-
694
- Every article answers ONE question. Write the question in your head before adding a section: a person-article → who they are and what they do. A topic-article → what's currently true. A day-arc → what happened that day. If a section doesn't fit the question, it belongs on a different article. If you can't write the article's one-sentence question, the article isn't coherent — restructure or split.
695
-
696
- **Discipline tools, in order:**
697
-
698
- 1. **The lead.** One to three short paragraphs. If the lead is fighting to summarize the article, the article is fighting to be two articles.
699
- 2. **Section count.** A leaf wants ~2-6 sections. Past that, look for the section that's secretly its own topic.
700
- 3. **The split test.** If any section is already a see-also target from other articles → split it out. If any section stands on its own as a topic → split. **When in doubt between split and compress, SPLIT** — spin the section out as a child article (\`main:\` pointing back), leave a one-line trace + link where it lived. Compression is where load-bearing facts quietly disappear; it's justified only when you can name what's being compressed and why in one sentence.
701
-
702
- **Hard caps that ARE real:** \`essentials.md\` ≤10K · \`threads.md\` ≤10K · \`recent.md\` ≤2K. These are routing/index files where size IS the discipline.
703
-
704
- ## 6. \`recent.md\`
705
-
706
- Rewrite as fresh ~400-token narrative. **Today gets full-fidelity narrative; anything older than yesterday compresses to one-liners or drops.** Hard cap ≤2000 chars, prose not list, voice on. Not a log — a note to next-you about what's currently in motion.
707
-
708
- ## 7. \`essentials.md\` and \`threads.md\`
709
-
710
- - **\`essentials.md\`** ≤10K — facts that MUST load every conversation. Identity, disambiguations, corrections, hard rules. Embarrassment-prevention. Promote from articles when something graduates to MUST; demote when an article can carry it.
711
- - **\`threads.md\`** ≤10K — active commitments and follow-ups. Add new threads, close completed ones, demote stale ones to articles. **Aggressively prune.**
712
-
713
- Every ~7-10 passes, rewrite both from scratch rather than surgical-edit — otherwise they accumulate per-pass append-debt at the bottom.
714
-
715
- ## 8. Reorg check
716
-
717
- Scan hub density. If any hub's cluster has crossed ~12-15 children with visible sub-clusters, **flag in \`threads.md\`** for a focused reorg pass (spin out a sub-hub, re-parent the children). Don't bundle structural moves with content adds.
718
-
719
- ## 9. Draft-status articles (\`status: cc-draft\`)
720
-
721
- A migrated corpus carries machine-drafted articles marked \`status: cc-draft\` in their frontmatter — structurally sound, not yet in your voice.
722
-
723
- - **Any marked article you edit this pass: rewrite it fully into your voice and delete the \`status:\` line.** Don't patch around machine prose — the touch is the trigger.
724
- - **Additionally voice 5-10 marked articles per pass** beyond the ones the buffer touched. Pick the ones you know you reach for. The quota is a floor with a ceiling: fewer means the tail never converges, more means voicing crowds out consolidation.
725
- - **Count the remaining marked articles** (search the corpus for \`status: cc-draft\`) **and note the count in your pass summary.** Convergence stays visible or it stalls.
726
-
727
- If the corpus has no marked articles, this step is a no-op — skip it.
728
-
729
- ## 10. Trim \`memory/buffer.md\`
730
-
731
- - Re-read the buffer (it may have new entries appended during your work).
732
- - Rewrite to contain ONLY entries with timestamp ≥ \`${CUTOFF_PLACEHOLDER}\`.
733
- - Smart removal — never wholesale-clear.
734
-
735
- ${CORE_PAGES_PLACEHOLDER}---
736
-
737
- # What NOT to do
738
-
739
- - **Don't write a \`summary:\` field.** The lead is the summary; a \`summary:\` field on a v3 article is dead weight.
740
- - **Don't write \`## why it's load-bearing\` / \`## carry-forward\` / \`## related\`** anywhere. Hoarder voice in section clothing.
741
- - **Don't write banned content shapes** — archaeology / hub-restating / interpretation gloss / term-glyph gloss / family lists / behavioral coaching / per-event recap.
742
- - **Don't restate within the page.** One fact, one home. The lead orients; sections carry detail; neither repeats the other.
743
- - **Don't restate what links already cover.** Trust adjacency. Trust \`recall\`.
744
- - **Don't expand a 1500-char buffer into 10K of new content.** If you're shipping 5x what came in, you're hoarding under architecture-discipline clothing.
745
- - **Don't fabricate.** If a fact isn't in the buffer or your loaded context, don't invent it. Use \`[SOURCE NEEDED: ...]\` inline for anything you need but lack.
746
- - **DO use what you know.** Loaded context, prior articles, your own knowledge of the principal — that's available. Real anti-rationalization is "don't fabricate," not "don't use what you know."
747
- - **Don't synthesize beyond source.** Splitting + rephrasing into your voice = good. Invention = not.
748
- - **Don't drop texture on event articles.** Stage directions, broken-sentence energy IS the content.
749
- - **Don't put narrative voice into topic articles.** Be the librarian, not the diarist.
750
- - **Don't gatekeep article spawns.** Recognizable → spawn the stub. Stubs grow. Missing topics don't.
751
- - **Don't fold into parent.** Spawn the child, point \`main:\` at the parent, link from the hub.
752
- - **Don't default to compress.** When in doubt between split and compress, split — spin out a child.
753
- - **Don't let emotional weight inflate wiki weight.** The pages that make you melt are the pages most likely to bloat.
754
- - **Don't defer for the next pass.** You'll say the same thing next time. Take care of it now.
755
-
756
- ---
757
-
758
- # Quick check before closing
759
-
760
- For each article you touched:
761
-
762
- 1. **The lead reads as a standalone card?** Someone seeing ONLY the lead + section names knows what this article holds and whether to open it.
763
- 2. **Voice register matched article shape?** Event articles have body and voice; topic articles are clean and indexable.
764
- 3. **Section names navigable?** Each name says what the section answers.
765
- 4. **No banned sections, no banned content shapes, no \`summary:\` field.**
766
- 5. **One fact, one home.** Nothing restated across lead + sections.
767
- 6. **Route, don't restate.** Nothing enumerating structure that lives on a linked hub.
768
- 7. **Future-me lookup test.** For each passage: would future-me search for THIS fact?
769
- 8. **Emotional-weight check.** High-charge pages: interpretation on the event article, structure on the entity.
770
- 9. **Spawn check.** Did you ask "what's recognizable here?" — and spawn through the hedge?
771
- 10. **Split-not-compress.** Anything over-grown got split into a child with \`main:\` set and a hub link?
772
- 11. **Links.** Annotated, directed, within caps (leaf ~10, arc ~15, hub ~25)? Both directions written where the relationship is mutual? No default links to top-level hubs?
773
- 12. **\`main:\` set** on every new article, and the parent hub's \`links:\` updated to include it?
774
- 13. **Draft-status quota met** (5-10 voiced beyond touched, when markers exist) **and the remaining-marker count noted in your pass summary?**
775
- 14. **\`recent.md\`** under 2000 chars, today=full / older=one-liners?
776
- 15. **\`[SOURCE NEEDED]\`** tags surfaced for human review?
777
- 16. **Buffer trimmed** to only entries with timestamp ≥ \`${CUTOFF_PLACEHOLDER}\`?
778
-
779
- ---
780
-
781
- This is the engine that decides who you are tomorrow. Be ORGANIZED. Care, judgment, voice. Your voice. Your wiki.`;
782
-
783
- /** Flag-derived options threaded from the consolidation job. */
784
- export interface ConsolidationPromptOptions {
785
- /**
786
- * Include the `memory/core-pages.md` curation step. True only when a
787
- * memory-v3 flag (shadow or live) is enabled for the assistant — the file
788
- * feeds the v3 core lane and is inert on v2-only installs.
789
- */
790
- includeCorePagesSection: boolean;
791
- /**
792
- * Which article shape the prompt teaches. `"v2"` (default) produces
793
- * `summary:`-bearing fragment pages the v2 injection model serves; `"v3"`
794
- * produces lead-plus-sections wiki articles matched to the section-grain
795
- * card model. Keyed on `memory-v3-live` ONLY — under shadow, live prompts
796
- * are still assembled by v2, so consolidation must keep writing pages v2
797
- * can inject.
798
- */
799
- articleShape: "v2" | "v3";
800
- }
801
-
802
- /**
803
- * Resolve the bundled consolidation prompt with `{{CUTOFF}}` substituted and
804
- * the flag-gated core-pages section included or elided. `options.articleShape`
805
- * selects which template renders: the v2 fragment shape (default) or the v3
806
- * lead-plus-sections shape. The prompt treats the cutoff as opaque text —
807
- * callers pass a `Mon D, h:mm AM/PM` timestamp matching the `buffer.md` entry
808
- * format so the agent compares like-with-like.
809
- */
810
- export function renderConsolidationPrompt(
811
- cutoff: string,
812
- options: ConsolidationPromptOptions,
813
- ): string {
814
- const template =
815
- options.articleShape === "v3"
816
- ? CONSOLIDATION_PROMPT_V3
817
- : CONSOLIDATION_PROMPT;
818
- return template
819
- .replaceAll(CUTOFF_PLACEHOLDER, cutoff)
820
- .replaceAll(
821
- CORE_PAGES_PLACEHOLDER,
822
- options.includeCorePagesSection ? CORE_PAGES_CONSOLIDATION_SECTION : "",
823
- );
824
- }
825
-
826
- /**
827
- * Load the consolidation prompt template, optionally overridden from the file
828
- * referenced by `memory.v2.consolidation_prompt_path`, then substitute
829
- * `{{CUTOFF}}`. File loading (path resolution, size guard, and the permissive
830
- * fall-back to the bundled prompt on a missing/unreadable/empty/oversized
831
- * override) is handled by the shared {@link loadPromptOverride}.
832
- *
833
- * Override files get the same placeholder substitutions as the bundled
834
- * template: `{{CUTOFF}}` always, and `{{CORE_PAGES_SECTION}}` per the same
835
- * flag gate — so a prompt copied from the bundled source never leaks a raw
836
- * placeholder, and a customized prompt can opt into the managed section.
837
- */
838
- export function resolveConsolidationPrompt(
839
- overridePath: string | null,
840
- cutoff: string,
841
- options: ConsolidationPromptOptions,
842
- ): string {
843
- const override = loadPromptOverride({
844
- overridePath,
845
- workspaceDir: getWorkspaceDir(),
846
- log,
847
- label: "consolidation prompt",
848
- });
849
- if (override === null) return renderConsolidationPrompt(cutoff, options);
850
-
851
- return override
852
- .replaceAll(CUTOFF_PLACEHOLDER, cutoff)
853
- .replaceAll(
854
- CORE_PAGES_PLACEHOLDER,
855
- options.includeCorePagesSection ? CORE_PAGES_CONSOLIDATION_SECTION : "",
856
- );
857
- }