peaks-loop 4.1.1 → 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 +50 -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/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 +0 -4
- 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/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 +0 -1
- package/dist/cli/commands/core/session-command.js +0 -14
- package/dist/cli/commands/core/skill-command.js +0 -9
- 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 +0 -1
- 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 +0 -2
- 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 +0 -7
- 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 +0 -2
- package/dist/services/code/mode-gate-types.js +0 -1
- package/dist/services/code/mode-gate.d.ts +0 -5
- package/dist/services/code/mode-gate.js +0 -5
- 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-review/ecc-bridge.d.ts +0 -1
- 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/comment-audit.d.ts +15 -4
- package/dist/services/comments/comment-audit.js +25 -4
- package/dist/services/comments/comment-citations.d.ts +8 -2
- package/dist/services/comments/comment-citations.js +31 -33
- package/dist/services/comments/comment-hygiene.d.ts +29 -3
- package/dist/services/comments/comment-hygiene.js +40 -3
- package/dist/services/comments/comment-prune.js +52 -4
- 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 +22 -0
- package/dist/services/comments/prune-apply.js +69 -2
- 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 -1
- package/dist/services/log/retention.js +0 -1
- 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/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.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 +0 -2
- package/dist/services/prd/handoff-gate-evidence.d.ts +0 -1
- package/dist/services/prd/handoff-gate-evidence.js +0 -4
- 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 +0 -2
- package/dist/services/prd/handoff-service.js +0 -2
- package/dist/services/prd/handoff-types.d.ts +0 -2
- 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 +0 -1
- package/dist/services/recommendations/installed-capability-detector.js +0 -1
- 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-service.js +0 -1
- 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/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/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 +0 -16
- 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 -383
- package/skills/peaks-audit/SKILL.md +3 -3
- package/dist/services/codegraph/codegraph-include-reconciler.d.ts +0 -10
- package/dist/services/codegraph/codegraph-include-reconciler.js +0 -160
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// src/services/codegraph/codegraph-upstream-layout.ts
|
|
2
|
+
//
|
|
3
|
+
// ONE answer to "where did the installed `@colbymchenry/codegraph` put its
|
|
4
|
+
// files", for the four places peaks-loop reaches into the package.
|
|
5
|
+
//
|
|
6
|
+
// WHY THIS EXISTS (the 1.6.2 upgrade). Before it, one rule covered all four
|
|
7
|
+
// sites: join `dist/…` onto whatever directory upstream's `package.json`
|
|
8
|
+
// sits in. That rule is false from 1.6.x. The main package there is TYPE
|
|
9
|
+
// DEFINITIONS ONLY — `find dist -name '*.js' | wc -l` is 0 — and the runtime
|
|
10
|
+
// moved into a per-platform optionalDependency
|
|
11
|
+
// (`@colbymchenry/codegraph-<platform>-<arch>`), whose own `lib/dist/` holds
|
|
12
|
+
// the entry AND the modules. Every one of the four joins therefore resolved
|
|
13
|
+
// to a path that does not exist, so the binary could not be spawned and the
|
|
14
|
+
// two oracles could not be loaded.
|
|
15
|
+
//
|
|
16
|
+
// The fix is a PROBE, not a version check: the candidates are ordered
|
|
17
|
+
// newest-layout-first (per-platform bundle, then the main package's own
|
|
18
|
+
// `dist/`) and the first one whose `dist/bin/codegraph.js` actually exists
|
|
19
|
+
// wins. So a 0.7.x install still resolves, a future release that moves the
|
|
20
|
+
// files again is found without an edit here, and nothing is decided by a
|
|
21
|
+
// version string that can drift from the filesystem.
|
|
22
|
+
//
|
|
23
|
+
// This module is separate from `codegraph-service.ts` rather than a few more
|
|
24
|
+
// functions inside it, because that file sits under eslint's `max-lines` cap
|
|
25
|
+
// and the resolver does not fit. It has no dependency on the service, so the
|
|
26
|
+
// two oracles can import it without pulling in the service's session and
|
|
27
|
+
// process-runner imports.
|
|
28
|
+
import { existsSync } from 'node:fs';
|
|
29
|
+
import { createRequire } from 'node:module';
|
|
30
|
+
import { dirname, join } from 'node:path';
|
|
31
|
+
const CODEGRAPH_PACKAGE_NAME = '@colbymchenry/codegraph';
|
|
32
|
+
/** The directory a 1.6.x per-platform bundle keeps its `dist/` under. */
|
|
33
|
+
const CODEGRAPH_BUNDLE_LIB_DIR = 'lib';
|
|
34
|
+
/**
|
|
35
|
+
* Directories a `dist/` might hang off, newest layout first.
|
|
36
|
+
*
|
|
37
|
+
* The platform bundle is resolved through a require anchored AT the main
|
|
38
|
+
* package's own `package.json`, never at this module: the bundle is a
|
|
39
|
+
* dependency OF the main package, so under pnpm's isolated layout it is
|
|
40
|
+
* linked into the MAIN package's `node_modules/` and is invisible to a
|
|
41
|
+
* require anchored here. A missing bundle (0.7.x, or a registry mirror that
|
|
42
|
+
* skipped the optionalDependency) is not an error — the main package's own
|
|
43
|
+
* `dist/` is the next candidate.
|
|
44
|
+
*/
|
|
45
|
+
function upstreamDistRoots(packageJsonPath) {
|
|
46
|
+
const bundlePackageName = `${CODEGRAPH_PACKAGE_NAME}-${process.platform}-${process.arch}`;
|
|
47
|
+
let bundleDir = null;
|
|
48
|
+
try {
|
|
49
|
+
const require = createRequire(packageJsonPath);
|
|
50
|
+
const bundlePackageJson = require.resolve(`${bundlePackageName}/package.json`);
|
|
51
|
+
bundleDir = dirname(bundlePackageJson);
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
// A missing bundle is an EXPECTED state, not a swallow: 0.7.x has none,
|
|
55
|
+
// and a registry mirror that did not mirror the optionalDependency
|
|
56
|
+
// leaves the install without one. It is reported by the assignment —
|
|
57
|
+
// the caller below then has exactly one candidate root instead of two.
|
|
58
|
+
bundleDir = null;
|
|
59
|
+
}
|
|
60
|
+
const roots = bundleDir === null ? [] : [join(bundleDir, CODEGRAPH_BUNDLE_LIB_DIR)];
|
|
61
|
+
roots.push(dirname(packageJsonPath));
|
|
62
|
+
return roots;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Resolve upstream's layout for one `package.json` path.
|
|
66
|
+
*
|
|
67
|
+
* `packageJsonPath` is a parameter rather than a lookup because the doctor's
|
|
68
|
+
* yarn-pnp fallback reaches the same package by a filesystem walk and needs
|
|
69
|
+
* the layout for THAT path, not for whatever `createRequire` finds.
|
|
70
|
+
*/
|
|
71
|
+
export function codegraphUpstreamLayoutFor(packageJsonPath) {
|
|
72
|
+
const distDirs = upstreamDistRoots(packageJsonPath).map((root) => join(root, 'dist'));
|
|
73
|
+
const probed = distDirs.find((dir) => existsSync(join(dir, 'bin', 'codegraph.js')));
|
|
74
|
+
const moduleDir = probed ?? distDirs[0] ?? '';
|
|
75
|
+
return {
|
|
76
|
+
binaryPath: moduleDir === '' ? '' : join(moduleDir, 'bin', 'codegraph.js'),
|
|
77
|
+
moduleDir
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/** `codegraphUpstreamLayoutFor` for whichever install this process runs against. */
|
|
81
|
+
export function resolveCodegraphUpstreamLayout() {
|
|
82
|
+
const require = createRequire(import.meta.url);
|
|
83
|
+
const packageJsonPath = require.resolve(`${CODEGRAPH_PACKAGE_NAME}/package.json`);
|
|
84
|
+
return codegraphUpstreamLayoutFor(packageJsonPath);
|
|
85
|
+
}
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
* workspace package's `src`, as `.husky/lint-scope.mjs` defines it — rather than
|
|
6
6
|
* a second definition of "product code" written here. Two names for one rule is
|
|
7
7
|
* the failure the parity test in `tests/unit/comments/citation-parity.test.ts`
|
|
8
|
-
* exists to prevent
|
|
8
|
+
* exists to prevent, and the parity that second name actually caused is pinned by
|
|
9
|
+
* `tests/unit/comments/comment-audit.test.ts`, which requires this walk to read the
|
|
10
|
+
* same number of files the artifact records the ratchet measuring.
|
|
9
11
|
*
|
|
10
12
|
* This is the read side only. Nothing here writes a file: the counts it produces
|
|
11
13
|
* are the numbers a ratchet would start from, and a ratchet seeded from a scan
|
|
@@ -13,8 +15,18 @@
|
|
|
13
15
|
* refuses a legitimate change.
|
|
14
16
|
*/
|
|
15
17
|
import { type CommentFileSummary, type CommentFinding, type CommentFindingKind } from './comment-hygiene.js';
|
|
16
|
-
/**
|
|
17
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Product-code directories, in report order: `src`, then every package under
|
|
20
|
+
* `packages/` that has a `src`.
|
|
21
|
+
*
|
|
22
|
+
* Derived from the rule rather than enumerated, because `.husky/lint-scope.mjs` says a
|
|
23
|
+
* new `packages/<anything>/src` joins the enforced scope BY EXISTING. The first version
|
|
24
|
+
* of this list spelled it `['src', 'packages/peaks-loop-mut/src']`, which was the second
|
|
25
|
+
* definition of "product code" this file's header claims not to be: the ratchet measures
|
|
26
|
+
* 953 files and the worklist read 926, so 14 gated narrative rows lived in three
|
|
27
|
+
* packages no `peaks comments audit` would show and no `prune` could clear.
|
|
28
|
+
*/
|
|
29
|
+
export declare function commentScanScope(projectRoot: string): string[];
|
|
18
30
|
/**
|
|
19
31
|
* Every source file under one scope dir, repo-relative, sorted.
|
|
20
32
|
*
|
|
@@ -49,7 +61,6 @@ export type CommentAuditOptions = {
|
|
|
49
61
|
* misses tracked files the disk dropped, so a row measured over a walk can move
|
|
50
62
|
* while nobody edits source. `git ls-files` filtered by the published scope rule is
|
|
51
63
|
* that population — the same list the eslint, prettier and silent-warning legs
|
|
52
|
-
* share (rid `2026-10-03-silent-warning-scope`).
|
|
53
64
|
*/
|
|
54
65
|
readonly files?: readonly string[];
|
|
55
66
|
};
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
* workspace package's `src`, as `.husky/lint-scope.mjs` defines it — rather than
|
|
6
6
|
* a second definition of "product code" written here. Two names for one rule is
|
|
7
7
|
* the failure the parity test in `tests/unit/comments/citation-parity.test.ts`
|
|
8
|
-
* exists to prevent
|
|
8
|
+
* exists to prevent, and the parity that second name actually caused is pinned by
|
|
9
|
+
* `tests/unit/comments/comment-audit.test.ts`, which requires this walk to read the
|
|
10
|
+
* same number of files the artifact records the ratchet measuring.
|
|
9
11
|
*
|
|
10
12
|
* This is the read side only. Nothing here writes a file: the counts it produces
|
|
11
13
|
* are the numbers a ratchet would start from, and a ratchet seeded from a scan
|
|
@@ -16,8 +18,27 @@ import { existsSync, readFileSync, readdirSync } from 'node:fs';
|
|
|
16
18
|
import { join, relative, resolve } from 'node:path';
|
|
17
19
|
import { scanComments, summarize } from './comment-hygiene.js';
|
|
18
20
|
import { createFsProbe, createRepoProbe } from './repo-path-probe.js';
|
|
19
|
-
/**
|
|
20
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Product-code directories, in report order: `src`, then every package under
|
|
23
|
+
* `packages/` that has a `src`.
|
|
24
|
+
*
|
|
25
|
+
* Derived from the rule rather than enumerated, because `.husky/lint-scope.mjs` says a
|
|
26
|
+
* new `packages/<anything>/src` joins the enforced scope BY EXISTING. The first version
|
|
27
|
+
* of this list spelled it `['src', 'packages/peaks-loop-mut/src']`, which was the second
|
|
28
|
+
* definition of "product code" this file's header claims not to be: the ratchet measures
|
|
29
|
+
* 953 files and the worklist read 926, so 14 gated narrative rows lived in three
|
|
30
|
+
* packages no `peaks comments audit` would show and no `prune` could clear.
|
|
31
|
+
*/
|
|
32
|
+
export function commentScanScope(projectRoot) {
|
|
33
|
+
const packagesDir = join(projectRoot, 'packages');
|
|
34
|
+
if (!existsSync(packagesDir))
|
|
35
|
+
return ['src'];
|
|
36
|
+
const names = readdirSync(packagesDir, { withFileTypes: true })
|
|
37
|
+
.filter((entry) => entry.isDirectory() && existsSync(join(packagesDir, entry.name, 'src')))
|
|
38
|
+
.map((entry) => entry.name)
|
|
39
|
+
.sort();
|
|
40
|
+
return ['src', ...names.map((name) => join('packages', name, 'src'))];
|
|
41
|
+
}
|
|
21
42
|
const SOURCE_SUFFIXES = ['.ts', '.tsx', '.mts', '.cts'];
|
|
22
43
|
function isSourceFile(name) {
|
|
23
44
|
return SOURCE_SUFFIXES.some((suffix) => name.endsWith(suffix));
|
|
@@ -96,5 +117,5 @@ export function auditComments(options) {
|
|
|
96
117
|
}
|
|
97
118
|
/** The walked population, used only when a caller did not hand an explicit list. */
|
|
98
119
|
function scopePopulation(projectRoot) {
|
|
99
|
-
return
|
|
120
|
+
return commentScanScope(projectRoot).flatMap((scopeDir) => scopeFiles(projectRoot, scopeDir));
|
|
100
121
|
}
|
|
@@ -9,8 +9,9 @@
|
|
|
9
9
|
* Deliberately NOT `ts.getLeadingCommentRanges`:
|
|
10
10
|
* `src/services/qa/bdd-test-style-verifier.ts` records that the API returns zero
|
|
11
11
|
* ranges for comment-only blocks, which would silently read a header comment as no
|
|
12
|
-
* comment at all.
|
|
13
|
-
* worklist and the prune both need
|
|
12
|
+
* comment at all. The spans come from `comment-spans.ts` instead, which keeps both
|
|
13
|
+
* order and line numbers — what the worklist and the prune both need — and knows
|
|
14
|
+
* what character it is inside, which a per-line rule cannot.
|
|
14
15
|
*/
|
|
15
16
|
import { type Citation } from './citation-rules.js';
|
|
16
17
|
/** One source line, with its 1-based number, as the classifier sees it. */
|
|
@@ -22,6 +23,11 @@ export type CommentLine = {
|
|
|
22
23
|
* The comment lines of a file: full-line comments, plus the trailing comment of a
|
|
23
24
|
* code line. Non-comment lines are omitted but their numbers survive, so a report
|
|
24
25
|
* can point at the code a comment is attached to.
|
|
26
|
+
*
|
|
27
|
+
* Derived from `commentSpans`, which reads the text as a stream. The previous version
|
|
28
|
+
* decided per line and was wrong in both directions at once: a `//` inside a template
|
|
29
|
+
* literal became a comment (and then a deletion that cut the literal open), while a
|
|
30
|
+
* block comment's interior line that does not start with `*` was missed.
|
|
25
31
|
*/
|
|
26
32
|
export declare function commentLines(source: string): CommentLine[];
|
|
27
33
|
/**
|
|
@@ -9,58 +9,56 @@
|
|
|
9
9
|
* Deliberately NOT `ts.getLeadingCommentRanges`:
|
|
10
10
|
* `src/services/qa/bdd-test-style-verifier.ts` records that the API returns zero
|
|
11
11
|
* ranges for comment-only blocks, which would silently read a header comment as no
|
|
12
|
-
* comment at all.
|
|
13
|
-
* worklist and the prune both need
|
|
12
|
+
* comment at all. The spans come from `comment-spans.ts` instead, which keeps both
|
|
13
|
+
* order and line numbers — what the worklist and the prune both need — and knows
|
|
14
|
+
* what character it is inside, which a per-line rule cannot.
|
|
14
15
|
*/
|
|
15
16
|
import { existsSync } from 'node:fs';
|
|
16
17
|
import { dirname, join } from 'node:path';
|
|
17
18
|
import { LINE_SUFFIX, PATH_SHAPED, REPO_ANCHORS, SESSION_WORKSPACE_DIRS, SYNTHETIC_SEGMENT } from './citation-rules.js';
|
|
19
|
+
import { commentSpans } from './comment-spans.js';
|
|
18
20
|
/** Repo-relative paths are POSIX even on a Windows host, or every lookup below
|
|
19
21
|
* compares a `src\a.ts` against the forward-slash keys and the answer is always "no". */
|
|
20
22
|
function toPosix(path) {
|
|
21
23
|
return path.replace(/\\/g, '/');
|
|
22
24
|
}
|
|
23
|
-
/**
|
|
24
|
-
* A `//` in a line of code is a trailing comment unless the text before it is
|
|
25
|
-
* inside a string literal or a URL scheme. The second clause matters because
|
|
26
|
-
* `"https://…"` is a line every repository writes, and reading it as a comment
|
|
27
|
-
* invents a line the author never meant.
|
|
28
|
-
*/
|
|
29
|
-
function trailingComment(raw) {
|
|
30
|
-
const at = raw.indexOf('//');
|
|
31
|
-
if (at <= 0)
|
|
32
|
-
return '';
|
|
33
|
-
const before = raw.slice(0, at);
|
|
34
|
-
if (before.endsWith(':'))
|
|
35
|
-
return '';
|
|
36
|
-
if ((before.match(/["']/g) ?? []).length % 2 !== 0)
|
|
37
|
-
return '';
|
|
38
|
-
return raw.slice(at);
|
|
39
|
-
}
|
|
40
25
|
/**
|
|
41
26
|
* The comment lines of a file: full-line comments, plus the trailing comment of a
|
|
42
27
|
* code line. Non-comment lines are omitted but their numbers survive, so a report
|
|
43
28
|
* can point at the code a comment is attached to.
|
|
29
|
+
*
|
|
30
|
+
* Derived from `commentSpans`, which reads the text as a stream. The previous version
|
|
31
|
+
* decided per line and was wrong in both directions at once: a `//` inside a template
|
|
32
|
+
* literal became a comment (and then a deletion that cut the literal open), while a
|
|
33
|
+
* block comment's interior line that does not start with `*` was missed.
|
|
44
34
|
*/
|
|
45
35
|
export function commentLines(source) {
|
|
46
36
|
const out = [];
|
|
47
|
-
source.split(/\r?\n/)
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
37
|
+
const rows = source.split(/\r?\n/);
|
|
38
|
+
for (const span of commentSpans(source)) {
|
|
39
|
+
for (let line = span.line; line <= span.endLine; line += 1) {
|
|
40
|
+
const row = rows[line - 1];
|
|
41
|
+
if (row === undefined)
|
|
42
|
+
continue;
|
|
43
|
+
// The first line of a block comment that opens mid-code keeps only its own tail,
|
|
44
|
+
// so a caller never reads the code before `/*` as part of the comment.
|
|
45
|
+
const from = line === span.line ? span.start - lineStart(source, line) : 0;
|
|
46
|
+
out.push({ line, text: row.slice(Math.max(0, from)) });
|
|
56
47
|
}
|
|
57
|
-
|
|
58
|
-
if (comment.length > 0) {
|
|
59
|
-
out.push({ line, text: comment });
|
|
60
|
-
}
|
|
61
|
-
});
|
|
48
|
+
}
|
|
62
49
|
return out;
|
|
63
50
|
}
|
|
51
|
+
/** The offset `source` has advanced by the start of 1-based `line`. */
|
|
52
|
+
function lineStart(source, line) {
|
|
53
|
+
let at = 0;
|
|
54
|
+
for (let n = 1; n < line; n += 1) {
|
|
55
|
+
const next = source.indexOf('\n', at);
|
|
56
|
+
if (next < 0)
|
|
57
|
+
return source.length;
|
|
58
|
+
at = next + 1;
|
|
59
|
+
}
|
|
60
|
+
return at;
|
|
61
|
+
}
|
|
64
62
|
/**
|
|
65
63
|
* The path-shaped backtick spans in a line, in order, with their bounds kept.
|
|
66
64
|
*
|
|
@@ -12,8 +12,6 @@
|
|
|
12
12
|
* current one, a reader took it as fact, and the fix was chased into
|
|
13
13
|
* `dist/` instead of the source.
|
|
14
14
|
* - `narrative` — the comment is about the work rather than the code: slice
|
|
15
|
-
* and rid identifiers, `AC-3`, "F2 of `rid-…`", "this used to claim", "the
|
|
16
|
-
* test named above was deleted". Legitimately valuable in a commit message
|
|
17
15
|
* or `.peaks/docs/backlog.md`; in a source file it is re-read by every
|
|
18
16
|
* later agent, at their token cost, and it rots silently the moment the
|
|
19
17
|
* history it summarises moves.
|
|
@@ -45,13 +43,41 @@ export type CommentFinding = {
|
|
|
45
43
|
*
|
|
46
44
|
* Order is significant and is the whole attribution: one line reports its FIRST
|
|
47
45
|
* match, so a specific marker must precede the general one that also fits it.
|
|
48
|
-
* `F2 of \`rid-…\`` is a finding reference, not a bare rid, and a list ordered
|
|
49
46
|
* the other way round would blame the wrong rule for every such line.
|
|
50
47
|
*/
|
|
51
48
|
export declare const NARRATIVE_MARKERS: ReadonlyArray<{
|
|
52
49
|
name: string;
|
|
53
50
|
pattern: RegExp;
|
|
54
51
|
}>;
|
|
52
|
+
/**
|
|
53
|
+
* Comments that are LOAD-BEARING: text some program parses as data, not prose it reads.
|
|
54
|
+
*
|
|
55
|
+
* These are exempt from BOTH kinds, because the prune acts on a finding of either kind and
|
|
56
|
+
* deleting any of them does not reduce debt — it removes an enforcement mechanism, or
|
|
57
|
+
* adds a finding to a gated row. Each shape names the reader that consumes it; a shape
|
|
58
|
+
* with no reader to point at is a guess, and guesses are what the 4.1.1 prune learned from
|
|
59
|
+
* `HARD_FLOOR_CATEGORIES` member in `src/services/code/mode-gate.ts`, which is the only
|
|
60
|
+
* thing backing this repo's one real layer-C promotion, and the gate-H backing check went
|
|
61
|
+
* red — `feedback-promotion-artifact.test.ts` AC5).
|
|
62
|
+
*
|
|
63
|
+
* - `promotion-evidence` — `src/services/feedback/promotion-source-comments.ts:79`
|
|
64
|
+
* (`citedMemories`) feeds `promotion-artifact-evidence.ts:214`, which decides whether a
|
|
65
|
+
* promoted rule is actually backed.
|
|
66
|
+
* - `grace-marker` — `scripts/lint/silent-warning-detector.mjs:149` subtracts a
|
|
67
|
+
* silent-warning finding for any line the offending node spans that carries
|
|
68
|
+
* `TODO(g2)`. Deleting the marker therefore RAISES `silentWarningCatchReturnNull` /
|
|
69
|
+
* `…EmptyCatch`, both of which may only go down.
|
|
70
|
+
* - `toolchain-directive` — `@ts-expect-error` and friends are read by the compiler (an
|
|
71
|
+
* unused one is itself an error) and `eslint-disable` by the lint leg; a paired disable
|
|
72
|
+
* like `src/services/compact-statusline/compact-statusline-cell-table.ts:72`+`:99`
|
|
73
|
+
* must move as a pair or the file starts reporting.
|
|
74
|
+
*/
|
|
75
|
+
export declare const LOAD_BEARING_SHAPES: ReadonlyArray<{
|
|
76
|
+
name: string;
|
|
77
|
+
pattern: RegExp;
|
|
78
|
+
}>;
|
|
79
|
+
/** Is this comment text consumed by a program? */
|
|
80
|
+
export declare function isLoadBearing(text: string): boolean;
|
|
55
81
|
export type CommentScanInput = {
|
|
56
82
|
/** Repo-relative path, e.g. `src/services/x/y.ts`. */
|
|
57
83
|
readonly file: string;
|
|
@@ -12,8 +12,6 @@
|
|
|
12
12
|
* current one, a reader took it as fact, and the fix was chased into
|
|
13
13
|
* `dist/` instead of the source.
|
|
14
14
|
* - `narrative` — the comment is about the work rather than the code: slice
|
|
15
|
-
* and rid identifiers, `AC-3`, "F2 of `rid-…`", "this used to claim", "the
|
|
16
|
-
* test named above was deleted". Legitimately valuable in a commit message
|
|
17
15
|
* or `.peaks/docs/backlog.md`; in a source file it is re-read by every
|
|
18
16
|
* later agent, at their token cost, and it rots silently the moment the
|
|
19
17
|
* history it summarises moves.
|
|
@@ -37,7 +35,6 @@ import { isCitationCandidate } from './citation-rules.js';
|
|
|
37
35
|
*
|
|
38
36
|
* Order is significant and is the whole attribution: one line reports its FIRST
|
|
39
37
|
* match, so a specific marker must precede the general one that also fits it.
|
|
40
|
-
* `F2 of \`rid-…\`` is a finding reference, not a bare rid, and a list ordered
|
|
41
38
|
* the other way round would blame the wrong rule for every such line.
|
|
42
39
|
*/
|
|
43
40
|
export const NARRATIVE_MARKERS = [
|
|
@@ -59,6 +56,41 @@ export const NARRATIVE_MARKERS = [
|
|
|
59
56
|
pattern: /\bthis (?:comment|header|paragraph|note) (?:says|claimed|documents|is )/i
|
|
60
57
|
}
|
|
61
58
|
];
|
|
59
|
+
/**
|
|
60
|
+
* Comments that are LOAD-BEARING: text some program parses as data, not prose it reads.
|
|
61
|
+
*
|
|
62
|
+
* These are exempt from BOTH kinds, because the prune acts on a finding of either kind and
|
|
63
|
+
* deleting any of them does not reduce debt — it removes an enforcement mechanism, or
|
|
64
|
+
* adds a finding to a gated row. Each shape names the reader that consumes it; a shape
|
|
65
|
+
* with no reader to point at is a guess, and guesses are what the 4.1.1 prune learned from
|
|
66
|
+
* `HARD_FLOOR_CATEGORIES` member in `src/services/code/mode-gate.ts`, which is the only
|
|
67
|
+
* thing backing this repo's one real layer-C promotion, and the gate-H backing check went
|
|
68
|
+
* red — `feedback-promotion-artifact.test.ts` AC5).
|
|
69
|
+
*
|
|
70
|
+
* - `promotion-evidence` — `src/services/feedback/promotion-source-comments.ts:79`
|
|
71
|
+
* (`citedMemories`) feeds `promotion-artifact-evidence.ts:214`, which decides whether a
|
|
72
|
+
* promoted rule is actually backed.
|
|
73
|
+
* - `grace-marker` — `scripts/lint/silent-warning-detector.mjs:149` subtracts a
|
|
74
|
+
* silent-warning finding for any line the offending node spans that carries
|
|
75
|
+
* `TODO(g2)`. Deleting the marker therefore RAISES `silentWarningCatchReturnNull` /
|
|
76
|
+
* `…EmptyCatch`, both of which may only go down.
|
|
77
|
+
* - `toolchain-directive` — `@ts-expect-error` and friends are read by the compiler (an
|
|
78
|
+
* unused one is itself an error) and `eslint-disable` by the lint leg; a paired disable
|
|
79
|
+
* like `src/services/compact-statusline/compact-statusline-cell-table.ts:72`+`:99`
|
|
80
|
+
* must move as a pair or the file starts reporting.
|
|
81
|
+
*/
|
|
82
|
+
export const LOAD_BEARING_SHAPES = [
|
|
83
|
+
{ name: 'promotion-evidence', pattern: /\.peaks\/memory\/[^\s`]+\.md/ },
|
|
84
|
+
{ name: 'grace-marker', pattern: /\bTODO\(g2\)/ },
|
|
85
|
+
{
|
|
86
|
+
name: 'toolchain-directive',
|
|
87
|
+
pattern: /(?:eslint-disable|prettier-ignore|@ts-[a-z-]+|@type\b|@vitest-slow|@covers\b)/
|
|
88
|
+
}
|
|
89
|
+
];
|
|
90
|
+
/** Is this comment text consumed by a program? */
|
|
91
|
+
export function isLoadBearing(text) {
|
|
92
|
+
return LOAD_BEARING_SHAPES.some((shape) => shape.pattern.test(text));
|
|
93
|
+
}
|
|
62
94
|
function deadReferenceFindings(entry, judge) {
|
|
63
95
|
const ctx = { file: judge.file, dirExists: judge.dirExists };
|
|
64
96
|
const out = [];
|
|
@@ -84,6 +116,11 @@ function deadReferenceFindings(entry, judge) {
|
|
|
84
116
|
* a reader could not already see.
|
|
85
117
|
*/
|
|
86
118
|
function classifyLine(entry, judge) {
|
|
119
|
+
// Before either kind: a load-bearing line is not debt under any reading, so it must not
|
|
120
|
+
// be reported as a dead reference either — the path it cites is evidence, not a claim
|
|
121
|
+
// about where a file lives.
|
|
122
|
+
if (isLoadBearing(entry.text))
|
|
123
|
+
return [];
|
|
87
124
|
const out = judge.kinds.has('dead-reference')
|
|
88
125
|
? deadReferenceFindings(entry, judge)
|
|
89
126
|
: [];
|
|
@@ -49,6 +49,30 @@ function removalWouldBreakTheComment(text) {
|
|
|
49
49
|
const closes = text.includes('*/');
|
|
50
50
|
return opens !== closes;
|
|
51
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Does this line end BEFORE its text does?
|
|
54
|
+
*
|
|
55
|
+
* Two structural signals: an ODD number of backticks (the inline-code span this line opens
|
|
56
|
+
* is closed on a line BELOW) and a trailing `-` that is not `--` (a token the line width
|
|
57
|
+
* wrapped in half). They mean the same thing — the construct this line belongs to continues
|
|
58
|
+
* under it — and a line-at-a-time prune cuts that construct in half.
|
|
59
|
+
*
|
|
60
|
+
* Two applies of this pruner did exactly that to the same kind of text: a
|
|
61
|
+
* `.peaks/memory` citation written across two comment lines, where the FIRST line was debt
|
|
62
|
+
* and the second was not. Each left the survivor reading like
|
|
63
|
+
* ` * visibility-issue.md; well below the stale threshold.` — a sentence with its front cut
|
|
64
|
+
* off, which is worse than the debt that was removed. And the citation is destroyed either
|
|
65
|
+
* way: `citedMemories` in `../feedback/promotion-source-comments.ts` matches a path in ONE
|
|
66
|
+
* run of `[A-Za-z0-9._-]`, so a path that needs two lines is invisible to it before the cut
|
|
67
|
+
* and gone after it. Refused rather than guessed, the way the block delimiter is: the
|
|
68
|
+
* worklist still shows the row, and a human decides where the line break goes.
|
|
69
|
+
*/
|
|
70
|
+
function continuesIntoTheNextLine(comment) {
|
|
71
|
+
const trimmed = comment.trimEnd();
|
|
72
|
+
if ((trimmed.match(/`/g) ?? []).length % 2 === 1)
|
|
73
|
+
return true;
|
|
74
|
+
return trimmed.endsWith('-') && !trimmed.endsWith('--');
|
|
75
|
+
}
|
|
52
76
|
function actionFor(finding, text, comment) {
|
|
53
77
|
return {
|
|
54
78
|
file: finding.file,
|
|
@@ -76,14 +100,34 @@ function skipFor(finding, reason) {
|
|
|
76
100
|
export function planPrune(options, findings) {
|
|
77
101
|
const actions = [];
|
|
78
102
|
const skips = [];
|
|
103
|
+
// One extractor run per FILE, keyed by path. `commentLines` is contextual now — it has
|
|
104
|
+
// not a comment at all — so asking it about a single line would skip every one of those
|
|
105
|
+
// findings. The old code could get away with it because the line-local heuristic agreed
|
|
106
|
+
// with itself by construction, which is not the same as being right.
|
|
107
|
+
const byFile = new Map();
|
|
108
|
+
const viewFor = (file) => {
|
|
109
|
+
const known = byFile.get(file);
|
|
110
|
+
if (known !== undefined)
|
|
111
|
+
return known;
|
|
112
|
+
const source = readFileSafe(options.projectRoot, file);
|
|
113
|
+
if (source === null)
|
|
114
|
+
return null;
|
|
115
|
+
const split = splitLines(source);
|
|
116
|
+
const comments = new Map();
|
|
117
|
+
for (const entry of commentLines(source))
|
|
118
|
+
comments.set(entry.line, entry.text);
|
|
119
|
+
const view = { lines: split.lines, comments };
|
|
120
|
+
byFile.set(file, view);
|
|
121
|
+
return view;
|
|
122
|
+
};
|
|
79
123
|
for (const finding of findings) {
|
|
80
|
-
const
|
|
81
|
-
if (
|
|
124
|
+
const view = viewFor(finding.file);
|
|
125
|
+
if (view === null) {
|
|
82
126
|
skips.push(skipFor(finding, 'file-not-readable'));
|
|
83
127
|
continue;
|
|
84
128
|
}
|
|
85
|
-
const text =
|
|
86
|
-
const comment =
|
|
129
|
+
const text = view.lines[finding.line - 1] ?? '';
|
|
130
|
+
const comment = view.comments.get(finding.line) ?? '';
|
|
87
131
|
if (comment.trim() !== finding.text) {
|
|
88
132
|
skips.push(skipFor(finding, 'line-moved-since-scan'));
|
|
89
133
|
continue;
|
|
@@ -92,6 +136,10 @@ export function planPrune(options, findings) {
|
|
|
92
136
|
skips.push(skipFor(finding, 'carries-a-block-delimiter'));
|
|
93
137
|
continue;
|
|
94
138
|
}
|
|
139
|
+
if (continuesIntoTheNextLine(comment)) {
|
|
140
|
+
skips.push(skipFor(finding, 'continues-into-the-next-line'));
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
95
143
|
actions.push(actionFor(finding, text, comment));
|
|
96
144
|
}
|
|
97
145
|
return { actions, skips };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** One comment in the file, in character offsets and in the lines it covers. */
|
|
2
|
+
export type CommentSpan = {
|
|
3
|
+
/** Index of the slash that opens it. */
|
|
4
|
+
start: number;
|
|
5
|
+
/** One past the comment's last character, its closing delimiter included. */
|
|
6
|
+
end: number;
|
|
7
|
+
/** 1-based line the comment opens on. */
|
|
8
|
+
line: number;
|
|
9
|
+
/** 1-based line the comment ends on — equal to `line` unless it is a block comment. */
|
|
10
|
+
endLine: number;
|
|
11
|
+
/** The comment's own text, opening marker included. */
|
|
12
|
+
text: string;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Every comment in `source`, in order.
|
|
16
|
+
*
|
|
17
|
+
* `text` is sliced from the original so a caller can cut at `start` and keep the code
|
|
18
|
+
* that was already there — which is the operation the pruner must get exactly right.
|
|
19
|
+
*/
|
|
20
|
+
export declare function commentSpans(source: string): CommentSpan[];
|
|
21
|
+
/**
|
|
22
|
+
* Does this code stop INSIDE something open?
|
|
23
|
+
*
|
|
24
|
+
* The question the comment-only proof had to learn to ask. `original.startsWith(kept)` is
|
|
25
|
+
* true of EVERY truncation, so it cannot tell a revealed comment from a string cut in
|
|
26
|
+
* half; a prefix that ends inside a quote, a template or a regex is a different program,
|
|
27
|
+
* whatever it starts with. This is what would have refused the write that left
|
|
28
|
+
* `snippet: \`` in `src/`.
|
|
29
|
+
*/
|
|
30
|
+
export declare function endsInsideLiteral(code: string): boolean;
|