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
|
@@ -34,11 +34,21 @@
|
|
|
34
34
|
* from process.env at module load). When set, the loop falls back to
|
|
35
35
|
* the pre-S4 silent return so a stuck session can be unblocked by
|
|
36
36
|
* flipping the env var rather than rebuilding.
|
|
37
|
+
*
|
|
38
|
+
* Slice `strict-remediation-abc` (C wave 1, leaf `c1w1-await-batch`): the
|
|
39
|
+
* per-slot half of the loop — record reader, slot table, one-tick observation
|
|
40
|
+
* pass, no-progress predicate, poll sleep, result/note rendering — moved
|
|
41
|
+
* VERBATIM into `./await-batch-helpers.ts`. `awaitBatch` was 155 lines at
|
|
42
|
+
* complexity 40, so it held a `max-lines-per-function` error AND a `complexity`
|
|
43
|
+
* warning; that pairing is why no declaration hoist could shorten this file.
|
|
44
|
+
* The bodies did not change. `awaitBatch` keeps this export path because
|
|
45
|
+
* `tests/unit/services/dispatch/sub-agent-dispatcher-timeouts.test.ts` stubs
|
|
46
|
+
* `~/src/services/dispatch/await-batch.js` by path; the budget and outcome
|
|
47
|
+
* rules stay here because they are what the public types above describe.
|
|
37
48
|
*/
|
|
38
|
-
import {
|
|
49
|
+
import { buildBatchResults, createSlotTable, defaultReadOutcome, hasNoProgress, pollSlotsOnce, sleepTick } from './await-batch-helpers.js';
|
|
39
50
|
const DEFAULT_HARD_CAP_MS = 120_000;
|
|
40
51
|
const DEFAULT_NO_PROGRESS_MS = 60_000;
|
|
41
|
-
const DEFAULT_POLL_INTERVAL_MS = 50;
|
|
42
52
|
/**
|
|
43
53
|
* Fail-fast de-escalation: the env var is read once at module load
|
|
44
54
|
* (matches the pre-S4 env-var-loading semantics for `peaks`
|
|
@@ -55,218 +65,111 @@ const FAILFAST_DISABLED = (() => {
|
|
|
55
65
|
*/
|
|
56
66
|
export async function awaitBatch(dispatchCount, recordPaths, timeoutMs, options = { defaultTimeoutMs: 60_000 }) {
|
|
57
67
|
if (dispatchCount <= 0 || recordPaths.length === 0) {
|
|
58
|
-
|
|
59
|
-
return {
|
|
60
|
-
results: [],
|
|
61
|
-
outcome: 'completed',
|
|
62
|
-
requestedTimeoutMs: requested,
|
|
63
|
-
effectiveTimeoutMs: 0,
|
|
64
|
-
hardCapMs: options.hardCapMs ?? DEFAULT_HARD_CAP_MS
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
const hardCap = options.hardCapMs ?? DEFAULT_HARD_CAP_MS;
|
|
68
|
-
const requested = timeoutMs ?? options.defaultTimeoutMs;
|
|
69
|
-
// S4 (AC-3.2) — surface the clamp. A caller-supplied timeout above
|
|
70
|
-
// the hard cap is reported as `clamped`; the effective budget is
|
|
71
|
-
// what the loop actually waited.
|
|
72
|
-
const requestedClamped = requested > hardCap;
|
|
73
|
-
const effective = Math.min(Math.max(requested, 0), hardCap);
|
|
74
|
-
const noProgressBudget = options.noProgressMs ?? DEFAULT_NO_PROGRESS_MS;
|
|
75
|
-
const now = options.now ?? (() => Date.now());
|
|
76
|
-
const schedule = options.schedule ?? ((cb, ms) => {
|
|
77
|
-
const t = setTimeout(cb, ms);
|
|
78
|
-
t.unref?.();
|
|
79
|
-
return t;
|
|
80
|
-
});
|
|
81
|
-
const readOutcome = options.readOutcome ?? ((p) => defaultReadOutcome(p).status);
|
|
82
|
-
const readRecord = options.readRecord ?? defaultReadOutcome;
|
|
83
|
-
const startedAt = now();
|
|
84
|
-
const slots = new Map();
|
|
85
|
-
for (let i = 0; i < recordPaths.length; i += 1) {
|
|
86
|
-
const recordPath = recordPaths[i] ?? '';
|
|
87
|
-
slots.set(i, {
|
|
88
|
-
recordPath,
|
|
89
|
-
status: 'timeout',
|
|
90
|
-
note: null,
|
|
91
|
-
finishedAt: null,
|
|
92
|
-
lastProgress: 0
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
// Track last observed progress per slot to power the no-progress
|
|
96
|
-
// watchdog. The watchdog advances on any per-tick observation
|
|
97
|
-
// change in the slot's progress hint (read from the file's
|
|
98
|
-
// `progress` field when available, else from the `heartbeats`
|
|
99
|
-
// array's last entry).
|
|
100
|
-
const lastProgressAt = new Map();
|
|
101
|
-
for (const [idx] of slots) {
|
|
102
|
-
lastProgressAt.set(idx, startedAt);
|
|
68
|
+
return emptyBatchResult(timeoutMs, options);
|
|
103
69
|
}
|
|
70
|
+
const budgets = resolveBudgets(timeoutMs, options);
|
|
71
|
+
const seams = resolveSeams(options);
|
|
72
|
+
const startedAt = seams.now();
|
|
73
|
+
const table = createSlotTable(recordPaths, startedAt);
|
|
104
74
|
let batchOutcome = 'completed';
|
|
105
|
-
while (slots.size > 0 && now() - startedAt < effective) {
|
|
106
|
-
|
|
107
|
-
for (const [idx, slot] of slots) {
|
|
108
|
-
if (slot.finishedAt !== null)
|
|
109
|
-
continue;
|
|
110
|
-
const outcome = readOutcome(slot.recordPath);
|
|
111
|
-
if (outcome === null) {
|
|
112
|
-
allDone = false;
|
|
113
|
-
continue;
|
|
114
|
-
}
|
|
115
|
-
// The default readOutcome returns the on-disk `status`. We map
|
|
116
|
-
// a small set of values to the per-dispatch status union.
|
|
117
|
-
// Slice 2026-07-30-nightshift: also capture the optional
|
|
118
|
-
// `outcome` field so the per-IDE note can surface the human
|
|
119
|
-
// reason (e.g. "mock failure at leaf-2"). The `outcome` is read
|
|
120
|
-
// alongside the `status` via `readRecord` and surfaced into
|
|
121
|
-
// `slot.note` for failed dispatches; for done/cancelled the
|
|
122
|
-
// note is left null (matches the pre-nightshift contract).
|
|
123
|
-
// `stale` is mapped to `timeout` so the per-IDE note preserves
|
|
124
|
-
// the human-readable reason (cursor / claude-code both surface
|
|
125
|
-
// `stale` on the wire but the BatchResult.status union only
|
|
126
|
-
// knows `timeout`).
|
|
127
|
-
const record = readRecord(slot.recordPath);
|
|
128
|
-
if (outcome === 'done' || outcome === 'success') {
|
|
129
|
-
slot.status = 'done';
|
|
130
|
-
slot.note = null;
|
|
131
|
-
slot.finishedAt = now();
|
|
132
|
-
lastProgressAt.set(idx, now());
|
|
133
|
-
}
|
|
134
|
-
else if (outcome === 'failed') {
|
|
135
|
-
slot.status = 'failed';
|
|
136
|
-
slot.note = record.outcome ?? null;
|
|
137
|
-
slot.finishedAt = now();
|
|
138
|
-
lastProgressAt.set(idx, now());
|
|
139
|
-
}
|
|
140
|
-
else if (outcome === 'cancelled') {
|
|
141
|
-
slot.status = 'cancelled';
|
|
142
|
-
slot.note = null;
|
|
143
|
-
slot.finishedAt = now();
|
|
144
|
-
lastProgressAt.set(idx, now());
|
|
145
|
-
}
|
|
146
|
-
else if (outcome === 'stale') {
|
|
147
|
-
slot.status = 'timeout';
|
|
148
|
-
slot.note = 'stale';
|
|
149
|
-
slot.finishedAt = now();
|
|
150
|
-
lastProgressAt.set(idx, now());
|
|
151
|
-
}
|
|
152
|
-
else {
|
|
153
|
-
// Any other status (queued / running / finalizing /
|
|
154
|
-
// never-started / unreadable) means the dispatch has not
|
|
155
|
-
// reached a terminal state yet.
|
|
156
|
-
allDone = false;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
if (allDone)
|
|
75
|
+
while (table.slots.size > 0 && seams.now() - startedAt < budgets.effective) {
|
|
76
|
+
if (pollSlotsOnce(table, seams.readOutcome, seams.readRecord, seams.now)) {
|
|
160
77
|
break;
|
|
161
|
-
|
|
162
|
-
// progress
|
|
163
|
-
if (now() - startedAt < effective) {
|
|
164
|
-
|
|
165
|
-
if (allStalled && slots.size > 0) {
|
|
78
|
+
}
|
|
79
|
+
// No-progress watchdog: only while the effective budget still holds.
|
|
80
|
+
if (seams.now() - startedAt < budgets.effective) {
|
|
81
|
+
if (hasNoProgress(table, seams.now, budgets.noProgressBudget)) {
|
|
166
82
|
batchOutcome = 'no-progress';
|
|
167
83
|
break;
|
|
168
84
|
}
|
|
169
85
|
}
|
|
170
86
|
// Sleep a tick.
|
|
171
|
-
await
|
|
172
|
-
}
|
|
173
|
-
// Post-loop batch outcome:
|
|
174
|
-
// - `completed` — every slot reached a terminal state
|
|
175
|
-
// - `timed-out` — at least one slot is still pending and the
|
|
176
|
-
// effective budget elapsed
|
|
177
|
-
// - `clamped` — the caller's `requestedTimeoutMs` exceeded the
|
|
178
|
-
// hard cap (AC-3.2). The loop still ran the effective budget;
|
|
179
|
-
// `clamped` takes precedence over `timed-out` because the
|
|
180
|
-
// caller specifically asked for more than the cap and the
|
|
181
|
-
// caller needs to know the cap was applied (the timeout is
|
|
182
|
-
// secondary information).
|
|
183
|
-
// - `no-progress` — the watchdog fired (AC-3.4)
|
|
184
|
-
if (batchOutcome === 'completed' && slots.size > 0) {
|
|
185
|
-
const allReached = Array.from(slots.values()).every((s) => s.finishedAt !== null);
|
|
186
|
-
if (!allReached) {
|
|
187
|
-
batchOutcome = requestedClamped ? 'clamped' : 'timed-out';
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
if (batchOutcome === 'completed' && requestedClamped) {
|
|
191
|
-
batchOutcome = 'clamped';
|
|
87
|
+
await sleepTick(seams.schedule);
|
|
192
88
|
}
|
|
89
|
+
batchOutcome = resolveBatchOutcome(batchOutcome, table.slots, budgets.requestedClamped);
|
|
193
90
|
// Build the per-dispatch results in dispatchIndex order.
|
|
194
|
-
|
|
195
|
-
// rewritten to match the 1.4 dogfood contract:
|
|
196
|
-
// - claude-code (no notePrefix): note = slot.note (the raw
|
|
197
|
-
// outcome, or null when done/cancelled)
|
|
198
|
-
// - other IDEs (notePrefix set):
|
|
199
|
-
// - on timeout: `${notePrefix} (timeout)`
|
|
200
|
-
// - on failed (with outcome): `${notePrefix} — ${outcome}`
|
|
201
|
-
// - on failed (no outcome): `${notePrefix}`
|
|
202
|
-
// - on done / cancelled: `${notePrefix}`
|
|
203
|
-
const results = Array.from(slots.entries())
|
|
204
|
-
.sort(([a], [b]) => a - b)
|
|
205
|
-
.map(([idx, slot]) => {
|
|
206
|
-
const finishedAt = slot.finishedAt ?? startedAt + effective;
|
|
207
|
-
const baseNote = options.notePrefix ?? null;
|
|
208
|
-
let note;
|
|
209
|
-
if (baseNote === null) {
|
|
210
|
-
// Claude-Code path: surface the raw outcome (no per-IDE prefix).
|
|
211
|
-
note = slot.note;
|
|
212
|
-
}
|
|
213
|
-
else if (slot.finishedAt === null) {
|
|
214
|
-
// Timed-out slot: keep the legacy ` (timeout)` suffix.
|
|
215
|
-
note = `${baseNote} (timeout)`;
|
|
216
|
-
}
|
|
217
|
-
else if (slot.status === 'failed' && slot.note !== null && slot.note.length > 0) {
|
|
218
|
-
// Failed with a human reason: `${notePrefix} — ${outcome}`.
|
|
219
|
-
note = `${baseNote} — ${slot.note}`;
|
|
220
|
-
}
|
|
221
|
-
else if (slot.note !== null && slot.note.length > 0) {
|
|
222
|
-
// Non-failed terminal slot with a non-null note (e.g. cursor /
|
|
223
|
-
// claude-code `stale` → status=timeout, note='stale'):
|
|
224
|
-
// `${notePrefix} — ${note}` so the human reason is surfaced.
|
|
225
|
-
// Slice 2026-07-30-nightshift: previously this branch dropped
|
|
226
|
-
// the slot's note entirely (the bare-prefix else swallowed
|
|
227
|
-
// it). The 1.4 dogfood for `stale` flips the contract.
|
|
228
|
-
note = `${baseNote} — ${slot.note}`;
|
|
229
|
-
}
|
|
230
|
-
else {
|
|
231
|
-
// Done / cancelled / failed-without-reason: bare prefix.
|
|
232
|
-
note = baseNote;
|
|
233
|
-
}
|
|
234
|
-
return {
|
|
235
|
-
dispatchIndex: idx,
|
|
236
|
-
recordPath: slot.recordPath,
|
|
237
|
-
status: slot.status,
|
|
238
|
-
durationMs: finishedAt - startedAt,
|
|
239
|
-
note
|
|
240
|
-
};
|
|
241
|
-
});
|
|
91
|
+
const results = buildBatchResults(table, options.notePrefix, budgets.effective);
|
|
242
92
|
// Fail-fast de-escalation: when the env var is set, surface the
|
|
243
93
|
// typed outcome but do not let it influence the per-dispatch
|
|
244
94
|
// results. This preserves the pre-S4 silent-return shape so a
|
|
245
95
|
// stuck session can be unblocked by flipping the flag.
|
|
246
|
-
|
|
247
|
-
batchOutcome = 'completed';
|
|
248
|
-
}
|
|
96
|
+
batchOutcome = deescalateOutcome(batchOutcome, FAILFAST_DISABLED);
|
|
249
97
|
return {
|
|
250
98
|
results,
|
|
251
99
|
outcome: batchOutcome,
|
|
100
|
+
requestedTimeoutMs: budgets.requested,
|
|
101
|
+
effectiveTimeoutMs: budgets.effective,
|
|
102
|
+
hardCapMs: budgets.hardCap
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/** The zero-slot return: nothing to poll, so nothing was waited. */
|
|
106
|
+
function emptyBatchResult(timeoutMs, options) {
|
|
107
|
+
const requested = timeoutMs ?? options.defaultTimeoutMs;
|
|
108
|
+
return {
|
|
109
|
+
results: [],
|
|
110
|
+
outcome: 'completed',
|
|
252
111
|
requestedTimeoutMs: requested,
|
|
253
|
-
effectiveTimeoutMs:
|
|
254
|
-
hardCapMs:
|
|
112
|
+
effectiveTimeoutMs: 0,
|
|
113
|
+
hardCapMs: options.hardCapMs ?? DEFAULT_HARD_CAP_MS
|
|
255
114
|
};
|
|
256
115
|
}
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
116
|
+
/**
|
|
117
|
+
* The wait budget. S4 (AC-3.2) — surface the clamp. A caller-supplied
|
|
118
|
+
* timeout above the hard cap is reported as `clamped`; the effective
|
|
119
|
+
* budget is what the loop actually waited.
|
|
120
|
+
*/
|
|
121
|
+
function resolveBudgets(timeoutMs, options) {
|
|
122
|
+
const hardCap = options.hardCapMs ?? DEFAULT_HARD_CAP_MS;
|
|
123
|
+
const requested = timeoutMs ?? options.defaultTimeoutMs;
|
|
124
|
+
const requestedClamped = requested > hardCap;
|
|
125
|
+
const effective = Math.min(Math.max(requested, 0), hardCap);
|
|
126
|
+
const noProgressBudget = options.noProgressMs ?? DEFAULT_NO_PROGRESS_MS;
|
|
127
|
+
return { hardCap, requested, requestedClamped, effective, noProgressBudget };
|
|
128
|
+
}
|
|
129
|
+
/** Resolve the test seams, keeping the production defaults. */
|
|
130
|
+
function resolveSeams(options) {
|
|
131
|
+
const now = options.now ?? (() => Date.now());
|
|
132
|
+
const schedule = options.schedule ??
|
|
133
|
+
((cb, ms) => {
|
|
134
|
+
const t = setTimeout(cb, ms);
|
|
135
|
+
t.unref?.();
|
|
136
|
+
return t;
|
|
137
|
+
});
|
|
138
|
+
const readOutcome = options.readOutcome ?? ((p) => defaultReadOutcome(p).status);
|
|
139
|
+
const readRecord = options.readRecord ?? defaultReadOutcome;
|
|
140
|
+
return { now, schedule, readOutcome, readRecord };
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Post-loop batch outcome:
|
|
144
|
+
* - `completed` — every slot reached a terminal state
|
|
145
|
+
* - `timed-out` — at least one slot is still pending and the
|
|
146
|
+
* effective budget elapsed
|
|
147
|
+
* - `clamped` — the caller's `requestedTimeoutMs` exceeded the
|
|
148
|
+
* hard cap (AC-3.2). The loop still ran the effective budget;
|
|
149
|
+
* `clamped` takes precedence over `timed-out` because the
|
|
150
|
+
* caller specifically asked for more than the cap and the
|
|
151
|
+
* caller needs to know the cap was applied (the timeout is
|
|
152
|
+
* secondary information).
|
|
153
|
+
* - `no-progress` — the watchdog fired (AC-3.4)
|
|
154
|
+
*/
|
|
155
|
+
function resolveBatchOutcome(batchOutcome, slots, requestedClamped) {
|
|
156
|
+
let outcome = batchOutcome;
|
|
157
|
+
if (outcome === 'completed' && slots.size > 0) {
|
|
158
|
+
const allReached = Array.from(slots.values()).every((s) => s.finishedAt !== null);
|
|
159
|
+
if (!allReached) {
|
|
160
|
+
outcome = requestedClamped ? 'clamped' : 'timed-out';
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
if (outcome === 'completed' && requestedClamped) {
|
|
164
|
+
outcome = 'clamped';
|
|
268
165
|
}
|
|
269
|
-
|
|
270
|
-
|
|
166
|
+
return outcome;
|
|
167
|
+
}
|
|
168
|
+
/** The de-escalation itself: the flag only ever downgrades to `completed`. */
|
|
169
|
+
function deescalateOutcome(batchOutcome, failfastDisabled) {
|
|
170
|
+
if (failfastDisabled &&
|
|
171
|
+
(batchOutcome === 'timed-out' || batchOutcome === 'no-progress' || batchOutcome === 'clamped')) {
|
|
172
|
+
return 'completed';
|
|
271
173
|
}
|
|
174
|
+
return batchOutcome;
|
|
272
175
|
}
|
|
@@ -95,7 +95,8 @@ export function resetBatch(projectRoot, sid, batchId) {
|
|
|
95
95
|
const { unlinkSync } = require('node:fs');
|
|
96
96
|
unlinkSync(path);
|
|
97
97
|
}
|
|
98
|
-
catch {
|
|
98
|
+
catch {
|
|
99
|
+
// TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
99
100
|
/* best-effort; counter file is informational */
|
|
100
101
|
}
|
|
101
102
|
}
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
const INSTRUCTIONS = [
|
|
23
23
|
'A previous merge into the caller branch conflicted. Resolve the conflict preserving the intent of both your prior work and the caller branch.',
|
|
24
24
|
'Do NOT introduce new functionality or refactor outside the conflict.',
|
|
25
|
-
'Re-run the dispatch and report the new conflict state. The parent will retry the merge.'
|
|
25
|
+
'Re-run the dispatch and report the new conflict state. The parent will retry the merge.'
|
|
26
26
|
];
|
|
27
27
|
export function buildConflictReplay(input) {
|
|
28
28
|
const prompt = [
|
|
@@ -38,7 +38,7 @@ export function buildConflictReplay(input) {
|
|
|
38
38
|
'### Conflict diff',
|
|
39
39
|
'```diff',
|
|
40
40
|
input.conflictDiff,
|
|
41
|
-
'```'
|
|
41
|
+
'```'
|
|
42
42
|
].join('\n');
|
|
43
43
|
return { prompt, instructions: INSTRUCTIONS };
|
|
44
44
|
}
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
import { createHash } from 'node:crypto';
|
|
20
20
|
import { existsSync, mkdirSync, readFileSync, readdirSync, statSync, writeFileSync } from 'node:fs';
|
|
21
21
|
import { join } from 'node:path';
|
|
22
|
+
import { isArray } from '../../shared/array-guards.js';
|
|
22
23
|
/** Thrown when contract IO fails. */
|
|
23
24
|
export class ContractStoreError extends Error {
|
|
24
25
|
code = 'CONTRACT_STORE_ERROR';
|
|
@@ -86,7 +87,7 @@ export function writeContract(projectRoot, sessionId, input) {
|
|
|
86
87
|
if (!input.sliceId || input.sliceId.length === 0) {
|
|
87
88
|
throw new ContractStoreError('sliceId is required');
|
|
88
89
|
}
|
|
89
|
-
if (!
|
|
90
|
+
if (!isArray(input.exports) || !isArray(input.types) || !isArray(input.publicSignatures)) {
|
|
90
91
|
throw new ContractStoreError('exports, types, publicSignatures must be arrays');
|
|
91
92
|
}
|
|
92
93
|
const completedAt = input.completedAt ?? new Date().toISOString();
|
|
@@ -147,7 +148,9 @@ export function listContracts(projectRoot, sessionId) {
|
|
|
147
148
|
export function formatContractInjection(contracts) {
|
|
148
149
|
if (contracts.length === 0)
|
|
149
150
|
return '';
|
|
150
|
-
const blocks = [
|
|
151
|
+
const blocks = [
|
|
152
|
+
'## Ancestor slice contracts (do not import source — use this surface)'
|
|
153
|
+
];
|
|
151
154
|
for (const c of contracts) {
|
|
152
155
|
blocks.push('', `### slice ${c.sliceId} (completed ${c.completedAt}, hash=${c.contractHash.slice(0, 12)})`, `- exports: ${c.exports.length === 0 ? '(none)' : c.exports.join(', ')}`, `- types: ${c.types.length === 0 ? '(none)' : c.types.join(', ')}`, '- publicSignatures:', ...(c.publicSignatures.length === 0
|
|
153
156
|
? [' - (none)']
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slice `b1-filesplit-campaign` (wave 3) — verbatim extraction of the dispatch
|
|
3
|
+
* *write* input declarations from `./dispatch-record-types.ts` so that module
|
|
4
|
+
* clears the 300 raw-line cap. No field, no type, no comment changed; the
|
|
5
|
+
* original module re-exports this name from its own path, so importers are
|
|
6
|
+
* untouched.
|
|
7
|
+
*/
|
|
8
|
+
import type { SubAgentToolCall } from './sub-agent-dispatcher.js';
|
|
9
|
+
/** Input for the initial write. */
|
|
10
|
+
export type WriteInitialDispatchInput = {
|
|
11
|
+
projectRoot: string;
|
|
12
|
+
sessionId: string;
|
|
13
|
+
requestId: string;
|
|
14
|
+
role: string;
|
|
15
|
+
prompt: string;
|
|
16
|
+
toolCall: SubAgentToolCall;
|
|
17
|
+
batchId: string;
|
|
18
|
+
/** Override the timestamp (testing). */
|
|
19
|
+
now?: () => Date;
|
|
20
|
+
/**
|
|
21
|
+
* Slice 2026-07-29-worktree-l2-extended Part 3.A: the worktree
|
|
22
|
+
* lease id this dispatch owns (set by `peaks sub-agent dispatch
|
|
23
|
+
* --isolation worktree`). Persisted so the finalize-time release
|
|
24
|
+
* hook in `markCompleted` can fire even after the dispatch
|
|
25
|
+
* process exits. Optional; absent when the dispatch did not
|
|
26
|
+
* request isolation.
|
|
27
|
+
*/
|
|
28
|
+
leaseId?: string | null;
|
|
29
|
+
/**
|
|
30
|
+
* Slice 2026-07-29-worktree-l2-extended Part 7: ISO timestamp
|
|
31
|
+
* when the isolation mode was set up. Optional on the input
|
|
32
|
+
* (defaults to `null`); dispatch-commands.ts passes the spawn
|
|
33
|
+
* time when `--isolation` is requested.
|
|
34
|
+
*/
|
|
35
|
+
isolationStartedAt?: string | null;
|
|
36
|
+
/**
|
|
37
|
+
* Slice 4.0.8: workflow graph binding for the dispatch. Defaults
|
|
38
|
+
* to `null` so a non-graph dispatch (legacy CLI flow, ad-hoc
|
|
39
|
+
* dispatch) still writes a v4.0.0 record.
|
|
40
|
+
*/
|
|
41
|
+
workflowId?: string | null;
|
|
42
|
+
graphNodeId?: string | null;
|
|
43
|
+
graphRef?: string | null;
|
|
44
|
+
/**
|
|
45
|
+
* Phase A Task 8: dispatch execution mode. Default `'in-process'`
|
|
46
|
+
* preserves the current LLM-side runner behavior. `'detached'`
|
|
47
|
+
* triggers the new real-OS-process path via
|
|
48
|
+
* `peaks sub-agent dispatch --mode detached`.
|
|
49
|
+
*/
|
|
50
|
+
mode?: 'in-process' | 'detached';
|
|
51
|
+
/**
|
|
52
|
+
* Phase A Task 8: vendor id when `mode='detached'`. Required by
|
|
53
|
+
* the adapter layer to know which CLI / runtime to spawn. The
|
|
54
|
+
* schema accepts the three vendors peaks-loop has adapters for
|
|
55
|
+
* (claude / codex / copilot). Ignored when `mode='in-process'`.
|
|
56
|
+
*/
|
|
57
|
+
vendor?: 'claude' | 'codex' | 'copilot';
|
|
58
|
+
/**
|
|
59
|
+
* Phase A Task 8: G8 autoCompact events accumulated by the child
|
|
60
|
+
* LLM. Optional on input — most dispatches start with an empty
|
|
61
|
+
* array and the detached runner appends events as they fire.
|
|
62
|
+
*/
|
|
63
|
+
autoCompactEvents?: Array<{
|
|
64
|
+
at: number;
|
|
65
|
+
threshold: '0.85' | '0.95';
|
|
66
|
+
tokensBefore: number;
|
|
67
|
+
tokensAfter: number;
|
|
68
|
+
scratchFile?: string;
|
|
69
|
+
}>;
|
|
70
|
+
/**
|
|
71
|
+
* Phase A Task 8: G8 token-usage accounting. Detached runs
|
|
72
|
+
* record spend for audit (unlimited, but persisted). Optional
|
|
73
|
+
* on input; the detached runner fills this in as it streams
|
|
74
|
+
* usage from the vendor API.
|
|
75
|
+
*/
|
|
76
|
+
tokenUsage?: {
|
|
77
|
+
promptTokens: number;
|
|
78
|
+
completionTokens: number;
|
|
79
|
+
totalCostUsd?: number;
|
|
80
|
+
};
|
|
81
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -176,79 +176,12 @@ export interface DispatchRecord {
|
|
|
176
176
|
readonly totalCostUsd?: number;
|
|
177
177
|
} | null;
|
|
178
178
|
}
|
|
179
|
-
/**
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
prompt: string;
|
|
186
|
-
toolCall: SubAgentToolCall;
|
|
187
|
-
batchId: string;
|
|
188
|
-
/** Override the timestamp (testing). */
|
|
189
|
-
now?: () => Date;
|
|
190
|
-
/**
|
|
191
|
-
* Slice 2026-07-29-worktree-l2-extended Part 3.A: the worktree
|
|
192
|
-
* lease id this dispatch owns (set by `peaks sub-agent dispatch
|
|
193
|
-
* --isolation worktree`). Persisted so the finalize-time release
|
|
194
|
-
* hook in `markCompleted` can fire even after the dispatch
|
|
195
|
-
* process exits. Optional; absent when the dispatch did not
|
|
196
|
-
* request isolation.
|
|
197
|
-
*/
|
|
198
|
-
leaseId?: string | null;
|
|
199
|
-
/**
|
|
200
|
-
* Slice 2026-07-29-worktree-l2-extended Part 7: ISO timestamp
|
|
201
|
-
* when the isolation mode was set up. Optional on the input
|
|
202
|
-
* (defaults to `null`); dispatch-commands.ts passes the spawn
|
|
203
|
-
* time when `--isolation` is requested.
|
|
204
|
-
*/
|
|
205
|
-
isolationStartedAt?: string | null;
|
|
206
|
-
/**
|
|
207
|
-
* Slice 4.0.8: workflow graph binding for the dispatch. Defaults
|
|
208
|
-
* to `null` so a non-graph dispatch (legacy CLI flow, ad-hoc
|
|
209
|
-
* dispatch) still writes a v4.0.0 record.
|
|
210
|
-
*/
|
|
211
|
-
workflowId?: string | null;
|
|
212
|
-
graphNodeId?: string | null;
|
|
213
|
-
graphRef?: string | null;
|
|
214
|
-
/**
|
|
215
|
-
* Phase A Task 8: dispatch execution mode. Default `'in-process'`
|
|
216
|
-
* preserves the current LLM-side runner behavior. `'detached'`
|
|
217
|
-
* triggers the new real-OS-process path via
|
|
218
|
-
* `peaks sub-agent dispatch --mode detached`.
|
|
219
|
-
*/
|
|
220
|
-
mode?: 'in-process' | 'detached';
|
|
221
|
-
/**
|
|
222
|
-
* Phase A Task 8: vendor id when `mode='detached'`. Required by
|
|
223
|
-
* the adapter layer to know which CLI / runtime to spawn. The
|
|
224
|
-
* schema accepts the three vendors peaks-loop has adapters for
|
|
225
|
-
* (claude / codex / copilot). Ignored when `mode='in-process'`.
|
|
226
|
-
*/
|
|
227
|
-
vendor?: 'claude' | 'codex' | 'copilot';
|
|
228
|
-
/**
|
|
229
|
-
* Phase A Task 8: G8 autoCompact events accumulated by the child
|
|
230
|
-
* LLM. Optional on input — most dispatches start with an empty
|
|
231
|
-
* array and the detached runner appends events as they fire.
|
|
232
|
-
*/
|
|
233
|
-
autoCompactEvents?: Array<{
|
|
234
|
-
at: number;
|
|
235
|
-
threshold: '0.85' | '0.95';
|
|
236
|
-
tokensBefore: number;
|
|
237
|
-
tokensAfter: number;
|
|
238
|
-
scratchFile?: string;
|
|
239
|
-
}>;
|
|
240
|
-
/**
|
|
241
|
-
* Phase A Task 8: G8 token-usage accounting. Detached runs
|
|
242
|
-
* record spend for audit (unlimited, but persisted). Optional
|
|
243
|
-
* on input; the detached runner fills this in as it streams
|
|
244
|
-
* usage from the vendor API.
|
|
245
|
-
*/
|
|
246
|
-
tokenUsage?: {
|
|
247
|
-
promptTokens: number;
|
|
248
|
-
completionTokens: number;
|
|
249
|
-
totalCostUsd?: number;
|
|
250
|
-
};
|
|
251
|
-
};
|
|
179
|
+
/**
|
|
180
|
+
* `WriteInitialDispatchInput` moved verbatim to
|
|
181
|
+
* `./dispatch-record-input-types.ts` (slice `b1-filesplit-campaign`, wave 3)
|
|
182
|
+
* and is re-exported here so every importer keeps resolving it at this path.
|
|
183
|
+
*/
|
|
184
|
+
export type { WriteInitialDispatchInput } from './dispatch-record-input-types.js';
|
|
252
185
|
/** Heartbeat write input. */
|
|
253
186
|
export type AppendHeartbeatInput = {
|
|
254
187
|
recordPath: string;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Field parsers for the dispatch-record upgrade path.
|
|
3
|
+
* C wave 1 / slice c1 (leaf c1w1-record-upgrade): extracted from
|
|
4
|
+
* `dispatch-record-upgrade.ts`'s `upgradeRecord` body into cohesive helpers
|
|
5
|
+
* with identical control flow — same predicates, same branch order, same
|
|
6
|
+
* error handling, same return shape. The throwing field reads
|
|
7
|
+
* (`role` / `requestId` / `sessionId` / `prompt`, then `toolCall`, then
|
|
8
|
+
* `createdAt`) still run in exactly that order before any pure defaulting;
|
|
9
|
+
* everything after them is a pure read of `obj`.
|
|
10
|
+
*/
|
|
11
|
+
import type { DispatchRecord } from './dispatch-record-types.js';
|
|
12
|
+
import type { SubAgentToolCall } from './sub-agent-dispatcher.js';
|
|
13
|
+
/**
|
|
14
|
+
* Parse the v1..v3.2 core fields of a legacy dispatch record.
|
|
15
|
+
* PRD-002b slice 6: extracted from `upgradeRecord` so the reader
|
|
16
|
+
* stays under the `max-lines-per-function: 50` ESLint ceiling.
|
|
17
|
+
* Behavior is byte-identical to the previous inline block.
|
|
18
|
+
*/
|
|
19
|
+
export declare function parseUpgradeRecordLegacyFields(obj: Record<string, unknown>): {
|
|
20
|
+
role: string;
|
|
21
|
+
requestId: string;
|
|
22
|
+
sessionId: string;
|
|
23
|
+
prompt: string;
|
|
24
|
+
toolCall: SubAgentToolCall;
|
|
25
|
+
createdAt: string;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Parse the post-v3 migration fields of a legacy dispatch record.
|
|
29
|
+
* PRD-002b slice 6: extracted from `upgradeRecord` so the reader
|
|
30
|
+
* stays under the `max-lines-per-function: 50` ESLint ceiling.
|
|
31
|
+
* Behavior is byte-identical to the previous inline block; the `vendor`
|
|
32
|
+
* field is NOT parsed here — it stays in `dispatch-record-upgrade.ts`
|
|
33
|
+
* because the vendor-neutral identity census pins that decision by path.
|
|
34
|
+
*/
|
|
35
|
+
export declare function parseUpgradeRecordMigrationFields(obj: Record<string, unknown>): {
|
|
36
|
+
stage: string | null;
|
|
37
|
+
leaseId: string | null;
|
|
38
|
+
isolationStartedAt: string | null;
|
|
39
|
+
serviceKill: {
|
|
40
|
+
readonly pid: number;
|
|
41
|
+
readonly name: string;
|
|
42
|
+
readonly signal: string;
|
|
43
|
+
readonly exitCode: number | null;
|
|
44
|
+
readonly skipped?: boolean;
|
|
45
|
+
readonly reason?: string;
|
|
46
|
+
}[];
|
|
47
|
+
mergeBackAttempts: number;
|
|
48
|
+
workflowId: string | null;
|
|
49
|
+
graphNodeId: string | null;
|
|
50
|
+
graphRef: string | null;
|
|
51
|
+
mode: "in-process" | "detached";
|
|
52
|
+
autoCompactEvents: {
|
|
53
|
+
readonly at: number;
|
|
54
|
+
readonly threshold: "0.85" | "0.95";
|
|
55
|
+
readonly tokensBefore: number;
|
|
56
|
+
readonly tokensAfter: number;
|
|
57
|
+
readonly scratchFile?: string;
|
|
58
|
+
}[];
|
|
59
|
+
tokenUsage: {
|
|
60
|
+
totalCostUsd?: number;
|
|
61
|
+
promptTokens: number;
|
|
62
|
+
completionTokens: number;
|
|
63
|
+
} | null;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Assemble the normalized 4.1.0 record from the two parse passes. The
|
|
67
|
+
* returned object literal is byte-for-byte the previous `upgradeRecord`
|
|
68
|
+
* return literal (same key order) so a record re-serialized by the writer
|
|
69
|
+
* keeps its on-disk shape. `vendor` is threaded in from the upgrade module
|
|
70
|
+
* (see `parseUpgradeRecordMigrationFields` for why).
|
|
71
|
+
*/
|
|
72
|
+
export declare function buildUpgradedRecord(obj: Record<string, unknown>, vendor: DispatchRecord['vendor']): DispatchRecord;
|