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,432 @@
|
|
|
1
|
+
import { mkdir } from 'node:fs/promises';
|
|
2
|
+
import { existsSync, lstatSync, readdirSync } from 'node:fs';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { isDirectory } from 'peaks-loop-shared/fs';
|
|
5
|
+
import { getSessionId, setCurrentSessionBinding, setSessionMeta } from '../session/session-manager.js';
|
|
6
|
+
/**
|
|
7
|
+
* Slice 2026-06-29-change-id-root-removal: list the immediate children of
|
|
8
|
+
* `.peaks/` so the legacy sibling-dir guard can enumerate date-stamped
|
|
9
|
+
* residue dirs without re-implementing `readdirSync` inline. Returns
|
|
10
|
+
* `[]` when the `.peaks/` dir does not exist (legitimate first-run
|
|
11
|
+
* outcome).
|
|
12
|
+
*/
|
|
13
|
+
function listPeaksRuntimeSiblings(projectRoot) {
|
|
14
|
+
const peaksDir = join(projectRoot, '.peaks');
|
|
15
|
+
if (!existsSync(peaksDir))
|
|
16
|
+
return [];
|
|
17
|
+
try {
|
|
18
|
+
return readdirSync(peaksDir);
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return [];
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Slice 2026-06-29-change-id-root-removal: list the immediate children of
|
|
26
|
+
* `.peaks/_runtime/` so the legacy sibling-dir guard can enumerate
|
|
27
|
+
* date-stamped residue dirs at the runtime layer. Returns `[]` when
|
|
28
|
+
* the `.peaks/_runtime/` dir does not exist.
|
|
29
|
+
*/
|
|
30
|
+
function listRuntimeSiblings(projectRoot) {
|
|
31
|
+
const runtimeDir = join(projectRoot, '.peaks', '_runtime');
|
|
32
|
+
if (!existsSync(runtimeDir))
|
|
33
|
+
return [];
|
|
34
|
+
try {
|
|
35
|
+
return readdirSync(runtimeDir);
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Slice 2026-06-29-change-id-root-removal: returns `true` when the
|
|
43
|
+
* basename matches the auto-generated session-id shape
|
|
44
|
+
* `YYYY-MM-DD-<slug>` (the v2.8.3 hard-ban target). Bare dates
|
|
45
|
+
* (`YYYY-MM-DD`) are NOT auto-generated and are kept as plain dates.
|
|
46
|
+
*/
|
|
47
|
+
function isDateStampedSiblingId(name) {
|
|
48
|
+
if (!/^\d{4}-\d{2}-\d{2}-/.test(name))
|
|
49
|
+
return false;
|
|
50
|
+
if (/^\d{4}-\d{2}-\d{2}$/.test(name))
|
|
51
|
+
return false;
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
// Slice 2026-06-29-change-id-root-removal: `setCurrentChangeId` and
|
|
55
|
+
// `validateChangeIdOrThrow` were removed with the change-id axis. Init
|
|
56
|
+
// preserves the legacy-sibling-dir guard via inline `lstatSync`; the
|
|
57
|
+
// path-safety helpers moved to `shared/path-safety.ts` but this module
|
|
58
|
+
// does not currently use them.
|
|
59
|
+
import { detectMissingProjectStandards } from '../standards/missing-standards-detector.js';
|
|
60
|
+
import { detectLanguage, executeProjectStandardsInit } from '../standards/project-standards-service.js';
|
|
61
|
+
const SESSION_ID_PATTERN = /^\d{4}-\d{2}-\d{2}-[a-z][a-z0-9-]*[a-z0-9]$/;
|
|
62
|
+
const PROHIBITED_SUFFIXES = ['session', 'work', 'task', 'test', 'temp', 'tmp'];
|
|
63
|
+
// Auto-generated session ID pattern: YYYY-MM-DD-session-<6位hex>
|
|
64
|
+
const AUTO_SESSION_PATTERN = /^\d{4}-\d{2}-\d{2}-session-[a-f0-9]{6}$/;
|
|
65
|
+
/**
|
|
66
|
+
* Slice C10 (2026-06-24-legacy-change-id-sibling): the relative path
|
|
67
|
+
* patterns under `.peaks/_runtime/<sessionId>/` that the lazy WRITER (peaks-qa,
|
|
68
|
+
* peaks-rd, peaks-prd, peaks-txt, peaks-sc) creates via
|
|
69
|
+
* `mkdir(parent, { recursive: true })` immediately before a write. When
|
|
70
|
+
* a sibling `.peaks/_runtime/<sessionId>/` exists on disk AND every entry below
|
|
71
|
+
* it matches one of these patterns (AND no entry is a symlink), the
|
|
72
|
+
* dir is treated as legitimate writer output and `initWorkspace`
|
|
73
|
+
* re-init is tolerant — the binding is rewritten without throwing.
|
|
74
|
+
*
|
|
75
|
+
* Adding a new pattern here is a deliberate, reviewed change because
|
|
76
|
+
* it widens the heuristic. The list is intentionally narrow:
|
|
77
|
+
* - `qa/screenshots/<file>.{png,jpg,jpeg,webp,gif}` — peaks-qa screenshots
|
|
78
|
+
* - `<role>/requests/<file>.md` — RD/QA/PRD/TXT/SC artifacts
|
|
79
|
+
* - `<role>/findings/<file>.md` — QA findings files
|
|
80
|
+
*
|
|
81
|
+
* Re-exported so unit tests can assert the pattern list directly.
|
|
82
|
+
*/
|
|
83
|
+
export const WRITER_ALLOWED_RELATIVE_PATTERNS = [
|
|
84
|
+
/^qa\/screenshots\/[^/]+\.(png|jpg|jpeg|webp|gif)$/i,
|
|
85
|
+
/^[^/]+\/requests\/[^/]+\.md$/,
|
|
86
|
+
/^[^/]+\/findings\/[^/]+\.md$/
|
|
87
|
+
];
|
|
88
|
+
export class InvalidSessionIdError extends Error {
|
|
89
|
+
code = 'INVALID_SESSION_ID';
|
|
90
|
+
constructor(message) {
|
|
91
|
+
super(message);
|
|
92
|
+
this.name = 'InvalidSessionIdError';
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
export class ConflictingSessionError extends Error {
|
|
96
|
+
existingSessionId;
|
|
97
|
+
requestedSessionId;
|
|
98
|
+
code = 'CONFLICTING_SESSION';
|
|
99
|
+
constructor(message, existingSessionId, requestedSessionId) {
|
|
100
|
+
super(message);
|
|
101
|
+
this.existingSessionId = existingSessionId;
|
|
102
|
+
this.requestedSessionId = requestedSessionId;
|
|
103
|
+
this.name = 'ConflictingSessionError';
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Thrown when `peaks workspace init --change-id <id>` is invoked but a
|
|
108
|
+
* 2.8.0-era legacy sibling directory `.peaks/_runtime/<sessionId>/` already exists
|
|
109
|
+
* at top level. Under the 2.8.0+ two-axis convention, change-id is a
|
|
110
|
+
* logical identifier in the SESSION axis — NOT a top-level sibling dir.
|
|
111
|
+
*
|
|
112
|
+
* The caller is expected to:
|
|
113
|
+
* 1. Inspect `.peaks/_runtime/<sessionId>/` to see if it contains user-authored
|
|
114
|
+
* content worth preserving.
|
|
115
|
+
* 2. Migrate or delete the sibling dir.
|
|
116
|
+
* 3. Re-run `peaks workspace init --change-id <id>`.
|
|
117
|
+
*/
|
|
118
|
+
export class LegacyChangeIdSiblingError extends Error {
|
|
119
|
+
sessionId;
|
|
120
|
+
legacyPath;
|
|
121
|
+
code = 'LEGACY_CHANGE_ID_SIBLING';
|
|
122
|
+
constructor(sessionId, legacyPath) {
|
|
123
|
+
super(`peaks-loop 2.8.3+ forbids the legacy sibling dir ${legacyPath}. ` +
|
|
124
|
+
`Under the two-axis convention, change-id "${sessionId}" must live in the SESSION axis ` +
|
|
125
|
+
`(.peaks/_runtime/<sessionId>/), not as a top-level sibling of .peaks/_runtime/. ` +
|
|
126
|
+
`Migration: (1) inspect ${legacyPath} for user-authored content; ` +
|
|
127
|
+
`(2) move any desired files into .peaks/_runtime/<sessionId>/<role>/; ` +
|
|
128
|
+
`(3) delete ${legacyPath}; (4) re-run 'peaks workspace init --change-id ${sessionId}'.`);
|
|
129
|
+
this.sessionId = sessionId;
|
|
130
|
+
this.legacyPath = legacyPath;
|
|
131
|
+
this.name = 'LegacyChangeIdSiblingError';
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
export function validateSessionId(sessionId) {
|
|
135
|
+
// Auto-generated session IDs (YYYY-MM-DD-session-<hex>) bypass manual validation
|
|
136
|
+
if (AUTO_SESSION_PATTERN.test(sessionId)) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
if (/^\d+$/.test(sessionId)) {
|
|
140
|
+
throw new InvalidSessionIdError(`Session id "${sessionId}" is numeric-only. Use the format YYYY-MM-DD-<kebab-slug> with a 2-5 word topic description.`);
|
|
141
|
+
}
|
|
142
|
+
if (/^\d{8}T\d{6}$/.test(sessionId) || /^\d{8}$/.test(sessionId)) {
|
|
143
|
+
throw new InvalidSessionIdError(`Session id "${sessionId}" looks like a bare timestamp. Use YYYY-MM-DD-<kebab-slug>.`);
|
|
144
|
+
}
|
|
145
|
+
if (/^\d{4}-\d{2}-\d{2}$/.test(sessionId)) {
|
|
146
|
+
throw new InvalidSessionIdError(`Session id "${sessionId}" is a bare date. Append a 2-5 word topic slug (e.g. "${sessionId}-add-user-auth").`);
|
|
147
|
+
}
|
|
148
|
+
if (!SESSION_ID_PATTERN.test(sessionId)) {
|
|
149
|
+
throw new InvalidSessionIdError(`Session id "${sessionId}" must match YYYY-MM-DD-<kebab-slug>, all lowercase, dashes only.`);
|
|
150
|
+
}
|
|
151
|
+
const suffix = sessionId.slice(11); // strip "YYYY-MM-DD-"
|
|
152
|
+
if (PROHIBITED_SUFFIXES.includes(suffix)) {
|
|
153
|
+
throw new InvalidSessionIdError(`Session id suffix "${suffix}" is a generic placeholder. Use a real topic slug (e.g. "add-user-auth", "v3-indicator-model").`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
export async function initWorkspace(options) {
|
|
157
|
+
validateSessionId(options.sessionId);
|
|
158
|
+
// Phase 6 refactor (slice 2026-06-05-change-id-as-unit-of-work) +
|
|
159
|
+
// slice 006 (2026-06-06-change-folder-simplify-and-lazy-role-subdirs) +
|
|
160
|
+
// slice 2026-06-22-top-level-change-id-cleanup (2.8.3):
|
|
161
|
+
// - Reviewable artifacts (rd/, qa/, prd/, txt/) live at
|
|
162
|
+
// `.peaks/_runtime/<change-id>/<role>/` (tracked in git) when a change-id
|
|
163
|
+
// is given. The role subdirs are NOT pre-created — the writer
|
|
164
|
+
// (e.g. `peaks request init`, `peaks rd`) creates the parent
|
|
165
|
+
// dirs on demand via `mkdirSync(..., { recursive: true })`.
|
|
166
|
+
// - The session dir `.peaks/_runtime/<session-id>/` (gitignored)
|
|
167
|
+
// now holds ONLY the canonical `session.json` metadata. The
|
|
168
|
+
// F3-introduced `system/` subdir is gone — slice 006 removes
|
|
169
|
+
// it via `peaks workspace reconcile`; new init calls do not
|
|
170
|
+
// pre-create it.
|
|
171
|
+
// - The change-id dir is NOT created at top level when `--change-id`
|
|
172
|
+
// is given. Slice 2.8.3+ redirects the binding to
|
|
173
|
+
// `.peaks/_runtime/current-change` as a plain text file (see
|
|
174
|
+
// `LegacyChangeIdSiblingError` for the migration guard). Reviewable
|
|
175
|
+
// artifacts still land under `.peaks/_runtime/<sessionId>/<role>/`, but
|
|
176
|
+
// that dir is created lazily by the WRITER, not by init. Init only
|
|
177
|
+
// writes the binding.
|
|
178
|
+
//
|
|
179
|
+
// The CLI accepts `--change-id <id>` to bind the change. The legacy
|
|
180
|
+
// session-scoped layout (`.peaks/_runtime/<session-id>/<role>/<file>`) is
|
|
181
|
+
// no longer used by writes; pre-1.3.1 trees get their session
|
|
182
|
+
// files migrated to the change-id dir by `peaks workspace reconcile`.
|
|
183
|
+
const runtimeRoot = join(options.projectRoot, '.peaks', '_runtime');
|
|
184
|
+
const sessionRoot = join(runtimeRoot, options.sessionId);
|
|
185
|
+
const created = [];
|
|
186
|
+
const alreadyExisted = [];
|
|
187
|
+
// 1. Create the session dir (canonical location `.peaks/_runtime/<sid>/`)
|
|
188
|
+
// with NO subdirs. The session dir is gitignored; the role
|
|
189
|
+
// subdirs and the `system/` subdir are gone entirely (slice 006).
|
|
190
|
+
if (await isDirectory(sessionRoot)) {
|
|
191
|
+
alreadyExisted.push('.');
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
await mkdir(sessionRoot, { recursive: true });
|
|
195
|
+
created.push('.');
|
|
196
|
+
}
|
|
197
|
+
// 1a. Write the per-session metadata file. Slice 006 makes
|
|
198
|
+
// `.peaks/_runtime/<sid>/session.json` the durable session
|
|
199
|
+
// metadata (the body's source of truth, the `peaks workspace
|
|
200
|
+
// reconcile` discovery source). The file is created on first
|
|
201
|
+
// init and refreshed on every subsequent init. Idempotent.
|
|
202
|
+
setSessionMeta(options.projectRoot, options.sessionId, {});
|
|
203
|
+
// 2. Slice 2026-06-29-change-id-root-removal: the change-id axis is
|
|
204
|
+
// gone. The session id IS the binding — there is no separate
|
|
205
|
+
// `.peaks/_runtime/current-change` file. The v2.8.3 hard-ban on
|
|
206
|
+
// `.peaks/<YYYY-MM-DD-*>/` siblings still fires via the inline
|
|
207
|
+
// `lstatSync` block below, scoped to legacy residue
|
|
208
|
+
// directories (NOT the canonical session dir, which lives at
|
|
209
|
+
// `.peaks/_runtime/<sid>/`).
|
|
210
|
+
//
|
|
211
|
+
// Pre-flight guard: refuse to silently walk into a date-stamped
|
|
212
|
+
// sibling dir at the `.peaks/` top level. `lstatSync`
|
|
213
|
+
// distinguishes file/dir/symlink/broken-symlink. ENOENT (path
|
|
214
|
+
// absent) is the legitimate outcome. The guard fires ONLY on
|
|
215
|
+
// date-stamped sibling dirs at `.peaks/<date-stamped>/` —
|
|
216
|
+
// NOT on the canonical session dir at `.peaks/_runtime/<sid>/`,
|
|
217
|
+
// which is a legitimate in-flight or completed session.
|
|
218
|
+
for (const entry of listPeaksRuntimeSiblings(options.projectRoot)) {
|
|
219
|
+
if (entry === '_runtime')
|
|
220
|
+
continue; // canonical session dir layer
|
|
221
|
+
if (!isDateStampedSiblingId(entry))
|
|
222
|
+
continue;
|
|
223
|
+
const legacySiblingDir = join(options.projectRoot, '.peaks', entry);
|
|
224
|
+
let legacyStat;
|
|
225
|
+
try {
|
|
226
|
+
legacyStat = lstatSync(legacySiblingDir);
|
|
227
|
+
}
|
|
228
|
+
catch {
|
|
229
|
+
// ENOENT or transient — accept.
|
|
230
|
+
continue;
|
|
231
|
+
}
|
|
232
|
+
if (!legacyStat.isDirectory())
|
|
233
|
+
continue;
|
|
234
|
+
if (legacyStat.isSymbolicLink()) {
|
|
235
|
+
// A symlink AT a date-stamped sibling path is unambiguous
|
|
236
|
+
// evasion — even if the target is writer-shaped, refuse.
|
|
237
|
+
throw new LegacyChangeIdSiblingError(entry, legacySiblingDir);
|
|
238
|
+
}
|
|
239
|
+
const shapeOk = isWriterCreatedSiblingShape(legacySiblingDir);
|
|
240
|
+
if (!shapeOk) {
|
|
241
|
+
throw new LegacyChangeIdSiblingError(entry, legacySiblingDir);
|
|
242
|
+
}
|
|
243
|
+
// Writer-shaped content: silently tolerate. No binding file is
|
|
244
|
+
// written (the change-id binding store is gone).
|
|
245
|
+
}
|
|
246
|
+
// 4. Bind this session as the project's current one.
|
|
247
|
+
//
|
|
248
|
+
// Single source of truth: `peaks workspace init` is the only CLI entry point
|
|
249
|
+
// that takes an explicit --session-id, so it owns the binding to .session.json.
|
|
250
|
+
// Without this write, downstream commands that fall through to
|
|
251
|
+
// `ensureSession()` would auto-generate a *different* id and create a second
|
|
252
|
+
// session directory — the bug that confuses the LLM in peaks-code.
|
|
253
|
+
//
|
|
254
|
+
// Conflict rule: if .session.json already points at a different session
|
|
255
|
+
// whose directory is real (has session.json inside), the caller is starting
|
|
256
|
+
// a parallel session without closing the previous one. Refuse to bind —
|
|
257
|
+
// this is the "strict" mode the user picked. The user must finish or delete
|
|
258
|
+
// the existing session first.
|
|
259
|
+
const existingSessionId = getSessionId(options.projectRoot);
|
|
260
|
+
let previousSessionId = null;
|
|
261
|
+
let bound = false;
|
|
262
|
+
if (existingSessionId === null) {
|
|
263
|
+
// No prior binding — adopt the requested id.
|
|
264
|
+
setCurrentSessionBinding(options.projectRoot, options.sessionId);
|
|
265
|
+
bound = true;
|
|
266
|
+
}
|
|
267
|
+
else if (existingSessionId === options.sessionId) {
|
|
268
|
+
// Already bound to the same id — idempotent.
|
|
269
|
+
bound = true;
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
// Different id already bound. The existing session is "real" if its
|
|
273
|
+
// directory is non-empty — that holds the user's data (rd/, qa/, ui/,
|
|
274
|
+
// etc.) regardless of whether the per-session metadata file is present.
|
|
275
|
+
// Refuse to rebind without explicit authorization.
|
|
276
|
+
previousSessionId = existingSessionId;
|
|
277
|
+
const existingSessionDir = join(runtimeRoot, existingSessionId);
|
|
278
|
+
if (await isDirectory(existingSessionDir) && !options.allowSessionRebind) {
|
|
279
|
+
const { readdirSync } = await import('node:fs');
|
|
280
|
+
const entries = readdirSync(existingSessionDir);
|
|
281
|
+
if (entries.length > 0) {
|
|
282
|
+
throw new ConflictingSessionError(`Project is already bound to session "${existingSessionId}". ` +
|
|
283
|
+
`Cannot start session "${options.sessionId}" without closing the previous one. ` +
|
|
284
|
+
`Either finish/abandon the prior session first, or pass --allow-session-rebind to override.`, existingSessionId, options.sessionId);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
// Either: existing session dir is empty (true leftover, no user data),
|
|
288
|
+
// or the caller explicitly authorised a rebind. Overwrite.
|
|
289
|
+
setCurrentSessionBinding(options.projectRoot, options.sessionId);
|
|
290
|
+
bound = true;
|
|
291
|
+
}
|
|
292
|
+
// Slice 2026-06-16-peaks-code-auto-scaffold (RD#7):
|
|
293
|
+
// - Always run the detector and surface the descriptor so the CLI can
|
|
294
|
+
// put it on stderr + into the JSON envelope's `data.standardsMissing`.
|
|
295
|
+
// - When `initStandards: true` AND the detector reports missing, run
|
|
296
|
+
// `executeProjectStandardsInit({ apply: true })` to auto-apply.
|
|
297
|
+
const detectedLanguage = options.language ?? detectLanguage(options.projectRoot);
|
|
298
|
+
const standardsMissing = detectMissingProjectStandards(options.projectRoot, detectedLanguage);
|
|
299
|
+
let standardsApplied;
|
|
300
|
+
if (options.initStandards === true && standardsMissing.missing) {
|
|
301
|
+
const initResult = executeProjectStandardsInit({
|
|
302
|
+
projectRoot: options.projectRoot,
|
|
303
|
+
apply: true
|
|
304
|
+
});
|
|
305
|
+
standardsApplied = {
|
|
306
|
+
language: initResult.language,
|
|
307
|
+
writtenFiles: initResult.writtenFiles,
|
|
308
|
+
skippedFiles: initResult.plannedWrites
|
|
309
|
+
.filter((write) => write.status === 'existing')
|
|
310
|
+
.map((write) => write.relativePath)
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
return {
|
|
314
|
+
sessionId: options.sessionId,
|
|
315
|
+
sessionRoot,
|
|
316
|
+
created,
|
|
317
|
+
alreadyExisted,
|
|
318
|
+
bound,
|
|
319
|
+
previousSessionId,
|
|
320
|
+
claudeSettings: await materializeClaudeSettingsLocal(options.projectRoot, options.noClaudeHooks === true),
|
|
321
|
+
standardsMissing,
|
|
322
|
+
...(standardsApplied !== undefined ? { standardsApplied } : {})
|
|
323
|
+
};
|
|
324
|
+
}
|
|
325
|
+
// Re-export the consumer `.claude/settings.local.json` materialization
|
|
326
|
+
// surface so external callers (CLI, tests) keep importing from this
|
|
327
|
+
// module unchanged. The 3 helpers (`materializeClaudeSettingsLocal`,
|
|
328
|
+
// `writeOfflineTemplateCopy`, `upsertPeaksGitignoreSnippet`) and the
|
|
329
|
+
// `PEAKS_GITIGNORE_*` constants live in the sibling
|
|
330
|
+
// `workspace-claude-settings-materializer.ts` module — see v2.18.3
|
|
331
|
+
// file-split for the rationale. Function signatures and behaviour
|
|
332
|
+
// are unchanged (verbatim move).
|
|
333
|
+
import { materializeClaudeSettingsLocal } from './workspace-claude-settings-materializer.js';
|
|
334
|
+
export { materializeClaudeSettingsLocal } from './workspace-claude-settings-materializer.js';
|
|
335
|
+
/**
|
|
336
|
+
* Slice C10 (2026-06-24-legacy-change-id-sibling): whole-dir shape check
|
|
337
|
+
* for the legacy sibling `.peaks/_runtime/<sessionId>/`. Returns `true` ONLY when
|
|
338
|
+
* every leaf path under the sibling matches one of
|
|
339
|
+
* `WRITER_ALLOWED_RELATIVE_PATTERNS` AND no entry is a symlink (anywhere
|
|
340
|
+
* in the tree).
|
|
341
|
+
*
|
|
342
|
+
* Heuristic rationale (Karpathy #1 — name the tradeoff):
|
|
343
|
+
* - False negative (reject writer-shaped content): we accept this
|
|
344
|
+
* failure mode because it preserves the 2.8.3+ hard ban. The user
|
|
345
|
+
* gets a clear migration message and can re-run after deleting the
|
|
346
|
+
* sibling dir.
|
|
347
|
+
* - False positive (accept legacy residue as writer output): we
|
|
348
|
+
* REJECT this failure mode by requiring EVERY entry to match the
|
|
349
|
+
* writer-allowed shape. One mismatched leaf ⇒ `false`. The whole-dir
|
|
350
|
+
* check is conservative on purpose.
|
|
351
|
+
*
|
|
352
|
+
* Symlink rejection (Karpathy #3 — surgical): any symlinked entry — at
|
|
353
|
+
* the root or nested — returns `false` immediately. A symlinked
|
|
354
|
+
* `.peaks/_runtime/<sessionId>/qa/foo.png` could otherwise bypass the file-extension
|
|
355
|
+
* check by resolving to user content outside the project.
|
|
356
|
+
*
|
|
357
|
+
* Implementation note: the helper is synchronous and uses `lstatSync`
|
|
358
|
+
* recursively so the caller (the guard in `initWorkspace`) can decide
|
|
359
|
+
* inline without paying an async round-trip. Tree depth is bounded by
|
|
360
|
+
* the writer's mkdir pattern (≤3 levels: `<role>/<subdir>/<file>`).
|
|
361
|
+
* We cap the recursion at 8 levels as a defense-in-depth limit.
|
|
362
|
+
*/
|
|
363
|
+
export function isWriterCreatedSiblingShape(siblingDir) {
|
|
364
|
+
const MAX_DEPTH = 8;
|
|
365
|
+
const stack = [
|
|
366
|
+
{ abs: siblingDir, rel: '', depth: 0 }
|
|
367
|
+
];
|
|
368
|
+
while (stack.length > 0) {
|
|
369
|
+
const node = stack.pop();
|
|
370
|
+
if (node === undefined)
|
|
371
|
+
break;
|
|
372
|
+
if (node.depth > MAX_DEPTH) {
|
|
373
|
+
// Pathological depth — reject. The writer never goes this deep.
|
|
374
|
+
return false;
|
|
375
|
+
}
|
|
376
|
+
let stat;
|
|
377
|
+
try {
|
|
378
|
+
stat = lstatSync(node.abs);
|
|
379
|
+
}
|
|
380
|
+
catch {
|
|
381
|
+
// Any lstat failure (broken symlink, EACCES, etc.) ⇒ not
|
|
382
|
+
// writer-shaped. Be conservative.
|
|
383
|
+
return false;
|
|
384
|
+
}
|
|
385
|
+
if (stat.isSymbolicLink()) {
|
|
386
|
+
// Symlink anywhere — reject.
|
|
387
|
+
return false;
|
|
388
|
+
}
|
|
389
|
+
if (stat.isDirectory()) {
|
|
390
|
+
let entries;
|
|
391
|
+
try {
|
|
392
|
+
entries = readdirSync(node.abs);
|
|
393
|
+
}
|
|
394
|
+
catch {
|
|
395
|
+
return false;
|
|
396
|
+
}
|
|
397
|
+
if (entries.length === 0) {
|
|
398
|
+
if (node.depth === 0) {
|
|
399
|
+
// The top-level sibling dir is empty — no writer output.
|
|
400
|
+
// Reject: an empty `.peaks/<YYYY-MM-DD-*>/` dir is the most
|
|
401
|
+
// common legacy residue shape (the user mkdir'd it then
|
|
402
|
+
// forgot). The writer never creates an empty top-level
|
|
403
|
+
// dir; it always writes at least one file.
|
|
404
|
+
return false;
|
|
405
|
+
}
|
|
406
|
+
// Nested empty subdir under the sibling is fine — writer
|
|
407
|
+
// creates parent dirs lazily and may leave a placeholder
|
|
408
|
+
// behind. Skip.
|
|
409
|
+
continue;
|
|
410
|
+
}
|
|
411
|
+
for (const entry of entries) {
|
|
412
|
+
stack.push({
|
|
413
|
+
abs: join(node.abs, entry),
|
|
414
|
+
rel: node.rel.length > 0 ? `${node.rel}/${entry}` : entry,
|
|
415
|
+
depth: node.depth + 1
|
|
416
|
+
});
|
|
417
|
+
}
|
|
418
|
+
continue;
|
|
419
|
+
}
|
|
420
|
+
if (stat.isFile()) {
|
|
421
|
+
const rel = node.rel.replace(/\\/g, '/');
|
|
422
|
+
const matches = WRITER_ALLOWED_RELATIVE_PATTERNS.some((re) => re.test(rel));
|
|
423
|
+
if (!matches) {
|
|
424
|
+
return false;
|
|
425
|
+
}
|
|
426
|
+
continue;
|
|
427
|
+
}
|
|
428
|
+
// Sockets, FIFOs, devices, etc. — not writer-shaped.
|
|
429
|
+
return false;
|
|
430
|
+
}
|
|
431
|
+
return true;
|
|
432
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare function isLegacyDecisionDotfile(name: string): boolean;
|
|
2
|
+
export declare function stateDirPath(projectRoot: string): string;
|
|
3
|
+
export interface CollectResult {
|
|
4
|
+
moved: string[];
|
|
5
|
+
skipped: string[];
|
|
6
|
+
}
|
|
7
|
+
export declare function collectLegacyDecisionDotfiles(projectRoot: string): CollectResult;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, renameSync } from 'node:fs';
|
|
2
|
+
import { join, posix } from 'node:path';
|
|
3
|
+
/**
|
|
4
|
+
* Spec §8.4 + §8.5 — `.peaks/_state/` collects one-time decision dotfiles.
|
|
5
|
+
* Migrates from legacy `.peaks/_runtime/<name>` flat layout.
|
|
6
|
+
*
|
|
7
|
+
* `stateDirPath` returns a POSIX-normalized logical path so callers and tests
|
|
8
|
+
* can compare against a platform-independent string (the .peaks tree is a
|
|
9
|
+
* config key, not a direct fs call). `mkdirSync` / `renameSync` below use
|
|
10
|
+
* the platform-native `join` so files actually land on disk.
|
|
11
|
+
*/
|
|
12
|
+
const LEGACY_DOTFILES = [
|
|
13
|
+
'.peaks-init-hooks-decision.json',
|
|
14
|
+
'.peaks-openspec-opt-in.json',
|
|
15
|
+
];
|
|
16
|
+
const STATE_DIR_NAME = '_state';
|
|
17
|
+
export function isLegacyDecisionDotfile(name) {
|
|
18
|
+
return LEGACY_DOTFILES.includes(name);
|
|
19
|
+
}
|
|
20
|
+
export function stateDirPath(projectRoot) {
|
|
21
|
+
return posix.join(projectRoot, '.peaks', STATE_DIR_NAME);
|
|
22
|
+
}
|
|
23
|
+
export function collectLegacyDecisionDotfiles(projectRoot) {
|
|
24
|
+
const peaksDir = join(projectRoot, '.peaks');
|
|
25
|
+
// Use the platform-native join for actual filesystem operations;
|
|
26
|
+
// `stateDirPath` (POSIX) is only the public/portable surface for callers.
|
|
27
|
+
const stateDir = join(projectRoot, '.peaks', STATE_DIR_NAME);
|
|
28
|
+
mkdirSync(stateDir, { recursive: true });
|
|
29
|
+
const moved = [];
|
|
30
|
+
const skipped = [];
|
|
31
|
+
for (const name of LEGACY_DOTFILES) {
|
|
32
|
+
const from = join(peaksDir, name);
|
|
33
|
+
const to = join(stateDir, name);
|
|
34
|
+
if (!existsSync(from))
|
|
35
|
+
continue;
|
|
36
|
+
if (existsSync(to)) {
|
|
37
|
+
throw new Error(`DOTFILE_COLLISION: ${name} already exists in ${stateDir} (${readFileSync(to, 'utf8').length} bytes); refusing to overwrite`);
|
|
38
|
+
}
|
|
39
|
+
renameSync(from, to);
|
|
40
|
+
moved.push(name);
|
|
41
|
+
}
|
|
42
|
+
return { moved, skipped };
|
|
43
|
+
}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* worktree-lease — pure-function lease store for `peaks worktree spawn`.
|
|
3
|
+
*
|
|
4
|
+
* Slice 2026-07-29-worktree-l2-extended Part 1. This is the Layer 2
|
|
5
|
+
* governance complement to Layer 3 (`permissions.deny` for the superpowers
|
|
6
|
+
* chain) and Layer 1 (sub-agent dispatch prompt refusal). Together the
|
|
7
|
+
* three layers close the superpowers-chain jailbreak that previously
|
|
8
|
+
* bypassed peaks-loop's worktree posture.
|
|
9
|
+
*
|
|
10
|
+
* The store is a pure function module: every helper takes the lease
|
|
11
|
+
* directory path as an argument and returns structured data. Atomic
|
|
12
|
+
* filesystem writes happen at the call site (CLI command), keeping the
|
|
13
|
+
* helpers trivially testable. The CLI surface lives in
|
|
14
|
+
* `src/cli/commands/worktree-spawn-commands.ts`.
|
|
15
|
+
*
|
|
16
|
+
* Why a separate lease (vs reusing `peaks worktree auth grant`):
|
|
17
|
+
* - `auth grant` is a single-shot, short-lived token file consulted by
|
|
18
|
+
* the PreToolUse hook BEFORE `git worktree add` runs. It answers
|
|
19
|
+
* "is the LLM allowed to do this right now?"
|
|
20
|
+
* - `lease` is a long-lived lifecycle object that owns the worktree
|
|
21
|
+
* path, branch, expiry, and consumption log. It answers
|
|
22
|
+
* "what worktrees does this session own, and which are still alive?"
|
|
23
|
+
* The two coexist: `spawn` writes a lease; the lease's existence
|
|
24
|
+
* implicitly authorizes worktree operations on its path (the hook
|
|
25
|
+
* integration is Part 2 of this slice).
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* Per-role default TTL. Sub-agent dispatch duration varies by role:
|
|
29
|
+
* - rd (long planning + impl) → 30 min
|
|
30
|
+
* - qa (test design + browser validation) → 15 min
|
|
31
|
+
* - ui (high-fidelity prototype iteration) → 1 h
|
|
32
|
+
* - txt (handoff capsule, no worktree expected) → n/a (no worktree)
|
|
33
|
+
* - general-purpose / unknown → 30 min (rd-like)
|
|
34
|
+
*
|
|
35
|
+
* Users MAY override with `--ttl <duration>` (e.g. `--ttl 4h`).
|
|
36
|
+
*/
|
|
37
|
+
export declare const DEFAULT_TTL_BY_ROLE: Readonly<Record<string, number>>;
|
|
38
|
+
export declare const DEFAULT_TTL_MS: number | undefined;
|
|
39
|
+
export type WorktreeLeaseStatus = 'active' | 'released' | 'expired' | 'gc';
|
|
40
|
+
export interface WorktreeLease {
|
|
41
|
+
/** Random 16-hex lease id; emitted to the operator as the lease handle. */
|
|
42
|
+
readonly leaseId: string;
|
|
43
|
+
/** The peaks request id (rid) that the lease was spawned for. */
|
|
44
|
+
readonly rid: string;
|
|
45
|
+
/** Sub-agent role (rd | qa | ui | sc | prd | general-purpose | ...). */
|
|
46
|
+
readonly role: string;
|
|
47
|
+
/** Absolute worktree path on disk (under .peaks/_runtime/<sid>/worktrees/<leaseId>/). */
|
|
48
|
+
readonly path: string;
|
|
49
|
+
/** Branch name (one of the worktree's --branch / -b args). */
|
|
50
|
+
readonly branch: string;
|
|
51
|
+
/** Unix epoch ms when the lease was created. */
|
|
52
|
+
readonly createdAt: number;
|
|
53
|
+
/** Unix epoch ms when the lease expires. */
|
|
54
|
+
readonly expiresAt: number;
|
|
55
|
+
/** Operator-supplied purpose text (audit log). */
|
|
56
|
+
readonly purpose: string;
|
|
57
|
+
/** Lifecycle status; updated by `releaseLease` / `markExpired`. */
|
|
58
|
+
readonly status: WorktreeLeaseStatus;
|
|
59
|
+
/** Sub-agent batch / dispatch ids that have consumed this lease. */
|
|
60
|
+
readonly consumedBySubAgents: ReadonlyArray<string>;
|
|
61
|
+
}
|
|
62
|
+
/** Subset of WorktreeLease that the CLI writes on creation. Status starts at 'active'. */
|
|
63
|
+
export type WorktreeLeaseDraft = Omit<WorktreeLease, 'status' | 'consumedBySubAgents'>;
|
|
64
|
+
/**
|
|
65
|
+
* Compose a deterministic lease path under the per-session runtime dir.
|
|
66
|
+
* The function is pure: same inputs → same output. The caller passes
|
|
67
|
+
* `<sessionId>` (NOT a bare `<sid>` per the 2.7.1 single-scope-axis rule).
|
|
68
|
+
*
|
|
69
|
+
* Path layout:
|
|
70
|
+
* .peaks/_runtime/<sessionId>/worktree-leases/<leaseId>.json
|
|
71
|
+
*
|
|
72
|
+
* The `worktree-leases/` directory is gitignored per the .peaks/_runtime/
|
|
73
|
+
* rule (committed in .gitignore for all runtime artifacts).
|
|
74
|
+
*/
|
|
75
|
+
export declare function leaseStoreDir(sessionRuntimeDir: string): string;
|
|
76
|
+
export declare function leaseFilePath(sessionRuntimeDir: string, leaseId: string): string;
|
|
77
|
+
/**
|
|
78
|
+
* Compose the absolute worktree path (the `git worktree add <path>` target).
|
|
79
|
+
* Sits adjacent to the lease file under the same runtime dir.
|
|
80
|
+
*/
|
|
81
|
+
export declare function worktreePath(sessionRuntimeDir: string, leaseId: string): string;
|
|
82
|
+
/**
|
|
83
|
+
* Generate a 16-hex lease id (8 random bytes, hex-encoded). The id is
|
|
84
|
+
* unique enough for the per-session scope; collisions across sessions
|
|
85
|
+
* are irrelevant because each session has its own lease directory.
|
|
86
|
+
*/
|
|
87
|
+
export declare function generateLeaseId(): string;
|
|
88
|
+
/**
|
|
89
|
+
* Compute the TTL ms for a role, falling back to DEFAULT_TTL_MS for
|
|
90
|
+
* unknown roles. The CLI overrides with `--ttl <ms>` when the user
|
|
91
|
+
* passes a positive value.
|
|
92
|
+
*/
|
|
93
|
+
export declare function ttlForRole(role: string): number;
|
|
94
|
+
/**
|
|
95
|
+
* Pure: produce a fresh `WorktreeLease` from a draft + status.
|
|
96
|
+
* `status` defaults to `'active'`; `consumedBySubAgents` defaults to [].
|
|
97
|
+
* Used by the CLI's atomicWriteJson call.
|
|
98
|
+
*/
|
|
99
|
+
export declare function finalizeLease(draft: WorktreeLeaseDraft): WorktreeLease;
|
|
100
|
+
/** Pure: lease status transitions to 'released'. Returns a new lease. */
|
|
101
|
+
export declare function markReleased(lease: WorktreeLease): WorktreeLease;
|
|
102
|
+
/** Pure: lease status transitions to 'expired'. Returns a new lease. */
|
|
103
|
+
export declare function markExpired(lease: WorktreeLease): WorktreeLease;
|
|
104
|
+
/** Pure: lease status transitions to 'gc'. Returns a new lease. */
|
|
105
|
+
export declare function markGc(lease: WorktreeLease): WorktreeLease;
|
|
106
|
+
/** Pure: append a sub-agent batch / dispatch id to the consumption log. Returns a new lease. */
|
|
107
|
+
export declare function recordConsumption(lease: WorktreeLease, subAgentId: string): WorktreeLease;
|
|
108
|
+
/**
|
|
109
|
+
* Pure: is the lease still active (status === 'active' AND not past expiry).
|
|
110
|
+
* Expired leases are NOT auto-released; the gc CLI is the only path that
|
|
111
|
+
* transitions them to 'gc'. Until then, the on-disk state stays 'active'
|
|
112
|
+
* but `isLeaseActive` returns false so consumers skip the lease.
|
|
113
|
+
*/
|
|
114
|
+
export declare function isLeaseActive(lease: WorktreeLease, now?: number): boolean;
|
|
115
|
+
/**
|
|
116
|
+
* Pure: read every lease file under the session's lease store dir.
|
|
117
|
+
* Returns leases in the order returned by `fs.readdir` (no sort).
|
|
118
|
+
* Malformed files are surfaced as `{ file, error }` records so the caller
|
|
119
|
+
* (the `list` CLI) can warn without aborting the whole list. Missing
|
|
120
|
+
* directory is not an error — it returns an empty leases array.
|
|
121
|
+
*/
|
|
122
|
+
export interface LeaseReadError {
|
|
123
|
+
readonly file: string;
|
|
124
|
+
readonly error: string;
|
|
125
|
+
}
|
|
126
|
+
export type LeaseListResult = {
|
|
127
|
+
readonly kind: 'ok';
|
|
128
|
+
readonly leases: ReadonlyArray<WorktreeLease>;
|
|
129
|
+
readonly errors: ReadonlyArray<LeaseReadError>;
|
|
130
|
+
} | {
|
|
131
|
+
readonly kind: 'store-missing';
|
|
132
|
+
readonly storeDir: string;
|
|
133
|
+
};
|
|
134
|
+
/**
|
|
135
|
+
* List every lease file under the session's lease store dir.
|
|
136
|
+
*
|
|
137
|
+
* Pure with respect to its inputs: it does NOT sort or filter, and it
|
|
138
|
+
* does NOT mark anything expired. Callers (the `list` CLI) apply their
|
|
139
|
+
* own sort/filter and run `markExpired` lazily.
|
|
140
|
+
*/
|
|
141
|
+
export declare function listLeasesSync(storeDir: string, fs: {
|
|
142
|
+
readdir: (path: string) => ReadonlyArray<string>;
|
|
143
|
+
readFile: (path: string) => string;
|
|
144
|
+
existsSync: (path: string) => boolean;
|
|
145
|
+
}): LeaseListResult;
|
|
146
|
+
/**
|
|
147
|
+
* Pure: a lease is eligible for `gc` if its status is one of {released,
|
|
148
|
+
* expired} AND its worktree path is no longer attached to git (`git
|
|
149
|
+
* worktree list` would not include it). The CLI re-checks with git and
|
|
150
|
+
* uses this helper as a coarse pre-filter.
|
|
151
|
+
*/
|
|
152
|
+
export declare function isLeaseGcEligible(lease: WorktreeLease, now?: number): boolean;
|
|
153
|
+
/**
|
|
154
|
+
* Pure: derive a new lease from an existing one with an extended
|
|
155
|
+
* `expiresAt`. Other fields are preserved. The CLI writes the new lease
|
|
156
|
+
* atomically. Used by `peaks worktree renew --lease-id <id> --ttl <ms>`.
|
|
157
|
+
*/
|
|
158
|
+
export declare function renewLease(lease: WorktreeLease, newExpiresAt: number): WorktreeLease;
|
|
159
|
+
/**
|
|
160
|
+
* Pure: serialize a lease to JSON with stable field order (deterministic
|
|
161
|
+
* output for diff-friendly audit logs). The CLI passes the result to
|
|
162
|
+
* `atomicWriteJson`. The function does NOT mutate the input.
|
|
163
|
+
*/
|
|
164
|
+
export declare function serializeLease(lease: WorktreeLease): string;
|
|
165
|
+
/**
|
|
166
|
+
* Pure: deserialize a lease from JSON. Throws on malformed input — the
|
|
167
|
+
* CLI catches and returns a `LEASE_FILE_INVALID` envelope (mirroring the
|
|
168
|
+
* `peaks worktree auth` FILE_INVALID convention).
|
|
169
|
+
*/
|
|
170
|
+
export declare function deserializeLease(raw: string): WorktreeLease;
|