hippo-memory 1.44.0 → 1.46.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 (554) hide show
  1. package/README.md +68 -24
  2. package/bin/hippo.js +3 -1
  3. package/dist/ablation.d.ts +10 -1
  4. package/dist/ablation.js +17 -1
  5. package/dist/api.d.ts +81 -22
  6. package/dist/api.js +258 -49
  7. package/dist/audit.d.ts +2 -2
  8. package/dist/audit.js +9 -0
  9. package/dist/autolearn.d.ts +1 -1
  10. package/dist/autolearn.js +2 -1
  11. package/dist/capture-error.d.ts +20 -0
  12. package/dist/capture-error.js +82 -0
  13. package/dist/capture.d.ts +25 -8
  14. package/dist/capture.js +100 -5
  15. package/dist/cli.d.ts +9 -1
  16. package/dist/cli.js +531 -119
  17. package/dist/client.d.ts +4 -21
  18. package/dist/client.js +3 -112
  19. package/dist/config.d.ts +20 -0
  20. package/dist/config.js +37 -1
  21. package/dist/consolidate.d.ts +9 -0
  22. package/dist/consolidate.js +133 -46
  23. package/dist/dag.d.ts +1 -0
  24. package/dist/dag.js +10 -5
  25. package/dist/dashboard.js +7 -3
  26. package/dist/db.js +69 -24
  27. package/dist/dedupe.d.ts +1 -0
  28. package/dist/dedupe.js +4 -7
  29. package/dist/doctor.d.ts +34 -0
  30. package/dist/doctor.js +174 -0
  31. package/dist/dormant.d.ts +91 -0
  32. package/dist/dormant.js +121 -0
  33. package/dist/embedding-provider.js +2 -1
  34. package/dist/embeddings.js +81 -8
  35. package/dist/eval-stats.d.ts +123 -0
  36. package/dist/eval-stats.js +187 -0
  37. package/dist/extract.d.ts +2 -0
  38. package/dist/extract.js +9 -4
  39. package/dist/half-life-migration.d.ts +55 -0
  40. package/dist/half-life-migration.js +111 -0
  41. package/dist/hooks.d.ts +4 -0
  42. package/dist/hooks.js +47 -0
  43. package/dist/mcp/server.d.ts +6 -0
  44. package/dist/mcp/server.js +90 -48
  45. package/dist/memory.d.ts +18 -1
  46. package/dist/memory.js +33 -5
  47. package/dist/physics-config.js +5 -1
  48. package/dist/recall-scope.d.ts +24 -0
  49. package/dist/recall-scope.js +41 -0
  50. package/dist/refine-llm.js +3 -2
  51. package/dist/reject-flow.d.ts +3 -3
  52. package/dist/reject-flow.js +10 -3
  53. package/dist/rerankers/jev.js +3 -2
  54. package/dist/rerankers/llm.js +3 -2
  55. package/dist/search.d.ts +4 -4
  56. package/dist/search.js +26 -21
  57. package/dist/server.d.ts +5 -0
  58. package/dist/server.js +49 -29
  59. package/dist/shared.js +1 -1
  60. package/dist/store.d.ts +29 -11
  61. package/dist/store.js +197 -70
  62. package/dist/token-ledger.d.ts +119 -0
  63. package/dist/token-ledger.js +181 -0
  64. package/dist/version.d.ts +4 -6
  65. package/dist/version.js +4 -7
  66. package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
  67. package/extensions/openclaw-plugin/package.json +1 -1
  68. package/openclaw.plugin.json +1 -1
  69. package/package.json +7 -3
  70. package/dist/ablation.d.ts.map +0 -1
  71. package/dist/ablation.js.map +0 -1
  72. package/dist/ambient.d.ts.map +0 -1
  73. package/dist/ambient.js.map +0 -1
  74. package/dist/api.d.ts.map +0 -1
  75. package/dist/api.js.map +0 -1
  76. package/dist/audit-prune.d.ts.map +0 -1
  77. package/dist/audit-prune.js.map +0 -1
  78. package/dist/audit.d.ts.map +0 -1
  79. package/dist/audit.js.map +0 -1
  80. package/dist/auth.d.ts.map +0 -1
  81. package/dist/auth.js.map +0 -1
  82. package/dist/autolearn.d.ts.map +0 -1
  83. package/dist/autolearn.js.map +0 -1
  84. package/dist/availability.d.ts.map +0 -1
  85. package/dist/availability.js.map +0 -1
  86. package/dist/benchmarks/e1.3/incident-recall-eval.js +0 -78
  87. package/dist/benchmarks/e1.3/incident-recall-eval.js.map +0 -1
  88. package/dist/benchmarks/e1.3/slack-1000-event-smoke.js +0 -103
  89. package/dist/benchmarks/e1.3/slack-1000-event-smoke.js.map +0 -1
  90. package/dist/capture.d.ts.map +0 -1
  91. package/dist/capture.js.map +0 -1
  92. package/dist/card-detail.d.ts.map +0 -1
  93. package/dist/card-detail.js.map +0 -1
  94. package/dist/card.d.ts.map +0 -1
  95. package/dist/card.js.map +0 -1
  96. package/dist/cli.d.ts.map +0 -1
  97. package/dist/cli.js.map +0 -1
  98. package/dist/client.d.ts.map +0 -1
  99. package/dist/client.js.map +0 -1
  100. package/dist/compare.d.ts.map +0 -1
  101. package/dist/compare.js.map +0 -1
  102. package/dist/config.d.ts.map +0 -1
  103. package/dist/config.js.map +0 -1
  104. package/dist/connectors/github/backfill.d.ts.map +0 -1
  105. package/dist/connectors/github/backfill.js.map +0 -1
  106. package/dist/connectors/github/cli-impl.d.ts.map +0 -1
  107. package/dist/connectors/github/cli-impl.js.map +0 -1
  108. package/dist/connectors/github/deletion.d.ts.map +0 -1
  109. package/dist/connectors/github/deletion.js.map +0 -1
  110. package/dist/connectors/github/dlq.d.ts.map +0 -1
  111. package/dist/connectors/github/dlq.js.map +0 -1
  112. package/dist/connectors/github/idempotency.d.ts.map +0 -1
  113. package/dist/connectors/github/idempotency.js.map +0 -1
  114. package/dist/connectors/github/ingest.d.ts.map +0 -1
  115. package/dist/connectors/github/ingest.js.map +0 -1
  116. package/dist/connectors/github/octokit-client.d.ts.map +0 -1
  117. package/dist/connectors/github/octokit-client.js.map +0 -1
  118. package/dist/connectors/github/ratelimit.d.ts.map +0 -1
  119. package/dist/connectors/github/ratelimit.js.map +0 -1
  120. package/dist/connectors/github/scope.d.ts.map +0 -1
  121. package/dist/connectors/github/scope.js.map +0 -1
  122. package/dist/connectors/github/signature.d.ts.map +0 -1
  123. package/dist/connectors/github/signature.js.map +0 -1
  124. package/dist/connectors/github/tenant-routing.d.ts.map +0 -1
  125. package/dist/connectors/github/tenant-routing.js.map +0 -1
  126. package/dist/connectors/github/transform.d.ts.map +0 -1
  127. package/dist/connectors/github/transform.js.map +0 -1
  128. package/dist/connectors/github/types.d.ts.map +0 -1
  129. package/dist/connectors/github/types.js.map +0 -1
  130. package/dist/connectors/slack/backfill.d.ts.map +0 -1
  131. package/dist/connectors/slack/backfill.js.map +0 -1
  132. package/dist/connectors/slack/deletion.d.ts.map +0 -1
  133. package/dist/connectors/slack/deletion.js.map +0 -1
  134. package/dist/connectors/slack/dlq.d.ts.map +0 -1
  135. package/dist/connectors/slack/dlq.js.map +0 -1
  136. package/dist/connectors/slack/idempotency.d.ts.map +0 -1
  137. package/dist/connectors/slack/idempotency.js.map +0 -1
  138. package/dist/connectors/slack/ingest.d.ts.map +0 -1
  139. package/dist/connectors/slack/ingest.js.map +0 -1
  140. package/dist/connectors/slack/ratelimit.d.ts.map +0 -1
  141. package/dist/connectors/slack/ratelimit.js.map +0 -1
  142. package/dist/connectors/slack/scope.d.ts.map +0 -1
  143. package/dist/connectors/slack/scope.js.map +0 -1
  144. package/dist/connectors/slack/signature.d.ts.map +0 -1
  145. package/dist/connectors/slack/signature.js.map +0 -1
  146. package/dist/connectors/slack/tenant-routing.d.ts.map +0 -1
  147. package/dist/connectors/slack/tenant-routing.js.map +0 -1
  148. package/dist/connectors/slack/transform.d.ts.map +0 -1
  149. package/dist/connectors/slack/transform.js.map +0 -1
  150. package/dist/connectors/slack/types.d.ts.map +0 -1
  151. package/dist/connectors/slack/types.js.map +0 -1
  152. package/dist/connectors/slack/web-client.d.ts.map +0 -1
  153. package/dist/connectors/slack/web-client.js.map +0 -1
  154. package/dist/connectors/slack/workspaces.d.ts.map +0 -1
  155. package/dist/connectors/slack/workspaces.js.map +0 -1
  156. package/dist/consolidate.d.ts.map +0 -1
  157. package/dist/consolidate.js.map +0 -1
  158. package/dist/correction-latency.d.ts.map +0 -1
  159. package/dist/correction-latency.js.map +0 -1
  160. package/dist/customer-notes.d.ts.map +0 -1
  161. package/dist/customer-notes.js.map +0 -1
  162. package/dist/dag.d.ts.map +0 -1
  163. package/dist/dag.js.map +0 -1
  164. package/dist/dashboard.d.ts.map +0 -1
  165. package/dist/dashboard.js.map +0 -1
  166. package/dist/db.d.ts.map +0 -1
  167. package/dist/db.js.map +0 -1
  168. package/dist/decisions.d.ts.map +0 -1
  169. package/dist/decisions.js.map +0 -1
  170. package/dist/dedupe.d.ts.map +0 -1
  171. package/dist/dedupe.js.map +0 -1
  172. package/dist/embedding-provider.d.ts.map +0 -1
  173. package/dist/embedding-provider.js.map +0 -1
  174. package/dist/embeddings.d.ts.map +0 -1
  175. package/dist/embeddings.js.map +0 -1
  176. package/dist/eval-suite.d.ts.map +0 -1
  177. package/dist/eval-suite.js.map +0 -1
  178. package/dist/eval.d.ts.map +0 -1
  179. package/dist/eval.js.map +0 -1
  180. package/dist/extensions/openclaw-plugin/index.js.map +0 -1
  181. package/dist/extract.d.ts.map +0 -1
  182. package/dist/extract.js.map +0 -1
  183. package/dist/forward-claim-detector.d.ts.map +0 -1
  184. package/dist/forward-claim-detector.js.map +0 -1
  185. package/dist/goals.d.ts.map +0 -1
  186. package/dist/goals.js.map +0 -1
  187. package/dist/graph-extract.d.ts.map +0 -1
  188. package/dist/graph-extract.js.map +0 -1
  189. package/dist/graph-recall.d.ts.map +0 -1
  190. package/dist/graph-recall.js.map +0 -1
  191. package/dist/graph-stream.d.ts.map +0 -1
  192. package/dist/graph-stream.js.map +0 -1
  193. package/dist/graph-view.d.ts.map +0 -1
  194. package/dist/graph-view.js.map +0 -1
  195. package/dist/graph.d.ts.map +0 -1
  196. package/dist/graph.js.map +0 -1
  197. package/dist/handoff.d.ts.map +0 -1
  198. package/dist/handoff.js.map +0 -1
  199. package/dist/hooks.d.ts.map +0 -1
  200. package/dist/hooks.js.map +0 -1
  201. package/dist/importers.d.ts.map +0 -1
  202. package/dist/importers.js.map +0 -1
  203. package/dist/incidents.d.ts.map +0 -1
  204. package/dist/incidents.js.map +0 -1
  205. package/dist/index.d.ts.map +0 -1
  206. package/dist/index.js.map +0 -1
  207. package/dist/invalidation.d.ts.map +0 -1
  208. package/dist/invalidation.js.map +0 -1
  209. package/dist/mcp/framing.d.ts.map +0 -1
  210. package/dist/mcp/framing.js.map +0 -1
  211. package/dist/mcp/server.d.ts.map +0 -1
  212. package/dist/mcp/server.js.map +0 -1
  213. package/dist/memory-value-weights.d.ts.map +0 -1
  214. package/dist/memory-value-weights.js.map +0 -1
  215. package/dist/memory-value.d.ts.map +0 -1
  216. package/dist/memory-value.js.map +0 -1
  217. package/dist/memory.d.ts.map +0 -1
  218. package/dist/memory.js.map +0 -1
  219. package/dist/multihop.d.ts.map +0 -1
  220. package/dist/multihop.js.map +0 -1
  221. package/dist/owner-validation.d.ts.map +0 -1
  222. package/dist/owner-validation.js.map +0 -1
  223. package/dist/path-context.d.ts.map +0 -1
  224. package/dist/path-context.js.map +0 -1
  225. package/dist/physics-config.d.ts.map +0 -1
  226. package/dist/physics-config.js.map +0 -1
  227. package/dist/physics-state.d.ts.map +0 -1
  228. package/dist/physics-state.js.map +0 -1
  229. package/dist/physics.d.ts.map +0 -1
  230. package/dist/physics.js.map +0 -1
  231. package/dist/policies.d.ts.map +0 -1
  232. package/dist/policies.js.map +0 -1
  233. package/dist/postinstall.d.ts.map +0 -1
  234. package/dist/postinstall.js.map +0 -1
  235. package/dist/predictions.d.ts.map +0 -1
  236. package/dist/predictions.js.map +0 -1
  237. package/dist/processes.d.ts.map +0 -1
  238. package/dist/processes.js.map +0 -1
  239. package/dist/project-briefs.d.ts.map +0 -1
  240. package/dist/project-briefs.js.map +0 -1
  241. package/dist/project-identity.d.ts.map +0 -1
  242. package/dist/project-identity.js.map +0 -1
  243. package/dist/provenance-coverage.d.ts.map +0 -1
  244. package/dist/provenance-coverage.js.map +0 -1
  245. package/dist/rate-limit.d.ts.map +0 -1
  246. package/dist/rate-limit.js.map +0 -1
  247. package/dist/raw-archive-mirror-cleanup.d.ts.map +0 -1
  248. package/dist/raw-archive-mirror-cleanup.js.map +0 -1
  249. package/dist/raw-archive.d.ts.map +0 -1
  250. package/dist/raw-archive.js.map +0 -1
  251. package/dist/recall-history.d.ts.map +0 -1
  252. package/dist/recall-history.js.map +0 -1
  253. package/dist/recall-scope.d.ts.map +0 -1
  254. package/dist/recall-scope.js.map +0 -1
  255. package/dist/recall-trace.d.ts.map +0 -1
  256. package/dist/recall-trace.js.map +0 -1
  257. package/dist/refine-llm.d.ts.map +0 -1
  258. package/dist/refine-llm.js.map +0 -1
  259. package/dist/reject-flow.d.ts.map +0 -1
  260. package/dist/reject-flow.js.map +0 -1
  261. package/dist/rejection.d.ts.map +0 -1
  262. package/dist/rejection.js.map +0 -1
  263. package/dist/replay.d.ts.map +0 -1
  264. package/dist/replay.js.map +0 -1
  265. package/dist/rerankers/cross-encoder.d.ts.map +0 -1
  266. package/dist/rerankers/cross-encoder.js.map +0 -1
  267. package/dist/rerankers/index.d.ts.map +0 -1
  268. package/dist/rerankers/index.js.map +0 -1
  269. package/dist/rerankers/jev.d.ts.map +0 -1
  270. package/dist/rerankers/jev.js.map +0 -1
  271. package/dist/rerankers/llm.d.ts.map +0 -1
  272. package/dist/rerankers/llm.js.map +0 -1
  273. package/dist/rerankers/types.d.ts.map +0 -1
  274. package/dist/rerankers/types.js.map +0 -1
  275. package/dist/rrf.d.ts.map +0 -1
  276. package/dist/rrf.js.map +0 -1
  277. package/dist/salience.d.ts.map +0 -1
  278. package/dist/salience.js.map +0 -1
  279. package/dist/scheduler.d.ts.map +0 -1
  280. package/dist/scheduler.js.map +0 -1
  281. package/dist/scope.d.ts.map +0 -1
  282. package/dist/scope.js.map +0 -1
  283. package/dist/search.d.ts.map +0 -1
  284. package/dist/search.js.map +0 -1
  285. package/dist/secret-detect.d.ts.map +0 -1
  286. package/dist/secret-detect.js.map +0 -1
  287. package/dist/server-detect.d.ts.map +0 -1
  288. package/dist/server-detect.js.map +0 -1
  289. package/dist/server.d.ts.map +0 -1
  290. package/dist/server.js.map +0 -1
  291. package/dist/shared.d.ts.map +0 -1
  292. package/dist/shared.js.map +0 -1
  293. package/dist/skills.d.ts.map +0 -1
  294. package/dist/skills.js.map +0 -1
  295. package/dist/sleep-redact.d.ts +0 -58
  296. package/dist/sleep-redact.d.ts.map +0 -1
  297. package/dist/sleep-redact.js +0 -80
  298. package/dist/sleep-redact.js.map +0 -1
  299. package/dist/src/ablation.js +0 -138
  300. package/dist/src/ablation.js.map +0 -1
  301. package/dist/src/ambient.js +0 -148
  302. package/dist/src/ambient.js.map +0 -1
  303. package/dist/src/api.js +0 -2109
  304. package/dist/src/api.js.map +0 -1
  305. package/dist/src/audit-prune.js +0 -109
  306. package/dist/src/audit-prune.js.map +0 -1
  307. package/dist/src/audit.js +0 -213
  308. package/dist/src/audit.js.map +0 -1
  309. package/dist/src/auth.js +0 -97
  310. package/dist/src/auth.js.map +0 -1
  311. package/dist/src/autolearn.js +0 -174
  312. package/dist/src/autolearn.js.map +0 -1
  313. package/dist/src/availability.js +0 -94
  314. package/dist/src/availability.js.map +0 -1
  315. package/dist/src/capture.js +0 -1346
  316. package/dist/src/capture.js.map +0 -1
  317. package/dist/src/card-detail.js +0 -15
  318. package/dist/src/card-detail.js.map +0 -1
  319. package/dist/src/card.js +0 -19
  320. package/dist/src/card.js.map +0 -1
  321. package/dist/src/cli.js +0 -9387
  322. package/dist/src/cli.js.map +0 -1
  323. package/dist/src/client.js +0 -237
  324. package/dist/src/client.js.map +0 -1
  325. package/dist/src/compare.js +0 -122
  326. package/dist/src/compare.js.map +0 -1
  327. package/dist/src/config.js +0 -135
  328. package/dist/src/config.js.map +0 -1
  329. package/dist/src/connectors/github/backfill.js +0 -281
  330. package/dist/src/connectors/github/backfill.js.map +0 -1
  331. package/dist/src/connectors/github/cli-impl.js +0 -234
  332. package/dist/src/connectors/github/cli-impl.js.map +0 -1
  333. package/dist/src/connectors/github/deletion.js +0 -85
  334. package/dist/src/connectors/github/deletion.js.map +0 -1
  335. package/dist/src/connectors/github/dlq.js +0 -190
  336. package/dist/src/connectors/github/dlq.js.map +0 -1
  337. package/dist/src/connectors/github/idempotency.js +0 -27
  338. package/dist/src/connectors/github/idempotency.js.map +0 -1
  339. package/dist/src/connectors/github/ingest.js +0 -156
  340. package/dist/src/connectors/github/ingest.js.map +0 -1
  341. package/dist/src/connectors/github/octokit-client.js +0 -70
  342. package/dist/src/connectors/github/octokit-client.js.map +0 -1
  343. package/dist/src/connectors/github/ratelimit.js +0 -31
  344. package/dist/src/connectors/github/ratelimit.js.map +0 -1
  345. package/dist/src/connectors/github/scope.js +0 -13
  346. package/dist/src/connectors/github/scope.js.map +0 -1
  347. package/dist/src/connectors/github/signature.js +0 -81
  348. package/dist/src/connectors/github/signature.js.map +0 -1
  349. package/dist/src/connectors/github/tenant-routing.js +0 -69
  350. package/dist/src/connectors/github/tenant-routing.js.map +0 -1
  351. package/dist/src/connectors/github/transform.js +0 -103
  352. package/dist/src/connectors/github/transform.js.map +0 -1
  353. package/dist/src/connectors/github/types.js +0 -100
  354. package/dist/src/connectors/github/types.js.map +0 -1
  355. package/dist/src/connectors/slack/backfill.js +0 -78
  356. package/dist/src/connectors/slack/backfill.js.map +0 -1
  357. package/dist/src/connectors/slack/deletion.js +0 -59
  358. package/dist/src/connectors/slack/deletion.js.map +0 -1
  359. package/dist/src/connectors/slack/dlq.js +0 -224
  360. package/dist/src/connectors/slack/dlq.js.map +0 -1
  361. package/dist/src/connectors/slack/idempotency.js +0 -31
  362. package/dist/src/connectors/slack/idempotency.js.map +0 -1
  363. package/dist/src/connectors/slack/ingest.js +0 -109
  364. package/dist/src/connectors/slack/ingest.js.map +0 -1
  365. package/dist/src/connectors/slack/ratelimit.js +0 -18
  366. package/dist/src/connectors/slack/ratelimit.js.map +0 -1
  367. package/dist/src/connectors/slack/scope.js +0 -13
  368. package/dist/src/connectors/slack/scope.js.map +0 -1
  369. package/dist/src/connectors/slack/signature.js +0 -27
  370. package/dist/src/connectors/slack/signature.js.map +0 -1
  371. package/dist/src/connectors/slack/tenant-routing.js +0 -41
  372. package/dist/src/connectors/slack/tenant-routing.js.map +0 -1
  373. package/dist/src/connectors/slack/transform.js +0 -47
  374. package/dist/src/connectors/slack/transform.js.map +0 -1
  375. package/dist/src/connectors/slack/types.js +0 -35
  376. package/dist/src/connectors/slack/types.js.map +0 -1
  377. package/dist/src/connectors/slack/web-client.js +0 -43
  378. package/dist/src/connectors/slack/web-client.js.map +0 -1
  379. package/dist/src/connectors/slack/workspaces.js +0 -62
  380. package/dist/src/connectors/slack/workspaces.js.map +0 -1
  381. package/dist/src/consolidate.js +0 -978
  382. package/dist/src/consolidate.js.map +0 -1
  383. package/dist/src/correction-latency.js +0 -74
  384. package/dist/src/correction-latency.js.map +0 -1
  385. package/dist/src/customer-notes.js +0 -325
  386. package/dist/src/customer-notes.js.map +0 -1
  387. package/dist/src/dag.js +0 -352
  388. package/dist/src/dag.js.map +0 -1
  389. package/dist/src/dashboard.js +0 -258
  390. package/dist/src/dashboard.js.map +0 -1
  391. package/dist/src/db.js +0 -2731
  392. package/dist/src/db.js.map +0 -1
  393. package/dist/src/decisions.js +0 -304
  394. package/dist/src/decisions.js.map +0 -1
  395. package/dist/src/dedupe.js +0 -141
  396. package/dist/src/dedupe.js.map +0 -1
  397. package/dist/src/embedding-provider.js +0 -314
  398. package/dist/src/embedding-provider.js.map +0 -1
  399. package/dist/src/embeddings.js +0 -543
  400. package/dist/src/embeddings.js.map +0 -1
  401. package/dist/src/eval-suite.js +0 -294
  402. package/dist/src/eval-suite.js.map +0 -1
  403. package/dist/src/eval.js +0 -187
  404. package/dist/src/eval.js.map +0 -1
  405. package/dist/src/extract.js +0 -117
  406. package/dist/src/extract.js.map +0 -1
  407. package/dist/src/forward-claim-detector.js +0 -117
  408. package/dist/src/forward-claim-detector.js.map +0 -1
  409. package/dist/src/goals.js +0 -399
  410. package/dist/src/goals.js.map +0 -1
  411. package/dist/src/graph-extract.js +0 -314
  412. package/dist/src/graph-extract.js.map +0 -1
  413. package/dist/src/graph-recall.js +0 -277
  414. package/dist/src/graph-recall.js.map +0 -1
  415. package/dist/src/graph-stream.js +0 -176
  416. package/dist/src/graph-stream.js.map +0 -1
  417. package/dist/src/graph-view.js +0 -310
  418. package/dist/src/graph-view.js.map +0 -1
  419. package/dist/src/graph.js +0 -762
  420. package/dist/src/graph.js.map +0 -1
  421. package/dist/src/handoff.js +0 -65
  422. package/dist/src/handoff.js.map +0 -1
  423. package/dist/src/hooks.js +0 -926
  424. package/dist/src/hooks.js.map +0 -1
  425. package/dist/src/importers.js +0 -881
  426. package/dist/src/importers.js.map +0 -1
  427. package/dist/src/incidents.js +0 -336
  428. package/dist/src/incidents.js.map +0 -1
  429. package/dist/src/index.js +0 -32
  430. package/dist/src/index.js.map +0 -1
  431. package/dist/src/invalidation.js +0 -129
  432. package/dist/src/invalidation.js.map +0 -1
  433. package/dist/src/mcp/framing.js +0 -45
  434. package/dist/src/mcp/framing.js.map +0 -1
  435. package/dist/src/mcp/server.js +0 -1298
  436. package/dist/src/mcp/server.js.map +0 -1
  437. package/dist/src/memory-value-weights.js +0 -31
  438. package/dist/src/memory-value-weights.js.map +0 -1
  439. package/dist/src/memory-value.js +0 -261
  440. package/dist/src/memory-value.js.map +0 -1
  441. package/dist/src/memory.js +0 -425
  442. package/dist/src/memory.js.map +0 -1
  443. package/dist/src/multihop.js +0 -35
  444. package/dist/src/multihop.js.map +0 -1
  445. package/dist/src/owner-validation.js +0 -56
  446. package/dist/src/owner-validation.js.map +0 -1
  447. package/dist/src/path-context.js +0 -48
  448. package/dist/src/path-context.js.map +0 -1
  449. package/dist/src/physics-config.js +0 -26
  450. package/dist/src/physics-config.js.map +0 -1
  451. package/dist/src/physics-state.js +0 -172
  452. package/dist/src/physics-state.js.map +0 -1
  453. package/dist/src/physics.js +0 -378
  454. package/dist/src/physics.js.map +0 -1
  455. package/dist/src/policies.js +0 -414
  456. package/dist/src/policies.js.map +0 -1
  457. package/dist/src/postinstall.js +0 -101
  458. package/dist/src/postinstall.js.map +0 -1
  459. package/dist/src/predictions.js +0 -629
  460. package/dist/src/predictions.js.map +0 -1
  461. package/dist/src/processes.js +0 -349
  462. package/dist/src/processes.js.map +0 -1
  463. package/dist/src/project-briefs.js +0 -492
  464. package/dist/src/project-briefs.js.map +0 -1
  465. package/dist/src/project-identity.js +0 -200
  466. package/dist/src/project-identity.js.map +0 -1
  467. package/dist/src/provenance-coverage.js +0 -23
  468. package/dist/src/provenance-coverage.js.map +0 -1
  469. package/dist/src/rate-limit.js +0 -60
  470. package/dist/src/rate-limit.js.map +0 -1
  471. package/dist/src/raw-archive-mirror-cleanup.js +0 -55
  472. package/dist/src/raw-archive-mirror-cleanup.js.map +0 -1
  473. package/dist/src/raw-archive.js +0 -91
  474. package/dist/src/raw-archive.js.map +0 -1
  475. package/dist/src/recall-history.js +0 -235
  476. package/dist/src/recall-history.js.map +0 -1
  477. package/dist/src/recall-scope.js +0 -89
  478. package/dist/src/recall-scope.js.map +0 -1
  479. package/dist/src/recall-trace.js +0 -186
  480. package/dist/src/recall-trace.js.map +0 -1
  481. package/dist/src/refine-llm.js +0 -156
  482. package/dist/src/refine-llm.js.map +0 -1
  483. package/dist/src/reject-flow.js +0 -209
  484. package/dist/src/reject-flow.js.map +0 -1
  485. package/dist/src/rejection.js +0 -160
  486. package/dist/src/rejection.js.map +0 -1
  487. package/dist/src/replay.js +0 -122
  488. package/dist/src/replay.js.map +0 -1
  489. package/dist/src/rerankers/cross-encoder.js +0 -137
  490. package/dist/src/rerankers/cross-encoder.js.map +0 -1
  491. package/dist/src/rerankers/index.js +0 -20
  492. package/dist/src/rerankers/index.js.map +0 -1
  493. package/dist/src/rerankers/jev.js +0 -119
  494. package/dist/src/rerankers/jev.js.map +0 -1
  495. package/dist/src/rerankers/llm.js +0 -80
  496. package/dist/src/rerankers/llm.js.map +0 -1
  497. package/dist/src/rerankers/types.js +0 -2
  498. package/dist/src/rerankers/types.js.map +0 -1
  499. package/dist/src/rrf.js +0 -61
  500. package/dist/src/rrf.js.map +0 -1
  501. package/dist/src/salience.js +0 -74
  502. package/dist/src/salience.js.map +0 -1
  503. package/dist/src/scheduler.js +0 -77
  504. package/dist/src/scheduler.js.map +0 -1
  505. package/dist/src/scope.js +0 -35
  506. package/dist/src/scope.js.map +0 -1
  507. package/dist/src/search.js +0 -1003
  508. package/dist/src/search.js.map +0 -1
  509. package/dist/src/secret-detect.js +0 -95
  510. package/dist/src/secret-detect.js.map +0 -1
  511. package/dist/src/server-detect.js +0 -231
  512. package/dist/src/server-detect.js.map +0 -1
  513. package/dist/src/server.js +0 -3255
  514. package/dist/src/server.js.map +0 -1
  515. package/dist/src/shared.js +0 -502
  516. package/dist/src/shared.js.map +0 -1
  517. package/dist/src/skills.js +0 -346
  518. package/dist/src/skills.js.map +0 -1
  519. package/dist/src/sleep-redact.js +0 -80
  520. package/dist/src/sleep-redact.js.map +0 -1
  521. package/dist/src/sso.js +0 -22
  522. package/dist/src/sso.js.map +0 -1
  523. package/dist/src/stdin.js +0 -41
  524. package/dist/src/stdin.js.map +0 -1
  525. package/dist/src/store.js +0 -3749
  526. package/dist/src/store.js.map +0 -1
  527. package/dist/src/tenant.js +0 -17
  528. package/dist/src/tenant.js.map +0 -1
  529. package/dist/src/trace.js +0 -72
  530. package/dist/src/trace.js.map +0 -1
  531. package/dist/src/version.js +0 -40
  532. package/dist/src/version.js.map +0 -1
  533. package/dist/src/working-memory.js +0 -157
  534. package/dist/src/working-memory.js.map +0 -1
  535. package/dist/src/yaml.js +0 -107
  536. package/dist/src/yaml.js.map +0 -1
  537. package/dist/sso.d.ts +0 -13
  538. package/dist/sso.d.ts.map +0 -1
  539. package/dist/sso.js +0 -22
  540. package/dist/sso.js.map +0 -1
  541. package/dist/stdin.d.ts.map +0 -1
  542. package/dist/stdin.js.map +0 -1
  543. package/dist/store.d.ts.map +0 -1
  544. package/dist/store.js.map +0 -1
  545. package/dist/tenant.d.ts.map +0 -1
  546. package/dist/tenant.js.map +0 -1
  547. package/dist/trace.d.ts.map +0 -1
  548. package/dist/trace.js.map +0 -1
  549. package/dist/version.d.ts.map +0 -1
  550. package/dist/version.js.map +0 -1
  551. package/dist/working-memory.d.ts.map +0 -1
  552. package/dist/working-memory.js.map +0 -1
  553. package/dist/yaml.d.ts.map +0 -1
  554. package/dist/yaml.js.map +0 -1
@@ -1,346 +0,0 @@
1
- /**
2
- * E2 skill first-class object (docs/plans/2026-05-30-e2-skill-object.md).
3
- *
4
- * A `skill` is a reusable, agent-followable capability: an `instructions` body
5
- * plus an optional `trigger` ("when to apply"), evolving via the supersede delta
6
- * lifecycle. "Executable" is scoped to an agent-followable INSTRUCTION that, once
7
- * exported into the agent's in-force rules (AGENTS.md / CLAUDE.md) via
8
- * `exportSkills`, is executed by the agent reading it. Literal code/command
9
- * execution is deferred (security; a future sandbox). The distinguishing
10
- * capability is therefore the EXPORT renderer, not a runtime.
11
- *
12
- * Reuses the process/decision supersede machinery verbatim (superseded_by self-FK
13
- * + CAS + INSERT-preflight + server-derived version + change_summary + supersede
14
- * tenant-match trigger). It DROPS process's `steps` (a skill's content is a single
15
- * `instructions` body) and ADDS `trigger` (stored in the `trigger_text` column -
16
- * `trigger` is a SQLite reserved keyword).
17
- *
18
- * The `skills` table is the source of truth (survives memory decay); the memory
19
- * mirror is for recall. memory_id is NULLABLE with ON DELETE SET NULL.
20
- *
21
- * Lifecycle: active -> superseded (a newer version replaces it) or active ->
22
- * closed (retired). Export renders ACTIVE skills only.
23
- */
24
- import { openHippoDb, closeHippoDb } from './db.js';
25
- import { writeEntry, assertTenantId } from './store.js';
26
- import { createMemory, Layer, SKILL_HALF_LIFE_DAYS } from './memory.js';
27
- import { appendAuditEvent } from './audit.js';
28
- export const VALID_SKILL_STATES = new Set([
29
- 'active',
30
- 'superseded',
31
- 'closed',
32
- ]);
33
- /** Field caps (untrusted at the HTTP/SDK boundary). instructions is a body, so a
34
- * larger cap than the 4096 short-field convention. */
35
- export const MAX_SKILL_NAME_LEN = 256;
36
- export const MAX_SKILL_INSTRUCTIONS_LEN = 8192;
37
- export const MAX_SKILL_TRIGGER_LEN = 1024;
38
- /** Aggregate bound on a single export render (plan-eng-critic: cap the unbounded
39
- * export body). Realistic active-skill counts are tens; 1000 is a generous bound. */
40
- export const MAX_EXPORT_SKILLS = 1000;
41
- /**
42
- * Validate + normalise skill fields. skill_name is trimmed and MUST be a single
43
- * line (no newlines) so it cannot break the H2 header in the export render
44
- * (plan-eng-critic). instructions are kept verbatim (operator content) but capped.
45
- * Returns the normalised name + trigger (null when absent/empty).
46
- */
47
- function validateSkillFields(skillName, instructions, trigger) {
48
- const name = (skillName ?? '').trim();
49
- if (name.length === 0)
50
- throw new Error('saveSkill: skillName is required');
51
- if (/[\r\n]/.test(name))
52
- throw new Error('saveSkill: skillName must be a single line (no newlines)');
53
- if (name.length > MAX_SKILL_NAME_LEN) {
54
- throw new Error(`saveSkill: skillName exceeds the ${MAX_SKILL_NAME_LEN}-char cap`);
55
- }
56
- if (!instructions || instructions.trim().length === 0) {
57
- throw new Error('saveSkill: instructions are required');
58
- }
59
- if (instructions.length > MAX_SKILL_INSTRUCTIONS_LEN) {
60
- throw new Error(`saveSkill: instructions exceed the ${MAX_SKILL_INSTRUCTIONS_LEN}-char cap`);
61
- }
62
- let triggerVal = null;
63
- if (trigger !== undefined && trigger !== null && trigger.trim().length > 0) {
64
- if (trigger.length > MAX_SKILL_TRIGGER_LEN) {
65
- throw new Error(`saveSkill: trigger exceeds the ${MAX_SKILL_TRIGGER_LEN}-char cap`);
66
- }
67
- // Single-line, like skill_name: a trigger is a short "when to apply" phrase,
68
- // and a newline would let it forge a heading inside the export **When:** line
69
- // (independent-review 2026-05-30). Reject rather than emit a multi-line trigger.
70
- if (/[\r\n]/.test(trigger)) {
71
- throw new Error('saveSkill: trigger must be a single line (no newlines)');
72
- }
73
- triggerVal = trigger;
74
- }
75
- return { name, trigger: triggerVal };
76
- }
77
- function rowToSkill(row) {
78
- return {
79
- id: row.id,
80
- memoryId: row.memory_id,
81
- tenantId: row.tenant_id,
82
- skillName: row.skill_name,
83
- instructions: row.instructions,
84
- trigger: row.trigger_text,
85
- version: row.version,
86
- // SAFETY: status is DB-constrained to VALID_SKILL_STATES; this module
87
- // is the only writer and always inserts one of those literal strings.
88
- status: row.status,
89
- supersededBy: row.superseded_by,
90
- supersededAt: row.superseded_at,
91
- changeSummary: row.change_summary,
92
- closedAt: row.closed_at,
93
- createdAt: row.created_at,
94
- };
95
- }
96
- const SKILL_COLS = `
97
- id, memory_id, tenant_id, skill_name, instructions, trigger_text, version, status,
98
- superseded_by, superseded_at, change_summary, closed_at, created_at
99
- `;
100
- /** Recall-surface content for the memory mirror: name + optional trigger +
101
- * instructions. Named (mirrors buildProcessContent) so the recall surface is
102
- * deterministic + unit-testable. */
103
- function buildSkillContent(skillName, instructions, trigger) {
104
- let content = skillName;
105
- if (trigger)
106
- content += `\n\nWhen: ${trigger}`;
107
- content += `\n\n${instructions}`;
108
- return content;
109
- }
110
- // ---------------------------------------------------------------------------
111
- // Public API
112
- // ---------------------------------------------------------------------------
113
- /**
114
- * Create a skill (or a new version that supersedes an existing one). Writes the
115
- * memory mirror + the skills row atomically inside writeEntry's SAVEPOINT. When
116
- * supersedesSkillId is given, the referenced ACTIVE row is preflighted (status +
117
- * version) BEFORE the INSERT, then CAS-UPDATEd -> superseded in the same SAVEPOINT;
118
- * the new version = predecessor.version + 1 (server-derived).
119
- */
120
- export function saveSkill(hippoRoot, tenantId, opts, actor = 'cli') {
121
- assertTenantId('saveSkill', tenantId);
122
- const { name, trigger } = validateSkillFields(opts.skillName, opts.instructions, opts.trigger);
123
- const isSupersede = opts.supersedesSkillId !== undefined;
124
- const changeSummary = isSupersede ? (opts.changeSummary ?? null) : null;
125
- const now = new Date().toISOString();
126
- const content = buildSkillContent(name, opts.instructions, trigger);
127
- const tags = ['skill', ...(opts.extraTags ?? [])];
128
- const mem = createMemory(content, {
129
- tags,
130
- layer: Layer.Semantic,
131
- confidence: 'verified',
132
- source: 'skill',
133
- tenantId,
134
- });
135
- mem.half_life_days = SKILL_HALF_LIFE_DAYS;
136
- let savedRow;
137
- writeEntry(hippoRoot, mem, {
138
- actor,
139
- afterWrite: (db, memoryId) => {
140
- // Preflight the supersede target BEFORE inserting the new row (so the new
141
- // autoincrement id can never be its own supersede target); read the
142
- // predecessor version in the same SELECT for server-derived versioning.
143
- // Mirrors saveProcess / savePolicy (codex P1 2026-05-28).
144
- let version = 1;
145
- if (opts.supersedesSkillId !== undefined) {
146
- // SAFETY: row shape matches the `status, version` columns named in the SELECT below.
147
- const pred = db.prepare(`SELECT status, version FROM skills WHERE id = ? AND tenant_id = ?`).get(opts.supersedesSkillId, tenantId);
148
- if (!pred) {
149
- throw new Error(`saveSkill: skill ${opts.supersedesSkillId} to supersede not found for tenant ${tenantId}`);
150
- }
151
- if (pred.status !== 'active') {
152
- throw new Error(`saveSkill: skill ${opts.supersedesSkillId} is not active (status='${pred.status}'); only active skills can be superseded.`);
153
- }
154
- version = pred.version + 1;
155
- }
156
- const result = db.prepare(`
157
- INSERT INTO skills(
158
- memory_id, tenant_id, skill_name, instructions, trigger_text, version,
159
- status, superseded_by, superseded_at, change_summary, closed_at, created_at
160
- ) VALUES (?, ?, ?, ?, ?, ?, 'active', NULL, NULL, ?, NULL, ?)
161
- `).run(memoryId, tenantId, name, opts.instructions, trigger, version, changeSummary, now);
162
- const skillId = Number(result.lastInsertRowid ?? 0);
163
- if (opts.supersedesSkillId !== undefined) {
164
- const sup = db.prepare(`
165
- UPDATE skills
166
- SET status = 'superseded', superseded_by = ?, superseded_at = ?
167
- WHERE id = ? AND tenant_id = ? AND status = 'active' AND id != ?
168
- `).run(skillId, now, opts.supersedesSkillId, tenantId, skillId);
169
- if (sup.changes === 0) {
170
- throw new Error(`saveSkill: skill ${opts.supersedesSkillId} could not be superseded (no longer active or self-reference).`);
171
- }
172
- appendAuditEvent(db, {
173
- tenantId,
174
- actor,
175
- op: 'skill_supersede',
176
- targetId: String(opts.supersedesSkillId),
177
- metadata: {
178
- skill_id: opts.supersedesSkillId,
179
- superseded_by: skillId,
180
- new_version: version,
181
- },
182
- });
183
- }
184
- // SAFETY: row's shape matches the columns named in SKILL_COLS above.
185
- const row = db.prepare(`SELECT ${SKILL_COLS} FROM skills WHERE id = ?`)
186
- .get(skillId);
187
- if (!row)
188
- throw new Error('saveSkill: failed to reload saved skill row');
189
- savedRow = row;
190
- // GDPR-light metadata: ids + flags only, no skill text.
191
- appendAuditEvent(db, {
192
- tenantId,
193
- actor,
194
- op: 'skill_create',
195
- targetId: String(skillId),
196
- metadata: {
197
- skill_id: skillId,
198
- version,
199
- has_trigger: trigger !== null,
200
- },
201
- });
202
- },
203
- });
204
- if (!savedRow) {
205
- throw new Error('saveSkill: afterWrite did not populate the row');
206
- }
207
- return rowToSkill(savedRow);
208
- }
209
- /**
210
- * Close (retire) an active skill. CAS guard WHERE status='active'; 0 changes
211
- * distinguishes not-found from not-active. A superseded row is terminal.
212
- */
213
- export function closeSkill(hippoRoot, tenantId, id, actor = 'cli') {
214
- assertTenantId('closeSkill', tenantId);
215
- const now = new Date().toISOString();
216
- const db = openHippoDb(hippoRoot);
217
- try {
218
- db.exec('BEGIN IMMEDIATE');
219
- try {
220
- const updateResult = db.prepare(`
221
- UPDATE skills
222
- SET status = 'closed', closed_at = ?
223
- WHERE id = ? AND tenant_id = ? AND status = 'active'
224
- `).run(now, id, tenantId);
225
- if (updateResult.changes === 0) {
226
- // SAFETY: row shape matches the single `status` column named in the SELECT above.
227
- const existing = db.prepare(`SELECT status FROM skills WHERE id = ? AND tenant_id = ?`).get(id, tenantId);
228
- if (!existing) {
229
- throw new Error(`closeSkill: skill ${id} not found for tenant ${tenantId}`);
230
- }
231
- throw new Error(`closeSkill: skill ${id} is not active (status='${existing.status}'); only active skills can be closed.`);
232
- }
233
- // SAFETY: row's shape matches the columns named in SKILL_COLS above.
234
- const row = db.prepare(`SELECT ${SKILL_COLS} FROM skills WHERE id = ? AND tenant_id = ?`)
235
- .get(id, tenantId);
236
- if (!row)
237
- throw new Error(`closeSkill: skill ${id} not found after UPDATE`);
238
- appendAuditEvent(db, {
239
- tenantId,
240
- actor,
241
- op: 'skill_close',
242
- targetId: String(id),
243
- metadata: { skill_id: id },
244
- });
245
- db.exec('COMMIT');
246
- return rowToSkill(row);
247
- }
248
- catch (e) {
249
- try {
250
- db.exec('ROLLBACK');
251
- }
252
- catch {
253
- // Ignore rollback failures — the throw below is what matters.
254
- }
255
- throw e;
256
- }
257
- }
258
- finally {
259
- closeHippoDb(db);
260
- }
261
- }
262
- export function loadSkillById(hippoRoot, tenantId, id) {
263
- assertTenantId('loadSkillById', tenantId);
264
- const db = openHippoDb(hippoRoot);
265
- try {
266
- // SAFETY: row's shape matches the columns named in SKILL_COLS above.
267
- const row = db.prepare(`SELECT ${SKILL_COLS} FROM skills WHERE id = ? AND tenant_id = ?`)
268
- .get(id, tenantId);
269
- return row ? rowToSkill(row) : null;
270
- }
271
- finally {
272
- closeHippoDb(db);
273
- }
274
- }
275
- export function loadSkills(hippoRoot, tenantId, opts = {}) {
276
- assertTenantId('loadSkills', tenantId);
277
- const limit = opts.limit ?? 100;
278
- const db = openHippoDb(hippoRoot);
279
- try {
280
- let rows;
281
- if (opts.status) {
282
- if (!VALID_SKILL_STATES.has(opts.status)) {
283
- throw new Error(`loadSkills: status must be one of ${Array.from(VALID_SKILL_STATES).join('|')}; got ${opts.status}`);
284
- }
285
- // SAFETY: rows' shape matches the columns named in SKILL_COLS above.
286
- rows = db.prepare(`
287
- SELECT ${SKILL_COLS} FROM skills
288
- WHERE tenant_id = ? AND status = ?
289
- ORDER BY created_at DESC, id DESC
290
- LIMIT ?
291
- `).all(tenantId, opts.status, limit);
292
- }
293
- else {
294
- // SAFETY: rows' shape matches the columns named in SKILL_COLS above.
295
- rows = db.prepare(`
296
- SELECT ${SKILL_COLS} FROM skills
297
- WHERE tenant_id = ?
298
- ORDER BY created_at DESC, id DESC
299
- LIMIT ?
300
- `).all(tenantId, limit);
301
- }
302
- return rows.map(rowToSkill);
303
- }
304
- finally {
305
- closeHippoDb(db);
306
- }
307
- }
308
- export function loadActiveSkills(hippoRoot, tenantId, opts = {}) {
309
- return loadSkills(hippoRoot, tenantId, { status: 'active', limit: opts.limit });
310
- }
311
- /**
312
- * Render the tenant's ACTIVE skills into ONE AGENTS.md / CLAUDE.md-style markdown
313
- * block (one H2 per skill, ordered by skill_name ASC for determinism), and RETURN
314
- * the string. Does NOT write any file. Returns '' when there are no active skills.
315
- *
316
- * skill_name is single-line (validated on save) so it cannot break the H2 header;
317
- * instructions are emitted verbatim (operator content). Bounded by MAX_EXPORT_SKILLS
318
- * active rows; each field is capped on save, so the rendered string is bounded.
319
- */
320
- export function exportSkills(hippoRoot, tenantId) {
321
- assertTenantId('exportSkills', tenantId);
322
- const db = openHippoDb(hippoRoot);
323
- try {
324
- // SAFETY: rows' shape matches the columns named in SKILL_COLS above.
325
- const rows = db.prepare(`
326
- SELECT ${SKILL_COLS} FROM skills
327
- WHERE tenant_id = ? AND status = 'active'
328
- ORDER BY skill_name ASC, id ASC
329
- LIMIT ?
330
- `).all(tenantId, MAX_EXPORT_SKILLS);
331
- return rows
332
- .map(rowToSkill)
333
- .map((s) => {
334
- let block = `## ${s.skillName}`;
335
- if (s.trigger)
336
- block += `\n\n**When:** ${s.trigger}`;
337
- block += `\n\n${s.instructions}`;
338
- return block;
339
- })
340
- .join('\n\n');
341
- }
342
- finally {
343
- closeHippoDb(db);
344
- }
345
- }
346
- //# sourceMappingURL=skills.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/skills.ts"],"names":[],"mappings":"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"}
@@ -1,80 +0,0 @@
1
- /**
2
- * D1 v1.12.10 — Redact-on-egress for SleepResult cross-tenant counters.
3
- *
4
- * `api.sleep` returns host-wide counters (deduped.crossDups, which counts
5
- * cross-LAYER pairs, audit counters, ambient totals); they describe the
6
- * host's full memory state, not any one tenant. Today the route is
7
- * loopback-only + admin-gated since v1.12.0 sub-1, so all callers see the
8
- * full picture honestly.
9
- *
10
- * Once `HIPPO_BIND_ALL` ships (per D3 lock-step sequencing), non-loopback
11
- * admin Bearer callers would see another tenant's accounting data in the
12
- * SleepResult. That's a metadata-leak path.
13
- *
14
- * Redact-on-egress (chosen via D1 picks): when the caller is non-loopback
15
- * AND non-self admin, zero out cross-tenant counters before serialization.
16
- * Loopback admins still get the full picture (host ops legitimately need
17
- * dedup quality + total counts).
18
- *
19
- * Today this is layered-defence dead code (loopback-only gate is upstream).
20
- * Lands now so the gate is in place when D3 ships non-loopback serving;
21
- * "behind a flag first" historically means "flag flips before gates close."
22
- */
23
- /**
24
- * Returns a SleepResult that's safe to serialize to a non-loopback non-self
25
- * caller. Loopback OR `__host__` caller = pass-through unchanged.
26
- *
27
- * Redaction surface (the host-wide aggregate counters specifically):
28
- * - deduped.crossDups (pairs whose kept and removed layers differ, summed across tenants)
29
- * - deduped.semDups, .epiDups (aggregate dedup activity across tenants)
30
- * - audit.errorsRemoved, .warningCount (aggregate audit-pipeline activity)
31
- * - ambient.totalMemories, .avgStrength (aggregate corpus shape)
32
- * - graph.tenants, .entities, .relations (cross-tenant graph rebuild totals)
33
- *
34
- * NOT redacted (per-invocation activity counters, not cross-tenant accounting):
35
- * - active, removed, mergedEpisodic, newSemantic (this invocation's totals)
36
- * - dryRun (echo of input)
37
- * - shared (counted within api.sleep's per-call work)
38
- * - secretSkipped (v1.25.0 — sibling of `shared`, produced by the same
39
- * autoShare call; same per-invocation class, deliberately NOT given a
40
- * divergent rule)
41
- * - rejectedSkipped (AT1 — secretSkipped's own sibling, same autoShare
42
- * call, same per-invocation class)
43
- * - details (text descriptions, no aggregate numerics)
44
- */
45
- export function redactSleepResultForCaller(result, ctx) {
46
- if (ctx.isLoopback || ctx.callerTenant === '__host__') {
47
- return result;
48
- }
49
- const redacted = { ...result };
50
- if (result.deduped !== undefined) {
51
- redacted.deduped = {
52
- ...result.deduped,
53
- crossDups: 0,
54
- semDups: 0,
55
- epiDups: 0,
56
- // .removed is per-invocation work; preserved.
57
- };
58
- }
59
- if (result.audit !== undefined) {
60
- redacted.audit = {
61
- ...result.audit,
62
- errorsRemoved: 0,
63
- warningCount: 0,
64
- };
65
- }
66
- if (result.ambient !== undefined && result.ambient !== null) {
67
- redacted.ambient = {
68
- ...result.ambient,
69
- totalMemories: 0,
70
- avgStrength: 0,
71
- };
72
- }
73
- if (result.graph !== undefined) {
74
- // E3 sleep enqueue-hook: per-tenant graph rebuild totals are cross-tenant
75
- // accounting, the same class as deduped/audit/ambient above.
76
- redacted.graph = { tenants: 0, entities: 0, relations: 0 };
77
- }
78
- return redacted;
79
- }
80
- //# sourceMappingURL=sleep-redact.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sleep-redact.js","sourceRoot":"","sources":["../../src/sleep-redact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAgBH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAAmB,EACnB,GAAmB;IAEnB,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;QACtD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,QAAQ,GAAgB,EAAE,GAAG,MAAM,EAAE,CAAC;IAC5C,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,QAAQ,CAAC,OAAO,GAAG;YACjB,GAAG,MAAM,CAAC,OAAO;YACjB,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,8CAA8C;SAC/C,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,QAAQ,CAAC,KAAK,GAAG;YACf,GAAG,MAAM,CAAC,KAAK;YACf,aAAa,EAAE,CAAC;YAChB,YAAY,EAAE,CAAC;SAChB,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC5D,QAAQ,CAAC,OAAO,GAAG;YACjB,GAAG,MAAM,CAAC,OAAO;YACjB,aAAa,EAAE,CAAC;YAChB,WAAW,EAAE,CAAC;SACf,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,0EAA0E;QAC1E,6DAA6D;QAC7D,QAAQ,CAAC,KAAK,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAC7D,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
package/dist/src/sso.js DELETED
@@ -1,22 +0,0 @@
1
- // SSO/SCIM hook stubs.
2
- //
3
- // These functions exist as explicit hook points per ROADMAP A5: stub auth
4
- // is single-tenant only; real SSO/SCIM integration is deferred to v2
5
- // multi-tenant. Calling any of these throws NotImplementedError so callers
6
- // fail loudly rather than silently no-op.
7
- export class NotImplementedError extends Error {
8
- constructor(feature) {
9
- super(`${feature} is not implemented in stub auth - tracked for v2 multi-tenant`);
10
- this.name = 'NotImplementedError';
11
- }
12
- }
13
- export function ssoLogin(_opts) {
14
- throw new NotImplementedError('SSO login');
15
- }
16
- export function scimProvisionUser(_opts) {
17
- throw new NotImplementedError('SCIM user provisioning');
18
- }
19
- export function scimDeprovisionUser(_externalId) {
20
- throw new NotImplementedError('SCIM user deprovisioning');
21
- }
22
- //# sourceMappingURL=sso.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sso.js","sourceRoot":"","sources":["../../src/sso.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,EAAE;AACF,0EAA0E;AAC1E,qEAAqE;AACrE,2EAA2E;AAC3E,0CAA0C;AAE1C,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,GAAG,OAAO,gEAAgE,CAAC,CAAC;QAClF,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,MAAM,UAAU,QAAQ,CAAC,KAAmD;IAC1E,MAAM,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAA4C;IAC5E,MAAM,IAAI,mBAAmB,CAAC,wBAAwB,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,MAAM,IAAI,mBAAmB,CAAC,0BAA0B,CAAC,CAAC;AAC5D,CAAC"}
package/dist/src/stdin.js DELETED
@@ -1,41 +0,0 @@
1
- function defaultWaitMs() {
2
- const parsed = Number.parseInt(process.env.HIPPO_STDIN_WAIT_MS ?? '', 10);
3
- return parsed > 0 ? parsed : 1000;
4
- }
5
- /** Never blocks: a TTY resolves at once, otherwise waits up to `waitMs` of
6
- * idle (default 1000ms, or `HIPPO_STDIN_WAIT_MS`), refreshed on each chunk
7
- * so a slow but real write is not cut off, and capped at `waitMs * 10`. */
8
- export function readStdinBounded(waitMs = defaultWaitMs()) {
9
- let stdin;
10
- try {
11
- stdin = process.stdin;
12
- }
13
- catch {
14
- return Promise.resolve({ timedOut: false });
15
- }
16
- if (stdin.isTTY)
17
- return Promise.resolve({ timedOut: false });
18
- return new Promise((resolve) => {
19
- const chunks = [];
20
- const finish = (timedOut) => {
21
- clearTimeout(timer);
22
- clearTimeout(hardCap);
23
- stdin.off('data', onData);
24
- stdin.off('end', done);
25
- stdin.off('error', done);
26
- stdin.pause();
27
- stdin.unref?.();
28
- resolve({ text: chunks.length ? Buffer.concat(chunks).toString('utf8') : undefined, timedOut });
29
- };
30
- const done = () => finish(false);
31
- const onData = (c) => { chunks.push(c); timer.refresh(); };
32
- const timer = setTimeout(() => finish(true), waitMs);
33
- // The idle timer refreshes per chunk, so a host that dribbles bytes
34
- // forever without ending would never resolve without this ceiling.
35
- const hardCap = setTimeout(() => finish(true), waitMs * 10);
36
- stdin.on('data', onData);
37
- stdin.once('end', done);
38
- stdin.once('error', done);
39
- });
40
- }
41
- //# sourceMappingURL=stdin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stdin.js","sourceRoot":"","sources":["../../src/stdin.ts"],"names":[],"mappings":"AAKA,SAAS,aAAa;IACpB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1E,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACpC,CAAC;AAED;;2EAE2E;AAC3E,MAAM,UAAU,gBAAgB,CAAC,SAAiB,aAAa,EAAE;IAC/D,IAAI,KAAwB,CAAC;IAC7B,IAAI,CAAC;QAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAAC,CAAC;IACrF,IAAI,KAAK,CAAC,KAAK;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,CAAC,QAAiB,EAAQ,EAAE;YACzC,YAAY,CAAC,KAAK,CAAC,CAAC;YAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC3C,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5E,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;YAChB,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClG,CAAC,CAAC;QACF,MAAM,IAAI,GAAG,GAAS,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,CAAC,CAAS,EAAQ,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QACrD,oEAAoE;QACpE,mEAAmE;QACnE,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC;QAC5D,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;AACL,CAAC"}