peaks-loop 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +51 -0
- package/CHANGELOG.md +3136 -0
- package/LICENSE +21 -0
- package/README-en.md +281 -0
- package/README.md +365 -0
- package/agents/karpathy-reviewer.md +229 -0
- package/bin/peaks.js +2 -0
- package/dist/src/cli/cli-helpers.d.ts +25 -0
- package/dist/src/cli/cli-helpers.js +78 -0
- package/dist/src/cli/commands/agent-commands.d.ts +20 -0
- package/dist/src/cli/commands/agent-commands.js +48 -0
- package/dist/src/cli/commands/audit-commands.d.ts +28 -0
- package/dist/src/cli/commands/audit-commands.js +437 -0
- package/dist/src/cli/commands/capability-commands.d.ts +16 -0
- package/dist/src/cli/commands/capability-commands.js +45 -0
- package/dist/src/cli/commands/capability-worker-config-sc-commands.d.ts +3 -0
- package/dist/src/cli/commands/capability-worker-config-sc-commands.js +10 -0
- package/dist/src/cli/commands/classify-classify-commands.d.ts +19 -0
- package/dist/src/cli/commands/classify-classify-commands.js +151 -0
- package/dist/src/cli/commands/code-review-commands.d.ts +34 -0
- package/dist/src/cli/commands/code-review-commands.js +83 -0
- package/dist/src/cli/commands/codegraph-commands.d.ts +3 -0
- package/dist/src/cli/commands/codegraph-commands.js +99 -0
- package/dist/src/cli/commands/complexity-commands.d.ts +9 -0
- package/dist/src/cli/commands/complexity-commands.js +34 -0
- package/dist/src/cli/commands/config-commands.d.ts +3 -0
- package/dist/src/cli/commands/config-commands.js +220 -0
- package/dist/src/cli/commands/context-builder-commands.d.ts +11 -0
- package/dist/src/cli/commands/context-builder-commands.js +85 -0
- package/dist/src/cli/commands/context-commands.d.ts +21 -0
- package/dist/src/cli/commands/context-commands.js +254 -0
- package/dist/src/cli/commands/contract-commands.d.ts +26 -0
- package/dist/src/cli/commands/contract-commands.js +114 -0
- package/dist/src/cli/commands/core/artifacts-command.d.ts +3 -0
- package/dist/src/cli/commands/core/artifacts-command.js +62 -0
- package/dist/src/cli/commands/core/binding-commands.d.ts +3 -0
- package/dist/src/cli/commands/core/binding-commands.js +58 -0
- package/dist/src/cli/commands/core/doctor-command.d.ts +11 -0
- package/dist/src/cli/commands/core/doctor-command.js +204 -0
- package/dist/src/cli/commands/core/memory-command.d.ts +3 -0
- package/dist/src/cli/commands/core/memory-command.js +98 -0
- package/dist/src/cli/commands/core/profile-command.d.ts +3 -0
- package/dist/src/cli/commands/core/profile-command.js +9 -0
- package/dist/src/cli/commands/core/proxy-command.d.ts +3 -0
- package/dist/src/cli/commands/core/proxy-command.js +26 -0
- package/dist/src/cli/commands/core/session-command.d.ts +3 -0
- package/dist/src/cli/commands/core/session-command.js +213 -0
- package/dist/src/cli/commands/core/skill-command.d.ts +3 -0
- package/dist/src/cli/commands/core/skill-command.js +275 -0
- package/dist/src/cli/commands/core/standards-command.d.ts +3 -0
- package/dist/src/cli/commands/core/standards-command.js +95 -0
- package/dist/src/cli/commands/core-artifact-commands.d.ts +15 -0
- package/dist/src/cli/commands/core-artifact-commands.js +31 -0
- package/dist/src/cli/commands/dispatch-commands.d.ts +10 -0
- package/dist/src/cli/commands/dispatch-commands.js +351 -0
- package/dist/src/cli/commands/dispatch-from-dag.d.ts +3 -0
- package/dist/src/cli/commands/dispatch-from-dag.js +251 -0
- package/dist/src/cli/commands/doc-commands.d.ts +11 -0
- package/dist/src/cli/commands/doc-commands.js +65 -0
- package/dist/src/cli/commands/feedback-commands.d.ts +18 -0
- package/dist/src/cli/commands/feedback-commands.js +145 -0
- package/dist/src/cli/commands/final-review-commands.d.ts +31 -0
- package/dist/src/cli/commands/final-review-commands.js +161 -0
- package/dist/src/cli/commands/fixture-commands.d.ts +32 -0
- package/dist/src/cli/commands/fixture-commands.js +91 -0
- package/dist/src/cli/commands/fork-commands.d.ts +16 -0
- package/dist/src/cli/commands/fork-commands.js +163 -0
- package/dist/src/cli/commands/gate-commands.d.ts +3 -0
- package/dist/src/cli/commands/gate-commands.js +117 -0
- package/dist/src/cli/commands/heartbeat-commands.d.ts +3 -0
- package/dist/src/cli/commands/heartbeat-commands.js +135 -0
- package/dist/src/cli/commands/hook-handle.d.ts +17 -0
- package/dist/src/cli/commands/hook-handle.js +157 -0
- package/dist/src/cli/commands/hooks-commands.d.ts +3 -0
- package/dist/src/cli/commands/hooks-commands.js +156 -0
- package/dist/src/cli/commands/impact-commands.d.ts +15 -0
- package/dist/src/cli/commands/impact-commands.js +62 -0
- package/dist/src/cli/commands/legacy-commands.d.ts +11 -0
- package/dist/src/cli/commands/legacy-commands.js +32 -0
- package/dist/src/cli/commands/log-commands.d.ts +17 -0
- package/dist/src/cli/commands/log-commands.js +64 -0
- package/dist/src/cli/commands/loop-commands.d.ts +21 -0
- package/dist/src/cli/commands/loop-commands.js +128 -0
- package/dist/src/cli/commands/loop-eval-commands.d.ts +20 -0
- package/dist/src/cli/commands/loop-eval-commands.js +526 -0
- package/dist/src/cli/commands/memory-commands.d.ts +23 -0
- package/dist/src/cli/commands/memory-commands.js +129 -0
- package/dist/src/cli/commands/migrate-1-4-1-command.d.ts +11 -0
- package/dist/src/cli/commands/migrate-1-4-1-command.js +34 -0
- package/dist/src/cli/commands/migrate-v2-10-to-v2-11-command.d.ts +20 -0
- package/dist/src/cli/commands/migrate-v2-10-to-v2-11-command.js +52 -0
- package/dist/src/cli/commands/mut-commands.d.ts +20 -0
- package/dist/src/cli/commands/mut-commands.js +239 -0
- package/dist/src/cli/commands/observability-commands.d.ts +22 -0
- package/dist/src/cli/commands/observability-commands.js +201 -0
- package/dist/src/cli/commands/openspec-commands.d.ts +3 -0
- package/dist/src/cli/commands/openspec-commands.js +237 -0
- package/dist/src/cli/commands/perf-audit-commands.d.ts +22 -0
- package/dist/src/cli/commands/perf-audit-commands.js +132 -0
- package/dist/src/cli/commands/perf-commands.d.ts +3 -0
- package/dist/src/cli/commands/perf-commands.js +41 -0
- package/dist/src/cli/commands/playwright-commands.d.ts +95 -0
- package/dist/src/cli/commands/playwright-commands.js +432 -0
- package/dist/src/cli/commands/prd-blocks-commands.d.ts +18 -0
- package/dist/src/cli/commands/prd-blocks-commands.js +50 -0
- package/dist/src/cli/commands/prd-commands.d.ts +18 -0
- package/dist/src/cli/commands/prd-commands.js +141 -0
- package/dist/src/cli/commands/preferences-commands.d.ts +2 -0
- package/dist/src/cli/commands/preferences-commands.js +197 -0
- package/dist/src/cli/commands/project-commands.d.ts +3 -0
- package/dist/src/cli/commands/project-commands.js +248 -0
- package/dist/src/cli/commands/qa-business-review-commands.d.ts +17 -0
- package/dist/src/cli/commands/qa-business-review-commands.js +148 -0
- package/dist/src/cli/commands/qa-commands.d.ts +94 -0
- package/dist/src/cli/commands/qa-commands.js +271 -0
- package/dist/src/cli/commands/release-commands.d.ts +24 -0
- package/dist/src/cli/commands/release-commands.js +231 -0
- package/dist/src/cli/commands/request-commands.d.ts +3 -0
- package/dist/src/cli/commands/request-commands.js +509 -0
- package/dist/src/cli/commands/retrospective-commands.d.ts +12 -0
- package/dist/src/cli/commands/retrospective-commands.js +175 -0
- package/dist/src/cli/commands/reviewer-commands.d.ts +14 -0
- package/dist/src/cli/commands/reviewer-commands.js +64 -0
- package/dist/src/cli/commands/role-commands.d.ts +13 -0
- package/dist/src/cli/commands/role-commands.js +85 -0
- package/dist/src/cli/commands/sc-commands.d.ts +3 -0
- package/dist/src/cli/commands/sc-commands.js +45 -0
- package/dist/src/cli/commands/scan-commands.d.ts +3 -0
- package/dist/src/cli/commands/scan-commands.js +445 -0
- package/dist/src/cli/commands/security-audit-commands.d.ts +23 -0
- package/dist/src/cli/commands/security-audit-commands.js +132 -0
- package/dist/src/cli/commands/session-checkpoint-command.d.ts +10 -0
- package/dist/src/cli/commands/session-checkpoint-command.js +100 -0
- package/dist/src/cli/commands/session-resume-command.d.ts +11 -0
- package/dist/src/cli/commands/session-resume-command.js +83 -0
- package/dist/src/cli/commands/share-commands.d.ts +17 -0
- package/dist/src/cli/commands/share-commands.js +296 -0
- package/dist/src/cli/commands/skill-conformance-commands.d.ts +9 -0
- package/dist/src/cli/commands/skill-conformance-commands.js +39 -0
- package/dist/src/cli/commands/slice-commands.d.ts +24 -0
- package/dist/src/cli/commands/slice-commands.js +492 -0
- package/dist/src/cli/commands/slice-integrate-commands.d.ts +11 -0
- package/dist/src/cli/commands/slice-integrate-commands.js +74 -0
- package/dist/src/cli/commands/slice-review-commands.d.ts +23 -0
- package/dist/src/cli/commands/slice-review-commands.js +162 -0
- package/dist/src/cli/commands/smoke-commands.d.ts +21 -0
- package/dist/src/cli/commands/smoke-commands.js +203 -0
- package/dist/src/cli/commands/solo-commands.d.ts +80 -0
- package/dist/src/cli/commands/solo-commands.js +435 -0
- package/dist/src/cli/commands/sop-commands.d.ts +3 -0
- package/dist/src/cli/commands/sop-commands.js +215 -0
- package/dist/src/cli/commands/statusline-commands.d.ts +3 -0
- package/dist/src/cli/commands/statusline-commands.js +169 -0
- package/dist/src/cli/commands/sub-agent-commands.d.ts +22 -0
- package/dist/src/cli/commands/sub-agent-commands.js +19 -0
- package/dist/src/cli/commands/sub-agent-dispatch-guard.d.ts +55 -0
- package/dist/src/cli/commands/sub-agent-dispatch-guard.js +57 -0
- package/dist/src/cli/commands/sub-agent-shared.d.ts +99 -0
- package/dist/src/cli/commands/sub-agent-shared.js +67 -0
- package/dist/src/cli/commands/test-commands.d.ts +47 -0
- package/dist/src/cli/commands/test-commands.js +204 -0
- package/dist/src/cli/commands/understand-commands.d.ts +3 -0
- package/dist/src/cli/commands/understand-commands.js +112 -0
- package/dist/src/cli/commands/upgrade-commands.d.ts +23 -0
- package/dist/src/cli/commands/upgrade-commands.js +119 -0
- package/dist/src/cli/commands/user-touchpoint-commands.d.ts +18 -0
- package/dist/src/cli/commands/user-touchpoint-commands.js +78 -0
- package/dist/src/cli/commands/verdict-aggregate-command.d.ts +14 -0
- package/dist/src/cli/commands/verdict-aggregate-command.js +106 -0
- package/dist/src/cli/commands/worker-commands.d.ts +3 -0
- package/dist/src/cli/commands/worker-commands.js +52 -0
- package/dist/src/cli/commands/workflow-commands.d.ts +3 -0
- package/dist/src/cli/commands/workflow-commands.js +535 -0
- package/dist/src/cli/commands/workflow-plan-commands.d.ts +39 -0
- package/dist/src/cli/commands/workflow-plan-commands.js +163 -0
- package/dist/src/cli/commands/workspace/clean-command.d.ts +14 -0
- package/dist/src/cli/commands/workspace/clean-command.js +49 -0
- package/dist/src/cli/commands/workspace/helpers.d.ts +28 -0
- package/dist/src/cli/commands/workspace/helpers.js +87 -0
- package/dist/src/cli/commands/workspace/init-command.d.ts +121 -0
- package/dist/src/cli/commands/workspace/init-command.js +436 -0
- package/dist/src/cli/commands/workspace/migrate-command.d.ts +11 -0
- package/dist/src/cli/commands/workspace/migrate-command.js +91 -0
- package/dist/src/cli/commands/workspace/reconcile-command.d.ts +14 -0
- package/dist/src/cli/commands/workspace/reconcile-command.js +103 -0
- package/dist/src/cli/commands/workspace-commands.d.ts +18 -0
- package/dist/src/cli/commands/workspace-commands.js +50 -0
- package/dist/src/cli/index.d.ts +1 -0
- package/dist/src/cli/index.js +30 -0
- package/dist/src/cli/program.d.ts +5 -0
- package/dist/src/cli/program.js +336 -0
- package/dist/src/hooks/pre-tool-use-sub-agent.d.ts +28 -0
- package/dist/src/hooks/pre-tool-use-sub-agent.js +105 -0
- package/dist/src/lib/render/message-renderer.d.ts +20 -0
- package/dist/src/lib/render/message-renderer.js +80 -0
- package/dist/src/services/agent/ecc-agent-service.d.ts +47 -0
- package/dist/src/services/agent/ecc-agent-service.js +143 -0
- package/dist/src/services/artifacts/artifact-lint-service.d.ts +23 -0
- package/dist/src/services/artifacts/artifact-lint-service.js +99 -0
- package/dist/src/services/artifacts/artifact-prerequisites.d.ts +78 -0
- package/dist/src/services/artifacts/artifact-prerequisites.js +491 -0
- package/dist/src/services/artifacts/artifact-service.d.ts +43 -0
- package/dist/src/services/artifacts/artifact-service.js +98 -0
- package/dist/src/services/artifacts/artifact-templates.d.ts +30 -0
- package/dist/src/services/artifacts/artifact-templates.js +302 -0
- package/dist/src/services/artifacts/repair-cycle-service.d.ts +23 -0
- package/dist/src/services/artifacts/repair-cycle-service.js +52 -0
- package/dist/src/services/artifacts/request-artifact-service.d.ts +116 -0
- package/dist/src/services/artifacts/request-artifact-service.js +451 -0
- package/dist/src/services/artifacts/request-artifact-state-helpers.d.ts +51 -0
- package/dist/src/services/artifacts/request-artifact-state-helpers.js +114 -0
- package/dist/src/services/artifacts/workspace-service.d.ts +34 -0
- package/dist/src/services/artifacts/workspace-service.js +272 -0
- package/dist/src/services/audit/artifact-writer.d.ts +93 -0
- package/dist/src/services/audit/artifact-writer.js +303 -0
- package/dist/src/services/audit/audit-goal-service.d.ts +35 -0
- package/dist/src/services/audit/audit-goal-service.js +75 -0
- package/dist/src/services/audit/audit-goal-types.d.ts +40 -0
- package/dist/src/services/audit/audit-goal-types.js +15 -0
- package/dist/src/services/audit/backing-detector.d.ts +24 -0
- package/dist/src/services/audit/backing-detector.js +59 -0
- package/dist/src/services/audit/classifier.d.ts +38 -0
- package/dist/src/services/audit/classifier.js +134 -0
- package/dist/src/services/audit/decision-writer.d.ts +76 -0
- package/dist/src/services/audit/decision-writer.js +217 -0
- package/dist/src/services/audit/enforcers/active-skill-resolver.d.ts +29 -0
- package/dist/src/services/audit/enforcers/active-skill-resolver.js +71 -0
- package/dist/src/services/audit/enforcers/design-draft-confirm.d.ts +24 -0
- package/dist/src/services/audit/enforcers/design-draft-confirm.js +58 -0
- package/dist/src/services/audit/enforcers/lint-audit-regression.d.ts +21 -0
- package/dist/src/services/audit/enforcers/lint-audit-regression.js +86 -0
- package/dist/src/services/audit/enforcers/lint-catalog-governance.d.ts +32 -0
- package/dist/src/services/audit/enforcers/lint-catalog-governance.js +48 -0
- package/dist/src/services/audit/enforcers/lint-cli-back.d.ts +16 -0
- package/dist/src/services/audit/enforcers/lint-cli-back.js +35 -0
- package/dist/src/services/audit/enforcers/lint-output-style.d.ts +11 -0
- package/dist/src/services/audit/enforcers/lint-output-style.js +94 -0
- package/dist/src/services/audit/enforcers/lint-reference-integrity.d.ts +6 -0
- package/dist/src/services/audit/enforcers/lint-reference-integrity.js +83 -0
- package/dist/src/services/audit/enforcers/lint-reference-shape.d.ts +30 -0
- package/dist/src/services/audit/enforcers/lint-reference-shape.js +272 -0
- package/dist/src/services/audit/enforcers/lint-style.d.ts +49 -0
- package/dist/src/services/audit/enforcers/lint-style.js +173 -0
- package/dist/src/services/audit/enforcers/lint-workflow-shape.d.ts +4 -0
- package/dist/src/services/audit/enforcers/lint-workflow-shape.js +100 -0
- package/dist/src/services/audit/enforcers/login-gate.d.ts +23 -0
- package/dist/src/services/audit/enforcers/login-gate.js +40 -0
- package/dist/src/services/audit/enforcers/mock-placement.d.ts +25 -0
- package/dist/src/services/audit/enforcers/mock-placement.js +48 -0
- package/dist/src/services/audit/enforcers/no-root-pollution.d.ts +21 -0
- package/dist/src/services/audit/enforcers/no-root-pollution.js +56 -0
- package/dist/src/services/audit/enforcers/pre-rd-scan.d.ts +22 -0
- package/dist/src/services/audit/enforcers/pre-rd-scan.js +23 -0
- package/dist/src/services/audit/enforcers/prototype-fidelity.d.ts +25 -0
- package/dist/src/services/audit/enforcers/prototype-fidelity.js +75 -0
- package/dist/src/services/audit/enforcers/resume-detection.d.ts +21 -0
- package/dist/src/services/audit/enforcers/resume-detection.js +52 -0
- package/dist/src/services/audit/enforcers/solo-code-ban.d.ts +23 -0
- package/dist/src/services/audit/enforcers/solo-code-ban.js +27 -0
- package/dist/src/services/audit/enforcers/sub-agent-sid.d.ts +25 -0
- package/dist/src/services/audit/enforcers/sub-agent-sid.js +63 -0
- package/dist/src/services/audit/prose-ratio-calculator.d.ts +45 -0
- package/dist/src/services/audit/prose-ratio-calculator.js +52 -0
- package/dist/src/services/audit/red-line-catalog-p2-a.d.ts +21 -0
- package/dist/src/services/audit/red-line-catalog-p2-a.js +229 -0
- package/dist/src/services/audit/red-line-catalog-p2-b.d.ts +19 -0
- package/dist/src/services/audit/red-line-catalog-p2-b.js +225 -0
- package/dist/src/services/audit/red-line-catalog.d.ts +51 -0
- package/dist/src/services/audit/red-line-catalog.js +195 -0
- package/dist/src/services/audit/red-lines-service.d.ts +23 -0
- package/dist/src/services/audit/red-lines-service.js +464 -0
- package/dist/src/services/audit/scanners/openspec-scanner.d.ts +15 -0
- package/dist/src/services/audit/scanners/openspec-scanner.js +55 -0
- package/dist/src/services/audit/scanners/rules-tree-scanner.d.ts +16 -0
- package/dist/src/services/audit/scanners/rules-tree-scanner.js +56 -0
- package/dist/src/services/audit/scanners/skills-tree-scanner.d.ts +17 -0
- package/dist/src/services/audit/scanners/skills-tree-scanner.js +46 -0
- package/dist/src/services/audit/static-service.d.ts +60 -0
- package/dist/src/services/audit/static-service.js +130 -0
- package/dist/src/services/audit/types.d.ts +86 -0
- package/dist/src/services/audit/types.js +13 -0
- package/dist/src/services/audit-independent/perf-audit-service.d.ts +151 -0
- package/dist/src/services/audit-independent/perf-audit-service.js +316 -0
- package/dist/src/services/audit-independent/security-audit-service.d.ts +155 -0
- package/dist/src/services/audit-independent/security-audit-service.js +316 -0
- package/dist/src/services/classify/classify-service.d.ts +42 -0
- package/dist/src/services/classify/classify-service.js +122 -0
- package/dist/src/services/classify/classify-types.d.ts +79 -0
- package/dist/src/services/classify/classify-types.js +90 -0
- package/dist/src/services/code-review/ecc-bridge.d.ts +148 -0
- package/dist/src/services/code-review/ecc-bridge.js +242 -0
- package/dist/src/services/code-review/ocr-service.d.ts +129 -0
- package/dist/src/services/code-review/ocr-service.js +369 -0
- package/dist/src/services/codegraph/codegraph-process-runner.d.ts +2 -0
- package/dist/src/services/codegraph/codegraph-process-runner.js +93 -0
- package/dist/src/services/codegraph/codegraph-service.d.ts +43 -0
- package/dist/src/services/codegraph/codegraph-service.js +160 -0
- package/dist/src/services/complexity/complexity-estimator.d.ts +34 -0
- package/dist/src/services/complexity/complexity-estimator.js +64 -0
- package/dist/src/services/config/config-migration.d.ts +45 -0
- package/dist/src/services/config/config-migration.js +154 -0
- package/dist/src/services/config/config-restore.d.ts +10 -0
- package/dist/src/services/config/config-restore.js +47 -0
- package/dist/src/services/config/config-rollback.d.ts +13 -0
- package/dist/src/services/config/config-rollback.js +26 -0
- package/dist/src/services/config/config-safety.d.ts +40 -0
- package/dist/src/services/config/config-safety.js +359 -0
- package/dist/src/services/config/config-service.d.ts +69 -0
- package/dist/src/services/config/config-service.js +814 -0
- package/dist/src/services/config/config-types.d.ts +119 -0
- package/dist/src/services/config/config-types.js +18 -0
- package/dist/src/services/config/model-routing.d.ts +4 -0
- package/dist/src/services/config/model-routing.js +17 -0
- package/dist/src/services/config/provider-service.d.ts +48 -0
- package/dist/src/services/config/provider-service.js +143 -0
- package/dist/src/services/config/proxy-service.d.ts +21 -0
- package/dist/src/services/config/proxy-service.js +44 -0
- package/dist/src/services/config/sidecar-store.d.ts +25 -0
- package/dist/src/services/config/sidecar-store.js +61 -0
- package/dist/src/services/config/workspace-state-service.d.ts +30 -0
- package/dist/src/services/config/workspace-state-service.js +142 -0
- package/dist/src/services/context/artifact-meta.d.ts +72 -0
- package/dist/src/services/context/artifact-meta.js +105 -0
- package/dist/src/services/context/auto-compact-dispatcher.d.ts +37 -0
- package/dist/src/services/context/auto-compact-dispatcher.js +190 -0
- package/dist/src/services/context/auto-compact-reader.d.ts +51 -0
- package/dist/src/services/context/auto-compact-reader.js +164 -0
- package/dist/src/services/context/auto-compact-types.d.ts +143 -0
- package/dist/src/services/context/auto-compact-types.js +36 -0
- package/dist/src/services/context/collector.d.ts +24 -0
- package/dist/src/services/context/collector.js +133 -0
- package/dist/src/services/context/context-builder.d.ts +30 -0
- package/dist/src/services/context/context-builder.js +78 -0
- package/dist/src/services/context/context-guard.d.ts +49 -0
- package/dist/src/services/context/context-guard.js +91 -0
- package/dist/src/services/context/context-schema.d.ts +415 -0
- package/dist/src/services/context/context-schema.js +73 -0
- package/dist/src/services/context/dispatch-context-guard.d.ts +27 -0
- package/dist/src/services/context/dispatch-context-guard.js +192 -0
- package/dist/src/services/context/doc-retriever.d.ts +26 -0
- package/dist/src/services/context/doc-retriever.js +51 -0
- package/dist/src/services/context/headroom-client.d.ts +34 -0
- package/dist/src/services/context/headroom-client.js +117 -0
- package/dist/src/services/context/headroom-fetcher.d.ts +6 -0
- package/dist/src/services/context/headroom-fetcher.js +28 -0
- package/dist/src/services/context/headroom-prefs.d.ts +46 -0
- package/dist/src/services/context/headroom-prefs.js +34 -0
- package/dist/src/services/context/index.d.ts +7 -0
- package/dist/src/services/context/index.js +6 -0
- package/dist/src/services/context/main-session-monitor.d.ts +77 -0
- package/dist/src/services/context/main-session-monitor.js +130 -0
- package/dist/src/services/context/renderer.d.ts +20 -0
- package/dist/src/services/context/renderer.js +30 -0
- package/dist/src/services/context/shared-channel.d.ts +93 -0
- package/dist/src/services/context/shared-channel.js +308 -0
- package/dist/src/services/context/threshold.d.ts +35 -0
- package/dist/src/services/context/threshold.js +76 -0
- package/dist/src/services/context/tokenizer.d.ts +12 -0
- package/dist/src/services/context/tokenizer.js +43 -0
- package/dist/src/services/context/types.d.ts +93 -0
- package/dist/src/services/context/types.js +9 -0
- package/dist/src/services/dashboard/project-dashboard-service.d.ts +91 -0
- package/dist/src/services/dashboard/project-dashboard-service.js +147 -0
- package/dist/src/services/dispatch/batch-counter.d.ts +27 -0
- package/dist/src/services/dispatch/batch-counter.js +102 -0
- package/dist/src/services/dispatch/contract-store.d.ts +63 -0
- package/dist/src/services/dispatch/contract-store.js +157 -0
- package/dist/src/services/dispatch/dispatch-record-writer.d.ts +138 -0
- package/dist/src/services/dispatch/dispatch-record-writer.js +460 -0
- package/dist/src/services/dispatch/heartbeat-truncator.d.ts +26 -0
- package/dist/src/services/dispatch/heartbeat-truncator.js +13 -0
- package/dist/src/services/dispatch/leak-detector.d.ts +11 -0
- package/dist/src/services/dispatch/leak-detector.js +72 -0
- package/dist/src/services/dispatch/slice-dag.d.ts +81 -0
- package/dist/src/services/dispatch/slice-dag.js +238 -0
- package/dist/src/services/dispatch/sub-agent-dispatcher.d.ts +239 -0
- package/dist/src/services/dispatch/sub-agent-dispatcher.js +382 -0
- package/dist/src/services/dispatch/test-tool-detection.d.ts +36 -0
- package/dist/src/services/dispatch/test-tool-detection.js +46 -0
- package/dist/src/services/doc/doc-generator.d.ts +38 -0
- package/dist/src/services/doc/doc-generator.js +122 -0
- package/dist/src/services/doctor/doctor-service.d.ts +149 -0
- package/dist/src/services/doctor/doctor-service.js +929 -0
- package/dist/src/services/feedback/feedback-promotion-service.d.ts +123 -0
- package/dist/src/services/feedback/feedback-promotion-service.js +300 -0
- package/dist/src/services/filesystem/file-lock.d.ts +11 -0
- package/dist/src/services/filesystem/file-lock.js +129 -0
- package/dist/src/services/final-review/final-review-service.d.ts +12 -0
- package/dist/src/services/final-review/final-review-service.js +52 -0
- package/dist/src/services/final-review/final-review-types.d.ts +42 -0
- package/dist/src/services/final-review/final-review-types.js +18 -0
- package/dist/src/services/fixture/fixture-capture-service.d.ts +87 -0
- package/dist/src/services/fixture/fixture-capture-service.js +317 -0
- package/dist/src/services/fixture/fixture-sanitize-service.d.ts +117 -0
- package/dist/src/services/fixture/fixture-sanitize-service.js +161 -0
- package/dist/src/services/fixture/index.d.ts +8 -0
- package/dist/src/services/fixture/index.js +8 -0
- package/dist/src/services/fork/fork-sync-state.d.ts +85 -0
- package/dist/src/services/fork/fork-sync-state.js +130 -0
- package/dist/src/services/fuzzy-matching/fuzzy-match-service.d.ts +15 -0
- package/dist/src/services/fuzzy-matching/fuzzy-match-service.js +56 -0
- package/dist/src/services/fuzzy-matching/fzf-pick-service.d.ts +68 -0
- package/dist/src/services/fuzzy-matching/fzf-pick-service.js +158 -0
- package/dist/src/services/fuzzy-matching/types.d.ts +20 -0
- package/dist/src/services/fuzzy-matching/types.js +1 -0
- package/dist/src/services/handoff/handoff-parser.d.ts +28 -0
- package/dist/src/services/handoff/handoff-parser.js +69 -0
- package/dist/src/services/handoff/handoff-types.d.ts +39 -0
- package/dist/src/services/handoff/handoff-types.js +19 -0
- package/dist/src/services/handoff/handoff-writer.d.ts +23 -0
- package/dist/src/services/handoff/handoff-writer.js +30 -0
- package/dist/src/services/hooks/output.d.ts +92 -0
- package/dist/src/services/hooks/output.js +111 -0
- package/dist/src/services/hooks/presence-marker-detector.d.ts +16 -0
- package/dist/src/services/hooks/presence-marker-detector.js +105 -0
- package/dist/src/services/ide/adapters/claude-code-adapter.d.ts +18 -0
- package/dist/src/services/ide/adapters/claude-code-adapter.js +91 -0
- package/dist/src/services/ide/adapters/codex-adapter.d.ts +46 -0
- package/dist/src/services/ide/adapters/codex-adapter.js +97 -0
- package/dist/src/services/ide/adapters/cursor-adapter.d.ts +36 -0
- package/dist/src/services/ide/adapters/cursor-adapter.js +84 -0
- package/dist/src/services/ide/adapters/hermes-adapter.d.ts +21 -0
- package/dist/src/services/ide/adapters/hermes-adapter.js +51 -0
- package/dist/src/services/ide/adapters/openclaw-adapter.d.ts +14 -0
- package/dist/src/services/ide/adapters/openclaw-adapter.js +42 -0
- package/dist/src/services/ide/adapters/trae-adapter.d.ts +42 -0
- package/dist/src/services/ide/adapters/trae-adapter.js +83 -0
- package/dist/src/services/ide/hook-protocol.d.ts +47 -0
- package/dist/src/services/ide/hook-protocol.js +74 -0
- package/dist/src/services/ide/hook-translator.d.ts +72 -0
- package/dist/src/services/ide/hook-translator.js +128 -0
- package/dist/src/services/ide/ide-detector.d.ts +10 -0
- package/dist/src/services/ide/ide-detector.js +19 -0
- package/dist/src/services/ide/ide-registry.d.ts +14 -0
- package/dist/src/services/ide/ide-registry.js +60 -0
- package/dist/src/services/ide/ide-types.d.ts +230 -0
- package/dist/src/services/ide/ide-types.js +2 -0
- package/dist/src/services/ide/resource-profile.d.ts +52 -0
- package/dist/src/services/ide/resource-profile.js +33 -0
- package/dist/src/services/ide/shared/atomic-json.d.ts +15 -0
- package/dist/src/services/ide/shared/atomic-json.js +58 -0
- package/dist/src/services/ide/shared/safe-path.d.ts +11 -0
- package/dist/src/services/ide/shared/safe-path.js +29 -0
- package/dist/src/services/impact/impact-scan-service.d.ts +66 -0
- package/dist/src/services/impact/impact-scan-service.js +197 -0
- package/dist/src/services/legacy/legacy-detector.d.ts +34 -0
- package/dist/src/services/legacy/legacy-detector.js +111 -0
- package/dist/src/services/log/log-commands-service.d.ts +54 -0
- package/dist/src/services/log/log-commands-service.js +83 -0
- package/dist/src/services/log/logger.d.ts +103 -0
- package/dist/src/services/log/logger.js +224 -0
- package/dist/src/services/log/redact.d.ts +32 -0
- package/dist/src/services/log/redact.js +89 -0
- package/dist/src/services/log/retention.d.ts +34 -0
- package/dist/src/services/log/retention.js +78 -0
- package/dist/src/services/loop/evaluator-dispatcher.d.ts +50 -0
- package/dist/src/services/loop/evaluator-dispatcher.js +551 -0
- package/dist/src/services/loop/monotonic-guard.d.ts +80 -0
- package/dist/src/services/loop/monotonic-guard.js +215 -0
- package/dist/src/services/loop/monotonic-runner.d.ts +55 -0
- package/dist/src/services/loop/monotonic-runner.js +197 -0
- package/dist/src/services/loop/run-driver.d.ts +70 -0
- package/dist/src/services/loop/run-driver.js +379 -0
- package/dist/src/services/loop/spec-service.d.ts +90 -0
- package/dist/src/services/loop/spec-service.js +497 -0
- package/dist/src/services/memory/llm-reranker.d.ts +174 -0
- package/dist/src/services/memory/llm-reranker.js +284 -0
- package/dist/src/services/memory/memory-search-service.d.ts +93 -0
- package/dist/src/services/memory/memory-search-service.js +117 -0
- package/dist/src/services/memory/project-context-service.d.ts +11 -0
- package/dist/src/services/memory/project-context-service.js +148 -0
- package/dist/src/services/memory/project-memory-service.d.ts +167 -0
- package/dist/src/services/memory/project-memory-service.js +817 -0
- package/dist/src/services/migration/v2-10-to-v2-11-service.d.ts +44 -0
- package/dist/src/services/migration/v2-10-to-v2-11-service.js +190 -0
- package/dist/src/services/migration/v2-10-to-v2-11-types.d.ts +41 -0
- package/dist/src/services/migration/v2-10-to-v2-11-types.js +23 -0
- package/dist/src/services/mode/bypass-tracker.d.ts +4 -0
- package/dist/src/services/mode/bypass-tracker.js +31 -0
- package/dist/src/services/mode/mode-enforcement.d.ts +14 -0
- package/dist/src/services/mode/mode-enforcement.js +84 -0
- package/dist/src/services/mut/assert-scanner.d.ts +6 -0
- package/dist/src/services/mut/assert-scanner.js +116 -0
- package/dist/src/services/mut/index.d.ts +8 -0
- package/dist/src/services/mut/index.js +7 -0
- package/dist/src/services/mut/mut-runner.d.ts +39 -0
- package/dist/src/services/mut/mut-runner.js +29 -0
- package/dist/src/services/mut/production-stryker.d.ts +7 -0
- package/dist/src/services/mut/production-stryker.js +66 -0
- package/dist/src/services/mut/report-builder.d.ts +11 -0
- package/dist/src/services/mut/report-builder.js +110 -0
- package/dist/src/services/mut/report-loader.d.ts +31 -0
- package/dist/src/services/mut/report-loader.js +78 -0
- package/dist/src/services/mut/thresholds.d.ts +21 -0
- package/dist/src/services/mut/thresholds.js +22 -0
- package/dist/src/services/mut/types.d.ts +336 -0
- package/dist/src/services/mut/types.js +59 -0
- package/dist/src/services/observability/aggregation.d.ts +64 -0
- package/dist/src/services/observability/aggregation.js +217 -0
- package/dist/src/services/observability/jsonl-store.d.ts +59 -0
- package/dist/src/services/observability/jsonl-store.js +120 -0
- package/dist/src/services/observability/observability-service.d.ts +95 -0
- package/dist/src/services/observability/observability-service.js +119 -0
- package/dist/src/services/observability/report-formatter.d.ts +42 -0
- package/dist/src/services/observability/report-formatter.js +156 -0
- package/dist/src/services/openspec/openspec-archive-service.d.ts +12 -0
- package/dist/src/services/openspec/openspec-archive-service.js +28 -0
- package/dist/src/services/openspec/openspec-bridge-service.d.ts +16 -0
- package/dist/src/services/openspec/openspec-bridge-service.js +76 -0
- package/dist/src/services/openspec/openspec-init-service.d.ts +23 -0
- package/dist/src/services/openspec/openspec-init-service.js +122 -0
- package/dist/src/services/openspec/openspec-propose-from-doctor-service.d.ts +31 -0
- package/dist/src/services/openspec/openspec-propose-from-doctor-service.js +95 -0
- package/dist/src/services/openspec/openspec-render-service.d.ts +38 -0
- package/dist/src/services/openspec/openspec-render-service.js +130 -0
- package/dist/src/services/openspec/openspec-scan-service.d.ts +6 -0
- package/dist/src/services/openspec/openspec-scan-service.js +123 -0
- package/dist/src/services/openspec/openspec-types.d.ts +39 -0
- package/dist/src/services/openspec/openspec-types.js +1 -0
- package/dist/src/services/openspec/openspec-validate-service.d.ts +27 -0
- package/dist/src/services/openspec/openspec-validate-service.js +77 -0
- package/dist/src/services/perf/perf-baseline-service.d.ts +70 -0
- package/dist/src/services/perf/perf-baseline-service.js +214 -0
- package/dist/src/services/prd/handoff-auto-regen.d.ts +22 -0
- package/dist/src/services/prd/handoff-auto-regen.js +73 -0
- package/dist/src/services/prd/handoff-service.d.ts +54 -0
- package/dist/src/services/prd/handoff-service.js +142 -0
- package/dist/src/services/prd/handoff-types.d.ts +64 -0
- package/dist/src/services/prd/handoff-types.js +22 -0
- package/dist/src/services/prd/prd-blocks-checker.d.ts +51 -0
- package/dist/src/services/prd/prd-blocks-checker.js +130 -0
- package/dist/src/services/prd/project-scan-reader.d.ts +24 -0
- package/dist/src/services/prd/project-scan-reader.js +150 -0
- package/dist/src/services/prd/project-scan-sediment.d.ts +97 -0
- package/dist/src/services/prd/project-scan-sediment.js +445 -0
- package/dist/src/services/prd/project-scan-types.d.ts +66 -0
- package/dist/src/services/prd/project-scan-types.js +20 -0
- package/dist/src/services/preferences/preferences-service.d.ts +38 -0
- package/dist/src/services/preferences/preferences-service.js +198 -0
- package/dist/src/services/preferences/preferences-types.d.ts +148 -0
- package/dist/src/services/preferences/preferences-types.js +53 -0
- package/dist/src/services/profiles/profile-service.d.ts +6 -0
- package/dist/src/services/profiles/profile-service.js +19 -0
- package/dist/src/services/progress/progress-service.d.ts +125 -0
- package/dist/src/services/progress/progress-service.js +192 -0
- package/dist/src/services/providers/minimax-provider-service.d.ts +24 -0
- package/dist/src/services/providers/minimax-provider-service.js +143 -0
- package/dist/src/services/providers/minimax-worker-service.d.ts +21 -0
- package/dist/src/services/providers/minimax-worker-service.js +83 -0
- package/dist/src/services/proxy/proxy-service.d.ts +7 -0
- package/dist/src/services/proxy/proxy-service.js +31 -0
- package/dist/src/services/qa/browser-event-logger.d.ts +40 -0
- package/dist/src/services/qa/browser-event-logger.js +54 -0
- package/dist/src/services/qa/browser-restart-detector.d.ts +74 -0
- package/dist/src/services/qa/browser-restart-detector.js +138 -0
- package/dist/src/services/qa/browser-reuse-hint.d.ts +18 -0
- package/dist/src/services/qa/browser-reuse-hint.js +18 -0
- package/dist/src/services/qa/browser-wrapper-service.d.ts +37 -0
- package/dist/src/services/qa/browser-wrapper-service.js +88 -0
- package/dist/src/services/qa/qa-business-review-state.d.ts +47 -0
- package/dist/src/services/qa/qa-business-review-state.js +96 -0
- package/dist/src/services/rd/ast-gate.d.ts +19 -0
- package/dist/src/services/rd/ast-gate.js +71 -0
- package/dist/src/services/rd/impl.d.ts +9 -0
- package/dist/src/services/rd/impl.js +57 -0
- package/dist/src/services/rd/rd-service.d.ts +129 -0
- package/dist/src/services/rd/rd-service.js +438 -0
- package/dist/src/services/rd/reviewer-dispatch-policy.d.ts +122 -0
- package/dist/src/services/rd/reviewer-dispatch-policy.js +148 -0
- package/dist/src/services/rd/standards-diagnostic.d.ts +76 -0
- package/dist/src/services/rd/standards-diagnostic.js +166 -0
- package/dist/src/services/rd/strategic-stage.d.ts +4 -0
- package/dist/src/services/rd/strategic-stage.js +15 -0
- package/dist/src/services/rd/strategy.d.ts +13 -0
- package/dist/src/services/rd/strategy.js +60 -0
- package/dist/src/services/rd/tactical-stage.d.ts +33 -0
- package/dist/src/services/rd/tactical-stage.js +62 -0
- package/dist/src/services/rd/types.d.ts +252 -0
- package/dist/src/services/rd/types.js +47 -0
- package/dist/src/services/recommendations/capability-availability.d.ts +5 -0
- package/dist/src/services/recommendations/capability-availability.js +40 -0
- package/dist/src/services/recommendations/capability-map-service.d.ts +7 -0
- package/dist/src/services/recommendations/capability-map-service.js +131 -0
- package/dist/src/services/recommendations/capability-seed-items.d.ts +2 -0
- package/dist/src/services/recommendations/capability-seed-items.js +140 -0
- package/dist/src/services/recommendations/capability-seed-mappings.d.ts +2 -0
- package/dist/src/services/recommendations/capability-seed-mappings.js +54 -0
- package/dist/src/services/recommendations/capability-seed-sources.d.ts +2 -0
- package/dist/src/services/recommendations/capability-seed-sources.js +35 -0
- package/dist/src/services/recommendations/recommendation-service.d.ts +8 -0
- package/dist/src/services/recommendations/recommendation-service.js +106 -0
- package/dist/src/services/recommendations/recommendation-types.d.ts +129 -0
- package/dist/src/services/recommendations/recommendation-types.js +1 -0
- package/dist/src/services/recommendations/seed-capability-catalog.d.ts +3 -0
- package/dist/src/services/recommendations/seed-capability-catalog.js +3 -0
- package/dist/src/services/refactor/refactor-service.d.ts +9 -0
- package/dist/src/services/refactor/refactor-service.js +36 -0
- package/dist/src/services/release/release-state.d.ts +70 -0
- package/dist/src/services/release/release-state.js +140 -0
- package/dist/src/services/retrospective/retrospective-index.d.ts +37 -0
- package/dist/src/services/retrospective/retrospective-index.js +110 -0
- package/dist/src/services/retrospective/retrospective-search-service.d.ts +55 -0
- package/dist/src/services/retrospective/retrospective-search-service.js +107 -0
- package/dist/src/services/retrospective/retrospective-show.d.ts +40 -0
- package/dist/src/services/retrospective/retrospective-show.js +109 -0
- package/dist/src/services/reviewer/model-family.d.ts +18 -0
- package/dist/src/services/reviewer/model-family.js +70 -0
- package/dist/src/services/reviewer/providers/anthropic.d.ts +2 -0
- package/dist/src/services/reviewer/providers/anthropic.js +61 -0
- package/dist/src/services/reviewer/providers/ollama.d.ts +26 -0
- package/dist/src/services/reviewer/providers/ollama.js +38 -0
- package/dist/src/services/reviewer/providers/openai.d.ts +2 -0
- package/dist/src/services/reviewer/providers/openai.js +63 -0
- package/dist/src/services/reviewer/reviewer-config.d.ts +34 -0
- package/dist/src/services/reviewer/reviewer-config.js +100 -0
- package/dist/src/services/reviewer/reviewer-service.d.ts +56 -0
- package/dist/src/services/reviewer/reviewer-service.js +263 -0
- package/dist/src/services/reviewer/selection-strategies.d.ts +27 -0
- package/dist/src/services/reviewer/selection-strategies.js +53 -0
- package/dist/src/services/role/role-registry.d.ts +38 -0
- package/dist/src/services/role/role-registry.js +83 -0
- package/dist/src/services/sc/index.d.ts +1 -0
- package/dist/src/services/sc/index.js +1 -0
- package/dist/src/services/sc/sc-service.d.ts +131 -0
- package/dist/src/services/sc/sc-service.js +552 -0
- package/dist/src/services/scan/acceptance-coverage-service.d.ts +42 -0
- package/dist/src/services/scan/acceptance-coverage-service.js +140 -0
- package/dist/src/services/scan/api-surface-service.d.ts +69 -0
- package/dist/src/services/scan/api-surface-service.js +239 -0
- package/dist/src/services/scan/archetype-service.d.ts +5 -0
- package/dist/src/services/scan/archetype-service.js +242 -0
- package/dist/src/services/scan/diff-scope-service.d.ts +40 -0
- package/dist/src/services/scan/diff-scope-service.js +198 -0
- package/dist/src/services/scan/existing-system-service.d.ts +7 -0
- package/dist/src/services/scan/existing-system-service.js +300 -0
- package/dist/src/services/scan/file-size-scan.d.ts +23 -0
- package/dist/src/services/scan/file-size-scan.js +68 -0
- package/dist/src/services/scan/karpathy-service.d.ts +60 -0
- package/dist/src/services/scan/karpathy-service.js +228 -0
- package/dist/src/services/scan/libraries-service.d.ts +24 -0
- package/dist/src/services/scan/libraries-service.js +419 -0
- package/dist/src/services/scan/libraries-types.d.ts +59 -0
- package/dist/src/services/scan/libraries-types.js +9 -0
- package/dist/src/services/scan/orphan-service.d.ts +76 -0
- package/dist/src/services/scan/orphan-service.js +538 -0
- package/dist/src/services/scan/scan-types.d.ts +59 -0
- package/dist/src/services/scan/scan-types.js +1 -0
- package/dist/src/services/scan/type-sanity-service.d.ts +23 -0
- package/dist/src/services/scan/type-sanity-service.js +116 -0
- package/dist/src/services/security/safe-settings-path.d.ts +12 -0
- package/dist/src/services/security/safe-settings-path.js +104 -0
- package/dist/src/services/session/binding-status-service.d.ts +56 -0
- package/dist/src/services/session/binding-status-service.js +106 -0
- package/dist/src/services/session/binding-store.d.ts +161 -0
- package/dist/src/services/session/binding-store.js +509 -0
- package/dist/src/services/session/caller-binding-service.d.ts +70 -0
- package/dist/src/services/session/caller-binding-service.js +148 -0
- package/dist/src/services/session/caller-id-types.d.ts +77 -0
- package/dist/src/services/session/caller-id-types.js +46 -0
- package/dist/src/services/session/getSessionDir.d.ts +1 -0
- package/dist/src/services/session/getSessionDir.js +27 -0
- package/dist/src/services/session/index.d.ts +6 -0
- package/dist/src/services/session/index.js +7 -0
- package/dist/src/services/session/platform-fallbacks.d.ts +31 -0
- package/dist/src/services/session/platform-fallbacks.js +35 -0
- package/dist/src/services/session/resolve-caller-id.d.ts +57 -0
- package/dist/src/services/session/resolve-caller-id.js +88 -0
- package/dist/src/services/session/session-binding-bridge.d.ts +76 -0
- package/dist/src/services/session/session-binding-bridge.js +247 -0
- package/dist/src/services/session/session-checkpoint-service.d.ts +57 -0
- package/dist/src/services/session/session-checkpoint-service.js +143 -0
- package/dist/src/services/session/session-manager.d.ts +168 -0
- package/dist/src/services/session/session-manager.js +502 -0
- package/dist/src/services/session/session-resume-service.d.ts +25 -0
- package/dist/src/services/session/session-resume-service.js +101 -0
- package/dist/src/services/signal/cancel-handler.d.ts +14 -0
- package/dist/src/services/signal/cancel-handler.js +76 -0
- package/dist/src/services/skill/resume-detector.d.ts +54 -0
- package/dist/src/services/skill/resume-detector.js +334 -0
- package/dist/src/services/skill/skill-scheduler.d.ts +40 -0
- package/dist/src/services/skill/skill-scheduler.js +53 -0
- package/dist/src/services/skills/hooks-settings-service.d.ts +137 -0
- package/dist/src/services/skills/hooks-settings-service.js +396 -0
- package/dist/src/services/skills/skill-conformance-service.d.ts +40 -0
- package/dist/src/services/skills/skill-conformance-service.js +136 -0
- package/dist/src/services/skills/skill-presence-service.d.ts +158 -0
- package/dist/src/services/skills/skill-presence-service.js +474 -0
- package/dist/src/services/skills/skill-registry.d.ts +17 -0
- package/dist/src/services/skills/skill-registry.js +40 -0
- package/dist/src/services/skills/skill-runbook-service.d.ts +11 -0
- package/dist/src/services/skills/skill-runbook-service.js +128 -0
- package/dist/src/services/skills/skill-statusline-renderer.d.ts +6 -0
- package/dist/src/services/skills/skill-statusline-renderer.js +55 -0
- package/dist/src/services/skills/skill-statusline-service.d.ts +24 -0
- package/dist/src/services/skills/skill-statusline-service.js +110 -0
- package/dist/src/services/skills/statusline-settings-service.d.ts +59 -0
- package/dist/src/services/skills/statusline-settings-service.js +141 -0
- package/dist/src/services/skills/sync-service.d.ts +86 -0
- package/dist/src/services/skills/sync-service.js +271 -0
- package/dist/src/services/slice/calibration-store.d.ts +39 -0
- package/dist/src/services/slice/calibration-store.js +68 -0
- package/dist/src/services/slice/cross-pass-edge-merger.d.ts +53 -0
- package/dist/src/services/slice/cross-pass-edge-merger.js +246 -0
- package/dist/src/services/slice/granularity-decider.d.ts +37 -0
- package/dist/src/services/slice/granularity-decider.js +40 -0
- package/dist/src/services/slice/llm-arbitrator.d.ts +35 -0
- package/dist/src/services/slice/llm-arbitrator.js +63 -0
- package/dist/src/services/slice/multi-pass-orchestrator.d.ts +67 -0
- package/dist/src/services/slice/multi-pass-orchestrator.js +225 -0
- package/dist/src/services/slice/schema-router.d.ts +44 -0
- package/dist/src/services/slice/schema-router.js +61 -0
- package/dist/src/services/slice/slice-archive-service.d.ts +20 -0
- package/dist/src/services/slice/slice-archive-service.js +111 -0
- package/dist/src/services/slice/slice-benchmark-service.d.ts +19 -0
- package/dist/src/services/slice/slice-benchmark-service.js +60 -0
- package/dist/src/services/slice/slice-check-service.d.ts +2 -0
- package/dist/src/services/slice/slice-check-service.js +459 -0
- package/dist/src/services/slice/slice-check-types.d.ts +104 -0
- package/dist/src/services/slice/slice-check-types.js +28 -0
- package/dist/src/services/slice/slice-decompose-runners.d.ts +23 -0
- package/dist/src/services/slice/slice-decompose-runners.js +174 -0
- package/dist/src/services/slice/slice-decompose-service.d.ts +24 -0
- package/dist/src/services/slice/slice-decompose-service.js +532 -0
- package/dist/src/services/slice/slice-decompose-types.d.ts +263 -0
- package/dist/src/services/slice/slice-decompose-types.js +30 -0
- package/dist/src/services/slice/slice-integration.d.ts +43 -0
- package/dist/src/services/slice/slice-integration.js +106 -0
- package/dist/src/services/slice/slice-pick-service.d.ts +32 -0
- package/dist/src/services/slice/slice-pick-service.js +75 -0
- package/dist/src/services/slice/slice-review-state.d.ts +70 -0
- package/dist/src/services/slice/slice-review-state.js +109 -0
- package/dist/src/services/slice/slice-topology-types.d.ts +115 -0
- package/dist/src/services/slice/slice-topology-types.js +20 -0
- package/dist/src/services/smoke/smoke-paths-state.d.ts +73 -0
- package/dist/src/services/smoke/smoke-paths-state.js +117 -0
- package/dist/src/services/solo/auto-compact-orchestrator.d.ts +98 -0
- package/dist/src/services/solo/auto-compact-orchestrator.js +343 -0
- package/dist/src/services/solo/batch-heartbeat-poller.d.ts +51 -0
- package/dist/src/services/solo/batch-heartbeat-poller.js +88 -0
- package/dist/src/services/solo/dag-orchestrator.d.ts +128 -0
- package/dist/src/services/solo/dag-orchestrator.js +304 -0
- package/dist/src/services/solo/mode-gate.d.ts +163 -0
- package/dist/src/services/solo/mode-gate.js +212 -0
- package/dist/src/services/solo/post-compact-detector.d.ts +61 -0
- package/dist/src/services/solo/post-compact-detector.js +240 -0
- package/dist/src/services/solo/status-line-renderer.d.ts +34 -0
- package/dist/src/services/solo/status-line-renderer.js +55 -0
- package/dist/src/services/solo/user-touchpoint-classifier.d.ts +44 -0
- package/dist/src/services/solo/user-touchpoint-classifier.js +145 -0
- package/dist/src/services/sop/gate-enforce-service.d.ts +33 -0
- package/dist/src/services/sop/gate-enforce-service.js +168 -0
- package/dist/src/services/sop/sop-advance-service.d.ts +74 -0
- package/dist/src/services/sop/sop-advance-service.js +115 -0
- package/dist/src/services/sop/sop-check-service.d.ts +45 -0
- package/dist/src/services/sop/sop-check-service.js +181 -0
- package/dist/src/services/sop/sop-paths.d.ts +62 -0
- package/dist/src/services/sop/sop-paths.js +92 -0
- package/dist/src/services/sop/sop-registry-service.d.ts +46 -0
- package/dist/src/services/sop/sop-registry-service.js +89 -0
- package/dist/src/services/sop/sop-service.d.ts +55 -0
- package/dist/src/services/sop/sop-service.js +222 -0
- package/dist/src/services/sop/sop-types.d.ts +95 -0
- package/dist/src/services/sop/sop-types.js +11 -0
- package/dist/src/services/standards/ide-aware-standards-service.d.ts +94 -0
- package/dist/src/services/standards/ide-aware-standards-service.js +89 -0
- package/dist/src/services/standards/migrate-claude-rules-service.d.ts +19 -0
- package/dist/src/services/standards/migrate-claude-rules-service.js +193 -0
- package/dist/src/services/standards/migrate-service.d.ts +63 -0
- package/dist/src/services/standards/migrate-service.js +193 -0
- package/dist/src/services/standards/missing-standards-detector.d.ts +79 -0
- package/dist/src/services/standards/missing-standards-detector.js +132 -0
- package/dist/src/services/standards/project-context.d.ts +24 -0
- package/dist/src/services/standards/project-context.js +314 -0
- package/dist/src/services/standards/project-standards-service.d.ts +114 -0
- package/dist/src/services/standards/project-standards-service.js +574 -0
- package/dist/src/services/tech/tech-service.d.ts +69 -0
- package/dist/src/services/tech/tech-service.js +299 -0
- package/dist/src/services/test-cache/test-cache-service.d.ts +70 -0
- package/dist/src/services/test-cache/test-cache-service.js +175 -0
- package/dist/src/services/understand/understand-scan-service.d.ts +28 -0
- package/dist/src/services/understand/understand-scan-service.js +170 -0
- package/dist/src/services/understand/understand-types.d.ts +50 -0
- package/dist/src/services/understand/understand-types.js +1 -0
- package/dist/src/services/upgrade/1x-detector-service.d.ts +7 -0
- package/dist/src/services/upgrade/1x-detector-service.js +94 -0
- package/dist/src/services/upgrade/gitignore-migrate-service.d.ts +56 -0
- package/dist/src/services/upgrade/gitignore-migrate-service.js +170 -0
- package/dist/src/services/upgrade/upgrade-service.d.ts +47 -0
- package/dist/src/services/upgrade/upgrade-service.js +381 -0
- package/dist/src/services/verdict/envelopes.d.ts +93 -0
- package/dist/src/services/verdict/envelopes.js +349 -0
- package/dist/src/services/verdict/verdict-aggregator.d.ts +94 -0
- package/dist/src/services/verdict/verdict-aggregator.js +112 -0
- package/dist/src/services/workflow/artifact-paths.d.ts +59 -0
- package/dist/src/services/workflow/artifact-paths.js +166 -0
- package/dist/src/services/workflow/autonomous-resume-writer.d.ts +16 -0
- package/dist/src/services/workflow/autonomous-resume-writer.js +170 -0
- package/dist/src/services/workflow/pipeline-verify-service.d.ts +90 -0
- package/dist/src/services/workflow/pipeline-verify-service.js +449 -0
- package/dist/src/services/workflow/plan-reader.d.ts +29 -0
- package/dist/src/services/workflow/plan-reader.js +174 -0
- package/dist/src/services/workflow/plan-refresher.d.ts +32 -0
- package/dist/src/services/workflow/plan-refresher.js +353 -0
- package/dist/src/services/workflow/plan-trigger-detector.d.ts +55 -0
- package/dist/src/services/workflow/plan-trigger-detector.js +142 -0
- package/dist/src/services/workflow/workflow-autonomous-resume-helpers.d.ts +19 -0
- package/dist/src/services/workflow/workflow-autonomous-resume-helpers.js +300 -0
- package/dist/src/services/workflow/workflow-autonomous-service.d.ts +100 -0
- package/dist/src/services/workflow/workflow-autonomous-service.js +306 -0
- package/dist/src/services/workflow/workflow-loader.d.ts +63 -0
- package/dist/src/services/workflow/workflow-loader.js +168 -0
- package/dist/src/services/workflow/workflow-router-service.d.ts +85 -0
- package/dist/src/services/workflow/workflow-router-service.js +227 -0
- package/dist/src/services/workflow/workflow-skip-service.d.ts +106 -0
- package/dist/src/services/workflow/workflow-skip-service.js +209 -0
- package/dist/src/services/workflow/workflow-spec.d.ts +116 -0
- package/dist/src/services/workflow/workflow-spec.js +431 -0
- package/dist/src/services/workflow/workflow-state-store.d.ts +27 -0
- package/dist/src/services/workflow/workflow-state-store.js +95 -0
- package/dist/src/services/workspace/claude-settings-template.d.ts +96 -0
- package/dist/src/services/workspace/claude-settings-template.js +215 -0
- package/dist/src/services/workspace/migrate-1-4-1-service.d.ts +44 -0
- package/dist/src/services/workspace/migrate-1-4-1-service.js +195 -0
- package/dist/src/services/workspace/migrate-service.d.ts +2 -0
- package/dist/src/services/workspace/migrate-service.js +613 -0
- package/dist/src/services/workspace/migrate-types.d.ts +127 -0
- package/dist/src/services/workspace/migrate-types.js +21 -0
- package/dist/src/services/workspace/reconcile-service.d.ts +188 -0
- package/dist/src/services/workspace/reconcile-service.js +683 -0
- package/dist/src/services/workspace/reconcile-types.d.ts +130 -0
- package/dist/src/services/workspace/reconcile-types.js +13 -0
- package/dist/src/services/workspace/sid-naming-guard.d.ts +17 -0
- package/dist/src/services/workspace/sid-naming-guard.js +34 -0
- package/dist/src/services/workspace/workspace-claude-settings-materializer.d.ts +45 -0
- package/dist/src/services/workspace/workspace-claude-settings-materializer.js +194 -0
- package/dist/src/services/workspace/workspace-clean-service.d.ts +28 -0
- package/dist/src/services/workspace/workspace-clean-service.js +46 -0
- package/dist/src/services/workspace/workspace-service.d.ts +177 -0
- package/dist/src/services/workspace/workspace-service.js +432 -0
- package/dist/src/services/workspace/workspace-state-service.d.ts +7 -0
- package/dist/src/services/workspace/workspace-state-service.js +43 -0
- package/dist/src/shared/format-md-compact.d.ts +32 -0
- package/dist/src/shared/format-md-compact.js +297 -0
- package/dist/src/shared/frontmatter.d.ts +6 -0
- package/dist/src/shared/frontmatter.js +165 -0
- package/dist/src/shared/fs-utils.d.ts +4 -0
- package/dist/src/shared/fs-utils.js +16 -0
- package/dist/src/shared/fs.d.ts +4 -0
- package/dist/src/shared/fs.js +26 -0
- package/dist/src/shared/incrementing-number.d.ts +23 -0
- package/dist/src/shared/incrementing-number.js +68 -0
- package/dist/src/shared/json-schema-mini.d.ts +10 -0
- package/dist/src/shared/json-schema-mini.js +113 -0
- package/dist/src/shared/path-safety.d.ts +21 -0
- package/dist/src/shared/path-safety.js +54 -0
- package/dist/src/shared/path-utils.d.ts +13 -0
- package/dist/src/shared/path-utils.js +56 -0
- package/dist/src/shared/paths.d.ts +6 -0
- package/dist/src/shared/paths.js +50 -0
- package/dist/src/shared/planner-response.d.ts +21 -0
- package/dist/src/shared/planner-response.js +26 -0
- package/dist/src/shared/platform.d.ts +6 -0
- package/dist/src/shared/platform.js +11 -0
- package/dist/src/shared/process.d.ts +5 -0
- package/dist/src/shared/process.js +12 -0
- package/dist/src/shared/result.d.ts +22 -0
- package/dist/src/shared/result.js +46 -0
- package/dist/src/shared/stale-policy.d.ts +67 -0
- package/dist/src/shared/stale-policy.js +85 -0
- package/dist/src/shared/version.d.ts +1 -0
- package/dist/src/shared/version.js +1 -0
- package/output-styles/peaks-skill-swarm.md +132 -0
- package/package.json +101 -0
- package/schemas/approval-record.schema.json +14 -0
- package/schemas/artifact-manifest.schema.json +16 -0
- package/schemas/artifact-retention-report.schema.json +38 -0
- package/schemas/artifact-workspace.schema.json +22 -0
- package/schemas/capability-availability.schema.json +36 -0
- package/schemas/capability-item.schema.json +37 -0
- package/schemas/capability-source.schema.json +30 -0
- package/schemas/change-impact.schema.json +15 -0
- package/schemas/context-capsule.schema.json +16 -0
- package/schemas/context.schema.json +360 -0
- package/schemas/decomposition-v1.json +194 -0
- package/schemas/decomposition-v2.json +193 -0
- package/schemas/doctor-report.schema.json +34 -0
- package/schemas/library-breaking-changes.data.json +141 -0
- package/schemas/library-breaking-changes.meta.json +6 -0
- package/schemas/library-breaking-changes.schema.json +50 -0
- package/schemas/mcp-apply-result.schema.json +46 -0
- package/schemas/mcp-install-plan.schema.json +71 -0
- package/schemas/mcp-install-spec.schema.json +29 -0
- package/schemas/mcp-server.schema.json +29 -0
- package/schemas/openspec-change-summary.schema.json +68 -0
- package/schemas/openspec-render-request.schema.json +61 -0
- package/schemas/openspec-validation-result.schema.json +36 -0
- package/schemas/recommendation-plan.schema.json +37 -0
- package/schemas/refactor-slice-spec.schema.json +19 -0
- package/schemas/replay-fixture.schema.json +158 -0
- package/schemas/reviewer-envelope.schema.json +79 -0
- package/schemas/sop-manifest.schema.json +52 -0
- package/scripts/clean-dist.mjs +8 -0
- package/scripts/install-skills.mjs +1202 -0
- package/scripts/sync-version.mjs +12 -0
- package/scripts/watch.mjs +389 -0
- package/skills/peaks-audit/SKILL.md +151 -0
- package/skills/peaks-audit/references/6-dimensions.md +141 -0
- package/skills/peaks-doctor/SKILL.md +59 -0
- package/skills/peaks-doctor/references/doctor-check-catalog.md +31 -0
- package/skills/peaks-doctor/references/from-doctor-flow.md +64 -0
- package/skills/peaks-doctor/test_prompts.json +17 -0
- package/skills/peaks-final-review/SKILL.md +157 -0
- package/skills/peaks-final-review/references/4-dimensions.md +117 -0
- package/skills/peaks-ide/SKILL.md +161 -0
- package/skills/peaks-ide/references/audit-log-helper.md +52 -0
- package/skills/peaks-perf-audit/SKILL.md +166 -0
- package/skills/peaks-perf-audit/references/audit-protocol.md +173 -0
- package/skills/peaks-prd/SKILL.md +319 -0
- package/skills/peaks-prd/references/artifact-contracts.md +7 -0
- package/skills/peaks-prd/references/artifact-per-request.md +78 -0
- package/skills/peaks-prd/references/command-migration.md +3 -0
- package/skills/peaks-prd/references/prd-for-multi-pass.md +49 -0
- package/skills/peaks-prd/references/workflow.md +43 -0
- package/skills/peaks-qa/SKILL.md +240 -0
- package/skills/peaks-qa/references/artifact-contracts.md +7 -0
- package/skills/peaks-qa/references/artifact-per-request.md +25 -0
- package/skills/peaks-qa/references/browser-validation-contracts.md +51 -0
- package/skills/peaks-qa/references/codegraph-regression-focus.md +5 -0
- package/skills/peaks-qa/references/command-migration.md +3 -0
- package/skills/peaks-qa/references/external-capability-guidance.md +9 -0
- package/skills/peaks-qa/references/openspec-validation-gate.md +55 -0
- package/skills/peaks-qa/references/qa-compact-handoff.md +3 -0
- package/skills/peaks-qa/references/qa-context-governance.md +24 -0
- package/skills/peaks-qa/references/qa-fanout-contract.md +158 -0
- package/skills/peaks-qa/references/qa-gstack-integration.md +7 -0
- package/skills/peaks-qa/references/qa-local-artifacts.md +3 -0
- package/skills/peaks-qa/references/qa-matt-pocock-integration.md +9 -0
- package/skills/peaks-qa/references/qa-perf-test-plan.md +67 -0
- package/skills/peaks-qa/references/qa-refactor-role.md +3 -0
- package/skills/peaks-qa/references/qa-runbook.md +72 -0
- package/skills/peaks-qa/references/qa-security-test-plan.md +73 -0
- package/skills/peaks-qa/references/qa-skill-presence.md +22 -0
- package/skills/peaks-qa/references/qa-standards-preflight.md +8 -0
- package/skills/peaks-qa/references/qa-sub-agent-dispatch.md +46 -0
- package/skills/peaks-qa/references/qa-transition-gates.md +86 -0
- package/skills/peaks-qa/references/reading-handoff-frontmatter.md +30 -0
- package/skills/peaks-qa/references/regression-gates.md +24 -0
- package/skills/peaks-qa/references/requirement-boundary-recheck.md +9 -0
- package/skills/peaks-qa/references/test-case-generation.md +27 -0
- package/skills/peaks-qa/references/test-report-output.md +14 -0
- package/skills/peaks-rd/SKILL.md +279 -0
- package/skills/peaks-rd/references/artifact-and-standards-output.md +9 -0
- package/skills/peaks-rd/references/artifact-contracts.md +7 -0
- package/skills/peaks-rd/references/artifact-per-request.md +112 -0
- package/skills/peaks-rd/references/browser-action-wrapper.md +39 -0
- package/skills/peaks-rd/references/browser-self-test-contracts.md +29 -0
- package/skills/peaks-rd/references/code-reviewer-4dim-hint.md +72 -0
- package/skills/peaks-rd/references/codegraph-project-analysis.md +5 -0
- package/skills/peaks-rd/references/command-migration.md +3 -0
- package/skills/peaks-rd/references/compact-handoff.md +3 -0
- package/skills/peaks-rd/references/external-references.md +11 -0
- package/skills/peaks-rd/references/frontend-project-generation.md +11 -0
- package/skills/peaks-rd/references/karpathy-reviewer-prompt.md +2 -0
- package/skills/peaks-rd/references/library-version-awareness.md +30 -0
- package/skills/peaks-rd/references/mandatory-perf-baseline.md +42 -0
- package/skills/peaks-rd/references/matt-pocock-integration.md +11 -0
- package/skills/peaks-rd/references/mock-data-placement.md +40 -0
- package/skills/peaks-rd/references/ocr-integration.md +229 -0
- package/skills/peaks-rd/references/openspec-cli.md +62 -0
- package/skills/peaks-rd/references/parallel-review-fanout.md +90 -0
- package/skills/peaks-rd/references/rd-context-governance.md +36 -0
- package/skills/peaks-rd/references/rd-fanout-contracts.md +216 -0
- package/skills/peaks-rd/references/rd-gstack-integration.md +16 -0
- package/skills/peaks-rd/references/rd-runbook.md +190 -0
- package/skills/peaks-rd/references/rd-standards-preflight.md +8 -0
- package/skills/peaks-rd/references/rd-sub-agent-dispatch.md +111 -0
- package/skills/peaks-rd/references/rd-transition-gates.md +148 -0
- package/skills/peaks-rd/references/reading-v2-slice-results.md +54 -0
- package/skills/peaks-rd/references/refactor-workflow.md +39 -0
- package/skills/peaks-rd/references/skill-presence-and-title.md +22 -0
- package/skills/peaks-rd/references/v2-12-fanout-collapse.md +64 -0
- package/skills/peaks-rd/references/writing-handoff-frontmatter.md +68 -0
- package/skills/peaks-reviewer/SKILL.md +76 -0
- package/skills/peaks-reviewer/references/reviewer-prompt.md +50 -0
- package/skills/peaks-reviewer/references/reviewer-schema.md +49 -0
- package/skills/peaks-sc/SKILL.md +166 -0
- package/skills/peaks-sc/references/artifact-contracts.md +3 -0
- package/skills/peaks-sc/references/artifact-retention.md +14 -0
- package/skills/peaks-sc/references/command-migration.md +3 -0
- package/skills/peaks-sc/references/openspec-commit-boundaries.md +33 -0
- package/skills/peaks-security-audit/SKILL.md +167 -0
- package/skills/peaks-security-audit/references/audit-protocol.md +175 -0
- package/skills/peaks-slice-decompose/SKILL.md +111 -0
- package/skills/peaks-slice-decompose/references/cross-pass-edge-interpretation.md +158 -0
- package/skills/peaks-slice-decompose/references/granularity-decision.md +129 -0
- package/skills/peaks-slice-decompose/references/v2-schema.md +156 -0
- package/skills/peaks-solo/SKILL.md +316 -0
- package/skills/peaks-solo/references/a2a-artifact-mapping.md +115 -0
- package/skills/peaks-solo/references/anchoring-and-session-info.md +34 -0
- package/skills/peaks-solo/references/artifact-contracts.md +65 -0
- package/skills/peaks-solo/references/boundaries.md +21 -0
- package/skills/peaks-solo/references/browser-workflow.md +127 -0
- package/skills/peaks-solo/references/checkpoint-resume.md +70 -0
- package/skills/peaks-solo/references/codegraph-orchestration.md +5 -0
- package/skills/peaks-solo/references/command-migration.md +3 -0
- package/skills/peaks-solo/references/completion-handoff.md +18 -0
- package/skills/peaks-solo/references/context-governance.md +204 -0
- package/skills/peaks-solo/references/cross-date-session-check.md +67 -0
- package/skills/peaks-solo/references/dag-orchestrator.md +56 -0
- package/skills/peaks-solo/references/envelope-contract.md +130 -0
- package/skills/peaks-solo/references/existing-system-extraction.md +78 -0
- package/skills/peaks-solo/references/external-references.md +17 -0
- package/skills/peaks-solo/references/external-skill-invocation.md +72 -0
- package/skills/peaks-solo/references/fanout-mandatory.md +109 -0
- package/skills/peaks-solo/references/fast-mode.md +23 -0
- package/skills/peaks-solo/references/frontend-only-mode.md +87 -0
- package/skills/peaks-solo/references/gstack-integration.md +7 -0
- package/skills/peaks-solo/references/headroom-integration.md +107 -0
- package/skills/peaks-solo/references/local-artifact-workspace.md +79 -0
- package/skills/peaks-solo/references/micro-cycle.md +316 -0
- package/skills/peaks-solo/references/mode-selection-with-stale-presence.md +124 -0
- package/skills/peaks-solo/references/mode-selection.md +21 -0
- package/skills/peaks-solo/references/openspec-workflow.md +81 -0
- package/skills/peaks-solo/references/periodic-checkpoint.md +71 -0
- package/skills/peaks-solo/references/playwright-mcp-multi-terminal.md +114 -0
- package/skills/peaks-solo/references/project-memory-loading.md +17 -0
- package/skills/peaks-solo/references/project-scan-checklist.md +136 -0
- package/skills/peaks-solo/references/quality-gate-cheatsheet.md +13 -0
- package/skills/peaks-solo/references/refactor-mode.md +24 -0
- package/skills/peaks-solo/references/resume-detection.md +63 -0
- package/skills/peaks-solo/references/runbook.md +188 -0
- package/skills/peaks-solo/references/skill-presence-and-title.md +31 -0
- package/skills/peaks-solo/references/standards-preflight.md +23 -0
- package/skills/peaks-solo/references/step-0-55-1x-detection.md +82 -0
- package/skills/peaks-solo/references/sub-agent-dispatch.md +334 -0
- package/skills/peaks-solo/references/swarm-dispatch-contract.md +230 -0
- package/skills/peaks-solo/references/workflow-gates-and-types.md +186 -0
- package/skills/peaks-solo/references/workflow.md +38 -0
- package/skills/peaks-solo-resume/SKILL.md +81 -0
- package/skills/peaks-solo-status/SKILL.md +120 -0
- package/skills/peaks-solo-test/SKILL.md +84 -0
- package/skills/peaks-sop/SKILL.md +209 -0
- package/skills/peaks-sop/references/sop-authoring.md +161 -0
- package/skills/peaks-txt/SKILL.md +303 -0
- package/skills/peaks-txt/references/artifact-contracts.md +7 -0
- package/skills/peaks-txt/references/command-migration.md +3 -0
- package/skills/peaks-txt/references/context-capsule.md +21 -0
- package/skills/peaks-ui/SKILL.md +369 -0
- package/skills/peaks-ui/references/artifact-contracts.md +3 -0
- package/skills/peaks-ui/references/artifact-per-request.md +71 -0
- package/skills/peaks-ui/references/command-migration.md +3 -0
- package/skills/peaks-ui/references/workflow.md +27 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { IdeAdapter } from '../ide-types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Trae IDE adapter —— peaks-cli 的第二个内置 IDE 适配器。
|
|
4
|
+
*
|
|
5
|
+
* 不可消除的 per-IDE 字段(slice #1 锁定):
|
|
6
|
+
* - settings.dirName = '.trae' : Trae 项目根下的配置目录
|
|
7
|
+
* - settings.settingsFileName = 'settings.json' (VERIFIED against Trae 1.x fixture, slice 009-009-2026-06-07-trae-dogfood)
|
|
8
|
+
* - envVar = 'TRAE_PROJECT_DIR' : Trae 注入的 env 变量(用于 ${...} 占位)
|
|
9
|
+
* - hookEvent = 'beforeToolCall' (VERIFIED against Trae 1.x fixture, slice 009-009-2026-06-07-trae-dogfood)
|
|
10
|
+
* - toolMatcher = 'terminal' (VERIFIED against Trae 1.x fixture, slice 009-009-2026-06-07-trae-dogfood)
|
|
11
|
+
*
|
|
12
|
+
* Slice #1 的 slim `IdeAdapter` shape 在 slice #1 RD 中被锁为"填表"模式。
|
|
13
|
+
* 本文件是 slice #2 第一个真实客户,验证 slice #1 抽出的形状真的可以
|
|
14
|
+
* 简单复制粘贴就接入新 IDE。
|
|
15
|
+
*
|
|
16
|
+
* 与 slice #1 claude-code-adapter.ts 的区别(故意):
|
|
17
|
+
* - Trae 的 hookEvent 名是 `beforeToolCall` 而不是 `PreToolUse`(VERIFIED)
|
|
18
|
+
* - Trae 的 toolMatcher 是 `terminal` 而不是 `Bash`(VERIFIED)
|
|
19
|
+
* - Trae 的 settings 路径是 `.trae/settings.json`(同 Claude 风格,只是目录名不同;VERIFIED)
|
|
20
|
+
* - Trae 的 envVar 是 `TRAE_PROJECT_DIR`
|
|
21
|
+
* - installHints 提示用户"重启 Trae"(同 Claude 风格)
|
|
22
|
+
*
|
|
23
|
+
* Slice #009 验证结论(2026-06-07):
|
|
24
|
+
* - 4 UNVERIFIED fields are all VERIFIED-AS-IS against the Trae 1.x fixture
|
|
25
|
+
* (tests/fixtures/trae/trae-1x-payload.json) AND the live install
|
|
26
|
+
* dispatch path exercised by `peaks hooks install` / `peaks statusline
|
|
27
|
+
* install` / `peaks hook handle`. The fixture mimics a real Trae 1.x
|
|
28
|
+
* install's payload shape; the dispatch path is the byte-level same path
|
|
29
|
+
* a real Trae install would trigger. Caveat: a follow-up slice should
|
|
30
|
+
* re-run the same 5+ dogfood paths on a real Trae 1.x install once one
|
|
31
|
+
* is available, to confirm the 1.x assumption is correct (see PRD R-1
|
|
32
|
+
* + the new memory at
|
|
33
|
+
* .peaks/memory/trae-adapter-values-verified-against-1x.md).
|
|
34
|
+
* - See .peaks/_runtime/2026-06-06-session-5b1095/qa/dogfood-trae-1x-2026-06-07.md
|
|
35
|
+
* for the full resolution table.
|
|
36
|
+
*
|
|
37
|
+
* Slice #3 refactor: the `peaks hooks install` command now dispatches on the
|
|
38
|
+
* IDE adapter (auto-detect from env / cwd, override with `--ide trae`). When
|
|
39
|
+
* a Trae install is run, the resulting `<root>/.trae/settings.json` will use
|
|
40
|
+
* the `beforeToolCall` event key and the `terminal` matcher from this adapter.
|
|
41
|
+
*/
|
|
42
|
+
export declare const TRAE_ADAPTER: IdeAdapter;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { homedir } from 'node:os';
|
|
2
|
+
import { join, resolve } from 'node:path';
|
|
3
|
+
import { traeSubAgentDispatcher } from '../../dispatch/sub-agent-dispatcher.js';
|
|
4
|
+
/**
|
|
5
|
+
* Trae IDE adapter —— peaks-cli 的第二个内置 IDE 适配器。
|
|
6
|
+
*
|
|
7
|
+
* 不可消除的 per-IDE 字段(slice #1 锁定):
|
|
8
|
+
* - settings.dirName = '.trae' : Trae 项目根下的配置目录
|
|
9
|
+
* - settings.settingsFileName = 'settings.json' (VERIFIED against Trae 1.x fixture, slice 009-009-2026-06-07-trae-dogfood)
|
|
10
|
+
* - envVar = 'TRAE_PROJECT_DIR' : Trae 注入的 env 变量(用于 ${...} 占位)
|
|
11
|
+
* - hookEvent = 'beforeToolCall' (VERIFIED against Trae 1.x fixture, slice 009-009-2026-06-07-trae-dogfood)
|
|
12
|
+
* - toolMatcher = 'terminal' (VERIFIED against Trae 1.x fixture, slice 009-009-2026-06-07-trae-dogfood)
|
|
13
|
+
*
|
|
14
|
+
* Slice #1 的 slim `IdeAdapter` shape 在 slice #1 RD 中被锁为"填表"模式。
|
|
15
|
+
* 本文件是 slice #2 第一个真实客户,验证 slice #1 抽出的形状真的可以
|
|
16
|
+
* 简单复制粘贴就接入新 IDE。
|
|
17
|
+
*
|
|
18
|
+
* 与 slice #1 claude-code-adapter.ts 的区别(故意):
|
|
19
|
+
* - Trae 的 hookEvent 名是 `beforeToolCall` 而不是 `PreToolUse`(VERIFIED)
|
|
20
|
+
* - Trae 的 toolMatcher 是 `terminal` 而不是 `Bash`(VERIFIED)
|
|
21
|
+
* - Trae 的 settings 路径是 `.trae/settings.json`(同 Claude 风格,只是目录名不同;VERIFIED)
|
|
22
|
+
* - Trae 的 envVar 是 `TRAE_PROJECT_DIR`
|
|
23
|
+
* - installHints 提示用户"重启 Trae"(同 Claude 风格)
|
|
24
|
+
*
|
|
25
|
+
* Slice #009 验证结论(2026-06-07):
|
|
26
|
+
* - 4 UNVERIFIED fields are all VERIFIED-AS-IS against the Trae 1.x fixture
|
|
27
|
+
* (tests/fixtures/trae/trae-1x-payload.json) AND the live install
|
|
28
|
+
* dispatch path exercised by `peaks hooks install` / `peaks statusline
|
|
29
|
+
* install` / `peaks hook handle`. The fixture mimics a real Trae 1.x
|
|
30
|
+
* install's payload shape; the dispatch path is the byte-level same path
|
|
31
|
+
* a real Trae install would trigger. Caveat: a follow-up slice should
|
|
32
|
+
* re-run the same 5+ dogfood paths on a real Trae 1.x install once one
|
|
33
|
+
* is available, to confirm the 1.x assumption is correct (see PRD R-1
|
|
34
|
+
* + the new memory at
|
|
35
|
+
* .peaks/memory/trae-adapter-values-verified-against-1x.md).
|
|
36
|
+
* - See .peaks/_runtime/2026-06-06-session-5b1095/qa/dogfood-trae-1x-2026-06-07.md
|
|
37
|
+
* for the full resolution table.
|
|
38
|
+
*
|
|
39
|
+
* Slice #3 refactor: the `peaks hooks install` command now dispatches on the
|
|
40
|
+
* IDE adapter (auto-detect from env / cwd, override with `--ide trae`). When
|
|
41
|
+
* a Trae install is run, the resulting `<root>/.trae/settings.json` will use
|
|
42
|
+
* the `beforeToolCall` event key and the `terminal` matcher from this adapter.
|
|
43
|
+
*/
|
|
44
|
+
export const TRAE_ADAPTER = {
|
|
45
|
+
id: 'trae',
|
|
46
|
+
displayName: 'Trae',
|
|
47
|
+
settings: {
|
|
48
|
+
dirName: '.trae',
|
|
49
|
+
settingsFileName: 'settings.json', // VERIFIED against Trae 1.x fixture — slice 009-009-2026-06-07-trae-dogfood (2026-06-07)
|
|
50
|
+
resolveSettingsFile: (scope, projectRoot) => {
|
|
51
|
+
const root = scope === 'global' ? homedir() : resolve(projectRoot ?? homedir());
|
|
52
|
+
return join(root, '.trae', 'settings.json');
|
|
53
|
+
},
|
|
54
|
+
supportsScope: (scope) => scope === 'project' || scope === 'global'
|
|
55
|
+
},
|
|
56
|
+
envVar: 'TRAE_PROJECT_DIR',
|
|
57
|
+
hookEvent: 'beforeToolCall', // VERIFIED against Trae 1.x fixture — slice 009-009-2026-06-07-trae-dogfood (2026-06-07); fixture at tests/fixtures/trae/trae-1x-payload.json
|
|
58
|
+
toolMatcher: 'terminal', // VERIFIED against Trae 1.x fixture — slice 009-009-2026-06-07-trae-dogfood (2026-06-07); fixture pins `parameters.tool: 'terminal'`
|
|
59
|
+
// Slice #009: Trae's sub-agent dispatcher is UNVERIFIED — Trae sub-agent
|
|
60
|
+
// tool name TBD on real dogfood; byte-level identical to claude-code by
|
|
61
|
+
// design so the dispatcher shape is uniform across both adapters. Awaiting
|
|
62
|
+
// real Trae 1.x dogfood to confirm/replace.
|
|
63
|
+
subAgentDispatcher: traeSubAgentDispatcher,
|
|
64
|
+
// Slice #010 G9: Trae supports `beforeToolCall` which can wrap
|
|
65
|
+
// `peaks sub-agent-dispatch-guard`. Opt in (matches the byte-stable
|
|
66
|
+
// slice #008 install entry shape).
|
|
67
|
+
promptSizeAware: true,
|
|
68
|
+
installHints: [
|
|
69
|
+
'Restart Trae (or reload the workspace) so the beforeToolCall hooks take effect.'
|
|
70
|
+
],
|
|
71
|
+
capabilities: {
|
|
72
|
+
gateEnforce: true,
|
|
73
|
+
statusline: true,
|
|
74
|
+
}
|
|
75
|
+
// Standards: UNVERIFIED — see slice #012+ (Trae real-install dogfood for
|
|
76
|
+
// the `standardsProfile` and `skillInstall` fields). The slice #011
|
|
77
|
+
// framework lands; per-IDE values for Trae are a follow-up gated on
|
|
78
|
+
// the user's real Trae 1.x install. Until then, `peaks standards init`
|
|
79
|
+
// on a Trae-detected project falls back to the Claude Code path
|
|
80
|
+
// (CLAUDE.md + .claude/rules/**) with a stderr warning, and the
|
|
81
|
+
// postinstall script writes skills + output-styles to the legacy
|
|
82
|
+
// `~/.claude/{skills,output-styles}` paths with a stderr warning.
|
|
83
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { PEAKS_HOOK_SCHEMA, type IdeId, type PeaksCanonicalHook, type PeaksDecisionTransport } from './ide-types.js';
|
|
2
|
+
export { PEAKS_HOOK_SCHEMA };
|
|
3
|
+
export type { PeaksCanonicalHook, PeaksDecisionTransport };
|
|
4
|
+
/**
|
|
5
|
+
* Compute the deny decision shape for Claude Code (the only adapter registered
|
|
6
|
+
* in slice #1). The output is a JSON object that, when written to stdout, makes
|
|
7
|
+
* the Claude Code permission system block the tool call BEFORE the user's
|
|
8
|
+
* permission prompt — un-bypassable, even under --dangerously-skip-permissions.
|
|
9
|
+
*/
|
|
10
|
+
export declare const CLAUDE_CODE_DENY_SHAPE: Record<string, unknown>;
|
|
11
|
+
export declare const CLAUDE_CODE_DENY_TRANSPORT: PeaksDecisionTransport;
|
|
12
|
+
/**
|
|
13
|
+
* Compute the deny decision shape for Trae (Cursor-style sibling IDE).
|
|
14
|
+
* VERIFIED against Trae 1.x fixture — slice 009-009-2026-06-07-trae-dogfood (2026-06-07).
|
|
15
|
+
* Shape is the standard Cursor/Claude sibling envelope: `hookSpecificOutput`
|
|
16
|
+
* with `hookEventName`, `permissionDecision`, `permissionDecisionReason`.
|
|
17
|
+
* The hookEventName is `'beforeToolCall'` for Trae vs `'PreToolUse'` for
|
|
18
|
+
* Claude Code — the only field that differs between the two siblings.
|
|
19
|
+
* Fixture: tests/fixtures/trae/trae-1x-payload.json. Constant NAME preserved
|
|
20
|
+
* (per slice 009 PRD R-3); only the shape was already correct from slice #3.
|
|
21
|
+
*/
|
|
22
|
+
export declare const TRAE_DENY_SHAPE: Record<string, unknown>;
|
|
23
|
+
export declare const TRAE_DENY_TRANSPORT: PeaksDecisionTransport;
|
|
24
|
+
/**
|
|
25
|
+
* Format a decision response for a given IDE. Slice #1 handles Claude Code;
|
|
26
|
+
* slice #3 added Trae (1.x-assumption shape — see TRAE_DENY_SHAPE doc).
|
|
27
|
+
* Future slices will add exit-code / both variants for IDEs that don't read
|
|
28
|
+
* stdout.
|
|
29
|
+
*/
|
|
30
|
+
export declare function formatDecisionResponse(ide: IdeId, decision: 'allow' | 'deny', reason?: string): {
|
|
31
|
+
stdout: string;
|
|
32
|
+
exitCode: number;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Build a peaks canonical hook from a parsed stdin payload. Caller has already
|
|
36
|
+
* done stdin parsing + IDE auto-detection; this function normalizes to the
|
|
37
|
+
* canonical schema.
|
|
38
|
+
*/
|
|
39
|
+
export interface BuildCanonicalHookInput {
|
|
40
|
+
readonly toolName: string;
|
|
41
|
+
readonly toolInput: Record<string, unknown>;
|
|
42
|
+
readonly projectRoot: string;
|
|
43
|
+
readonly rawIdeFormat: IdeId;
|
|
44
|
+
readonly rawPayload: unknown;
|
|
45
|
+
readonly event?: PeaksCanonicalHook['event'];
|
|
46
|
+
}
|
|
47
|
+
export declare function buildCanonicalHook(input: BuildCanonicalHookInput): PeaksCanonicalHook;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { PEAKS_HOOK_SCHEMA } from './ide-types.js';
|
|
2
|
+
export { PEAKS_HOOK_SCHEMA };
|
|
3
|
+
/**
|
|
4
|
+
* Compute the deny decision shape for Claude Code (the only adapter registered
|
|
5
|
+
* in slice #1). The output is a JSON object that, when written to stdout, makes
|
|
6
|
+
* the Claude Code permission system block the tool call BEFORE the user's
|
|
7
|
+
* permission prompt — un-bypassable, even under --dangerously-skip-permissions.
|
|
8
|
+
*/
|
|
9
|
+
export const CLAUDE_CODE_DENY_SHAPE = {
|
|
10
|
+
hookSpecificOutput: {
|
|
11
|
+
hookEventName: 'PreToolUse',
|
|
12
|
+
permissionDecision: 'deny',
|
|
13
|
+
permissionDecisionReason: '__REASON__' // replaced at format time
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
export const CLAUDE_CODE_DENY_TRANSPORT = {
|
|
17
|
+
kind: 'stdout-json',
|
|
18
|
+
denyShape: CLAUDE_CODE_DENY_SHAPE
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Compute the deny decision shape for Trae (Cursor-style sibling IDE).
|
|
22
|
+
* VERIFIED against Trae 1.x fixture — slice 009-009-2026-06-07-trae-dogfood (2026-06-07).
|
|
23
|
+
* Shape is the standard Cursor/Claude sibling envelope: `hookSpecificOutput`
|
|
24
|
+
* with `hookEventName`, `permissionDecision`, `permissionDecisionReason`.
|
|
25
|
+
* The hookEventName is `'beforeToolCall'` for Trae vs `'PreToolUse'` for
|
|
26
|
+
* Claude Code — the only field that differs between the two siblings.
|
|
27
|
+
* Fixture: tests/fixtures/trae/trae-1x-payload.json. Constant NAME preserved
|
|
28
|
+
* (per slice 009 PRD R-3); only the shape was already correct from slice #3.
|
|
29
|
+
*/
|
|
30
|
+
export const TRAE_DENY_SHAPE = {
|
|
31
|
+
hookSpecificOutput: {
|
|
32
|
+
hookEventName: 'beforeToolCall',
|
|
33
|
+
permissionDecision: 'deny',
|
|
34
|
+
permissionDecisionReason: '__REASON__' // replaced at format time
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
export const TRAE_DENY_TRANSPORT = {
|
|
38
|
+
kind: 'stdout-json',
|
|
39
|
+
denyShape: TRAE_DENY_SHAPE
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Format a decision response for a given IDE. Slice #1 handles Claude Code;
|
|
43
|
+
* slice #3 added Trae (1.x-assumption shape — see TRAE_DENY_SHAPE doc).
|
|
44
|
+
* Future slices will add exit-code / both variants for IDEs that don't read
|
|
45
|
+
* stdout.
|
|
46
|
+
*/
|
|
47
|
+
export function formatDecisionResponse(ide, decision, reason) {
|
|
48
|
+
if (decision === 'allow') {
|
|
49
|
+
return { stdout: '', exitCode: 0 };
|
|
50
|
+
}
|
|
51
|
+
let shape;
|
|
52
|
+
if (ide === 'claude-code') {
|
|
53
|
+
shape = CLAUDE_CODE_DENY_SHAPE;
|
|
54
|
+
}
|
|
55
|
+
else if (ide === 'trae') {
|
|
56
|
+
shape = TRAE_DENY_SHAPE;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
throw new Error(`formatDecisionResponse: unsupported IDE ${ide} (not registered in adapter registry; future slice will add support)`);
|
|
60
|
+
}
|
|
61
|
+
const filled = JSON.stringify(shape).replace('"__REASON__"', JSON.stringify(reason ?? 'denied'));
|
|
62
|
+
return { stdout: filled, exitCode: 0 };
|
|
63
|
+
}
|
|
64
|
+
export function buildCanonicalHook(input) {
|
|
65
|
+
return {
|
|
66
|
+
schema: PEAKS_HOOK_SCHEMA,
|
|
67
|
+
event: input.event ?? 'pre-tool-use',
|
|
68
|
+
toolName: input.toolName,
|
|
69
|
+
toolInput: input.toolInput,
|
|
70
|
+
projectRoot: input.projectRoot,
|
|
71
|
+
rawIdeFormat: input.rawIdeFormat,
|
|
72
|
+
rawPayload: input.rawPayload
|
|
73
|
+
};
|
|
74
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { IdeId } from './ide-types.js';
|
|
2
|
+
/**
|
|
3
|
+
* hook-translator —— peaks 自有 hook 协议的核心。
|
|
4
|
+
*
|
|
5
|
+
* 单一职责:把 IDE 私有 stdin 形态归一化到 peaks canonical schema;把 peaks 决策
|
|
6
|
+
* 格式化回 IDE 期望的 stdout/exit-code 形态。
|
|
7
|
+
*
|
|
8
|
+
* auto-detection 算法(优先级从高到低):
|
|
9
|
+
* 1. env 变量:CLAUDE_PROJECT_DIR / TRAE_PROJECT_DIR / CODEX_PROJECT_DIR / ...
|
|
10
|
+
* 2. stdin shape:`{ tool_name, tool_input }` 是 Claude / Trae;
|
|
11
|
+
* `{ toolName, toolInput }` 是 Cursor;
|
|
12
|
+
* `{ eventName, parameters }` 是 Trae 另形态
|
|
13
|
+
* 3. cwd 启发式:存在 .claude / .trae / .codex / .cursor 目录
|
|
14
|
+
* 4. fallback:`claude-code`(backward compat,见 PRD preserved behavior #10)
|
|
15
|
+
*/
|
|
16
|
+
export interface DetectFromStdinInput {
|
|
17
|
+
readonly env: NodeJS.ProcessEnv;
|
|
18
|
+
readonly cwd: string;
|
|
19
|
+
/** 已解析的 stdin 形态;null = 空 stdin 或非 JSON */
|
|
20
|
+
readonly parsedStdin: unknown;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Detect the originating IDE from env / stdin shape / cwd heuristics.
|
|
24
|
+
* Falls back to 'claude-code' (PRD preserved behavior: backward compat).
|
|
25
|
+
*/
|
|
26
|
+
export declare function detectIdeFromContext(input: DetectFromStdinInput): IdeId;
|
|
27
|
+
/**
|
|
28
|
+
* Pluck a string value at a nested path. Returns undefined if any segment is
|
|
29
|
+
* missing or non-object. Used by adapter-driven stdin parsers.
|
|
30
|
+
*/
|
|
31
|
+
export declare function pluckString(obj: unknown, path: readonly string[]): string | undefined;
|
|
32
|
+
export declare function pluckObject(obj: unknown, path: readonly string[]): Record<string, unknown> | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* Default stdin parser for adapters that follow the Claude Code shape
|
|
35
|
+
* (most LLM-style IDEs do: tool_name at top, tool_input.{command} inside).
|
|
36
|
+
*/
|
|
37
|
+
export declare function parseClaudeShapeStdin(parsed: unknown): {
|
|
38
|
+
toolName?: string;
|
|
39
|
+
command?: string;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Trae stdin parser. UNVERIFIED — Trae 1.x's actual stdin envelope shape is
|
|
43
|
+
* assumed to be Cursor-style (eventName at top, parameters nested), based on
|
|
44
|
+
* slice #2's read of Trae as a "Cursor sibling". When a real Trae 1.x hook
|
|
45
|
+
* payload is dogfooded, this parser is the seam to update.
|
|
46
|
+
*
|
|
47
|
+
* Shape (assumed):
|
|
48
|
+
* { eventName: 'beforeToolCall', parameters: { command: 'rm -rf /' } }
|
|
49
|
+
*
|
|
50
|
+
* Returns the same `{ toolName, command }` shape as parseClaudeShapeStdin so
|
|
51
|
+
* downstream code (buildCanonicalHook, enforceBashCommand) does not need to
|
|
52
|
+
* branch on IDE. The `toolName` here is the IDE-specific name (e.g.
|
|
53
|
+
* 'terminal'); callers may normalize it to the canonical 'Bash' if needed.
|
|
54
|
+
*/
|
|
55
|
+
export declare function parseTraeShapeStdin(parsed: unknown): {
|
|
56
|
+
toolName?: string;
|
|
57
|
+
command?: string;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Per-adapter stdin parser dispatch. Returns the `{ toolName, command }` pair
|
|
61
|
+
* for the given IDE, regardless of which stdin shape the IDE actually emits.
|
|
62
|
+
*
|
|
63
|
+
* The dispatch table is keyed on `IdeId` (not stdin shape) so an adapter can
|
|
64
|
+
* change its wire format without breaking the hook-handle flow. Unknown IDEs
|
|
65
|
+
* fall back to the Claude parser — that preserves the slice #1 "fail-open to
|
|
66
|
+
* Claude" behavior so a future adapter that has not yet been added does not
|
|
67
|
+
* crash the hook runtime.
|
|
68
|
+
*/
|
|
69
|
+
export declare function parseAdapterStdin(ide: IdeId, parsed: unknown): {
|
|
70
|
+
toolName?: string;
|
|
71
|
+
command?: string;
|
|
72
|
+
};
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { getAdapter, listAdapterIds } from './ide-registry.js';
|
|
4
|
+
/**
|
|
5
|
+
* Detect the originating IDE from env / stdin shape / cwd heuristics.
|
|
6
|
+
* Falls back to 'claude-code' (PRD preserved behavior: backward compat).
|
|
7
|
+
*/
|
|
8
|
+
export function detectIdeFromContext(input) {
|
|
9
|
+
// 1. env 变量优先级最高。Iterate ONLY over currently-registered adapters
|
|
10
|
+
// so the function does not throw on unregistered IDEs while future slices
|
|
11
|
+
// progressively add trae / codex / cursor / qoder / tongyi-lingma.
|
|
12
|
+
for (const adapter of listAdapterIds()) {
|
|
13
|
+
const a = getAdapter(adapter);
|
|
14
|
+
if (input.env[a.envVar] !== undefined) {
|
|
15
|
+
return adapter;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
// 2. stdin shape
|
|
19
|
+
if (isObject(input.parsedStdin)) {
|
|
20
|
+
if ('tool_name' in input.parsedStdin || 'tool_input' in input.parsedStdin) {
|
|
21
|
+
return 'claude-code';
|
|
22
|
+
}
|
|
23
|
+
if ('toolName' in input.parsedStdin || 'toolInput' in input.parsedStdin) {
|
|
24
|
+
return 'cursor';
|
|
25
|
+
}
|
|
26
|
+
if ('eventName' in input.parsedStdin || 'parameters' in input.parsedStdin) {
|
|
27
|
+
return 'trae';
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
// 3. cwd 启发式。Same registration-aware iteration as step 1.
|
|
31
|
+
for (const adapter of listAdapterIds()) {
|
|
32
|
+
const a = getAdapter(adapter);
|
|
33
|
+
if (existsSync(join(input.cwd, a.settings.dirName))) {
|
|
34
|
+
return adapter;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
// 4. fallback
|
|
38
|
+
return 'claude-code';
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Pluck a string value at a nested path. Returns undefined if any segment is
|
|
42
|
+
* missing or non-object. Used by adapter-driven stdin parsers.
|
|
43
|
+
*/
|
|
44
|
+
export function pluckString(obj, path) {
|
|
45
|
+
let cur = obj;
|
|
46
|
+
for (const seg of path) {
|
|
47
|
+
if (!isObject(cur) || !(seg in cur))
|
|
48
|
+
return undefined;
|
|
49
|
+
cur = cur[seg];
|
|
50
|
+
}
|
|
51
|
+
return typeof cur === 'string' ? cur : undefined;
|
|
52
|
+
}
|
|
53
|
+
export function pluckObject(obj, path) {
|
|
54
|
+
let cur = obj;
|
|
55
|
+
for (const seg of path) {
|
|
56
|
+
if (!isObject(cur) || !(seg in cur))
|
|
57
|
+
return undefined;
|
|
58
|
+
cur = cur[seg];
|
|
59
|
+
}
|
|
60
|
+
return isObject(cur) ? cur : undefined;
|
|
61
|
+
}
|
|
62
|
+
function isObject(v) {
|
|
63
|
+
return v !== null && typeof v === 'object' && !Array.isArray(v);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Default stdin parser for adapters that follow the Claude Code shape
|
|
67
|
+
* (most LLM-style IDEs do: tool_name at top, tool_input.{command} inside).
|
|
68
|
+
*/
|
|
69
|
+
export function parseClaudeShapeStdin(parsed) {
|
|
70
|
+
if (!isObject(parsed))
|
|
71
|
+
return {};
|
|
72
|
+
const toolName = pluckString(parsed, ['tool_name']);
|
|
73
|
+
const command = pluckString(parsed, ['tool_input', 'command']);
|
|
74
|
+
const result = {};
|
|
75
|
+
if (toolName !== undefined)
|
|
76
|
+
result.toolName = toolName;
|
|
77
|
+
if (command !== undefined)
|
|
78
|
+
result.command = command;
|
|
79
|
+
return result;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Trae stdin parser. UNVERIFIED — Trae 1.x's actual stdin envelope shape is
|
|
83
|
+
* assumed to be Cursor-style (eventName at top, parameters nested), based on
|
|
84
|
+
* slice #2's read of Trae as a "Cursor sibling". When a real Trae 1.x hook
|
|
85
|
+
* payload is dogfooded, this parser is the seam to update.
|
|
86
|
+
*
|
|
87
|
+
* Shape (assumed):
|
|
88
|
+
* { eventName: 'beforeToolCall', parameters: { command: 'rm -rf /' } }
|
|
89
|
+
*
|
|
90
|
+
* Returns the same `{ toolName, command }` shape as parseClaudeShapeStdin so
|
|
91
|
+
* downstream code (buildCanonicalHook, enforceBashCommand) does not need to
|
|
92
|
+
* branch on IDE. The `toolName` here is the IDE-specific name (e.g.
|
|
93
|
+
* 'terminal'); callers may normalize it to the canonical 'Bash' if needed.
|
|
94
|
+
*/
|
|
95
|
+
export function parseTraeShapeStdin(parsed) {
|
|
96
|
+
if (!isObject(parsed))
|
|
97
|
+
return {};
|
|
98
|
+
const eventName = pluckString(parsed, ['eventName']);
|
|
99
|
+
const command = pluckString(parsed, ['parameters', 'command']);
|
|
100
|
+
const result = {};
|
|
101
|
+
// Trae sends the event name in the payload (`eventName: 'beforeToolCall'`)
|
|
102
|
+
// and the tool name on the parameters (e.g. `parameters.tool: 'terminal'`).
|
|
103
|
+
// We expose the event name as the "toolName" for now since Trae has not
|
|
104
|
+
// been observed to carry a top-level tool field. Future slice can split
|
|
105
|
+
// event vs tool if the real shape requires it.
|
|
106
|
+
if (eventName !== undefined)
|
|
107
|
+
result.toolName = eventName;
|
|
108
|
+
if (command !== undefined)
|
|
109
|
+
result.command = command;
|
|
110
|
+
return result;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Per-adapter stdin parser dispatch. Returns the `{ toolName, command }` pair
|
|
114
|
+
* for the given IDE, regardless of which stdin shape the IDE actually emits.
|
|
115
|
+
*
|
|
116
|
+
* The dispatch table is keyed on `IdeId` (not stdin shape) so an adapter can
|
|
117
|
+
* change its wire format without breaking the hook-handle flow. Unknown IDEs
|
|
118
|
+
* fall back to the Claude parser — that preserves the slice #1 "fail-open to
|
|
119
|
+
* Claude" behavior so a future adapter that has not yet been added does not
|
|
120
|
+
* crash the hook runtime.
|
|
121
|
+
*/
|
|
122
|
+
export function parseAdapterStdin(ide, parsed) {
|
|
123
|
+
if (ide === 'trae')
|
|
124
|
+
return parseTraeShapeStdin(parsed);
|
|
125
|
+
// Future adapters (codex, cursor, qoder, tongyi-lingma) — branch here when
|
|
126
|
+
// their adapters are registered. Until then, fall back to Claude shape.
|
|
127
|
+
return parseClaudeShapeStdin(parsed);
|
|
128
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { IdeId } from './ide-types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Detect which IDE a given project root is using, by looking for the IDE's
|
|
4
|
+
* settings directory (`.claude`, `.trae`, etc.). Returns the first match in
|
|
5
|
+
* adapter insertion order, or `null` if no adapter's directory is present.
|
|
6
|
+
*
|
|
7
|
+
* 启发式:基于 cwd 目录存在性。CLI 后续 slice 会扩展为 env 变量检测、settings
|
|
8
|
+
* 文件内容检测、显式 `--ide` flag 覆盖等。
|
|
9
|
+
*/
|
|
10
|
+
export declare function detectInstalledIde(projectRoot: string): IdeId | null;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { listAdapters } from './ide-registry.js';
|
|
4
|
+
/**
|
|
5
|
+
* Detect which IDE a given project root is using, by looking for the IDE's
|
|
6
|
+
* settings directory (`.claude`, `.trae`, etc.). Returns the first match in
|
|
7
|
+
* adapter insertion order, or `null` if no adapter's directory is present.
|
|
8
|
+
*
|
|
9
|
+
* 启发式:基于 cwd 目录存在性。CLI 后续 slice 会扩展为 env 变量检测、settings
|
|
10
|
+
* 文件内容检测、显式 `--ide` flag 覆盖等。
|
|
11
|
+
*/
|
|
12
|
+
export function detectInstalledIde(projectRoot) {
|
|
13
|
+
for (const adapter of listAdapters()) {
|
|
14
|
+
if (existsSync(join(projectRoot, adapter.settings.dirName))) {
|
|
15
|
+
return adapter.id;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { IdeAdapter, IdeId } from './ide-types.js';
|
|
2
|
+
/** Get the adapter for a given IDE id. Throws on unsupported IDE. */
|
|
3
|
+
export declare function getAdapter(ide: IdeId): IdeAdapter;
|
|
4
|
+
/** All registered adapter ids (insertion order). */
|
|
5
|
+
export declare function listAdapterIds(): readonly IdeId[];
|
|
6
|
+
/** All registered adapters (insertion order). */
|
|
7
|
+
export declare function listAdapters(): readonly IdeAdapter[];
|
|
8
|
+
/**
|
|
9
|
+
* Test seam: register or replace an adapter. Used by future slices when adding
|
|
10
|
+
* a new IDE. Caller is responsible for ensuring the adapter is well-formed.
|
|
11
|
+
*/
|
|
12
|
+
export declare function _setAdapterForTesting(ide: IdeId, adapter: IdeAdapter): void;
|
|
13
|
+
/** Test seam: reset to built-in defaults. */
|
|
14
|
+
export declare function _resetAdaptersForTesting(): void;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { CLAUDE_CODE_ADAPTER } from './adapters/claude-code-adapter.js';
|
|
2
|
+
import { TRAE_ADAPTER } from './adapters/trae-adapter.js';
|
|
3
|
+
import { CURSOR_ADAPTER } from './adapters/cursor-adapter.js';
|
|
4
|
+
import { CODEX_ADAPTER } from './adapters/codex-adapter.js';
|
|
5
|
+
import { HERMES_ADAPTER } from './adapters/hermes-adapter.js';
|
|
6
|
+
import { OPENCLAW_ADAPTER } from './adapters/openclaw-adapter.js';
|
|
7
|
+
/**
|
|
8
|
+
* Built-in IDE adapter registry。Map<IdeId, IdeAdapter> 是单一来源。
|
|
9
|
+
*
|
|
10
|
+
* Slice #1 注册 claude-code。
|
|
11
|
+
* Slice #2 注册 trae —— 这是 slice #1 抽出的 IdeAdapter 形状的
|
|
12
|
+
* 第一个真实客户,验证"填表"承诺。
|
|
13
|
+
* 后续 slice 注入 codex / cursor / qoder / tongyi-lingma 时,只需在此
|
|
14
|
+
* Map 加条目 —— 所有 adapter 使用方(hook-translator、hooks install、statusline
|
|
15
|
+
* install、mcp apply)通过 `getAdapter(ide)` 拿取,无需修改。
|
|
16
|
+
* Slice #0.7 注入 hermes + openclaw。
|
|
17
|
+
* Slice #12 (2.4.0) 注册 cursor。
|
|
18
|
+
* Slice #13 (2.4.0) 注册 codex。
|
|
19
|
+
*/
|
|
20
|
+
const ADAPTERS = new Map([
|
|
21
|
+
['claude-code', CLAUDE_CODE_ADAPTER],
|
|
22
|
+
['trae', TRAE_ADAPTER],
|
|
23
|
+
['cursor', CURSOR_ADAPTER],
|
|
24
|
+
['codex', CODEX_ADAPTER],
|
|
25
|
+
['hermes', HERMES_ADAPTER],
|
|
26
|
+
['openclaw', OPENCLAW_ADAPTER],
|
|
27
|
+
]);
|
|
28
|
+
/** Get the adapter for a given IDE id. Throws on unsupported IDE. */
|
|
29
|
+
export function getAdapter(ide) {
|
|
30
|
+
const adapter = ADAPTERS.get(ide);
|
|
31
|
+
if (!adapter) {
|
|
32
|
+
throw new Error(`Unsupported IDE: ${ide}. Registered: ${listAdapterIds().join(', ') || '(none)'}`);
|
|
33
|
+
}
|
|
34
|
+
return adapter;
|
|
35
|
+
}
|
|
36
|
+
/** All registered adapter ids (insertion order). */
|
|
37
|
+
export function listAdapterIds() {
|
|
38
|
+
return Array.from(ADAPTERS.keys());
|
|
39
|
+
}
|
|
40
|
+
/** All registered adapters (insertion order). */
|
|
41
|
+
export function listAdapters() {
|
|
42
|
+
return Array.from(ADAPTERS.values());
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Test seam: register or replace an adapter. Used by future slices when adding
|
|
46
|
+
* a new IDE. Caller is responsible for ensuring the adapter is well-formed.
|
|
47
|
+
*/
|
|
48
|
+
export function _setAdapterForTesting(ide, adapter) {
|
|
49
|
+
ADAPTERS.set(ide, adapter);
|
|
50
|
+
}
|
|
51
|
+
/** Test seam: reset to built-in defaults. */
|
|
52
|
+
export function _resetAdaptersForTesting() {
|
|
53
|
+
ADAPTERS.clear();
|
|
54
|
+
ADAPTERS.set('claude-code', CLAUDE_CODE_ADAPTER);
|
|
55
|
+
ADAPTERS.set('trae', TRAE_ADAPTER);
|
|
56
|
+
ADAPTERS.set('cursor', CURSOR_ADAPTER);
|
|
57
|
+
ADAPTERS.set('codex', CODEX_ADAPTER);
|
|
58
|
+
ADAPTERS.set('hermes', HERMES_ADAPTER);
|
|
59
|
+
ADAPTERS.set('openclaw', OPENCLAW_ADAPTER);
|
|
60
|
+
}
|