oh-my-second-brain 0.1.8 → 0.2.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 (466) hide show
  1. package/CHANGELOG.md +89 -0
  2. package/README.ko.md +127 -0
  3. package/README.md +128 -0
  4. package/adapters/README.md +8 -8
  5. package/adapters/claude-code/.claude-plugin/plugin.json +3 -2
  6. package/adapters/claude-code/.mcp.json +8 -0
  7. package/adapters/claude-code/CLAUDE.md +5 -6
  8. package/adapters/claude-code/skills/compile/SKILL.md +10 -35
  9. package/adapters/claude-code/skills/distill/SKILL.md +6 -26
  10. package/adapters/claude-code/skills/link/SKILL.md +87 -0
  11. package/adapters/claude-code/skills/retrieve/SKILL.md +4 -7
  12. package/adapters/claude-code/skills/setup/SKILL.md +5 -6
  13. package/adapters/claude-code/skills/uninstall/SKILL.md +1 -1
  14. package/adapters/claude-code/skills/wiki/SKILL.md +49 -24
  15. package/adapters/claude-code/skills/write/SKILL.md +16 -0
  16. package/adapters/codex/.codex-plugin/plugin.json +1 -1
  17. package/adapters/codex/AGENTS.md +2 -2
  18. package/adapters/codex/rules/oms.md +1 -1
  19. package/adapters/codex/skills/oms-compile/SKILL.md +7 -9
  20. package/adapters/codex/skills/oms-distill/SKILL.md +4 -9
  21. package/adapters/codex/skills/oms-link/SKILL.md +35 -0
  22. package/adapters/codex/skills/oms-retrieve/SKILL.md +5 -6
  23. package/adapters/codex/skills/oms-wiki/SKILL.md +28 -8
  24. package/adapters/codex/skills/oms-write/SKILL.md +10 -0
  25. package/adapters/hermes/README.md +3 -1
  26. package/adapters/hermes/SOUL.md +2 -3
  27. package/adapters/hermes/manifest.json +1 -1
  28. package/adapters/hermes/skills/compile/SKILL.md +5 -7
  29. package/adapters/hermes/skills/distill/SKILL.md +1 -3
  30. package/adapters/hermes/skills/link/SKILL.md +18 -0
  31. package/adapters/hermes/skills/retrieve/SKILL.md +5 -6
  32. package/adapters/hermes/skills/setup/SKILL.md +5 -2
  33. package/adapters/hermes/skills/wiki/SKILL.md +4 -2
  34. package/adapters/hermes/skills/write/SKILL.md +10 -0
  35. package/core/AGENTS.md +4 -2
  36. package/core/agents/librarian.md +3 -2
  37. package/core/ontology/concepts/term.yaml +12 -0
  38. package/core/ontology/taxonomy.yaml +3 -0
  39. package/core/skills/compile/SKILL.md +19 -18
  40. package/core/skills/distill/SKILL.md +13 -24
  41. package/core/skills/link/SKILL.md +130 -0
  42. package/core/skills/retrieve/SKILL.md +0 -1
  43. package/core/skills/setup/SKILL.md +12 -14
  44. package/core/skills/vault-lint/SKILL.md +1 -1
  45. package/core/skills/wiki/SKILL.md +109 -30
  46. package/core/skills/write/SKILL.md +15 -0
  47. package/dist/capture/safe.d.ts +61 -1
  48. package/dist/capture/safe.js +489 -66
  49. package/dist/capture/safe.js.map +1 -1
  50. package/dist/cli/args.d.ts +29 -0
  51. package/dist/cli/args.js +156 -0
  52. package/dist/cli/args.js.map +1 -0
  53. package/dist/cli/audit.d.ts +6 -0
  54. package/dist/cli/audit.js +93 -0
  55. package/dist/cli/audit.js.map +1 -0
  56. package/dist/cli/claude-install-plan.d.ts +10 -0
  57. package/dist/cli/claude-install-plan.js +26 -0
  58. package/dist/cli/claude-install-plan.js.map +1 -0
  59. package/dist/cli/doctor-lint.d.ts +11 -0
  60. package/dist/cli/doctor-lint.js +86 -0
  61. package/dist/cli/doctor-lint.js.map +1 -0
  62. package/dist/cli/global-writeback.d.ts +31 -0
  63. package/dist/cli/global-writeback.js +73 -0
  64. package/dist/cli/global-writeback.js.map +1 -0
  65. package/dist/cli/host-commands.d.ts +30 -0
  66. package/dist/cli/host-commands.js +89 -0
  67. package/dist/cli/host-commands.js.map +1 -0
  68. package/dist/cli/link-command.d.ts +9 -0
  69. package/dist/cli/link-command.js +47 -0
  70. package/dist/cli/link-command.js.map +1 -0
  71. package/dist/cli/linkify.d.ts +23 -0
  72. package/dist/cli/linkify.js +118 -0
  73. package/dist/cli/linkify.js.map +1 -0
  74. package/dist/cli/oms.d.ts +8 -32
  75. package/dist/cli/oms.js +100 -703
  76. package/dist/cli/oms.js.map +1 -1
  77. package/dist/cli/semantic-args.d.ts +1 -2
  78. package/dist/cli/semantic-args.js +4 -7
  79. package/dist/cli/semantic-args.js.map +1 -1
  80. package/dist/cli/semantic-http.d.ts +0 -3
  81. package/dist/cli/semantic-http.js +40 -45
  82. package/dist/cli/semantic-http.js.map +1 -1
  83. package/dist/cli/semantic-usage.js +10 -9
  84. package/dist/cli/semantic-usage.js.map +1 -1
  85. package/dist/cli/semantic.js +99 -137
  86. package/dist/cli/semantic.js.map +1 -1
  87. package/dist/cli/setup-command.d.ts +11 -0
  88. package/dist/cli/setup-command.js +196 -0
  89. package/dist/cli/setup-command.js.map +1 -0
  90. package/dist/cli/setup-documents.d.ts +15 -0
  91. package/dist/cli/setup-documents.js +149 -0
  92. package/dist/cli/setup-documents.js.map +1 -0
  93. package/dist/cli/update-notice.d.ts +10 -0
  94. package/dist/cli/update-notice.js +42 -0
  95. package/dist/cli/update-notice.js.map +1 -0
  96. package/dist/cli/usage.d.ts +4 -0
  97. package/dist/cli/usage.js +102 -0
  98. package/dist/cli/usage.js.map +1 -0
  99. package/dist/conventions/lint.js +12 -33
  100. package/dist/conventions/lint.js.map +1 -1
  101. package/dist/conventions/report.d.ts +62 -0
  102. package/dist/conventions/report.js +217 -0
  103. package/dist/conventions/report.js.map +1 -0
  104. package/dist/conventions/validate.d.ts +1 -1
  105. package/dist/conventions/vault-walk.d.ts +38 -0
  106. package/dist/conventions/vault-walk.js +80 -0
  107. package/dist/conventions/vault-walk.js.map +1 -0
  108. package/dist/conventions/write-contract.d.ts +27 -0
  109. package/dist/conventions/write-contract.js +91 -0
  110. package/dist/conventions/write-contract.js.map +1 -0
  111. package/dist/conventions/write-protocol.d.ts +39 -0
  112. package/dist/conventions/write-protocol.js +44 -0
  113. package/dist/conventions/write-protocol.js.map +1 -0
  114. package/dist/core/ontology/loader.d.ts +2 -0
  115. package/dist/{ontology → core/ontology}/loader.js +11 -20
  116. package/dist/core/ontology/loader.js.map +1 -0
  117. package/dist/core/ontology/resolver.d.ts +2 -0
  118. package/dist/{ontology → core/ontology}/resolver.js +1 -15
  119. package/dist/core/ontology/resolver.js.map +1 -0
  120. package/dist/core/ontology/types.d.ts +47 -0
  121. package/dist/core/ontology/types.js +2 -0
  122. package/dist/core/ontology/types.js.map +1 -0
  123. package/dist/core/runtime/assets.d.ts +20 -0
  124. package/dist/core/runtime/assets.js +66 -0
  125. package/dist/core/runtime/assets.js.map +1 -0
  126. package/dist/engine/assemble.d.ts +28 -72
  127. package/dist/engine/assemble.js +77 -61
  128. package/dist/engine/assemble.js.map +1 -1
  129. package/dist/engine/conventions/vault-lint.d.ts +30 -2
  130. package/dist/engine/conventions/vault-lint.js +93 -97
  131. package/dist/engine/conventions/vault-lint.js.map +1 -1
  132. package/dist/engine/embed/deferred.d.ts +3 -4
  133. package/dist/engine/embed/deferred.js +10 -7
  134. package/dist/engine/embed/deferred.js.map +1 -1
  135. package/dist/engine/embed/identity.d.ts +11 -0
  136. package/dist/engine/embed/identity.js +15 -0
  137. package/dist/engine/embed/identity.js.map +1 -0
  138. package/dist/engine/embed/provider.d.ts +12 -13
  139. package/dist/engine/embed/provider.js +30 -27
  140. package/dist/engine/embed/provider.js.map +1 -1
  141. package/dist/engine/embed/store.d.ts +48 -27
  142. package/dist/engine/embed/store.js +281 -98
  143. package/dist/engine/embed/store.js.map +1 -1
  144. package/dist/engine/embed/sync.d.ts +17 -47
  145. package/dist/engine/embed/sync.js +233 -69
  146. package/dist/engine/embed/sync.js.map +1 -1
  147. package/dist/engine/graph/builder.d.ts +1 -1
  148. package/dist/engine/graph/builder.js +1 -1
  149. package/dist/engine/graph/explore.d.ts +2 -2
  150. package/dist/engine/graph/explore.js +0 -0
  151. package/dist/engine/graph/resolver.d.ts +17 -0
  152. package/dist/engine/graph/resolver.js +46 -11
  153. package/dist/engine/graph/resolver.js.map +1 -1
  154. package/dist/engine/linkify/apply.d.ts +56 -0
  155. package/dist/engine/linkify/apply.js +65 -0
  156. package/dist/engine/linkify/apply.js.map +1 -0
  157. package/dist/engine/linkify/josa.d.ts +58 -0
  158. package/dist/engine/linkify/josa.js +133 -0
  159. package/dist/engine/linkify/josa.js.map +1 -0
  160. package/dist/engine/linkify/mask.d.ts +29 -0
  161. package/dist/engine/linkify/mask.js +173 -0
  162. package/dist/engine/linkify/mask.js.map +1 -0
  163. package/dist/engine/linkify/suggest.d.ts +52 -0
  164. package/dist/engine/linkify/suggest.js +181 -0
  165. package/dist/engine/linkify/suggest.js.map +1 -0
  166. package/dist/engine/linkify/types.d.ts +68 -0
  167. package/dist/engine/linkify/types.js +12 -0
  168. package/dist/engine/linkify/types.js.map +1 -0
  169. package/dist/engine/mcp/facade.d.ts +12 -18
  170. package/dist/engine/mcp/facade.js +30 -80
  171. package/dist/engine/mcp/facade.js.map +1 -1
  172. package/dist/engine/mcp/op-mappers.d.ts +3 -9
  173. package/dist/engine/mcp/op-mappers.js +2 -30
  174. package/dist/engine/mcp/op-mappers.js.map +1 -1
  175. package/dist/engine/mcp/types.d.ts +5 -29
  176. package/dist/engine/tracer.js +6 -2
  177. package/dist/engine/tracer.js.map +1 -1
  178. package/dist/engine/types.d.ts +8 -3
  179. package/dist/graph/cache.d.ts +1 -11
  180. package/dist/graph/cache.js +1 -44
  181. package/dist/graph/cache.js.map +1 -1
  182. package/dist/graph/explore.js +88 -137
  183. package/dist/graph/explore.js.map +1 -1
  184. package/dist/harness/surface-registry.d.ts +56 -0
  185. package/dist/harness/surface-registry.js +397 -0
  186. package/dist/harness/surface-registry.js.map +1 -0
  187. package/dist/harness/validation.d.ts +9 -0
  188. package/dist/harness/validation.js +201 -0
  189. package/dist/harness/validation.js.map +1 -0
  190. package/dist/hook/post-tool-use.js +2 -2
  191. package/dist/hook/post-tool-use.js.map +1 -1
  192. package/dist/index.d.ts +7 -5
  193. package/dist/index.js +7 -5
  194. package/dist/index.js.map +1 -1
  195. package/dist/install/adapter-source.d.ts +14 -0
  196. package/dist/install/adapter-source.js +45 -0
  197. package/dist/install/adapter-source.js.map +1 -0
  198. package/dist/install/claude-hooks.d.ts +13 -0
  199. package/dist/install/claude-hooks.js +411 -0
  200. package/dist/install/claude-hooks.js.map +1 -0
  201. package/dist/install/claude-marketplace.d.ts +44 -0
  202. package/dist/install/claude-marketplace.js +89 -0
  203. package/dist/install/claude-marketplace.js.map +1 -0
  204. package/dist/install/claude.d.ts +4 -0
  205. package/dist/install/claude.js +216 -0
  206. package/dist/install/claude.js.map +1 -0
  207. package/dist/install/codex.d.ts +24 -0
  208. package/dist/install/codex.js +193 -0
  209. package/dist/install/codex.js.map +1 -0
  210. package/dist/install/common.d.ts +34 -0
  211. package/dist/install/common.js +122 -0
  212. package/dist/install/common.js.map +1 -0
  213. package/dist/install/hermes.d.ts +4 -0
  214. package/dist/install/hermes.js +78 -0
  215. package/dist/install/hermes.js.map +1 -0
  216. package/dist/install/hosts.d.ts +6 -56
  217. package/dist/install/hosts.js +65 -610
  218. package/dist/install/hosts.js.map +1 -1
  219. package/dist/install/types.d.ts +34 -0
  220. package/dist/install/types.js +2 -0
  221. package/dist/install/types.js.map +1 -0
  222. package/dist/link/convention-note.d.ts +10 -0
  223. package/dist/link/convention-note.js +59 -0
  224. package/dist/link/convention-note.js.map +1 -0
  225. package/dist/link/global-config.d.ts +22 -0
  226. package/dist/link/global-config.js +69 -0
  227. package/dist/link/global-config.js.map +1 -0
  228. package/dist/link/link.d.ts +101 -0
  229. package/dist/link/link.js +265 -0
  230. package/dist/link/link.js.map +1 -0
  231. package/dist/mcp/engine-morning-backend.d.ts +12 -17
  232. package/dist/mcp/engine-morning-backend.js +25 -131
  233. package/dist/mcp/engine-morning-backend.js.map +1 -1
  234. package/dist/mcp/link-tools.d.ts +81 -0
  235. package/dist/mcp/link-tools.js +157 -0
  236. package/dist/mcp/link-tools.js.map +1 -0
  237. package/dist/mcp/semantic-engine.d.ts +32 -0
  238. package/dist/mcp/semantic-engine.js +52 -0
  239. package/dist/mcp/semantic-engine.js.map +1 -0
  240. package/dist/mcp/semantic-retrieve-args.d.ts +1 -5
  241. package/dist/mcp/semantic-retrieve-args.js +1 -26
  242. package/dist/mcp/semantic-retrieve-args.js.map +1 -1
  243. package/dist/mcp/semantic-retrieve-schema.d.ts +0 -14
  244. package/dist/mcp/semantic-retrieve-schema.js +0 -5
  245. package/dist/mcp/semantic-retrieve-schema.js.map +1 -1
  246. package/dist/mcp/semantic-retrieve.d.ts +12 -18
  247. package/dist/mcp/semantic-retrieve.js +40 -71
  248. package/dist/mcp/semantic-retrieve.js.map +1 -1
  249. package/dist/mcp/semantic-tool-schemas.js +7 -24
  250. package/dist/mcp/semantic-tool-schemas.js.map +1 -1
  251. package/dist/mcp/server.d.ts +7 -0
  252. package/dist/mcp/server.js +224 -162
  253. package/dist/mcp/server.js.map +1 -1
  254. package/dist/mcp/update-notice.d.ts +51 -0
  255. package/dist/mcp/update-notice.js +196 -0
  256. package/dist/mcp/update-notice.js.map +1 -0
  257. package/dist/ontology/active.d.ts +7 -0
  258. package/dist/ontology/active.js +41 -0
  259. package/dist/ontology/active.js.map +1 -0
  260. package/dist/retrieve/morning.d.ts +10 -18
  261. package/dist/retrieve/morning.js +2 -26
  262. package/dist/retrieve/morning.js.map +1 -1
  263. package/dist/retrieve/semantic-contract.d.ts +10 -0
  264. package/dist/retrieve/semantic-contract.js +2 -0
  265. package/dist/retrieve/semantic-contract.js.map +1 -0
  266. package/dist/setup/axis.d.ts +22 -3
  267. package/dist/setup/axis.js +82 -35
  268. package/dist/setup/axis.js.map +1 -1
  269. package/dist/update/update.d.ts +12 -0
  270. package/dist/update/update.js +2 -2
  271. package/dist/update/update.js.map +1 -1
  272. package/docs/install.md +43 -7
  273. package/docs/release.md +109 -17
  274. package/package.json +11 -3
  275. package/scripts/install.sh +1 -1
  276. package/adapters/claude-code/skills/capture/SKILL.md +0 -50
  277. package/adapters/codex/skills/oms-capture/SKILL.md +0 -16
  278. package/adapters/hermes/skills/capture/SKILL.md +0 -16
  279. package/core/skills/capture/SKILL.md +0 -50
  280. package/dist/adapt/HostAdapter.d.ts +0 -21
  281. package/dist/adapt/HostAdapter.js +0 -10
  282. package/dist/adapt/HostAdapter.js.map +0 -1
  283. package/dist/adapt/claudeCode.d.ts +0 -9
  284. package/dist/adapt/claudeCode.js +0 -15
  285. package/dist/adapt/claudeCode.js.map +0 -1
  286. package/dist/adapt/codex.d.ts +0 -9
  287. package/dist/adapt/codex.js +0 -15
  288. package/dist/adapt/codex.js.map +0 -1
  289. package/dist/adapt/hermes.d.ts +0 -9
  290. package/dist/adapt/hermes.js +0 -15
  291. package/dist/adapt/hermes.js.map +0 -1
  292. package/dist/cli/semantic-metadata-commands.d.ts +0 -3
  293. package/dist/cli/semantic-metadata-commands.js +0 -115
  294. package/dist/cli/semantic-metadata-commands.js.map +0 -1
  295. package/dist/engine/compile/cascade.d.ts +0 -35
  296. package/dist/engine/compile/cascade.js +0 -59
  297. package/dist/engine/compile/cascade.js.map +0 -1
  298. package/dist/engine/compile/cot.d.ts +0 -30
  299. package/dist/engine/compile/cot.js +0 -153
  300. package/dist/engine/compile/cot.js.map +0 -1
  301. package/dist/engine/compile/phases.d.ts +0 -47
  302. package/dist/engine/compile/phases.js +0 -101
  303. package/dist/engine/compile/phases.js.map +0 -1
  304. package/dist/engine/compile/provenance.d.ts +0 -45
  305. package/dist/engine/compile/provenance.js +0 -103
  306. package/dist/engine/compile/provenance.js.map +0 -1
  307. package/dist/engine/compile/sha-cache.d.ts +0 -42
  308. package/dist/engine/compile/sha-cache.js +0 -86
  309. package/dist/engine/compile/sha-cache.js.map +0 -1
  310. package/dist/engine/compile/types.d.ts +0 -71
  311. package/dist/engine/compile/types.js +0 -9
  312. package/dist/engine/compile/types.js.map +0 -1
  313. package/dist/engine/compile/worker.d.ts +0 -47
  314. package/dist/engine/compile/worker.js +0 -75
  315. package/dist/engine/compile/worker.js.map +0 -1
  316. package/dist/engine/distill/analyzer.d.ts +0 -51
  317. package/dist/engine/distill/analyzer.js +0 -279
  318. package/dist/engine/distill/analyzer.js.map +0 -1
  319. package/dist/engine/distill/clean-room.d.ts +0 -46
  320. package/dist/engine/distill/clean-room.js +0 -131
  321. package/dist/engine/distill/clean-room.js.map +0 -1
  322. package/dist/engine/distill/report.d.ts +0 -23
  323. package/dist/engine/distill/report.js +0 -107
  324. package/dist/engine/distill/report.js.map +0 -1
  325. package/dist/engine/distill/types.d.ts +0 -89
  326. package/dist/engine/distill/types.js +0 -9
  327. package/dist/engine/distill/types.js.map +0 -1
  328. package/dist/engine/embed/pull.d.ts +0 -51
  329. package/dist/engine/embed/pull.js +0 -90
  330. package/dist/engine/embed/pull.js.map +0 -1
  331. package/dist/engine/graph/community.d.ts +0 -38
  332. package/dist/engine/graph/community.js +0 -122
  333. package/dist/engine/graph/community.js.map +0 -1
  334. package/dist/engine/index.d.ts +0 -5
  335. package/dist/engine/index.js +0 -2
  336. package/dist/engine/index.js.map +0 -1
  337. package/dist/engine/mcp/index.d.ts +0 -15
  338. package/dist/engine/mcp/index.js +0 -19
  339. package/dist/engine/mcp/index.js.map +0 -1
  340. package/dist/engine/mcp/retrieve-mapper.d.ts +0 -38
  341. package/dist/engine/mcp/retrieve-mapper.js +0 -96
  342. package/dist/engine/mcp/retrieve-mapper.js.map +0 -1
  343. package/dist/engine/setup/ambiguity.d.ts +0 -39
  344. package/dist/engine/setup/ambiguity.js +0 -50
  345. package/dist/engine/setup/ambiguity.js.map +0 -1
  346. package/dist/engine/setup/types.d.ts +0 -71
  347. package/dist/engine/setup/types.js +0 -22
  348. package/dist/engine/setup/types.js.map +0 -1
  349. package/dist/engine/setup/writer.d.ts +0 -32
  350. package/dist/engine/setup/writer.js +0 -77
  351. package/dist/engine/setup/writer.js.map +0 -1
  352. package/dist/engine/wiki/collection.d.ts +0 -91
  353. package/dist/engine/wiki/collection.js +0 -188
  354. package/dist/engine/wiki/collection.js.map +0 -1
  355. package/dist/engine/wiki/ledger.d.ts +0 -59
  356. package/dist/engine/wiki/ledger.js +0 -130
  357. package/dist/engine/wiki/ledger.js.map +0 -1
  358. package/dist/engine/wiki/lint.d.ts +0 -38
  359. package/dist/engine/wiki/lint.js +0 -186
  360. package/dist/engine/wiki/lint.js.map +0 -1
  361. package/dist/engine/wiki/navigation.d.ts +0 -40
  362. package/dist/engine/wiki/navigation.js +0 -83
  363. package/dist/engine/wiki/navigation.js.map +0 -1
  364. package/dist/engine/wiki/types.d.ts +0 -54
  365. package/dist/engine/wiki/types.js +0 -7
  366. package/dist/engine/wiki/types.js.map +0 -1
  367. package/dist/ontology/loader.d.ts +0 -13
  368. package/dist/ontology/loader.js.map +0 -1
  369. package/dist/ontology/resolver.d.ts +0 -13
  370. package/dist/ontology/resolver.js.map +0 -1
  371. package/dist/ontology/types.d.ts +0 -72
  372. package/dist/ontology/types.js +0 -12
  373. package/dist/ontology/types.js.map +0 -1
  374. package/dist/retrieve/embedding-sync.d.ts +0 -3
  375. package/dist/retrieve/embedding-sync.js +0 -21
  376. package/dist/retrieve/embedding-sync.js.map +0 -1
  377. package/dist/runtime/assets.d.ts +0 -7
  378. package/dist/runtime/assets.js +0 -13
  379. package/dist/runtime/assets.js.map +0 -1
  380. package/dist/search/semantic-collections.d.ts +0 -32
  381. package/dist/search/semantic-collections.js +0 -68
  382. package/dist/search/semantic-collections.js.map +0 -1
  383. package/dist/search/semantic-contexts.d.ts +0 -21
  384. package/dist/search/semantic-contexts.js +0 -28
  385. package/dist/search/semantic-contexts.js.map +0 -1
  386. package/dist/search/semantic-diagnostics.d.ts +0 -16
  387. package/dist/search/semantic-diagnostics.js +0 -110
  388. package/dist/search/semantic-diagnostics.js.map +0 -1
  389. package/dist/search/semantic-documents.d.ts +0 -3
  390. package/dist/search/semantic-documents.js +0 -150
  391. package/dist/search/semantic-documents.js.map +0 -1
  392. package/dist/search/semantic-embedding-hash.d.ts +0 -3
  393. package/dist/search/semantic-embedding-hash.js +0 -30
  394. package/dist/search/semantic-embedding-hash.js.map +0 -1
  395. package/dist/search/semantic-embedding-provider.d.ts +0 -9
  396. package/dist/search/semantic-embedding-provider.js +0 -58
  397. package/dist/search/semantic-embedding-provider.js.map +0 -1
  398. package/dist/search/semantic-index-build.d.ts +0 -13
  399. package/dist/search/semantic-index-build.js +0 -101
  400. package/dist/search/semantic-index-build.js.map +0 -1
  401. package/dist/search/semantic-index-core.d.ts +0 -21
  402. package/dist/search/semantic-index-core.js +0 -106
  403. package/dist/search/semantic-index-core.js.map +0 -1
  404. package/dist/search/semantic-index-io.d.ts +0 -19
  405. package/dist/search/semantic-index-io.js +0 -214
  406. package/dist/search/semantic-index-io.js.map +0 -1
  407. package/dist/search/semantic-index-types.d.ts +0 -50
  408. package/dist/search/semantic-index-types.js +0 -2
  409. package/dist/search/semantic-index-types.js.map +0 -1
  410. package/dist/search/semantic-index.d.ts +0 -4
  411. package/dist/search/semantic-index.js +0 -4
  412. package/dist/search/semantic-index.js.map +0 -1
  413. package/dist/search/semantic-listing.d.ts +0 -12
  414. package/dist/search/semantic-listing.js +0 -64
  415. package/dist/search/semantic-listing.js.map +0 -1
  416. package/dist/search/semantic-maintenance-shared.d.ts +0 -15
  417. package/dist/search/semantic-maintenance-shared.js +0 -43
  418. package/dist/search/semantic-maintenance-shared.js.map +0 -1
  419. package/dist/search/semantic-maintenance-types.d.ts +0 -103
  420. package/dist/search/semantic-maintenance-types.js +0 -2
  421. package/dist/search/semantic-maintenance-types.js.map +0 -1
  422. package/dist/search/semantic-maintenance.d.ts +0 -4
  423. package/dist/search/semantic-maintenance.js +0 -5
  424. package/dist/search/semantic-maintenance.js.map +0 -1
  425. package/dist/search/semantic-provider-types.d.ts +0 -34
  426. package/dist/search/semantic-provider-types.js +0 -2
  427. package/dist/search/semantic-provider-types.js.map +0 -1
  428. package/dist/search/semantic-query-types.d.ts +0 -83
  429. package/dist/search/semantic-query-types.js +0 -2
  430. package/dist/search/semantic-query-types.js.map +0 -1
  431. package/dist/search/semantic-query.d.ts +0 -2
  432. package/dist/search/semantic-query.js +0 -188
  433. package/dist/search/semantic-query.js.map +0 -1
  434. package/dist/search/semantic-sqlite-db.d.ts +0 -18
  435. package/dist/search/semantic-sqlite-db.js +0 -87
  436. package/dist/search/semantic-sqlite-db.js.map +0 -1
  437. package/dist/search/semantic-sqlite-query.d.ts +0 -2
  438. package/dist/search/semantic-sqlite-query.js +0 -128
  439. package/dist/search/semantic-sqlite-query.js.map +0 -1
  440. package/dist/search/semantic-sqlite-read.d.ts +0 -5
  441. package/dist/search/semantic-sqlite-read.js +0 -104
  442. package/dist/search/semantic-sqlite-read.js.map +0 -1
  443. package/dist/search/semantic-sqlite-write.d.ts +0 -7
  444. package/dist/search/semantic-sqlite-write.js +0 -66
  445. package/dist/search/semantic-sqlite-write.js.map +0 -1
  446. package/dist/search/semantic-store.d.ts +0 -15
  447. package/dist/search/semantic-store.js +0 -17
  448. package/dist/search/semantic-store.js.map +0 -1
  449. package/dist/search/semantic-sync-types.d.ts +0 -47
  450. package/dist/search/semantic-sync-types.js +0 -2
  451. package/dist/search/semantic-sync-types.js.map +0 -1
  452. package/dist/search/semantic-sync.d.ts +0 -13
  453. package/dist/search/semantic-sync.js +0 -131
  454. package/dist/search/semantic-sync.js.map +0 -1
  455. package/dist/search/semantic-test-fixtures.d.ts +0 -1
  456. package/dist/search/semantic-test-fixtures.js +0 -38
  457. package/dist/search/semantic-test-fixtures.js.map +0 -1
  458. package/dist/search/semantic-token.d.ts +0 -25
  459. package/dist/search/semantic-token.js +0 -114
  460. package/dist/search/semantic-token.js.map +0 -1
  461. package/dist/search/semantic-types.d.ts +0 -5
  462. package/dist/search/semantic-types.js +0 -2
  463. package/dist/search/semantic-types.js.map +0 -1
  464. package/dist/search/semantic.d.ts +0 -6
  465. package/dist/search/semantic.js +0 -6
  466. package/dist/search/semantic.js.map +0 -1
@@ -1,57 +1,25 @@
1
- import { readFile, stat } from "node:fs/promises";
1
+ import { readFile } from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
4
4
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
5
5
  import { CallToolRequestSchema, ListResourceTemplatesRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
6
6
  import { parseNote } from "../conventions/frontmatter.js";
7
7
  import { validateFrontmatter } from "../conventions/validate.js";
8
- import { commitCapture, prepareCapture, safeVaultNotePath, } from "../capture/safe.js";
8
+ import { lintVault } from "../engine/conventions/vault-lint.js";
9
+ import { safeVaultNotePath, writeNote, } from "../capture/safe.js";
9
10
  import { buildGraphCache, graphCacheStatus, graphCachePath, lazyLoadNoteBody, } from "../graph/cache.js";
10
- import { loadOntology } from "../ontology/loader.js";
11
- import { resolveConcept } from "../ontology/resolver.js";
11
+ import { readBundledPackageVersion } from "../core/runtime/assets.js";
12
+ import { resolveActiveOntology } from "../ontology/active.js";
13
+ import { resolveConcept } from "../core/ontology/resolver.js";
12
14
  import { retrieveMorningContext } from "../retrieve/morning.js";
13
15
  import { makeEngineMorningBackend } from "./engine-morning-backend.js";
14
- import { resolveBundledAssetPaths } from "../runtime/assets.js";
15
- import { handleSemanticTool, isEngineSemanticOp, isEngineDocumentOp, semanticMcpTools, semanticOptionsFromArgs, retrieveContextSemanticInputProperties, } from "./semantic-retrieve.js";
16
- import { getSemanticDocument } from "../search/semantic.js";
17
- import { assembleEngine, assembleGraphOnlyEngine } from "../engine/assemble.js";
18
- const SERVER_VERSION = "0.0.0";
19
- const bundledAssets = resolveBundledAssetPaths();
20
- async function activeOntology(vault) {
21
- const localOntologyDir = path.join(vault, ".oms");
22
- const omsKind = await pathKind(localOntologyDir);
23
- if (omsKind === "missing") {
24
- return { ontology: await loadOntology(bundledAssets.ontologyDir), source: "bundled" };
25
- }
26
- if (omsKind !== "directory") {
27
- throw new Error("Local .oms exists but is not a directory.");
28
- }
29
- const taxonomyKind = await pathKind(path.join(localOntologyDir, "taxonomy.yaml"));
30
- const conceptsKind = await pathKind(path.join(localOntologyDir, "concepts"));
31
- if (taxonomyKind === "missing" && conceptsKind === "missing") {
32
- return { ontology: await loadOntology(bundledAssets.ontologyDir), source: "bundled" };
33
- }
34
- if (taxonomyKind !== "file" || conceptsKind !== "directory") {
35
- throw new Error("Local .oms ontology is incomplete; expected .oms/taxonomy.yaml and .oms/concepts/.");
36
- }
37
- return { ontology: await loadOntology(localOntologyDir), source: "vault" };
38
- }
39
- async function pathKind(target) {
40
- try {
41
- const info = await stat(target);
42
- if (info.isFile())
43
- return "file";
44
- if (info.isDirectory())
45
- return "directory";
46
- return "other";
47
- }
48
- catch (error) {
49
- if (error instanceof Error && "code" in error && error.code === "ENOENT") {
50
- return "missing";
51
- }
52
- throw error;
53
- }
54
- }
16
+ import { handleSemanticTool, isEngineSemanticOp, isEngineDocumentOp, isModelOptionalSemanticQueryOp, semanticMcpTools, semanticOptionsFromArgs, retrieveContextSemanticInputProperties, } from "./semantic-retrieve.js";
17
+ import { assembleCoreSemanticEngine, assembleGraphOnlyEngine } from "../engine/assemble.js";
18
+ import { assembleFullSemanticEngine, embeddingConfigPresent } from "./semantic-engine.js";
19
+ import { applyLinksForNote, linkApplyPayload, suggestLinksForNote } from "./link-tools.js";
20
+ import { buildServerInstructions, cachedUpdateNotice, scheduleUpdateNoticeRefresh, } from "./update-notice.js";
21
+ const SERVER_VERSION = readBundledPackageVersion();
22
+ export 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.";
55
23
  function jsonText(value) {
56
24
  return {
57
25
  content: [
@@ -237,17 +205,42 @@ export const omsMcpTools = [
237
205
  },
238
206
  },
239
207
  {
240
- name: "oms_capture_prepare",
241
- title: "Oh My Second Brain capture prepare",
242
- description: "Plan a safe capture: choose folder/concept, surface missing fields, or route ambiguous input to inbox without writing.",
208
+ name: "oms_vault_audit",
209
+ title: "Oh My Second Brain vault audit",
210
+ description: "Scan vault notes against the active ontology and return a structured violation report. Read-only; the CLI counterpart is `oms audit`.",
243
211
  inputSchema: {
244
212
  type: "object",
245
213
  properties: {
246
- concept: { type: "string" },
247
- folder: { type: "string" },
248
- filename: { type: "string" },
249
- frontmatter: { type: "object" },
214
+ folder: {
215
+ type: "string",
216
+ description: "Restrict the scan to one top-level vault folder, for example \"references\".",
217
+ },
218
+ },
219
+ },
220
+ annotations: {
221
+ readOnlyHint: true,
222
+ destructiveHint: false,
223
+ idempotentHint: true,
224
+ openWorldHint: false,
225
+ },
226
+ },
227
+ {
228
+ name: "oms_link_suggest",
229
+ title: "Oh My Second Brain link suggest",
230
+ description: "Propose [[wikilink]] insertions for one note against the vault's term notes. Read-only: returns ranked candidates plus the baseContentHash oms_link_apply requires.",
231
+ inputSchema: {
232
+ type: "object",
233
+ properties: {
234
+ notePath: {
235
+ type: "string",
236
+ description: "Vault-relative markdown note path to linkify, for example notes/sage.md.",
237
+ },
238
+ folder: {
239
+ type: "string",
240
+ description: "Restrict the term-note candidate universe to one top-level vault folder.",
241
+ },
250
242
  },
243
+ required: ["notePath"],
251
244
  },
252
245
  annotations: {
253
246
  readOnlyHint: true,
@@ -257,18 +250,54 @@ export const omsMcpTools = [
257
250
  },
258
251
  },
259
252
  {
260
- name: "oms_capture_commit",
261
- title: "Oh My Second Brain capture commit",
262
- description: "Write or append a note only after vault path confinement and contract validation pass.",
253
+ name: "oms_link_apply",
254
+ title: "Oh My Second Brain link apply",
255
+ description: "Splice accepted oms_link_suggest candidates into a note and persist through the write kernel. Refuses without writing when baseContentHash no longer matches the note.",
256
+ inputSchema: {
257
+ type: "object",
258
+ properties: {
259
+ notePath: {
260
+ type: "string",
261
+ description: "Vault-relative markdown note path returned by oms_link_suggest.",
262
+ },
263
+ baseContentHash: {
264
+ type: "string",
265
+ description: "The baseContentHash from the oms_link_suggest call the candidates came from.",
266
+ },
267
+ candidateIds: {
268
+ type: "array",
269
+ items: { type: "string" },
270
+ description: "Ids of the accepted candidates from that same oms_link_suggest call.",
271
+ },
272
+ folder: {
273
+ type: "string",
274
+ description: "Same candidate-universe folder scope used for the suggest call.",
275
+ },
276
+ },
277
+ required: ["notePath", "baseContentHash", "candidateIds"],
278
+ },
279
+ annotations: {
280
+ readOnlyHint: false,
281
+ destructiveHint: true,
282
+ idempotentHint: false,
283
+ openWorldHint: false,
284
+ },
285
+ },
286
+ {
287
+ name: "write",
288
+ title: "Oh My Second Brain write",
289
+ description: "Write a vault note through the kernel-owned .oms contract. Modes: create, append, update. Returns ask, inbox, written, or rejected.",
263
290
  inputSchema: {
264
291
  type: "object",
265
292
  properties: {
293
+ mode: { type: "string", enum: ["create", "append", "update"] },
266
294
  notePath: { type: "string" },
295
+ concept: { type: "string" },
296
+ folder: { type: "string" },
297
+ filename: { type: "string" },
267
298
  frontmatter: { type: "object" },
268
299
  body: { type: "string" },
269
- mode: { type: "string", enum: ["create", "append"] },
270
300
  },
271
- required: ["notePath", "frontmatter", "body", "mode"],
272
301
  },
273
302
  annotations: {
274
303
  readOnlyHint: false,
@@ -280,58 +309,67 @@ export const omsMcpTools = [
280
309
  ];
281
310
  export function createOMSMcpServer(opts) {
282
311
  const vault = path.resolve(opts.vault);
312
+ const source = opts.source;
283
313
  // Native engine — graph layer (boot): assembled model-free via deferred
284
314
  // (throw-on-use) embedding primitives. Axis-first retrieval and the derived
285
315
  // graph cache status scan the vault off the filesystem and need no model.
286
316
  // No model load, no SQLite store, no watcher: side-effect-free per boot (R2).
287
317
  const engine = assembleGraphOnlyEngine({ vault });
288
318
  // Native engine — semantic layer (lazy): assembled on the FIRST semantic op,
289
- // not at boot, so boot stays stateless (R2). assembleEngine opens the engine
290
- // SQLite store on construction and loads the embedding model on first embed().
291
- // Golden-set parity is verified (engine >= 1.7x the src/search baseline recall@10
292
- // on every query type), so the engine now owns semantic query/status/sync/
293
- // collections/contexts/cleanup. Requires a real model: OMS_MODEL_PATH (GGUF) or
294
- // UPSTAGE_API_KEY — absent both, assembleEngine throws a loud, actionable error
295
- // (ADR-007: no hash/fake fallback) that surfaces via the dispatch catch below.
319
+ // not at boot, so boot stays stateless (R2). The vec-capable engine opens the
320
+ // engine SQLite store on construction and loads the embedding model on first
321
+ // embed(). Embedding selection is canonical and explicit: OMS_EMBEDDING_PROVIDER
322
+ // (e.g. gguf | upstage) + OMS_EMBEDDING_MODEL (path or model id). Absent either,
323
+ // assembleFullSemanticEngine throws a loud, actionable error (ADR-007: no
324
+ // hash/fake fallback, no auto-detect) that surfaces via the dispatch catch.
296
325
  let semanticEngine = null;
297
326
  const getSemanticEngine = () => {
298
327
  if (semanticEngine === null) {
299
- const modelPath = process.env["OMS_MODEL_PATH"];
300
- semanticEngine = assembleEngine({ vault, ...(modelPath ? { modelPath } : {}) });
328
+ semanticEngine = assembleFullSemanticEngine(vault);
301
329
  }
302
330
  return semanticEngine;
303
331
  };
304
- // A real embedding model is configured iff one of these is set (ADR-007). The
305
- // engine's model-OPTIONAL surface (document reads, retrieve_context's semantic
306
- // leg, ReadResource) keys off this to decide engine vs src/search WITHOUT
307
- // triggering an assembly throw on a model-less host.
308
- const hasEmbeddingModel = () => Boolean(process.env["OMS_MODEL_PATH"] ?? process.env["UPSTAGE_API_KEY"]);
309
- // Lenient adapter resolver for those model-optional paths: returns the engine
310
- // adapter only when a model is configured AND assembly succeeds, else null so
311
- // the caller degrades to the model-free src/search layer. This is the deliberate
312
- // counterpart to the isEngineSemanticOp path, which assembles eagerly and lets
313
- // the no-model error surface loudly (ADR-007). Both honor the same invariant:
314
- // query + document reads resolve on the SAME backend, so a retrieve_context
315
- // real-path docid always hydrates where it was produced (no split-brain).
316
- const trySemanticEngineAdapter = () => {
317
- if (!hasEmbeddingModel())
318
- return null;
319
- try {
320
- return getSemanticEngine().adapter;
321
- }
322
- catch {
323
- return null;
332
+ // Core semantic engine (lazy): lex + file-based document reads with NO model.
333
+ // vec/HyDE fail fast (the core store has no vec0 table). This is the model-less
334
+ // backend for the document/retrieve_context paths after the src/search teardown.
335
+ let coreSemanticEngine = null;
336
+ const getCoreSemanticEngine = () => {
337
+ if (coreSemanticEngine === null) {
338
+ coreSemanticEngine = assembleCoreSemanticEngine({ vault });
324
339
  }
340
+ return coreSemanticEngine;
325
341
  };
342
+ // A real embedding provider is configured iff the canonical pair is set
343
+ // (ADR-007). The engine's model-OPTIONAL surface (document reads,
344
+ // retrieve_context's semantic leg, ReadResource) keys off this to decide
345
+ // vec-capable vs core engine WITHOUT a no-model assembly throw.
346
+ const hasEmbeddingModel = embeddingConfigPresent;
347
+ // Adapter resolver for the model-OPTIONAL paths: the vec-capable engine when
348
+ // the canonical embedding pair is configured, else the core (lex + file-based
349
+ // document) engine. The counterpart isEngineSemanticOp path assembles eagerly
350
+ // and lets the no-model error surface loudly (ADR-007). Both honor the same
351
+ // invariant: query + document reads resolve on the SAME backend, so a
352
+ // retrieve_context real-path docid always hydrates where it was produced.
353
+ //
354
+ // No catch here: a CONFIGURED-but-broken full engine (bad provider/model,
355
+ // missing auth, store-open failure) must surface its error loudly rather than
356
+ // silently masquerade as a model-less host (ADR-007). The core fallback is
357
+ // strictly for the absent-config case.
358
+ const resolveDocumentAdapter = () => hasEmbeddingModel() ? getSemanticEngine().adapter : getCoreSemanticEngine().adapter;
326
359
  const server = new Server({ name: "oms", version: SERVER_VERSION }, {
327
360
  capabilities: { tools: {}, resources: {} },
328
- instructions: "Oh My Second Brain exposes ontology/status/cache/retrieval tools and safe capture tools. Capture commit is gated by vault confinement and contract validation.",
361
+ // Cache read only: construction must never touch the network. The
362
+ // registry refresh that fills this cache is scheduled from runMcpServer.
363
+ instructions: buildServerInstructions(BASE_SERVER_INSTRUCTIONS, cachedUpdateNotice({ installedVersion: SERVER_VERSION })),
329
364
  });
330
365
  server.onclose = () => {
331
366
  void engine.dispose().catch(() => undefined);
332
367
  if (semanticEngine !== null) {
333
368
  void semanticEngine.dispose().catch(() => undefined);
334
369
  }
370
+ if (coreSemanticEngine !== null) {
371
+ void coreSemanticEngine.dispose().catch(() => undefined);
372
+ }
335
373
  };
336
374
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
337
375
  tools: omsMcpTools,
@@ -349,13 +387,10 @@ export function createOMSMcpServer(opts) {
349
387
  server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
350
388
  const uri = request.params.uri;
351
389
  // Resource reads hydrate on the SAME backend the semantic ops use: the engine
352
- // (file-based, qmd:// / oms:// scheme aware) when a model is configured, else
353
- // src/search — so a retrieve_context docid resolves through the URI surface
354
- // regardless of which backend produced it.
355
- const engineAdapter = trySemanticEngineAdapter();
356
- const result = engineAdapter
357
- ? await engineAdapter.getDocument({ vault, target: uri })
358
- : await getSemanticDocument({ vault, target: uri });
390
+ // (file-based, qmd:// / oms:// scheme aware), vec-capable when a model is
391
+ // configured and core (lex + file reads) otherwise — so a retrieve_context
392
+ // docid resolves through the URI surface regardless of which backend produced it.
393
+ const result = await resolveDocumentAdapter().getDocument({ vault, target: uri });
359
394
  if (!result.available || !result.documents[0]) {
360
395
  throw new Error(!result.available && result.reason ? result.reason : "OMS semantic resource not found.");
361
396
  }
@@ -381,11 +416,11 @@ export function createOMSMcpServer(opts) {
381
416
  // throw escape ALL inner catch branches and break the MCP handler.
382
417
  const engineGraph = await engine.adapter.graphStatus(vault).catch(() => null);
383
418
  try {
384
- const { ontology, source } = await activeOntology(vault);
419
+ const { ontology, source: ontologySource } = await resolveActiveOntology(vault);
385
420
  const cacheStatus = await graphCacheStatus(vault, ontology);
386
421
  return jsonText({
387
422
  vault,
388
- ontologySource: source,
423
+ ontologySource,
389
424
  sourceOfTruth: ["markdown notes", ".oms/taxonomy.yaml", ".oms/concepts/*.yaml"],
390
425
  counts: {
391
426
  concepts: ontology.concepts.size,
@@ -393,7 +428,9 @@ export function createOMSMcpServer(opts) {
393
428
  },
394
429
  derivedState: cacheStatus,
395
430
  engineGraph,
396
- writeTools: "capture-commit-gated-by-vault-confinement-and-contract-validation",
431
+ writeTools: source === "cwd"
432
+ ? "write-disabled-target-unverified"
433
+ : "write-gated-by-verified-target-and-contract",
397
434
  readTools: omsMcpTools.map((tool) => tool.name),
398
435
  });
399
436
  }
@@ -423,7 +460,7 @@ export function createOMSMcpServer(opts) {
423
460
  }
424
461
  try {
425
462
  if (request.params.name === "oms_graph_build") {
426
- const { ontology, source } = await activeOntology(vault);
463
+ const { ontology, source } = await resolveActiveOntology(vault);
427
464
  const cache = await buildGraphCache({ vault, ontology, write: true });
428
465
  return jsonText({
429
466
  vault,
@@ -437,7 +474,7 @@ export function createOMSMcpServer(opts) {
437
474
  });
438
475
  }
439
476
  if (request.params.name === "oms_list_concepts") {
440
- const { ontology, source } = await activeOntology(vault);
477
+ const { ontology, source } = await resolveActiveOntology(vault);
441
478
  return jsonText({
442
479
  vault,
443
480
  ontologySource: source,
@@ -469,14 +506,12 @@ export function createOMSMcpServer(opts) {
469
506
  }
470
507
  if (request.params.name === "oms_retrieve_context") {
471
508
  // Graph + semantic fusion. The graph leg stays on the src/graph warm cache;
472
- // the semantic leg routes to the native engine when a model is configured
473
- // (parity-verified ranking, real-path docids) and degrades to the model-free
474
- // src/search backend otherwise. get/multi_get and ReadResource make the SAME
475
- // model-gated choice, so a docid emitted here always hydrates on the backend
476
- // that produced it — no split-brain between query and document reads.
477
- const engineAdapter = trySemanticEngineAdapter();
478
- const semanticBackend = engineAdapter ? makeEngineMorningBackend(engineAdapter, vault) : undefined;
479
- const { ontology, source } = await activeOntology(vault);
509
+ // the semantic leg routes to the native engine: vec-capable when a model is
510
+ // configured (parity ranking, real-path docids) and core (lex; vec/HyDE fail
511
+ // fast) otherwise. get/multi_get and ReadResource make the SAME choice, so a
512
+ // docid emitted here always hydrates on the backend that produced it.
513
+ const semanticBackend = makeEngineMorningBackend(resolveDocumentAdapter(), vault);
514
+ const { ontology, source } = await resolveActiveOntology(vault);
480
515
  const limitValue = args?.["limit"];
481
516
  const maxNeighborsValue = args?.["maxNeighbors"];
482
517
  const useCacheValue = args?.["useCache"];
@@ -500,24 +535,22 @@ export function createOMSMcpServer(opts) {
500
535
  ...result,
501
536
  });
502
537
  }
503
- // Semantic / sync / cleanup ops route to the native engine adapter, lazily
504
- // assembled (parity verified vs the src/search baseline — golden-set gate).
505
- // Two adapter-resolution policies:
506
- // - isEngineSemanticOp → EAGER getSemanticEngine().adapter: a model-less host
507
- // throws a loud ADR-007 error (surfaces via the dispatch catch below).
508
- // - isEngineDocumentOp → LENIENT trySemanticEngineAdapter(): model present →
509
- // engine (hydrates retrieve_context's real-path docids on the same backend),
510
- // absent → null so handleSemanticTool falls back to src/search WITHOUT
511
- // forcing engine assembly.
512
- // Every other tool gets null and never touches the model path.
513
- const semanticAdapter = isEngineSemanticOp(request.params.name)
514
- ? getSemanticEngine().adapter
515
- : isEngineDocumentOp(request.params.name)
516
- ? trySemanticEngineAdapter()
517
- : null;
518
- const semanticToolResult = await handleSemanticTool(request.params.name, args, vault, semanticAdapter);
519
- if (semanticToolResult) {
520
- return semanticToolResult.ok ? jsonText(semanticToolResult.value) : errorText(semanticToolResult.message);
538
+ // Semantic / sync / cleanup / document ops route to the native engine adapter:
539
+ // - vec/HyDE semantic ops → EAGER getSemanticEngine().adapter (vec-capable):
540
+ // a model-less host throws a loud ADR-007 error (surfaces via the dispatch
541
+ // catch below).
542
+ // - lex-only query and document ops → resolveDocumentAdapter(): vec-capable
543
+ // engine when a model is configured, else the core engine. Lex is a real
544
+ // model-free BM25/FTS feature, not an ADR-007 fake vector fallback.
545
+ // Every other tool never touches the engine here.
546
+ if (isEngineSemanticOp(request.params.name) || isEngineDocumentOp(request.params.name)) {
547
+ const semanticAdapter = isEngineSemanticOp(request.params.name) && !isModelOptionalSemanticQueryOp(request.params.name, args, vault)
548
+ ? getSemanticEngine().adapter
549
+ : resolveDocumentAdapter();
550
+ const semanticToolResult = await handleSemanticTool(request.params.name, args, vault, semanticAdapter);
551
+ if (semanticToolResult) {
552
+ return semanticToolResult.ok ? jsonText(semanticToolResult.value) : errorText(semanticToolResult.message);
553
+ }
521
554
  }
522
555
  if (request.params.name === "oms_lazy_load_note") {
523
556
  const notePath = stringArg(args, "notePath");
@@ -538,7 +571,7 @@ export function createOMSMcpServer(opts) {
538
571
  catch (error) {
539
572
  return errorText(error instanceof Error ? error.message : String(error));
540
573
  }
541
- const { ontology, source } = await activeOntology(vault);
574
+ const { ontology, source } = await resolveActiveOntology(vault);
542
575
  const normalizedNotePath = path.relative(vault, fullPath).replace(/\\/g, "/");
543
576
  const concept = resolveConcept(ontology, normalizedNotePath);
544
577
  if (!concept) {
@@ -570,49 +603,75 @@ export function createOMSMcpServer(opts) {
570
603
  violations: result.violations,
571
604
  });
572
605
  }
573
- if (request.params.name === "oms_capture_prepare") {
574
- const { ontology, source } = await activeOntology(vault);
575
- const frontmatterArg = args?.["frontmatter"];
576
- const frontmatter = isRecord(frontmatterArg) ? frontmatterArg : {};
606
+ if (request.params.name === "oms_vault_audit") {
607
+ if (args !== undefined &&
608
+ Object.prototype.hasOwnProperty.call(args, "folder") &&
609
+ typeof args["folder"] !== "string") {
610
+ return errorText('Argument "folder" must be a string top-level folder name.');
611
+ }
612
+ const folder = stringArg(args, "folder");
613
+ const { ontology, source } = await resolveActiveOntology(vault);
614
+ const report = await lintVault(vault, ontology, { folder });
577
615
  return jsonText({
578
616
  vault,
579
617
  ontologySource: source,
580
- plan: prepareCapture({
581
- vault,
582
- ontology,
583
- concept: stringArg(args, "concept"),
584
- folder: stringArg(args, "folder"),
585
- filename: stringArg(args, "filename"),
586
- frontmatter,
587
- }),
618
+ folder: folder ?? null,
619
+ scannedNotes: report.scannedNotes,
620
+ excludedNotes: report.excludedNotes,
621
+ clean: report.clean,
622
+ violations: report.violations,
588
623
  });
589
624
  }
590
- if (request.params.name === "oms_capture_commit") {
591
- const { ontology, source } = await activeOntology(vault);
625
+ if (request.params.name === "oms_link_suggest") {
592
626
  const notePath = stringArg(args, "notePath");
593
- const body = stringArg(args, "body");
594
- const mode = stringArg(args, "mode");
595
- const frontmatterArg = args?.["frontmatter"];
596
- if (!notePath || !body || !isCaptureMode(mode) || !isRecord(frontmatterArg)) {
597
- return errorText('Missing required arguments: notePath:string, frontmatter:object, body:string, mode:"create"|"append".');
627
+ if (!notePath) {
628
+ return errorText('Missing required string argument "notePath".');
598
629
  }
599
- try {
600
- return jsonText({
601
- vault,
602
- ontologySource: source,
603
- result: await commitCapture({
604
- vault,
605
- ontology,
606
- notePath,
607
- frontmatter: frontmatterArg,
608
- body,
609
- mode,
610
- }),
611
- });
630
+ const { ontology, source: ontologySource } = await resolveActiveOntology(vault);
631
+ const suggestion = await suggestLinksForNote({ vault, source, ontology, notePath }, { folder: stringArg(args, "folder") });
632
+ return jsonText({ vault, ontologySource, ...suggestion });
633
+ }
634
+ if (request.params.name === "oms_link_apply") {
635
+ const notePath = stringArg(args, "notePath");
636
+ if (!notePath) {
637
+ return errorText('Missing required string argument "notePath".');
612
638
  }
613
- catch (error) {
614
- return errorText(error instanceof Error ? error.message : String(error));
639
+ const baseContentHash = stringArg(args, "baseContentHash");
640
+ if (!baseContentHash) {
641
+ return errorText('Missing required string argument "baseContentHash".');
642
+ }
643
+ const idsArg = args?.["candidateIds"];
644
+ if (!Array.isArray(idsArg) || idsArg.some((id) => typeof id !== "string")) {
645
+ return errorText('Argument "candidateIds" must be an array of candidate id strings.');
615
646
  }
647
+ const { ontology, source: ontologySource } = await resolveActiveOntology(vault);
648
+ const outcome = await applyLinksForNote({ vault, source, ontology, notePath }, { baseContentHash, candidateIds: idsArg.filter((id) => typeof id === "string") }, { folder: stringArg(args, "folder") });
649
+ return jsonText({ vault, ontologySource, ...linkApplyPayload(outcome) });
650
+ }
651
+ if (request.params.name === "write") {
652
+ const { ontology, source: ontologySource } = await resolveActiveOntology(vault);
653
+ const modeArg = stringArg(args, "mode");
654
+ const mode = isWriteMode(modeArg) ? modeArg : "create";
655
+ const frontmatterArg = args?.["frontmatter"];
656
+ const result = await writeNote({
657
+ target: { vault, source },
658
+ ontology,
659
+ mode,
660
+ dryRun: false,
661
+ concept: stringArg(args, "concept"),
662
+ folder: stringArg(args, "folder"),
663
+ filename: stringArg(args, "filename"),
664
+ notePath: stringArg(args, "notePath"),
665
+ frontmatter: isRecord(frontmatterArg) ? frontmatterArg : undefined,
666
+ body: stringArg(args, "body"),
667
+ });
668
+ return jsonText({
669
+ vault,
670
+ ontologySource,
671
+ ...result,
672
+ resolvedVault: vault,
673
+ resolutionSource: source,
674
+ });
616
675
  }
617
676
  return errorText(`Unknown Oh My Second Brain tool: ${request.params.name}`);
618
677
  }
@@ -626,8 +685,11 @@ export async function runMcpServer(opts) {
626
685
  const server = createOMSMcpServer(opts);
627
686
  const transport = new StdioServerTransport();
628
687
  await server.connect(transport);
688
+ // Detached and unawaited: a slow or offline registry must not delay serving.
689
+ // Returns null while the cache is fresh, so most boots start nothing at all.
690
+ void scheduleUpdateNoticeRefresh({ installedVersion: SERVER_VERSION });
629
691
  }
630
- function isCaptureMode(value) {
631
- return value === "create" || value === "append";
692
+ function isWriteMode(value) {
693
+ return value === "create" || value === "append" || value === "update";
632
694
  }
633
695
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}