oh-my-second-brain 0.2.0 → 0.3.0

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 (464) 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 +154 -0
  5. package/CHANGELOG-assets.md +19 -0
  6. package/CHANGELOG-cli.md +15 -0
  7. package/CHANGELOG-kernel.md +25 -0
  8. package/CHANGELOG-mcp.md +26 -0
  9. package/CHANGELOG-vendors.md +22 -0
  10. package/CHANGELOG.md +24 -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 +1 -1
  30. package/dist/cli/args.js +1 -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 +22 -4
  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.js +20 -9
  49. package/dist/cli/oms.js.map +1 -1
  50. package/dist/cli/semantic-args.d.ts +1 -1
  51. package/dist/cli/semantic-http.js +3 -3
  52. package/dist/cli/semantic-http.js.map +1 -1
  53. package/dist/cli/semantic-usage.js +1 -1
  54. package/dist/cli/semantic-usage.js.map +1 -1
  55. package/dist/cli/semantic.js +1 -6
  56. package/dist/cli/semantic.js.map +1 -1
  57. package/dist/cli/setup-command.d.ts +1 -0
  58. package/dist/cli/setup-command.js +42 -147
  59. package/dist/cli/setup-command.js.map +1 -1
  60. package/dist/cli/update-notice.d.ts +1 -1
  61. package/dist/cli/update-notice.js +2 -2
  62. package/dist/cli/update-notice.js.map +1 -1
  63. package/dist/cli/usage.d.ts +1 -1
  64. package/dist/cli/usage.js +2 -2
  65. package/dist/cli/usage.js.map +1 -1
  66. package/dist/{capture → kernel/capture}/safe.d.ts +11 -1
  67. package/dist/{capture → kernel/capture}/safe.js +3 -3
  68. package/dist/kernel/capture/safe.js.map +1 -0
  69. package/dist/kernel/conventions/frontmatter.js.map +1 -0
  70. package/dist/kernel/conventions/lint.js.map +1 -0
  71. package/dist/kernel/conventions/report.js.map +1 -0
  72. package/dist/{conventions → kernel/conventions}/validate.d.ts +1 -1
  73. package/dist/kernel/conventions/validate.js.map +1 -0
  74. package/dist/kernel/conventions/vault-walk.js.map +1 -0
  75. package/dist/{conventions → kernel/conventions}/write-contract.d.ts +1 -1
  76. package/dist/kernel/conventions/write-contract.js.map +1 -0
  77. package/dist/kernel/conventions/write-protocol.js.map +1 -0
  78. package/dist/kernel/doctor/service.d.ts +71 -0
  79. package/dist/kernel/doctor/service.js +70 -0
  80. package/dist/kernel/doctor/service.js.map +1 -0
  81. package/dist/{engine → kernel/engine}/assemble.d.ts +24 -0
  82. package/dist/{engine → kernel/engine}/assemble.js +142 -4
  83. package/dist/kernel/engine/assemble.js.map +1 -0
  84. package/dist/{engine → kernel/engine}/conventions/vault-lint.d.ts +1 -1
  85. package/dist/{engine → kernel/engine}/conventions/vault-lint.js +1 -1
  86. package/dist/kernel/engine/conventions/vault-lint.js.map +1 -0
  87. package/dist/kernel/engine/embed/chunker.js.map +1 -0
  88. package/dist/kernel/engine/embed/deferred.js.map +1 -0
  89. package/dist/{engine → kernel/engine}/embed/hash-stub.test-helper.d.ts +1 -1
  90. package/dist/{engine → kernel/engine}/embed/hash-stub.test-helper.js +1 -1
  91. package/dist/kernel/engine/embed/hash-stub.test-helper.js.map +1 -0
  92. package/dist/kernel/engine/embed/identity.js.map +1 -0
  93. package/dist/kernel/engine/embed/provider.js.map +1 -0
  94. package/dist/{engine → kernel/engine}/embed/store.d.ts +8 -0
  95. package/dist/{engine → kernel/engine}/embed/store.js +212 -8
  96. package/dist/kernel/engine/embed/store.js.map +1 -0
  97. package/dist/{engine → kernel/engine}/embed/sync.d.ts +3 -1
  98. package/dist/{engine → kernel/engine}/embed/sync.js +5 -3
  99. package/dist/kernel/engine/embed/sync.js.map +1 -0
  100. package/dist/kernel/engine/graph/builder.js.map +1 -0
  101. package/dist/kernel/engine/graph/explore.js.map +1 -0
  102. package/dist/kernel/engine/graph/node.js.map +1 -0
  103. package/dist/kernel/engine/graph/resolver.js.map +1 -0
  104. package/dist/kernel/engine/graph/traverse.js.map +1 -0
  105. package/dist/kernel/engine/linkify/apply.js.map +1 -0
  106. package/dist/kernel/engine/linkify/josa.js.map +1 -0
  107. package/dist/kernel/engine/linkify/mask.js.map +1 -0
  108. package/dist/kernel/engine/linkify/suggest.js.map +1 -0
  109. package/dist/kernel/engine/linkify/types.js.map +1 -0
  110. package/dist/{engine → kernel/engine}/mcp/facade.d.ts +7 -1
  111. package/dist/{engine → kernel/engine}/mcp/facade.js +32 -11
  112. package/dist/kernel/engine/mcp/facade.js.map +1 -0
  113. package/dist/kernel/engine/mcp/op-mappers.js.map +1 -0
  114. package/dist/kernel/engine/mcp/query-mapper.js.map +1 -0
  115. package/dist/{engine → kernel/engine}/mcp/types.d.ts +5 -0
  116. package/dist/kernel/engine/mcp/types.js.map +1 -0
  117. package/dist/{engine → kernel/engine}/retrieval/dispatcher.d.ts +1 -1
  118. package/dist/{engine → kernel/engine}/retrieval/dispatcher.js +8 -6
  119. package/dist/kernel/engine/retrieval/dispatcher.js.map +1 -0
  120. package/dist/{engine → kernel/engine}/retrieval/index.d.ts +2 -0
  121. package/dist/{engine → kernel/engine}/retrieval/index.js +5 -2
  122. package/dist/kernel/engine/retrieval/index.js.map +1 -0
  123. package/dist/kernel/engine/retrieval/reranker.js.map +1 -0
  124. package/dist/kernel/engine/retrieval/rrf.js.map +1 -0
  125. package/dist/kernel/engine/tracer.js.map +1 -0
  126. package/dist/{engine → kernel/engine}/types.d.ts +4 -4
  127. package/dist/kernel/engine/types.js.map +1 -0
  128. package/dist/{graph → kernel/graph}/cache.d.ts +1 -1
  129. package/dist/{graph → kernel/graph}/cache.js +1 -1
  130. package/dist/kernel/graph/cache.js.map +1 -0
  131. package/dist/kernel/graph/explore.js.map +1 -0
  132. package/dist/{harness → kernel/harness}/surface-registry.d.ts +0 -1
  133. package/dist/kernel/harness/surface-registry.js +170 -0
  134. package/dist/kernel/harness/surface-registry.js.map +1 -0
  135. package/dist/{harness → kernel/harness}/validation.js +67 -4
  136. package/dist/kernel/harness/validation.js.map +1 -0
  137. package/dist/{index.d.ts → kernel/index.d.ts} +5 -6
  138. package/dist/kernel/index.js +12 -0
  139. package/dist/kernel/index.js.map +1 -0
  140. package/dist/{install → kernel/install}/adapter-source.d.ts +10 -1
  141. package/dist/kernel/install/adapter-source.js +76 -0
  142. package/dist/kernel/install/adapter-source.js.map +1 -0
  143. package/dist/kernel/install/common.js.map +1 -0
  144. package/dist/{install → kernel/install}/hosts.d.ts +3 -3
  145. package/dist/{install → kernel/install}/hosts.js +3 -22
  146. package/dist/kernel/install/hosts.js.map +1 -0
  147. package/dist/{core/ontology → kernel/install}/types.js.map +1 -1
  148. package/dist/{link → kernel/link}/convention-note.js +2 -2
  149. package/dist/kernel/link/convention-note.js.map +1 -0
  150. package/dist/kernel/link/global-config.js.map +1 -0
  151. package/dist/kernel/link/link.js.map +1 -0
  152. package/dist/kernel/link/workflow.d.ts +55 -0
  153. package/dist/kernel/link/workflow.js +107 -0
  154. package/dist/kernel/link/workflow.js.map +1 -0
  155. package/dist/{ontology → kernel/ontology}/active.d.ts +1 -1
  156. package/dist/{ontology → kernel/ontology}/active.js +2 -2
  157. package/dist/kernel/ontology/active.js.map +1 -0
  158. package/dist/kernel/ontology/loader.js.map +1 -0
  159. package/dist/kernel/ontology/resolver.js.map +1 -0
  160. package/dist/{install → kernel/ontology}/types.js.map +1 -1
  161. package/dist/kernel/plugin/index.d.ts +1 -0
  162. package/dist/kernel/plugin/index.js +2 -0
  163. package/dist/kernel/plugin/index.js.map +1 -0
  164. package/dist/{core → kernel}/runtime/assets.d.ts +2 -4
  165. package/dist/{core → kernel}/runtime/assets.js +1 -3
  166. package/dist/kernel/runtime/assets.js.map +1 -0
  167. package/dist/kernel/search/morning-test-fixtures.js.map +1 -0
  168. package/dist/{retrieve → kernel/search}/morning.d.ts +0 -1
  169. package/dist/kernel/search/morning.js.map +1 -0
  170. package/dist/kernel/search/semantic-contract.js.map +1 -0
  171. package/dist/kernel/searchbackend/engine-search-backend.d.ts +28 -0
  172. package/dist/kernel/searchbackend/engine-search-backend.js +67 -0
  173. package/dist/kernel/searchbackend/engine-search-backend.js.map +1 -0
  174. package/dist/kernel/searchbackend/index.d.ts +2 -0
  175. package/dist/kernel/searchbackend/index.js +2 -0
  176. package/dist/kernel/searchbackend/index.js.map +1 -0
  177. package/dist/kernel/searchbackend/search-backend.d.ts +47 -0
  178. package/dist/kernel/searchbackend/search-backend.js +49 -0
  179. package/dist/kernel/searchbackend/search-backend.js.map +1 -0
  180. package/dist/{mcp → kernel/semantic}/semantic-engine.d.ts +3 -2
  181. package/dist/{mcp → kernel/semantic}/semantic-engine.js +5 -5
  182. package/dist/kernel/semantic/semantic-engine.js.map +1 -0
  183. package/dist/{mcp → kernel/semantic}/semantic-retrieve-args.d.ts +2 -2
  184. package/dist/{mcp → kernel/semantic}/semantic-retrieve-args.js +0 -8
  185. package/dist/kernel/semantic/semantic-retrieve-args.js.map +1 -0
  186. package/dist/{mcp → kernel/semantic}/semantic-retrieve-schema.d.ts +0 -24
  187. package/dist/{mcp → kernel/semantic}/semantic-retrieve-schema.js +0 -8
  188. package/dist/kernel/semantic/semantic-retrieve-schema.js.map +1 -0
  189. package/dist/{mcp → kernel/semantic}/semantic-retrieve.js +5 -9
  190. package/dist/kernel/semantic/semantic-retrieve.js.map +1 -0
  191. package/dist/kernel/semantic/semantic-schemas.js.map +1 -0
  192. package/dist/{mcp → kernel/semantic}/semantic-tool-schemas.js +0 -28
  193. package/dist/kernel/semantic/semantic-tool-schemas.js.map +1 -0
  194. package/dist/{setup → kernel/setup}/axis.d.ts +1 -1
  195. package/dist/{setup → kernel/setup}/axis.js +1 -1
  196. package/dist/kernel/setup/axis.js.map +1 -0
  197. package/dist/{cli/setup-documents.d.ts → kernel/setup/documents.d.ts} +1 -1
  198. package/dist/{cli/setup-documents.js → kernel/setup/documents.js} +15 -49
  199. package/dist/kernel/setup/documents.js.map +1 -0
  200. package/dist/kernel/setup/service.d.ts +44 -0
  201. package/dist/kernel/setup/service.js +97 -0
  202. package/dist/kernel/setup/service.js.map +1 -0
  203. package/dist/kernel/update/update.js.map +1 -0
  204. package/dist/mcp/engine-morning-backend.d.ts +4 -4
  205. package/dist/mcp/engine-morning-backend.js +4 -18
  206. package/dist/mcp/engine-morning-backend.js.map +1 -1
  207. package/dist/mcp/link-tools.d.ts +9 -56
  208. package/dist/mcp/link-tools.js +5 -129
  209. package/dist/mcp/link-tools.js.map +1 -1
  210. package/dist/mcp/server.d.ts +9 -2
  211. package/dist/mcp/server.js +326 -327
  212. package/dist/mcp/server.js.map +1 -1
  213. package/dist/mcp/update-notice.d.ts +1 -1
  214. package/dist/mcp/update-notice.js +1 -1
  215. package/dist/mcp/update-notice.js.map +1 -1
  216. package/dist/{install → vendors/claude}/claude-hooks.d.ts +1 -1
  217. package/dist/{install → vendors/claude}/claude-hooks.js +1 -1
  218. package/dist/vendors/claude/claude-hooks.js.map +1 -0
  219. package/dist/{install → vendors/claude}/claude-marketplace.d.ts +3 -3
  220. package/dist/{install → vendors/claude}/claude-marketplace.js +6 -9
  221. package/dist/vendors/claude/claude-marketplace.js.map +1 -0
  222. package/dist/{install → vendors/claude}/claude.d.ts +2 -2
  223. package/dist/{install → vendors/claude}/claude.js +2 -2
  224. package/dist/vendors/claude/claude.js.map +1 -0
  225. package/dist/{hook → vendors/claude/hook}/post-tool-use.js +5 -5
  226. package/dist/vendors/claude/hook/post-tool-use.js.map +1 -0
  227. package/dist/vendors/claude/hook/pre-tool-use.js.map +1 -0
  228. package/dist/vendors/claude/hook/stdin.js.map +1 -0
  229. package/dist/vendors/codex/codex.d.ts +10 -0
  230. package/dist/{install → vendors/codex}/codex.js +19 -37
  231. package/dist/vendors/codex/codex.js.map +1 -0
  232. package/dist/{install → vendors/hermes}/hermes.d.ts +2 -2
  233. package/dist/{install → vendors/hermes}/hermes.js +15 -7
  234. package/dist/vendors/hermes/hermes.js.map +1 -0
  235. package/docs/adapters.md +15 -0
  236. package/docs/install.md +10 -11
  237. package/package.json +21 -9
  238. package/adapters/README.md +0 -99
  239. package/adapters/claude-code/skills/compile/SKILL.md +0 -27
  240. package/adapters/claude-code/skills/define/SKILL.md +0 -51
  241. package/adapters/claude-code/skills/distill/SKILL.md +0 -28
  242. package/adapters/claude-code/skills/doctor/SKILL.md +0 -58
  243. package/adapters/claude-code/skills/link/SKILL.md +0 -87
  244. package/adapters/claude-code/skills/retrieve/SKILL.md +0 -99
  245. package/adapters/claude-code/skills/setup/SKILL.md +0 -78
  246. package/adapters/claude-code/skills/uninstall/SKILL.md +0 -34
  247. package/adapters/claude-code/skills/update/SKILL.md +0 -45
  248. package/adapters/claude-code/skills/vault-decision-record/SKILL.md +0 -52
  249. package/adapters/claude-code/skills/vault-lint/SKILL.md +0 -47
  250. package/adapters/claude-code/skills/vault-scaffold/SKILL.md +0 -47
  251. package/adapters/claude-code/skills/wiki/SKILL.md +0 -82
  252. package/adapters/claude-code/skills/write/SKILL.md +0 -16
  253. package/adapters/codex/skills/oms-compile/SKILL.md +0 -16
  254. package/adapters/codex/skills/oms-distill/SKILL.md +0 -14
  255. package/adapters/codex/skills/oms-doctor/SKILL.md +0 -14
  256. package/adapters/codex/skills/oms-install/SKILL.md +0 -19
  257. package/adapters/codex/skills/oms-link/SKILL.md +0 -35
  258. package/adapters/codex/skills/oms-retrieve/SKILL.md +0 -32
  259. package/adapters/codex/skills/oms-setup/SKILL.md +0 -34
  260. package/adapters/codex/skills/oms-uninstall/SKILL.md +0 -20
  261. package/adapters/codex/skills/oms-update/SKILL.md +0 -22
  262. package/adapters/codex/skills/oms-vault-lint/SKILL.md +0 -19
  263. package/adapters/codex/skills/oms-wiki/SKILL.md +0 -39
  264. package/adapters/codex/skills/oms-write/SKILL.md +0 -10
  265. package/adapters/hermes/skills/compile/SKILL.md +0 -13
  266. package/adapters/hermes/skills/distill/SKILL.md +0 -10
  267. package/adapters/hermes/skills/doctor/SKILL.md +0 -14
  268. package/adapters/hermes/skills/install/SKILL.md +0 -19
  269. package/adapters/hermes/skills/link/SKILL.md +0 -18
  270. package/adapters/hermes/skills/retrieve/SKILL.md +0 -32
  271. package/adapters/hermes/skills/setup/SKILL.md +0 -37
  272. package/adapters/hermes/skills/uninstall/SKILL.md +0 -20
  273. package/adapters/hermes/skills/update/SKILL.md +0 -22
  274. package/adapters/hermes/skills/wiki/SKILL.md +0 -14
  275. package/adapters/hermes/skills/write/SKILL.md +0 -10
  276. package/core/agents/librarian.md +0 -44
  277. package/core/agents/retriever.md +0 -62
  278. package/core/skills/compile/CHANGELOG.md +0 -24
  279. package/core/skills/compile/SKILL.md +0 -57
  280. package/core/skills/define/SKILL.md +0 -59
  281. package/core/skills/distill/CHANGELOG.md +0 -39
  282. package/core/skills/distill/SKILL.md +0 -62
  283. package/core/skills/doctor/SKILL.md +0 -49
  284. package/core/skills/link/SKILL.md +0 -130
  285. package/core/skills/retrieve/SKILL.md +0 -78
  286. package/core/skills/setup/CHANGELOG.md +0 -49
  287. package/core/skills/setup/SKILL.md +0 -246
  288. package/core/skills/uninstall/SKILL.md +0 -34
  289. package/core/skills/vault-decision-record/CHANGELOG.md +0 -24
  290. package/core/skills/vault-decision-record/SKILL.md +0 -93
  291. package/core/skills/vault-lint/CHANGELOG.md +0 -35
  292. package/core/skills/vault-lint/SKILL.md +0 -58
  293. package/core/skills/vault-scaffold/CHANGELOG.md +0 -21
  294. package/core/skills/vault-scaffold/SKILL.md +0 -72
  295. package/core/skills/wiki/CHANGELOG.md +0 -23
  296. package/core/skills/wiki/SKILL.md +0 -159
  297. package/core/skills/write/SKILL.md +0 -15
  298. package/dist/capture/safe.js.map +0 -1
  299. package/dist/cli/setup-documents.js.map +0 -1
  300. package/dist/conventions/frontmatter.js.map +0 -1
  301. package/dist/conventions/lint.js.map +0 -1
  302. package/dist/conventions/report.js.map +0 -1
  303. package/dist/conventions/validate.js.map +0 -1
  304. package/dist/conventions/vault-walk.js.map +0 -1
  305. package/dist/conventions/write-contract.js.map +0 -1
  306. package/dist/conventions/write-protocol.js.map +0 -1
  307. package/dist/core/ontology/loader.js.map +0 -1
  308. package/dist/core/ontology/resolver.js.map +0 -1
  309. package/dist/core/runtime/assets.js.map +0 -1
  310. package/dist/engine/assemble.js.map +0 -1
  311. package/dist/engine/conventions/vault-lint.js.map +0 -1
  312. package/dist/engine/embed/chunker.js.map +0 -1
  313. package/dist/engine/embed/deferred.js.map +0 -1
  314. package/dist/engine/embed/hash-stub.test-helper.js.map +0 -1
  315. package/dist/engine/embed/identity.js.map +0 -1
  316. package/dist/engine/embed/provider.js.map +0 -1
  317. package/dist/engine/embed/store.js.map +0 -1
  318. package/dist/engine/embed/sync.js.map +0 -1
  319. package/dist/engine/graph/builder.js.map +0 -1
  320. package/dist/engine/graph/explore.js.map +0 -1
  321. package/dist/engine/graph/node.js.map +0 -1
  322. package/dist/engine/graph/resolver.js.map +0 -1
  323. package/dist/engine/graph/traverse.js.map +0 -1
  324. package/dist/engine/linkify/apply.js.map +0 -1
  325. package/dist/engine/linkify/josa.js.map +0 -1
  326. package/dist/engine/linkify/mask.js.map +0 -1
  327. package/dist/engine/linkify/suggest.js.map +0 -1
  328. package/dist/engine/linkify/types.js.map +0 -1
  329. package/dist/engine/mcp/facade.js.map +0 -1
  330. package/dist/engine/mcp/op-mappers.js.map +0 -1
  331. package/dist/engine/mcp/query-mapper.js.map +0 -1
  332. package/dist/engine/mcp/types.js.map +0 -1
  333. package/dist/engine/retrieval/dispatcher.js.map +0 -1
  334. package/dist/engine/retrieval/index.js.map +0 -1
  335. package/dist/engine/retrieval/reranker.js.map +0 -1
  336. package/dist/engine/retrieval/rrf.js.map +0 -1
  337. package/dist/engine/tracer.js.map +0 -1
  338. package/dist/engine/types.js.map +0 -1
  339. package/dist/graph/cache.js.map +0 -1
  340. package/dist/graph/explore.js.map +0 -1
  341. package/dist/harness/surface-registry.js +0 -397
  342. package/dist/harness/surface-registry.js.map +0 -1
  343. package/dist/harness/validation.js.map +0 -1
  344. package/dist/hook/post-tool-use.js.map +0 -1
  345. package/dist/hook/pre-tool-use.js.map +0 -1
  346. package/dist/hook/stdin.js.map +0 -1
  347. package/dist/index.js +0 -13
  348. package/dist/index.js.map +0 -1
  349. package/dist/install/adapter-source.js +0 -45
  350. package/dist/install/adapter-source.js.map +0 -1
  351. package/dist/install/claude-hooks.js.map +0 -1
  352. package/dist/install/claude-marketplace.js.map +0 -1
  353. package/dist/install/claude.js.map +0 -1
  354. package/dist/install/codex.d.ts +0 -24
  355. package/dist/install/codex.js.map +0 -1
  356. package/dist/install/common.js.map +0 -1
  357. package/dist/install/hermes.js.map +0 -1
  358. package/dist/install/hosts.js.map +0 -1
  359. package/dist/link/convention-note.js.map +0 -1
  360. package/dist/link/global-config.js.map +0 -1
  361. package/dist/link/link.js.map +0 -1
  362. package/dist/mcp/semantic-engine.js.map +0 -1
  363. package/dist/mcp/semantic-retrieve-args.js.map +0 -1
  364. package/dist/mcp/semantic-retrieve-schema.js.map +0 -1
  365. package/dist/mcp/semantic-retrieve.js.map +0 -1
  366. package/dist/mcp/semantic-schemas.js.map +0 -1
  367. package/dist/mcp/semantic-tool-schemas.js.map +0 -1
  368. package/dist/ontology/active.js.map +0 -1
  369. package/dist/retrieve/morning-test-fixtures.js.map +0 -1
  370. package/dist/retrieve/morning.js.map +0 -1
  371. package/dist/retrieve/semantic-contract.js.map +0 -1
  372. package/dist/setup/axis.js.map +0 -1
  373. package/dist/update/update.js.map +0 -1
  374. package/docs/release.md +0 -188
  375. /package/{adapters/codex/.mcp.json → .mcp.codex.json} +0 -0
  376. /package/{adapters/claude-code/.mcp.json → .mcp.json} +0 -0
  377. /package/{adapters/claude-code → assets/claude}/hooks/oms-guard.mjs +0 -0
  378. /package/{adapters/claude-code → assets/claude}/hooks/oms-post-guard.mjs +0 -0
  379. /package/dist/{conventions → kernel/conventions}/frontmatter.d.ts +0 -0
  380. /package/dist/{conventions → kernel/conventions}/frontmatter.js +0 -0
  381. /package/dist/{conventions → kernel/conventions}/lint.d.ts +0 -0
  382. /package/dist/{conventions → kernel/conventions}/lint.js +0 -0
  383. /package/dist/{conventions → kernel/conventions}/report.d.ts +0 -0
  384. /package/dist/{conventions → kernel/conventions}/report.js +0 -0
  385. /package/dist/{conventions → kernel/conventions}/validate.js +0 -0
  386. /package/dist/{conventions → kernel/conventions}/vault-walk.d.ts +0 -0
  387. /package/dist/{conventions → kernel/conventions}/vault-walk.js +0 -0
  388. /package/dist/{conventions → kernel/conventions}/write-contract.js +0 -0
  389. /package/dist/{conventions → kernel/conventions}/write-protocol.d.ts +0 -0
  390. /package/dist/{conventions → kernel/conventions}/write-protocol.js +0 -0
  391. /package/dist/{engine → kernel/engine}/embed/chunker.d.ts +0 -0
  392. /package/dist/{engine → kernel/engine}/embed/chunker.js +0 -0
  393. /package/dist/{engine → kernel/engine}/embed/deferred.d.ts +0 -0
  394. /package/dist/{engine → kernel/engine}/embed/deferred.js +0 -0
  395. /package/dist/{engine → kernel/engine}/embed/identity.d.ts +0 -0
  396. /package/dist/{engine → kernel/engine}/embed/identity.js +0 -0
  397. /package/dist/{engine → kernel/engine}/embed/provider.d.ts +0 -0
  398. /package/dist/{engine → kernel/engine}/embed/provider.js +0 -0
  399. /package/dist/{engine → kernel/engine}/graph/builder.d.ts +0 -0
  400. /package/dist/{engine → kernel/engine}/graph/builder.js +0 -0
  401. /package/dist/{engine → kernel/engine}/graph/explore.d.ts +0 -0
  402. /package/dist/{engine → kernel/engine}/graph/explore.js +0 -0
  403. /package/dist/{engine → kernel/engine}/graph/node.d.ts +0 -0
  404. /package/dist/{engine → kernel/engine}/graph/node.js +0 -0
  405. /package/dist/{engine → kernel/engine}/graph/resolver.d.ts +0 -0
  406. /package/dist/{engine → kernel/engine}/graph/resolver.js +0 -0
  407. /package/dist/{engine → kernel/engine}/graph/traverse.d.ts +0 -0
  408. /package/dist/{engine → kernel/engine}/graph/traverse.js +0 -0
  409. /package/dist/{engine → kernel/engine}/linkify/apply.d.ts +0 -0
  410. /package/dist/{engine → kernel/engine}/linkify/apply.js +0 -0
  411. /package/dist/{engine → kernel/engine}/linkify/josa.d.ts +0 -0
  412. /package/dist/{engine → kernel/engine}/linkify/josa.js +0 -0
  413. /package/dist/{engine → kernel/engine}/linkify/mask.d.ts +0 -0
  414. /package/dist/{engine → kernel/engine}/linkify/mask.js +0 -0
  415. /package/dist/{engine → kernel/engine}/linkify/suggest.d.ts +0 -0
  416. /package/dist/{engine → kernel/engine}/linkify/suggest.js +0 -0
  417. /package/dist/{engine → kernel/engine}/linkify/types.d.ts +0 -0
  418. /package/dist/{engine → kernel/engine}/linkify/types.js +0 -0
  419. /package/dist/{engine → kernel/engine}/mcp/op-mappers.d.ts +0 -0
  420. /package/dist/{engine → kernel/engine}/mcp/op-mappers.js +0 -0
  421. /package/dist/{engine → kernel/engine}/mcp/query-mapper.d.ts +0 -0
  422. /package/dist/{engine → kernel/engine}/mcp/query-mapper.js +0 -0
  423. /package/dist/{engine → kernel/engine}/mcp/types.js +0 -0
  424. /package/dist/{engine → kernel/engine}/retrieval/reranker.d.ts +0 -0
  425. /package/dist/{engine → kernel/engine}/retrieval/reranker.js +0 -0
  426. /package/dist/{engine → kernel/engine}/retrieval/rrf.d.ts +0 -0
  427. /package/dist/{engine → kernel/engine}/retrieval/rrf.js +0 -0
  428. /package/dist/{engine → kernel/engine}/tracer.d.ts +0 -0
  429. /package/dist/{engine → kernel/engine}/tracer.js +0 -0
  430. /package/dist/{engine → kernel/engine}/types.js +0 -0
  431. /package/dist/{graph → kernel/graph}/explore.d.ts +0 -0
  432. /package/dist/{graph → kernel/graph}/explore.js +0 -0
  433. /package/dist/{harness → kernel/harness}/validation.d.ts +0 -0
  434. /package/dist/{install → kernel/install}/common.d.ts +0 -0
  435. /package/dist/{install → kernel/install}/common.js +0 -0
  436. /package/dist/{install → kernel/install}/types.d.ts +0 -0
  437. /package/dist/{core/ontology → kernel/install}/types.js +0 -0
  438. /package/dist/{link → kernel/link}/convention-note.d.ts +0 -0
  439. /package/dist/{link → kernel/link}/global-config.d.ts +0 -0
  440. /package/dist/{link → kernel/link}/global-config.js +0 -0
  441. /package/dist/{link → kernel/link}/link.d.ts +0 -0
  442. /package/dist/{link → kernel/link}/link.js +0 -0
  443. /package/dist/{core → kernel}/ontology/loader.d.ts +0 -0
  444. /package/dist/{core → kernel}/ontology/loader.js +0 -0
  445. /package/dist/{core → kernel}/ontology/resolver.d.ts +0 -0
  446. /package/dist/{core → kernel}/ontology/resolver.js +0 -0
  447. /package/dist/{core → kernel}/ontology/types.d.ts +0 -0
  448. /package/dist/{install → kernel/ontology}/types.js +0 -0
  449. /package/dist/{retrieve → kernel/search}/morning-test-fixtures.d.ts +0 -0
  450. /package/dist/{retrieve → kernel/search}/morning-test-fixtures.js +0 -0
  451. /package/dist/{retrieve → kernel/search}/morning.js +0 -0
  452. /package/dist/{retrieve → kernel/search}/semantic-contract.d.ts +0 -0
  453. /package/dist/{retrieve → kernel/search}/semantic-contract.js +0 -0
  454. /package/dist/{mcp → kernel/semantic}/semantic-retrieve.d.ts +0 -0
  455. /package/dist/{mcp → kernel/semantic}/semantic-schemas.d.ts +0 -0
  456. /package/dist/{mcp → kernel/semantic}/semantic-schemas.js +0 -0
  457. /package/dist/{mcp → kernel/semantic}/semantic-tool-schemas.d.ts +0 -0
  458. /package/dist/{update → kernel/update}/update.d.ts +0 -0
  459. /package/dist/{update → kernel/update}/update.js +0 -0
  460. /package/dist/{hook → vendors/claude/hook}/post-tool-use.d.ts +0 -0
  461. /package/dist/{hook → vendors/claude/hook}/pre-tool-use.d.ts +0 -0
  462. /package/dist/{hook → vendors/claude/hook}/pre-tool-use.js +0 -0
  463. /package/dist/{hook → vendors/claude/hook}/stdin.d.ts +0 -0
  464. /package/dist/{hook → vendors/claude/hook}/stdin.js +0 -0
@@ -1,4 +1,4 @@
1
- import type { Concept, FieldType, FolderBinding, OntologyField, OntologyLens, Taxonomy } from "../core/ontology/types.js";
1
+ import type { Concept, FieldType, FolderBinding, OntologyField, OntologyLens, Taxonomy } from "../ontology/types.js";
2
2
  export interface ConceptDocument {
3
3
  readonly filePath: string;
4
4
  readonly raw: Record<string, unknown>;
@@ -58,35 +58,21 @@ export async function readConceptDocuments(omsDir) {
58
58
  }
59
59
  export function buildPromptConcepts(shippedConcepts, localDocuments) {
60
60
  const concepts = new Map(shippedConcepts);
61
- for (const [name, document] of localDocuments) {
61
+ for (const [name, document] of localDocuments)
62
62
  concepts.set(name, document.concept);
63
- }
64
63
  return concepts;
65
64
  }
66
65
  export function defaultConceptForFolder(concepts, folder) {
67
- for (const [name, concept] of concepts) {
66
+ for (const [name, concept] of concepts)
68
67
  if (concept.folder === folder)
69
68
  return name;
70
- }
71
69
  return null;
72
70
  }
73
71
  export function conceptRefToPromptDefault(concept) {
74
- if (Array.isArray(concept))
75
- return concept[0] ?? null;
76
- return concept;
72
+ return Array.isArray(concept) ? (concept[0] ?? null) : concept;
77
73
  }
78
74
  export function isFieldType(value) {
79
- switch (value) {
80
- case "string":
81
- case "url":
82
- case "date":
83
- case "list":
84
- case "number":
85
- case "boolean":
86
- return true;
87
- default:
88
- return false;
89
- }
75
+ return ["string", "url", "date", "list", "number", "boolean"].includes(value);
90
76
  }
91
77
  export async function readExistingTaxonomy(omsDir) {
92
78
  try {
@@ -94,20 +80,15 @@ export async function readExistingTaxonomy(omsDir) {
94
80
  const parsed = yamlParse(raw);
95
81
  if (!isRecord(parsed))
96
82
  return null;
97
- const rawFolders = parsed["folders"];
98
83
  const folders = {};
99
- if (isRecord(rawFolders)) {
100
- for (const [folder, binding] of Object.entries(rawFolders)) {
84
+ if (isRecord(parsed["folders"])) {
85
+ for (const [folder, binding] of Object.entries(parsed["folders"])) {
101
86
  const parsedBinding = parseFolderBinding(binding);
102
- if (parsedBinding !== null) {
87
+ if (parsedBinding !== null)
103
88
  folders[folder] = parsedBinding;
104
- }
105
89
  }
106
90
  }
107
- return {
108
- version: typeof parsed["version"] === "number" ? parsed["version"] : 0,
109
- folders,
110
- };
91
+ return { version: typeof parsed["version"] === "number" ? parsed["version"] : 0, folders };
111
92
  }
112
93
  catch (error) {
113
94
  if (error instanceof Error)
@@ -117,33 +98,18 @@ export async function readExistingTaxonomy(omsDir) {
117
98
  }
118
99
  export function mergeAdditionalFields(concept, fields) {
119
100
  const existing = new Set(concept.fields.map((field) => field.name));
120
- const additions = fields.filter((field) => !existing.has(field.name));
121
- return {
122
- ...concept,
123
- fields: [...concept.fields, ...additions],
124
- lenses: concept.lenses ?? [],
125
- };
101
+ return { ...concept, fields: [...concept.fields, ...fields.filter((field) => !existing.has(field.name))], lenses: concept.lenses ?? [] };
126
102
  }
127
103
  export function mergeAdditionalLenses(concept, lenses) {
128
104
  const existing = new Set((concept.lenses ?? []).map((lens) => lens.name));
129
- const additions = lenses.filter((lens) => !existing.has(lens.name));
130
- return {
131
- ...concept,
132
- fields: concept.fields,
133
- lenses: [...(concept.lenses ?? []), ...additions],
134
- };
105
+ return { ...concept, fields: concept.fields, lenses: [...(concept.lenses ?? []), ...lenses.filter((lens) => !existing.has(lens.name))] };
135
106
  }
136
107
  export async function writeConcept(omsDir, concept, existingDocument) {
137
108
  const conceptsOutDir = path.join(omsDir, "concepts");
138
109
  await mkdir(conceptsOutDir, { recursive: true });
139
- const document = {
140
- ...(existingDocument?.raw ?? {}),
141
- concept: concept.concept,
142
- intent: concept.intent,
143
- folder: concept.folder,
144
- fields: concept.fields,
145
- lenses: concept.lenses ?? [],
146
- };
147
- await writeFile(existingDocument?.filePath ?? path.join(conceptsOutDir, `${concept.concept}.yaml`), yamlStringify(document), "utf-8");
110
+ await writeFile(existingDocument?.filePath ?? path.join(conceptsOutDir, `${concept.concept}.yaml`), yamlStringify({
111
+ ...(existingDocument?.raw ?? {}), concept: concept.concept, intent: concept.intent, folder: concept.folder,
112
+ fields: concept.fields, lenses: concept.lenses ?? [],
113
+ }), "utf-8");
148
114
  }
149
- //# sourceMappingURL=setup-documents.js.map
115
+ //# sourceMappingURL=documents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documents.js","sourceRoot":"","sources":["../../../src/kernel/setup/documents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import type { Concept, FolderBinding, OntologyField, OntologyLens, Taxonomy } from "../ontology/types.js";
2
+ import { type ObservedField, type ObservedFolderSummary } from "./axis.js";
3
+ import { type ConceptDocument } from "./documents.js";
4
+ export interface SetupState {
5
+ readonly vault: string;
6
+ readonly ontologyDir: string;
7
+ readonly omsDir: string;
8
+ readonly folders: readonly string[];
9
+ readonly existingTaxonomy: Taxonomy | null;
10
+ readonly promptConcepts: ReadonlyMap<string, Concept>;
11
+ readonly observedByFolder: ReadonlyMap<string, ObservedFolderSummary>;
12
+ readonly localConceptDocuments: ReadonlyMap<string, ConceptDocument>;
13
+ readonly bundledConceptFiles: readonly string[];
14
+ }
15
+ export interface SetupInputs {
16
+ readonly folderBindings: Readonly<Record<string, FolderBinding>>;
17
+ readonly observedFieldsByConcept?: ReadonlyMap<string, readonly ObservedField[]>;
18
+ readonly additionalFieldsByConcept?: ReadonlyMap<string, readonly OntologyField[]>;
19
+ readonly additionalLensesByConcept?: ReadonlyMap<string, readonly OntologyLens[]>;
20
+ }
21
+ export interface SetupDecision {
22
+ readonly vault: string;
23
+ readonly omsDir: string;
24
+ readonly ontologyDir: string;
25
+ readonly taxonomy: Taxonomy;
26
+ readonly bundledConceptFiles: readonly string[];
27
+ readonly concepts: readonly {
28
+ concept: Concept;
29
+ existingDocument?: ConceptDocument;
30
+ }[];
31
+ }
32
+ export declare function inspectSetup({ vault, ontologyDir }: {
33
+ vault: string;
34
+ ontologyDir: string;
35
+ }): Promise<SetupState>;
36
+ export declare function defaultSetupBinding(state: SetupState, folder: string): FolderBinding;
37
+ export declare function decideSetup(state: SetupState, inputs: SetupInputs): SetupDecision;
38
+ export declare function decideNonInteractiveSetup(state: SetupState, suggestFields: boolean): SetupDecision;
39
+ export declare function applySetup(decision: SetupDecision, { dryRun }?: {
40
+ dryRun?: boolean;
41
+ }): Promise<{
42
+ copiedFiles: readonly string[];
43
+ copyError?: unknown;
44
+ }>;
@@ -0,0 +1,97 @@
1
+ import { copyFile, mkdir, readFile, readdir, writeFile } from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { stringify as yamlStringify } from "yaml";
4
+ import { loadOntology } from "../ontology/loader.js";
5
+ import { collectObservedFields, mergeObservedFieldsIntoConcept } from "./axis.js";
6
+ import { buildPromptConcepts, conceptRefToPromptDefault, defaultConceptForFolder, mergeAdditionalFields, mergeAdditionalLenses, readConceptDocuments, readExistingTaxonomy, writeConcept, } from "./documents.js";
7
+ export async function inspectSetup({ vault, ontologyDir }) {
8
+ const [ontology, observedSummaries, topEntries, existingTaxonomy, localConceptDocuments, conceptEntries] = await Promise.all([
9
+ loadOntology(ontologyDir),
10
+ collectObservedFields({ vault }),
11
+ readdir(vault, { withFileTypes: true }),
12
+ readExistingTaxonomy(path.join(vault, ".oms")),
13
+ readConceptDocuments(path.join(vault, ".oms")),
14
+ readdir(path.join(ontologyDir, "concepts")),
15
+ ]);
16
+ return {
17
+ vault, ontologyDir, omsDir: path.join(vault, ".oms"),
18
+ folders: topEntries.filter((entry) => entry.isDirectory() && !entry.name.startsWith(".")).map((entry) => entry.name),
19
+ existingTaxonomy,
20
+ promptConcepts: buildPromptConcepts(ontology.concepts, localConceptDocuments),
21
+ observedByFolder: new Map(observedSummaries.map((summary) => [summary.folder, summary])),
22
+ localConceptDocuments,
23
+ bundledConceptFiles: conceptEntries.filter((file) => file.endsWith(".yaml") || file.endsWith(".yml")),
24
+ };
25
+ }
26
+ export function defaultSetupBinding(state, folder) {
27
+ const existing = state.existingTaxonomy?.folders[folder];
28
+ return {
29
+ intent: existing?.intent || `${folder.charAt(0).toUpperCase()}${folder.slice(1)}`,
30
+ concept: conceptRefToPromptDefault(existing?.concept ?? null) ?? defaultConceptForFolder(state.promptConcepts, folder),
31
+ };
32
+ }
33
+ export function decideSetup(state, inputs) {
34
+ const observed = inputs.observedFieldsByConcept ?? new Map();
35
+ const additionalFields = inputs.additionalFieldsByConcept ?? new Map();
36
+ const additionalLenses = inputs.additionalLensesByConcept ?? new Map();
37
+ const names = new Set([...observed.keys(), ...additionalFields.keys(), ...additionalLenses.keys()]);
38
+ const concepts = [...names].flatMap((name) => {
39
+ const concept = state.promptConcepts.get(name);
40
+ if (concept === undefined)
41
+ return [];
42
+ return [{
43
+ concept: mergeAdditionalLenses(mergeAdditionalFields(mergeObservedFieldsIntoConcept(concept, observed.get(name) ?? []), additionalFields.get(name) ?? []), additionalLenses.get(name) ?? []),
44
+ existingDocument: state.localConceptDocuments.get(name),
45
+ }];
46
+ });
47
+ return {
48
+ vault: state.vault, omsDir: state.omsDir, ontologyDir: state.ontologyDir,
49
+ taxonomy: { version: state.existingTaxonomy?.version ?? 0, folders: { ...inputs.folderBindings } },
50
+ bundledConceptFiles: state.bundledConceptFiles,
51
+ concepts,
52
+ };
53
+ }
54
+ export function decideNonInteractiveSetup(state, suggestFields) {
55
+ const folderBindings = { ...(state.existingTaxonomy?.folders ?? {}) };
56
+ const observedFieldsByConcept = new Map();
57
+ for (const folder of state.folders) {
58
+ const binding = defaultSetupBinding(state, folder);
59
+ folderBindings[folder] = binding;
60
+ if (suggestFields && typeof binding.concept === "string") {
61
+ const fields = state.observedByFolder.get(folder)?.fields;
62
+ if (fields !== undefined)
63
+ observedFieldsByConcept.set(binding.concept, [...(observedFieldsByConcept.get(binding.concept) ?? []), ...fields]);
64
+ }
65
+ }
66
+ return decideSetup(state, { folderBindings, observedFieldsByConcept });
67
+ }
68
+ export async function applySetup(decision, { dryRun = false } = {}) {
69
+ if (dryRun)
70
+ return { copiedFiles: [] };
71
+ const conceptsOutDir = path.join(decision.omsDir, "concepts");
72
+ await mkdir(conceptsOutDir, { recursive: true });
73
+ await writeFile(path.join(decision.omsDir, "taxonomy.yaml"), yamlStringify(decision.taxonomy), "utf-8");
74
+ const copiedFiles = [];
75
+ let copyError;
76
+ try {
77
+ for (const file of decision.bundledConceptFiles) {
78
+ const target = path.join(conceptsOutDir, file);
79
+ try {
80
+ await readFile(target, "utf-8");
81
+ }
82
+ catch (error) {
83
+ if (!(error instanceof Error))
84
+ throw error;
85
+ await copyFile(path.join(decision.ontologyDir, "concepts", file), target);
86
+ copiedFiles.push(file);
87
+ }
88
+ }
89
+ }
90
+ catch (error) {
91
+ copyError = error;
92
+ }
93
+ for (const { concept, existingDocument } of decision.concepts)
94
+ await writeConcept(decision.omsDir, concept, existingDocument);
95
+ return { copiedFiles, copyError };
96
+ }
97
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/kernel/setup/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/kernel/update/update.ts"],"names":[],"mappings":"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"}
@@ -9,11 +9,11 @@
9
9
  * (graph-only context) rather than throwing.
10
10
  *
11
11
  * After the src/search teardown the morning contract types are the engine
12
- * contract types (re-exported via src/retrieve/semantic-contract.ts), so this
13
- * wrapper only threads the sync gate and the default vault — no type bridging.
12
+ * contract types (re-exported via src/kernel/search/semantic-contract.ts), so this
13
+ * wrapper only threads the default vault — no type bridging.
14
14
  */
15
- import type { McpEngineAdapter } from "../engine/mcp/facade.js";
16
- import type { MorningSemanticBackend } from "../retrieve/morning.js";
15
+ import type { McpEngineAdapter } from "../kernel/engine/mcp/facade.js";
16
+ import type { MorningSemanticBackend } from "../kernel/search/morning.js";
17
17
  /**
18
18
  * Build a MorningSemanticBackend that routes the five semantic leaf operations
19
19
  * through the native engine adapter.
@@ -9,8 +9,8 @@
9
9
  * (graph-only context) rather than throwing.
10
10
  *
11
11
  * After the src/search teardown the morning contract types are the engine
12
- * contract types (re-exported via src/retrieve/semantic-contract.ts), so this
13
- * wrapper only threads the sync gate and the default vault — no type bridging.
12
+ * contract types (re-exported via src/kernel/search/semantic-contract.ts), so this
13
+ * wrapper only threads the default vault — no type bridging.
14
14
  */
15
15
  /**
16
16
  * Build a MorningSemanticBackend that routes the five semantic leaf operations
@@ -25,22 +25,8 @@
25
25
  */
26
26
  export function makeEngineMorningBackend(adapter, vault) {
27
27
  return {
28
- sync(opts) {
29
- // Same R2 gate as before: never auto-sync unless the caller explicitly
30
- // asked (syncBeforeSearch). Engine sync is incremental (SHA-256 diff), so
31
- // even a forced re-sync skips unchanged chunks.
32
- if (opts.semantic?.syncBeforeSearch !== true)
33
- return Promise.resolve(undefined);
34
- return adapter.syncEmbeddings({
35
- vault: opts.vault ?? vault,
36
- collection: opts.semantic.collection,
37
- index: opts.semantic.index,
38
- embed: opts.semantic.syncEmbed,
39
- force: opts.semantic.syncForce,
40
- chunkStrategy: opts.semantic.chunkStrategy,
41
- maxDocsPerBatch: opts.semantic.syncMaxDocsPerBatch,
42
- maxBatchMb: opts.semantic.syncMaxBatchMb,
43
- });
28
+ sync() {
29
+ return Promise.resolve(undefined);
44
30
  },
45
31
  status(opts) {
46
32
  // semanticStatus is synchronous on the adapter; lift it into the async
@@ -1 +1 @@
1
- {"version":3,"file":"engine-morning-backend.js","sourceRoot":"","sources":["../../src/mcp/engine-morning-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAyB,EAAE,KAAa;IAC/E,OAAO;QACL,IAAI,CAAC,IAA4B;YAC/B,uEAAuE;YACvE,0EAA0E;YAC1E,gDAAgD;YAChD,IAAI,IAAI,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAChF,OAAO,OAAO,CAAC,cAAc,CAAC;gBAC5B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK;gBAC1B,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;gBACpC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;gBAC1B,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS;gBAC9B,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS;gBAC9B,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;gBAC1C,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,mBAAmB;gBAClD,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc;aACzC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,IAAI;YACT,uEAAuE;YACvE,oBAAoB;YACpB,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,KAAK,CAAC,IAAI;YACR,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QAED,WAAW,CAAC,IAAI;YACd,OAAO,OAAO,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,QAAQ,CAAC,IAAI;YACX,OAAO,OAAO,CAAC,iBAAiB,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxG,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"engine-morning-backend.js","sourceRoot":"","sources":["../../src/mcp/engine-morning-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAyB,EAAE,KAAa;IAC/E,OAAO;QACL,IAAI;YACF,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,CAAC,IAAI;YACT,uEAAuE;YACvE,oBAAoB;YACpB,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,KAAK,CAAC,IAAI;YACR,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QAED,WAAW,CAAC,IAAI;YACd,OAAO,OAAO,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,QAAQ,CAAC,IAAI;YACX,OAAO,OAAO,CAAC,iBAAiB,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxG,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,78 +1,31 @@
1
- /**
2
- * MCP wiring for the linkify core: vault I/O + candidate universe for the
3
- * `oms_link_suggest` / `oms_link_apply` tools.
4
- *
5
- * The linkify core (mask → suggest → apply) is pure and dependency-injected; it
6
- * knows nothing about vaults, ontologies, or the filesystem. This module owns
7
- * exactly that translation and nothing else, so server.ts stays a dispatcher.
8
- *
9
- * Candidate identity is DERIVED, never cached. A candidate id is its body span,
10
- * and apply re-runs the same deterministic suggest pass over the note as it
11
- * exists right now. Two consequences that matter: the server holds no
12
- * cross-call state (a restart changes nothing), and a note edited between
13
- * suggest and apply is caught by the base-hash check the kernel-facing
14
- * `applyLinks` performs before any write.
15
- */
16
- import type { WriteTargetSource } from "../conventions/write-protocol.js";
17
- import type { Ontology } from "../core/ontology/types.js";
18
- import { type ApplyResult } from "../engine/linkify/apply.js";
19
- import type { LinkCandidate, TermNote } from "../engine/linkify/types.js";
1
+ import type { ApplyResult } from "../kernel/engine/linkify/apply.js";
2
+ import type { LinkCandidate } from "../kernel/engine/linkify/types.js";
3
+ import { type LinkScope, type LinkWorkflowTarget } from "../kernel/link/workflow.js";
20
4
  /** A candidate as the MCP surface reports it: the core shape plus a stable id. */
21
5
  export interface IdentifiedCandidate extends LinkCandidate {
22
- /** Deterministic handle a client passes back to `oms_link_apply`. */
23
6
  readonly id: string;
24
7
  }
25
8
  /** Payload of a successful `oms_link_suggest` call. */
26
9
  export interface LinkSuggestion {
27
10
  readonly notePath: string;
28
- /** sha256 of the body the candidates were computed against (apply's token). */
29
11
  readonly baseContentHash: string;
30
12
  readonly candidateNotes: number;
31
13
  readonly candidates: readonly IdentifiedCandidate[];
32
14
  }
33
- /** Everything both link tools need to address a vault note. */
34
- export interface LinkToolTarget {
35
- readonly vault: string;
36
- readonly source: WriteTargetSource;
37
- readonly ontology: Ontology;
38
- /** Vault-relative markdown path of the note being linkified. */
39
- readonly notePath: string;
40
- }
15
+ /** Everything the MCP link operations need to address a vault note. */
16
+ export type LinkToolTarget = LinkWorkflowTarget;
41
17
  /** Restrict the candidate universe to one top-level vault folder. */
42
- export interface LinkScope {
43
- readonly folder?: string | undefined;
44
- }
45
- /**
46
- * Every `term`-bound note in the vault, with its declared surface forms.
47
- *
48
- * Concept binding comes from the ontology's folder contract (the same resolver
49
- * the write kernel uses), NOT from a frontmatter field a note can claim for
50
- * itself — a note cannot opt into being a link target by asserting it is one.
51
- */
52
- export declare function collectTermNotes(vault: string, ontology: Ontology, scope?: LinkScope): Promise<TermNote[]>;
53
- /**
54
- * Propose `[[wikilink]]` insertions for one note against the vault's term notes.
55
- *
56
- * Read-only: nothing is written and no state is retained. The returned
57
- * `baseContentHash` is the caller's optimistic-concurrency token for apply.
58
- */
59
- export declare function suggestLinksForNote(target: LinkToolTarget, scope?: LinkScope): Promise<LinkSuggestion>;
18
+ export type { LinkScope };
60
19
  /** Payload of an `oms_link_apply` call: the core result plus what was selected. */
61
20
  export interface LinkApplyOutcome {
62
21
  readonly notePath: string;
63
22
  readonly requestedIds: readonly string[];
64
- /** Requested ids that still name a live span in the note's current body. */
65
23
  readonly resolvedIds: readonly string[];
66
24
  readonly result: ApplyResult;
67
25
  }
68
- /**
69
- * Apply the selected candidates to a note and persist through the write kernel.
70
- *
71
- * The candidates are recomputed from the note's CURRENT body: ids that no
72
- * longer name a span simply do not resolve, and a body that drifted since
73
- * suggest fails the `baseContentHash` check inside `applyLinks` before any
74
- * write is attempted.
75
- */
26
+ /** Invoke the transport-neutral suggestion workflow and retain the MCP contract. */
27
+ export declare function suggestLinksForNote(target: LinkToolTarget, scope?: LinkScope): Promise<LinkSuggestion>;
28
+ /** Invoke the transport-neutral apply workflow and retain the MCP contract. */
76
29
  export declare function applyLinksForNote(target: LinkToolTarget, selection: {
77
30
  readonly baseContentHash: string;
78
31
  readonly candidateIds: readonly string[];
@@ -1,135 +1,11 @@
1
- /**
2
- * MCP wiring for the linkify core: vault I/O + candidate universe for the
3
- * `oms_link_suggest` / `oms_link_apply` tools.
4
- *
5
- * The linkify core (mask → suggest → apply) is pure and dependency-injected; it
6
- * knows nothing about vaults, ontologies, or the filesystem. This module owns
7
- * exactly that translation and nothing else, so server.ts stays a dispatcher.
8
- *
9
- * Candidate identity is DERIVED, never cached. A candidate id is its body span,
10
- * and apply re-runs the same deterministic suggest pass over the note as it
11
- * exists right now. Two consequences that matter: the server holds no
12
- * cross-call state (a restart changes nothing), and a note edited between
13
- * suggest and apply is caught by the base-hash check the kernel-facing
14
- * `applyLinks` performs before any write.
15
- */
16
- import { readdir, readFile } from "node:fs/promises";
17
- import path from "node:path";
18
- import { safeVaultNotePath, writeNote } from "../capture/safe.js";
19
- import { parseNote } from "../conventions/frontmatter.js";
20
- import { resolveConcept } from "../core/ontology/resolver.js";
21
- import { applyLinks, hashBody } from "../engine/linkify/apply.js";
22
- import { suggestLinks, TERM_CONCEPT, termBoundNotes } from "../engine/linkify/suggest.js";
23
- /** A candidate id is the body span it claims — stable across identical bodies. */
24
- function candidateId(candidate) {
25
- return `${String(candidate.startOffset)}-${String(candidate.endOffset)}`;
26
- }
27
- function identify(candidate) {
28
- return { ...candidate, id: candidateId(candidate) };
29
- }
30
- /** Walk vault markdown, skipping dotted, dependency, and internal directories. */
31
- async function* walkMarkdown(dir, base) {
32
- const entries = await readdir(dir, { withFileTypes: true });
33
- for (const entry of entries) {
34
- if (entry.name.startsWith(".") || entry.name === "node_modules")
35
- continue;
36
- const full = path.join(dir, entry.name);
37
- if (entry.isDirectory()) {
38
- yield* walkMarkdown(full, base);
39
- }
40
- else if (entry.isFile() && entry.name.endsWith(".md")) {
41
- yield path.relative(base, full).replace(/\\/g, "/");
42
- }
43
- }
44
- }
45
- /** Flatten a frontmatter `aliases` value to trimmed non-empty strings. */
46
- function aliasStrings(value) {
47
- if (Array.isArray(value))
48
- return value.flatMap(aliasStrings);
49
- if (typeof value !== "string")
50
- return [];
51
- const trimmed = value.trim();
52
- return trimmed ? [trimmed] : [];
53
- }
54
- /**
55
- * Every `term`-bound note in the vault, with its declared surface forms.
56
- *
57
- * Concept binding comes from the ontology's folder contract (the same resolver
58
- * the write kernel uses), NOT from a frontmatter field a note can claim for
59
- * itself — a note cannot opt into being a link target by asserting it is one.
60
- */
61
- export async function collectTermNotes(vault, ontology, scope = {}) {
62
- const root = scope.folder === undefined ? vault : path.join(vault, scope.folder);
63
- const notes = [];
64
- for await (const notePath of walkMarkdown(root, vault)) {
65
- const concept = resolveConcept(ontology, notePath);
66
- if (concept?.concept !== TERM_CONCEPT)
67
- continue;
68
- const raw = await readFile(path.join(vault, notePath), "utf-8");
69
- notes.push({
70
- path: notePath,
71
- concept: concept.concept,
72
- aliases: aliasStrings(parseNote(raw).frontmatter["aliases"]),
73
- });
74
- }
75
- return termBoundNotes(notes);
76
- }
77
- /** Read one vault note's body, refusing unsafe paths and missing files loudly. */
78
- async function readNoteBody(vault, notePath) {
79
- const fullPath = safeVaultNotePath(vault, notePath);
80
- const raw = await readFile(fullPath, "utf-8");
81
- return {
82
- normalized: path.relative(vault, fullPath).replace(/\\/g, "/"),
83
- body: parseNote(raw).body,
84
- };
85
- }
86
- /**
87
- * Propose `[[wikilink]]` insertions for one note against the vault's term notes.
88
- *
89
- * Read-only: nothing is written and no state is retained. The returned
90
- * `baseContentHash` is the caller's optimistic-concurrency token for apply.
91
- */
1
+ import { applyLinksForNote as applyWorkflowLinksForNote, suggestLinksForNote as suggestWorkflowLinksForNote, } from "../kernel/link/workflow.js";
2
+ /** Invoke the transport-neutral suggestion workflow and retain the MCP contract. */
92
3
  export async function suggestLinksForNote(target, scope = {}) {
93
- const { normalized, body } = await readNoteBody(target.vault, target.notePath);
94
- const notes = await collectTermNotes(target.vault, target.ontology, scope);
95
- const candidates = suggestLinks(body, notes, { notePath: normalized });
96
- return {
97
- notePath: normalized,
98
- baseContentHash: hashBody(body),
99
- candidateNotes: notes.length,
100
- candidates: candidates.map(identify),
101
- };
4
+ return suggestWorkflowLinksForNote(target, scope);
102
5
  }
103
- /**
104
- * Apply the selected candidates to a note and persist through the write kernel.
105
- *
106
- * The candidates are recomputed from the note's CURRENT body: ids that no
107
- * longer name a span simply do not resolve, and a body that drifted since
108
- * suggest fails the `baseContentHash` check inside `applyLinks` before any
109
- * write is attempted.
110
- */
6
+ /** Invoke the transport-neutral apply workflow and retain the MCP contract. */
111
7
  export async function applyLinksForNote(target, selection, scope = {}) {
112
- const { normalized, body } = await readNoteBody(target.vault, target.notePath);
113
- const notes = await collectTermNotes(target.vault, target.ontology, scope);
114
- const wanted = new Set(selection.candidateIds);
115
- const accepted = suggestLinks(body, notes, { notePath: normalized }).filter((candidate) => wanted.has(candidateId(candidate)));
116
- const result = await applyLinks({
117
- body,
118
- baseContentHash: selection.baseContentHash,
119
- accepted,
120
- writeNote,
121
- target: {
122
- target: { vault: target.vault, source: target.source },
123
- ontology: target.ontology,
124
- notePath: normalized,
125
- },
126
- });
127
- return {
128
- notePath: normalized,
129
- requestedIds: selection.candidateIds,
130
- resolvedIds: accepted.map(candidateId),
131
- result,
132
- };
8
+ return applyWorkflowLinksForNote(target, selection, scope);
133
9
  }
134
10
  /** The MCP-facing JSON shape of an apply outcome: applied body + receipt, or a typed refusal. */
135
11
  export function linkApplyPayload(outcome) {
@@ -1 +1 @@
1
- {"version":3,"file":"link-tools.js","sourceRoot":"","sources":["../../src/mcp/link-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"link-tools.js","sourceRoot":"","sources":["../../src/mcp/link-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,IAAI,yBAAyB,EAC9C,mBAAmB,IAAI,2BAA2B,GAGnD,MAAM,4BAA4B,CAAC;AA6BpC,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAsB,EAAE,QAAmB,EAAE;IACrF,OAAO,2BAA2B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACpD,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAsB,EACtB,SAAyF,EACzF,QAAmB,EAAE;IAErB,OAAO,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,gBAAgB,CAAC,OAAyB;IACxD,MAAM,MAAM,GAAG;QACb,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC;IACF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,OAAO,MAAM,CAAC,OAAO;QACnB,CAAC,CAAC;YACE,GAAG,MAAM;YACT,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;SACtC;QACH,CAAC,CAAC;YACE,GAAG,MAAM;YACT,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI;SAC5B,CAAC;AACR,CAAC"}
@@ -1,10 +1,17 @@
1
1
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
2
2
  import { type Tool } from "@modelcontextprotocol/sdk/types.js";
3
- import type { WriteTargetSource } from "../conventions/write-protocol.js";
4
- export declare const BASE_SERVER_INSTRUCTIONS = "Oh My Second Brain exposes ontology/status/cache/retrieval tools and the write tool. write is gated by a verified vault target (a vault inferred from the current directory is refused), vault confinement, and contract validation.";
3
+ import type { WriteTargetSource } from "../kernel/conventions/write-protocol.js";
4
+ import type { Reranker } from "../kernel/engine/retrieval/reranker.js";
5
+ export declare const BASE_SERVER_INSTRUCTIONS = "Oh My Second Brain exposes write, search, link, status, and doctor tools. oms_write and doctor repair operations are gated by a verified vault target (a vault inferred from the current directory is refused); oms_write also enforces vault confinement and contract validation.";
5
6
  export declare const omsMcpTools: Tool[];
6
7
  export interface OMSMcpServerOptions {
7
8
  vault: string;
9
+ /**
10
+ * Real cross-encoder used only for requests that explicitly set
11
+ * `rerank: true`. Without one, those requests fail rather than silently
12
+ * returning the unranked result.
13
+ */
14
+ reranker?: Reranker;
8
15
  /**
9
16
  * How the vault was resolved. The write surface trusts every source except
10
17
  * `cwd` (the server may have booted in an arbitrary directory - issue #58).