peaks-loop 4.0.54 → 4.1.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/CHANGELOG.md +36 -0
- package/README-en.md +16 -1
- package/README.md +15 -1
- package/config/eslint/.peaks-rules.cjs +158 -13
- package/config/eslint/tsconfig.lint.json +47 -0
- package/dist/cli/cli-envelope.d.ts +114 -0
- package/dist/cli/cli-envelope.js +85 -0
- package/dist/cli/cli-helpers.d.ts +1 -1
- package/dist/cli/cli-helpers.js +8 -4
- package/dist/cli/commands/_cli-error-envelope.js +1 -1
- package/dist/cli/commands/_register.js +85 -38
- package/dist/cli/commands/_super.js +40 -7
- package/dist/cli/commands/adapter-commands-s2a.js +8 -7
- package/dist/cli/commands/adapter-commands.d.ts +2 -2
- package/dist/cli/commands/adapter-commands.js +7 -8
- package/dist/cli/commands/api-diff-commands.js +5 -4
- package/dist/cli/commands/asset-commands.d.ts +2 -2
- package/dist/cli/commands/asset-commands.js +135 -132
- package/dist/cli/commands/audit-commands.d.ts +1 -1
- package/dist/cli/commands/audit-commands.js +75 -32
- package/dist/cli/commands/autonomous-swarm-commands.d.ts +1 -1
- package/dist/cli/commands/autonomous-swarm-commands.js +14 -8
- package/dist/cli/commands/baseline-commands.js +34 -9
- package/dist/cli/commands/bee-commands.d.ts +1 -1
- package/dist/cli/commands/bee-commands.js +18 -21
- package/dist/cli/commands/best-practice-scan-command.js +6 -34
- package/dist/cli/commands/best-practice-scan-helpers.d.ts +12 -0
- package/dist/cli/commands/best-practice-scan-helpers.js +37 -0
- package/dist/cli/commands/capability-commands.d.ts +1 -1
- package/dist/cli/commands/capability-commands.js +14 -4
- package/dist/cli/commands/capability-worker-config-sc-commands.d.ts +1 -1
- package/dist/cli/commands/changeset-commands.js +21 -18
- package/dist/cli/commands/code-gate-command.js +9 -2
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.d.ts +15 -0
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.js +70 -0
- package/dist/cli/commands/code-job-shape-commands.js +21 -45
- package/dist/cli/commands/code-mode-gate-commands.d.ts +15 -1
- package/dist/cli/commands/code-mode-gate-commands.js +19 -199
- package/dist/cli/commands/code-mode-gate-plan-command.d.ts +14 -0
- package/dist/cli/commands/code-mode-gate-plan-command.js +23 -0
- package/dist/cli/commands/code-mode-gate-should-pause-command.d.ts +24 -0
- package/dist/cli/commands/code-mode-gate-should-pause-command.js +137 -0
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.d.ts +59 -0
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.js +144 -0
- package/dist/cli/commands/code-orchestrator-can-do.js +4 -4
- package/dist/cli/commands/code-review-commands.js +18 -3
- package/dist/cli/commands/code-run-command.js +44 -7
- package/dist/cli/commands/code-runtime-commands.d.ts +17 -0
- package/dist/cli/commands/code-runtime-commands.js +105 -73
- package/dist/cli/commands/codegraph-commands.js +11 -6
- package/dist/cli/commands/codegraph-status-command.js +6 -2
- package/dist/cli/commands/compact-command.js +52 -26
- package/dist/cli/commands/complexity-commands.js +6 -7
- package/dist/cli/commands/config-commands.d.ts +1 -1
- package/dist/cli/commands/config-commands.js +33 -9
- package/dist/cli/commands/container-commands.js +39 -15
- package/dist/cli/commands/context-commands.d.ts +1 -1
- package/dist/cli/commands/context-commands.js +40 -13
- package/dist/cli/commands/core/artifacts-command.js +11 -3
- package/dist/cli/commands/core/binding-commands.js +9 -6
- package/dist/cli/commands/core/doctor-command.js +7 -4
- package/dist/cli/commands/core/memory-command.js +47 -21
- package/dist/cli/commands/core/proxy-command.js +3 -1
- package/dist/cli/commands/core/session-command.js +16 -8
- package/dist/cli/commands/core/skill-command.js +31 -16
- package/dist/cli/commands/core/standards-command.js +55 -13
- package/dist/cli/commands/cron-commands-actions.d.ts +43 -0
- package/dist/cli/commands/cron-commands-actions.js +128 -0
- package/dist/cli/commands/cron-commands-schedule.d.ts +86 -0
- package/dist/cli/commands/cron-commands-schedule.js +151 -0
- package/dist/cli/commands/cron-commands.d.ts +35 -32
- package/dist/cli/commands/cron-commands.js +167 -211
- package/dist/cli/commands/cron-scheduler-commands.js +40 -20
- package/dist/cli/commands/cron-scheduler-persist.d.ts +110 -0
- package/dist/cli/commands/cron-scheduler-persist.js +171 -0
- package/dist/cli/commands/dashboard-long-run.js +45 -14
- package/dist/cli/commands/dashboard-summary.js +15 -5
- package/dist/cli/commands/dispatch-commands.js +65 -32
- package/dist/cli/commands/dispatch-from-dag.js +9 -10
- package/dist/cli/commands/doc-commands.js +8 -9
- package/dist/cli/commands/doctor/invoke-from-code.js +1 -1
- package/dist/cli/commands/e2e-verify-env.d.ts +19 -0
- package/dist/cli/commands/e2e-verify-env.js +19 -0
- package/dist/cli/commands/e2e-verify.d.ts +3 -14
- package/dist/cli/commands/e2e-verify.js +49 -29
- package/dist/cli/commands/ecc-commands.d.ts +1 -1
- package/dist/cli/commands/ecc-commands.js +8 -17
- package/dist/cli/commands/evidence-commands.js +10 -6
- package/dist/cli/commands/evolution-commands.d.ts +2 -2
- package/dist/cli/commands/evolution-commands.js +109 -115
- package/dist/cli/commands/feedback-commands-helpers.d.ts +22 -0
- package/dist/cli/commands/feedback-commands-helpers.js +33 -0
- package/dist/cli/commands/feedback-commands.js +15 -38
- package/dist/cli/commands/final-review-commands.d.ts +1 -1
- package/dist/cli/commands/final-review-commands.js +24 -22
- package/dist/cli/commands/fixture-commands.d.ts +1 -1
- package/dist/cli/commands/fixture-commands.js +17 -6
- package/dist/cli/commands/fork-commands-sync-verify.d.ts +12 -0
- package/dist/cli/commands/fork-commands-sync-verify.js +72 -0
- package/dist/cli/commands/fork-commands.js +19 -51
- package/dist/cli/commands/fresh-context-commands.js +3 -1
- package/dist/cli/commands/gate-commands-enforce.d.ts +82 -0
- package/dist/cli/commands/gate-commands-enforce.js +210 -0
- package/dist/cli/commands/gate-commands.d.ts +1 -1
- package/dist/cli/commands/gate-commands.js +85 -205
- package/dist/cli/commands/governance-classify-contract-commands.d.ts +1 -1
- package/dist/cli/commands/governance-classify-contract-commands.js +28 -17
- package/dist/cli/commands/heartbeat-commands-action.d.ts +7 -0
- package/dist/cli/commands/heartbeat-commands-action.js +192 -0
- package/dist/cli/commands/heartbeat-commands-validation.d.ts +57 -0
- package/dist/cli/commands/heartbeat-commands-validation.js +120 -0
- package/dist/cli/commands/heartbeat-commands.d.ts +27 -6
- package/dist/cli/commands/heartbeat-commands.js +19 -198
- package/dist/cli/commands/hook-handle.d.ts +1 -1
- package/dist/cli/commands/hook-handle.js +46 -13
- package/dist/cli/commands/hooks-commands.d.ts +1 -1
- package/dist/cli/commands/hooks-commands.js +18 -6
- package/dist/cli/commands/ide-commands.d.ts +1 -1
- package/dist/cli/commands/ide-commands.js +5 -3
- package/dist/cli/commands/impact-commands.js +8 -2
- package/dist/cli/commands/job-add-slice-command.d.ts +43 -0
- package/dist/cli/commands/job-add-slice-command.js +151 -0
- package/dist/cli/commands/job-commands.d.ts +64 -0
- package/dist/cli/commands/job-commands.js +134 -63
- package/dist/cli/commands/lease-metrics-commands-support.d.ts +73 -0
- package/dist/cli/commands/lease-metrics-commands-support.js +67 -0
- package/dist/cli/commands/lease-metrics-commands.d.ts +3 -44
- package/dist/cli/commands/lease-metrics-commands.js +21 -61
- package/dist/cli/commands/lease-stats-commands.d.ts +1 -1
- package/dist/cli/commands/lease-stats-commands.js +9 -6
- package/dist/cli/commands/lint-commands.d.ts +9 -3
- package/dist/cli/commands/lint-commands.js +15 -8
- package/dist/cli/commands/log-commands.d.ts +1 -1
- package/dist/cli/commands/log-commands.js +8 -6
- package/dist/cli/commands/loop-commands.d.ts +1 -1
- package/dist/cli/commands/loop-commands.js +50 -50
- package/dist/cli/commands/loop-eval-commands.d.ts +1 -1
- package/dist/cli/commands/loop-eval-commands.js +101 -30
- package/dist/cli/commands/memory-commands.js +21 -13
- package/dist/cli/commands/migrate-1-4-1-command.js +1 -1
- package/dist/cli/commands/migrate-v2-10-to-v2-11-command.js +2 -2
- package/dist/cli/commands/mut-commands-helpers.d.ts +30 -0
- package/dist/cli/commands/mut-commands-helpers.js +43 -0
- package/dist/cli/commands/mut-commands.js +16 -58
- package/dist/cli/commands/observability-commands-queries.d.ts +37 -0
- package/dist/cli/commands/observability-commands-queries.js +113 -0
- package/dist/cli/commands/observability-commands.d.ts +1 -1
- package/dist/cli/commands/observability-commands.js +7 -92
- package/dist/cli/commands/openspec-commands.d.ts +1 -1
- package/dist/cli/commands/openspec-commands.js +20 -8
- package/dist/cli/commands/outer-cache-commands.js +18 -7
- package/dist/cli/commands/perf-audit-commands.d.ts +1 -1
- package/dist/cli/commands/perf-audit-commands.js +12 -7
- package/dist/cli/commands/perf-commands.d.ts +1 -1
- package/dist/cli/commands/perf-commands.js +5 -5
- package/dist/cli/commands/playwright-commands.d.ts +1 -1
- package/dist/cli/commands/playwright-commands.js +20 -8
- package/dist/cli/commands/polyrepo-commands.js +21 -19
- package/dist/cli/commands/prd-blocks-commands.js +1 -3
- package/dist/cli/commands/prd-commands.d.ts +1 -1
- package/dist/cli/commands/prd-commands.js +8 -4
- package/dist/cli/commands/preferences-commands.js +13 -12
- package/dist/cli/commands/primer-command.js +5 -5
- package/dist/cli/commands/project-commands.d.ts +1 -1
- package/dist/cli/commands/project-commands.js +33 -9
- package/dist/cli/commands/qa-business-review-commands.js +16 -12
- package/dist/cli/commands/qa-commands.d.ts +1 -1
- package/dist/cli/commands/qa-commands.js +3 -5
- package/dist/cli/commands/release-commands.d.ts +3 -1
- package/dist/cli/commands/release-commands.js +33 -22
- package/dist/cli/commands/request-commands.js +47 -30
- package/dist/cli/commands/request-format-helpers.js +1 -1
- package/dist/cli/commands/retrospective-commands.d.ts +18 -11
- package/dist/cli/commands/retrospective-commands.js +24 -173
- package/dist/cli/commands/retrospective-index-command.d.ts +26 -0
- package/dist/cli/commands/retrospective-index-command.js +99 -0
- package/dist/cli/commands/retrospective-project-root.d.ts +9 -0
- package/dist/cli/commands/retrospective-project-root.js +15 -0
- package/dist/cli/commands/retrospective-search-command.d.ts +27 -0
- package/dist/cli/commands/retrospective-search-command.js +97 -0
- package/dist/cli/commands/retrospective-show-command.d.ts +23 -0
- package/dist/cli/commands/retrospective-show-command.js +80 -0
- package/dist/cli/commands/reviewer-commands.d.ts +1 -1
- package/dist/cli/commands/role-commands.js +14 -9
- package/dist/cli/commands/runtime-commands.js +14 -7
- package/dist/cli/commands/sc-commands.d.ts +1 -1
- package/dist/cli/commands/sc-commands.js +39 -6
- package/dist/cli/commands/scan-commands.js +36 -13
- package/dist/cli/commands/security-audit-commands.d.ts +1 -1
- package/dist/cli/commands/security-audit-commands.js +12 -7
- package/dist/cli/commands/sediment-commands.d.ts +2 -2
- package/dist/cli/commands/sediment-commands.js +146 -139
- package/dist/cli/commands/session-24h-mode.js +15 -2
- package/dist/cli/commands/session-checkpoint-command.js +1 -1
- package/dist/cli/commands/session-migrate-skill-name.js +1 -1
- package/dist/cli/commands/shadcn-commands.d.ts +1 -1
- package/dist/cli/commands/shadcn-commands.js +3 -1
- package/dist/cli/commands/share-commands.js +38 -39
- package/dist/cli/commands/skill-conformance-commands.d.ts +1 -1
- package/dist/cli/commands/skill-conformance-commands.js +1 -1
- package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +16 -17
- package/dist/cli/commands/skill-visibility.js +2 -2
- package/dist/cli/commands/slice-commands.d.ts +1 -1
- package/dist/cli/commands/slice-commands.js +36 -12
- package/dist/cli/commands/slice-integrate-commands.js +6 -7
- package/dist/cli/commands/slice-review-commands-helpers.d.ts +26 -0
- package/dist/cli/commands/slice-review-commands-helpers.js +26 -0
- package/dist/cli/commands/slice-review-commands.js +16 -24
- package/dist/cli/commands/smoke-commands-add-path.d.ts +14 -0
- package/dist/cli/commands/smoke-commands-add-path.js +39 -0
- package/dist/cli/commands/smoke-commands-define.d.ts +18 -0
- package/dist/cli/commands/smoke-commands-define.js +97 -0
- package/dist/cli/commands/smoke-commands-run.d.ts +18 -0
- package/dist/cli/commands/smoke-commands-run.js +119 -0
- package/dist/cli/commands/smoke-commands.d.ts +10 -1
- package/dist/cli/commands/smoke-commands.js +17 -179
- package/dist/cli/commands/sop-commands.d.ts +1 -1
- package/dist/cli/commands/sop-commands.js +38 -10
- package/dist/cli/commands/statusline-commands.d.ts +1 -1
- package/dist/cli/commands/statusline-commands.js +21 -10
- package/dist/cli/commands/sub-agent/detached.js +3 -3
- package/dist/cli/commands/sub-agent-dispatch-guard.d.ts +1 -1
- package/dist/cli/commands/sub-agent-shared.js +1 -1
- package/dist/cli/commands/sub-agent-shutdown-commands.js +17 -9
- package/dist/cli/commands/swarm-commands.d.ts +1 -1
- package/dist/cli/commands/swarm-commands.js +13 -6
- package/dist/cli/commands/tech-commands-helpers.d.ts +37 -0
- package/dist/cli/commands/tech-commands-helpers.js +24 -0
- package/dist/cli/commands/tech-commands.d.ts +2 -29
- package/dist/cli/commands/tech-commands.js +15 -28
- package/dist/cli/commands/test-commands.js +27 -7
- package/dist/cli/commands/upgrade-commands.d.ts +1 -1
- package/dist/cli/commands/user-touchpoint-commands.js +1 -3
- package/dist/cli/commands/verdict-aggregate-command.d.ts +1 -1
- package/dist/cli/commands/verdict-aggregate-command.js +20 -7
- package/dist/cli/commands/vm-commands.js +48 -19
- package/dist/cli/commands/wave-plan-commands.js +5 -2
- package/dist/cli/commands/web-commands.js +14 -4
- package/dist/cli/commands/web-lifecycle-commands.js +5 -3
- package/dist/cli/commands/workflow-commands.d.ts +1 -1
- package/dist/cli/commands/workflow-commands.js +64 -29
- package/dist/cli/commands/workflow-lifecycle-commands.js +19 -17
- package/dist/cli/commands/workflow-plan-commands-actions.d.ts +20 -0
- package/dist/cli/commands/workflow-plan-commands-actions.js +115 -0
- package/dist/cli/commands/workflow-plan-commands-session.d.ts +17 -0
- package/dist/cli/commands/workflow-plan-commands-session.js +59 -0
- package/dist/cli/commands/workflow-plan-commands.d.ts +10 -21
- package/dist/cli/commands/workflow-plan-commands.js +15 -141
- package/dist/cli/commands/workspace/clean-command.js +4 -1
- package/dist/cli/commands/workspace/helpers.js +2 -1
- package/dist/cli/commands/workspace/init-command.js +80 -20
- package/dist/cli/commands/workspace/reconcile-command.js +3 -1
- package/dist/cli/commands/workspace-commands.d.ts +1 -1
- package/dist/cli/commands/workspace-commands.js +1 -1
- package/dist/cli/commands/worktree-auth-commands.d.ts +1 -1
- package/dist/cli/commands/worktree-auth-commands.js +16 -169
- package/dist/cli/commands/worktree-auth-grant-command.d.ts +14 -0
- package/dist/cli/commands/worktree-auth-grant-command.js +118 -0
- package/dist/cli/commands/worktree-auth-manage-commands.d.ts +17 -0
- package/dist/cli/commands/worktree-auth-manage-commands.js +128 -0
- package/dist/cli/commands/worktree-lease-commands.d.ts +1 -1
- package/dist/cli/commands/worktree-lease-commands.js +65 -37
- package/dist/cli/index.js +6 -2
- package/dist/cli/program.js +6 -3
- package/dist/hooks/pre-tool-use-sub-agent.js +1 -6
- package/dist/reporters/bdd-reporter.js +9 -3
- package/dist/services/24h-mode/auto-engage.d.ts +19 -0
- package/dist/services/24h-mode/auto-engage.js +35 -0
- package/dist/services/24h-mode/decider.js +5 -1
- package/dist/services/24h-mode/store.js +4 -2
- package/dist/services/adapter/adapter-registry.js +20 -8
- package/dist/services/adapter/adapter.d.ts +2 -2
- package/dist/services/adapter/auto-adapter.d.ts +2 -2
- package/dist/services/adapter/auto-adapter.js +1 -1
- package/dist/services/adapter/claude-adapter.d.ts +1 -1
- package/dist/services/adapter/claude-adapter.js +8 -8
- package/dist/services/adapter/codex-adapter.d.ts +2 -2
- package/dist/services/adapter/codex-adapter.js +20 -8
- package/dist/services/adapter/copilot-adapter.d.ts +2 -2
- package/dist/services/adapter/copilot-adapter.js +20 -8
- package/dist/services/artifacts/artifact-prerequisites.js +10 -8
- package/dist/services/artifacts/artifact-service.js +3 -1
- package/dist/services/artifacts/artifact-template-bodies.d.ts +12 -0
- package/dist/services/artifacts/artifact-template-bodies.js +165 -0
- package/dist/services/artifacts/artifact-templates.js +26 -168
- package/dist/services/artifacts/request-artifact-service.js +14 -7
- package/dist/services/artifacts/request-artifact-state-helpers.d.ts +3 -2
- package/dist/services/artifacts/request-artifact-state-helpers.js +3 -5
- package/dist/services/artifacts/workspace-artifact-helpers.d.ts +28 -0
- package/dist/services/artifacts/workspace-artifact-helpers.js +54 -0
- package/dist/services/artifacts/workspace-service.d.ts +3 -22
- package/dist/services/artifacts/workspace-service.js +10 -60
- package/dist/services/audit/artifact-writer.js +21 -21
- package/dist/services/audit/audit-goal-service.js +2 -2
- package/dist/services/audit/backing-detector.js +7 -4
- package/dist/services/audit/classifier.js +3 -3
- package/dist/services/audit/decision-writer.js +13 -9
- package/dist/services/audit/enforcers/active-skill-resolver.js +15 -7
- package/dist/services/audit/enforcers/design-draft-confirm.js +4 -4
- package/dist/services/audit/enforcers/lint-audit-regression.js +10 -5
- package/dist/services/audit/enforcers/lint-bee-runtime-contract.js +16 -8
- package/dist/services/audit/enforcers/lint-catalog-governance.js +8 -4
- package/dist/services/audit/enforcers/lint-output-style.js +4 -2
- package/dist/services/audit/enforcers/lint-peaks-code-runtime.js +8 -3
- package/dist/services/audit/enforcers/lint-peaks-skill-runtime.js +8 -3
- package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.js +20 -20
- package/dist/services/audit/enforcers/lint-prd-artifact-handoff.js +5 -5
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.d.ts +1 -1
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.js +5 -5
- package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.js +10 -10
- package/dist/services/audit/enforcers/lint-rd-handoff-coverage.js +10 -8
- package/dist/services/audit/enforcers/lint-reference-shape.js +50 -18
- package/dist/services/audit/enforcers/lint-skill-presence-mandatory.js +5 -5
- package/dist/services/audit/enforcers/lint-style.js +44 -11
- package/dist/services/audit/enforcers/lint-workflow-shape.js +4 -2
- package/dist/services/audit/enforcers/login-gate.js +2 -6
- package/dist/services/audit/enforcers/mock-placement.js +2 -2
- package/dist/services/audit/enforcers/no-root-pollution.js +38 -9
- package/dist/services/audit/enforcers/pre-rd-scan.js +1 -1
- package/dist/services/audit/enforcers/prototype-fidelity.js +1 -1
- package/dist/services/audit/enforcers/resume-detection.js +5 -4
- package/dist/services/audit/prose-ratio-calculator.js +1 -1
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.d.ts +39 -0
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.js +205 -0
- package/dist/services/audit/red-line-catalog-p2-a-lint-style.d.ts +52 -0
- package/dist/services/audit/red-line-catalog-p2-a-lint-style.js +205 -0
- package/dist/services/audit/red-line-catalog-p2-a.js +3 -374
- package/dist/services/audit/red-line-catalog-p2-b.js +26 -26
- package/dist/services/audit/red-line-catalog.js +26 -38
- package/dist/services/audit/red-lines-service.js +64 -49
- package/dist/services/audit/scanners/openspec-scanner.js +2 -2
- package/dist/services/audit/scanners/rules-tree-scanner.js +2 -2
- package/dist/services/audit/scanners/skills-tree-scanner.js +2 -2
- package/dist/services/audit/static-service.js +3 -3
- package/dist/services/audit-independent/index.d.ts +2 -2
- package/dist/services/audit-independent/index.js +2 -2
- package/dist/services/audit-independent/perf-audit-service.js +19 -8
- package/dist/services/audit-independent/security-audit-service.js +31 -16
- package/dist/services/autonomous-swarm/autonomous-swarm-service.js +75 -46
- package/dist/services/best-practice/output-formatter.js +7 -1
- package/dist/services/capability-audit-service/cross-check.js +11 -5
- package/dist/services/capability-audit-service/runner.js +15 -7
- package/dist/services/capability-baseline/store.js +16 -4
- package/dist/services/capability-baseline/types.js +15 -3
- package/dist/services/capability-baseline/validator.js +43 -7
- package/dist/services/capability-guard-runner/contracts/J02.js +36 -6
- package/dist/services/capability-guard-runner/contracts/J03.js +20 -11
- package/dist/services/capability-guard-runner/contracts/J04.js +24 -15
- package/dist/services/capability-guard-runner/contracts/J05.js +26 -10
- package/dist/services/capability-guard-runner/contracts/J07.js +8 -2
- package/dist/services/capability-guard-runner/contracts/J08.js +22 -5
- package/dist/services/capability-guard-runner/contracts/J10.js +6 -2
- package/dist/services/capability-guard-runner/contracts/J11.d.ts +5 -0
- package/dist/services/capability-guard-runner/contracts/J11.js +14 -2
- package/dist/services/capability-guard-runner/contracts/J12.js +12 -3
- package/dist/services/capability-guard-runner/diff.js +1 -5
- package/dist/services/changeset/changeset-check-service.js +1 -3
- package/dist/services/classify/classify-service.js +20 -8
- package/dist/services/classify/classify-types.js +22 -9
- package/dist/services/code/auto-compact-lifecycle.js +62 -39
- package/dist/services/code/auto-compact-modes.js +2 -2
- package/dist/services/code/auto-compact-orchestrator.js +14 -9
- package/dist/services/code/batch-heartbeat-poller.d.ts +10 -0
- package/dist/services/code/batch-heartbeat-poller.js +17 -1
- package/dist/services/code/compact-event-settle-types.d.ts +80 -0
- package/dist/services/code/compact-event-settle-types.js +20 -0
- package/dist/services/code/compact-event-settle.d.ts +3 -68
- package/dist/services/code/compact-event-settle.js +14 -10
- package/dist/services/code/dag-orchestrator.js +32 -26
- package/dist/services/code/job-shape-decision.js +3 -1
- package/dist/services/code/mode-gate-types.d.ts +57 -0
- package/dist/services/code/mode-gate-types.js +67 -0
- package/dist/services/code/mode-gate.d.ts +4 -58
- package/dist/services/code/mode-gate.js +24 -60
- package/dist/services/code/orchestrator-can-do-advisories.d.ts +30 -0
- package/dist/services/code/orchestrator-can-do-advisories.js +81 -0
- package/dist/services/code/orchestrator-can-do-probes.d.ts +30 -0
- package/dist/services/code/orchestrator-can-do-probes.js +77 -0
- package/dist/services/code/orchestrator-can-do.d.ts +11 -22
- package/dist/services/code/orchestrator-can-do.js +37 -137
- package/dist/services/code/post-compact-checkpoint.d.ts +28 -0
- package/dist/services/code/post-compact-checkpoint.js +57 -0
- package/dist/services/code/post-compact-detector.js +16 -48
- package/dist/services/code/step-08-gate.d.ts +4 -3
- package/dist/services/code/step-08-gate.js +21 -9
- package/dist/services/code-review/ecc-bridge.js +23 -23
- package/dist/services/codegraph/codegraph-autorefresh.js +56 -39
- package/dist/services/codegraph/codegraph-config-repair-writer.js +4 -1
- package/dist/services/codegraph/codegraph-exclude-integrity.js +4 -1
- package/dist/services/codegraph/codegraph-exclude-repair.js +1 -2
- package/dist/services/codegraph/codegraph-index-integrity.js +1 -1
- package/dist/services/codegraph/codegraph-preflight-service.d.ts +3 -26
- package/dist/services/codegraph/codegraph-preflight-service.js +16 -37
- package/dist/services/codegraph/codegraph-preflight-structure.d.ts +32 -0
- package/dist/services/codegraph/codegraph-preflight-structure.js +33 -0
- package/dist/services/codegraph/codegraph-process-runner.js +12 -1
- package/dist/services/codegraph/codegraph-service.js +9 -1
- package/dist/services/compact/request-transition-hook.js +2 -1
- package/dist/services/compact/suggest-service.d.ts +3 -61
- package/dist/services/compact/suggest-service.js +9 -12
- package/dist/services/compact/suggest-types.d.ts +76 -0
- package/dist/services/compact/suggest-types.js +10 -0
- package/dist/services/compact-history/compact-history-service.js +2 -2
- package/dist/services/compact-statusline/compact-lifecycle-store.d.ts +2 -32
- package/dist/services/compact-statusline/compact-lifecycle-store.js +7 -12
- package/dist/services/compact-statusline/compact-lifecycle-types.d.ts +32 -0
- package/dist/services/compact-statusline/compact-lifecycle-types.js +8 -0
- package/dist/services/compact-statusline/compact-statusline-cell-table.d.ts +42 -0
- package/dist/services/compact-statusline/compact-statusline-cell-table.js +63 -0
- package/dist/services/compact-statusline/compact-statusline-service.d.ts +4 -21
- package/dist/services/compact-statusline/compact-statusline-service.js +9 -101
- package/dist/services/compact-statusline/compact-statusline-state.d.ts +4 -0
- package/dist/services/compact-statusline/compact-statusline-state.js +50 -0
- package/dist/services/config/config-migration.js +2 -2
- package/dist/services/config/config-restore.js +1 -1
- package/dist/services/config/config-rollback.js +1 -1
- package/dist/services/config/config-safety.js +28 -10
- package/dist/services/config/config-service.js +114 -31
- package/dist/services/config/model-routing.js +5 -2
- package/dist/services/config/proxy-service.js +6 -1
- package/dist/services/config/workspace-state-service.js +17 -5
- package/dist/services/context/auto-compact-dispatcher-input.d.ts +38 -0
- package/dist/services/context/auto-compact-dispatcher-input.js +9 -0
- package/dist/services/context/auto-compact-dispatcher.d.ts +2 -30
- package/dist/services/context/auto-compact-reader-input.d.ts +30 -0
- package/dist/services/context/auto-compact-reader-input.js +8 -0
- package/dist/services/context/auto-compact-reader.d.ts +2 -24
- package/dist/services/context/auto-compact-reader.js +4 -1
- package/dist/services/context/auto-compact-thresholds.d.ts +54 -0
- package/dist/services/context/auto-compact-thresholds.js +19 -0
- package/dist/services/context/auto-compact-types.d.ts +2 -46
- package/dist/services/context/auto-compact-types.js +1 -11
- package/dist/services/context/build-dispatch-system-prompt.js +2 -2
- package/dist/services/context/collector.js +8 -10
- package/dist/services/context/context-audit-hint.js +7 -5
- package/dist/services/context/context-audit-keys.d.ts +15 -0
- package/dist/services/context/context-audit-keys.js +77 -0
- package/dist/services/context/context-audit-limits.d.ts +20 -0
- package/dist/services/context/context-audit-limits.js +31 -0
- package/dist/services/context/context-audit-scan.d.ts +19 -0
- package/dist/services/context/context-audit-scan.js +246 -0
- package/dist/services/context/context-audit-types.d.ts +65 -0
- package/dist/services/context/context-audit-types.js +10 -0
- package/dist/services/context/context-audit.d.ts +13 -59
- package/dist/services/context/context-audit.js +38 -254
- package/dist/services/context/context-builder.js +4 -4
- package/dist/services/context/context-schema.d.ts +1 -1
- package/dist/services/context/context-schema.js +13 -13
- package/dist/services/context/doc-retriever.js +2 -2
- package/dist/services/context/harness-context-witness.js +43 -24
- package/dist/services/context/harness-window-config.js +27 -7
- package/dist/services/context/ide-detect.js +2 -1
- package/dist/services/context/index.d.ts +1 -1
- package/dist/services/context/memory-index-reader.js +3 -9
- package/dist/services/context/memory-preflight-config.js +3 -5
- package/dist/services/context/memory-preflight-service.d.ts +2 -20
- package/dist/services/context/memory-preflight-service.js +37 -68
- package/dist/services/context/memory-preflight-support.d.ts +48 -0
- package/dist/services/context/memory-preflight-support.js +56 -0
- package/dist/services/context/post-compact-reinjection.js +3 -3
- package/dist/services/context/renderer.js +7 -3
- package/dist/services/context/spillover-store.js +3 -1
- package/dist/services/context/summary-view.js +1 -1
- package/dist/services/context/threshold.js +2 -2
- package/dist/services/context/tokenizer.js +3 -3
- package/dist/services/crystallization/crystallization-brief-schema.d.ts +80 -0
- package/dist/services/crystallization/crystallization-brief-schema.js +159 -0
- package/dist/services/crystallization/crystallization-service.d.ts +7 -7
- package/dist/services/crystallization/crystallization-service.js +56 -55
- package/dist/services/crystallization/crystallization-store.d.ts +2 -2
- package/dist/services/crystallization/crystallization-store.js +37 -20
- package/dist/services/crystallization/crystallization-types.d.ts +4 -56
- package/dist/services/crystallization/crystallization-types.js +31 -184
- package/dist/services/crystallization/evidence-brief-builder.d.ts +3 -3
- package/dist/services/crystallization/evidence-brief-builder.js +32 -38
- package/dist/services/crystallization/index.d.ts +4 -4
- package/dist/services/crystallization/index.js +4 -4
- package/dist/services/dashboard/project-dashboard-service.js +7 -1
- package/dist/services/dispatch/await-batch-helpers.d.ts +55 -0
- package/dist/services/dispatch/await-batch-helpers.js +206 -0
- package/dist/services/dispatch/await-batch.d.ts +50 -7
- package/dist/services/dispatch/await-batch.js +97 -194
- package/dist/services/dispatch/batch-counter.js +2 -1
- package/dist/services/dispatch/conflict-replay.js +2 -2
- package/dist/services/dispatch/contract-store.js +5 -2
- package/dist/services/dispatch/dispatch-record-input-types.d.ts +81 -0
- package/dist/services/dispatch/dispatch-record-input-types.js +1 -0
- package/dist/services/dispatch/dispatch-record-types.d.ts +6 -73
- package/dist/services/dispatch/dispatch-record-upgrade-fields.d.ts +72 -0
- package/dist/services/dispatch/dispatch-record-upgrade-fields.js +242 -0
- package/dist/services/dispatch/dispatch-record-upgrade-guards.d.ts +15 -0
- package/dist/services/dispatch/dispatch-record-upgrade-guards.js +55 -0
- package/dist/services/dispatch/dispatch-record-upgrade.d.ts +2 -4
- package/dist/services/dispatch/dispatch-record-upgrade.js +21 -213
- package/dist/services/dispatch/dispatch-record-writer.js +54 -26
- package/dist/services/dispatch/dispatch-sub-agent.js +7 -2
- package/dist/services/dispatch/e2e-fixtures.js +1 -1
- package/dist/services/dispatch/isolation-lease.js +39 -17
- package/dist/services/dispatch/merge-back-runner.js +51 -11
- package/dist/services/dispatch/service-shutdown.js +4 -1
- package/dist/services/dispatch/slice-dag-types.d.ts +116 -0
- package/dist/services/dispatch/slice-dag-types.js +41 -0
- package/dist/services/dispatch/slice-dag.d.ts +3 -109
- package/dist/services/dispatch/slice-dag.js +13 -36
- package/dist/services/dispatch/sub-agent-batch-await.d.ts +47 -0
- package/dist/services/dispatch/sub-agent-batch-await.js +73 -0
- package/dist/services/dispatch/sub-agent-dispatcher-types.d.ts +122 -0
- package/dist/services/dispatch/sub-agent-dispatcher-types.js +12 -0
- package/dist/services/dispatch/sub-agent-dispatcher.d.ts +3 -145
- package/dist/services/dispatch/sub-agent-dispatcher.js +14 -70
- package/dist/services/dispatch/test-tool-detection.js +12 -1
- package/dist/services/doc/doc-generator.js +19 -4
- package/dist/services/doctor/doctor-service/checks/check-id-schema.js +16 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.d.ts +7 -2
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +26 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-exclude-integrity.js +16 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.js +16 -8
- package/dist/services/doctor/doctor-service/checks/dist-source-version.js +18 -9
- package/dist/services/doctor/doctor-service/checks/ecc-hooks-schema-drift.js +20 -10
- package/dist/services/doctor/doctor-service/checks/gateguard-conflict.js +18 -9
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +25 -11
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +12 -6
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.d.ts +7 -16
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.js +50 -70
- package/dist/services/doctor/doctor-service/checks/schema-validity.js +5 -1
- package/dist/services/doctor/doctor-service/checks/skill-presence.js +4 -2
- package/dist/services/doctor/doctor-service/checks/statusline-install.js +8 -4
- package/dist/services/doctor/doctor-service/checks/statusline-runtime.js +8 -4
- package/dist/services/doctor/doctor-service/checks/user-config.js +4 -2
- package/dist/services/doctor/doctor-service/checks/workspace-init.js +8 -4
- package/dist/services/doctor/doctor-service/checks/workspace-layout.js +19 -11
- package/dist/services/doctor/doctor-service/index.js +4 -2
- package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.d.ts +40 -0
- package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.js +49 -0
- package/dist/services/doctor/doctor-service/plugin-registry.js +1 -1
- package/dist/services/doctor/doctor-service/probe-types.d.ts +210 -0
- package/dist/services/doctor/doctor-service/probe-types.js +14 -0
- package/dist/services/doctor/doctor-service/types.d.ts +7 -197
- package/dist/services/doctor/index.d.ts +1 -1
- package/dist/services/doctor/index.js +1 -1
- package/dist/services/env/shell-probe.js +8 -2
- package/dist/services/evidence/evidence-body-builders.d.ts +23 -0
- package/dist/services/evidence/evidence-body-builders.js +197 -0
- package/dist/services/evidence/evidence-generator.js +6 -187
- package/dist/services/evolution/evolution-constraints.d.ts +43 -0
- package/dist/services/evolution/evolution-constraints.js +54 -0
- package/dist/services/evolution/evolution-evaluation-schema.d.ts +43 -0
- package/dist/services/evolution/evolution-evaluation-schema.js +43 -0
- package/dist/services/evolution/evolution-service.d.ts +6 -6
- package/dist/services/evolution/evolution-service.js +58 -58
- package/dist/services/evolution/evolution-store.d.ts +2 -2
- package/dist/services/evolution/evolution-store.js +37 -51
- package/dist/services/evolution/evolution-types.d.ts +2 -22
- package/dist/services/evolution/evolution-types.js +41 -101
- package/dist/services/evolution/independent-evaluator-runner.d.ts +3 -3
- package/dist/services/evolution/independent-evaluator-runner.js +20 -22
- package/dist/services/evolution/regression-skeptic-runner.d.ts +2 -2
- package/dist/services/evolution/regression-skeptic-runner.js +18 -18
- package/dist/services/feedback/feedback-promotion-service.js +48 -12
- package/dist/services/feedback/promotion-artifact-evidence.d.ts +2 -16
- package/dist/services/feedback/promotion-artifact-evidence.js +6 -83
- package/dist/services/feedback/promotion-artifact-json-evidence.d.ts +29 -0
- package/dist/services/feedback/promotion-artifact-json-evidence.js +39 -0
- package/dist/services/feedback/promotion-source-comments.d.ts +47 -0
- package/dist/services/feedback/promotion-source-comments.js +61 -0
- package/dist/services/final-review/final-review-contract.d.ts +26 -0
- package/dist/services/final-review/final-review-contract.js +14 -0
- package/dist/services/final-review/final-review-delivery.d.ts +63 -0
- package/dist/services/final-review/final-review-delivery.js +124 -0
- package/dist/services/final-review/final-review-evidence-budget.d.ts +125 -0
- package/dist/services/final-review/final-review-evidence-budget.js +218 -0
- package/dist/services/final-review/final-review-evidence-collect.d.ts +4 -0
- package/dist/services/final-review/final-review-evidence-collect.js +230 -0
- package/dist/services/final-review/final-review-evidence-sources.d.ts +138 -0
- package/dist/services/final-review/final-review-evidence-sources.js +139 -0
- package/dist/services/final-review/final-review-fifth-dim.d.ts +8 -0
- package/dist/services/final-review/final-review-fifth-dim.js +20 -0
- package/dist/services/final-review/final-review-gates.d.ts +119 -0
- package/dist/services/final-review/final-review-gates.js +214 -0
- package/dist/services/final-review/final-review-output-budget.d.ts +88 -0
- package/dist/services/final-review/final-review-output-budget.js +161 -0
- package/dist/services/final-review/final-review-prompt.d.ts +35 -0
- package/dist/services/final-review/final-review-prompt.js +112 -0
- package/dist/services/final-review/final-review-reviewer.d.ts +57 -0
- package/dist/services/final-review/final-review-reviewer.js +95 -0
- package/dist/services/final-review/final-review-runner.d.ts +3 -0
- package/dist/services/final-review/final-review-runner.js +158 -0
- package/dist/services/final-review/final-review-service.d.ts +119 -373
- package/dist/services/final-review/final-review-service.js +48 -1380
- package/dist/services/final-review/final-review-verdicts.d.ts +60 -0
- package/dist/services/final-review/final-review-verdicts.js +91 -0
- package/dist/services/final-review/index.d.ts +3 -3
- package/dist/services/final-review/index.js +2 -2
- package/dist/services/final-review/pre-post-diff.js +32 -29
- package/dist/services/fixture/fixture-capture-service.js +14 -6
- package/dist/services/fresh-context/trigger-scan.js +13 -2
- package/dist/services/fuzzy-matching/fuzzy-match-service.js +1 -1
- package/dist/services/fuzzy-matching/fzf-pick-service.js +6 -1
- package/dist/services/hooks/pre-tool-code-gate.js +2 -2
- package/dist/services/hooks/presence-marker-detector.js +12 -2
- package/dist/services/hooks/worktree-authorization-gate.js +21 -7
- package/dist/services/ide/adapters/claude-code-adapter.js +30 -17
- package/dist/services/ide/adapters/codex-adapter.js +3 -5
- package/dist/services/ide/adapters/cursor-adapter.js +3 -5
- package/dist/services/ide/adapters/hermes-adapter.js +2 -4
- package/dist/services/ide/adapters/openclaw-adapter.js +2 -4
- package/dist/services/ide/adapters/qoder-adapter.js +2 -4
- package/dist/services/ide/adapters/tongyi-lingma-adapter.js +1 -1
- package/dist/services/ide/adapters/trae-adapter.js +3 -5
- package/dist/services/ide/adapters/zcode-adapter.js +8 -7
- package/dist/services/ide/current-model-detector.js +2 -1
- package/dist/services/ide/ide-compact-types.d.ts +153 -0
- package/dist/services/ide/ide-compact-types.js +1 -0
- package/dist/services/ide/ide-registry.js +1 -1
- package/dist/services/ide/ide-types.d.ts +7 -145
- package/dist/services/ide/resource-profile.js +1 -1
- package/dist/services/ide/shared/atomic-json.js +2 -1
- package/dist/services/impact/impact-scan-service.js +12 -5
- package/dist/services/job/job-commit-verification.d.ts +73 -0
- package/dist/services/job/job-commit-verification.js +72 -0
- package/dist/services/job/job-orchestrator.d.ts +42 -0
- package/dist/services/job/job-orchestrator.js +110 -10
- package/dist/services/job/job-progress-store.d.ts +75 -5
- package/dist/services/job/job-progress-store.js +83 -6
- package/dist/services/job/job-rotation.d.ts +1 -1
- package/dist/services/job/job-rotation.js +5 -1
- package/dist/services/job/job-state-store.js +2 -2
- package/dist/services/job/job-types.js +49 -20
- package/dist/services/job/subagent-job-wrapper.d.ts +1 -1
- package/dist/services/job/subagent-job-wrapper.js +5 -1
- package/dist/services/job-snapshot/snapshot.js +2 -2
- package/dist/services/karpathy-cost/karpathy-cost-check-service.js +23 -13
- package/dist/services/legacy/legacy-detector.js +51 -5
- package/dist/services/lint/detect-eslint.js +10 -4
- package/dist/services/lint/detect-ocr-18.js +11 -3
- package/dist/services/lint/eslint-runner-support.d.ts +22 -0
- package/dist/services/lint/eslint-runner-support.js +185 -0
- package/dist/services/lint/eslint-runner-types.d.ts +69 -0
- package/dist/services/lint/eslint-runner-types.js +11 -0
- package/dist/services/lint/eslint-runner.d.ts +4 -56
- package/dist/services/lint/eslint-runner.js +24 -178
- package/dist/services/lint/npx-resolver.js +1 -3
- package/dist/services/lint/ocr-18-acquire.js +15 -4
- package/dist/services/lint/ocr-multilang-adapter.js +4 -5
- package/dist/services/llm/anthropic-runner.js +4 -1
- package/dist/services/log/log-commands-service.js +2 -6
- package/dist/services/log/logger.js +15 -12
- package/dist/services/log/retention.js +3 -2
- package/dist/services/loop/evaluator-dispatcher.js +78 -42
- package/dist/services/loop/loop-bee-relation-service.d.ts +4 -4
- package/dist/services/loop/loop-bee-relation-service.js +36 -40
- package/dist/services/loop/loop-bee-relation-store.d.ts +3 -3
- package/dist/services/loop/loop-bee-relation-store.js +9 -11
- package/dist/services/loop/loop-bee-relation-types.d.ts +1 -1
- package/dist/services/loop/loop-bee-relation-types.js +14 -25
- package/dist/services/loop/loop-release-service.d.ts +2 -2
- package/dist/services/loop/loop-release-service.js +3 -3
- package/dist/services/loop/loop-release-store.d.ts +2 -2
- package/dist/services/loop/loop-release-store.js +4 -6
- package/dist/services/loop/loop-release-types.d.ts +1 -1
- package/dist/services/loop/loop-release-types.js +21 -31
- package/dist/services/loop/monotonic-guard-types.d.ts +51 -0
- package/dist/services/loop/monotonic-guard-types.js +9 -0
- package/dist/services/loop/monotonic-guard.d.ts +2 -43
- package/dist/services/loop/monotonic-runner-types.d.ts +63 -0
- package/dist/services/loop/monotonic-runner-types.js +17 -0
- package/dist/services/loop/monotonic-runner.d.ts +3 -34
- package/dist/services/loop/monotonic-runner.js +10 -20
- package/dist/services/loop/run-driver.js +16 -8
- package/dist/services/loop/spec-service.d.ts +0 -5
- package/dist/services/loop/spec-service.js +49 -9
- package/dist/services/memory/llm-reranker-core.d.ts +108 -0
- package/dist/services/memory/llm-reranker-core.js +105 -0
- package/dist/services/memory/llm-reranker.d.ts +3 -94
- package/dist/services/memory/llm-reranker.js +13 -102
- package/dist/services/memory/memory-ingest-service.d.ts +1 -22
- package/dist/services/memory/memory-ingest-service.js +29 -76
- package/dist/services/memory/memory-ingest-support.d.ts +23 -0
- package/dist/services/memory/memory-ingest-support.js +81 -0
- package/dist/services/memory/memory-rotate-service.js +41 -8
- package/dist/services/memory/memory-search-service.js +8 -4
- package/dist/services/memory/project-context-service.js +26 -5
- package/dist/services/memory/project-memory-service/index/kind-dispatch.d.ts +2 -7
- package/dist/services/memory/project-memory-service/index/kind-dispatch.js +17 -136
- package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.d.ts +7 -0
- package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.js +150 -0
- package/dist/services/memory/project-memory-service/index/ranking.js +6 -3
- package/dist/services/memory/project-memory-service/index/reindex.js +14 -5
- package/dist/services/memory/project-memory-service/memory-kinds.d.ts +31 -0
- package/dist/services/memory/project-memory-service/memory-kinds.js +87 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.d.ts +24 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.js +104 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +2 -24
- package/dist/services/memory/project-memory-service/parsers/frontmatter.js +28 -79
- package/dist/services/memory/project-memory-service/parsers/markdown-pure.js +15 -3
- package/dist/services/memory/project-memory-service/store/atomic-write.js +34 -22
- package/dist/services/memory/project-memory-service/store/paths.js +2 -1
- package/dist/services/memory/project-memory-service/types.d.ts +3 -31
- package/dist/services/memory/project-memory-service/types.js +1 -76
- package/dist/services/migrate-skill-name/migrate.js +1 -1
- package/dist/services/migrate-skill-name/schema.js +1 -1
- package/dist/services/mode/mode-enforcement.js +4 -2
- package/dist/services/mode/mode-status-service.d.ts +27 -9
- package/dist/services/mode/mode-status-service.js +64 -12
- package/dist/services/observability/aggregation-helpers.d.ts +22 -0
- package/dist/services/observability/aggregation-helpers.js +65 -0
- package/dist/services/observability/aggregation-types.d.ts +66 -0
- package/dist/services/observability/aggregation-types.js +34 -0
- package/dist/services/observability/aggregation.d.ts +5 -53
- package/dist/services/observability/aggregation.js +17 -80
- package/dist/services/observability/jsonl-store.js +2 -1
- package/dist/services/observability/observability-schema.d.ts +71 -0
- package/dist/services/observability/observability-schema.js +64 -0
- package/dist/services/observability/observability-service.d.ts +3 -56
- package/dist/services/observability/observability-service.js +9 -49
- package/dist/services/openspec/coverage-evidence-reader.js +18 -11
- package/dist/services/openspec/openspec-archive-service.js +31 -24
- package/dist/services/openspec/openspec-init-service.js +8 -2
- package/dist/services/openspec/openspec-propose-from-doctor-service.js +1 -1
- package/dist/services/openspec/openspec-scan-service.js +4 -1
- package/dist/services/openspec/openspec-validate-service.js +26 -5
- package/dist/services/perf/perf-baseline-service.js +2 -6
- package/dist/services/polyrepo/polyrepo-dispatcher.js +2 -1
- package/dist/services/polyrepo/polyrepo-scanner.js +4 -1
- package/dist/services/prd/handoff-frontmatter-shape.d.ts +42 -0
- package/dist/services/prd/handoff-frontmatter-shape.js +67 -0
- package/dist/services/prd/handoff-frontmatter.js +1 -1
- package/dist/services/prd/handoff-path-resolution.d.ts +37 -0
- package/dist/services/prd/handoff-path-resolution.js +101 -0
- package/dist/services/prd/handoff-service.d.ts +1 -37
- package/dist/services/prd/handoff-service.js +16 -148
- package/dist/services/prd/prd-blocks-checker.js +28 -8
- package/dist/services/prd/project-scan-bootstrap-service.js +1 -5
- package/dist/services/prd/project-scan-reader.js +1 -4
- package/dist/services/prd/project-scan-sediment.js +1 -4
- package/dist/services/preferences/preferences-service.js +6 -8
- package/dist/services/preferences/preferences-types.js +4 -4
- package/dist/services/qa/bdd-test-style-contract.d.ts +41 -0
- package/dist/services/qa/bdd-test-style-contract.js +37 -0
- package/dist/services/qa/bdd-test-style-verifier.d.ts +2 -24
- package/dist/services/qa/bdd-test-style-verifier.js +5 -31
- package/dist/services/qa/browser-event-logger.js +2 -1
- package/dist/services/qa/qa-business-review-state.js +20 -5
- package/dist/services/qa/screenshot-archive-service.js +1 -3
- package/dist/services/rd/ast-gate.js +2 -2
- package/dist/services/rd/impl.js +1 -1
- package/dist/services/rd/rd-service.js +117 -43
- package/dist/services/rd/reviewer-dispatch-policy.js +4 -7
- package/dist/services/rd/standards-diagnostic.js +4 -1
- package/dist/services/rd/strategy.js +10 -3
- package/dist/services/rd/tactical-stage.js +2 -2
- package/dist/services/rd/types.js +9 -7
- package/dist/services/rd-swarm/rd-swarm-service.d.ts +2 -45
- package/dist/services/rd-swarm/rd-swarm-service.js +140 -21
- package/dist/services/rd-swarm/rd-swarm-types.d.ts +54 -0
- package/dist/services/rd-swarm/rd-swarm-types.js +10 -0
- package/dist/services/recommendations/capability-map-service.js +10 -2
- package/dist/services/recommendations/capability-seed-items.js +81 -14
- package/dist/services/recommendations/capability-seed-mappings.js +420 -48
- package/dist/services/recommendations/capability-seed-sources-mcp-server.d.ts +9 -0
- package/dist/services/recommendations/capability-seed-sources-mcp-server.js +233 -0
- package/dist/services/recommendations/capability-seed-sources.js +127 -32
- package/dist/services/release/release-state.d.ts +2 -2
- package/dist/services/release/release-state.js +44 -15
- package/dist/services/release/version-precheck-layer-changeset.d.ts +2 -0
- package/dist/services/release/version-precheck-layer-changeset.js +43 -0
- package/dist/services/release/version-precheck-service.d.ts +11 -36
- package/dist/services/release/version-precheck-service.js +20 -104
- package/dist/services/release/version-precheck-support.d.ts +53 -0
- package/dist/services/release/version-precheck-support.js +64 -0
- package/dist/services/retrospective/retrospective-index.js +17 -3
- package/dist/services/retrospective/retrospective-search-service.js +6 -2
- package/dist/services/retrospective/retrospective-show.js +4 -1
- package/dist/services/reviewer/model-family.js +7 -1
- package/dist/services/reviewer/providers/anthropic.d.ts +5 -0
- package/dist/services/reviewer/providers/anthropic.js +10 -1
- package/dist/services/reviewer/providers/openai.d.ts +5 -0
- package/dist/services/reviewer/providers/openai.js +10 -1
- package/dist/services/reviewer/reviewer-config.js +4 -2
- package/dist/services/reviewer/reviewer-service.d.ts +2 -36
- package/dist/services/reviewer/reviewer-service.js +2 -1
- package/dist/services/reviewer/reviewer-types.d.ts +43 -0
- package/dist/services/reviewer/reviewer-types.js +1 -0
- package/dist/services/role/role-registry.js +9 -1
- package/dist/services/runtime/runtime-detector.js +4 -1
- package/dist/services/runtime/vendors/claude-code.js +14 -6
- package/dist/services/runtime/vendors/codex.js +11 -3
- package/dist/services/runtime/vendors/copilot.js +11 -3
- package/dist/services/sc/sc-service.js +28 -15
- package/dist/services/scan/acceptance-coverage-service.js +4 -1
- package/dist/services/scan/api-diff-openapi-schema-read.d.ts +67 -0
- package/dist/services/scan/api-diff-openapi-schema-read.js +154 -0
- package/dist/services/scan/api-diff-openapi.d.ts +16 -2
- package/dist/services/scan/api-diff-openapi.js +19 -123
- package/dist/services/scan/api-diff-recorded.js +16 -3
- package/dist/services/scan/api-diff-service.js +49 -16
- package/dist/services/scan/api-diff-types.js +12 -3
- package/dist/services/scan/api-surface-helpers.d.ts +13 -0
- package/dist/services/scan/api-surface-helpers.js +31 -0
- package/dist/services/scan/api-surface-service.d.ts +2 -45
- package/dist/services/scan/api-surface-service.js +15 -26
- package/dist/services/scan/api-surface-types.d.ts +54 -0
- package/dist/services/scan/api-surface-types.js +10 -0
- package/dist/services/scan/archetype-detection.d.ts +37 -0
- package/dist/services/scan/archetype-detection.js +142 -0
- package/dist/services/scan/archetype-service.js +36 -125
- package/dist/services/scan/diff-scope-service.js +35 -15
- package/dist/services/scan/existing-system-service.js +16 -99
- package/dist/services/scan/existing-system-visual-tokens.d.ts +20 -0
- package/dist/services/scan/existing-system-visual-tokens.js +123 -0
- package/dist/services/scan/file-size-policy.d.ts +86 -0
- package/dist/services/scan/file-size-policy.js +184 -0
- package/dist/services/scan/file-size-scan.d.ts +30 -3
- package/dist/services/scan/file-size-scan.js +47 -9
- package/dist/services/scan/karpathy-service.js +6 -1
- package/dist/services/scan/orphan-service.js +86 -20
- package/dist/services/scan/type-sanity-service.js +104 -10
- package/dist/services/sediment/dispose-confirm.d.ts +2 -2
- package/dist/services/sediment/dispose-confirm.js +2 -2
- package/dist/services/sediment/json-schema.d.ts +1 -1
- package/dist/services/sediment/json-schema.js +25 -13
- package/dist/services/sediment/manifest-lint.d.ts +1 -12
- package/dist/services/sediment/manifest-lint.js +1 -7
- package/dist/services/sediment/pool-paths.js +13 -9
- package/dist/services/sediment/pool-read.d.ts +1 -1
- package/dist/services/sediment/pool-read.js +42 -18
- package/dist/services/sediment/pool-rebuild-index.d.ts +1 -1
- package/dist/services/sediment/pool-rebuild-index.js +5 -5
- package/dist/services/sediment/pool-write.d.ts +1 -1
- package/dist/services/sediment/pool-write.js +7 -7
- package/dist/services/sediment/promotion-gate.d.ts +1 -1
- package/dist/services/sediment/promotion-gate.js +9 -9
- package/dist/services/sediment/types.d.ts +8 -8
- package/dist/services/session/binding-status-service.js +14 -4
- package/dist/services/session/caller-binding-service.js +2 -1
- package/dist/services/session/getSessionDir.js +4 -1
- package/dist/services/session/index.d.ts +1 -1
- package/dist/services/session/index.js +1 -1
- package/dist/services/session/resolve-caller-id.js +7 -5
- package/dist/services/session/session-binding-bridge.js +26 -25
- package/dist/services/session/session-checkpoint-service.js +1 -1
- package/dist/services/session/session-file-schema.d.ts +70 -0
- package/dist/services/session/session-file-schema.js +68 -0
- package/dist/services/session/session-manager.d.ts +6 -6
- package/dist/services/session/session-manager.js +30 -29
- package/dist/services/session/session-resume-service.js +2 -1
- package/dist/services/share/bundle-format-constants.d.ts +85 -0
- package/dist/services/share/bundle-format-constants.js +100 -0
- package/dist/services/share/bundle-reader.d.ts +3 -3
- package/dist/services/share/bundle-reader.js +75 -68
- package/dist/services/share/bundle-types.d.ts +3 -70
- package/dist/services/share/bundle-types.js +38 -107
- package/dist/services/share/bundle-writer.d.ts +3 -3
- package/dist/services/share/bundle-writer.js +101 -91
- package/dist/services/share/run-state-contract.d.ts +1 -1
- package/dist/services/share/run-state-contract.js +7 -13
- package/dist/services/signal/cancel-handler.js +2 -1
- package/dist/services/skill/resume-detector.js +6 -4
- package/dist/services/skill/skill-scheduler.js +3 -1
- package/dist/services/skill/skill-search-service.js +4 -4
- package/dist/services/skillhub/release-diff.d.ts +2 -2
- package/dist/services/skillhub/release-diff.js +6 -10
- package/dist/services/skillhub/release-export.d.ts +2 -2
- package/dist/services/skillhub/release-export.js +15 -17
- package/dist/services/skillhub/release-gc-blobs.d.ts +2 -2
- package/dist/services/skillhub/release-gc-blobs.js +4 -4
- package/dist/services/skillhub/release-import.d.ts +2 -2
- package/dist/services/skillhub/release-import.js +13 -12
- package/dist/services/skillhub/release-retain.d.ts +3 -3
- package/dist/services/skillhub/release-retain.js +22 -22
- package/dist/services/skillhub/sqlite-store.d.ts +1 -1
- package/dist/services/skillhub/sqlite-store.js +12 -11
- package/dist/services/skillhub/tar-runtime.js +15 -15
- package/dist/services/skillhub/types.d.ts +4 -4
- package/dist/services/skills/hooks-codegate-superpowers.js +16 -7
- package/dist/services/skills/hooks-settings-service.js +61 -19
- package/dist/services/skills/presence-lease-service.js +26 -16
- package/dist/services/skills/presence-lease-types.d.ts +1 -1
- package/dist/services/skills/presence-lease-types.js +1 -1
- package/dist/services/skills/skill-conformance-service.js +40 -8
- package/dist/services/skills/skill-presence-service.js +16 -14
- package/dist/services/skills/skill-runbook-service.js +2 -1
- package/dist/services/skills/skill-statusline-model.d.ts +128 -0
- package/dist/services/skills/skill-statusline-model.js +163 -0
- package/dist/services/skills/skill-statusline-renderer.js +4 -3
- package/dist/services/skills/skill-statusline-service.d.ts +3 -100
- package/dist/services/skills/skill-statusline-service.js +56 -163
- package/dist/services/skills/statusline-palette.js +11 -6
- package/dist/services/skills/statusline-settings-service.js +2 -1
- package/dist/services/skills/sync-service-support.d.ts +65 -0
- package/dist/services/skills/sync-service-support.js +50 -0
- package/dist/services/skills/sync-service.d.ts +3 -66
- package/dist/services/skills/sync-service.js +15 -53
- package/dist/services/slice/calibration-store.js +8 -2
- package/dist/services/slice/cross-pass-edge-merger.d.ts +3 -28
- package/dist/services/slice/cross-pass-edge-merger.js +13 -63
- package/dist/services/slice/cross-pass-edge-static-scan-support.d.ts +69 -0
- package/dist/services/slice/cross-pass-edge-static-scan-support.js +74 -0
- package/dist/services/slice/granularity-decider.js +2 -2
- package/dist/services/slice/slice-archive-service.js +8 -3
- package/dist/services/slice/slice-check-service.js +19 -8
- package/dist/services/slice/slice-decompose-runners.js +61 -23
- package/dist/services/slice/slice-decompose-service.js +4 -4
- package/dist/services/slice/slice-review-state.js +8 -2
- package/dist/services/smoke/smoke-paths-state.js +9 -2
- package/dist/services/sop/gate-enforce-service.js +9 -2
- package/dist/services/sop/sop-advance-service.js +14 -2
- package/dist/services/sop/sop-check-service.js +16 -4
- package/dist/services/sop/sop-paths.js +3 -1
- package/dist/services/sop/sop-registry-service.js +5 -1
- package/dist/services/sop/sop-service.js +29 -7
- package/dist/services/sop/sop-types.js +5 -1
- package/dist/services/standards/ide-aware-standards-service.js +2 -2
- package/dist/services/standards/loop-engineering-lint.js +12 -5
- package/dist/services/standards/loop-engineering-readiness-lint.js +5 -5
- package/dist/services/standards/migrate-claude-rules-service.js +9 -7
- package/dist/services/standards/missing-standards-detector.js +1 -3
- package/dist/services/standards/project-context-support.d.ts +50 -0
- package/dist/services/standards/project-context-support.js +244 -0
- package/dist/services/standards/project-context-types.d.ts +30 -0
- package/dist/services/standards/project-context-types.js +11 -0
- package/dist/services/standards/project-context.d.ts +10 -22
- package/dist/services/standards/project-context.js +27 -214
- package/dist/services/standards/project-standards-service.js +43 -12
- package/dist/services/standards/standards-render-common.d.ts +15 -0
- package/dist/services/standards/standards-render-common.js +49 -0
- package/dist/services/standards/standards-render.d.ts +1 -2
- package/dist/services/standards/standards-render.js +31 -58
- package/dist/services/standards/ui-library-dispatch-block.js +1 -1
- package/dist/services/tech/tech-change-id-service.js +7 -7
- package/dist/services/tech/tech-service.js +73 -26
- package/dist/services/test-cache/test-cache-service.js +8 -3
- package/dist/services/upgrade/1x-detector-service.js +5 -3
- package/dist/services/upgrade/gitignore-migrate-service.js +5 -5
- package/dist/services/upgrade/upgrade-service.js +36 -13
- package/dist/services/verdict/envelope-parsers.d.ts +84 -0
- package/dist/services/verdict/envelope-parsers.js +146 -0
- package/dist/services/verdict/envelopes.d.ts +50 -60
- package/dist/services/verdict/envelopes.js +18 -156
- package/dist/services/verdict/verdict-aggregator.js +27 -3
- package/dist/services/vm/vm-lease.js +15 -3
- package/dist/services/web/aria-node.d.ts +27 -0
- package/dist/services/web/aria-node.js +1 -0
- package/dist/services/web/browser-acquire.js +3 -1
- package/dist/services/web/browser-cache-probe.d.ts +18 -0
- package/dist/services/web/browser-cache-probe.js +110 -0
- package/dist/services/web/browser-session-manager.js +6 -2
- package/dist/services/web/daemon-registry.js +4 -1
- package/dist/services/web/playwright-loader.d.ts +2 -70
- package/dist/services/web/playwright-types.d.ts +75 -0
- package/dist/services/web/playwright-types.js +1 -0
- package/dist/services/web/snapshot-pruner.d.ts +2 -23
- package/dist/services/web/snapshot-pruner.js +8 -3
- package/dist/services/web/web-daemon-service.js +1 -3
- package/dist/services/web/web-install-service.d.ts +3 -32
- package/dist/services/web/web-install-service.js +21 -100
- package/dist/services/web/web-install-types.d.ts +31 -0
- package/dist/services/web/web-install-types.js +13 -0
- package/dist/services/web/web-login-profile.js +7 -5
- package/dist/services/web/web-protocol.js +3 -1
- package/dist/services/workflow/pipeline-verify-gate-support.js +63 -17
- package/dist/services/workflow/pipeline-verify-service.js +17 -6
- package/dist/services/workflow/plan-reader.js +5 -1
- package/dist/services/workflow/plan-refresher.js +20 -6
- package/dist/services/workflow/plan-trigger-detector.js +31 -8
- package/dist/services/workflow/provision-dispatch-node.js +8 -3
- package/dist/services/workflow/workflow-autonomous-resume-helpers.d.ts +3 -1
- package/dist/services/workflow/workflow-autonomous-resume-helpers.js +35 -144
- package/dist/services/workflow/workflow-autonomous-resume-validation.d.ts +16 -0
- package/dist/services/workflow/workflow-autonomous-resume-validation.js +155 -0
- package/dist/services/workflow/workflow-autonomous-service.js +25 -13
- package/dist/services/workflow/workflow-graph-store-helpers.d.ts +51 -0
- package/dist/services/workflow/workflow-graph-store-helpers.js +111 -0
- package/dist/services/workflow/workflow-graph-store.d.ts +2 -35
- package/dist/services/workflow/workflow-graph-store.js +30 -107
- package/dist/services/workflow/workflow-graph-types.js +3 -3
- package/dist/services/workflow/workflow-inflight-probe.js +14 -7
- package/dist/services/workflow/workflow-loader.js +5 -1
- package/dist/services/workflow/workflow-node-lifecycle.js +22 -21
- package/dist/services/workflow/workflow-presence-lifecycle-types.d.ts +50 -0
- package/dist/services/workflow/workflow-presence-lifecycle-types.js +1 -0
- package/dist/services/workflow/workflow-presence-lifecycle.d.ts +2 -42
- package/dist/services/workflow/workflow-presence-lifecycle.js +19 -21
- package/dist/services/workflow/workflow-router-service.js +169 -27
- package/dist/services/workflow/workflow-skip-service.js +14 -4
- package/dist/services/workflow/workflow-spec-builders.d.ts +15 -0
- package/dist/services/workflow/workflow-spec-builders.js +121 -0
- package/dist/services/workflow/workflow-spec.d.ts +7 -6
- package/dist/services/workflow/workflow-spec.js +22 -116
- package/dist/services/workflow/workflow-state-store.js +2 -1
- package/dist/services/workspace/migrate-1-4-1-service.js +80 -14
- package/dist/services/workspace/migrate-service.js +66 -16
- package/dist/services/workspace/reconcile-migrate.js +6 -2
- package/dist/services/workspace/reconcile-service.js +37 -16
- package/dist/services/workspace/workspace-claude-settings-materializer.js +7 -5
- package/dist/services/workspace/workspace-clean-service.js +4 -1
- package/dist/services/workspace/workspace-service.js +11 -3
- package/dist/services/workspace/workspace-state-service.js +1 -1
- package/dist/services/worktree/git-worktree-parser.js +13 -3
- package/dist/services/worktree/host-worktree-reconciler.js +8 -4
- package/dist/services/worktree/long-path-cleanup.js +23 -6
- package/dist/services/worktree/worktree-gc-guard.js +3 -1
- package/dist/services/worktree/worktree-lease-types.d.ts +53 -0
- package/dist/services/worktree/worktree-lease-types.js +10 -0
- package/dist/services/worktree/worktree-lease.d.ts +2 -44
- package/dist/shared/array-guards.d.ts +30 -0
- package/dist/shared/array-guards.js +32 -0
- package/dist/shared/format-md-compact-internals.d.ts +26 -0
- package/dist/shared/format-md-compact-internals.js +125 -0
- package/dist/shared/format-md-compact.js +1 -117
- package/dist/shared/fs-utils.js +2 -1
- package/dist/shared/incrementing-number.js +3 -3
- package/dist/shared/json-parse.d.ts +71 -0
- package/dist/shared/json-parse.js +32 -0
- package/dist/shared/json-schema-mini.js +3 -1
- package/dist/shared/path-safety.js +3 -1
- package/dist/shared/path-utils.d.ts +20 -0
- package/dist/shared/path-utils.js +26 -0
- package/dist/shared/planner-response.js +3 -3
- package/dist/shared/stale-policy.js +1 -3
- package/dist/skills/peaks-maker/index.js +11 -11
- package/package.json +31 -8
- package/scripts/clean-dist.mjs +1 -2
- package/scripts/copy-templates.mjs +2 -4
- package/scripts/install-skills.mjs +305 -125
- package/scripts/sync-version.mjs +25 -8
- package/scripts/watch.mjs +8 -2
- package/skills/peaks-code/SKILL.md +1 -1
|
@@ -1,95 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
* heterogeneous (peaks-security-audit / peaks-perf-audit / karpathy /
|
|
6
|
-
* peaks-mut / peaks-qa). v2.13.1 shipped precedence wiring without
|
|
7
|
-
* touching the on-disk shapes. v2.13.2 introduced a discriminated-union
|
|
8
|
-
* type projection `AnyEnvelope` and 5 pure parser functions.
|
|
9
|
-
*
|
|
10
|
-
* v2.13.3 dogfood bug #1: parseSecurity/Perf previously only supported
|
|
11
|
-
* a JSON.parse path. The real v2.12.0 audit files at
|
|
12
|
-
* `.peaks/_runtime/<sid>/audit/security.md` and `audit/perf.md` are
|
|
13
|
-
* YAML frontmatter + markdown body — NOT JSON. The fix preserves
|
|
14
|
-
* the JSON.parse path (back-compat for unit tests + any consumer that
|
|
15
|
-
* passed JSON explicitly) and adds a markdown fallback that extracts
|
|
16
|
-
* `verdict:` from the frontmatter and parses `## Findings` bullets.
|
|
17
|
-
*
|
|
18
|
-
* Karpathy §2 (Simplicity First):
|
|
19
|
-
* - single file, ~210 lines, zero new IO.
|
|
20
|
-
* - re-uses existing strict-shape guards (isSecurityAuditEnvelope /
|
|
21
|
-
* isPerfAuditEnvelope) — no duplicate validation logic.
|
|
22
|
-
* - parsers return `null` on malformed input (mirrors loadMutReport's
|
|
23
|
-
* "missing → null" contract). Callers can detect "envelope missing"
|
|
24
|
-
* without throwing.
|
|
25
|
-
*/
|
|
26
|
-
import { isPerfAuditEnvelope, isSecurityAuditEnvelope } from '../audit-independent/index.js';
|
|
27
|
-
// ─── 5 parsers (pure, never throw) ─────────────────────────────────────
|
|
28
|
-
/**
|
|
29
|
-
* v2.13.3 AC-1 — parse real v2.12.0 audit markdown.
|
|
30
|
-
*
|
|
31
|
-
* Strategy (per PRD AC-1 mitigation):
|
|
32
|
-
* 1. Try JSON.parse first (back-compat with prior unit tests + any
|
|
33
|
-
* consumer that passes a JSON string explicitly).
|
|
34
|
-
* 2. Fall back to markdown parse: extract `verdict:` from YAML
|
|
35
|
-
* frontmatter, parse `## Findings` bullets in the body, return
|
|
36
|
-
* a SecurityAuditEnvelope.
|
|
37
|
-
* 3. Return null when neither path yields a valid envelope.
|
|
38
|
-
*/
|
|
39
|
-
export function parseSecurityEnvelope(md) {
|
|
40
|
-
if (typeof md !== 'string' || md.length === 0)
|
|
41
|
-
return null;
|
|
42
|
-
// Path 1: JSON (legacy / back-compat)
|
|
43
|
-
try {
|
|
44
|
-
const jsonValue = JSON.parse(md);
|
|
45
|
-
if (isSecurityAuditEnvelope(jsonValue))
|
|
46
|
-
return jsonValue;
|
|
47
|
-
}
|
|
48
|
-
catch { // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
49
|
-
// not JSON — fall through to markdown parse
|
|
50
|
-
}
|
|
51
|
-
// Path 2: real v2.12.0 markdown (YAML frontmatter + body)
|
|
52
|
-
return parseAuditMarkdown(md, isSecurityAuditEnvelope);
|
|
53
|
-
}
|
|
54
|
-
export function parsePerfEnvelope(md) {
|
|
55
|
-
if (typeof md !== 'string' || md.length === 0)
|
|
56
|
-
return null;
|
|
57
|
-
// Path 1: JSON (legacy / back-compat)
|
|
58
|
-
try {
|
|
59
|
-
const jsonValue = JSON.parse(md);
|
|
60
|
-
if (isPerfAuditEnvelope(jsonValue))
|
|
61
|
-
return jsonValue;
|
|
62
|
-
}
|
|
63
|
-
catch { // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
64
|
-
// not JSON — fall through to markdown parse
|
|
65
|
-
}
|
|
66
|
-
// Path 2: real v2.12.0 markdown (YAML frontmatter + body)
|
|
67
|
-
return parseAuditMarkdown(md, isPerfAuditEnvelope);
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Karpathy review is stored as markdown (`.peaks/_runtime/<sid>/rd/karpathy-review.md`).
|
|
71
|
-
* We parse the 3 state lines that drive the aggregator:
|
|
72
|
-
* - `gateAction: pass | warn | block`
|
|
73
|
-
* - `verdict: pass | warn | block` (alias for gateAction)
|
|
74
|
-
* - `passed: true | false`
|
|
75
|
-
* Plus the violations list under a `## Violations` heading, where each
|
|
76
|
-
* bullet begins with `[SEVERITY] file:line — hint` and declares a
|
|
77
|
-
* guideline tag like `(simplicity-first)`.
|
|
78
|
-
*/
|
|
79
|
-
export function parseKarpathyEnvelope(md) {
|
|
80
|
-
if (typeof md !== 'string' || md.length === 0)
|
|
81
|
-
return null;
|
|
82
|
-
const gateAction = matchEnum(md, /^\s*(?:gateAction|verdict)\s*:\s*(pass|warn|block)\s*$/m);
|
|
83
|
-
const passedMatch = md.match(/^\s*passed\s*:\s*(true|false)\s*$/m);
|
|
84
|
-
if (gateAction === null || passedMatch === null)
|
|
85
|
-
return null;
|
|
86
|
-
const violations = parseKarpathyViolations(md);
|
|
87
|
-
return {
|
|
88
|
-
passed: passedMatch[1] === 'true',
|
|
89
|
-
violations,
|
|
90
|
-
gateAction
|
|
91
|
-
};
|
|
92
|
-
}
|
|
1
|
+
import { extractSection, parseFindingBullets } from './envelope-parsers.js';
|
|
2
|
+
// ─── Re-exports: parsers that live in ./envelope-parsers.js ───────────
|
|
3
|
+
export { envelopesToAggregatorInput, parseKarpathyEnvelope, parsePerfEnvelope, parseSecurityEnvelope } from './envelope-parsers.js';
|
|
4
|
+
// ─── Karpathy violation reader (called by parseKarpathyEnvelope) ───────
|
|
93
5
|
const KARPATHY_GUIDELINES = [
|
|
94
6
|
'think-before-coding',
|
|
95
7
|
'simplicity-first',
|
|
@@ -97,7 +9,7 @@ const KARPATHY_GUIDELINES = [
|
|
|
97
9
|
'goal-driven-execution'
|
|
98
10
|
];
|
|
99
11
|
const KARPATHY_SEVERITIES = ['CRITICAL', 'HIGH', 'MED', 'LOW'];
|
|
100
|
-
function parseKarpathyViolations(md) {
|
|
12
|
+
export function parseKarpathyViolations(md) {
|
|
101
13
|
const section = md.split(/^##\s+Violations\s*$/m)[1];
|
|
102
14
|
if (section === undefined)
|
|
103
15
|
return [];
|
|
@@ -108,7 +20,11 @@ function parseKarpathyViolations(md) {
|
|
|
108
20
|
if (m === null)
|
|
109
21
|
continue;
|
|
110
22
|
const [, severity, file, lineNo, hint, guideline] = m;
|
|
111
|
-
if (severity === undefined ||
|
|
23
|
+
if (severity === undefined ||
|
|
24
|
+
file === undefined ||
|
|
25
|
+
lineNo === undefined ||
|
|
26
|
+
hint === undefined ||
|
|
27
|
+
guideline === undefined)
|
|
112
28
|
continue;
|
|
113
29
|
if (!KARPATHY_SEVERITIES.includes(severity))
|
|
114
30
|
continue;
|
|
@@ -180,31 +96,6 @@ export function parseQaEnvelope(md) {
|
|
|
180
96
|
...(reportPathMatch !== null ? { reportPath: reportPathMatch[1].trim() } : {})
|
|
181
97
|
};
|
|
182
98
|
}
|
|
183
|
-
// ─── Adapter: union → AggregatorInput (zero call-site churn) ──────────
|
|
184
|
-
/**
|
|
185
|
-
* Convert a partial list of `AnyEnvelope` values to the legacy
|
|
186
|
-
* `AggregatorInput` shape. `null` envelopes are skipped (a missing
|
|
187
|
-
* envelope is treated as "audit not run" — same semantics as
|
|
188
|
-
* `AggregatorInput` without that key).
|
|
189
|
-
*/
|
|
190
|
-
export function envelopesToAggregatorInput(list) {
|
|
191
|
-
const out = {};
|
|
192
|
-
for (const item of list) {
|
|
193
|
-
if (item === null)
|
|
194
|
-
continue;
|
|
195
|
-
if (item.kind === 'security')
|
|
196
|
-
out.security = item.envelope;
|
|
197
|
-
else if (item.kind === 'perf')
|
|
198
|
-
out.perf = item.envelope;
|
|
199
|
-
else if (item.kind === 'karpathy')
|
|
200
|
-
out.karpathy = item.envelope;
|
|
201
|
-
else if (item.kind === 'mut')
|
|
202
|
-
out.mut = item.envelope;
|
|
203
|
-
else if (item.kind === 'qa')
|
|
204
|
-
out.qa = item.envelope;
|
|
205
|
-
}
|
|
206
|
-
return out;
|
|
207
|
-
}
|
|
208
99
|
/**
|
|
209
100
|
* Parse a v2.12.0 audit markdown file:
|
|
210
101
|
* ---
|
|
@@ -235,7 +126,7 @@ export function envelopesToAggregatorInput(list) {
|
|
|
235
126
|
* guard. Return null if the guard rejects (per the parser
|
|
236
127
|
* contract: parsers never throw).
|
|
237
128
|
*/
|
|
238
|
-
function parseAuditMarkdown(md, guard) {
|
|
129
|
+
export function parseAuditMarkdown(md, guard) {
|
|
239
130
|
const frontmatterMatch = md.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
|
|
240
131
|
// The v2.12.0 audit artifact contract is YAML frontmatter + body.
|
|
241
132
|
// The CLI also writes a body-only variant (no frontmatter) when the
|
|
@@ -270,46 +161,17 @@ function parseAuditMarkdown(md, guard) {
|
|
|
270
161
|
};
|
|
271
162
|
return guard(candidate) ? candidate : null;
|
|
272
163
|
}
|
|
273
|
-
/** Extract the body of a `## Heading` section (text up to the next
|
|
274
|
-
* `## ` heading or EOF). Returns null when the heading is absent. */
|
|
275
|
-
function extractSection(body, heading) {
|
|
276
|
-
const re = new RegExp(`^##\\s+${heading}\\s*$`, 'm');
|
|
277
|
-
const sectionStart = body.search(re);
|
|
278
|
-
if (sectionStart === -1)
|
|
279
|
-
return null;
|
|
280
|
-
const afterHeading = body.slice(sectionStart).split('\n');
|
|
281
|
-
// skip the heading line
|
|
282
|
-
afterHeading.shift();
|
|
283
|
-
// collect lines until next `## ` heading
|
|
284
|
-
const lines = [];
|
|
285
|
-
for (const line of afterHeading) {
|
|
286
|
-
if (/^##\s+/.test(line))
|
|
287
|
-
break;
|
|
288
|
-
lines.push(line);
|
|
289
|
-
}
|
|
290
|
-
return lines.join('\n').trim();
|
|
291
|
-
}
|
|
292
|
-
/** Parse `## Findings` bullets. Accepts the 3 real v2.12.0 shapes. */
|
|
293
|
-
function parseFindingBullets(body) {
|
|
294
|
-
const section = body.split(/^##\s+Findings\s*$/m)[1];
|
|
295
|
-
if (section === undefined)
|
|
296
|
-
return [];
|
|
297
|
-
const lines = section.split('\n').filter((l) => l.trim().startsWith('- '));
|
|
298
|
-
const out = [];
|
|
299
|
-
for (const line of lines) {
|
|
300
|
-
const v = parseFindingBullet(line);
|
|
301
|
-
if (v !== null)
|
|
302
|
-
out.push(v);
|
|
303
|
-
}
|
|
304
|
-
return out;
|
|
305
|
-
}
|
|
306
164
|
/** Parse a single finding bullet. Returns null on malformed input. */
|
|
307
|
-
function parseFindingBullet(line) {
|
|
165
|
+
export function parseFindingBullet(line) {
|
|
308
166
|
// Shape A (rendered by renderSecurityAuditArtifact): `- [SEV] dim @ file:line — hint`
|
|
309
167
|
const a = line.match(/^\s*-\s*\[(CRITICAL|HIGH|MED|LOW)\]\s+(\S+)\s+@\s+([^:\s]+):(\d+)\s+[—-]\s+(.+)$/);
|
|
310
168
|
if (a !== null) {
|
|
311
169
|
const [, severity, dimension, file, lineNo, hint] = a;
|
|
312
|
-
if (severity === undefined ||
|
|
170
|
+
if (severity === undefined ||
|
|
171
|
+
dimension === undefined ||
|
|
172
|
+
file === undefined ||
|
|
173
|
+
lineNo === undefined ||
|
|
174
|
+
hint === undefined)
|
|
313
175
|
return null;
|
|
314
176
|
return {
|
|
315
177
|
severity: severity,
|
|
@@ -342,7 +204,7 @@ function parseFindingBullet(line) {
|
|
|
342
204
|
// future dimension-extraction contract. Already covered above.
|
|
343
205
|
return null;
|
|
344
206
|
}
|
|
345
|
-
function matchEnum(md, regex) {
|
|
207
|
+
export function matchEnum(md, regex) {
|
|
346
208
|
const m = md.match(regex);
|
|
347
209
|
return m === null ? null : m[1];
|
|
348
210
|
}
|
|
@@ -49,7 +49,15 @@ export function aggregateVerdict(input) {
|
|
|
49
49
|
const env = input.security;
|
|
50
50
|
elevate(env.verdict);
|
|
51
51
|
for (const v of env.violations) {
|
|
52
|
-
pushFix(state, {
|
|
52
|
+
pushFix(state, {
|
|
53
|
+
source: 'security-audit',
|
|
54
|
+
sources: ['security-audit'],
|
|
55
|
+
signal: env.verdict,
|
|
56
|
+
severity: v.severity,
|
|
57
|
+
file: v.file,
|
|
58
|
+
line: v.line,
|
|
59
|
+
hint: v.hint
|
|
60
|
+
}, { file: v.file, line: v.line, hint: v.hint });
|
|
53
61
|
}
|
|
54
62
|
}
|
|
55
63
|
// 2. Perf audit envelope (v2.12.0 schema — preserved).
|
|
@@ -57,7 +65,15 @@ export function aggregateVerdict(input) {
|
|
|
57
65
|
const env = input.perf;
|
|
58
66
|
elevate(env.verdict);
|
|
59
67
|
for (const v of env.violations) {
|
|
60
|
-
pushFix(state, {
|
|
68
|
+
pushFix(state, {
|
|
69
|
+
source: 'perf-audit',
|
|
70
|
+
sources: ['perf-audit'],
|
|
71
|
+
signal: env.verdict,
|
|
72
|
+
severity: v.severity,
|
|
73
|
+
file: v.file,
|
|
74
|
+
line: v.line,
|
|
75
|
+
hint: v.hint
|
|
76
|
+
}, { file: v.file, line: v.line, hint: v.hint });
|
|
61
77
|
}
|
|
62
78
|
}
|
|
63
79
|
// 3. Karpathy reviewer — gateAction drives precedence.
|
|
@@ -65,7 +81,15 @@ export function aggregateVerdict(input) {
|
|
|
65
81
|
const env = input.karpathy;
|
|
66
82
|
elevate(env.gateAction);
|
|
67
83
|
for (const v of env.violations) {
|
|
68
|
-
pushFix(state, {
|
|
84
|
+
pushFix(state, {
|
|
85
|
+
source: 'karpathy-reviewer',
|
|
86
|
+
sources: ['karpathy-reviewer'],
|
|
87
|
+
signal: env.gateAction,
|
|
88
|
+
severity: v.severity,
|
|
89
|
+
file: v.file,
|
|
90
|
+
line: v.line,
|
|
91
|
+
hint: v.hint
|
|
92
|
+
}, { file: v.file, line: v.line, hint: v.hint });
|
|
69
93
|
}
|
|
70
94
|
}
|
|
71
95
|
// 4. peaks-mut — passed:false → block with per-violation reason.
|
|
@@ -22,7 +22,9 @@ import { randomBytes } from 'node:crypto';
|
|
|
22
22
|
import { posix as path } from 'node:path';
|
|
23
23
|
import { normalizePath } from '../../shared/path-utils.js';
|
|
24
24
|
export const VM_HYPERVISORS = Object.freeze([
|
|
25
|
-
'kvm',
|
|
25
|
+
'kvm',
|
|
26
|
+
'hyperkit',
|
|
27
|
+
'hyperv'
|
|
26
28
|
]);
|
|
27
29
|
// PRD-002b slice 2 — extract lease-TTL primitives (same shape as
|
|
28
30
|
// container-lease.ts / worktree-lease.ts). See config diff comment.
|
|
@@ -90,8 +92,18 @@ export function deserializeVmLease(raw) {
|
|
|
90
92
|
}
|
|
91
93
|
const obj = parsed;
|
|
92
94
|
const required = [
|
|
93
|
-
'leaseId',
|
|
94
|
-
'
|
|
95
|
+
'leaseId',
|
|
96
|
+
'rid',
|
|
97
|
+
'role',
|
|
98
|
+
'path',
|
|
99
|
+
'hypervisor',
|
|
100
|
+
'image',
|
|
101
|
+
'vmId',
|
|
102
|
+
'createdAt',
|
|
103
|
+
'expiresAt',
|
|
104
|
+
'purpose',
|
|
105
|
+
'status',
|
|
106
|
+
'consumedBySubAgents'
|
|
95
107
|
];
|
|
96
108
|
for (const k of required) {
|
|
97
109
|
if (!(k in obj))
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `ariaSnapshotJSON()` node type (slice S1, AC2 — the mechanism).
|
|
3
|
+
*
|
|
4
|
+
* Split out of `snapshot-pruner.ts` to keep the pruner under the
|
|
5
|
+
* 300-raw-line file cap; it is the data model the pruner, the renderer and
|
|
6
|
+
* external consumers (browser-session-manager, tests) all share. The pruner
|
|
7
|
+
* re-exports this name, so importers keep using `snapshot-pruner.js`
|
|
8
|
+
* unchanged.
|
|
9
|
+
*/
|
|
10
|
+
export interface AriaNode {
|
|
11
|
+
readonly role: string;
|
|
12
|
+
readonly name?: string;
|
|
13
|
+
readonly text?: string;
|
|
14
|
+
readonly children?: readonly AriaNode[];
|
|
15
|
+
readonly checked?: boolean | 'mixed';
|
|
16
|
+
readonly disabled?: boolean;
|
|
17
|
+
readonly expanded?: boolean;
|
|
18
|
+
readonly active?: boolean;
|
|
19
|
+
readonly invalid?: boolean | 'mixed';
|
|
20
|
+
readonly level?: number;
|
|
21
|
+
readonly pressed?: boolean | 'mixed';
|
|
22
|
+
readonly selected?: boolean;
|
|
23
|
+
readonly url?: string;
|
|
24
|
+
readonly placeholder?: string;
|
|
25
|
+
readonly ref?: string;
|
|
26
|
+
readonly cursor?: string;
|
|
27
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -59,7 +59,9 @@ export async function acquireChromium() {
|
|
|
59
59
|
}
|
|
60
60
|
/** One sentence, shared by both refusal paths, naming the command that fixes it. */
|
|
61
61
|
function installRequiredDetail(version) {
|
|
62
|
-
const held = version === null
|
|
62
|
+
const held = version === null
|
|
63
|
+
? 'the pinned Playwright is not resolvable'
|
|
64
|
+
: `playwright@${version} is cached`;
|
|
63
65
|
return (`${held} but its browser is not launched-ready; run \`peaks web install\` ` +
|
|
64
66
|
`(\`npx ${installCommandLine().join(' ')}\`)`);
|
|
65
67
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { BrowserProbe } from './web-install-types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Is the pinned browser on disk? Never throws, never spawns, never downloads.
|
|
4
|
+
*
|
|
5
|
+
* **It answers about the artifact `launch()` starts** (R6). `executablePath()`
|
|
6
|
+
* names the `chromium` build, but `chromium.launch()` with no options and
|
|
7
|
+
* `headless` defaulting true resolves `chromium-headless-shell`
|
|
8
|
+
* (`registry.getExecutableName`) — a SEPARATE ~271 MiB download. Probing the
|
|
9
|
+
* full chromium therefore answered "installed" for a machine on which no op
|
|
10
|
+
* could launch: `launch()` failed, S1's net downloaded, the probe kept saying
|
|
11
|
+
* installed, and `peaks web install` short-circuited to a no-op success. See
|
|
12
|
+
* `headlessShellDir` for how the right path is obtained.
|
|
13
|
+
*
|
|
14
|
+
* `version` is reported even when the executable is missing, because "the
|
|
15
|
+
* package is cached but its browser is not" is a different diagnosis from
|
|
16
|
+
* "nothing is installed" — the first is one `peaks web install` away.
|
|
17
|
+
*/
|
|
18
|
+
export declare function probeBrowserInstalled(): Promise<BrowserProbe>;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `src/services/web/browser-cache-probe.ts`
|
|
3
|
+
*
|
|
4
|
+
* The browser-cache probe (slice S3, file 18; R6, tech-doc §5.3): it asks the
|
|
5
|
+
* resolved Playwright package where its executable WOULD be and checks the
|
|
6
|
+
* filesystem — no download, no spawn, so `peaks web status` can report cache
|
|
7
|
+
* state on a machine with nothing installed. Moved verbatim (wave 3, file-size
|
|
8
|
+
* cap campaign) together with the two path derivations and the readdir guard it
|
|
9
|
+
* depends on, so `web-install-service.ts` stays under the 300 raw-line cap.
|
|
10
|
+
* `web-install-service.ts` re-exports `probeBrowserInstalled` so importers keep
|
|
11
|
+
* resolving it from `web-install-service.js` unchanged; the three helpers were
|
|
12
|
+
* module-private there and are not re-exported.
|
|
13
|
+
*/
|
|
14
|
+
import { existsSync, readdirSync } from 'node:fs';
|
|
15
|
+
import { join, sep } from 'node:path';
|
|
16
|
+
import { loadPlaywright, playwrightVersion } from './playwright-loader.js';
|
|
17
|
+
/**
|
|
18
|
+
* Is the pinned browser on disk? Never throws, never spawns, never downloads.
|
|
19
|
+
*
|
|
20
|
+
* **It answers about the artifact `launch()` starts** (R6). `executablePath()`
|
|
21
|
+
* names the `chromium` build, but `chromium.launch()` with no options and
|
|
22
|
+
* `headless` defaulting true resolves `chromium-headless-shell`
|
|
23
|
+
* (`registry.getExecutableName`) — a SEPARATE ~271 MiB download. Probing the
|
|
24
|
+
* full chromium therefore answered "installed" for a machine on which no op
|
|
25
|
+
* could launch: `launch()` failed, S1's net downloaded, the probe kept saying
|
|
26
|
+
* installed, and `peaks web install` short-circuited to a no-op success. See
|
|
27
|
+
* `headlessShellDir` for how the right path is obtained.
|
|
28
|
+
*
|
|
29
|
+
* `version` is reported even when the executable is missing, because "the
|
|
30
|
+
* package is cached but its browser is not" is a different diagnosis from
|
|
31
|
+
* "nothing is installed" — the first is one `peaks web install` away.
|
|
32
|
+
*/
|
|
33
|
+
export async function probeBrowserInstalled() {
|
|
34
|
+
const version = await playwrightVersion();
|
|
35
|
+
if (version === null) {
|
|
36
|
+
return { installed: false, version: null, executablePath: null };
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
const chromiumPath = (await loadPlaywright()).chromium.executablePath();
|
|
40
|
+
const shellDir = headlessShellDir(chromiumPath);
|
|
41
|
+
if (shellDir === null) {
|
|
42
|
+
// Not a registry shape we recognise: answer about the path Playwright
|
|
43
|
+
// handed us, exactly as this probe did before R6, rather than about a
|
|
44
|
+
// directory we invented.
|
|
45
|
+
return { installed: existsSync(chromiumPath), version, executablePath: chromiumPath };
|
|
46
|
+
}
|
|
47
|
+
// Absent is the answer, and the whole point: `null` here is what steers
|
|
48
|
+
// `peaks web install` to download and `acquireChromium` to refuse.
|
|
49
|
+
const executablePath = headlessShellExecutable(shellDir);
|
|
50
|
+
return { installed: executablePath !== null, version, executablePath };
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
// The package resolved but would not load — a broken cache, not a download.
|
|
54
|
+
return { installed: false, version, executablePath: null };
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* The `chromium_headless_shell-<rev>` directory that sits beside
|
|
59
|
+
* `chromiumExecutablePath`'s own revision directory, or `null` when the path is
|
|
60
|
+
* not shaped like Playwright's registry.
|
|
61
|
+
*
|
|
62
|
+
* Playwright's public API cannot name the shell — `BrowserType.executablePath()`
|
|
63
|
+
* takes no options and always answers with the `chromium` build — so it is
|
|
64
|
+
* derived from the one path Playwright does hand out. One naming rule is
|
|
65
|
+
* assumed, and it is the one the cache itself shows: `<rev>` directories are
|
|
66
|
+
* named after the browser, `chromium-1243` beside `chromium_headless_shell-1243`.
|
|
67
|
+
*/
|
|
68
|
+
function headlessShellDir(chromiumExecutablePath) {
|
|
69
|
+
const segments = chromiumExecutablePath.split(/[\\/]/);
|
|
70
|
+
let revision = -1;
|
|
71
|
+
for (let i = segments.length - 1; i > 0; i -= 1) {
|
|
72
|
+
if (/^chromium-\d+$/.test(segments[i] ?? '')) {
|
|
73
|
+
revision = i;
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
const revisionDir = segments[revision];
|
|
78
|
+
if (revision <= 0 || revisionDir === undefined) {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
return join(segments.slice(0, revision).join(sep), revisionDir.replace('chromium-', 'chromium_headless_shell-'));
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* The shell executable inside `shellDir`, or `null`.
|
|
85
|
+
*
|
|
86
|
+
* The shell's own platform directory is deliberately NOT assumed — it is
|
|
87
|
+
* `chrome-headless-shell-<platform>` where chromium's is `chrome-<platform>` —
|
|
88
|
+
* so the file is looked for rather than named from a copy of Playwright's
|
|
89
|
+
* per-platform path table.
|
|
90
|
+
*/
|
|
91
|
+
function headlessShellExecutable(shellDir) {
|
|
92
|
+
for (const entry of safeReaddir(shellDir)) {
|
|
93
|
+
const platformDir = join(shellDir, entry);
|
|
94
|
+
for (const file of safeReaddir(platformDir)) {
|
|
95
|
+
if (/^chrome-headless-shell(\.exe)?$/.test(file)) {
|
|
96
|
+
return join(platformDir, file);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
function safeReaddir(dir) {
|
|
103
|
+
try {
|
|
104
|
+
return readdirSync(dir);
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
// Absent is the normal case on a machine that never installed the shell.
|
|
108
|
+
return [];
|
|
109
|
+
}
|
|
110
|
+
}
|
|
@@ -233,7 +233,9 @@ export class BrowserSessionManager {
|
|
|
233
233
|
const page = await this.pageFor(dispatchId);
|
|
234
234
|
await page.locator(selector).click();
|
|
235
235
|
// The interpolated title is page-controlled; only the selector is ours.
|
|
236
|
-
return {
|
|
236
|
+
return {
|
|
237
|
+
result: capText(`clicked ${selector} (page: ${await page.title()})`, MAX_TEXT_BYTES).text
|
|
238
|
+
};
|
|
237
239
|
}
|
|
238
240
|
/**
|
|
239
241
|
* Screenshot to an absolute path under `web/`. Always an explicit `path`:
|
|
@@ -363,7 +365,9 @@ function asAriaNodes(raw) {
|
|
|
363
365
|
if (!Array.isArray(raw)) {
|
|
364
366
|
throw new Error(`WEB_SNAP_SHAPE_UNEXPECTED: ariaSnapshotJSON returned ${typeof raw}, not a node array`);
|
|
365
367
|
}
|
|
366
|
-
const nodes = raw.filter((node) => typeof node === 'object' &&
|
|
368
|
+
const nodes = raw.filter((node) => typeof node === 'object' &&
|
|
369
|
+
node !== null &&
|
|
370
|
+
typeof node.role === 'string');
|
|
367
371
|
if (nodes.length !== raw.length) {
|
|
368
372
|
throw new Error(`WEB_SNAP_SHAPE_UNEXPECTED: ariaSnapshotJSON returned ${raw.length - nodes.length} node(s) without a string role`);
|
|
369
373
|
}
|
|
@@ -45,7 +45,10 @@ export function writeDaemonInfo(projectRoot, sessionId, info) {
|
|
|
45
45
|
const target = webDaemonInfoPath(projectRoot, sessionId);
|
|
46
46
|
assertUnder(target, webDaemonDir(projectRoot, sessionId));
|
|
47
47
|
mkdirSync(dirname(target), { recursive: true, mode: DAEMON_DIR_MODE });
|
|
48
|
-
writeFileSync(target, JSON.stringify(info, null, 2), {
|
|
48
|
+
writeFileSync(target, JSON.stringify(info, null, 2), {
|
|
49
|
+
encoding: 'utf8',
|
|
50
|
+
mode: DAEMON_FILE_MODE
|
|
51
|
+
});
|
|
49
52
|
}
|
|
50
53
|
/**
|
|
51
54
|
* Read + validate `daemon.json`. `null` when absent, malformed, a stale
|
|
@@ -1,79 +1,11 @@
|
|
|
1
|
+
import type { PlaywrightModule, PwBrowser, PwContext, PwLocator, PwPage } from './playwright-types.js';
|
|
1
2
|
/**
|
|
2
3
|
* Exact pin, no caret (tech-doc §3.2). AC2 is a BYTE-COUNT contract and the
|
|
3
4
|
* aria engine moves with the version, so upgrading is a deliberate,
|
|
4
5
|
* re-measured change — never a floating range.
|
|
5
6
|
*/
|
|
6
7
|
export declare const PLAYWRIGHT_VERSION_PIN = "1.63.0";
|
|
7
|
-
|
|
8
|
-
* The structural slice of the Playwright API this feature actually calls.
|
|
9
|
-
* Typed locally because the package is not a dependency and therefore has no
|
|
10
|
-
* importable type declarations.
|
|
11
|
-
*/
|
|
12
|
-
export interface PwLocator {
|
|
13
|
-
ariaSnapshotJSON?(options?: {
|
|
14
|
-
boxes?: boolean;
|
|
15
|
-
depth?: number;
|
|
16
|
-
mode?: 'ai' | 'default';
|
|
17
|
-
timeout?: number;
|
|
18
|
-
}): Promise<unknown>;
|
|
19
|
-
click(): Promise<void>;
|
|
20
|
-
innerText(): Promise<string>;
|
|
21
|
-
screenshot(options?: {
|
|
22
|
-
path?: string;
|
|
23
|
-
type?: 'png' | 'jpeg';
|
|
24
|
-
}): Promise<Buffer>;
|
|
25
|
-
}
|
|
26
|
-
export interface PwPage {
|
|
27
|
-
goto(url: string, options?: {
|
|
28
|
-
waitUntil?: string;
|
|
29
|
-
timeout?: number;
|
|
30
|
-
}): Promise<unknown>;
|
|
31
|
-
title(): Promise<string>;
|
|
32
|
-
url(): string;
|
|
33
|
-
locator(selector: string): PwLocator;
|
|
34
|
-
screenshot(options?: {
|
|
35
|
-
path?: string;
|
|
36
|
-
type?: 'png' | 'jpeg';
|
|
37
|
-
}): Promise<Buffer>;
|
|
38
|
-
evaluate<T>(expression: string): Promise<T>;
|
|
39
|
-
}
|
|
40
|
-
export interface PwContext {
|
|
41
|
-
newPage(): Promise<PwPage>;
|
|
42
|
-
addInitScript(script: string): Promise<void>;
|
|
43
|
-
storageState(options?: {
|
|
44
|
-
path?: string;
|
|
45
|
-
}): Promise<unknown>;
|
|
46
|
-
close(): Promise<void>;
|
|
47
|
-
}
|
|
48
|
-
export interface PwBrowser {
|
|
49
|
-
newContext(options?: Record<string, unknown>): Promise<PwContext>;
|
|
50
|
-
version(): string;
|
|
51
|
-
/**
|
|
52
|
-
* `disconnected` is the only signal that the user CLOSED the headed window
|
|
53
|
-
* (S4 repair), which is what completes a login: once the browser is gone a
|
|
54
|
-
* non-persistent context cannot be read, so the wait has to end here.
|
|
55
|
-
*
|
|
56
|
-
* OPTIONAL: the doubles that exercise the other verbs have no disconnect to
|
|
57
|
-
* report, and demanding the method made three of them type-broken. A browser
|
|
58
|
-
* that cannot report the event is treated as never disconnecting (S4 repair,
|
|
59
|
-
* code review F1).
|
|
60
|
-
*/
|
|
61
|
-
on?(event: 'disconnected', listener: () => void): void;
|
|
62
|
-
/**
|
|
63
|
-
* Whether the browser is still connected. Real Playwright exposes it; the
|
|
64
|
-
* login checks it ONCE before the wait starts, so a browser that is already
|
|
65
|
-
* gone fails fast instead of running out the full ten-minute bound — the
|
|
66
|
-
* `disconnected` event is not replayed for it (S4 repair, code review F3).
|
|
67
|
-
*/
|
|
68
|
-
isConnected?(): boolean;
|
|
69
|
-
close(): Promise<void>;
|
|
70
|
-
}
|
|
71
|
-
export interface PlaywrightModule {
|
|
72
|
-
chromium: {
|
|
73
|
-
launch(options?: Record<string, unknown>): Promise<PwBrowser>;
|
|
74
|
-
executablePath(): string;
|
|
75
|
-
};
|
|
76
|
-
}
|
|
8
|
+
export type { PlaywrightModule, PwBrowser, PwContext, PwLocator, PwPage };
|
|
77
9
|
/**
|
|
78
10
|
* Absolute path of the `playwright` main entry.
|
|
79
11
|
*
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The structural slice of the Playwright API this feature actually calls
|
|
3
|
+
* (slice S1, file 9).
|
|
4
|
+
*
|
|
5
|
+
* Split out of `playwright-loader.ts` to keep the loader under the
|
|
6
|
+
* 300-raw-line file cap — types only, no resolution or admission behaviour
|
|
7
|
+
* lives here. The loader re-exports every name below, so importers keep
|
|
8
|
+
* using `playwright-loader.js` unchanged. Typed locally because the package
|
|
9
|
+
* is not a dependency and therefore has no importable type declarations.
|
|
10
|
+
*/
|
|
11
|
+
export interface PwLocator {
|
|
12
|
+
ariaSnapshotJSON?(options?: {
|
|
13
|
+
boxes?: boolean;
|
|
14
|
+
depth?: number;
|
|
15
|
+
mode?: 'ai' | 'default';
|
|
16
|
+
timeout?: number;
|
|
17
|
+
}): Promise<unknown>;
|
|
18
|
+
click(): Promise<void>;
|
|
19
|
+
innerText(): Promise<string>;
|
|
20
|
+
screenshot(options?: {
|
|
21
|
+
path?: string;
|
|
22
|
+
type?: 'png' | 'jpeg';
|
|
23
|
+
}): Promise<Buffer>;
|
|
24
|
+
}
|
|
25
|
+
export interface PwPage {
|
|
26
|
+
goto(url: string, options?: {
|
|
27
|
+
waitUntil?: string;
|
|
28
|
+
timeout?: number;
|
|
29
|
+
}): Promise<unknown>;
|
|
30
|
+
title(): Promise<string>;
|
|
31
|
+
url(): string;
|
|
32
|
+
locator(selector: string): PwLocator;
|
|
33
|
+
screenshot(options?: {
|
|
34
|
+
path?: string;
|
|
35
|
+
type?: 'png' | 'jpeg';
|
|
36
|
+
}): Promise<Buffer>;
|
|
37
|
+
evaluate<T>(expression: string): Promise<T>;
|
|
38
|
+
}
|
|
39
|
+
export interface PwContext {
|
|
40
|
+
newPage(): Promise<PwPage>;
|
|
41
|
+
addInitScript(script: string): Promise<void>;
|
|
42
|
+
storageState(options?: {
|
|
43
|
+
path?: string;
|
|
44
|
+
}): Promise<unknown>;
|
|
45
|
+
close(): Promise<void>;
|
|
46
|
+
}
|
|
47
|
+
export interface PwBrowser {
|
|
48
|
+
newContext(options?: Record<string, unknown>): Promise<PwContext>;
|
|
49
|
+
version(): string;
|
|
50
|
+
/**
|
|
51
|
+
* `disconnected` is the only signal that the user CLOSED the headed window
|
|
52
|
+
* (S4 repair), which is what completes a login: once the browser is gone a
|
|
53
|
+
* non-persistent context cannot be read, so the wait has to end here.
|
|
54
|
+
*
|
|
55
|
+
* OPTIONAL: the doubles that exercise the other verbs have no disconnect to
|
|
56
|
+
* report, and demanding the method made three of them type-broken. A browser
|
|
57
|
+
* that cannot report the event is treated as never disconnecting (S4 repair,
|
|
58
|
+
* code review F1).
|
|
59
|
+
*/
|
|
60
|
+
on?(event: 'disconnected', listener: () => void): void;
|
|
61
|
+
/**
|
|
62
|
+
* Whether the browser is still connected. Real Playwright exposes it; the
|
|
63
|
+
* login checks it ONCE before the wait starts, so a browser that is already
|
|
64
|
+
* gone fails fast instead of running out the full ten-minute bound — the
|
|
65
|
+
* `disconnected` event is not replayed for it (S4 repair, code review F3).
|
|
66
|
+
*/
|
|
67
|
+
isConnected?(): boolean;
|
|
68
|
+
close(): Promise<void>;
|
|
69
|
+
}
|
|
70
|
+
export interface PlaywrightModule {
|
|
71
|
+
chromium: {
|
|
72
|
+
launch(options?: Record<string, unknown>): Promise<PwBrowser>;
|
|
73
|
+
executablePath(): string;
|
|
74
|
+
};
|
|
75
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|