peaks-loop 4.0.54 → 4.1.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.
- package/CHANGELOG.md +36 -0
- package/README-en.md +16 -1
- package/README.md +15 -1
- package/config/eslint/.peaks-rules.cjs +158 -13
- package/config/eslint/tsconfig.lint.json +47 -0
- package/dist/cli/cli-envelope.d.ts +114 -0
- package/dist/cli/cli-envelope.js +85 -0
- package/dist/cli/cli-helpers.d.ts +1 -1
- package/dist/cli/cli-helpers.js +8 -4
- package/dist/cli/commands/_cli-error-envelope.js +1 -1
- package/dist/cli/commands/_register.js +85 -38
- package/dist/cli/commands/_super.js +40 -7
- package/dist/cli/commands/adapter-commands-s2a.js +8 -7
- package/dist/cli/commands/adapter-commands.d.ts +2 -2
- package/dist/cli/commands/adapter-commands.js +7 -8
- package/dist/cli/commands/api-diff-commands.js +5 -4
- package/dist/cli/commands/asset-commands.d.ts +2 -2
- package/dist/cli/commands/asset-commands.js +135 -132
- package/dist/cli/commands/audit-commands.d.ts +1 -1
- package/dist/cli/commands/audit-commands.js +75 -32
- package/dist/cli/commands/autonomous-swarm-commands.d.ts +1 -1
- package/dist/cli/commands/autonomous-swarm-commands.js +14 -8
- package/dist/cli/commands/baseline-commands.js +34 -9
- package/dist/cli/commands/bee-commands.d.ts +1 -1
- package/dist/cli/commands/bee-commands.js +18 -21
- package/dist/cli/commands/best-practice-scan-command.js +6 -34
- package/dist/cli/commands/best-practice-scan-helpers.d.ts +12 -0
- package/dist/cli/commands/best-practice-scan-helpers.js +37 -0
- package/dist/cli/commands/capability-commands.d.ts +1 -1
- package/dist/cli/commands/capability-commands.js +14 -4
- package/dist/cli/commands/capability-worker-config-sc-commands.d.ts +1 -1
- package/dist/cli/commands/changeset-commands.js +21 -18
- package/dist/cli/commands/code-gate-command.js +9 -2
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.d.ts +15 -0
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.js +70 -0
- package/dist/cli/commands/code-job-shape-commands.js +21 -45
- package/dist/cli/commands/code-mode-gate-commands.d.ts +15 -1
- package/dist/cli/commands/code-mode-gate-commands.js +19 -199
- package/dist/cli/commands/code-mode-gate-plan-command.d.ts +14 -0
- package/dist/cli/commands/code-mode-gate-plan-command.js +23 -0
- package/dist/cli/commands/code-mode-gate-should-pause-command.d.ts +24 -0
- package/dist/cli/commands/code-mode-gate-should-pause-command.js +137 -0
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.d.ts +59 -0
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.js +144 -0
- package/dist/cli/commands/code-orchestrator-can-do.js +4 -4
- package/dist/cli/commands/code-review-commands.js +18 -3
- package/dist/cli/commands/code-run-command.js +44 -7
- package/dist/cli/commands/code-runtime-commands.d.ts +17 -0
- package/dist/cli/commands/code-runtime-commands.js +105 -73
- package/dist/cli/commands/codegraph-commands.js +11 -6
- package/dist/cli/commands/codegraph-status-command.js +6 -2
- package/dist/cli/commands/compact-command.js +52 -26
- package/dist/cli/commands/complexity-commands.js +6 -7
- package/dist/cli/commands/config-commands.d.ts +1 -1
- package/dist/cli/commands/config-commands.js +33 -9
- package/dist/cli/commands/container-commands.js +39 -15
- package/dist/cli/commands/context-commands.d.ts +1 -1
- package/dist/cli/commands/context-commands.js +40 -13
- package/dist/cli/commands/core/artifacts-command.js +11 -3
- package/dist/cli/commands/core/binding-commands.js +9 -6
- package/dist/cli/commands/core/doctor-command.js +7 -4
- package/dist/cli/commands/core/memory-command.js +47 -21
- package/dist/cli/commands/core/proxy-command.js +3 -1
- package/dist/cli/commands/core/session-command.js +16 -8
- package/dist/cli/commands/core/skill-command.js +31 -16
- package/dist/cli/commands/core/standards-command.js +55 -13
- package/dist/cli/commands/cron-commands-actions.d.ts +43 -0
- package/dist/cli/commands/cron-commands-actions.js +128 -0
- package/dist/cli/commands/cron-commands-schedule.d.ts +86 -0
- package/dist/cli/commands/cron-commands-schedule.js +151 -0
- package/dist/cli/commands/cron-commands.d.ts +35 -32
- package/dist/cli/commands/cron-commands.js +167 -211
- package/dist/cli/commands/cron-scheduler-commands.js +40 -20
- package/dist/cli/commands/cron-scheduler-persist.d.ts +110 -0
- package/dist/cli/commands/cron-scheduler-persist.js +171 -0
- package/dist/cli/commands/dashboard-long-run.js +45 -14
- package/dist/cli/commands/dashboard-summary.js +15 -5
- package/dist/cli/commands/dispatch-commands.js +65 -32
- package/dist/cli/commands/dispatch-from-dag.js +9 -10
- package/dist/cli/commands/doc-commands.js +8 -9
- package/dist/cli/commands/doctor/invoke-from-code.js +1 -1
- package/dist/cli/commands/e2e-verify-env.d.ts +19 -0
- package/dist/cli/commands/e2e-verify-env.js +19 -0
- package/dist/cli/commands/e2e-verify.d.ts +3 -14
- package/dist/cli/commands/e2e-verify.js +49 -29
- package/dist/cli/commands/ecc-commands.d.ts +1 -1
- package/dist/cli/commands/ecc-commands.js +8 -17
- package/dist/cli/commands/evidence-commands.js +10 -6
- package/dist/cli/commands/evolution-commands.d.ts +2 -2
- package/dist/cli/commands/evolution-commands.js +109 -115
- package/dist/cli/commands/feedback-commands-helpers.d.ts +22 -0
- package/dist/cli/commands/feedback-commands-helpers.js +33 -0
- package/dist/cli/commands/feedback-commands.js +15 -38
- package/dist/cli/commands/final-review-commands.d.ts +1 -1
- package/dist/cli/commands/final-review-commands.js +24 -22
- package/dist/cli/commands/fixture-commands.d.ts +1 -1
- package/dist/cli/commands/fixture-commands.js +17 -6
- package/dist/cli/commands/fork-commands-sync-verify.d.ts +12 -0
- package/dist/cli/commands/fork-commands-sync-verify.js +72 -0
- package/dist/cli/commands/fork-commands.js +19 -51
- package/dist/cli/commands/fresh-context-commands.js +3 -1
- package/dist/cli/commands/gate-commands-enforce.d.ts +82 -0
- package/dist/cli/commands/gate-commands-enforce.js +210 -0
- package/dist/cli/commands/gate-commands.d.ts +1 -1
- package/dist/cli/commands/gate-commands.js +85 -205
- package/dist/cli/commands/governance-classify-contract-commands.d.ts +1 -1
- package/dist/cli/commands/governance-classify-contract-commands.js +28 -17
- package/dist/cli/commands/heartbeat-commands-action.d.ts +7 -0
- package/dist/cli/commands/heartbeat-commands-action.js +192 -0
- package/dist/cli/commands/heartbeat-commands-validation.d.ts +57 -0
- package/dist/cli/commands/heartbeat-commands-validation.js +120 -0
- package/dist/cli/commands/heartbeat-commands.d.ts +27 -6
- package/dist/cli/commands/heartbeat-commands.js +19 -198
- package/dist/cli/commands/hook-handle.d.ts +1 -1
- package/dist/cli/commands/hook-handle.js +46 -13
- package/dist/cli/commands/hooks-commands.d.ts +1 -1
- package/dist/cli/commands/hooks-commands.js +18 -6
- package/dist/cli/commands/ide-commands.d.ts +1 -1
- package/dist/cli/commands/ide-commands.js +5 -3
- package/dist/cli/commands/impact-commands.js +8 -2
- package/dist/cli/commands/job-add-slice-command.d.ts +43 -0
- package/dist/cli/commands/job-add-slice-command.js +151 -0
- package/dist/cli/commands/job-commands.d.ts +64 -0
- package/dist/cli/commands/job-commands.js +134 -63
- package/dist/cli/commands/lease-metrics-commands-support.d.ts +73 -0
- package/dist/cli/commands/lease-metrics-commands-support.js +67 -0
- package/dist/cli/commands/lease-metrics-commands.d.ts +3 -44
- package/dist/cli/commands/lease-metrics-commands.js +21 -61
- package/dist/cli/commands/lease-stats-commands.d.ts +1 -1
- package/dist/cli/commands/lease-stats-commands.js +9 -6
- package/dist/cli/commands/lint-commands.d.ts +9 -3
- package/dist/cli/commands/lint-commands.js +15 -8
- package/dist/cli/commands/log-commands.d.ts +1 -1
- package/dist/cli/commands/log-commands.js +8 -6
- package/dist/cli/commands/loop-commands.d.ts +1 -1
- package/dist/cli/commands/loop-commands.js +50 -50
- package/dist/cli/commands/loop-eval-commands.d.ts +1 -1
- package/dist/cli/commands/loop-eval-commands.js +101 -30
- package/dist/cli/commands/memory-commands.js +21 -13
- package/dist/cli/commands/migrate-1-4-1-command.js +1 -1
- package/dist/cli/commands/migrate-v2-10-to-v2-11-command.js +2 -2
- package/dist/cli/commands/mut-commands-helpers.d.ts +30 -0
- package/dist/cli/commands/mut-commands-helpers.js +43 -0
- package/dist/cli/commands/mut-commands.js +16 -58
- package/dist/cli/commands/observability-commands-queries.d.ts +37 -0
- package/dist/cli/commands/observability-commands-queries.js +113 -0
- package/dist/cli/commands/observability-commands.d.ts +1 -1
- package/dist/cli/commands/observability-commands.js +7 -92
- package/dist/cli/commands/openspec-commands.d.ts +1 -1
- package/dist/cli/commands/openspec-commands.js +20 -8
- package/dist/cli/commands/outer-cache-commands.js +18 -7
- package/dist/cli/commands/perf-audit-commands.d.ts +1 -1
- package/dist/cli/commands/perf-audit-commands.js +12 -7
- package/dist/cli/commands/perf-commands.d.ts +1 -1
- package/dist/cli/commands/perf-commands.js +5 -5
- package/dist/cli/commands/playwright-commands.d.ts +1 -1
- package/dist/cli/commands/playwright-commands.js +20 -8
- package/dist/cli/commands/polyrepo-commands.js +21 -19
- package/dist/cli/commands/prd-blocks-commands.js +1 -3
- package/dist/cli/commands/prd-commands.d.ts +1 -1
- package/dist/cli/commands/prd-commands.js +8 -4
- package/dist/cli/commands/preferences-commands.js +13 -12
- package/dist/cli/commands/primer-command.js +5 -5
- package/dist/cli/commands/project-commands.d.ts +1 -1
- package/dist/cli/commands/project-commands.js +33 -9
- package/dist/cli/commands/qa-business-review-commands.js +16 -12
- package/dist/cli/commands/qa-commands.d.ts +1 -1
- package/dist/cli/commands/qa-commands.js +3 -5
- package/dist/cli/commands/release-commands.d.ts +3 -1
- package/dist/cli/commands/release-commands.js +33 -22
- package/dist/cli/commands/request-commands.js +47 -30
- package/dist/cli/commands/request-format-helpers.js +1 -1
- package/dist/cli/commands/retrospective-commands.d.ts +18 -11
- package/dist/cli/commands/retrospective-commands.js +24 -173
- package/dist/cli/commands/retrospective-index-command.d.ts +26 -0
- package/dist/cli/commands/retrospective-index-command.js +99 -0
- package/dist/cli/commands/retrospective-project-root.d.ts +9 -0
- package/dist/cli/commands/retrospective-project-root.js +15 -0
- package/dist/cli/commands/retrospective-search-command.d.ts +27 -0
- package/dist/cli/commands/retrospective-search-command.js +97 -0
- package/dist/cli/commands/retrospective-show-command.d.ts +23 -0
- package/dist/cli/commands/retrospective-show-command.js +80 -0
- package/dist/cli/commands/reviewer-commands.d.ts +1 -1
- package/dist/cli/commands/role-commands.js +14 -9
- package/dist/cli/commands/runtime-commands.js +14 -7
- package/dist/cli/commands/sc-commands.d.ts +1 -1
- package/dist/cli/commands/sc-commands.js +39 -6
- package/dist/cli/commands/scan-commands.js +36 -13
- package/dist/cli/commands/security-audit-commands.d.ts +1 -1
- package/dist/cli/commands/security-audit-commands.js +12 -7
- package/dist/cli/commands/sediment-commands.d.ts +2 -2
- package/dist/cli/commands/sediment-commands.js +146 -139
- package/dist/cli/commands/session-24h-mode.js +15 -2
- package/dist/cli/commands/session-checkpoint-command.js +1 -1
- package/dist/cli/commands/session-migrate-skill-name.js +1 -1
- package/dist/cli/commands/shadcn-commands.d.ts +1 -1
- package/dist/cli/commands/shadcn-commands.js +3 -1
- package/dist/cli/commands/share-commands.js +38 -39
- package/dist/cli/commands/skill-conformance-commands.d.ts +1 -1
- package/dist/cli/commands/skill-conformance-commands.js +1 -1
- package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +16 -17
- package/dist/cli/commands/skill-visibility.js +2 -2
- package/dist/cli/commands/slice-commands.d.ts +1 -1
- package/dist/cli/commands/slice-commands.js +36 -12
- package/dist/cli/commands/slice-integrate-commands.js +6 -7
- package/dist/cli/commands/slice-review-commands-helpers.d.ts +26 -0
- package/dist/cli/commands/slice-review-commands-helpers.js +26 -0
- package/dist/cli/commands/slice-review-commands.js +16 -24
- package/dist/cli/commands/smoke-commands-add-path.d.ts +14 -0
- package/dist/cli/commands/smoke-commands-add-path.js +39 -0
- package/dist/cli/commands/smoke-commands-define.d.ts +18 -0
- package/dist/cli/commands/smoke-commands-define.js +97 -0
- package/dist/cli/commands/smoke-commands-run.d.ts +18 -0
- package/dist/cli/commands/smoke-commands-run.js +119 -0
- package/dist/cli/commands/smoke-commands.d.ts +10 -1
- package/dist/cli/commands/smoke-commands.js +17 -179
- package/dist/cli/commands/sop-commands.d.ts +1 -1
- package/dist/cli/commands/sop-commands.js +38 -10
- package/dist/cli/commands/statusline-commands.d.ts +1 -1
- package/dist/cli/commands/statusline-commands.js +21 -10
- package/dist/cli/commands/sub-agent/detached.js +3 -3
- package/dist/cli/commands/sub-agent-dispatch-guard.d.ts +1 -1
- package/dist/cli/commands/sub-agent-shared.js +1 -1
- package/dist/cli/commands/sub-agent-shutdown-commands.js +17 -9
- package/dist/cli/commands/swarm-commands.d.ts +1 -1
- package/dist/cli/commands/swarm-commands.js +13 -6
- package/dist/cli/commands/tech-commands-helpers.d.ts +37 -0
- package/dist/cli/commands/tech-commands-helpers.js +24 -0
- package/dist/cli/commands/tech-commands.d.ts +2 -29
- package/dist/cli/commands/tech-commands.js +15 -28
- package/dist/cli/commands/test-commands.js +27 -7
- package/dist/cli/commands/upgrade-commands.d.ts +1 -1
- package/dist/cli/commands/user-touchpoint-commands.js +1 -3
- package/dist/cli/commands/verdict-aggregate-command.d.ts +1 -1
- package/dist/cli/commands/verdict-aggregate-command.js +20 -7
- package/dist/cli/commands/vm-commands.js +48 -19
- package/dist/cli/commands/wave-plan-commands.js +5 -2
- package/dist/cli/commands/web-commands.js +14 -4
- package/dist/cli/commands/web-lifecycle-commands.js +5 -3
- package/dist/cli/commands/workflow-commands.d.ts +1 -1
- package/dist/cli/commands/workflow-commands.js +64 -29
- package/dist/cli/commands/workflow-lifecycle-commands.js +19 -17
- package/dist/cli/commands/workflow-plan-commands-actions.d.ts +20 -0
- package/dist/cli/commands/workflow-plan-commands-actions.js +115 -0
- package/dist/cli/commands/workflow-plan-commands-session.d.ts +17 -0
- package/dist/cli/commands/workflow-plan-commands-session.js +59 -0
- package/dist/cli/commands/workflow-plan-commands.d.ts +10 -21
- package/dist/cli/commands/workflow-plan-commands.js +15 -141
- package/dist/cli/commands/workspace/clean-command.js +4 -1
- package/dist/cli/commands/workspace/helpers.js +2 -1
- package/dist/cli/commands/workspace/init-command.js +80 -20
- package/dist/cli/commands/workspace/reconcile-command.js +3 -1
- package/dist/cli/commands/workspace-commands.d.ts +1 -1
- package/dist/cli/commands/workspace-commands.js +1 -1
- package/dist/cli/commands/worktree-auth-commands.d.ts +1 -1
- package/dist/cli/commands/worktree-auth-commands.js +16 -169
- package/dist/cli/commands/worktree-auth-grant-command.d.ts +14 -0
- package/dist/cli/commands/worktree-auth-grant-command.js +118 -0
- package/dist/cli/commands/worktree-auth-manage-commands.d.ts +17 -0
- package/dist/cli/commands/worktree-auth-manage-commands.js +128 -0
- package/dist/cli/commands/worktree-lease-commands.d.ts +1 -1
- package/dist/cli/commands/worktree-lease-commands.js +65 -37
- package/dist/cli/index.js +6 -2
- package/dist/cli/program.js +6 -3
- package/dist/hooks/pre-tool-use-sub-agent.js +1 -6
- package/dist/reporters/bdd-reporter.js +9 -3
- package/dist/services/24h-mode/auto-engage.d.ts +19 -0
- package/dist/services/24h-mode/auto-engage.js +35 -0
- package/dist/services/24h-mode/decider.js +5 -1
- package/dist/services/24h-mode/store.js +4 -2
- package/dist/services/adapter/adapter-registry.js +20 -8
- package/dist/services/adapter/adapter.d.ts +2 -2
- package/dist/services/adapter/auto-adapter.d.ts +2 -2
- package/dist/services/adapter/auto-adapter.js +1 -1
- package/dist/services/adapter/claude-adapter.d.ts +1 -1
- package/dist/services/adapter/claude-adapter.js +8 -8
- package/dist/services/adapter/codex-adapter.d.ts +2 -2
- package/dist/services/adapter/codex-adapter.js +20 -8
- package/dist/services/adapter/copilot-adapter.d.ts +2 -2
- package/dist/services/adapter/copilot-adapter.js +20 -8
- package/dist/services/artifacts/artifact-prerequisites.js +10 -8
- package/dist/services/artifacts/artifact-service.js +3 -1
- package/dist/services/artifacts/artifact-template-bodies.d.ts +12 -0
- package/dist/services/artifacts/artifact-template-bodies.js +165 -0
- package/dist/services/artifacts/artifact-templates.js +26 -168
- package/dist/services/artifacts/request-artifact-service.js +14 -7
- package/dist/services/artifacts/request-artifact-state-helpers.d.ts +3 -2
- package/dist/services/artifacts/request-artifact-state-helpers.js +3 -5
- package/dist/services/artifacts/workspace-artifact-helpers.d.ts +28 -0
- package/dist/services/artifacts/workspace-artifact-helpers.js +54 -0
- package/dist/services/artifacts/workspace-service.d.ts +3 -22
- package/dist/services/artifacts/workspace-service.js +10 -60
- package/dist/services/audit/artifact-writer.js +21 -21
- package/dist/services/audit/audit-goal-service.js +2 -2
- package/dist/services/audit/backing-detector.js +7 -4
- package/dist/services/audit/classifier.js +3 -3
- package/dist/services/audit/decision-writer.js +13 -9
- package/dist/services/audit/enforcers/active-skill-resolver.js +15 -7
- package/dist/services/audit/enforcers/design-draft-confirm.js +4 -4
- package/dist/services/audit/enforcers/lint-audit-regression.js +10 -5
- package/dist/services/audit/enforcers/lint-bee-runtime-contract.js +16 -8
- package/dist/services/audit/enforcers/lint-catalog-governance.js +8 -4
- package/dist/services/audit/enforcers/lint-output-style.js +4 -2
- package/dist/services/audit/enforcers/lint-peaks-code-runtime.js +8 -3
- package/dist/services/audit/enforcers/lint-peaks-skill-runtime.js +8 -3
- package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.js +20 -20
- package/dist/services/audit/enforcers/lint-prd-artifact-handoff.js +5 -5
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.d.ts +1 -1
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.js +5 -5
- package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.js +10 -10
- package/dist/services/audit/enforcers/lint-rd-handoff-coverage.js +10 -8
- package/dist/services/audit/enforcers/lint-reference-shape.js +50 -18
- package/dist/services/audit/enforcers/lint-skill-presence-mandatory.js +5 -5
- package/dist/services/audit/enforcers/lint-style.js +44 -11
- package/dist/services/audit/enforcers/lint-workflow-shape.js +4 -2
- package/dist/services/audit/enforcers/login-gate.js +2 -6
- package/dist/services/audit/enforcers/mock-placement.js +2 -2
- package/dist/services/audit/enforcers/no-root-pollution.js +38 -9
- package/dist/services/audit/enforcers/pre-rd-scan.js +1 -1
- package/dist/services/audit/enforcers/prototype-fidelity.js +1 -1
- package/dist/services/audit/enforcers/resume-detection.js +5 -4
- package/dist/services/audit/prose-ratio-calculator.js +1 -1
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.d.ts +39 -0
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.js +205 -0
- package/dist/services/audit/red-line-catalog-p2-a-lint-style.d.ts +52 -0
- package/dist/services/audit/red-line-catalog-p2-a-lint-style.js +205 -0
- package/dist/services/audit/red-line-catalog-p2-a.js +3 -374
- package/dist/services/audit/red-line-catalog-p2-b.js +26 -26
- package/dist/services/audit/red-line-catalog.js +26 -38
- package/dist/services/audit/red-lines-service.js +64 -49
- package/dist/services/audit/scanners/openspec-scanner.js +2 -2
- package/dist/services/audit/scanners/rules-tree-scanner.js +2 -2
- package/dist/services/audit/scanners/skills-tree-scanner.js +2 -2
- package/dist/services/audit/static-service.js +3 -3
- package/dist/services/audit-independent/index.d.ts +2 -2
- package/dist/services/audit-independent/index.js +2 -2
- package/dist/services/audit-independent/perf-audit-service.js +19 -8
- package/dist/services/audit-independent/security-audit-service.js +31 -16
- package/dist/services/autonomous-swarm/autonomous-swarm-service.js +75 -46
- package/dist/services/best-practice/output-formatter.js +7 -1
- package/dist/services/capability-audit-service/cross-check.js +11 -5
- package/dist/services/capability-audit-service/runner.js +15 -7
- package/dist/services/capability-baseline/store.js +16 -4
- package/dist/services/capability-baseline/types.js +15 -3
- package/dist/services/capability-baseline/validator.js +43 -7
- package/dist/services/capability-guard-runner/contracts/J02.js +36 -6
- package/dist/services/capability-guard-runner/contracts/J03.js +20 -11
- package/dist/services/capability-guard-runner/contracts/J04.js +24 -15
- package/dist/services/capability-guard-runner/contracts/J05.js +26 -10
- package/dist/services/capability-guard-runner/contracts/J07.js +8 -2
- package/dist/services/capability-guard-runner/contracts/J08.js +22 -5
- package/dist/services/capability-guard-runner/contracts/J10.js +6 -2
- package/dist/services/capability-guard-runner/contracts/J11.d.ts +5 -0
- package/dist/services/capability-guard-runner/contracts/J11.js +14 -2
- package/dist/services/capability-guard-runner/contracts/J12.js +12 -3
- package/dist/services/capability-guard-runner/diff.js +1 -5
- package/dist/services/changeset/changeset-check-service.js +1 -3
- package/dist/services/classify/classify-service.js +20 -8
- package/dist/services/classify/classify-types.js +22 -9
- package/dist/services/code/auto-compact-lifecycle.js +62 -39
- package/dist/services/code/auto-compact-modes.js +2 -2
- package/dist/services/code/auto-compact-orchestrator.js +14 -9
- package/dist/services/code/batch-heartbeat-poller.d.ts +10 -0
- package/dist/services/code/batch-heartbeat-poller.js +17 -1
- package/dist/services/code/compact-event-settle-types.d.ts +80 -0
- package/dist/services/code/compact-event-settle-types.js +20 -0
- package/dist/services/code/compact-event-settle.d.ts +3 -68
- package/dist/services/code/compact-event-settle.js +14 -10
- package/dist/services/code/dag-orchestrator.js +32 -26
- package/dist/services/code/job-shape-decision.js +3 -1
- package/dist/services/code/mode-gate-types.d.ts +57 -0
- package/dist/services/code/mode-gate-types.js +67 -0
- package/dist/services/code/mode-gate.d.ts +4 -58
- package/dist/services/code/mode-gate.js +24 -60
- package/dist/services/code/orchestrator-can-do-advisories.d.ts +30 -0
- package/dist/services/code/orchestrator-can-do-advisories.js +81 -0
- package/dist/services/code/orchestrator-can-do-probes.d.ts +30 -0
- package/dist/services/code/orchestrator-can-do-probes.js +77 -0
- package/dist/services/code/orchestrator-can-do.d.ts +11 -22
- package/dist/services/code/orchestrator-can-do.js +37 -137
- package/dist/services/code/post-compact-checkpoint.d.ts +28 -0
- package/dist/services/code/post-compact-checkpoint.js +57 -0
- package/dist/services/code/post-compact-detector.js +16 -48
- package/dist/services/code/step-08-gate.d.ts +4 -3
- package/dist/services/code/step-08-gate.js +21 -9
- package/dist/services/code-review/ecc-bridge.js +23 -23
- package/dist/services/codegraph/codegraph-autorefresh.js +56 -39
- package/dist/services/codegraph/codegraph-config-repair-writer.js +4 -1
- package/dist/services/codegraph/codegraph-exclude-integrity.js +4 -1
- package/dist/services/codegraph/codegraph-exclude-repair.js +1 -2
- package/dist/services/codegraph/codegraph-index-integrity.js +1 -1
- package/dist/services/codegraph/codegraph-preflight-service.d.ts +3 -26
- package/dist/services/codegraph/codegraph-preflight-service.js +16 -37
- package/dist/services/codegraph/codegraph-preflight-structure.d.ts +32 -0
- package/dist/services/codegraph/codegraph-preflight-structure.js +33 -0
- package/dist/services/codegraph/codegraph-process-runner.js +12 -1
- package/dist/services/codegraph/codegraph-service.js +9 -1
- package/dist/services/compact/request-transition-hook.js +2 -1
- package/dist/services/compact/suggest-service.d.ts +3 -61
- package/dist/services/compact/suggest-service.js +9 -12
- package/dist/services/compact/suggest-types.d.ts +76 -0
- package/dist/services/compact/suggest-types.js +10 -0
- package/dist/services/compact-history/compact-history-service.js +2 -2
- package/dist/services/compact-statusline/compact-lifecycle-store.d.ts +2 -32
- package/dist/services/compact-statusline/compact-lifecycle-store.js +7 -12
- package/dist/services/compact-statusline/compact-lifecycle-types.d.ts +32 -0
- package/dist/services/compact-statusline/compact-lifecycle-types.js +8 -0
- package/dist/services/compact-statusline/compact-statusline-cell-table.d.ts +42 -0
- package/dist/services/compact-statusline/compact-statusline-cell-table.js +63 -0
- package/dist/services/compact-statusline/compact-statusline-service.d.ts +4 -21
- package/dist/services/compact-statusline/compact-statusline-service.js +9 -101
- package/dist/services/compact-statusline/compact-statusline-state.d.ts +4 -0
- package/dist/services/compact-statusline/compact-statusline-state.js +50 -0
- package/dist/services/config/config-migration.js +2 -2
- package/dist/services/config/config-restore.js +1 -1
- package/dist/services/config/config-rollback.js +1 -1
- package/dist/services/config/config-safety.js +28 -10
- package/dist/services/config/config-service.js +114 -31
- package/dist/services/config/model-routing.js +5 -2
- package/dist/services/config/proxy-service.js +6 -1
- package/dist/services/config/workspace-state-service.js +17 -5
- package/dist/services/context/auto-compact-dispatcher-input.d.ts +38 -0
- package/dist/services/context/auto-compact-dispatcher-input.js +9 -0
- package/dist/services/context/auto-compact-dispatcher.d.ts +2 -30
- package/dist/services/context/auto-compact-reader-input.d.ts +30 -0
- package/dist/services/context/auto-compact-reader-input.js +8 -0
- package/dist/services/context/auto-compact-reader.d.ts +2 -24
- package/dist/services/context/auto-compact-reader.js +4 -1
- package/dist/services/context/auto-compact-thresholds.d.ts +54 -0
- package/dist/services/context/auto-compact-thresholds.js +19 -0
- package/dist/services/context/auto-compact-types.d.ts +2 -46
- package/dist/services/context/auto-compact-types.js +1 -11
- package/dist/services/context/build-dispatch-system-prompt.js +2 -2
- package/dist/services/context/collector.js +8 -10
- package/dist/services/context/context-audit-hint.js +7 -5
- package/dist/services/context/context-audit-keys.d.ts +15 -0
- package/dist/services/context/context-audit-keys.js +77 -0
- package/dist/services/context/context-audit-limits.d.ts +20 -0
- package/dist/services/context/context-audit-limits.js +31 -0
- package/dist/services/context/context-audit-scan.d.ts +19 -0
- package/dist/services/context/context-audit-scan.js +246 -0
- package/dist/services/context/context-audit-types.d.ts +65 -0
- package/dist/services/context/context-audit-types.js +10 -0
- package/dist/services/context/context-audit.d.ts +13 -59
- package/dist/services/context/context-audit.js +38 -254
- package/dist/services/context/context-builder.js +4 -4
- package/dist/services/context/context-schema.d.ts +1 -1
- package/dist/services/context/context-schema.js +13 -13
- package/dist/services/context/doc-retriever.js +2 -2
- package/dist/services/context/harness-context-witness.js +43 -24
- package/dist/services/context/harness-window-config.js +27 -7
- package/dist/services/context/ide-detect.js +2 -1
- package/dist/services/context/index.d.ts +1 -1
- package/dist/services/context/memory-index-reader.js +3 -9
- package/dist/services/context/memory-preflight-config.js +3 -5
- package/dist/services/context/memory-preflight-service.d.ts +2 -20
- package/dist/services/context/memory-preflight-service.js +37 -68
- package/dist/services/context/memory-preflight-support.d.ts +48 -0
- package/dist/services/context/memory-preflight-support.js +56 -0
- package/dist/services/context/post-compact-reinjection.js +3 -3
- package/dist/services/context/renderer.js +7 -3
- package/dist/services/context/spillover-store.js +3 -1
- package/dist/services/context/summary-view.js +1 -1
- package/dist/services/context/threshold.js +2 -2
- package/dist/services/context/tokenizer.js +3 -3
- package/dist/services/crystallization/crystallization-brief-schema.d.ts +80 -0
- package/dist/services/crystallization/crystallization-brief-schema.js +159 -0
- package/dist/services/crystallization/crystallization-service.d.ts +7 -7
- package/dist/services/crystallization/crystallization-service.js +56 -55
- package/dist/services/crystallization/crystallization-store.d.ts +2 -2
- package/dist/services/crystallization/crystallization-store.js +37 -20
- package/dist/services/crystallization/crystallization-types.d.ts +4 -56
- package/dist/services/crystallization/crystallization-types.js +31 -184
- package/dist/services/crystallization/evidence-brief-builder.d.ts +3 -3
- package/dist/services/crystallization/evidence-brief-builder.js +32 -38
- package/dist/services/crystallization/index.d.ts +4 -4
- package/dist/services/crystallization/index.js +4 -4
- package/dist/services/dashboard/project-dashboard-service.js +7 -1
- package/dist/services/dispatch/await-batch-helpers.d.ts +55 -0
- package/dist/services/dispatch/await-batch-helpers.js +206 -0
- package/dist/services/dispatch/await-batch.d.ts +50 -7
- package/dist/services/dispatch/await-batch.js +97 -194
- package/dist/services/dispatch/batch-counter.js +2 -1
- package/dist/services/dispatch/conflict-replay.js +2 -2
- package/dist/services/dispatch/contract-store.js +5 -2
- package/dist/services/dispatch/dispatch-record-input-types.d.ts +81 -0
- package/dist/services/dispatch/dispatch-record-input-types.js +1 -0
- package/dist/services/dispatch/dispatch-record-types.d.ts +6 -73
- package/dist/services/dispatch/dispatch-record-upgrade-fields.d.ts +72 -0
- package/dist/services/dispatch/dispatch-record-upgrade-fields.js +242 -0
- package/dist/services/dispatch/dispatch-record-upgrade-guards.d.ts +15 -0
- package/dist/services/dispatch/dispatch-record-upgrade-guards.js +55 -0
- package/dist/services/dispatch/dispatch-record-upgrade.d.ts +2 -4
- package/dist/services/dispatch/dispatch-record-upgrade.js +21 -213
- package/dist/services/dispatch/dispatch-record-writer.js +54 -26
- package/dist/services/dispatch/dispatch-sub-agent.js +7 -2
- package/dist/services/dispatch/e2e-fixtures.js +1 -1
- package/dist/services/dispatch/isolation-lease.js +39 -17
- package/dist/services/dispatch/merge-back-runner.js +51 -11
- package/dist/services/dispatch/service-shutdown.js +4 -1
- package/dist/services/dispatch/slice-dag-types.d.ts +116 -0
- package/dist/services/dispatch/slice-dag-types.js +41 -0
- package/dist/services/dispatch/slice-dag.d.ts +3 -109
- package/dist/services/dispatch/slice-dag.js +13 -36
- package/dist/services/dispatch/sub-agent-batch-await.d.ts +47 -0
- package/dist/services/dispatch/sub-agent-batch-await.js +73 -0
- package/dist/services/dispatch/sub-agent-dispatcher-types.d.ts +122 -0
- package/dist/services/dispatch/sub-agent-dispatcher-types.js +12 -0
- package/dist/services/dispatch/sub-agent-dispatcher.d.ts +3 -145
- package/dist/services/dispatch/sub-agent-dispatcher.js +14 -70
- package/dist/services/dispatch/test-tool-detection.js +12 -1
- package/dist/services/doc/doc-generator.js +19 -4
- package/dist/services/doctor/doctor-service/checks/check-id-schema.js +16 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.d.ts +7 -2
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +26 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-exclude-integrity.js +16 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.js +16 -8
- package/dist/services/doctor/doctor-service/checks/dist-source-version.js +18 -9
- package/dist/services/doctor/doctor-service/checks/ecc-hooks-schema-drift.js +20 -10
- package/dist/services/doctor/doctor-service/checks/gateguard-conflict.js +18 -9
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +25 -11
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +12 -6
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.d.ts +7 -16
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.js +50 -70
- package/dist/services/doctor/doctor-service/checks/schema-validity.js +5 -1
- package/dist/services/doctor/doctor-service/checks/skill-presence.js +4 -2
- package/dist/services/doctor/doctor-service/checks/statusline-install.js +8 -4
- package/dist/services/doctor/doctor-service/checks/statusline-runtime.js +8 -4
- package/dist/services/doctor/doctor-service/checks/user-config.js +4 -2
- package/dist/services/doctor/doctor-service/checks/workspace-init.js +8 -4
- package/dist/services/doctor/doctor-service/checks/workspace-layout.js +19 -11
- package/dist/services/doctor/doctor-service/index.js +4 -2
- package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.d.ts +40 -0
- package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.js +49 -0
- package/dist/services/doctor/doctor-service/plugin-registry.js +1 -1
- package/dist/services/doctor/doctor-service/probe-types.d.ts +210 -0
- package/dist/services/doctor/doctor-service/probe-types.js +14 -0
- package/dist/services/doctor/doctor-service/types.d.ts +7 -197
- package/dist/services/doctor/index.d.ts +1 -1
- package/dist/services/doctor/index.js +1 -1
- package/dist/services/env/shell-probe.js +8 -2
- package/dist/services/evidence/evidence-body-builders.d.ts +23 -0
- package/dist/services/evidence/evidence-body-builders.js +197 -0
- package/dist/services/evidence/evidence-generator.js +6 -187
- package/dist/services/evolution/evolution-constraints.d.ts +43 -0
- package/dist/services/evolution/evolution-constraints.js +54 -0
- package/dist/services/evolution/evolution-evaluation-schema.d.ts +43 -0
- package/dist/services/evolution/evolution-evaluation-schema.js +43 -0
- package/dist/services/evolution/evolution-service.d.ts +6 -6
- package/dist/services/evolution/evolution-service.js +58 -58
- package/dist/services/evolution/evolution-store.d.ts +2 -2
- package/dist/services/evolution/evolution-store.js +37 -51
- package/dist/services/evolution/evolution-types.d.ts +2 -22
- package/dist/services/evolution/evolution-types.js +41 -101
- package/dist/services/evolution/independent-evaluator-runner.d.ts +3 -3
- package/dist/services/evolution/independent-evaluator-runner.js +20 -22
- package/dist/services/evolution/regression-skeptic-runner.d.ts +2 -2
- package/dist/services/evolution/regression-skeptic-runner.js +18 -18
- package/dist/services/feedback/feedback-promotion-service.js +48 -12
- package/dist/services/feedback/promotion-artifact-evidence.d.ts +2 -16
- package/dist/services/feedback/promotion-artifact-evidence.js +6 -83
- package/dist/services/feedback/promotion-artifact-json-evidence.d.ts +29 -0
- package/dist/services/feedback/promotion-artifact-json-evidence.js +39 -0
- package/dist/services/feedback/promotion-source-comments.d.ts +47 -0
- package/dist/services/feedback/promotion-source-comments.js +61 -0
- package/dist/services/final-review/final-review-contract.d.ts +26 -0
- package/dist/services/final-review/final-review-contract.js +14 -0
- package/dist/services/final-review/final-review-delivery.d.ts +63 -0
- package/dist/services/final-review/final-review-delivery.js +124 -0
- package/dist/services/final-review/final-review-evidence-budget.d.ts +125 -0
- package/dist/services/final-review/final-review-evidence-budget.js +218 -0
- package/dist/services/final-review/final-review-evidence-collect.d.ts +4 -0
- package/dist/services/final-review/final-review-evidence-collect.js +230 -0
- package/dist/services/final-review/final-review-evidence-sources.d.ts +138 -0
- package/dist/services/final-review/final-review-evidence-sources.js +139 -0
- package/dist/services/final-review/final-review-fifth-dim.d.ts +8 -0
- package/dist/services/final-review/final-review-fifth-dim.js +20 -0
- package/dist/services/final-review/final-review-gates.d.ts +119 -0
- package/dist/services/final-review/final-review-gates.js +214 -0
- package/dist/services/final-review/final-review-output-budget.d.ts +88 -0
- package/dist/services/final-review/final-review-output-budget.js +161 -0
- package/dist/services/final-review/final-review-prompt.d.ts +35 -0
- package/dist/services/final-review/final-review-prompt.js +112 -0
- package/dist/services/final-review/final-review-reviewer.d.ts +57 -0
- package/dist/services/final-review/final-review-reviewer.js +95 -0
- package/dist/services/final-review/final-review-runner.d.ts +3 -0
- package/dist/services/final-review/final-review-runner.js +158 -0
- package/dist/services/final-review/final-review-service.d.ts +119 -373
- package/dist/services/final-review/final-review-service.js +48 -1380
- package/dist/services/final-review/final-review-verdicts.d.ts +60 -0
- package/dist/services/final-review/final-review-verdicts.js +91 -0
- package/dist/services/final-review/index.d.ts +3 -3
- package/dist/services/final-review/index.js +2 -2
- package/dist/services/final-review/pre-post-diff.js +32 -29
- package/dist/services/fixture/fixture-capture-service.js +14 -6
- package/dist/services/fresh-context/trigger-scan.js +13 -2
- package/dist/services/fuzzy-matching/fuzzy-match-service.js +1 -1
- package/dist/services/fuzzy-matching/fzf-pick-service.js +6 -1
- package/dist/services/hooks/pre-tool-code-gate.js +2 -2
- package/dist/services/hooks/presence-marker-detector.js +12 -2
- package/dist/services/hooks/worktree-authorization-gate.js +21 -7
- package/dist/services/ide/adapters/claude-code-adapter.js +30 -17
- package/dist/services/ide/adapters/codex-adapter.js +3 -5
- package/dist/services/ide/adapters/cursor-adapter.js +3 -5
- package/dist/services/ide/adapters/hermes-adapter.js +2 -4
- package/dist/services/ide/adapters/openclaw-adapter.js +2 -4
- package/dist/services/ide/adapters/qoder-adapter.js +2 -4
- package/dist/services/ide/adapters/tongyi-lingma-adapter.js +1 -1
- package/dist/services/ide/adapters/trae-adapter.js +3 -5
- package/dist/services/ide/adapters/zcode-adapter.js +8 -7
- package/dist/services/ide/current-model-detector.js +2 -1
- package/dist/services/ide/ide-compact-types.d.ts +153 -0
- package/dist/services/ide/ide-compact-types.js +1 -0
- package/dist/services/ide/ide-registry.js +1 -1
- package/dist/services/ide/ide-types.d.ts +7 -145
- package/dist/services/ide/resource-profile.js +1 -1
- package/dist/services/ide/shared/atomic-json.js +2 -1
- package/dist/services/impact/impact-scan-service.js +12 -5
- package/dist/services/job/job-commit-verification.d.ts +73 -0
- package/dist/services/job/job-commit-verification.js +72 -0
- package/dist/services/job/job-orchestrator.d.ts +42 -0
- package/dist/services/job/job-orchestrator.js +110 -10
- package/dist/services/job/job-progress-store.d.ts +75 -5
- package/dist/services/job/job-progress-store.js +83 -6
- package/dist/services/job/job-rotation.d.ts +1 -1
- package/dist/services/job/job-rotation.js +5 -1
- package/dist/services/job/job-state-store.js +2 -2
- package/dist/services/job/job-types.js +49 -20
- package/dist/services/job/subagent-job-wrapper.d.ts +1 -1
- package/dist/services/job/subagent-job-wrapper.js +5 -1
- package/dist/services/job-snapshot/snapshot.js +2 -2
- package/dist/services/karpathy-cost/karpathy-cost-check-service.js +23 -13
- package/dist/services/legacy/legacy-detector.js +51 -5
- package/dist/services/lint/detect-eslint.js +10 -4
- package/dist/services/lint/detect-ocr-18.js +11 -3
- package/dist/services/lint/eslint-runner-support.d.ts +22 -0
- package/dist/services/lint/eslint-runner-support.js +185 -0
- package/dist/services/lint/eslint-runner-types.d.ts +69 -0
- package/dist/services/lint/eslint-runner-types.js +11 -0
- package/dist/services/lint/eslint-runner.d.ts +4 -56
- package/dist/services/lint/eslint-runner.js +24 -178
- package/dist/services/lint/npx-resolver.js +1 -3
- package/dist/services/lint/ocr-18-acquire.js +15 -4
- package/dist/services/lint/ocr-multilang-adapter.js +4 -5
- package/dist/services/llm/anthropic-runner.js +4 -1
- package/dist/services/log/log-commands-service.js +2 -6
- package/dist/services/log/logger.js +15 -12
- package/dist/services/log/retention.js +3 -2
- package/dist/services/loop/evaluator-dispatcher.js +78 -42
- package/dist/services/loop/loop-bee-relation-service.d.ts +4 -4
- package/dist/services/loop/loop-bee-relation-service.js +36 -40
- package/dist/services/loop/loop-bee-relation-store.d.ts +3 -3
- package/dist/services/loop/loop-bee-relation-store.js +9 -11
- package/dist/services/loop/loop-bee-relation-types.d.ts +1 -1
- package/dist/services/loop/loop-bee-relation-types.js +14 -25
- package/dist/services/loop/loop-release-service.d.ts +2 -2
- package/dist/services/loop/loop-release-service.js +3 -3
- package/dist/services/loop/loop-release-store.d.ts +2 -2
- package/dist/services/loop/loop-release-store.js +4 -6
- package/dist/services/loop/loop-release-types.d.ts +1 -1
- package/dist/services/loop/loop-release-types.js +21 -31
- package/dist/services/loop/monotonic-guard-types.d.ts +51 -0
- package/dist/services/loop/monotonic-guard-types.js +9 -0
- package/dist/services/loop/monotonic-guard.d.ts +2 -43
- package/dist/services/loop/monotonic-runner-types.d.ts +63 -0
- package/dist/services/loop/monotonic-runner-types.js +17 -0
- package/dist/services/loop/monotonic-runner.d.ts +3 -34
- package/dist/services/loop/monotonic-runner.js +10 -20
- package/dist/services/loop/run-driver.js +16 -8
- package/dist/services/loop/spec-service.d.ts +0 -5
- package/dist/services/loop/spec-service.js +49 -9
- package/dist/services/memory/llm-reranker-core.d.ts +108 -0
- package/dist/services/memory/llm-reranker-core.js +105 -0
- package/dist/services/memory/llm-reranker.d.ts +3 -94
- package/dist/services/memory/llm-reranker.js +13 -102
- package/dist/services/memory/memory-ingest-service.d.ts +1 -22
- package/dist/services/memory/memory-ingest-service.js +29 -76
- package/dist/services/memory/memory-ingest-support.d.ts +23 -0
- package/dist/services/memory/memory-ingest-support.js +81 -0
- package/dist/services/memory/memory-rotate-service.js +41 -8
- package/dist/services/memory/memory-search-service.js +8 -4
- package/dist/services/memory/project-context-service.js +26 -5
- package/dist/services/memory/project-memory-service/index/kind-dispatch.d.ts +2 -7
- package/dist/services/memory/project-memory-service/index/kind-dispatch.js +17 -136
- package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.d.ts +7 -0
- package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.js +150 -0
- package/dist/services/memory/project-memory-service/index/ranking.js +6 -3
- package/dist/services/memory/project-memory-service/index/reindex.js +14 -5
- package/dist/services/memory/project-memory-service/memory-kinds.d.ts +31 -0
- package/dist/services/memory/project-memory-service/memory-kinds.js +87 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.d.ts +24 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.js +104 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +2 -24
- package/dist/services/memory/project-memory-service/parsers/frontmatter.js +28 -79
- package/dist/services/memory/project-memory-service/parsers/markdown-pure.js +15 -3
- package/dist/services/memory/project-memory-service/store/atomic-write.js +34 -22
- package/dist/services/memory/project-memory-service/store/paths.js +2 -1
- package/dist/services/memory/project-memory-service/types.d.ts +3 -31
- package/dist/services/memory/project-memory-service/types.js +1 -76
- package/dist/services/migrate-skill-name/migrate.js +1 -1
- package/dist/services/migrate-skill-name/schema.js +1 -1
- package/dist/services/mode/mode-enforcement.js +4 -2
- package/dist/services/mode/mode-status-service.d.ts +27 -9
- package/dist/services/mode/mode-status-service.js +64 -12
- package/dist/services/observability/aggregation-helpers.d.ts +22 -0
- package/dist/services/observability/aggregation-helpers.js +65 -0
- package/dist/services/observability/aggregation-types.d.ts +66 -0
- package/dist/services/observability/aggregation-types.js +34 -0
- package/dist/services/observability/aggregation.d.ts +5 -53
- package/dist/services/observability/aggregation.js +17 -80
- package/dist/services/observability/jsonl-store.js +2 -1
- package/dist/services/observability/observability-schema.d.ts +71 -0
- package/dist/services/observability/observability-schema.js +64 -0
- package/dist/services/observability/observability-service.d.ts +3 -56
- package/dist/services/observability/observability-service.js +9 -49
- package/dist/services/openspec/coverage-evidence-reader.js +18 -11
- package/dist/services/openspec/openspec-archive-service.js +31 -24
- package/dist/services/openspec/openspec-init-service.js +8 -2
- package/dist/services/openspec/openspec-propose-from-doctor-service.js +1 -1
- package/dist/services/openspec/openspec-scan-service.js +4 -1
- package/dist/services/openspec/openspec-validate-service.js +26 -5
- package/dist/services/perf/perf-baseline-service.js +2 -6
- package/dist/services/polyrepo/polyrepo-dispatcher.js +2 -1
- package/dist/services/polyrepo/polyrepo-scanner.js +4 -1
- package/dist/services/prd/handoff-frontmatter-shape.d.ts +42 -0
- package/dist/services/prd/handoff-frontmatter-shape.js +67 -0
- package/dist/services/prd/handoff-frontmatter.js +1 -1
- package/dist/services/prd/handoff-path-resolution.d.ts +37 -0
- package/dist/services/prd/handoff-path-resolution.js +101 -0
- package/dist/services/prd/handoff-service.d.ts +1 -37
- package/dist/services/prd/handoff-service.js +16 -148
- package/dist/services/prd/prd-blocks-checker.js +28 -8
- package/dist/services/prd/project-scan-bootstrap-service.js +1 -5
- package/dist/services/prd/project-scan-reader.js +1 -4
- package/dist/services/prd/project-scan-sediment.js +1 -4
- package/dist/services/preferences/preferences-service.js +6 -8
- package/dist/services/preferences/preferences-types.js +4 -4
- package/dist/services/qa/bdd-test-style-contract.d.ts +41 -0
- package/dist/services/qa/bdd-test-style-contract.js +37 -0
- package/dist/services/qa/bdd-test-style-verifier.d.ts +2 -24
- package/dist/services/qa/bdd-test-style-verifier.js +5 -31
- package/dist/services/qa/browser-event-logger.js +2 -1
- package/dist/services/qa/qa-business-review-state.js +20 -5
- package/dist/services/qa/screenshot-archive-service.js +1 -3
- package/dist/services/rd/ast-gate.js +2 -2
- package/dist/services/rd/impl.js +1 -1
- package/dist/services/rd/rd-service.js +117 -43
- package/dist/services/rd/reviewer-dispatch-policy.js +4 -7
- package/dist/services/rd/standards-diagnostic.js +4 -1
- package/dist/services/rd/strategy.js +10 -3
- package/dist/services/rd/tactical-stage.js +2 -2
- package/dist/services/rd/types.js +9 -7
- package/dist/services/rd-swarm/rd-swarm-service.d.ts +2 -45
- package/dist/services/rd-swarm/rd-swarm-service.js +140 -21
- package/dist/services/rd-swarm/rd-swarm-types.d.ts +54 -0
- package/dist/services/rd-swarm/rd-swarm-types.js +10 -0
- package/dist/services/recommendations/capability-map-service.js +10 -2
- package/dist/services/recommendations/capability-seed-items.js +81 -14
- package/dist/services/recommendations/capability-seed-mappings.js +420 -48
- package/dist/services/recommendations/capability-seed-sources-mcp-server.d.ts +9 -0
- package/dist/services/recommendations/capability-seed-sources-mcp-server.js +233 -0
- package/dist/services/recommendations/capability-seed-sources.js +127 -32
- package/dist/services/release/release-state.d.ts +2 -2
- package/dist/services/release/release-state.js +44 -15
- package/dist/services/release/version-precheck-layer-changeset.d.ts +2 -0
- package/dist/services/release/version-precheck-layer-changeset.js +43 -0
- package/dist/services/release/version-precheck-service.d.ts +11 -36
- package/dist/services/release/version-precheck-service.js +20 -104
- package/dist/services/release/version-precheck-support.d.ts +53 -0
- package/dist/services/release/version-precheck-support.js +64 -0
- package/dist/services/retrospective/retrospective-index.js +17 -3
- package/dist/services/retrospective/retrospective-search-service.js +6 -2
- package/dist/services/retrospective/retrospective-show.js +4 -1
- package/dist/services/reviewer/model-family.js +7 -1
- package/dist/services/reviewer/providers/anthropic.d.ts +5 -0
- package/dist/services/reviewer/providers/anthropic.js +10 -1
- package/dist/services/reviewer/providers/openai.d.ts +5 -0
- package/dist/services/reviewer/providers/openai.js +10 -1
- package/dist/services/reviewer/reviewer-config.js +4 -2
- package/dist/services/reviewer/reviewer-service.d.ts +2 -36
- package/dist/services/reviewer/reviewer-service.js +2 -1
- package/dist/services/reviewer/reviewer-types.d.ts +43 -0
- package/dist/services/reviewer/reviewer-types.js +1 -0
- package/dist/services/role/role-registry.js +9 -1
- package/dist/services/runtime/runtime-detector.js +4 -1
- package/dist/services/runtime/vendors/claude-code.js +14 -6
- package/dist/services/runtime/vendors/codex.js +11 -3
- package/dist/services/runtime/vendors/copilot.js +11 -3
- package/dist/services/sc/sc-service.js +28 -15
- package/dist/services/scan/acceptance-coverage-service.js +4 -1
- package/dist/services/scan/api-diff-openapi-schema-read.d.ts +67 -0
- package/dist/services/scan/api-diff-openapi-schema-read.js +154 -0
- package/dist/services/scan/api-diff-openapi.d.ts +16 -2
- package/dist/services/scan/api-diff-openapi.js +19 -123
- package/dist/services/scan/api-diff-recorded.js +16 -3
- package/dist/services/scan/api-diff-service.js +49 -16
- package/dist/services/scan/api-diff-types.js +12 -3
- package/dist/services/scan/api-surface-helpers.d.ts +13 -0
- package/dist/services/scan/api-surface-helpers.js +31 -0
- package/dist/services/scan/api-surface-service.d.ts +2 -45
- package/dist/services/scan/api-surface-service.js +15 -26
- package/dist/services/scan/api-surface-types.d.ts +54 -0
- package/dist/services/scan/api-surface-types.js +10 -0
- package/dist/services/scan/archetype-detection.d.ts +37 -0
- package/dist/services/scan/archetype-detection.js +142 -0
- package/dist/services/scan/archetype-service.js +36 -125
- package/dist/services/scan/diff-scope-service.js +35 -15
- package/dist/services/scan/existing-system-service.js +16 -99
- package/dist/services/scan/existing-system-visual-tokens.d.ts +20 -0
- package/dist/services/scan/existing-system-visual-tokens.js +123 -0
- package/dist/services/scan/file-size-policy.d.ts +86 -0
- package/dist/services/scan/file-size-policy.js +184 -0
- package/dist/services/scan/file-size-scan.d.ts +30 -3
- package/dist/services/scan/file-size-scan.js +47 -9
- package/dist/services/scan/karpathy-service.js +6 -1
- package/dist/services/scan/orphan-service.js +86 -20
- package/dist/services/scan/type-sanity-service.js +104 -10
- package/dist/services/sediment/dispose-confirm.d.ts +2 -2
- package/dist/services/sediment/dispose-confirm.js +2 -2
- package/dist/services/sediment/json-schema.d.ts +1 -1
- package/dist/services/sediment/json-schema.js +25 -13
- package/dist/services/sediment/manifest-lint.d.ts +1 -12
- package/dist/services/sediment/manifest-lint.js +1 -7
- package/dist/services/sediment/pool-paths.js +13 -9
- package/dist/services/sediment/pool-read.d.ts +1 -1
- package/dist/services/sediment/pool-read.js +42 -18
- package/dist/services/sediment/pool-rebuild-index.d.ts +1 -1
- package/dist/services/sediment/pool-rebuild-index.js +5 -5
- package/dist/services/sediment/pool-write.d.ts +1 -1
- package/dist/services/sediment/pool-write.js +7 -7
- package/dist/services/sediment/promotion-gate.d.ts +1 -1
- package/dist/services/sediment/promotion-gate.js +9 -9
- package/dist/services/sediment/types.d.ts +8 -8
- package/dist/services/session/binding-status-service.js +14 -4
- package/dist/services/session/caller-binding-service.js +2 -1
- package/dist/services/session/getSessionDir.js +4 -1
- package/dist/services/session/index.d.ts +1 -1
- package/dist/services/session/index.js +1 -1
- package/dist/services/session/resolve-caller-id.js +7 -5
- package/dist/services/session/session-binding-bridge.js +26 -25
- package/dist/services/session/session-checkpoint-service.js +1 -1
- package/dist/services/session/session-file-schema.d.ts +70 -0
- package/dist/services/session/session-file-schema.js +68 -0
- package/dist/services/session/session-manager.d.ts +6 -6
- package/dist/services/session/session-manager.js +30 -29
- package/dist/services/session/session-resume-service.js +2 -1
- package/dist/services/share/bundle-format-constants.d.ts +85 -0
- package/dist/services/share/bundle-format-constants.js +100 -0
- package/dist/services/share/bundle-reader.d.ts +3 -3
- package/dist/services/share/bundle-reader.js +75 -68
- package/dist/services/share/bundle-types.d.ts +3 -70
- package/dist/services/share/bundle-types.js +38 -107
- package/dist/services/share/bundle-writer.d.ts +3 -3
- package/dist/services/share/bundle-writer.js +101 -91
- package/dist/services/share/run-state-contract.d.ts +1 -1
- package/dist/services/share/run-state-contract.js +7 -13
- package/dist/services/signal/cancel-handler.js +2 -1
- package/dist/services/skill/resume-detector.js +6 -4
- package/dist/services/skill/skill-scheduler.js +3 -1
- package/dist/services/skill/skill-search-service.js +4 -4
- package/dist/services/skillhub/release-diff.d.ts +2 -2
- package/dist/services/skillhub/release-diff.js +6 -10
- package/dist/services/skillhub/release-export.d.ts +2 -2
- package/dist/services/skillhub/release-export.js +15 -17
- package/dist/services/skillhub/release-gc-blobs.d.ts +2 -2
- package/dist/services/skillhub/release-gc-blobs.js +4 -4
- package/dist/services/skillhub/release-import.d.ts +2 -2
- package/dist/services/skillhub/release-import.js +13 -12
- package/dist/services/skillhub/release-retain.d.ts +3 -3
- package/dist/services/skillhub/release-retain.js +22 -22
- package/dist/services/skillhub/sqlite-store.d.ts +1 -1
- package/dist/services/skillhub/sqlite-store.js +12 -11
- package/dist/services/skillhub/tar-runtime.js +15 -15
- package/dist/services/skillhub/types.d.ts +4 -4
- package/dist/services/skills/hooks-codegate-superpowers.js +16 -7
- package/dist/services/skills/hooks-settings-service.js +61 -19
- package/dist/services/skills/presence-lease-service.js +26 -16
- package/dist/services/skills/presence-lease-types.d.ts +1 -1
- package/dist/services/skills/presence-lease-types.js +1 -1
- package/dist/services/skills/skill-conformance-service.js +40 -8
- package/dist/services/skills/skill-presence-service.js +16 -14
- package/dist/services/skills/skill-runbook-service.js +2 -1
- package/dist/services/skills/skill-statusline-model.d.ts +128 -0
- package/dist/services/skills/skill-statusline-model.js +163 -0
- package/dist/services/skills/skill-statusline-renderer.js +4 -3
- package/dist/services/skills/skill-statusline-service.d.ts +3 -100
- package/dist/services/skills/skill-statusline-service.js +56 -163
- package/dist/services/skills/statusline-palette.js +11 -6
- package/dist/services/skills/statusline-settings-service.js +2 -1
- package/dist/services/skills/sync-service-support.d.ts +65 -0
- package/dist/services/skills/sync-service-support.js +50 -0
- package/dist/services/skills/sync-service.d.ts +3 -66
- package/dist/services/skills/sync-service.js +15 -53
- package/dist/services/slice/calibration-store.js +8 -2
- package/dist/services/slice/cross-pass-edge-merger.d.ts +3 -28
- package/dist/services/slice/cross-pass-edge-merger.js +13 -63
- package/dist/services/slice/cross-pass-edge-static-scan-support.d.ts +69 -0
- package/dist/services/slice/cross-pass-edge-static-scan-support.js +74 -0
- package/dist/services/slice/granularity-decider.js +2 -2
- package/dist/services/slice/slice-archive-service.js +8 -3
- package/dist/services/slice/slice-check-service.js +19 -8
- package/dist/services/slice/slice-decompose-runners.js +61 -23
- package/dist/services/slice/slice-decompose-service.js +4 -4
- package/dist/services/slice/slice-review-state.js +8 -2
- package/dist/services/smoke/smoke-paths-state.js +9 -2
- package/dist/services/sop/gate-enforce-service.js +9 -2
- package/dist/services/sop/sop-advance-service.js +14 -2
- package/dist/services/sop/sop-check-service.js +16 -4
- package/dist/services/sop/sop-paths.js +3 -1
- package/dist/services/sop/sop-registry-service.js +5 -1
- package/dist/services/sop/sop-service.js +29 -7
- package/dist/services/sop/sop-types.js +5 -1
- package/dist/services/standards/ide-aware-standards-service.js +2 -2
- package/dist/services/standards/loop-engineering-lint.js +12 -5
- package/dist/services/standards/loop-engineering-readiness-lint.js +5 -5
- package/dist/services/standards/migrate-claude-rules-service.js +9 -7
- package/dist/services/standards/missing-standards-detector.js +1 -3
- package/dist/services/standards/project-context-support.d.ts +50 -0
- package/dist/services/standards/project-context-support.js +244 -0
- package/dist/services/standards/project-context-types.d.ts +30 -0
- package/dist/services/standards/project-context-types.js +11 -0
- package/dist/services/standards/project-context.d.ts +10 -22
- package/dist/services/standards/project-context.js +27 -214
- package/dist/services/standards/project-standards-service.js +43 -12
- package/dist/services/standards/standards-render-common.d.ts +15 -0
- package/dist/services/standards/standards-render-common.js +49 -0
- package/dist/services/standards/standards-render.d.ts +1 -2
- package/dist/services/standards/standards-render.js +31 -58
- package/dist/services/standards/ui-library-dispatch-block.js +1 -1
- package/dist/services/tech/tech-change-id-service.js +7 -7
- package/dist/services/tech/tech-service.js +73 -26
- package/dist/services/test-cache/test-cache-service.js +8 -3
- package/dist/services/upgrade/1x-detector-service.js +5 -3
- package/dist/services/upgrade/gitignore-migrate-service.js +5 -5
- package/dist/services/upgrade/upgrade-service.js +36 -13
- package/dist/services/verdict/envelope-parsers.d.ts +84 -0
- package/dist/services/verdict/envelope-parsers.js +146 -0
- package/dist/services/verdict/envelopes.d.ts +50 -60
- package/dist/services/verdict/envelopes.js +18 -156
- package/dist/services/verdict/verdict-aggregator.js +27 -3
- package/dist/services/vm/vm-lease.js +15 -3
- package/dist/services/web/aria-node.d.ts +27 -0
- package/dist/services/web/aria-node.js +1 -0
- package/dist/services/web/browser-acquire.js +3 -1
- package/dist/services/web/browser-cache-probe.d.ts +18 -0
- package/dist/services/web/browser-cache-probe.js +110 -0
- package/dist/services/web/browser-session-manager.js +6 -2
- package/dist/services/web/daemon-registry.js +4 -1
- package/dist/services/web/playwright-loader.d.ts +2 -70
- package/dist/services/web/playwright-types.d.ts +75 -0
- package/dist/services/web/playwright-types.js +1 -0
- package/dist/services/web/snapshot-pruner.d.ts +2 -23
- package/dist/services/web/snapshot-pruner.js +8 -3
- package/dist/services/web/web-daemon-service.js +1 -3
- package/dist/services/web/web-install-service.d.ts +3 -32
- package/dist/services/web/web-install-service.js +21 -100
- package/dist/services/web/web-install-types.d.ts +31 -0
- package/dist/services/web/web-install-types.js +13 -0
- package/dist/services/web/web-login-profile.js +7 -5
- package/dist/services/web/web-protocol.js +3 -1
- package/dist/services/workflow/pipeline-verify-gate-support.js +63 -17
- package/dist/services/workflow/pipeline-verify-service.js +17 -6
- package/dist/services/workflow/plan-reader.js +5 -1
- package/dist/services/workflow/plan-refresher.js +20 -6
- package/dist/services/workflow/plan-trigger-detector.js +31 -8
- package/dist/services/workflow/provision-dispatch-node.js +8 -3
- package/dist/services/workflow/workflow-autonomous-resume-helpers.d.ts +3 -1
- package/dist/services/workflow/workflow-autonomous-resume-helpers.js +35 -144
- package/dist/services/workflow/workflow-autonomous-resume-validation.d.ts +16 -0
- package/dist/services/workflow/workflow-autonomous-resume-validation.js +155 -0
- package/dist/services/workflow/workflow-autonomous-service.js +25 -13
- package/dist/services/workflow/workflow-graph-store-helpers.d.ts +51 -0
- package/dist/services/workflow/workflow-graph-store-helpers.js +111 -0
- package/dist/services/workflow/workflow-graph-store.d.ts +2 -35
- package/dist/services/workflow/workflow-graph-store.js +30 -107
- package/dist/services/workflow/workflow-graph-types.js +3 -3
- package/dist/services/workflow/workflow-inflight-probe.js +14 -7
- package/dist/services/workflow/workflow-loader.js +5 -1
- package/dist/services/workflow/workflow-node-lifecycle.js +22 -21
- package/dist/services/workflow/workflow-presence-lifecycle-types.d.ts +50 -0
- package/dist/services/workflow/workflow-presence-lifecycle-types.js +1 -0
- package/dist/services/workflow/workflow-presence-lifecycle.d.ts +2 -42
- package/dist/services/workflow/workflow-presence-lifecycle.js +19 -21
- package/dist/services/workflow/workflow-router-service.js +169 -27
- package/dist/services/workflow/workflow-skip-service.js +14 -4
- package/dist/services/workflow/workflow-spec-builders.d.ts +15 -0
- package/dist/services/workflow/workflow-spec-builders.js +121 -0
- package/dist/services/workflow/workflow-spec.d.ts +7 -6
- package/dist/services/workflow/workflow-spec.js +22 -116
- package/dist/services/workflow/workflow-state-store.js +2 -1
- package/dist/services/workspace/migrate-1-4-1-service.js +80 -14
- package/dist/services/workspace/migrate-service.js +66 -16
- package/dist/services/workspace/reconcile-migrate.js +6 -2
- package/dist/services/workspace/reconcile-service.js +37 -16
- package/dist/services/workspace/workspace-claude-settings-materializer.js +7 -5
- package/dist/services/workspace/workspace-clean-service.js +4 -1
- package/dist/services/workspace/workspace-service.js +11 -3
- package/dist/services/workspace/workspace-state-service.js +1 -1
- package/dist/services/worktree/git-worktree-parser.js +13 -3
- package/dist/services/worktree/host-worktree-reconciler.js +8 -4
- package/dist/services/worktree/long-path-cleanup.js +23 -6
- package/dist/services/worktree/worktree-gc-guard.js +3 -1
- package/dist/services/worktree/worktree-lease-types.d.ts +53 -0
- package/dist/services/worktree/worktree-lease-types.js +10 -0
- package/dist/services/worktree/worktree-lease.d.ts +2 -44
- package/dist/shared/array-guards.d.ts +30 -0
- package/dist/shared/array-guards.js +32 -0
- package/dist/shared/format-md-compact-internals.d.ts +26 -0
- package/dist/shared/format-md-compact-internals.js +125 -0
- package/dist/shared/format-md-compact.js +1 -117
- package/dist/shared/fs-utils.js +2 -1
- package/dist/shared/incrementing-number.js +3 -3
- package/dist/shared/json-parse.d.ts +71 -0
- package/dist/shared/json-parse.js +32 -0
- package/dist/shared/json-schema-mini.js +3 -1
- package/dist/shared/path-safety.js +3 -1
- package/dist/shared/path-utils.d.ts +20 -0
- package/dist/shared/path-utils.js +26 -0
- package/dist/shared/planner-response.js +3 -3
- package/dist/shared/stale-policy.js +1 -3
- package/dist/skills/peaks-maker/index.js +11 -11
- package/package.json +31 -8
- package/scripts/clean-dist.mjs +1 -2
- package/scripts/copy-templates.mjs +2 -4
- package/scripts/install-skills.mjs +305 -125
- package/scripts/sync-version.mjs +25 -8
- package/scripts/watch.mjs +8 -2
- package/skills/peaks-code/SKILL.md +1 -1
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `src/services/code/mode-gate-types.ts`
|
|
3
|
+
*
|
|
4
|
+
* The declaration surface of the D5 gate: the mode alias, the gated-step
|
|
5
|
+
* vocabulary, and the commit-boundary vocabulary with its regex matchers.
|
|
6
|
+
* Extracted verbatim from `mode-gate.ts` (wave 3, file-size cap campaign) so
|
|
7
|
+
* the gate module stays under the 300 raw-line cap. Mechanical move only — no
|
|
8
|
+
* decision logic lives here. `mode-gate.ts` imports and re-exports every name
|
|
9
|
+
* below, so importers keep resolving them from `mode-gate.js` unchanged.
|
|
10
|
+
*
|
|
11
|
+
* The hard-floor vocabulary deliberately does NOT live here:
|
|
12
|
+
* `feedback-promotion` certifies a layer-C rule by reading
|
|
13
|
+
* `HardFloorCategory` and `HARD_FLOOR_CATEGORIES` out of `mode-gate.ts`
|
|
14
|
+
* itself (see `promotion-artifact-evidence.ts`).
|
|
15
|
+
*/
|
|
16
|
+
export const CODE_MODES = ['full-auto', 'assisted', 'strict', '24h'];
|
|
17
|
+
export const GATED_STEPS = [
|
|
18
|
+
'step-0.5-openspec-opt-in',
|
|
19
|
+
'step-0.6-audit-goal',
|
|
20
|
+
'step-0.7-resume-detection',
|
|
21
|
+
'step-0.55-1x-upgrade',
|
|
22
|
+
'step-1-mode-select',
|
|
23
|
+
'step-2.5-session-title',
|
|
24
|
+
'phase-2-prd-confirm',
|
|
25
|
+
'phase-3-swarm-gate-b',
|
|
26
|
+
'phase-6-qa-gate-d',
|
|
27
|
+
'phase-10-txt-memory-extract',
|
|
28
|
+
'step-n+1-final-review',
|
|
29
|
+
'frontend-only-mismatch',
|
|
30
|
+
'step-0.75-checkpoint-resume',
|
|
31
|
+
'standards-preflight'
|
|
32
|
+
];
|
|
33
|
+
export const COMMIT_BOUNDARY_ACTIONS = [
|
|
34
|
+
'git-push',
|
|
35
|
+
'git-tag',
|
|
36
|
+
'npm-publish',
|
|
37
|
+
'npm-install-global',
|
|
38
|
+
'peaks-global-install'
|
|
39
|
+
];
|
|
40
|
+
/**
|
|
41
|
+
* v2.15.0 slice 002 AC-4: regex matchers the LLM-side caller uses
|
|
42
|
+
* to flag a Bash command as a commit-boundary action. Centralised
|
|
43
|
+
* here so the test seam + the CLI wiring share one source of
|
|
44
|
+
* truth. Each entry is an anchored pattern matched against the
|
|
45
|
+
* user-invoked command (after commander / shell normalisation,
|
|
46
|
+
* before execution).
|
|
47
|
+
*
|
|
48
|
+
* Patterns intentionally cover the common canonical forms:
|
|
49
|
+
*
|
|
50
|
+
* - `git-push` → `git push`, `git push origin main`, `git push --tags`
|
|
51
|
+
* - `git-tag` → `git tag v2.15.0`, `git tag -a v2.15.0 -m ...`
|
|
52
|
+
* - `npm-publish` → `npm publish`, `npm publish --access public`
|
|
53
|
+
* - `npm-install-global` → `npm install -g <pkg>`, `npm i -g <pkg>`
|
|
54
|
+
* - `peaks-global-install`→ `npm install -g peaks-loop`, `pnpm add -g peaks-loop`
|
|
55
|
+
*
|
|
56
|
+
* These are coarse — false positives are fine (worst case: a
|
|
57
|
+
* non-actionable command gets paused for confirmation; the user
|
|
58
|
+
* can confirm in one click). False negatives are NOT fine — a
|
|
59
|
+
* missed publish would violate the full-auto boundary.
|
|
60
|
+
*/
|
|
61
|
+
export const COMMIT_BOUNDARY_PATTERNS = {
|
|
62
|
+
'git-push': /\bgit\s+push\b/,
|
|
63
|
+
'git-tag': /\bgit\s+tag\b/,
|
|
64
|
+
'npm-publish': /\bnpm\s+(publish|pub)\b/,
|
|
65
|
+
'npm-install-global': /\bnpm\s+(install|i|add)\s+(-g|--global)\b/,
|
|
66
|
+
'peaks-global-install': /\b(peaks-loop)\b/
|
|
67
|
+
};
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
* Re-uses `SkillPresenceMode` from `skill-presence-service.ts` so the
|
|
20
20
|
* 4 mode values stay in lockstep with the rest of the runtime.
|
|
21
21
|
*/
|
|
22
|
-
import type
|
|
23
|
-
export
|
|
24
|
-
export
|
|
22
|
+
import { type CodeMode, type CommitBoundaryActionId, type GatedStepId } from './mode-gate-types.js';
|
|
23
|
+
export { CODE_MODES, COMMIT_BOUNDARY_ACTIONS, COMMIT_BOUNDARY_PATTERNS, GATED_STEPS } from './mode-gate-types.js';
|
|
24
|
+
export type { CodeMode, CommitBoundaryActionId, GatedStepId } from './mode-gate-types.js';
|
|
25
25
|
export type HardFloorCategory = 'irreversible-external-side-effect' | 'authentication-credential' | 'multi-day-investment'
|
|
26
26
|
/**
|
|
27
27
|
* v2.15.0 slice 002 AC-4: actions that are past the user's
|
|
@@ -34,13 +34,6 @@ export type HardFloorCategory = 'irreversible-external-side-effect' | 'authentic
|
|
|
34
34
|
*/
|
|
35
35
|
| 'commit-boundary-side-effect';
|
|
36
36
|
export declare const HARD_FLOOR_CATEGORIES: readonly HardFloorCategory[];
|
|
37
|
-
/**
|
|
38
|
-
* The 14 SKILL.md AskUserQuestion sites mapped in the D5 memory's
|
|
39
|
-
* "Inventory of unconditional confirmation gates" table. Each row
|
|
40
|
-
* is the bare minimum needed to gate it through `shouldPauseAtGate`.
|
|
41
|
-
*/
|
|
42
|
-
export type GatedStepId = 'step-0.5-openspec-opt-in' | 'step-0.6-audit-goal' | 'step-0.7-resume-detection' | 'step-0.55-1x-upgrade' | 'step-1-mode-select' | 'step-2.5-session-title' | 'phase-2-prd-confirm' | 'phase-3-swarm-gate-b' | 'phase-6-qa-gate-d' | 'phase-10-txt-memory-extract' | 'step-n+1-final-review' | 'frontend-only-mismatch' | 'step-0.75-checkpoint-resume' | 'standards-preflight';
|
|
43
|
-
export declare const GATED_STEPS: readonly GatedStepId[];
|
|
44
37
|
/**
|
|
45
38
|
* Slice 2026-06-28-code-mode-bypass-fix: the kind of gate that
|
|
46
39
|
* produced this decision. The LLM-side caller (peaks-code body) reads
|
|
@@ -74,6 +67,7 @@ export interface GateDecision {
|
|
|
74
67
|
}
|
|
75
68
|
export declare function isCodeMode(value: string): value is CodeMode;
|
|
76
69
|
export declare function isHardFloorCategory(value: string): value is HardFloorCategory;
|
|
70
|
+
export declare function isCommitBoundaryAction(value: string): value is CommitBoundaryActionId;
|
|
77
71
|
/**
|
|
78
72
|
* `true` when the current mode should auto-proceed (skip the
|
|
79
73
|
* AskUserQuestion round-trip). Mirrors D5.a: "recommended = chosen
|
|
@@ -84,32 +78,6 @@ export declare function isHardFloorCategory(value: string): value is HardFloorCa
|
|
|
84
78
|
* mode); `24h` replaces it as the second auto-proceed peer.
|
|
85
79
|
*/
|
|
86
80
|
export declare function shouldAutoProceed(mode: CodeMode): boolean;
|
|
87
|
-
/**
|
|
88
|
-
* Should the LLM emit an AskUserQuestion at `step` given `mode`?
|
|
89
|
-
* Pure function: no IO, no LLM call. The LLM-side caller passes the
|
|
90
|
-
* mode it loaded from skill presence, and the step it is about to
|
|
91
|
-
* execute; this function returns a `GateDecision` with the rationale.
|
|
92
|
-
*
|
|
93
|
-
* The hard-floor categories always win — even full-auto pauses for
|
|
94
|
-
* irreversible external side effects, auth/credential usage,
|
|
95
|
-
* multi-day investment decisions (D5.b), and commit-boundary side
|
|
96
|
-
* effects (v2.15.0 slice 002 AC-4: push, tag, publish, global install).
|
|
97
|
-
*
|
|
98
|
-
* `hardFloorCategory` is optional on the `GateDecision` so callers can
|
|
99
|
-
* stamp the override into the auto-decisions log without a second
|
|
100
|
-
* switch.
|
|
101
|
-
*/
|
|
102
|
-
/**
|
|
103
|
-
* v2.15.0 slice 002 AC-4: the 5 action identifiers that qualify as
|
|
104
|
-
* commit-boundary side effects. Matched by the LLM-side caller
|
|
105
|
-
* (peaks-code body / peaks-rd fork agent) when it is about to run a
|
|
106
|
-
* Bash command that maps to one of these. Set `commitBoundaryAction:
|
|
107
|
-
* true` on the `shouldPauseAtGate` call to trigger the hard-floor
|
|
108
|
-
* override.
|
|
109
|
-
*/
|
|
110
|
-
export type CommitBoundaryActionId = 'git-push' | 'git-tag' | 'npm-publish' | 'npm-install-global' | 'peaks-global-install';
|
|
111
|
-
export declare const COMMIT_BOUNDARY_ACTIONS: readonly CommitBoundaryActionId[];
|
|
112
|
-
export declare function isCommitBoundaryAction(value: string): value is CommitBoundaryActionId;
|
|
113
81
|
export declare function shouldPauseAtGate(opts: {
|
|
114
82
|
mode: CodeMode;
|
|
115
83
|
step: GatedStepId;
|
|
@@ -134,28 +102,6 @@ export declare function formatAutoProceedLogLine(opts: {
|
|
|
134
102
|
recommendedOption: string;
|
|
135
103
|
hardFloorCategory?: HardFloorCategory | undefined;
|
|
136
104
|
}): string;
|
|
137
|
-
/**
|
|
138
|
-
* v2.15.0 slice 002 AC-4: regex matchers the LLM-side caller uses
|
|
139
|
-
* to flag a Bash command as a commit-boundary action. Centralised
|
|
140
|
-
* here so the test seam + the CLI wiring share one source of
|
|
141
|
-
* truth. Each entry is an anchored pattern matched against the
|
|
142
|
-
* user-invoked command (after commander / shell normalisation,
|
|
143
|
-
* before execution).
|
|
144
|
-
*
|
|
145
|
-
* Patterns intentionally cover the common canonical forms:
|
|
146
|
-
*
|
|
147
|
-
* - `git-push` → `git push`, `git push origin main`, `git push --tags`
|
|
148
|
-
* - `git-tag` → `git tag v2.15.0`, `git tag -a v2.15.0 -m ...`
|
|
149
|
-
* - `npm-publish` → `npm publish`, `npm publish --access public`
|
|
150
|
-
* - `npm-install-global` → `npm install -g <pkg>`, `npm i -g <pkg>`
|
|
151
|
-
* - `peaks-global-install`→ `npm install -g peaks-loop`, `pnpm add -g peaks-loop`
|
|
152
|
-
*
|
|
153
|
-
* These are coarse — false positives are fine (worst case: a
|
|
154
|
-
* non-actionable command gets paused for confirmation; the user
|
|
155
|
-
* can confirm in one click). False negatives are NOT fine — a
|
|
156
|
-
* missed publish would violate the full-auto boundary.
|
|
157
|
-
*/
|
|
158
|
-
export declare const COMMIT_BOUNDARY_PATTERNS: Readonly<Record<CommitBoundaryActionId, RegExp>>;
|
|
159
105
|
/**
|
|
160
106
|
* v2.15.0 slice 002 AC-4: detect whether a Bash command matches any
|
|
161
107
|
* commit-boundary action pattern. Returns the action id of the
|
|
@@ -19,40 +19,27 @@
|
|
|
19
19
|
* Re-uses `SkillPresenceMode` from `skill-presence-service.ts` so the
|
|
20
20
|
* 4 mode values stay in lockstep with the rest of the runtime.
|
|
21
21
|
*/
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
import { CODE_MODES, COMMIT_BOUNDARY_ACTIONS, COMMIT_BOUNDARY_PATTERNS } from './mode-gate-types.js';
|
|
23
|
+
// The mode alias, the gated-step vocabulary and the commit-boundary vocabulary
|
|
24
|
+
// live in `mode-gate-types.ts` (wave-3 file-size cap split; declarations moved
|
|
25
|
+
// verbatim). Re-exported here so every importer keeps resolving them from
|
|
26
|
+
// `mode-gate.js` unchanged.
|
|
27
|
+
export { CODE_MODES, COMMIT_BOUNDARY_ACTIONS, COMMIT_BOUNDARY_PATTERNS, GATED_STEPS } from './mode-gate-types.js';
|
|
28
28
|
export const HARD_FLOOR_CATEGORIES = [
|
|
29
29
|
'irreversible-external-side-effect',
|
|
30
30
|
'authentication-credential',
|
|
31
31
|
'multi-day-investment',
|
|
32
32
|
'commit-boundary-side-effect'
|
|
33
33
|
];
|
|
34
|
-
export const GATED_STEPS = [
|
|
35
|
-
'step-0.5-openspec-opt-in',
|
|
36
|
-
'step-0.6-audit-goal',
|
|
37
|
-
'step-0.7-resume-detection',
|
|
38
|
-
'step-0.55-1x-upgrade',
|
|
39
|
-
'step-1-mode-select',
|
|
40
|
-
'step-2.5-session-title',
|
|
41
|
-
'phase-2-prd-confirm',
|
|
42
|
-
'phase-3-swarm-gate-b',
|
|
43
|
-
'phase-6-qa-gate-d',
|
|
44
|
-
'phase-10-txt-memory-extract',
|
|
45
|
-
'step-n+1-final-review',
|
|
46
|
-
'frontend-only-mismatch',
|
|
47
|
-
'step-0.75-checkpoint-resume',
|
|
48
|
-
'standards-preflight'
|
|
49
|
-
];
|
|
50
34
|
export function isCodeMode(value) {
|
|
51
35
|
return CODE_MODES.includes(value);
|
|
52
36
|
}
|
|
53
37
|
export function isHardFloorCategory(value) {
|
|
54
38
|
return HARD_FLOOR_CATEGORIES.includes(value);
|
|
55
39
|
}
|
|
40
|
+
export function isCommitBoundaryAction(value) {
|
|
41
|
+
return COMMIT_BOUNDARY_ACTIONS.includes(value);
|
|
42
|
+
}
|
|
56
43
|
/**
|
|
57
44
|
* `true` when the current mode should auto-proceed (skip the
|
|
58
45
|
* AskUserQuestion round-trip). Mirrors D5.a: "recommended = chosen
|
|
@@ -65,16 +52,21 @@ export function isHardFloorCategory(value) {
|
|
|
65
52
|
export function shouldAutoProceed(mode) {
|
|
66
53
|
return mode === 'full-auto' || mode === '24h';
|
|
67
54
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
55
|
+
/**
|
|
56
|
+
* Should the LLM emit an AskUserQuestion at `step` given `mode`?
|
|
57
|
+
* Pure function: no IO, no LLM call. The LLM-side caller passes the
|
|
58
|
+
* mode it loaded from skill presence, and the step it is about to
|
|
59
|
+
* execute; this function returns a `GateDecision` with the rationale.
|
|
60
|
+
*
|
|
61
|
+
* The hard-floor categories always win — even full-auto pauses for
|
|
62
|
+
* irreversible external side effects, auth/credential usage,
|
|
63
|
+
* multi-day investment decisions (D5.b), and commit-boundary side
|
|
64
|
+
* effects (v2.15.0 slice 002 AC-4: push, tag, publish, global install).
|
|
65
|
+
*
|
|
66
|
+
* `hardFloorCategory` is optional on the `GateDecision` so callers can
|
|
67
|
+
* stamp the override into the auto-decisions log without a second
|
|
68
|
+
* switch.
|
|
69
|
+
*/
|
|
78
70
|
/**
|
|
79
71
|
* Hard-pause steps: these pause regardless of mode. They are the gates
|
|
80
72
|
* whose decision *creates* or *recreates* the mode/state under which
|
|
@@ -154,34 +146,6 @@ export function formatAutoProceedLogLine(opts) {
|
|
|
154
146
|
}
|
|
155
147
|
return `auto-proceed (${opts.mode}): ${opts.step} → ${opts.recommendedOption}`;
|
|
156
148
|
}
|
|
157
|
-
/**
|
|
158
|
-
* v2.15.0 slice 002 AC-4: regex matchers the LLM-side caller uses
|
|
159
|
-
* to flag a Bash command as a commit-boundary action. Centralised
|
|
160
|
-
* here so the test seam + the CLI wiring share one source of
|
|
161
|
-
* truth. Each entry is an anchored pattern matched against the
|
|
162
|
-
* user-invoked command (after commander / shell normalisation,
|
|
163
|
-
* before execution).
|
|
164
|
-
*
|
|
165
|
-
* Patterns intentionally cover the common canonical forms:
|
|
166
|
-
*
|
|
167
|
-
* - `git-push` → `git push`, `git push origin main`, `git push --tags`
|
|
168
|
-
* - `git-tag` → `git tag v2.15.0`, `git tag -a v2.15.0 -m ...`
|
|
169
|
-
* - `npm-publish` → `npm publish`, `npm publish --access public`
|
|
170
|
-
* - `npm-install-global` → `npm install -g <pkg>`, `npm i -g <pkg>`
|
|
171
|
-
* - `peaks-global-install`→ `npm install -g peaks-loop`, `pnpm add -g peaks-loop`
|
|
172
|
-
*
|
|
173
|
-
* These are coarse — false positives are fine (worst case: a
|
|
174
|
-
* non-actionable command gets paused for confirmation; the user
|
|
175
|
-
* can confirm in one click). False negatives are NOT fine — a
|
|
176
|
-
* missed publish would violate the full-auto boundary.
|
|
177
|
-
*/
|
|
178
|
-
export const COMMIT_BOUNDARY_PATTERNS = {
|
|
179
|
-
'git-push': /\bgit\s+push\b/,
|
|
180
|
-
'git-tag': /\bgit\s+tag\b/,
|
|
181
|
-
'npm-publish': /\bnpm\s+(publish|pub)\b/,
|
|
182
|
-
'npm-install-global': /\bnpm\s+(install|i|add)\s+(-g|--global)\b/,
|
|
183
|
-
'peaks-global-install': /\b(peaks-loop)\b/
|
|
184
|
-
};
|
|
185
149
|
/**
|
|
186
150
|
* v2.15.0 slice 002 AC-4: detect whether a Bash command matches any
|
|
187
151
|
* commit-boundary action pattern. Returns the action id of the
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* orchestrator-can-do-advisories.js — the pure message side of
|
|
3
|
+
* `buildOrchestratorCanDoResult` (see `./orchestrator-can-do.ts`).
|
|
4
|
+
*
|
|
5
|
+
* Hoisted out of that module by slice c2w1 of `strict-remediation-abc` without
|
|
6
|
+
* touching one predicate, one branch order, or one byte of message text: the
|
|
7
|
+
* strings below are the probe's wire contract, consumed by skill prose and by
|
|
8
|
+
* the `pre-tool-code-gate` hook contract.
|
|
9
|
+
*/
|
|
10
|
+
/** Slice 2026-08-05-orchestrator-can-do-probe: red-line threshold. */
|
|
11
|
+
export declare const ORCHESTRATOR_REDLINE_RATIO = 0.95;
|
|
12
|
+
/** Slice 2026-08-05-orchestrator-can-do-probe: pre-compact threshold. */
|
|
13
|
+
export declare const ORCHESTRATOR_PRECOMPACT_RATIO = 0.85;
|
|
14
|
+
/** The four Q signals that produce blockers / warnings / suggestions here. */
|
|
15
|
+
export interface BoundarySignals {
|
|
16
|
+
readonly q1HardBlockedPath: boolean;
|
|
17
|
+
readonly q2SubAgentAvailable: boolean;
|
|
18
|
+
readonly q3RequiresUserDecision: boolean;
|
|
19
|
+
readonly q4ContextRatio: number;
|
|
20
|
+
}
|
|
21
|
+
export interface BoundaryAdvisories {
|
|
22
|
+
readonly blockers: readonly string[];
|
|
23
|
+
readonly warnings: readonly string[];
|
|
24
|
+
readonly suggestions: readonly string[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Build the blockers / warnings / suggestions carried by Q1 (hard), Q2, Q4 and
|
|
28
|
+
* Q3, in exactly the order `buildOrchestratorCanDoResult` used to push them.
|
|
29
|
+
*/
|
|
30
|
+
export declare function boundaryAdvisories(signals: BoundarySignals): BoundaryAdvisories;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* orchestrator-can-do-advisories.js — the pure message side of
|
|
3
|
+
* `buildOrchestratorCanDoResult` (see `./orchestrator-can-do.ts`).
|
|
4
|
+
*
|
|
5
|
+
* Hoisted out of that module by slice c2w1 of `strict-remediation-abc` without
|
|
6
|
+
* touching one predicate, one branch order, or one byte of message text: the
|
|
7
|
+
* strings below are the probe's wire contract, consumed by skill prose and by
|
|
8
|
+
* the `pre-tool-code-gate` hook contract.
|
|
9
|
+
*/
|
|
10
|
+
/** Slice 2026-08-05-orchestrator-can-do-probe: red-line threshold. */
|
|
11
|
+
export const ORCHESTRATOR_REDLINE_RATIO = 0.95;
|
|
12
|
+
/** Slice 2026-08-05-orchestrator-can-do-probe: pre-compact threshold. */
|
|
13
|
+
export const ORCHESTRATOR_PRECOMPACT_RATIO = 0.85;
|
|
14
|
+
/**
|
|
15
|
+
* Build the blockers / warnings / suggestions carried by Q1 (hard), Q2, Q4 and
|
|
16
|
+
* Q3, in exactly the order `buildOrchestratorCanDoResult` used to push them.
|
|
17
|
+
*/
|
|
18
|
+
export function boundaryAdvisories(signals) {
|
|
19
|
+
const blockers = [];
|
|
20
|
+
const warnings = [];
|
|
21
|
+
const suggestions = [];
|
|
22
|
+
// Slice 2026-08-06-codegate-vendor-neutral — Q1 HARD BLOCKER. When
|
|
23
|
+
// the slice-spec mentions any hard-blocked path family
|
|
24
|
+
// (src/, tests/unit/, tests/integration/, config/, bin/, scripts/),
|
|
25
|
+
// the orchestrator MUST refuse direct execution and force sub-agent
|
|
26
|
+
// dispatch. This is the LLM-side complement to the
|
|
27
|
+
// `pre-tool-code-gate.sh` PreToolUse hook.
|
|
28
|
+
if (signals.q1HardBlockedPath) {
|
|
29
|
+
blockers.push('requires-sub-agent-dispatch: slice-spec mentions a hard-blocked path family ' +
|
|
30
|
+
'(src/, tests/unit/, tests/integration/, config/, bin/, scripts/); ' +
|
|
31
|
+
'orchestrator MUST NOT Edit/Write these directly. Use peaks sub-agent dispatch rd.');
|
|
32
|
+
}
|
|
33
|
+
// Q2 — sub-agent availability is a hard precondition.
|
|
34
|
+
if (!signals.q2SubAgentAvailable) {
|
|
35
|
+
blockers.push('sub-agent dispatch unavailable (peaks sub-agent dispatch --help failed)');
|
|
36
|
+
suggestions.push('verify peaks CLI is on PATH; check `peaks --version`');
|
|
37
|
+
}
|
|
38
|
+
// Q4 — context ratio. ≥0.95 → red-line; ≥0.85 → pre-compact. A WARNING, not
|
|
39
|
+
// a blocker, and the difference is deliberate (E3, rid 2026-09-13-defects-e).
|
|
40
|
+
//
|
|
41
|
+
// Why this is not a blocker any more, and why it is not an oversight:
|
|
42
|
+
//
|
|
43
|
+
// The peak this answers is "can this slice run in the current session".
|
|
44
|
+
// Context ratio cannot answer "no" to it. The reason is the one the
|
|
45
|
+
// T3 slice (2026-09-13-auto-compact-trigger-ownership) landed on the
|
|
46
|
+
// OTHER face of this same threshold: peaks-loop has no executor for a
|
|
47
|
+
// running session, so it cannot compact its way out of a high ratio —
|
|
48
|
+
// `evaluateCompactTrigger` therefore says of the red line "peaks-loop has
|
|
49
|
+
// asked the harness to compact and is WAITING for it — sub-agent dispatch
|
|
50
|
+
// is NOT blocked; carry on and re-probe". A probe that returned
|
|
51
|
+
// `canDoInSession: false` here would contradict that sentence for the same
|
|
52
|
+
// 0.95 on the same number, and its only programmatic consumer
|
|
53
|
+
// (`code-orchestrator-can-do.ts`) turns the false into exit code 1 — i.e.
|
|
54
|
+
// it would re-open, at the CLI layer, exactly the deadlock T3 deleted.
|
|
55
|
+
//
|
|
56
|
+
// Nor does the pre-compact zone (0.85–0.95) earn a blocker: the trigger's
|
|
57
|
+
// message there is "peaks-loop already fired the auto-compact pathway; the
|
|
58
|
+
// LLM does not need to act", which is the opposite of "you may not proceed".
|
|
59
|
+
//
|
|
60
|
+
// What a blocker would still need to be true: THE ORCHESTRATOR itself
|
|
61
|
+
// cannot continue. It can — the slice's edits are delegated to a sub-agent
|
|
62
|
+
// (Q1), and the orchestrator's own context is only spent co-ordinating.
|
|
63
|
+
//
|
|
64
|
+
// So the ratio is reported, warned about, and given a next action; the
|
|
65
|
+
// verdict is left to the blockers that really are un-survivable (a
|
|
66
|
+
// hard-blocked path family, an unreachable sub-agent dispatcher).
|
|
67
|
+
if (signals.q4ContextRatio >= ORCHESTRATOR_REDLINE_RATIO) {
|
|
68
|
+
warnings.push(`context red-line (ratio=${signals.q4ContextRatio.toFixed(2)} ≥ ${ORCHESTRATOR_REDLINE_RATIO}): peaks-loop has asked the harness to compact and is waiting for it; dispatch is NOT blocked — carry on and re-probe with \`peaks code context-now\``);
|
|
69
|
+
suggestions.push('peaks code auto-compact');
|
|
70
|
+
}
|
|
71
|
+
else if (signals.q4ContextRatio >= ORCHESTRATOR_PRECOMPACT_RATIO) {
|
|
72
|
+
warnings.push(`context near limit (ratio=${signals.q4ContextRatio.toFixed(2)} ≥ ${ORCHESTRATOR_PRECOMPACT_RATIO}): in the pre-compact band; peaks-loop fires the auto-compact pathway itself and dispatch is NOT blocked`);
|
|
73
|
+
suggestions.push('peaks code auto-compact');
|
|
74
|
+
}
|
|
75
|
+
// Q3 — user-decision keywords → soft warning, NOT a blocker. The
|
|
76
|
+
// LLM should AskUserQuestion, which is cheap.
|
|
77
|
+
if (signals.q3RequiresUserDecision) {
|
|
78
|
+
warnings.push('slice-spec contains decision keywords; AskUserQuestion before proceeding');
|
|
79
|
+
}
|
|
80
|
+
return { blockers, warnings, suggestions };
|
|
81
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* orchestrator-can-do-probes.js — the Q2/Q4 subprocess probes behind
|
|
3
|
+
* `peaks code orchestrator-can-do`.
|
|
4
|
+
*
|
|
5
|
+
* Hoisted verbatim out of `./orchestrator-can-do.ts` (slice c2w1 of
|
|
6
|
+
* `strict-remediation-abc`) so that module keeps only the pure decision side.
|
|
7
|
+
* The names leave this file ONLY through that module's re-export: the CLI shim
|
|
8
|
+
* (`src/cli/commands/code-orchestrator-can-do.ts`) reaches them via
|
|
9
|
+
* `await import('../../services/code/orchestrator-can-do.js')`, and the unit
|
|
10
|
+
* tests import them from the same path, so the surface below must stay
|
|
11
|
+
* reachable from there.
|
|
12
|
+
*/
|
|
13
|
+
export interface ContextProbe {
|
|
14
|
+
/** 0.0–1.0; ≥0.85 = pre-compact; ≥0.95 = red-line. */
|
|
15
|
+
readonly ratio: number;
|
|
16
|
+
/** Source tag from `peaks code context-now`. */
|
|
17
|
+
readonly source: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Q2: probe `peaks sub-agent dispatch --role rd --help`. Returns
|
|
21
|
+
* true when the subprocess exits 0. Resolves to false on spawn
|
|
22
|
+
* failure or non-zero exit.
|
|
23
|
+
*/
|
|
24
|
+
export declare function probeSubAgentAvailable(projectRoot: string, peaksBin?: string): Promise<boolean>;
|
|
25
|
+
/**
|
|
26
|
+
* Q4: probe `peaks code context-now --json`. Parses the data.ratio
|
|
27
|
+
* field. Falls back to {ratio: 0, source: 'unavailable'} when the
|
|
28
|
+
* subprocess fails or returns malformed JSON.
|
|
29
|
+
*/
|
|
30
|
+
export declare function probeContextRatio(projectRoot: string, peaksBin?: string): Promise<ContextProbe>;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* orchestrator-can-do-probes.js — the Q2/Q4 subprocess probes behind
|
|
3
|
+
* `peaks code orchestrator-can-do`.
|
|
4
|
+
*
|
|
5
|
+
* Hoisted verbatim out of `./orchestrator-can-do.ts` (slice c2w1 of
|
|
6
|
+
* `strict-remediation-abc`) so that module keeps only the pure decision side.
|
|
7
|
+
* The names leave this file ONLY through that module's re-export: the CLI shim
|
|
8
|
+
* (`src/cli/commands/code-orchestrator-can-do.ts`) reaches them via
|
|
9
|
+
* `await import('../../services/code/orchestrator-can-do.js')`, and the unit
|
|
10
|
+
* tests import them from the same path, so the surface below must stay
|
|
11
|
+
* reachable from there.
|
|
12
|
+
*/
|
|
13
|
+
import { execFile } from 'node:child_process';
|
|
14
|
+
import { promisify } from 'node:util';
|
|
15
|
+
// 2026-09-10 D1: both probes used to spawn a bare `peaks`. On Windows that name
|
|
16
|
+
// resolves to a `.cmd` shim, which `execFile` cannot run: it does not apply
|
|
17
|
+
// PATHEXT, and Node >= 20 refuses to spawn `.cmd`/`.bat` at all without
|
|
18
|
+
// `shell: true` (CVE-2024-27980). So Q2 reported "sub-agent dispatch
|
|
19
|
+
// unavailable" and Q4 reported ratio 0 for every slice-spec on Windows —
|
|
20
|
+
// phantom blockers produced by the spawn, not by the CLI. Running this tree's
|
|
21
|
+
// own CLI entry through `process.execPath` needs no shell and no shim.
|
|
22
|
+
import { cliEntryPath, interpreterArgs } from '../web/daemon-supervisor.js';
|
|
23
|
+
const execFileAsync = promisify(execFile);
|
|
24
|
+
/** Sentinel: no explicit binary was injected, so resolve this tree's own CLI. */
|
|
25
|
+
const DEFAULT_PEAKS_BIN = 'peaks';
|
|
26
|
+
/**
|
|
27
|
+
* Spawn argv for the peaks CLI. An explicitly injected `peaksBin` (the
|
|
28
|
+
* `--peaks-bin` test seam) is spawned verbatim; the default sentinel resolves
|
|
29
|
+
* to this tree's own CLI entry, interpreted by the running Node.
|
|
30
|
+
*/
|
|
31
|
+
function peaksSpawn(peaksBin) {
|
|
32
|
+
if (peaksBin !== DEFAULT_PEAKS_BIN) {
|
|
33
|
+
return { command: peaksBin, args: [] };
|
|
34
|
+
}
|
|
35
|
+
return { command: process.execPath, args: interpreterArgs(cliEntryPath()) };
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Q2: probe `peaks sub-agent dispatch --role rd --help`. Returns
|
|
39
|
+
* true when the subprocess exits 0. Resolves to false on spawn
|
|
40
|
+
* failure or non-zero exit.
|
|
41
|
+
*/
|
|
42
|
+
export async function probeSubAgentAvailable(projectRoot, peaksBin = DEFAULT_PEAKS_BIN) {
|
|
43
|
+
try {
|
|
44
|
+
const { command, args } = peaksSpawn(peaksBin);
|
|
45
|
+
await execFileAsync(command, [...args, 'sub-agent', 'dispatch', '--role', 'rd', '--help'], {
|
|
46
|
+
cwd: projectRoot,
|
|
47
|
+
timeout: 5000,
|
|
48
|
+
windowsHide: true
|
|
49
|
+
});
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Q4: probe `peaks code context-now --json`. Parses the data.ratio
|
|
58
|
+
* field. Falls back to {ratio: 0, source: 'unavailable'} when the
|
|
59
|
+
* subprocess fails or returns malformed JSON.
|
|
60
|
+
*/
|
|
61
|
+
export async function probeContextRatio(projectRoot, peaksBin = DEFAULT_PEAKS_BIN) {
|
|
62
|
+
try {
|
|
63
|
+
const { command, args } = peaksSpawn(peaksBin);
|
|
64
|
+
const { stdout } = await execFileAsync(command, [...args, 'code', 'context-now', '--project', projectRoot, '--json'], {
|
|
65
|
+
cwd: projectRoot,
|
|
66
|
+
timeout: 10000,
|
|
67
|
+
windowsHide: true
|
|
68
|
+
});
|
|
69
|
+
const parsed = JSON.parse(stdout);
|
|
70
|
+
const ratio = typeof parsed.data?.ratio === 'number' ? parsed.data.ratio : 0;
|
|
71
|
+
const source = typeof parsed.data?.source === 'string' ? parsed.data.source : 'unavailable';
|
|
72
|
+
return { ratio, source };
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return { ratio: 0, source: 'unavailable' };
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -33,11 +33,18 @@
|
|
|
33
33
|
*
|
|
34
34
|
* Pure-function module. The CLI shim (code-orchestrator-can-do.ts)
|
|
35
35
|
* adapts the envelope into the program's `ResultEnvelope<T>` shape.
|
|
36
|
+
*
|
|
37
|
+
* Slice c2w1 (strict-remediation-abc) hoisted two cohesive halves out of this
|
|
38
|
+
* file into siblings, both re-exported here so nothing else moved:
|
|
39
|
+
* `./orchestrator-can-do-probes.js` (the Q2/Q4 subprocess probes) and
|
|
40
|
+
* `./orchestrator-can-do-advisories.js` (the Q1/Q2/Q3/Q4 message builders,
|
|
41
|
+
* incl. the 0.95 / 0.85 thresholds).
|
|
36
42
|
*/
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
export
|
|
43
|
+
import { probeContextRatio, probeSubAgentAvailable, type ContextProbe } from './orchestrator-can-do-probes.js';
|
|
44
|
+
import { ORCHESTRATOR_PRECOMPACT_RATIO, ORCHESTRATOR_REDLINE_RATIO } from './orchestrator-can-do-advisories.js';
|
|
45
|
+
export { probeContextRatio, probeSubAgentAvailable };
|
|
46
|
+
export { ORCHESTRATOR_PRECOMPACT_RATIO, ORCHESTRATOR_REDLINE_RATIO };
|
|
47
|
+
export type { ContextProbe };
|
|
41
48
|
/** Source-code keywords that signal "do NOT Edit/Write directly". */
|
|
42
49
|
export declare const SOURCE_CODE_KEYWORDS: readonly string[];
|
|
43
50
|
/**
|
|
@@ -55,12 +62,6 @@ export declare const SOURCE_CODE_KEYWORDS: readonly string[];
|
|
|
55
62
|
export declare const HARD_BLOCKED_PATH_FAMILIES: readonly string[];
|
|
56
63
|
/** Decision-marker keywords that signal "needs user AskUserQuestion". */
|
|
57
64
|
export declare const DECISION_KEYWORDS: readonly string[];
|
|
58
|
-
export interface ContextProbe {
|
|
59
|
-
/** 0.0–1.0; ≥0.85 = pre-compact; ≥0.95 = red-line. */
|
|
60
|
-
readonly ratio: number;
|
|
61
|
-
/** Source tag from `peaks code context-now`. */
|
|
62
|
-
readonly source: string;
|
|
63
|
-
}
|
|
64
65
|
export interface OrchestratorCanDoInput {
|
|
65
66
|
readonly sliceSpec: string;
|
|
66
67
|
readonly projectRoot: string;
|
|
@@ -110,18 +111,6 @@ export declare function detectHardBlockedPath(sliceSpec: string): boolean;
|
|
|
110
111
|
* over the slice-spec string.
|
|
111
112
|
*/
|
|
112
113
|
export declare function detectRequiresUserDecision(sliceSpec: string): boolean;
|
|
113
|
-
/**
|
|
114
|
-
* Q2: probe `peaks sub-agent dispatch --role rd --help`. Returns
|
|
115
|
-
* true when the subprocess exits 0. Resolves to false on spawn
|
|
116
|
-
* failure or non-zero exit.
|
|
117
|
-
*/
|
|
118
|
-
export declare function probeSubAgentAvailable(projectRoot: string, peaksBin?: string): Promise<boolean>;
|
|
119
|
-
/**
|
|
120
|
-
* Q4: probe `peaks code context-now --json`. Parses the data.ratio
|
|
121
|
-
* field. Falls back to {ratio: 0, source: 'unavailable'} when the
|
|
122
|
-
* subprocess fails or returns malformed JSON.
|
|
123
|
-
*/
|
|
124
|
-
export declare function probeContextRatio(projectRoot: string, peaksBin?: string): Promise<ContextProbe>;
|
|
125
114
|
/**
|
|
126
115
|
* Build the structured OrchestratorCanDoResult. Pure over the 4 Q
|
|
127
116
|
* signals + sliceSpec. Decision rule is: canDoInSession === !blockers.
|