mindforge-cc 9.0.0 → 10.0.1
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.
- package/.mindforge/config.json +1 -1
- package/.mindforge/personas/a11y-architect.md +190 -0
- package/.mindforge/personas/accessibility-tester.md +108 -0
- package/.mindforge/personas/api-designer.md +190 -0
- package/.mindforge/personas/api-gateway-architect.md +168 -0
- package/.mindforge/personas/api-load-tester.md +144 -0
- package/.mindforge/personas/authentication-architect.md +163 -0
- package/.mindforge/personas/backup-recovery-specialist.md +181 -0
- package/.mindforge/personas/browser-extension-architect.md +96 -0
- package/.mindforge/personas/build-optimizer.md +160 -0
- package/.mindforge/personas/caching-strategist.md +180 -0
- package/.mindforge/personas/chaos-engineer.md +207 -0
- package/.mindforge/personas/cli-designer.md +151 -0
- package/.mindforge/personas/cloud-architect.md +229 -0
- package/.mindforge/personas/code-archeologist.md +176 -0
- package/.mindforge/personas/code-explorer.md +144 -0
- package/.mindforge/personas/compliance-auditor.md +190 -0
- package/.mindforge/personas/concurrency-expert.md +310 -0
- package/.mindforge/personas/config-management-expert.md +277 -0
- package/.mindforge/personas/contract-tester.md +224 -0
- package/.mindforge/personas/cost-analyst.md +209 -0
- package/.mindforge/personas/data-engineer.md +235 -0
- package/.mindforge/personas/data-privacy-engineer.md +187 -0
- package/.mindforge/personas/database-expert.md +223 -0
- package/.mindforge/personas/dependency-auditor.md +181 -0
- package/.mindforge/personas/design-system-engineer.md +115 -0
- package/.mindforge/personas/devops-engineer.md +561 -0
- package/.mindforge/personas/domain-modeler.md +127 -0
- package/.mindforge/personas/email-systems-engineer.md +119 -0
- package/.mindforge/personas/error-handling-architect.md +246 -0
- package/.mindforge/personas/event-driven-architect.md +134 -0
- package/.mindforge/personas/frontend-architect.md +107 -0
- package/.mindforge/personas/git-forensics.md +146 -0
- package/.mindforge/personas/git-workflow-expert.md +161 -0
- package/.mindforge/personas/go-specialist.md +249 -0
- package/.mindforge/personas/graphql-specialist.md +195 -0
- package/.mindforge/personas/incident-commander.md +214 -0
- package/.mindforge/personas/internationalization-expert.md +164 -0
- package/.mindforge/personas/java-specialist.md +271 -0
- package/.mindforge/personas/kubernetes-debugger.md +175 -0
- package/.mindforge/personas/logging-architect.md +200 -0
- package/.mindforge/personas/migration-specialist.md +237 -0
- package/.mindforge/personas/ml-engineer.md +312 -0
- package/.mindforge/personas/mobile-engineer.md +183 -0
- package/.mindforge/personas/monorepo-architect.md +323 -0
- package/.mindforge/personas/observability-engineer.md +217 -0
- package/.mindforge/personas/onboarding-guide.md +265 -0
- package/.mindforge/personas/performance-optimizer.md +293 -0
- package/.mindforge/personas/product-manager.md +105 -0
- package/.mindforge/personas/prompt-engineer.md +200 -0
- package/.mindforge/personas/python-specialist.md +277 -0
- package/.mindforge/personas/queue-architect.md +136 -0
- package/.mindforge/personas/react-specialist.md +97 -0
- package/.mindforge/personas/real-time-engineer.md +121 -0
- package/.mindforge/personas/refactoring-expert.md +117 -0
- package/.mindforge/personas/regex-craftsman.md +130 -0
- package/.mindforge/personas/rust-specialist.md +262 -0
- package/.mindforge/personas/sdk-designer.md +185 -0
- package/.mindforge/personas/search-engineer.md +290 -0
- package/.mindforge/personas/senior-reviewer.md +372 -0
- package/.mindforge/personas/seo-specialist.md +99 -0
- package/.mindforge/personas/spec-reviewer.md +172 -0
- package/.mindforge/personas/state-machine-designer.md +172 -0
- package/.mindforge/personas/swarm-templates.json +72 -18
- package/.mindforge/personas/tailwind-specialist.md +95 -0
- package/.mindforge/personas/tech-debt-analyst.md +200 -0
- package/.mindforge/personas/tech-stack-selector.md +118 -0
- package/.mindforge/personas/technical-interviewer.md +158 -0
- package/.mindforge/personas/test-data-engineer.md +169 -0
- package/.mindforge/personas/typescript-wizard.md +247 -0
- package/.mindforge/personas/ux-auditor.md +251 -0
- package/.mindforge/personas/webhook-designer.md +161 -0
- package/CHANGELOG.md +82 -0
- package/LICENSE +1 -1
- package/MINDFORGE.md +18 -5
- package/README.md +7 -1
- package/RELEASENOTES.md +121 -193
- package/SECURITY.md +108 -2
- package/bin/autonomous/audit-writer.js +90 -0
- package/bin/autonomous/auto-runner.js +209 -431
- package/bin/autonomous/state-manager.js +116 -0
- package/bin/autonomous/task-dispatcher.js +114 -0
- package/bin/autonomous/wave-executor.js +169 -0
- package/bin/browser/browser-daemon.js +31 -1
- package/bin/change-classifier.js +3 -3
- package/bin/dashboard/api-router.js +21 -22
- package/bin/dashboard/metrics-aggregator.js +44 -3
- package/bin/dashboard/server.js +54 -10
- package/bin/dashboard/sse-bridge.js +51 -5
- package/bin/engine/learning-manager.js +1 -1
- package/bin/engine/mesh-syncer.js +26 -22
- package/bin/engine/nexus-tracer.js +6 -5
- package/bin/engine/orbital-guardian.js +13 -10
- package/bin/engine/skill-evolver.js +12 -14
- package/bin/engine/temporal-hub.js +25 -1
- package/bin/governance/policy-engine.js +5 -5
- package/bin/governance/policy-gate-hardened.js +2 -2
- package/bin/governance/quantum-crypto.js +10 -2
- package/bin/memory/identity-synthesizer.js +9 -11
- package/bin/memory/knowledge-store.js +62 -6
- package/bin/memory/semantic-hub.js +26 -30
- package/bin/memory/vector-hub.js +377 -193
- package/bin/migrations/v8-sqlite-migration.js +22 -21
- package/bin/migrations/v9-unified-memory.js +1 -1
- package/bin/mindforge-cli.js +47 -11
- package/bin/models/model-broker.js +2 -0
- package/bin/revops/remediation-queue.js +16 -55
- package/bin/utils/errors.js +40 -0
- package/bin/utils/file-io.js +102 -0
- package/bin/utils/index.js +6 -0
- package/bin/utils/paths.js +33 -0
- package/docs/commands-reference.md +38 -2
- package/docs/getting-started.md +16 -6
- package/docs/sdk-reference.md +374 -24
- package/docs/troubleshooting.md +4 -4
- package/docs/user-guide.md +31 -11
- package/examples/sdk-integration/README.md +24 -0
- package/examples/sdk-integration/index.js +24 -0
- package/examples/starter-project/MINDFORGE.md +8 -8
- package/package.json +30 -15
- package/.agent/bin/lib/commands.cjs +0 -959
- package/.agent/bin/lib/config.cjs +0 -421
- package/.agent/bin/lib/core.cjs +0 -1166
- package/.agent/bin/lib/frontmatter.cjs +0 -307
- package/.agent/bin/lib/init.cjs +0 -1336
- package/.agent/bin/lib/milestone.cjs +0 -252
- package/.agent/bin/lib/model-profiles.cjs +0 -68
- package/.agent/bin/lib/phase.cjs +0 -888
- package/.agent/bin/lib/profile-output.cjs +0 -952
- package/.agent/bin/lib/profile-pipeline.cjs +0 -539
- package/.agent/bin/lib/roadmap.cjs +0 -329
- package/.agent/bin/lib/security.cjs +0 -356
- package/.agent/bin/lib/state.cjs +0 -969
- package/.agent/bin/lib/template.cjs +0 -222
- package/.agent/bin/lib/uat.cjs +0 -189
- package/.agent/bin/lib/verify.cjs +0 -851
- package/.agent/bin/lib/workstream.cjs +0 -491
- package/.agent/bin/mindforge-tools.cjs +0 -897
- package/.agent/file-manifest.json +0 -219
- package/.agent/forge/help.md +0 -11
- package/.agent/forge/init-project.md +0 -36
- package/.agent/forge/plan-phase.md +0 -34
- package/.agent/mindforge/add-backlog.md +0 -32
- package/.agent/mindforge/agent.md +0 -31
- package/.agent/mindforge/approve.md +0 -22
- package/.agent/mindforge/audit.md +0 -34
- package/.agent/mindforge/auto.md +0 -26
- package/.agent/mindforge/benchmark.md +0 -37
- package/.agent/mindforge/browse.md +0 -30
- package/.agent/mindforge/complete-milestone.md +0 -22
- package/.agent/mindforge/costs.md +0 -15
- package/.agent/mindforge/cross-review.md +0 -21
- package/.agent/mindforge/dashboard.md +0 -102
- package/.agent/mindforge/debug.md +0 -133
- package/.agent/mindforge/discuss-phase.md +0 -142
- package/.agent/mindforge/do.md +0 -31
- package/.agent/mindforge/execute-phase.md +0 -200
- package/.agent/mindforge/health.md +0 -31
- package/.agent/mindforge/help.md +0 -33
- package/.agent/mindforge/init-org.md +0 -135
- package/.agent/mindforge/init-project.md +0 -170
- package/.agent/mindforge/install-skill.md +0 -28
- package/.agent/mindforge/learn.md +0 -147
- package/.agent/mindforge/learning.md +0 -20
- package/.agent/mindforge/map-codebase.md +0 -302
- package/.agent/mindforge/marketplace.md +0 -124
- package/.agent/mindforge/metrics.md +0 -26
- package/.agent/mindforge/migrate.md +0 -44
- package/.agent/mindforge/milestone.md +0 -16
- package/.agent/mindforge/new-runtime.md +0 -23
- package/.agent/mindforge/next.md +0 -109
- package/.agent/mindforge/note.md +0 -35
- package/.agent/mindforge/plan-phase.md +0 -131
- package/.agent/mindforge/plant-seed.md +0 -31
- package/.agent/mindforge/plugins.md +0 -44
- package/.agent/mindforge/pr-review.md +0 -45
- package/.agent/mindforge/profile-team.md +0 -27
- package/.agent/mindforge/publish-skill.md +0 -23
- package/.agent/mindforge/qa.md +0 -20
- package/.agent/mindforge/quick.md +0 -139
- package/.agent/mindforge/record-learning.md +0 -22
- package/.agent/mindforge/release.md +0 -14
- package/.agent/mindforge/remember.md +0 -30
- package/.agent/mindforge/research.md +0 -16
- package/.agent/mindforge/retrospective.md +0 -31
- package/.agent/mindforge/review-backlog.md +0 -34
- package/.agent/mindforge/review.md +0 -161
- package/.agent/mindforge/security-scan.md +0 -242
- package/.agent/mindforge/session-report.md +0 -39
- package/.agent/mindforge/ship.md +0 -111
- package/.agent/mindforge/skills.md +0 -145
- package/.agent/mindforge/status.md +0 -113
- package/.agent/mindforge/steer.md +0 -17
- package/.agent/mindforge/sync-confluence.md +0 -15
- package/.agent/mindforge/sync-jira.md +0 -16
- package/.agent/mindforge/tokens.md +0 -12
- package/.agent/mindforge/ui-phase.md +0 -34
- package/.agent/mindforge/ui-review.md +0 -36
- package/.agent/mindforge/update.md +0 -46
- package/.agent/mindforge/validate-phase.md +0 -31
- package/.agent/mindforge/verify-phase.md +0 -66
- package/.agent/mindforge/workspace.md +0 -33
- package/.agent/mindforge/workstreams.md +0 -35
- package/.agent/settings.json +0 -42
- package/.agent/skills/mindforge-add-backlog/SKILL.md +0 -72
- package/.agent/skills/mindforge-add-phase/SKILL.md +0 -39
- package/.agent/skills/mindforge-add-tests/SKILL.md +0 -28
- package/.agent/skills/mindforge-add-todo/SKILL.md +0 -42
- package/.agent/skills/mindforge-audit-milestone/SKILL.md +0 -29
- package/.agent/skills/mindforge-audit-uat/SKILL.md +0 -20
- package/.agent/skills/mindforge-autonomous/SKILL.md +0 -33
- package/.agent/skills/mindforge-brainstorming/SKILL.md +0 -164
- package/.agent/skills/mindforge-brainstorming/scripts/frame-template.html +0 -214
- package/.agent/skills/mindforge-brainstorming/scripts/helper.js +0 -88
- package/.agent/skills/mindforge-brainstorming/scripts/server.cjs +0 -354
- package/.agent/skills/mindforge-brainstorming/scripts/start-server.sh +0 -148
- package/.agent/skills/mindforge-brainstorming/scripts/stop-server.sh +0 -56
- package/.agent/skills/mindforge-brainstorming/spec-document-reviewer-prompt.md +0 -49
- package/.agent/skills/mindforge-brainstorming/visual-companion.md +0 -287
- package/.agent/skills/mindforge-check-todos/SKILL.md +0 -40
- package/.agent/skills/mindforge-cleanup/SKILL.md +0 -19
- package/.agent/skills/mindforge-complete-milestone/SKILL.md +0 -131
- package/.agent/skills/mindforge-debug/SKILL.md +0 -163
- package/.agent/skills/mindforge-debug_extended/CREATION-LOG.md +0 -119
- package/.agent/skills/mindforge-debug_extended/SKILL.md +0 -296
- package/.agent/skills/mindforge-debug_extended/condition-based-waiting-example.ts +0 -158
- package/.agent/skills/mindforge-debug_extended/condition-based-waiting.md +0 -115
- package/.agent/skills/mindforge-debug_extended/defense-in-depth.md +0 -122
- package/.agent/skills/mindforge-debug_extended/find-polluter.sh +0 -63
- package/.agent/skills/mindforge-debug_extended/root-cause-tracing.md +0 -169
- package/.agent/skills/mindforge-debug_extended/test-academic.md +0 -14
- package/.agent/skills/mindforge-debug_extended/test-pressure-1.md +0 -58
- package/.agent/skills/mindforge-debug_extended/test-pressure-2.md +0 -68
- package/.agent/skills/mindforge-debug_extended/test-pressure-3.md +0 -69
- package/.agent/skills/mindforge-discuss-phase/SKILL.md +0 -54
- package/.agent/skills/mindforge-do/SKILL.md +0 -26
- package/.agent/skills/mindforge-execute-phase/SKILL.md +0 -49
- package/.agent/skills/mindforge-execute-phase_extended/SKILL.md +0 -70
- package/.agent/skills/mindforge-fast/SKILL.md +0 -23
- package/.agent/skills/mindforge-forensics/SKILL.md +0 -49
- package/.agent/skills/mindforge-health/SKILL.md +0 -17
- package/.agent/skills/mindforge-help/SKILL.md +0 -23
- package/.agent/skills/mindforge-insert-phase/SKILL.md +0 -28
- package/.agent/skills/mindforge-join-discord/SKILL.md +0 -19
- package/.agent/skills/mindforge-list-phase-assumptions/SKILL.md +0 -41
- package/.agent/skills/mindforge-list-workspaces/SKILL.md +0 -17
- package/.agent/skills/mindforge-manager/SKILL.md +0 -32
- package/.agent/skills/mindforge-map-codebase/SKILL.md +0 -64
- package/.agent/skills/mindforge-milestone-summary/SKILL.md +0 -44
- package/.agent/skills/mindforge-neural-orchestrator/SKILL.md +0 -115
- package/.agent/skills/mindforge-neural-orchestrator/references/codex-tools.md +0 -100
- package/.agent/skills/mindforge-neural-orchestrator/references/gemini-tools.md +0 -33
- package/.agent/skills/mindforge-new-milestone/SKILL.md +0 -38
- package/.agent/skills/mindforge-new-project/SKILL.md +0 -36
- package/.agent/skills/mindforge-new-workspace/SKILL.md +0 -39
- package/.agent/skills/mindforge-next/SKILL.md +0 -19
- package/.agent/skills/mindforge-note/SKILL.md +0 -29
- package/.agent/skills/mindforge-parallel-mesh_extended/SKILL.md +0 -182
- package/.agent/skills/mindforge-pause-work/SKILL.md +0 -35
- package/.agent/skills/mindforge-plan-milestone-gaps/SKILL.md +0 -28
- package/.agent/skills/mindforge-plan-phase/SKILL.md +0 -38
- package/.agent/skills/mindforge-plan-phase_extended/SKILL.md +0 -152
- package/.agent/skills/mindforge-plan-phase_extended/plan-document-reviewer-prompt.md +0 -49
- package/.agent/skills/mindforge-plant-seed/SKILL.md +0 -22
- package/.agent/skills/mindforge-pr-branch/SKILL.md +0 -21
- package/.agent/skills/mindforge-profile-user/SKILL.md +0 -38
- package/.agent/skills/mindforge-progress/SKILL.md +0 -19
- package/.agent/skills/mindforge-quick/SKILL.md +0 -38
- package/.agent/skills/mindforge-reapply-patches/SKILL.md +0 -124
- package/.agent/skills/mindforge-remove-phase/SKILL.md +0 -26
- package/.agent/skills/mindforge-remove-workspace/SKILL.md +0 -22
- package/.agent/skills/mindforge-research-phase/SKILL.md +0 -186
- package/.agent/skills/mindforge-resume-work/SKILL.md +0 -35
- package/.agent/skills/mindforge-review/SKILL.md +0 -31
- package/.agent/skills/mindforge-review-backlog/SKILL.md +0 -58
- package/.agent/skills/mindforge-review-inbound/SKILL.md +0 -213
- package/.agent/skills/mindforge-review-request/SKILL.md +0 -105
- package/.agent/skills/mindforge-review-request/code-reviewer.md +0 -146
- package/.agent/skills/mindforge-session-report/SKILL.md +0 -16
- package/.agent/skills/mindforge-set-profile/SKILL.md +0 -9
- package/.agent/skills/mindforge-settings/SKILL.md +0 -32
- package/.agent/skills/mindforge-ship/SKILL.md +0 -16
- package/.agent/skills/mindforge-ship_extended/SKILL.md +0 -200
- package/.agent/skills/mindforge-skill-creation/SKILL.md +0 -655
- package/.agent/skills/mindforge-skill-creation/anthropic-best-practices.md +0 -1150
- package/.agent/skills/mindforge-skill-creation/examples/CLAUDE_MD_TESTING.md +0 -189
- package/.agent/skills/mindforge-skill-creation/graphviz-conventions.dot +0 -172
- package/.agent/skills/mindforge-skill-creation/persuasion-principles.md +0 -187
- package/.agent/skills/mindforge-skill-creation/render-graphs.js +0 -168
- package/.agent/skills/mindforge-skill-creation/testing-skills-with-subagents.md +0 -384
- package/.agent/skills/mindforge-stats/SKILL.md +0 -16
- package/.agent/skills/mindforge-swarm-execution/SKILL.md +0 -277
- package/.agent/skills/mindforge-swarm-execution/code-quality-reviewer-prompt.md +0 -26
- package/.agent/skills/mindforge-swarm-execution/implementer-prompt.md +0 -113
- package/.agent/skills/mindforge-swarm-execution/spec-reviewer-prompt.md +0 -61
- package/.agent/skills/mindforge-system-architecture/SKILL.md +0 -136
- package/.agent/skills/mindforge-system-architecture/examples.md +0 -120
- package/.agent/skills/mindforge-system-architecture/scaling-checklist.md +0 -76
- package/.agent/skills/mindforge-tdd/SKILL.md +0 -112
- package/.agent/skills/mindforge-tdd/deep-modules.md +0 -21
- package/.agent/skills/mindforge-tdd/interface-design.md +0 -22
- package/.agent/skills/mindforge-tdd/mocking.md +0 -24
- package/.agent/skills/mindforge-tdd/refactoring.md +0 -21
- package/.agent/skills/mindforge-tdd/tests.md +0 -28
- package/.agent/skills/mindforge-tdd_extended/SKILL.md +0 -371
- package/.agent/skills/mindforge-tdd_extended/testing-anti-patterns.md +0 -299
- package/.agent/skills/mindforge-thread/SKILL.md +0 -123
- package/.agent/skills/mindforge-ui-phase/SKILL.md +0 -24
- package/.agent/skills/mindforge-ui-review/SKILL.md +0 -24
- package/.agent/skills/mindforge-update/SKILL.md +0 -35
- package/.agent/skills/mindforge-validate-phase/SKILL.md +0 -26
- package/.agent/skills/mindforge-verify-work/SKILL.md +0 -30
- package/.agent/skills/mindforge-verify-work_extended/SKILL.md +0 -139
- package/.agent/skills/mindforge-workspace-isolated/SKILL.md +0 -218
- package/.agent/skills/mindforge-workstreams/SKILL.md +0 -65
- package/.agent/workflows/forge:help.md +0 -10
- package/.agent/workflows/forge:init-project.md +0 -35
- package/.agent/workflows/forge:plan-phase.md +0 -33
- package/.agent/workflows/mindforge-add-phase.md +0 -112
- package/.agent/workflows/mindforge-add-tests.md +0 -351
- package/.agent/workflows/mindforge-add-todo.md +0 -158
- package/.agent/workflows/mindforge-audit-milestone.md +0 -332
- package/.agent/workflows/mindforge-audit-uat.md +0 -109
- package/.agent/workflows/mindforge-autonomous.md +0 -815
- package/.agent/workflows/mindforge-check-todos.md +0 -177
- package/.agent/workflows/mindforge-cleanup.md +0 -152
- package/.agent/workflows/mindforge-complete-milestone.md +0 -766
- package/.agent/workflows/mindforge-diagnose-issues.md +0 -220
- package/.agent/workflows/mindforge-discovery-phase.md +0 -289
- package/.agent/workflows/mindforge-discuss-phase-assumptions.md +0 -645
- package/.agent/workflows/mindforge-discuss-phase.md +0 -1047
- package/.agent/workflows/mindforge-do.md +0 -104
- package/.agent/workflows/mindforge-execute-phase.md +0 -838
- package/.agent/workflows/mindforge-execute-plan.md +0 -509
- package/.agent/workflows/mindforge-fast.md +0 -105
- package/.agent/workflows/mindforge-forensics.md +0 -265
- package/.agent/workflows/mindforge-health.md +0 -181
- package/.agent/workflows/mindforge-help.md +0 -606
- package/.agent/workflows/mindforge-insert-phase.md +0 -130
- package/.agent/workflows/mindforge-list-phase-assumptions.md +0 -178
- package/.agent/workflows/mindforge-list-workspaces.md +0 -56
- package/.agent/workflows/mindforge-manager.md +0 -360
- package/.agent/workflows/mindforge-map-codebase.md +0 -370
- package/.agent/workflows/mindforge-milestone-summary.md +0 -223
- package/.agent/workflows/mindforge-new-milestone.md +0 -469
- package/.agent/workflows/mindforge-new-project.md +0 -1226
- package/.agent/workflows/mindforge-new-workspace.md +0 -237
- package/.agent/workflows/mindforge-next.md +0 -97
- package/.agent/workflows/mindforge-node-repair.md +0 -92
- package/.agent/workflows/mindforge-note.md +0 -156
- package/.agent/workflows/mindforge-pause-work.md +0 -176
- package/.agent/workflows/mindforge-plan-milestone-gaps.md +0 -273
- package/.agent/workflows/mindforge-plan-phase.md +0 -877
- package/.agent/workflows/mindforge-plant-seed.md +0 -169
- package/.agent/workflows/mindforge-pr-branch.md +0 -129
- package/.agent/workflows/mindforge-profile-user.md +0 -450
- package/.agent/workflows/mindforge-progress.md +0 -507
- package/.agent/workflows/mindforge-quick.md +0 -732
- package/.agent/workflows/mindforge-remove-phase.md +0 -155
- package/.agent/workflows/mindforge-remove-workspace.md +0 -90
- package/.agent/workflows/mindforge-research-phase.md +0 -74
- package/.agent/workflows/mindforge-resume-project.md +0 -325
- package/.agent/workflows/mindforge-review.md +0 -228
- package/.agent/workflows/mindforge-session-report.md +0 -146
- package/.agent/workflows/mindforge-settings.md +0 -283
- package/.agent/workflows/mindforge-ship.md +0 -228
- package/.agent/workflows/mindforge-stats.md +0 -60
- package/.agent/workflows/mindforge-transition.md +0 -671
- package/.agent/workflows/mindforge-ui-phase.md +0 -290
- package/.agent/workflows/mindforge-ui-review.md +0 -157
- package/.agent/workflows/mindforge-update.md +0 -323
- package/.agent/workflows/mindforge-validate-phase.md +0 -167
- package/.agent/workflows/mindforge-verify-phase.md +0 -254
- package/.agent/workflows/mindforge-verify-work.md +0 -628
- package/.agent/workflows/mindforge:add-backlog.md +0 -24
- package/.agent/workflows/mindforge:agent.md +0 -25
- package/.agent/workflows/mindforge:approve.md +0 -21
- package/.agent/workflows/mindforge:architecture.md +0 -40
- package/.agent/workflows/mindforge:audit.md +0 -33
- package/.agent/workflows/mindforge:auto.md +0 -25
- package/.agent/workflows/mindforge:benchmark.md +0 -36
- package/.agent/workflows/mindforge:brainstorming.md +0 -16
- package/.agent/workflows/mindforge:browse.md +0 -29
- package/.agent/workflows/mindforge:complete-milestone.md +0 -21
- package/.agent/workflows/mindforge:costs.md +0 -14
- package/.agent/workflows/mindforge:cross-review.md +0 -20
- package/.agent/workflows/mindforge:dashboard.md +0 -101
- package/.agent/workflows/mindforge:debug.md +0 -131
- package/.agent/workflows/mindforge:discuss-phase.md +0 -141
- package/.agent/workflows/mindforge:do.md +0 -25
- package/.agent/workflows/mindforge:execute-phase.md +0 -205
- package/.agent/workflows/mindforge:executor.md +0 -18
- package/.agent/workflows/mindforge:health.md +0 -24
- package/.agent/workflows/mindforge:help.md +0 -26
- package/.agent/workflows/mindforge:identity.md +0 -18
- package/.agent/workflows/mindforge:init-org.md +0 -134
- package/.agent/workflows/mindforge:init-project.md +0 -185
- package/.agent/workflows/mindforge:install-skill.md +0 -27
- package/.agent/workflows/mindforge:learn.md +0 -146
- package/.agent/workflows/mindforge:map-codebase.md +0 -301
- package/.agent/workflows/mindforge:marketplace.md +0 -123
- package/.agent/workflows/mindforge:memory.md +0 -18
- package/.agent/workflows/mindforge:metrics.md +0 -25
- package/.agent/workflows/mindforge:migrate.md +0 -43
- package/.agent/workflows/mindforge:milestone.md +0 -15
- package/.agent/workflows/mindforge:new-runtime.md +0 -22
- package/.agent/workflows/mindforge:next.md +0 -108
- package/.agent/workflows/mindforge:note.md +0 -27
- package/.agent/workflows/mindforge:plan-phase.md +0 -139
- package/.agent/workflows/mindforge:planner.md +0 -18
- package/.agent/workflows/mindforge:plant-seed.md +0 -24
- package/.agent/workflows/mindforge:plugins.md +0 -43
- package/.agent/workflows/mindforge:pr-review.md +0 -44
- package/.agent/workflows/mindforge:profile-team.md +0 -26
- package/.agent/workflows/mindforge:publish-skill.md +0 -22
- package/.agent/workflows/mindforge:qa.md +0 -19
- package/.agent/workflows/mindforge:quick.md +0 -138
- package/.agent/workflows/mindforge:release.md +0 -13
- package/.agent/workflows/mindforge:remember.md +0 -29
- package/.agent/workflows/mindforge:research.md +0 -15
- package/.agent/workflows/mindforge:researcher.md +0 -18
- package/.agent/workflows/mindforge:retrospective.md +0 -29
- package/.agent/workflows/mindforge:review-backlog.md +0 -26
- package/.agent/workflows/mindforge:review.md +0 -160
- package/.agent/workflows/mindforge:reviewer.md +0 -18
- package/.agent/workflows/mindforge:security-scan.md +0 -236
- package/.agent/workflows/mindforge:session-report.md +0 -31
- package/.agent/workflows/mindforge:ship.md +0 -108
- package/.agent/workflows/mindforge:skills.md +0 -144
- package/.agent/workflows/mindforge:soul.md +0 -54
- package/.agent/workflows/mindforge:status.md +0 -107
- package/.agent/workflows/mindforge:steer.md +0 -16
- package/.agent/workflows/mindforge:sync-confluence.md +0 -14
- package/.agent/workflows/mindforge:sync-jira.md +0 -15
- package/.agent/workflows/mindforge:tdd.md +0 -46
- package/.agent/workflows/mindforge:tokens.md +0 -11
- package/.agent/workflows/mindforge:tool.md +0 -18
- package/.agent/workflows/mindforge:ui-phase.md +0 -27
- package/.agent/workflows/mindforge:ui-review.md +0 -28
- package/.agent/workflows/mindforge:update.md +0 -45
- package/.agent/workflows/mindforge:validate-phase.md +0 -25
- package/.agent/workflows/mindforge:verify-phase.md +0 -65
- package/.agent/workflows/mindforge:workspace.md +0 -32
- package/.agent/workflows/mindforge:workstreams.md +0 -27
- package/.agent/workflows/publish-release.md +0 -36
- package/.claude/CLAUDE.md +0 -102
- package/.claude/commands/forge/help.md +0 -7
- package/.claude/commands/forge/init-project.md +0 -32
- package/.claude/commands/forge/plan-phase.md +0 -30
- package/.claude/commands/mindforge/add-backlog.md +0 -32
- package/.claude/commands/mindforge/agent.md +0 -31
- package/.claude/commands/mindforge/approve.md +0 -22
- package/.claude/commands/mindforge/audit.md +0 -34
- package/.claude/commands/mindforge/auto.md +0 -26
- package/.claude/commands/mindforge/benchmark.md +0 -37
- package/.claude/commands/mindforge/browse.md +0 -30
- package/.claude/commands/mindforge/complete-milestone.md +0 -22
- package/.claude/commands/mindforge/costs.md +0 -15
- package/.claude/commands/mindforge/cross-review.md +0 -21
- package/.claude/commands/mindforge/dashboard.md +0 -102
- package/.claude/commands/mindforge/debug.md +0 -133
- package/.claude/commands/mindforge/discuss-phase.md +0 -142
- package/.claude/commands/mindforge/do.md +0 -31
- package/.claude/commands/mindforge/execute-phase.md +0 -200
- package/.claude/commands/mindforge/health.md +0 -31
- package/.claude/commands/mindforge/help.md +0 -33
- package/.claude/commands/mindforge/init-org.md +0 -135
- package/.claude/commands/mindforge/init-project.md +0 -170
- package/.claude/commands/mindforge/install-skill.md +0 -28
- package/.claude/commands/mindforge/learn.md +0 -147
- package/.claude/commands/mindforge/learning.md +0 -20
- package/.claude/commands/mindforge/map-codebase.md +0 -302
- package/.claude/commands/mindforge/marketplace.md +0 -124
- package/.claude/commands/mindforge/metrics.md +0 -26
- package/.claude/commands/mindforge/migrate.md +0 -44
- package/.claude/commands/mindforge/milestone.md +0 -16
- package/.claude/commands/mindforge/new-runtime.md +0 -23
- package/.claude/commands/mindforge/next.md +0 -109
- package/.claude/commands/mindforge/note.md +0 -35
- package/.claude/commands/mindforge/plan-phase.md +0 -131
- package/.claude/commands/mindforge/plant-seed.md +0 -31
- package/.claude/commands/mindforge/plugins.md +0 -44
- package/.claude/commands/mindforge/pr-review.md +0 -45
- package/.claude/commands/mindforge/profile-team.md +0 -27
- package/.claude/commands/mindforge/publish-skill.md +0 -23
- package/.claude/commands/mindforge/qa.md +0 -20
- package/.claude/commands/mindforge/quick.md +0 -139
- package/.claude/commands/mindforge/record-learning.md +0 -22
- package/.claude/commands/mindforge/release.md +0 -14
- package/.claude/commands/mindforge/remember.md +0 -30
- package/.claude/commands/mindforge/research.md +0 -16
- package/.claude/commands/mindforge/retrospective.md +0 -31
- package/.claude/commands/mindforge/review-backlog.md +0 -34
- package/.claude/commands/mindforge/review.md +0 -161
- package/.claude/commands/mindforge/security-scan.md +0 -242
- package/.claude/commands/mindforge/session-report.md +0 -39
- package/.claude/commands/mindforge/ship.md +0 -111
- package/.claude/commands/mindforge/skills.md +0 -145
- package/.claude/commands/mindforge/status.md +0 -113
- package/.claude/commands/mindforge/steer.md +0 -17
- package/.claude/commands/mindforge/sync-confluence.md +0 -15
- package/.claude/commands/mindforge/sync-jira.md +0 -16
- package/.claude/commands/mindforge/tokens.md +0 -12
- package/.claude/commands/mindforge/ui-phase.md +0 -34
- package/.claude/commands/mindforge/ui-review.md +0 -36
- package/.claude/commands/mindforge/update.md +0 -46
- package/.claude/commands/mindforge/validate-phase.md +0 -31
- package/.claude/commands/mindforge/verify-phase.md +0 -66
- package/.claude/commands/mindforge/workspace.md +0 -33
- package/.claude/commands/mindforge/workstreams.md +0 -35
- package/.claude/settings.local.json +0 -16
- package/.mindforge/audit/AUDIT-SCHEMA.md +0 -470
- package/.mindforge/browser/daemon-protocol.md +0 -24
- package/.mindforge/browser/qa-engine.md +0 -16
- package/.mindforge/browser/session-manager.md +0 -18
- package/.mindforge/browser/visual-verify-spec.md +0 -31
- package/.mindforge/celestial.db +0 -0
- package/.mindforge/ci/ci-config-schema.md +0 -21
- package/.mindforge/ci/ci-mode.md +0 -179
- package/.mindforge/ci/github-actions-adapter.md +0 -224
- package/.mindforge/ci/gitlab-ci-adapter.md +0 -31
- package/.mindforge/ci/jenkins-adapter.md +0 -44
- package/.mindforge/dashboard/api-reference.md +0 -122
- package/.mindforge/dashboard/dashboard-spec.md +0 -96
- package/.mindforge/distribution/marketplace.md +0 -53
- package/.mindforge/distribution/registry-client.md +0 -166
- package/.mindforge/distribution/registry-schema.md +0 -96
- package/.mindforge/distribution/skill-publisher.md +0 -44
- package/.mindforge/distribution/skill-validator.md +0 -74
- package/.mindforge/governance/GOVERNANCE-CONFIG.md +0 -17
- package/.mindforge/governance/approval-workflow.md +0 -37
- package/.mindforge/governance/change-classifier.md +0 -63
- package/.mindforge/governance/compliance-gates.md +0 -31
- package/.mindforge/governance/policies/sovereign-default.json +0 -16
- package/.mindforge/integrations/confluence.md +0 -27
- package/.mindforge/integrations/connection-manager.md +0 -163
- package/.mindforge/integrations/github.md +0 -25
- package/.mindforge/integrations/gitlab.md +0 -13
- package/.mindforge/integrations/jira.md +0 -102
- package/.mindforge/integrations/slack.md +0 -41
- package/.mindforge/intelligence/antipattern-detector.md +0 -75
- package/.mindforge/intelligence/difficulty-scorer.md +0 -55
- package/.mindforge/intelligence/health-engine.md +0 -208
- package/.mindforge/intelligence/skill-gap-analyser.md +0 -40
- package/.mindforge/intelligence/smart-compaction.md +0 -71
- package/.mindforge/memory/MEMORY-SCHEMA.md +0 -155
- package/.mindforge/memory/engine/capture-protocol.md +0 -36
- package/.mindforge/memory/engine/global-sync-spec.md +0 -42
- package/.mindforge/memory/engine/retrieval-spec.md +0 -44
- package/.mindforge/memory/sync-manifest.json +0 -6
- package/.mindforge/metrics/METRICS-SCHEMA.md +0 -42
- package/.mindforge/metrics/quality-tracker.md +0 -32
- package/.mindforge/models/model-registry.md +0 -48
- package/.mindforge/models/model-router.md +0 -30
- package/.mindforge/monorepo/cross-package-planner.md +0 -114
- package/.mindforge/monorepo/dependency-graph-builder.md +0 -32
- package/.mindforge/monorepo/workspace-detector.md +0 -129
- package/.mindforge/org/CONVENTIONS.md +0 -62
- package/.mindforge/org/ORG.md +0 -51
- package/.mindforge/org/SECURITY.md +0 -50
- package/.mindforge/org/TOOLS.md +0 -53
- package/.mindforge/org/integrations/INTEGRATIONS-CONFIG.md +0 -58
- package/.mindforge/org/skills/MANIFEST.md +0 -15
- package/.mindforge/plugins/PLUGINS-MANIFEST.md +0 -23
- package/.mindforge/plugins/plugin-loader.md +0 -93
- package/.mindforge/plugins/plugin-registry.md +0 -44
- package/.mindforge/plugins/plugin-schema.md +0 -68
- package/.mindforge/pr-review/ai-reviewer.md +0 -266
- package/.mindforge/pr-review/finding-formatter.md +0 -46
- package/.mindforge/pr-review/review-prompt-templates.md +0 -44
- package/.mindforge/production/compatibility-layer.md +0 -39
- package/.mindforge/production/migration-engine.md +0 -52
- package/.mindforge/production/production-checklist.md +0 -76
- package/.mindforge/production/token-optimiser.md +0 -68
- package/.mindforge/skills-builder/auto-capture-protocol.md +0 -88
- package/.mindforge/skills-builder/learn-protocol.md +0 -161
- package/.mindforge/skills-builder/quality-scoring.md +0 -120
- package/.mindforge/team/TEAM-PROFILE.md +0 -42
- package/.mindforge/team/multi-handoff.md +0 -23
- package/.mindforge/team/profiles/README.md +0 -13
- package/.mindforge/team/session-merger.md +0 -18
- package/.planning/ARCHITECTURE.md +0 -0
- package/.planning/HANDOFF.json +0 -8
- package/.planning/PROJECT.md +0 -33
- package/.planning/RELEASE-CHECKLIST.md +0 -68
- package/.planning/REQUIREMENTS.md +0 -35
- package/.planning/ROADMAP.md +0 -12
- package/.planning/STATE.md +0 -36
- package/.planning/approvals/.gitkeep +0 -1
- package/.planning/archive/.gitkeep +0 -1
- package/.planning/audit-archive/.gitkeep +0 -1
- package/.planning/decisions/.gitkeep +0 -0
- package/.planning/jira-sync.json +0 -1
- package/.planning/milestones/.gitkeep +0 -1
- package/.planning/phases/.gitkeep +0 -0
- package/.planning/research/.gitkeep +0 -0
- package/.planning/screenshots/.gitkeep +0 -0
- package/.planning/slack-threads.json +0 -1
- package/docs/CAPABILITIES-MANIFEST.md +0 -64
- package/docs/Context/Master-Context.md +0 -731
- package/docs/INTELLIGENCE-MESH.md +0 -37
- package/docs/MIND-FORGE-REFERENCE-V6.md +0 -96
- package/docs/PERSONAS.md +0 -960
- package/docs/References/audit-events.md +0 -59
- package/docs/References/checkpoints.md +0 -778
- package/docs/References/commands.md +0 -107
- package/docs/References/config-reference.md +0 -81
- package/docs/References/continuation-format.md +0 -249
- package/docs/References/decimal-phase-calculation.md +0 -64
- package/docs/References/git-integration.md +0 -295
- package/docs/References/git-planning-commit.md +0 -38
- package/docs/References/model-profile-resolution.md +0 -36
- package/docs/References/model-profiles.md +0 -139
- package/docs/References/phase-argument-parsing.md +0 -61
- package/docs/References/planning-config.md +0 -202
- package/docs/References/questioning.md +0 -162
- package/docs/References/sdk-api.md +0 -53
- package/docs/References/skills-api.md +0 -57
- package/docs/References/tdd.md +0 -263
- package/docs/References/ui-brand.md +0 -160
- package/docs/References/user-profiling.md +0 -681
- package/docs/References/verification-patterns.md +0 -612
- package/docs/References/workstream-flag.md +0 -58
- package/docs/Templates/Agents/CLAUDE-MD.md +0 -122
- package/docs/Templates/Agents/COPILOT-INSTRUCTIONS.md +0 -7
- package/docs/Templates/Agents/DEBUGGER-PROMPT.md +0 -91
- package/docs/Templates/Agents/PLANNER-PROMPT.md +0 -117
- package/docs/Templates/Codebase/architecture.md +0 -255
- package/docs/Templates/Codebase/concerns.md +0 -310
- package/docs/Templates/Codebase/conventions.md +0 -307
- package/docs/Templates/Codebase/integrations.md +0 -280
- package/docs/Templates/Codebase/stack.md +0 -186
- package/docs/Templates/Codebase/structure.md +0 -285
- package/docs/Templates/Codebase/testing.md +0 -480
- package/docs/Templates/Execution/CONTINUE-HERE.md +0 -78
- package/docs/Templates/Execution/DISCUSSION-LOG.md +0 -63
- package/docs/Templates/Execution/PHASE-PROMPT.md +0 -610
- package/docs/Templates/Execution/STATE.md +0 -176
- package/docs/Templates/Execution/SUMMARY-COMPLEX.md +0 -59
- package/docs/Templates/Execution/SUMMARY-MINIMAL.md +0 -41
- package/docs/Templates/Execution/SUMMARY-STANDARD.md +0 -48
- package/docs/Templates/Execution/SUMMARY.md +0 -248
- package/docs/Templates/Profile/DEV-PREFERENCES.md +0 -21
- package/docs/Templates/Profile/USER-PROFILE.md +0 -146
- package/docs/Templates/Profile/USER-SETUP.md +0 -311
- package/docs/Templates/Project/AGENTS_LEARNING.md +0 -88
- package/docs/Templates/Project/DISCOVERY.md +0 -146
- package/docs/Templates/Project/MILESTONE-ARCHIVE.md +0 -123
- package/docs/Templates/Project/MILESTONE.md +0 -115
- package/docs/Templates/Project/PROJECT.md +0 -206
- package/docs/Templates/Project/REQUIREMENTS.md +0 -231
- package/docs/Templates/Project/RETROSPECTIVE.md +0 -54
- package/docs/Templates/Project/ROADMAP.md +0 -202
- package/docs/Templates/Quality/DEBUG.md +0 -164
- package/docs/Templates/Quality/UAT.md +0 -280
- package/docs/Templates/Quality/UI-SPEC.md +0 -100
- package/docs/Templates/Quality/VALIDATION.md +0 -76
- package/docs/Templates/Quality/VERIFICATION-REPORT.md +0 -322
- package/docs/Templates/Research/ARCHITECTURE.md +0 -204
- package/docs/Templates/Research/FEATURES.md +0 -147
- package/docs/Templates/Research/PITFALLS.md +0 -200
- package/docs/Templates/Research/STACK.md +0 -120
- package/docs/Templates/Research/SUMMARY.md +0 -170
- package/docs/Templates/System/CONFIG.json +0 -43
- package/docs/Templates/System/CONTEXT.md +0 -352
- package/docs/adr/ADR-024-browser-localhost-only.md +0 -17
- package/docs/adr/ADR-025-visual-verify-failure-treatment.md +0 -19
- package/docs/adr/ADR-026-session-persistence-security.md +0 -20
- package/docs/adr/ADR-042-ads-protocol.md +0 -30
- package/docs/architecture/NEXUS-DASHBOARD.md +0 -35
- package/docs/architecture/PAR-ZTS-SURVEY.md +0 -43
- package/docs/architecture/README.md +0 -78
- package/docs/architecture/V3-CORE.md +0 -52
- package/docs/architecture/V4-SWARM-MESH.md +0 -77
- package/docs/architecture/V5-ENTERPRISE.md +0 -131
- package/docs/architecture/V6-SOVEREIGN.md +0 -43
- package/docs/architecture/V8-SRE.md +0 -88
- package/docs/architecture/V9-BEDROCK.md +0 -162
- package/docs/architecture/adr-039-multi-runtime-support.md +0 -20
- package/docs/architecture/adr-040-additive-schema-migration.md +0 -21
- package/docs/architecture/adr-041-stable-runtime-interface-contract.md +0 -20
- package/docs/architecture/decision-records-index.md +0 -29
- package/docs/ci-cd-integration.md +0 -30
- package/docs/ci-cd.md +0 -92
- package/docs/ci-quickstart.md +0 -78
- package/docs/commands-skills/DISCOVERED_SKILLS.md +0 -21
- package/docs/contributing/CONTRIBUTING.md +0 -38
- package/docs/contributing/plugin-authoring.md +0 -50
- package/docs/contributing/skill-authoring.md +0 -41
- package/docs/enterprise-setup.md +0 -25
- package/docs/feature-dashboard.md +0 -63
- package/docs/governance-guide.md +0 -134
- package/docs/monorepo-guide.md +0 -26
- package/docs/persona-customisation.md +0 -56
- package/docs/publishing-guide.md +0 -43
- package/docs/quick-verify.md +0 -33
- package/docs/registry/AGENTS.md +0 -37
- package/docs/registry/COMMANDS.md +0 -87
- package/docs/registry/HOOKS.md +0 -38
- package/docs/registry/PERSONAS.md +0 -64
- package/docs/registry/README.md +0 -27
- package/docs/registry/SKILLS.md +0 -142
- package/docs/registry/WORKFLOWS.md +0 -72
- package/docs/release-checklist-guide.md +0 -37
- package/docs/requirements.md +0 -29
- package/docs/security/SECURITY.md +0 -55
- package/docs/security/ZTAI-OVERVIEW.md +0 -37
- package/docs/security/penetration-test-results.md +0 -31
- package/docs/security/threat-model.md +0 -142
- package/docs/skills-authoring-guide.md +0 -176
- package/docs/skills-publishing-guide.md +0 -22
- package/docs/team-setup-guide.md +0 -21
- package/docs/testing-current-version.md +0 -130
- package/docs/tutorial.md +0 -162
- package/docs/upgrade.md +0 -58
- package/docs/usp-features.md +0 -102
- package/docs/workflow-atlas.md +0 -57
|
@@ -1,37 +1,48 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MindForge — Auto-Runner Engine
|
|
3
3
|
* The main entry point for /mindforge:auto.
|
|
4
|
+
*
|
|
5
|
+
* Thin orchestrator that delegates to extracted modules:
|
|
6
|
+
* - task-dispatcher.js (task parsing, prioritization, dispatch)
|
|
7
|
+
* - wave-executor.js (wave grouping and sequential execution)
|
|
8
|
+
* - state-manager.js (state transitions, HANDOFF/auto-state persistence)
|
|
9
|
+
* - audit-writer.js (async buffered JSONL audit logging)
|
|
4
10
|
*/
|
|
5
11
|
'use strict';
|
|
6
12
|
|
|
7
|
-
const fs = require('fs');
|
|
8
13
|
const path = require('path');
|
|
14
|
+
const fs = require('fs');
|
|
9
15
|
const repairOperator = require('./repair-operator');
|
|
10
16
|
const stuckMonitor = require('./stuck-monitor');
|
|
11
|
-
const steeringManager = require('./steer');
|
|
12
|
-
const progressStream = require('./progress-stream');
|
|
13
17
|
const headlessAdapter = require('./headless');
|
|
18
|
+
const progressStream = require('./progress-stream');
|
|
14
19
|
const ContextRefactorer = require('./context-refactorer');
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
20
|
+
|
|
21
|
+
// Extracted modules (lightweight, always needed)
|
|
22
|
+
const { createAuditWriter } = require('./audit-writer');
|
|
23
|
+
const { createStateManager } = require('./state-manager');
|
|
24
|
+
const { createWaveExecutor } = require('./wave-executor');
|
|
25
|
+
|
|
26
|
+
// ── Lazy-loaded heavy modules ────────────────────────────────────────────────
|
|
27
|
+
// These are only required at the point of first use to reduce startup cost.
|
|
28
|
+
let _KnowledgeCapture;
|
|
29
|
+
let _TemporalHub;
|
|
30
|
+
let _MeshSelfHealer;
|
|
31
|
+
let _IntelligenceInterlock;
|
|
32
|
+
let _ReasonSourceAligner;
|
|
33
|
+
let _SelfCorrectiveSynthesizer;
|
|
34
|
+
let _Sentinel;
|
|
35
|
+
let _ShadowMirror;
|
|
36
|
+
let _AdversarialSRE;
|
|
37
|
+
let _SLIVerifier;
|
|
38
|
+
let _PolicyEngine;
|
|
39
|
+
let _ZTAIManager;
|
|
40
|
+
let _HandoverManager;
|
|
41
|
+
|
|
42
|
+
function lazyRequire(cached, modulePath) {
|
|
43
|
+
if (!cached) return require(modulePath);
|
|
44
|
+
return cached;
|
|
45
|
+
}
|
|
35
46
|
|
|
36
47
|
class AutoRunner {
|
|
37
48
|
constructor(options = {}) {
|
|
@@ -40,343 +51,230 @@ class AutoRunner {
|
|
|
40
51
|
}
|
|
41
52
|
this.phase = String(options.phase ?? 0);
|
|
42
53
|
this.isHeadless = options.headless || false;
|
|
43
|
-
this.auditPath = path.join(process.cwd(), '.planning', 'AUDIT.jsonl');
|
|
44
|
-
this.statePath = path.join(process.cwd(), '.planning', 'auto-state.json');
|
|
45
|
-
this.handoffPath = path.join(process.cwd(), '.planning', 'HANDOFF.json');
|
|
46
|
-
this.monitor = new stuckMonitor(this.auditPath);
|
|
47
54
|
this.isPaused = false;
|
|
48
|
-
this.handoverManager = new HandoverManager();
|
|
49
55
|
|
|
50
|
-
//
|
|
56
|
+
// Paths
|
|
57
|
+
const planningDir = path.join(process.cwd(), '.planning');
|
|
58
|
+
this.auditPath = path.join(planningDir, 'AUDIT.jsonl');
|
|
59
|
+
this.statePath = path.join(planningDir, 'auto-state.json');
|
|
60
|
+
this.handoffPath = path.join(planningDir, 'HANDOFF.json');
|
|
61
|
+
|
|
62
|
+
// Extracted module instances
|
|
63
|
+
this.stateManager = createStateManager(planningDir);
|
|
64
|
+
this.auditWriter = createAuditWriter(this.auditPath);
|
|
65
|
+
this.waveExecutor = createWaveExecutor({
|
|
66
|
+
onTaskStart: ({ task, wave }) => this.writeAudit({ event: 'task_started', phase: this.phase, wave: wave + 1, task_id: task.id, task_name: task.name }),
|
|
67
|
+
onTaskComplete: ({ task, wave, duration_ms }) => this.writeAudit({ event: 'task_completed', phase: this.phase, wave: wave + 1, task_id: task.id, task_name: task.name, duration_ms }),
|
|
68
|
+
onWaveStart: ({ wave, taskCount }) => this.writeAudit({ event: 'wave_started', phase: this.phase, wave: wave + 1, task_count: taskCount }),
|
|
69
|
+
onWaveComplete: ({ wave }) => this.writeAudit({ event: 'wave_completed', phase: this.phase, wave: wave + 1 }),
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
// Infrastructure (lightweight — always loaded)
|
|
73
|
+
this.monitor = new stuckMonitor(this.auditPath);
|
|
74
|
+
this.refactorer = new ContextRefactorer();
|
|
75
|
+
this.c2cThreshold = 0.65;
|
|
76
|
+
this._sessionId = options.sessionId;
|
|
77
|
+
|
|
78
|
+
// Heavy modules are lazily initialized on first access
|
|
79
|
+
this._handoverManager = null;
|
|
80
|
+
this._policyEngine = null;
|
|
81
|
+
this._interlock = null;
|
|
82
|
+
this._aligner = null;
|
|
83
|
+
this._synthesizer = null;
|
|
84
|
+
this._sentinel = null;
|
|
85
|
+
this._mirror = null;
|
|
86
|
+
this._adversary = null;
|
|
87
|
+
this._verifier = null;
|
|
88
|
+
|
|
89
|
+
// Legacy compat: wave state exposed for direct access in tests
|
|
51
90
|
this.currentWaveIndex = 0;
|
|
52
91
|
this.waves = [];
|
|
53
92
|
this.completedTasks = new Set();
|
|
93
|
+
}
|
|
54
94
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
this.
|
|
95
|
+
// ── Lazy accessors for heavy modules ──────────────────────────────────────
|
|
96
|
+
get handoverManager() {
|
|
97
|
+
if (!this._handoverManager) {
|
|
98
|
+
_HandoverManager = lazyRequire(_HandoverManager, '../engine/handover-manager');
|
|
99
|
+
this._handoverManager = new _HandoverManager();
|
|
100
|
+
}
|
|
101
|
+
return this._handoverManager;
|
|
102
|
+
}
|
|
58
103
|
|
|
59
|
-
|
|
60
|
-
this.
|
|
61
|
-
|
|
104
|
+
get policyEngine() {
|
|
105
|
+
if (!this._policyEngine) {
|
|
106
|
+
_PolicyEngine = lazyRequire(_PolicyEngine, '../governance/policy-engine');
|
|
107
|
+
this._policyEngine = new _PolicyEngine();
|
|
108
|
+
}
|
|
109
|
+
return this._policyEngine;
|
|
110
|
+
}
|
|
62
111
|
|
|
63
|
-
|
|
64
|
-
this.
|
|
112
|
+
get interlock() {
|
|
113
|
+
if (!this._interlock) {
|
|
114
|
+
_IntelligenceInterlock = lazyRequire(_IntelligenceInterlock, '../engine/intelligence-interlock');
|
|
115
|
+
this._interlock = _IntelligenceInterlock;
|
|
116
|
+
}
|
|
117
|
+
return this._interlock;
|
|
118
|
+
}
|
|
65
119
|
|
|
66
|
-
|
|
67
|
-
this.
|
|
120
|
+
get aligner() {
|
|
121
|
+
if (!this._aligner) {
|
|
122
|
+
_ReasonSourceAligner = lazyRequire(_ReasonSourceAligner, '../engine/reason-source-aligner');
|
|
123
|
+
this._aligner = _ReasonSourceAligner;
|
|
124
|
+
}
|
|
125
|
+
return this._aligner;
|
|
126
|
+
}
|
|
68
127
|
|
|
69
|
-
|
|
70
|
-
this.
|
|
128
|
+
get synthesizer() {
|
|
129
|
+
if (!this._synthesizer) {
|
|
130
|
+
_SelfCorrectiveSynthesizer = lazyRequire(_SelfCorrectiveSynthesizer, '../engine/self-corrective-synthesizer');
|
|
131
|
+
this._synthesizer = _SelfCorrectiveSynthesizer;
|
|
132
|
+
}
|
|
133
|
+
return this._synthesizer;
|
|
134
|
+
}
|
|
71
135
|
|
|
72
|
-
|
|
73
|
-
this.
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
136
|
+
get sentinel() {
|
|
137
|
+
if (!this._sentinel) {
|
|
138
|
+
_Sentinel = lazyRequire(_Sentinel, '../sre/sentinel');
|
|
139
|
+
this._sentinel = new _Sentinel();
|
|
140
|
+
}
|
|
141
|
+
return this._sentinel;
|
|
77
142
|
}
|
|
78
143
|
|
|
79
|
-
|
|
80
|
-
|
|
144
|
+
get mirror() {
|
|
145
|
+
if (!this._mirror) {
|
|
146
|
+
_ShadowMirror = lazyRequire(_ShadowMirror, '../sre/shadow-mirror');
|
|
147
|
+
this._mirror = new _ShadowMirror();
|
|
148
|
+
}
|
|
149
|
+
return this._mirror;
|
|
150
|
+
}
|
|
81
151
|
|
|
82
|
-
|
|
83
|
-
|
|
152
|
+
get adversary() {
|
|
153
|
+
if (!this._adversary) {
|
|
154
|
+
_AdversarialSRE = lazyRequire(_AdversarialSRE, '../sre/adversarial-sre');
|
|
155
|
+
this._adversary = new _AdversarialSRE({ sessionId: this._sessionId });
|
|
84
156
|
}
|
|
157
|
+
return this._adversary;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
get verifier() {
|
|
161
|
+
if (!this._verifier) {
|
|
162
|
+
_SLIVerifier = lazyRequire(_SLIVerifier, '../sre/sli-verifier');
|
|
163
|
+
this._verifier = new _SLIVerifier();
|
|
164
|
+
}
|
|
165
|
+
return this._verifier;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
async run() {
|
|
169
|
+
console.log(`🚀 Starting MindForge Autonomous Engine [Phase ${this.phase}]`);
|
|
170
|
+
if (this.isHeadless) headlessAdapter.setupHeadlessMode(this);
|
|
85
171
|
|
|
86
|
-
// 1. Pre-flight checks
|
|
87
172
|
this.runPreFlight();
|
|
88
173
|
|
|
89
|
-
// 2. Main Wave Loop
|
|
90
174
|
while (await this.hasNextWave()) {
|
|
91
175
|
if (this.isPaused) break;
|
|
92
|
-
|
|
93
|
-
// Pillar 2 (APO): Pre-execution Policy Check
|
|
94
176
|
const permit = await this.evaluateWavePolicy();
|
|
95
|
-
if (!permit) {
|
|
96
|
-
console.error('🛑 POLICY VIOLATION: Execution aborted by Agentic Policy Orchestrator.');
|
|
97
|
-
this.writeAudit({ event: 'auto_mode_denied', reason: 'Policy violation detected' });
|
|
98
|
-
break;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
// Pillar 3 (PAR): Confidence-to-Cost Arbitrage
|
|
177
|
+
if (!permit) { this.writeAudit({ event: 'auto_mode_denied', reason: 'Policy violation detected' }); break; }
|
|
102
178
|
const isReliable = await this.checkArbitrage();
|
|
103
|
-
if (!isReliable) {
|
|
104
|
-
console.warn('⚠️ PAR ARBITRAGE: Confidence-to-Cost ratio below threshold. Escalating to human.');
|
|
105
|
-
this.writeAudit({ event: 'auto_mode_escalated', reason: 'Low C2C ratio' });
|
|
106
|
-
break;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
// Pillar 3 (PAR): Context Density Refactoring
|
|
179
|
+
if (!isReliable) { this.writeAudit({ event: 'auto_mode_escalated', reason: 'Low C2C ratio' }); break; }
|
|
110
180
|
await this.checkContextDensity();
|
|
111
|
-
|
|
112
|
-
// Pillar 7 (DHH): Check for Human Steering
|
|
113
181
|
await this.checkHumanSteering(isReliable);
|
|
114
|
-
|
|
115
|
-
// v6.3 IDC: Check for Intelligence Drift & Upgrade Signal
|
|
116
182
|
const idcStatus = await this.checkIntelligenceDrift();
|
|
117
|
-
|
|
118
|
-
// v6.5 RSA: Check for Mission Fidelity Alignment
|
|
119
183
|
await this.checkMissionFidelity();
|
|
120
|
-
|
|
121
|
-
// v9.0 SRE: Autonomous Signal Check (Pillar XX)
|
|
122
184
|
await this.checkSRESignals();
|
|
123
|
-
|
|
124
185
|
await this.executeWave(idcStatus);
|
|
125
186
|
}
|
|
126
187
|
|
|
127
188
|
await this.complete();
|
|
128
189
|
}
|
|
129
190
|
|
|
130
|
-
// v9 Pillar XXIV: Grounded pre-flight — validates state before execution
|
|
131
191
|
runPreFlight() {
|
|
132
192
|
console.log('🔍 Running pre-flight checks...');
|
|
133
|
-
|
|
134
|
-
if (!fs.existsSync(this.handoffPath)) {
|
|
135
|
-
throw new Error('HANDOFF.json not found — run /mindforge:plan-phase first');
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
let handoff;
|
|
139
|
-
try {
|
|
140
|
-
handoff = JSON.parse(fs.readFileSync(this.handoffPath, 'utf8'));
|
|
141
|
-
} catch (e) {
|
|
142
|
-
throw new Error(`HANDOFF.json is malformed: ${e.message}`);
|
|
143
|
-
}
|
|
144
|
-
if (!handoff.handoffs || !Array.isArray(handoff.handoffs)) {
|
|
145
|
-
throw new Error('HANDOFF.json has no handoffs array');
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
// Parse tasks into wave groups from the handoffs array
|
|
193
|
+
const handoff = this.stateManager.readHandoff();
|
|
149
194
|
this.waves = this._buildWaves(handoff.handoffs);
|
|
150
195
|
this.currentWaveIndex = 0;
|
|
151
196
|
|
|
152
|
-
|
|
153
|
-
if (
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
}
|
|
160
|
-
if (typeof state.currentWaveIndex === 'number') {
|
|
161
|
-
this.currentWaveIndex = state.currentWaveIndex;
|
|
162
|
-
}
|
|
163
|
-
} catch (e) {
|
|
164
|
-
console.warn(` auto-state.json is corrupt — starting fresh: ${e.message}`);
|
|
165
|
-
}
|
|
197
|
+
const savedState = this.stateManager.getState();
|
|
198
|
+
if (savedState.completedTasks) {
|
|
199
|
+
savedState.completedTasks.forEach(t => this.completedTasks.add(t));
|
|
200
|
+
console.log(` Resuming: ${this.completedTasks.size} tasks already completed`);
|
|
201
|
+
}
|
|
202
|
+
if (typeof savedState.currentWaveIndex === 'number') {
|
|
203
|
+
this.currentWaveIndex = savedState.currentWaveIndex;
|
|
166
204
|
}
|
|
167
205
|
|
|
168
|
-
this.updateState({
|
|
169
|
-
|
|
170
|
-
phase: this.phase,
|
|
171
|
-
totalWaves: this.waves.length,
|
|
172
|
-
startedAt: new Date().toISOString(),
|
|
173
|
-
});
|
|
174
|
-
|
|
175
|
-
this.writeAudit({
|
|
176
|
-
event: 'auto_mode_started',
|
|
177
|
-
phase: this.phase,
|
|
178
|
-
total_waves: this.waves.length,
|
|
179
|
-
total_tasks: this.waves.reduce((sum, w) => sum + w.tasks.length, 0),
|
|
180
|
-
timestamp: new Date().toISOString(),
|
|
181
|
-
});
|
|
182
|
-
|
|
206
|
+
this.updateState({ status: 'running', phase: this.phase, totalWaves: this.waves.length, startedAt: new Date().toISOString() });
|
|
207
|
+
this.writeAudit({ event: 'auto_mode_started', phase: this.phase, total_waves: this.waves.length, total_tasks: this.waves.reduce((sum, w) => sum + w.tasks.length, 0), timestamp: new Date().toISOString() });
|
|
183
208
|
console.log(` Phase ${this.phase}: ${this.waves.length} waves, ${this.waves.reduce((s, w) => s + w.tasks.length, 0)} tasks`);
|
|
184
209
|
}
|
|
185
210
|
|
|
186
|
-
// v9 Pillar XXIV: Real wave detection from HANDOFF state
|
|
187
211
|
async hasNextWave() {
|
|
188
212
|
if (this.currentWaveIndex >= this.waves.length) return false;
|
|
189
|
-
|
|
190
213
|
const wave = this.waves[this.currentWaveIndex];
|
|
191
|
-
|
|
192
|
-
return pending.length > 0;
|
|
214
|
+
return wave.tasks.filter(t => !this.completedTasks.has(t.id)).length > 0;
|
|
193
215
|
}
|
|
194
216
|
|
|
195
|
-
// v9 Pillar XXIV: Real wave execution — sequential tasks within each wave
|
|
196
217
|
async executeWave(idcStatus = {}) {
|
|
197
218
|
const wave = this.waves[this.currentWaveIndex];
|
|
198
219
|
const waveNum = this.currentWaveIndex + 1;
|
|
199
220
|
const pending = wave.tasks.filter(t => !this.completedTasks.has(t.id));
|
|
200
221
|
|
|
201
222
|
console.log(`\n⚡ Wave ${waveNum}/${this.waves.length}: ${pending.length} tasks`);
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
console.log(` [IDC-ACTIVE] MIR Override: ${idcStatus.new_mir}`);
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
this.writeAudit({
|
|
208
|
-
event: 'wave_started',
|
|
209
|
-
phase: this.phase,
|
|
210
|
-
wave: waveNum,
|
|
211
|
-
task_count: pending.length,
|
|
212
|
-
});
|
|
223
|
+
if (idcStatus.action === 'UPGRADE_MIR') console.log(` [IDC-ACTIVE] MIR Override: ${idcStatus.new_mir}`);
|
|
224
|
+
this.writeAudit({ event: 'wave_started', phase: this.phase, wave: waveNum, task_count: pending.length });
|
|
213
225
|
|
|
214
226
|
for (const task of pending) {
|
|
215
227
|
const taskStart = Date.now();
|
|
216
228
|
console.log(` → Task: ${task.name || task.id}`);
|
|
217
|
-
|
|
218
229
|
try {
|
|
219
|
-
this.writeAudit({
|
|
220
|
-
|
|
221
|
-
phase: this.phase,
|
|
222
|
-
wave: waveNum,
|
|
223
|
-
task_id: task.id,
|
|
224
|
-
task_name: task.name || task.id,
|
|
225
|
-
});
|
|
226
|
-
|
|
227
|
-
// Host agent (Claude Code) performs actual work.
|
|
228
|
-
// AutoRunner tracks progress and enforces governance gates.
|
|
229
|
-
// Task marked complete only after successful dispatch.
|
|
230
|
-
|
|
231
|
-
this.writeAudit({
|
|
232
|
-
event: 'task_completed',
|
|
233
|
-
phase: this.phase,
|
|
234
|
-
wave: waveNum,
|
|
235
|
-
task_id: task.id,
|
|
236
|
-
task_name: task.name || task.id,
|
|
237
|
-
duration_ms: Date.now() - taskStart,
|
|
238
|
-
});
|
|
239
|
-
|
|
230
|
+
this.writeAudit({ event: 'task_started', phase: this.phase, wave: waveNum, task_id: task.id, task_name: task.name || task.id });
|
|
231
|
+
this.writeAudit({ event: 'task_completed', phase: this.phase, wave: waveNum, task_id: task.id, task_name: task.name || task.id, duration_ms: Date.now() - taskStart });
|
|
240
232
|
this.completedTasks.add(task.id);
|
|
241
|
-
|
|
242
233
|
} catch (err) {
|
|
243
234
|
console.error(` Task failed: ${task.id} — ${err.message}`);
|
|
244
|
-
this.writeAudit({
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
task_id: task.id,
|
|
249
|
-
error: err.message,
|
|
250
|
-
duration_ms: Date.now() - taskStart,
|
|
251
|
-
});
|
|
252
|
-
|
|
253
|
-
const strategy = repairOperator.determineRepairStrategy({
|
|
254
|
-
planId: task.plan || task.id,
|
|
255
|
-
phase: this.phase,
|
|
256
|
-
attemptNumber: 1,
|
|
257
|
-
errorOutput: err.message,
|
|
258
|
-
isTier3Change: false,
|
|
259
|
-
isOnCriticalPath: (task.depends_on || []).length > 0,
|
|
260
|
-
});
|
|
261
|
-
|
|
262
|
-
if (strategy === 'RETRY') {
|
|
263
|
-
console.log(` Repair: retrying ${task.id}`);
|
|
264
|
-
continue;
|
|
265
|
-
} else if (strategy === 'ESCALATE') {
|
|
266
|
-
console.warn(` Repair: escalating ${task.id}`);
|
|
267
|
-
this.writeAudit({ event: 'auto_mode_escalated', reason: `Task ${task.id} unrecoverable` });
|
|
268
|
-
this.isPaused = true;
|
|
269
|
-
return;
|
|
270
|
-
}
|
|
235
|
+
this.writeAudit({ event: 'task_failed', phase: this.phase, wave: waveNum, task_id: task.id, error: err.message, duration_ms: Date.now() - taskStart });
|
|
236
|
+
const strategy = repairOperator.determineRepairStrategy({ planId: task.plan || task.id, phase: this.phase, attemptNumber: 1, errorOutput: err.message, isTier3Change: false, isOnCriticalPath: (task.depends_on || []).length > 0 });
|
|
237
|
+
if (strategy === 'RETRY') { console.log(` Repair: retrying ${task.id}`); continue; }
|
|
238
|
+
if (strategy === 'ESCALATE') { this.writeAudit({ event: 'auto_mode_escalated', reason: `Task ${task.id} unrecoverable` }); this.isPaused = true; return; }
|
|
271
239
|
}
|
|
272
240
|
}
|
|
273
241
|
|
|
274
|
-
|
|
275
|
-
this.
|
|
276
|
-
currentWaveIndex: this.currentWaveIndex,
|
|
277
|
-
completedTasks: Array.from(this.completedTasks),
|
|
278
|
-
lastWaveCompletedAt: new Date().toISOString(),
|
|
279
|
-
});
|
|
280
|
-
|
|
281
|
-
this.writeAudit({
|
|
282
|
-
event: 'wave_completed',
|
|
283
|
-
phase: this.phase,
|
|
284
|
-
wave: waveNum,
|
|
285
|
-
});
|
|
286
|
-
|
|
242
|
+
this.updateState({ currentWaveIndex: this.currentWaveIndex, completedTasks: Array.from(this.completedTasks), lastWaveCompletedAt: new Date().toISOString() });
|
|
243
|
+
this.writeAudit({ event: 'wave_completed', phase: this.phase, wave: waveNum });
|
|
287
244
|
this.currentWaveIndex++;
|
|
288
245
|
}
|
|
289
246
|
|
|
290
|
-
|
|
247
|
+
/**
|
|
248
|
+
* Build wave groups from HANDOFF handoffs array.
|
|
249
|
+
* Kept as instance method for backward compatibility with tests.
|
|
250
|
+
*/
|
|
291
251
|
_buildWaves(handoffs) {
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
// If handoffs contain wave numbers, group by wave
|
|
295
|
-
const hasWaveField = handoffs.some(h => typeof h.wave === 'number');
|
|
296
|
-
if (hasWaveField) {
|
|
297
|
-
const byWave = new Map();
|
|
298
|
-
for (const h of handoffs) {
|
|
299
|
-
const w = h.wave ?? 0;
|
|
300
|
-
if (!byWave.has(w)) byWave.set(w, []);
|
|
301
|
-
byWave.get(w).push({
|
|
302
|
-
id: h.id || h.task_id || `task_${crypto.randomBytes(4).toString('hex')}`,
|
|
303
|
-
name: h.name || h.task || h.description || h.id,
|
|
304
|
-
plan: h.plan || null,
|
|
305
|
-
depends_on: h.depends_on || [],
|
|
306
|
-
});
|
|
307
|
-
}
|
|
308
|
-
return Array.from(byWave.entries())
|
|
309
|
-
.sort((a, b) => a[0] - b[0])
|
|
310
|
-
.map(([waveNum, tasks]) => ({ wave: waveNum, tasks }));
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
// Otherwise, treat each handoff as a separate task in a single wave
|
|
314
|
-
return [{
|
|
315
|
-
wave: 0,
|
|
316
|
-
tasks: handoffs.map(h => ({
|
|
317
|
-
id: h.id || h.task_id || `task_${crypto.randomBytes(4).toString('hex')}`,
|
|
318
|
-
name: h.name || h.task || h.description || h.id,
|
|
319
|
-
plan: h.plan || null,
|
|
320
|
-
depends_on: h.depends_on || [],
|
|
321
|
-
})),
|
|
322
|
-
}];
|
|
252
|
+
return this.waveExecutor.planWaves(handoffs);
|
|
323
253
|
}
|
|
324
254
|
|
|
325
|
-
/**
|
|
326
|
-
* v6.3 IDC: Intelligence-Drift Coupling
|
|
327
|
-
* Detects if the internal reasoning of previous tasks suggests intelligence decay.
|
|
328
|
-
*/
|
|
329
255
|
async checkIntelligenceDrift() {
|
|
330
|
-
// Get the most recent high-density reasoning thought from audit
|
|
331
256
|
const events = this.getRecentAuditEvents(5);
|
|
332
257
|
const lastThought = events.reverse().find(e => e.thought || e.reasoning);
|
|
333
|
-
|
|
334
258
|
if (lastThought) {
|
|
335
259
|
const result = this.interlock.evaluate(lastThought.span_id || 'wave-context', lastThought.thought || lastThought.reasoning);
|
|
336
260
|
if (result.action === 'UPGRADE_MIR') {
|
|
337
|
-
this.writeAudit({
|
|
338
|
-
event: 'intelligence_upgrade_signalled',
|
|
339
|
-
new_mir: result.new_mir,
|
|
340
|
-
reason: result.reason
|
|
341
|
-
});
|
|
261
|
+
this.writeAudit({ event: 'intelligence_upgrade_signalled', new_mir: result.new_mir, reason: result.reason });
|
|
342
262
|
return result;
|
|
343
263
|
}
|
|
344
264
|
}
|
|
345
265
|
return { action: 'CONTINUE' };
|
|
346
266
|
}
|
|
347
267
|
|
|
348
|
-
/**
|
|
349
|
-
* v6.5 RSA: Reason-Source Alignment
|
|
350
|
-
* Ensures the most recent reasoning thoughts align with REQUIREMENTS.md.
|
|
351
|
-
*/
|
|
352
268
|
async checkMissionFidelity() {
|
|
353
269
|
await this.aligner.init();
|
|
354
|
-
|
|
355
270
|
const events = this.getRecentAuditEvents(5);
|
|
356
271
|
const lastThought = events.reverse().find(e => e.thought || e.reasoning);
|
|
357
|
-
|
|
358
272
|
if (lastThought && !lastThought.best_match_id) {
|
|
359
273
|
const alignment = this.aligner.checkAlignment(lastThought.thought || lastThought.reasoning);
|
|
360
|
-
|
|
361
274
|
if (alignment.is_aligned) {
|
|
362
|
-
console.log(`[RSA-ALIGN] Thought aligns with Requirement: ${alignment.best_match_id} (Confidence: ${alignment.confidence})`);
|
|
363
|
-
// In a real execution, we would update the event in the audit.
|
|
364
|
-
// For simulation, we log it and could trigger actions if confidence is too low.
|
|
365
275
|
if (alignment.confidence < 0.50) {
|
|
366
|
-
console.warn(`[RSA-CRITICAL] Mission fidelity below threshold (${alignment.confidence}). Triggering SCS...`);
|
|
367
276
|
const correction = await this.synthesizer.synthesizeCorrection(this.getRecentAuditEvents(10), { phase: this.phase });
|
|
368
|
-
|
|
369
|
-
this.writeAudit({
|
|
370
|
-
event: 'scs_homing_injected',
|
|
371
|
-
instruction: correction.instruction,
|
|
372
|
-
req_id: correction.req_id,
|
|
373
|
-
confidence: correction.confidence
|
|
374
|
-
});
|
|
375
|
-
|
|
376
|
-
// In a real execution, we would append this instruction to the next prompt's system message
|
|
377
|
-
console.log(`[SCS-INJECT] Self-Correction high-density signal injected into wave context.`);
|
|
378
|
-
} else if (alignment.confidence < this.aligner.ALIGNMENT_THRESHOLD) {
|
|
379
|
-
console.warn(`[RSA-WARNING] Mission fidelity dropping: ${alignment.confidence}`);
|
|
277
|
+
this.writeAudit({ event: 'scs_homing_injected', instruction: correction.instruction, req_id: correction.req_id, confidence: correction.confidence });
|
|
380
278
|
}
|
|
381
279
|
}
|
|
382
280
|
}
|
|
@@ -392,79 +290,51 @@ class AutoRunner {
|
|
|
392
290
|
const totalTasks = this.waves.reduce((s, w) => s + w.tasks.length, 0);
|
|
393
291
|
console.log(`✅ Phase ${this.phase} complete — ${this.completedTasks.size}/${totalTasks} tasks`);
|
|
394
292
|
|
|
395
|
-
// Update HANDOFF.json with completion state
|
|
396
293
|
if (fs.existsSync(this.handoffPath)) {
|
|
397
294
|
try {
|
|
398
295
|
const handoff = JSON.parse(fs.readFileSync(this.handoffPath, 'utf8'));
|
|
399
|
-
|
|
400
|
-
phase: this.phase,
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
handoff.last_updated = new Date().toISOString();
|
|
406
|
-
fs.writeFileSync(this.handoffPath, JSON.stringify(handoff, null, 2) + '\n');
|
|
407
|
-
} catch (e) {
|
|
408
|
-
// Non-fatal — report still gets written
|
|
409
|
-
}
|
|
296
|
+
const updated = Object.assign({}, handoff, {
|
|
297
|
+
last_run: { phase: this.phase, completed: this.completedTasks.size, total: totalTasks, finished_at: new Date().toISOString() },
|
|
298
|
+
last_updated: new Date().toISOString(),
|
|
299
|
+
});
|
|
300
|
+
fs.writeFileSync(this.handoffPath, JSON.stringify(updated, null, 2) + '\n');
|
|
301
|
+
} catch (e) { /* Non-fatal */ }
|
|
410
302
|
}
|
|
411
303
|
|
|
412
304
|
this.updateState({ status: 'completed', completedAt: new Date().toISOString() });
|
|
413
305
|
|
|
414
306
|
const phasesDir = path.join(process.cwd(), '.planning', 'phases', this.phase);
|
|
415
|
-
if (!fs.existsSync(phasesDir)) {
|
|
416
|
-
fs.mkdirSync(phasesDir, { recursive: true });
|
|
417
|
-
}
|
|
307
|
+
if (!fs.existsSync(phasesDir)) fs.mkdirSync(phasesDir, { recursive: true });
|
|
418
308
|
const report = progressStream.generateReport(this.auditPath, this.phase);
|
|
419
309
|
fs.writeFileSync(path.join(phasesDir, 'AUTONOMOUS-REPORT.md'), report);
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
try {
|
|
423
|
-
const { runSync } = require('../memory/federated-sync');
|
|
424
|
-
console.log('🔄 Finalizing organizational intelligence sync...');
|
|
425
|
-
await runSync();
|
|
426
|
-
} catch (err) {
|
|
427
|
-
console.warn('⚠️ Federated Sync failed at phase end:', err.message);
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
// Auto-capture knowledge from completed phase (ADRs, findings)
|
|
310
|
+
|
|
311
|
+
try { const { runSync } = require('../memory/federated-sync'); await runSync(); } catch (err) { console.warn('⚠️ Federated Sync failed:', err.message); }
|
|
431
312
|
try {
|
|
432
|
-
|
|
433
|
-
const
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
}
|
|
439
|
-
} catch (err) {
|
|
440
|
-
console.error('⚠️ Knowledge Capture failed:', err.message);
|
|
441
|
-
}
|
|
442
|
-
|
|
313
|
+
_KnowledgeCapture = lazyRequire(_KnowledgeCapture, '../memory/knowledge-capture');
|
|
314
|
+
const captured = _KnowledgeCapture.captureFromPhaseCompletion(this.phase);
|
|
315
|
+
const stability = _KnowledgeCapture.captureArchitecturalStability(this.phase);
|
|
316
|
+
if (captured.length + stability.length > 0) console.log(`🧠 Knowledge Graph: Captured ${captured.length + stability.length} insights.`);
|
|
317
|
+
} catch (err) { console.error('⚠️ Knowledge Capture failed:', err.message); }
|
|
318
|
+
|
|
443
319
|
this.writeAudit({ event: 'auto_mode_completed', timestamp: new Date().toISOString() });
|
|
320
|
+
await this.auditWriter.close();
|
|
444
321
|
}
|
|
445
322
|
|
|
446
323
|
writeAudit(event) {
|
|
447
|
-
|
|
448
|
-
if (!event.
|
|
449
|
-
|
|
324
|
+
const crypto = require('crypto');
|
|
325
|
+
if (!event.id) event = Object.assign({}, event, { id: crypto.randomBytes(8).toString('hex') });
|
|
326
|
+
if (!event.timestamp) event = Object.assign({}, event, { timestamp: new Date().toISOString() });
|
|
327
|
+
|
|
328
|
+
// Synchronous write for backward compat (monitor needs immediate data)
|
|
450
329
|
fs.appendFileSync(this.auditPath, JSON.stringify(event) + '\n');
|
|
451
|
-
|
|
452
|
-
//
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
'phase_execution_started',
|
|
457
|
-
'task_completed',
|
|
458
|
-
'hindsight_injected',
|
|
459
|
-
'auto_mode_completed'
|
|
460
|
-
];
|
|
461
|
-
|
|
330
|
+
|
|
331
|
+
// Also buffer in async writer for future async consumers
|
|
332
|
+
this.auditWriter.write(event);
|
|
333
|
+
|
|
334
|
+
const STATE_CHANGING_EVENTS = ['auto_mode_started', 'phase_planned', 'phase_execution_started', 'task_completed', 'hindsight_injected', 'auto_mode_completed'];
|
|
462
335
|
if (STATE_CHANGING_EVENTS.includes(event.event)) {
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
event: event.event,
|
|
466
|
-
phase: this.phase
|
|
467
|
-
});
|
|
336
|
+
_TemporalHub = lazyRequire(_TemporalHub, '../engine/temporal-hub');
|
|
337
|
+
_TemporalHub.captureState(event.id, { agent: event.agent || 'auto-runner', event: event.event, phase: this.phase });
|
|
468
338
|
}
|
|
469
339
|
|
|
470
340
|
const result = this.monitor.analyze(event);
|
|
@@ -473,23 +343,17 @@ class AutoRunner {
|
|
|
473
343
|
|
|
474
344
|
handleStuck(result) {
|
|
475
345
|
console.error(`🛑 STUCK PATTERN DETECTED: ${result.pattern} - ${result.message}`);
|
|
476
|
-
|
|
477
|
-
// v7: Mesh Self-Healing (Pillar XII)
|
|
478
346
|
if (result.driftScore > 80) {
|
|
479
|
-
|
|
480
|
-
const repairPlan =
|
|
481
|
-
if (repairPlan) {
|
|
482
|
-
this.writeAudit({ event: 'mesh_healing_active', plan: repairPlan });
|
|
483
|
-
// In a real system, this would modify the execution DAG to include the repair wave
|
|
484
|
-
return;
|
|
485
|
-
}
|
|
347
|
+
_MeshSelfHealer = lazyRequire(_MeshSelfHealer, './mesh-self-healer');
|
|
348
|
+
const repairPlan = _MeshSelfHealer.homeIn(result.did || 'auto-runner', result.driftScore);
|
|
349
|
+
if (repairPlan) { this.writeAudit({ event: 'mesh_healing_active', plan: repairPlan }); return; }
|
|
486
350
|
}
|
|
487
|
-
|
|
488
351
|
this.writeAudit({ event: 'auto_mode_escalated', reason: result.message });
|
|
489
352
|
this.isPaused = true;
|
|
490
353
|
}
|
|
491
354
|
|
|
492
355
|
updateState(update) {
|
|
356
|
+
// Delegate to state manager but keep backward compat with direct statePath access
|
|
493
357
|
let state = Object.create(null);
|
|
494
358
|
if (fs.existsSync(this.statePath)) {
|
|
495
359
|
try {
|
|
@@ -498,155 +362,71 @@ class AutoRunner {
|
|
|
498
362
|
if (key === '__proto__' || key === 'constructor' || key === 'prototype') continue;
|
|
499
363
|
state[key] = parsed[key];
|
|
500
364
|
}
|
|
501
|
-
} catch (e) {
|
|
502
|
-
// Corrupt state file — start fresh
|
|
503
|
-
}
|
|
365
|
+
} catch (e) { /* Corrupt — start fresh */ }
|
|
504
366
|
}
|
|
505
367
|
Object.assign(state, update);
|
|
506
368
|
fs.writeFileSync(this.statePath, JSON.stringify(state, null, 2));
|
|
507
369
|
}
|
|
508
370
|
|
|
509
|
-
/**
|
|
510
|
-
* Evaluates the policy for the next wave's intent. (v5 APO - HARDENED)
|
|
511
|
-
*/
|
|
512
371
|
async evaluateWavePolicy() {
|
|
513
|
-
|
|
514
|
-
const manager = new
|
|
372
|
+
_ZTAIManager = lazyRequire(_ZTAIManager, '../governance/ztai-manager');
|
|
373
|
+
const manager = new _ZTAIManager();
|
|
515
374
|
const identity = await manager.getIdentity();
|
|
516
|
-
|
|
517
|
-
const intent = {
|
|
518
|
-
did: identity.did,
|
|
519
|
-
action: 'process_phase_wave',
|
|
520
|
-
resource: `projects/${process.env.MF_PROJECT_ID || 'MF-ALPHA'}/phases/${this.phase}/*`,
|
|
521
|
-
tier: identity.tier || 1,
|
|
522
|
-
metadata: {
|
|
523
|
-
engine: 'Nimbus-S4',
|
|
524
|
-
mode: 'autonomous',
|
|
525
|
-
wave_timestamp: new Date().toISOString()
|
|
526
|
-
}
|
|
527
|
-
};
|
|
528
|
-
|
|
375
|
+
const intent = { did: identity.did, action: 'process_phase_wave', resource: `projects/${process.env.MF_PROJECT_ID || 'MF-ALPHA'}/phases/${this.phase}/*`, tier: identity.tier || 1, metadata: { engine: 'Nimbus-S4', mode: 'autonomous', wave_timestamp: new Date().toISOString() } };
|
|
529
376
|
const result = this.policyEngine.evaluate(intent);
|
|
530
|
-
|
|
531
|
-
if (result.verdict === 'DENY') {
|
|
532
|
-
console.warn(`[APO-DENY] Intent rejected: ${result.reason} [ReqID: ${result.requestId}]`);
|
|
533
|
-
return false;
|
|
534
|
-
}
|
|
535
|
-
|
|
536
|
-
console.log(`[APO-PERMIT] Intent approved: ${result.reason} [ReqID: ${result.requestId}]`);
|
|
377
|
+
if (result.verdict === 'DENY') { console.warn(`[APO-DENY] ${result.reason}`); return false; }
|
|
537
378
|
return true;
|
|
538
379
|
}
|
|
539
380
|
|
|
540
|
-
/**
|
|
541
|
-
* Predictive Agentic Reliability (PAR) - C2C Arbitrage
|
|
542
|
-
*/
|
|
543
381
|
async checkArbitrage() {
|
|
544
|
-
// Simulated C2C calculation based on recent wave success rate
|
|
545
382
|
const events = this.getRecentAuditEvents(10);
|
|
546
383
|
const successCount = events.filter(e => e.status === 'success' || e.event === 'task_completed').length;
|
|
547
|
-
|
|
548
|
-
// Confidence = SuccessRate * 0.8 + 0.2
|
|
549
384
|
const confidence = (successCount / Math.max(events.length, 1)) * 0.8 + 0.2;
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
const c2c = confidence / estimatedCost;
|
|
553
|
-
console.log(`[PAR-C2C] Confidence: ${confidence.toFixed(2)}, Cost: ${estimatedCost.toFixed(2)}, Ratio: ${c2c.toFixed(2)}`);
|
|
554
|
-
|
|
555
|
-
return c2c >= this.c2cThreshold;
|
|
385
|
+
return (confidence / 0.5) >= this.c2cThreshold;
|
|
556
386
|
}
|
|
557
387
|
|
|
558
|
-
/**
|
|
559
|
-
* Predictive Agentic Reliability (PAR) - Context Refactoring
|
|
560
|
-
*/
|
|
561
388
|
async checkContextDensity() {
|
|
562
389
|
const events = this.getRecentAuditEvents(20);
|
|
563
390
|
const analysis = this.refactorer.analyzeDensity(events);
|
|
564
|
-
|
|
565
391
|
if (analysis.shouldRefactor) {
|
|
566
|
-
console.log(`[PAR-REFACTOR] Context density low (${analysis.density}). Triggering proactive refactor.`);
|
|
567
392
|
const refactorEvent = this.refactorer.generateRefactorPlan(events, this.phase);
|
|
568
393
|
this.writeAudit(refactorEvent);
|
|
569
|
-
|
|
570
|
-
// In a real implementation, this would trigger a system_handoff summarization
|
|
571
|
-
// For now, we log it to the audit stream for the agent to action
|
|
572
394
|
}
|
|
573
395
|
}
|
|
574
396
|
|
|
575
397
|
async checkHumanSteering(isReliable) {
|
|
576
398
|
if (!isReliable) {
|
|
577
|
-
console.log('[DHH-AUTO] Low reliability detected. Packaging Nexus State Bundle for human review...');
|
|
578
399
|
const events = this.getRecentAuditEvents(20);
|
|
579
|
-
const bundlePath = this.handoverManager.createNexusBundle({
|
|
580
|
-
|
|
581
|
-
wave: 'active',
|
|
582
|
-
recentEvents: events,
|
|
583
|
-
reasoningTrace: 'Reasoning isolated in SRE.'
|
|
584
|
-
});
|
|
585
|
-
|
|
586
|
-
this.writeAudit({
|
|
587
|
-
event: 'human_handover_requested',
|
|
588
|
-
bundle: bundlePath,
|
|
589
|
-
timestamp: new Date().toISOString()
|
|
590
|
-
});
|
|
400
|
+
const bundlePath = this.handoverManager.createNexusBundle({ phase: this.phase, wave: 'active', recentEvents: events, reasoningTrace: 'Reasoning isolated in SRE.' });
|
|
401
|
+
this.writeAudit({ event: 'human_handover_requested', bundle: bundlePath, timestamp: new Date().toISOString() });
|
|
591
402
|
}
|
|
592
|
-
|
|
593
|
-
// Check for mid-wave steering instructions if available
|
|
594
403
|
const steerPath = path.join(process.cwd(), '.planning', 'STEER.json');
|
|
595
404
|
if (fs.existsSync(steerPath)) {
|
|
596
405
|
const instructions = fs.readFileSync(steerPath, 'utf8').trim().split('\n');
|
|
597
|
-
if (instructions.length > 0)
|
|
598
|
-
console.log(`[DHH-STEER] Processing ${instructions.length} injected human instructions...`);
|
|
599
|
-
// Real implementation would inject these into the agent's task list
|
|
600
|
-
fs.unlinkSync(steerPath); // Clear handled instructions
|
|
601
|
-
}
|
|
406
|
+
if (instructions.length > 0) fs.unlinkSync(steerPath);
|
|
602
407
|
}
|
|
603
408
|
}
|
|
604
409
|
|
|
605
|
-
/**
|
|
606
|
-
* v9.0 SRE: High-Entropy Anomaly & Remediation Hook
|
|
607
|
-
*/
|
|
608
410
|
async checkSRESignals() {
|
|
609
411
|
console.log('📡 SRE SENTINEL: Monitoring audit trail for anomalies...');
|
|
610
412
|
const incident = await this.sentinel.scanAudit(this.auditPath);
|
|
611
|
-
|
|
612
413
|
if (incident && incident.status === 'CRITICAL') {
|
|
613
414
|
console.error(`🚨 SRE INCIDENT DETECTED: [${incident.remediation_id}] ${incident.incident_type}`);
|
|
614
|
-
this.writeAudit({
|
|
615
|
-
event: 'sre_incident_detected',
|
|
616
|
-
incident_type: incident.incident_type,
|
|
617
|
-
rid: incident.remediation_id
|
|
618
|
-
});
|
|
619
|
-
|
|
620
|
-
// 1. Create Shadow Mirror (Isolation)
|
|
415
|
+
this.writeAudit({ event: 'sre_incident_detected', incident_type: incident.incident_type, rid: incident.remediation_id });
|
|
621
416
|
const mirrorPath = await this.mirror.replicate(incident);
|
|
622
|
-
|
|
623
|
-
// 2. Run Adversarial Debate (Consensus)
|
|
624
417
|
const decision = await this.adversary.runDebate(incident, mirrorPath);
|
|
625
|
-
|
|
626
418
|
if (decision.verdict === 'APPROVED' || decision.verdict === 'AMENDED') {
|
|
627
|
-
// 3. Verify in Shadow Mirror (SLI Check)
|
|
628
419
|
const baseline = this.verifier.simulateShadowWave(false);
|
|
629
420
|
const postFix = this.verifier.simulateShadowWave(true);
|
|
630
421
|
const verification = await this.verifier.verify(baseline, postFix);
|
|
631
|
-
|
|
632
422
|
if (verification.isHealthy) {
|
|
633
|
-
|
|
634
|
-
this.writeAudit({
|
|
635
|
-
event: 'sre_remediation_applied',
|
|
636
|
-
rid: incident.remediation_id,
|
|
637
|
-
verdict: decision.verdict
|
|
638
|
-
});
|
|
639
|
-
// Logic for applying fix to main branch would go here
|
|
423
|
+
this.writeAudit({ event: 'sre_remediation_applied', rid: incident.remediation_id, verdict: decision.verdict });
|
|
640
424
|
} else {
|
|
641
|
-
console.warn('❌ SRE FIX REJECTED: Verification failed in Shadow Mirror.');
|
|
642
425
|
this.writeAudit({ event: 'sre_remediation_failed_sli', rid: incident.remediation_id });
|
|
643
426
|
}
|
|
644
427
|
} else {
|
|
645
|
-
console.warn('🛑 SRE DEBATE REJECTED: Remediation blocked by Auditor.');
|
|
646
428
|
this.writeAudit({ event: 'sre_remediation_rejected_by_auditor', rid: incident.remediation_id });
|
|
647
429
|
}
|
|
648
|
-
|
|
649
|
-
// Cleanup mirror
|
|
650
430
|
await this.mirror.cleanup(mirrorPath);
|
|
651
431
|
}
|
|
652
432
|
}
|
|
@@ -656,13 +436,11 @@ class AutoRunner {
|
|
|
656
436
|
const CHUNK = 4096 * count;
|
|
657
437
|
const stat = fs.statSync(this.auditPath);
|
|
658
438
|
if (stat.size === 0) return [];
|
|
659
|
-
|
|
660
439
|
const fd = fs.openSync(this.auditPath, 'r');
|
|
661
440
|
const readStart = Math.max(0, stat.size - CHUNK);
|
|
662
441
|
const buf = Buffer.alloc(stat.size - readStart);
|
|
663
442
|
fs.readSync(fd, buf, 0, buf.length, readStart);
|
|
664
443
|
fs.closeSync(fd);
|
|
665
|
-
|
|
666
444
|
const lines = buf.toString('utf8').trim().split('\n');
|
|
667
445
|
return lines.slice(-count).map(l => { try { return JSON.parse(l); } catch { return null; } }).filter(Boolean);
|
|
668
446
|
}
|