peaks-loop 4.0.0-beta.8 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +955 -141
- package/README-en.md +26 -7
- package/README.md +75 -6
- package/agents/karpathy-reviewer.md +33 -0
- package/bin/peaks.js +1 -1
- package/dist/cli/cli-helpers.d.ts +68 -0
- package/dist/cli/cli-helpers.js +109 -0
- package/dist/cli/commands/_cli-error-envelope.d.ts +19 -0
- package/dist/cli/commands/_cli-error-envelope.js +50 -0
- package/dist/cli/commands/_register.d.ts +3 -0
- package/dist/cli/commands/_register.js +139 -0
- package/dist/cli/commands/_super.d.ts +10 -0
- package/dist/cli/commands/_super.js +97 -0
- package/dist/cli/commands/adapter-commands-s2a.d.ts +34 -0
- package/dist/cli/commands/adapter-commands-s2a.js +92 -0
- package/dist/cli/commands/adapter-commands.d.ts +30 -0
- package/dist/cli/commands/adapter-commands.js +35 -0
- package/dist/cli/commands/asset-commands.d.ts +45 -0
- package/dist/cli/commands/asset-commands.js +421 -0
- package/dist/cli/commands/audit-commands.d.ts +28 -0
- package/dist/cli/commands/audit-commands.js +437 -0
- package/dist/cli/commands/autonomous-swarm-commands.d.ts +12 -0
- package/dist/cli/commands/autonomous-swarm-commands.js +120 -0
- package/dist/cli/commands/bee-commands.d.ts +26 -0
- package/dist/cli/commands/bee-commands.js +169 -0
- package/dist/cli/commands/capability-commands.d.ts +16 -0
- package/dist/cli/commands/capability-commands.js +45 -0
- package/dist/cli/commands/capability-worker-config-sc-commands.d.ts +3 -0
- package/dist/cli/commands/capability-worker-config-sc-commands.js +8 -0
- package/dist/cli/commands/changeset-commands.d.ts +13 -0
- package/dist/cli/commands/changeset-commands.js +46 -0
- package/dist/cli/commands/code-commands.d.ts +90 -0
- package/dist/cli/commands/code-commands.js +118 -0
- package/dist/cli/commands/code-job-shape-commands.d.ts +9 -0
- package/dist/cli/commands/code-job-shape-commands.js +164 -0
- package/dist/cli/commands/code-mode-gate-commands.d.ts +9 -0
- package/dist/cli/commands/code-mode-gate-commands.js +223 -0
- package/dist/cli/commands/code-review-commands.d.ts +34 -0
- package/dist/cli/commands/code-review-commands.js +83 -0
- package/dist/cli/commands/code-run-command.d.ts +12 -0
- package/dist/cli/commands/code-run-command.js +68 -0
- package/dist/cli/commands/code-runtime-commands.d.ts +11 -0
- package/dist/cli/commands/code-runtime-commands.js +391 -0
- package/dist/cli/commands/codegraph-commands.d.ts +3 -0
- package/dist/cli/commands/codegraph-commands.js +99 -0
- package/dist/cli/commands/compact-command.d.ts +21 -0
- package/dist/cli/commands/compact-command.js +304 -0
- package/dist/cli/commands/complexity-commands.d.ts +9 -0
- package/dist/cli/commands/complexity-commands.js +34 -0
- package/dist/cli/commands/config-commands.d.ts +3 -0
- package/dist/cli/commands/config-commands.js +149 -0
- package/dist/cli/commands/container-commands.d.ts +28 -0
- package/dist/cli/commands/container-commands.js +221 -0
- package/dist/cli/commands/context-builder-commands.d.ts +11 -0
- package/dist/cli/commands/context-builder-commands.js +85 -0
- package/dist/cli/commands/context-commands.d.ts +21 -0
- package/dist/cli/commands/context-commands.js +255 -0
- package/dist/cli/commands/core/artifacts-command.d.ts +3 -0
- package/dist/cli/commands/core/artifacts-command.js +62 -0
- package/dist/cli/commands/core/binding-commands.d.ts +3 -0
- package/dist/cli/commands/core/binding-commands.js +58 -0
- package/dist/cli/commands/core/doctor-command.d.ts +11 -0
- package/dist/cli/commands/core/doctor-command.js +264 -0
- package/dist/cli/commands/core/memory-command.d.ts +3 -0
- package/dist/cli/commands/core/memory-command.js +98 -0
- package/dist/cli/commands/core/profile-command.d.ts +3 -0
- package/dist/cli/commands/core/profile-command.js +9 -0
- package/dist/cli/commands/core/proxy-command.d.ts +3 -0
- package/dist/cli/commands/core/proxy-command.js +26 -0
- package/dist/cli/commands/core/session-command.d.ts +3 -0
- package/dist/cli/commands/core/session-command.js +243 -0
- package/dist/cli/commands/core/skill-command.d.ts +3 -0
- package/dist/cli/commands/core/skill-command.js +303 -0
- package/dist/cli/commands/core/standards-command.d.ts +3 -0
- package/dist/cli/commands/core/standards-command.js +95 -0
- package/dist/cli/commands/core-artifact-commands.d.ts +15 -0
- package/dist/cli/commands/core-artifact-commands.js +31 -0
- package/dist/cli/commands/cron-commands.d.ts +57 -0
- package/dist/cli/commands/cron-commands.js +257 -0
- package/dist/cli/commands/cron-scheduler-commands.d.ts +47 -0
- package/dist/cli/commands/cron-scheduler-commands.js +284 -0
- package/dist/cli/commands/dashboard-commands.d.ts +4 -0
- package/dist/cli/commands/dashboard-commands.js +10 -0
- package/dist/cli/commands/dashboard-long-run.d.ts +25 -0
- package/dist/cli/commands/dashboard-long-run.js +122 -0
- package/dist/cli/commands/dashboard-summary.d.ts +12 -0
- package/dist/cli/commands/dashboard-summary.js +58 -0
- package/dist/cli/commands/dispatch-commands.d.ts +3 -0
- package/dist/cli/commands/dispatch-commands.js +715 -0
- package/dist/cli/commands/dispatch-from-dag.d.ts +3 -0
- package/dist/cli/commands/dispatch-from-dag.js +254 -0
- package/dist/cli/commands/doc-commands.d.ts +11 -0
- package/dist/cli/commands/doc-commands.js +65 -0
- package/dist/cli/commands/ecc-commands.d.ts +30 -0
- package/dist/cli/commands/ecc-commands.js +119 -0
- package/dist/cli/commands/evolution-commands.d.ts +27 -0
- package/dist/cli/commands/evolution-commands.js +393 -0
- package/dist/cli/commands/feedback-commands.d.ts +18 -0
- package/dist/cli/commands/feedback-commands.js +145 -0
- package/dist/cli/commands/final-review-commands.d.ts +31 -0
- package/dist/cli/commands/final-review-commands.js +161 -0
- package/dist/cli/commands/fixture-commands.d.ts +32 -0
- package/dist/cli/commands/fixture-commands.js +91 -0
- package/dist/cli/commands/fork-commands.d.ts +16 -0
- package/dist/cli/commands/fork-commands.js +163 -0
- package/dist/cli/commands/gate-commands.d.ts +3 -0
- package/dist/cli/commands/gate-commands.js +239 -0
- package/dist/cli/commands/governance-classify-contract-commands.d.ts +21 -0
- package/dist/cli/commands/governance-classify-contract-commands.js +273 -0
- package/dist/cli/commands/heartbeat-commands.d.ts +3 -0
- package/dist/cli/commands/heartbeat-commands.js +206 -0
- package/dist/cli/commands/heartbeat-watch-command.d.ts +31 -0
- package/dist/cli/commands/heartbeat-watch-command.js +146 -0
- package/dist/cli/commands/hook-handle.d.ts +17 -0
- package/dist/cli/commands/hook-handle.js +157 -0
- package/dist/cli/commands/hooks-commands.d.ts +3 -0
- package/dist/cli/commands/hooks-commands.js +272 -0
- package/dist/cli/commands/ide-commands.d.ts +25 -0
- package/dist/cli/commands/ide-commands.js +42 -0
- package/dist/cli/commands/impact-commands.d.ts +15 -0
- package/dist/cli/commands/impact-commands.js +62 -0
- package/dist/cli/commands/job-commands.d.ts +3 -0
- package/dist/cli/commands/job-commands.js +322 -0
- package/dist/cli/commands/lease-metrics-commands.d.ts +67 -0
- package/dist/cli/commands/lease-metrics-commands.js +231 -0
- package/dist/cli/commands/lease-stats-commands.d.ts +65 -0
- package/dist/cli/commands/lease-stats-commands.js +107 -0
- package/dist/cli/commands/legacy-commands.d.ts +11 -0
- package/dist/cli/commands/legacy-commands.js +32 -0
- package/dist/cli/commands/log-commands.d.ts +17 -0
- package/dist/cli/commands/log-commands.js +64 -0
- package/dist/cli/commands/loop-commands.d.ts +27 -0
- package/dist/cli/commands/loop-commands.js +262 -0
- package/dist/cli/commands/loop-eval-commands.d.ts +20 -0
- package/dist/cli/commands/loop-eval-commands.js +526 -0
- package/dist/cli/commands/memory-commands.d.ts +23 -0
- package/dist/cli/commands/memory-commands.js +129 -0
- package/dist/cli/commands/migrate-1-4-1-command.d.ts +11 -0
- package/dist/cli/commands/migrate-1-4-1-command.js +34 -0
- package/dist/cli/commands/migrate-v2-10-to-v2-11-command.d.ts +20 -0
- package/dist/cli/commands/migrate-v2-10-to-v2-11-command.js +52 -0
- package/dist/cli/commands/mut-commands.d.ts +20 -0
- package/dist/cli/commands/mut-commands.js +235 -0
- package/dist/cli/commands/observability-commands.d.ts +22 -0
- package/dist/cli/commands/observability-commands.js +201 -0
- package/dist/cli/commands/openspec-commands.d.ts +3 -0
- package/dist/cli/commands/openspec-commands.js +298 -0
- package/dist/cli/commands/perf-audit-commands.d.ts +22 -0
- package/dist/cli/commands/perf-audit-commands.js +132 -0
- package/dist/cli/commands/perf-commands.d.ts +3 -0
- package/dist/cli/commands/perf-commands.js +41 -0
- package/dist/cli/commands/playwright-commands.d.ts +95 -0
- package/dist/cli/commands/playwright-commands.js +432 -0
- package/dist/cli/commands/polyrepo-commands.d.ts +37 -0
- package/dist/cli/commands/polyrepo-commands.js +155 -0
- package/dist/cli/commands/prd-blocks-commands.d.ts +18 -0
- package/dist/cli/commands/prd-blocks-commands.js +50 -0
- package/dist/cli/commands/prd-commands.d.ts +18 -0
- package/dist/cli/commands/prd-commands.js +143 -0
- package/dist/cli/commands/preferences-commands.d.ts +2 -0
- package/dist/cli/commands/preferences-commands.js +217 -0
- package/dist/cli/commands/project-commands.d.ts +3 -0
- package/dist/cli/commands/project-commands.js +253 -0
- package/dist/cli/commands/qa-business-review-commands.d.ts +17 -0
- package/dist/cli/commands/qa-business-review-commands.js +148 -0
- package/dist/cli/commands/qa-commands.d.ts +94 -0
- package/dist/cli/commands/qa-commands.js +307 -0
- package/dist/cli/commands/release-commands.d.ts +39 -0
- package/dist/cli/commands/release-commands.js +323 -0
- package/dist/cli/commands/request-commands.d.ts +3 -0
- package/dist/cli/commands/request-commands.js +548 -0
- package/dist/cli/commands/retrospective-commands.d.ts +12 -0
- package/dist/cli/commands/retrospective-commands.js +175 -0
- package/dist/cli/commands/reviewer-commands.d.ts +14 -0
- package/dist/cli/commands/reviewer-commands.js +64 -0
- package/dist/cli/commands/role-commands.d.ts +13 -0
- package/dist/cli/commands/role-commands.js +85 -0
- package/dist/cli/commands/runtime-commands-helpers.d.ts +7 -0
- package/dist/cli/commands/runtime-commands-helpers.js +24 -0
- package/dist/cli/commands/runtime-commands.d.ts +52 -0
- package/dist/cli/commands/runtime-commands.js +149 -0
- package/dist/cli/commands/sc-commands.d.ts +3 -0
- package/dist/cli/commands/sc-commands.js +47 -0
- package/dist/cli/commands/scan-commands.d.ts +3 -0
- package/dist/cli/commands/scan-commands.js +445 -0
- package/dist/cli/commands/security-audit-commands.d.ts +23 -0
- package/dist/cli/commands/security-audit-commands.js +132 -0
- package/dist/cli/commands/sediment-commands.d.ts +80 -0
- package/dist/cli/commands/sediment-commands.js +658 -0
- package/dist/cli/commands/session-24h-mode.d.ts +26 -0
- package/dist/cli/commands/session-24h-mode.js +196 -0
- package/dist/cli/commands/session-checkpoint-command.d.ts +10 -0
- package/dist/cli/commands/session-checkpoint-command.js +100 -0
- package/dist/cli/commands/session-migrate-skill-name.d.ts +17 -0
- package/dist/cli/commands/session-migrate-skill-name.js +41 -0
- package/dist/cli/commands/session-resume-command.d.ts +11 -0
- package/dist/cli/commands/session-resume-command.js +83 -0
- package/dist/cli/commands/share-commands.d.ts +36 -0
- package/dist/cli/commands/share-commands.js +415 -0
- package/dist/cli/commands/skill-conformance-commands.d.ts +9 -0
- package/dist/cli/commands/skill-conformance-commands.js +39 -0
- package/dist/cli/commands/skill-loop-engineering-readiness-commands.d.ts +67 -0
- package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +173 -0
- package/dist/cli/commands/skill-search-commands.d.ts +25 -0
- package/dist/cli/commands/skill-search-commands.js +71 -0
- package/dist/cli/commands/skill-visibility.d.ts +8 -0
- package/dist/cli/commands/skill-visibility.js +63 -0
- package/dist/cli/commands/slice-commands.d.ts +24 -0
- package/dist/cli/commands/slice-commands.js +492 -0
- package/dist/cli/commands/slice-integrate-commands.d.ts +11 -0
- package/dist/cli/commands/slice-integrate-commands.js +74 -0
- package/dist/cli/commands/slice-review-commands.d.ts +23 -0
- package/dist/cli/commands/slice-review-commands.js +162 -0
- package/dist/cli/commands/smoke-commands.d.ts +21 -0
- package/dist/cli/commands/smoke-commands.js +203 -0
- package/dist/cli/commands/sop-commands.d.ts +3 -0
- package/dist/cli/commands/sop-commands.js +215 -0
- package/dist/cli/commands/spill-demo-command.d.ts +7 -0
- package/dist/cli/commands/spill-demo-command.js +29 -0
- package/dist/cli/commands/statusline-commands.d.ts +15 -0
- package/dist/cli/commands/statusline-commands.js +231 -0
- package/dist/cli/commands/sub-agent-commands.d.ts +22 -0
- package/dist/cli/commands/sub-agent-commands.js +20 -0
- package/dist/cli/commands/sub-agent-dispatch-guard.d.ts +55 -0
- package/dist/cli/commands/sub-agent-dispatch-guard.js +57 -0
- package/dist/cli/commands/sub-agent-shared.d.ts +109 -0
- package/dist/cli/commands/sub-agent-shared.js +90 -0
- package/dist/cli/commands/swarm-commands.d.ts +13 -0
- package/dist/cli/commands/swarm-commands.js +77 -0
- package/dist/cli/commands/tech-commands.d.ts +64 -0
- package/dist/cli/commands/tech-commands.js +195 -0
- package/dist/cli/commands/test-commands.d.ts +47 -0
- package/dist/cli/commands/test-commands.js +204 -0
- package/dist/cli/commands/understand-commands.d.ts +3 -0
- package/dist/cli/commands/understand-commands.js +148 -0
- package/dist/cli/commands/upgrade-commands.d.ts +25 -0
- package/dist/cli/commands/upgrade-commands.js +154 -0
- package/dist/cli/commands/user-touchpoint-commands.d.ts +18 -0
- package/dist/cli/commands/user-touchpoint-commands.js +78 -0
- package/dist/cli/commands/verdict-aggregate-command.d.ts +14 -0
- package/dist/cli/commands/verdict-aggregate-command.js +106 -0
- package/dist/cli/commands/vm-commands.d.ts +31 -0
- package/dist/cli/commands/vm-commands.js +274 -0
- package/dist/cli/commands/workflow-commands.d.ts +3 -0
- package/dist/cli/commands/workflow-commands.js +567 -0
- package/dist/cli/commands/workflow-plan-commands.d.ts +39 -0
- package/dist/cli/commands/workflow-plan-commands.js +163 -0
- package/dist/cli/commands/workspace/clean-command.d.ts +14 -0
- package/dist/cli/commands/workspace/clean-command.js +49 -0
- package/dist/cli/commands/workspace/helpers.d.ts +28 -0
- package/dist/cli/commands/workspace/helpers.js +87 -0
- package/dist/cli/commands/workspace/init-command.d.ts +139 -0
- package/dist/cli/commands/workspace/init-command.js +505 -0
- package/dist/cli/commands/workspace/migrate-command.d.ts +11 -0
- package/dist/cli/commands/workspace/migrate-command.js +91 -0
- package/dist/cli/commands/workspace/reconcile-command.d.ts +14 -0
- package/dist/cli/commands/workspace/reconcile-command.js +103 -0
- package/dist/cli/commands/workspace-commands.d.ts +18 -0
- package/dist/cli/commands/workspace-commands.js +50 -0
- package/dist/cli/commands/worktree-auth-commands.d.ts +29 -0
- package/dist/cli/commands/worktree-auth-commands.js +652 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +75 -0
- package/dist/cli/program.d.ts +5 -0
- package/dist/cli/program.js +213 -0
- package/dist/hooks/pre-tool-use-sub-agent.d.ts +28 -0
- package/dist/hooks/pre-tool-use-sub-agent.js +105 -0
- package/dist/lib/render/message-renderer.d.ts +20 -0
- package/dist/lib/render/message-renderer.js +80 -0
- package/dist/services/24h-mode/decider.d.ts +103 -0
- package/dist/services/24h-mode/decider.js +144 -0
- package/dist/services/24h-mode/index.d.ts +12 -0
- package/dist/services/24h-mode/index.js +12 -0
- package/dist/services/24h-mode/state.d.ts +48 -0
- package/dist/services/24h-mode/state.js +51 -0
- package/dist/services/24h-mode/store.d.ts +27 -0
- package/dist/services/24h-mode/store.js +119 -0
- package/dist/services/adapter/adapter-registry.d.ts +48 -0
- package/dist/services/adapter/adapter-registry.js +186 -0
- package/dist/services/adapter/adapter.d.ts +27 -0
- package/dist/services/adapter/adapter.js +5 -0
- package/dist/services/adapter/auto-adapter.d.ts +11 -0
- package/dist/services/adapter/auto-adapter.js +15 -0
- package/dist/services/adapter/claude-adapter.d.ts +14 -0
- package/dist/services/adapter/claude-adapter.js +40 -0
- package/dist/services/adapter/codex-adapter.d.ts +14 -0
- package/dist/services/adapter/codex-adapter.js +14 -0
- package/dist/services/adapter/copilot-adapter.d.ts +14 -0
- package/dist/services/adapter/copilot-adapter.js +14 -0
- package/dist/services/artifacts/artifact-lint-service.d.ts +23 -0
- package/dist/services/artifacts/artifact-lint-service.js +99 -0
- package/dist/services/artifacts/artifact-prerequisites.d.ts +78 -0
- package/dist/services/artifacts/artifact-prerequisites.js +491 -0
- package/dist/services/artifacts/artifact-service.d.ts +43 -0
- package/dist/services/artifacts/artifact-service.js +98 -0
- package/dist/services/artifacts/artifact-templates.d.ts +30 -0
- package/dist/services/artifacts/artifact-templates.js +302 -0
- package/dist/services/artifacts/repair-cycle-service.d.ts +23 -0
- package/dist/services/artifacts/repair-cycle-service.js +52 -0
- package/dist/services/artifacts/request-artifact-service.d.ts +116 -0
- package/dist/services/artifacts/request-artifact-service.js +451 -0
- package/dist/services/artifacts/request-artifact-state-helpers.d.ts +51 -0
- package/dist/services/artifacts/request-artifact-state-helpers.js +114 -0
- package/dist/services/artifacts/workspace-service.d.ts +34 -0
- package/dist/services/artifacts/workspace-service.js +272 -0
- package/dist/services/audit/artifact-writer.d.ts +93 -0
- package/dist/services/audit/artifact-writer.js +303 -0
- package/dist/services/audit/audit-goal-service.d.ts +35 -0
- package/dist/services/audit/audit-goal-service.js +75 -0
- package/dist/services/audit/audit-goal-types.d.ts +40 -0
- package/dist/services/audit/audit-goal-types.js +15 -0
- package/dist/services/audit/backing-detector.d.ts +24 -0
- package/dist/services/audit/backing-detector.js +59 -0
- package/dist/services/audit/classifier.d.ts +38 -0
- package/dist/services/audit/classifier.js +134 -0
- package/dist/services/audit/decision-writer.d.ts +76 -0
- package/dist/services/audit/decision-writer.js +217 -0
- package/dist/services/audit/enforcers/active-skill-resolver.d.ts +29 -0
- package/dist/services/audit/enforcers/active-skill-resolver.js +71 -0
- package/dist/services/audit/enforcers/code-ban.d.ts +23 -0
- package/dist/services/audit/enforcers/code-ban.js +27 -0
- package/dist/services/audit/enforcers/design-draft-confirm.d.ts +24 -0
- package/dist/services/audit/enforcers/design-draft-confirm.js +58 -0
- package/dist/services/audit/enforcers/lint-audit-regression.d.ts +21 -0
- package/dist/services/audit/enforcers/lint-audit-regression.js +86 -0
- package/dist/services/audit/enforcers/lint-bee-runtime-contract.d.ts +25 -0
- package/dist/services/audit/enforcers/lint-bee-runtime-contract.js +91 -0
- package/dist/services/audit/enforcers/lint-catalog-governance.d.ts +32 -0
- package/dist/services/audit/enforcers/lint-catalog-governance.js +48 -0
- package/dist/services/audit/enforcers/lint-cli-back.d.ts +16 -0
- package/dist/services/audit/enforcers/lint-cli-back.js +35 -0
- package/dist/services/audit/enforcers/lint-output-style.d.ts +11 -0
- package/dist/services/audit/enforcers/lint-output-style.js +94 -0
- package/dist/services/audit/enforcers/lint-peaks-code-runtime.d.ts +16 -0
- package/dist/services/audit/enforcers/lint-peaks-code-runtime.js +31 -0
- package/dist/services/audit/enforcers/lint-peaks-skill-runtime.d.ts +23 -0
- package/dist/services/audit/enforcers/lint-peaks-skill-runtime.js +59 -0
- package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.d.ts +28 -0
- package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.js +86 -0
- package/dist/services/audit/enforcers/lint-prd-artifact-handoff.d.ts +16 -0
- package/dist/services/audit/enforcers/lint-prd-artifact-handoff.js +41 -0
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.d.ts +27 -0
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.js +47 -0
- package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.d.ts +19 -0
- package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.js +47 -0
- package/dist/services/audit/enforcers/lint-rd-handoff-coverage.d.ts +18 -0
- package/dist/services/audit/enforcers/lint-rd-handoff-coverage.js +70 -0
- package/dist/services/audit/enforcers/lint-reference-integrity.d.ts +6 -0
- package/dist/services/audit/enforcers/lint-reference-integrity.js +83 -0
- package/dist/services/audit/enforcers/lint-reference-shape.d.ts +30 -0
- package/dist/services/audit/enforcers/lint-reference-shape.js +272 -0
- package/dist/services/audit/enforcers/lint-skill-presence-mandatory.d.ts +25 -0
- package/dist/services/audit/enforcers/lint-skill-presence-mandatory.js +53 -0
- package/dist/services/audit/enforcers/lint-style.d.ts +49 -0
- package/dist/services/audit/enforcers/lint-style.js +173 -0
- package/dist/services/audit/enforcers/lint-workflow-shape.d.ts +4 -0
- package/dist/services/audit/enforcers/lint-workflow-shape.js +100 -0
- package/dist/services/audit/enforcers/login-gate.d.ts +23 -0
- package/dist/services/audit/enforcers/login-gate.js +40 -0
- package/dist/services/audit/enforcers/mock-placement.d.ts +25 -0
- package/dist/services/audit/enforcers/mock-placement.js +48 -0
- package/dist/services/audit/enforcers/no-root-pollution.d.ts +21 -0
- package/dist/services/audit/enforcers/no-root-pollution.js +56 -0
- package/dist/services/audit/enforcers/pre-rd-scan.d.ts +22 -0
- package/dist/services/audit/enforcers/pre-rd-scan.js +23 -0
- package/dist/services/audit/enforcers/prototype-fidelity.d.ts +25 -0
- package/dist/services/audit/enforcers/prototype-fidelity.js +75 -0
- package/dist/services/audit/enforcers/resume-detection.d.ts +21 -0
- package/dist/services/audit/enforcers/resume-detection.js +52 -0
- package/dist/services/audit/enforcers/sub-agent-sid.d.ts +25 -0
- package/dist/services/audit/enforcers/sub-agent-sid.js +63 -0
- package/dist/services/audit/prose-ratio-calculator.d.ts +45 -0
- package/dist/services/audit/prose-ratio-calculator.js +52 -0
- package/dist/services/audit/red-line-catalog-p2-a.d.ts +15 -0
- package/dist/services/audit/red-line-catalog-p2-a.js +458 -0
- package/dist/services/audit/red-line-catalog-p2-b.d.ts +19 -0
- package/dist/services/audit/red-line-catalog-p2-b.js +225 -0
- package/dist/services/audit/red-line-catalog.d.ts +51 -0
- package/dist/services/audit/red-line-catalog.js +195 -0
- package/dist/services/audit/red-lines-service.d.ts +23 -0
- package/dist/services/audit/red-lines-service.js +464 -0
- package/dist/services/audit/scanners/openspec-scanner.d.ts +15 -0
- package/dist/services/audit/scanners/openspec-scanner.js +55 -0
- package/dist/services/audit/scanners/rules-tree-scanner.d.ts +16 -0
- package/dist/services/audit/scanners/rules-tree-scanner.js +56 -0
- package/dist/services/audit/scanners/skills-tree-scanner.d.ts +17 -0
- package/dist/services/audit/scanners/skills-tree-scanner.js +68 -0
- package/dist/services/audit/static-service.d.ts +67 -0
- package/dist/services/audit/static-service.js +51 -0
- package/dist/services/audit/types.d.ts +86 -0
- package/dist/services/audit/types.js +13 -0
- package/dist/services/audit-independent/index.d.ts +2 -0
- package/dist/services/audit-independent/index.js +2 -0
- package/dist/services/audit-independent/perf-audit-service.d.ts +151 -0
- package/dist/services/audit-independent/perf-audit-service.js +316 -0
- package/dist/services/audit-independent/security-audit-service.d.ts +155 -0
- package/dist/services/audit-independent/security-audit-service.js +316 -0
- package/dist/services/autonomous-swarm/autonomous-swarm-service.d.ts +127 -0
- package/dist/services/autonomous-swarm/autonomous-swarm-service.js +446 -0
- package/dist/services/changeset/changeset-check-service.d.ts +22 -0
- package/dist/services/changeset/changeset-check-service.js +47 -0
- package/dist/services/classify/classify-service.d.ts +42 -0
- package/dist/services/classify/classify-service.js +122 -0
- package/dist/services/classify/classify-types.d.ts +79 -0
- package/dist/services/classify/classify-types.js +90 -0
- package/dist/services/code/auto-compact-modes.d.ts +30 -0
- package/dist/services/code/auto-compact-modes.js +38 -0
- package/dist/services/code/auto-compact-orchestrator.d.ts +136 -0
- package/dist/services/code/auto-compact-orchestrator.js +423 -0
- package/dist/services/code/batch-heartbeat-poller.d.ts +51 -0
- package/dist/services/code/batch-heartbeat-poller.js +88 -0
- package/dist/services/code/dag-orchestrator.d.ts +157 -0
- package/dist/services/code/dag-orchestrator.js +409 -0
- package/dist/services/code/emit-handoff.d.ts +49 -0
- package/dist/services/code/emit-handoff.js +79 -0
- package/dist/services/code/job-shape-decision.d.ts +71 -0
- package/dist/services/code/job-shape-decision.js +151 -0
- package/dist/services/code/mode-gate.d.ts +163 -0
- package/dist/services/code/mode-gate.js +212 -0
- package/dist/services/code/post-compact-detector.d.ts +61 -0
- package/dist/services/code/post-compact-detector.js +240 -0
- package/dist/services/code/status-line-renderer.d.ts +36 -0
- package/dist/services/code/status-line-renderer.js +73 -0
- package/dist/services/code/step-08-gate.d.ts +90 -0
- package/dist/services/code/step-08-gate.js +136 -0
- package/dist/services/code/user-touchpoint-classifier.d.ts +44 -0
- package/dist/services/code/user-touchpoint-classifier.js +145 -0
- package/dist/services/code-review/ecc-bridge.d.ts +148 -0
- package/dist/services/code-review/ecc-bridge.js +242 -0
- package/dist/services/code-review/ocr-service.d.ts +129 -0
- package/dist/services/code-review/ocr-service.js +372 -0
- package/dist/services/codegraph/codegraph-process-runner.d.ts +2 -0
- package/dist/services/codegraph/codegraph-process-runner.js +93 -0
- package/dist/services/codegraph/codegraph-service.d.ts +43 -0
- package/dist/services/codegraph/codegraph-service.js +160 -0
- package/dist/services/compact/decision-tables.d.ts +66 -0
- package/dist/services/compact/decision-tables.js +127 -0
- package/dist/services/compact/request-transition-hook.d.ts +20 -0
- package/dist/services/compact/request-transition-hook.js +110 -0
- package/dist/services/compact/suggest-service.d.ts +74 -0
- package/dist/services/compact/suggest-service.js +203 -0
- package/dist/services/compact-history/compact-history-service.d.ts +41 -0
- package/dist/services/compact-history/compact-history-service.js +62 -0
- package/dist/services/compact-statusline/compact-statusline-service.d.ts +16 -0
- package/dist/services/compact-statusline/compact-statusline-service.js +83 -0
- package/dist/services/complexity/complexity-estimator.d.ts +34 -0
- package/dist/services/complexity/complexity-estimator.js +64 -0
- package/dist/services/config/config-migration.d.ts +45 -0
- package/dist/services/config/config-migration.js +154 -0
- package/dist/services/config/config-restore.d.ts +10 -0
- package/dist/services/config/config-restore.js +47 -0
- package/dist/services/config/config-rollback.d.ts +13 -0
- package/dist/services/config/config-rollback.js +26 -0
- package/dist/services/config/config-safety.d.ts +40 -0
- package/dist/services/config/config-safety.js +359 -0
- package/dist/services/config/config-service.d.ts +58 -0
- package/dist/services/config/config-service.js +745 -0
- package/dist/services/config/config-types.d.ts +117 -0
- package/dist/services/config/config-types.js +18 -0
- package/dist/services/config/model-routing.d.ts +66 -0
- package/dist/services/config/model-routing.js +105 -0
- package/dist/services/config/proxy-service.d.ts +21 -0
- package/dist/services/config/proxy-service.js +44 -0
- package/dist/services/config/sidecar-store.d.ts +25 -0
- package/dist/services/config/sidecar-store.js +61 -0
- package/dist/services/config/workspace-state-service.d.ts +30 -0
- package/dist/services/config/workspace-state-service.js +142 -0
- package/dist/services/container/container-lease.d.ts +67 -0
- package/dist/services/container/container-lease.js +135 -0
- package/dist/services/context/artifact-meta.d.ts +72 -0
- package/dist/services/context/artifact-meta.js +105 -0
- package/dist/services/context/auto-compact-dispatcher.d.ts +72 -0
- package/dist/services/context/auto-compact-dispatcher.js +170 -0
- package/dist/services/context/auto-compact-reader.d.ts +51 -0
- package/dist/services/context/auto-compact-reader.js +164 -0
- package/dist/services/context/auto-compact-types.d.ts +168 -0
- package/dist/services/context/auto-compact-types.js +43 -0
- package/dist/services/context/build-dispatch-system-prompt.d.ts +75 -0
- package/dist/services/context/build-dispatch-system-prompt.js +117 -0
- package/dist/services/context/collector.d.ts +24 -0
- package/dist/services/context/collector.js +133 -0
- package/dist/services/context/context-builder.d.ts +30 -0
- package/dist/services/context/context-builder.js +78 -0
- package/dist/services/context/context-guard.d.ts +49 -0
- package/dist/services/context/context-guard.js +91 -0
- package/dist/services/context/context-schema.d.ts +415 -0
- package/dist/services/context/context-schema.js +73 -0
- package/dist/services/context/doc-retriever.d.ts +26 -0
- package/dist/services/context/doc-retriever.js +51 -0
- package/dist/services/context/headroom-client.d.ts +34 -0
- package/dist/services/context/headroom-client.js +117 -0
- package/dist/services/context/headroom-fetcher.d.ts +6 -0
- package/dist/services/context/headroom-fetcher.js +28 -0
- package/dist/services/context/headroom-prefs.d.ts +46 -0
- package/dist/services/context/headroom-prefs.js +34 -0
- package/dist/services/context/ide-detect.d.ts +4 -0
- package/dist/services/context/ide-detect.js +24 -0
- package/dist/services/context/index.d.ts +7 -0
- package/dist/services/context/index.js +6 -0
- package/dist/services/context/main-session-monitor.d.ts +86 -0
- package/dist/services/context/main-session-monitor.js +119 -0
- package/dist/services/context/memory-index-reader.d.ts +8 -0
- package/dist/services/context/memory-index-reader.js +57 -0
- package/dist/services/context/memory-lru-cache.d.ts +12 -0
- package/dist/services/context/memory-lru-cache.js +60 -0
- package/dist/services/context/memory-preflight-config.d.ts +19 -0
- package/dist/services/context/memory-preflight-config.js +25 -0
- package/dist/services/context/memory-preflight-service.d.ts +19 -0
- package/dist/services/context/memory-preflight-service.js +120 -0
- package/dist/services/context/renderer.d.ts +20 -0
- package/dist/services/context/renderer.js +30 -0
- package/dist/services/context/spillover-store.d.ts +23 -0
- package/dist/services/context/spillover-store.js +155 -0
- package/dist/services/context/spillover-types.d.ts +18 -0
- package/dist/services/context/spillover-types.js +1 -0
- package/dist/services/context/threshold.d.ts +35 -0
- package/dist/services/context/threshold.js +76 -0
- package/dist/services/context/tokenizer.d.ts +12 -0
- package/dist/services/context/tokenizer.js +43 -0
- package/dist/services/context/types.d.ts +93 -0
- package/dist/services/context/types.js +9 -0
- package/dist/services/crystallization/crystallization-service.d.ts +256 -0
- package/dist/services/crystallization/crystallization-service.js +391 -0
- package/dist/services/crystallization/crystallization-store.d.ts +75 -0
- package/dist/services/crystallization/crystallization-store.js +193 -0
- package/dist/services/crystallization/crystallization-types.d.ts +313 -0
- package/dist/services/crystallization/crystallization-types.js +299 -0
- package/dist/services/crystallization/evidence-brief-builder.d.ts +237 -0
- package/dist/services/crystallization/evidence-brief-builder.js +240 -0
- package/dist/services/crystallization/index.d.ts +13 -0
- package/dist/services/crystallization/index.js +13 -0
- package/dist/services/dashboard/project-dashboard-service.d.ts +91 -0
- package/dist/services/dashboard/project-dashboard-service.js +147 -0
- package/dist/services/dispatch/await-batch.d.ts +70 -0
- package/dist/services/dispatch/await-batch.js +272 -0
- package/dist/services/dispatch/batch-counter.d.ts +27 -0
- package/dist/services/dispatch/batch-counter.js +102 -0
- package/dist/services/dispatch/contract-store.d.ts +63 -0
- package/dist/services/dispatch/contract-store.js +157 -0
- package/dist/services/dispatch/dispatch-record-writer.d.ts +260 -0
- package/dist/services/dispatch/dispatch-record-writer.js +690 -0
- package/dist/services/dispatch/heartbeat-truncator.d.ts +26 -0
- package/dist/services/dispatch/heartbeat-truncator.js +13 -0
- package/dist/services/dispatch/leak-detector.d.ts +11 -0
- package/dist/services/dispatch/leak-detector.js +72 -0
- package/dist/services/dispatch/slice-dag.d.ts +127 -0
- package/dist/services/dispatch/slice-dag.js +244 -0
- package/dist/services/dispatch/stage-enum.d.ts +27 -0
- package/dist/services/dispatch/stage-enum.js +48 -0
- package/dist/services/dispatch/startup-timeout.d.ts +86 -0
- package/dist/services/dispatch/startup-timeout.js +97 -0
- package/dist/services/dispatch/sub-agent-dispatcher.d.ts +239 -0
- package/dist/services/dispatch/sub-agent-dispatcher.js +333 -0
- package/dist/services/dispatch/test-tool-detection.d.ts +60 -0
- package/dist/services/dispatch/test-tool-detection.js +126 -0
- package/dist/services/doc/doc-generator.d.ts +38 -0
- package/dist/services/doc/doc-generator.js +122 -0
- package/dist/services/doctor/doctor-service/checks/check-id-schema.d.ts +18 -0
- package/dist/services/doctor/doctor-service/checks/check-id-schema.js +64 -0
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.d.ts +14 -0
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +69 -0
- package/dist/services/doctor/doctor-service/checks/dist-source-version.d.ts +32 -0
- package/dist/services/doctor/doctor-service/checks/dist-source-version.js +110 -0
- package/dist/services/doctor/doctor-service/checks/gateguard-conflict.d.ts +24 -0
- package/dist/services/doctor/doctor-service/checks/gateguard-conflict.js +164 -0
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.d.ts +16 -0
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +57 -0
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.d.ts +19 -0
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +66 -0
- package/dist/services/doctor/doctor-service/checks/schema-validity.d.ts +10 -0
- package/dist/services/doctor/doctor-service/checks/schema-validity.js +33 -0
- package/dist/services/doctor/doctor-service/checks/skill-apply-note.d.ts +20 -0
- package/dist/services/doctor/doctor-service/checks/skill-apply-note.js +85 -0
- package/dist/services/doctor/doctor-service/checks/skill-existence.d.ts +13 -0
- package/dist/services/doctor/doctor-service/checks/skill-existence.js +30 -0
- package/dist/services/doctor/doctor-service/checks/skill-name-match.d.ts +10 -0
- package/dist/services/doctor/doctor-service/checks/skill-name-match.js +25 -0
- package/dist/services/doctor/doctor-service/checks/skill-parse.d.ts +10 -0
- package/dist/services/doctor/doctor-service/checks/skill-parse.js +19 -0
- package/dist/services/doctor/doctor-service/checks/skill-presence.d.ts +21 -0
- package/dist/services/doctor/doctor-service/checks/skill-presence.js +75 -0
- package/dist/services/doctor/doctor-service/checks/skill-runbook.d.ts +14 -0
- package/dist/services/doctor/doctor-service/checks/skill-runbook.js +47 -0
- package/dist/services/doctor/doctor-service/checks/statusline-install.d.ts +14 -0
- package/dist/services/doctor/doctor-service/checks/statusline-install.js +32 -0
- package/dist/services/doctor/doctor-service/checks/statusline-runtime.d.ts +13 -0
- package/dist/services/doctor/doctor-service/checks/statusline-runtime.js +30 -0
- package/dist/services/doctor/doctor-service/checks/user-config.d.ts +11 -0
- package/dist/services/doctor/doctor-service/checks/user-config.js +27 -0
- package/dist/services/doctor/doctor-service/checks/workspace-init.d.ts +16 -0
- package/dist/services/doctor/doctor-service/checks/workspace-init.js +34 -0
- package/dist/services/doctor/doctor-service/checks/workspace-layout.d.ts +33 -0
- package/dist/services/doctor/doctor-service/checks/workspace-layout.js +180 -0
- package/dist/services/doctor/doctor-service/index.d.ts +48 -0
- package/dist/services/doctor/doctor-service/index.js +254 -0
- package/dist/services/doctor/doctor-service/plugin-registry.d.ts +41 -0
- package/dist/services/doctor/doctor-service/plugin-registry.js +77 -0
- package/dist/services/doctor/doctor-service/report/final-summary.d.ts +20 -0
- package/dist/services/doctor/doctor-service/report/final-summary.js +29 -0
- package/dist/services/doctor/doctor-service/types.d.ts +245 -0
- package/dist/services/doctor/doctor-service/types.js +15 -0
- package/dist/services/doctor/doctor-service.d.ts +18 -0
- package/dist/services/doctor/doctor-service.js +25 -0
- package/dist/services/doctor/index.d.ts +22 -0
- package/dist/services/doctor/index.js +22 -0
- package/dist/services/env/shell-probe.d.ts +71 -0
- package/dist/services/env/shell-probe.js +161 -0
- package/dist/services/evolution/evolution-service.d.ts +137 -0
- package/dist/services/evolution/evolution-service.js +281 -0
- package/dist/services/evolution/evolution-store.d.ts +57 -0
- package/dist/services/evolution/evolution-store.js +232 -0
- package/dist/services/evolution/evolution-types.d.ts +706 -0
- package/dist/services/evolution/evolution-types.js +286 -0
- package/dist/services/evolution/independent-evaluator-runner.d.ts +90 -0
- package/dist/services/evolution/independent-evaluator-runner.js +106 -0
- package/dist/services/evolution/regression-skeptic-runner.d.ts +64 -0
- package/dist/services/evolution/regression-skeptic-runner.js +113 -0
- package/dist/services/feedback/feedback-promotion-service.d.ts +123 -0
- package/dist/services/feedback/feedback-promotion-service.js +300 -0
- package/dist/services/final-review/final-review-service.d.ts +22 -0
- package/dist/services/final-review/final-review-service.js +52 -0
- package/dist/services/final-review/final-review-types.d.ts +42 -0
- package/dist/services/final-review/final-review-types.js +18 -0
- package/dist/services/final-review/index.d.ts +2 -0
- package/dist/services/final-review/index.js +1 -0
- package/dist/services/fixture/fixture-capture-service.d.ts +87 -0
- package/dist/services/fixture/fixture-capture-service.js +317 -0
- package/dist/services/fixture/fixture-sanitize-service.d.ts +117 -0
- package/dist/services/fixture/fixture-sanitize-service.js +161 -0
- package/dist/services/fixture/index.d.ts +8 -0
- package/dist/services/fixture/index.js +8 -0
- package/dist/services/fork/fork-sync-state.d.ts +85 -0
- package/dist/services/fork/fork-sync-state.js +130 -0
- package/dist/services/fuzzy-matching/fuzzy-match-service.d.ts +15 -0
- package/dist/services/fuzzy-matching/fuzzy-match-service.js +56 -0
- package/dist/services/fuzzy-matching/fzf-pick-service.d.ts +68 -0
- package/dist/services/fuzzy-matching/fzf-pick-service.js +158 -0
- package/dist/services/fuzzy-matching/types.d.ts +20 -0
- package/dist/services/fuzzy-matching/types.js +1 -0
- package/dist/services/handoff/handoff-parser.d.ts +28 -0
- package/dist/services/handoff/handoff-parser.js +69 -0
- package/dist/services/handoff/handoff-types.d.ts +39 -0
- package/dist/services/handoff/handoff-types.js +19 -0
- package/dist/services/handoff/handoff-writer.d.ts +23 -0
- package/dist/services/handoff/handoff-writer.js +30 -0
- package/dist/services/hooks/auto-compact-hook-install.d.ts +103 -0
- package/dist/services/hooks/auto-compact-hook-install.js +156 -0
- package/dist/services/hooks/output.d.ts +92 -0
- package/dist/services/hooks/output.js +111 -0
- package/dist/services/hooks/presence-marker-detector.d.ts +16 -0
- package/dist/services/hooks/presence-marker-detector.js +105 -0
- package/dist/services/hooks/worktree-authorization-gate.d.ts +205 -0
- package/dist/services/hooks/worktree-authorization-gate.js +492 -0
- package/dist/services/ide/adapters/claude-code-adapter.d.ts +18 -0
- package/dist/services/ide/adapters/claude-code-adapter.js +103 -0
- package/dist/services/ide/adapters/codex-adapter.d.ts +46 -0
- package/dist/services/ide/adapters/codex-adapter.js +97 -0
- package/dist/services/ide/adapters/cursor-adapter.d.ts +36 -0
- package/dist/services/ide/adapters/cursor-adapter.js +84 -0
- package/dist/services/ide/adapters/hermes-adapter.d.ts +21 -0
- package/dist/services/ide/adapters/hermes-adapter.js +51 -0
- package/dist/services/ide/adapters/openclaw-adapter.d.ts +14 -0
- package/dist/services/ide/adapters/openclaw-adapter.js +42 -0
- package/dist/services/ide/adapters/qoder-adapter.d.ts +25 -0
- package/dist/services/ide/adapters/qoder-adapter.js +57 -0
- package/dist/services/ide/adapters/tongyi-lingma-adapter.d.ts +16 -0
- package/dist/services/ide/adapters/tongyi-lingma-adapter.js +45 -0
- package/dist/services/ide/adapters/trae-adapter.d.ts +42 -0
- package/dist/services/ide/adapters/trae-adapter.js +83 -0
- package/dist/services/ide/adapters/zcode-adapter.d.ts +40 -0
- package/dist/services/ide/adapters/zcode-adapter.js +220 -0
- package/dist/services/ide/current-model-detector.d.ts +14 -0
- package/dist/services/ide/current-model-detector.js +60 -0
- package/dist/services/ide/hook-protocol.d.ts +47 -0
- package/dist/services/ide/hook-protocol.js +74 -0
- package/dist/services/ide/hook-translator.d.ts +72 -0
- package/dist/services/ide/hook-translator.js +128 -0
- package/dist/services/ide/ide-detector.d.ts +10 -0
- package/dist/services/ide/ide-detector.js +19 -0
- package/dist/services/ide/ide-registry.d.ts +14 -0
- package/dist/services/ide/ide-registry.js +69 -0
- package/dist/services/ide/ide-types.d.ts +253 -0
- package/dist/services/ide/ide-types.js +2 -0
- package/dist/services/ide/resource-profile.d.ts +52 -0
- package/dist/services/ide/resource-profile.js +33 -0
- package/dist/services/ide/shared/atomic-json.d.ts +15 -0
- package/dist/services/ide/shared/atomic-json.js +58 -0
- package/dist/services/ide/shared/safe-path.d.ts +11 -0
- package/dist/services/ide/shared/safe-path.js +29 -0
- package/dist/services/impact/impact-scan-service.d.ts +66 -0
- package/dist/services/impact/impact-scan-service.js +197 -0
- package/dist/services/job/job-event-emitter.d.ts +30 -0
- package/dist/services/job/job-event-emitter.js +5 -0
- package/dist/services/job/job-orchestrator.d.ts +50 -0
- package/dist/services/job/job-orchestrator.js +104 -0
- package/dist/services/job/job-progress-store.d.ts +60 -0
- package/dist/services/job/job-progress-store.js +70 -0
- package/dist/services/job/job-rotation.d.ts +17 -0
- package/dist/services/job/job-rotation.js +30 -0
- package/dist/services/job/job-state-store.d.ts +24 -0
- package/dist/services/job/job-state-store.js +60 -0
- package/dist/services/job/job-types.d.ts +444 -0
- package/dist/services/job/job-types.js +87 -0
- package/dist/services/job/subagent-job-wrapper.d.ts +35 -0
- package/dist/services/job/subagent-job-wrapper.js +30 -0
- package/dist/services/job-snapshot/index.d.ts +8 -0
- package/dist/services/job-snapshot/index.js +7 -0
- package/dist/services/job-snapshot/snapshot.d.ts +7 -0
- package/dist/services/job-snapshot/snapshot.js +75 -0
- package/dist/services/job-snapshot/types.d.ts +7 -0
- package/dist/services/job-snapshot/types.js +1 -0
- package/dist/services/karpathy-cost/karpathy-cost-check-service.d.ts +67 -0
- package/dist/services/karpathy-cost/karpathy-cost-check-service.js +108 -0
- package/dist/services/legacy/legacy-detector.d.ts +34 -0
- package/dist/services/legacy/legacy-detector.js +111 -0
- package/dist/services/log/log-commands-service.d.ts +54 -0
- package/dist/services/log/log-commands-service.js +83 -0
- package/dist/services/log/logger.d.ts +103 -0
- package/dist/services/log/logger.js +224 -0
- package/dist/services/log/redact.d.ts +32 -0
- package/dist/services/log/redact.js +89 -0
- package/dist/services/log/retention.d.ts +50 -0
- package/dist/services/log/retention.js +95 -0
- package/dist/services/loop/evaluator-dispatcher.d.ts +50 -0
- package/dist/services/loop/evaluator-dispatcher.js +552 -0
- package/dist/services/loop/loop-bee-relation-service.d.ts +107 -0
- package/dist/services/loop/loop-bee-relation-service.js +211 -0
- package/dist/services/loop/loop-bee-relation-store.d.ts +53 -0
- package/dist/services/loop/loop-bee-relation-store.js +130 -0
- package/dist/services/loop/loop-bee-relation-types.d.ts +118 -0
- package/dist/services/loop/loop-bee-relation-types.js +114 -0
- package/dist/services/loop/loop-release-service.d.ts +46 -0
- package/dist/services/loop/loop-release-service.js +66 -0
- package/dist/services/loop/loop-release-store.d.ts +55 -0
- package/dist/services/loop/loop-release-store.js +134 -0
- package/dist/services/loop/loop-release-types.d.ts +250 -0
- package/dist/services/loop/loop-release-types.js +162 -0
- package/dist/services/loop/monotonic-guard.d.ts +80 -0
- package/dist/services/loop/monotonic-guard.js +232 -0
- package/dist/services/loop/monotonic-runner.d.ts +64 -0
- package/dist/services/loop/monotonic-runner.js +270 -0
- package/dist/services/loop/run-driver.d.ts +70 -0
- package/dist/services/loop/run-driver.js +400 -0
- package/dist/services/loop/spec-service.d.ts +90 -0
- package/dist/services/loop/spec-service.js +497 -0
- package/dist/services/memory/llm-reranker.d.ts +174 -0
- package/dist/services/memory/llm-reranker.js +284 -0
- package/dist/services/memory/memory-search-service.d.ts +93 -0
- package/dist/services/memory/memory-search-service.js +117 -0
- package/dist/services/memory/project-context-service.d.ts +21 -0
- package/dist/services/memory/project-context-service.js +161 -0
- package/dist/services/memory/project-memory-service/index/kind-dispatch.d.ts +8 -0
- package/dist/services/memory/project-memory-service/index/kind-dispatch.js +253 -0
- package/dist/services/memory/project-memory-service/index/ranking.d.ts +6 -0
- package/dist/services/memory/project-memory-service/index/ranking.js +171 -0
- package/dist/services/memory/project-memory-service/index/search.d.ts +34 -0
- package/dist/services/memory/project-memory-service/index/search.js +194 -0
- package/dist/services/memory/project-memory-service/index.d.ts +9 -0
- package/dist/services/memory/project-memory-service/index.js +24 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +9 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter.js +106 -0
- package/dist/services/memory/project-memory-service/parsers/markdown-pure.d.ts +7 -0
- package/dist/services/memory/project-memory-service/parsers/markdown-pure.js +96 -0
- package/dist/services/memory/project-memory-service/store/atomic-write.d.ts +5 -0
- package/dist/services/memory/project-memory-service/store/atomic-write.js +56 -0
- package/dist/services/memory/project-memory-service/store/paths.d.ts +8 -0
- package/dist/services/memory/project-memory-service/store/paths.js +116 -0
- package/dist/services/memory/project-memory-service/types.d.ts +128 -0
- package/dist/services/memory/project-memory-service/types.js +9 -0
- package/dist/services/memory/project-memory-service.d.ts +1 -0
- package/dist/services/memory/project-memory-service.js +20 -0
- package/dist/services/migrate-skill-name/migrate.d.ts +17 -0
- package/dist/services/migrate-skill-name/migrate.js +152 -0
- package/dist/services/migrate-skill-name/schema.d.ts +42 -0
- package/dist/services/migrate-skill-name/schema.js +25 -0
- package/dist/services/migration/v2-10-to-v2-11-service.d.ts +44 -0
- package/dist/services/migration/v2-10-to-v2-11-service.js +190 -0
- package/dist/services/migration/v2-10-to-v2-11-types.d.ts +41 -0
- package/dist/services/migration/v2-10-to-v2-11-types.js +23 -0
- package/dist/services/mode/bypass-tracker.d.ts +4 -0
- package/dist/services/mode/bypass-tracker.js +31 -0
- package/dist/services/mode/mode-enforcement.d.ts +14 -0
- package/dist/services/mode/mode-enforcement.js +84 -0
- package/dist/services/observability/aggregation.d.ts +91 -0
- package/dist/services/observability/aggregation.js +289 -0
- package/dist/services/observability/jsonl-store.d.ts +59 -0
- package/dist/services/observability/jsonl-store.js +120 -0
- package/dist/services/observability/observability-service.d.ts +161 -0
- package/dist/services/observability/observability-service.js +205 -0
- package/dist/services/observability/report-formatter.d.ts +42 -0
- package/dist/services/observability/report-formatter.js +156 -0
- package/dist/services/openspec/artifact-boundary.d.ts +138 -0
- package/dist/services/openspec/artifact-boundary.js +150 -0
- package/dist/services/openspec/coverage-evidence-reader.d.ts +191 -0
- package/dist/services/openspec/coverage-evidence-reader.js +386 -0
- package/dist/services/openspec/openspec-archive-service.d.ts +82 -0
- package/dist/services/openspec/openspec-archive-service.js +340 -0
- package/dist/services/openspec/openspec-bridge-service.d.ts +16 -0
- package/dist/services/openspec/openspec-bridge-service.js +76 -0
- package/dist/services/openspec/openspec-init-service.d.ts +23 -0
- package/dist/services/openspec/openspec-init-service.js +122 -0
- package/dist/services/openspec/openspec-propose-from-doctor-service.d.ts +31 -0
- package/dist/services/openspec/openspec-propose-from-doctor-service.js +95 -0
- package/dist/services/openspec/openspec-render-service.d.ts +38 -0
- package/dist/services/openspec/openspec-render-service.js +133 -0
- package/dist/services/openspec/openspec-scan-service.d.ts +6 -0
- package/dist/services/openspec/openspec-scan-service.js +123 -0
- package/dist/services/openspec/openspec-types.d.ts +39 -0
- package/dist/services/openspec/openspec-types.js +1 -0
- package/dist/services/openspec/openspec-validate-service.d.ts +27 -0
- package/dist/services/openspec/openspec-validate-service.js +78 -0
- package/dist/services/perf/perf-baseline-service.d.ts +70 -0
- package/dist/services/perf/perf-baseline-service.js +214 -0
- package/dist/services/polyrepo/polyrepo-dispatcher.d.ts +34 -0
- package/dist/services/polyrepo/polyrepo-dispatcher.js +119 -0
- package/dist/services/polyrepo/polyrepo-scanner.d.ts +9 -0
- package/dist/services/polyrepo/polyrepo-scanner.js +94 -0
- package/dist/services/polyrepo/polyrepo-service.d.ts +34 -0
- package/dist/services/polyrepo/polyrepo-service.js +49 -0
- package/dist/services/polyrepo/polyrepo-types.d.ts +55 -0
- package/dist/services/polyrepo/polyrepo-types.js +1 -0
- package/dist/services/prd/handoff-auto-regen.d.ts +22 -0
- package/dist/services/prd/handoff-auto-regen.js +73 -0
- package/dist/services/prd/handoff-service.d.ts +54 -0
- package/dist/services/prd/handoff-service.js +142 -0
- package/dist/services/prd/handoff-types.d.ts +64 -0
- package/dist/services/prd/handoff-types.js +22 -0
- package/dist/services/prd/prd-blocks-checker.d.ts +51 -0
- package/dist/services/prd/prd-blocks-checker.js +130 -0
- package/dist/services/prd/project-scan-bootstrap-service.d.ts +52 -0
- package/dist/services/prd/project-scan-bootstrap-service.js +445 -0
- package/dist/services/prd/project-scan-reader.d.ts +24 -0
- package/dist/services/prd/project-scan-reader.js +150 -0
- package/dist/services/prd/project-scan-sediment.d.ts +97 -0
- package/dist/services/prd/project-scan-sediment.js +445 -0
- package/dist/services/prd/project-scan-types.d.ts +66 -0
- package/dist/services/prd/project-scan-types.js +20 -0
- package/dist/services/preferences/preferences-service.d.ts +38 -0
- package/dist/services/preferences/preferences-service.js +208 -0
- package/dist/services/preferences/preferences-types.d.ts +161 -0
- package/dist/services/preferences/preferences-types.js +64 -0
- package/dist/services/profiles/profile-service.d.ts +6 -0
- package/dist/services/profiles/profile-service.js +19 -0
- package/dist/services/progress/progress-service.d.ts +125 -0
- package/dist/services/progress/progress-service.js +192 -0
- package/dist/services/proxy/proxy-service.d.ts +7 -0
- package/dist/services/proxy/proxy-service.js +31 -0
- package/dist/services/qa/browser-event-logger.d.ts +40 -0
- package/dist/services/qa/browser-event-logger.js +54 -0
- package/dist/services/qa/browser-restart-detector.d.ts +74 -0
- package/dist/services/qa/browser-restart-detector.js +138 -0
- package/dist/services/qa/browser-reuse-hint.d.ts +18 -0
- package/dist/services/qa/browser-reuse-hint.js +18 -0
- package/dist/services/qa/browser-wrapper-service.d.ts +37 -0
- package/dist/services/qa/browser-wrapper-service.js +88 -0
- package/dist/services/qa/qa-business-review-state.d.ts +47 -0
- package/dist/services/qa/qa-business-review-state.js +96 -0
- package/dist/services/qa/screenshot-archive-service.d.ts +51 -0
- package/dist/services/qa/screenshot-archive-service.js +134 -0
- package/dist/services/rd/ast-gate.d.ts +19 -0
- package/dist/services/rd/ast-gate.js +71 -0
- package/dist/services/rd/impl.d.ts +9 -0
- package/dist/services/rd/impl.js +57 -0
- package/dist/services/rd/rd-service.d.ts +129 -0
- package/dist/services/rd/rd-service.js +440 -0
- package/dist/services/rd/reviewer-dispatch-policy.d.ts +122 -0
- package/dist/services/rd/reviewer-dispatch-policy.js +148 -0
- package/dist/services/rd/standards-diagnostic.d.ts +76 -0
- package/dist/services/rd/standards-diagnostic.js +166 -0
- package/dist/services/rd/strategic-stage.d.ts +4 -0
- package/dist/services/rd/strategic-stage.js +15 -0
- package/dist/services/rd/strategy.d.ts +13 -0
- package/dist/services/rd/strategy.js +60 -0
- package/dist/services/rd/tactical-stage.d.ts +33 -0
- package/dist/services/rd/tactical-stage.js +62 -0
- package/dist/services/rd/types.d.ts +252 -0
- package/dist/services/rd/types.js +47 -0
- package/dist/services/rd-swarm/rd-swarm-service.d.ts +60 -0
- package/dist/services/rd-swarm/rd-swarm-service.js +93 -0
- package/dist/services/recommendations/capability-availability.d.ts +5 -0
- package/dist/services/recommendations/capability-availability.js +40 -0
- package/dist/services/recommendations/capability-map-service.d.ts +7 -0
- package/dist/services/recommendations/capability-map-service.js +131 -0
- package/dist/services/recommendations/capability-seed-items.d.ts +2 -0
- package/dist/services/recommendations/capability-seed-items.js +139 -0
- package/dist/services/recommendations/capability-seed-mappings.d.ts +2 -0
- package/dist/services/recommendations/capability-seed-mappings.js +53 -0
- package/dist/services/recommendations/capability-seed-sources.d.ts +2 -0
- package/dist/services/recommendations/capability-seed-sources.js +34 -0
- package/dist/services/recommendations/recommendation-service.d.ts +8 -0
- package/dist/services/recommendations/recommendation-service.js +106 -0
- package/dist/services/recommendations/recommendation-types.d.ts +129 -0
- package/dist/services/recommendations/recommendation-types.js +1 -0
- package/dist/services/recommendations/seed-capability-catalog.d.ts +3 -0
- package/dist/services/recommendations/seed-capability-catalog.js +3 -0
- package/dist/services/refactor/refactor-service.d.ts +9 -0
- package/dist/services/refactor/refactor-service.js +36 -0
- package/dist/services/release/release-state.d.ts +70 -0
- package/dist/services/release/release-state.js +140 -0
- package/dist/services/release/version-precheck-service.d.ts +51 -0
- package/dist/services/release/version-precheck-service.js +257 -0
- package/dist/services/retrospective/retrospective-index.d.ts +37 -0
- package/dist/services/retrospective/retrospective-index.js +110 -0
- package/dist/services/retrospective/retrospective-search-service.d.ts +55 -0
- package/dist/services/retrospective/retrospective-search-service.js +107 -0
- package/dist/services/retrospective/retrospective-show.d.ts +40 -0
- package/dist/services/retrospective/retrospective-show.js +109 -0
- package/dist/services/reviewer/model-family.d.ts +18 -0
- package/dist/services/reviewer/model-family.js +70 -0
- package/dist/services/reviewer/providers/anthropic.d.ts +2 -0
- package/dist/services/reviewer/providers/anthropic.js +61 -0
- package/dist/services/reviewer/providers/ollama.d.ts +26 -0
- package/dist/services/reviewer/providers/ollama.js +38 -0
- package/dist/services/reviewer/providers/openai.d.ts +2 -0
- package/dist/services/reviewer/providers/openai.js +63 -0
- package/dist/services/reviewer/reviewer-config.d.ts +34 -0
- package/dist/services/reviewer/reviewer-config.js +100 -0
- package/dist/services/reviewer/reviewer-service.d.ts +56 -0
- package/dist/services/reviewer/reviewer-service.js +263 -0
- package/dist/services/reviewer/selection-strategies.d.ts +27 -0
- package/dist/services/reviewer/selection-strategies.js +53 -0
- package/dist/services/role/role-registry.d.ts +38 -0
- package/dist/services/role/role-registry.js +83 -0
- package/dist/services/runtime/runtime-detector.d.ts +15 -0
- package/dist/services/runtime/runtime-detector.js +62 -0
- package/dist/services/runtime/runtime-service.d.ts +59 -0
- package/dist/services/runtime/runtime-service.js +51 -0
- package/dist/services/runtime/vendor-adapter.d.ts +59 -0
- package/dist/services/runtime/vendor-adapter.js +1 -0
- package/dist/services/runtime/vendors/claude-code.d.ts +7 -0
- package/dist/services/runtime/vendors/claude-code.js +39 -0
- package/dist/services/runtime/vendors/codex.d.ts +7 -0
- package/dist/services/runtime/vendors/codex.js +43 -0
- package/dist/services/runtime/vendors/copilot.d.ts +7 -0
- package/dist/services/runtime/vendors/copilot.js +40 -0
- package/dist/services/sc/index.d.ts +1 -0
- package/dist/services/sc/index.js +1 -0
- package/dist/services/sc/sc-service.d.ts +131 -0
- package/dist/services/sc/sc-service.js +552 -0
- package/dist/services/scan/acceptance-coverage-service.d.ts +42 -0
- package/dist/services/scan/acceptance-coverage-service.js +140 -0
- package/dist/services/scan/api-surface-service.d.ts +69 -0
- package/dist/services/scan/api-surface-service.js +239 -0
- package/dist/services/scan/archetype-service.d.ts +5 -0
- package/dist/services/scan/archetype-service.js +254 -0
- package/dist/services/scan/diff-scope-service.d.ts +40 -0
- package/dist/services/scan/diff-scope-service.js +198 -0
- package/dist/services/scan/existing-system-service.d.ts +7 -0
- package/dist/services/scan/existing-system-service.js +300 -0
- package/dist/services/scan/file-size-scan.d.ts +23 -0
- package/dist/services/scan/file-size-scan.js +68 -0
- package/dist/services/scan/karpathy-service.d.ts +60 -0
- package/dist/services/scan/karpathy-service.js +228 -0
- package/dist/services/scan/libraries-service.d.ts +24 -0
- package/dist/services/scan/libraries-service.js +419 -0
- package/dist/services/scan/libraries-types.d.ts +59 -0
- package/dist/services/scan/libraries-types.js +9 -0
- package/dist/services/scan/orphan-service.d.ts +76 -0
- package/dist/services/scan/orphan-service.js +538 -0
- package/dist/services/scan/scan-types.d.ts +59 -0
- package/dist/services/scan/scan-types.js +1 -0
- package/dist/services/scan/type-sanity-service.d.ts +23 -0
- package/dist/services/scan/type-sanity-service.js +116 -0
- package/dist/services/security/safe-settings-path.d.ts +12 -0
- package/dist/services/security/safe-settings-path.js +104 -0
- package/dist/services/sediment/dispose-confirm.d.ts +9 -0
- package/dist/services/sediment/dispose-confirm.js +5 -0
- package/dist/services/sediment/json-schema.d.ts +247 -0
- package/dist/services/sediment/json-schema.js +26 -0
- package/dist/services/sediment/manifest-lint.d.ts +13 -0
- package/dist/services/sediment/manifest-lint.js +11 -0
- package/dist/services/sediment/pool-paths.d.ts +22 -0
- package/dist/services/sediment/pool-paths.js +25 -0
- package/dist/services/sediment/pool-read.d.ts +20 -0
- package/dist/services/sediment/pool-read.js +73 -0
- package/dist/services/sediment/pool-rebuild-index.d.ts +15 -0
- package/dist/services/sediment/pool-rebuild-index.js +28 -0
- package/dist/services/sediment/pool-write.d.ts +14 -0
- package/dist/services/sediment/pool-write.js +25 -0
- package/dist/services/sediment/promotion-gate.d.ts +12 -0
- package/dist/services/sediment/promotion-gate.js +20 -0
- package/dist/services/sediment/types.d.ts +52 -0
- package/dist/services/sediment/types.js +1 -0
- package/dist/services/session/binding-status-service.d.ts +56 -0
- package/dist/services/session/binding-status-service.js +106 -0
- package/dist/services/session/binding-store.d.ts +161 -0
- package/dist/services/session/binding-store.js +509 -0
- package/dist/services/session/caller-binding-service.d.ts +70 -0
- package/dist/services/session/caller-binding-service.js +148 -0
- package/dist/services/session/caller-id-types.d.ts +77 -0
- package/dist/services/session/caller-id-types.js +46 -0
- package/dist/services/session/getSessionDir.d.ts +1 -0
- package/dist/services/session/getSessionDir.js +27 -0
- package/dist/services/session/index.d.ts +6 -0
- package/dist/services/session/index.js +7 -0
- package/dist/services/session/platform-fallbacks.d.ts +31 -0
- package/dist/services/session/platform-fallbacks.js +35 -0
- package/dist/services/session/resolve-caller-id.d.ts +57 -0
- package/dist/services/session/resolve-caller-id.js +88 -0
- package/dist/services/session/session-binding-bridge.d.ts +76 -0
- package/dist/services/session/session-binding-bridge.js +247 -0
- package/dist/services/session/session-checkpoint-service.d.ts +57 -0
- package/dist/services/session/session-checkpoint-service.js +143 -0
- package/dist/services/session/session-manager.d.ts +168 -0
- package/dist/services/session/session-manager.js +502 -0
- package/dist/services/session/session-resume-service.d.ts +25 -0
- package/dist/services/session/session-resume-service.js +101 -0
- package/dist/services/share/bundle-reader.d.ts +100 -0
- package/dist/services/share/bundle-reader.js +434 -0
- package/dist/services/share/bundle-types.d.ts +392 -0
- package/dist/services/share/bundle-types.js +318 -0
- package/dist/services/share/bundle-writer.d.ts +97 -0
- package/dist/services/share/bundle-writer.js +429 -0
- package/dist/services/share/run-state-contract.d.ts +133 -0
- package/dist/services/share/run-state-contract.js +138 -0
- package/dist/services/signal/cancel-handler.d.ts +14 -0
- package/dist/services/signal/cancel-handler.js +76 -0
- package/dist/services/skill/resume-detector.d.ts +54 -0
- package/dist/services/skill/resume-detector.js +334 -0
- package/dist/services/skill/skill-scheduler.d.ts +40 -0
- package/dist/services/skill/skill-scheduler.js +53 -0
- package/dist/services/skill/skill-search-service.d.ts +93 -0
- package/dist/services/skill/skill-search-service.js +232 -0
- package/dist/services/skillhub/migrations/001-initial.sql +71 -0
- package/dist/services/skillhub/migrations/002-loop-release.sql +32 -0
- package/dist/services/skillhub/migrations/003-loop-bee-relation.sql +35 -0
- package/dist/services/skillhub/migrations/004-loop-bee-extension.sql +65 -0
- package/dist/services/skillhub/migrations/005-evolution-evaluation.sql +81 -0
- package/dist/services/skillhub/migrations/006-crystallization-event.sql +92 -0
- package/dist/services/skillhub/release-diff.d.ts +18 -0
- package/dist/services/skillhub/release-diff.js +38 -0
- package/dist/services/skillhub/release-export.d.ts +8 -0
- package/dist/services/skillhub/release-export.js +31 -0
- package/dist/services/skillhub/release-gc-blobs.d.ts +13 -0
- package/dist/services/skillhub/release-gc-blobs.js +32 -0
- package/dist/services/skillhub/release-import.d.ts +7 -0
- package/dist/services/skillhub/release-import.js +64 -0
- package/dist/services/skillhub/release-retain.d.ts +23 -0
- package/dist/services/skillhub/release-retain.js +94 -0
- package/dist/services/skillhub/sqlite-store.d.ts +22 -0
- package/dist/services/skillhub/sqlite-store.js +63 -0
- package/dist/services/skillhub/tar-runtime.d.ts +21 -0
- package/dist/services/skillhub/tar-runtime.js +91 -0
- package/dist/services/skillhub/types.d.ts +115 -0
- package/dist/services/skillhub/types.js +1 -0
- package/dist/services/skills/hooks-settings-service.d.ts +212 -0
- package/dist/services/skills/hooks-settings-service.js +624 -0
- package/dist/services/skills/skill-conformance-service.d.ts +40 -0
- package/dist/services/skills/skill-conformance-service.js +139 -0
- package/dist/services/skills/skill-presence-service.d.ts +158 -0
- package/dist/services/skills/skill-presence-service.js +474 -0
- package/dist/services/skills/skill-registry.d.ts +18 -0
- package/dist/services/skills/skill-registry.js +69 -0
- package/dist/services/skills/skill-runbook-service.d.ts +11 -0
- package/dist/services/skills/skill-runbook-service.js +128 -0
- package/dist/services/skills/skill-statusline-renderer.d.ts +6 -0
- package/dist/services/skills/skill-statusline-renderer.js +55 -0
- package/dist/services/skills/skill-statusline-service.d.ts +24 -0
- package/dist/services/skills/skill-statusline-service.js +110 -0
- package/dist/services/skills/statusline-settings-service.d.ts +59 -0
- package/dist/services/skills/statusline-settings-service.js +141 -0
- package/dist/services/skills/sync-service.d.ts +86 -0
- package/dist/services/skills/sync-service.js +271 -0
- package/dist/services/slice/calibration-store.d.ts +39 -0
- package/dist/services/slice/calibration-store.js +68 -0
- package/dist/services/slice/cross-pass-edge-merger.d.ts +53 -0
- package/dist/services/slice/cross-pass-edge-merger.js +246 -0
- package/dist/services/slice/granularity-decider.d.ts +37 -0
- package/dist/services/slice/granularity-decider.js +40 -0
- package/dist/services/slice/llm-arbitrator.d.ts +35 -0
- package/dist/services/slice/llm-arbitrator.js +63 -0
- package/dist/services/slice/multi-pass-orchestrator.d.ts +67 -0
- package/dist/services/slice/multi-pass-orchestrator.js +225 -0
- package/dist/services/slice/schema-router.d.ts +44 -0
- package/dist/services/slice/schema-router.js +61 -0
- package/dist/services/slice/slice-archive-service.d.ts +20 -0
- package/dist/services/slice/slice-archive-service.js +111 -0
- package/dist/services/slice/slice-benchmark-service.d.ts +19 -0
- package/dist/services/slice/slice-benchmark-service.js +60 -0
- package/dist/services/slice/slice-check-service.d.ts +2 -0
- package/dist/services/slice/slice-check-service.js +459 -0
- package/dist/services/slice/slice-check-types.d.ts +104 -0
- package/dist/services/slice/slice-check-types.js +28 -0
- package/dist/services/slice/slice-decompose-runners.d.ts +23 -0
- package/dist/services/slice/slice-decompose-runners.js +174 -0
- package/dist/services/slice/slice-decompose-service.d.ts +24 -0
- package/dist/services/slice/slice-decompose-service.js +532 -0
- package/dist/services/slice/slice-decompose-types.d.ts +263 -0
- package/dist/services/slice/slice-decompose-types.js +30 -0
- package/dist/services/slice/slice-integration.d.ts +43 -0
- package/dist/services/slice/slice-integration.js +106 -0
- package/dist/services/slice/slice-pick-service.d.ts +32 -0
- package/dist/services/slice/slice-pick-service.js +75 -0
- package/dist/services/slice/slice-review-state.d.ts +70 -0
- package/dist/services/slice/slice-review-state.js +109 -0
- package/dist/services/slice/slice-topology-types.d.ts +115 -0
- package/dist/services/slice/slice-topology-types.js +20 -0
- package/dist/services/smoke/smoke-paths-state.d.ts +73 -0
- package/dist/services/smoke/smoke-paths-state.js +117 -0
- package/dist/services/sop/gate-enforce-service.d.ts +33 -0
- package/dist/services/sop/gate-enforce-service.js +168 -0
- package/dist/services/sop/sop-advance-service.d.ts +74 -0
- package/dist/services/sop/sop-advance-service.js +115 -0
- package/dist/services/sop/sop-check-service.d.ts +45 -0
- package/dist/services/sop/sop-check-service.js +181 -0
- package/dist/services/sop/sop-paths.d.ts +62 -0
- package/dist/services/sop/sop-paths.js +92 -0
- package/dist/services/sop/sop-registry-service.d.ts +46 -0
- package/dist/services/sop/sop-registry-service.js +89 -0
- package/dist/services/sop/sop-service.d.ts +55 -0
- package/dist/services/sop/sop-service.js +222 -0
- package/dist/services/sop/sop-types.d.ts +95 -0
- package/dist/services/sop/sop-types.js +11 -0
- package/dist/services/standards/ide-aware-standards-service.d.ts +94 -0
- package/dist/services/standards/ide-aware-standards-service.js +91 -0
- package/dist/services/standards/loop-engineering-lint.d.ts +38 -0
- package/dist/services/standards/loop-engineering-lint.js +101 -0
- package/dist/services/standards/loop-engineering-readiness-lint.d.ts +111 -0
- package/dist/services/standards/loop-engineering-readiness-lint.js +248 -0
- package/dist/services/standards/main-session-monitor-ban-hook.d.ts +14 -0
- package/dist/services/standards/main-session-monitor-ban-hook.js +19 -0
- package/dist/services/standards/migrate-claude-rules-service.d.ts +19 -0
- package/dist/services/standards/migrate-claude-rules-service.js +214 -0
- package/dist/services/standards/migrate-service.d.ts +63 -0
- package/dist/services/standards/migrate-service.js +193 -0
- package/dist/services/standards/missing-standards-detector.d.ts +106 -0
- package/dist/services/standards/missing-standards-detector.js +170 -0
- package/dist/services/standards/project-context.d.ts +24 -0
- package/dist/services/standards/project-context.js +314 -0
- package/dist/services/standards/project-standards-service.d.ts +114 -0
- package/dist/services/standards/project-standards-service.js +693 -0
- package/dist/services/tech/tech-change-id-service.d.ts +82 -0
- package/dist/services/tech/tech-change-id-service.js +117 -0
- package/dist/services/tech/tech-service.d.ts +69 -0
- package/dist/services/tech/tech-service.js +299 -0
- package/dist/services/test-cache/test-cache-service.d.ts +70 -0
- package/dist/services/test-cache/test-cache-service.js +175 -0
- package/dist/services/understand/hybrid-types.d.ts +32 -0
- package/dist/services/understand/hybrid-types.js +1 -0
- package/dist/services/understand/understand-hybrid-service.d.ts +10 -0
- package/dist/services/understand/understand-hybrid-service.js +100 -0
- package/dist/services/understand/understand-scan-service.d.ts +28 -0
- package/dist/services/understand/understand-scan-service.js +170 -0
- package/dist/services/understand/understand-types.d.ts +50 -0
- package/dist/services/understand/understand-types.js +1 -0
- package/dist/services/upgrade/1x-detector-service.d.ts +7 -0
- package/dist/services/upgrade/1x-detector-service.js +94 -0
- package/dist/services/upgrade/gitignore-migrate-service.d.ts +56 -0
- package/dist/services/upgrade/gitignore-migrate-service.js +170 -0
- package/dist/services/upgrade/upgrade-service.d.ts +81 -0
- package/dist/services/upgrade/upgrade-service.js +404 -0
- package/dist/services/verdict/envelopes.d.ts +93 -0
- package/dist/services/verdict/envelopes.js +349 -0
- package/dist/services/verdict/verdict-aggregator.d.ts +94 -0
- package/dist/services/verdict/verdict-aggregator.js +112 -0
- package/dist/services/vm/vm-lease.d.ts +40 -0
- package/dist/services/vm/vm-lease.js +137 -0
- package/dist/services/workflow/artifact-paths.d.ts +59 -0
- package/dist/services/workflow/artifact-paths.js +166 -0
- package/dist/services/workflow/autonomous-resume-writer.d.ts +16 -0
- package/dist/services/workflow/autonomous-resume-writer.js +170 -0
- package/dist/services/workflow/pipeline-verify-gate-support.d.ts +47 -0
- package/dist/services/workflow/pipeline-verify-gate-support.js +194 -0
- package/dist/services/workflow/pipeline-verify-service.d.ts +26 -0
- package/dist/services/workflow/pipeline-verify-service.js +273 -0
- package/dist/services/workflow/pipeline-verify-types.d.ts +90 -0
- package/dist/services/workflow/pipeline-verify-types.js +10 -0
- package/dist/services/workflow/plan-reader.d.ts +29 -0
- package/dist/services/workflow/plan-reader.js +174 -0
- package/dist/services/workflow/plan-refresher.d.ts +32 -0
- package/dist/services/workflow/plan-refresher.js +353 -0
- package/dist/services/workflow/plan-trigger-detector.d.ts +55 -0
- package/dist/services/workflow/plan-trigger-detector.js +142 -0
- package/dist/services/workflow/workflow-autonomous-resume-helpers.d.ts +19 -0
- package/dist/services/workflow/workflow-autonomous-resume-helpers.js +300 -0
- package/dist/services/workflow/workflow-autonomous-service.d.ts +4 -0
- package/dist/services/workflow/workflow-autonomous-service.js +306 -0
- package/dist/services/workflow/workflow-autonomous-types.d.ts +114 -0
- package/dist/services/workflow/workflow-autonomous-types.js +21 -0
- package/dist/services/workflow/workflow-loader.d.ts +63 -0
- package/dist/services/workflow/workflow-loader.js +168 -0
- package/dist/services/workflow/workflow-router-service.d.ts +85 -0
- package/dist/services/workflow/workflow-router-service.js +235 -0
- package/dist/services/workflow/workflow-skip-service.d.ts +106 -0
- package/dist/services/workflow/workflow-skip-service.js +209 -0
- package/dist/services/workflow/workflow-spec-lint.d.ts +13 -0
- package/dist/services/workflow/workflow-spec-lint.js +75 -0
- package/dist/services/workflow/workflow-spec-types.d.ts +100 -0
- package/dist/services/workflow/workflow-spec-types.js +13 -0
- package/dist/services/workflow/workflow-spec-yaml.d.ts +17 -0
- package/dist/services/workflow/workflow-spec-yaml.js +88 -0
- package/dist/services/workflow/workflow-spec.d.ts +36 -0
- package/dist/services/workflow/workflow-spec.js +302 -0
- package/dist/services/workflow/workflow-state-store.d.ts +27 -0
- package/dist/services/workflow/workflow-state-store.js +95 -0
- package/dist/services/workspace/claude-settings-template.d.ts +101 -0
- package/dist/services/workspace/claude-settings-template.js +254 -0
- package/dist/services/workspace/migrate-1-4-1-service.d.ts +44 -0
- package/dist/services/workspace/migrate-1-4-1-service.js +195 -0
- package/dist/services/workspace/migrate-service.d.ts +2 -0
- package/dist/services/workspace/migrate-service.js +613 -0
- package/dist/services/workspace/migrate-types.d.ts +127 -0
- package/dist/services/workspace/migrate-types.js +21 -0
- package/dist/services/workspace/reconcile-service.d.ts +188 -0
- package/dist/services/workspace/reconcile-service.js +683 -0
- package/dist/services/workspace/reconcile-types.d.ts +130 -0
- package/dist/services/workspace/reconcile-types.js +13 -0
- package/dist/services/workspace/sid-naming-guard.d.ts +17 -0
- package/dist/services/workspace/sid-naming-guard.js +34 -0
- package/dist/services/workspace/templates/project-scan/audit-output-schema.md +100 -0
- package/dist/services/workspace/templates/project-scan/business-knowledge.md +44 -0
- package/dist/services/workspace/templates/project-scan/index.d.ts +34 -0
- package/dist/services/workspace/templates/project-scan/index.js +60 -0
- package/dist/services/workspace/templates/project-scan/perf-template.md +109 -0
- package/dist/services/workspace/templates/project-scan/security-template.md +99 -0
- package/dist/services/workspace/workspace-claude-settings-materializer.d.ts +45 -0
- package/dist/services/workspace/workspace-claude-settings-materializer.js +194 -0
- package/dist/services/workspace/workspace-clean-service.d.ts +28 -0
- package/dist/services/workspace/workspace-clean-service.js +46 -0
- package/dist/services/workspace/workspace-service.d.ts +177 -0
- package/dist/services/workspace/workspace-service.js +432 -0
- package/dist/services/workspace/workspace-state-service.d.ts +7 -0
- package/dist/services/workspace/workspace-state-service.js +43 -0
- package/dist/services/worktree/worktree-lease.d.ts +170 -0
- package/dist/services/worktree/worktree-lease.js +242 -0
- package/dist/shared/format-md-compact.d.ts +32 -0
- package/dist/shared/format-md-compact.js +297 -0
- package/dist/shared/frontmatter.d.ts +6 -0
- package/dist/shared/frontmatter.js +165 -0
- package/dist/shared/fs-utils.d.ts +4 -0
- package/dist/shared/fs-utils.js +16 -0
- package/dist/shared/incrementing-number.d.ts +23 -0
- package/dist/shared/incrementing-number.js +68 -0
- package/dist/shared/json-schema-mini.d.ts +10 -0
- package/dist/shared/json-schema-mini.js +113 -0
- package/dist/shared/path-safety.d.ts +21 -0
- package/dist/shared/path-safety.js +54 -0
- package/dist/shared/path-utils.d.ts +13 -0
- package/dist/shared/path-utils.js +56 -0
- package/dist/shared/planner-response.d.ts +21 -0
- package/dist/shared/planner-response.js +26 -0
- package/dist/shared/platform.d.ts +6 -0
- package/dist/shared/platform.js +11 -0
- package/dist/shared/process.d.ts +5 -0
- package/dist/shared/process.js +12 -0
- package/dist/shared/stale-policy.d.ts +67 -0
- package/dist/shared/stale-policy.js +85 -0
- package/dist/skills/peaks-maker/index.d.ts +5 -0
- package/dist/skills/peaks-maker/index.js +32 -0
- package/package.json +51 -54
- package/scripts/clean-dist.mjs +31 -1
- package/scripts/copy-templates.mjs +17 -1
- package/scripts/sync-version.mjs +53 -2
- package/skills/bee/peaks-perf-audit/SKILL.md +17 -0
- package/skills/bee/peaks-prd/SKILL.md +16 -0
- package/skills/bee/peaks-prd/test-prompts.json +12 -0
- package/skills/bee/peaks-qa/SKILL.md +16 -1
- package/skills/bee/peaks-qa/references/qa-sub-agent-dispatch.md +22 -0
- package/skills/bee/peaks-qa/test-prompts.json +12 -0
- package/skills/bee/peaks-rd/SKILL.md +29 -20
- package/skills/bee/peaks-rd/references/rd-sub-agent-dispatch.md +39 -0
- package/skills/bee/peaks-rd/test-prompts.json +12 -0
- package/skills/bee/peaks-reviewer/SKILL.md +17 -0
- package/skills/bee/peaks-sc/SKILL.md +16 -0
- package/skills/bee/peaks-security-audit/SKILL.md +17 -0
- package/skills/bee/peaks-txt/SKILL.md +16 -0
- package/skills/bee/peaks-txt/test-prompts.json +12 -0
- package/skills/bee/peaks-ui/SKILL.md +49 -43
- package/skills/bee/peaks-ui/test-prompts.json +12 -0
- package/skills/peaks-code/SKILL.md +54 -109
- package/skills/peaks-code/references/boundaries.md +15 -1
- package/skills/peaks-code/references/cron-scheduler-deployment.md +313 -0
- package/skills/peaks-code/references/external-skill-invocation.md +27 -0
- package/skills/peaks-code/references/lease-dashboard.html +224 -0
- package/skills/peaks-code/references/lease-stats.sample.json +26 -0
- package/skills/peaks-code/references/peaks-worktree-l2-enforcers.md +208 -0
- package/skills/peaks-code/references/periodic-checkpoint.md +4 -4
- package/skills/peaks-code/references/runbook.md +63 -1
- package/skills/peaks-code/references/startup-sequence.md +110 -0
- package/skills/peaks-code/references/step-0-8-gate.md +1 -1
- package/skills/peaks-code/references/sub-agent-dispatch.md +92 -1
- package/skills/peaks-code/references/worktree-governance.md +123 -0
- package/skills/peaks-code/test-prompts.json +12 -0
- package/skills/peaks-doctor/SKILL.md +1 -1
- package/skills/peaks-ide/SKILL.md +1 -1
- package/skills/peaks-solo/SKILL.md +21 -0
- package/skills/peaks-solo/references/triage-decision-table.md +6 -0
- package/skills/peaks-sop/test-prompts.json +17 -0
- package/examples/video-demo/README.md +0 -142
- package/examples/video-demo/out/en-closing-960.png +0 -0
- package/examples/video-demo/out/zh-closing-960.png +0 -0
- package/examples/video-demo/preview/peaks-loop-demo-en.mp4 +0 -0
- package/examples/video-demo/preview/peaks-loop-demo.mp4 +0 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handoff frontmatter schema — types.
|
|
3
|
+
*
|
|
4
|
+
* Spec: docs/superpowers/plans/2026-06-25-slice-topology-multipass.md
|
|
5
|
+
* Phase 1, Task 4 (Handoff frontmatter types + parser + writer).
|
|
6
|
+
*
|
|
7
|
+
* A handoff artifact is a markdown file with a YAML frontmatter block
|
|
8
|
+
* carrying structured fields (rid, slice_id, status, ...) followed by a
|
|
9
|
+
* prose body. The frontmatter is the source of truth for downstream
|
|
10
|
+
* automation (peaks-rd, peaks-qa); the body is human/agent prose.
|
|
11
|
+
*
|
|
12
|
+
* Two schema versions exist:
|
|
13
|
+
* - "0" — legacy handoff (no frontmatter block). Fields default to
|
|
14
|
+
* `rid='unknown'`, `slice_id='unknown'`, `agent_id='unknown'`,
|
|
15
|
+
* `status='unknown'`, `created_at=epoch`.
|
|
16
|
+
* - "1" — current schema. All required fields must be present; the
|
|
17
|
+
* parser throws `IncompleteHandoffError` if any are missing.
|
|
18
|
+
*/
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handoff frontmatter — writer.
|
|
3
|
+
*
|
|
4
|
+
* Spec: docs/superpowers/plans/2026-06-25-slice-topology-multipass.md
|
|
5
|
+
* Phase 1, Task 4.
|
|
6
|
+
*
|
|
7
|
+
* Serializes a `HandoffFrontmatter` plus a body string into a single
|
|
8
|
+
* markdown file with the canonical layout:
|
|
9
|
+
*
|
|
10
|
+
* ---
|
|
11
|
+
* rid: "..."
|
|
12
|
+
* slice_id: "..."
|
|
13
|
+
* ...
|
|
14
|
+
* ---
|
|
15
|
+
*
|
|
16
|
+
* <body verbatim>
|
|
17
|
+
*
|
|
18
|
+
* The output of `writeHandoff` is round-trip compatible with
|
|
19
|
+
* `parseHandoff` — writing then parsing recovers the same frontmatter
|
|
20
|
+
* fields and body.
|
|
21
|
+
*/
|
|
22
|
+
import type { HandoffFrontmatter } from './handoff-types.js';
|
|
23
|
+
export declare function writeHandoff(filePath: string, frontmatter: HandoffFrontmatter, body: string): void;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handoff frontmatter — writer.
|
|
3
|
+
*
|
|
4
|
+
* Spec: docs/superpowers/plans/2026-06-25-slice-topology-multipass.md
|
|
5
|
+
* Phase 1, Task 4.
|
|
6
|
+
*
|
|
7
|
+
* Serializes a `HandoffFrontmatter` plus a body string into a single
|
|
8
|
+
* markdown file with the canonical layout:
|
|
9
|
+
*
|
|
10
|
+
* ---
|
|
11
|
+
* rid: "..."
|
|
12
|
+
* slice_id: "..."
|
|
13
|
+
* ...
|
|
14
|
+
* ---
|
|
15
|
+
*
|
|
16
|
+
* <body verbatim>
|
|
17
|
+
*
|
|
18
|
+
* The output of `writeHandoff` is round-trip compatible with
|
|
19
|
+
* `parseHandoff` — writing then parsing recovers the same frontmatter
|
|
20
|
+
* fields and body.
|
|
21
|
+
*/
|
|
22
|
+
import { writeFileSync } from 'node:fs';
|
|
23
|
+
import { stringify as stringifyYaml } from 'yaml';
|
|
24
|
+
const FRONTMATTER_OPEN = '---\n';
|
|
25
|
+
const FRONTMATTER_CLOSE = '\n---\n\n';
|
|
26
|
+
export function writeHandoff(filePath, frontmatter, body) {
|
|
27
|
+
const yamlStr = stringifyYaml(frontmatter).trimEnd();
|
|
28
|
+
const content = `${FRONTMATTER_OPEN}${yamlStr}${FRONTMATTER_CLOSE}${body}`;
|
|
29
|
+
writeFileSync(filePath, content, 'utf8');
|
|
30
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slice 2026-07-02-auto-compact-zero-pause — `ide-native` pathway
|
|
3
|
+
* hook install/remove service.
|
|
4
|
+
*
|
|
5
|
+
* Writes the auto-compact PreToolUse hook into the consumer
|
|
6
|
+
* project's `.claude/settings.local.json` so the next Bash or Task
|
|
7
|
+
* tool call from the running Claude Code session reads
|
|
8
|
+
* `CLAUDE_CONTEXT_USAGE_PERCENT` and, at ratio ≥ 0.95, in-band fires
|
|
9
|
+
* `claude --compact` against the current runner (not a child process).
|
|
10
|
+
*
|
|
11
|
+
* Idempotency contract:
|
|
12
|
+
* - install is idempotent — calling `installAutoCompactHook`
|
|
13
|
+
* twice produces a byte-identical file (after stripping the
|
|
14
|
+
* magic comment). The on-disk matcher entry is the single
|
|
15
|
+
* source of truth.
|
|
16
|
+
* - remove is idempotent — calling `removeAutoCompactHook` when
|
|
17
|
+
* the hook is absent is a no-op.
|
|
18
|
+
* - other PreToolUse entries are untouched on install AND remove.
|
|
19
|
+
*
|
|
20
|
+
* Magic comment marker: `peaks:auto-compact-hook-do-not-edit`. The
|
|
21
|
+
* comment sits next to the matcher entry so a human reading the file
|
|
22
|
+
* sees the boundary; an automated diff/remove op keys off the marker
|
|
23
|
+
* + the `matcher` regex.
|
|
24
|
+
*
|
|
25
|
+
* Pure data + minimal IO: `installAutoCompactHook` and
|
|
26
|
+
* `removeAutoCompactHook` accept `settingsPath` so callers can pick
|
|
27
|
+
* `.claude/settings.local.json` (default) or pass an explicit path
|
|
28
|
+
* for tests. The functions write to disk via `fs.writeFileSync` so
|
|
29
|
+
* the on-disk file matches the in-memory template byte-for-byte
|
|
30
|
+
* (modulo the magic comment which is excluded from the data
|
|
31
|
+
* structure; see `AUTO_COMPACT_HOOK_MATCHER`).
|
|
32
|
+
*/
|
|
33
|
+
/**
|
|
34
|
+
* Stable matcher for the auto-compact hook. Single source of truth
|
|
35
|
+
* — `install` and `remove` both key off this constant so the
|
|
36
|
+
* invariants can't drift between the two paths.
|
|
37
|
+
*/
|
|
38
|
+
export declare const AUTO_COMPACT_HOOK_MATCHER = "Bash|Task";
|
|
39
|
+
/**
|
|
40
|
+
* Stable command the hook fires. Wraps `peaks compact auto` so the
|
|
41
|
+
* heavy lifting (ratio probe + in-band `claude --compact` spawn)
|
|
42
|
+
* lives in the CLI surface, not inlined into the hook.
|
|
43
|
+
*
|
|
44
|
+
* `npx peaks` is deliberately omitted: the project-local install
|
|
45
|
+
* puts `peaks` on PATH inside the consumer repo (postinstall step),
|
|
46
|
+
* so the unqualified command works in the same shell the runner
|
|
47
|
+
* is using.
|
|
48
|
+
*/
|
|
49
|
+
export declare const AUTO_COMPACT_HOOK_COMMAND = "peaks compact auto";
|
|
50
|
+
/**
|
|
51
|
+
* Magic comment marker that fences the auto-compatchook block.
|
|
52
|
+
* Both install (writes the marker) and remove (matches on it) use
|
|
53
|
+
* this string so the comment is the only place the boundary lives.
|
|
54
|
+
*/
|
|
55
|
+
export declare const AUTO_COMPACT_HOOK_MARKER = "peaks:auto-compact-hook-do-not-edit";
|
|
56
|
+
/**
|
|
57
|
+
* Default on-disk location — kept here (not in claude-settings-template)
|
|
58
|
+
* because the auto-compact hook is a separate install surface from
|
|
59
|
+
* the fact-forcing gate bypass template.
|
|
60
|
+
*/
|
|
61
|
+
export declare const AUTO_COMPACT_HOOK_SETTINGS_PATH = ".claude/settings.local.json";
|
|
62
|
+
/**
|
|
63
|
+
* Result envelope for `installAutoCompactHook`.
|
|
64
|
+
*/
|
|
65
|
+
export type AutoCompactHookInstallResult = {
|
|
66
|
+
readonly action: 'installed';
|
|
67
|
+
readonly settingsPath: string;
|
|
68
|
+
} | {
|
|
69
|
+
readonly action: 'already-installed';
|
|
70
|
+
readonly settingsPath: string;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Result envelope for `removeAutoCompactHook`.
|
|
74
|
+
*/
|
|
75
|
+
export type AutoCompactHookRemoveResult = {
|
|
76
|
+
readonly action: 'removed';
|
|
77
|
+
readonly settingsPath: string;
|
|
78
|
+
} | {
|
|
79
|
+
readonly action: 'absent';
|
|
80
|
+
readonly settingsPath: string;
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* Install the auto-compact PreToolUse hook. Idempotent: a re-run
|
|
84
|
+
* returns `action: 'already-installed'` and does NOT re-write the
|
|
85
|
+
* file (preserves any unrelated edits the user has made to other
|
|
86
|
+
* entries).
|
|
87
|
+
*/
|
|
88
|
+
export declare function installAutoCompactHook(input: {
|
|
89
|
+
readonly projectRoot: string;
|
|
90
|
+
readonly settingsPath?: string;
|
|
91
|
+
}): AutoCompactHookInstallResult;
|
|
92
|
+
/**
|
|
93
|
+
* Remove the auto-compact PreToolUse hook. Idempotent: missing hook
|
|
94
|
+
* returns `action: 'absent'` without re-writing the file.
|
|
95
|
+
*
|
|
96
|
+
* Other PreToolUse entries are left untouched. The settings file
|
|
97
|
+
* structure is preserved (top-level keys like `permissions` are not
|
|
98
|
+
* deleted).
|
|
99
|
+
*/
|
|
100
|
+
export declare function removeAutoCompactHook(input: {
|
|
101
|
+
readonly projectRoot: string;
|
|
102
|
+
readonly settingsPath?: string;
|
|
103
|
+
}): AutoCompactHookRemoveResult;
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slice 2026-07-02-auto-compact-zero-pause — `ide-native` pathway
|
|
3
|
+
* hook install/remove service.
|
|
4
|
+
*
|
|
5
|
+
* Writes the auto-compact PreToolUse hook into the consumer
|
|
6
|
+
* project's `.claude/settings.local.json` so the next Bash or Task
|
|
7
|
+
* tool call from the running Claude Code session reads
|
|
8
|
+
* `CLAUDE_CONTEXT_USAGE_PERCENT` and, at ratio ≥ 0.95, in-band fires
|
|
9
|
+
* `claude --compact` against the current runner (not a child process).
|
|
10
|
+
*
|
|
11
|
+
* Idempotency contract:
|
|
12
|
+
* - install is idempotent — calling `installAutoCompactHook`
|
|
13
|
+
* twice produces a byte-identical file (after stripping the
|
|
14
|
+
* magic comment). The on-disk matcher entry is the single
|
|
15
|
+
* source of truth.
|
|
16
|
+
* - remove is idempotent — calling `removeAutoCompactHook` when
|
|
17
|
+
* the hook is absent is a no-op.
|
|
18
|
+
* - other PreToolUse entries are untouched on install AND remove.
|
|
19
|
+
*
|
|
20
|
+
* Magic comment marker: `peaks:auto-compact-hook-do-not-edit`. The
|
|
21
|
+
* comment sits next to the matcher entry so a human reading the file
|
|
22
|
+
* sees the boundary; an automated diff/remove op keys off the marker
|
|
23
|
+
* + the `matcher` regex.
|
|
24
|
+
*
|
|
25
|
+
* Pure data + minimal IO: `installAutoCompactHook` and
|
|
26
|
+
* `removeAutoCompactHook` accept `settingsPath` so callers can pick
|
|
27
|
+
* `.claude/settings.local.json` (default) or pass an explicit path
|
|
28
|
+
* for tests. The functions write to disk via `fs.writeFileSync` so
|
|
29
|
+
* the on-disk file matches the in-memory template byte-for-byte
|
|
30
|
+
* (modulo the magic comment which is excluded from the data
|
|
31
|
+
* structure; see `AUTO_COMPACT_HOOK_MATCHER`).
|
|
32
|
+
*/
|
|
33
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
34
|
+
import { dirname, join } from 'node:path';
|
|
35
|
+
/**
|
|
36
|
+
* Stable matcher for the auto-compact hook. Single source of truth
|
|
37
|
+
* — `install` and `remove` both key off this constant so the
|
|
38
|
+
* invariants can't drift between the two paths.
|
|
39
|
+
*/
|
|
40
|
+
export const AUTO_COMPACT_HOOK_MATCHER = 'Bash|Task';
|
|
41
|
+
/**
|
|
42
|
+
* Stable command the hook fires. Wraps `peaks compact auto` so the
|
|
43
|
+
* heavy lifting (ratio probe + in-band `claude --compact` spawn)
|
|
44
|
+
* lives in the CLI surface, not inlined into the hook.
|
|
45
|
+
*
|
|
46
|
+
* `npx peaks` is deliberately omitted: the project-local install
|
|
47
|
+
* puts `peaks` on PATH inside the consumer repo (postinstall step),
|
|
48
|
+
* so the unqualified command works in the same shell the runner
|
|
49
|
+
* is using.
|
|
50
|
+
*/
|
|
51
|
+
export const AUTO_COMPACT_HOOK_COMMAND = 'peaks compact auto';
|
|
52
|
+
/**
|
|
53
|
+
* Magic comment marker that fences the auto-compatchook block.
|
|
54
|
+
* Both install (writes the marker) and remove (matches on it) use
|
|
55
|
+
* this string so the comment is the only place the boundary lives.
|
|
56
|
+
*/
|
|
57
|
+
export const AUTO_COMPACT_HOOK_MARKER = 'peaks:auto-compact-hook-do-not-edit';
|
|
58
|
+
/**
|
|
59
|
+
* Default on-disk location — kept here (not in claude-settings-template)
|
|
60
|
+
* because the auto-compact hook is a separate install surface from
|
|
61
|
+
* the fact-forcing gate bypass template.
|
|
62
|
+
*/
|
|
63
|
+
export const AUTO_COMPACT_HOOK_SETTINGS_PATH = '.claude/settings.local.json';
|
|
64
|
+
function isObject(value) {
|
|
65
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
66
|
+
}
|
|
67
|
+
function readSettings(settingsPath) {
|
|
68
|
+
if (!existsSync(settingsPath))
|
|
69
|
+
return {};
|
|
70
|
+
try {
|
|
71
|
+
const raw = readFileSync(settingsPath, 'utf8');
|
|
72
|
+
const parsed = JSON.parse(raw);
|
|
73
|
+
return isObject(parsed) ? parsed : {};
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
// Malformed JSON → start fresh so install doesn't error. The
|
|
77
|
+
// caller is the human / CLI, not an LLM (idempotency matters
|
|
78
|
+
// more than preserve-on-corruption here).
|
|
79
|
+
return {};
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function writeSettings(settingsPath, settings) {
|
|
83
|
+
const dir = dirname(settingsPath);
|
|
84
|
+
if (!existsSync(dir))
|
|
85
|
+
mkdirSync(dir, { recursive: true });
|
|
86
|
+
// 2-space JSON matches the existing template writer's style so
|
|
87
|
+
// `diff` against pre-install files is minimal.
|
|
88
|
+
writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + '\n', 'utf8');
|
|
89
|
+
}
|
|
90
|
+
function isAutoCompactEntry(entry) {
|
|
91
|
+
return entry.matcher === AUTO_COMPACT_HOOK_MATCHER;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Install the auto-compact PreToolUse hook. Idempotent: a re-run
|
|
95
|
+
* returns `action: 'already-installed'` and does NOT re-write the
|
|
96
|
+
* file (preserves any unrelated edits the user has made to other
|
|
97
|
+
* entries).
|
|
98
|
+
*/
|
|
99
|
+
export function installAutoCompactHook(input) {
|
|
100
|
+
const settingsPath = input.settingsPath ?? join(input.projectRoot, AUTO_COMPACT_HOOK_SETTINGS_PATH);
|
|
101
|
+
const settings = readSettings(settingsPath);
|
|
102
|
+
const hooks = settings.hooks ?? {};
|
|
103
|
+
const preToolUse = hooks.PreToolUse ?? [];
|
|
104
|
+
const alreadyInstalled = preToolUse.some(isAutoCompactEntry);
|
|
105
|
+
if (alreadyInstalled) {
|
|
106
|
+
return { action: 'already-installed', settingsPath };
|
|
107
|
+
}
|
|
108
|
+
const nextPreToolUse = [
|
|
109
|
+
...preToolUse,
|
|
110
|
+
{
|
|
111
|
+
matcher: AUTO_COMPACT_HOOK_MATCHER,
|
|
112
|
+
hooks: [
|
|
113
|
+
{
|
|
114
|
+
type: 'command',
|
|
115
|
+
command: AUTO_COMPACT_HOOK_COMMAND
|
|
116
|
+
}
|
|
117
|
+
]
|
|
118
|
+
}
|
|
119
|
+
];
|
|
120
|
+
writeSettings(settingsPath, {
|
|
121
|
+
...settings,
|
|
122
|
+
hooks: {
|
|
123
|
+
...hooks,
|
|
124
|
+
PreToolUse: nextPreToolUse
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
return { action: 'installed', settingsPath };
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Remove the auto-compact PreToolUse hook. Idempotent: missing hook
|
|
131
|
+
* returns `action: 'absent'` without re-writing the file.
|
|
132
|
+
*
|
|
133
|
+
* Other PreToolUse entries are left untouched. The settings file
|
|
134
|
+
* structure is preserved (top-level keys like `permissions` are not
|
|
135
|
+
* deleted).
|
|
136
|
+
*/
|
|
137
|
+
export function removeAutoCompactHook(input) {
|
|
138
|
+
const settingsPath = input.settingsPath ?? join(input.projectRoot, AUTO_COMPACT_HOOK_SETTINGS_PATH);
|
|
139
|
+
if (!existsSync(settingsPath))
|
|
140
|
+
return { action: 'absent', settingsPath };
|
|
141
|
+
const settings = readSettings(settingsPath);
|
|
142
|
+
const hooks = settings.hooks ?? {};
|
|
143
|
+
const preToolUse = hooks.PreToolUse ?? [];
|
|
144
|
+
const nextPreToolUse = preToolUse.filter((entry) => !isAutoCompactEntry(entry));
|
|
145
|
+
if (nextPreToolUse.length === preToolUse.length) {
|
|
146
|
+
return { action: 'absent', settingsPath };
|
|
147
|
+
}
|
|
148
|
+
writeSettings(settingsPath, {
|
|
149
|
+
...settings,
|
|
150
|
+
hooks: {
|
|
151
|
+
...hooks,
|
|
152
|
+
PreToolUse: nextPreToolUse
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
return { action: 'removed', settingsPath };
|
|
156
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slice 003-2026-06-16-hook-governance — single source of truth for the
|
|
3
|
+
* peaks hook output contract. See `.claude/HOOKS.md` for the canonical doc.
|
|
4
|
+
*
|
|
5
|
+
* Three helpers, one job: enforce the stdout/stderr/exit-code discipline
|
|
6
|
+
* that every peaks-managed hook command MUST follow. Centralising the
|
|
7
|
+
* contract here lets us:
|
|
8
|
+
* 1. Pin the contract in cross-platform tests (tests/unit/hooks/contract.test.ts).
|
|
9
|
+
* 2. Add a new helper (e.g. emitAsk) without changing every call site.
|
|
10
|
+
* 3. Stop hand-rolling the deny JSON in gate-commands.ts / hook-handle.ts,
|
|
11
|
+
* which historically drifted into "PreToolUse:Bash hook error" noise.
|
|
12
|
+
*
|
|
13
|
+
* The contract (intentionally redundant with the doc; the doc is for humans,
|
|
14
|
+
* this is for the type checker):
|
|
15
|
+
*
|
|
16
|
+
* emitHint(io, text)
|
|
17
|
+
* - Writes `text` to io.stderr with a trailing newline.
|
|
18
|
+
* - Does NOT write to io.stdout (the host reads stdout as the decision
|
|
19
|
+
* signal; a hint on stdout is interpreted as a malformed decision).
|
|
20
|
+
* - Does NOT set a non-zero process.exitCode. A hint is diagnostic only;
|
|
21
|
+
* it must not change the host's permission decision.
|
|
22
|
+
* - Empty `text` is a no-op (skips both the write and the trailing
|
|
23
|
+
* newline so we never pollute stderr with blank lines).
|
|
24
|
+
*
|
|
25
|
+
* emitBlock(io, reason)
|
|
26
|
+
* - Builds the Claude-Code-shaped deny JSON:
|
|
27
|
+
* { "hookSpecificOutput": { "hookEventName": "PreToolUse",
|
|
28
|
+
* "permissionDecision": "deny",
|
|
29
|
+
* "permissionDecisionReason": <reason> } }
|
|
30
|
+
* JSON.stringify is the canonical escape for the reason; quotes,
|
|
31
|
+
* backslashes, and newlines inside the reason are preserved.
|
|
32
|
+
* - Writes the serialized JSON to io.stdout with a trailing newline.
|
|
33
|
+
* - Sets process.exitCode = 2. Claude Code treats exit-2 as the
|
|
34
|
+
* "block" signal (see [Fact-Forcing Gate] note in .claude/HOOKS.md);
|
|
35
|
+
* the JSON on stdout is the human-readable reason for the LLM.
|
|
36
|
+
* - Surfaces the reason to io.stderr so an operator running the
|
|
37
|
+
* hook command directly (or the LLM inspecting logs) can see
|
|
38
|
+
* WHY the tool was blocked, not just THAT it was blocked.
|
|
39
|
+
*
|
|
40
|
+
* emitDecision(io, decision)
|
|
41
|
+
* - Writes the caller-provided decision JSON to io.stdout with a
|
|
42
|
+
* trailing newline and returns the serialized string. Used by
|
|
43
|
+
* IDE adapters that produce a different shape (e.g. Trae uses
|
|
44
|
+
* hookEventName='beforeToolCall' instead of 'PreToolUse'). The
|
|
45
|
+
* helper is intentionally shape-agnostic: the caller is the
|
|
46
|
+
* adapter's `formatDecisionResponse`, which already knows the
|
|
47
|
+
* IDE-specific shape.
|
|
48
|
+
* - Does NOT set a non-zero process.exitCode. The decision is
|
|
49
|
+
* communicated entirely via the stdout JSON; the host reads
|
|
50
|
+
* permissionDecision='deny' to block. Setting exit=2 on top
|
|
51
|
+
* of the JSON would be double-signaling.
|
|
52
|
+
*
|
|
53
|
+
* Platform notes:
|
|
54
|
+
* - The contract is platform-independent. The helpers write to ProgramIO
|
|
55
|
+
* (stdout / stderr) only; no path separators, no shell escaping, no
|
|
56
|
+
* line-ending variants. The cross-platform contract test pins this.
|
|
57
|
+
* - On win32, Node's process.stdout and process.stderr are binary-safe
|
|
58
|
+
* and UTF-8; do not introduce \r\n anywhere. The contract is LF.
|
|
59
|
+
*/
|
|
60
|
+
import type { ProgramIO } from '../../cli/cli-helpers.js';
|
|
61
|
+
/** Exit code the host treats as a hard block (Claude Code convention). */
|
|
62
|
+
export declare const HOOK_BLOCK_EXIT_CODE = 2;
|
|
63
|
+
/** Canonical Claude-Code hook event name. */
|
|
64
|
+
export declare const CLAUDE_CODE_HOOK_EVENT = "PreToolUse";
|
|
65
|
+
/** Permissive decision shape — anything JSON-serialisable. */
|
|
66
|
+
export type DecisionShape = Record<string, unknown>;
|
|
67
|
+
/**
|
|
68
|
+
* Hint — diagnostic, stderr-only, never affects the host decision.
|
|
69
|
+
* Returns the bytes written to stderr (or '' for an empty hint).
|
|
70
|
+
*/
|
|
71
|
+
export declare function emitHint(io: ProgramIO, text: string): string;
|
|
72
|
+
/** Result of a block emission — the bytes written to stdout and the original reason. */
|
|
73
|
+
export type EmitBlockResult = {
|
|
74
|
+
readonly stdout: string;
|
|
75
|
+
readonly reason: string;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Block — deny a tool call. Writes the Claude-Code-shaped deny JSON to
|
|
79
|
+
* stdout, sets process.exitCode = 2, and surfaces the reason to stderr.
|
|
80
|
+
*/
|
|
81
|
+
export declare function emitBlock(io: ProgramIO, reason: string): EmitBlockResult;
|
|
82
|
+
/**
|
|
83
|
+
* Decision — write a caller-built decision object to stdout. Returns the
|
|
84
|
+
* serialized bytes so callers can log / assert on the exact string.
|
|
85
|
+
*
|
|
86
|
+
* Accepts either a plain object (canonical path; the helper does the
|
|
87
|
+
* JSON.stringify) or a pre-serialized string (used by adapter dispatch
|
|
88
|
+
* where `formatDecisionResponse` already serialized the IDE-shaped
|
|
89
|
+
* envelope). The string form is the legacy escape hatch and should not
|
|
90
|
+
* be used for new code.
|
|
91
|
+
*/
|
|
92
|
+
export declare function emitDecision(io: ProgramIO, decision: DecisionShape | string): string;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slice 003-2026-06-16-hook-governance — single source of truth for the
|
|
3
|
+
* peaks hook output contract. See `.claude/HOOKS.md` for the canonical doc.
|
|
4
|
+
*
|
|
5
|
+
* Three helpers, one job: enforce the stdout/stderr/exit-code discipline
|
|
6
|
+
* that every peaks-managed hook command MUST follow. Centralising the
|
|
7
|
+
* contract here lets us:
|
|
8
|
+
* 1. Pin the contract in cross-platform tests (tests/unit/hooks/contract.test.ts).
|
|
9
|
+
* 2. Add a new helper (e.g. emitAsk) without changing every call site.
|
|
10
|
+
* 3. Stop hand-rolling the deny JSON in gate-commands.ts / hook-handle.ts,
|
|
11
|
+
* which historically drifted into "PreToolUse:Bash hook error" noise.
|
|
12
|
+
*
|
|
13
|
+
* The contract (intentionally redundant with the doc; the doc is for humans,
|
|
14
|
+
* this is for the type checker):
|
|
15
|
+
*
|
|
16
|
+
* emitHint(io, text)
|
|
17
|
+
* - Writes `text` to io.stderr with a trailing newline.
|
|
18
|
+
* - Does NOT write to io.stdout (the host reads stdout as the decision
|
|
19
|
+
* signal; a hint on stdout is interpreted as a malformed decision).
|
|
20
|
+
* - Does NOT set a non-zero process.exitCode. A hint is diagnostic only;
|
|
21
|
+
* it must not change the host's permission decision.
|
|
22
|
+
* - Empty `text` is a no-op (skips both the write and the trailing
|
|
23
|
+
* newline so we never pollute stderr with blank lines).
|
|
24
|
+
*
|
|
25
|
+
* emitBlock(io, reason)
|
|
26
|
+
* - Builds the Claude-Code-shaped deny JSON:
|
|
27
|
+
* { "hookSpecificOutput": { "hookEventName": "PreToolUse",
|
|
28
|
+
* "permissionDecision": "deny",
|
|
29
|
+
* "permissionDecisionReason": <reason> } }
|
|
30
|
+
* JSON.stringify is the canonical escape for the reason; quotes,
|
|
31
|
+
* backslashes, and newlines inside the reason are preserved.
|
|
32
|
+
* - Writes the serialized JSON to io.stdout with a trailing newline.
|
|
33
|
+
* - Sets process.exitCode = 2. Claude Code treats exit-2 as the
|
|
34
|
+
* "block" signal (see [Fact-Forcing Gate] note in .claude/HOOKS.md);
|
|
35
|
+
* the JSON on stdout is the human-readable reason for the LLM.
|
|
36
|
+
* - Surfaces the reason to io.stderr so an operator running the
|
|
37
|
+
* hook command directly (or the LLM inspecting logs) can see
|
|
38
|
+
* WHY the tool was blocked, not just THAT it was blocked.
|
|
39
|
+
*
|
|
40
|
+
* emitDecision(io, decision)
|
|
41
|
+
* - Writes the caller-provided decision JSON to io.stdout with a
|
|
42
|
+
* trailing newline and returns the serialized string. Used by
|
|
43
|
+
* IDE adapters that produce a different shape (e.g. Trae uses
|
|
44
|
+
* hookEventName='beforeToolCall' instead of 'PreToolUse'). The
|
|
45
|
+
* helper is intentionally shape-agnostic: the caller is the
|
|
46
|
+
* adapter's `formatDecisionResponse`, which already knows the
|
|
47
|
+
* IDE-specific shape.
|
|
48
|
+
* - Does NOT set a non-zero process.exitCode. The decision is
|
|
49
|
+
* communicated entirely via the stdout JSON; the host reads
|
|
50
|
+
* permissionDecision='deny' to block. Setting exit=2 on top
|
|
51
|
+
* of the JSON would be double-signaling.
|
|
52
|
+
*
|
|
53
|
+
* Platform notes:
|
|
54
|
+
* - The contract is platform-independent. The helpers write to ProgramIO
|
|
55
|
+
* (stdout / stderr) only; no path separators, no shell escaping, no
|
|
56
|
+
* line-ending variants. The cross-platform contract test pins this.
|
|
57
|
+
* - On win32, Node's process.stdout and process.stderr are binary-safe
|
|
58
|
+
* and UTF-8; do not introduce \r\n anywhere. The contract is LF.
|
|
59
|
+
*/
|
|
60
|
+
/** Exit code the host treats as a hard block (Claude Code convention). */
|
|
61
|
+
export const HOOK_BLOCK_EXIT_CODE = 2;
|
|
62
|
+
/** Canonical Claude-Code hook event name. */
|
|
63
|
+
export const CLAUDE_CODE_HOOK_EVENT = 'PreToolUse';
|
|
64
|
+
/**
|
|
65
|
+
* Hint — diagnostic, stderr-only, never affects the host decision.
|
|
66
|
+
* Returns the bytes written to stderr (or '' for an empty hint).
|
|
67
|
+
*/
|
|
68
|
+
export function emitHint(io, text) {
|
|
69
|
+
if (text.length === 0) {
|
|
70
|
+
return '';
|
|
71
|
+
}
|
|
72
|
+
const line = text.endsWith('\n') ? text : `${text}\n`;
|
|
73
|
+
io.stderr(line);
|
|
74
|
+
return line;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Block — deny a tool call. Writes the Claude-Code-shaped deny JSON to
|
|
78
|
+
* stdout, sets process.exitCode = 2, and surfaces the reason to stderr.
|
|
79
|
+
*/
|
|
80
|
+
export function emitBlock(io, reason) {
|
|
81
|
+
const safeReason = reason.length > 0 ? reason : 'denied by peaks';
|
|
82
|
+
const payload = {
|
|
83
|
+
hookSpecificOutput: {
|
|
84
|
+
hookEventName: CLAUDE_CODE_HOOK_EVENT,
|
|
85
|
+
permissionDecision: 'deny',
|
|
86
|
+
permissionDecisionReason: safeReason
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
const serialized = JSON.stringify(payload);
|
|
90
|
+
io.stdout(serialized);
|
|
91
|
+
io.stdout('\n');
|
|
92
|
+
io.stderr(`peaks: ${safeReason}\n`);
|
|
93
|
+
process.exitCode = HOOK_BLOCK_EXIT_CODE;
|
|
94
|
+
return { stdout: serialized, reason: safeReason };
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Decision — write a caller-built decision object to stdout. Returns the
|
|
98
|
+
* serialized bytes so callers can log / assert on the exact string.
|
|
99
|
+
*
|
|
100
|
+
* Accepts either a plain object (canonical path; the helper does the
|
|
101
|
+
* JSON.stringify) or a pre-serialized string (used by adapter dispatch
|
|
102
|
+
* where `formatDecisionResponse` already serialized the IDE-shaped
|
|
103
|
+
* envelope). The string form is the legacy escape hatch and should not
|
|
104
|
+
* be used for new code.
|
|
105
|
+
*/
|
|
106
|
+
export function emitDecision(io, decision) {
|
|
107
|
+
const serialized = typeof decision === 'string' ? decision : JSON.stringify(decision);
|
|
108
|
+
io.stdout(serialized);
|
|
109
|
+
io.stdout('\n');
|
|
110
|
+
return serialized;
|
|
111
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type DetectPresenceMarkerInput = {
|
|
2
|
+
project: string;
|
|
3
|
+
latestAssistantMessage: string;
|
|
4
|
+
};
|
|
5
|
+
export type DetectPresenceMarkerResult = {
|
|
6
|
+
active: boolean;
|
|
7
|
+
skill?: string;
|
|
8
|
+
markerFound: boolean;
|
|
9
|
+
warning?: string;
|
|
10
|
+
};
|
|
11
|
+
export type PresenceMarkerWarning = (typeof PRESENCE_MARKER_WARNING)[number];
|
|
12
|
+
export declare const PRESENCE_MARKER_WARNING: readonly ["Peaks skill context may have been lost from this conversation; please re-invoke /peaks-<skill>."];
|
|
13
|
+
/**
|
|
14
|
+
* Pure read-only presence-marker detection. No I/O side effects.
|
|
15
|
+
*/
|
|
16
|
+
export declare function detectPresenceMarker(input: DetectPresenceMarkerInput): DetectPresenceMarkerResult;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
/**
|
|
4
|
+
* Slice 028 (Q1=A): hook-based skill-presence marker detection.
|
|
5
|
+
*
|
|
6
|
+
* Background: the consumer-facing CLAUDE.md template (rendered by
|
|
7
|
+
* `peaks standards init` / `peaks standards update`) instructs the LLM
|
|
8
|
+
* to display a compact status header
|
|
9
|
+
* `Peaks-Loop Skill: <skill> | Peaks-Loop Gate: <gate> | Next: <one short action>`
|
|
10
|
+
* on every turn while a peaks skill is active. If the LLM forgets (e.g.
|
|
11
|
+
* because of context compaction or a fresh session), the user is left
|
|
12
|
+
* without an at-a-glance signal that peaks is orchestrating the work.
|
|
13
|
+
*
|
|
14
|
+
* This service is the read-only side of the slice-028 detection
|
|
15
|
+
* mechanism. The PostToolUse hook (or any other consumer, e.g.
|
|
16
|
+
* `peaks skill detect-marker-loss`) calls
|
|
17
|
+
* `detectPresenceMarker({ project, latestAssistantMessage })`
|
|
18
|
+
* and gets back:
|
|
19
|
+
*
|
|
20
|
+
* - `active`: whether an active-skill marker was found on disk.
|
|
21
|
+
* - `skill?`: the active skill name, if any.
|
|
22
|
+
* - `markerFound`: whether the latest assistant message carries the
|
|
23
|
+
* expected `Peaks-Loop Skill:` / `Peaks-Loop Gate:`
|
|
24
|
+
* marker. Always `false` when `active` is `false`.
|
|
25
|
+
* - `warning?`: a human-readable warning emitted when the marker
|
|
26
|
+
* is missing while the presence is active.
|
|
27
|
+
*
|
|
28
|
+
* The function is pure: it does not write to disk, does not clear the
|
|
29
|
+
* presence file, and does not depend on `process.cwd()`. The caller is
|
|
30
|
+
* expected to provide the absolute project root (peaks-loop convention
|
|
31
|
+
* from the standards-commands family — see dev-preference rule
|
|
32
|
+
* `project-option-is-canonical-project-root-source`).
|
|
33
|
+
*/
|
|
34
|
+
const PRESENCE_CANONICAL_PATH = '.peaks/_runtime/active-skill.json';
|
|
35
|
+
const PRESENCE_LEGACY_PATH = '.peaks/.active-skill.json';
|
|
36
|
+
const MARKER_PRIMARY = 'Peaks-Loop Skill:';
|
|
37
|
+
const MARKER_SECONDARY = 'Peaks-Loop Gate:';
|
|
38
|
+
const SKILL_NAME_RE = /"skill"\s*:\s*"([^"\\]*(?:\\.[^"\\]*)*)"/;
|
|
39
|
+
export const PRESENCE_MARKER_WARNING = [
|
|
40
|
+
'Peaks skill context may have been lost from this conversation; please re-invoke /peaks-<skill>.'
|
|
41
|
+
];
|
|
42
|
+
function readPresenceFile(absolutePath) {
|
|
43
|
+
if (!existsSync(absolutePath))
|
|
44
|
+
return null;
|
|
45
|
+
let raw;
|
|
46
|
+
try {
|
|
47
|
+
raw = readFileSync(absolutePath, 'utf8');
|
|
48
|
+
}
|
|
49
|
+
catch { // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
let parsed;
|
|
53
|
+
try {
|
|
54
|
+
parsed = JSON.parse(raw);
|
|
55
|
+
}
|
|
56
|
+
catch { // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
if (parsed === null || typeof parsed !== 'object')
|
|
60
|
+
return null;
|
|
61
|
+
const skillMatch = SKILL_NAME_RE.exec(JSON.stringify(parsed));
|
|
62
|
+
if (skillMatch === null)
|
|
63
|
+
return null;
|
|
64
|
+
if (typeof skillMatch[1] !== 'string' || skillMatch[1].length === 0)
|
|
65
|
+
return null;
|
|
66
|
+
return { skill: skillMatch[1] };
|
|
67
|
+
}
|
|
68
|
+
function readPresenceBackCompat(project) {
|
|
69
|
+
const projectRoot = resolve(project);
|
|
70
|
+
const canonicalPath = resolve(projectRoot, PRESENCE_CANONICAL_PATH);
|
|
71
|
+
const legacyPath = resolve(projectRoot, PRESENCE_LEGACY_PATH);
|
|
72
|
+
for (const candidate of [canonicalPath, legacyPath]) {
|
|
73
|
+
const parsed = readPresenceFile(candidate);
|
|
74
|
+
if (parsed === null)
|
|
75
|
+
continue;
|
|
76
|
+
return { skill: parsed.skill, path: candidate };
|
|
77
|
+
}
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
function messageHasMarker(message) {
|
|
81
|
+
if (message.length === 0)
|
|
82
|
+
return false;
|
|
83
|
+
return message.includes(MARKER_PRIMARY) || message.includes(MARKER_SECONDARY);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Pure read-only presence-marker detection. No I/O side effects.
|
|
87
|
+
*/
|
|
88
|
+
export function detectPresenceMarker(input) {
|
|
89
|
+
const project = input.project;
|
|
90
|
+
const message = input.latestAssistantMessage ?? '';
|
|
91
|
+
const presence = readPresenceBackCompat(project);
|
|
92
|
+
if (presence === null) {
|
|
93
|
+
return { active: false, markerFound: false };
|
|
94
|
+
}
|
|
95
|
+
const markerFound = messageHasMarker(message);
|
|
96
|
+
if (markerFound) {
|
|
97
|
+
return { active: true, skill: presence.skill, markerFound: true };
|
|
98
|
+
}
|
|
99
|
+
return {
|
|
100
|
+
active: true,
|
|
101
|
+
skill: presence.skill,
|
|
102
|
+
markerFound: false,
|
|
103
|
+
warning: PRESENCE_MARKER_WARNING[0]
|
|
104
|
+
};
|
|
105
|
+
}
|