@claude-flow/cli 3.6.30 → 3.7.0-alpha.10

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 (492) hide show
  1. package/.claude/agents/analysis/analyze-code-quality.md +178 -178
  2. package/.claude/agents/analysis/code-analyzer.md +209 -209
  3. package/.claude/agents/analysis/code-review/analyze-code-quality.md +178 -178
  4. package/.claude/agents/architecture/arch-system-design.md +156 -156
  5. package/.claude/agents/architecture/system-design/arch-system-design.md +154 -154
  6. package/.claude/agents/browser/browser-agent.yaml +182 -182
  7. package/.claude/agents/consensus/byzantine-coordinator.md +62 -62
  8. package/.claude/agents/consensus/crdt-synchronizer.md +996 -996
  9. package/.claude/agents/consensus/gossip-coordinator.md +62 -62
  10. package/.claude/agents/consensus/performance-benchmarker.md +850 -850
  11. package/.claude/agents/consensus/quorum-manager.md +822 -822
  12. package/.claude/agents/consensus/raft-manager.md +62 -62
  13. package/.claude/agents/consensus/security-manager.md +621 -621
  14. package/.claude/agents/core/coder.md +452 -452
  15. package/.claude/agents/core/planner.md +374 -374
  16. package/.claude/agents/core/researcher.md +368 -368
  17. package/.claude/agents/core/reviewer.md +519 -519
  18. package/.claude/agents/core/tester.md +511 -511
  19. package/.claude/agents/custom/test-long-runner.md +44 -44
  20. package/.claude/agents/data/data-ml-model.md +444 -444
  21. package/.claude/agents/data/ml/data-ml-model.md +192 -192
  22. package/.claude/agents/development/backend/dev-backend-api.md +141 -141
  23. package/.claude/agents/development/dev-backend-api.md +344 -344
  24. package/.claude/agents/devops/ci-cd/ops-cicd-github.md +163 -163
  25. package/.claude/agents/devops/ops-cicd-github.md +164 -164
  26. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +173 -173
  27. package/.claude/agents/documentation/docs-api-openapi.md +354 -354
  28. package/.claude/agents/flow-nexus/app-store.md +87 -87
  29. package/.claude/agents/flow-nexus/authentication.md +68 -68
  30. package/.claude/agents/flow-nexus/challenges.md +80 -80
  31. package/.claude/agents/flow-nexus/neural-network.md +87 -87
  32. package/.claude/agents/flow-nexus/payments.md +82 -82
  33. package/.claude/agents/flow-nexus/sandbox.md +75 -75
  34. package/.claude/agents/flow-nexus/swarm.md +75 -75
  35. package/.claude/agents/flow-nexus/user-tools.md +95 -95
  36. package/.claude/agents/flow-nexus/workflow.md +83 -83
  37. package/.claude/agents/github/code-review-swarm.md +377 -377
  38. package/.claude/agents/github/github-modes.md +172 -172
  39. package/.claude/agents/github/issue-tracker.md +575 -575
  40. package/.claude/agents/github/multi-repo-swarm.md +552 -552
  41. package/.claude/agents/github/pr-manager.md +437 -437
  42. package/.claude/agents/github/project-board-sync.md +508 -508
  43. package/.claude/agents/github/release-manager.md +604 -604
  44. package/.claude/agents/github/release-swarm.md +582 -582
  45. package/.claude/agents/github/repo-architect.md +397 -397
  46. package/.claude/agents/github/swarm-issue.md +572 -572
  47. package/.claude/agents/github/swarm-pr.md +427 -427
  48. package/.claude/agents/github/sync-coordinator.md +451 -451
  49. package/.claude/agents/github/workflow-automation.md +902 -902
  50. package/.claude/agents/goal/agent.md +815 -815
  51. package/.claude/agents/goal/goal-planner.md +72 -72
  52. package/.claude/agents/optimization/benchmark-suite.md +664 -664
  53. package/.claude/agents/optimization/load-balancer.md +430 -430
  54. package/.claude/agents/optimization/performance-monitor.md +671 -671
  55. package/.claude/agents/optimization/resource-allocator.md +673 -673
  56. package/.claude/agents/optimization/topology-optimizer.md +807 -807
  57. package/.claude/agents/payments/agentic-payments.md +126 -126
  58. package/.claude/agents/sona/sona-learning-optimizer.md +74 -74
  59. package/.claude/agents/sparc/architecture.md +698 -698
  60. package/.claude/agents/sparc/pseudocode.md +519 -519
  61. package/.claude/agents/sparc/refinement.md +801 -801
  62. package/.claude/agents/sparc/specification.md +477 -477
  63. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +224 -224
  64. package/.claude/agents/specialized/spec-mobile-react-native.md +226 -226
  65. package/.claude/agents/sublinear/consensus-coordinator.md +337 -337
  66. package/.claude/agents/sublinear/matrix-optimizer.md +184 -184
  67. package/.claude/agents/sublinear/pagerank-analyzer.md +298 -298
  68. package/.claude/agents/sublinear/performance-optimizer.md +367 -367
  69. package/.claude/agents/sublinear/trading-predictor.md +245 -245
  70. package/.claude/agents/swarm/adaptive-coordinator.md +1126 -1126
  71. package/.claude/agents/swarm/hierarchical-coordinator.md +709 -709
  72. package/.claude/agents/swarm/mesh-coordinator.md +962 -962
  73. package/.claude/agents/templates/automation-smart-agent.md +204 -204
  74. package/.claude/agents/templates/base-template-generator.md +289 -289
  75. package/.claude/agents/templates/coordinator-swarm-init.md +89 -89
  76. package/.claude/agents/templates/github-pr-manager.md +176 -176
  77. package/.claude/agents/templates/implementer-sparc-coder.md +258 -258
  78. package/.claude/agents/templates/memory-coordinator.md +186 -186
  79. package/.claude/agents/templates/orchestrator-task.md +138 -138
  80. package/.claude/agents/templates/performance-analyzer.md +198 -198
  81. package/.claude/agents/templates/sparc-coordinator.md +513 -513
  82. package/.claude/agents/testing/production-validator.md +394 -394
  83. package/.claude/agents/testing/tdd-london-swarm.md +243 -243
  84. package/.claude/agents/v3/adr-architect.md +184 -184
  85. package/.claude/agents/v3/aidefence-guardian.md +282 -282
  86. package/.claude/agents/v3/claims-authorizer.md +208 -208
  87. package/.claude/agents/v3/collective-intelligence-coordinator.md +993 -993
  88. package/.claude/agents/v3/ddd-domain-expert.md +220 -220
  89. package/.claude/agents/v3/injection-analyst.md +236 -236
  90. package/.claude/agents/v3/memory-specialist.md +995 -995
  91. package/.claude/agents/v3/performance-engineer.md +1233 -1233
  92. package/.claude/agents/v3/pii-detector.md +151 -151
  93. package/.claude/agents/v3/reasoningbank-learner.md +213 -213
  94. package/.claude/agents/v3/security-architect-aidefence.md +410 -410
  95. package/.claude/agents/v3/security-architect.md +867 -867
  96. package/.claude/agents/v3/security-auditor.md +771 -771
  97. package/.claude/agents/v3/sparc-orchestrator.md +182 -182
  98. package/.claude/agents/v3/swarm-memory-manager.md +157 -157
  99. package/.claude/agents/v3/v3-integration-architect.md +205 -205
  100. package/.claude/commands/agents/README.md +50 -50
  101. package/.claude/commands/agents/agent-capabilities.md +140 -140
  102. package/.claude/commands/agents/agent-coordination.md +28 -28
  103. package/.claude/commands/agents/agent-spawning.md +28 -28
  104. package/.claude/commands/agents/agent-types.md +216 -216
  105. package/.claude/commands/agents/health.md +139 -139
  106. package/.claude/commands/agents/list.md +100 -100
  107. package/.claude/commands/agents/logs.md +130 -130
  108. package/.claude/commands/agents/metrics.md +122 -122
  109. package/.claude/commands/agents/pool.md +127 -127
  110. package/.claude/commands/agents/spawn.md +140 -140
  111. package/.claude/commands/agents/status.md +115 -115
  112. package/.claude/commands/agents/stop.md +102 -102
  113. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +53 -53
  114. package/.claude/commands/analysis/README.md +9 -9
  115. package/.claude/commands/analysis/bottleneck-detect.md +162 -162
  116. package/.claude/commands/analysis/performance-bottlenecks.md +58 -58
  117. package/.claude/commands/analysis/performance-report.md +25 -25
  118. package/.claude/commands/analysis/token-efficiency.md +44 -44
  119. package/.claude/commands/analysis/token-usage.md +25 -25
  120. package/.claude/commands/automation/README.md +9 -9
  121. package/.claude/commands/automation/auto-agent.md +122 -122
  122. package/.claude/commands/automation/self-healing.md +105 -105
  123. package/.claude/commands/automation/session-memory.md +89 -89
  124. package/.claude/commands/automation/smart-agents.md +72 -72
  125. package/.claude/commands/automation/smart-spawn.md +25 -25
  126. package/.claude/commands/automation/workflow-select.md +25 -25
  127. package/.claude/commands/claude-flow-help.md +103 -103
  128. package/.claude/commands/claude-flow-memory.md +107 -107
  129. package/.claude/commands/claude-flow-swarm.md +205 -205
  130. package/.claude/commands/coordination/README.md +9 -9
  131. package/.claude/commands/coordination/agent-spawn.md +25 -25
  132. package/.claude/commands/coordination/init.md +44 -44
  133. package/.claude/commands/coordination/orchestrate.md +43 -43
  134. package/.claude/commands/coordination/spawn.md +45 -45
  135. package/.claude/commands/coordination/swarm-init.md +85 -85
  136. package/.claude/commands/coordination/task-orchestrate.md +25 -25
  137. package/.claude/commands/flow-nexus/app-store.md +123 -123
  138. package/.claude/commands/flow-nexus/challenges.md +119 -119
  139. package/.claude/commands/flow-nexus/login-registration.md +64 -64
  140. package/.claude/commands/flow-nexus/neural-network.md +133 -133
  141. package/.claude/commands/flow-nexus/payments.md +115 -115
  142. package/.claude/commands/flow-nexus/sandbox.md +82 -82
  143. package/.claude/commands/flow-nexus/swarm.md +86 -86
  144. package/.claude/commands/flow-nexus/user-tools.md +151 -151
  145. package/.claude/commands/flow-nexus/workflow.md +114 -114
  146. package/.claude/commands/github/README.md +11 -11
  147. package/.claude/commands/github/code-review-swarm.md +513 -513
  148. package/.claude/commands/github/code-review.md +25 -25
  149. package/.claude/commands/github/github-modes.md +146 -146
  150. package/.claude/commands/github/github-swarm.md +121 -121
  151. package/.claude/commands/github/issue-tracker.md +291 -291
  152. package/.claude/commands/github/issue-triage.md +25 -25
  153. package/.claude/commands/github/multi-repo-swarm.md +518 -518
  154. package/.claude/commands/github/pr-enhance.md +26 -26
  155. package/.claude/commands/github/pr-manager.md +169 -169
  156. package/.claude/commands/github/project-board-sync.md +470 -470
  157. package/.claude/commands/github/release-manager.md +337 -337
  158. package/.claude/commands/github/release-swarm.md +543 -543
  159. package/.claude/commands/github/repo-analyze.md +25 -25
  160. package/.claude/commands/github/repo-architect.md +366 -366
  161. package/.claude/commands/github/swarm-issue.md +481 -481
  162. package/.claude/commands/github/swarm-pr.md +284 -284
  163. package/.claude/commands/github/sync-coordinator.md +300 -300
  164. package/.claude/commands/github/workflow-automation.md +441 -441
  165. package/.claude/commands/hive-mind/README.md +17 -17
  166. package/.claude/commands/hive-mind/hive-mind-consensus.md +8 -8
  167. package/.claude/commands/hive-mind/hive-mind-init.md +18 -18
  168. package/.claude/commands/hive-mind/hive-mind-memory.md +8 -8
  169. package/.claude/commands/hive-mind/hive-mind-metrics.md +8 -8
  170. package/.claude/commands/hive-mind/hive-mind-resume.md +8 -8
  171. package/.claude/commands/hive-mind/hive-mind-sessions.md +8 -8
  172. package/.claude/commands/hive-mind/hive-mind-spawn.md +21 -21
  173. package/.claude/commands/hive-mind/hive-mind-status.md +8 -8
  174. package/.claude/commands/hive-mind/hive-mind-stop.md +8 -8
  175. package/.claude/commands/hive-mind/hive-mind-wizard.md +8 -8
  176. package/.claude/commands/hive-mind/hive-mind.md +27 -27
  177. package/.claude/commands/hooks/README.md +11 -11
  178. package/.claude/commands/hooks/overview.md +57 -57
  179. package/.claude/commands/hooks/post-edit.md +117 -117
  180. package/.claude/commands/hooks/post-task.md +112 -112
  181. package/.claude/commands/hooks/pre-edit.md +113 -113
  182. package/.claude/commands/hooks/pre-task.md +111 -111
  183. package/.claude/commands/hooks/session-end.md +118 -118
  184. package/.claude/commands/hooks/setup.md +102 -102
  185. package/.claude/commands/memory/README.md +9 -9
  186. package/.claude/commands/memory/memory-persist.md +25 -25
  187. package/.claude/commands/memory/memory-search.md +25 -25
  188. package/.claude/commands/memory/memory-usage.md +25 -25
  189. package/.claude/commands/memory/neural.md +47 -47
  190. package/.claude/commands/monitoring/README.md +9 -9
  191. package/.claude/commands/monitoring/agent-metrics.md +25 -25
  192. package/.claude/commands/monitoring/agents.md +44 -44
  193. package/.claude/commands/monitoring/real-time-view.md +25 -25
  194. package/.claude/commands/monitoring/status.md +46 -46
  195. package/.claude/commands/monitoring/swarm-monitor.md +25 -25
  196. package/.claude/commands/optimization/README.md +9 -9
  197. package/.claude/commands/optimization/auto-topology.md +61 -61
  198. package/.claude/commands/optimization/cache-manage.md +25 -25
  199. package/.claude/commands/optimization/parallel-execute.md +25 -25
  200. package/.claude/commands/optimization/parallel-execution.md +49 -49
  201. package/.claude/commands/optimization/topology-optimize.md +25 -25
  202. package/.claude/commands/pair/README.md +260 -260
  203. package/.claude/commands/pair/commands.md +545 -545
  204. package/.claude/commands/pair/config.md +509 -509
  205. package/.claude/commands/pair/examples.md +511 -511
  206. package/.claude/commands/pair/modes.md +347 -347
  207. package/.claude/commands/pair/session.md +406 -406
  208. package/.claude/commands/pair/start.md +208 -208
  209. package/.claude/commands/sparc/analyzer.md +51 -51
  210. package/.claude/commands/sparc/architect.md +53 -53
  211. package/.claude/commands/sparc/ask.md +97 -97
  212. package/.claude/commands/sparc/batch-executor.md +54 -54
  213. package/.claude/commands/sparc/code.md +89 -89
  214. package/.claude/commands/sparc/coder.md +54 -54
  215. package/.claude/commands/sparc/debug.md +83 -83
  216. package/.claude/commands/sparc/debugger.md +54 -54
  217. package/.claude/commands/sparc/designer.md +53 -53
  218. package/.claude/commands/sparc/devops.md +109 -109
  219. package/.claude/commands/sparc/docs-writer.md +80 -80
  220. package/.claude/commands/sparc/documenter.md +54 -54
  221. package/.claude/commands/sparc/innovator.md +54 -54
  222. package/.claude/commands/sparc/integration.md +83 -83
  223. package/.claude/commands/sparc/mcp.md +117 -117
  224. package/.claude/commands/sparc/memory-manager.md +54 -54
  225. package/.claude/commands/sparc/optimizer.md +54 -54
  226. package/.claude/commands/sparc/orchestrator.md +131 -131
  227. package/.claude/commands/sparc/post-deployment-monitoring-mode.md +83 -83
  228. package/.claude/commands/sparc/refinement-optimization-mode.md +83 -83
  229. package/.claude/commands/sparc/researcher.md +54 -54
  230. package/.claude/commands/sparc/reviewer.md +54 -54
  231. package/.claude/commands/sparc/security-review.md +80 -80
  232. package/.claude/commands/sparc/sparc-modes.md +174 -174
  233. package/.claude/commands/sparc/sparc.md +111 -111
  234. package/.claude/commands/sparc/spec-pseudocode.md +80 -80
  235. package/.claude/commands/sparc/supabase-admin.md +348 -348
  236. package/.claude/commands/sparc/swarm-coordinator.md +54 -54
  237. package/.claude/commands/sparc/tdd.md +54 -54
  238. package/.claude/commands/sparc/tester.md +54 -54
  239. package/.claude/commands/sparc/tutorial.md +79 -79
  240. package/.claude/commands/sparc/workflow-manager.md +54 -54
  241. package/.claude/commands/sparc.md +166 -166
  242. package/.claude/commands/stream-chain/pipeline.md +120 -120
  243. package/.claude/commands/stream-chain/run.md +69 -69
  244. package/.claude/commands/swarm/README.md +15 -15
  245. package/.claude/commands/swarm/analysis.md +95 -95
  246. package/.claude/commands/swarm/development.md +96 -96
  247. package/.claude/commands/swarm/examples.md +168 -168
  248. package/.claude/commands/swarm/maintenance.md +102 -102
  249. package/.claude/commands/swarm/optimization.md +117 -117
  250. package/.claude/commands/swarm/research.md +136 -136
  251. package/.claude/commands/swarm/swarm-analysis.md +8 -8
  252. package/.claude/commands/swarm/swarm-background.md +8 -8
  253. package/.claude/commands/swarm/swarm-init.md +19 -19
  254. package/.claude/commands/swarm/swarm-modes.md +8 -8
  255. package/.claude/commands/swarm/swarm-monitor.md +8 -8
  256. package/.claude/commands/swarm/swarm-spawn.md +19 -19
  257. package/.claude/commands/swarm/swarm-status.md +8 -8
  258. package/.claude/commands/swarm/swarm-strategies.md +8 -8
  259. package/.claude/commands/swarm/swarm.md +87 -87
  260. package/.claude/commands/swarm/testing.md +131 -131
  261. package/.claude/commands/training/README.md +9 -9
  262. package/.claude/commands/training/model-update.md +25 -25
  263. package/.claude/commands/training/neural-patterns.md +107 -107
  264. package/.claude/commands/training/neural-train.md +75 -75
  265. package/.claude/commands/training/pattern-learn.md +25 -25
  266. package/.claude/commands/training/specialization.md +62 -62
  267. package/.claude/commands/truth/start.md +142 -142
  268. package/.claude/commands/verify/check.md +49 -49
  269. package/.claude/commands/verify/start.md +127 -127
  270. package/.claude/commands/workflows/README.md +9 -9
  271. package/.claude/commands/workflows/development.md +77 -77
  272. package/.claude/commands/workflows/research.md +62 -62
  273. package/.claude/commands/workflows/workflow-create.md +25 -25
  274. package/.claude/commands/workflows/workflow-execute.md +25 -25
  275. package/.claude/commands/workflows/workflow-export.md +25 -25
  276. package/.claude/helpers/README.md +96 -96
  277. package/.claude/helpers/adr-compliance.sh +186 -186
  278. package/.claude/helpers/auto-commit.sh +178 -178
  279. package/.claude/helpers/auto-memory-hook.mjs +368 -368
  280. package/.claude/helpers/checkpoint-manager.sh +251 -251
  281. package/.claude/helpers/daemon-manager.sh +252 -252
  282. package/.claude/helpers/ddd-tracker.sh +144 -144
  283. package/.claude/helpers/github-safe.js +121 -121
  284. package/.claude/helpers/github-setup.sh +28 -28
  285. package/.claude/helpers/guidance-hook.sh +13 -13
  286. package/.claude/helpers/guidance-hooks.sh +102 -102
  287. package/.claude/helpers/health-monitor.sh +108 -108
  288. package/.claude/helpers/hook-handler.cjs +278 -278
  289. package/.claude/helpers/intelligence.cjs +1031 -1031
  290. package/.claude/helpers/learning-hooks.sh +329 -329
  291. package/.claude/helpers/learning-optimizer.sh +127 -127
  292. package/.claude/helpers/learning-service.mjs +1144 -1144
  293. package/.claude/helpers/memory.js +83 -83
  294. package/.claude/helpers/metrics-db.mjs +488 -488
  295. package/.claude/helpers/pattern-consolidator.sh +86 -86
  296. package/.claude/helpers/perf-worker.sh +160 -160
  297. package/.claude/helpers/post-commit +16 -16
  298. package/.claude/helpers/pre-commit +26 -26
  299. package/.claude/helpers/quick-start.sh +19 -19
  300. package/.claude/helpers/router.js +66 -66
  301. package/.claude/helpers/security-scanner.sh +127 -127
  302. package/.claude/helpers/session.js +135 -135
  303. package/.claude/helpers/setup-mcp.sh +18 -18
  304. package/.claude/helpers/standard-checkpoint-hooks.sh +189 -189
  305. package/.claude/helpers/statusline-hook.sh +21 -21
  306. package/.claude/helpers/statusline.cjs +575 -575
  307. package/.claude/helpers/statusline.js +321 -321
  308. package/.claude/helpers/swarm-comms.sh +353 -353
  309. package/.claude/helpers/swarm-hooks.sh +761 -761
  310. package/.claude/helpers/swarm-monitor.sh +210 -210
  311. package/.claude/helpers/sync-v3-metrics.sh +245 -245
  312. package/.claude/helpers/update-v3-progress.sh +165 -165
  313. package/.claude/helpers/v3-quick-status.sh +57 -57
  314. package/.claude/helpers/v3.sh +110 -110
  315. package/.claude/helpers/validate-v3-config.sh +215 -215
  316. package/.claude/helpers/worker-manager.sh +170 -170
  317. package/.claude/settings.json +182 -182
  318. package/.claude/skills/agentdb-advanced/SKILL.md +550 -550
  319. package/.claude/skills/agentdb-learning/SKILL.md +545 -545
  320. package/.claude/skills/agentdb-memory-patterns/SKILL.md +339 -339
  321. package/.claude/skills/agentdb-optimization/SKILL.md +509 -509
  322. package/.claude/skills/agentdb-vector-search/SKILL.md +339 -339
  323. package/.claude/skills/agentic-jujutsu/SKILL.md +645 -645
  324. package/.claude/skills/aidefence-scan.md +151 -151
  325. package/.claude/skills/aidefence.yaml +297 -297
  326. package/.claude/skills/browser/SKILL.md +204 -204
  327. package/.claude/skills/flow-nexus-neural/SKILL.md +738 -738
  328. package/.claude/skills/flow-nexus-platform/SKILL.md +1157 -1157
  329. package/.claude/skills/flow-nexus-swarm/SKILL.md +610 -610
  330. package/.claude/skills/github-code-review/SKILL.md +1140 -1140
  331. package/.claude/skills/github-multi-repo/SKILL.md +874 -874
  332. package/.claude/skills/github-project-management/SKILL.md +1290 -1277
  333. package/.claude/skills/github-release-management/SKILL.md +1081 -1081
  334. package/.claude/skills/github-workflow-automation/SKILL.md +1065 -1065
  335. package/.claude/skills/hive-mind-advanced/SKILL.md +712 -712
  336. package/.claude/skills/hooks-automation/SKILL.md +1201 -1201
  337. package/.claude/skills/pair-programming/SKILL.md +1202 -1202
  338. package/.claude/skills/performance-analysis/SKILL.md +563 -563
  339. package/.claude/skills/reasoningbank-agentdb/SKILL.md +446 -446
  340. package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -201
  341. package/.claude/skills/secure-review.md +181 -181
  342. package/.claude/skills/skill-builder/SKILL.md +910 -910
  343. package/.claude/skills/sparc-methodology/SKILL.md +1115 -1115
  344. package/.claude/skills/stream-chain/SKILL.md +563 -563
  345. package/.claude/skills/swarm-advanced/SKILL.md +973 -973
  346. package/.claude/skills/swarm-orchestration/SKILL.md +179 -179
  347. package/.claude/skills/v3-cli-modernization/SKILL.md +871 -871
  348. package/.claude/skills/v3-core-implementation/SKILL.md +796 -796
  349. package/.claude/skills/v3-ddd-architecture/SKILL.md +441 -441
  350. package/.claude/skills/v3-integration-deep/SKILL.md +240 -240
  351. package/.claude/skills/v3-mcp-optimization/SKILL.md +776 -776
  352. package/.claude/skills/v3-memory-unification/SKILL.md +173 -173
  353. package/.claude/skills/v3-performance-optimization/SKILL.md +389 -389
  354. package/.claude/skills/v3-security-overhaul/SKILL.md +81 -81
  355. package/.claude/skills/v3-swarm-coordination/SKILL.md +339 -339
  356. package/.claude/skills/verification-quality/SKILL.md +649 -649
  357. package/.claude/skills/worker-benchmarks/skill.md +135 -135
  358. package/.claude/skills/worker-integration/skill.md +154 -154
  359. package/README.md +393 -391
  360. package/bin/cli.js +220 -220
  361. package/bin/mcp-server.js +224 -224
  362. package/bin/preinstall.cjs +2 -2
  363. package/dist/src/commands/agent-wasm.js +2 -2
  364. package/dist/src/commands/agent-wasm.js.map +1 -1
  365. package/dist/src/commands/completions.js +409 -409
  366. package/dist/src/commands/daemon.d.ts.map +1 -1
  367. package/dist/src/commands/daemon.js +19 -3
  368. package/dist/src/commands/daemon.js.map +1 -1
  369. package/dist/src/commands/doctor.d.ts.map +1 -1
  370. package/dist/src/commands/doctor.js +105 -23
  371. package/dist/src/commands/doctor.js.map +1 -1
  372. package/dist/src/commands/embeddings.js +26 -26
  373. package/dist/src/commands/hive-mind.d.ts.map +1 -1
  374. package/dist/src/commands/hive-mind.js +122 -104
  375. package/dist/src/commands/hive-mind.js.map +1 -1
  376. package/dist/src/commands/hooks.d.ts.map +1 -1
  377. package/dist/src/commands/hooks.js +34 -21
  378. package/dist/src/commands/hooks.js.map +1 -1
  379. package/dist/src/commands/memory.d.ts.map +1 -1
  380. package/dist/src/commands/memory.js +68 -0
  381. package/dist/src/commands/memory.js.map +1 -1
  382. package/dist/src/commands/ruvector/backup.js +23 -23
  383. package/dist/src/commands/ruvector/benchmark.js +31 -31
  384. package/dist/src/commands/ruvector/import.js +14 -14
  385. package/dist/src/commands/ruvector/init.js +115 -115
  386. package/dist/src/commands/ruvector/migrate.js +99 -99
  387. package/dist/src/commands/ruvector/optimize.js +51 -51
  388. package/dist/src/commands/ruvector/setup.js +624 -624
  389. package/dist/src/commands/ruvector/status.js +38 -38
  390. package/dist/src/index.d.ts +5 -1
  391. package/dist/src/index.d.ts.map +1 -1
  392. package/dist/src/index.js +59 -18
  393. package/dist/src/index.js.map +1 -1
  394. package/dist/src/init/claudemd-generator.js +226 -226
  395. package/dist/src/init/executor.d.ts.map +1 -1
  396. package/dist/src/init/executor.js +511 -453
  397. package/dist/src/init/executor.js.map +1 -1
  398. package/dist/src/init/helpers-generator.js +645 -645
  399. package/dist/src/init/settings-generator.d.ts.map +1 -1
  400. package/dist/src/init/settings-generator.js +11 -5
  401. package/dist/src/init/settings-generator.js.map +1 -1
  402. package/dist/src/init/statusline-generator.js +858 -858
  403. package/dist/src/init/types.d.ts +7 -0
  404. package/dist/src/init/types.d.ts.map +1 -1
  405. package/dist/src/init/types.js.map +1 -1
  406. package/dist/src/mcp-tools/agentdb-tools.d.ts +3 -0
  407. package/dist/src/mcp-tools/agentdb-tools.d.ts.map +1 -1
  408. package/dist/src/mcp-tools/agentdb-tools.js +108 -0
  409. package/dist/src/mcp-tools/agentdb-tools.js.map +1 -1
  410. package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
  411. package/dist/src/mcp-tools/hooks-tools.js +4 -2
  412. package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
  413. package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
  414. package/dist/src/mcp-tools/memory-tools.js +19 -0
  415. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  416. package/dist/src/mcp-tools/neural-tools.d.ts.map +1 -1
  417. package/dist/src/mcp-tools/neural-tools.js +14 -1
  418. package/dist/src/mcp-tools/neural-tools.js.map +1 -1
  419. package/dist/src/mcp-tools/security-tools.d.ts.map +1 -1
  420. package/dist/src/mcp-tools/security-tools.js +28 -3
  421. package/dist/src/mcp-tools/security-tools.js.map +1 -1
  422. package/dist/src/mcp-tools/swarm-tools.d.ts.map +1 -1
  423. package/dist/src/mcp-tools/swarm-tools.js +72 -3
  424. package/dist/src/mcp-tools/swarm-tools.js.map +1 -1
  425. package/dist/src/mcp-tools/types.d.ts +4 -33
  426. package/dist/src/mcp-tools/types.d.ts.map +1 -1
  427. package/dist/src/mcp-tools/types.js +4 -14
  428. package/dist/src/mcp-tools/types.js.map +1 -1
  429. package/dist/src/mcp-tools/validate-input.d.ts +5 -57
  430. package/dist/src/mcp-tools/validate-input.d.ts.map +1 -1
  431. package/dist/src/mcp-tools/validate-input.js +5 -233
  432. package/dist/src/mcp-tools/validate-input.js.map +1 -1
  433. package/dist/src/mcp-tools/wasm-agent-tools.js +1 -1
  434. package/dist/src/mcp-tools/wasm-agent-tools.js.map +1 -1
  435. package/dist/src/memory/intelligence.d.ts.map +1 -1
  436. package/dist/src/memory/intelligence.js +28 -3
  437. package/dist/src/memory/intelligence.js.map +1 -1
  438. package/dist/src/memory/memory-bridge.d.ts +69 -0
  439. package/dist/src/memory/memory-bridge.d.ts.map +1 -1
  440. package/dist/src/memory/memory-bridge.js +319 -66
  441. package/dist/src/memory/memory-bridge.js.map +1 -1
  442. package/dist/src/memory/memory-initializer.d.ts +5 -0
  443. package/dist/src/memory/memory-initializer.d.ts.map +1 -1
  444. package/dist/src/memory/memory-initializer.js +369 -363
  445. package/dist/src/memory/memory-initializer.js.map +1 -1
  446. package/dist/src/memory/neural-package-bridge.d.ts +48 -0
  447. package/dist/src/memory/neural-package-bridge.d.ts.map +1 -0
  448. package/dist/src/memory/neural-package-bridge.js +87 -0
  449. package/dist/src/memory/neural-package-bridge.js.map +1 -0
  450. package/dist/src/memory/rabitq-index.js +5 -5
  451. package/dist/src/memory/sona-optimizer.d.ts.map +1 -1
  452. package/dist/src/memory/sona-optimizer.js +1 -0
  453. package/dist/src/memory/sona-optimizer.js.map +1 -1
  454. package/dist/src/output.d.ts +6 -130
  455. package/dist/src/output.d.ts.map +1 -1
  456. package/dist/src/output.js +6 -511
  457. package/dist/src/output.js.map +1 -1
  458. package/dist/src/parser.d.ts +9 -0
  459. package/dist/src/parser.d.ts.map +1 -1
  460. package/dist/src/parser.js +11 -0
  461. package/dist/src/parser.js.map +1 -1
  462. package/dist/src/runtime/headless.js +28 -28
  463. package/dist/src/ruvector/agent-wasm.d.ts.map +1 -1
  464. package/dist/src/ruvector/agent-wasm.js +4 -1
  465. package/dist/src/ruvector/agent-wasm.js.map +1 -1
  466. package/dist/src/ruvector/index.d.ts +0 -2
  467. package/dist/src/ruvector/index.d.ts.map +1 -1
  468. package/dist/src/ruvector/index.js +8 -2
  469. package/dist/src/ruvector/index.js.map +1 -1
  470. package/dist/src/ruvector/model-router.d.ts +22 -1
  471. package/dist/src/ruvector/model-router.d.ts.map +1 -1
  472. package/dist/src/ruvector/model-router.js +125 -5
  473. package/dist/src/ruvector/model-router.js.map +1 -1
  474. package/dist/src/services/headless-worker-executor.js +84 -84
  475. package/dist/src/transfer/deploy-seraphine.js +23 -23
  476. package/dist/src/types.d.ts +10 -195
  477. package/dist/src/types.d.ts.map +1 -1
  478. package/dist/src/types.js +10 -35
  479. package/dist/src/types.js.map +1 -1
  480. package/dist/tsconfig.tsbuildinfo +1 -1
  481. package/package.json +6 -4
  482. package/scripts/deploy-ipfs-node.sh +153 -153
  483. package/scripts/postinstall.cjs +153 -153
  484. package/scripts/publish-registry.ts +345 -345
  485. package/scripts/publish.sh +57 -57
  486. package/scripts/setup-ipfs-registry.md +366 -366
  487. package/dist/src/services/event-stream.d.ts.map +0 -1
  488. package/dist/src/services/event-stream.js.map +0 -1
  489. package/dist/src/services/loop-worker-runner.d.ts.map +0 -1
  490. package/dist/src/services/loop-worker-runner.js.map +0 -1
  491. package/dist/src/services/runtime-capabilities.d.ts.map +0 -1
  492. package/dist/src/services/runtime-capabilities.js.map +0 -1
@@ -471,25 +471,25 @@ function getDb(registry) {
471
471
  const db = agentdb.database;
472
472
  // Ensure memory_entries table exists (idempotent)
473
473
  try {
474
- db.exec(`CREATE TABLE IF NOT EXISTS memory_entries (
475
- id TEXT PRIMARY KEY,
476
- key TEXT NOT NULL,
477
- namespace TEXT DEFAULT 'default',
478
- content TEXT NOT NULL,
479
- type TEXT DEFAULT 'semantic',
480
- embedding TEXT,
481
- embedding_model TEXT DEFAULT 'local',
482
- embedding_dimensions INTEGER,
483
- tags TEXT,
484
- metadata TEXT,
485
- owner_id TEXT,
486
- created_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now') * 1000),
487
- updated_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now') * 1000),
488
- expires_at INTEGER,
489
- last_accessed_at INTEGER,
490
- access_count INTEGER DEFAULT 0,
491
- status TEXT DEFAULT 'active',
492
- UNIQUE(namespace, key)
474
+ db.exec(`CREATE TABLE IF NOT EXISTS memory_entries (
475
+ id TEXT PRIMARY KEY,
476
+ key TEXT NOT NULL,
477
+ namespace TEXT DEFAULT 'default',
478
+ content TEXT NOT NULL,
479
+ type TEXT DEFAULT 'semantic',
480
+ embedding TEXT,
481
+ embedding_model TEXT DEFAULT 'local',
482
+ embedding_dimensions INTEGER,
483
+ tags TEXT,
484
+ metadata TEXT,
485
+ owner_id TEXT,
486
+ created_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now') * 1000),
487
+ updated_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now') * 1000),
488
+ expires_at INTEGER,
489
+ last_accessed_at INTEGER,
490
+ access_count INTEGER DEFAULT 0,
491
+ status TEXT DEFAULT 'active',
492
+ UNIQUE(namespace, key)
493
493
  )`);
494
494
  // Ensure indexes
495
495
  db.exec(`CREATE INDEX IF NOT EXISTS idx_bridge_ns ON memory_entries(namespace)`);
@@ -545,15 +545,15 @@ export async function bridgeStoreEntry(options) {
545
545
  }
546
546
  // better-sqlite3 uses synchronous .run() with positional params
547
547
  const insertSql = options.upsert
548
- ? `INSERT OR REPLACE INTO memory_entries (
549
- id, key, namespace, content, type,
550
- embedding, embedding_dimensions, embedding_model,
551
- tags, metadata, created_at, updated_at, expires_at, status
548
+ ? `INSERT OR REPLACE INTO memory_entries (
549
+ id, key, namespace, content, type,
550
+ embedding, embedding_dimensions, embedding_model,
551
+ tags, metadata, created_at, updated_at, expires_at, status
552
552
  ) VALUES (?, ?, ?, ?, 'semantic', ?, ?, ?, ?, ?, ?, ?, ?, 'active')`
553
- : `INSERT INTO memory_entries (
554
- id, key, namespace, content, type,
555
- embedding, embedding_dimensions, embedding_model,
556
- tags, metadata, created_at, updated_at, expires_at, status
553
+ : `INSERT INTO memory_entries (
554
+ id, key, namespace, content, type,
555
+ embedding, embedding_dimensions, embedding_model,
556
+ tags, metadata, created_at, updated_at, expires_at, status
557
557
  ) VALUES (?, ?, ?, ?, 'semantic', ?, ?, ?, ?, ?, ?, ?, ?, 'active')`;
558
558
  const stmt = ctx.db.prepare(insertSql);
559
559
  stmt.run(id, key, namespace, value, embeddingJson, dimensions || null, model, tags.length > 0 ? JSON.stringify(tags) : null, '{}', now, now, ttl ? now + (ttl * 1000) : null);
@@ -612,11 +612,11 @@ export async function bridgeSearchEntries(options) {
612
612
  : '';
613
613
  let rows;
614
614
  try {
615
- const stmt = ctx.db.prepare(`
616
- SELECT id, key, namespace, content, embedding
617
- FROM memory_entries
618
- WHERE status = 'active' ${nsFilter}
619
- LIMIT 1000
615
+ const stmt = ctx.db.prepare(`
616
+ SELECT id, key, namespace, content, embedding
617
+ FROM memory_entries
618
+ WHERE status = 'active' ${nsFilter}
619
+ LIMIT 1000
620
620
  `);
621
621
  rows = effectiveNamespace !== 'all' ? stmt.all(effectiveNamespace) : stmt.all();
622
622
  }
@@ -707,12 +707,12 @@ export async function bridgeListEntries(options) {
707
707
  // List
708
708
  const entries = [];
709
709
  try {
710
- const stmt = ctx.db.prepare(`
711
- SELECT id, key, namespace, content, embedding, access_count, created_at, updated_at
712
- FROM memory_entries
713
- WHERE status = 'active' ${nsFilter}
714
- ORDER BY updated_at DESC
715
- LIMIT ? OFFSET ?
710
+ const stmt = ctx.db.prepare(`
711
+ SELECT id, key, namespace, content, embedding, access_count, created_at, updated_at
712
+ FROM memory_entries
713
+ WHERE status = 'active' ${nsFilter}
714
+ ORDER BY updated_at DESC
715
+ LIMIT ? OFFSET ?
716
716
  `);
717
717
  const rows = stmt.all(...nsParams, limit, offset);
718
718
  for (const row of rows) {
@@ -775,11 +775,11 @@ export async function bridgeGetEntry(options) {
775
775
  }
776
776
  let row;
777
777
  try {
778
- const stmt = ctx.db.prepare(`
779
- SELECT id, key, namespace, content, embedding, access_count, created_at, updated_at, tags
780
- FROM memory_entries
781
- WHERE status = 'active' AND key = ? AND namespace = ?
782
- LIMIT 1
778
+ const stmt = ctx.db.prepare(`
779
+ SELECT id, key, namespace, content, embedding, access_count, created_at, updated_at, tags
780
+ FROM memory_entries
781
+ WHERE status = 'active' AND key = ? AND namespace = ?
782
+ LIMIT 1
783
783
  `);
784
784
  row = stmt.get(key, namespace);
785
785
  }
@@ -843,10 +843,10 @@ export async function bridgeDeleteEntry(options) {
843
843
  // Soft delete using parameterized query
844
844
  let changes = 0;
845
845
  try {
846
- const result = ctx.db.prepare(`
847
- UPDATE memory_entries
848
- SET status = 'deleted', updated_at = ?
849
- WHERE key = ? AND namespace = ? AND status = 'active'
846
+ const result = ctx.db.prepare(`
847
+ UPDATE memory_entries
848
+ SET status = 'deleted', updated_at = ?
849
+ WHERE key = ? AND namespace = ? AND status = 'active'
850
850
  `).run(Date.now(), key, namespace);
851
851
  changes = result?.changes ?? 0;
852
852
  }
@@ -991,11 +991,11 @@ export async function bridgeSearchHNSW(queryEmbedding, options, dbPath) {
991
991
  : '';
992
992
  let rows;
993
993
  try {
994
- const stmt = ctx.db.prepare(`
995
- SELECT id, key, namespace, content, embedding
996
- FROM memory_entries
997
- WHERE status = 'active' AND embedding IS NOT NULL ${nsFilter}
998
- LIMIT 10000
994
+ const stmt = ctx.db.prepare(`
995
+ SELECT id, key, namespace, content, embedding
996
+ FROM memory_entries
997
+ WHERE status = 'active' AND embedding IS NOT NULL ${nsFilter}
998
+ LIMIT 10000
999
999
  `);
1000
1000
  rows = nsFilter
1001
1001
  ? stmt.all(options.namespace)
@@ -1047,12 +1047,12 @@ export async function bridgeAddToHNSW(id, embedding, entry, dbPath) {
1047
1047
  try {
1048
1048
  const now = Date.now();
1049
1049
  const embeddingJson = JSON.stringify(embedding);
1050
- ctx.db.prepare(`
1051
- INSERT OR REPLACE INTO memory_entries (
1052
- id, key, namespace, content, type,
1053
- embedding, embedding_dimensions, embedding_model,
1054
- created_at, updated_at, status
1055
- ) VALUES (?, ?, ?, ?, 'semantic', ?, ?, 'Xenova/all-MiniLM-L6-v2', ?, ?, 'active')
1050
+ ctx.db.prepare(`
1051
+ INSERT OR REPLACE INTO memory_entries (
1052
+ id, key, namespace, content, type,
1053
+ embedding, embedding_dimensions, embedding_model,
1054
+ created_at, updated_at, status
1055
+ ) VALUES (?, ?, ?, ?, 'semantic', ?, ?, 'Xenova/all-MiniLM-L6-v2', ?, ?, 'active')
1056
1056
  `).run(id, entry.key, entry.namespace, entry.content, embeddingJson, embedding.length, now, now);
1057
1057
  return true;
1058
1058
  }
@@ -1340,9 +1340,9 @@ export async function bridgeRecordCausalEdge(options) {
1340
1340
  const ctx = getDb(registry);
1341
1341
  if (ctx) {
1342
1342
  try {
1343
- ctx.db.prepare(`
1344
- INSERT OR REPLACE INTO memory_entries (id, key, namespace, content, type, created_at, updated_at, status)
1345
- VALUES (?, ?, 'causal-edges', ?, 'procedural', ?, ?, 'active')
1343
+ ctx.db.prepare(`
1344
+ INSERT OR REPLACE INTO memory_entries (id, key, namespace, content, type, created_at, updated_at, status)
1345
+ VALUES (?, ?, 'causal-edges', ?, 'procedural', ?, ?, 'active')
1346
1346
  `).run(generateId('edge'), `${options.sourceId}→${options.targetId}`, JSON.stringify(options), Date.now(), Date.now());
1347
1347
  return { success: true, controller: 'bridge-fallback' };
1348
1348
  }
@@ -1354,6 +1354,259 @@ export async function bridgeRecordCausalEdge(options) {
1354
1354
  return null;
1355
1355
  }
1356
1356
  }
1357
+ // ===== #1784: Delete tools for hierarchical + causal-graph =====
1358
+ /**
1359
+ * Delete a hierarchical-memory entry by key (#1784).
1360
+ *
1361
+ * Reality check: agentdb's HierarchicalMemory class doesn't expose a public
1362
+ * delete API today, so the real-backend path falls back to direct SQL on
1363
+ * the underlying SQLite tables (status flip to 'deleted' + AttestationLog
1364
+ * audit). The bridge-fallback path that bridgeHierarchicalStore uses when
1365
+ * HierarchicalMemory isn't loaded writes plain memory_entries rows that
1366
+ * `bridgeDeleteEntry` already handles.
1367
+ *
1368
+ * Returns { controller: 'native-unsupported' } when the real HM is loaded
1369
+ * and the SQL fallback can't reach its private tables — surfacing the
1370
+ * limitation honestly instead of silently returning success.
1371
+ */
1372
+ export async function bridgeDeleteHierarchical(options) {
1373
+ const registry = await getRegistry(options.dbPath);
1374
+ if (!registry)
1375
+ return null;
1376
+ try {
1377
+ const { key, tier } = options;
1378
+ // MutationGuard validation
1379
+ const guardResult = await guardValidate(registry, 'delete', { key, namespace: 'hierarchical' });
1380
+ if (!guardResult.allowed) {
1381
+ return { success: false, deleted: false, key, tier, controller: 'guard', error: `MutationGuard rejected: ${guardResult.reason}` };
1382
+ }
1383
+ const hm = registry.get('hierarchicalMemory');
1384
+ // 1. agentdb@3.0.0-alpha.13+: ReflexionMemory.deleteEpisode propagates through
1385
+ // graph adapter / generic graph backend / vector backend AND purges SQL
1386
+ // episodes + episode_embeddings rows. Single call, durably consistent.
1387
+ // See agentic-flow#150/#151 (closes ruvnet/RuVector#427 the cli-visible way).
1388
+ const reflexion = registry.get('reflexionMemory');
1389
+ if (reflexion && typeof reflexion.deleteEpisode === 'function') {
1390
+ try {
1391
+ const removed = await reflexion.deleteEpisode(key);
1392
+ if (removed) {
1393
+ await logAttestation(registry, 'delete', key, { namespace: 'hierarchical', tier });
1394
+ return { success: true, deleted: true, key, tier, controller: 'reflexionMemory', guarded: true };
1395
+ }
1396
+ }
1397
+ catch { /* fall through */ }
1398
+ }
1399
+ // 2. Try HierarchicalMemory's own delete API if it ever ships one.
1400
+ if (hm && typeof hm.delete === 'function') {
1401
+ try {
1402
+ await hm.delete(key);
1403
+ await logAttestation(registry, 'delete', key, { namespace: 'hierarchical', tier });
1404
+ return { success: true, deleted: true, key, tier, controller: 'hierarchicalMemory', guarded: true };
1405
+ }
1406
+ catch (err) {
1407
+ // Fall through to SQL fallback
1408
+ }
1409
+ }
1410
+ // 3. Stub HierarchicalMemory may expose `remove` or `forget`
1411
+ if (hm && typeof hm.remove === 'function') {
1412
+ try {
1413
+ await hm.remove(key);
1414
+ await logAttestation(registry, 'delete', key, { namespace: 'hierarchical', tier });
1415
+ return { success: true, deleted: true, key, tier, controller: 'hierarchicalMemory-stub', guarded: true };
1416
+ }
1417
+ catch { /* fall through */ }
1418
+ }
1419
+ // 3. Bridge-fallback: HM stored to memory_entries with namespace prefix
1420
+ // (used when the real controller isn't loaded). Soft-delete via SQL.
1421
+ const ctx = getDb(registry);
1422
+ if (ctx) {
1423
+ try {
1424
+ const result = ctx.db.prepare(`
1425
+ UPDATE memory_entries
1426
+ SET status = 'deleted', updated_at = ?
1427
+ WHERE key = ? AND namespace LIKE 'hierarchical%' AND status = 'active'
1428
+ `).run(Date.now(), key);
1429
+ const changes = result?.changes ?? 0;
1430
+ if (changes > 0) {
1431
+ await logAttestation(registry, 'delete', key, { namespace: 'hierarchical', tier });
1432
+ return { success: true, deleted: true, key, tier, controller: 'bridge-fallback', guarded: true };
1433
+ }
1434
+ // Nothing to delete in SQL fallback — and no real-HM delete API.
1435
+ // Surface the situation honestly.
1436
+ return {
1437
+ success: false, deleted: false, key, tier,
1438
+ controller: hm ? 'native-unsupported' : 'not-found',
1439
+ error: hm
1440
+ ? 'HierarchicalMemory has no public delete API; entry remains in native storage'
1441
+ : 'No hierarchical entry found with this key',
1442
+ };
1443
+ }
1444
+ catch (err) {
1445
+ return { success: false, deleted: false, key, tier, controller: 'sql-error', error: err.message };
1446
+ }
1447
+ }
1448
+ return null;
1449
+ }
1450
+ catch {
1451
+ return null;
1452
+ }
1453
+ }
1454
+ /**
1455
+ * Delete a causal edge between two memory entries (#1784).
1456
+ *
1457
+ * The bridge stores fallback edges in namespace='causal-edges' with key
1458
+ * '{sourceId}→{targetId}'. Those CAN be soft-deleted. The native graph-node
1459
+ * backend has no delete API (createNode/createEdge/createHyperedge only),
1460
+ * so an edge that landed in graph-node native storage stays there. We
1461
+ * surface that explicitly via controller: 'native-unsupported'.
1462
+ */
1463
+ export async function bridgeDeleteCausalEdge(options) {
1464
+ const registry = await getRegistry(options.dbPath);
1465
+ if (!registry)
1466
+ return null;
1467
+ try {
1468
+ const { sourceId, targetId, relation } = options;
1469
+ const edgeKey = `${sourceId}→${targetId}`;
1470
+ const guardResult = await guardValidate(registry, 'delete', { key: edgeKey, namespace: 'causal-edges' });
1471
+ if (!guardResult.allowed) {
1472
+ return { success: false, deleted: false, sourceId, targetId, controller: 'guard', error: `MutationGuard rejected: ${guardResult.reason}` };
1473
+ }
1474
+ const causalGraph = registry.get('causalGraph');
1475
+ // 1. agentdb@3.0.0-alpha.13+: GraphDatabaseAdapter.deleteEdgesByEndpoints
1476
+ // handles the (sourceId, targetId, relation?) tuple case directly via
1477
+ // Cypher MATCH … DETACH DELETE. Cypher-injection-safe (label validated
1478
+ // against /^[A-Za-z_][A-Za-z0-9_]*$/ upstream).
1479
+ if (causalGraph && typeof causalGraph.deleteEdgesByEndpoints === 'function') {
1480
+ try {
1481
+ const r = await causalGraph.deleteEdgesByEndpoints(sourceId, targetId, relation);
1482
+ const deletedCount = typeof r === 'object' && r ? (r.deleted ?? 0) : (r ? 1 : 0);
1483
+ if (deletedCount > 0) {
1484
+ await logAttestation(registry, 'delete', edgeKey, { namespace: 'causal-edges', relation, count: deletedCount });
1485
+ return { success: true, deleted: true, sourceId, targetId, controller: 'causalGraph-cypher', guarded: true };
1486
+ }
1487
+ }
1488
+ catch { /* fall through */ }
1489
+ }
1490
+ // 2. Pre-alpha.13 / different controller: try removeEdge() if exposed.
1491
+ if (causalGraph && typeof causalGraph.removeEdge === 'function') {
1492
+ try {
1493
+ await causalGraph.removeEdge(sourceId, targetId, relation);
1494
+ await logAttestation(registry, 'delete', edgeKey, { namespace: 'causal-edges', relation });
1495
+ return { success: true, deleted: true, sourceId, targetId, controller: 'causalGraph', guarded: true };
1496
+ }
1497
+ catch { /* fall through */ }
1498
+ }
1499
+ // 2. Bridge-fallback: soft-delete the memory_entries row.
1500
+ const ctx = getDb(registry);
1501
+ if (ctx) {
1502
+ try {
1503
+ const result = ctx.db.prepare(`
1504
+ UPDATE memory_entries
1505
+ SET status = 'deleted', updated_at = ?
1506
+ WHERE key = ? AND namespace = 'causal-edges' AND status = 'active'
1507
+ `).run(Date.now(), edgeKey);
1508
+ const changes = result?.changes ?? 0;
1509
+ if (changes > 0) {
1510
+ await logAttestation(registry, 'delete', edgeKey, { namespace: 'causal-edges', relation });
1511
+ return { success: true, deleted: true, sourceId, targetId, controller: 'bridge-fallback', guarded: true };
1512
+ }
1513
+ return {
1514
+ success: false, deleted: false, sourceId, targetId,
1515
+ controller: 'native-unsupported',
1516
+ error: 'graph-node native backend has no delete API; edge cannot be removed from native storage. SQL fallback found no matching row.',
1517
+ };
1518
+ }
1519
+ catch (err) {
1520
+ return { success: false, deleted: false, sourceId, targetId, controller: 'sql-error', error: err.message };
1521
+ }
1522
+ }
1523
+ return null;
1524
+ }
1525
+ catch {
1526
+ return null;
1527
+ }
1528
+ }
1529
+ /**
1530
+ * Cascade-delete a causal node and all its incident edges (#1784).
1531
+ *
1532
+ * Same constraint as bridgeDeleteCausalEdge — native graph-node lacks a
1533
+ * delete API. SQL fallback path soft-deletes the node (if stored as a
1534
+ * memory_entries row) and every edge whose key contains the nodeId.
1535
+ */
1536
+ export async function bridgeDeleteCausalNode(options) {
1537
+ const registry = await getRegistry(options.dbPath);
1538
+ if (!registry)
1539
+ return null;
1540
+ try {
1541
+ const { nodeId } = options;
1542
+ const guardResult = await guardValidate(registry, 'delete', { key: nodeId, namespace: 'causal-nodes' });
1543
+ if (!guardResult.allowed) {
1544
+ return { success: false, deletedNode: false, deletedEdges: 0, nodeId, controller: 'guard', error: `MutationGuard rejected: ${guardResult.reason}` };
1545
+ }
1546
+ // 1. agentdb@3.0.0-alpha.13+: GraphDatabaseAdapter.deleteNode(id, {cascade})
1547
+ // counts incident edges before delete so we get accurate audit numbers
1548
+ // regardless of binding stats. Cypher MATCH (n {id}) DETACH DELETE n.
1549
+ const causalGraph = registry.get('causalGraph');
1550
+ if (causalGraph && typeof causalGraph.deleteNode === 'function') {
1551
+ try {
1552
+ const r = await causalGraph.deleteNode(nodeId, { cascade: true });
1553
+ if (r && typeof r === 'object') {
1554
+ const deletedNodeNative = !!r.deletedNode;
1555
+ const deletedEdgesNative = typeof r.deletedEdges === 'number' ? r.deletedEdges : 0;
1556
+ await logAttestation(registry, 'delete', nodeId, { namespace: 'causal-nodes', deletedEdges: deletedEdgesNative });
1557
+ return {
1558
+ success: true,
1559
+ deletedNode: deletedNodeNative,
1560
+ deletedEdges: deletedEdgesNative,
1561
+ nodeId,
1562
+ controller: 'causalGraph-cypher',
1563
+ guarded: true,
1564
+ };
1565
+ }
1566
+ }
1567
+ catch { /* fall through to SQL */ }
1568
+ }
1569
+ // 2. SQL fallback: soft-delete the node row + every causal-edges row whose
1570
+ // key contains nodeId on either side. Used when agentdb pre-alpha.13 OR
1571
+ // when the entry was stored via the bridge's SQL fallback path.
1572
+ const ctx = getDb(registry);
1573
+ if (!ctx)
1574
+ return null;
1575
+ let deletedEdges = 0;
1576
+ let deletedNode = false;
1577
+ try {
1578
+ const edgeResult = ctx.db.prepare(`
1579
+ UPDATE memory_entries
1580
+ SET status = 'deleted', updated_at = ?
1581
+ WHERE namespace = 'causal-edges'
1582
+ AND status = 'active'
1583
+ AND (key LIKE ? OR key LIKE ?)
1584
+ `).run(Date.now(), `${nodeId}→%`, `%→${nodeId}`);
1585
+ deletedEdges = edgeResult?.changes ?? 0;
1586
+ const nodeResult = ctx.db.prepare(`
1587
+ UPDATE memory_entries
1588
+ SET status = 'deleted', updated_at = ?
1589
+ WHERE key = ? AND status = 'active'
1590
+ `).run(Date.now(), nodeId);
1591
+ deletedNode = (nodeResult?.changes ?? 0) > 0;
1592
+ await logAttestation(registry, 'delete', nodeId, { namespace: 'causal-nodes', deletedEdges });
1593
+ }
1594
+ catch (err) {
1595
+ return { success: false, deletedNode: false, deletedEdges: 0, nodeId, controller: 'sql-error', error: err.message };
1596
+ }
1597
+ return {
1598
+ success: true,
1599
+ deletedNode,
1600
+ deletedEdges,
1601
+ nodeId,
1602
+ controller: 'bridge-fallback',
1603
+ guarded: true,
1604
+ };
1605
+ }
1606
+ catch {
1607
+ return null;
1608
+ }
1609
+ }
1357
1610
  // ===== Phase 5: ReflexionMemory session lifecycle =====
1358
1611
  /**
1359
1612
  * Start a session with ReflexionMemory episodic replay.
@@ -1766,11 +2019,11 @@ export async function bridgeGetAllEmbeddings(options) {
1766
2019
  try {
1767
2020
  const dims = options?.dimensions ?? 384;
1768
2021
  const maxRows = options?.limit ?? 50000;
1769
- const rows = ctx.db.prepare(`
1770
- SELECT id, key, namespace, embedding
1771
- FROM memory_entries
1772
- WHERE status = 'active' AND embedding IS NOT NULL
1773
- LIMIT ?
2022
+ const rows = ctx.db.prepare(`
2023
+ SELECT id, key, namespace, embedding
2024
+ FROM memory_entries
2025
+ WHERE status = 'active' AND embedding IS NOT NULL
2026
+ LIMIT ?
1774
2027
  `).all(maxRows);
1775
2028
  const results = [];
1776
2029
  for (const row of rows) {