mindforge-cc 9.0.0 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (641) hide show
  1. package/.mindforge/config.json +1 -1
  2. package/CHANGELOG.md +15 -0
  3. package/LICENSE +1 -1
  4. package/MINDFORGE.md +13 -0
  5. package/README.md +7 -1
  6. package/bin/autonomous/audit-writer.js +90 -0
  7. package/bin/autonomous/auto-runner.js +209 -431
  8. package/bin/autonomous/state-manager.js +116 -0
  9. package/bin/autonomous/task-dispatcher.js +114 -0
  10. package/bin/autonomous/wave-executor.js +169 -0
  11. package/bin/browser/browser-daemon.js +31 -1
  12. package/bin/change-classifier.js +3 -3
  13. package/bin/dashboard/api-router.js +21 -22
  14. package/bin/dashboard/metrics-aggregator.js +44 -3
  15. package/bin/dashboard/server.js +54 -10
  16. package/bin/dashboard/sse-bridge.js +51 -5
  17. package/bin/engine/learning-manager.js +1 -1
  18. package/bin/engine/mesh-syncer.js +26 -22
  19. package/bin/engine/nexus-tracer.js +6 -5
  20. package/bin/engine/orbital-guardian.js +13 -10
  21. package/bin/engine/skill-evolver.js +12 -14
  22. package/bin/engine/temporal-hub.js +25 -1
  23. package/bin/governance/policy-engine.js +5 -5
  24. package/bin/governance/policy-gate-hardened.js +2 -2
  25. package/bin/governance/quantum-crypto.js +10 -2
  26. package/bin/memory/identity-synthesizer.js +9 -11
  27. package/bin/memory/knowledge-store.js +62 -6
  28. package/bin/memory/semantic-hub.js +26 -30
  29. package/bin/memory/vector-hub.js +377 -193
  30. package/bin/migrations/v8-sqlite-migration.js +22 -21
  31. package/bin/migrations/v9-unified-memory.js +1 -1
  32. package/bin/mindforge-cli.js +47 -11
  33. package/bin/models/model-broker.js +2 -0
  34. package/bin/revops/remediation-queue.js +16 -55
  35. package/bin/utils/errors.js +40 -0
  36. package/bin/utils/file-io.js +102 -0
  37. package/bin/utils/index.js +6 -0
  38. package/bin/utils/paths.js +33 -0
  39. package/docs/sdk-reference.md +374 -24
  40. package/docs/troubleshooting.md +4 -4
  41. package/examples/sdk-integration/README.md +24 -0
  42. package/examples/sdk-integration/index.js +24 -0
  43. package/examples/starter-project/MINDFORGE.md +8 -8
  44. package/package.json +25 -14
  45. package/.agent/bin/lib/commands.cjs +0 -959
  46. package/.agent/bin/lib/config.cjs +0 -421
  47. package/.agent/bin/lib/core.cjs +0 -1166
  48. package/.agent/bin/lib/frontmatter.cjs +0 -307
  49. package/.agent/bin/lib/init.cjs +0 -1336
  50. package/.agent/bin/lib/milestone.cjs +0 -252
  51. package/.agent/bin/lib/model-profiles.cjs +0 -68
  52. package/.agent/bin/lib/phase.cjs +0 -888
  53. package/.agent/bin/lib/profile-output.cjs +0 -952
  54. package/.agent/bin/lib/profile-pipeline.cjs +0 -539
  55. package/.agent/bin/lib/roadmap.cjs +0 -329
  56. package/.agent/bin/lib/security.cjs +0 -356
  57. package/.agent/bin/lib/state.cjs +0 -969
  58. package/.agent/bin/lib/template.cjs +0 -222
  59. package/.agent/bin/lib/uat.cjs +0 -189
  60. package/.agent/bin/lib/verify.cjs +0 -851
  61. package/.agent/bin/lib/workstream.cjs +0 -491
  62. package/.agent/bin/mindforge-tools.cjs +0 -897
  63. package/.agent/file-manifest.json +0 -219
  64. package/.agent/forge/help.md +0 -11
  65. package/.agent/forge/init-project.md +0 -36
  66. package/.agent/forge/plan-phase.md +0 -34
  67. package/.agent/mindforge/add-backlog.md +0 -32
  68. package/.agent/mindforge/agent.md +0 -31
  69. package/.agent/mindforge/approve.md +0 -22
  70. package/.agent/mindforge/audit.md +0 -34
  71. package/.agent/mindforge/auto.md +0 -26
  72. package/.agent/mindforge/benchmark.md +0 -37
  73. package/.agent/mindforge/browse.md +0 -30
  74. package/.agent/mindforge/complete-milestone.md +0 -22
  75. package/.agent/mindforge/costs.md +0 -15
  76. package/.agent/mindforge/cross-review.md +0 -21
  77. package/.agent/mindforge/dashboard.md +0 -102
  78. package/.agent/mindforge/debug.md +0 -133
  79. package/.agent/mindforge/discuss-phase.md +0 -142
  80. package/.agent/mindforge/do.md +0 -31
  81. package/.agent/mindforge/execute-phase.md +0 -200
  82. package/.agent/mindforge/health.md +0 -31
  83. package/.agent/mindforge/help.md +0 -33
  84. package/.agent/mindforge/init-org.md +0 -135
  85. package/.agent/mindforge/init-project.md +0 -170
  86. package/.agent/mindforge/install-skill.md +0 -28
  87. package/.agent/mindforge/learn.md +0 -147
  88. package/.agent/mindforge/learning.md +0 -20
  89. package/.agent/mindforge/map-codebase.md +0 -302
  90. package/.agent/mindforge/marketplace.md +0 -124
  91. package/.agent/mindforge/metrics.md +0 -26
  92. package/.agent/mindforge/migrate.md +0 -44
  93. package/.agent/mindforge/milestone.md +0 -16
  94. package/.agent/mindforge/new-runtime.md +0 -23
  95. package/.agent/mindforge/next.md +0 -109
  96. package/.agent/mindforge/note.md +0 -35
  97. package/.agent/mindforge/plan-phase.md +0 -131
  98. package/.agent/mindforge/plant-seed.md +0 -31
  99. package/.agent/mindforge/plugins.md +0 -44
  100. package/.agent/mindforge/pr-review.md +0 -45
  101. package/.agent/mindforge/profile-team.md +0 -27
  102. package/.agent/mindforge/publish-skill.md +0 -23
  103. package/.agent/mindforge/qa.md +0 -20
  104. package/.agent/mindforge/quick.md +0 -139
  105. package/.agent/mindforge/record-learning.md +0 -22
  106. package/.agent/mindforge/release.md +0 -14
  107. package/.agent/mindforge/remember.md +0 -30
  108. package/.agent/mindforge/research.md +0 -16
  109. package/.agent/mindforge/retrospective.md +0 -31
  110. package/.agent/mindforge/review-backlog.md +0 -34
  111. package/.agent/mindforge/review.md +0 -161
  112. package/.agent/mindforge/security-scan.md +0 -242
  113. package/.agent/mindforge/session-report.md +0 -39
  114. package/.agent/mindforge/ship.md +0 -111
  115. package/.agent/mindforge/skills.md +0 -145
  116. package/.agent/mindforge/status.md +0 -113
  117. package/.agent/mindforge/steer.md +0 -17
  118. package/.agent/mindforge/sync-confluence.md +0 -15
  119. package/.agent/mindforge/sync-jira.md +0 -16
  120. package/.agent/mindforge/tokens.md +0 -12
  121. package/.agent/mindforge/ui-phase.md +0 -34
  122. package/.agent/mindforge/ui-review.md +0 -36
  123. package/.agent/mindforge/update.md +0 -46
  124. package/.agent/mindforge/validate-phase.md +0 -31
  125. package/.agent/mindforge/verify-phase.md +0 -66
  126. package/.agent/mindforge/workspace.md +0 -33
  127. package/.agent/mindforge/workstreams.md +0 -35
  128. package/.agent/settings.json +0 -42
  129. package/.agent/skills/mindforge-add-backlog/SKILL.md +0 -72
  130. package/.agent/skills/mindforge-add-phase/SKILL.md +0 -39
  131. package/.agent/skills/mindforge-add-tests/SKILL.md +0 -28
  132. package/.agent/skills/mindforge-add-todo/SKILL.md +0 -42
  133. package/.agent/skills/mindforge-audit-milestone/SKILL.md +0 -29
  134. package/.agent/skills/mindforge-audit-uat/SKILL.md +0 -20
  135. package/.agent/skills/mindforge-autonomous/SKILL.md +0 -33
  136. package/.agent/skills/mindforge-brainstorming/SKILL.md +0 -164
  137. package/.agent/skills/mindforge-brainstorming/scripts/frame-template.html +0 -214
  138. package/.agent/skills/mindforge-brainstorming/scripts/helper.js +0 -88
  139. package/.agent/skills/mindforge-brainstorming/scripts/server.cjs +0 -354
  140. package/.agent/skills/mindforge-brainstorming/scripts/start-server.sh +0 -148
  141. package/.agent/skills/mindforge-brainstorming/scripts/stop-server.sh +0 -56
  142. package/.agent/skills/mindforge-brainstorming/spec-document-reviewer-prompt.md +0 -49
  143. package/.agent/skills/mindforge-brainstorming/visual-companion.md +0 -287
  144. package/.agent/skills/mindforge-check-todos/SKILL.md +0 -40
  145. package/.agent/skills/mindforge-cleanup/SKILL.md +0 -19
  146. package/.agent/skills/mindforge-complete-milestone/SKILL.md +0 -131
  147. package/.agent/skills/mindforge-debug/SKILL.md +0 -163
  148. package/.agent/skills/mindforge-debug_extended/CREATION-LOG.md +0 -119
  149. package/.agent/skills/mindforge-debug_extended/SKILL.md +0 -296
  150. package/.agent/skills/mindforge-debug_extended/condition-based-waiting-example.ts +0 -158
  151. package/.agent/skills/mindforge-debug_extended/condition-based-waiting.md +0 -115
  152. package/.agent/skills/mindforge-debug_extended/defense-in-depth.md +0 -122
  153. package/.agent/skills/mindforge-debug_extended/find-polluter.sh +0 -63
  154. package/.agent/skills/mindforge-debug_extended/root-cause-tracing.md +0 -169
  155. package/.agent/skills/mindforge-debug_extended/test-academic.md +0 -14
  156. package/.agent/skills/mindforge-debug_extended/test-pressure-1.md +0 -58
  157. package/.agent/skills/mindforge-debug_extended/test-pressure-2.md +0 -68
  158. package/.agent/skills/mindforge-debug_extended/test-pressure-3.md +0 -69
  159. package/.agent/skills/mindforge-discuss-phase/SKILL.md +0 -54
  160. package/.agent/skills/mindforge-do/SKILL.md +0 -26
  161. package/.agent/skills/mindforge-execute-phase/SKILL.md +0 -49
  162. package/.agent/skills/mindforge-execute-phase_extended/SKILL.md +0 -70
  163. package/.agent/skills/mindforge-fast/SKILL.md +0 -23
  164. package/.agent/skills/mindforge-forensics/SKILL.md +0 -49
  165. package/.agent/skills/mindforge-health/SKILL.md +0 -17
  166. package/.agent/skills/mindforge-help/SKILL.md +0 -23
  167. package/.agent/skills/mindforge-insert-phase/SKILL.md +0 -28
  168. package/.agent/skills/mindforge-join-discord/SKILL.md +0 -19
  169. package/.agent/skills/mindforge-list-phase-assumptions/SKILL.md +0 -41
  170. package/.agent/skills/mindforge-list-workspaces/SKILL.md +0 -17
  171. package/.agent/skills/mindforge-manager/SKILL.md +0 -32
  172. package/.agent/skills/mindforge-map-codebase/SKILL.md +0 -64
  173. package/.agent/skills/mindforge-milestone-summary/SKILL.md +0 -44
  174. package/.agent/skills/mindforge-neural-orchestrator/SKILL.md +0 -115
  175. package/.agent/skills/mindforge-neural-orchestrator/references/codex-tools.md +0 -100
  176. package/.agent/skills/mindforge-neural-orchestrator/references/gemini-tools.md +0 -33
  177. package/.agent/skills/mindforge-new-milestone/SKILL.md +0 -38
  178. package/.agent/skills/mindforge-new-project/SKILL.md +0 -36
  179. package/.agent/skills/mindforge-new-workspace/SKILL.md +0 -39
  180. package/.agent/skills/mindforge-next/SKILL.md +0 -19
  181. package/.agent/skills/mindforge-note/SKILL.md +0 -29
  182. package/.agent/skills/mindforge-parallel-mesh_extended/SKILL.md +0 -182
  183. package/.agent/skills/mindforge-pause-work/SKILL.md +0 -35
  184. package/.agent/skills/mindforge-plan-milestone-gaps/SKILL.md +0 -28
  185. package/.agent/skills/mindforge-plan-phase/SKILL.md +0 -38
  186. package/.agent/skills/mindforge-plan-phase_extended/SKILL.md +0 -152
  187. package/.agent/skills/mindforge-plan-phase_extended/plan-document-reviewer-prompt.md +0 -49
  188. package/.agent/skills/mindforge-plant-seed/SKILL.md +0 -22
  189. package/.agent/skills/mindforge-pr-branch/SKILL.md +0 -21
  190. package/.agent/skills/mindforge-profile-user/SKILL.md +0 -38
  191. package/.agent/skills/mindforge-progress/SKILL.md +0 -19
  192. package/.agent/skills/mindforge-quick/SKILL.md +0 -38
  193. package/.agent/skills/mindforge-reapply-patches/SKILL.md +0 -124
  194. package/.agent/skills/mindforge-remove-phase/SKILL.md +0 -26
  195. package/.agent/skills/mindforge-remove-workspace/SKILL.md +0 -22
  196. package/.agent/skills/mindforge-research-phase/SKILL.md +0 -186
  197. package/.agent/skills/mindforge-resume-work/SKILL.md +0 -35
  198. package/.agent/skills/mindforge-review/SKILL.md +0 -31
  199. package/.agent/skills/mindforge-review-backlog/SKILL.md +0 -58
  200. package/.agent/skills/mindforge-review-inbound/SKILL.md +0 -213
  201. package/.agent/skills/mindforge-review-request/SKILL.md +0 -105
  202. package/.agent/skills/mindforge-review-request/code-reviewer.md +0 -146
  203. package/.agent/skills/mindforge-session-report/SKILL.md +0 -16
  204. package/.agent/skills/mindforge-set-profile/SKILL.md +0 -9
  205. package/.agent/skills/mindforge-settings/SKILL.md +0 -32
  206. package/.agent/skills/mindforge-ship/SKILL.md +0 -16
  207. package/.agent/skills/mindforge-ship_extended/SKILL.md +0 -200
  208. package/.agent/skills/mindforge-skill-creation/SKILL.md +0 -655
  209. package/.agent/skills/mindforge-skill-creation/anthropic-best-practices.md +0 -1150
  210. package/.agent/skills/mindforge-skill-creation/examples/CLAUDE_MD_TESTING.md +0 -189
  211. package/.agent/skills/mindforge-skill-creation/graphviz-conventions.dot +0 -172
  212. package/.agent/skills/mindforge-skill-creation/persuasion-principles.md +0 -187
  213. package/.agent/skills/mindforge-skill-creation/render-graphs.js +0 -168
  214. package/.agent/skills/mindforge-skill-creation/testing-skills-with-subagents.md +0 -384
  215. package/.agent/skills/mindforge-stats/SKILL.md +0 -16
  216. package/.agent/skills/mindforge-swarm-execution/SKILL.md +0 -277
  217. package/.agent/skills/mindforge-swarm-execution/code-quality-reviewer-prompt.md +0 -26
  218. package/.agent/skills/mindforge-swarm-execution/implementer-prompt.md +0 -113
  219. package/.agent/skills/mindforge-swarm-execution/spec-reviewer-prompt.md +0 -61
  220. package/.agent/skills/mindforge-system-architecture/SKILL.md +0 -136
  221. package/.agent/skills/mindforge-system-architecture/examples.md +0 -120
  222. package/.agent/skills/mindforge-system-architecture/scaling-checklist.md +0 -76
  223. package/.agent/skills/mindforge-tdd/SKILL.md +0 -112
  224. package/.agent/skills/mindforge-tdd/deep-modules.md +0 -21
  225. package/.agent/skills/mindforge-tdd/interface-design.md +0 -22
  226. package/.agent/skills/mindforge-tdd/mocking.md +0 -24
  227. package/.agent/skills/mindforge-tdd/refactoring.md +0 -21
  228. package/.agent/skills/mindforge-tdd/tests.md +0 -28
  229. package/.agent/skills/mindforge-tdd_extended/SKILL.md +0 -371
  230. package/.agent/skills/mindforge-tdd_extended/testing-anti-patterns.md +0 -299
  231. package/.agent/skills/mindforge-thread/SKILL.md +0 -123
  232. package/.agent/skills/mindforge-ui-phase/SKILL.md +0 -24
  233. package/.agent/skills/mindforge-ui-review/SKILL.md +0 -24
  234. package/.agent/skills/mindforge-update/SKILL.md +0 -35
  235. package/.agent/skills/mindforge-validate-phase/SKILL.md +0 -26
  236. package/.agent/skills/mindforge-verify-work/SKILL.md +0 -30
  237. package/.agent/skills/mindforge-verify-work_extended/SKILL.md +0 -139
  238. package/.agent/skills/mindforge-workspace-isolated/SKILL.md +0 -218
  239. package/.agent/skills/mindforge-workstreams/SKILL.md +0 -65
  240. package/.agent/workflows/forge:help.md +0 -10
  241. package/.agent/workflows/forge:init-project.md +0 -35
  242. package/.agent/workflows/forge:plan-phase.md +0 -33
  243. package/.agent/workflows/mindforge-add-phase.md +0 -112
  244. package/.agent/workflows/mindforge-add-tests.md +0 -351
  245. package/.agent/workflows/mindforge-add-todo.md +0 -158
  246. package/.agent/workflows/mindforge-audit-milestone.md +0 -332
  247. package/.agent/workflows/mindforge-audit-uat.md +0 -109
  248. package/.agent/workflows/mindforge-autonomous.md +0 -815
  249. package/.agent/workflows/mindforge-check-todos.md +0 -177
  250. package/.agent/workflows/mindforge-cleanup.md +0 -152
  251. package/.agent/workflows/mindforge-complete-milestone.md +0 -766
  252. package/.agent/workflows/mindforge-diagnose-issues.md +0 -220
  253. package/.agent/workflows/mindforge-discovery-phase.md +0 -289
  254. package/.agent/workflows/mindforge-discuss-phase-assumptions.md +0 -645
  255. package/.agent/workflows/mindforge-discuss-phase.md +0 -1047
  256. package/.agent/workflows/mindforge-do.md +0 -104
  257. package/.agent/workflows/mindforge-execute-phase.md +0 -838
  258. package/.agent/workflows/mindforge-execute-plan.md +0 -509
  259. package/.agent/workflows/mindforge-fast.md +0 -105
  260. package/.agent/workflows/mindforge-forensics.md +0 -265
  261. package/.agent/workflows/mindforge-health.md +0 -181
  262. package/.agent/workflows/mindforge-help.md +0 -606
  263. package/.agent/workflows/mindforge-insert-phase.md +0 -130
  264. package/.agent/workflows/mindforge-list-phase-assumptions.md +0 -178
  265. package/.agent/workflows/mindforge-list-workspaces.md +0 -56
  266. package/.agent/workflows/mindforge-manager.md +0 -360
  267. package/.agent/workflows/mindforge-map-codebase.md +0 -370
  268. package/.agent/workflows/mindforge-milestone-summary.md +0 -223
  269. package/.agent/workflows/mindforge-new-milestone.md +0 -469
  270. package/.agent/workflows/mindforge-new-project.md +0 -1226
  271. package/.agent/workflows/mindforge-new-workspace.md +0 -237
  272. package/.agent/workflows/mindforge-next.md +0 -97
  273. package/.agent/workflows/mindforge-node-repair.md +0 -92
  274. package/.agent/workflows/mindforge-note.md +0 -156
  275. package/.agent/workflows/mindforge-pause-work.md +0 -176
  276. package/.agent/workflows/mindforge-plan-milestone-gaps.md +0 -273
  277. package/.agent/workflows/mindforge-plan-phase.md +0 -877
  278. package/.agent/workflows/mindforge-plant-seed.md +0 -169
  279. package/.agent/workflows/mindforge-pr-branch.md +0 -129
  280. package/.agent/workflows/mindforge-profile-user.md +0 -450
  281. package/.agent/workflows/mindforge-progress.md +0 -507
  282. package/.agent/workflows/mindforge-quick.md +0 -732
  283. package/.agent/workflows/mindforge-remove-phase.md +0 -155
  284. package/.agent/workflows/mindforge-remove-workspace.md +0 -90
  285. package/.agent/workflows/mindforge-research-phase.md +0 -74
  286. package/.agent/workflows/mindforge-resume-project.md +0 -325
  287. package/.agent/workflows/mindforge-review.md +0 -228
  288. package/.agent/workflows/mindforge-session-report.md +0 -146
  289. package/.agent/workflows/mindforge-settings.md +0 -283
  290. package/.agent/workflows/mindforge-ship.md +0 -228
  291. package/.agent/workflows/mindforge-stats.md +0 -60
  292. package/.agent/workflows/mindforge-transition.md +0 -671
  293. package/.agent/workflows/mindforge-ui-phase.md +0 -290
  294. package/.agent/workflows/mindforge-ui-review.md +0 -157
  295. package/.agent/workflows/mindforge-update.md +0 -323
  296. package/.agent/workflows/mindforge-validate-phase.md +0 -167
  297. package/.agent/workflows/mindforge-verify-phase.md +0 -254
  298. package/.agent/workflows/mindforge-verify-work.md +0 -628
  299. package/.agent/workflows/mindforge:add-backlog.md +0 -24
  300. package/.agent/workflows/mindforge:agent.md +0 -25
  301. package/.agent/workflows/mindforge:approve.md +0 -21
  302. package/.agent/workflows/mindforge:architecture.md +0 -40
  303. package/.agent/workflows/mindforge:audit.md +0 -33
  304. package/.agent/workflows/mindforge:auto.md +0 -25
  305. package/.agent/workflows/mindforge:benchmark.md +0 -36
  306. package/.agent/workflows/mindforge:brainstorming.md +0 -16
  307. package/.agent/workflows/mindforge:browse.md +0 -29
  308. package/.agent/workflows/mindforge:complete-milestone.md +0 -21
  309. package/.agent/workflows/mindforge:costs.md +0 -14
  310. package/.agent/workflows/mindforge:cross-review.md +0 -20
  311. package/.agent/workflows/mindforge:dashboard.md +0 -101
  312. package/.agent/workflows/mindforge:debug.md +0 -131
  313. package/.agent/workflows/mindforge:discuss-phase.md +0 -141
  314. package/.agent/workflows/mindforge:do.md +0 -25
  315. package/.agent/workflows/mindforge:execute-phase.md +0 -205
  316. package/.agent/workflows/mindforge:executor.md +0 -18
  317. package/.agent/workflows/mindforge:health.md +0 -24
  318. package/.agent/workflows/mindforge:help.md +0 -26
  319. package/.agent/workflows/mindforge:identity.md +0 -18
  320. package/.agent/workflows/mindforge:init-org.md +0 -134
  321. package/.agent/workflows/mindforge:init-project.md +0 -185
  322. package/.agent/workflows/mindforge:install-skill.md +0 -27
  323. package/.agent/workflows/mindforge:learn.md +0 -146
  324. package/.agent/workflows/mindforge:map-codebase.md +0 -301
  325. package/.agent/workflows/mindforge:marketplace.md +0 -123
  326. package/.agent/workflows/mindforge:memory.md +0 -18
  327. package/.agent/workflows/mindforge:metrics.md +0 -25
  328. package/.agent/workflows/mindforge:migrate.md +0 -43
  329. package/.agent/workflows/mindforge:milestone.md +0 -15
  330. package/.agent/workflows/mindforge:new-runtime.md +0 -22
  331. package/.agent/workflows/mindforge:next.md +0 -108
  332. package/.agent/workflows/mindforge:note.md +0 -27
  333. package/.agent/workflows/mindforge:plan-phase.md +0 -139
  334. package/.agent/workflows/mindforge:planner.md +0 -18
  335. package/.agent/workflows/mindforge:plant-seed.md +0 -24
  336. package/.agent/workflows/mindforge:plugins.md +0 -43
  337. package/.agent/workflows/mindforge:pr-review.md +0 -44
  338. package/.agent/workflows/mindforge:profile-team.md +0 -26
  339. package/.agent/workflows/mindforge:publish-skill.md +0 -22
  340. package/.agent/workflows/mindforge:qa.md +0 -19
  341. package/.agent/workflows/mindforge:quick.md +0 -138
  342. package/.agent/workflows/mindforge:release.md +0 -13
  343. package/.agent/workflows/mindforge:remember.md +0 -29
  344. package/.agent/workflows/mindforge:research.md +0 -15
  345. package/.agent/workflows/mindforge:researcher.md +0 -18
  346. package/.agent/workflows/mindforge:retrospective.md +0 -29
  347. package/.agent/workflows/mindforge:review-backlog.md +0 -26
  348. package/.agent/workflows/mindforge:review.md +0 -160
  349. package/.agent/workflows/mindforge:reviewer.md +0 -18
  350. package/.agent/workflows/mindforge:security-scan.md +0 -236
  351. package/.agent/workflows/mindforge:session-report.md +0 -31
  352. package/.agent/workflows/mindforge:ship.md +0 -108
  353. package/.agent/workflows/mindforge:skills.md +0 -144
  354. package/.agent/workflows/mindforge:soul.md +0 -54
  355. package/.agent/workflows/mindforge:status.md +0 -107
  356. package/.agent/workflows/mindforge:steer.md +0 -16
  357. package/.agent/workflows/mindforge:sync-confluence.md +0 -14
  358. package/.agent/workflows/mindforge:sync-jira.md +0 -15
  359. package/.agent/workflows/mindforge:tdd.md +0 -46
  360. package/.agent/workflows/mindforge:tokens.md +0 -11
  361. package/.agent/workflows/mindforge:tool.md +0 -18
  362. package/.agent/workflows/mindforge:ui-phase.md +0 -27
  363. package/.agent/workflows/mindforge:ui-review.md +0 -28
  364. package/.agent/workflows/mindforge:update.md +0 -45
  365. package/.agent/workflows/mindforge:validate-phase.md +0 -25
  366. package/.agent/workflows/mindforge:verify-phase.md +0 -65
  367. package/.agent/workflows/mindforge:workspace.md +0 -32
  368. package/.agent/workflows/mindforge:workstreams.md +0 -27
  369. package/.agent/workflows/publish-release.md +0 -36
  370. package/.claude/CLAUDE.md +0 -102
  371. package/.claude/commands/forge/help.md +0 -7
  372. package/.claude/commands/forge/init-project.md +0 -32
  373. package/.claude/commands/forge/plan-phase.md +0 -30
  374. package/.claude/commands/mindforge/add-backlog.md +0 -32
  375. package/.claude/commands/mindforge/agent.md +0 -31
  376. package/.claude/commands/mindforge/approve.md +0 -22
  377. package/.claude/commands/mindforge/audit.md +0 -34
  378. package/.claude/commands/mindforge/auto.md +0 -26
  379. package/.claude/commands/mindforge/benchmark.md +0 -37
  380. package/.claude/commands/mindforge/browse.md +0 -30
  381. package/.claude/commands/mindforge/complete-milestone.md +0 -22
  382. package/.claude/commands/mindforge/costs.md +0 -15
  383. package/.claude/commands/mindforge/cross-review.md +0 -21
  384. package/.claude/commands/mindforge/dashboard.md +0 -102
  385. package/.claude/commands/mindforge/debug.md +0 -133
  386. package/.claude/commands/mindforge/discuss-phase.md +0 -142
  387. package/.claude/commands/mindforge/do.md +0 -31
  388. package/.claude/commands/mindforge/execute-phase.md +0 -200
  389. package/.claude/commands/mindforge/health.md +0 -31
  390. package/.claude/commands/mindforge/help.md +0 -33
  391. package/.claude/commands/mindforge/init-org.md +0 -135
  392. package/.claude/commands/mindforge/init-project.md +0 -170
  393. package/.claude/commands/mindforge/install-skill.md +0 -28
  394. package/.claude/commands/mindforge/learn.md +0 -147
  395. package/.claude/commands/mindforge/learning.md +0 -20
  396. package/.claude/commands/mindforge/map-codebase.md +0 -302
  397. package/.claude/commands/mindforge/marketplace.md +0 -124
  398. package/.claude/commands/mindforge/metrics.md +0 -26
  399. package/.claude/commands/mindforge/migrate.md +0 -44
  400. package/.claude/commands/mindforge/milestone.md +0 -16
  401. package/.claude/commands/mindforge/new-runtime.md +0 -23
  402. package/.claude/commands/mindforge/next.md +0 -109
  403. package/.claude/commands/mindforge/note.md +0 -35
  404. package/.claude/commands/mindforge/plan-phase.md +0 -131
  405. package/.claude/commands/mindforge/plant-seed.md +0 -31
  406. package/.claude/commands/mindforge/plugins.md +0 -44
  407. package/.claude/commands/mindforge/pr-review.md +0 -45
  408. package/.claude/commands/mindforge/profile-team.md +0 -27
  409. package/.claude/commands/mindforge/publish-skill.md +0 -23
  410. package/.claude/commands/mindforge/qa.md +0 -20
  411. package/.claude/commands/mindforge/quick.md +0 -139
  412. package/.claude/commands/mindforge/record-learning.md +0 -22
  413. package/.claude/commands/mindforge/release.md +0 -14
  414. package/.claude/commands/mindforge/remember.md +0 -30
  415. package/.claude/commands/mindforge/research.md +0 -16
  416. package/.claude/commands/mindforge/retrospective.md +0 -31
  417. package/.claude/commands/mindforge/review-backlog.md +0 -34
  418. package/.claude/commands/mindforge/review.md +0 -161
  419. package/.claude/commands/mindforge/security-scan.md +0 -242
  420. package/.claude/commands/mindforge/session-report.md +0 -39
  421. package/.claude/commands/mindforge/ship.md +0 -111
  422. package/.claude/commands/mindforge/skills.md +0 -145
  423. package/.claude/commands/mindforge/status.md +0 -113
  424. package/.claude/commands/mindforge/steer.md +0 -17
  425. package/.claude/commands/mindforge/sync-confluence.md +0 -15
  426. package/.claude/commands/mindforge/sync-jira.md +0 -16
  427. package/.claude/commands/mindforge/tokens.md +0 -12
  428. package/.claude/commands/mindforge/ui-phase.md +0 -34
  429. package/.claude/commands/mindforge/ui-review.md +0 -36
  430. package/.claude/commands/mindforge/update.md +0 -46
  431. package/.claude/commands/mindforge/validate-phase.md +0 -31
  432. package/.claude/commands/mindforge/verify-phase.md +0 -66
  433. package/.claude/commands/mindforge/workspace.md +0 -33
  434. package/.claude/commands/mindforge/workstreams.md +0 -35
  435. package/.claude/settings.local.json +0 -16
  436. package/.mindforge/audit/AUDIT-SCHEMA.md +0 -470
  437. package/.mindforge/browser/daemon-protocol.md +0 -24
  438. package/.mindforge/browser/qa-engine.md +0 -16
  439. package/.mindforge/browser/session-manager.md +0 -18
  440. package/.mindforge/browser/visual-verify-spec.md +0 -31
  441. package/.mindforge/celestial.db +0 -0
  442. package/.mindforge/ci/ci-config-schema.md +0 -21
  443. package/.mindforge/ci/ci-mode.md +0 -179
  444. package/.mindforge/ci/github-actions-adapter.md +0 -224
  445. package/.mindforge/ci/gitlab-ci-adapter.md +0 -31
  446. package/.mindforge/ci/jenkins-adapter.md +0 -44
  447. package/.mindforge/dashboard/api-reference.md +0 -122
  448. package/.mindforge/dashboard/dashboard-spec.md +0 -96
  449. package/.mindforge/distribution/marketplace.md +0 -53
  450. package/.mindforge/distribution/registry-client.md +0 -166
  451. package/.mindforge/distribution/registry-schema.md +0 -96
  452. package/.mindforge/distribution/skill-publisher.md +0 -44
  453. package/.mindforge/distribution/skill-validator.md +0 -74
  454. package/.mindforge/governance/GOVERNANCE-CONFIG.md +0 -17
  455. package/.mindforge/governance/approval-workflow.md +0 -37
  456. package/.mindforge/governance/change-classifier.md +0 -63
  457. package/.mindforge/governance/compliance-gates.md +0 -31
  458. package/.mindforge/governance/policies/sovereign-default.json +0 -16
  459. package/.mindforge/integrations/confluence.md +0 -27
  460. package/.mindforge/integrations/connection-manager.md +0 -163
  461. package/.mindforge/integrations/github.md +0 -25
  462. package/.mindforge/integrations/gitlab.md +0 -13
  463. package/.mindforge/integrations/jira.md +0 -102
  464. package/.mindforge/integrations/slack.md +0 -41
  465. package/.mindforge/intelligence/antipattern-detector.md +0 -75
  466. package/.mindforge/intelligence/difficulty-scorer.md +0 -55
  467. package/.mindforge/intelligence/health-engine.md +0 -208
  468. package/.mindforge/intelligence/skill-gap-analyser.md +0 -40
  469. package/.mindforge/intelligence/smart-compaction.md +0 -71
  470. package/.mindforge/memory/MEMORY-SCHEMA.md +0 -155
  471. package/.mindforge/memory/engine/capture-protocol.md +0 -36
  472. package/.mindforge/memory/engine/global-sync-spec.md +0 -42
  473. package/.mindforge/memory/engine/retrieval-spec.md +0 -44
  474. package/.mindforge/memory/sync-manifest.json +0 -6
  475. package/.mindforge/metrics/METRICS-SCHEMA.md +0 -42
  476. package/.mindforge/metrics/quality-tracker.md +0 -32
  477. package/.mindforge/models/model-registry.md +0 -48
  478. package/.mindforge/models/model-router.md +0 -30
  479. package/.mindforge/monorepo/cross-package-planner.md +0 -114
  480. package/.mindforge/monorepo/dependency-graph-builder.md +0 -32
  481. package/.mindforge/monorepo/workspace-detector.md +0 -129
  482. package/.mindforge/org/CONVENTIONS.md +0 -62
  483. package/.mindforge/org/ORG.md +0 -51
  484. package/.mindforge/org/SECURITY.md +0 -50
  485. package/.mindforge/org/TOOLS.md +0 -53
  486. package/.mindforge/org/integrations/INTEGRATIONS-CONFIG.md +0 -58
  487. package/.mindforge/org/skills/MANIFEST.md +0 -15
  488. package/.mindforge/plugins/PLUGINS-MANIFEST.md +0 -23
  489. package/.mindforge/plugins/plugin-loader.md +0 -93
  490. package/.mindforge/plugins/plugin-registry.md +0 -44
  491. package/.mindforge/plugins/plugin-schema.md +0 -68
  492. package/.mindforge/pr-review/ai-reviewer.md +0 -266
  493. package/.mindforge/pr-review/finding-formatter.md +0 -46
  494. package/.mindforge/pr-review/review-prompt-templates.md +0 -44
  495. package/.mindforge/production/compatibility-layer.md +0 -39
  496. package/.mindforge/production/migration-engine.md +0 -52
  497. package/.mindforge/production/production-checklist.md +0 -76
  498. package/.mindforge/production/token-optimiser.md +0 -68
  499. package/.mindforge/skills-builder/auto-capture-protocol.md +0 -88
  500. package/.mindforge/skills-builder/learn-protocol.md +0 -161
  501. package/.mindforge/skills-builder/quality-scoring.md +0 -120
  502. package/.mindforge/team/TEAM-PROFILE.md +0 -42
  503. package/.mindforge/team/multi-handoff.md +0 -23
  504. package/.mindforge/team/profiles/README.md +0 -13
  505. package/.mindforge/team/session-merger.md +0 -18
  506. package/.planning/ARCHITECTURE.md +0 -0
  507. package/.planning/HANDOFF.json +0 -8
  508. package/.planning/PROJECT.md +0 -33
  509. package/.planning/RELEASE-CHECKLIST.md +0 -68
  510. package/.planning/REQUIREMENTS.md +0 -35
  511. package/.planning/ROADMAP.md +0 -12
  512. package/.planning/STATE.md +0 -36
  513. package/.planning/approvals/.gitkeep +0 -1
  514. package/.planning/archive/.gitkeep +0 -1
  515. package/.planning/audit-archive/.gitkeep +0 -1
  516. package/.planning/decisions/.gitkeep +0 -0
  517. package/.planning/jira-sync.json +0 -1
  518. package/.planning/milestones/.gitkeep +0 -1
  519. package/.planning/phases/.gitkeep +0 -0
  520. package/.planning/research/.gitkeep +0 -0
  521. package/.planning/screenshots/.gitkeep +0 -0
  522. package/.planning/slack-threads.json +0 -1
  523. package/docs/CAPABILITIES-MANIFEST.md +0 -64
  524. package/docs/Context/Master-Context.md +0 -731
  525. package/docs/INTELLIGENCE-MESH.md +0 -37
  526. package/docs/MIND-FORGE-REFERENCE-V6.md +0 -96
  527. package/docs/PERSONAS.md +0 -960
  528. package/docs/References/audit-events.md +0 -59
  529. package/docs/References/checkpoints.md +0 -778
  530. package/docs/References/commands.md +0 -107
  531. package/docs/References/config-reference.md +0 -81
  532. package/docs/References/continuation-format.md +0 -249
  533. package/docs/References/decimal-phase-calculation.md +0 -64
  534. package/docs/References/git-integration.md +0 -295
  535. package/docs/References/git-planning-commit.md +0 -38
  536. package/docs/References/model-profile-resolution.md +0 -36
  537. package/docs/References/model-profiles.md +0 -139
  538. package/docs/References/phase-argument-parsing.md +0 -61
  539. package/docs/References/planning-config.md +0 -202
  540. package/docs/References/questioning.md +0 -162
  541. package/docs/References/sdk-api.md +0 -53
  542. package/docs/References/skills-api.md +0 -57
  543. package/docs/References/tdd.md +0 -263
  544. package/docs/References/ui-brand.md +0 -160
  545. package/docs/References/user-profiling.md +0 -681
  546. package/docs/References/verification-patterns.md +0 -612
  547. package/docs/References/workstream-flag.md +0 -58
  548. package/docs/Templates/Agents/CLAUDE-MD.md +0 -122
  549. package/docs/Templates/Agents/COPILOT-INSTRUCTIONS.md +0 -7
  550. package/docs/Templates/Agents/DEBUGGER-PROMPT.md +0 -91
  551. package/docs/Templates/Agents/PLANNER-PROMPT.md +0 -117
  552. package/docs/Templates/Codebase/architecture.md +0 -255
  553. package/docs/Templates/Codebase/concerns.md +0 -310
  554. package/docs/Templates/Codebase/conventions.md +0 -307
  555. package/docs/Templates/Codebase/integrations.md +0 -280
  556. package/docs/Templates/Codebase/stack.md +0 -186
  557. package/docs/Templates/Codebase/structure.md +0 -285
  558. package/docs/Templates/Codebase/testing.md +0 -480
  559. package/docs/Templates/Execution/CONTINUE-HERE.md +0 -78
  560. package/docs/Templates/Execution/DISCUSSION-LOG.md +0 -63
  561. package/docs/Templates/Execution/PHASE-PROMPT.md +0 -610
  562. package/docs/Templates/Execution/STATE.md +0 -176
  563. package/docs/Templates/Execution/SUMMARY-COMPLEX.md +0 -59
  564. package/docs/Templates/Execution/SUMMARY-MINIMAL.md +0 -41
  565. package/docs/Templates/Execution/SUMMARY-STANDARD.md +0 -48
  566. package/docs/Templates/Execution/SUMMARY.md +0 -248
  567. package/docs/Templates/Profile/DEV-PREFERENCES.md +0 -21
  568. package/docs/Templates/Profile/USER-PROFILE.md +0 -146
  569. package/docs/Templates/Profile/USER-SETUP.md +0 -311
  570. package/docs/Templates/Project/AGENTS_LEARNING.md +0 -88
  571. package/docs/Templates/Project/DISCOVERY.md +0 -146
  572. package/docs/Templates/Project/MILESTONE-ARCHIVE.md +0 -123
  573. package/docs/Templates/Project/MILESTONE.md +0 -115
  574. package/docs/Templates/Project/PROJECT.md +0 -206
  575. package/docs/Templates/Project/REQUIREMENTS.md +0 -231
  576. package/docs/Templates/Project/RETROSPECTIVE.md +0 -54
  577. package/docs/Templates/Project/ROADMAP.md +0 -202
  578. package/docs/Templates/Quality/DEBUG.md +0 -164
  579. package/docs/Templates/Quality/UAT.md +0 -280
  580. package/docs/Templates/Quality/UI-SPEC.md +0 -100
  581. package/docs/Templates/Quality/VALIDATION.md +0 -76
  582. package/docs/Templates/Quality/VERIFICATION-REPORT.md +0 -322
  583. package/docs/Templates/Research/ARCHITECTURE.md +0 -204
  584. package/docs/Templates/Research/FEATURES.md +0 -147
  585. package/docs/Templates/Research/PITFALLS.md +0 -200
  586. package/docs/Templates/Research/STACK.md +0 -120
  587. package/docs/Templates/Research/SUMMARY.md +0 -170
  588. package/docs/Templates/System/CONFIG.json +0 -43
  589. package/docs/Templates/System/CONTEXT.md +0 -352
  590. package/docs/adr/ADR-024-browser-localhost-only.md +0 -17
  591. package/docs/adr/ADR-025-visual-verify-failure-treatment.md +0 -19
  592. package/docs/adr/ADR-026-session-persistence-security.md +0 -20
  593. package/docs/adr/ADR-042-ads-protocol.md +0 -30
  594. package/docs/architecture/NEXUS-DASHBOARD.md +0 -35
  595. package/docs/architecture/PAR-ZTS-SURVEY.md +0 -43
  596. package/docs/architecture/README.md +0 -78
  597. package/docs/architecture/V3-CORE.md +0 -52
  598. package/docs/architecture/V4-SWARM-MESH.md +0 -77
  599. package/docs/architecture/V5-ENTERPRISE.md +0 -131
  600. package/docs/architecture/V6-SOVEREIGN.md +0 -43
  601. package/docs/architecture/V8-SRE.md +0 -88
  602. package/docs/architecture/V9-BEDROCK.md +0 -162
  603. package/docs/architecture/adr-039-multi-runtime-support.md +0 -20
  604. package/docs/architecture/adr-040-additive-schema-migration.md +0 -21
  605. package/docs/architecture/adr-041-stable-runtime-interface-contract.md +0 -20
  606. package/docs/architecture/decision-records-index.md +0 -29
  607. package/docs/ci-cd-integration.md +0 -30
  608. package/docs/ci-cd.md +0 -92
  609. package/docs/ci-quickstart.md +0 -78
  610. package/docs/commands-skills/DISCOVERED_SKILLS.md +0 -21
  611. package/docs/contributing/CONTRIBUTING.md +0 -38
  612. package/docs/contributing/plugin-authoring.md +0 -50
  613. package/docs/contributing/skill-authoring.md +0 -41
  614. package/docs/enterprise-setup.md +0 -25
  615. package/docs/feature-dashboard.md +0 -63
  616. package/docs/governance-guide.md +0 -134
  617. package/docs/monorepo-guide.md +0 -26
  618. package/docs/persona-customisation.md +0 -56
  619. package/docs/publishing-guide.md +0 -43
  620. package/docs/quick-verify.md +0 -33
  621. package/docs/registry/AGENTS.md +0 -37
  622. package/docs/registry/COMMANDS.md +0 -87
  623. package/docs/registry/HOOKS.md +0 -38
  624. package/docs/registry/PERSONAS.md +0 -64
  625. package/docs/registry/README.md +0 -27
  626. package/docs/registry/SKILLS.md +0 -142
  627. package/docs/registry/WORKFLOWS.md +0 -72
  628. package/docs/release-checklist-guide.md +0 -37
  629. package/docs/requirements.md +0 -29
  630. package/docs/security/SECURITY.md +0 -55
  631. package/docs/security/ZTAI-OVERVIEW.md +0 -37
  632. package/docs/security/penetration-test-results.md +0 -31
  633. package/docs/security/threat-model.md +0 -142
  634. package/docs/skills-authoring-guide.md +0 -176
  635. package/docs/skills-publishing-guide.md +0 -22
  636. package/docs/team-setup-guide.md +0 -21
  637. package/docs/testing-current-version.md +0 -130
  638. package/docs/tutorial.md +0 -162
  639. package/docs/upgrade.md +0 -58
  640. package/docs/usp-features.md +0 -102
  641. package/docs/workflow-atlas.md +0 -57
@@ -1,26 +1,28 @@
1
- const Database = require('better-sqlite3');
2
- const { Kysely, SqliteDialect, sql } = require('kysely');
1
+ /**
2
+ * MindForge v9 VectorHub WASM SQLite Persistence Layer
3
+ * Uses sql.js (Emscripten-compiled SQLite) for zero native dependency operation.
4
+ * No node-gyp, no C++ compiler required — works everywhere Node runs.
5
+ */
6
+ 'use strict';
7
+
3
8
  const crypto = require('crypto');
4
9
  const path = require('path');
5
10
  const fs = require('fs');
6
11
 
7
12
  /**
8
- * MindForge v9 VectorHub
9
- * Unified Persistence Layer — traces, remediations, skills, knowledge, and graph edges.
13
+ * VectorHub Unified Persistence Layer
14
+ * Traces, remediations, skills, knowledge, and graph edges.
15
+ *
16
+ * This version uses sql.js (WASM-based SQLite) instead of better-sqlite3.
17
+ * Initialization is async — callers must await init() before use.
10
18
  */
11
19
  class VectorHub {
12
20
  constructor(dbPath = null) {
13
21
  this.dbPath = dbPath || path.join(process.cwd(), '.mindforge', 'celestial.db');
14
- this._ensureDir();
15
-
16
- const nativeDb = new Database(this.dbPath);
17
- this.db = new Kysely({
18
- dialect: new SqliteDialect({
19
- database: nativeDb,
20
- }),
21
- });
22
-
22
+ this._db = null;
23
23
  this.initialized = false;
24
+ this._writeCount = 0;
25
+ this._batchSize = 10;
24
26
  }
25
27
 
26
28
  _ensureDir() {
@@ -31,133 +33,235 @@ class VectorHub {
31
33
  }
32
34
 
33
35
  /**
34
- * Initialize tables and FTS5 search.
36
+ * Initialize the WASM SQLite database and create tables + indexes.
35
37
  */
36
38
  async init() {
37
39
  if (this.initialized) return;
38
40
 
39
- // Traces Table
40
- await this.db.schema
41
- .createTable('traces')
42
- .ifNotExists()
43
- .addColumn('id', 'text', (col) => col.primaryKey())
44
- .addColumn('trace_id', 'text', (col) => col.notNull())
45
- .addColumn('span_id', 'text')
46
- .addColumn('event', 'text', (col) => col.notNull())
47
- .addColumn('timestamp', 'text', (col) => col.notNull())
48
- .addColumn('agent', 'text')
49
- .addColumn('content', 'text')
50
- .addColumn('metadata', 'text') // JSON blob
51
- .addColumn('drift_score', 'real')
52
- .addColumn('mesh_node_id', 'text') // v8 Pillar XVI
53
- .execute();
54
-
55
- // Remediations Table
56
- await this.db.schema
57
- .createTable('remediations')
58
- .ifNotExists()
59
- .addColumn('id', 'text', (col) => col.primaryKey())
60
- .addColumn('trace_id', 'text', (col) => col.notNull())
61
- .addColumn('strategy', 'text', (col) => col.notNull())
62
- .addColumn('status', 'text', (col) => col.notNull())
63
- .addColumn('timestamp', 'text', (col) => col.notNull())
64
- .addColumn('outcome', 'text')
65
- .execute();
66
-
67
- // Skills Table
68
- await this.db.schema
69
- .createTable('skills')
70
- .ifNotExists()
71
- .addColumn('skill_id', 'text', (col) => col.primaryKey())
72
- .addColumn('name', 'text', (col) => col.notNull())
73
- .addColumn('description', 'text')
74
- .addColumn('path', 'text')
75
- .addColumn('success_rate', 'real', (col) => col.defaultTo(0.0))
76
- .addColumn('last_verified', 'text')
77
- .execute();
78
-
79
- // Attestations Table (v8 Pillar XVIII)
80
- await this.db.schema
81
- .createTable('attestations')
82
- .ifNotExists()
83
- .addColumn('id', 'text', (col) => col.primaryKey())
84
- .addColumn('request_id', 'text', (col) => col.notNull())
85
- .addColumn('status', 'text', (col) => col.notNull()) // APPROVED / REJECTED
86
- .addColumn('attestation_payload', 'text') // Signed blob from hardware enclave
87
- .addColumn('timestamp', 'text', (col) => col.notNull())
88
- .execute();
89
-
90
- // Config Table
91
- await this.db.schema
92
- .createTable('mesh_config')
93
- .ifNotExists()
94
- .addColumn('key', 'text', (col) => col.primaryKey())
95
- .addColumn('value', 'text')
96
- .execute();
97
-
98
- // v9 Pillar XXVI: Unified Knowledge table (migrated from JSONL stores)
99
- await this.db.schema
100
- .createTable('knowledge')
101
- .ifNotExists()
102
- .addColumn('id', 'text', (col) => col.primaryKey())
103
- .addColumn('type', 'text', (col) => col.notNull())
104
- .addColumn('content', 'text', (col) => col.notNull())
105
- .addColumn('tags', 'text')
106
- .addColumn('source', 'text')
107
- .addColumn('confidence', 'real', (col) => col.defaultTo(1.0))
108
- .addColumn('created_at', 'text', (col) => col.notNull())
109
- .addColumn('updated_at', 'text')
110
- .addColumn('metadata', 'text')
111
- .execute();
112
-
113
- // v9 Pillar XXVI: Graph edges table (migrated from knowledge-graph JSONL)
114
- await this.db.schema
115
- .createTable('graph_edges')
116
- .ifNotExists()
117
- .addColumn('id', 'text', (col) => col.primaryKey())
118
- .addColumn('source_id', 'text', (col) => col.notNull())
119
- .addColumn('target_id', 'text', (col) => col.notNull())
120
- .addColumn('edge_type', 'text', (col) => col.notNull())
121
- .addColumn('weight', 'real', (col) => col.defaultTo(1.0))
122
- .addColumn('created_at', 'text', (col) => col.notNull())
123
- .execute();
124
-
125
- // v9 Pillar XXVII: Migration tracking table
126
- await this.db.schema
127
- .createTable('_migrations')
128
- .ifNotExists()
129
- .addColumn('id', 'integer', (col) => col.primaryKey())
130
- .addColumn('name', 'text', (col) => col.notNull())
131
- .addColumn('applied_at', 'text', (col) => col.notNull())
132
- .execute();
133
-
134
- // Enable Full-Text Search (FTS5) for traces and knowledge
135
- await sql`
41
+ const initSqlJs = require('sql.js');
42
+ const SQL = await initSqlJs();
43
+
44
+ this._ensureDir();
45
+
46
+ // Load existing database from disk if present
47
+ if (fs.existsSync(this.dbPath)) {
48
+ const buffer = fs.readFileSync(this.dbPath);
49
+ this._db = new SQL.Database(buffer);
50
+ } else {
51
+ this._db = new SQL.Database();
52
+ }
53
+
54
+ // Pragmas for performance and reliability
55
+ this._db.run('PRAGMA journal_mode=WAL;');
56
+ this._db.run('PRAGMA synchronous=NORMAL;');
57
+ this._db.run('PRAGMA busy_timeout=5000;');
58
+
59
+ // ── Table Creation ──────────────────────────────────────────────────────
60
+
61
+ this._db.run(`
62
+ CREATE TABLE IF NOT EXISTS traces (
63
+ id TEXT PRIMARY KEY,
64
+ trace_id TEXT NOT NULL,
65
+ span_id TEXT,
66
+ event TEXT NOT NULL,
67
+ timestamp TEXT NOT NULL,
68
+ agent TEXT,
69
+ content TEXT,
70
+ metadata TEXT,
71
+ drift_score REAL,
72
+ mesh_node_id TEXT
73
+ )
74
+ `);
75
+
76
+ this._db.run(`
77
+ CREATE TABLE IF NOT EXISTS remediations (
78
+ id TEXT PRIMARY KEY,
79
+ trace_id TEXT NOT NULL,
80
+ strategy TEXT NOT NULL,
81
+ status TEXT NOT NULL,
82
+ timestamp TEXT NOT NULL,
83
+ outcome TEXT
84
+ )
85
+ `);
86
+
87
+ this._db.run(`
88
+ CREATE TABLE IF NOT EXISTS skills (
89
+ skill_id TEXT PRIMARY KEY,
90
+ name TEXT NOT NULL,
91
+ description TEXT,
92
+ path TEXT,
93
+ success_rate REAL DEFAULT 0.0,
94
+ last_verified TEXT
95
+ )
96
+ `);
97
+
98
+ this._db.run(`
99
+ CREATE TABLE IF NOT EXISTS attestations (
100
+ id TEXT PRIMARY KEY,
101
+ request_id TEXT NOT NULL,
102
+ status TEXT NOT NULL,
103
+ attestation_payload TEXT,
104
+ timestamp TEXT NOT NULL
105
+ )
106
+ `);
107
+
108
+ this._db.run(`
109
+ CREATE TABLE IF NOT EXISTS mesh_config (
110
+ key TEXT PRIMARY KEY,
111
+ value TEXT
112
+ )
113
+ `);
114
+
115
+ this._db.run(`
116
+ CREATE TABLE IF NOT EXISTS knowledge (
117
+ id TEXT PRIMARY KEY,
118
+ type TEXT NOT NULL,
119
+ content TEXT NOT NULL,
120
+ tags TEXT,
121
+ source TEXT,
122
+ confidence REAL DEFAULT 1.0,
123
+ created_at TEXT NOT NULL,
124
+ updated_at TEXT,
125
+ metadata TEXT
126
+ )
127
+ `);
128
+
129
+ this._db.run(`
130
+ CREATE TABLE IF NOT EXISTS graph_edges (
131
+ id TEXT PRIMARY KEY,
132
+ source_id TEXT NOT NULL,
133
+ target_id TEXT NOT NULL,
134
+ edge_type TEXT NOT NULL,
135
+ weight REAL DEFAULT 1.0,
136
+ created_at TEXT NOT NULL
137
+ )
138
+ `);
139
+
140
+ this._db.run(`
141
+ CREATE TABLE IF NOT EXISTS _migrations (
142
+ id INTEGER PRIMARY KEY,
143
+ name TEXT NOT NULL,
144
+ applied_at TEXT NOT NULL
145
+ )
146
+ `);
147
+
148
+ // ── FTS4 Virtual Tables (FTS4 is available in all sql.js builds) ────────
149
+
150
+ this._db.run(`
136
151
  CREATE VIRTUAL TABLE IF NOT EXISTS traces_search
137
- USING fts5(trace_id, content, agent, tokenize='porter');
138
- `.execute(this.db);
152
+ USING fts4(trace_id, content, agent, tokenize=porter)
153
+ `);
139
154
 
140
- await sql`
155
+ this._db.run(`
141
156
  CREATE VIRTUAL TABLE IF NOT EXISTS knowledge_search
142
- USING fts5(id, content, tags, tokenize='porter');
143
- `.execute(this.db);
157
+ USING fts4(id, content, tags, tokenize=porter)
158
+ `);
159
+
160
+ // ── Indexes ─────────────────────────────────────────────────────────────
144
161
 
145
- // v9: Secondary indexes for common query patterns
146
- await sql`CREATE INDEX IF NOT EXISTS idx_traces_trace_id ON traces(trace_id)`.execute(this.db);
147
- await sql`CREATE INDEX IF NOT EXISTS idx_traces_timestamp ON traces(timestamp)`.execute(this.db);
148
- await sql`CREATE INDEX IF NOT EXISTS idx_knowledge_type ON knowledge(type)`.execute(this.db);
149
- await sql`CREATE INDEX IF NOT EXISTS idx_graph_edges_source ON graph_edges(source_id)`.execute(this.db);
150
- await sql`CREATE INDEX IF NOT EXISTS idx_graph_edges_target ON graph_edges(target_id)`.execute(this.db);
151
- await sql`CREATE UNIQUE INDEX IF NOT EXISTS idx_migrations_name ON _migrations(name)`.execute(this.db);
162
+ this._db.run('CREATE INDEX IF NOT EXISTS idx_traces_trace_id ON traces(trace_id)');
163
+ this._db.run('CREATE INDEX IF NOT EXISTS idx_traces_timestamp ON traces(timestamp)');
164
+ this._db.run('CREATE INDEX IF NOT EXISTS idx_knowledge_type ON knowledge(type)');
165
+ this._db.run('CREATE INDEX IF NOT EXISTS idx_graph_edges_source ON graph_edges(source_id)');
166
+ this._db.run('CREATE INDEX IF NOT EXISTS idx_graph_edges_target ON graph_edges(target_id)');
167
+ this._db.run('CREATE UNIQUE INDEX IF NOT EXISTS idx_migrations_name ON _migrations(name)');
152
168
 
153
169
  this.initialized = true;
154
- console.log(`[VectorHub] Initialized SQLite persistence at ${this.dbPath}`);
170
+ this.save();
171
+ console.log(`[VectorHub] Initialized WASM SQLite persistence at ${this.dbPath}`);
155
172
  }
156
173
 
174
+ /**
175
+ * Persist the in-memory database to disk.
176
+ */
177
+ save() {
178
+ if (!this._db) return;
179
+ try {
180
+ this._ensureDir();
181
+ const data = this._db.export();
182
+ const buffer = Buffer.from(data);
183
+ fs.writeFileSync(this.dbPath, buffer);
184
+ } catch (err) {
185
+ console.warn(`[VectorHub] Failed to save database: ${err.message}`);
186
+ }
187
+ }
188
+
189
+ /**
190
+ * Auto-save after N writes.
191
+ */
192
+ _autosave() {
193
+ this._writeCount++;
194
+ if (this._writeCount >= this._batchSize) {
195
+ this.save();
196
+ this._writeCount = 0;
197
+ }
198
+ }
199
+
200
+ /**
201
+ * Close the database and save final state to disk.
202
+ */
157
203
  async close() {
158
- await this.db.destroy();
204
+ if (this._db) {
205
+ this.save();
206
+ this._db.close();
207
+ this._db = null;
208
+ this.initialized = false;
209
+ }
210
+ }
211
+
212
+ // ── Raw Query Interface ─────────────────────────────────────────────────────
213
+ // These methods replace direct Kysely .db access for consumers.
214
+
215
+ /**
216
+ * Run a SQL query that returns rows (SELECT).
217
+ * @param {string} sqlText - SQL query
218
+ * @param {Array} params - Bound parameters
219
+ * @returns {Array<Object>} Array of row objects
220
+ */
221
+ query(sqlText, params = []) {
222
+ const stmt = this._db.prepare(sqlText);
223
+ stmt.bind(params);
224
+ const results = [];
225
+ while (stmt.step()) {
226
+ results.push(stmt.getAsObject());
227
+ }
228
+ stmt.free();
229
+ return results;
159
230
  }
160
231
 
232
+ /**
233
+ * Run a SQL statement that does not return rows (INSERT, UPDATE, DELETE).
234
+ * @param {string} sqlText - SQL statement
235
+ * @param {Array} params - Bound parameters
236
+ */
237
+ run(sqlText, params = []) {
238
+ this._db.run(sqlText, params);
239
+ this._autosave();
240
+ }
241
+
242
+ /**
243
+ * Run multiple statements inside a transaction.
244
+ * @param {Function} fn - Function that receives { query, run } helpers
245
+ */
246
+ async transaction(fn) {
247
+ this._db.run('BEGIN TRANSACTION');
248
+ try {
249
+ await fn({
250
+ query: (sqlText, params) => this.query(sqlText, params),
251
+ run: (sqlText, params) => {
252
+ this._db.run(sqlText, params);
253
+ },
254
+ });
255
+ this._db.run('COMMIT');
256
+ this._autosave();
257
+ } catch (err) {
258
+ this._db.run('ROLLBACK');
259
+ throw err;
260
+ }
261
+ }
262
+
263
+ // ── Trace API ─────────────────────────────────────────────────────────────
264
+
161
265
  /**
162
266
  * Record a trace event.
163
267
  */
@@ -172,44 +276,99 @@ class VectorHub {
172
276
  content: data.content || null,
173
277
  metadata: data.metadata ? JSON.stringify(data.metadata) : null,
174
278
  drift_score: data.drift_score || 0,
175
- mesh_node_id: data.mesh_node_id || null
279
+ mesh_node_id: data.mesh_node_id || null,
176
280
  };
177
281
 
178
- await this.db.insertInto('traces')
179
- .values(entry)
180
- .onConflict(oc => oc.column('id').doUpdateSet({
181
- metadata: entry.metadata,
182
- mesh_node_id: entry.mesh_node_id,
183
- drift_score: entry.drift_score
184
- }))
185
- .execute();
186
-
187
- // Update FTS5 index if content exists
282
+ this.run(
283
+ `INSERT OR REPLACE INTO traces (id, trace_id, span_id, event, timestamp, agent, content, metadata, drift_score, mesh_node_id)
284
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
285
+ [entry.id, entry.trace_id, entry.span_id, entry.event, entry.timestamp, entry.agent, entry.content, entry.metadata, entry.drift_score, entry.mesh_node_id]
286
+ );
287
+
288
+ // Update FTS index if content exists
188
289
  if (entry.content) {
189
- await sql`DELETE FROM traces_search WHERE trace_id = ${entry.trace_id}`.execute(this.db);
190
- await sql`INSERT INTO traces_search (trace_id, content, agent) VALUES (${entry.trace_id}, ${entry.content}, ${entry.agent})`
191
- .execute(this.db);
290
+ this._db.run('DELETE FROM traces_search WHERE trace_id = ?', [entry.trace_id]);
291
+ this._db.run(
292
+ 'INSERT INTO traces_search (trace_id, content, agent) VALUES (?, ?, ?)',
293
+ [entry.trace_id, entry.content, entry.agent]
294
+ );
192
295
  }
193
-
296
+
194
297
  return entry.id;
195
298
  }
196
299
 
197
300
  /**
198
- * Semantic search for previous traces.
301
+ * Query traces with optional filters.
302
+ * @param {Object} opts - { trace_id, event, since, limit }
303
+ */
304
+ async queryTraces(opts = {}) {
305
+ let sqlText = 'SELECT * FROM traces WHERE 1=1';
306
+ const params = [];
307
+
308
+ if (opts.trace_id) {
309
+ sqlText += ' AND trace_id = ?';
310
+ params.push(opts.trace_id);
311
+ }
312
+ if (opts.event) {
313
+ sqlText += ' AND event = ?';
314
+ params.push(opts.event);
315
+ }
316
+ if (opts.since) {
317
+ sqlText += ' AND timestamp > ?';
318
+ params.push(opts.since);
319
+ }
320
+
321
+ sqlText += ' ORDER BY timestamp DESC LIMIT ?';
322
+ params.push(Math.min(Math.max(parseInt(opts.limit) || 100, 1), 1000));
323
+
324
+ return this.query(sqlText, params);
325
+ }
326
+
327
+ /**
328
+ * Full-text search for traces.
199
329
  */
200
330
  async searchTraces(rawQuery) {
201
- const query = '"' + rawQuery.replace(/"/g, '""') + '"';
202
- const results = await sql`
203
- SELECT t.*, ts.rank
204
- FROM traces t
205
- JOIN traces_search ts ON t.trace_id = ts.trace_id
206
- WHERE traces_search MATCH ${query}
207
- ORDER BY ts.rank
208
- LIMIT 10
209
- `.execute(this.db);
210
- return results.rows;
331
+ const escaped = rawQuery.replace(/"/g, '""');
332
+ const ftsQuery = `"${escaped}"`;
333
+ return this.query(
334
+ `SELECT t.*
335
+ FROM traces t
336
+ JOIN traces_search ts ON t.trace_id = ts.trace_id
337
+ WHERE traces_search MATCH ?
338
+ LIMIT 10`,
339
+ [ftsQuery]
340
+ );
341
+ }
342
+
343
+ /**
344
+ * Full-text search for traces (alias for backward compat).
345
+ */
346
+ async searchFTS(rawQuery) {
347
+ return this.searchTraces(rawQuery);
211
348
  }
212
- // ── v9 Pillar XXVI: Unified Knowledge API ─────────────────────────────────
349
+
350
+ /**
351
+ * Get database statistics.
352
+ */
353
+ async getStats() {
354
+ const traceCount = this.query('SELECT COUNT(*) as count FROM traces')[0]?.count || 0;
355
+ const knowledgeCount = this.query('SELECT COUNT(*) as count FROM knowledge')[0]?.count || 0;
356
+ const edgeCount = this.query('SELECT COUNT(*) as count FROM graph_edges')[0]?.count || 0;
357
+ const skillCount = this.query('SELECT COUNT(*) as count FROM skills')[0]?.count || 0;
358
+ const remediationCount = this.query('SELECT COUNT(*) as count FROM remediations')[0]?.count || 0;
359
+
360
+ return {
361
+ traces: traceCount,
362
+ knowledge: knowledgeCount,
363
+ edges: edgeCount,
364
+ skills: skillCount,
365
+ remediations: remediationCount,
366
+ dbPath: this.dbPath,
367
+ dbSizeBytes: fs.existsSync(this.dbPath) ? fs.statSync(this.dbPath).size : 0,
368
+ };
369
+ }
370
+
371
+ // ── Knowledge API (v9 Pillar XXVI) ────────────────────────────────────────
213
372
 
214
373
  async saveKnowledge(entry) {
215
374
  const now = new Date().toISOString();
@@ -225,35 +384,34 @@ class VectorHub {
225
384
  metadata: entry.metadata ? JSON.stringify(entry.metadata) : null,
226
385
  };
227
386
 
228
- await this.db.insertInto('knowledge')
229
- .values(record)
230
- .onConflict(oc => oc.column('id').doUpdateSet({
231
- content: record.content,
232
- tags: record.tags,
233
- confidence: record.confidence,
234
- updated_at: record.updated_at,
235
- metadata: record.metadata,
236
- }))
237
- .execute();
238
-
239
- await sql`DELETE FROM knowledge_search WHERE id = ${record.id}`.execute(this.db);
240
- await sql`INSERT INTO knowledge_search (id, content, tags) VALUES (${record.id}, ${record.content}, ${record.tags})`
241
- .execute(this.db);
387
+ this.run(
388
+ `INSERT OR REPLACE INTO knowledge (id, type, content, tags, source, confidence, created_at, updated_at, metadata)
389
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,
390
+ [record.id, record.type, record.content, record.tags, record.source, record.confidence, record.created_at, record.updated_at, record.metadata]
391
+ );
392
+
393
+ // Update FTS index
394
+ this._db.run('DELETE FROM knowledge_search WHERE id = ?', [record.id]);
395
+ this._db.run(
396
+ 'INSERT INTO knowledge_search (id, content, tags) VALUES (?, ?, ?)',
397
+ [record.id, record.content, record.tags]
398
+ );
399
+ this._autosave();
242
400
 
243
401
  return record.id;
244
402
  }
245
403
 
246
404
  async searchKnowledge(rawQuery, limit = 10) {
247
- const query = '"' + rawQuery.replace(/"/g, '""') + '"';
248
- const results = await sql`
249
- SELECT k.*, ks.rank
250
- FROM knowledge k
251
- JOIN knowledge_search ks ON k.id = ks.id
252
- WHERE knowledge_search MATCH ${query}
253
- ORDER BY ks.rank
254
- LIMIT ${limit}
255
- `.execute(this.db);
256
- return results.rows;
405
+ const escaped = rawQuery.replace(/"/g, '""');
406
+ const ftsQuery = `"${escaped}"`;
407
+ return this.query(
408
+ `SELECT k.*
409
+ FROM knowledge k
410
+ JOIN knowledge_search ks ON k.id = ks.id
411
+ WHERE knowledge_search MATCH ?
412
+ LIMIT ?`,
413
+ [ftsQuery, limit]
414
+ );
257
415
  }
258
416
 
259
417
  async saveEdge(edge) {
@@ -266,37 +424,63 @@ class VectorHub {
266
424
  created_at: edge.created_at || new Date().toISOString(),
267
425
  };
268
426
 
269
- await this.db.insertInto('graph_edges')
270
- .values(record)
271
- .onConflict(oc => oc.column('id').doNothing())
272
- .execute();
427
+ this.run(
428
+ `INSERT OR IGNORE INTO graph_edges (id, source_id, target_id, edge_type, weight, created_at)
429
+ VALUES (?, ?, ?, ?, ?, ?)`,
430
+ [record.id, record.source_id, record.target_id, record.edge_type, record.weight, record.created_at]
431
+ );
273
432
 
274
433
  return record.id;
275
434
  }
276
435
 
277
436
  async getEdges(nodeId) {
278
- const results = await this.db.selectFrom('graph_edges')
279
- .selectAll()
280
- .where((eb) => eb.or([
281
- eb('source_id', '=', nodeId),
282
- eb('target_id', '=', nodeId),
283
- ]))
284
- .execute();
285
- return results;
437
+ return this.query(
438
+ 'SELECT * FROM graph_edges WHERE source_id = ? OR target_id = ?',
439
+ [nodeId, nodeId]
440
+ );
286
441
  }
287
442
 
288
- // ── v9 Pillar XXVII: Migration tracking ──────────────────────────────────
443
+ // ── Migration Tracking (v9 Pillar XXVII) ─────────────────────────────────
289
444
 
290
445
  async getAppliedMigrations() {
291
- const rows = await this.db.selectFrom('_migrations').selectAll().execute();
446
+ const rows = this.query('SELECT name FROM _migrations');
292
447
  return rows.map(r => r.name);
293
448
  }
294
449
 
295
450
  async recordMigration(name) {
296
- await sql`INSERT OR IGNORE INTO _migrations (name, applied_at) VALUES (${name}, ${new Date().toISOString()})`
297
- .execute(this.db);
451
+ this.run(
452
+ 'INSERT OR IGNORE INTO _migrations (name, applied_at) VALUES (?, ?)',
453
+ [name, new Date().toISOString()]
454
+ );
298
455
  }
299
456
  }
300
457
 
301
- module.exports = new VectorHub();
458
+ // ── Factory Function ──────────────────────────────────────────────────────────
459
+
460
+ /**
461
+ * Create a new VectorHub instance (async factory).
462
+ * @param {string} [dbPath] - Optional path for the SQLite database file
463
+ * @returns {Promise<VectorHub>} Initialized VectorHub instance
464
+ */
465
+ async function createVectorHub(dbPath) {
466
+ const hub = new VectorHub(dbPath);
467
+ await hub.init();
468
+ return hub;
469
+ }
470
+
471
+ // Lazy singleton — not instantiated until first method call
472
+ let _instance = null;
473
+ const lazyHub = new Proxy({}, {
474
+ get(_, prop) {
475
+ if (prop === 'VectorHub') return VectorHub;
476
+ if (prop === 'createVectorHub') return createVectorHub;
477
+ if (!_instance) _instance = new VectorHub();
478
+ return typeof _instance[prop] === 'function'
479
+ ? _instance[prop].bind(_instance)
480
+ : _instance[prop];
481
+ }
482
+ });
483
+
484
+ module.exports = lazyHub;
302
485
  module.exports.VectorHub = VectorHub;
486
+ module.exports.createVectorHub = createVectorHub;