@saihm/shm 0.0.0-stage → 0.38.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (672) hide show
  1. package/LICENSE +97 -0
  2. package/NOTICE +12 -0
  3. package/README.md +159 -2
  4. package/dist/adapter/epoch.d.ts +4 -0
  5. package/dist/adapter/epoch.d.ts.map +1 -0
  6. package/dist/adapter/epoch.js +16 -0
  7. package/dist/adapter/epoch.js.map +1 -0
  8. package/dist/adapter/frontmatter.d.ts +19 -0
  9. package/dist/adapter/frontmatter.d.ts.map +1 -0
  10. package/dist/adapter/frontmatter.js +95 -0
  11. package/dist/adapter/frontmatter.js.map +1 -0
  12. package/dist/adapter/index.d.ts +4 -0
  13. package/dist/adapter/index.d.ts.map +1 -0
  14. package/dist/adapter/index.js +4 -0
  15. package/dist/adapter/index.js.map +1 -0
  16. package/dist/adapter/markdown_dir_port.d.ts +48 -0
  17. package/dist/adapter/markdown_dir_port.d.ts.map +1 -0
  18. package/dist/adapter/markdown_dir_port.js +175 -0
  19. package/dist/adapter/markdown_dir_port.js.map +1 -0
  20. package/dist/aggregate/document_aggregation.d.ts +40 -0
  21. package/dist/aggregate/document_aggregation.d.ts.map +1 -0
  22. package/dist/aggregate/document_aggregation.js +101 -0
  23. package/dist/aggregate/document_aggregation.js.map +1 -0
  24. package/dist/aggregate/index.d.ts +2 -0
  25. package/dist/aggregate/index.d.ts.map +1 -0
  26. package/dist/aggregate/index.js +2 -0
  27. package/dist/aggregate/index.js.map +1 -0
  28. package/dist/answer/answer_layer.d.ts +33 -0
  29. package/dist/answer/answer_layer.d.ts.map +1 -0
  30. package/dist/answer/answer_layer.js +75 -0
  31. package/dist/answer/answer_layer.js.map +1 -0
  32. package/dist/answer/caching_body_source.d.ts +42 -0
  33. package/dist/answer/caching_body_source.d.ts.map +1 -0
  34. package/dist/answer/caching_body_source.js +120 -0
  35. package/dist/answer/caching_body_source.js.map +1 -0
  36. package/dist/answer/claude_cli_backend.d.ts +10 -0
  37. package/dist/answer/claude_cli_backend.d.ts.map +1 -0
  38. package/dist/answer/claude_cli_backend.js +60 -0
  39. package/dist/answer/claude_cli_backend.js.map +1 -0
  40. package/dist/answer/context.d.ts +6 -0
  41. package/dist/answer/context.d.ts.map +1 -0
  42. package/dist/answer/context.js +83 -0
  43. package/dist/answer/context.js.map +1 -0
  44. package/dist/answer/corpus_warmer.d.ts +44 -0
  45. package/dist/answer/corpus_warmer.d.ts.map +1 -0
  46. package/dist/answer/corpus_warmer.js +80 -0
  47. package/dist/answer/corpus_warmer.js.map +1 -0
  48. package/dist/answer/gate.d.ts +3 -0
  49. package/dist/answer/gate.d.ts.map +1 -0
  50. package/dist/answer/gate.js +35 -0
  51. package/dist/answer/gate.js.map +1 -0
  52. package/dist/answer/index.d.ts +20 -0
  53. package/dist/answer/index.d.ts.map +1 -0
  54. package/dist/answer/index.js +11 -0
  55. package/dist/answer/index.js.map +1 -0
  56. package/dist/answer/own_cell_body_source.d.ts +34 -0
  57. package/dist/answer/own_cell_body_source.d.ts.map +1 -0
  58. package/dist/answer/own_cell_body_source.js +66 -0
  59. package/dist/answer/own_cell_body_source.js.map +1 -0
  60. package/dist/answer/persistent_body_source.d.ts +50 -0
  61. package/dist/answer/persistent_body_source.d.ts.map +1 -0
  62. package/dist/answer/persistent_body_source.js +173 -0
  63. package/dist/answer/persistent_body_source.js.map +1 -0
  64. package/dist/answer/saihm_body_source.d.ts +27 -0
  65. package/dist/answer/saihm_body_source.d.ts.map +1 -0
  66. package/dist/answer/saihm_body_source.js +88 -0
  67. package/dist/answer/saihm_body_source.js.map +1 -0
  68. package/dist/answer/structured_answerer.d.ts +23 -0
  69. package/dist/answer/structured_answerer.d.ts.map +1 -0
  70. package/dist/answer/structured_answerer.js +103 -0
  71. package/dist/answer/structured_answerer.js.map +1 -0
  72. package/dist/answer/supersede.d.ts +12 -0
  73. package/dist/answer/supersede.d.ts.map +1 -0
  74. package/dist/answer/supersede.js +27 -0
  75. package/dist/answer/supersede.js.map +1 -0
  76. package/dist/answer/types.d.ts +53 -0
  77. package/dist/answer/types.d.ts.map +1 -0
  78. package/dist/answer/types.js +2 -0
  79. package/dist/answer/types.js.map +1 -0
  80. package/dist/assemble/brief.d.ts +83 -0
  81. package/dist/assemble/brief.d.ts.map +1 -0
  82. package/dist/assemble/brief.js +312 -0
  83. package/dist/assemble/brief.js.map +1 -0
  84. package/dist/assemble/index.d.ts +4 -0
  85. package/dist/assemble/index.d.ts.map +1 -0
  86. package/dist/assemble/index.js +4 -0
  87. package/dist/assemble/index.js.map +1 -0
  88. package/dist/assemble/posture.d.ts +23 -0
  89. package/dist/assemble/posture.d.ts.map +1 -0
  90. package/dist/assemble/posture.js +68 -0
  91. package/dist/assemble/posture.js.map +1 -0
  92. package/dist/assemble/thread.d.ts +53 -0
  93. package/dist/assemble/thread.d.ts.map +1 -0
  94. package/dist/assemble/thread.js +122 -0
  95. package/dist/assemble/thread.js.map +1 -0
  96. package/dist/attention/index.d.ts +5 -0
  97. package/dist/attention/index.d.ts.map +1 -0
  98. package/dist/attention/index.js +3 -0
  99. package/dist/attention/index.js.map +1 -0
  100. package/dist/attention/obligations.d.ts +23 -0
  101. package/dist/attention/obligations.d.ts.map +1 -0
  102. package/dist/attention/obligations.js +110 -0
  103. package/dist/attention/obligations.js.map +1 -0
  104. package/dist/attention/queue.d.ts +38 -0
  105. package/dist/attention/queue.d.ts.map +1 -0
  106. package/dist/attention/queue.js +102 -0
  107. package/dist/attention/queue.js.map +1 -0
  108. package/dist/claim/index.d.ts +23 -0
  109. package/dist/claim/index.d.ts.map +1 -0
  110. package/dist/claim/index.js +57 -0
  111. package/dist/claim/index.js.map +1 -0
  112. package/dist/claim/withdrawn.d.ts +17 -0
  113. package/dist/claim/withdrawn.d.ts.map +1 -0
  114. package/dist/claim/withdrawn.js +41 -0
  115. package/dist/claim/withdrawn.js.map +1 -0
  116. package/dist/compliance/index.d.ts +3 -0
  117. package/dist/compliance/index.d.ts.map +1 -0
  118. package/dist/compliance/index.js +3 -0
  119. package/dist/compliance/index.js.map +1 -0
  120. package/dist/compliance/report.d.ts +123 -0
  121. package/dist/compliance/report.d.ts.map +1 -0
  122. package/dist/compliance/report.js +295 -0
  123. package/dist/compliance/report.js.map +1 -0
  124. package/dist/compliance/trail.d.ts +180 -0
  125. package/dist/compliance/trail.d.ts.map +1 -0
  126. package/dist/compliance/trail.js +130 -0
  127. package/dist/compliance/trail.js.map +1 -0
  128. package/dist/consolidate/body_redundancy.d.ts +54 -0
  129. package/dist/consolidate/body_redundancy.d.ts.map +1 -0
  130. package/dist/consolidate/body_redundancy.js +150 -0
  131. package/dist/consolidate/body_redundancy.js.map +1 -0
  132. package/dist/consolidate/consolidator.d.ts +62 -0
  133. package/dist/consolidate/consolidator.d.ts.map +1 -0
  134. package/dist/consolidate/consolidator.js +260 -0
  135. package/dist/consolidate/consolidator.js.map +1 -0
  136. package/dist/consolidate/index.d.ts +4 -0
  137. package/dist/consolidate/index.d.ts.map +1 -0
  138. package/dist/consolidate/index.js +4 -0
  139. package/dist/consolidate/index.js.map +1 -0
  140. package/dist/consolidate/index_guard.d.ts +63 -0
  141. package/dist/consolidate/index_guard.d.ts.map +1 -0
  142. package/dist/consolidate/index_guard.js +212 -0
  143. package/dist/consolidate/index_guard.js.map +1 -0
  144. package/dist/coordination/identity.d.ts +39 -0
  145. package/dist/coordination/identity.d.ts.map +1 -0
  146. package/dist/coordination/identity.js +97 -0
  147. package/dist/coordination/identity.js.map +1 -0
  148. package/dist/coordination/inbound.d.ts +41 -0
  149. package/dist/coordination/inbound.d.ts.map +1 -0
  150. package/dist/coordination/inbound.js +119 -0
  151. package/dist/coordination/inbound.js.map +1 -0
  152. package/dist/coordination/index.d.ts +12 -0
  153. package/dist/coordination/index.d.ts.map +1 -0
  154. package/dist/coordination/index.js +7 -0
  155. package/dist/coordination/index.js.map +1 -0
  156. package/dist/coordination/note_lineage.d.ts +50 -0
  157. package/dist/coordination/note_lineage.d.ts.map +1 -0
  158. package/dist/coordination/note_lineage.js +132 -0
  159. package/dist/coordination/note_lineage.js.map +1 -0
  160. package/dist/coordination/outbound.d.ts +33 -0
  161. package/dist/coordination/outbound.d.ts.map +1 -0
  162. package/dist/coordination/outbound.js +69 -0
  163. package/dist/coordination/outbound.js.map +1 -0
  164. package/dist/coordination/share_states.d.ts +178 -0
  165. package/dist/coordination/share_states.d.ts.map +1 -0
  166. package/dist/coordination/share_states.js +864 -0
  167. package/dist/coordination/share_states.js.map +1 -0
  168. package/dist/coordination/untrusted_text.d.ts +3 -0
  169. package/dist/coordination/untrusted_text.d.ts.map +1 -0
  170. package/dist/coordination/untrusted_text.js +21 -0
  171. package/dist/coordination/untrusted_text.js.map +1 -0
  172. package/dist/deref/dereference.d.ts +68 -0
  173. package/dist/deref/dereference.d.ts.map +1 -0
  174. package/dist/deref/dereference.js +199 -0
  175. package/dist/deref/dereference.js.map +1 -0
  176. package/dist/deref/index.d.ts +3 -0
  177. package/dist/deref/index.d.ts.map +1 -0
  178. package/dist/deref/index.js +3 -0
  179. package/dist/deref/index.js.map +1 -0
  180. package/dist/deref/policy.d.ts +76 -0
  181. package/dist/deref/policy.d.ts.map +1 -0
  182. package/dist/deref/policy.js +281 -0
  183. package/dist/deref/policy.js.map +1 -0
  184. package/dist/derived/checkpoint.d.ts +22 -0
  185. package/dist/derived/checkpoint.d.ts.map +1 -0
  186. package/dist/derived/checkpoint.js +92 -0
  187. package/dist/derived/checkpoint.js.map +1 -0
  188. package/dist/derived/codec.d.ts +26 -0
  189. package/dist/derived/codec.d.ts.map +1 -0
  190. package/dist/derived/codec.js +116 -0
  191. package/dist/derived/codec.js.map +1 -0
  192. package/dist/derived/cycle.d.ts +96 -0
  193. package/dist/derived/cycle.d.ts.map +1 -0
  194. package/dist/derived/cycle.js +199 -0
  195. package/dist/derived/cycle.js.map +1 -0
  196. package/dist/derived/index.d.ts +7 -0
  197. package/dist/derived/index.d.ts.map +1 -0
  198. package/dist/derived/index.js +7 -0
  199. package/dist/derived/index.js.map +1 -0
  200. package/dist/derived/ledger.d.ts +54 -0
  201. package/dist/derived/ledger.d.ts.map +1 -0
  202. package/dist/derived/ledger.js +123 -0
  203. package/dist/derived/ledger.js.map +1 -0
  204. package/dist/derived/lineage_index.d.ts +17 -0
  205. package/dist/derived/lineage_index.d.ts.map +1 -0
  206. package/dist/derived/lineage_index.js +51 -0
  207. package/dist/derived/lineage_index.js.map +1 -0
  208. package/dist/derived/store.d.ts +92 -0
  209. package/dist/derived/store.d.ts.map +1 -0
  210. package/dist/derived/store.js +230 -0
  211. package/dist/derived/store.js.map +1 -0
  212. package/dist/embed/index.d.ts +5 -0
  213. package/dist/embed/index.d.ts.map +1 -0
  214. package/dist/embed/index.js +4 -0
  215. package/dist/embed/index.js.map +1 -0
  216. package/dist/embed/local_minilm.d.ts +9 -0
  217. package/dist/embed/local_minilm.d.ts.map +1 -0
  218. package/dist/embed/local_minilm.js +31 -0
  219. package/dist/embed/local_minilm.js.map +1 -0
  220. package/dist/embed/remote_http.d.ts +26 -0
  221. package/dist/embed/remote_http.d.ts.map +1 -0
  222. package/dist/embed/remote_http.js +40 -0
  223. package/dist/embed/remote_http.js.map +1 -0
  224. package/dist/embed/router.d.ts +16 -0
  225. package/dist/embed/router.d.ts.map +1 -0
  226. package/dist/embed/router.js +47 -0
  227. package/dist/embed/router.js.map +1 -0
  228. package/dist/embed/types.d.ts +23 -0
  229. package/dist/embed/types.d.ts.map +1 -0
  230. package/dist/embed/types.js +2 -0
  231. package/dist/embed/types.js.map +1 -0
  232. package/dist/entitlement/entitlement.d.ts +24 -0
  233. package/dist/entitlement/entitlement.d.ts.map +1 -0
  234. package/dist/entitlement/entitlement.js +78 -0
  235. package/dist/entitlement/entitlement.js.map +1 -0
  236. package/dist/entitlement/index.d.ts +2 -0
  237. package/dist/entitlement/index.d.ts.map +1 -0
  238. package/dist/entitlement/index.js +2 -0
  239. package/dist/entitlement/index.js.map +1 -0
  240. package/dist/erasure/bus.d.ts +18 -0
  241. package/dist/erasure/bus.d.ts.map +1 -0
  242. package/dist/erasure/bus.js +56 -0
  243. package/dist/erasure/bus.js.map +1 -0
  244. package/dist/erasure/changes_feed.d.ts +125 -0
  245. package/dist/erasure/changes_feed.d.ts.map +1 -0
  246. package/dist/erasure/changes_feed.js +252 -0
  247. package/dist/erasure/changes_feed.js.map +1 -0
  248. package/dist/erasure/changes_reader.d.ts +44 -0
  249. package/dist/erasure/changes_reader.d.ts.map +1 -0
  250. package/dist/erasure/changes_reader.js +184 -0
  251. package/dist/erasure/changes_reader.js.map +1 -0
  252. package/dist/erasure/feed_watcher.d.ts +140 -0
  253. package/dist/erasure/feed_watcher.d.ts.map +1 -0
  254. package/dist/erasure/feed_watcher.js +418 -0
  255. package/dist/erasure/feed_watcher.js.map +1 -0
  256. package/dist/erasure/index.d.ts +15 -0
  257. package/dist/erasure/index.d.ts.map +1 -0
  258. package/dist/erasure/index.js +8 -0
  259. package/dist/erasure/index.js.map +1 -0
  260. package/dist/erasure/index_watcher.d.ts +28 -0
  261. package/dist/erasure/index_watcher.d.ts.map +1 -0
  262. package/dist/erasure/index_watcher.js +87 -0
  263. package/dist/erasure/index_watcher.js.map +1 -0
  264. package/dist/erasure/reconcile.d.ts +72 -0
  265. package/dist/erasure/reconcile.d.ts.map +1 -0
  266. package/dist/erasure/reconcile.js +125 -0
  267. package/dist/erasure/reconcile.js.map +1 -0
  268. package/dist/erasure/withheld_store.d.ts +30 -0
  269. package/dist/erasure/withheld_store.d.ts.map +1 -0
  270. package/dist/erasure/withheld_store.js +91 -0
  271. package/dist/erasure/withheld_store.js.map +1 -0
  272. package/dist/fleet/index.d.ts +2 -0
  273. package/dist/fleet/index.d.ts.map +1 -0
  274. package/dist/fleet/index.js +2 -0
  275. package/dist/fleet/index.js.map +1 -0
  276. package/dist/fleet/knowledge.d.ts +74 -0
  277. package/dist/fleet/knowledge.d.ts.map +1 -0
  278. package/dist/fleet/knowledge.js +178 -0
  279. package/dist/fleet/knowledge.js.map +1 -0
  280. package/dist/gate/index.d.ts +5 -0
  281. package/dist/gate/index.d.ts.map +1 -0
  282. package/dist/gate/index.js +3 -0
  283. package/dist/gate/index.js.map +1 -0
  284. package/dist/gate/scope.d.ts +21 -0
  285. package/dist/gate/scope.d.ts.map +1 -0
  286. package/dist/gate/scope.js +40 -0
  287. package/dist/gate/scope.js.map +1 -0
  288. package/dist/gate/symmetry.d.ts +55 -0
  289. package/dist/gate/symmetry.d.ts.map +1 -0
  290. package/dist/gate/symmetry.js +162 -0
  291. package/dist/gate/symmetry.js.map +1 -0
  292. package/dist/history/answerable.d.ts +51 -0
  293. package/dist/history/answerable.d.ts.map +1 -0
  294. package/dist/history/answerable.js +112 -0
  295. package/dist/history/answerable.js.map +1 -0
  296. package/dist/history/index.d.ts +2 -0
  297. package/dist/history/index.d.ts.map +1 -0
  298. package/dist/history/index.js +2 -0
  299. package/dist/history/index.js.map +1 -0
  300. package/dist/host/adapter.d.ts +69 -0
  301. package/dist/host/adapter.d.ts.map +1 -0
  302. package/dist/host/adapter.js +159 -0
  303. package/dist/host/adapter.js.map +1 -0
  304. package/dist/host/cli.d.ts +3 -0
  305. package/dist/host/cli.d.ts.map +1 -0
  306. package/dist/host/cli.js +44 -0
  307. package/dist/host/cli.js.map +1 -0
  308. package/dist/host/client.d.ts +22 -0
  309. package/dist/host/client.d.ts.map +1 -0
  310. package/dist/host/client.js +135 -0
  311. package/dist/host/client.js.map +1 -0
  312. package/dist/host/compaction.d.ts +16 -0
  313. package/dist/host/compaction.d.ts.map +1 -0
  314. package/dist/host/compaction.js +89 -0
  315. package/dist/host/compaction.js.map +1 -0
  316. package/dist/host/event.d.ts +22 -0
  317. package/dist/host/event.d.ts.map +1 -0
  318. package/dist/host/event.js +47 -0
  319. package/dist/host/event.js.map +1 -0
  320. package/dist/host/index.d.ts +10 -0
  321. package/dist/host/index.d.ts.map +1 -0
  322. package/dist/host/index.js +10 -0
  323. package/dist/host/index.js.map +1 -0
  324. package/dist/host/reply.d.ts +11 -0
  325. package/dist/host/reply.d.ts.map +1 -0
  326. package/dist/host/reply.js +24 -0
  327. package/dist/host/reply.js.map +1 -0
  328. package/dist/host/session_brief.d.ts +80 -0
  329. package/dist/host/session_brief.d.ts.map +1 -0
  330. package/dist/host/session_brief.js +294 -0
  331. package/dist/host/session_brief.js.map +1 -0
  332. package/dist/host/session_start_event.d.ts +12 -0
  333. package/dist/host/session_start_event.d.ts.map +1 -0
  334. package/dist/host/session_start_event.js +35 -0
  335. package/dist/host/session_start_event.js.map +1 -0
  336. package/dist/host/sessions.d.ts +8 -0
  337. package/dist/host/sessions.d.ts.map +1 -0
  338. package/dist/host/sessions.js +32 -0
  339. package/dist/host/sessions.js.map +1 -0
  340. package/dist/host/socket_path.d.ts +3 -0
  341. package/dist/host/socket_path.d.ts.map +1 -0
  342. package/dist/host/socket_path.js +14 -0
  343. package/dist/host/socket_path.js.map +1 -0
  344. package/dist/inbound/index.d.ts +8 -0
  345. package/dist/inbound/index.d.ts.map +1 -0
  346. package/dist/inbound/index.js +5 -0
  347. package/dist/inbound/index.js.map +1 -0
  348. package/dist/index.d.ts +108 -0
  349. package/dist/index.d.ts.map +1 -0
  350. package/dist/index.js +55 -0
  351. package/dist/index.js.map +1 -0
  352. package/dist/ingest/index.d.ts +13 -0
  353. package/dist/ingest/index.d.ts.map +1 -0
  354. package/dist/ingest/index.js +146 -0
  355. package/dist/ingest/index.js.map +1 -0
  356. package/dist/ingest/parse.d.ts +20 -0
  357. package/dist/ingest/parse.d.ts.map +1 -0
  358. package/dist/ingest/parse.js +141 -0
  359. package/dist/ingest/parse.js.map +1 -0
  360. package/dist/ingest/resolve_prefix.d.ts +19 -0
  361. package/dist/ingest/resolve_prefix.d.ts.map +1 -0
  362. package/dist/ingest/resolve_prefix.js +63 -0
  363. package/dist/ingest/resolve_prefix.js.map +1 -0
  364. package/dist/ingest/types.d.ts +47 -0
  365. package/dist/ingest/types.d.ts.map +1 -0
  366. package/dist/ingest/types.js +2 -0
  367. package/dist/ingest/types.js.map +1 -0
  368. package/dist/inject/action_cue.d.ts +11 -0
  369. package/dist/inject/action_cue.d.ts.map +1 -0
  370. package/dist/inject/action_cue.js +49 -0
  371. package/dist/inject/action_cue.js.map +1 -0
  372. package/dist/inject/index.d.ts +11 -0
  373. package/dist/inject/index.d.ts.map +1 -0
  374. package/dist/inject/index.js +6 -0
  375. package/dist/inject/index.js.map +1 -0
  376. package/dist/inject/novelty.d.ts +19 -0
  377. package/dist/inject/novelty.d.ts.map +1 -0
  378. package/dist/inject/novelty.js +34 -0
  379. package/dist/inject/novelty.js.map +1 -0
  380. package/dist/inject/outcome.d.ts +20 -0
  381. package/dist/inject/outcome.d.ts.map +1 -0
  382. package/dist/inject/outcome.js +26 -0
  383. package/dist/inject/outcome.js.map +1 -0
  384. package/dist/inject/population.d.ts +6 -0
  385. package/dist/inject/population.d.ts.map +1 -0
  386. package/dist/inject/population.js +23 -0
  387. package/dist/inject/population.js.map +1 -0
  388. package/dist/inject/proactive_injector.d.ts +56 -0
  389. package/dist/inject/proactive_injector.d.ts.map +1 -0
  390. package/dist/inject/proactive_injector.js +153 -0
  391. package/dist/inject/proactive_injector.js.map +1 -0
  392. package/dist/inject/token_estimate.d.ts +3 -0
  393. package/dist/inject/token_estimate.d.ts.map +1 -0
  394. package/dist/inject/token_estimate.js +2 -0
  395. package/dist/inject/token_estimate.js.map +1 -0
  396. package/dist/inject/window.d.ts +6 -0
  397. package/dist/inject/window.d.ts.map +1 -0
  398. package/dist/inject/window.js +10 -0
  399. package/dist/inject/window.js.map +1 -0
  400. package/dist/modes/behaviour_modes.d.ts +21 -0
  401. package/dist/modes/behaviour_modes.d.ts.map +1 -0
  402. package/dist/modes/behaviour_modes.js +137 -0
  403. package/dist/modes/behaviour_modes.js.map +1 -0
  404. package/dist/policy/index.d.ts +2 -0
  405. package/dist/policy/index.d.ts.map +1 -0
  406. package/dist/policy/index.js +2 -0
  407. package/dist/policy/index.js.map +1 -0
  408. package/dist/policy/store_policy.d.ts +47 -0
  409. package/dist/policy/store_policy.d.ts.map +1 -0
  410. package/dist/policy/store_policy.js +125 -0
  411. package/dist/policy/store_policy.js.map +1 -0
  412. package/dist/profile/index.d.ts +5 -0
  413. package/dist/profile/index.d.ts.map +1 -0
  414. package/dist/profile/index.js +3 -0
  415. package/dist/profile/index.js.map +1 -0
  416. package/dist/profile/lever_profile.d.ts +27 -0
  417. package/dist/profile/lever_profile.d.ts.map +1 -0
  418. package/dist/profile/lever_profile.js +55 -0
  419. package/dist/profile/lever_profile.js.map +1 -0
  420. package/dist/profile/production.d.ts +12 -0
  421. package/dist/profile/production.d.ts.map +1 -0
  422. package/dist/profile/production.js +13 -0
  423. package/dist/profile/production.js.map +1 -0
  424. package/dist/provenance/build_fingerprint.d.ts +9 -0
  425. package/dist/provenance/build_fingerprint.d.ts.map +1 -0
  426. package/dist/provenance/build_fingerprint.js +47 -0
  427. package/dist/provenance/build_fingerprint.js.map +1 -0
  428. package/dist/provenance/derived_number.d.ts +33 -0
  429. package/dist/provenance/derived_number.d.ts.map +1 -0
  430. package/dist/provenance/derived_number.js +52 -0
  431. package/dist/provenance/derived_number.js.map +1 -0
  432. package/dist/provenance/index.d.ts +7 -0
  433. package/dist/provenance/index.d.ts.map +1 -0
  434. package/dist/provenance/index.js +4 -0
  435. package/dist/provenance/index.js.map +1 -0
  436. package/dist/provenance/live_state.d.ts +49 -0
  437. package/dist/provenance/live_state.d.ts.map +1 -0
  438. package/dist/provenance/live_state.js +141 -0
  439. package/dist/provenance/live_state.js.map +1 -0
  440. package/dist/rerank/cross_encoder.d.ts +14 -0
  441. package/dist/rerank/cross_encoder.d.ts.map +1 -0
  442. package/dist/rerank/cross_encoder.js +40 -0
  443. package/dist/rerank/cross_encoder.js.map +1 -0
  444. package/dist/rerank/identity.d.ts +6 -0
  445. package/dist/rerank/identity.d.ts.map +1 -0
  446. package/dist/rerank/identity.js +7 -0
  447. package/dist/rerank/identity.js.map +1 -0
  448. package/dist/rerank/index.d.ts +8 -0
  449. package/dist/rerank/index.d.ts.map +1 -0
  450. package/dist/rerank/index.js +5 -0
  451. package/dist/rerank/index.js.map +1 -0
  452. package/dist/rerank/reranking_retriever.d.ts +20 -0
  453. package/dist/rerank/reranking_retriever.d.ts.map +1 -0
  454. package/dist/rerank/reranking_retriever.js +38 -0
  455. package/dist/rerank/reranking_retriever.js.map +1 -0
  456. package/dist/rerank/reranking_select.d.ts +33 -0
  457. package/dist/rerank/reranking_select.d.ts.map +1 -0
  458. package/dist/rerank/reranking_select.js +116 -0
  459. package/dist/rerank/reranking_select.js.map +1 -0
  460. package/dist/rerank/types.d.ts +9 -0
  461. package/dist/rerank/types.d.ts.map +1 -0
  462. package/dist/rerank/types.js +2 -0
  463. package/dist/rerank/types.js.map +1 -0
  464. package/dist/resume/index.d.ts +3 -0
  465. package/dist/resume/index.d.ts.map +1 -0
  466. package/dist/resume/index.js +2 -0
  467. package/dist/resume/index.js.map +1 -0
  468. package/dist/resume/resume.d.ts +33 -0
  469. package/dist/resume/resume.d.ts.map +1 -0
  470. package/dist/resume/resume.js +86 -0
  471. package/dist/resume/resume.js.map +1 -0
  472. package/dist/retrieval/hnsw_store.d.ts +37 -0
  473. package/dist/retrieval/hnsw_store.d.ts.map +1 -0
  474. package/dist/retrieval/hnsw_store.js +284 -0
  475. package/dist/retrieval/hnsw_store.js.map +1 -0
  476. package/dist/retrieval/label_text.d.ts +2 -0
  477. package/dist/retrieval/label_text.d.ts.map +1 -0
  478. package/dist/retrieval/label_text.js +7 -0
  479. package/dist/retrieval/label_text.js.map +1 -0
  480. package/dist/retrieval/link_graph.d.ts +38 -0
  481. package/dist/retrieval/link_graph.d.ts.map +1 -0
  482. package/dist/retrieval/link_graph.js +118 -0
  483. package/dist/retrieval/link_graph.js.map +1 -0
  484. package/dist/retrieval/query_expansion.d.ts +18 -0
  485. package/dist/retrieval/query_expansion.d.ts.map +1 -0
  486. package/dist/retrieval/query_expansion.js +55 -0
  487. package/dist/retrieval/query_expansion.js.map +1 -0
  488. package/dist/retrieval/scope.d.ts +36 -0
  489. package/dist/retrieval/scope.d.ts.map +1 -0
  490. package/dist/retrieval/scope.js +120 -0
  491. package/dist/retrieval/scope.js.map +1 -0
  492. package/dist/retrieval/semantic.d.ts +136 -0
  493. package/dist/retrieval/semantic.d.ts.map +1 -0
  494. package/dist/retrieval/semantic.js +490 -0
  495. package/dist/retrieval/semantic.js.map +1 -0
  496. package/dist/retrieval/session_closed.d.ts +5 -0
  497. package/dist/retrieval/session_closed.d.ts.map +1 -0
  498. package/dist/retrieval/session_closed.js +8 -0
  499. package/dist/retrieval/session_closed.js.map +1 -0
  500. package/dist/retrieval/thread_lifecycle.d.ts +68 -0
  501. package/dist/retrieval/thread_lifecycle.d.ts.map +1 -0
  502. package/dist/retrieval/thread_lifecycle.js +201 -0
  503. package/dist/retrieval/thread_lifecycle.js.map +1 -0
  504. package/dist/retrieval/vector_store.d.ts +22 -0
  505. package/dist/retrieval/vector_store.d.ts.map +1 -0
  506. package/dist/retrieval/vector_store.js +41 -0
  507. package/dist/retrieval/vector_store.js.map +1 -0
  508. package/dist/retrieval/version_supersession.d.ts +13 -0
  509. package/dist/retrieval/version_supersession.d.ts.map +1 -0
  510. package/dist/retrieval/version_supersession.js +97 -0
  511. package/dist/retrieval/version_supersession.js.map +1 -0
  512. package/dist/saihm_client/federated_port.d.ts +30 -0
  513. package/dist/saihm_client/federated_port.d.ts.map +1 -0
  514. package/dist/saihm_client/federated_port.js +99 -0
  515. package/dist/saihm_client/federated_port.js.map +1 -0
  516. package/dist/saihm_client/in_memory_port.d.ts +35 -0
  517. package/dist/saihm_client/in_memory_port.d.ts.map +1 -0
  518. package/dist/saihm_client/in_memory_port.js +100 -0
  519. package/dist/saihm_client/in_memory_port.js.map +1 -0
  520. package/dist/saihm_client/index.d.ts +12 -0
  521. package/dist/saihm_client/index.d.ts.map +1 -0
  522. package/dist/saihm_client/index.js +8 -0
  523. package/dist/saihm_client/index.js.map +1 -0
  524. package/dist/saihm_client/mcp_client.d.ts +38 -0
  525. package/dist/saihm_client/mcp_client.d.ts.map +1 -0
  526. package/dist/saihm_client/mcp_client.js +266 -0
  527. package/dist/saihm_client/mcp_client.js.map +1 -0
  528. package/dist/saihm_client/server_features.d.ts +112 -0
  529. package/dist/saihm_client/server_features.d.ts.map +1 -0
  530. package/dist/saihm_client/server_features.js +415 -0
  531. package/dist/saihm_client/server_features.js.map +1 -0
  532. package/dist/saihm_client/share_guard.d.ts +9 -0
  533. package/dist/saihm_client/share_guard.d.ts.map +1 -0
  534. package/dist/saihm_client/share_guard.js +53 -0
  535. package/dist/saihm_client/share_guard.js.map +1 -0
  536. package/dist/saihm_client/timing.d.ts +100 -0
  537. package/dist/saihm_client/timing.d.ts.map +1 -0
  538. package/dist/saihm_client/timing.js +250 -0
  539. package/dist/saihm_client/timing.js.map +1 -0
  540. package/dist/saihm_client/types.d.ts +108 -0
  541. package/dist/saihm_client/types.d.ts.map +1 -0
  542. package/dist/saihm_client/types.js +19 -0
  543. package/dist/saihm_client/types.js.map +1 -0
  544. package/dist/service/handlers.d.ts +91 -0
  545. package/dist/service/handlers.d.ts.map +1 -0
  546. package/dist/service/handlers.js +173 -0
  547. package/dist/service/handlers.js.map +1 -0
  548. package/dist/service/http.d.ts +27 -0
  549. package/dist/service/http.d.ts.map +1 -0
  550. package/dist/service/http.js +261 -0
  551. package/dist/service/http.js.map +1 -0
  552. package/dist/service/index.d.ts +5 -0
  553. package/dist/service/index.d.ts.map +1 -0
  554. package/dist/service/index.js +5 -0
  555. package/dist/service/index.js.map +1 -0
  556. package/dist/service/resident.d.ts +50 -0
  557. package/dist/service/resident.d.ts.map +1 -0
  558. package/dist/service/resident.js +162 -0
  559. package/dist/service/resident.js.map +1 -0
  560. package/dist/service/service_level.d.ts +36 -0
  561. package/dist/service/service_level.d.ts.map +1 -0
  562. package/dist/service/service_level.js +65 -0
  563. package/dist/service/service_level.js.map +1 -0
  564. package/dist/session/change_feed.d.ts +82 -0
  565. package/dist/session/change_feed.d.ts.map +1 -0
  566. package/dist/session/change_feed.js +203 -0
  567. package/dist/session/change_feed.js.map +1 -0
  568. package/dist/session/index.d.ts +6 -0
  569. package/dist/session/index.d.ts.map +1 -0
  570. package/dist/session/index.js +4 -0
  571. package/dist/session/index.js.map +1 -0
  572. package/dist/session/memory_session.d.ts +426 -0
  573. package/dist/session/memory_session.d.ts.map +1 -0
  574. package/dist/session/memory_session.js +1183 -0
  575. package/dist/session/memory_session.js.map +1 -0
  576. package/dist/standing/content_fingerprint.d.ts +28 -0
  577. package/dist/standing/content_fingerprint.d.ts.map +1 -0
  578. package/dist/standing/content_fingerprint.js +95 -0
  579. package/dist/standing/content_fingerprint.js.map +1 -0
  580. package/dist/standing/standing_answers.d.ts +44 -0
  581. package/dist/standing/standing_answers.d.ts.map +1 -0
  582. package/dist/standing/standing_answers.js +72 -0
  583. package/dist/standing/standing_answers.js.map +1 -0
  584. package/dist/standing/standing_store.d.ts +44 -0
  585. package/dist/standing/standing_store.d.ts.map +1 -0
  586. package/dist/standing/standing_store.js +238 -0
  587. package/dist/standing/standing_store.js.map +1 -0
  588. package/dist/standing/surface.d.ts +20 -0
  589. package/dist/standing/surface.d.ts.map +1 -0
  590. package/dist/standing/surface.js +74 -0
  591. package/dist/standing/surface.js.map +1 -0
  592. package/dist/store/atomic_write.d.ts +7 -0
  593. package/dist/store/atomic_write.d.ts.map +1 -0
  594. package/dist/store/atomic_write.js +23 -0
  595. package/dist/store/atomic_write.js.map +1 -0
  596. package/dist/store/body_store.d.ts +42 -0
  597. package/dist/store/body_store.d.ts.map +1 -0
  598. package/dist/store/body_store.js +252 -0
  599. package/dist/store/body_store.js.map +1 -0
  600. package/dist/store/encrypted_store.d.ts +21 -0
  601. package/dist/store/encrypted_store.d.ts.map +1 -0
  602. package/dist/store/encrypted_store.js +266 -0
  603. package/dist/store/encrypted_store.js.map +1 -0
  604. package/dist/store/index.d.ts +21 -0
  605. package/dist/store/index.d.ts.map +1 -0
  606. package/dist/store/index.js +11 -0
  607. package/dist/store/index.js.map +1 -0
  608. package/dist/store/index_snapshot.d.ts +15 -0
  609. package/dist/store/index_snapshot.d.ts.map +1 -0
  610. package/dist/store/index_snapshot.js +126 -0
  611. package/dist/store/index_snapshot.js.map +1 -0
  612. package/dist/store/mcp_warm_start.d.ts +93 -0
  613. package/dist/store/mcp_warm_start.d.ts.map +1 -0
  614. package/dist/store/mcp_warm_start.js +406 -0
  615. package/dist/store/mcp_warm_start.js.map +1 -0
  616. package/dist/store/require_dir.d.ts +2 -0
  617. package/dist/store/require_dir.d.ts.map +1 -0
  618. package/dist/store/require_dir.js +9 -0
  619. package/dist/store/require_dir.js.map +1 -0
  620. package/dist/store/snapshot_format.d.ts +43 -0
  621. package/dist/store/snapshot_format.d.ts.map +1 -0
  622. package/dist/store/snapshot_format.js +119 -0
  623. package/dist/store/snapshot_format.js.map +1 -0
  624. package/dist/store/state_dir.d.ts +19 -0
  625. package/dist/store/state_dir.d.ts.map +1 -0
  626. package/dist/store/state_dir.js +42 -0
  627. package/dist/store/state_dir.js.map +1 -0
  628. package/dist/store/types.d.ts +37 -0
  629. package/dist/store/types.d.ts.map +1 -0
  630. package/dist/store/types.js +11 -0
  631. package/dist/store/types.js.map +1 -0
  632. package/dist/store/warm_index.d.ts +68 -0
  633. package/dist/store/warm_index.d.ts.map +1 -0
  634. package/dist/store/warm_index.js +279 -0
  635. package/dist/store/warm_index.js.map +1 -0
  636. package/dist/store/warm_start.d.ts +57 -0
  637. package/dist/store/warm_start.d.ts.map +1 -0
  638. package/dist/store/warm_start.js +68 -0
  639. package/dist/store/warm_start.js.map +1 -0
  640. package/dist/store/writer_lock.d.ts +34 -0
  641. package/dist/store/writer_lock.d.ts.map +1 -0
  642. package/dist/store/writer_lock.js +169 -0
  643. package/dist/store/writer_lock.js.map +1 -0
  644. package/dist/tiers/index.d.ts +2 -0
  645. package/dist/tiers/index.d.ts.map +1 -0
  646. package/dist/tiers/index.js +2 -0
  647. package/dist/tiers/index.js.map +1 -0
  648. package/dist/tiers/membership.d.ts +48 -0
  649. package/dist/tiers/membership.d.ts.map +1 -0
  650. package/dist/tiers/membership.js +85 -0
  651. package/dist/tiers/membership.js.map +1 -0
  652. package/dist/tuning/holdout.d.ts +54 -0
  653. package/dist/tuning/holdout.d.ts.map +1 -0
  654. package/dist/tuning/holdout.js +231 -0
  655. package/dist/tuning/holdout.js.map +1 -0
  656. package/dist/tuning/index.d.ts +7 -0
  657. package/dist/tuning/index.d.ts.map +1 -0
  658. package/dist/tuning/index.js +4 -0
  659. package/dist/tuning/index.js.map +1 -0
  660. package/dist/tuning/lever_stack.d.ts +27 -0
  661. package/dist/tuning/lever_stack.d.ts.map +1 -0
  662. package/dist/tuning/lever_stack.js +76 -0
  663. package/dist/tuning/lever_stack.js.map +1 -0
  664. package/dist/tuning/paired.d.ts +22 -0
  665. package/dist/tuning/paired.d.ts.map +1 -0
  666. package/dist/tuning/paired.js +74 -0
  667. package/dist/tuning/paired.js.map +1 -0
  668. package/dist/util/concurrency.d.ts +2 -0
  669. package/dist/util/concurrency.d.ts.map +1 -0
  670. package/dist/util/concurrency.js +19 -0
  671. package/dist/util/concurrency.js.map +1 -0
  672. package/package.json +161 -4
@@ -0,0 +1,92 @@
1
+ import type { SaihmPort, ShareRecipient, ShareScope } from "../saihm_client/types.js";
2
+ import type { ErasureListener } from "../erasure/bus.js";
3
+ import { type FingerprintLookup, type StandingVerdict } from "../standing/standing_answers.js";
4
+ import { type DerivedItem, type DerivedKind } from "./codec.js";
5
+ import type { MintedLedger, MintedRecord } from "./ledger.js";
6
+ import { type ResolvedPolicy } from "../policy/store_policy.js";
7
+ export interface CommitInput {
8
+ readonly kind: DerivedKind;
9
+ readonly label: string;
10
+ readonly text: string;
11
+ readonly sources: readonly string[];
12
+ readonly nowEpoch: number;
13
+ readonly supersedesDerived?: readonly string[];
14
+ readonly threads?: readonly string[];
15
+ readonly retire?: boolean;
16
+ }
17
+ export interface CommitReceipt {
18
+ readonly cellId: string;
19
+ readonly item: DerivedItem;
20
+ readonly shared?: boolean;
21
+ readonly shareError?: string;
22
+ }
23
+ export interface CascadeReport {
24
+ readonly erased: string;
25
+ readonly forgotten: readonly string[];
26
+ readonly refused: readonly {
27
+ readonly cellId: string;
28
+ readonly reason: string;
29
+ }[];
30
+ readonly failed: readonly {
31
+ readonly cellId: string;
32
+ readonly error: string;
33
+ }[];
34
+ readonly notAttested: readonly string[];
35
+ }
36
+ export interface AttestationRetryReport {
37
+ readonly attested: readonly string[];
38
+ readonly pending: readonly {
39
+ readonly cellId: string;
40
+ readonly reason: string;
41
+ }[];
42
+ readonly notFound: readonly string[];
43
+ readonly failed: readonly {
44
+ readonly cellId: string;
45
+ readonly error: string;
46
+ }[];
47
+ readonly refused: readonly {
48
+ readonly cellId: string;
49
+ readonly reason: string;
50
+ }[];
51
+ }
52
+ export interface SaihmDerivedStoreOptions {
53
+ readonly issuer: string;
54
+ readonly fingerprintOf: FingerprintLookup;
55
+ readonly organization?: {
56
+ readonly recipient: ShareRecipient;
57
+ readonly scope?: ShareScope;
58
+ };
59
+ readonly onCascade?: (report: CascadeReport) => void;
60
+ readonly policy?: () => ResolvedPolicy;
61
+ }
62
+ export declare class SaihmDerivedStore {
63
+ private readonly port;
64
+ private readonly ledger;
65
+ private readonly issuer;
66
+ private readonly fingerprintOf;
67
+ private readonly org;
68
+ private readonly onCascadeObs;
69
+ private readonly policyOf;
70
+ lastCascade: CascadeReport | undefined;
71
+ lastRetry: AttestationRetryReport | undefined;
72
+ private retryChain;
73
+ constructor(port: SaihmPort, ledger: MintedLedger, opts: SaihmDerivedStoreOptions);
74
+ commit(input: CommitInput): Promise<CommitReceipt>;
75
+ shareToOrg(cellId: string): Promise<{
76
+ ok: true;
77
+ } | {
78
+ ok: false;
79
+ error: string;
80
+ }>;
81
+ verify(cellId: string, fingerprintOf?: FingerprintLookup): Promise<StandingVerdict | undefined>;
82
+ read(cellId: string): Promise<DerivedItem | undefined>;
83
+ readonly onSourceErased: ErasureListener;
84
+ readonly cascade: (erased: string) => Promise<CascadeReport>;
85
+ retryUnattested(): Promise<AttestationRetryReport>;
86
+ pendingAttestation(): Promise<readonly string[]>;
87
+ private runRetry;
88
+ readonly lineageOf: (cellId: string) => readonly string[] | undefined;
89
+ readonly retirements: () => ReadonlyMap<string, string>;
90
+ list(): Promise<readonly MintedRecord[]>;
91
+ }
92
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/derived/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAA0C,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvI,OAAO,EAAuD,KAAK,WAAW,EAAE,KAAK,WAAW,EAAyB,MAAM,YAAY,CAAC;AAC5I,OAAO,KAAK,EAA0B,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEpF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClF,QAAQ,CAAC,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAChF,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClF,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAChF,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACnF;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;QAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAA;KAAE,CAAC;IAC5F,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IACrD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,cAAc,CAAC;CACxC;AAED,qBAAa,iBAAiB;IAW1B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAXzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA2C;IAC/D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2C;IACxE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,WAAW,EAAE,aAAa,GAAG,SAAS,CAAC;IACvC,SAAS,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAC9C,OAAO,CAAC,UAAU,CAAuC;gBAGtC,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,YAAY,EACrC,IAAI,EAAE,wBAAwB;IAU1B,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IA4ClD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAehF,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,GAAE,iBAAsC,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAMnH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAQ5D,QAAQ,CAAC,cAAc,EAAE,eAAe,CAEtC;IAEF,QAAQ,CAAC,OAAO,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAAC,CAmD/D;IAEI,eAAe,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAMlD,kBAAkB,IAAI,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC;YAIxC,QAAQ;IA0CtB,QAAQ,CAAC,SAAS,GAAI,QAAQ,MAAM,KAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAAkC;IAEtG,QAAQ,CAAC,WAAW,QAAO,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAA8B;IAE9E,IAAI,IAAI,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC;CAG/C"}
@@ -0,0 +1,230 @@
1
+ import { verifyStandingAnswer } from "../standing/standing_answers.js";
2
+ import { encodeDerivedCell, isDerivedLabel, parseDerivedCell } from "./codec.js";
3
+ import { assertWriteAllowed } from "../policy/store_policy.js";
4
+ export class SaihmDerivedStore {
5
+ port;
6
+ ledger;
7
+ issuer;
8
+ fingerprintOf;
9
+ org;
10
+ onCascadeObs;
11
+ policyOf;
12
+ lastCascade;
13
+ lastRetry;
14
+ retryChain = Promise.resolve();
15
+ constructor(port, ledger, opts) {
16
+ this.port = port;
17
+ this.ledger = ledger;
18
+ if (!/^[0-9a-f]{64}$/.test(opts.issuer))
19
+ throw new Error("SaihmDerivedStore: issuer must be a 64-hex agentIdHash");
20
+ this.issuer = opts.issuer;
21
+ this.fingerprintOf = opts.fingerprintOf;
22
+ this.org = opts.organization;
23
+ this.onCascadeObs = opts.onCascade;
24
+ this.policyOf = opts.policy;
25
+ }
26
+ async commit(input) {
27
+ if (this.policyOf !== undefined)
28
+ assertWriteAllowed(this.policyOf(), this.org !== undefined ? "central" : "saihm", "commit");
29
+ const index = await this.port.readIndex();
30
+ const live = new Map(index.filter((e) => !e.forgotten).map((e) => [e.cellId, e]));
31
+ const sources = [];
32
+ for (const cellId of input.sources) {
33
+ const minted = await this.ledger.get(cellId);
34
+ if (minted !== undefined && minted.forgotten !== undefined)
35
+ throw new Error(`commit refused: source ${cellId.slice(0, 12)}… is a derived cell that has been erased`);
36
+ if (!live.has(cellId))
37
+ throw new Error(`commit refused: source ${cellId.slice(0, 12)}… is not a live cell in this port's index`);
38
+ let fp;
39
+ try {
40
+ fp = this.fingerprintOf(cellId);
41
+ }
42
+ catch {
43
+ fp = undefined;
44
+ }
45
+ if (fp === undefined)
46
+ throw new Error(`commit refused: source ${cellId.slice(0, 12)}… cannot be fingerprinted now — an item that cannot be verified later must not be minted`);
47
+ sources.push({ cellId, fingerprint: fp });
48
+ }
49
+ const ownership = this.org !== undefined ? "org-shared" : "agent";
50
+ const item = {
51
+ kind: input.kind,
52
+ issuer: this.issuer,
53
+ sources,
54
+ derivedAtEpoch: input.nowEpoch,
55
+ ownership,
56
+ ...(input.supersedesDerived !== undefined ? { supersedesDerived: input.supersedesDerived } : {}),
57
+ ...(input.threads !== undefined ? { threads: input.threads } : {}),
58
+ ...(input.retire === true && sources.length > 0 ? { retires: sources.map((s) => s.cellId) } : {}),
59
+ label: input.label,
60
+ text: input.text,
61
+ };
62
+ const content = encodeDerivedCell(item);
63
+ const receipt = await this.port.remember(content);
64
+ const rec = {
65
+ ...(input.threads !== undefined && input.threads.length > 0 ? { threads: input.threads } : {}),
66
+ cellId: receipt.cellId, kind: item.kind, sources, derivedAtEpoch: input.nowEpoch, ownership,
67
+ ...(item.retires !== undefined ? { retires: item.retires } : {}),
68
+ };
69
+ await this.ledger.add(rec);
70
+ if (this.org === undefined)
71
+ return { cellId: receipt.cellId, item };
72
+ const shared = await this.shareToOrg(receipt.cellId);
73
+ return { cellId: receipt.cellId, item, shared: shared.ok, ...(shared.ok ? {} : { shareError: shared.error }) };
74
+ }
75
+ async shareToOrg(cellId) {
76
+ if (this.org === undefined)
77
+ return { ok: false, error: "no organization recipient configured" };
78
+ const rec = await this.ledger.get(cellId);
79
+ if (rec === undefined)
80
+ return { ok: false, error: "not an own-minted cell" };
81
+ try {
82
+ await this.port.share(cellId, this.org.recipient, this.org.scope ?? "read");
83
+ await this.ledger.setShareError(cellId, undefined);
84
+ return { ok: true };
85
+ }
86
+ catch (e) {
87
+ const error = e.message;
88
+ await this.ledger.setShareError(cellId, error);
89
+ return { ok: false, error };
90
+ }
91
+ }
92
+ async verify(cellId, fingerprintOf = this.fingerprintOf) {
93
+ const rec = await this.ledger.get(cellId);
94
+ if (rec === undefined)
95
+ return undefined;
96
+ return verifyStandingAnswer({ question: "", answer: "", evidence: rec.sources, writtenAtEpoch: rec.derivedAtEpoch }, fingerprintOf);
97
+ }
98
+ async read(cellId) {
99
+ const entry = (await this.port.readIndex()).find((e) => e.cellId === cellId && !e.forgotten);
100
+ if (entry === undefined)
101
+ return undefined;
102
+ const bodies = await this.port.recallByQuery(entry.label.slice(0, 80));
103
+ const body = bodies.find((b) => b.cellId === cellId);
104
+ return body === undefined ? undefined : parseDerivedCell(body.plaintext);
105
+ }
106
+ onSourceErased = async (erased) => {
107
+ await this.cascade(erased);
108
+ };
109
+ cascade = async (erased) => {
110
+ const forgotten = [];
111
+ const refused = [];
112
+ const failed = [];
113
+ const notAttested = [];
114
+ const queue = [erased];
115
+ const visited = new Set();
116
+ while (queue.length > 0) {
117
+ const src = queue.shift();
118
+ if (visited.has(src))
119
+ continue;
120
+ visited.add(src);
121
+ const citing = await this.ledger.citing(src);
122
+ if (citing.length === 0)
123
+ continue;
124
+ const index = await this.port.readIndex();
125
+ const labelOf = new Map(index.map((e) => [e.cellId, { label: e.label, forgotten: e.forgotten }]));
126
+ for (const rec of citing) {
127
+ const entry = labelOf.get(rec.cellId);
128
+ if (entry === undefined || entry.forgotten) {
129
+ await this.ledger.markForgotten(rec.cellId, rec.derivedAtEpoch, `already absent when cascading from ${erased.slice(0, 12)}…`);
130
+ queue.push(rec.cellId);
131
+ continue;
132
+ }
133
+ if (!isDerivedLabel(entry.label)) {
134
+ refused.push({ cellId: rec.cellId, reason: "ledger names it but its index label is not SHM-derived — not forgotten" });
135
+ continue;
136
+ }
137
+ try {
138
+ const receipt = await this.port.forget(rec.cellId);
139
+ const unattested = receipt !== undefined && receipt.complete === false && receipt.reason === "not-attested";
140
+ await this.ledger.markForgotten(rec.cellId, rec.derivedAtEpoch, `cascade from ${erased.slice(0, 12)}…`, unattested ? { state: "pending", tries: 1 } : undefined);
141
+ forgotten.push(rec.cellId);
142
+ if (unattested)
143
+ notAttested.push(rec.cellId);
144
+ queue.push(rec.cellId);
145
+ }
146
+ catch (e) {
147
+ failed.push({ cellId: rec.cellId, error: e.message });
148
+ }
149
+ }
150
+ }
151
+ const report = { erased, forgotten, refused, failed, notAttested };
152
+ this.lastCascade = report;
153
+ try {
154
+ this.onCascadeObs?.(report);
155
+ }
156
+ catch {
157
+ }
158
+ if (failed.length > 0) {
159
+ throw new AggregateError(failed.map((f) => new Error(`${f.cellId.slice(0, 12)}…: ${f.error}`)), `derived cascade from ${erased.slice(0, 12)}…: ${failed.length} forget(s) FAILED — erasure duty not discharged`);
160
+ }
161
+ return report;
162
+ };
163
+ async retryUnattested() {
164
+ const run = this.retryChain.then(() => this.runRetry());
165
+ this.retryChain = run.catch(() => { });
166
+ return run;
167
+ }
168
+ async pendingAttestation() {
169
+ return (await this.ledger.all()).filter(isPending).map((r) => r.cellId);
170
+ }
171
+ async runRetry() {
172
+ const attested = [];
173
+ const pending = [];
174
+ const notFound = [];
175
+ const failed = [];
176
+ const refused = [];
177
+ const records = (await this.ledger.all()).filter(isPending);
178
+ let entryOf;
179
+ if (records.length > 0) {
180
+ try {
181
+ entryOf = new Map((await this.port.readIndex()).map((e) => [e.cellId, { label: e.label, forgotten: e.forgotten }]));
182
+ }
183
+ catch (e) {
184
+ const error = `the index could not be read, so guard 2 could not be checked: ${e.message}`;
185
+ for (const rec of records)
186
+ failed.push({ cellId: rec.cellId, error });
187
+ }
188
+ }
189
+ for (const rec of entryOf === undefined ? [] : records) {
190
+ const entry = entryOf.get(rec.cellId);
191
+ if (entry !== undefined && !entry.forgotten && !isDerivedLabel(entry.label)) {
192
+ refused.push({ cellId: rec.cellId, reason: "the ledger names it but its index label is not SHM-derived — not forgotten" });
193
+ continue;
194
+ }
195
+ const tries = rec.attestation.tries + 1;
196
+ try {
197
+ const receipt = await this.port.forget(rec.cellId);
198
+ let next;
199
+ if (receipt !== undefined && receipt.complete === true)
200
+ next = { state: "attested", tries };
201
+ else if (receipt !== undefined && receipt.complete === false && receipt.reason === "not-found")
202
+ next = { state: "not-found", tries };
203
+ else
204
+ next = { state: "pending", tries };
205
+ await this.ledger.setAttestation(rec.cellId, next);
206
+ if (next.state === "attested")
207
+ attested.push(rec.cellId);
208
+ else if (next.state === "not-found")
209
+ notFound.push(rec.cellId);
210
+ else
211
+ pending.push({ cellId: rec.cellId, reason: receipt?.reason ?? "unstated" });
212
+ }
213
+ catch (e) {
214
+ failed.push({ cellId: rec.cellId, error: e.message });
215
+ }
216
+ }
217
+ const report = { attested, pending, notFound, failed, refused };
218
+ this.lastRetry = report;
219
+ return report;
220
+ }
221
+ lineageOf = (cellId) => this.ledger.lineageOf(cellId);
222
+ retirements = () => this.ledger.retirements();
223
+ async list() {
224
+ return (await this.ledger.all()).filter((r) => r.forgotten === undefined);
225
+ }
226
+ }
227
+ function isPending(r) {
228
+ return r.forgotten !== undefined && r.attestation?.state === "pending";
229
+ }
230
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/derived/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export type { Embedder, EmbedResult, EmbeddedVector, Embeddable, SensitivityConfig, } from "./types.js";
2
+ export { LocalMiniLmEmbedder } from "./local_minilm.js";
3
+ export { RemoteHttpEmbedder, type RemoteHttpConfig, type FetchLike } from "./remote_http.js";
4
+ export { SensitivityRouter, needsReembed } from "./router.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/embed/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,WAAW,EACX,cAAc,EACd,UAAU,EACV,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { LocalMiniLmEmbedder } from "./local_minilm.js";
2
+ export { RemoteHttpEmbedder } from "./remote_http.js";
3
+ export { SensitivityRouter, needsReembed } from "./router.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embed/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAyC,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Embedder, EmbedResult } from "./types.js";
2
+ export declare class LocalMiniLmEmbedder implements Embedder {
3
+ readonly modelId = "Xenova/all-MiniLM-L6-v2";
4
+ readonly dim = 384;
5
+ private extractor;
6
+ private pipe;
7
+ embed(texts: readonly string[]): Promise<EmbedResult>;
8
+ }
9
+ //# sourceMappingURL=local_minilm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local_minilm.d.ts","sourceRoot":"","sources":["../../src/embed/local_minilm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAExD,qBAAa,mBAAoB,YAAW,QAAQ;IAClD,QAAQ,CAAC,OAAO,6BAA6B;IAC7C,QAAQ,CAAC,GAAG,OAAO;IACnB,OAAO,CAAC,SAAS,CAAuE;YAE1E,IAAI;IAQZ,KAAK,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;CAoB5D"}
@@ -0,0 +1,31 @@
1
+ export class LocalMiniLmEmbedder {
2
+ modelId = "Xenova/all-MiniLM-L6-v2";
3
+ dim = 384;
4
+ extractor = null;
5
+ async pipe() {
6
+ if (this.extractor)
7
+ return this.extractor;
8
+ const { pipeline } = await import("@xenova/transformers");
9
+ const extractor = await pipeline("feature-extraction", this.modelId);
10
+ this.extractor = extractor;
11
+ return this.extractor;
12
+ }
13
+ async embed(texts) {
14
+ if (texts.length === 0)
15
+ return { vectors: [], modelId: this.modelId, dim: this.dim };
16
+ const extractor = await this.pipe();
17
+ const vectors = [];
18
+ for (const text of texts) {
19
+ const out = (await extractor([text], { pooling: "mean", normalize: true }));
20
+ const rows = out.tolist();
21
+ const row = rows[0];
22
+ if (rows.length !== 1 || !row) {
23
+ throw new Error(`local_minilm: expected exactly 1 row for 1 input, got ${rows.length} (model=${this.modelId})`);
24
+ }
25
+ vectors.push(Float32Array.from(row));
26
+ }
27
+ const dim = vectors[0]?.length ?? this.dim;
28
+ return { vectors, modelId: this.modelId, dim };
29
+ }
30
+ }
31
+ //# sourceMappingURL=local_minilm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local_minilm.js","sourceRoot":"","sources":["../../src/embed/local_minilm.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,mBAAmB;IACrB,OAAO,GAAG,yBAAyB,CAAC;IACpC,GAAG,GAAG,GAAG,CAAC;IACX,SAAS,GAAkE,IAAI,CAAC;IAEhF,KAAK,CAAC,IAAI;QAChB,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC;QAC1C,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACrE,IAAI,CAAC,SAAS,GAAG,SAA4E,CAAC;QAC9F,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAwB;QAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QACrF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,CAAC,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAEzE,CAAC;YACF,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CACb,yDAAyD,IAAI,CAAC,MAAM,WAAW,IAAI,CAAC,OAAO,GAAG,CAC/F,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC;QAC3C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;IACjD,CAAC;CACF"}
@@ -0,0 +1,26 @@
1
+ import type { Embedder, EmbedResult } from "./types.js";
2
+ export type FetchLike = (url: string, init: {
3
+ method: string;
4
+ headers: Record<string, string>;
5
+ body: string;
6
+ }) => Promise<{
7
+ ok: boolean;
8
+ status: number;
9
+ json(): Promise<unknown>;
10
+ }>;
11
+ export interface RemoteHttpConfig {
12
+ readonly endpoint: string;
13
+ readonly modelId: string;
14
+ readonly dim: number;
15
+ readonly apiKey?: string;
16
+ readonly fetchImpl?: FetchLike;
17
+ }
18
+ export declare class RemoteHttpEmbedder implements Embedder {
19
+ readonly modelId: string;
20
+ readonly dim: number;
21
+ private readonly cfg;
22
+ private readonly doFetch;
23
+ constructor(cfg: RemoteHttpConfig);
24
+ embed(texts: readonly string[]): Promise<EmbedResult>;
25
+ }
26
+ //# sourceMappingURL=remote_http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote_http.d.ts","sourceRoot":"","sources":["../../src/embed/remote_http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,MAAM,SAAS,GAAG,CACtB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KACpE,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC,CAAC;AAExE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;CAChC;AAED,qBAAa,kBAAmB,YAAW,QAAQ;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAmB;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;gBAExB,GAAG,EAAE,gBAAgB;IAO3B,KAAK,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;CA0B5D"}
@@ -0,0 +1,40 @@
1
+ export class RemoteHttpEmbedder {
2
+ modelId;
3
+ dim;
4
+ cfg;
5
+ doFetch;
6
+ constructor(cfg) {
7
+ this.cfg = cfg;
8
+ this.modelId = cfg.modelId;
9
+ this.dim = cfg.dim;
10
+ this.doFetch = cfg.fetchImpl ?? globalThis.fetch;
11
+ }
12
+ async embed(texts) {
13
+ if (texts.length === 0)
14
+ return { vectors: [], modelId: this.modelId, dim: this.dim };
15
+ const headers = { "content-type": "application/json" };
16
+ if (this.cfg.apiKey)
17
+ headers["authorization"] = `Bearer ${this.cfg.apiKey}`;
18
+ const res = await this.doFetch(this.cfg.endpoint, {
19
+ method: "POST",
20
+ headers,
21
+ body: JSON.stringify({ input: [...texts], model: this.modelId }),
22
+ });
23
+ if (!res.ok)
24
+ throw new Error(`remote embed failed: HTTP ${res.status}`);
25
+ const json = (await res.json());
26
+ const data = json.data;
27
+ if (!Array.isArray(data) || data.length !== texts.length) {
28
+ throw new Error("remote embed: response shape/count mismatch (fail-closed)");
29
+ }
30
+ const vectors = data.map((d, i) => {
31
+ const e = d.embedding;
32
+ if (!Array.isArray(e) || e.length !== this.dim) {
33
+ throw new Error(`remote embed: vector ${i} dim mismatch (expected ${this.dim})`);
34
+ }
35
+ return Float32Array.from(e);
36
+ });
37
+ return { vectors, modelId: this.modelId, dim: this.dim };
38
+ }
39
+ }
40
+ //# sourceMappingURL=remote_http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote_http.js","sourceRoot":"","sources":["../../src/embed/remote_http.ts"],"names":[],"mappings":"AAeA,MAAM,OAAO,kBAAkB;IACpB,OAAO,CAAS;IAChB,GAAG,CAAS;IACJ,GAAG,CAAmB;IACtB,OAAO,CAAY;IAEpC,YAAY,GAAqB;QAC/B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,SAAS,IAAK,UAAU,CAAC,KAA8B,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAwB;QAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QACrF,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QAC/E,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAE5E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;YAChD,MAAM,EAAE,MAAM;YACd,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;SACjE,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAExE,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA8C,CAAC;QAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAChC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,2BAA2B,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;YACnF,CAAC;YACD,OAAO,YAAY,CAAC,IAAI,CAAC,CAAa,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3D,CAAC;CACF"}
@@ -0,0 +1,16 @@
1
+ import type { Embeddable, EmbeddedVector, Embedder, SensitivityConfig } from "./types.js";
2
+ export declare class SensitivityRouter {
3
+ private readonly local;
4
+ private readonly remote;
5
+ private readonly allow;
6
+ constructor(opts: {
7
+ local: Embedder;
8
+ remote?: Embedder;
9
+ config?: SensitivityConfig;
10
+ });
11
+ routesRemote(namespace: string): boolean;
12
+ embedRecords(items: readonly Embeddable[]): Promise<EmbeddedVector[]>;
13
+ private embedGroup;
14
+ }
15
+ export declare function needsReembed(v: EmbeddedVector, target: Embedder): boolean;
16
+ //# sourceMappingURL=router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/embed/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE1F,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;gBAEhC,IAAI,EAAE;QAAE,KAAK,EAAE,QAAQ,CAAC;QAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;QAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;KAAE;IAMpF,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIlC,YAAY,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;YAqB7D,UAAU;CAezB;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,CAEzE"}
@@ -0,0 +1,47 @@
1
+ export class SensitivityRouter {
2
+ local;
3
+ remote;
4
+ allow;
5
+ constructor(opts) {
6
+ this.local = opts.local;
7
+ this.remote = opts.remote;
8
+ this.allow = opts.config?.allowRemoteNamespaces ?? new Set();
9
+ }
10
+ routesRemote(namespace) {
11
+ return this.remote !== undefined && this.allow.has(namespace);
12
+ }
13
+ async embedRecords(items) {
14
+ const out = new Array(items.length).fill(undefined);
15
+ const localIdx = [];
16
+ const remoteIdx = [];
17
+ items.forEach((it, i) => (this.routesRemote(it.namespace) ? remoteIdx : localIdx).push(i));
18
+ await this.embedGroup(items, localIdx, this.local, out);
19
+ if (this.remote && remoteIdx.length > 0) {
20
+ await this.embedGroup(items, remoteIdx, this.remote, out);
21
+ }
22
+ const result = [];
23
+ for (let i = 0; i < out.length; i++) {
24
+ const v = out[i];
25
+ if (!v)
26
+ throw new Error(`embed routing left index ${i} unfilled (fail-closed)`);
27
+ result.push(v);
28
+ }
29
+ return result;
30
+ }
31
+ async embedGroup(items, idx, backend, out) {
32
+ if (idx.length === 0)
33
+ return;
34
+ const texts = idx.map((i) => items[i].text);
35
+ const res = await backend.embed(texts);
36
+ idx.forEach((origIdx, k) => {
37
+ const vec = res.vectors[k];
38
+ if (!vec)
39
+ throw new Error("embed backend returned fewer vectors than inputs (fail-closed)");
40
+ out[origIdx] = { vector: vec, modelId: res.modelId, dim: res.dim };
41
+ });
42
+ }
43
+ }
44
+ export function needsReembed(v, target) {
45
+ return v.modelId !== target.modelId || v.dim !== target.dim;
46
+ }
47
+ //# sourceMappingURL=router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/embed/router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export interface EmbedResult {
2
+ readonly vectors: readonly Float32Array[];
3
+ readonly modelId: string;
4
+ readonly dim: number;
5
+ }
6
+ export interface Embedder {
7
+ readonly modelId: string;
8
+ readonly dim: number;
9
+ embed(texts: readonly string[]): Promise<EmbedResult>;
10
+ }
11
+ export interface EmbeddedVector {
12
+ readonly vector: Float32Array;
13
+ readonly modelId: string;
14
+ readonly dim: number;
15
+ }
16
+ export interface Embeddable {
17
+ readonly text: string;
18
+ readonly namespace: string;
19
+ }
20
+ export interface SensitivityConfig {
21
+ readonly allowRemoteNamespaces?: ReadonlySet<string>;
22
+ }
23
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/embed/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACtD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/embed/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ export declare const PAID_SUBSCRIPTION_TIERS: readonly string[];
2
+ export declare function isPaidSubscriptionTier(tier: unknown): tier is string;
3
+ export interface SubscriptionSource {
4
+ status(): Promise<unknown>;
5
+ }
6
+ export type EntitlementRefusal = "no-source" | "status-failed" | "status-timeout" | "unpaid-tier" | "unknown-tier";
7
+ export declare class EntitlementError extends Error {
8
+ readonly code: EntitlementRefusal;
9
+ readonly tier: string | undefined;
10
+ readonly cause?: unknown;
11
+ constructor(code: EntitlementRefusal, message: string, tier?: string, cause?: unknown);
12
+ }
13
+ export interface Entitlement {
14
+ readonly tier: string;
15
+ readonly checkedAt: string;
16
+ readonly status?: Readonly<Record<string, unknown>>;
17
+ }
18
+ export interface CheckEntitlementOptions {
19
+ readonly timeoutMs?: number;
20
+ readonly now?: () => Date;
21
+ }
22
+ export declare const DEFAULT_ENTITLEMENT_TIMEOUT_MS = 15000;
23
+ export declare function checkEntitlement(source: SubscriptionSource | undefined, opts?: CheckEntitlementOptions): Promise<Entitlement>;
24
+ //# sourceMappingURL=entitlement.d.ts.map