@monoes/monomindcli 2.16.12 → 2.16.14

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 (386) hide show
  1. package/.claude/agents/core/coder.md +1 -1
  2. package/.claude/agents/engineering/engineering-devops-automator.md +1 -1
  3. package/.claude/agents/github/repo-architect.md +1 -1
  4. package/.claude/agents/testing/production-validator.md +1 -1
  5. package/.claude/agents/testing/testing-tool-evaluator.md +1 -1
  6. package/.claude/commands/github/pr-manager.md +1 -1
  7. package/.claude/helpers/pick-rank.cjs +34 -4
  8. package/.claude/skills/monolean-audit/SKILL.md +1 -1
  9. package/README.md +1 -1
  10. package/dist/src/commands/cleanup-data.d.ts +30 -0
  11. package/dist/src/commands/cleanup-data.d.ts.map +1 -0
  12. package/dist/src/commands/cleanup-data.js +138 -0
  13. package/dist/src/commands/cleanup-data.js.map +1 -0
  14. package/dist/src/commands/cleanup-scratch.d.ts +43 -0
  15. package/dist/src/commands/cleanup-scratch.d.ts.map +1 -0
  16. package/dist/src/commands/cleanup-scratch.js +125 -0
  17. package/dist/src/commands/cleanup-scratch.js.map +1 -0
  18. package/dist/src/commands/cleanup.d.ts +2 -39
  19. package/dist/src/commands/cleanup.d.ts.map +1 -1
  20. package/dist/src/commands/cleanup.js +5 -247
  21. package/dist/src/commands/cleanup.js.map +1 -1
  22. package/dist/src/commands/doctor-gitignore-checks.d.ts +10 -0
  23. package/dist/src/commands/doctor-gitignore-checks.d.ts.map +1 -0
  24. package/dist/src/commands/doctor-gitignore-checks.js +141 -0
  25. package/dist/src/commands/doctor-gitignore-checks.js.map +1 -0
  26. package/dist/src/commands/doctor-helpers-checks.d.ts +10 -0
  27. package/dist/src/commands/doctor-helpers-checks.d.ts.map +1 -0
  28. package/dist/src/commands/doctor-helpers-checks.js +292 -0
  29. package/dist/src/commands/doctor-helpers-checks.js.map +1 -0
  30. package/dist/src/commands/doctor-memory-checks.d.ts +47 -0
  31. package/dist/src/commands/doctor-memory-checks.d.ts.map +1 -0
  32. package/dist/src/commands/doctor-memory-checks.js +298 -0
  33. package/dist/src/commands/doctor-memory-checks.js.map +1 -0
  34. package/dist/src/commands/doctor-monograph-checks.d.ts +9 -0
  35. package/dist/src/commands/doctor-monograph-checks.d.ts.map +1 -0
  36. package/dist/src/commands/doctor-monograph-checks.js +331 -0
  37. package/dist/src/commands/doctor-monograph-checks.js.map +1 -0
  38. package/dist/src/commands/doctor-project-checks.d.ts +7 -66
  39. package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
  40. package/dist/src/commands/doctor-project-checks.js +10 -1331
  41. package/dist/src/commands/doctor-project-checks.js.map +1 -1
  42. package/dist/src/commands/doctor-routing-checks.d.ts +10 -0
  43. package/dist/src/commands/doctor-routing-checks.d.ts.map +1 -0
  44. package/dist/src/commands/doctor-routing-checks.js +194 -0
  45. package/dist/src/commands/doctor-routing-checks.js.map +1 -0
  46. package/dist/src/commands/doctor-worker-checks.d.ts +17 -0
  47. package/dist/src/commands/doctor-worker-checks.d.ts.map +1 -0
  48. package/dist/src/commands/doctor-worker-checks.js +122 -0
  49. package/dist/src/commands/doctor-worker-checks.js.map +1 -0
  50. package/dist/src/commands/hooks-routing-commands.js +1 -1
  51. package/dist/src/commands/hooks-routing-commands.js.map +1 -1
  52. package/dist/src/commands/init.d.ts.map +1 -1
  53. package/dist/src/commands/init.js +6 -15
  54. package/dist/src/commands/init.js.map +1 -1
  55. package/dist/src/commands/org-control.d.ts +117 -0
  56. package/dist/src/commands/org-control.d.ts.map +1 -0
  57. package/dist/src/commands/org-control.js +274 -0
  58. package/dist/src/commands/org-control.js.map +1 -0
  59. package/dist/src/commands/org-lifecycle.d.ts +7 -0
  60. package/dist/src/commands/org-lifecycle.d.ts.map +1 -0
  61. package/dist/src/commands/org-lifecycle.js +298 -0
  62. package/dist/src/commands/org-lifecycle.js.map +1 -0
  63. package/dist/src/commands/org-manage.d.ts +7 -0
  64. package/dist/src/commands/org-manage.d.ts.map +1 -0
  65. package/dist/src/commands/org-manage.js +357 -0
  66. package/dist/src/commands/org-manage.js.map +1 -0
  67. package/dist/src/commands/org-memory-command.d.ts +3 -0
  68. package/dist/src/commands/org-memory-command.d.ts.map +1 -0
  69. package/dist/src/commands/org-memory-command.js +178 -0
  70. package/dist/src/commands/org-memory-command.js.map +1 -0
  71. package/dist/src/commands/org-observe-approvals.d.ts +8 -0
  72. package/dist/src/commands/org-observe-approvals.d.ts.map +1 -0
  73. package/dist/src/commands/org-observe-approvals.js +211 -0
  74. package/dist/src/commands/org-observe-approvals.js.map +1 -0
  75. package/dist/src/commands/org-observe-checkpoint.d.ts +26 -0
  76. package/dist/src/commands/org-observe-checkpoint.d.ts.map +1 -0
  77. package/dist/src/commands/org-observe-checkpoint.js +180 -0
  78. package/dist/src/commands/org-observe-checkpoint.js.map +1 -0
  79. package/dist/src/commands/org-observe-config.d.ts +8 -0
  80. package/dist/src/commands/org-observe-config.d.ts.map +1 -0
  81. package/dist/src/commands/org-observe-config.js +160 -0
  82. package/dist/src/commands/org-observe-config.js.map +1 -0
  83. package/dist/src/commands/org-observe-gates.d.ts +4 -0
  84. package/dist/src/commands/org-observe-gates.d.ts.map +1 -0
  85. package/dist/src/commands/org-observe-gates.js +182 -0
  86. package/dist/src/commands/org-observe-gates.js.map +1 -0
  87. package/dist/src/commands/org-observe-inbox.d.ts +18 -0
  88. package/dist/src/commands/org-observe-inbox.d.ts.map +1 -0
  89. package/dist/src/commands/org-observe-inbox.js +154 -0
  90. package/dist/src/commands/org-observe-inbox.js.map +1 -0
  91. package/dist/src/commands/org-observe-logs.d.ts +31 -0
  92. package/dist/src/commands/org-observe-logs.d.ts.map +1 -0
  93. package/dist/src/commands/org-observe-logs.js +272 -0
  94. package/dist/src/commands/org-observe-logs.js.map +1 -0
  95. package/dist/src/commands/org-observe-questions.d.ts +8 -0
  96. package/dist/src/commands/org-observe-questions.d.ts.map +1 -0
  97. package/dist/src/commands/org-observe-questions.js +201 -0
  98. package/dist/src/commands/org-observe-questions.js.map +1 -0
  99. package/dist/src/commands/org-observe-report.d.ts +8 -0
  100. package/dist/src/commands/org-observe-report.d.ts.map +1 -0
  101. package/dist/src/commands/org-observe-report.js +366 -0
  102. package/dist/src/commands/org-observe-report.js.map +1 -0
  103. package/dist/src/commands/org-observe-shared.d.ts +20 -0
  104. package/dist/src/commands/org-observe-shared.d.ts.map +1 -0
  105. package/dist/src/commands/org-observe-shared.js +55 -0
  106. package/dist/src/commands/org-observe-shared.js.map +1 -0
  107. package/dist/src/commands/org-observe.d.ts +9 -101
  108. package/dist/src/commands/org-observe.d.ts.map +1 -1
  109. package/dist/src/commands/org-observe.js +12 -1675
  110. package/dist/src/commands/org-observe.js.map +1 -1
  111. package/dist/src/commands/org-poll.d.ts +57 -0
  112. package/dist/src/commands/org-poll.d.ts.map +1 -0
  113. package/dist/src/commands/org-poll.js +194 -0
  114. package/dist/src/commands/org-poll.js.map +1 -0
  115. package/dist/src/commands/org-run.d.ts +3 -0
  116. package/dist/src/commands/org-run.d.ts.map +1 -0
  117. package/dist/src/commands/org-run.js +449 -0
  118. package/dist/src/commands/org-run.js.map +1 -0
  119. package/dist/src/commands/org-serve.d.ts +19 -0
  120. package/dist/src/commands/org-serve.d.ts.map +1 -0
  121. package/dist/src/commands/org-serve.js +395 -0
  122. package/dist/src/commands/org-serve.js.map +1 -0
  123. package/dist/src/commands/org-subcommands-config.d.ts +8 -0
  124. package/dist/src/commands/org-subcommands-config.d.ts.map +1 -0
  125. package/dist/src/commands/org-subcommands-config.js +93 -0
  126. package/dist/src/commands/org-subcommands-config.js.map +1 -0
  127. package/dist/src/commands/org-subcommands-hil.d.ts +11 -0
  128. package/dist/src/commands/org-subcommands-hil.d.ts.map +1 -0
  129. package/dist/src/commands/org-subcommands-hil.js +216 -0
  130. package/dist/src/commands/org-subcommands-hil.js.map +1 -0
  131. package/dist/src/commands/org-subcommands-observe.d.ts +12 -0
  132. package/dist/src/commands/org-subcommands-observe.d.ts.map +1 -0
  133. package/dist/src/commands/org-subcommands-observe.js +249 -0
  134. package/dist/src/commands/org-subcommands-observe.js.map +1 -0
  135. package/dist/src/commands/org-subcommands-runtime.d.ts +12 -0
  136. package/dist/src/commands/org-subcommands-runtime.d.ts.map +1 -0
  137. package/dist/src/commands/org-subcommands-runtime.js +163 -0
  138. package/dist/src/commands/org-subcommands-runtime.js.map +1 -0
  139. package/dist/src/commands/org.d.ts +3 -151
  140. package/dist/src/commands/org.d.ts.map +1 -1
  141. package/dist/src/commands/org.js +43 -2735
  142. package/dist/src/commands/org.js.map +1 -1
  143. package/dist/src/index.js +2 -2
  144. package/dist/src/index.js.map +1 -1
  145. package/dist/src/init/never-commit.d.ts +3 -3
  146. package/dist/src/init/types.d.ts +1 -1
  147. package/dist/src/init/types.js +1 -1
  148. package/dist/src/knowledge/document-store.js +1 -1
  149. package/dist/src/knowledge/document-store.js.map +1 -1
  150. package/dist/src/mcp-tools/hooks-edit-command.d.ts +10 -0
  151. package/dist/src/mcp-tools/hooks-edit-command.d.ts.map +1 -0
  152. package/dist/src/mcp-tools/hooks-edit-command.js +247 -0
  153. package/dist/src/mcp-tools/hooks-edit-command.js.map +1 -0
  154. package/dist/src/mcp-tools/hooks-learning.d.ts +9 -0
  155. package/dist/src/mcp-tools/hooks-learning.d.ts.map +1 -0
  156. package/dist/src/mcp-tools/hooks-learning.js +408 -0
  157. package/dist/src/mcp-tools/hooks-learning.js.map +1 -0
  158. package/dist/src/mcp-tools/hooks-metrics-list.d.ts +8 -0
  159. package/dist/src/mcp-tools/hooks-metrics-list.d.ts.map +1 -0
  160. package/dist/src/mcp-tools/hooks-metrics-list.js +205 -0
  161. package/dist/src/mcp-tools/hooks-metrics-list.js.map +1 -0
  162. package/dist/src/mcp-tools/hooks-route.d.ts +12 -0
  163. package/dist/src/mcp-tools/hooks-route.d.ts.map +1 -0
  164. package/dist/src/mcp-tools/hooks-route.js +251 -0
  165. package/dist/src/mcp-tools/hooks-route.js.map +1 -0
  166. package/dist/src/mcp-tools/hooks-routing.d.ts +6 -27
  167. package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
  168. package/dist/src/mcp-tools/hooks-routing.js +6 -1727
  169. package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
  170. package/dist/src/mcp-tools/hooks-session.d.ts +9 -0
  171. package/dist/src/mcp-tools/hooks-session.d.ts.map +1 -0
  172. package/dist/src/mcp-tools/hooks-session.js +243 -0
  173. package/dist/src/mcp-tools/hooks-session.js.map +1 -0
  174. package/dist/src/mcp-tools/hooks-task.d.ts +17 -0
  175. package/dist/src/mcp-tools/hooks-task.d.ts.map +1 -0
  176. package/dist/src/mcp-tools/hooks-task.js +427 -0
  177. package/dist/src/mcp-tools/hooks-task.js.map +1 -0
  178. package/dist/src/mcp-tools/hooks-tools.d.ts +2 -1
  179. package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
  180. package/dist/src/mcp-tools/hooks-tools.js +2 -1
  181. package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
  182. package/dist/src/mcp-tools/memory-tools.js +1 -1
  183. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  184. package/dist/src/memory/bm25-index.d.ts +2 -2
  185. package/dist/src/memory/bm25-index.js +2 -2
  186. package/dist/src/memory/embedding-operations.js +2 -2
  187. package/dist/src/memory/embedding-operations.js.map +1 -1
  188. package/dist/src/memory/entity-name-key.d.ts +1 -1
  189. package/dist/src/memory/entity-name-key.js +1 -1
  190. package/dist/src/memory/hnsw-operations.d.ts +1 -1
  191. package/dist/src/memory/hnsw-operations.js +1 -1
  192. package/dist/src/memory/memory-bridge-backend.d.ts +43 -0
  193. package/dist/src/memory/memory-bridge-backend.d.ts.map +1 -0
  194. package/dist/src/memory/memory-bridge-backend.js +363 -0
  195. package/dist/src/memory/memory-bridge-backend.js.map +1 -0
  196. package/dist/src/memory/memory-bridge-core.d.ts +42 -0
  197. package/dist/src/memory/memory-bridge-core.d.ts.map +1 -0
  198. package/dist/src/memory/memory-bridge-core.js +126 -0
  199. package/dist/src/memory/memory-bridge-core.js.map +1 -0
  200. package/dist/src/memory/memory-bridge-entries.d.ts +131 -0
  201. package/dist/src/memory/memory-bridge-entries.d.ts.map +1 -0
  202. package/dist/src/memory/memory-bridge-entries.js +227 -0
  203. package/dist/src/memory/memory-bridge-entries.js.map +1 -0
  204. package/dist/src/memory/memory-bridge-feedback.d.ts +60 -0
  205. package/dist/src/memory/memory-bridge-feedback.d.ts.map +1 -0
  206. package/dist/src/memory/memory-bridge-feedback.js +118 -0
  207. package/dist/src/memory/memory-bridge-feedback.js.map +1 -0
  208. package/dist/src/memory/memory-bridge-paths.d.ts +123 -0
  209. package/dist/src/memory/memory-bridge-paths.d.ts.map +1 -0
  210. package/dist/src/memory/memory-bridge-paths.js +335 -0
  211. package/dist/src/memory/memory-bridge-paths.js.map +1 -0
  212. package/dist/src/memory/memory-bridge-search.d.ts +48 -0
  213. package/dist/src/memory/memory-bridge-search.d.ts.map +1 -0
  214. package/dist/src/memory/memory-bridge-search.js +383 -0
  215. package/dist/src/memory/memory-bridge-search.js.map +1 -0
  216. package/dist/src/memory/memory-bridge-sessions.d.ts +38 -0
  217. package/dist/src/memory/memory-bridge-sessions.d.ts.map +1 -0
  218. package/dist/src/memory/memory-bridge-sessions.js +109 -0
  219. package/dist/src/memory/memory-bridge-sessions.js.map +1 -0
  220. package/dist/src/memory/memory-bridge-store.d.ts +58 -0
  221. package/dist/src/memory/memory-bridge-store.d.ts.map +1 -0
  222. package/dist/src/memory/memory-bridge-store.js +201 -0
  223. package/dist/src/memory/memory-bridge-store.js.map +1 -0
  224. package/dist/src/memory/memory-bridge.d.ts +10 -438
  225. package/dist/src/memory/memory-bridge.d.ts.map +1 -1
  226. package/dist/src/memory/memory-bridge.js +14 -1787
  227. package/dist/src/memory/memory-bridge.js.map +1 -1
  228. package/dist/src/memory/memory-kg-claims.d.ts +52 -0
  229. package/dist/src/memory/memory-kg-claims.d.ts.map +1 -0
  230. package/dist/src/memory/memory-kg-claims.js +99 -0
  231. package/dist/src/memory/memory-kg-claims.js.map +1 -0
  232. package/dist/src/memory/memory-kg-index.d.ts +86 -0
  233. package/dist/src/memory/memory-kg-index.d.ts.map +1 -0
  234. package/dist/src/memory/memory-kg-index.js +256 -0
  235. package/dist/src/memory/memory-kg-index.js.map +1 -0
  236. package/dist/src/memory/memory-kg-ingest.d.ts +44 -0
  237. package/dist/src/memory/memory-kg-ingest.d.ts.map +1 -0
  238. package/dist/src/memory/memory-kg-ingest.js +361 -0
  239. package/dist/src/memory/memory-kg-ingest.js.map +1 -0
  240. package/dist/src/memory/memory-kg-model.d.ts +168 -0
  241. package/dist/src/memory/memory-kg-model.d.ts.map +1 -0
  242. package/dist/src/memory/memory-kg-model.js +158 -0
  243. package/dist/src/memory/memory-kg-model.js.map +1 -0
  244. package/dist/src/memory/memory-kg-names.d.ts +64 -0
  245. package/dist/src/memory/memory-kg-names.d.ts.map +1 -0
  246. package/dist/src/memory/memory-kg-names.js +187 -0
  247. package/dist/src/memory/memory-kg-names.js.map +1 -0
  248. package/dist/src/memory/memory-kg-promote.d.ts +79 -0
  249. package/dist/src/memory/memory-kg-promote.d.ts.map +1 -0
  250. package/dist/src/memory/memory-kg-promote.js +248 -0
  251. package/dist/src/memory/memory-kg-promote.js.map +1 -0
  252. package/dist/src/memory/memory-kg-rebuild.d.ts +77 -0
  253. package/dist/src/memory/memory-kg-rebuild.d.ts.map +1 -0
  254. package/dist/src/memory/memory-kg-rebuild.js +299 -0
  255. package/dist/src/memory/memory-kg-rebuild.js.map +1 -0
  256. package/dist/src/memory/memory-kg-rollback.d.ts +47 -0
  257. package/dist/src/memory/memory-kg-rollback.d.ts.map +1 -0
  258. package/dist/src/memory/memory-kg-rollback.js +193 -0
  259. package/dist/src/memory/memory-kg-rollback.js.map +1 -0
  260. package/dist/src/memory/memory-kg-rules.d.ts +64 -0
  261. package/dist/src/memory/memory-kg-rules.d.ts.map +1 -0
  262. package/dist/src/memory/memory-kg-rules.js +251 -0
  263. package/dist/src/memory/memory-kg-rules.js.map +1 -0
  264. package/dist/src/memory/memory-kg-scan.d.ts +118 -0
  265. package/dist/src/memory/memory-kg-scan.d.ts.map +1 -0
  266. package/dist/src/memory/memory-kg-scan.js +209 -0
  267. package/dist/src/memory/memory-kg-scan.js.map +1 -0
  268. package/dist/src/memory/memory-kg-search.d.ts +80 -0
  269. package/dist/src/memory/memory-kg-search.d.ts.map +1 -0
  270. package/dist/src/memory/memory-kg-search.js +239 -0
  271. package/dist/src/memory/memory-kg-search.js.map +1 -0
  272. package/dist/src/memory/memory-kg.d.ts +19 -547
  273. package/dist/src/memory/memory-kg.d.ts.map +1 -1
  274. package/dist/src/memory/memory-kg.js +10 -2389
  275. package/dist/src/memory/memory-kg.js.map +1 -1
  276. package/dist/src/orgrt/daemon-types.d.ts +196 -0
  277. package/dist/src/orgrt/daemon-types.d.ts.map +1 -0
  278. package/dist/src/orgrt/daemon-types.js +38 -0
  279. package/dist/src/orgrt/daemon-types.js.map +1 -0
  280. package/dist/src/orgrt/daemon.d.ts +70 -300
  281. package/dist/src/orgrt/daemon.d.ts.map +1 -1
  282. package/dist/src/orgrt/daemon.js +41 -2536
  283. package/dist/src/orgrt/daemon.js.map +1 -1
  284. package/dist/src/orgrt/idle-watchdog.d.ts +39 -0
  285. package/dist/src/orgrt/idle-watchdog.d.ts.map +1 -0
  286. package/dist/src/orgrt/idle-watchdog.js +289 -0
  287. package/dist/src/orgrt/idle-watchdog.js.map +1 -0
  288. package/dist/src/orgrt/org-reload.d.ts +7 -0
  289. package/dist/src/orgrt/org-reload.d.ts.map +1 -0
  290. package/dist/src/orgrt/org-reload.js +111 -0
  291. package/dist/src/orgrt/org-reload.js.map +1 -0
  292. package/dist/src/orgrt/org-start-steps.d.ts +21 -0
  293. package/dist/src/orgrt/org-start-steps.d.ts.map +1 -0
  294. package/dist/src/orgrt/org-start-steps.js +305 -0
  295. package/dist/src/orgrt/org-start-steps.js.map +1 -0
  296. package/dist/src/orgrt/org-start.d.ts +7 -0
  297. package/dist/src/orgrt/org-start.d.ts.map +1 -0
  298. package/dist/src/orgrt/org-start.js +435 -0
  299. package/dist/src/orgrt/org-start.js.map +1 -0
  300. package/dist/src/orgrt/org-state-file.d.ts +8 -0
  301. package/dist/src/orgrt/org-state-file.d.ts.map +1 -0
  302. package/dist/src/orgrt/org-state-file.js +116 -0
  303. package/dist/src/orgrt/org-state-file.js.map +1 -0
  304. package/dist/src/orgrt/org-stop.d.ts +6 -0
  305. package/dist/src/orgrt/org-stop.d.ts.map +1 -0
  306. package/dist/src/orgrt/org-stop.js +332 -0
  307. package/dist/src/orgrt/org-stop.js.map +1 -0
  308. package/dist/src/orgrt/org-tools.d.ts +11 -0
  309. package/dist/src/orgrt/org-tools.d.ts.map +1 -0
  310. package/dist/src/orgrt/org-tools.js +305 -0
  311. package/dist/src/orgrt/org-tools.js.map +1 -0
  312. package/dist/src/orgrt/role-incarnation.d.ts +18 -0
  313. package/dist/src/orgrt/role-incarnation.d.ts.map +1 -0
  314. package/dist/src/orgrt/role-incarnation.js +374 -0
  315. package/dist/src/orgrt/role-incarnation.js.map +1 -0
  316. package/dist/src/orgrt/role-respawn.d.ts +7 -0
  317. package/dist/src/orgrt/role-respawn.d.ts.map +1 -0
  318. package/dist/src/orgrt/role-respawn.js +318 -0
  319. package/dist/src/orgrt/role-respawn.js.map +1 -0
  320. package/dist/src/orgrt/role-session-opts.d.ts +389 -0
  321. package/dist/src/orgrt/role-session-opts.d.ts.map +1 -0
  322. package/dist/src/orgrt/role-session-opts.js +289 -0
  323. package/dist/src/orgrt/role-session-opts.js.map +1 -0
  324. package/dist/src/orgrt/runner-resolve.d.ts +43 -0
  325. package/dist/src/orgrt/runner-resolve.d.ts.map +1 -0
  326. package/dist/src/orgrt/runner-resolve.js +77 -0
  327. package/dist/src/orgrt/runner-resolve.js.map +1 -0
  328. package/dist/src/orgrt/session-gate.d.ts +34 -0
  329. package/dist/src/orgrt/session-gate.d.ts.map +1 -0
  330. package/dist/src/orgrt/session-gate.js +74 -0
  331. package/dist/src/orgrt/session-gate.js.map +1 -0
  332. package/dist/src/orgrt/session-prompt.d.ts +31 -0
  333. package/dist/src/orgrt/session-prompt.d.ts.map +1 -0
  334. package/dist/src/orgrt/session-prompt.js +115 -0
  335. package/dist/src/orgrt/session-prompt.js.map +1 -0
  336. package/dist/src/orgrt/session-run.d.ts +18 -0
  337. package/dist/src/orgrt/session-run.d.ts.map +1 -0
  338. package/dist/src/orgrt/session-run.js +429 -0
  339. package/dist/src/orgrt/session-run.js.map +1 -0
  340. package/dist/src/orgrt/session-stream.d.ts +21 -0
  341. package/dist/src/orgrt/session-stream.d.ts.map +1 -0
  342. package/dist/src/orgrt/session-stream.js +173 -0
  343. package/dist/src/orgrt/session-stream.js.map +1 -0
  344. package/dist/src/orgrt/session-types.d.ts +219 -0
  345. package/dist/src/orgrt/session-types.d.ts.map +1 -0
  346. package/dist/src/orgrt/session-types.js +2 -0
  347. package/dist/src/orgrt/session-types.js.map +1 -0
  348. package/dist/src/orgrt/session-usage.d.ts +29 -0
  349. package/dist/src/orgrt/session-usage.d.ts.map +1 -0
  350. package/dist/src/orgrt/session-usage.js +64 -0
  351. package/dist/src/orgrt/session-usage.js.map +1 -0
  352. package/dist/src/orgrt/session.d.ts +5 -281
  353. package/dist/src/orgrt/session.d.ts.map +1 -1
  354. package/dist/src/orgrt/session.js +8 -1117
  355. package/dist/src/orgrt/session.js.map +1 -1
  356. package/dist/src/ui/org-hil.mjs +1 -1
  357. package/dist/src/ui/routes-org-agents.mjs +318 -0
  358. package/dist/src/ui/routes-org-approvals.mjs +133 -0
  359. package/dist/src/ui/routes-org-config.mjs +459 -0
  360. package/dist/src/ui/routes-org-control.mjs +300 -0
  361. package/dist/src/ui/routes-org-files.mjs +172 -0
  362. package/dist/src/ui/routes-org-helpers.mjs +84 -0
  363. package/dist/src/ui/routes-org-knowledge.mjs +262 -0
  364. package/dist/src/ui/routes-org-lifecycle.mjs +224 -0
  365. package/dist/src/ui/routes-org-live.mjs +278 -0
  366. package/dist/src/ui/routes-org-mastermind.mjs +346 -0
  367. package/dist/src/ui/routes-org-planning.mjs +398 -0
  368. package/dist/src/ui/routes-org-runs.mjs +430 -0
  369. package/dist/src/ui/routes-org-status.mjs +342 -0
  370. package/dist/src/ui/routes-org-workflows.mjs +212 -0
  371. package/dist/src/ui/routes-org.mjs +26 -3847
  372. package/dist/src/ui/server.mjs +1 -1
  373. package/dist/src/utils/native-error.d.ts +1 -1
  374. package/dist/src/utils/native-error.js +1 -1
  375. package/dist/src/utils/paths.d.ts +2 -1
  376. package/dist/src/utils/paths.d.ts.map +1 -1
  377. package/dist/src/utils/paths.js +2 -1
  378. package/dist/src/utils/paths.js.map +1 -1
  379. package/dist/tsconfig.tsbuildinfo +1 -1
  380. package/org-skills/adversarial-reviewer/SKILL.md +1 -1
  381. package/org-skills/board-deck-builder/SKILL.md +1 -1
  382. package/org-skills/code-reviewer/SKILL.md +1 -1
  383. package/org-skills/debugging-wizard/SKILL.md +1 -1
  384. package/org-skills/scientific-thinking-literature-review/SKILL.md +1 -1
  385. package/org-skills/scientific-thinking-scholar-evaluation/SKILL.md +1 -1
  386. package/package.json +5 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-kg-rebuild.js","sourceRoot":"","sources":["../../../src/memory/memory-kg-rebuild.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Memory Knowledge Graph — per-origin rollback: kgRollback withdraws an
3
+ * origin's support, re-derives the survivors and removes edges left
4
+ * without endpoints. Split out of memory-kg.ts, which re-exports
5
+ * kgRollback.
6
+ */
7
+ import type { KgScope } from './memory-kg-model.js';
8
+ /** Withdraw `originRef`'s support from the graph: remove it from every
9
+ * node/edge/rule it backs, and delete the element once no origin remains.
10
+ *
11
+ * The withdrawn ref is REWRITTEN out of the surviving elements' origin lists,
12
+ * not left behind. Retaining it (as this used to) meant a second rollback saw
13
+ * a two-entry list and retained again — so an element could outlive the
14
+ * withdrawal of every origin that ever supported it.
15
+ *
16
+ * The scan is EXHAUSTIVE: it pages each namespace to the end rather than
17
+ * reading one capped list. A capped scan let an element past the cap keep a
18
+ * withdrawn origin while the caller was told the rollback succeeded.
19
+ *
20
+ * Collect-then-mutate is deliberate: deleting a row pulls every later row back
21
+ * one position, so a delete inside the page loop would make an advancing
22
+ * offset skip whatever slid into the gap. (Rewrites are no longer a hazard —
23
+ * the bridge's upsert reuses the existing entry id and preserves `createdAt`
24
+ * rather than re-inserting at the head of the default ordering — but this
25
+ * function deletes as well as rewrites.) Only origin-carrying entries are
26
+ * retained during the scan, so memory tracks the rollback's own footprint, not
27
+ * the namespace size. */
28
+ export declare function kgRollback(options: {
29
+ originRef: string;
30
+ /** Whose knowledge to withdraw from. A rollback can only reach the named
31
+ * scope's namespaces — an org's rollback is an ownership boundary, not just
32
+ * a label on the output. */
33
+ scope?: KgScope;
34
+ dbPath?: string;
35
+ }): Promise<{
36
+ success: boolean;
37
+ deleted: number;
38
+ retained: number;
39
+ failures?: string[];
40
+ error?: string;
41
+ /** Edges deleted because this rollback removed an endpoint they name. A
42
+ * relation between two things is not a fact once one of them is gone, and
43
+ * retrieval is node-seeded, so leaving them behind left unreachable rows
44
+ * claiming a graph that no longer exists. */
45
+ danglingEdgesRemoved?: number;
46
+ }>;
47
+ //# sourceMappingURL=memory-kg-rollback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-kg-rollback.d.ts","sourceRoot":"","sources":["../../../src/memory/memory-kg-rollback.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,KAAK,EAAgB,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAQlE;;;;;;;;;;;;;;;;;;;0BAmB0B;AAC1B,wBAAsB,UAAU,CAAC,OAAO,EAAE;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB;;iCAE6B;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC;IACV,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;kDAG8C;IAC9C,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC,CAyHD"}
@@ -0,0 +1,193 @@
1
+ /**
2
+ * Memory Knowledge Graph — per-origin rollback: kgRollback withdraws an
3
+ * origin's support, re-derives the survivors and removes edges left
4
+ * without endpoints. Split out of memory-kg.ts, which re-exports
5
+ * kgRollback.
6
+ */
7
+ import { bridgeDeleteEntry, bridgeStoreEntry } from './memory-bridge.js';
8
+ import { withoutOrigin } from './memory-kg-claims.js';
9
+ import { kgIndexedByOrigin, onEntryDeleted, onOriginWithdrawn, readIndexStatus, } from './memory-kg-index.js';
10
+ import { kgNamespaces, kgQualifyOrigin } from './memory-kg-model.js';
11
+ import { readNameIndex, writeNameIndex } from './memory-kg-names.js';
12
+ import { collectByOrigin, FailureLog, scanNamespace } from './memory-kg-scan.js';
13
+ // ── Rollback (per-origin bad-ingest recovery) ───────────────────────
14
+ /** Withdraw `originRef`'s support from the graph: remove it from every
15
+ * node/edge/rule it backs, and delete the element once no origin remains.
16
+ *
17
+ * The withdrawn ref is REWRITTEN out of the surviving elements' origin lists,
18
+ * not left behind. Retaining it (as this used to) meant a second rollback saw
19
+ * a two-entry list and retained again — so an element could outlive the
20
+ * withdrawal of every origin that ever supported it.
21
+ *
22
+ * The scan is EXHAUSTIVE: it pages each namespace to the end rather than
23
+ * reading one capped list. A capped scan let an element past the cap keep a
24
+ * withdrawn origin while the caller was told the rollback succeeded.
25
+ *
26
+ * Collect-then-mutate is deliberate: deleting a row pulls every later row back
27
+ * one position, so a delete inside the page loop would make an advancing
28
+ * offset skip whatever slid into the gap. (Rewrites are no longer a hazard —
29
+ * the bridge's upsert reuses the existing entry id and preserves `createdAt`
30
+ * rather than re-inserting at the head of the default ordering — but this
31
+ * function deletes as well as rewrites.) Only origin-carrying entries are
32
+ * retained during the scan, so memory tracks the rollback's own footprint, not
33
+ * the namespace size. */
34
+ export async function kgRollback(options) {
35
+ const failures = new FailureLog();
36
+ const namespaces = kgNamespaces(options.scope);
37
+ const originRef = kgQualifyOrigin(options.originRef, options.scope);
38
+ let deleted = 0, retained = 0;
39
+ /** Entity IDs this rollback removed, and the names that pointed at them. */
40
+ const removedIds = new Set();
41
+ const removedNames = new Set();
42
+ try {
43
+ // K7: one indexed read across all three namespaces, tried before the
44
+ // exhaustive per-namespace scan. Only trusted when the scope's index is
45
+ // `ready` AND every ref it names still resolves — `kgIndexedByOrigin`
46
+ // returns null otherwise, and this falls straight back to the scan.
47
+ let indexedByNs = null;
48
+ if ((await readIndexStatus(namespaces, options.dbPath)).state === 'ready') {
49
+ const indexed = await kgIndexedByOrigin(namespaces, originRef, options.dbPath);
50
+ if (indexed !== null) {
51
+ indexedByNs = new Map([
52
+ [namespaces.nodes, []],
53
+ [namespaces.edges, []],
54
+ [namespaces.rules, []],
55
+ ]);
56
+ for (const { ns, entry } of indexed)
57
+ indexedByNs.get(ns)?.push(entry);
58
+ }
59
+ }
60
+ for (const ns of [namespaces.nodes, namespaces.edges, namespaces.rules]) {
61
+ const found = indexedByNs
62
+ ? { entries: indexedByNs.get(ns) ?? [], covered: true }
63
+ : await collectByOrigin(ns, originRef, options.dbPath);
64
+ // A partial scan cannot be reported as a completed withdrawal.
65
+ if (!found.covered) {
66
+ failures.note(`${ns}: memory backend unavailable`);
67
+ continue;
68
+ }
69
+ const withdrawn = found.entries.map((e) => ({
70
+ entry: e,
71
+ // Re-derive from the claim ledger rather than editing an origin list:
72
+ // this is what puts back the description a withdrawn origin overwrote.
73
+ remaining: withoutOrigin((e.metadata ?? {}), originRef),
74
+ }));
75
+ for (const { entry: e, remaining } of withdrawn) {
76
+ const md = (e.metadata ?? {});
77
+ if (remaining === null) {
78
+ const del = await bridgeDeleteEntry({ id: e.id, namespace: ns, dbPath: options.dbPath });
79
+ if (del?.deleted) {
80
+ deleted++;
81
+ await onOriginWithdrawn(namespaces, ns, e.key, originRef, options.dbPath);
82
+ await onEntryDeleted(namespaces, e.key, options.dbPath, ns === namespaces.edges
83
+ ? { src: String(md.src ?? ''), dst: String(md.dst ?? '') }
84
+ : undefined);
85
+ }
86
+ else
87
+ failures.note(`${ns}/${e.key}: delete failed`);
88
+ if (ns === namespaces.nodes && del?.deleted) {
89
+ removedIds.add(e.key);
90
+ if (typeof md.name === 'string')
91
+ removedNames.add(md.name);
92
+ }
93
+ continue;
94
+ }
95
+ const store = await bridgeStoreEntry({
96
+ key: e.key,
97
+ value: rerender(e.content, md, remaining.description, ns === namespaces.rules),
98
+ namespace: ns,
99
+ dbPath: options.dbPath,
100
+ upsert: true,
101
+ // Edges are stored without embeddings; re-deriving one here would
102
+ // silently change how the entry behaves in search.
103
+ generateEmbeddingFlag: e.hasEmbedding,
104
+ tags: e.tags,
105
+ metadata: { ...md, ...remaining },
106
+ });
107
+ if (!failures.add(store, `${ns}/${e.key}: origin withdrawal`)) {
108
+ retained++;
109
+ await onOriginWithdrawn(namespaces, ns, e.key, originRef, options.dbPath);
110
+ }
111
+ }
112
+ }
113
+ // Drop the removed entities out of the name index, so a later ingest of the
114
+ // same name does not resolve onto an entity that no longer exists.
115
+ for (const name of removedNames) {
116
+ const known = await readNameIndex(name, namespaces, options.dbPath);
117
+ if (known === null) {
118
+ // An unreadable index must not be rewritten from a guess — doing so
119
+ // would erase every same-name entity this rollback did NOT remove.
120
+ failures.note(`${namespaces.names}: name index unreadable for ${name}`);
121
+ continue;
122
+ }
123
+ const survivors = known.filter((c) => !removedIds.has(c.id));
124
+ if (survivors.length !== known.length)
125
+ await writeNameIndex(name, survivors, namespaces, options.dbPath, failures);
126
+ }
127
+ const danglingEdgesRemoved = removedIds.size
128
+ ? await removeEdgesMissingEndpoints(namespaces, removedIds, options.dbPath, failures)
129
+ : 0;
130
+ return {
131
+ success: !failures.failed,
132
+ deleted,
133
+ retained,
134
+ ...(failures.failed ? { failures: failures.messages, error: failures.summary() } : {}),
135
+ ...(danglingEdgesRemoved ? { danglingEdgesRemoved } : {}),
136
+ };
137
+ }
138
+ catch (err) {
139
+ return {
140
+ success: false,
141
+ deleted,
142
+ retained,
143
+ ...(failures.messages.length ? { failures: failures.messages } : {}),
144
+ error: err instanceof Error ? err.message : String(err),
145
+ };
146
+ }
147
+ }
148
+ /** Re-render a stored value after its derived description changed.
149
+ *
150
+ * Rules are left alone: their value is the rule text plus an optional context
151
+ * block, not a rendering of a description. */
152
+ function rerender(content, md, description, isRule) {
153
+ if (isRule || description === md.description)
154
+ return content;
155
+ if (md.kg === 'edge')
156
+ return description || `${md.source_name} ${md.relation} ${md.target_name}`;
157
+ return `${md.name} — ${description || md.type}`;
158
+ }
159
+ /** Delete every edge incident to one of `removedIds`. Collect-then-mutate for
160
+ * the same reason `kgRollback` does. */
161
+ async function removeEdgesMissingEndpoints(ns, removedIds, dbPath, failures) {
162
+ const doomed = [];
163
+ const covered = await scanNamespace(ns.edges, dbPath, (page) => {
164
+ for (const e of page) {
165
+ const md = (e.metadata ?? {});
166
+ const src = String(md.src ?? '');
167
+ const dst = String(md.dst ?? '');
168
+ if (removedIds.has(src) || removedIds.has(dst))
169
+ doomed.push({ entry: e, src, dst });
170
+ }
171
+ });
172
+ if (!covered) {
173
+ failures.note(`${ns.edges}: memory backend unavailable during dangling-edge sweep`);
174
+ return 0;
175
+ }
176
+ let removed = 0;
177
+ for (const { entry: e, src, dst } of doomed) {
178
+ const del = await bridgeDeleteEntry({ id: e.id, namespace: ns.edges, dbPath });
179
+ if (del?.deleted) {
180
+ removed++;
181
+ // Only the surviving endpoint needs its adjacency entry pruned — the
182
+ // removed one's own entry is moot, its entity is gone too.
183
+ await onEntryDeleted(ns, e.key, dbPath, {
184
+ src: removedIds.has(src) ? dst : src,
185
+ dst: removedIds.has(src) ? dst : src,
186
+ });
187
+ }
188
+ else
189
+ failures.note(`${ns.edges}/${e.key}: dangling-edge delete failed`);
190
+ }
191
+ return removed;
192
+ }
193
+ //# sourceMappingURL=memory-kg-rollback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-kg-rollback.js","sourceRoot":"","sources":["../../../src/memory/memory-kg-rollback.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Memory Knowledge Graph — rules (two-stage distillation support):
3
+ * kgIngestRules with per-rule verdicts, origin reinforcement, and
4
+ * kgListRules. Split out of memory-kg.ts, which re-exports the public
5
+ * symbols.
6
+ */
7
+ import type { KgScope } from './memory-kg-model.js';
8
+ export interface RuleVerdict {
9
+ rule: string;
10
+ /** `failed` — the candidate was fine, but a write the caller was told about
11
+ * did not land. It is neither `invalid` (which blames the caller's input)
12
+ * nor `accepted`/`already_known` (which claim the graph now holds it). Both
13
+ * of those used to be reported unconditionally, so a caller reading verdicts
14
+ * saw every rule land while the aggregate `accepted` count said zero. */
15
+ verdict: 'accepted' | 'already_known' | 'invalid' | 'failed';
16
+ similarTo?: string;
17
+ }
18
+ /** Stage-2 of cognee's curator/writer distillation: the CALLER (an LLM agent)
19
+ * proposes candidate rules; this accepts each unless a semantically
20
+ * near-identical rule exists (embedding dedup — deterministic keys can't
21
+ * collapse paraphrases). Accepted rules are stored both as KG nodes
22
+ * (node_set=rules) and as plain `rules`-namespace entries so the existing
23
+ * injection/search surfaces pick them up with zero new plumbing.
24
+ *
25
+ * A candidate that dedups against an existing rule still ADDS its origin to
26
+ * that rule's support set: two independent runs asserting the same rule mean
27
+ * the rule survives either one being rolled back. Dropping the second origin
28
+ * (as this used to) made rollback of the FIRST run delete knowledge the
29
+ * second run independently vouched for.
30
+ *
31
+ * Like `kgIngest`, NOT atomic — see that function's note. */
32
+ export declare function kgIngestRules(options: {
33
+ rules: {
34
+ rule: string;
35
+ context?: string;
36
+ }[];
37
+ originRef: string;
38
+ /** Owner of these rules. Omit for project-shared knowledge. */
39
+ scope?: KgScope;
40
+ dbPath?: string;
41
+ /** Similarity above which a candidate is already_known (default 0.78 —
42
+ * MiniLM paraphrases of the same rule commonly land 0.78-0.9; cognee's
43
+ * equivalent control is prompt-injected LLM judgment, which we approximate). */
44
+ dedupThreshold?: number;
45
+ }): Promise<{
46
+ success: boolean;
47
+ verdicts: RuleVerdict[];
48
+ accepted: number;
49
+ failures?: string[];
50
+ error?: string;
51
+ /** Candidates dropped by the per-call cap, reported rather than sliced away
52
+ * in silence. */
53
+ rulesTruncated?: number;
54
+ }>;
55
+ /** List stored rules (for injection or review). */
56
+ export declare function kgListRules(options?: {
57
+ dbPath?: string;
58
+ limit?: number;
59
+ scope?: KgScope;
60
+ }): Promise<{
61
+ rule: string;
62
+ key: string;
63
+ }[]>;
64
+ //# sourceMappingURL=memory-kg-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-kg-rules.d.ts","sourceRoot":"","sources":["../../../src/memory/memory-kg-rules.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAapD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb;;;;8EAI0E;IAC1E,OAAO,EAAE,UAAU,GAAG,eAAe,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;8DAa8D;AAC9D,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAC3C,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;qFAEiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC;IACV,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;sBACkB;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC,CAkJD;AA+ED,mDAAmD;AACnD,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAO3C"}
@@ -0,0 +1,251 @@
1
+ /**
2
+ * Memory Knowledge Graph — rules (two-stage distillation support):
3
+ * kgIngestRules with per-rule verdicts, origin reinforcement, and
4
+ * kgListRules. Split out of memory-kg.ts, which re-exports the public
5
+ * symbols.
6
+ */
7
+ import { bridgeGetEntry, bridgeListEntries, bridgeSearchEntries, bridgeStoreEntry, } from './memory-bridge.js';
8
+ import { applyClaim } from './memory-kg-claims.js';
9
+ import { onEntrySupported } from './memory-kg-index.js';
10
+ import { kgIngest } from './memory-kg-ingest.js';
11
+ import { KG_ID_VERSION, kgNamespaces, kgQualifyOrigin, legacyRuleKey, MAX_RULES_PER_CALL, ruleKey, } from './memory-kg-model.js';
12
+ import { FailureLog } from './memory-kg-scan.js';
13
+ /** Stage-2 of cognee's curator/writer distillation: the CALLER (an LLM agent)
14
+ * proposes candidate rules; this accepts each unless a semantically
15
+ * near-identical rule exists (embedding dedup — deterministic keys can't
16
+ * collapse paraphrases). Accepted rules are stored both as KG nodes
17
+ * (node_set=rules) and as plain `rules`-namespace entries so the existing
18
+ * injection/search surfaces pick them up with zero new plumbing.
19
+ *
20
+ * A candidate that dedups against an existing rule still ADDS its origin to
21
+ * that rule's support set: two independent runs asserting the same rule mean
22
+ * the rule survives either one being rolled back. Dropping the second origin
23
+ * (as this used to) made rollback of the FIRST run delete knowledge the
24
+ * second run independently vouched for.
25
+ *
26
+ * Like `kgIngest`, NOT atomic — see that function's note. */
27
+ export async function kgIngestRules(options) {
28
+ const verdicts = [];
29
+ const threshold = options.dedupThreshold ?? 0.78;
30
+ const failures = new FailureLog();
31
+ const ns = kgNamespaces(options.scope);
32
+ // Direct writes here store the qualified ref; nested kgIngest calls get the
33
+ // RAW ref plus the scope and qualify it themselves, so it is stamped once.
34
+ const originRef = kgQualifyOrigin(options.originRef, options.scope);
35
+ let accepted = 0;
36
+ const all = options.rules ?? [];
37
+ const batch = all.slice(0, MAX_RULES_PER_CALL);
38
+ const rulesTruncated = all.length - batch.length;
39
+ try {
40
+ for (const r of batch) {
41
+ const rule = r?.rule?.trim();
42
+ if (!rule || rule.length < 8) {
43
+ verdicts.push({ rule: r?.rule ?? '', verdict: 'invalid' });
44
+ continue;
45
+ }
46
+ const similar = await bridgeSearchEntries({
47
+ query: rule,
48
+ namespace: ns.rules,
49
+ limit: 1,
50
+ threshold,
51
+ dbPath: options.dbPath,
52
+ });
53
+ const top = similar?.results?.[0];
54
+ // Issue #111: FTS5 keyword scores are min-max normalized per batch.
55
+ // With limit:1, the sole result always scores 1.0 — any rule sharing
56
+ // even one keyword was falsely marked as a duplicate.
57
+ //
58
+ // Only trust embedding-backed (semantic) cosine scores for dedup.
59
+ // Keyword-only matches can't distinguish paraphrases from merely
60
+ // overlapping vocabulary — fall back to exact-text comparison.
61
+ // (Key-based upsert on store already handles identical keys.)
62
+ const provenance = top?.provenance;
63
+ let isDuplicate = false;
64
+ if (top && provenance?.startsWith('semantic:')) {
65
+ const rawCosine = parseFloat(provenance.slice('semantic:'.length));
66
+ isDuplicate = rawCosine >= threshold;
67
+ }
68
+ else if (top) {
69
+ // Keyword-only: only suppress true near-exact duplicates.
70
+ const existing = (top.content || '').replace(/\s+/g, ' ').trim().toLowerCase();
71
+ const candidate = rule.replace(/\s+/g, ' ').trim().toLowerCase();
72
+ isDuplicate = existing === candidate;
73
+ }
74
+ if (isDuplicate && top?.key) {
75
+ // `already_known` is a claim that this origin now supports the existing
76
+ // rule. If reinforcement did not land, it does not — and a later
77
+ // rollback of the OTHER origin would delete a rule this run believes it
78
+ // vouched for.
79
+ const reinforced = await reinforceRuleOrigin(top.key, top.content, options.originRef, options.scope, options.dbPath, failures);
80
+ verdicts.push({
81
+ rule,
82
+ verdict: reinforced ? 'already_known' : 'failed',
83
+ similarTo: top.key,
84
+ });
85
+ continue;
86
+ }
87
+ // Identity is the full rule text. The old key truncated at 120 normalized
88
+ // characters, so two rules sharing a long preamble were the same rule.
89
+ // A rule stored under that scheme is adopted in place rather than
90
+ // duplicated under the new key.
91
+ let key = ruleKey(rule);
92
+ let priorMd = {};
93
+ const current = await bridgeGetEntry({ key, namespace: ns.rules, dbPath: options.dbPath });
94
+ if (current?.found && current.entry)
95
+ priorMd = current.entry.metadata;
96
+ else {
97
+ const legacy = legacyRuleKey(rule);
98
+ const hit = await bridgeGetEntry({
99
+ key: legacy,
100
+ namespace: ns.rules,
101
+ dbPath: options.dbPath,
102
+ });
103
+ if (hit?.found && hit.entry) {
104
+ key = legacy;
105
+ priorMd = hit.entry.metadata;
106
+ }
107
+ }
108
+ // The mirrored KG node is named by the FULL rule text. Truncating it to
109
+ // 200 characters put two rules sharing a long preamble on one node — the
110
+ // same collision `ruleKey` was just widened to prevent, reintroduced one
111
+ // namespace over.
112
+ const ruleName = rule;
113
+ const stored = await bridgeStoreEntry({
114
+ key,
115
+ value: rule + (r.context ? `\n(context: ${r.context.slice(0, 500)})` : ''),
116
+ namespace: ns.rules,
117
+ dbPath: options.dbPath,
118
+ upsert: true,
119
+ tags: ['rule'],
120
+ metadata: {
121
+ ...priorMd,
122
+ ...applyClaim(priorMd, originRef, rule, Date.now()),
123
+ id_version: KG_ID_VERSION,
124
+ derived_from: originRef,
125
+ // Lets the dedup path reinforce the matching KG node without having
126
+ // to re-derive the node name from the stored value (which may carry
127
+ // an appended context block).
128
+ rule: ruleName,
129
+ },
130
+ });
131
+ const nodeRes = await kgIngest({
132
+ nodes: [{ name: ruleName, type: 'Rule', description: rule, nodeSet: 'rules' }],
133
+ originRef: options.originRef,
134
+ scope: options.scope,
135
+ dbPath: options.dbPath,
136
+ });
137
+ const ruleFailed = failures.add(stored, `rule ${key}`);
138
+ if (!ruleFailed)
139
+ await onEntrySupported(ns, ns.rules, key, originRef, options.dbPath);
140
+ if (nodeRes.failures?.length)
141
+ for (const m of nodeRes.failures)
142
+ failures.note(m);
143
+ // Only count a rule as accepted when BOTH of its writes landed; a rule
144
+ // present in one namespace only is not the state the caller was told
145
+ // about. The per-rule verdict now says the same thing — it read
146
+ // `accepted` unconditionally, so the two halves of one result disagreed.
147
+ const landed = !ruleFailed && nodeRes.success;
148
+ if (landed)
149
+ accepted++;
150
+ verdicts.push({ rule, verdict: landed ? 'accepted' : 'failed' });
151
+ }
152
+ return {
153
+ success: !failures.failed,
154
+ verdicts,
155
+ accepted,
156
+ ...(failures.failed ? { failures: failures.messages, error: failures.summary() } : {}),
157
+ ...(rulesTruncated ? { rulesTruncated } : {}),
158
+ };
159
+ }
160
+ catch (err) {
161
+ return {
162
+ success: false,
163
+ verdicts,
164
+ accepted,
165
+ ...(failures.messages.length ? { failures: failures.messages } : {}),
166
+ ...(rulesTruncated ? { rulesTruncated } : {}),
167
+ error: err instanceof Error ? err.message : String(err),
168
+ };
169
+ }
170
+ }
171
+ /** Add `originRef` to an already-stored rule's support set — both the
172
+ * `rules`-namespace entry and its `node_set=rules` KG node. Idempotent in
173
+ * effect: re-asserting an origin the rule already carries leaves the support
174
+ * set unchanged.
175
+ *
176
+ * @returns true when the rule genuinely carries this origin afterwards —
177
+ * including the no-op case where it already did. False means the support set
178
+ * is not what the caller is about to be told it is. */
179
+ async function reinforceRuleOrigin(matchedKey, matchedContent,
180
+ /** RAW ref — qualified here for the rules entry, and passed on unqualified
181
+ * to `kgIngest`, which qualifies it once with the same scope. */
182
+ originRef, scope, dbPath, failures) {
183
+ const ns = kgNamespaces(scope);
184
+ const qualified = kgQualifyOrigin(originRef, scope);
185
+ const existing = await bridgeGetEntry({ key: matchedKey, namespace: ns.rules, dbPath });
186
+ if (!existing?.found || !existing.entry) {
187
+ // The dedup hit came from search; if the entry can't be re-read by key the
188
+ // support set cannot be updated, and silently proceeding is exactly the
189
+ // provenance loss this function exists to prevent.
190
+ failures.note(`rule ${matchedKey}: matched by dedup but not readable by key`);
191
+ return false;
192
+ }
193
+ const entry = existing.entry;
194
+ const md = entry.metadata;
195
+ const origins = Array.isArray(md.origin_refs) ? md.origin_refs : [];
196
+ // The KG node's name: recorded at accept time, else the first line of the
197
+ // stored value (any context block is appended after a newline).
198
+ const ruleName = typeof md.rule === 'string' && md.rule
199
+ ? md.rule
200
+ : (matchedContent || entry.content).split('\n')[0];
201
+ // Both writes are attempted regardless: skipping the node write because the
202
+ // entry write failed would leave the two halves disagreeing about who
203
+ // supports this rule. Only the REPORT changes.
204
+ let ok = true;
205
+ if (!origins.includes(qualified)) {
206
+ const res = await bridgeStoreEntry({
207
+ key: entry.key,
208
+ value: entry.content,
209
+ namespace: ns.rules,
210
+ dbPath,
211
+ upsert: true,
212
+ generateEmbeddingFlag: entry.hasEmbedding,
213
+ tags: entry.tags,
214
+ metadata: {
215
+ ...md,
216
+ rule: ruleName,
217
+ // A dedup hit is SUPPORT, not a correction: the candidate asserts the
218
+ // rule the entry already holds. Its contribution therefore carries no
219
+ // description of its own — passing one here (the truncated `rule` name,
220
+ // as this did) made the newest claim disagree with the stored text and
221
+ // flagged the rule as conflicted with a truncation of itself.
222
+ ...applyClaim(md, qualified, '', Date.now()),
223
+ },
224
+ });
225
+ if (failures.add(res, `rule ${entry.key}`))
226
+ ok = false;
227
+ else
228
+ await onEntrySupported(ns, ns.rules, entry.key, qualified, dbPath);
229
+ }
230
+ // The rule's KG node needs the same origin — rollback walks nodes separately.
231
+ const nodeRes = await kgIngest({
232
+ nodes: [{ name: ruleName, type: 'Rule', description: '', nodeSet: 'rules' }],
233
+ originRef,
234
+ scope,
235
+ dbPath,
236
+ });
237
+ if (nodeRes.failures?.length)
238
+ for (const m of nodeRes.failures)
239
+ failures.note(m);
240
+ return ok && nodeRes.success;
241
+ }
242
+ /** List stored rules (for injection or review). */
243
+ export async function kgListRules(options) {
244
+ const res = await bridgeListEntries({
245
+ namespace: kgNamespaces(options?.scope).rules,
246
+ limit: options?.limit ?? 50,
247
+ dbPath: options?.dbPath,
248
+ });
249
+ return (res?.entries ?? []).map((e) => ({ rule: e.content, key: e.key }));
250
+ }
251
+ //# sourceMappingURL=memory-kg-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-kg-rules.js","sourceRoot":"","sources":["../../../src/memory/memory-kg-rules.ts"],"names":[],"mappings":"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"}