@vellumai/assistant 0.10.3-dev.202606300731.35e9ab8 → 0.10.3-dev.202606300917.a9da5f8

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 (378) hide show
  1. package/eslint-rules/cli-no-daemon-internals.js +4 -3
  2. package/package.json +1 -1
  3. package/src/__tests__/activation-early-marking.test.ts +1 -1
  4. package/src/__tests__/anthropic-provider.test.ts +48 -0
  5. package/src/__tests__/auto-analysis-end-to-end.test.ts +1 -1
  6. package/src/__tests__/cli-memory-v2-reembed-skills.test.ts +1 -1
  7. package/src/__tests__/context-search-agent-protocol.test.ts +2 -2
  8. package/src/__tests__/context-search-agent-runner.test.ts +2 -2
  9. package/src/__tests__/context-search-conversations-source.test.ts +2 -2
  10. package/src/__tests__/context-search-fanout.test.ts +3 -3
  11. package/src/__tests__/context-search-memory-source.test.ts +7 -6
  12. package/src/__tests__/context-search-memory-v2-source.test.ts +7 -7
  13. package/src/__tests__/context-search-types.test.ts +2 -2
  14. package/src/__tests__/context-search-workspace-source.test.ts +2 -2
  15. package/src/__tests__/conversation-agent-loop.test.ts +1 -1
  16. package/src/__tests__/conversation-fork-crud.test.ts +10 -10
  17. package/src/__tests__/conversation-fork-retrospective.test.ts +4 -4
  18. package/src/__tests__/conversation-runtime-assembly.test.ts +3 -3
  19. package/src/__tests__/conversation-surfaces-activation-emit.test.ts +4 -4
  20. package/src/__tests__/conversation-workspace-cache-state.test.ts +1 -1
  21. package/src/__tests__/conversation-workspace-injection.test.ts +1 -1
  22. package/src/__tests__/conversation-workspace-tool-tracking.test.ts +1 -1
  23. package/src/__tests__/conversations-import-system-filter.test.ts +1 -1
  24. package/src/__tests__/file-write-tool.test.ts +3 -3
  25. package/src/__tests__/get-skill-detail-audit.test.ts +1 -1
  26. package/src/__tests__/graph-extraction-event-date.test.ts +1 -1
  27. package/src/__tests__/handlers-skills-memory-v2-reseed.test.ts +1 -1
  28. package/src/__tests__/init-feature-flag-overrides.test.ts +1 -4
  29. package/src/__tests__/injection-block.test.ts +5 -2
  30. package/src/__tests__/injector-chain.test.ts +1 -1
  31. package/src/__tests__/injector-pkb-v2-silenced.test.ts +2 -2
  32. package/src/__tests__/injector-v3-suppression.test.ts +3 -3
  33. package/src/__tests__/install-skill-routing.test.ts +1 -1
  34. package/src/__tests__/lifecycle-memory-v2-seed.test.ts +5 -5
  35. package/src/__tests__/list-messages-hidden-metadata.test.ts +4 -4
  36. package/src/__tests__/managed-skill-lifecycle.test.ts +2 -2
  37. package/src/__tests__/memory-jobs-worker-lanes.test.ts +2 -2
  38. package/src/__tests__/memory-recall-log-store.test.ts +4 -4
  39. package/src/__tests__/memory-retrieval-budget.test.ts +1 -1
  40. package/src/__tests__/memory-retrieval-hook.test.ts +2 -2
  41. package/src/__tests__/memory-upsert-concurrency.test.ts +1 -1
  42. package/src/__tests__/mock-gateway-ipc.ts +1 -1
  43. package/src/__tests__/outbound-slack-persistence.test.ts +1 -1
  44. package/src/__tests__/persistence-layering-guard.test.ts +6 -7
  45. package/src/__tests__/persistence-secret-redaction.test.ts +1 -1
  46. package/src/__tests__/pkb-autoinject.test.ts +1 -1
  47. package/src/__tests__/playbook-execution.test.ts +1 -1
  48. package/src/__tests__/plugin-config-data-migration.test.ts +14 -14
  49. package/src/__tests__/plugin-import-boundary-guard.test.ts +65 -50
  50. package/src/__tests__/processing-flag-persist-failure.test.ts +1 -1
  51. package/src/__tests__/rebuild-index-graph-nodes.test.ts +1 -1
  52. package/src/__tests__/search-skills-unified.test.ts +1 -1
  53. package/src/__tests__/skills-file-content-endpoint.test.ts +1 -1
  54. package/src/__tests__/skills-files-catalog-fallback.test.ts +1 -1
  55. package/src/__tests__/slim-skill-category.test.ts +1 -1
  56. package/src/__tests__/strip-memory-injections.test.ts +2 -2
  57. package/src/__tests__/task-memory-cleanup.test.ts +4 -4
  58. package/src/__tests__/tool-preview-lifecycle.test.ts +7 -4
  59. package/src/acp/__tests__/session-manager-persistence.test.ts +3 -3
  60. package/src/acp/__tests__/session-manager-startup.test.ts +1 -1
  61. package/src/cli/commands/__tests__/conversations-new.test.ts +186 -0
  62. package/src/cli/commands/conversations.ts +46 -28
  63. package/src/cli/commands/memory/__tests__/memory-v2-compare-render.test.ts +1 -1
  64. package/src/cli/commands/memory/memory-retrospective.ts +32 -28
  65. package/src/cli/commands/memory/memory-v2-compare-render.ts +1 -1
  66. package/src/cli/commands/memory/memory-v2.ts +1 -1
  67. package/src/config/bundled-skills/image-studio/tools/media-generate-image.ts +1 -1
  68. package/src/config/bundled-skills/messaging/tools/messaging-analyze-style.ts +1 -1
  69. package/src/config/bundled-skills/playbooks/tools/playbook-create.ts +5 -2
  70. package/src/config/bundled-skills/playbooks/tools/playbook-delete.ts +4 -1
  71. package/src/config/bundled-skills/playbooks/tools/playbook-update.ts +4 -1
  72. package/src/config/bundled-skills/settings/tools/voice-config-update.ts +7 -7
  73. package/src/context/strip-injections.ts +1 -1
  74. package/src/daemon/__tests__/conversation-lifecycle-auto-analyze.test.ts +16 -13
  75. package/src/daemon/__tests__/embedding-reconcile.test.ts +1 -1
  76. package/src/daemon/__tests__/inference-profile-notification.test.ts +7 -4
  77. package/src/daemon/__tests__/memory-v2-startup.test.ts +2 -2
  78. package/src/daemon/conversation-agent-loop-handlers.ts +3 -3
  79. package/src/daemon/conversation-agent-loop.ts +2 -2
  80. package/src/daemon/conversation-lifecycle.ts +1 -1
  81. package/src/daemon/conversation-runtime-assembly.ts +9 -6
  82. package/src/daemon/conversation-surfaces.ts +1 -1
  83. package/src/daemon/conversation.ts +5 -2
  84. package/src/daemon/embedding-reconcile.ts +4 -4
  85. package/src/daemon/handlers/skills.ts +1 -1
  86. package/src/daemon/lifecycle.ts +5 -5
  87. package/src/daemon/memory-v2-startup.test.ts +2 -2
  88. package/src/daemon/memory-v2-startup.ts +11 -10
  89. package/src/daemon/skill-memory-refresh.ts +1 -1
  90. package/src/daemon/tool-side-effects.ts +3 -3
  91. package/src/daemon/trust-context.ts +1 -1
  92. package/src/home/feed-source-enrichment.ts +3 -3
  93. package/src/home/job-handlers/conversation-starters.ts +15 -15
  94. package/src/{memory → jobs}/worker.ts +1 -1
  95. package/src/permissions/checker.ts +1 -1
  96. package/src/persistence/attachments-store.ts +1 -1
  97. package/src/persistence/conversation-crud.ts +27 -27
  98. package/src/persistence/conversation-queries.ts +1 -1
  99. package/src/persistence/db-maintenance.ts +1 -1
  100. package/src/persistence/embeddings/embedding-backend.ts +1 -5
  101. package/src/{memory → persistence/embeddings}/sparse-tokenize.ts +6 -4
  102. package/src/persistence/group-crud.ts +1 -1
  103. package/src/persistence/job-handlers/cleanup.ts +4 -7
  104. package/src/persistence/jobs-store.ts +1 -1
  105. package/src/persistence/jobs-worker.ts +2 -2
  106. package/src/persistence/llm-usage-store.ts +1 -1
  107. package/src/persistence/steps.ts +1 -1
  108. package/src/persistence/worker-control.ts +1 -1
  109. package/src/{memory → plugins/defaults/memory}/__tests__/301-create-watchdog-events.test.ts +4 -4
  110. package/src/{memory → plugins/defaults/memory}/__tests__/activation-session-store.test.ts +4 -4
  111. package/src/{memory → plugins/defaults/memory}/__tests__/bookmark-crud.test.ts +5 -5
  112. package/src/{memory → plugins/defaults/memory}/__tests__/bookmark-schema.test.ts +3 -3
  113. package/src/{memory → plugins/defaults/memory}/__tests__/clear-stale-processing-flags.test.ts +4 -4
  114. package/src/{memory → plugins/defaults/memory}/__tests__/compaction-log-store-clickhouse.test.ts +2 -2
  115. package/src/{memory → plugins/defaults/memory}/__tests__/conversation-queries.test.ts +7 -7
  116. package/src/{memory → plugins/defaults/memory}/__tests__/conversation-row-batch-delete.test.ts +7 -7
  117. package/src/{memory → plugins/defaults/memory}/__tests__/conversation-types.test.ts +1 -1
  118. package/src/{memory → plugins/defaults/memory}/__tests__/db-async-query.test.ts +4 -4
  119. package/src/{memory → plugins/defaults/memory}/__tests__/db-busy-timeout.test.ts +2 -2
  120. package/src/{memory → plugins/defaults/memory}/__tests__/db-logs-attach.test.ts +7 -6
  121. package/src/{memory → plugins/defaults/memory}/__tests__/db-maintenance.test.ts +7 -7
  122. package/src/{memory → plugins/defaults/memory}/__tests__/db-memory-attach.test.ts +7 -6
  123. package/src/{memory → plugins/defaults/memory}/__tests__/embedding-cache.test.ts +7 -6
  124. package/src/{memory → plugins/defaults/memory}/__tests__/find-analysis-conversation.test.ts +5 -5
  125. package/src/{memory → plugins/defaults/memory}/__tests__/find-most-recent-retrospective-for.test.ts +5 -5
  126. package/src/{memory → plugins/defaults/memory}/__tests__/fork-message-copy.test.ts +8 -8
  127. package/src/{memory → plugins/defaults/memory}/__tests__/jobs-store-enqueue-gate.test.ts +17 -13
  128. package/src/{memory → plugins/defaults/memory}/__tests__/jobs-store-job-classes.test.ts +1 -1
  129. package/src/{memory → plugins/defaults/memory}/__tests__/jobs-worker-v2-graph-trigger-embed.test.ts +13 -13
  130. package/src/{memory → plugins/defaults/memory}/__tests__/jobs-worker-v2-schedule.test.ts +11 -9
  131. package/src/{memory → plugins/defaults/memory}/__tests__/memory-retrospective-enqueue.test.ts +3 -3
  132. package/src/{memory → plugins/defaults/memory}/__tests__/memory-retrospective-job.test.ts +9 -9
  133. package/src/{memory → plugins/defaults/memory}/__tests__/memory-retrospective-startup-cleanup.test.ts +4 -4
  134. package/src/{memory → plugins/defaults/memory}/__tests__/memory-retrospective-state.test.ts +7 -7
  135. package/src/{memory → plugins/defaults/memory}/__tests__/memory-v2-activation-log-store.test.ts +5 -5
  136. package/src/{memory → plugins/defaults/memory}/__tests__/memory-v2-concept-frequency.test.ts +5 -5
  137. package/src/{memory → plugins/defaults/memory}/__tests__/memory-v3-selections-migration.test.ts +3 -3
  138. package/src/{memory → plugins/defaults/memory}/__tests__/prompt-override.test.ts +1 -1
  139. package/src/{memory → plugins/defaults/memory}/__tests__/qdrant-client-sentinel.test.ts +1 -1
  140. package/src/{memory → plugins/defaults/memory}/__tests__/table-relocation.test.ts +4 -4
  141. package/src/{memory → plugins/defaults/memory}/activation-session-store.ts +3 -3
  142. package/src/{memory → plugins/defaults/memory}/anisotropy.ts +2 -2
  143. package/src/{memory → plugins/defaults/memory}/context-search/agent-protocol.ts +1 -1
  144. package/src/{memory → plugins/defaults/memory}/context-search/agent-runner.ts +4 -3
  145. package/src/{memory → plugins/defaults/memory}/context-search/search.ts +1 -1
  146. package/src/{memory → plugins/defaults/memory}/context-search/sources/conversations.ts +5 -5
  147. package/src/{memory → plugins/defaults/memory}/context-search/sources/memory-v2.ts +2 -2
  148. package/src/{memory → plugins/defaults/memory}/context-search/sources/memory.ts +3 -3
  149. package/src/{memory → plugins/defaults/memory}/context-search/types.ts +1 -1
  150. package/src/{memory → plugins/defaults/memory}/graph/__tests__/conversation-graph-memory-registry.test.ts +2 -2
  151. package/src/{memory → plugins/defaults/memory}/graph/__tests__/conversation-graph-memory-v2-routing.test.ts +27 -22
  152. package/src/{memory → plugins/defaults/memory}/graph/__tests__/handle-remember-v2.test.ts +1 -1
  153. package/src/{memory → plugins/defaults/memory}/graph/bootstrap.test.ts +4 -4
  154. package/src/{memory → plugins/defaults/memory}/graph/bootstrap.ts +10 -10
  155. package/src/{memory → plugins/defaults/memory}/graph/capability-seed.ts +11 -11
  156. package/src/{memory → plugins/defaults/memory}/graph/consolidation.ts +5 -5
  157. package/src/{memory → plugins/defaults/memory}/graph/conversation-graph-memory.ts +13 -17
  158. package/src/{memory → plugins/defaults/memory}/graph/decay.ts +2 -2
  159. package/src/{memory → plugins/defaults/memory}/graph/extraction-job.ts +5 -5
  160. package/src/{memory → plugins/defaults/memory}/graph/extraction.ts +13 -14
  161. package/src/{memory → plugins/defaults/memory}/graph/graph-memory-state-store.ts +2 -2
  162. package/src/{memory → plugins/defaults/memory}/graph/graph-search.test.ts +14 -11
  163. package/src/{memory → plugins/defaults/memory}/graph/graph-search.ts +14 -14
  164. package/src/{memory → plugins/defaults/memory}/graph/image-ref-utils.ts +3 -3
  165. package/src/{memory → plugins/defaults/memory}/graph/injection.ts +2 -2
  166. package/src/{memory → plugins/defaults/memory}/graph/narrative.ts +4 -4
  167. package/src/{memory → plugins/defaults/memory}/graph/pattern-scan.ts +4 -4
  168. package/src/{memory → plugins/defaults/memory}/graph/retriever.test.ts +8 -8
  169. package/src/{memory → plugins/defaults/memory}/graph/retriever.ts +8 -7
  170. package/src/{memory → plugins/defaults/memory}/graph/store.test.ts +2 -2
  171. package/src/{memory → plugins/defaults/memory}/graph/store.ts +3 -3
  172. package/src/{memory → plugins/defaults/memory}/graph/tool-handlers.ts +3 -3
  173. package/src/{memory → plugins/defaults/memory}/graph/tools.ts +1 -1
  174. package/src/plugins/defaults/memory/hooks/post-compact.ts +1 -1
  175. package/src/plugins/defaults/memory/hooks/user-prompt-submit.ts +1 -1
  176. package/src/{memory → plugins/defaults/memory}/indexer.ts +13 -13
  177. package/src/plugins/defaults/memory/injectors.ts +6 -6
  178. package/src/{memory → plugins/defaults/memory}/job-handlers/backfill.ts +7 -7
  179. package/src/{memory → plugins/defaults/memory}/job-handlers/embedding.test.ts +9 -9
  180. package/src/{memory → plugins/defaults/memory}/job-handlers/embedding.ts +7 -7
  181. package/src/{memory → plugins/defaults/memory}/job-handlers/index-maintenance.ts +10 -10
  182. package/src/plugins/defaults/memory/job-handlers.ts +19 -19
  183. package/src/{memory → plugins/defaults/memory}/jobs/__tests__/embed-concept-page.test.ts +41 -37
  184. package/src/{memory → plugins/defaults/memory}/jobs/embed-concept-page.ts +11 -11
  185. package/src/{memory → plugins/defaults/memory}/jobs/embed-pkb-file.test.ts +8 -8
  186. package/src/{memory → plugins/defaults/memory}/jobs/embed-pkb-file.ts +3 -3
  187. package/src/{memory → plugins/defaults/memory}/memory-recall-log-store.ts +2 -2
  188. package/src/{memory → plugins/defaults/memory}/memory-retrospective-enqueue.ts +5 -5
  189. package/src/{memory → plugins/defaults/memory}/memory-retrospective-fork-boundary.ts +2 -2
  190. package/src/{memory → plugins/defaults/memory}/memory-retrospective-job.ts +14 -14
  191. package/src/{memory → plugins/defaults/memory}/memory-retrospective-startup-cleanup.ts +8 -5
  192. package/src/{memory → plugins/defaults/memory}/memory-retrospective-state.ts +3 -3
  193. package/src/{memory → plugins/defaults/memory}/memory-retrospective-trigger-check.ts +3 -3
  194. package/src/{memory → plugins/defaults/memory}/memory-v2-activation-log-store.ts +2 -2
  195. package/src/{memory → plugins/defaults/memory}/memory-v2-concept-frequency.ts +1 -1
  196. package/src/{memory → plugins/defaults/memory}/pkb/autoinject.ts +1 -1
  197. package/src/{memory → plugins/defaults/memory}/pkb/context.ts +2 -2
  198. package/src/{memory → plugins/defaults/memory}/pkb/pkb-index.test.ts +11 -8
  199. package/src/{memory → plugins/defaults/memory}/pkb/pkb-index.ts +4 -4
  200. package/src/{memory → plugins/defaults/memory}/pkb/pkb-reconcile.test.ts +11 -8
  201. package/src/{memory → plugins/defaults/memory}/pkb/pkb-reconcile.ts +2 -2
  202. package/src/{memory → plugins/defaults/memory}/pkb/pkb-search.test.ts +11 -8
  203. package/src/{memory → plugins/defaults/memory}/pkb/pkb-search.ts +5 -5
  204. package/src/{memory → plugins/defaults/memory}/pkb/types.ts +1 -1
  205. package/src/{memory → plugins/defaults/memory}/rerank-local.ts +5 -5
  206. package/src/plugins/defaults/memory/routes/__tests__/memory-v2-routes.test.ts +2 -2
  207. package/src/plugins/defaults/memory/routes/__tests__/memory-v2-simulate-route.test.ts +8 -8
  208. package/src/plugins/defaults/memory/routes/memory-eval-routes.ts +2 -5
  209. package/src/plugins/defaults/memory/routes/memory-item-routes.ts +8 -13
  210. package/src/plugins/defaults/memory/routes/memory-v2-routes.ts +24 -24
  211. package/src/{memory → plugins/defaults/memory}/search/semantic.ts +6 -6
  212. package/src/{memory → plugins/defaults/memory}/segmenter.ts +1 -1
  213. package/src/{memory → plugins/defaults/memory}/task-memory-cleanup.ts +2 -2
  214. package/src/plugins/defaults/memory/tools.test.ts +3 -3
  215. package/src/plugins/defaults/memory/tools.ts +7 -10
  216. package/src/{memory → plugins/defaults/memory}/v2/__tests__/activation-store.test.ts +3 -3
  217. package/src/{memory → plugins/defaults/memory}/v2/__tests__/activation.test.ts +22 -19
  218. package/src/{memory → plugins/defaults/memory}/v2/__tests__/backfill-jobs.test.ts +32 -29
  219. package/src/{memory → plugins/defaults/memory}/v2/__tests__/cli-command-store.test.ts +18 -15
  220. package/src/{memory → plugins/defaults/memory}/v2/__tests__/consolidation-job.test.ts +7 -7
  221. package/src/{memory → plugins/defaults/memory}/v2/__tests__/frontmatter-sweep.test.ts +2 -2
  222. package/src/{memory → plugins/defaults/memory}/v2/__tests__/harness-compare.test.ts +6 -6
  223. package/src/{memory → plugins/defaults/memory}/v2/__tests__/harness-oracle.test.ts +5 -5
  224. package/src/{memory → plugins/defaults/memory}/v2/__tests__/harness-replay-input.test.ts +6 -6
  225. package/src/{memory → plugins/defaults/memory}/v2/__tests__/harness-runner.test.ts +1 -1
  226. package/src/{memory → plugins/defaults/memory}/v2/__tests__/injection-events.test.ts +7 -7
  227. package/src/{memory → plugins/defaults/memory}/v2/__tests__/injection.test.ts +25 -21
  228. package/src/{memory → plugins/defaults/memory}/v2/__tests__/migration.test.ts +9 -8
  229. package/src/{memory → plugins/defaults/memory}/v2/__tests__/page-index.test.ts +2 -2
  230. package/src/{memory → plugins/defaults/memory}/v2/__tests__/prompts-consolidation.test.ts +1 -1
  231. package/src/{memory → plugins/defaults/memory}/v2/__tests__/qdrant.test.ts +5 -5
  232. package/src/{memory → plugins/defaults/memory}/v2/__tests__/reranker.test.ts +4 -4
  233. package/src/{memory → plugins/defaults/memory}/v2/__tests__/router.test.ts +5 -4
  234. package/src/{memory → plugins/defaults/memory}/v2/__tests__/sim.test.ts +22 -19
  235. package/src/{memory → plugins/defaults/memory}/v2/__tests__/skill-content.test.ts +2 -2
  236. package/src/{memory → plugins/defaults/memory}/v2/__tests__/skill-store.test.ts +24 -21
  237. package/src/{memory → plugins/defaults/memory}/v2/__tests__/sparse-bm25.test.ts +1 -1
  238. package/src/{memory → plugins/defaults/memory}/v2/__tests__/static-context.test.ts +3 -3
  239. package/src/{memory → plugins/defaults/memory}/v2/__tests__/sweep-job.test.ts +10 -9
  240. package/src/{memory → plugins/defaults/memory}/v2/activation-store.ts +2 -2
  241. package/src/{memory → plugins/defaults/memory}/v2/activation.ts +2 -2
  242. package/src/{memory → plugins/defaults/memory}/v2/backfill-jobs.ts +8 -8
  243. package/src/{memory → plugins/defaults/memory}/v2/cli-command-store.ts +4 -4
  244. package/src/{memory → plugins/defaults/memory}/v2/consolidation-job.ts +7 -7
  245. package/src/{memory → plugins/defaults/memory}/v2/frontmatter-sweep.ts +3 -3
  246. package/src/{memory → plugins/defaults/memory}/v2/harness/compare.ts +2 -2
  247. package/src/{memory → plugins/defaults/memory}/v2/harness/oracle.ts +2 -2
  248. package/src/{memory → plugins/defaults/memory}/v2/harness/replay-input.ts +4 -4
  249. package/src/{memory → plugins/defaults/memory}/v2/harness/retriever.ts +1 -1
  250. package/src/{memory → plugins/defaults/memory}/v2/harness/router-retriever.ts +1 -1
  251. package/src/{memory → plugins/defaults/memory}/v2/injection-events.ts +3 -3
  252. package/src/{memory → plugins/defaults/memory}/v2/injection.ts +4 -4
  253. package/src/{memory → plugins/defaults/memory}/v2/migration.ts +7 -6
  254. package/src/{memory → plugins/defaults/memory}/v2/page-index.ts +1 -1
  255. package/src/{memory → plugins/defaults/memory}/v2/page-store.ts +1 -1
  256. package/src/{memory → plugins/defaults/memory}/v2/prompts/consolidation.ts +2 -2
  257. package/src/{memory → plugins/defaults/memory}/v2/prompts/router.ts +1 -1
  258. package/src/{memory → plugins/defaults/memory}/v2/qdrant.ts +5 -5
  259. package/src/{memory → plugins/defaults/memory}/v2/reranker.ts +3 -3
  260. package/src/{memory → plugins/defaults/memory}/v2/router.ts +8 -7
  261. package/src/{memory → plugins/defaults/memory}/v2/sim.ts +2 -2
  262. package/src/{memory → plugins/defaults/memory}/v2/skill-content.ts +2 -2
  263. package/src/{memory → plugins/defaults/memory}/v2/skill-store.ts +8 -8
  264. package/src/{memory → plugins/defaults/memory}/v2/sparse-bm25.ts +2 -2
  265. package/src/{memory → plugins/defaults/memory}/v2/static-context.ts +4 -4
  266. package/src/{memory → plugins/defaults/memory}/v2/sweep-job.ts +14 -11
  267. package/src/plugins/defaults/memory/v3/__tests__/candidate-match.test.ts +2 -2
  268. package/src/plugins/defaults/memory/v3/__tests__/carry-integration.test.ts +8 -11
  269. package/src/plugins/defaults/memory/v3/__tests__/edge.test.ts +1 -1
  270. package/src/plugins/defaults/memory/v3/__tests__/injection.test.ts +1 -1
  271. package/src/plugins/defaults/memory/v3/__tests__/live-integration.test.ts +7 -7
  272. package/src/plugins/defaults/memory/v3/__tests__/maintain-job.test.ts +1 -1
  273. package/src/plugins/defaults/memory/v3/__tests__/orchestrate.test.ts +3 -6
  274. package/src/plugins/defaults/memory/v3/__tests__/pool-select.test.ts +2 -1
  275. package/src/plugins/defaults/memory/v3/__tests__/render-injection.test.ts +1 -1
  276. package/src/plugins/defaults/memory/v3/__tests__/shadow-integration.test.ts +2 -6
  277. package/src/plugins/defaults/memory/v3/__tests__/shadow-plugin.test.ts +7 -7
  278. package/src/plugins/defaults/memory/v3/candidate-match.ts +2 -2
  279. package/src/plugins/defaults/memory/v3/capabilities.ts +2 -5
  280. package/src/plugins/defaults/memory/v3/card.ts +1 -1
  281. package/src/plugins/defaults/memory/v3/edge.ts +1 -1
  282. package/src/plugins/defaults/memory/v3/injector.ts +1 -4
  283. package/src/plugins/defaults/memory/v3/maintain-job.ts +3 -3
  284. package/src/plugins/defaults/memory/v3/page-content.ts +2 -5
  285. package/src/plugins/defaults/memory/v3/pool-select.test.ts +2 -1
  286. package/src/plugins/defaults/memory/v3/pool-select.ts +1 -1
  287. package/src/plugins/defaults/memory/v3/prune.test.ts +2 -2
  288. package/src/plugins/defaults/memory/v3/prune.ts +4 -7
  289. package/src/plugins/defaults/memory/v3/render-injection.ts +1 -1
  290. package/src/plugins/defaults/memory/v3/selection-log-store.ts +1 -1
  291. package/src/plugins/defaults/memory/v3/shadow-plugin.ts +2 -5
  292. package/src/{memory → plugins/defaults/memory}/v3-eval/eval-packets.ts +13 -13
  293. package/src/plugins/types.ts +1 -1
  294. package/src/prompts/system-prompt.ts +1 -1
  295. package/src/providers/__tests__/placeholder-sentinels.test.ts +80 -0
  296. package/src/providers/anthropic/client.ts +13 -17
  297. package/src/providers/inference/__tests__/base-url-security.test.ts +1 -1
  298. package/src/providers/inference/resolve-auth.ts +3 -3
  299. package/src/providers/placeholder-sentinels.ts +50 -15
  300. package/src/runtime/__tests__/agent-wake.test.ts +2 -2
  301. package/src/runtime/__tests__/guardian-vellum-migration.test.ts +7 -5
  302. package/src/runtime/routes/__tests__/acp-routes.test.ts +2 -2
  303. package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +7 -7
  304. package/src/runtime/routes/__tests__/home-feed-routes.test.ts +1 -1
  305. package/src/runtime/routes/__tests__/ps-routes.test.ts +3 -3
  306. package/src/runtime/routes/__tests__/retrospective-routes.test.ts +4 -4
  307. package/src/runtime/routes/acp-routes.test.ts +1 -1
  308. package/src/runtime/routes/acp-routes.ts +1 -1
  309. package/src/runtime/routes/consolidation-routes.ts +1 -1
  310. package/src/runtime/routes/conversation-query-routes.ts +3 -3
  311. package/src/runtime/routes/conversation-routes.ts +1 -1
  312. package/src/runtime/routes/conversations-import-routes.ts +1 -1
  313. package/src/runtime/routes/global-search-routes.ts +1 -1
  314. package/src/runtime/routes/retrospective-routes.ts +4 -4
  315. package/src/runtime/routes/schedule-routes.ts +1 -2
  316. package/src/runtime/routes/task-routes.ts +18 -29
  317. package/src/runtime/services/__tests__/auto-analysis-enqueue.test.ts +7 -4
  318. package/src/runtime/services/analyze-conversation.ts +1 -1
  319. package/src/runtime/services/auto-analysis-enqueue.ts +1 -1
  320. package/src/schedule/scheduler.ts +1 -1
  321. package/src/skills/catalog-install.ts +1 -1
  322. package/src/skills/managed-store.ts +1 -1
  323. package/src/tasks/task-runner.ts +1 -1
  324. package/src/telemetry/turn-trace-store.ts +2 -2
  325. package/src/telemetry/usage-telemetry-reporter.test.ts +2 -2
  326. package/src/telemetry/usage-telemetry-reporter.ts +3 -6
  327. package/src/tools/acp/spawn.test.ts +2 -2
  328. package/src/tools/browser/cdp-client/cdp-inspect/__tests__/discovery.test.ts +3 -3
  329. package/src/tools/filesystem/write.ts +2 -2
  330. package/src/tools/skills/scaffold-managed.ts +1 -1
  331. package/src/util/__tests__/process-tree.test.ts +4 -4
  332. package/src/util/process-tree.ts +3 -3
  333. package/src/workflows/leaf-runner.test.ts +6 -3
  334. package/src/workflows/leaf-runner.ts +1 -1
  335. package/src/workspace/migrations/__tests__/backfill-v3-leaves.test.ts +5 -2
  336. /package/src/{memory → persistence/embeddings}/__tests__/sparse-tokenize.test.ts +0 -0
  337. /package/src/{memory → plugins/defaults/memory}/__tests__/fixtures/memory-v2-activation-fixtures.ts +0 -0
  338. /package/src/{memory → plugins/defaults/memory}/__tests__/memory-retrospective-trigger-check.test.ts +0 -0
  339. /package/src/{memory → plugins/defaults/memory}/anisotropy.test.ts +0 -0
  340. /package/src/{memory → plugins/defaults/memory}/context-search/__tests__/agent-runner-redaction.test.ts +0 -0
  341. /package/src/{memory → plugins/defaults/memory}/context-search/format.ts +0 -0
  342. /package/src/{memory → plugins/defaults/memory}/context-search/limits.ts +0 -0
  343. /package/src/{memory → plugins/defaults/memory}/context-search/sources/workspace.ts +0 -0
  344. /package/src/{memory → plugins/defaults/memory}/graph/decay.test.ts +0 -0
  345. /package/src/{memory → plugins/defaults/memory}/graph/extraction.test.ts +0 -0
  346. /package/src/{memory → plugins/defaults/memory}/graph/injection.test.ts +0 -0
  347. /package/src/{memory → plugins/defaults/memory}/graph/scoring.test.ts +0 -0
  348. /package/src/{memory → plugins/defaults/memory}/graph/scoring.ts +0 -0
  349. /package/src/{memory → plugins/defaults/memory}/graph/serendipity.ts +0 -0
  350. /package/src/{memory → plugins/defaults/memory}/graph/triggers.test.ts +0 -0
  351. /package/src/{memory → plugins/defaults/memory}/graph/triggers.ts +0 -0
  352. /package/src/{memory → plugins/defaults/memory}/graph/types.ts +0 -0
  353. /package/src/{memory → plugins/defaults/memory}/memory-marker.ts +0 -0
  354. /package/src/{memory → plugins/defaults/memory}/memory-retrospective-constants.ts +0 -0
  355. /package/src/{memory → plugins/defaults/memory}/prompt-override.ts +0 -0
  356. /package/src/{memory → plugins/defaults/memory}/retrieval-budget.ts +0 -0
  357. /package/src/{memory → plugins/defaults/memory}/v2/__tests__/__snapshots__/prompts-router.test.ts.snap +0 -0
  358. /package/src/{memory → plugins/defaults/memory}/v2/__tests__/concept-page-frontmatter-schema.test.ts +0 -0
  359. /package/src/{memory → plugins/defaults/memory}/v2/__tests__/consolidation-prompt-flag-gating-guard.test.ts +0 -0
  360. /package/src/{memory → plugins/defaults/memory}/v2/__tests__/edge-index.test.ts +0 -0
  361. /package/src/{memory → plugins/defaults/memory}/v2/__tests__/harness-metrics.test.ts +0 -0
  362. /package/src/{memory → plugins/defaults/memory}/v2/__tests__/injected-block-slugs.test.ts +0 -0
  363. /package/src/{memory → plugins/defaults/memory}/v2/__tests__/page-store.test.ts +0 -0
  364. /package/src/{memory → plugins/defaults/memory}/v2/__tests__/prompts-router.test.ts +0 -0
  365. /package/src/{memory → plugins/defaults/memory}/v2/cli-command-content.ts +0 -0
  366. /package/src/{memory → plugins/defaults/memory}/v2/constants.ts +0 -0
  367. /package/src/{memory → plugins/defaults/memory}/v2/edge-index.ts +0 -0
  368. /package/src/{memory → plugins/defaults/memory}/v2/harness/metrics.ts +0 -0
  369. /package/src/{memory → plugins/defaults/memory}/v2/harness/runner.ts +0 -0
  370. /package/src/{memory → plugins/defaults/memory}/v2/harness/trace.ts +0 -0
  371. /package/src/{memory → plugins/defaults/memory}/v2/injected-block-slugs.ts +0 -0
  372. /package/src/{memory → plugins/defaults/memory}/v2/now-text.ts +0 -0
  373. /package/src/{memory → plugins/defaults/memory}/v2/prompts/sweep.ts +0 -0
  374. /package/src/{memory → plugins/defaults/memory}/v2/types.ts +0 -0
  375. /package/src/{memory → plugins/defaults/memory}/v3-eval/__tests__/eval-packets.test.ts +0 -0
  376. /package/src/{memory → plugins/defaults/memory}/v3-eval/__tests__/eval-tally.test.ts +0 -0
  377. /package/src/{memory → plugins/defaults/memory}/v3-eval/eval-tally.ts +0 -0
  378. /package/src/{memory → plugins/defaults/memory}/validation.ts +0 -0
@@ -54,9 +54,10 @@ const ALLOWED_PREFIXES = {
54
54
  "../../../util/platform",
55
55
  // Memory retrospective — the retrospective CLI runs the fork-based
56
56
  // retrospective in-process (no daemon, no IPC), so it imports the
57
- // job handler directly. Depth-2 for commands/memory/ nesting.
58
- "../../memory/memory-retrospective-job",
59
- "../../../memory/memory-retrospective-job",
57
+ // job handler directly from the default-memory plugin. Depth-2 for
58
+ // commands/memory/ nesting.
59
+ "../../plugins/defaults/memory/memory-retrospective-job",
60
+ "../../../plugins/defaults/memory/memory-retrospective-job",
60
61
  // Standalone tool execution — `tools run` executes a single tool
61
62
  // in-process from the filesystem (no daemon, no IPC), so it imports the
62
63
  // standalone runner directly. Depth-2 for commands/ nesting.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vellumai/assistant",
3
- "version": "0.10.3-dev.202606300731.35e9ab8",
3
+ "version": "0.10.3-dev.202606300917.a9da5f8",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "exports": {
@@ -29,7 +29,7 @@ mock.module("../util/logger.js", () => ({
29
29
 
30
30
  const { applyBootstrapTemplate } = await import("../prompts/system-prompt.js");
31
31
  const { isActivationSession } =
32
- await import("../memory/activation-session-store.js");
32
+ await import("../plugins/defaults/memory/activation-session-store.js");
33
33
  const { ACTIVATION_RAIL_BOOTSTRAP_TEMPLATE } =
34
34
  await import("../telemetry/activation-funnel.js");
35
35
  const { getDb } = await import("../persistence/db-connection.js");
@@ -2087,6 +2087,54 @@ describe("AnthropicProvider — Cache-Control Characterization", () => {
2087
2087
  expect(emitted).toEqual([]);
2088
2088
  });
2089
2089
 
2090
+ test("suppresses a leading-space-corrupted sentinel echo (proxy dropped the guard byte)", async () => {
2091
+ // OpenRouter's Anthropic-compat path returns the `\x00` guard as a leading
2092
+ // space; the normalized prefix check must still hold and drop it.
2093
+ scriptedStream = [
2094
+ { kind: "blockStart" },
2095
+ { kind: "text", text: " __PLACEHOLDER__[empty assistant turn]" },
2096
+ { kind: "blockStop" },
2097
+ ];
2098
+ const emitted: string[] = [];
2099
+ await provider.sendMessage([userMsg("Hi")], {
2100
+ onEvent: (event) => {
2101
+ if (event.type === "text_delta") emitted.push(event.text);
2102
+ },
2103
+ });
2104
+ expect(emitted).toEqual([]);
2105
+ });
2106
+
2107
+ test("suppresses a leading-space-corrupted sentinel split across chunks", async () => {
2108
+ scriptedStream = [
2109
+ { kind: "blockStart" },
2110
+ { kind: "text", text: " __PLACE" },
2111
+ { kind: "text", text: "HOLDER__[empty assistant turn]" },
2112
+ { kind: "blockStop" },
2113
+ ];
2114
+ const emitted: string[] = [];
2115
+ await provider.sendMessage([userMsg("Hi")], {
2116
+ onEvent: (event) => {
2117
+ if (event.type === "text_delta") emitted.push(event.text);
2118
+ },
2119
+ });
2120
+ expect(emitted).toEqual([]);
2121
+ });
2122
+
2123
+ test("still streams real text that begins with whitespace", async () => {
2124
+ scriptedStream = [
2125
+ { kind: "blockStart" },
2126
+ { kind: "text", text: " hello there" },
2127
+ { kind: "blockStop" },
2128
+ ];
2129
+ const emitted: string[] = [];
2130
+ await provider.sendMessage([userMsg("Hi")], {
2131
+ onEvent: (event) => {
2132
+ if (event.type === "text_delta") emitted.push(event.text);
2133
+ },
2134
+ });
2135
+ expect(emitted.join("")).toBe(" hello there");
2136
+ });
2137
+
2090
2138
  test("flushes buffered prefix when the continuation diverges from all sentinels", async () => {
2091
2139
  // "__PLACEHOLDER__" is a prefix of the sentinels, so it stays buffered.
2092
2140
  // Once the next chunk diverges (bracket instead of the expected opening),
@@ -130,7 +130,6 @@ mock.module("../runtime/services/analyze-conversation.js", () => ({
130
130
 
131
131
  // ── Real imports ──────────────────────────────────────────────────
132
132
 
133
- import { indexMessageNow } from "../memory/indexer.js";
134
133
  import { createConversation } from "../persistence/conversation-crud.js";
135
134
  import { getDb, getMemoryDb } from "../persistence/db-connection.js";
136
135
  import { initializeDb } from "../persistence/db-init.js";
@@ -140,6 +139,7 @@ import {
140
139
  memoryJobs,
141
140
  messages,
142
141
  } from "../persistence/schema/index.js";
142
+ import { indexMessageNow } from "../plugins/defaults/memory/indexer.js";
143
143
  import { conversationAnalyzeJob } from "../runtime/services/conversation-analyze-job.js";
144
144
  import { setOverridesForTesting } from "./feature-flag-test-helpers.js";
145
145
 
@@ -41,7 +41,7 @@ mock.module("../ipc/cli-client.js", () => ({
41
41
  }));
42
42
 
43
43
  let seedCallCount = 0;
44
- mock.module("../memory/v2/skill-store.js", () => ({
44
+ mock.module("../plugins/defaults/memory/v2/skill-store.js", () => ({
45
45
  seedV2SkillEntries: async () => {
46
46
  seedCallCount += 1;
47
47
  },
@@ -9,8 +9,8 @@ import {
9
9
  truncateRecallEvidenceToBudget,
10
10
  validateFinishRecallPayload,
11
11
  validateRecallCitationIds,
12
- } from "../memory/context-search/agent-protocol.js";
13
- import type { RecallEvidence } from "../memory/context-search/types.js";
12
+ } from "../plugins/defaults/memory/context-search/agent-protocol.js";
13
+ import type { RecallEvidence } from "../plugins/defaults/memory/context-search/types.js";
14
14
 
15
15
  function makeEvidence(
16
16
  id: string,
@@ -22,13 +22,13 @@ mock.module("../providers/provider-send-message.js", () => ({
22
22
  },
23
23
  }));
24
24
 
25
- import { runAgenticRecall } from "../memory/context-search/agent-runner.js";
25
+ import { runAgenticRecall } from "../plugins/defaults/memory/context-search/agent-runner.js";
26
26
  import type {
27
27
  RecallEvidence,
28
28
  RecallSearchContext,
29
29
  RecallSource,
30
30
  RecallSourceAdapter,
31
- } from "../memory/context-search/types.js";
31
+ } from "../plugins/defaults/memory/context-search/types.js";
32
32
 
33
33
  interface SearchCall {
34
34
  source: RecallSource;
@@ -1,11 +1,11 @@
1
1
  import { beforeEach, describe, expect, test } from "bun:test";
2
2
 
3
- import { searchConversationSource } from "../memory/context-search/sources/conversations.js";
4
- import type { RecallSearchContext } from "../memory/context-search/types.js";
5
3
  import { writeSlackMetadata } from "../messaging/providers/slack/message-metadata.js";
6
4
  import { getDb } from "../persistence/db-connection.js";
7
5
  import { initializeDb } from "../persistence/db-init.js";
8
6
  import { rawRun } from "../persistence/raw-query.js";
7
+ import { searchConversationSource } from "../plugins/defaults/memory/context-search/sources/conversations.js";
8
+ import type { RecallSearchContext } from "../plugins/defaults/memory/context-search/types.js";
9
9
  await initializeDb();
10
10
 
11
11
  let seedId = 0;
@@ -1,14 +1,14 @@
1
1
  import { describe, expect, test } from "bun:test";
2
2
 
3
3
  import type { AssistantConfig } from "../config/schema.js";
4
- import { formatDeterministicRecallAnswer } from "../memory/context-search/format.js";
5
- import { runDeterministicRecallSearch } from "../memory/context-search/search.js";
4
+ import { formatDeterministicRecallAnswer } from "../plugins/defaults/memory/context-search/format.js";
5
+ import { runDeterministicRecallSearch } from "../plugins/defaults/memory/context-search/search.js";
6
6
  import type {
7
7
  RecallEvidence,
8
8
  RecallSearchContext,
9
9
  RecallSource,
10
10
  RecallSourceAdapter,
11
- } from "../memory/context-search/types.js";
11
+ } from "../plugins/defaults/memory/context-search/types.js";
12
12
 
13
13
  function makeContext(): RecallSearchContext {
14
14
  return {
@@ -5,18 +5,19 @@ import type {
5
5
  RecallEvidence,
6
6
  RecallSearchContext,
7
7
  RecallSearchResult,
8
- } from "../memory/context-search/types.js";
9
- import type { MemoryNode } from "../memory/graph/types.js";
8
+ } from "../plugins/defaults/memory/context-search/types.js";
9
+ import type { MemoryNode } from "../plugins/defaults/memory/graph/types.js";
10
10
 
11
11
  const loggerModule = import.meta.resolve("../util/logger.js");
12
12
  const embedModule = import.meta.resolve("../persistence/embeddings/embed.js");
13
13
  const embeddingBackendModule = import.meta
14
14
  .resolve("../persistence/embeddings/embedding-backend.js");
15
15
  const graphSearchModule = import.meta
16
- .resolve("../memory/graph/graph-search.js");
17
- const graphStoreModule = import.meta.resolve("../memory/graph/store.js");
16
+ .resolve("../plugins/defaults/memory/graph/graph-search.js");
17
+ const graphStoreModule = import.meta
18
+ .resolve("../plugins/defaults/memory/graph/store.js");
18
19
  const memoryV2SourceModule = import.meta
19
- .resolve("../memory/context-search/sources/memory-v2.js");
20
+ .resolve("../plugins/defaults/memory/context-search/sources/memory-v2.js");
20
21
 
21
22
  const warnCalls: unknown[][] = [];
22
23
  mock.module(loggerModule, () => ({
@@ -118,7 +119,7 @@ mock.module(memoryV2SourceModule, () => ({
118
119
  }));
119
120
 
120
121
  const { searchMemorySource } =
121
- await import("../memory/context-search/sources/memory.js");
122
+ await import("../plugins/defaults/memory/context-search/sources/memory.js");
122
123
 
123
124
  describe("searchMemorySource", () => {
124
125
  beforeEach(() => {
@@ -25,9 +25,9 @@ import { dirname, join } from "node:path";
25
25
  import { afterEach, beforeEach, describe, expect, mock, test } from "bun:test";
26
26
 
27
27
  import type { AssistantConfig } from "../config/schema.js";
28
- import type { RecallSearchContext } from "../memory/context-search/types.js";
29
- import type { EdgeIndex } from "../memory/v2/edge-index.js";
30
- import type { ConceptPage } from "../memory/v2/types.js";
28
+ import type { RecallSearchContext } from "../plugins/defaults/memory/context-search/types.js";
29
+ import type { EdgeIndex } from "../plugins/defaults/memory/v2/edge-index.js";
30
+ import type { ConceptPage } from "../plugins/defaults/memory/v2/types.js";
31
31
  import { makeMockLogger } from "./helpers/mock-logger.js";
32
32
 
33
33
  mock.module("../util/logger.js", () => ({
@@ -54,7 +54,7 @@ let qdrantHits: QdrantHit[] = [];
54
54
  let qdrantThrows: Error | null = null;
55
55
  const qdrantCalls: Array<{ limit: number }> = [];
56
56
 
57
- mock.module("../memory/v2/qdrant.js", () => ({
57
+ mock.module("../plugins/defaults/memory/v2/qdrant.js", () => ({
58
58
  hybridQueryConceptPages: async (
59
59
  _dense: number[],
60
60
  _sparse: { indices: number[]; values: number[] },
@@ -71,7 +71,7 @@ let edgeIndex: EdgeIndex = {
71
71
  incoming: new Map<string, Set<string>>(),
72
72
  };
73
73
 
74
- mock.module("../memory/v2/edge-index.js", () => ({
74
+ mock.module("../plugins/defaults/memory/v2/edge-index.js", () => ({
75
75
  getEdgeIndex: async (): Promise<EdgeIndex> => edgeIndex,
76
76
  invalidateEdgeIndex: () => {},
77
77
  getReachable: () => new Set<string>(),
@@ -81,7 +81,7 @@ mock.module("../memory/v2/edge-index.js", () => ({
81
81
 
82
82
  const pageStore = new Map<string, ConceptPage>();
83
83
 
84
- mock.module("../memory/v2/page-store.js", () => ({
84
+ mock.module("../plugins/defaults/memory/v2/page-store.js", () => ({
85
85
  getConceptsDir: (workspaceDir: string): string =>
86
86
  join(workspaceDir, "memory", "concepts"),
87
87
  listPages: async (): Promise<string[]> => [...pageStore.keys()],
@@ -101,7 +101,7 @@ mock.module("../memory/v2/page-store.js", () => ({
101
101
  }));
102
102
 
103
103
  const { searchMemoryV2Source } =
104
- await import("../memory/context-search/sources/memory-v2.js");
104
+ await import("../plugins/defaults/memory/context-search/sources/memory-v2.js");
105
105
 
106
106
  const testDirs: string[] = [];
107
107
 
@@ -9,12 +9,12 @@ import {
9
9
  RECALL_EVIDENCE_TEXT_CAP_PER_SOURCE,
10
10
  RECALL_SOURCE_ROUNDS_BY_DEPTH,
11
11
  RECALL_TOTAL_EVIDENCE_TEXT_CAP,
12
- } from "../memory/context-search/limits.js";
12
+ } from "../plugins/defaults/memory/context-search/limits.js";
13
13
  import type {
14
14
  RecallInput,
15
15
  RecallSource,
16
16
  RecallSourceAdapter,
17
- } from "../memory/context-search/types.js";
17
+ } from "../plugins/defaults/memory/context-search/types.js";
18
18
 
19
19
  describe("normalizeRecallInput", () => {
20
20
  test("defaults omitted sources, max results, and depth", () => {
@@ -16,8 +16,8 @@ import {
16
16
  searchWorkspaceSource,
17
17
  WORKSPACE_SOURCE_MAX_FILE_SIZE_BYTES,
18
18
  WORKSPACE_SOURCE_MAX_SCANNED_FILES,
19
- } from "../memory/context-search/sources/workspace.js";
20
- import type { RecallSearchContext } from "../memory/context-search/types.js";
19
+ } from "../plugins/defaults/memory/context-search/sources/workspace.js";
20
+ import type { RecallSearchContext } from "../plugins/defaults/memory/context-search/types.js";
21
21
 
22
22
  const testDirs: string[] = [];
23
23
 
@@ -329,7 +329,7 @@ const indexMessageNowMock = mock(async () => ({
329
329
  }));
330
330
  const projectAssistantMessageMock = mock(() => false);
331
331
  const publishSyncInvalidationMock = mock(async () => {});
332
- mock.module("../memory/indexer.js", () => ({
332
+ mock.module("../plugins/defaults/memory/indexer.js", () => ({
333
333
  indexMessageNow: indexMessageNowMock,
334
334
  }));
335
335
  mock.module("../persistence/conversation-attention-store.js", () => ({
@@ -21,16 +21,6 @@ mock.module("../config/loader.js", () => ({
21
21
  }),
22
22
  }));
23
23
 
24
- import {
25
- loadGraphMemoryState,
26
- saveGraphMemoryState,
27
- } from "../memory/graph/graph-memory-state-store.js";
28
- import {
29
- bumpRetrospectiveLastRunAt,
30
- getRetrospectiveState,
31
- upsertRetrospectiveState,
32
- } from "../memory/memory-retrospective-state.js";
33
- import { hydrate as hydrateActivationState } from "../memory/v2/activation-store.js";
34
24
  import {
35
25
  getAttachmentsForMessage,
36
26
  linkAttachmentToMessage,
@@ -65,6 +55,16 @@ import {
65
55
  memoryRetrospectiveState,
66
56
  toolInvocations,
67
57
  } from "../persistence/schema/index.js";
58
+ import {
59
+ loadGraphMemoryState,
60
+ saveGraphMemoryState,
61
+ } from "../plugins/defaults/memory/graph/graph-memory-state-store.js";
62
+ import {
63
+ bumpRetrospectiveLastRunAt,
64
+ getRetrospectiveState,
65
+ upsertRetrospectiveState,
66
+ } from "../plugins/defaults/memory/memory-retrospective-state.js";
67
+ import { hydrate as hydrateActivationState } from "../plugins/defaults/memory/v2/activation-store.js";
68
68
  import {
69
69
  getInjected as getV3Injected,
70
70
  markPruned as markV3Pruned,
@@ -19,10 +19,6 @@ mock.module("../config/loader.js", () => ({
19
19
  }),
20
20
  }));
21
21
 
22
- import {
23
- loadGraphMemoryState,
24
- saveGraphMemoryState,
25
- } from "../memory/graph/graph-memory-state-store.js";
26
22
  import {
27
23
  getAttachmentsForMessage,
28
24
  linkAttachmentToMessage,
@@ -54,6 +50,10 @@ import {
54
50
  memoryRetrospectiveState,
55
51
  toolInvocations,
56
52
  } from "../persistence/schema/index.js";
53
+ import {
54
+ loadGraphMemoryState,
55
+ saveGraphMemoryState,
56
+ } from "../plugins/defaults/memory/graph/graph-memory-state-store.js";
57
57
 
58
58
  await initializeDb();
59
59
 
@@ -75,7 +75,7 @@ let pkbSearchResults: Array<{
75
75
  hybridScore?: number;
76
76
  }> = [];
77
77
  let pkbSearchThrows: Error | null = null;
78
- mock.module("../memory/pkb/pkb-search.js", () => ({
78
+ mock.module("../plugins/defaults/memory/pkb/pkb-search.js", () => ({
79
79
  searchPkbFiles: async () => {
80
80
  if (pkbSearchThrows) throw pkbSearchThrows;
81
81
  return pkbSearchResults;
@@ -132,8 +132,6 @@ import {
132
132
  import type { SurfaceData, SurfaceType } from "../daemon/message-protocol.js";
133
133
  import { buildPkbReminder } from "../daemon/pkb-reminder-builder.js";
134
134
  import type { TrustContext } from "../daemon/trust-context.js";
135
- import { ConversationGraphMemory } from "../memory/graph/conversation-graph-memory.js";
136
- import { getPkbRoot } from "../memory/pkb/types.js";
137
135
  import {
138
136
  type SlackMessageMetadata,
139
137
  writeSlackMetadata,
@@ -144,7 +142,9 @@ import { getDb } from "../persistence/db-connection.js";
144
142
  import { initializeDb } from "../persistence/db-init.js";
145
143
  import { conversations, messages } from "../persistence/schema/index.js";
146
144
  import { registerDefaultPluginInjectors } from "../plugins/defaults/index.js";
145
+ import { ConversationGraphMemory } from "../plugins/defaults/memory/graph/conversation-graph-memory.js";
147
146
  import postCompact from "../plugins/defaults/memory/hooks/post-compact.js";
147
+ import { getPkbRoot } from "../plugins/defaults/memory/pkb/types.js";
148
148
  import {
149
149
  buildUnifiedTurnContextBlock,
150
150
  type UnifiedTurnContextOptions,
@@ -35,10 +35,6 @@ const { createSurfaceMutex, handleSurfaceAction, surfaceProxyResolver } =
35
35
 
36
36
  import type { SurfaceConversationContext } from "../daemon/conversation-surfaces.js";
37
37
  import type { SurfaceType, UiSurfaceShow } from "../daemon/message-protocol.js";
38
- import {
39
- isActivationSession,
40
- markActivationSession,
41
- } from "../memory/activation-session-store.js";
42
38
  import { queryUnreportedOnboardingEvents } from "../onboarding/onboarding-events-store.js";
43
39
  import { getDb } from "../persistence/db-connection.js";
44
40
  import { initializeDb } from "../persistence/db-init.js";
@@ -46,6 +42,10 @@ import {
46
42
  activationSessions,
47
43
  onboardingEvents,
48
44
  } from "../persistence/schema/index.js";
45
+ import {
46
+ isActivationSession,
47
+ markActivationSession,
48
+ } from "../plugins/defaults/memory/activation-session-store.js";
49
49
 
50
50
  await initializeDb();
51
51
 
@@ -135,7 +135,7 @@ mock.module("../memory/query-builder.js", () => ({
135
135
  buildMemoryQuery: () => "",
136
136
  }));
137
137
 
138
- mock.module("../memory/retrieval-budget.js", () => ({
138
+ mock.module("../plugins/defaults/memory/retrieval-budget.js", () => ({
139
139
  computeRecallBudget: () => 0,
140
140
  }));
141
141
 
@@ -175,7 +175,7 @@ mock.module("../memory/retriever.js", () => ({
175
175
  mock.module("../memory/query-builder.js", () => ({
176
176
  buildMemoryQuery: () => "",
177
177
  }));
178
- mock.module("../memory/retrieval-budget.js", () => ({
178
+ mock.module("../plugins/defaults/memory/retrieval-budget.js", () => ({
179
179
  computeRecallBudget: () => 0,
180
180
  }));
181
181
  mock.module("../plugins/defaults/compaction/window-manager.js", () => ({
@@ -172,7 +172,7 @@ mock.module("../memory/retriever.js", () => ({
172
172
  mock.module("../memory/query-builder.js", () => ({
173
173
  buildMemoryQuery: () => "",
174
174
  }));
175
- mock.module("../memory/retrieval-budget.js", () => ({
175
+ mock.module("../plugins/defaults/memory/retrieval-budget.js", () => ({
176
176
  computeRecallBudget: () => 0,
177
177
  }));
178
178
  mock.module("../plugins/defaults/compaction/window-manager.js", () => ({
@@ -24,7 +24,7 @@ mock.module("../config/loader.js", () => ({
24
24
  }),
25
25
  }));
26
26
 
27
- mock.module("../memory/indexer.js", () => ({
27
+ mock.module("../plugins/defaults/memory/indexer.js", () => ({
28
28
  indexMessageNow: async () => {},
29
29
  }));
30
30
 
@@ -28,7 +28,7 @@ const enqueueCalls: Array<{
28
28
  }> = [];
29
29
  let enqueueThrows = false;
30
30
 
31
- mock.module("../memory/jobs/embed-pkb-file.js", () => ({
31
+ mock.module("../plugins/defaults/memory/jobs/embed-pkb-file.js", () => ({
32
32
  enqueuePkbIndexJob: (input: {
33
33
  pkbRoot: string;
34
34
  absPath: string;
@@ -49,7 +49,7 @@ function setWorkspaceDir(dir: string): void {
49
49
  process.env.VELLUM_WORKSPACE_DIR = dir;
50
50
  }
51
51
 
52
- import { PKB_WORKSPACE_SCOPE } from "../memory/pkb/types.js";
52
+ import { PKB_WORKSPACE_SCOPE } from "../plugins/defaults/memory/pkb/types.js";
53
53
  import { getTool } from "../tools/registry.js";
54
54
  import type { Tool, ToolContext } from "../tools/types.js";
55
55
 
@@ -267,7 +267,7 @@ describe("file_write artifact-HTML guard", () => {
267
267
  const html =
268
268
  "<!doctype html><html><head><title>Food Market</title></head>" +
269
269
  "<body><canvas id='c'></canvas><script>" +
270
- ("const data=[{x:1,y:2}];").padEnd(4000, "/") +
270
+ "const data=[{x:1,y:2}];".padEnd(4000, "/") +
271
271
  "new Chart(document.getElementById('c'), {data});</script></body></html>";
272
272
 
273
273
  const result = await fileWriteTool.execute(
@@ -165,7 +165,7 @@ mock.module("../skills/managed-store.js", () => ({
165
165
  validateManagedSkillId: () => null,
166
166
  }));
167
167
 
168
- mock.module("../memory/graph/capability-seed.js", () => ({
168
+ mock.module("../plugins/defaults/memory/graph/capability-seed.js", () => ({
169
169
  deleteSkillCapabilityNode: () => {},
170
170
  seedSkillGraphNodes: () => {},
171
171
  seedUninstalledCatalogSkillMemories: async () => {},
@@ -5,7 +5,7 @@ import {
5
5
  EVENT_DATE_PROMPT_RULES,
6
6
  parseEpochMs,
7
7
  parseExtractionResponse,
8
- } from "../memory/graph/extraction.js";
8
+ } from "../plugins/defaults/memory/graph/extraction.js";
9
9
 
10
10
  // ---------------------------------------------------------------------------
11
11
  // parseEpochMs unit tests
@@ -148,7 +148,7 @@ mock.module("../skills/managed-store.js", () => ({
148
148
  validateManagedSkillId: () => null,
149
149
  }));
150
150
 
151
- mock.module("../memory/graph/capability-seed.js", () => ({
151
+ mock.module("../plugins/defaults/memory/graph/capability-seed.js", () => ({
152
152
  deleteSkillCapabilityNode: () => {},
153
153
  }));
154
154
 
@@ -7,15 +7,12 @@
7
7
  */
8
8
  import { afterEach, beforeEach, describe, expect, it } from "bun:test";
9
9
 
10
- import {
11
- mockGatewayIpc,
12
- resetMockGatewayIpc,
13
- } from "../__tests__/mock-gateway-ipc.js";
14
10
  import {
15
11
  clearFeatureFlagOverridesCache,
16
12
  initFeatureFlagOverrides,
17
13
  isAssistantFeatureFlagEnabled,
18
14
  } from "../config/assistant-feature-flags.js";
15
+ import { mockGatewayIpc, resetMockGatewayIpc } from "./mock-gateway-ipc.js";
19
16
 
20
17
  beforeEach(() => {
21
18
  clearFeatureFlagOverridesCache();
@@ -3,8 +3,11 @@ import { describe, expect, test } from "bun:test";
3
3
  import {
4
4
  assembleContextBlock,
5
5
  assembleInjectionBlock,
6
- } from "../memory/graph/injection.js";
7
- import type { MemoryNode, ScoredNode } from "../memory/graph/types.js";
6
+ } from "../plugins/defaults/memory/graph/injection.js";
7
+ import type {
8
+ MemoryNode,
9
+ ScoredNode,
10
+ } from "../plugins/defaults/memory/graph/types.js";
8
11
 
9
12
  function makeScoredNode(
10
13
  overrides: Partial<MemoryNode> & { content: string },
@@ -68,7 +68,6 @@ import {
68
68
  setConversation,
69
69
  } from "../daemon/conversation-registry.js";
70
70
  import { buildPkbReminder } from "../daemon/pkb-reminder-builder.js";
71
- import { getPkbRoot } from "../memory/pkb/types.js";
72
71
  import {
73
72
  type SlackMessageMetadata,
74
73
  writeSlackMetadata,
@@ -76,6 +75,7 @@ import {
76
75
  import { getDb } from "../persistence/db-connection.js";
77
76
  import { initializeDb } from "../persistence/db-init.js";
78
77
  import { conversations, messages } from "../persistence/schema/index.js";
78
+ import { getPkbRoot } from "../plugins/defaults/memory/pkb/types.js";
79
79
  import { buildUnifiedTurnContextBlock } from "../plugins/defaults/turn-context/unified-turn-context.js";
80
80
  import type { TurnContext } from "../plugins/types.js";
81
81
  import type { Message } from "../providers/types.js";
@@ -30,7 +30,7 @@ mock.module("../config/loader.js", () => ({
30
30
  }),
31
31
  }));
32
32
 
33
- mock.module("../memory/pkb/pkb-search.js", () => ({
33
+ mock.module("../plugins/defaults/memory/pkb/pkb-search.js", () => ({
34
34
  searchPkbFiles: async () => [],
35
35
  }));
36
36
 
@@ -38,7 +38,7 @@ const { applyRuntimeInjections } =
38
38
  await import("../daemon/conversation-runtime-assembly.js");
39
39
  const { registerDefaultPluginInjectors } =
40
40
  await import("../plugins/defaults/index.js");
41
- import { getPkbRoot } from "../memory/pkb/types.js";
41
+ import { getPkbRoot } from "../plugins/defaults/memory/pkb/types.js";
42
42
  import type { TurnContext } from "../plugins/types.js";
43
43
  import type { Message } from "../providers/types.js";
44
44
  import { getWorkspacePromptPath } from "../util/platform.js";
@@ -32,9 +32,9 @@
32
32
 
33
33
  import { afterEach, beforeEach, describe, expect, mock, test } from "bun:test";
34
34
 
35
- import { ConversationGraphMemory } from "../memory/graph/conversation-graph-memory.js";
36
- import { wrapMemorySpotlightBlock } from "../memory/memory-marker.js";
37
- import { INJECTION_HEADER } from "../memory/v2/injection.js";
35
+ import { ConversationGraphMemory } from "../plugins/defaults/memory/graph/conversation-graph-memory.js";
36
+ import { wrapMemorySpotlightBlock } from "../plugins/defaults/memory/memory-marker.js";
37
+ import { INJECTION_HEADER } from "../plugins/defaults/memory/v2/injection.js";
38
38
  import { V3_CARDS_INJECTION_HEADER } from "../plugins/defaults/memory/v3/render-injection.js";
39
39
  import { MEMORY_V3_COMMIT_META_KEY } from "../plugins/defaults/memory/v3/types.js";
40
40
  import type {
@@ -148,7 +148,7 @@ mock.module("../skills/managed-store.js", () => ({
148
148
  deleteManagedSkill: () => ({ deleted: true }),
149
149
  validateManagedSkillId: () => null,
150
150
  }));
151
- mock.module("../memory/graph/capability-seed.js", () => ({
151
+ mock.module("../plugins/defaults/memory/graph/capability-seed.js", () => ({
152
152
  deleteSkillCapabilityNode: () => {},
153
153
  seedSkillGraphNodes: mockSeedSkillGraphNodes,
154
154
  seedUninstalledCatalogSkillMemories: async () => {},