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
@@ -8,13 +8,15 @@
8
8
  * /mindforge:dashboard [--port 7339] [--open] [--stop]
9
9
  *
10
10
  * Security: binds to 127.0.0.1 only (ADR-017 policy).
11
- * No authentication localhost-only access is the security model.
11
+ * Bearer token auth on all mutating endpoints (POST/PUT/DELETE).
12
+ * Token printed to console at startup and written to .mindforge/.dashboard-token.
12
13
  */
13
14
  'use strict';
14
15
 
15
16
  const http = require('http');
16
17
  const path = require('path');
17
18
  const fs = require('fs');
19
+ const crypto = require('crypto');
18
20
  const ARGS = process.argv.slice(2);
19
21
 
20
22
  const PORT = parseInt(ARGS.find((_, i, a) => a[i-1] === '--port') || '7339', 10);
@@ -39,6 +41,39 @@ const RevOpsAPI = require('./revops-api');
39
41
  // ── Express app ───────────────────────────────────────────────────────────────
40
42
  const app = express();
41
43
 
44
+ // ── Bearer token authentication ──────────────────────────────────────────────
45
+ const DASHBOARD_TOKEN = crypto.randomBytes(32).toString('hex');
46
+ const TOKEN_FILE = path.join(process.cwd(), '.mindforge', '.dashboard-token');
47
+
48
+ // Write token to file with restrictive permissions (owner-only read/write)
49
+ fs.mkdirSync(path.dirname(TOKEN_FILE), { recursive: true });
50
+ fs.writeFileSync(TOKEN_FILE, DASHBOARD_TOKEN, { mode: 0o600 });
51
+
52
+ /**
53
+ * requireAuth — Validates Bearer token on mutating requests (POST/PUT/DELETE).
54
+ * GET requests pass through unguarded for the dashboard UI.
55
+ */
56
+ function requireAuth(req, res, next) {
57
+ if (req.method === 'GET' || req.method === 'OPTIONS') return next();
58
+
59
+ const authHeader = req.headers.authorization;
60
+ if (!authHeader || !authHeader.startsWith('Bearer ')) {
61
+ return res.status(401).json({
62
+ error: 'Authentication required. Use the token printed at dashboard startup.'
63
+ });
64
+ }
65
+
66
+ const provided = authHeader.slice(7);
67
+ // Constant-time comparison to prevent timing attacks
68
+ if (!crypto.timingSafeEqual(Buffer.from(provided), Buffer.from(DASHBOARD_TOKEN))) {
69
+ return res.status(401).json({
70
+ error: 'Authentication required. Use the token printed at dashboard startup.'
71
+ });
72
+ }
73
+
74
+ next();
75
+ }
76
+
42
77
  // Security middleware
43
78
  app.use((req, res, next) => {
44
79
  const addr = req.socket.remoteAddress;
@@ -49,19 +84,18 @@ app.use((req, res, next) => {
49
84
  next();
50
85
  });
51
86
 
52
- // CORS — only allow requests from localhost origins
87
+ // CORS — restrict to dashboard's own origin only (prevent cross-origin attacks)
88
+ const DASHBOARD_ORIGIN = `http://127.0.0.1:${PORT}`;
53
89
  app.use((req, res, next) => {
54
90
  const origin = req.headers.origin;
55
91
 
56
- if (origin && /^https?:\/\/(localhost|127\.0\.0\.1)(:\d+)?$/.test(origin)) {
57
- // Explicit localhost origin — set CORS headers
58
- res.setHeader('Access-Control-Allow-Origin', origin);
92
+ if (origin === DASHBOARD_ORIGIN) {
93
+ res.setHeader('Access-Control-Allow-Origin', DASHBOARD_ORIGIN);
59
94
  res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
60
- res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
61
- res.setHeader('Vary', 'Origin'); // Important: vary by origin for caching
95
+ res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');
96
+ res.setHeader('Vary', 'Origin');
62
97
  }
63
- // No origin header (same-origin/curl/postman): don't set CORS headers
64
- // This is correct — same-origin requests don't need CORS headers
98
+ // Reject cross-origin requests from other localhost ports/origins
65
99
  if (req.method === 'OPTIONS') return res.status(204).end();
66
100
  next();
67
101
  });
@@ -71,11 +105,17 @@ app.use(express.json({ limit: '64kb' })); // Limit request body size
71
105
  // Security headers
72
106
  app.use((req, res, next) => {
73
107
  res.setHeader('X-Content-Type-Options', 'nosniff');
74
- res.setHeader('X-Frame-Options', 'SAMEORIGIN');
108
+ res.setHeader('X-Frame-Options', 'DENY');
75
109
  res.setHeader('Cache-Control', 'no-store'); // Never cache dashboard responses
110
+ res.setHeader('Content-Security-Policy', "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; connect-src 'self'");
111
+ res.setHeader('X-XSS-Protection', '1; mode=block');
112
+ res.setHeader('Referrer-Policy', 'strict-origin-when-cross-origin');
76
113
  next();
77
114
  });
78
115
 
116
+ // ── Apply requireAuth to mutating API routes ─────────────────────────────────
117
+ app.use('/api', requireAuth);
118
+
79
119
  // ── Static frontend ───────────────────────────────────────────────────────────
80
120
  app.get('/', (req, res) => {
81
121
  if (!fs.existsSync(FRONTEND)) {
@@ -103,6 +143,8 @@ server.listen(PORT, '127.0.0.1', () => {
103
143
  console.log(` Status: http://localhost:${PORT}/api/status`);
104
144
  console.log(` Events: http://localhost:${PORT}/events`);
105
145
  console.log(` PID: ${process.pid}`);
146
+ console.log(`[Dashboard] Auth token: ${DASHBOARD_TOKEN}`);
147
+ console.log(` Token file: ${TOKEN_FILE}`);
106
148
  console.log('\n Press CTRL+C to stop\n');
107
149
 
108
150
  if (OPEN_BROWSER) {
@@ -127,6 +169,8 @@ server.on('error', err => {
127
169
  function shutdown(signal) {
128
170
  console.log(`\n[dashboard] ${signal} received — shutting down`);
129
171
  SSE.stop();
172
+ // Remove sensitive token file on shutdown
173
+ if (fs.existsSync(TOKEN_FILE)) fs.unlinkSync(TOKEN_FILE);
130
174
  server.close(() => {
131
175
  if (fs.existsSync(PID_FILE)) fs.unlinkSync(PID_FILE);
132
176
  process.exit(0);
@@ -25,12 +25,19 @@ let _auditInode = 0; // Track file inode for rotation detection
25
25
  let _lastAutoState = '';
26
26
  let _lastApprovals = '';
27
27
 
28
+ // ── Smart polling: mtime tracking ────────────────────────────────────────────
29
+ const _lastMtimes = Object.create(null);
30
+
28
31
  // ── Client management ─────────────────────────────────────────────────────────
29
32
 
30
33
  function addClient(res) {
34
+ const wasEmpty = clients.size === 0;
31
35
  clients.add(res);
36
+ if (wasEmpty) startPolling();
37
+
32
38
  res.on('close', () => {
33
39
  clients.delete(res);
40
+ if (clients.size === 0) stopPolling();
34
41
  });
35
42
  }
36
43
 
@@ -106,6 +113,10 @@ function pollAutoState() {
106
113
  if (!fs.existsSync(AUTO_STATE_PATH)) return;
107
114
 
108
115
  try {
116
+ const mtime = fs.statSync(AUTO_STATE_PATH).mtimeMs;
117
+ if (mtime === _lastMtimes[AUTO_STATE_PATH]) return; // unchanged
118
+ _lastMtimes[AUTO_STATE_PATH] = mtime;
119
+
109
120
  const raw = fs.readFileSync(AUTO_STATE_PATH, 'utf8');
110
121
  if (raw === _lastAutoState) return;
111
122
  _lastAutoState = raw;
@@ -120,6 +131,10 @@ function pollApprovals() {
120
131
  if (!fs.existsSync(APPROVAL_DIR)) return;
121
132
 
122
133
  try {
134
+ const mtime = fs.statSync(APPROVAL_DIR).mtimeMs;
135
+ if (mtime === _lastMtimes[APPROVAL_DIR]) return; // unchanged
136
+ _lastMtimes[APPROVAL_DIR] = mtime;
137
+
123
138
  const files = fs.readdirSync(APPROVAL_DIR)
124
139
  .filter(f => f.startsWith('APPROVAL-') && f.endsWith('.json'))
125
140
  .sort();
@@ -139,17 +154,25 @@ function pollApprovals() {
139
154
  } catch { /* ignore */ }
140
155
  }
141
156
 
142
- // ── Keepalive ─────────────────────────────────────────────────────────────────
157
+ // ── Polling lifecycle (idle-aware) ────────────────────────────────────────────
143
158
 
144
159
  let _pollInterval = null;
145
160
  let _pingInterval = null;
161
+ let _initialized = false;
146
162
 
147
- function start() {
148
- // Initialize AUDIT position
149
- if (fs.existsSync(AUDIT_PATH)) {
163
+ /**
164
+ * Start polling only when at least one client is connected.
165
+ * Idempotent — calling when already polling is a no-op.
166
+ */
167
+ function startPolling() {
168
+ if (_pollInterval) return; // Already polling
169
+
170
+ // Initialize AUDIT position on first start
171
+ if (!_initialized && fs.existsSync(AUDIT_PATH)) {
150
172
  const stat = fs.statSync(AUDIT_PATH);
151
173
  _lastAuditSize = stat.size;
152
174
  _auditInode = stat.ino;
175
+ _initialized = true;
153
176
  }
154
177
 
155
178
  // Poll every 2 seconds
@@ -168,11 +191,34 @@ function start() {
168
191
  _pingInterval.unref();
169
192
  }
170
193
 
171
- function stop() {
194
+ /**
195
+ * Stop polling when zero clients are connected.
196
+ * Idempotent — calling when already stopped is a no-op.
197
+ */
198
+ function stopPolling() {
172
199
  if (_pollInterval) { clearInterval(_pollInterval); _pollInterval = null; }
173
200
  if (_pingInterval) { clearInterval(_pingInterval); _pingInterval = null; }
174
201
  }
175
202
 
203
+ /**
204
+ * Public start — initializes the bridge (legacy compat).
205
+ * Actual polling begins only when the first client connects.
206
+ */
207
+ function start() {
208
+ // Pre-initialize AUDIT position so first client gets instant data
209
+ if (!_initialized && fs.existsSync(AUDIT_PATH)) {
210
+ const stat = fs.statSync(AUDIT_PATH);
211
+ _lastAuditSize = stat.size;
212
+ _auditInode = stat.ino;
213
+ _initialized = true;
214
+ }
215
+ // Polling starts lazily when addClient() is called
216
+ }
217
+
218
+ function stop() {
219
+ stopPolling();
220
+ }
221
+
176
222
  function getClientCount() { return clients.size; }
177
223
 
178
224
  module.exports = { addClient, broadcast, start, stop, getClientCount };
@@ -169,7 +169,7 @@ if (require.main === module) {
169
169
  context: 'CLI Manual Test',
170
170
  category: 'Architecture'
171
171
  });
172
- console.log(` ${this.colors.dim('')} ${this.colors.magenta('🛡️ SOVEREIGN INTELLIGENCE v8.2.0')} — PQAS & Proactive Homing Enabled`);
172
+ console.log(' │ 🛡️ SOVEREIGN INTELLIGENCE v8.2.0 — PQAS & Proactive Homing Enabled');
173
173
  const status = await manager.getStatus();
174
174
  console.log('📊 Learning System Status:', status);
175
175
  } else {
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * MindForge v8 — Federated Mesh Synthesis (FMS)
3
3
  * Component: Mesh Syncer (Pillar XVI)
4
- *
4
+ *
5
5
  * Facilitates secure, signed knowledge handoffs between MindForge nodes.
6
6
  */
7
7
  'use strict';
@@ -15,10 +15,13 @@ const configManager = require('../governance/config-manager');
15
15
 
16
16
  class MeshSyncer {
17
17
  constructor() {
18
- this.nodeId = configManager.get('mesh.node_id', 'unknown-node');
19
18
  this.vhInitialized = false;
20
19
  }
21
20
 
21
+ get nodeId() {
22
+ return configManager.get('mesh.node_id', 'unknown-node');
23
+ }
24
+
22
25
  async ensureInit() {
23
26
  if (!this.vhInitialized) {
24
27
  await vectorHub.init();
@@ -36,14 +39,18 @@ class MeshSyncer {
36
39
  console.log(`[MeshSyncer] Exporting bundle from ${this.nodeId}...`);
37
40
 
38
41
  // 1. Fetch Traces (Golden ones or since date)
39
- let traceQuery = vectorHub.db.selectFrom('traces').selectAll();
42
+ let traces;
40
43
  if (options.since) {
41
- traceQuery = traceQuery.where('timestamp', '>', options.since);
44
+ traces = vectorHub.query(
45
+ 'SELECT * FROM traces WHERE timestamp > ? LIMIT 100',
46
+ [options.since]
47
+ );
48
+ } else {
49
+ traces = vectorHub.query('SELECT * FROM traces LIMIT 100');
42
50
  }
43
- const traces = await traceQuery.limit(100).execute();
44
51
 
45
52
  // 2. Fetch Skills
46
- const skills = await vectorHub.db.selectFrom('skills').selectAll().execute();
53
+ const skills = vectorHub.query('SELECT * FROM skills');
47
54
 
48
55
  const payload = {
49
56
  version: '1.0.0',
@@ -53,14 +60,13 @@ class MeshSyncer {
53
60
  };
54
61
 
55
62
  // 3. Sign the bundle using ZTAI
56
- // Note: In v8, we sign the entire payload string to ensure integrity.
57
63
  const did = configManager.get('governance.active_did');
58
64
  if (!did) {
59
65
  throw new Error('[MeshSyncer] No active DID found for signing. Secure identity required.');
60
66
  }
61
67
 
62
68
  const signature = await ztaiManager.signData(did, JSON.stringify(payload));
63
-
69
+
64
70
  const bundle = {
65
71
  payload,
66
72
  signature,
@@ -105,20 +111,18 @@ class MeshSyncer {
105
111
  // 3. Merge Skills
106
112
  const skills = payload.data.skills || [];
107
113
  for (const skill of skills) {
108
- await vectorHub.db.insertInto('skills')
109
- .values({
110
- skill_id: skill.skill_id,
111
- name: skill.name,
112
- description: skill.description,
113
- path: skill.path,
114
- success_rate: skill.success_rate,
115
- last_verified: new Date().toISOString()
116
- })
117
- .onConflict(oc => oc.column('skill_id').doUpdateSet({
118
- success_rate: Math.max(skill.success_rate || 0, 0.5), // Optimistic merge
119
- last_verified: new Date().toISOString()
120
- }))
121
- .execute();
114
+ vectorHub.run(
115
+ `INSERT OR REPLACE INTO skills (skill_id, name, description, path, success_rate, last_verified)
116
+ VALUES (?, ?, ?, ?, ?, ?)`,
117
+ [
118
+ skill.skill_id,
119
+ skill.name,
120
+ skill.description,
121
+ skill.path,
122
+ Math.max(skill.success_rate || 0, 0.5),
123
+ new Date().toISOString()
124
+ ]
125
+ );
122
126
  }
123
127
 
124
128
  console.log(`[MeshSyncer] Successfully imported ${traces.length} external traces and ${skills.length} skills.`);
@@ -15,6 +15,7 @@ const driftDetector = require('./logic-drift-detector'); // v6.1 Pillar X
15
15
  const remediationEngine = require('./remediation-engine'); // v6.1 Pillar X
16
16
  const logicValidator = require('./logic-validator'); // v7 Pillar X
17
17
  const vectorHub = require('../memory/vector-hub'); // v8 Pillar XV
18
+ const { AuditWriter } = require('../utils/file-io');
18
19
 
19
20
  class NexusTracer {
20
21
  constructor(config = {}) {
@@ -31,8 +32,11 @@ class NexusTracer {
31
32
  this.RES_THRESHOLD = configManager.get('governance.res_threshold', 0.8);
32
33
  this.entropyCache = new Map();
33
34
 
35
+ // v9: Async Audit Writer (replaces sync appendFileSync)
36
+ this._auditWriter = new AuditWriter(this.auditPath);
37
+
34
38
  // v6.1: Neural Drift Remediation (NDR)
35
- this.DRIFT_SAMPLE_RATE = 1.0;
39
+ this.DRIFT_SAMPLE_RATE = 1.0;
36
40
 
37
41
  // v7: Agentic SBOM with Arbitrage
38
42
  this.sbom = {
@@ -292,10 +296,7 @@ class NexusTracer {
292
296
  }
293
297
 
294
298
  try {
295
- if (!fs.existsSync(path.dirname(this.auditPath))) {
296
- fs.mkdirSync(path.dirname(this.auditPath), { recursive: true });
297
- }
298
- fs.appendFileSync(this.auditPath, JSON.stringify(entry) + '\n');
299
+ await this._auditWriter.write(entry);
299
300
  } catch (err) {
300
301
  console.error(`[NexusTracer] Failed to write audit entry: ${err.message}`);
301
302
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * MindForge v8 — Orbital Governance
3
3
  * Component: Orbital Guardian (Pillar XVIII)
4
- *
4
+ *
5
5
  * Manages hardware-bound/biometric attestations for high-blast-radius actions.
6
6
  */
7
7
  'use strict';
@@ -51,9 +51,11 @@ class OrbitalGuardian {
51
51
  };
52
52
 
53
53
  // 2. Persist to SQLite (Source of truth for v8 Governance Dashboard)
54
- await vectorHub.db.insertInto('attestations')
55
- .values(attestation)
56
- .execute();
54
+ vectorHub.run(
55
+ `INSERT INTO attestations (id, request_id, status, attestation_payload, timestamp)
56
+ VALUES (?, ?, ?, ?, ?)`,
57
+ [attestation.id, attestation.request_id, attestation.status, attestation.attestation_payload, attestation.timestamp]
58
+ );
57
59
 
58
60
  console.log(`[ORBITAL-GUARDIAN] Attestation SUCCESS: ${attestation.id}`);
59
61
  return attestation;
@@ -63,14 +65,15 @@ class OrbitalGuardian {
63
65
  * Verifies if a request has a valid hardware bypass.
64
66
  */
65
67
  async verify(requestId) {
68
+ if (!requestId) return { verified: false };
66
69
  await this.ensureInit();
67
-
68
- const record = await vectorHub.db.selectFrom('attestations')
69
- .selectAll()
70
- .where('request_id', '=', requestId)
71
- .where('status', '=', 'APPROVED')
72
- .executeTakeFirst();
73
70
 
71
+ const results = vectorHub.query(
72
+ 'SELECT * FROM attestations WHERE request_id = ? AND status = ? LIMIT 1',
73
+ [requestId, 'APPROVED']
74
+ );
75
+
76
+ const record = results[0];
74
77
  if (!record) return { verified: false };
75
78
 
76
79
  return {
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * MindForge v8 — Autonomous Skill Evolution (ASE)
3
3
  * Component: Skill Evolver (Pillar XVII)
4
- *
4
+ *
5
5
  * Mines successful reasoning patterns to synthesize new reusable skills.
6
6
  */
7
7
  'use strict';
@@ -32,12 +32,11 @@ class SkillEvolver {
32
32
  await this.ensureInit();
33
33
  console.log('[ASE] Starting skill evolution cycle...');
34
34
 
35
- // 1. Mine Golden Traces (Drift < 0.1)
36
- const goldenTraces = await vectorHub.db.selectFrom('traces')
37
- .selectAll()
38
- .where('drift_score', '<', this.threshold)
39
- .where('event', '=', 'reasoning_trace')
40
- .execute();
35
+ // 1. Mine Golden Traces (Drift < threshold)
36
+ const goldenTraces = vectorHub.query(
37
+ 'SELECT * FROM traces WHERE drift_score < ? AND event = ?',
38
+ [this.threshold, 'reasoning_trace']
39
+ );
41
40
 
42
41
  if (goldenTraces.length < this.minCount) {
43
42
  console.log(`[ASE] Only ${goldenTraces.length} golden traces found. Threshold is ${this.minCount}. Evolution deferred.`);
@@ -67,12 +66,12 @@ class SkillEvolver {
67
66
  const clusters = new Map();
68
67
 
69
68
  for (const t of traces) {
70
- const metadata = JSON.parse(t.metadata || '{}');
71
69
  // Group by agent and the first 20 chars of thought as a simple proxy for 'intent'
72
- const key = `${t.agent || 'unknown'}:${t.content.substring(0, 20)}`;
73
-
70
+ const content = t.content || '';
71
+ const key = `${t.agent || 'unknown'}:${content.substring(0, 20)}`;
72
+
74
73
  if (!clusters.has(key)) {
75
- clusters.set(key, { traces: [], agent: t.agent, intent: t.content.substring(0, 50) });
74
+ clusters.set(key, { traces: [], agent: t.agent, intent: content.substring(0, 50) });
76
75
  }
77
76
  clusters.get(key).traces.push(t);
78
77
  }
@@ -85,11 +84,10 @@ class SkillEvolver {
85
84
  */
86
85
  async _synthesize(cluster) {
87
86
  const id = `ev_${crypto.randomBytes(4).toString('hex')}`;
88
- const timestamp = new Date().toISOString();
89
-
87
+
90
88
  // Abstract the strategy from the trace content
91
89
  const summary = cluster.traces.map(t => `- ${t.content}`).join('\n');
92
-
90
+
93
91
  return {
94
92
  id,
95
93
  name: `Synthesized Skill (${cluster.agent}) - ${id}`,
@@ -23,9 +23,15 @@ class TemporalHub {
23
23
  * @param {object} metadata - Optional context (task_name, session_id)
24
24
  */
25
25
  static captureState(auditId, metadata = {}) {
26
+ if (!/^[a-f0-9-]{8,40}$/.test(auditId)) {
27
+ throw new Error('Invalid audit ID format');
28
+ }
26
29
  if (!fs.existsSync(PLANNING_DIR)) return null;
27
-
30
+
28
31
  const snapshotDir = path.join(HISTORY_DIR, auditId);
32
+ if (!path.resolve(snapshotDir).startsWith(path.resolve(HISTORY_DIR))) {
33
+ throw new Error('Path traversal detected in audit ID');
34
+ }
29
35
  if (!fs.existsSync(snapshotDir)) {
30
36
  fs.mkdirSync(snapshotDir, { recursive: true });
31
37
  }
@@ -69,7 +75,13 @@ class TemporalHub {
69
75
  * @param {string} auditId
70
76
  */
71
77
  static rollbackTo(auditId) {
78
+ if (!/^[a-f0-9-]{8,40}$/.test(auditId)) {
79
+ throw new Error('Invalid audit ID format');
80
+ }
72
81
  const snapshotDir = path.join(HISTORY_DIR, auditId);
82
+ if (!path.resolve(snapshotDir).startsWith(path.resolve(HISTORY_DIR))) {
83
+ throw new Error('Path traversal detected in audit ID');
84
+ }
73
85
  if (!fs.existsSync(snapshotDir)) {
74
86
  throw new Error(`Snapshot ${auditId} not found in history.`);
75
87
  }
@@ -116,7 +128,13 @@ class TemporalHub {
116
128
  * Read a file from a specific historical snapshot.
117
129
  */
118
130
  static getSnapshotFile(auditId, filePath) {
131
+ if (!/^[a-f0-9-]{8,40}$/.test(auditId)) {
132
+ throw new Error('Invalid audit ID format');
133
+ }
119
134
  const snapPath = path.join(HISTORY_DIR, auditId, path.basename(filePath));
135
+ if (!path.resolve(snapPath).startsWith(path.resolve(HISTORY_DIR))) {
136
+ throw new Error('Path traversal detected in audit ID');
137
+ }
120
138
  if (fs.existsSync(snapPath)) {
121
139
  return fs.readFileSync(snapPath, 'utf8');
122
140
  }
@@ -127,7 +145,13 @@ class TemporalHub {
127
145
  * Capture terminal output for a command and associate with audit point.
128
146
  */
129
147
  static captureTerminal(auditId, stdout, stderr) {
148
+ if (!/^[a-f0-9-]{8,40}$/.test(auditId)) {
149
+ throw new Error('Invalid audit ID format');
150
+ }
130
151
  const logDir = path.join(HISTORY_DIR, auditId, 'logs');
152
+ if (!path.resolve(logDir).startsWith(path.resolve(HISTORY_DIR))) {
153
+ throw new Error('Path traversal detected in audit ID');
154
+ }
131
155
  if (!fs.existsSync(logDir)) fs.mkdirSync(logDir, { recursive: true });
132
156
 
133
157
  if (stdout) fs.writeFileSync(path.join(logDir, 'stdout.log'), stdout);
@@ -8,12 +8,14 @@ const fs = require('node:fs');
8
8
  const path = require('node:path');
9
9
  const ImpactAnalyzer = require('./impact-analyzer');
10
10
  const policyGate = require('./policy-gate-hardened');
11
+ const { AuditWriter } = require('../utils/file-io');
11
12
 
12
13
  class PolicyEngine {
13
14
  constructor(config = {}) {
14
15
  this.policiesDir = config.policiesDir || path.join(__dirname, 'policies');
15
16
  this.planningDir = config.planningDir || path.join(process.cwd(), '.planning');
16
17
  this.auditLogPath = path.join(this.planningDir, 'RISK-AUDIT.jsonl');
18
+ this._auditWriter = new AuditWriter(this.auditLogPath);
17
19
  this.ensurePoliciesDir();
18
20
  }
19
21
 
@@ -73,7 +75,7 @@ class PolicyEngine {
73
75
  // [PQAS] v7: Hardened Biometric Bypass for Risk > 95
74
76
  if (impactScore > 95) {
75
77
  const gateResult = await policyGate.evaluateBypass(intent, impactScore);
76
- if (gateResult.status === 'WAIT_FOR_BIOMETRIC') {
78
+ if (gateResult.status === 'WAIT_FOR_BIOMETRIC' || gateResult.status === 'WAIT_FOR_ORBITAL') {
77
79
  verdict = {
78
80
  verdict: 'DENY',
79
81
  reason: gateResult.reason,
@@ -143,7 +145,7 @@ class PolicyEngine {
143
145
  }
144
146
 
145
147
  logAudit(intent, impactScore, verdict) {
146
- const entry = JSON.stringify({
148
+ this._auditWriter.write({
147
149
  timestamp: new Date().toISOString(),
148
150
  requestId: verdict.requestId,
149
151
  did: intent.did,
@@ -153,9 +155,7 @@ class PolicyEngine {
153
155
  impactScore,
154
156
  verdict: verdict.verdict,
155
157
  reason: verdict.reason
156
- }) + '\n';
157
-
158
- fs.appendFileSync(this.auditLogPath, entry);
158
+ });
159
159
  }
160
160
 
161
161
  loadPolicies() {
@@ -38,8 +38,8 @@ class PolicyGateHardened {
38
38
  }
39
39
 
40
40
  // 2. Trigger Orbital Challenge
41
- return {
42
- status: 'WAIT_FOR_ORBITAL',
41
+ return {
42
+ status: 'WAIT_FOR_ORBITAL',
43
43
  reason: 'Hardware/Biometric attestation required for orbital-tier mutation',
44
44
  challenge_id: `orb_${Math.random().toString(36).substr(2, 6)}`,
45
45
  impact: impactScore
@@ -103,8 +103,16 @@ class QuantumCrypto {
103
103
 
104
104
  verifyZKProof(proof, intentId) {
105
105
  if (!proof.startsWith('zkp_v1_')) return false;
106
- // Real verification would check the Merkle root of the execution trace
107
- return true; // Simulated success
106
+ // SECURITY: Real ZK verification is not yet implemented.
107
+ // Governance gate MUST block by default — fail-closed.
108
+ console.warn(
109
+ `[SECURITY][quantum-crypto] verifyZKProof is a STUB — real ZK verification not yet implemented. ` +
110
+ `Blocking proof for intent="${intentId}". All governance checks will fail until a real verifier is integrated.`
111
+ );
112
+ throw new Error(
113
+ 'ZK proof verification is not implemented. Governance gate denies by default. ' +
114
+ 'Integrate a real ZK verifier (e.g., snarkjs/circom) before enabling this path.'
115
+ );
108
116
  }
109
117
  }
110
118
 
@@ -18,7 +18,7 @@ class IdentitySynthesizer {
18
18
  */
19
19
  async bootstrap(answers = {}) {
20
20
  const blueprint = this.getGrandBlueprint();
21
-
21
+
22
22
  // Inject initialization metadata into the blueprint
23
23
  let soulContent = blueprint
24
24
  .replace(/{USER_CONTEXT}/g, answers.user || 'Sovereign Agent User')
@@ -33,14 +33,12 @@ class IdentitySynthesizer {
33
33
  */
34
34
  async evolve() {
35
35
  await vectorHub.init();
36
-
36
+
37
37
  // 1. Mine recent traces (Golden & Ghost)
38
- const traces = await vectorHub.db.selectFrom('traces')
39
- .selectAll()
40
- .where('event', '=', 'reasoning_trace')
41
- .orderBy('timestamp', 'desc')
42
- .limit(100)
43
- .execute();
38
+ const traces = vectorHub.query(
39
+ 'SELECT * FROM traces WHERE event = ? ORDER BY timestamp DESC LIMIT 100',
40
+ ['reasoning_trace']
41
+ );
44
42
 
45
43
  if (traces.length === 0) {
46
44
  console.log(`[IDENTITY] No execution traces found in celestial.db. Evolution skipped.`);
@@ -49,7 +47,7 @@ class IdentitySynthesizer {
49
47
 
50
48
  // 2. Extract Decision Heuristics
51
49
  const heuristics = this._extractHeuristics(traces);
52
-
50
+
53
51
  // 3. Update SOUL.md sections (v8.1 Intelligence Mirroring)
54
52
  await this._applyMirroring(heuristics);
55
53
  }
@@ -76,11 +74,11 @@ class IdentitySynthesizer {
76
74
 
77
75
  async _applyMirroring(heuristics) {
78
76
  let content = await fs.readFile(this.soulPath, 'utf8');
79
-
77
+
80
78
  // Update the Decision Engine section with derived heuristics
81
79
  const heuristicMarker = `Decision Mode = ${heuristics.mode} (Derived from traces)`;
82
80
  content = content.replace(/Decision Mode = .*/, heuristicMarker);
83
-
81
+
84
82
  await fs.writeFile(this.soulPath, content);
85
83
  console.log(`[IDENTITY] SOUL.md evolved: Mode shifted to ${heuristics.mode}.`);
86
84
  }