peaks-loop 4.1.0 → 4.1.2
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 +75 -0
- package/README-en.md +4 -4
- package/README.md +25 -4
- package/bin/node-floor.mjs +59 -0
- package/bin/peaks.js +13 -0
- package/config/eslint/tsconfig.lint.json +2 -1
- package/dist/cli/cli-helpers.d.ts +0 -1
- package/dist/cli/cli-helpers.js +0 -1
- package/dist/cli/commands/_cli-error-envelope.js +0 -3
- package/dist/cli/commands/_register.js +2 -2
- package/dist/cli/commands/adapter-commands-s2a.d.ts +0 -1
- package/dist/cli/commands/adapter-commands.d.ts +0 -1
- package/dist/cli/commands/api-diff-commands.d.ts +0 -1
- package/dist/cli/commands/api-diff-commands.js +0 -1
- package/dist/cli/commands/audit-commands.js +21 -24
- package/dist/cli/commands/autonomous-swarm-commands.js +0 -1
- package/dist/cli/commands/bee-commands.d.ts +0 -2
- package/dist/cli/commands/bee-commands.js +0 -2
- package/dist/cli/commands/best-practice-scan-command.d.ts +0 -1
- package/dist/cli/commands/best-practice-scan-helpers.js +0 -1
- package/dist/cli/commands/changeset-commands.d.ts +0 -2
- package/dist/cli/commands/changeset-commands.js +0 -2
- package/dist/cli/commands/code-commands.d.ts +0 -3
- package/dist/cli/commands/code-commands.js +0 -3
- package/dist/cli/commands/code-gate-command.d.ts +0 -1
- package/dist/cli/commands/code-gate-command.js +0 -1
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.d.ts +0 -1
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.js +0 -1
- package/dist/cli/commands/code-job-shape-commands.d.ts +0 -2
- package/dist/cli/commands/code-job-shape-commands.js +0 -3
- package/dist/cli/commands/code-mode-gate-commands.d.ts +0 -2
- package/dist/cli/commands/code-mode-gate-commands.js +0 -3
- package/dist/cli/commands/code-mode-gate-should-pause-command.js +1 -5
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.d.ts +0 -1
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.js +0 -2
- package/dist/cli/commands/code-mode-status-command.d.ts +0 -1
- package/dist/cli/commands/code-mode-status-command.js +0 -1
- package/dist/cli/commands/code-orchestrator-can-do.d.ts +0 -1
- package/dist/cli/commands/code-orchestrator-can-do.js +0 -1
- package/dist/cli/commands/code-run-command.js +0 -1
- package/dist/cli/commands/code-runtime-commands.d.ts +0 -3
- package/dist/cli/commands/code-runtime-commands.js +0 -15
- package/dist/cli/commands/codegraph-command-runtime.d.ts +6 -0
- package/dist/cli/commands/codegraph-command-runtime.js +19 -7
- package/dist/cli/commands/codegraph-commands.js +20 -193
- package/dist/cli/commands/codegraph-init-command.d.ts +8 -0
- package/dist/cli/commands/codegraph-init-command.js +162 -0
- package/dist/cli/commands/codegraph-status-command.js +5 -6
- package/dist/cli/commands/comments-commands.d.ts +14 -0
- package/dist/cli/commands/comments-commands.js +96 -0
- package/dist/cli/commands/compact-command.d.ts +0 -1
- package/dist/cli/commands/compact-command.js +0 -4
- package/dist/cli/commands/container-commands.d.ts +0 -1
- package/dist/cli/commands/container-commands.js +0 -1
- package/dist/cli/commands/context-commands.d.ts +0 -1
- package/dist/cli/commands/context-commands.js +0 -1
- package/dist/cli/commands/core/doctor-command.d.ts +0 -1
- package/dist/cli/commands/core/doctor-command.js +0 -9
- package/dist/cli/commands/core/memory-command.js +10 -1
- package/dist/cli/commands/core/session-command.js +0 -14
- package/dist/cli/commands/core/skill-command.js +1 -10
- package/dist/cli/commands/core/standards-command.js +1 -1
- package/dist/cli/commands/core-artifact-commands.d.ts +0 -1
- package/dist/cli/commands/core-artifact-commands.js +0 -1
- package/dist/cli/commands/cron-commands-actions.d.ts +0 -1
- package/dist/cli/commands/cron-commands-actions.js +0 -2
- package/dist/cli/commands/cron-commands-schedule.d.ts +0 -3
- package/dist/cli/commands/cron-commands-schedule.js +0 -1
- package/dist/cli/commands/cron-commands.d.ts +0 -1
- package/dist/cli/commands/cron-commands.js +0 -2
- package/dist/cli/commands/cron-scheduler-commands.d.ts +0 -1
- package/dist/cli/commands/cron-scheduler-commands.js +0 -1
- package/dist/cli/commands/cron-scheduler-persist.d.ts +0 -5
- package/dist/cli/commands/cron-scheduler-persist.js +0 -5
- package/dist/cli/commands/dashboard-summary.d.ts +0 -1
- package/dist/cli/commands/dispatch-commands.d.ts +0 -1
- package/dist/cli/commands/dispatch-commands.js +10 -37
- package/dist/cli/commands/dispatch-from-dag.js +0 -4
- package/dist/cli/commands/doctor/invoke-from-code.js +0 -1
- package/dist/cli/commands/e2e-verify.d.ts +0 -1
- package/dist/cli/commands/ecc-commands.d.ts +16 -22
- package/dist/cli/commands/ecc-commands.js +38 -26
- package/dist/cli/commands/evolution-commands.d.ts +0 -1
- package/dist/cli/commands/evolution-commands.js +0 -1
- package/dist/cli/commands/feedback-commands.d.ts +0 -1
- package/dist/cli/commands/feedback-commands.js +0 -2
- package/dist/cli/commands/fixture-commands.d.ts +0 -2
- package/dist/cli/commands/fresh-context-commands.d.ts +0 -1
- package/dist/cli/commands/gate-commands-enforce.d.ts +0 -3
- package/dist/cli/commands/gate-commands-enforce.js +0 -4
- package/dist/cli/commands/gate-commands.js +0 -2
- package/dist/cli/commands/governance-classify-contract-commands.d.ts +0 -3
- package/dist/cli/commands/governance-classify-contract-commands.js +0 -4
- package/dist/cli/commands/heartbeat-commands-action.js +0 -6
- package/dist/cli/commands/heartbeat-commands-validation.d.ts +0 -2
- package/dist/cli/commands/heartbeat-commands-validation.js +0 -2
- package/dist/cli/commands/heartbeat-commands.d.ts +0 -1
- package/dist/cli/commands/heartbeat-commands.js +0 -1
- package/dist/cli/commands/hooks-commands.js +0 -11
- package/dist/cli/commands/ide-commands.d.ts +0 -1
- package/dist/cli/commands/job-add-slice-command.d.ts +0 -2
- package/dist/cli/commands/job-add-slice-command.js +0 -2
- package/dist/cli/commands/job-commands.js +0 -4
- package/dist/cli/commands/lease-metrics-commands.d.ts +0 -1
- package/dist/cli/commands/lease-metrics-commands.js +0 -1
- package/dist/cli/commands/lease-stats-commands.d.ts +0 -1
- package/dist/cli/commands/lease-stats-commands.js +0 -1
- package/dist/cli/commands/log-commands.d.ts +0 -2
- package/dist/cli/commands/log-commands.js +0 -3
- package/dist/cli/commands/loop-eval-commands.js +0 -3
- package/dist/cli/commands/memory-commands.d.ts +0 -1
- package/dist/cli/commands/memory-commands.js +0 -1
- package/dist/cli/commands/observability-commands.d.ts +0 -6
- package/dist/cli/commands/observability-commands.js +0 -6
- package/dist/cli/commands/outer-cache-commands.js +0 -2
- package/dist/cli/commands/playwright-commands.d.ts +0 -1
- package/dist/cli/commands/playwright-commands.js +0 -1
- package/dist/cli/commands/polyrepo-commands.d.ts +0 -1
- package/dist/cli/commands/prd-commands.d.ts +0 -1
- package/dist/cli/commands/prd-commands.js +8 -4
- package/dist/cli/commands/preferences-commands.js +0 -2
- package/dist/cli/commands/primer-command.d.ts +0 -1
- package/dist/cli/commands/primer-command.js +0 -1
- package/dist/cli/commands/project-commands.js +0 -1
- package/dist/cli/commands/qa-commands.d.ts +0 -1
- package/dist/cli/commands/qa-commands.js +0 -2
- package/dist/cli/commands/release-commands.js +0 -9
- package/dist/cli/commands/request-commands.d.ts +0 -1
- package/dist/cli/commands/request-commands.js +0 -10
- package/dist/cli/commands/request-format-helpers.d.ts +0 -1
- package/dist/cli/commands/request-format-helpers.js +0 -2
- package/dist/cli/commands/runtime-commands.d.ts +0 -1
- package/dist/cli/commands/sc-commands.js +0 -1
- package/dist/cli/commands/session-24h-mode.d.ts +0 -1
- package/dist/cli/commands/session-24h-mode.js +0 -2
- package/dist/cli/commands/session-checkpoint-command.d.ts +0 -1
- package/dist/cli/commands/session-checkpoint-command.js +0 -1
- package/dist/cli/commands/session-resume-command.d.ts +0 -1
- package/dist/cli/commands/session-resume-command.js +0 -1
- package/dist/cli/commands/shadcn-commands.js +0 -2
- package/dist/cli/commands/share-commands.d.ts +0 -3
- package/dist/cli/commands/share-commands.js +0 -13
- package/dist/cli/commands/skill-search-commands.d.ts +0 -2
- package/dist/cli/commands/slice-commands.js +0 -2
- package/dist/cli/commands/slice-integrate-commands.js +0 -1
- package/dist/cli/commands/spill-demo-command.d.ts +0 -1
- package/dist/cli/commands/statusline-commands.js +0 -4
- package/dist/cli/commands/sub-agent/detached.js +0 -2
- package/dist/cli/commands/sub-agent-commands.d.ts +0 -3
- package/dist/cli/commands/sub-agent-shared.d.ts +0 -8
- package/dist/cli/commands/sub-agent-shared.js +0 -5
- package/dist/cli/commands/sub-agent-shutdown-commands.d.ts +0 -1
- package/dist/cli/commands/tech-commands.d.ts +0 -4
- package/dist/cli/commands/tech-commands.js +0 -4
- package/dist/cli/commands/vendor-detect.d.ts +0 -3
- package/dist/cli/commands/vendor-detect.js +0 -2
- package/dist/cli/commands/verdict-aggregate-command.d.ts +0 -1
- package/dist/cli/commands/verdict-aggregate-command.js +0 -7
- package/dist/cli/commands/vm-commands.d.ts +0 -1
- package/dist/cli/commands/vm-commands.js +5 -29
- package/dist/cli/commands/vm-hypervisor-probe.d.ts +27 -0
- package/dist/cli/commands/vm-hypervisor-probe.js +78 -0
- package/dist/cli/commands/vm-status-command.d.ts +3 -0
- package/dist/cli/commands/vm-status-command.js +50 -0
- package/dist/cli/commands/wave-plan-commands.d.ts +0 -1
- package/dist/cli/commands/web-lifecycle-commands.d.ts +0 -1
- package/dist/cli/commands/workflow-commands.js +0 -14
- package/dist/cli/commands/workflow-plan-commands-actions.js +0 -2
- package/dist/cli/commands/workflow-plan-commands-session.js +0 -2
- package/dist/cli/commands/workflow-plan-commands.d.ts +0 -1
- package/dist/cli/commands/workspace/clean-command.d.ts +0 -1
- package/dist/cli/commands/workspace/clean-command.js +0 -1
- package/dist/cli/commands/workspace/helpers.d.ts +0 -1
- package/dist/cli/commands/workspace/helpers.js +0 -1
- package/dist/cli/commands/workspace/init-command.d.ts +0 -6
- package/dist/cli/commands/workspace/init-command.js +0 -17
- package/dist/cli/commands/workspace/migrate-command.d.ts +0 -2
- package/dist/cli/commands/workspace/migrate-command.js +0 -2
- package/dist/cli/commands/workspace/reconcile-command.d.ts +0 -2
- package/dist/cli/commands/workspace/reconcile-command.js +0 -3
- package/dist/cli/commands/workspace-commands.d.ts +0 -2
- package/dist/cli/commands/workspace-commands.js +0 -4
- package/dist/cli/commands/worktree-auth-commands.d.ts +0 -1
- package/dist/cli/commands/worktree-auth-commands.js +0 -1
- package/dist/cli/commands/worktree-auth-grant-command.d.ts +0 -1
- package/dist/cli/commands/worktree-auth-grant-command.js +0 -1
- package/dist/cli/commands/worktree-auth-manage-commands.d.ts +0 -1
- package/dist/cli/commands/worktree-auth-manage-commands.js +0 -1
- package/dist/cli/commands/worktree-lease-commands.js +0 -1
- package/dist/cli/program.js +4 -16
- package/dist/reporters/bdd-reporter.js +0 -1
- package/dist/services/24h-mode/auto-engage.d.ts +0 -1
- package/dist/services/24h-mode/auto-engage.js +0 -1
- package/dist/services/24h-mode/decider.d.ts +0 -3
- package/dist/services/24h-mode/decider.js +0 -3
- package/dist/services/24h-mode/index.d.ts +0 -2
- package/dist/services/24h-mode/index.js +0 -2
- package/dist/services/24h-mode/state.d.ts +0 -1
- package/dist/services/24h-mode/state.js +0 -1
- package/dist/services/24h-mode/store.d.ts +0 -1
- package/dist/services/24h-mode/store.js +0 -1
- package/dist/services/adapter/adapter-registry.js +0 -1
- package/dist/services/artifacts/artifact-prerequisites.d.ts +0 -5
- package/dist/services/artifacts/artifact-prerequisites.js +0 -19
- package/dist/services/artifacts/artifact-templates.d.ts +0 -1
- package/dist/services/artifacts/artifact-templates.js +0 -1
- package/dist/services/artifacts/request-artifact-service.d.ts +0 -5
- package/dist/services/artifacts/request-artifact-service.js +0 -12
- package/dist/services/artifacts/request-artifact-state-helpers.d.ts +0 -1
- package/dist/services/artifacts/request-artifact-state-helpers.js +0 -1
- package/dist/services/audit/artifact-writer.d.ts +0 -1
- package/dist/services/audit/artifact-writer.js +0 -1
- package/dist/services/audit/decision-writer.js +3 -1
- package/dist/services/audit/enforcer-liveness.js +0 -1
- package/dist/services/audit/enforcers/active-skill-resolver.d.ts +0 -2
- package/dist/services/audit/enforcers/active-skill-resolver.js +0 -2
- package/dist/services/audit/red-line-audit-input.d.ts +11 -0
- package/dist/services/audit/red-line-audit-input.js +103 -0
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.d.ts +0 -1
- package/dist/services/audit/red-line-catalog-p2-a.js +0 -9
- package/dist/services/audit/types.d.ts +0 -2
- package/dist/services/audit/types.js +0 -2
- package/dist/services/audit-independent/perf-audit-service.d.ts +0 -2
- package/dist/services/audit-independent/security-audit-service.d.ts +0 -5
- package/dist/services/audit-independent/security-audit-service.js +0 -2
- package/dist/services/autonomous-swarm/autonomous-swarm-service.d.ts +0 -5
- package/dist/services/autonomous-swarm/autonomous-swarm-service.js +0 -5
- package/dist/services/best-practice/language-detector.js +0 -1
- package/dist/services/best-practice/output-formatter.d.ts +0 -1
- package/dist/services/best-practice/scan-orchestrator.d.ts +0 -1
- package/dist/services/capability-audit-service/types.d.ts +1 -3
- package/dist/services/capability-guard-runner/contracts/J08.js +2 -2
- package/dist/services/changeset/changeset-check-service.d.ts +0 -3
- package/dist/services/changeset/changeset-check-service.js +0 -3
- package/dist/services/classify/classify-service.d.ts +0 -1
- package/dist/services/classify/classify-service.js +0 -1
- package/dist/services/classify/classify-types.d.ts +0 -1
- package/dist/services/classify/classify-types.js +0 -1
- package/dist/services/code/auto-compact-lifecycle.d.ts +0 -11
- package/dist/services/code/auto-compact-lifecycle.js +0 -10
- package/dist/services/code/auto-compact-modes.d.ts +0 -3
- package/dist/services/code/auto-compact-modes.js +0 -3
- package/dist/services/code/auto-compact-orchestrator.d.ts +0 -9
- package/dist/services/code/auto-compact-orchestrator.js +0 -29
- package/dist/services/code/batch-heartbeat-poller.js +0 -1
- package/dist/services/code/compact-event-settle.js +0 -1
- package/dist/services/code/dag-orchestrator.d.ts +0 -1
- package/dist/services/code/dag-orchestrator.js +0 -1
- package/dist/services/code/mode-gate-types.d.ts +1 -3
- package/dist/services/code/mode-gate-types.js +0 -2
- package/dist/services/code/mode-gate.d.ts +0 -5
- package/dist/services/code/mode-gate.js +1 -14
- package/dist/services/code/orchestrator-can-do-advisories.d.ts +0 -2
- package/dist/services/code/orchestrator-can-do-advisories.js +0 -5
- package/dist/services/code/orchestrator-can-do.d.ts +0 -4
- package/dist/services/code/orchestrator-can-do.js +0 -3
- package/dist/services/code/status-line-renderer.js +0 -1
- package/dist/services/code/user-touchpoint-classifier.js +0 -7
- package/dist/services/code-review/ecc-bridge.d.ts +6 -7
- package/dist/services/codegraph/codegraph-autorefresh.js +6 -4
- package/dist/services/codegraph/codegraph-backend-advice.d.ts +26 -0
- package/dist/services/codegraph/codegraph-backend-advice.js +166 -0
- package/dist/services/codegraph/codegraph-config-repair-writer.d.ts +0 -24
- package/dist/services/codegraph/codegraph-config-repair-writer.js +32 -73
- package/dist/services/codegraph/codegraph-exclude-integrity.d.ts +14 -6
- package/dist/services/codegraph/codegraph-exclude-integrity.js +24 -14
- package/dist/services/codegraph/codegraph-exclude-reconciler.d.ts +9 -2
- package/dist/services/codegraph/codegraph-exclude-reconciler.js +87 -18
- package/dist/services/codegraph/codegraph-exclude-repair.d.ts +9 -61
- package/dist/services/codegraph/codegraph-exclude-repair.js +67 -139
- package/dist/services/codegraph/codegraph-foreign-removal.d.ts +21 -0
- package/dist/services/codegraph/codegraph-foreign-removal.js +77 -0
- package/dist/services/codegraph/codegraph-index-integrity.d.ts +12 -25
- package/dist/services/codegraph/codegraph-index-integrity.js +84 -23
- package/dist/services/codegraph/codegraph-preflight-service.js +15 -6
- package/dist/services/codegraph/codegraph-project-config.d.ts +35 -0
- package/dist/services/codegraph/codegraph-project-config.js +90 -0
- package/dist/services/codegraph/codegraph-service.d.ts +1 -2
- package/dist/services/codegraph/codegraph-service.js +11 -11
- package/dist/services/codegraph/codegraph-upstream-layout.d.ts +24 -0
- package/dist/services/codegraph/codegraph-upstream-layout.js +85 -0
- package/dist/services/comments/citation-rules.d.ts +154 -0
- package/dist/services/comments/citation-rules.js +241 -0
- package/dist/services/comments/comment-audit.d.ts +68 -0
- package/dist/services/comments/comment-audit.js +121 -0
- package/dist/services/comments/comment-citations.d.ts +66 -0
- package/dist/services/comments/comment-citations.js +184 -0
- package/dist/services/comments/comment-hygiene.d.ts +105 -0
- package/dist/services/comments/comment-hygiene.js +170 -0
- package/dist/services/comments/comment-prune.d.ts +88 -0
- package/dist/services/comments/comment-prune.js +196 -0
- package/dist/services/comments/comment-spans.d.ts +30 -0
- package/dist/services/comments/comment-spans.js +266 -0
- package/dist/services/comments/prune-apply.d.ts +82 -0
- package/dist/services/comments/prune-apply.js +217 -0
- package/dist/services/comments/repo-path-probe.d.ts +43 -0
- package/dist/services/comments/repo-path-probe.js +78 -0
- package/dist/services/compact/decision-tables.d.ts +0 -2
- package/dist/services/compact/decision-tables.js +0 -2
- package/dist/services/compact/request-transition-hook.js +0 -2
- package/dist/services/compact-history/compact-history-service.d.ts +0 -2
- package/dist/services/compact-history/compact-history-service.js +0 -1
- package/dist/services/compact-statusline/compact-lifecycle-store.js +0 -2
- package/dist/services/compact-statusline/compact-lifecycle-types.d.ts +0 -1
- package/dist/services/compact-statusline/compact-statusline-service.js +0 -4
- package/dist/services/config/config-rollback.js +0 -1
- package/dist/services/config/config-safety.d.ts +0 -1
- package/dist/services/config/config-safety.js +0 -1
- package/dist/services/config/config-service.d.ts +0 -1
- package/dist/services/config/config-service.js +0 -1
- package/dist/services/config/model-routing.d.ts +0 -3
- package/dist/services/config/model-routing.js +0 -5
- package/dist/services/container/container-lease.d.ts +0 -1
- package/dist/services/container/container-lease.js +0 -1
- package/dist/services/context/artifact-meta.js +0 -1
- package/dist/services/context/auto-compact-dispatcher-input.d.ts +0 -3
- package/dist/services/context/auto-compact-dispatcher.js +0 -14
- package/dist/services/context/auto-compact-reader-input.d.ts +0 -1
- package/dist/services/context/auto-compact-reader.d.ts +0 -2
- package/dist/services/context/auto-compact-reader.js +0 -7
- package/dist/services/context/auto-compact-types.d.ts +0 -11
- package/dist/services/context/auto-compact-types.js +0 -1
- package/dist/services/context/build-dispatch-system-prompt.d.ts +11 -29
- package/dist/services/context/build-dispatch-system-prompt.js +8 -27
- package/dist/services/context/codegraph-unavailable-block.d.ts +38 -0
- package/dist/services/context/codegraph-unavailable-block.js +77 -0
- package/dist/services/context/context-audit-hint.d.ts +0 -1
- package/dist/services/context/context-audit-hint.js +0 -1
- package/dist/services/context/context-audit.d.ts +0 -1
- package/dist/services/context/context-audit.js +0 -1
- package/dist/services/context/harness-window-config.d.ts +0 -4
- package/dist/services/context/harness-window-config.js +0 -4
- package/dist/services/context/main-session-monitor.d.ts +0 -2
- package/dist/services/context/main-session-monitor.js +0 -2
- package/dist/services/context/memory-index-reader.d.ts +0 -2
- package/dist/services/context/memory-index-reader.js +0 -1
- package/dist/services/context/memory-preflight-config.d.ts +0 -1
- package/dist/services/context/memory-preflight-service.d.ts +0 -1
- package/dist/services/context/memory-preflight-service.js +0 -3
- package/dist/services/context/memory-preflight-support.d.ts +0 -5
- package/dist/services/context/post-compact-reinjection.d.ts +0 -1
- package/dist/services/context/post-compact-reinjection.js +0 -1
- package/dist/services/context/summary-view.d.ts +0 -1
- package/dist/services/context/summary-view.js +0 -1
- package/dist/services/crystallization/crystallization-service.d.ts +5 -11
- package/dist/services/crystallization/crystallization-service.js +3 -11
- package/dist/services/crystallization/crystallization-store.d.ts +6 -6
- package/dist/services/dispatch/await-batch-helpers.js +0 -3
- package/dist/services/dispatch/await-batch.d.ts +0 -1
- package/dist/services/dispatch/await-batch.js +0 -4
- package/dist/services/dispatch/batch-counter.js +0 -1
- package/dist/services/dispatch/conflict-replay.d.ts +0 -1
- package/dist/services/dispatch/conflict-replay.js +0 -1
- package/dist/services/dispatch/contract-store.d.ts +0 -2
- package/dist/services/dispatch/contract-store.js +0 -2
- package/dist/services/dispatch/dispatch-record-input-types.d.ts +0 -2
- package/dist/services/dispatch/dispatch-record-types.d.ts +0 -10
- package/dist/services/dispatch/dispatch-record-upgrade-fields.js +0 -7
- package/dist/services/dispatch/dispatch-record-upgrade-guards.js +0 -2
- package/dist/services/dispatch/dispatch-record-writer.d.ts +0 -5
- package/dist/services/dispatch/dispatch-record-writer.js +0 -21
- package/dist/services/dispatch/dispatch-sub-agent.d.ts +0 -1
- package/dist/services/dispatch/dispatch-sub-agent.js +0 -1
- package/dist/services/dispatch/e2e-fixtures.js +0 -1
- package/dist/services/dispatch/file-overlap-wave-planner.d.ts +0 -1
- package/dist/services/dispatch/file-overlap-wave-planner.js +0 -1
- package/dist/services/dispatch/isolation-lease.d.ts +0 -2
- package/dist/services/dispatch/isolation-lease.js +0 -2
- package/dist/services/dispatch/service-shutdown.js +0 -1
- package/dist/services/dispatch/session-capsule.js +0 -1
- package/dist/services/dispatch/slice-dag-types.d.ts +0 -1
- package/dist/services/dispatch/slice-dag.js +0 -2
- package/dist/services/dispatch/stage-enum.d.ts +0 -1
- package/dist/services/dispatch/stage-enum.js +0 -1
- package/dist/services/dispatch/startup-timeout.d.ts +0 -1
- package/dist/services/dispatch/sub-agent-batch-await.js +0 -3
- package/dist/services/dispatch/sub-agent-dispatcher-types.d.ts +0 -1
- package/dist/services/dispatch/sub-agent-dispatcher.js +0 -2
- package/dist/services/dispatch/test-tool-detection.d.ts +0 -3
- package/dist/services/dispatch/test-tool-detection.js +0 -2
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +19 -12
- package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.js +1 -2
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.d.ts +0 -2
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +0 -2
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.d.ts +0 -1
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +0 -1
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.d.ts +0 -1
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.js +0 -3
- package/dist/services/doctor/doctor-service/checks/workspace-layout.js +0 -2
- package/dist/services/doctor/doctor-service/index.d.ts +0 -1
- package/dist/services/doctor/doctor-service/index.js +0 -1
- package/dist/services/doctor/doctor-service/plugin-registry.d.ts +0 -2
- package/dist/services/doctor/doctor-service/plugin-registry.js +0 -2
- package/dist/services/doctor/doctor-service/probe-types.d.ts +0 -4
- package/dist/services/doctor/doctor-service/report/final-summary.d.ts +0 -1
- package/dist/services/doctor/doctor-service/report/final-summary.js +0 -1
- package/dist/services/doctor/doctor-service/types.d.ts +0 -5
- package/dist/services/doctor/doctor-service/types.js +0 -1
- package/dist/services/doctor/doctor-service.d.ts +0 -1
- package/dist/services/doctor/doctor-service.js +0 -2
- package/dist/services/env/shell-probe.js +0 -1
- package/dist/services/evidence/evidence-generator.js +0 -8
- package/dist/services/evolution/evolution-constraints.d.ts +0 -2
- package/dist/services/evolution/evolution-constraints.js +0 -2
- package/dist/services/evolution/evolution-service.d.ts +2 -12
- package/dist/services/evolution/evolution-service.js +0 -9
- package/dist/services/evolution/evolution-store.d.ts +6 -8
- package/dist/services/evolution/evolution-store.js +1 -3
- package/dist/services/evolution/evolution-types.d.ts +0 -2
- package/dist/services/evolution/evolution-types.js +0 -6
- package/dist/services/evolution/independent-evaluator-runner.d.ts +0 -3
- package/dist/services/evolution/independent-evaluator-runner.js +0 -1
- package/dist/services/evolution/regression-skeptic-runner.d.ts +0 -1
- package/dist/services/feedback/feedback-promotion-service.d.ts +0 -8
- package/dist/services/feedback/feedback-promotion-service.js +0 -10
- package/dist/services/feedback/promotion-artifact-evidence.d.ts +0 -1
- package/dist/services/feedback/promotion-artifact-evidence.js +0 -1
- package/dist/services/final-review/final-review-evidence-budget.d.ts +0 -3
- package/dist/services/final-review/final-review-evidence-budget.js +0 -5
- package/dist/services/final-review/final-review-evidence-sources.d.ts +0 -1
- package/dist/services/final-review/final-review-evidence-sources.js +0 -1
- package/dist/services/final-review/final-review-output-budget.d.ts +0 -1
- package/dist/services/final-review/final-review-output-budget.js +0 -3
- package/dist/services/final-review/final-review-service.d.ts +0 -1
- package/dist/services/final-review/final-review-service.js +0 -1
- package/dist/services/fixture/fixture-capture-service.js +0 -1
- package/dist/services/fixture/fixture-sanitize-service.d.ts +0 -3
- package/dist/services/fixture/fixture-sanitize-service.js +0 -3
- package/dist/services/fresh-context/config.js +0 -1
- package/dist/services/fresh-context/fresh-context-block.js +0 -1
- package/dist/services/fresh-context/trigger-scan.d.ts +0 -1
- package/dist/services/fresh-context/trigger-scan.js +0 -1
- package/dist/services/fuzzy-matching/fzf-pick-service.d.ts +0 -1
- package/dist/services/fuzzy-matching/fzf-pick-service.js +0 -1
- package/dist/services/handoff/handoff-parser.d.ts +0 -1
- package/dist/services/handoff/handoff-parser.js +0 -1
- package/dist/services/handoff/handoff-types.d.ts +0 -1
- package/dist/services/handoff/handoff-types.js +0 -1
- package/dist/services/handoff/handoff-writer.d.ts +0 -1
- package/dist/services/handoff/handoff-writer.js +0 -1
- package/dist/services/hooks/auto-compact-hook-install.d.ts +0 -1
- package/dist/services/hooks/auto-compact-hook-install.js +0 -1
- package/dist/services/hooks/output.d.ts +0 -1
- package/dist/services/hooks/output.js +0 -1
- package/dist/services/hooks/pre-tool-code-gate.d.ts +0 -1
- package/dist/services/hooks/pre-tool-code-gate.js +0 -1
- package/dist/services/hooks/presence-marker-detector.js +0 -1
- package/dist/services/hooks/worktree-authorization-gate.d.ts +0 -3
- package/dist/services/hooks/worktree-authorization-gate.js +0 -1
- package/dist/services/ide/adapters/claude-code-adapter.d.ts +0 -5
- package/dist/services/ide/adapters/claude-code-adapter.js +0 -11
- package/dist/services/ide/adapters/qoder-adapter.d.ts +0 -3
- package/dist/services/ide/adapters/qoder-adapter.js +0 -5
- package/dist/services/ide/adapters/tongyi-lingma-adapter.d.ts +0 -2
- package/dist/services/ide/adapters/tongyi-lingma-adapter.js +0 -2
- package/dist/services/ide/adapters/trae-adapter.d.ts +0 -3
- package/dist/services/ide/adapters/trae-adapter.js +3 -6
- package/dist/services/ide/adapters/zcode-adapter.js +0 -2
- package/dist/services/ide/current-model-detector.js +0 -1
- package/dist/services/ide/hook-protocol.d.ts +0 -2
- package/dist/services/ide/hook-protocol.js +0 -2
- package/dist/services/ide/ide-compact-types.d.ts +0 -7
- package/dist/services/ide/ide-types.d.ts +0 -12
- package/dist/services/ide/resource-profile.d.ts +0 -1
- package/dist/services/job/job-commit-verification.d.ts +0 -2
- package/dist/services/job/job-commit-verification.js +0 -2
- package/dist/services/job/job-orchestrator.d.ts +0 -1
- package/dist/services/job/job-orchestrator.js +0 -1
- package/dist/services/job/job-progress-store.d.ts +0 -2
- package/dist/services/job/job-progress-store.js +0 -3
- package/dist/services/job/job-types.js +0 -1
- package/dist/services/job-snapshot/snapshot.js +0 -1
- package/dist/services/karpathy-cost/karpathy-cost-check-service.js +0 -1
- package/dist/services/legacy/legacy-detector.js +0 -1
- package/dist/services/log/log-commands-service.d.ts +0 -2
- package/dist/services/log/log-commands-service.js +0 -2
- package/dist/services/log/logger.d.ts +0 -1
- package/dist/services/log/logger.js +0 -1
- package/dist/services/log/redact.d.ts +0 -1
- package/dist/services/log/redact.js +0 -1
- package/dist/services/log/retention.d.ts +0 -17
- package/dist/services/log/retention.js +0 -18
- package/dist/services/loop/loop-bee-relation-service.d.ts +3 -3
- package/dist/services/loop/loop-bee-relation-service.js +14 -13
- package/dist/services/loop/loop-bee-relation-store.d.ts +9 -10
- package/dist/services/loop/loop-bee-relation-store.js +1 -2
- package/dist/services/loop/loop-bee-relation-types.d.ts +1 -1
- package/dist/services/loop/loop-bee-relation-types.js +1 -1
- package/dist/services/loop/loop-release-service.d.ts +3 -3
- package/dist/services/loop/loop-release-service.js +1 -1
- package/dist/services/loop/loop-release-store.d.ts +6 -7
- package/dist/services/loop/loop-release-store.js +0 -1
- package/dist/services/loop/monotonic-guard.d.ts +0 -1
- package/dist/services/loop/monotonic-guard.js +0 -1
- package/dist/services/memory/memory-ingest-service.js +0 -1
- package/dist/services/memory/project-context-service.d.ts +0 -1
- package/dist/services/memory/project-context-service.js +0 -1
- package/dist/services/memory/project-memory-service/index/reindex.d.ts +0 -2
- package/dist/services/memory/project-memory-service/index/reindex.js +0 -1
- package/dist/services/memory/project-memory-service/index/search.d.ts +0 -1
- package/dist/services/memory/project-memory-service/index/search.js +0 -1
- package/dist/services/memory/project-memory-service/index.d.ts +1 -1
- package/dist/services/memory/project-memory-service/index.js +1 -1
- package/dist/services/memory/project-memory-service/memory-kinds.d.ts +0 -1
- package/dist/services/memory/project-memory-service/memory-kinds.js +0 -1
- package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +0 -1
- package/dist/services/memory/project-memory-service/parsers/frontmatter.js +0 -1
- package/dist/services/memory/project-memory-service/store/atomic-write.d.ts +19 -7
- package/dist/services/memory/project-memory-service/store/atomic-write.js +120 -26
- package/dist/services/memory/project-memory-service.js +0 -1
- package/dist/services/mode/mode-enforcement.js +0 -1
- package/dist/services/mode/mode-status-service.d.ts +0 -2
- package/dist/services/mode/mode-status-service.js +0 -2
- package/dist/services/observability/aggregation.d.ts +0 -4
- package/dist/services/observability/aggregation.js +0 -6
- package/dist/services/observability/observability-schema.js +0 -1
- package/dist/services/observability/observability-service.d.ts +0 -5
- package/dist/services/observability/observability-service.js +0 -4
- package/dist/services/observability/report-formatter.d.ts +0 -2
- package/dist/services/observability/report-formatter.js +0 -2
- package/dist/services/openspec/artifact-boundary.d.ts +0 -4
- package/dist/services/openspec/artifact-boundary.js +0 -4
- package/dist/services/openspec/coverage-evidence-reader.d.ts +0 -1
- package/dist/services/openspec/coverage-evidence-reader.js +0 -1
- package/dist/services/polyrepo/polyrepo-dispatcher.js +0 -1
- package/dist/services/polyrepo/polyrepo-scanner.js +0 -1
- package/dist/services/polyrepo/polyrepo-service.js +0 -1
- package/dist/services/polyrepo/polyrepo-types.d.ts +0 -1
- package/dist/services/prd/best-practice-auto-trigger.d.ts +0 -2
- package/dist/services/prd/best-practice-auto-trigger.js +0 -2
- package/dist/services/prd/gate-evidence-derivation.d.ts +0 -4
- package/dist/services/prd/gate-evidence-derivation.js +0 -5
- package/dist/services/prd/handoff-auto-regen.js +0 -5
- package/dist/services/prd/handoff-frontmatter-shape.d.ts +0 -2
- package/dist/services/prd/handoff-frontmatter-shape.js +0 -2
- package/dist/services/prd/handoff-frontmatter.d.ts +0 -1
- package/dist/services/prd/handoff-frontmatter.js +61 -2
- package/dist/services/prd/handoff-gate-evidence.d.ts +0 -1
- package/dist/services/prd/handoff-gate-evidence.js +12 -12
- package/dist/services/prd/handoff-path-resolution.d.ts +0 -7
- package/dist/services/prd/handoff-path-resolution.js +0 -10
- package/dist/services/prd/handoff-service.d.ts +11 -3
- package/dist/services/prd/handoff-service.js +11 -3
- package/dist/services/prd/handoff-types.d.ts +33 -3
- package/dist/services/prd/handoff-types.js +0 -1
- package/dist/services/prd/project-scan-bootstrap-service.d.ts +0 -1
- package/dist/services/prd/project-scan-bootstrap-service.js +0 -4
- package/dist/services/prd/project-scan-types.d.ts +0 -1
- package/dist/services/prd/project-scan-types.js +0 -1
- package/dist/services/preferences/preferences-service.d.ts +0 -1
- package/dist/services/preferences/preferences-service.js +0 -5
- package/dist/services/preferences/preferences-types.d.ts +0 -14
- package/dist/services/preferences/preferences-types.js +0 -4
- package/dist/services/progress/progress-service.js +0 -1
- package/dist/services/qa/bdd-test-style-verifier.d.ts +0 -1
- package/dist/services/qa/bdd-test-style-verifier.js +0 -1
- package/dist/services/qa/browser-event-logger.d.ts +0 -1
- package/dist/services/qa/browser-event-logger.js +0 -1
- package/dist/services/qa/browser-restart-detector.d.ts +0 -1
- package/dist/services/qa/browser-restart-detector.js +0 -1
- package/dist/services/qa/browser-reuse-hint.d.ts +0 -1
- package/dist/services/qa/browser-reuse-hint.js +0 -1
- package/dist/services/qa/qa-business-review-state.js +0 -2
- package/dist/services/qa/screenshot-archive-service.d.ts +0 -1
- package/dist/services/qa/screenshot-archive-service.js +0 -1
- package/dist/services/rd/impl.js +0 -1
- package/dist/services/rd/rd-service.d.ts +0 -5
- package/dist/services/rd/rd-service.js +0 -5
- package/dist/services/rd/reviewer-dispatch-policy.d.ts +0 -4
- package/dist/services/rd/reviewer-dispatch-policy.js +0 -4
- package/dist/services/rd/standards-diagnostic.js +0 -1
- package/dist/services/rd/tactical-stage.js +0 -1
- package/dist/services/rd-swarm/rd-swarm-types.d.ts +0 -1
- package/dist/services/rd-swarm/rd-swarm-types.js +0 -1
- package/dist/services/recommendations/installed-capability-detector.d.ts +5 -6
- package/dist/services/recommendations/installed-capability-detector.js +11 -11
- package/dist/services/release/version-precheck-service.d.ts +0 -2
- package/dist/services/release/version-precheck-service.js +0 -3
- package/dist/services/retrospective/retrospective-index.d.ts +0 -1
- package/dist/services/retrospective/retrospective-index.js +0 -1
- package/dist/services/retrospective/retrospective-show.d.ts +0 -1
- package/dist/services/retrospective/retrospective-show.js +0 -1
- package/dist/services/reviewer/model-family.js +0 -1
- package/dist/services/reviewer/reviewer-config.js +0 -1
- package/dist/services/reviewer/reviewer-service.d.ts +0 -1
- package/dist/services/reviewer/reviewer-service.js +0 -3
- package/dist/services/reviewer/selection-strategies.js +0 -1
- package/dist/services/runtime/runtime-detector.js +0 -1
- package/dist/services/runtime/runtime-service.d.ts +0 -2
- package/dist/services/runtime/vendor-adapter.d.ts +0 -7
- package/dist/services/runtime/vendors/claude-code.js +0 -1
- package/dist/services/runtime/vendors/codex.js +0 -1
- package/dist/services/runtime/vendors/copilot.js +0 -1
- package/dist/services/sc/sc-service.js +0 -6
- package/dist/services/scan/acceptance-coverage-service.js +0 -2
- package/dist/services/scan/api-diff-recorded.d.ts +0 -1
- package/dist/services/scan/api-diff-recorded.js +0 -1
- package/dist/services/scan/api-diff-service.d.ts +0 -1
- package/dist/services/scan/api-diff-service.js +0 -1
- package/dist/services/scan/api-diff-types.d.ts +0 -1
- package/dist/services/scan/api-diff-types.js +0 -1
- package/dist/services/scan/archetype-detection.d.ts +37 -0
- package/dist/services/scan/archetype-detection.js +175 -2
- package/dist/services/scan/archetype-service.js +36 -23
- package/dist/services/scan/file-size-policy.d.ts +0 -1
- package/dist/services/scan/file-size-policy.js +0 -5
- package/dist/services/scan/file-size-scan.d.ts +0 -1
- package/dist/services/scan/scan-types.d.ts +9 -0
- package/dist/services/security/safe-settings-path.js +0 -1
- package/dist/services/session/binding-store.d.ts +0 -4
- package/dist/services/session/binding-store.js +0 -7
- package/dist/services/session/caller-binding-service.d.ts +0 -6
- package/dist/services/session/caller-binding-service.js +0 -4
- package/dist/services/session/caller-id-types.d.ts +0 -3
- package/dist/services/session/caller-id-types.js +0 -2
- package/dist/services/session/getSessionDir.js +0 -1
- package/dist/services/session/index.js +0 -1
- package/dist/services/session/platform-fallbacks.d.ts +0 -3
- package/dist/services/session/platform-fallbacks.js +0 -3
- package/dist/services/session/resolve-caller-id.d.ts +0 -2
- package/dist/services/session/resolve-caller-id.js +0 -2
- package/dist/services/session/session-binding-bridge.d.ts +0 -2
- package/dist/services/session/session-binding-bridge.js +0 -15
- package/dist/services/session/session-checkpoint-service.d.ts +0 -1
- package/dist/services/session/session-checkpoint-service.js +0 -1
- package/dist/services/session/session-manager.d.ts +0 -8
- package/dist/services/session/session-manager.js +0 -19
- package/dist/services/session/session-resume-service.d.ts +0 -1
- package/dist/services/session/session-resume-service.js +0 -1
- package/dist/services/share/bundle-reader.d.ts +2 -5
- package/dist/services/share/bundle-reader.js +6 -8
- package/dist/services/share/bundle-writer.d.ts +2 -2
- package/dist/services/skill/resume-detector.js +0 -3
- package/dist/services/skill/skill-scheduler.d.ts +0 -1
- package/dist/services/skill/skill-scheduler.js +0 -1
- package/dist/services/skill/skill-search-service.d.ts +0 -2
- package/dist/services/skill/skill-search-service.js +0 -2
- package/dist/services/skillhub/release-diff.d.ts +2 -2
- package/dist/services/skillhub/release-export.d.ts +2 -2
- package/dist/services/skillhub/release-gc-blobs.d.ts +2 -2
- package/dist/services/skillhub/release-import.d.ts +2 -2
- package/dist/services/skillhub/release-import.js +2 -1
- package/dist/services/skillhub/release-retain.d.ts +2 -2
- package/dist/services/skillhub/release-retain.js +2 -1
- package/dist/services/skillhub/sqlite-store.d.ts +3 -3
- package/dist/services/skillhub/sqlite-store.js +4 -5
- package/dist/services/skills/hooks-codegate-superpowers.d.ts +0 -3
- package/dist/services/skills/hooks-codegate-superpowers.js +0 -14
- package/dist/services/skills/hooks-settings-service.d.ts +0 -2
- package/dist/services/skills/hooks-settings-service.js +0 -6
- package/dist/services/skills/presence-lease-service.d.ts +0 -1
- package/dist/services/skills/presence-lease-service.js +0 -1
- package/dist/services/skills/session-start-hook-constants.d.ts +0 -4
- package/dist/services/skills/session-start-hook-constants.js +0 -4
- package/dist/services/skills/skill-presence-service.d.ts +0 -8
- package/dist/services/skills/skill-presence-service.js +0 -13
- package/dist/services/skills/skill-statusline-model.d.ts +0 -6
- package/dist/services/skills/skill-statusline-model.js +1 -4
- package/dist/services/skills/skill-statusline-renderer.d.ts +0 -1
- package/dist/services/skills/skill-statusline-renderer.js +0 -12
- package/dist/services/skills/skill-statusline-service.js +0 -6
- package/dist/services/skills/skill-statusline-sid-suffix.d.ts +0 -2
- package/dist/services/skills/skill-statusline-sid-suffix.js +0 -2
- package/dist/services/skills/statusline-palette.d.ts +0 -2
- package/dist/services/skills/statusline-palette.js +0 -3
- package/dist/services/slice/slice-archive-service.js +0 -1
- package/dist/services/slice/slice-benchmark-service.d.ts +0 -1
- package/dist/services/slice/slice-benchmark-service.js +0 -1
- package/dist/services/slice/slice-check-service.js +0 -6
- package/dist/services/slice/slice-check-types.d.ts +0 -1
- package/dist/services/slice/slice-pick-service.d.ts +0 -1
- package/dist/services/slice/slice-pick-service.js +0 -1
- package/dist/services/slice/slice-review-state.js +0 -2
- package/dist/services/sqlite/sqlite-driver.d.ts +118 -0
- package/dist/services/sqlite/sqlite-driver.js +159 -0
- package/dist/services/standards/ide-aware-standards-service.d.ts +0 -2
- package/dist/services/standards/ide-aware-standards-service.js +0 -1
- package/dist/services/standards/loop-engineering-readiness-lint.d.ts +0 -1
- package/dist/services/standards/loop-engineering-readiness-lint.js +0 -1
- package/dist/services/standards/migrate-claude-rules-service.js +0 -3
- package/dist/services/standards/migrate-service.d.ts +0 -1
- package/dist/services/standards/migrate-service.js +0 -1
- package/dist/services/standards/missing-standards-detector.d.ts +0 -2
- package/dist/services/standards/missing-standards-detector.js +0 -3
- package/dist/services/standards/project-standards-service.d.ts +0 -1
- package/dist/services/standards/project-standards-service.js +0 -1
- package/dist/services/standards/standards-render.d.ts +0 -1
- package/dist/services/standards/standards-render.js +0 -1
- package/dist/services/standards/ui-library-dispatch-block.d.ts +0 -1
- package/dist/services/standards/ui-library-dispatch-block.js +0 -1
- package/dist/services/tech/tech-change-id-service.d.ts +0 -7
- package/dist/services/tech/tech-change-id-service.js +0 -7
- package/dist/services/tech/tech-service.js +0 -5
- package/dist/services/verdict/envelope-parsers.d.ts +0 -2
- package/dist/services/verdict/envelope-parsers.js +0 -2
- package/dist/services/verdict/envelopes.d.ts +0 -1
- package/dist/services/vm/vm-lease.js +0 -1
- package/dist/services/web/aria-node.d.ts +0 -1
- package/dist/services/web/bounded-output.d.ts +0 -1
- package/dist/services/web/bounded-output.js +0 -1
- package/dist/services/web/browser-acquire.js +0 -1
- package/dist/services/web/browser-cache-probe.js +0 -1
- package/dist/services/web/browser-session-manager.js +0 -1
- package/dist/services/web/daemon-entry.js +0 -1
- package/dist/services/web/daemon-registry.js +0 -1
- package/dist/services/web/daemon-supervisor.d.ts +4 -3
- package/dist/services/web/daemon-supervisor.js +4 -4
- package/dist/services/web/playwright-loader.js +0 -1
- package/dist/services/web/playwright-types.d.ts +0 -1
- package/dist/services/web/snapshot-pruner.js +0 -1
- package/dist/services/web/untrusted-envelope.d.ts +0 -1
- package/dist/services/web/web-artifact-paths.js +0 -1
- package/dist/services/web/web-client.d.ts +0 -1
- package/dist/services/web/web-daemon-service.js +0 -1
- package/dist/services/web/web-fallback.d.ts +0 -1
- package/dist/services/web/web-fallback.js +0 -1
- package/dist/services/web/web-install-service.js +0 -1
- package/dist/services/web/web-login-profile.js +0 -1
- package/dist/services/web/web-protocol.d.ts +0 -1
- package/dist/services/web/web-protocol.js +0 -1
- package/dist/services/web/web-status-report.js +0 -1
- package/dist/services/workflow/artifact-paths.js +0 -3
- package/dist/services/workflow/autonomous-resume-writer.js +0 -2
- package/dist/services/workflow/pipeline-verify-gate-support.d.ts +0 -5
- package/dist/services/workflow/pipeline-verify-gate-support.js +0 -11
- package/dist/services/workflow/pipeline-verify-service.d.ts +0 -2
- package/dist/services/workflow/pipeline-verify-service.js +0 -15
- package/dist/services/workflow/pipeline-verify-types.d.ts +0 -10
- package/dist/services/workflow/pipeline-verify-types.js +0 -2
- package/dist/services/workflow/plan-reader.d.ts +0 -1
- package/dist/services/workflow/plan-reader.js +0 -5
- package/dist/services/workflow/plan-refresher.js +0 -2
- package/dist/services/workflow/plan-trigger-detector.d.ts +0 -2
- package/dist/services/workflow/plan-trigger-detector.js +0 -3
- package/dist/services/workflow/workflow-autonomous-resume-helpers.js +0 -5
- package/dist/services/workflow/workflow-autonomous-service.js +0 -2
- package/dist/services/workflow/workflow-autonomous-types.d.ts +0 -2
- package/dist/services/workflow/workflow-autonomous-types.js +0 -2
- package/dist/services/workflow/workflow-graph-types.d.ts +0 -1
- package/dist/services/workflow/workflow-graph-types.js +0 -1
- package/dist/services/workflow/workflow-router-service.js +0 -4
- package/dist/services/workflow/workflow-skip-service.d.ts +0 -1
- package/dist/services/workflow/workflow-skip-service.js +0 -1
- package/dist/services/workflow/workflow-spec-lint.d.ts +0 -2
- package/dist/services/workflow/workflow-spec-lint.js +0 -2
- package/dist/services/workflow/workflow-spec-types.d.ts +0 -1
- package/dist/services/workflow/workflow-spec-types.js +0 -1
- package/dist/services/workflow/workflow-spec-yaml.d.ts +0 -2
- package/dist/services/workflow/workflow-spec-yaml.js +0 -2
- package/dist/services/workflow/workflow-spec.js +0 -1
- package/dist/services/workflow/workflow-state-store.js +0 -1
- package/dist/services/workspace/claude-settings-template.d.ts +0 -4
- package/dist/services/workspace/claude-settings-template.js +0 -4
- package/dist/services/workspace/generated-artifacts-stamp.d.ts +2 -2
- package/dist/services/workspace/generated-artifacts-stamp.js +2 -2
- package/dist/services/workspace/migrate-1-4-1-service.d.ts +0 -1
- package/dist/services/workspace/migrate-1-4-1-service.js +0 -1
- package/dist/services/workspace/migrate-service.js +0 -8
- package/dist/services/workspace/migrate-types.d.ts +0 -4
- package/dist/services/workspace/migrate-types.js +0 -1
- package/dist/services/workspace/reconcile-migrate.d.ts +0 -3
- package/dist/services/workspace/reconcile-migrate.js +0 -5
- package/dist/services/workspace/reconcile-service.d.ts +0 -3
- package/dist/services/workspace/reconcile-service.js +0 -7
- package/dist/services/workspace/reconcile-types.d.ts +0 -5
- package/dist/services/workspace/sid-naming-guard.d.ts +0 -1
- package/dist/services/workspace/sid-naming-guard.js +0 -1
- package/dist/services/workspace/templates/project-scan/index.d.ts +0 -3
- package/dist/services/workspace/templates/project-scan/index.js +0 -3
- package/dist/services/workspace/workspace-claude-settings-materializer.d.ts +0 -1
- package/dist/services/workspace/workspace-claude-settings-materializer.js +0 -4
- package/dist/services/workspace/workspace-service.d.ts +0 -7
- package/dist/services/workspace/workspace-service.js +1 -17
- package/dist/services/worktree/playwright-profile.js +0 -1
- package/dist/services/worktree/worktree-lease-types.d.ts +0 -1
- package/dist/services/worktree/worktree-lease-types.js +0 -1
- package/dist/services/worktree/worktree-lease.d.ts +0 -2
- package/dist/services/worktree/worktree-lease.js +0 -2
- package/dist/shared/format-md-compact.d.ts +0 -2
- package/dist/shared/format-md-compact.js +0 -2
- package/dist/shared/incrementing-number.d.ts +0 -1
- package/dist/shared/incrementing-number.js +0 -1
- package/dist/shared/path-utils.d.ts +0 -1
- package/dist/shared/path-utils.js +0 -1
- package/dist/shared/runtime-root.d.ts +0 -1
- package/dist/shared/runtime-root.js +0 -1
- package/dist/shared/stale-policy.d.ts +0 -1
- package/dist/shared/stale-policy.js +0 -1
- package/package.json +12 -10
- package/scripts/canonical-store-link.mjs +296 -0
- package/scripts/canonical-store-prune.mjs +131 -0
- package/scripts/canonical-store.mjs +298 -0
- package/scripts/install-skills.mjs +175 -560
- package/skills/bee/peaks-qa/references/reading-handoff-frontmatter.md +3 -1
- package/skills/bee/peaks-rd/references/parallel-review-fanout.md +1 -1
- package/skills/bee/peaks-rd/references/rd-fanout-contracts.md +3 -2
- package/skills/bee/peaks-rd/references/writing-handoff-frontmatter.md +29 -7
- package/skills/peaks-audit/SKILL.md +3 -3
- package/skills/peaks-code/references/frontend-only-mode.md +2 -2
- package/skills/peaks-code/references/startup-sequence.md +0 -4
- package/dist/cli/commands/upgrade-commands.d.ts +0 -25
- package/dist/cli/commands/upgrade-commands.js +0 -154
- package/dist/services/codegraph/codegraph-include-reconciler.d.ts +0 -10
- package/dist/services/codegraph/codegraph-include-reconciler.js +0 -160
- package/dist/services/upgrade/1x-detector-service.d.ts +0 -7
- package/dist/services/upgrade/1x-detector-service.js +0 -96
- package/dist/services/upgrade/gitignore-migrate-service.d.ts +0 -56
- package/dist/services/upgrade/gitignore-migrate-service.js +0 -170
- package/dist/services/upgrade/upgrade-service.d.ts +0 -81
- package/dist/services/upgrade/upgrade-service.js +0 -428
- package/skills/peaks-code/references/step-0-55-1x-detection.md +0 -83
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The line mechanics of a comment prune, and the proof that gates every write.
|
|
3
|
+
*
|
|
4
|
+
* Split from `comment-prune.ts` because the two change for different reasons: that
|
|
5
|
+
* module decides WHAT is debt (and follows the classifier), this one decides how a
|
|
6
|
+
* line is removed from a file without damaging the file (and follows the language).
|
|
7
|
+
* Keeping them apart is also what lets the proof be tested on a text array, with no
|
|
8
|
+
* filesystem and no scan in the room.
|
|
9
|
+
*/
|
|
10
|
+
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
11
|
+
import { join } from 'node:path';
|
|
12
|
+
import { endsInsideLiteral } from './comment-spans.js';
|
|
13
|
+
/**
|
|
14
|
+
* Read a file, or report that it is not there — a prune never creates one.
|
|
15
|
+
*
|
|
16
|
+
* `existsSync` first, and NO catch: a `catch { return null }` answers "present but
|
|
17
|
+
* unreadable" (permissions, a locked handle, a directory named as a file) with the same
|
|
18
|
+
* `null` as "absent", and that conflation is the defect this repository already
|
|
19
|
+
* ratchets under `silentWarningCatchReturnNull` — this very helper was counted by it.
|
|
20
|
+
* An absent path is a state the caller handles; an unreadable one should be a crash an
|
|
21
|
+
* operator sees.
|
|
22
|
+
*/
|
|
23
|
+
export function readFileSafe(root, rel) {
|
|
24
|
+
const abs = join(root, rel);
|
|
25
|
+
return existsSync(abs) ? readFileSync(abs, 'utf8') : null;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Split a source into lines, remembering what separated them.
|
|
29
|
+
*
|
|
30
|
+
* `mixed` is the signal to leave a file alone rather than a detail to paper over: a
|
|
31
|
+
* file with both CRLF and LF endings cannot be re-joined from one delimiter without
|
|
32
|
+
* rewriting every line, and a rewrite of every line is not a comment edit — it would
|
|
33
|
+
* also make the proof below vacuous, because all the lines would differ.
|
|
34
|
+
*/
|
|
35
|
+
export function splitLines(source) {
|
|
36
|
+
const crlf = source.includes('\r\n');
|
|
37
|
+
const lfOnly = /\n(?!\r)/.test(source.replace(/\r\n/g, '\n')) || /\n[^\r]/.test(source);
|
|
38
|
+
return {
|
|
39
|
+
lines: source.split(/\r?\n/),
|
|
40
|
+
eol: crlf ? '\r\n' : '\n',
|
|
41
|
+
mixed: crlf && lfOnly
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/** Group a plan by file, in first-seen order. */
|
|
45
|
+
export function actionsByFile(actions) {
|
|
46
|
+
const byFile = new Map();
|
|
47
|
+
for (const action of actions) {
|
|
48
|
+
const list = byFile.get(action.file);
|
|
49
|
+
if (list === undefined)
|
|
50
|
+
byFile.set(action.file, [action]);
|
|
51
|
+
else
|
|
52
|
+
list.push(action);
|
|
53
|
+
}
|
|
54
|
+
return byFile;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* The proof, as data: compare kept lines against the original.
|
|
58
|
+
*
|
|
59
|
+
* One string per violation; empty means every difference between the two texts is a
|
|
60
|
+
* line this plan named, and every line it named that was kept is byte-identical to
|
|
61
|
+
* what was there before. This is computed whether or not the caller intends to write,
|
|
62
|
+
* so a dry run reports the refusals a real run would hit.
|
|
63
|
+
*/
|
|
64
|
+
export function proofViolations(before, after, actions) {
|
|
65
|
+
const dropped = new Set(actions.filter((a) => a.mode === 'drop-line').map((a) => a.line));
|
|
66
|
+
// The blanks the drops orphan are removed on purpose too — the SAME function the writer
|
|
67
|
+
// uses decides, so the proof can never be persuaded to allow more than the writer does.
|
|
68
|
+
const removed = new Set(dropped);
|
|
69
|
+
for (const blank of orphanedBlanks(before, dropped))
|
|
70
|
+
removed.add(blank);
|
|
71
|
+
const stripped = new Set(actions.filter((a) => a.mode === 'strip-trailing').map((a) => a.line));
|
|
72
|
+
const violations = [];
|
|
73
|
+
let afterAt = 0;
|
|
74
|
+
before.forEach((original, index) => {
|
|
75
|
+
const line = index + 1;
|
|
76
|
+
if (removed.has(line))
|
|
77
|
+
return; // deleted on purpose
|
|
78
|
+
if (stripped.has(line)) {
|
|
79
|
+
// The only thing a strip may do is reveal the code that was already there, so
|
|
80
|
+
// what survives must be a PREFIX of the original line — that is what makes it a
|
|
81
|
+
// comment edit, and anything else is a code edit wearing its clothes.
|
|
82
|
+
const kept = after[afterAt] ?? '';
|
|
83
|
+
afterAt += 1;
|
|
84
|
+
if (!original.startsWith(kept))
|
|
85
|
+
violations.push(`line ${line}: code text changed`);
|
|
86
|
+
// The prefix test above is true of EVERY truncation, which is how a strip that
|
|
87
|
+
// cut a template literal in half passed it. `startsWith` says nothing about
|
|
88
|
+
// whether what survives is still complete code, so that is asked separately.
|
|
89
|
+
// refused the write that left `snippet: \`` in `src/`.)
|
|
90
|
+
else if (endsInsideLiteral(kept)) {
|
|
91
|
+
violations.push(`line ${line}: strip left an unterminated literal — the code changed`);
|
|
92
|
+
}
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
if (after[afterAt] !== original)
|
|
96
|
+
violations.push(`line ${line}: untouched line differs`);
|
|
97
|
+
afterAt += 1;
|
|
98
|
+
});
|
|
99
|
+
if (afterAt !== after.length)
|
|
100
|
+
violations.push(`produced ${after.length - afterAt} extra line(s)`);
|
|
101
|
+
return violations;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* The blank lines a set of drops ORPHANS.
|
|
105
|
+
*
|
|
106
|
+
* A comment standing alone between two blanks is the only thing separating two blocks:
|
|
107
|
+
*
|
|
108
|
+
* }
|
|
109
|
+
* ← blank
|
|
110
|
+
* ← blank
|
|
111
|
+
* type AuditEnvelopeGuard<T> = …
|
|
112
|
+
*
|
|
113
|
+
* Deleting the comment joins the two blanks into a double blank, which is not what the
|
|
114
|
+
* file said before and not what any formatter will keep. So the drop owns that blank line
|
|
115
|
+
* — it is the residue of a comment removal, not an edit of someone's whitespace. Only a
|
|
116
|
+
* blank that becomes adjacent to another blank THROUGH a drop is claimed here: a double
|
|
117
|
+
* blank the repository already carries is left exactly where it is, because the pruner did
|
|
118
|
+
* not make it and has no business "fixing" it.
|
|
119
|
+
*
|
|
120
|
+
* ONE HELPER, BOTH CALLERS: `pruneFileLines` removes these and `proofViolations` allows
|
|
121
|
+
* them. A second copy of this rule is the defect class this whole feature answers, so the
|
|
122
|
+
* writer and the checker ask the same function the same question.
|
|
123
|
+
*/
|
|
124
|
+
export function orphanedBlanks(before, dropped) {
|
|
125
|
+
const orphaned = new Set();
|
|
126
|
+
let lastKept = 0; // 1-based line number of the last line that survived
|
|
127
|
+
for (let index = 0; index < before.length; index += 1) {
|
|
128
|
+
const line = index + 1;
|
|
129
|
+
if (dropped.has(line))
|
|
130
|
+
continue;
|
|
131
|
+
const isBlank = (before[index] ?? '').trim() === '';
|
|
132
|
+
if (isBlank && lastKept > 0 && (before[lastKept - 1] ?? '').trim() === '') {
|
|
133
|
+
// Every original line between the two blanks was dropped, or this blank is the
|
|
134
|
+
// join the drop created. Anything else was a double blank before this run began.
|
|
135
|
+
// A blank is claimed ONLY when a drop actually sits between it and the previous
|
|
136
|
+
// surviving blank: `between` must be non-empty, because `[].every(…)` is true and
|
|
137
|
+
// an empty gap is a double blank the repository already had — which this run did
|
|
138
|
+
// not make and has no business touching.
|
|
139
|
+
const between = range(lastKept + 1, line - 1);
|
|
140
|
+
if (between.length > 0 && between.every((n) => dropped.has(n)))
|
|
141
|
+
orphaned.add(line);
|
|
142
|
+
}
|
|
143
|
+
lastKept = line;
|
|
144
|
+
}
|
|
145
|
+
return orphaned;
|
|
146
|
+
}
|
|
147
|
+
/** Inclusive integer range, empty when `from > to`. */
|
|
148
|
+
function range(from, to) {
|
|
149
|
+
const out = [];
|
|
150
|
+
for (let n = from; n <= to; n += 1)
|
|
151
|
+
out.push(n);
|
|
152
|
+
return out;
|
|
153
|
+
}
|
|
154
|
+
/** Apply one file's actions to its lines, in the plan's own terms. */
|
|
155
|
+
export function pruneFileLines(lines, actions) {
|
|
156
|
+
const drop = new Set(actions.filter((a) => a.mode === 'drop-line').map((a) => a.line));
|
|
157
|
+
const gone = new Set(drop);
|
|
158
|
+
for (const blank of orphanedBlanks(lines, drop))
|
|
159
|
+
gone.add(blank);
|
|
160
|
+
const strip = new Map(actions.filter((a) => a.mode === 'strip-trailing').map((a) => [a.line, a.comment]));
|
|
161
|
+
const out = [];
|
|
162
|
+
lines.forEach((original, index) => {
|
|
163
|
+
const line = index + 1;
|
|
164
|
+
if (gone.has(line))
|
|
165
|
+
return;
|
|
166
|
+
if (strip.has(line)) {
|
|
167
|
+
// Cut where the scan's comment text starts, not at the first `//` in the line:
|
|
168
|
+
// `const url = "https://example.com"; // Slice 1 kept it` has its `//` inside a
|
|
169
|
+
// string literal, and slicing there would delete code.
|
|
170
|
+
const comment = strip.get(line) ?? '';
|
|
171
|
+
const at = original.indexOf(comment);
|
|
172
|
+
out.push(at > 0 ? original.slice(0, at).trimEnd() : comment.trimEnd());
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
out.push(original);
|
|
176
|
+
});
|
|
177
|
+
return out;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Run the proof on every planned file, and write only the files that passed it.
|
|
181
|
+
*
|
|
182
|
+
* A file that fails is reported and left alone — never written "mostly", because a
|
|
183
|
+
* partially-pruned file is exactly the state the proof exists to make unreachable.
|
|
184
|
+
*/
|
|
185
|
+
export function executePlan(projectRoot, byFile, apply) {
|
|
186
|
+
const touched = [];
|
|
187
|
+
const notWritten = [];
|
|
188
|
+
const fileSkips = [];
|
|
189
|
+
for (const [file, fileActions] of byFile) {
|
|
190
|
+
const source = readFileSafe(projectRoot, file);
|
|
191
|
+
if (source === null) {
|
|
192
|
+
notWritten.push(file);
|
|
193
|
+
continue;
|
|
194
|
+
}
|
|
195
|
+
const parts = splitLines(source);
|
|
196
|
+
if (parts.mixed) {
|
|
197
|
+
fileSkips.push({
|
|
198
|
+
file,
|
|
199
|
+
line: 0,
|
|
200
|
+
reason: 'mixed-line-endings',
|
|
201
|
+
text: `${parts.lines.length} line(s) left untouched`
|
|
202
|
+
});
|
|
203
|
+
notWritten.push(file);
|
|
204
|
+
continue;
|
|
205
|
+
}
|
|
206
|
+
const after = pruneFileLines(parts.lines, fileActions);
|
|
207
|
+
const violations = proofViolations(parts.lines, after, fileActions);
|
|
208
|
+
if (violations.length > 0) {
|
|
209
|
+
notWritten.push(`${file} (${violations[0]})`);
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
212
|
+
touched.push(file);
|
|
213
|
+
if (apply)
|
|
214
|
+
writeFileSync(join(projectRoot, file), after.join(parts.eol));
|
|
215
|
+
}
|
|
216
|
+
return { touched, notWritten, fileSkips };
|
|
217
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Is a path required to exist in a checkout at all?
|
|
3
|
+
*
|
|
4
|
+
* The dominant false positive on `dead-reference` was never a stale comment: it
|
|
5
|
+
* was a correct reference to a file git is told not to track. Ranked over this
|
|
6
|
+
* repository, the top twelve "dead" citations were `.claude/settings.local.json`,
|
|
7
|
+
* `.peaks/_runtime/session.json`, `.peaks/.session.json`,
|
|
8
|
+
* `.peaks/_runtime/active-skill.json`, `.codegraph/config.json`,
|
|
9
|
+
* `.peaks/preferences.json` and friends — all generated state, all named
|
|
10
|
+
* correctly by the code that writes them.
|
|
11
|
+
*
|
|
12
|
+
* So the probe answers "exists OR ignored", and the ignore reading is deliberately
|
|
13
|
+
* bounded: trailing-slash prefixes, whole-path entries, and bare-basename entries.
|
|
14
|
+
* That limit has a direction, and the direction is the safe one — a rule
|
|
15
|
+
* `.gitignore` expresses fancily (negation, `**`, character classes) is NOT read
|
|
16
|
+
* here, so such a path stays reported. A missed exemption is a finding a human
|
|
17
|
+
* reads and dismisses; a phantom exemption is a silent false green in a gate that
|
|
18
|
+
* exists to catch claims that outlived their referent.
|
|
19
|
+
*/
|
|
20
|
+
type IgnoreRules = {
|
|
21
|
+
/** Directory rules: match the path and everything below it. */
|
|
22
|
+
readonly prefixes: readonly string[];
|
|
23
|
+
/** File rules written with a slash: match that exact repo-relative path. */
|
|
24
|
+
readonly exact: ReadonlySet<string>;
|
|
25
|
+
/** Basename rules: match that name in any directory. */
|
|
26
|
+
readonly basenames: ReadonlySet<string>;
|
|
27
|
+
};
|
|
28
|
+
/** True when `.gitignore` says this repo-relative path need not be on disk. */
|
|
29
|
+
export declare function isIgnoredPath(relPath: string, rules: IgnoreRules): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Build the existence probe a scan should use: a real filesystem lookup, widened
|
|
32
|
+
* by the repository's own ignore list read from its root.
|
|
33
|
+
*
|
|
34
|
+
* The second export below is the deliberate exception. "Is this an installed
|
|
35
|
+
* package name?" must NOT be widened by the ignore list, because `node_modules` is
|
|
36
|
+
* itself ignored — an ignore-aware probe answers yes for every first segment, and
|
|
37
|
+
* the whole `dead-reference` count collapses to zero while looking perfectly
|
|
38
|
+
* healthy.
|
|
39
|
+
*/
|
|
40
|
+
export declare function createRepoProbe(repoRoot: string): (relPath: string) => boolean;
|
|
41
|
+
/** Filesystem-only existence, for questions where "git ignores it" is no answer. */
|
|
42
|
+
export declare function createFsProbe(repoRoot: string): (relPath: string) => boolean;
|
|
43
|
+
export {};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Is a path required to exist in a checkout at all?
|
|
3
|
+
*
|
|
4
|
+
* The dominant false positive on `dead-reference` was never a stale comment: it
|
|
5
|
+
* was a correct reference to a file git is told not to track. Ranked over this
|
|
6
|
+
* repository, the top twelve "dead" citations were `.claude/settings.local.json`,
|
|
7
|
+
* `.peaks/_runtime/session.json`, `.peaks/.session.json`,
|
|
8
|
+
* `.peaks/_runtime/active-skill.json`, `.codegraph/config.json`,
|
|
9
|
+
* `.peaks/preferences.json` and friends — all generated state, all named
|
|
10
|
+
* correctly by the code that writes them.
|
|
11
|
+
*
|
|
12
|
+
* So the probe answers "exists OR ignored", and the ignore reading is deliberately
|
|
13
|
+
* bounded: trailing-slash prefixes, whole-path entries, and bare-basename entries.
|
|
14
|
+
* That limit has a direction, and the direction is the safe one — a rule
|
|
15
|
+
* `.gitignore` expresses fancily (negation, `**`, character classes) is NOT read
|
|
16
|
+
* here, so such a path stays reported. A missed exemption is a finding a human
|
|
17
|
+
* reads and dismisses; a phantom exemption is a silent false green in a gate that
|
|
18
|
+
* exists to catch claims that outlived their referent.
|
|
19
|
+
*/
|
|
20
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
21
|
+
import { join } from 'node:path';
|
|
22
|
+
function parseGitignore(source) {
|
|
23
|
+
const prefixes = [];
|
|
24
|
+
const exact = new Set();
|
|
25
|
+
const basenames = new Set();
|
|
26
|
+
for (const raw of source.split(/\r?\n/)) {
|
|
27
|
+
const rule = raw.trim();
|
|
28
|
+
if (rule.length === 0 || rule.startsWith('#') || rule.startsWith('!'))
|
|
29
|
+
continue;
|
|
30
|
+
const cleaned = rule.replace(/^\//, '').replace(/\/$/, '');
|
|
31
|
+
if (cleaned.length === 0)
|
|
32
|
+
continue;
|
|
33
|
+
if (!cleaned.includes('/')) {
|
|
34
|
+
basenames.add(cleaned);
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
// A rule with a slash is registered both ways rather than guessed: `.peaks/_runtime/`
|
|
38
|
+
// is a directory, `.claude/settings.local.json` is one file, and a rule that
|
|
39
|
+
// matched only `path/` silently failed every single-file ignore in the
|
|
40
|
+
// repository. Registering both costs nothing — an over-broad directory prefix
|
|
41
|
+
// here can only ever name the path it was written for and things under it.
|
|
42
|
+
prefixes.push(`${cleaned}/`);
|
|
43
|
+
exact.add(cleaned);
|
|
44
|
+
}
|
|
45
|
+
return { prefixes, exact, basenames };
|
|
46
|
+
}
|
|
47
|
+
/** True when `.gitignore` says this repo-relative path need not be on disk. */
|
|
48
|
+
export function isIgnoredPath(relPath, rules) {
|
|
49
|
+
const posix = relPath.replace(/\\/g, '/');
|
|
50
|
+
if (rules.exact.has(posix))
|
|
51
|
+
return true;
|
|
52
|
+
if (rules.prefixes.some((prefix) => posix.startsWith(prefix)))
|
|
53
|
+
return true;
|
|
54
|
+
const segments = posix.split('/');
|
|
55
|
+
return segments.some((segment) => rules.basenames.has(segment));
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Build the existence probe a scan should use: a real filesystem lookup, widened
|
|
59
|
+
* by the repository's own ignore list read from its root.
|
|
60
|
+
*
|
|
61
|
+
* The second export below is the deliberate exception. "Is this an installed
|
|
62
|
+
* package name?" must NOT be widened by the ignore list, because `node_modules` is
|
|
63
|
+
* itself ignored — an ignore-aware probe answers yes for every first segment, and
|
|
64
|
+
* the whole `dead-reference` count collapses to zero while looking perfectly
|
|
65
|
+
* healthy.
|
|
66
|
+
*/
|
|
67
|
+
export function createRepoProbe(repoRoot) {
|
|
68
|
+
let rules = { prefixes: [], exact: new Set(), basenames: new Set() };
|
|
69
|
+
const ignorePath = join(repoRoot, '.gitignore');
|
|
70
|
+
if (existsSync(ignorePath)) {
|
|
71
|
+
rules = parseGitignore(readFileSync(ignorePath, 'utf8'));
|
|
72
|
+
}
|
|
73
|
+
return (relPath) => existsSync(join(repoRoot, relPath)) || isIgnoredPath(relPath, rules);
|
|
74
|
+
}
|
|
75
|
+
/** Filesystem-only existence, for questions where "git ignores it" is no answer. */
|
|
76
|
+
export function createFsProbe(repoRoot) {
|
|
77
|
+
return (relPath) => existsSync(join(repoRoot, relPath));
|
|
78
|
+
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Strategic-compact decision tables (slice 2026-07-01-strategic-compact-cli).
|
|
3
2
|
*
|
|
4
3
|
* Pure data + lookup helpers. No I/O. The byte-for-byte text mirrors the
|
|
5
4
|
* "Compaction Decision Guide" + "What Survives Compaction" tables in
|
|
@@ -9,7 +8,6 @@
|
|
|
9
8
|
* The `peaks compact recommend` + `peaks compact survival` + `peaks
|
|
10
9
|
* compact dry-run` primitives read from these tables; any change to the
|
|
11
10
|
* upstream skill table must be mirrored here and re-asserted by the
|
|
12
|
-
* `tests/unit/cli/compact-command.test.ts` regression suite.
|
|
13
11
|
*/
|
|
14
12
|
export type Phase = 'research' | 'planning' | 'implementation' | 'testing' | 'debugging';
|
|
15
13
|
export declare const PHASES: readonly Phase[];
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Strategic-compact decision tables (slice 2026-07-01-strategic-compact-cli).
|
|
3
2
|
*
|
|
4
3
|
* Pure data + lookup helpers. No I/O. The byte-for-byte text mirrors the
|
|
5
4
|
* "Compaction Decision Guide" + "What Survives Compaction" tables in
|
|
@@ -9,7 +8,6 @@
|
|
|
9
8
|
* The `peaks compact recommend` + `peaks compact survival` + `peaks
|
|
10
9
|
* compact dry-run` primitives read from these tables; any change to the
|
|
11
10
|
* upstream skill table must be mirrored here and re-asserted by the
|
|
12
|
-
* `tests/unit/cli/compact-command.test.ts` regression suite.
|
|
13
11
|
*/
|
|
14
12
|
export const PHASES = [
|
|
15
13
|
'research',
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Slice-boundary pre-compact hook (slice 2026-07-01-strategic-compact-cli).
|
|
3
2
|
*
|
|
4
3
|
* The RD → QA and QA → final-review slice-boundary transitions go
|
|
5
4
|
* through `peaks request transition`. When the active session is in
|
|
@@ -19,7 +18,6 @@
|
|
|
19
18
|
* auto-compact orchestrator asks the harness to compact and reports that
|
|
20
19
|
* it is waiting. It does not refuse sub-agent dispatch — peaks-loop has no
|
|
21
20
|
* executor for a running session, so a refusal gated nothing and deadlocked
|
|
22
|
-
* the runner (slice 2026-09-13-auto-compact-trigger-ownership).
|
|
23
21
|
*/
|
|
24
22
|
import { existsSync, readFileSync } from 'node:fs';
|
|
25
23
|
import { join } from 'node:path';
|
|
@@ -11,7 +11,6 @@ export interface CompactHistoryEvent {
|
|
|
11
11
|
readonly checkpointPath: string;
|
|
12
12
|
readonly dispatchMessage: string;
|
|
13
13
|
/**
|
|
14
|
-
* Slice 2026-09-13-auto-compact-trigger-ownership (T4): the window this
|
|
15
14
|
* dispatch divided by. `beforeRatio * windowTokens` is the token point
|
|
16
15
|
* peaks-loop asked the harness to compact at.
|
|
17
16
|
*/
|
|
@@ -27,7 +26,6 @@ export interface CompactHistoryEvent {
|
|
|
27
26
|
/** `observed` rows only: the measured post-compact ratio. */
|
|
28
27
|
readonly afterRatio?: number;
|
|
29
28
|
/**
|
|
30
|
-
* rid `2026-09-13-compact-event-settle`: what the HARNESS said caused the
|
|
31
29
|
* compaction — `manual` (a user ran `/compact`) or `auto` (the harness's own
|
|
32
30
|
* window fired). Written only by the `PostCompact` hook path, which is the
|
|
33
31
|
* only path a harness reports it on.
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// src/services/compact-history/compact-history-service.ts
|
|
2
2
|
//
|
|
3
|
-
// Slice 2026-07-30-compact-visibility (slice 1/4). Pure-function
|
|
4
3
|
// reader for the .peaks/_runtime/<sessionId>/compact-history.jsonl
|
|
5
4
|
// file that auto-compact-orchestrator now appends to on every
|
|
6
5
|
// dispatch. The CLI surface `peaks compact history` and the
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// src/services/compact-statusline/compact-lifecycle-store.ts
|
|
2
2
|
//
|
|
3
|
-
// Slice 2026-08-01-compact-lifecycle (Task 1/5). Pure persistence
|
|
4
3
|
// for the runtime *compact lifecycle* record that the auto-compact
|
|
5
4
|
// orchestrator writes on every state transition. The record is the
|
|
6
5
|
// single source of truth that downstream statusline / dashboard
|
|
@@ -20,7 +19,6 @@
|
|
|
20
19
|
// staleAfterMs. Terminal stages (`completed`, `failed`) NEVER go
|
|
21
20
|
// stalled — the record is the historical answer, not a heartbeat.
|
|
22
21
|
//
|
|
23
|
-
// Slice 2026-09-12-compact-band-policy (defect B): `armed` is a third
|
|
24
22
|
// category — a RESTING stage. It records a fact ("we registered a
|
|
25
23
|
// compact trigger") that stays true until a measurement supersedes it;
|
|
26
24
|
// no heartbeat was ever promised, so waiting in it is NORMAL and it
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export type CompactLifecycleStage = 'queued' | 'preparing' | 'compacting'
|
|
2
2
|
/**
|
|
3
|
-
* Slice 2026-09-12-compact-band-policy: a compact trigger was
|
|
4
3
|
* REGISTERED but no compaction has started — e.g. claude-code's
|
|
5
4
|
* `ide-native` pathway only installs the PreToolUse hook, which
|
|
6
5
|
* compacts in-band at ratio ≥ 0.95. In the 0.80–0.95 band nothing
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// src/services/compact-statusline/compact-statusline-service.ts
|
|
2
2
|
//
|
|
3
|
-
// Slice 2026-08-01-compact-lifecycle (Task 3/5). Pure semantic
|
|
4
3
|
// decision + render helper for the 'peaks statusline compact'
|
|
5
4
|
// indicator. Reads .peaks/_runtime/<sessionId>/compact-lifecycle.json
|
|
6
5
|
// first (the canonical source of truth) and falls back to the legacy
|
|
@@ -28,7 +27,6 @@
|
|
|
28
27
|
// none → 0 cells
|
|
29
28
|
// invalid → 0 cells (no false reassurance)
|
|
30
29
|
// stalled → keep the active stage's cell
|
|
31
|
-
// armed → NO bar at all (slice 2026-09-12-compact-band-policy):
|
|
32
30
|
// a registered-but-idle trigger has no progress to
|
|
33
31
|
// report, and a bar would imply one.
|
|
34
32
|
//
|
|
@@ -130,7 +128,6 @@ function decideLegacyFallback(input) {
|
|
|
130
128
|
// Priority 2 within legacy: a history row TESTIFIES that a compaction was
|
|
131
129
|
// witnessed, recently enough to still be the one being reported.
|
|
132
130
|
//
|
|
133
|
-
// Repair R9 (AC4). This used to read the file's mtime — freshness taken as
|
|
134
131
|
// evidence that "a compact just landed". Freshness is evidence of neither:
|
|
135
132
|
// the same file takes a `dispatch` row every time peaks-loop ASKS for a
|
|
136
133
|
// compact, and an ask is an intent, not an outcome. One real session
|
|
@@ -193,7 +190,6 @@ export function renderCompactStatusline(state) {
|
|
|
193
190
|
return `compact ${renderBar(2)}`;
|
|
194
191
|
case 'compacting':
|
|
195
192
|
return `compact ${renderBar(STAGE_CELL_COMPACTING)}`;
|
|
196
|
-
// Slice 2026-09-12-compact-band-policy: a registered trigger that has
|
|
197
193
|
// not fired is NOT progress. Rendering a bar would imply movement
|
|
198
194
|
// that is not happening, so `armed` deliberately renders no bar at
|
|
199
195
|
// all — the label states what is true and what would change it.
|
|
@@ -15,7 +15,6 @@ export function planRollback() {
|
|
|
15
15
|
export function executeRollback(opts) {
|
|
16
16
|
const plan = planRollback();
|
|
17
17
|
if (!plan.available) {
|
|
18
|
-
// rid 2026-09-13-two-decisions ①: a machine that never migrated has no
|
|
19
18
|
// `.bak`, and that is its normal state — `--apply` on such a machine is
|
|
20
19
|
// "nothing to roll back", not a failure. Returned instead of thrown so the
|
|
21
20
|
// exit status and the `available` key agree on every path; see
|
|
@@ -29,7 +29,6 @@ export declare function resolveProjectRootForConfig(startPath: string): string;
|
|
|
29
29
|
*/
|
|
30
30
|
export declare function resolveCanonicalProjectRoot(startPath: string): string;
|
|
31
31
|
/**
|
|
32
|
-
* Slice rid-statusline-stale-ux AC-2 + P1 H1 option A: strict
|
|
33
32
|
* canonicalization for use in trust-boundary paths (e.g.
|
|
34
33
|
* `peaks session primer`).
|
|
35
34
|
*
|
|
@@ -18,7 +18,6 @@ export declare function isConfigLayer(value: string): value is ConfigLayer;
|
|
|
18
18
|
/**
|
|
19
19
|
* Machine-scoped context-window override key, the config twin of the
|
|
20
20
|
* `PEAKS_CONTEXT_WINDOW_TOKENS` env var (slice
|
|
21
|
-
* 2026-09-09-context-window-override). Written with
|
|
22
21
|
* `peaks config set --key context.windowTokens --value <positive-int>`
|
|
23
22
|
* (user layer) so the user pins it once instead of exporting an env var
|
|
24
23
|
* in every shell.
|
|
@@ -200,7 +200,6 @@ export function isConfigLayer(value) {
|
|
|
200
200
|
/**
|
|
201
201
|
* Machine-scoped context-window override key, the config twin of the
|
|
202
202
|
* `PEAKS_CONTEXT_WINDOW_TOKENS` env var (slice
|
|
203
|
-
* 2026-09-09-context-window-override). Written with
|
|
204
203
|
* `peaks config set --key context.windowTokens --value <positive-int>`
|
|
205
204
|
* (user layer) so the user pins it once instead of exporting an env var
|
|
206
205
|
* in every shell.
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { type ModelProviderConfig, type PeaksConfig } from './config-types.js';
|
|
2
2
|
/**
|
|
3
|
-
* Slice 2026-07-09 add-zcode-adapter (A.3): replaces the legacy
|
|
4
3
|
* `STRONGEST_MODEL_ID = 'claude-opus-4-7'` constant (removed) with a dynamic
|
|
5
4
|
* resolver. The strongest planner/reviewer model is now derived
|
|
6
5
|
* from the active config instead of being hardcoded to a specific
|
|
@@ -24,7 +23,6 @@ export declare function getStrongestModelId(config?: {
|
|
|
24
23
|
model?: unknown;
|
|
25
24
|
}): string;
|
|
26
25
|
/**
|
|
27
|
-
* Slice 2026-07-09 add-zcode-adapter (Slice C, C.4): async variant
|
|
28
26
|
* of `getStrongestModelId`. Same precedence for layers 1 + 2, but
|
|
29
27
|
* layer 2.5 is the IDE's runtime probe (`detectCurrentIdeModel`)
|
|
30
28
|
* which is consulted BEFORE the env-var back-compat fallback.
|
|
@@ -53,7 +51,6 @@ export declare function getStrongestModelIdAsync(config?: {
|
|
|
53
51
|
}, runtimeProbeDisabled?: boolean): Promise<string>;
|
|
54
52
|
export declare function getConfiguredExecutionModelId(providers: ModelProviderConfig | undefined): string;
|
|
55
53
|
/**
|
|
56
|
-
* Slice 015 — typed exception for "no provider has a configured model".
|
|
57
54
|
* Lives next to its throw site so a downstream `instanceof` check survives
|
|
58
55
|
* any tree-shaking. CLI catch sites map this to the `INVALID_PROVIDERS`
|
|
59
56
|
* envelope code via `_cli-error-envelope.mapServiceError`.
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { detectCurrentIdeModel } from '../ide/current-model-detector.js';
|
|
2
2
|
/**
|
|
3
|
-
* Slice 2026-07-09 add-zcode-adapter (A.3): replaces the legacy
|
|
4
3
|
* `STRONGEST_MODEL_ID = 'claude-opus-4-7'` constant (removed) with a dynamic
|
|
5
4
|
* resolver. The strongest planner/reviewer model is now derived
|
|
6
5
|
* from the active config instead of being hardcoded to a specific
|
|
@@ -25,12 +24,10 @@ export function getStrongestModelId(config) {
|
|
|
25
24
|
const fromConfig = typeof raw === 'string' ? raw.trim() : undefined;
|
|
26
25
|
if (fromConfig)
|
|
27
26
|
return fromConfig;
|
|
28
|
-
// Slice 2026-07-09: back-compat fallback for test fixtures that
|
|
29
27
|
// pre-date this slice (SC §3.4 strategy A env-var override).
|
|
30
28
|
return process.env.PEAKS_STRONGEST_MODEL_DEFAULT ?? 'claude-opus-4-7';
|
|
31
29
|
}
|
|
32
30
|
/**
|
|
33
|
-
* Slice 2026-07-09 add-zcode-adapter (Slice C, C.4): async variant
|
|
34
31
|
* of `getStrongestModelId`. Same precedence for layers 1 + 2, but
|
|
35
32
|
* layer 2.5 is the IDE's runtime probe (`detectCurrentIdeModel`)
|
|
36
33
|
* which is consulted BEFORE the env-var back-compat fallback.
|
|
@@ -86,7 +83,6 @@ export function getConfiguredExecutionModelId(providers) {
|
|
|
86
83
|
return configuredModel;
|
|
87
84
|
}
|
|
88
85
|
/**
|
|
89
|
-
* Slice 015 — typed exception for "no provider has a configured model".
|
|
90
86
|
* Lives next to its throw site so a downstream `instanceof` check survives
|
|
91
87
|
* any tree-shaking. CLI catch sites map this to the `INVALID_PROVIDERS`
|
|
92
88
|
* envelope code via `_cli-error-envelope.mapServiceError`.
|
|
@@ -101,7 +97,6 @@ export function getEconomyAwareExecutionModelId(config) {
|
|
|
101
97
|
// Slice 2.0.1-bug1 round 3: economy is the project default. Treat undefined as enabled
|
|
102
98
|
// (matches the pre-slice implicit default from DEFAULT_CONFIG.economyMode = true). Only an
|
|
103
99
|
// explicit `economyMode === false` switches execution to the strongest planner/reviewer
|
|
104
|
-
// model (resolved dynamically per Slice 2026-07-09 add-zcode-adapter A.3).
|
|
105
100
|
return config.economyMode !== false
|
|
106
101
|
? getConfiguredExecutionModelId(config.providers)
|
|
107
102
|
: getStrongestModelId(config);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* container-lease — pure-function lease store for `peaks container spawn`.
|
|
3
3
|
*
|
|
4
|
-
* Slice 2026-07-29-worktree-l2-extended Part 12 (L4 container
|
|
5
4
|
* runtime). Mirrors the design of `worktree-lease.ts` (Part 1):
|
|
6
5
|
* - Pure function module: every helper takes the lease
|
|
7
6
|
* directory path as an argument and returns structured data.
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* container-lease — pure-function lease store for `peaks container spawn`.
|
|
3
3
|
*
|
|
4
|
-
* Slice 2026-07-29-worktree-l2-extended Part 12 (L4 container
|
|
5
4
|
* runtime). Mirrors the design of `worktree-lease.ts` (Part 1):
|
|
6
5
|
* - Pure function module: every helper takes the lease
|
|
7
6
|
* directory path as an argument and returns structured data.
|
|
@@ -14,7 +14,6 @@ export interface DispatchIdeCompactInput {
|
|
|
14
14
|
/** Spawn timeout (ms). Default 30s — Claude Code `/compact` is sync. */
|
|
15
15
|
readonly timeoutMs?: number | undefined;
|
|
16
16
|
/**
|
|
17
|
-
* Slice 2026-06-28-code-mode-bypass-fix (defect #4): which session
|
|
18
17
|
* the compact should target. Default `'main'` — the orchestrator
|
|
19
18
|
* (peaks-code body) runs in the main-session Claude Code window and
|
|
20
19
|
* wants to compress *its* context, not a sub-agent's. Sub-agent
|
|
@@ -23,13 +22,11 @@ export interface DispatchIdeCompactInput {
|
|
|
23
22
|
*
|
|
24
23
|
* Behaviour matrix, keyed on the ADAPTER'S DECLARED pathway only
|
|
25
24
|
* — never on the adapter's name (slice
|
|
26
|
-
* 2026-09-12-auto-compact-vendor-neutrality):
|
|
27
25
|
* - target='main' → llm-self-compress (write intent; main LLM
|
|
28
26
|
* fires its compact command on its next turn).
|
|
29
27
|
* - target='sub-agent'→ shell-exec stub (DEPRECATED — no host
|
|
30
28
|
* CLI spawn; returns envelope with
|
|
31
29
|
* `pathway: 'shell-exec'` for legacy
|
|
32
|
-
* contract only — see rid-031).
|
|
33
30
|
* An adapter with no registered `compact` profile returns noop for
|
|
34
31
|
* BOTH targets; an adapter whose profile serves the main session is
|
|
35
32
|
* dispatched regardless of which IDE it is.
|