oh-my-second-brain 0.2.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. package/.claude-plugin/marketplace.json +41 -0
  2. package/{adapters/claude-code/.claude-plugin → .claude-plugin}/plugin.json +7 -8
  3. package/{adapters/codex/.codex-plugin → .codex-plugin}/plugin.json +4 -4
  4. package/ACKNOWLEDGMENTS.md +162 -0
  5. package/CHANGELOG-assets.md +23 -0
  6. package/CHANGELOG-cli.md +24 -0
  7. package/CHANGELOG-kernel.md +48 -0
  8. package/CHANGELOG-mcp.md +36 -0
  9. package/CHANGELOG-vendors.md +26 -0
  10. package/CHANGELOG.md +51 -7
  11. package/README.ko.md +2 -2
  12. package/README.md +16 -16
  13. package/{adapters/claude-code → assets/claude}/CLAUDE.md +4 -4
  14. package/{adapters → assets}/codex/AGENTS.md +3 -3
  15. package/{adapters → assets}/codex/rules/oms.md +5 -5
  16. package/{adapters → assets}/hermes/README.md +1 -1
  17. package/{adapters → assets}/hermes/SOUL.md +3 -3
  18. package/{adapters/hermes/manifest.json → assets/hermes-manifest.json} +3 -4
  19. package/assets/skills/distill/SKILL.md +20 -0
  20. package/assets/skills/doctor/SKILL.md +23 -0
  21. package/assets/skills/link/SKILL.md +24 -0
  22. package/assets/skills/search/SKILL.md +25 -0
  23. package/assets/skills/status/SKILL.md +22 -0
  24. package/assets/skills/write/SKILL.md +30 -0
  25. package/core/ontology/schemas/README.md +20 -14
  26. package/dist/assets/shared-skills.d.ts +4 -0
  27. package/dist/assets/shared-skills.js +8 -0
  28. package/dist/assets/shared-skills.js.map +1 -0
  29. package/dist/cli/args.d.ts +3 -1
  30. package/dist/cli/args.js +14 -1
  31. package/dist/cli/args.js.map +1 -1
  32. package/dist/cli/audit.js +3 -3
  33. package/dist/cli/audit.js.map +1 -1
  34. package/dist/cli/claude-install-plan.js +2 -2
  35. package/dist/cli/claude-install-plan.js.map +1 -1
  36. package/dist/cli/doctor-lint.js +8 -8
  37. package/dist/cli/doctor-lint.js.map +1 -1
  38. package/dist/cli/global-writeback.js +1 -1
  39. package/dist/cli/global-writeback.js.map +1 -1
  40. package/dist/cli/host-commands.d.ts +1 -1
  41. package/dist/cli/host-commands.js +24 -5
  42. package/dist/cli/host-commands.js.map +1 -1
  43. package/dist/cli/link-command.d.ts +1 -1
  44. package/dist/cli/link-command.js +2 -2
  45. package/dist/cli/link-command.js.map +1 -1
  46. package/dist/cli/linkify.js +16 -71
  47. package/dist/cli/linkify.js.map +1 -1
  48. package/dist/cli/oms.d.ts +1 -1
  49. package/dist/cli/oms.js +45 -11
  50. package/dist/cli/oms.js.map +1 -1
  51. package/dist/cli/semantic-args.d.ts +1 -1
  52. package/dist/cli/semantic-args.js +102 -3
  53. package/dist/cli/semantic-args.js.map +1 -1
  54. package/dist/cli/semantic-http.js +3 -3
  55. package/dist/cli/semantic-http.js.map +1 -1
  56. package/dist/cli/semantic-usage.js +1 -1
  57. package/dist/cli/semantic-usage.js.map +1 -1
  58. package/dist/cli/semantic.js +31 -12
  59. package/dist/cli/semantic.js.map +1 -1
  60. package/dist/cli/setup-command.d.ts +17 -0
  61. package/dist/cli/setup-command.js +89 -145
  62. package/dist/cli/setup-command.js.map +1 -1
  63. package/dist/cli/update-notice.d.ts +1 -1
  64. package/dist/cli/update-notice.js +2 -2
  65. package/dist/cli/update-notice.js.map +1 -1
  66. package/dist/cli/usage.d.ts +1 -1
  67. package/dist/cli/usage.js +2 -2
  68. package/dist/cli/usage.js.map +1 -1
  69. package/dist/{capture → kernel/capture}/safe.d.ts +11 -1
  70. package/dist/{capture → kernel/capture}/safe.js +3 -3
  71. package/dist/kernel/capture/safe.js.map +1 -0
  72. package/dist/kernel/contracts/index.d.ts +144 -0
  73. package/dist/kernel/contracts/index.js +401 -0
  74. package/dist/kernel/contracts/index.js.map +1 -0
  75. package/dist/kernel/conventions/frontmatter.js.map +1 -0
  76. package/dist/kernel/conventions/lint.js.map +1 -0
  77. package/dist/kernel/conventions/report.js.map +1 -0
  78. package/dist/{conventions → kernel/conventions}/validate.d.ts +1 -1
  79. package/dist/kernel/conventions/validate.js.map +1 -0
  80. package/dist/kernel/conventions/vault-walk.js.map +1 -0
  81. package/dist/{conventions → kernel/conventions}/write-contract.d.ts +1 -1
  82. package/dist/kernel/conventions/write-contract.js.map +1 -0
  83. package/dist/kernel/conventions/write-protocol.js.map +1 -0
  84. package/dist/kernel/doctor/service.d.ts +71 -0
  85. package/dist/kernel/doctor/service.js +70 -0
  86. package/dist/kernel/doctor/service.js.map +1 -0
  87. package/dist/{engine → kernel/engine}/assemble.d.ts +46 -1
  88. package/dist/kernel/engine/assemble.js +483 -0
  89. package/dist/kernel/engine/assemble.js.map +1 -0
  90. package/dist/kernel/engine/axes/store.d.ts +90 -0
  91. package/dist/kernel/engine/axes/store.js +400 -0
  92. package/dist/kernel/engine/axes/store.js.map +1 -0
  93. package/dist/{engine → kernel/engine}/conventions/vault-lint.d.ts +1 -1
  94. package/dist/{engine → kernel/engine}/conventions/vault-lint.js +1 -1
  95. package/dist/kernel/engine/conventions/vault-lint.js.map +1 -0
  96. package/dist/kernel/engine/embed/chunker.js.map +1 -0
  97. package/dist/kernel/engine/embed/deferred.js.map +1 -0
  98. package/dist/{engine → kernel/engine}/embed/hash-stub.test-helper.d.ts +1 -1
  99. package/dist/{engine → kernel/engine}/embed/hash-stub.test-helper.js +1 -1
  100. package/dist/kernel/engine/embed/hash-stub.test-helper.js.map +1 -0
  101. package/dist/kernel/engine/embed/identity.d.ts +21 -0
  102. package/dist/kernel/engine/embed/identity.js +47 -0
  103. package/dist/kernel/engine/embed/identity.js.map +1 -0
  104. package/dist/kernel/engine/embed/model.d.ts +134 -0
  105. package/dist/kernel/engine/embed/model.js +302 -0
  106. package/dist/kernel/engine/embed/model.js.map +1 -0
  107. package/dist/{engine → kernel/engine}/embed/provider.d.ts +36 -5
  108. package/dist/kernel/engine/embed/provider.js +403 -0
  109. package/dist/kernel/engine/embed/provider.js.map +1 -0
  110. package/dist/{engine → kernel/engine}/embed/store.d.ts +13 -1
  111. package/dist/kernel/engine/embed/store.js +730 -0
  112. package/dist/kernel/engine/embed/store.js.map +1 -0
  113. package/dist/kernel/engine/embed/sync.d.ts +100 -0
  114. package/dist/kernel/engine/embed/sync.js +753 -0
  115. package/dist/kernel/engine/embed/sync.js.map +1 -0
  116. package/dist/{engine → kernel/engine}/graph/builder.d.ts +9 -5
  117. package/dist/{engine → kernel/engine}/graph/builder.js +213 -79
  118. package/dist/kernel/engine/graph/builder.js.map +1 -0
  119. package/dist/kernel/engine/graph/explore.js.map +1 -0
  120. package/dist/{engine → kernel/engine}/graph/node.d.ts +49 -1
  121. package/dist/kernel/engine/graph/node.js +315 -0
  122. package/dist/kernel/engine/graph/node.js.map +1 -0
  123. package/dist/kernel/engine/graph/resolver.js.map +1 -0
  124. package/dist/kernel/engine/graph/traverse.js.map +1 -0
  125. package/dist/kernel/engine/linkify/apply.js.map +1 -0
  126. package/dist/kernel/engine/linkify/josa.js.map +1 -0
  127. package/dist/kernel/engine/linkify/mask.js.map +1 -0
  128. package/dist/kernel/engine/linkify/suggest.js.map +1 -0
  129. package/dist/kernel/engine/linkify/types.js.map +1 -0
  130. package/dist/{engine → kernel/engine}/mcp/facade.d.ts +27 -1
  131. package/dist/kernel/engine/mcp/facade.js +1144 -0
  132. package/dist/kernel/engine/mcp/facade.js.map +1 -0
  133. package/dist/kernel/engine/mcp/op-mappers.js.map +1 -0
  134. package/dist/{engine → kernel/engine}/mcp/query-mapper.d.ts +27 -2
  135. package/dist/kernel/engine/mcp/query-mapper.js +247 -0
  136. package/dist/kernel/engine/mcp/query-mapper.js.map +1 -0
  137. package/dist/{engine → kernel/engine}/mcp/types.d.ts +69 -2
  138. package/dist/kernel/engine/mcp/types.js.map +1 -0
  139. package/dist/{engine → kernel/engine}/retrieval/dispatcher.d.ts +23 -1
  140. package/dist/{engine → kernel/engine}/retrieval/dispatcher.js +92 -14
  141. package/dist/kernel/engine/retrieval/dispatcher.js.map +1 -0
  142. package/dist/{engine → kernel/engine}/retrieval/index.d.ts +4 -1
  143. package/dist/{engine → kernel/engine}/retrieval/index.js +6 -3
  144. package/dist/kernel/engine/retrieval/index.js.map +1 -0
  145. package/dist/kernel/engine/retrieval/reranker.d.ts +124 -0
  146. package/dist/kernel/engine/retrieval/reranker.js +204 -0
  147. package/dist/kernel/engine/retrieval/reranker.js.map +1 -0
  148. package/dist/{engine → kernel/engine}/retrieval/rrf.d.ts +10 -2
  149. package/dist/kernel/engine/retrieval/rrf.js +77 -0
  150. package/dist/kernel/engine/retrieval/rrf.js.map +1 -0
  151. package/dist/{engine → kernel/engine}/tracer.d.ts +13 -0
  152. package/dist/{engine → kernel/engine}/tracer.js +63 -6
  153. package/dist/kernel/engine/tracer.js.map +1 -0
  154. package/dist/{engine → kernel/engine}/types.d.ts +4 -4
  155. package/dist/kernel/engine/types.js.map +1 -0
  156. package/dist/{graph → kernel/graph}/cache.d.ts +1 -1
  157. package/dist/{graph → kernel/graph}/cache.js +165 -21
  158. package/dist/kernel/graph/cache.js.map +1 -0
  159. package/dist/kernel/graph/explore.js.map +1 -0
  160. package/dist/{harness → kernel/harness}/surface-registry.d.ts +0 -1
  161. package/dist/kernel/harness/surface-registry.js +170 -0
  162. package/dist/kernel/harness/surface-registry.js.map +1 -0
  163. package/dist/{harness → kernel/harness}/validation.js +67 -4
  164. package/dist/kernel/harness/validation.js.map +1 -0
  165. package/dist/kernel/index.d.ts +13 -0
  166. package/dist/kernel/index.js +14 -0
  167. package/dist/kernel/index.js.map +1 -0
  168. package/dist/{install → kernel/install}/adapter-source.d.ts +10 -1
  169. package/dist/kernel/install/adapter-source.js +76 -0
  170. package/dist/kernel/install/adapter-source.js.map +1 -0
  171. package/dist/kernel/install/common.js.map +1 -0
  172. package/dist/{install → kernel/install}/hosts.d.ts +3 -3
  173. package/dist/{install → kernel/install}/hosts.js +3 -22
  174. package/dist/kernel/install/hosts.js.map +1 -0
  175. package/dist/{core/ontology → kernel/install}/types.js.map +1 -1
  176. package/dist/{link → kernel/link}/convention-note.js +2 -2
  177. package/dist/kernel/link/convention-note.js.map +1 -0
  178. package/dist/kernel/link/global-config.js.map +1 -0
  179. package/dist/kernel/link/link.js.map +1 -0
  180. package/dist/kernel/link/workflow.d.ts +55 -0
  181. package/dist/kernel/link/workflow.js +107 -0
  182. package/dist/kernel/link/workflow.js.map +1 -0
  183. package/dist/kernel/measurement/no-default-contract.d.ts +17 -0
  184. package/dist/kernel/measurement/no-default-contract.js +84 -0
  185. package/dist/kernel/measurement/no-default-contract.js.map +1 -0
  186. package/dist/{ontology → kernel/ontology}/active.d.ts +1 -1
  187. package/dist/{ontology → kernel/ontology}/active.js +2 -2
  188. package/dist/kernel/ontology/active.js.map +1 -0
  189. package/dist/kernel/ontology/loader.js.map +1 -0
  190. package/dist/kernel/ontology/resolver.js.map +1 -0
  191. package/dist/{install → kernel/ontology}/types.js.map +1 -1
  192. package/dist/kernel/plugin/index.d.ts +1 -0
  193. package/dist/kernel/plugin/index.js +2 -0
  194. package/dist/kernel/plugin/index.js.map +1 -0
  195. package/dist/{core → kernel}/runtime/assets.d.ts +2 -4
  196. package/dist/{core → kernel}/runtime/assets.js +1 -3
  197. package/dist/kernel/runtime/assets.js.map +1 -0
  198. package/dist/kernel/search/morning-test-fixtures.js.map +1 -0
  199. package/dist/{retrieve → kernel/search}/morning.d.ts +0 -1
  200. package/dist/kernel/search/morning.js.map +1 -0
  201. package/dist/kernel/search/semantic-contract.js.map +1 -0
  202. package/dist/kernel/searchbackend/engine-search-backend.d.ts +28 -0
  203. package/dist/kernel/searchbackend/engine-search-backend.js +153 -0
  204. package/dist/kernel/searchbackend/engine-search-backend.js.map +1 -0
  205. package/dist/kernel/searchbackend/index.d.ts +2 -0
  206. package/dist/kernel/searchbackend/index.js +2 -0
  207. package/dist/kernel/searchbackend/index.js.map +1 -0
  208. package/dist/kernel/searchbackend/search-backend.d.ts +57 -0
  209. package/dist/kernel/searchbackend/search-backend.js +110 -0
  210. package/dist/kernel/searchbackend/search-backend.js.map +1 -0
  211. package/dist/{mcp → kernel/semantic}/semantic-engine.d.ts +3 -2
  212. package/dist/kernel/semantic/semantic-engine.js +78 -0
  213. package/dist/kernel/semantic/semantic-engine.js.map +1 -0
  214. package/dist/{mcp → kernel/semantic}/semantic-retrieve-args.d.ts +20 -3
  215. package/dist/{mcp → kernel/semantic}/semantic-retrieve-args.js +81 -15
  216. package/dist/kernel/semantic/semantic-retrieve-args.js.map +1 -0
  217. package/dist/{mcp → kernel/semantic}/semantic-retrieve-schema.d.ts +0 -24
  218. package/dist/{mcp → kernel/semantic}/semantic-retrieve-schema.js +0 -8
  219. package/dist/kernel/semantic/semantic-retrieve-schema.js.map +1 -0
  220. package/dist/{mcp → kernel/semantic}/semantic-retrieve.js +5 -9
  221. package/dist/kernel/semantic/semantic-retrieve.js.map +1 -0
  222. package/dist/kernel/semantic/semantic-schemas.js.map +1 -0
  223. package/dist/{mcp → kernel/semantic}/semantic-tool-schemas.js +0 -28
  224. package/dist/kernel/semantic/semantic-tool-schemas.js.map +1 -0
  225. package/dist/{setup → kernel/setup}/axis.d.ts +1 -1
  226. package/dist/{setup → kernel/setup}/axis.js +1 -1
  227. package/dist/kernel/setup/axis.js.map +1 -0
  228. package/dist/{cli/setup-documents.d.ts → kernel/setup/documents.d.ts} +1 -1
  229. package/dist/{cli/setup-documents.js → kernel/setup/documents.js} +15 -49
  230. package/dist/kernel/setup/documents.js.map +1 -0
  231. package/dist/kernel/setup/service.d.ts +44 -0
  232. package/dist/kernel/setup/service.js +97 -0
  233. package/dist/kernel/setup/service.js.map +1 -0
  234. package/dist/{update → kernel/update}/update.d.ts +7 -0
  235. package/dist/{update → kernel/update}/update.js +106 -8
  236. package/dist/kernel/update/update.js.map +1 -0
  237. package/dist/mcp/engine-morning-backend.d.ts +4 -4
  238. package/dist/mcp/engine-morning-backend.js +4 -18
  239. package/dist/mcp/engine-morning-backend.js.map +1 -1
  240. package/dist/mcp/link-tools.d.ts +9 -56
  241. package/dist/mcp/link-tools.js +5 -129
  242. package/dist/mcp/link-tools.js.map +1 -1
  243. package/dist/mcp/server.d.ts +9 -2
  244. package/dist/mcp/server.js +373 -324
  245. package/dist/mcp/server.js.map +1 -1
  246. package/dist/mcp/update-notice.d.ts +1 -1
  247. package/dist/mcp/update-notice.js +1 -1
  248. package/dist/mcp/update-notice.js.map +1 -1
  249. package/dist/{install → vendors/claude}/claude-hooks.d.ts +1 -1
  250. package/dist/{install → vendors/claude}/claude-hooks.js +1 -1
  251. package/dist/vendors/claude/claude-hooks.js.map +1 -0
  252. package/dist/{install → vendors/claude}/claude-marketplace.d.ts +3 -3
  253. package/dist/{install → vendors/claude}/claude-marketplace.js +6 -9
  254. package/dist/vendors/claude/claude-marketplace.js.map +1 -0
  255. package/dist/{install → vendors/claude}/claude.d.ts +2 -2
  256. package/dist/{install → vendors/claude}/claude.js +2 -2
  257. package/dist/vendors/claude/claude.js.map +1 -0
  258. package/dist/{hook → vendors/claude/hook}/post-tool-use.js +5 -5
  259. package/dist/vendors/claude/hook/post-tool-use.js.map +1 -0
  260. package/dist/vendors/claude/hook/pre-tool-use.js.map +1 -0
  261. package/dist/vendors/claude/hook/stdin.js.map +1 -0
  262. package/dist/vendors/codex/codex.d.ts +10 -0
  263. package/dist/{install → vendors/codex}/codex.js +19 -37
  264. package/dist/vendors/codex/codex.js.map +1 -0
  265. package/dist/{install → vendors/hermes}/hermes.d.ts +2 -2
  266. package/dist/{install → vendors/hermes}/hermes.js +15 -7
  267. package/dist/vendors/hermes/hermes.js.map +1 -0
  268. package/docs/adapters.md +15 -0
  269. package/docs/install.md +10 -11
  270. package/package.json +23 -10
  271. package/adapters/README.md +0 -99
  272. package/adapters/claude-code/skills/compile/SKILL.md +0 -27
  273. package/adapters/claude-code/skills/define/SKILL.md +0 -51
  274. package/adapters/claude-code/skills/distill/SKILL.md +0 -28
  275. package/adapters/claude-code/skills/doctor/SKILL.md +0 -58
  276. package/adapters/claude-code/skills/link/SKILL.md +0 -87
  277. package/adapters/claude-code/skills/retrieve/SKILL.md +0 -99
  278. package/adapters/claude-code/skills/setup/SKILL.md +0 -78
  279. package/adapters/claude-code/skills/uninstall/SKILL.md +0 -34
  280. package/adapters/claude-code/skills/update/SKILL.md +0 -45
  281. package/adapters/claude-code/skills/vault-decision-record/SKILL.md +0 -52
  282. package/adapters/claude-code/skills/vault-lint/SKILL.md +0 -47
  283. package/adapters/claude-code/skills/vault-scaffold/SKILL.md +0 -47
  284. package/adapters/claude-code/skills/wiki/SKILL.md +0 -82
  285. package/adapters/claude-code/skills/write/SKILL.md +0 -16
  286. package/adapters/codex/skills/oms-compile/SKILL.md +0 -16
  287. package/adapters/codex/skills/oms-distill/SKILL.md +0 -14
  288. package/adapters/codex/skills/oms-doctor/SKILL.md +0 -14
  289. package/adapters/codex/skills/oms-install/SKILL.md +0 -19
  290. package/adapters/codex/skills/oms-link/SKILL.md +0 -35
  291. package/adapters/codex/skills/oms-retrieve/SKILL.md +0 -32
  292. package/adapters/codex/skills/oms-setup/SKILL.md +0 -34
  293. package/adapters/codex/skills/oms-uninstall/SKILL.md +0 -20
  294. package/adapters/codex/skills/oms-update/SKILL.md +0 -22
  295. package/adapters/codex/skills/oms-vault-lint/SKILL.md +0 -19
  296. package/adapters/codex/skills/oms-wiki/SKILL.md +0 -39
  297. package/adapters/codex/skills/oms-write/SKILL.md +0 -10
  298. package/adapters/hermes/skills/compile/SKILL.md +0 -13
  299. package/adapters/hermes/skills/distill/SKILL.md +0 -10
  300. package/adapters/hermes/skills/doctor/SKILL.md +0 -14
  301. package/adapters/hermes/skills/install/SKILL.md +0 -19
  302. package/adapters/hermes/skills/link/SKILL.md +0 -18
  303. package/adapters/hermes/skills/retrieve/SKILL.md +0 -32
  304. package/adapters/hermes/skills/setup/SKILL.md +0 -37
  305. package/adapters/hermes/skills/uninstall/SKILL.md +0 -20
  306. package/adapters/hermes/skills/update/SKILL.md +0 -22
  307. package/adapters/hermes/skills/wiki/SKILL.md +0 -14
  308. package/adapters/hermes/skills/write/SKILL.md +0 -10
  309. package/core/agents/librarian.md +0 -44
  310. package/core/agents/retriever.md +0 -62
  311. package/core/skills/compile/CHANGELOG.md +0 -24
  312. package/core/skills/compile/SKILL.md +0 -57
  313. package/core/skills/define/SKILL.md +0 -59
  314. package/core/skills/distill/CHANGELOG.md +0 -39
  315. package/core/skills/distill/SKILL.md +0 -62
  316. package/core/skills/doctor/SKILL.md +0 -49
  317. package/core/skills/link/SKILL.md +0 -130
  318. package/core/skills/retrieve/SKILL.md +0 -78
  319. package/core/skills/setup/CHANGELOG.md +0 -49
  320. package/core/skills/setup/SKILL.md +0 -246
  321. package/core/skills/uninstall/SKILL.md +0 -34
  322. package/core/skills/vault-decision-record/CHANGELOG.md +0 -24
  323. package/core/skills/vault-decision-record/SKILL.md +0 -93
  324. package/core/skills/vault-lint/CHANGELOG.md +0 -35
  325. package/core/skills/vault-lint/SKILL.md +0 -58
  326. package/core/skills/vault-scaffold/CHANGELOG.md +0 -21
  327. package/core/skills/vault-scaffold/SKILL.md +0 -72
  328. package/core/skills/wiki/CHANGELOG.md +0 -23
  329. package/core/skills/wiki/SKILL.md +0 -159
  330. package/core/skills/write/SKILL.md +0 -15
  331. package/dist/capture/safe.js.map +0 -1
  332. package/dist/cli/setup-documents.js.map +0 -1
  333. package/dist/conventions/frontmatter.js.map +0 -1
  334. package/dist/conventions/lint.js.map +0 -1
  335. package/dist/conventions/report.js.map +0 -1
  336. package/dist/conventions/validate.js.map +0 -1
  337. package/dist/conventions/vault-walk.js.map +0 -1
  338. package/dist/conventions/write-contract.js.map +0 -1
  339. package/dist/conventions/write-protocol.js.map +0 -1
  340. package/dist/core/ontology/loader.js.map +0 -1
  341. package/dist/core/ontology/resolver.js.map +0 -1
  342. package/dist/core/runtime/assets.js.map +0 -1
  343. package/dist/engine/assemble.js +0 -162
  344. package/dist/engine/assemble.js.map +0 -1
  345. package/dist/engine/conventions/vault-lint.js.map +0 -1
  346. package/dist/engine/embed/chunker.js.map +0 -1
  347. package/dist/engine/embed/deferred.js.map +0 -1
  348. package/dist/engine/embed/hash-stub.test-helper.js.map +0 -1
  349. package/dist/engine/embed/identity.d.ts +0 -11
  350. package/dist/engine/embed/identity.js +0 -15
  351. package/dist/engine/embed/identity.js.map +0 -1
  352. package/dist/engine/embed/provider.js +0 -266
  353. package/dist/engine/embed/provider.js.map +0 -1
  354. package/dist/engine/embed/store.js +0 -416
  355. package/dist/engine/embed/store.js.map +0 -1
  356. package/dist/engine/embed/sync.d.ts +0 -45
  357. package/dist/engine/embed/sync.js +0 -321
  358. package/dist/engine/embed/sync.js.map +0 -1
  359. package/dist/engine/graph/builder.js.map +0 -1
  360. package/dist/engine/graph/explore.js.map +0 -1
  361. package/dist/engine/graph/node.js +0 -110
  362. package/dist/engine/graph/node.js.map +0 -1
  363. package/dist/engine/graph/resolver.js.map +0 -1
  364. package/dist/engine/graph/traverse.js.map +0 -1
  365. package/dist/engine/linkify/apply.js.map +0 -1
  366. package/dist/engine/linkify/josa.js.map +0 -1
  367. package/dist/engine/linkify/mask.js.map +0 -1
  368. package/dist/engine/linkify/suggest.js.map +0 -1
  369. package/dist/engine/linkify/types.js.map +0 -1
  370. package/dist/engine/mcp/facade.js +0 -628
  371. package/dist/engine/mcp/facade.js.map +0 -1
  372. package/dist/engine/mcp/op-mappers.js.map +0 -1
  373. package/dist/engine/mcp/query-mapper.js +0 -102
  374. package/dist/engine/mcp/query-mapper.js.map +0 -1
  375. package/dist/engine/mcp/types.js.map +0 -1
  376. package/dist/engine/retrieval/dispatcher.js.map +0 -1
  377. package/dist/engine/retrieval/index.js.map +0 -1
  378. package/dist/engine/retrieval/reranker.d.ts +0 -46
  379. package/dist/engine/retrieval/reranker.js +0 -29
  380. package/dist/engine/retrieval/reranker.js.map +0 -1
  381. package/dist/engine/retrieval/rrf.js +0 -54
  382. package/dist/engine/retrieval/rrf.js.map +0 -1
  383. package/dist/engine/tracer.js.map +0 -1
  384. package/dist/engine/types.js.map +0 -1
  385. package/dist/graph/cache.js.map +0 -1
  386. package/dist/graph/explore.js.map +0 -1
  387. package/dist/harness/surface-registry.js +0 -397
  388. package/dist/harness/surface-registry.js.map +0 -1
  389. package/dist/harness/validation.js.map +0 -1
  390. package/dist/hook/post-tool-use.js.map +0 -1
  391. package/dist/hook/pre-tool-use.js.map +0 -1
  392. package/dist/hook/stdin.js.map +0 -1
  393. package/dist/index.d.ts +0 -12
  394. package/dist/index.js +0 -13
  395. package/dist/index.js.map +0 -1
  396. package/dist/install/adapter-source.js +0 -45
  397. package/dist/install/adapter-source.js.map +0 -1
  398. package/dist/install/claude-hooks.js.map +0 -1
  399. package/dist/install/claude-marketplace.js.map +0 -1
  400. package/dist/install/claude.js.map +0 -1
  401. package/dist/install/codex.d.ts +0 -24
  402. package/dist/install/codex.js.map +0 -1
  403. package/dist/install/common.js.map +0 -1
  404. package/dist/install/hermes.js.map +0 -1
  405. package/dist/install/hosts.js.map +0 -1
  406. package/dist/link/convention-note.js.map +0 -1
  407. package/dist/link/global-config.js.map +0 -1
  408. package/dist/link/link.js.map +0 -1
  409. package/dist/mcp/semantic-engine.js +0 -52
  410. package/dist/mcp/semantic-engine.js.map +0 -1
  411. package/dist/mcp/semantic-retrieve-args.js.map +0 -1
  412. package/dist/mcp/semantic-retrieve-schema.js.map +0 -1
  413. package/dist/mcp/semantic-retrieve.js.map +0 -1
  414. package/dist/mcp/semantic-schemas.js.map +0 -1
  415. package/dist/mcp/semantic-tool-schemas.js.map +0 -1
  416. package/dist/ontology/active.js.map +0 -1
  417. package/dist/retrieve/morning-test-fixtures.js.map +0 -1
  418. package/dist/retrieve/morning.js.map +0 -1
  419. package/dist/retrieve/semantic-contract.js.map +0 -1
  420. package/dist/setup/axis.js.map +0 -1
  421. package/dist/update/update.js.map +0 -1
  422. package/docs/release.md +0 -188
  423. /package/{adapters/codex/.mcp.json → .mcp.codex.json} +0 -0
  424. /package/{adapters/claude-code/.mcp.json → .mcp.json} +0 -0
  425. /package/{adapters/claude-code → assets/claude}/hooks/oms-guard.mjs +0 -0
  426. /package/{adapters/claude-code → assets/claude}/hooks/oms-post-guard.mjs +0 -0
  427. /package/dist/{conventions → kernel/conventions}/frontmatter.d.ts +0 -0
  428. /package/dist/{conventions → kernel/conventions}/frontmatter.js +0 -0
  429. /package/dist/{conventions → kernel/conventions}/lint.d.ts +0 -0
  430. /package/dist/{conventions → kernel/conventions}/lint.js +0 -0
  431. /package/dist/{conventions → kernel/conventions}/report.d.ts +0 -0
  432. /package/dist/{conventions → kernel/conventions}/report.js +0 -0
  433. /package/dist/{conventions → kernel/conventions}/validate.js +0 -0
  434. /package/dist/{conventions → kernel/conventions}/vault-walk.d.ts +0 -0
  435. /package/dist/{conventions → kernel/conventions}/vault-walk.js +0 -0
  436. /package/dist/{conventions → kernel/conventions}/write-contract.js +0 -0
  437. /package/dist/{conventions → kernel/conventions}/write-protocol.d.ts +0 -0
  438. /package/dist/{conventions → kernel/conventions}/write-protocol.js +0 -0
  439. /package/dist/{engine → kernel/engine}/embed/chunker.d.ts +0 -0
  440. /package/dist/{engine → kernel/engine}/embed/chunker.js +0 -0
  441. /package/dist/{engine → kernel/engine}/embed/deferred.d.ts +0 -0
  442. /package/dist/{engine → kernel/engine}/embed/deferred.js +0 -0
  443. /package/dist/{engine → kernel/engine}/graph/explore.d.ts +0 -0
  444. /package/dist/{engine → kernel/engine}/graph/explore.js +0 -0
  445. /package/dist/{engine → kernel/engine}/graph/resolver.d.ts +0 -0
  446. /package/dist/{engine → kernel/engine}/graph/resolver.js +0 -0
  447. /package/dist/{engine → kernel/engine}/graph/traverse.d.ts +0 -0
  448. /package/dist/{engine → kernel/engine}/graph/traverse.js +0 -0
  449. /package/dist/{engine → kernel/engine}/linkify/apply.d.ts +0 -0
  450. /package/dist/{engine → kernel/engine}/linkify/apply.js +0 -0
  451. /package/dist/{engine → kernel/engine}/linkify/josa.d.ts +0 -0
  452. /package/dist/{engine → kernel/engine}/linkify/josa.js +0 -0
  453. /package/dist/{engine → kernel/engine}/linkify/mask.d.ts +0 -0
  454. /package/dist/{engine → kernel/engine}/linkify/mask.js +0 -0
  455. /package/dist/{engine → kernel/engine}/linkify/suggest.d.ts +0 -0
  456. /package/dist/{engine → kernel/engine}/linkify/suggest.js +0 -0
  457. /package/dist/{engine → kernel/engine}/linkify/types.d.ts +0 -0
  458. /package/dist/{engine → kernel/engine}/linkify/types.js +0 -0
  459. /package/dist/{engine → kernel/engine}/mcp/op-mappers.d.ts +0 -0
  460. /package/dist/{engine → kernel/engine}/mcp/op-mappers.js +0 -0
  461. /package/dist/{engine → kernel/engine}/mcp/types.js +0 -0
  462. /package/dist/{engine → kernel/engine}/types.js +0 -0
  463. /package/dist/{graph → kernel/graph}/explore.d.ts +0 -0
  464. /package/dist/{graph → kernel/graph}/explore.js +0 -0
  465. /package/dist/{harness → kernel/harness}/validation.d.ts +0 -0
  466. /package/dist/{install → kernel/install}/common.d.ts +0 -0
  467. /package/dist/{install → kernel/install}/common.js +0 -0
  468. /package/dist/{install → kernel/install}/types.d.ts +0 -0
  469. /package/dist/{core/ontology → kernel/install}/types.js +0 -0
  470. /package/dist/{link → kernel/link}/convention-note.d.ts +0 -0
  471. /package/dist/{link → kernel/link}/global-config.d.ts +0 -0
  472. /package/dist/{link → kernel/link}/global-config.js +0 -0
  473. /package/dist/{link → kernel/link}/link.d.ts +0 -0
  474. /package/dist/{link → kernel/link}/link.js +0 -0
  475. /package/dist/{core → kernel}/ontology/loader.d.ts +0 -0
  476. /package/dist/{core → kernel}/ontology/loader.js +0 -0
  477. /package/dist/{core → kernel}/ontology/resolver.d.ts +0 -0
  478. /package/dist/{core → kernel}/ontology/resolver.js +0 -0
  479. /package/dist/{core → kernel}/ontology/types.d.ts +0 -0
  480. /package/dist/{install → kernel/ontology}/types.js +0 -0
  481. /package/dist/{retrieve → kernel/search}/morning-test-fixtures.d.ts +0 -0
  482. /package/dist/{retrieve → kernel/search}/morning-test-fixtures.js +0 -0
  483. /package/dist/{retrieve → kernel/search}/morning.js +0 -0
  484. /package/dist/{retrieve → kernel/search}/semantic-contract.d.ts +0 -0
  485. /package/dist/{retrieve → kernel/search}/semantic-contract.js +0 -0
  486. /package/dist/{mcp → kernel/semantic}/semantic-retrieve.d.ts +0 -0
  487. /package/dist/{mcp → kernel/semantic}/semantic-schemas.d.ts +0 -0
  488. /package/dist/{mcp → kernel/semantic}/semantic-schemas.js +0 -0
  489. /package/dist/{mcp → kernel/semantic}/semantic-tool-schemas.d.ts +0 -0
  490. /package/dist/{hook → vendors/claude/hook}/post-tool-use.d.ts +0 -0
  491. /package/dist/{hook → vendors/claude/hook}/pre-tool-use.d.ts +0 -0
  492. /package/dist/{hook → vendors/claude/hook}/pre-tool-use.js +0 -0
  493. /package/dist/{hook → vendors/claude/hook}/stdin.d.ts +0 -0
  494. /package/dist/{hook → vendors/claude/hook}/stdin.js +0 -0
@@ -0,0 +1,483 @@
1
+ /**
2
+ * Assemble — production wiring for the OMS engine.
3
+ *
4
+ * This module owns the construction of the engine's McpEngineAdapter and its
5
+ * injected backend dependencies.
6
+ *
7
+ * RALPLAN constraints (approved):
8
+ * - No silent fallback for vec/HyDE.
9
+ * - Explicit embedding configuration: OMS_EMBEDDING_PROVIDER + OMS_EMBEDDING_MODEL.
10
+ * - Lex-only semantic queries must remain usable without embedding configuration.
11
+ */
12
+ import { requireRealEmbeddingProvider } from "./embed/provider.js";
13
+ import { EMBEDDING_MODEL_ENV, EMBEDDING_PROVIDER_ENV, resolveEmbeddingModel, } from "./embed/model.js";
14
+ import { openEngineStore, openEngineStoreCore, openInMemoryEngineStoreCore, openEngineStoreCoreReadOnly, openEngineStoreReadOnly, } from "./embed/store.js";
15
+ import { makeEmbeddingIdentity } from "./embed/identity.js";
16
+ import { syncEngineStore } from "./embed/sync.js";
17
+ import { McpEngineAdapter } from "./mcp/facade.js";
18
+ import { makeDeferredProvider, makeDeferredStore } from "./embed/deferred.js";
19
+ function embeddingIdentitiesMatch(stored, configured) {
20
+ return stored.provider === configured.provider &&
21
+ stored.model === configured.model &&
22
+ stored.dimensions === configured.dimensions &&
23
+ stored.contextLength === configured.contextLength &&
24
+ stored.mrlDim === configured.mrlDim &&
25
+ stored.normalization === configured.normalization &&
26
+ stored.prefixScheme === configured.prefixScheme &&
27
+ stored.fingerprint === configured.fingerprint;
28
+ }
29
+ function validateEmbeddingDescriptor(descriptor, overrides = {}) {
30
+ const dimensions = overrides.embeddingDimensions ?? descriptor.dimensions;
31
+ const context = overrides.embeddingContext ??
32
+ overrides.embeddingContextLength ??
33
+ overrides.embeddingContextTokens ??
34
+ descriptor.context ??
35
+ descriptor.contextLength ??
36
+ descriptor.contextTokens;
37
+ const mrlDim = overrides.embeddingMrlDim ?? descriptor.mrlDim;
38
+ const normalization = overrides.embeddingNormalization ?? descriptor.normalization;
39
+ const prefixScheme = overrides.embeddingPrefixScheme ?? descriptor.prefixScheme;
40
+ if (dimensions === undefined ||
41
+ context === undefined ||
42
+ mrlDim === undefined ||
43
+ !normalization?.trim() ||
44
+ !prefixScheme?.trim()) {
45
+ throw new Error("Embedding descriptor is incomplete. dimensions/context/mrlDim/normalization/prefixScheme are required.");
46
+ }
47
+ if (!Number.isInteger(dimensions) || dimensions <= 0) {
48
+ throw new Error("Embedding descriptor dimensions must be a positive integer.");
49
+ }
50
+ if (!Number.isInteger(context) || context <= 0) {
51
+ throw new Error("Embedding descriptor context must be a positive integer.");
52
+ }
53
+ if (!Number.isInteger(mrlDim) || mrlDim < 0) {
54
+ throw new Error("Embedding descriptor mrlDim must be a non-negative integer.");
55
+ }
56
+ }
57
+ function resolvedEmbeddingConfig(config) {
58
+ const hasExplicitConfig = config.embeddingProvider !== undefined || config.embeddingModel !== undefined;
59
+ const resolution = resolveEmbeddingModel({
60
+ env: hasExplicitConfig
61
+ ? {
62
+ [EMBEDDING_PROVIDER_ENV]: config.embeddingProvider,
63
+ [EMBEDDING_MODEL_ENV]: config.embeddingModel,
64
+ }
65
+ : process.env,
66
+ ...(config.embeddingDescriptor !== undefined
67
+ ? { installedDefault: config.embeddingDescriptor }
68
+ : {}),
69
+ ...(config.embeddingCacheDir !== undefined ? { cacheDir: config.embeddingCacheDir } : {}),
70
+ });
71
+ if (!resolution.available)
72
+ return {};
73
+ const descriptor = config.embeddingDescriptor === null
74
+ ? undefined
75
+ : config.embeddingDescriptor ?? resolution.descriptor;
76
+ if (descriptor !== undefined) {
77
+ if (hasExplicitConfig) {
78
+ const descriptorModel = descriptor.path || descriptor.modelPath || descriptor.model;
79
+ const resolvedModel = resolution.modelPath ?? resolution.model;
80
+ if (descriptor.provider.trim() !== resolution.provider?.trim() ||
81
+ (descriptorModel.trim() !== resolvedModel?.trim() && descriptor.model.trim() !== resolvedModel?.trim())) {
82
+ throw new Error("Embedding descriptor does not match the configured provider/model.");
83
+ }
84
+ }
85
+ validateEmbeddingDescriptor(descriptor, config);
86
+ }
87
+ return {
88
+ provider: resolution.provider,
89
+ model: resolution.modelPath ?? resolution.model,
90
+ ...(descriptor !== undefined ? { descriptor } : {}),
91
+ ...((config.embeddingDimensions ?? descriptor?.dimensions) !== undefined
92
+ ? { dimensions: config.embeddingDimensions ?? descriptor?.dimensions }
93
+ : {}),
94
+ ...((config.embeddingContext ?? descriptor?.context) !== undefined
95
+ ? { context: config.embeddingContext ?? descriptor?.context }
96
+ : {}),
97
+ ...((config.embeddingContextLength ?? descriptor?.contextLength) !== undefined
98
+ ? { contextLength: config.embeddingContextLength ?? descriptor?.contextLength }
99
+ : {}),
100
+ ...((config.embeddingContextTokens ?? descriptor?.contextTokens) !== undefined
101
+ ? { contextTokens: config.embeddingContextTokens ?? descriptor?.contextTokens }
102
+ : {}),
103
+ ...((config.embeddingMrlDim ?? descriptor?.mrlDim) !== undefined
104
+ ? { mrlDim: config.embeddingMrlDim ?? descriptor?.mrlDim }
105
+ : {}),
106
+ ...((config.embeddingNormalization ?? descriptor?.normalization) !== undefined
107
+ ? { normalization: config.embeddingNormalization ?? descriptor?.normalization }
108
+ : {}),
109
+ ...((config.embeddingPrefixScheme ?? descriptor?.prefixScheme) !== undefined
110
+ ? { prefixScheme: config.embeddingPrefixScheme ?? descriptor?.prefixScheme }
111
+ : {}),
112
+ };
113
+ }
114
+ /**
115
+ * Assemble a semantic-capable engine with a REAL embedding provider.
116
+ *
117
+ * This is the production semantic engine. It requires explicit embedding
118
+ * configuration and never fabricates vectors.
119
+ */
120
+ export function assembleEngine(config) {
121
+ const vault = config.vault;
122
+ const dbPath = config.dbPath ?? `${vault}/.oms/engine-store.sqlite`;
123
+ const embedding = resolvedEmbeddingConfig(config);
124
+ const provider = requireRealEmbeddingProvider({
125
+ provider: embedding.provider,
126
+ model: embedding.model,
127
+ dimensions: embedding.dimensions,
128
+ context: embedding.context,
129
+ contextLength: embedding.contextLength,
130
+ contextTokens: embedding.contextTokens,
131
+ mrlDim: embedding.mrlDim,
132
+ normalization: embedding.normalization,
133
+ prefixScheme: embedding.prefixScheme,
134
+ });
135
+ let activeStore = openEngineStore(dbPath, provider.dimensions);
136
+ const deps = {
137
+ store: activeStore,
138
+ embed: provider,
139
+ ...(config.rrfK !== undefined ? { rrfK: config.rrfK } : {}),
140
+ ...(config.policy !== undefined ? { policy: config.policy } : {}),
141
+ ...(config.graphDepth !== undefined ? { graphDepth: config.graphDepth } : {}),
142
+ };
143
+ const adapter = new McpEngineAdapter(deps, vault, {
144
+ embeddingProvider: embedding.provider,
145
+ embeddingModel: embedding.model,
146
+ embeddingDescriptor: embedding.descriptor,
147
+ embeddingDimensions: embedding.dimensions,
148
+ embeddingContext: embedding.context,
149
+ embeddingContextLength: embedding.contextLength,
150
+ embeddingContextTokens: embedding.contextTokens,
151
+ embeddingMrlDim: embedding.mrlDim,
152
+ embeddingNormalization: embedding.normalization,
153
+ embeddingPrefixScheme: embedding.prefixScheme,
154
+ dbPath,
155
+ onStoreRebind: (store) => {
156
+ activeStore = store;
157
+ },
158
+ }, config.reranker, true);
159
+ const assembled = {
160
+ adapter,
161
+ deps,
162
+ get store() {
163
+ return activeStore;
164
+ },
165
+ provider,
166
+ implicitLexicalSync: true,
167
+ async syncVault(opts = {}) {
168
+ let swapHandleClosed = false;
169
+ const result = await syncEngineStore({
170
+ vault,
171
+ dbPath,
172
+ collectionPath: opts.collectionPath,
173
+ embed: opts.embed,
174
+ force: opts.force,
175
+ embeddingProvider: embedding.provider,
176
+ embeddingModel: embedding.model,
177
+ embeddingDescriptor: embedding.descriptor,
178
+ embeddingDimensions: embedding.dimensions,
179
+ embeddingContext: embedding.context,
180
+ embeddingContextLength: embedding.contextLength,
181
+ embeddingContextTokens: embedding.contextTokens,
182
+ embeddingMrlDim: embedding.mrlDim,
183
+ embeddingNormalization: embedding.normalization,
184
+ embeddingPrefixScheme: embedding.prefixScheme,
185
+ onGenerationSwapPrepare: () => {
186
+ // Close the long-lived assembly handle before the active
187
+ // generation's WAL/SHM sidecars are removed.
188
+ swapHandleClosed = true;
189
+ activeStore.close();
190
+ },
191
+ onGenerationSwapComplete: () => {
192
+ if (!swapHandleClosed)
193
+ return;
194
+ activeStore = openEngineStore(dbPath, provider.dimensions);
195
+ deps.store = activeStore;
196
+ swapHandleClosed = false;
197
+ },
198
+ });
199
+ return {
200
+ scanned: result.scanned,
201
+ added: result.added,
202
+ updated: result.updated,
203
+ skipped: result.skipped,
204
+ available: result.available,
205
+ reason: result.reason,
206
+ generationSwapped: result.generationSwapped,
207
+ };
208
+ },
209
+ async dispose() {
210
+ await provider.dispose().catch(() => undefined);
211
+ activeStore.close();
212
+ },
213
+ };
214
+ return assembled;
215
+ }
216
+ /**
217
+ * Assemble a CORE-ONLY semantic engine.
218
+ *
219
+ * This engine opens the sqlite store in core-only mode and wires a deferred
220
+ * embedder. It enables lex-only semantic operations without embedding config.
221
+ * vec/HyDE operations will fail (embed() throws; vecAvailable is false).
222
+ */
223
+ export function assembleCoreSemanticEngine(config) {
224
+ const vault = config.vault;
225
+ const dbPath = config.dbPath ?? `${vault}/.oms/engine-store.sqlite`;
226
+ const provider = makeDeferredProvider();
227
+ const store = openEngineStoreCore(dbPath);
228
+ const deps = {
229
+ store,
230
+ embed: provider,
231
+ ...(config.rrfK !== undefined ? { rrfK: config.rrfK } : {}),
232
+ ...(config.policy !== undefined ? { policy: config.policy } : {}),
233
+ ...(config.graphDepth !== undefined ? { graphDepth: config.graphDepth } : {}),
234
+ };
235
+ const adapter = new McpEngineAdapter(deps, vault, {
236
+ embeddingProvider: config.embeddingProvider,
237
+ embeddingModel: config.embeddingModel,
238
+ }, config.reranker, true);
239
+ return {
240
+ adapter,
241
+ deps,
242
+ store,
243
+ provider,
244
+ implicitLexicalSync: true,
245
+ async syncVault(opts = {}) {
246
+ const result = await syncEngineStore({
247
+ vault,
248
+ dbPath,
249
+ collectionPath: opts.collectionPath,
250
+ embed: opts.embed,
251
+ force: opts.force,
252
+ embeddingProvider: config.embeddingProvider,
253
+ embeddingModel: config.embeddingModel,
254
+ });
255
+ return {
256
+ scanned: result.scanned,
257
+ added: result.added,
258
+ updated: result.updated,
259
+ skipped: result.skipped,
260
+ available: result.available,
261
+ reason: result.reason,
262
+ };
263
+ },
264
+ async dispose() {
265
+ await provider.dispose().catch(() => undefined);
266
+ store.close();
267
+ },
268
+ };
269
+ }
270
+ /**
271
+ * Assemble a core-only semantic engine whose lexical index is process-local.
272
+ * Lex-only queries populate this store on demand without touching the vault.
273
+ */
274
+ export function assembleEphemeralCoreSemanticEngine(config) {
275
+ const vault = config.vault;
276
+ const provider = makeDeferredProvider();
277
+ const store = openInMemoryEngineStoreCore();
278
+ const deps = {
279
+ store,
280
+ embed: provider,
281
+ ...(config.rrfK !== undefined ? { rrfK: config.rrfK } : {}),
282
+ ...(config.policy !== undefined ? { policy: config.policy } : {}),
283
+ ...(config.graphDepth !== undefined ? { graphDepth: config.graphDepth } : {}),
284
+ };
285
+ const adapter = new McpEngineAdapter(deps, vault, {
286
+ embeddingProvider: config.embeddingProvider,
287
+ embeddingModel: config.embeddingModel,
288
+ }, config.reranker, true, false);
289
+ return {
290
+ adapter,
291
+ deps,
292
+ store,
293
+ provider,
294
+ implicitLexicalSync: true,
295
+ async syncVault(opts = {}) {
296
+ const result = await syncEngineStore({
297
+ vault,
298
+ collectionPath: opts.collectionPath,
299
+ embed: false,
300
+ force: opts.force,
301
+ embeddingProvider: config.embeddingProvider,
302
+ embeddingModel: config.embeddingModel,
303
+ store,
304
+ });
305
+ return {
306
+ scanned: result.scanned,
307
+ added: result.added,
308
+ updated: result.updated,
309
+ skipped: result.skipped,
310
+ available: result.available,
311
+ reason: result.reason,
312
+ };
313
+ },
314
+ async dispose() {
315
+ await provider.dispose().catch(() => undefined);
316
+ store.close();
317
+ },
318
+ };
319
+ }
320
+ /**
321
+ * Assemble an existing CORE-ONLY semantic engine without creating a store.
322
+ * Returns null when the semantic index is absent or cannot be read safely.
323
+ */
324
+ export function assembleCoreSemanticEngineReadOnly(config) {
325
+ const vault = config.vault;
326
+ const dbPath = config.dbPath ?? `${vault}/.oms/engine-store.sqlite`;
327
+ const provider = makeDeferredProvider();
328
+ const store = openEngineStoreCoreReadOnly(dbPath);
329
+ if (store === null) {
330
+ void provider.dispose().catch(() => undefined);
331
+ return null;
332
+ }
333
+ const deps = {
334
+ store,
335
+ embed: provider,
336
+ ...(config.rrfK !== undefined ? { rrfK: config.rrfK } : {}),
337
+ ...(config.policy !== undefined ? { policy: config.policy } : {}),
338
+ ...(config.graphDepth !== undefined ? { graphDepth: config.graphDepth } : {}),
339
+ };
340
+ const adapter = new McpEngineAdapter(deps, vault, {
341
+ embeddingProvider: config.embeddingProvider,
342
+ embeddingModel: config.embeddingModel,
343
+ }, config.reranker, false);
344
+ return {
345
+ adapter,
346
+ deps,
347
+ store,
348
+ provider,
349
+ implicitLexicalSync: false,
350
+ async syncVault() {
351
+ throw new Error("AssembledEngine: syncVault is unavailable because the store is open read-only.");
352
+ },
353
+ async dispose() {
354
+ await provider.dispose().catch(() => undefined);
355
+ store.close();
356
+ },
357
+ };
358
+ }
359
+ /**
360
+ * Assemble an existing vector-capable semantic engine without creating a store.
361
+ * Returns null when the semantic index is absent or cannot be read safely.
362
+ */
363
+ export function assembleEngineReadOnly(config) {
364
+ const vault = config.vault;
365
+ const dbPath = config.dbPath ?? `${vault}/.oms/engine-store.sqlite`;
366
+ const embedding = resolvedEmbeddingConfig(config);
367
+ // The readonly store opener does not use dimensions. Open it before loading
368
+ // the configured provider so an absent index is always an unavailable result.
369
+ const store = openEngineStoreReadOnly(dbPath, 0);
370
+ if (store === null)
371
+ return null;
372
+ let configuredIdentity;
373
+ try {
374
+ configuredIdentity = makeEmbeddingIdentity({
375
+ provider: embedding.provider ?? "",
376
+ model: embedding.model ?? "",
377
+ dimensions: embedding.dimensions ?? 0,
378
+ contextLength: embedding.contextLength ?? embedding.contextTokens ?? embedding.context ?? 0,
379
+ mrlDim: embedding.mrlDim ?? -1,
380
+ normalization: embedding.normalization ?? "",
381
+ prefixScheme: embedding.prefixScheme ?? "",
382
+ });
383
+ const storedIdentity = store.readEmbeddingIdentity();
384
+ if (storedIdentity !== null && !embeddingIdentitiesMatch(storedIdentity, configuredIdentity)) {
385
+ throw new Error(`Embedding identity mismatch for read-only store: stored ${storedIdentity.provider}/${storedIdentity.model} does not match configured ${configuredIdentity.provider}/${configuredIdentity.model}.`);
386
+ }
387
+ }
388
+ catch (error) {
389
+ store.close();
390
+ throw error;
391
+ }
392
+ let provider;
393
+ try {
394
+ provider = requireRealEmbeddingProvider({
395
+ provider: embedding.provider,
396
+ model: embedding.model,
397
+ dimensions: embedding.dimensions,
398
+ context: embedding.context,
399
+ contextLength: embedding.contextLength,
400
+ contextTokens: embedding.contextTokens,
401
+ mrlDim: embedding.mrlDim,
402
+ normalization: embedding.normalization,
403
+ prefixScheme: embedding.prefixScheme,
404
+ });
405
+ }
406
+ catch (error) {
407
+ store.close();
408
+ throw error;
409
+ }
410
+ const deps = {
411
+ store,
412
+ embed: provider,
413
+ ...(config.rrfK !== undefined ? { rrfK: config.rrfK } : {}),
414
+ ...(config.policy !== undefined ? { policy: config.policy } : {}),
415
+ ...(config.graphDepth !== undefined ? { graphDepth: config.graphDepth } : {}),
416
+ };
417
+ const adapter = new McpEngineAdapter(deps, vault, {
418
+ embeddingProvider: embedding.provider,
419
+ embeddingModel: embedding.model,
420
+ embeddingDescriptor: embedding.descriptor,
421
+ embeddingDimensions: embedding.dimensions,
422
+ embeddingContext: embedding.context,
423
+ embeddingContextLength: embedding.contextLength,
424
+ embeddingContextTokens: embedding.contextTokens,
425
+ embeddingMrlDim: embedding.mrlDim,
426
+ embeddingNormalization: embedding.normalization,
427
+ embeddingPrefixScheme: embedding.prefixScheme,
428
+ dbPath,
429
+ }, config.reranker, false);
430
+ return {
431
+ adapter,
432
+ deps,
433
+ store,
434
+ provider,
435
+ implicitLexicalSync: false,
436
+ async syncVault() {
437
+ throw new Error("AssembledEngine: syncVault is unavailable because the store is open read-only.");
438
+ },
439
+ async dispose() {
440
+ await provider.dispose().catch(() => undefined);
441
+ store.close();
442
+ },
443
+ };
444
+ }
445
+ /**
446
+ * Assemble a GRAPH-ONLY engine: graph ops run model-free; semantic store/embed
447
+ * are throw-on-use guards.
448
+ */
449
+ export function assembleGraphOnlyEngine(config) {
450
+ const vault = config.vault;
451
+ const provider = makeDeferredProvider();
452
+ const store = makeDeferredStore();
453
+ const deps = {
454
+ store,
455
+ embed: provider,
456
+ ...(config.rrfK !== undefined ? { rrfK: config.rrfK } : {}),
457
+ ...(config.policy !== undefined ? { policy: config.policy } : {}),
458
+ ...(config.graphDepth !== undefined ? { graphDepth: config.graphDepth } : {}),
459
+ };
460
+ const adapter = new McpEngineAdapter(deps, vault, undefined, config.reranker, false);
461
+ return {
462
+ adapter,
463
+ deps,
464
+ store,
465
+ provider,
466
+ implicitLexicalSync: false,
467
+ async syncVault() {
468
+ return {
469
+ scanned: 0,
470
+ added: 0,
471
+ updated: 0,
472
+ skipped: 0,
473
+ available: false,
474
+ reason: "graph-only engine: embedding sync requires an explicit embedding provider/model.",
475
+ };
476
+ },
477
+ async dispose() {
478
+ await provider.dispose().catch(() => undefined);
479
+ store.close();
480
+ },
481
+ };
482
+ }
483
+ //# sourceMappingURL=assemble.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assemble.js","sourceRoot":"","sources":["../../../src/kernel/engine/assemble.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ export type AxisKind = "folder" | "field" | "link";
2
+ export type AxisValueType = "string" | "number" | "boolean" | "date";
3
+ export type AxisValue = string | number | boolean | Date;
4
+ export interface AxisObservation {
5
+ readonly notePath: string;
6
+ readonly axisKind: AxisKind;
7
+ readonly axisKey: string;
8
+ readonly value: AxisValue;
9
+ readonly valueType: AxisValueType;
10
+ /** Canonical lookup value; strings are trimmed and case-folded. */
11
+ readonly normalizedValue: string;
12
+ readonly count: number;
13
+ }
14
+ export interface AxisObservationInput {
15
+ readonly notePath: string;
16
+ readonly axisKind?: AxisKind;
17
+ readonly axisKey: string;
18
+ readonly value: unknown;
19
+ }
20
+ export interface AxisFacet {
21
+ readonly axisKind: AxisKind;
22
+ readonly axisKey: string;
23
+ readonly value: AxisValue;
24
+ readonly valueType: AxisValueType;
25
+ readonly normalizedValue: string;
26
+ readonly count: number;
27
+ }
28
+ export declare function normalizeAxisValue(value: AxisValue): {
29
+ readonly value: AxisValue;
30
+ readonly type: AxisValueType;
31
+ readonly normalizedValue: string;
32
+ };
33
+ /** Dedicated EAV repository; never shares the embedding engine database. */
34
+ export declare class AxisObservationStore {
35
+ readonly dbPath: string;
36
+ private readonly db;
37
+ private closed;
38
+ private transactionDepth;
39
+ constructor(dbPath: string, options?: {
40
+ readonly readonly?: boolean;
41
+ readonly readOnly?: boolean;
42
+ });
43
+ private ensureOpen;
44
+ /**
45
+ * Run a group of writes as one rollback-safe publication. Nested writes from
46
+ * record/replaceNote participate in the outer transaction rather than
47
+ * attempting to open a second SQLite transaction.
48
+ */
49
+ runInTransaction<T>(fn: () => T): T;
50
+ private insertValues;
51
+ /** Source signature of the markdown set used for the last reconciliation. */
52
+ sourceSignature(): string | null;
53
+ setSourceSignature(signature: string): void;
54
+ /** Record one scalar or every scalar in a frontmatter list. */
55
+ record(input: AxisObservationInput): void;
56
+ /** Remove all observations for a note, then atomically replace them. */
57
+ replaceNote(notePath: string, fields: Readonly<Record<string, unknown>>, options?: {
58
+ readonly folder?: string;
59
+ readonly links?: readonly string[];
60
+ }): void;
61
+ /** Delete stale observations when a markdown note is removed. */
62
+ deleteNote(notePath: string): void;
63
+ list(options?: {
64
+ readonly axisKind?: AxisKind;
65
+ readonly axisKey?: string;
66
+ readonly notePath?: string;
67
+ }): AxisObservation[];
68
+ /** Aggregate facets before any result limit is applied. */
69
+ facets(options?: {
70
+ readonly axisKind?: AxisKind;
71
+ readonly axisKey?: string;
72
+ }): AxisFacet[];
73
+ count(options?: {
74
+ readonly axisKind?: AxisKind;
75
+ readonly axisKey?: string;
76
+ }): number;
77
+ close(): void;
78
+ }
79
+ export declare const openAxisStore: (dbPath: string, options?: {
80
+ readonly readonly?: boolean;
81
+ readonly readOnly?: boolean;
82
+ }) => AxisObservationStore;
83
+ export declare function axisStorePath(vault: string): string;
84
+ export declare function openVaultAxisStore(vault: string, options?: {
85
+ readonly readonly?: boolean;
86
+ readonly readOnly?: boolean;
87
+ }): AxisObservationStore;
88
+ /** Scan markdown into the dedicated EAV cache. Malformed YAML is loud. */
89
+ export declare function collectVaultAxisObservations(vault: string, suppliedStore?: AxisObservationStore): Promise<AxisObservationStore>;
90
+ export declare function ensureAxisStoreDirectory(vault: string): Promise<void>;