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
@@ -0,0 +1,51 @@
1
+ import { type UpdateRunner } from "../update/update.js";
2
+ /**
3
+ * Boot-time update nudge for the MCP server.
4
+ *
5
+ * The hot path (`cachedUpdateNotice`) only reads a small JSON cache; it never
6
+ * touches the network and never throws. The registry query lives in
7
+ * `refreshUpdateNoticeCache`, scheduled detached from the serve path so a slow
8
+ * or offline registry cannot delay or fail server startup. Nothing here writes
9
+ * stdout: stdout is the JSON-RPC transport.
10
+ */
11
+ export type UpdateChannel = "stable" | "prerelease";
12
+ export interface CachedUpdateNoticeOptions {
13
+ readonly installedVersion: string;
14
+ readonly env?: Readonly<Record<string, string | undefined>>;
15
+ readonly now?: number;
16
+ }
17
+ export interface RefreshUpdateNoticeCacheOptions extends CachedUpdateNoticeOptions {
18
+ readonly runner?: UpdateRunner;
19
+ readonly timeoutMs?: number;
20
+ }
21
+ export declare function updateNoticeCachePath(env?: Readonly<Record<string, string | undefined>>): string;
22
+ export declare function updateChannelOf(installedVersion: string): UpdateChannel;
23
+ /**
24
+ * Reads the cached latest version for the installed channel and renders a
25
+ * one-line nudge when that version is newer and the stamp is within the 24h
26
+ * TTL. Freshness is per channel, so a stable refresh never makes an older
27
+ * prerelease stamp look current. Returns null on every failure or suppression.
28
+ */
29
+ export declare function cachedUpdateNotice(options: CachedUpdateNoticeOptions): string | null;
30
+ /**
31
+ * Performs ONE bounded registry query and stores the result under the
32
+ * installed channel's stamp, preserving the other channel's stamp. Awaitable
33
+ * for tests; production calls it detached via `scheduleUpdateNoticeRefresh`.
34
+ * Fails open: any error leaves the cache untouched and resolves normally.
35
+ */
36
+ export declare function refreshUpdateNoticeCache(options: RefreshUpdateNoticeCacheOptions): Promise<void>;
37
+ /**
38
+ * Serve-path entrypoint: starts at most one detached refresh per process. Never
39
+ * awaited by the caller, so startup latency is unaffected.
40
+ *
41
+ * Skips the registry entirely while the installed channel's stamp is still
42
+ * within the TTL: a fresh cache already answers the boot-time question, so
43
+ * every serve boot inside that window costs zero subprocesses. Returns the
44
+ * detached promise when a refresh was started and null when none was needed,
45
+ * so tests can await the background work without a timer.
46
+ */
47
+ export declare function scheduleUpdateNoticeRefresh(options: RefreshUpdateNoticeCacheOptions): Promise<void> | null;
48
+ /** Clears the per-process refresh lock. Test-only seam. */
49
+ export declare function __resetUpdateNoticeRefreshLockForTests(): void;
50
+ /** Appends the nudge to the server's base instructions as a single extra line. */
51
+ export declare function buildServerInstructions(baseInstructions: string, nudge: string | null): string;
@@ -0,0 +1,196 @@
1
+ import { closeSync, mkdirSync, openSync, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync, } from "node:fs";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { compareVersions, resolveLatestVersion } from "../update/update.js";
5
+ const CACHE_FILE_NAME = "update-notice-cache.json";
6
+ const CACHE_TTL_MS = 24 * 60 * 60 * 1000;
7
+ const REFRESH_TIMEOUT_MS = 4_000;
8
+ const PACKAGE_NAME = "oh-my-second-brain";
9
+ let refreshStarted = false;
10
+ function isRecord(value) {
11
+ return typeof value === "object" && value !== null && !Array.isArray(value);
12
+ }
13
+ function noticeSuppressed(env) {
14
+ return env["OMS_UPDATE_NOTICE"] === "0" || env["OMS_NO_UPDATE_NOTICE"] === "1";
15
+ }
16
+ export function updateNoticeCachePath(env = process.env) {
17
+ const stateDir = env["OMS_AUTO_UPDATE_STATE_DIR"];
18
+ const dir = stateDir !== undefined && stateDir.length > 0 ? stateDir : path.join(os.homedir(), ".oms");
19
+ return path.join(dir, CACHE_FILE_NAME);
20
+ }
21
+ export function updateChannelOf(installedVersion) {
22
+ return installedVersion.includes("-") ? "prerelease" : "stable";
23
+ }
24
+ function parseStamp(value) {
25
+ if (!isRecord(value))
26
+ return null;
27
+ const latestVersion = value["latestVersion"];
28
+ const checkedAt = value["checkedAt"];
29
+ if (typeof latestVersion !== "string" || latestVersion.length === 0)
30
+ return null;
31
+ if (typeof checkedAt !== "number" || !Number.isFinite(checkedAt))
32
+ return null;
33
+ return { latestVersion, checkedAt };
34
+ }
35
+ function readCache(cachePath) {
36
+ let raw;
37
+ try {
38
+ raw = readFileSync(cachePath, "utf-8");
39
+ }
40
+ catch (error) {
41
+ if (error instanceof Error)
42
+ return null;
43
+ throw error;
44
+ }
45
+ let parsed;
46
+ try {
47
+ parsed = JSON.parse(raw);
48
+ }
49
+ catch (error) {
50
+ if (error instanceof SyntaxError)
51
+ return null;
52
+ throw error;
53
+ }
54
+ if (!isRecord(parsed) || parsed["version"] !== 1 || !isRecord(parsed["channels"]))
55
+ return null;
56
+ const channels = {};
57
+ for (const channel of ["stable", "prerelease"]) {
58
+ const stamp = parseStamp(parsed["channels"][channel]);
59
+ if (stamp !== null)
60
+ channels[channel] = stamp;
61
+ }
62
+ return { version: 1, channels };
63
+ }
64
+ /** True when the channel's stamp exists and is within the 24h TTL. */
65
+ function stampIsFresh(stamp, now) {
66
+ if (stamp === undefined)
67
+ return false;
68
+ const age = now - stamp.checkedAt;
69
+ return age >= 0 && age <= CACHE_TTL_MS;
70
+ }
71
+ /**
72
+ * Reads the cached latest version for the installed channel and renders a
73
+ * one-line nudge when that version is newer and the stamp is within the 24h
74
+ * TTL. Freshness is per channel, so a stable refresh never makes an older
75
+ * prerelease stamp look current. Returns null on every failure or suppression.
76
+ */
77
+ export function cachedUpdateNotice(options) {
78
+ const env = options.env ?? process.env;
79
+ if (noticeSuppressed(env))
80
+ return null;
81
+ const cache = readCache(updateNoticeCachePath(env));
82
+ if (cache === null)
83
+ return null;
84
+ const stamp = cache.channels[updateChannelOf(options.installedVersion)];
85
+ if (stamp === undefined)
86
+ return null;
87
+ if (!stampIsFresh(stamp, options.now ?? Date.now()))
88
+ return null;
89
+ if (compareVersions(options.installedVersion, stamp.latestVersion) >= 0)
90
+ return null;
91
+ return `Update available for Oh My Second Brain: ${options.installedVersion} -> ${stamp.latestVersion}. Run \`oms update --yes\` to update and refresh host adapters.`;
92
+ }
93
+ function reclaimStaleLock(lockPath) {
94
+ let lockedAt;
95
+ try {
96
+ lockedAt = statSync(lockPath).mtimeMs;
97
+ }
98
+ catch (error) {
99
+ if (error instanceof Error)
100
+ return;
101
+ throw error;
102
+ }
103
+ if (Date.now() - lockedAt > CACHE_TTL_MS)
104
+ rmSync(lockPath, { force: true });
105
+ }
106
+ function writeCacheAtomically(cachePath, cache) {
107
+ const dir = path.dirname(cachePath);
108
+ mkdirSync(dir, { recursive: true });
109
+ // Cross-process serialization: whoever creates the lock wins this round; a
110
+ // loser simply skips the write, because a missed refresh is harmless. A lock
111
+ // left behind by a killed process is reclaimed once it is older than the TTL,
112
+ // so a crash cannot silence update checks forever.
113
+ const lockPath = `${cachePath}.lock`;
114
+ reclaimStaleLock(lockPath);
115
+ const lockFd = openSync(lockPath, "wx");
116
+ const tempPath = `${cachePath}.${process.pid}.tmp`;
117
+ try {
118
+ writeFileSync(tempPath, `${JSON.stringify(cache)}\n`, "utf-8");
119
+ renameSync(tempPath, cachePath);
120
+ }
121
+ finally {
122
+ rmSync(tempPath, { force: true });
123
+ closeSync(lockFd);
124
+ unlinkSync(lockPath);
125
+ }
126
+ }
127
+ /**
128
+ * Performs ONE bounded registry query and stores the result under the
129
+ * installed channel's stamp, preserving the other channel's stamp. Awaitable
130
+ * for tests; production calls it detached via `scheduleUpdateNoticeRefresh`.
131
+ * Fails open: any error leaves the cache untouched and resolves normally.
132
+ */
133
+ export async function refreshUpdateNoticeCache(options) {
134
+ const env = options.env ?? process.env;
135
+ if (noticeSuppressed(env))
136
+ return;
137
+ const cachePath = updateNoticeCachePath(env);
138
+ try {
139
+ const latest = await resolveLatestVersion({
140
+ packageName: PACKAGE_NAME,
141
+ timeoutMs: options.timeoutMs ?? REFRESH_TIMEOUT_MS,
142
+ runner: options.runner,
143
+ latestVersion: env["OMS_UPDATE_LATEST_VERSION"],
144
+ });
145
+ if (!latest.ok)
146
+ return;
147
+ const existing = readCache(cachePath);
148
+ writeCacheAtomically(cachePath, {
149
+ version: 1,
150
+ channels: {
151
+ ...existing?.channels,
152
+ [updateChannelOf(options.installedVersion)]: {
153
+ latestVersion: latest.version,
154
+ checkedAt: options.now ?? Date.now(),
155
+ },
156
+ },
157
+ });
158
+ }
159
+ catch (error) {
160
+ if (error instanceof Error)
161
+ return;
162
+ throw error;
163
+ }
164
+ }
165
+ /**
166
+ * Serve-path entrypoint: starts at most one detached refresh per process. Never
167
+ * awaited by the caller, so startup latency is unaffected.
168
+ *
169
+ * Skips the registry entirely while the installed channel's stamp is still
170
+ * within the TTL: a fresh cache already answers the boot-time question, so
171
+ * every serve boot inside that window costs zero subprocesses. Returns the
172
+ * detached promise when a refresh was started and null when none was needed,
173
+ * so tests can await the background work without a timer.
174
+ */
175
+ export function scheduleUpdateNoticeRefresh(options) {
176
+ if (refreshStarted)
177
+ return null;
178
+ const env = options.env ?? process.env;
179
+ if (noticeSuppressed(env))
180
+ return null;
181
+ const cache = readCache(updateNoticeCachePath(env));
182
+ const stamp = cache?.channels[updateChannelOf(options.installedVersion)];
183
+ if (stampIsFresh(stamp, options.now ?? Date.now()))
184
+ return null;
185
+ refreshStarted = true;
186
+ return refreshUpdateNoticeCache(options);
187
+ }
188
+ /** Clears the per-process refresh lock. Test-only seam. */
189
+ export function __resetUpdateNoticeRefreshLockForTests() {
190
+ refreshStarted = false;
191
+ }
192
+ /** Appends the nudge to the server's base instructions as a single extra line. */
193
+ export function buildServerInstructions(baseInstructions, nudge) {
194
+ return nudge === null ? baseInstructions : `${baseInstructions}\n${nudge}`;
195
+ }
196
+ //# sourceMappingURL=update-notice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-notice.js","sourceRoot":"","sources":["../../src/mcp/update-notice.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Ontology } from "../core/ontology/types.js";
2
+ export type ActiveOntologySource = "vault" | "bundled";
3
+ export interface ActiveOntology {
4
+ readonly ontology: Ontology;
5
+ readonly source: ActiveOntologySource;
6
+ }
7
+ export declare function resolveActiveOntology(vault: string): Promise<ActiveOntology>;
@@ -0,0 +1,41 @@
1
+ import { stat } from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { resolveBundledAssetPaths } from "../core/runtime/assets.js";
4
+ import { loadOntology } from "../core/ontology/loader.js";
5
+ const bundledAssets = resolveBundledAssetPaths();
6
+ async function pathKind(target) {
7
+ try {
8
+ const info = await stat(target);
9
+ if (info.isFile())
10
+ return "file";
11
+ if (info.isDirectory())
12
+ return "directory";
13
+ return "other";
14
+ }
15
+ catch (error) {
16
+ if (error instanceof Error && "code" in error && error.code === "ENOENT") {
17
+ return "missing";
18
+ }
19
+ throw error;
20
+ }
21
+ }
22
+ export async function resolveActiveOntology(vault) {
23
+ const localOntologyDir = path.join(vault, ".oms");
24
+ const omsKind = await pathKind(localOntologyDir);
25
+ if (omsKind === "missing") {
26
+ return { ontology: await loadOntology(bundledAssets.ontologyDir), source: "bundled" };
27
+ }
28
+ if (omsKind !== "directory") {
29
+ throw new Error("Local .oms exists but is not a directory.");
30
+ }
31
+ const taxonomyKind = await pathKind(path.join(localOntologyDir, "taxonomy.yaml"));
32
+ const conceptsKind = await pathKind(path.join(localOntologyDir, "concepts"));
33
+ if (taxonomyKind === "missing" && conceptsKind === "missing") {
34
+ return { ontology: await loadOntology(bundledAssets.ontologyDir), source: "bundled" };
35
+ }
36
+ if (taxonomyKind !== "file" || conceptsKind !== "directory") {
37
+ throw new Error("Local .oms ontology is incomplete; expected .oms/taxonomy.yaml and .oms/concepts/.");
38
+ }
39
+ return { ontology: await loadOntology(localOntologyDir), source: "vault" };
40
+ }
41
+ //# sourceMappingURL=active.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"active.js","sourceRoot":"","sources":["../../src/ontology/active.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAU1D,MAAM,aAAa,GAAG,wBAAwB,EAAE,CAAC;AAEjD,KAAK,UAAU,QAAQ,CAAC,MAAc;IACpC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,MAAM,EAAE;YAAE,OAAO,MAAM,CAAC;QACjC,IAAI,IAAI,CAAC,WAAW,EAAE;YAAE,OAAO,WAAW,CAAC;QAC3C,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACzE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,KAAa;IACvD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACxF,CAAC;IACD,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC,CAAC;IAClF,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAC;IAE7E,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACxF,CAAC;IACD,IAAI,YAAY,KAAK,MAAM,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;IACxG,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7E,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { type GraphExploreNode, type GraphExploreOptions, type GraphExploreResult } from "../graph/explore.js";
2
- import { type SemanticDocument, type SemanticDocumentResult, type SemanticEmbeddingSyncResult, type SemanticGetOptions, type SemanticHitEvidence, type SemanticMultiGetOptions, type SemanticProviderStatus, type SemanticQueryOptions, type SemanticQueryResult, type SemanticSearchHit, type SemanticStatusOptions } from "../search/semantic.js";
2
+ import type { SemanticDocument, SemanticDocumentResult, SemanticEmbeddingSyncResult, SemanticGetOptions, SemanticHitEvidence, SemanticMultiGetOptions, SemanticProviderStatus, SemanticQueryOptions, SemanticQueryResult, SemanticSearchHit, SemanticStatusOptions } from "./semantic-contract.js";
3
3
  export type MorningHitSource = "oms-seed" | "oms-neighbor" | "oms-semantic";
4
4
  export type SemanticFusionScope = "global" | "graph";
5
5
  export type SemanticHydrateMode = "none" | "top" | "all" | "targets";
@@ -22,8 +22,6 @@ export interface MorningRetrieveOptions extends GraphExploreOptions {
22
22
  readonly lineNumbers?: boolean;
23
23
  readonly fullPath?: boolean;
24
24
  readonly index?: string;
25
- readonly storage?: SemanticQueryOptions["storage"];
26
- readonly modelPath?: string;
27
25
  readonly chunkStrategy?: string;
28
26
  readonly candidateLimit?: number;
29
27
  readonly noRerank?: boolean;
@@ -41,8 +39,6 @@ export interface MorningRetrieveOptions extends GraphExploreOptions {
41
39
  readonly syncPull?: boolean;
42
40
  readonly syncMaxDocsPerBatch?: number;
43
41
  readonly syncMaxBatchMb?: number;
44
- readonly syncStorage?: SemanticQueryOptions["storage"];
45
- readonly syncModelPath?: string;
46
42
  };
47
43
  }
48
44
  export interface MorningRetrieveHit {
@@ -77,15 +73,17 @@ export interface MorningRetrieveResult {
77
73
  * Pluggable semantic backend for the morning retrieval flow.
78
74
  *
79
75
  * Abstracts the five semantic leaf operations so the caller chooses the
80
- * implementation without morning.ts knowing which one it is:
81
- * - {@link defaultMorningSemanticBackend} → the model-free src/search layer.
82
- * - makeEngineMorningBackend(...) (src/mcp/engine-morning-backend.ts) → the
83
- * native EmbeddingGemma engine, injected by the MCP server once a real
84
- * model is configured.
76
+ * implementation without morning.ts knowing which one it is. After the
77
+ * src/search teardown there is a single implementation —
78
+ * makeEngineMorningBackend(...) (src/mcp/engine-morning-backend.ts), which wraps
79
+ * the native engine adapter (vec-capable when a model is configured, lex +
80
+ * file-based document reads otherwise). The backend is injected by the caller so
81
+ * morning.ts stays free of any engine-assembly policy and has no module cycle
82
+ * back into src/mcp.
85
83
  *
86
84
  * query + getDocument + multiGet MUST come from the SAME backend: the engine
87
85
  * emits real-path docids that only its own file-based hydration resolves, so a
88
- * split backend (engine query + src/search hydration) would strand every hit.
86
+ * split backend would strand every hit.
89
87
  */
90
88
  export interface MorningSemanticBackend {
91
89
  readonly sync: (opts: MorningRetrieveOptions) => Promise<SemanticEmbeddingSyncResult | undefined>;
@@ -94,10 +92,4 @@ export interface MorningSemanticBackend {
94
92
  readonly getDocument: (opts: SemanticGetOptions) => Promise<SemanticDocumentResult>;
95
93
  readonly multiGet: (opts: SemanticMultiGetOptions) => Promise<SemanticDocumentResult>;
96
94
  }
97
- /**
98
- * Default semantic backend: the mature, model-free src/search layer (SHA-1
99
- * hash embeddings + JSON/SQLite store). Used by the CLI and by any caller that
100
- * does not inject an engine-backed backend, so non-MCP paths are unchanged.
101
- */
102
- export declare const defaultMorningSemanticBackend: MorningSemanticBackend;
103
- export declare function retrieveMorningContext(opts: MorningRetrieveOptions, backend?: MorningSemanticBackend): Promise<MorningRetrieveResult>;
95
+ export declare function retrieveMorningContext(opts: MorningRetrieveOptions, backend: MorningSemanticBackend): Promise<MorningRetrieveResult>;
@@ -1,18 +1,4 @@
1
1
  import { exploreLocalGraph, } from "../graph/explore.js";
2
- import { getSemanticDocument, multiGetSemanticDocuments, querySemanticStore, readSemanticStatus, } from "../search/semantic.js";
3
- import { syncRetrieveEmbeddings } from "./embedding-sync.js";
4
- /**
5
- * Default semantic backend: the mature, model-free src/search layer (SHA-1
6
- * hash embeddings + JSON/SQLite store). Used by the CLI and by any caller that
7
- * does not inject an engine-backed backend, so non-MCP paths are unchanged.
8
- */
9
- export const defaultMorningSemanticBackend = {
10
- sync: (opts) => syncRetrieveEmbeddings(opts),
11
- status: (opts) => readSemanticStatus(opts),
12
- query: (opts) => querySemanticStore(opts),
13
- getDocument: (opts) => getSemanticDocument(opts),
14
- multiGet: (opts) => multiGetSemanticDocuments(opts),
15
- };
16
2
  function graphHit(source, node) {
17
3
  return {
18
4
  source,
@@ -67,8 +53,6 @@ function semanticQueryOptions(opts) {
67
53
  lineNumbers: opts.semantic?.lineNumbers,
68
54
  fullPath: opts.semantic?.fullPath,
69
55
  index: opts.semantic?.index,
70
- storage: opts.semantic?.storage,
71
- modelPath: opts.semantic?.modelPath,
72
56
  chunkStrategy: opts.semantic?.chunkStrategy,
73
57
  candidateLimit: opts.semantic?.candidateLimit,
74
58
  noRerank: opts.semantic?.noRerank,
@@ -97,22 +81,16 @@ async function hydrateSemanticHits(opts, hits, backend) {
97
81
  lineCount: opts.semantic.hydrateLineCount,
98
82
  lineNumbers: opts.semantic.lineNumbers,
99
83
  fullPath: opts.semantic.fullPath,
100
- index: opts.semantic.index,
101
- storage: opts.semantic.storage,
102
- modelPath: opts.semantic.modelPath,
103
84
  });
104
85
  return result.available ? result.documents : [];
105
86
  }
106
87
  const result = await backend.multiGet({
107
88
  vault: opts.vault,
108
- targets,
89
+ targets: [...targets],
109
90
  lineLimit: opts.semantic?.hydrateLineLimit,
110
91
  maxBytes: opts.semantic?.hydrateMaxBytes,
111
92
  lineNumbers: opts.semantic?.lineNumbers,
112
93
  fullPath: opts.semantic?.fullPath,
113
- index: opts.semantic?.index,
114
- storage: opts.semantic?.storage,
115
- modelPath: opts.semantic?.modelPath,
116
94
  });
117
95
  return result.available ? result.documents : [];
118
96
  }
@@ -131,8 +109,6 @@ async function loadSemantic(opts, backend) {
131
109
  const status = await backend.status({
132
110
  vault: opts.vault,
133
111
  index: opts.semantic?.index,
134
- storage: opts.semantic?.storage,
135
- modelPath: opts.semantic?.modelPath,
136
112
  });
137
113
  if (!status.available) {
138
114
  return { status, sync, hits: [] };
@@ -143,7 +119,7 @@ async function loadSemantic(opts, backend) {
143
119
  }
144
120
  return { status, sync, hits: queryResult.hits };
145
121
  }
146
- export async function retrieveMorningContext(opts, backend = defaultMorningSemanticBackend) {
122
+ export async function retrieveMorningContext(opts, backend) {
147
123
  const graph = await exploreLocalGraph(opts);
148
124
  const semantic = await loadSemantic(opts, backend);
149
125
  const semanticHits = filteredSemanticHits(opts, graph, semantic.hits);
@@ -1 +1 @@
1
- {"version":3,"file":"morning.js","sourceRoot":"","sources":["../../src/retrieve/morning.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"morning.js","sourceRoot":"","sources":["../../src/retrieve/morning.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Semantic surface contract.
3
+ *
4
+ * After the src/search teardown (follow-up to #34) the engine MCP adapter layer
5
+ * is the single source of truth for the OMS semantic surface. These domain-named
6
+ * aliases re-export the canonical engine contract types so the morning retrieval
7
+ * layer and the CLI/MCP option builders stay decoupled from the engine's
8
+ * `Mcp`-prefixed names without re-declaring a parallel type set.
9
+ */
10
+ export type { McpSemanticSearchMode as SemanticSearchMode, McpSemanticSearchFormat as SemanticSearchFormat, McpSemanticTypedSearchType as SemanticTypedSearchType, McpSemanticTypedSearch as SemanticTypedSearch, McpStatusOptions as SemanticStatusOptions, McpSemanticQueryOptions as SemanticQueryOptions, McpSemanticHitEvidence as SemanticHitEvidence, McpSemanticSearchHit as SemanticSearchHit, McpSemanticQueryResult as SemanticQueryResult, McpSemanticEmbeddingSyncOptions as SemanticEmbeddingSyncOptions, McpSemanticEmbeddingSyncResult as SemanticEmbeddingSyncResult, McpSemanticProviderStatus as SemanticProviderStatus, McpSemanticDocument as SemanticDocument, McpSemanticDocumentResult as SemanticDocumentResult, McpSemanticGetOptions as SemanticGetOptions, McpSemanticMultiGetOptions as SemanticMultiGetOptions, } from "../engine/mcp/types.js";
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=semantic-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-contract.js","sourceRoot":"","sources":["../../src/retrieve/semantic-contract.ts"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import type { Concept, FieldType, OntologyLens } from "../ontology/types.js";
1
+ import type { Concept, FieldType, Ontology, OntologyLens } from "../core/ontology/types.js";
2
2
  export interface ObservedField {
3
3
  readonly name: string;
4
4
  readonly type: FieldType;
@@ -9,9 +9,28 @@ export interface ObservedFolderSummary {
9
9
  readonly fields: readonly ObservedField[];
10
10
  readonly warnings: readonly string[];
11
11
  }
12
- export declare function collectObservedFields(opts: {
12
+ interface ObservedScanOptions {
13
13
  readonly vault: string;
14
+ readonly ontology?: Ontology;
15
+ readonly folder?: string;
16
+ readonly excludeGlobs?: readonly string[];
14
17
  readonly maxFilesPerFolder?: number;
15
- }): Promise<readonly ObservedFolderSummary[]>;
18
+ }
19
+ export declare function collectObservedFields(opts: ObservedScanOptions): Promise<readonly ObservedFolderSummary[]>;
20
+ /** One frontmatter value observed outside a field's declared `enum`. */
21
+ export interface ObservedFieldValueDrift {
22
+ readonly folder: string;
23
+ readonly field: string;
24
+ readonly value: string;
25
+ readonly count: number;
26
+ }
27
+ /**
28
+ * Scan the vault for string values that violate declared enum constraints,
29
+ * grouped by folder/field/value with a frequency count.
30
+ */
31
+ export declare function collectObservedFieldValues(opts: ObservedScanOptions & {
32
+ readonly ontology: Ontology;
33
+ }): Promise<readonly ObservedFieldValueDrift[]>;
16
34
  export declare function mergeObservedFieldsIntoConcept(concept: Concept, observedFields: readonly ObservedField[]): Concept;
17
35
  export declare function parseLensDefinitions(input: string, knownFields: ReadonlySet<string>): readonly OntologyLens[];
36
+ export {};