peaks-loop 4.1.0 → 4.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +75 -0
- package/README-en.md +4 -4
- package/README.md +25 -4
- package/bin/node-floor.mjs +59 -0
- package/bin/peaks.js +13 -0
- package/config/eslint/tsconfig.lint.json +2 -1
- package/dist/cli/cli-helpers.d.ts +0 -1
- package/dist/cli/cli-helpers.js +0 -1
- package/dist/cli/commands/_cli-error-envelope.js +0 -3
- package/dist/cli/commands/_register.js +2 -2
- package/dist/cli/commands/adapter-commands-s2a.d.ts +0 -1
- package/dist/cli/commands/adapter-commands.d.ts +0 -1
- package/dist/cli/commands/api-diff-commands.d.ts +0 -1
- package/dist/cli/commands/api-diff-commands.js +0 -1
- package/dist/cli/commands/audit-commands.js +21 -24
- package/dist/cli/commands/autonomous-swarm-commands.js +0 -1
- package/dist/cli/commands/bee-commands.d.ts +0 -2
- package/dist/cli/commands/bee-commands.js +0 -2
- package/dist/cli/commands/best-practice-scan-command.d.ts +0 -1
- package/dist/cli/commands/best-practice-scan-helpers.js +0 -1
- package/dist/cli/commands/changeset-commands.d.ts +0 -2
- package/dist/cli/commands/changeset-commands.js +0 -2
- package/dist/cli/commands/code-commands.d.ts +0 -3
- package/dist/cli/commands/code-commands.js +0 -3
- package/dist/cli/commands/code-gate-command.d.ts +0 -1
- package/dist/cli/commands/code-gate-command.js +0 -1
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.d.ts +0 -1
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.js +0 -1
- package/dist/cli/commands/code-job-shape-commands.d.ts +0 -2
- package/dist/cli/commands/code-job-shape-commands.js +0 -3
- package/dist/cli/commands/code-mode-gate-commands.d.ts +0 -2
- package/dist/cli/commands/code-mode-gate-commands.js +0 -3
- package/dist/cli/commands/code-mode-gate-should-pause-command.js +1 -5
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.d.ts +0 -1
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.js +0 -2
- package/dist/cli/commands/code-mode-status-command.d.ts +0 -1
- package/dist/cli/commands/code-mode-status-command.js +0 -1
- package/dist/cli/commands/code-orchestrator-can-do.d.ts +0 -1
- package/dist/cli/commands/code-orchestrator-can-do.js +0 -1
- package/dist/cli/commands/code-run-command.js +0 -1
- package/dist/cli/commands/code-runtime-commands.d.ts +0 -3
- package/dist/cli/commands/code-runtime-commands.js +0 -15
- package/dist/cli/commands/codegraph-command-runtime.d.ts +6 -0
- package/dist/cli/commands/codegraph-command-runtime.js +19 -7
- package/dist/cli/commands/codegraph-commands.js +20 -193
- package/dist/cli/commands/codegraph-init-command.d.ts +8 -0
- package/dist/cli/commands/codegraph-init-command.js +162 -0
- package/dist/cli/commands/codegraph-status-command.js +5 -6
- package/dist/cli/commands/comments-commands.d.ts +14 -0
- package/dist/cli/commands/comments-commands.js +96 -0
- package/dist/cli/commands/compact-command.d.ts +0 -1
- package/dist/cli/commands/compact-command.js +0 -4
- package/dist/cli/commands/container-commands.d.ts +0 -1
- package/dist/cli/commands/container-commands.js +0 -1
- package/dist/cli/commands/context-commands.d.ts +0 -1
- package/dist/cli/commands/context-commands.js +0 -1
- package/dist/cli/commands/core/doctor-command.d.ts +0 -1
- package/dist/cli/commands/core/doctor-command.js +0 -9
- package/dist/cli/commands/core/memory-command.js +10 -1
- package/dist/cli/commands/core/session-command.js +0 -14
- package/dist/cli/commands/core/skill-command.js +1 -10
- package/dist/cli/commands/core/standards-command.js +1 -1
- package/dist/cli/commands/core-artifact-commands.d.ts +0 -1
- package/dist/cli/commands/core-artifact-commands.js +0 -1
- package/dist/cli/commands/cron-commands-actions.d.ts +0 -1
- package/dist/cli/commands/cron-commands-actions.js +0 -2
- package/dist/cli/commands/cron-commands-schedule.d.ts +0 -3
- package/dist/cli/commands/cron-commands-schedule.js +0 -1
- package/dist/cli/commands/cron-commands.d.ts +0 -1
- package/dist/cli/commands/cron-commands.js +0 -2
- package/dist/cli/commands/cron-scheduler-commands.d.ts +0 -1
- package/dist/cli/commands/cron-scheduler-commands.js +0 -1
- package/dist/cli/commands/cron-scheduler-persist.d.ts +0 -5
- package/dist/cli/commands/cron-scheduler-persist.js +0 -5
- package/dist/cli/commands/dashboard-summary.d.ts +0 -1
- package/dist/cli/commands/dispatch-commands.d.ts +0 -1
- package/dist/cli/commands/dispatch-commands.js +10 -37
- package/dist/cli/commands/dispatch-from-dag.js +0 -4
- package/dist/cli/commands/doctor/invoke-from-code.js +0 -1
- package/dist/cli/commands/e2e-verify.d.ts +0 -1
- package/dist/cli/commands/ecc-commands.d.ts +16 -22
- package/dist/cli/commands/ecc-commands.js +38 -26
- package/dist/cli/commands/evolution-commands.d.ts +0 -1
- package/dist/cli/commands/evolution-commands.js +0 -1
- package/dist/cli/commands/feedback-commands.d.ts +0 -1
- package/dist/cli/commands/feedback-commands.js +0 -2
- package/dist/cli/commands/fixture-commands.d.ts +0 -2
- package/dist/cli/commands/fresh-context-commands.d.ts +0 -1
- package/dist/cli/commands/gate-commands-enforce.d.ts +0 -3
- package/dist/cli/commands/gate-commands-enforce.js +0 -4
- package/dist/cli/commands/gate-commands.js +0 -2
- package/dist/cli/commands/governance-classify-contract-commands.d.ts +0 -3
- package/dist/cli/commands/governance-classify-contract-commands.js +0 -4
- package/dist/cli/commands/heartbeat-commands-action.js +0 -6
- package/dist/cli/commands/heartbeat-commands-validation.d.ts +0 -2
- package/dist/cli/commands/heartbeat-commands-validation.js +0 -2
- package/dist/cli/commands/heartbeat-commands.d.ts +0 -1
- package/dist/cli/commands/heartbeat-commands.js +0 -1
- package/dist/cli/commands/hooks-commands.js +0 -11
- package/dist/cli/commands/ide-commands.d.ts +0 -1
- package/dist/cli/commands/job-add-slice-command.d.ts +0 -2
- package/dist/cli/commands/job-add-slice-command.js +0 -2
- package/dist/cli/commands/job-commands.js +0 -4
- package/dist/cli/commands/lease-metrics-commands.d.ts +0 -1
- package/dist/cli/commands/lease-metrics-commands.js +0 -1
- package/dist/cli/commands/lease-stats-commands.d.ts +0 -1
- package/dist/cli/commands/lease-stats-commands.js +0 -1
- package/dist/cli/commands/log-commands.d.ts +0 -2
- package/dist/cli/commands/log-commands.js +0 -3
- package/dist/cli/commands/loop-eval-commands.js +0 -3
- package/dist/cli/commands/memory-commands.d.ts +0 -1
- package/dist/cli/commands/memory-commands.js +0 -1
- package/dist/cli/commands/observability-commands.d.ts +0 -6
- package/dist/cli/commands/observability-commands.js +0 -6
- package/dist/cli/commands/outer-cache-commands.js +0 -2
- package/dist/cli/commands/playwright-commands.d.ts +0 -1
- package/dist/cli/commands/playwright-commands.js +0 -1
- package/dist/cli/commands/polyrepo-commands.d.ts +0 -1
- package/dist/cli/commands/prd-commands.d.ts +0 -1
- package/dist/cli/commands/prd-commands.js +8 -4
- package/dist/cli/commands/preferences-commands.js +0 -2
- package/dist/cli/commands/primer-command.d.ts +0 -1
- package/dist/cli/commands/primer-command.js +0 -1
- package/dist/cli/commands/project-commands.js +0 -1
- package/dist/cli/commands/qa-commands.d.ts +0 -1
- package/dist/cli/commands/qa-commands.js +0 -2
- package/dist/cli/commands/release-commands.js +0 -9
- package/dist/cli/commands/request-commands.d.ts +0 -1
- package/dist/cli/commands/request-commands.js +0 -10
- package/dist/cli/commands/request-format-helpers.d.ts +0 -1
- package/dist/cli/commands/request-format-helpers.js +0 -2
- package/dist/cli/commands/runtime-commands.d.ts +0 -1
- package/dist/cli/commands/sc-commands.js +0 -1
- package/dist/cli/commands/session-24h-mode.d.ts +0 -1
- package/dist/cli/commands/session-24h-mode.js +0 -2
- package/dist/cli/commands/session-checkpoint-command.d.ts +0 -1
- package/dist/cli/commands/session-checkpoint-command.js +0 -1
- package/dist/cli/commands/session-resume-command.d.ts +0 -1
- package/dist/cli/commands/session-resume-command.js +0 -1
- package/dist/cli/commands/shadcn-commands.js +0 -2
- package/dist/cli/commands/share-commands.d.ts +0 -3
- package/dist/cli/commands/share-commands.js +0 -13
- package/dist/cli/commands/skill-search-commands.d.ts +0 -2
- package/dist/cli/commands/slice-commands.js +0 -2
- package/dist/cli/commands/slice-integrate-commands.js +0 -1
- package/dist/cli/commands/spill-demo-command.d.ts +0 -1
- package/dist/cli/commands/statusline-commands.js +0 -4
- package/dist/cli/commands/sub-agent/detached.js +0 -2
- package/dist/cli/commands/sub-agent-commands.d.ts +0 -3
- package/dist/cli/commands/sub-agent-shared.d.ts +0 -8
- package/dist/cli/commands/sub-agent-shared.js +0 -5
- package/dist/cli/commands/sub-agent-shutdown-commands.d.ts +0 -1
- package/dist/cli/commands/tech-commands.d.ts +0 -4
- package/dist/cli/commands/tech-commands.js +0 -4
- package/dist/cli/commands/vendor-detect.d.ts +0 -3
- package/dist/cli/commands/vendor-detect.js +0 -2
- package/dist/cli/commands/verdict-aggregate-command.d.ts +0 -1
- package/dist/cli/commands/verdict-aggregate-command.js +0 -7
- package/dist/cli/commands/vm-commands.d.ts +0 -1
- package/dist/cli/commands/vm-commands.js +5 -29
- package/dist/cli/commands/vm-hypervisor-probe.d.ts +27 -0
- package/dist/cli/commands/vm-hypervisor-probe.js +78 -0
- package/dist/cli/commands/vm-status-command.d.ts +3 -0
- package/dist/cli/commands/vm-status-command.js +50 -0
- package/dist/cli/commands/wave-plan-commands.d.ts +0 -1
- package/dist/cli/commands/web-lifecycle-commands.d.ts +0 -1
- package/dist/cli/commands/workflow-commands.js +0 -14
- package/dist/cli/commands/workflow-plan-commands-actions.js +0 -2
- package/dist/cli/commands/workflow-plan-commands-session.js +0 -2
- package/dist/cli/commands/workflow-plan-commands.d.ts +0 -1
- package/dist/cli/commands/workspace/clean-command.d.ts +0 -1
- package/dist/cli/commands/workspace/clean-command.js +0 -1
- package/dist/cli/commands/workspace/helpers.d.ts +0 -1
- package/dist/cli/commands/workspace/helpers.js +0 -1
- package/dist/cli/commands/workspace/init-command.d.ts +0 -6
- package/dist/cli/commands/workspace/init-command.js +0 -17
- package/dist/cli/commands/workspace/migrate-command.d.ts +0 -2
- package/dist/cli/commands/workspace/migrate-command.js +0 -2
- package/dist/cli/commands/workspace/reconcile-command.d.ts +0 -2
- package/dist/cli/commands/workspace/reconcile-command.js +0 -3
- package/dist/cli/commands/workspace-commands.d.ts +0 -2
- package/dist/cli/commands/workspace-commands.js +0 -4
- package/dist/cli/commands/worktree-auth-commands.d.ts +0 -1
- package/dist/cli/commands/worktree-auth-commands.js +0 -1
- package/dist/cli/commands/worktree-auth-grant-command.d.ts +0 -1
- package/dist/cli/commands/worktree-auth-grant-command.js +0 -1
- package/dist/cli/commands/worktree-auth-manage-commands.d.ts +0 -1
- package/dist/cli/commands/worktree-auth-manage-commands.js +0 -1
- package/dist/cli/commands/worktree-lease-commands.js +0 -1
- package/dist/cli/program.js +4 -16
- package/dist/reporters/bdd-reporter.js +0 -1
- package/dist/services/24h-mode/auto-engage.d.ts +0 -1
- package/dist/services/24h-mode/auto-engage.js +0 -1
- package/dist/services/24h-mode/decider.d.ts +0 -3
- package/dist/services/24h-mode/decider.js +0 -3
- package/dist/services/24h-mode/index.d.ts +0 -2
- package/dist/services/24h-mode/index.js +0 -2
- package/dist/services/24h-mode/state.d.ts +0 -1
- package/dist/services/24h-mode/state.js +0 -1
- package/dist/services/24h-mode/store.d.ts +0 -1
- package/dist/services/24h-mode/store.js +0 -1
- package/dist/services/adapter/adapter-registry.js +0 -1
- package/dist/services/artifacts/artifact-prerequisites.d.ts +0 -5
- package/dist/services/artifacts/artifact-prerequisites.js +0 -19
- package/dist/services/artifacts/artifact-templates.d.ts +0 -1
- package/dist/services/artifacts/artifact-templates.js +0 -1
- package/dist/services/artifacts/request-artifact-service.d.ts +0 -5
- package/dist/services/artifacts/request-artifact-service.js +0 -12
- package/dist/services/artifacts/request-artifact-state-helpers.d.ts +0 -1
- package/dist/services/artifacts/request-artifact-state-helpers.js +0 -1
- package/dist/services/audit/artifact-writer.d.ts +0 -1
- package/dist/services/audit/artifact-writer.js +0 -1
- package/dist/services/audit/decision-writer.js +3 -1
- package/dist/services/audit/enforcer-liveness.js +0 -1
- package/dist/services/audit/enforcers/active-skill-resolver.d.ts +0 -2
- package/dist/services/audit/enforcers/active-skill-resolver.js +0 -2
- package/dist/services/audit/red-line-audit-input.d.ts +11 -0
- package/dist/services/audit/red-line-audit-input.js +103 -0
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.d.ts +0 -1
- package/dist/services/audit/red-line-catalog-p2-a.js +0 -9
- package/dist/services/audit/types.d.ts +0 -2
- package/dist/services/audit/types.js +0 -2
- package/dist/services/audit-independent/perf-audit-service.d.ts +0 -2
- package/dist/services/audit-independent/security-audit-service.d.ts +0 -5
- package/dist/services/audit-independent/security-audit-service.js +0 -2
- package/dist/services/autonomous-swarm/autonomous-swarm-service.d.ts +0 -5
- package/dist/services/autonomous-swarm/autonomous-swarm-service.js +0 -5
- package/dist/services/best-practice/language-detector.js +0 -1
- package/dist/services/best-practice/output-formatter.d.ts +0 -1
- package/dist/services/best-practice/scan-orchestrator.d.ts +0 -1
- package/dist/services/capability-audit-service/types.d.ts +1 -3
- package/dist/services/capability-guard-runner/contracts/J08.js +2 -2
- package/dist/services/changeset/changeset-check-service.d.ts +0 -3
- package/dist/services/changeset/changeset-check-service.js +0 -3
- package/dist/services/classify/classify-service.d.ts +0 -1
- package/dist/services/classify/classify-service.js +0 -1
- package/dist/services/classify/classify-types.d.ts +0 -1
- package/dist/services/classify/classify-types.js +0 -1
- package/dist/services/code/auto-compact-lifecycle.d.ts +0 -11
- package/dist/services/code/auto-compact-lifecycle.js +0 -10
- package/dist/services/code/auto-compact-modes.d.ts +0 -3
- package/dist/services/code/auto-compact-modes.js +0 -3
- package/dist/services/code/auto-compact-orchestrator.d.ts +0 -9
- package/dist/services/code/auto-compact-orchestrator.js +0 -29
- package/dist/services/code/batch-heartbeat-poller.js +0 -1
- package/dist/services/code/compact-event-settle.js +0 -1
- package/dist/services/code/dag-orchestrator.d.ts +0 -1
- package/dist/services/code/dag-orchestrator.js +0 -1
- package/dist/services/code/mode-gate-types.d.ts +1 -3
- package/dist/services/code/mode-gate-types.js +0 -2
- package/dist/services/code/mode-gate.d.ts +0 -5
- package/dist/services/code/mode-gate.js +1 -14
- package/dist/services/code/orchestrator-can-do-advisories.d.ts +0 -2
- package/dist/services/code/orchestrator-can-do-advisories.js +0 -5
- package/dist/services/code/orchestrator-can-do.d.ts +0 -4
- package/dist/services/code/orchestrator-can-do.js +0 -3
- package/dist/services/code/status-line-renderer.js +0 -1
- package/dist/services/code/user-touchpoint-classifier.js +0 -7
- package/dist/services/code-review/ecc-bridge.d.ts +6 -7
- package/dist/services/codegraph/codegraph-autorefresh.js +6 -4
- package/dist/services/codegraph/codegraph-backend-advice.d.ts +26 -0
- package/dist/services/codegraph/codegraph-backend-advice.js +166 -0
- package/dist/services/codegraph/codegraph-config-repair-writer.d.ts +0 -24
- package/dist/services/codegraph/codegraph-config-repair-writer.js +32 -73
- package/dist/services/codegraph/codegraph-exclude-integrity.d.ts +14 -6
- package/dist/services/codegraph/codegraph-exclude-integrity.js +24 -14
- package/dist/services/codegraph/codegraph-exclude-reconciler.d.ts +9 -2
- package/dist/services/codegraph/codegraph-exclude-reconciler.js +87 -18
- package/dist/services/codegraph/codegraph-exclude-repair.d.ts +9 -61
- package/dist/services/codegraph/codegraph-exclude-repair.js +67 -139
- package/dist/services/codegraph/codegraph-foreign-removal.d.ts +21 -0
- package/dist/services/codegraph/codegraph-foreign-removal.js +77 -0
- package/dist/services/codegraph/codegraph-index-integrity.d.ts +12 -25
- package/dist/services/codegraph/codegraph-index-integrity.js +84 -23
- package/dist/services/codegraph/codegraph-preflight-service.js +15 -6
- package/dist/services/codegraph/codegraph-project-config.d.ts +35 -0
- package/dist/services/codegraph/codegraph-project-config.js +90 -0
- package/dist/services/codegraph/codegraph-service.d.ts +1 -2
- package/dist/services/codegraph/codegraph-service.js +11 -11
- package/dist/services/codegraph/codegraph-upstream-layout.d.ts +24 -0
- package/dist/services/codegraph/codegraph-upstream-layout.js +85 -0
- package/dist/services/comments/citation-rules.d.ts +154 -0
- package/dist/services/comments/citation-rules.js +241 -0
- package/dist/services/comments/comment-audit.d.ts +68 -0
- package/dist/services/comments/comment-audit.js +121 -0
- package/dist/services/comments/comment-citations.d.ts +66 -0
- package/dist/services/comments/comment-citations.js +184 -0
- package/dist/services/comments/comment-hygiene.d.ts +105 -0
- package/dist/services/comments/comment-hygiene.js +170 -0
- package/dist/services/comments/comment-prune.d.ts +88 -0
- package/dist/services/comments/comment-prune.js +196 -0
- package/dist/services/comments/comment-spans.d.ts +30 -0
- package/dist/services/comments/comment-spans.js +266 -0
- package/dist/services/comments/prune-apply.d.ts +82 -0
- package/dist/services/comments/prune-apply.js +217 -0
- package/dist/services/comments/repo-path-probe.d.ts +43 -0
- package/dist/services/comments/repo-path-probe.js +78 -0
- package/dist/services/compact/decision-tables.d.ts +0 -2
- package/dist/services/compact/decision-tables.js +0 -2
- package/dist/services/compact/request-transition-hook.js +0 -2
- package/dist/services/compact-history/compact-history-service.d.ts +0 -2
- package/dist/services/compact-history/compact-history-service.js +0 -1
- package/dist/services/compact-statusline/compact-lifecycle-store.js +0 -2
- package/dist/services/compact-statusline/compact-lifecycle-types.d.ts +0 -1
- package/dist/services/compact-statusline/compact-statusline-service.js +0 -4
- package/dist/services/config/config-rollback.js +0 -1
- package/dist/services/config/config-safety.d.ts +0 -1
- package/dist/services/config/config-safety.js +0 -1
- package/dist/services/config/config-service.d.ts +0 -1
- package/dist/services/config/config-service.js +0 -1
- package/dist/services/config/model-routing.d.ts +0 -3
- package/dist/services/config/model-routing.js +0 -5
- package/dist/services/container/container-lease.d.ts +0 -1
- package/dist/services/container/container-lease.js +0 -1
- package/dist/services/context/artifact-meta.js +0 -1
- package/dist/services/context/auto-compact-dispatcher-input.d.ts +0 -3
- package/dist/services/context/auto-compact-dispatcher.js +0 -14
- package/dist/services/context/auto-compact-reader-input.d.ts +0 -1
- package/dist/services/context/auto-compact-reader.d.ts +0 -2
- package/dist/services/context/auto-compact-reader.js +0 -7
- package/dist/services/context/auto-compact-types.d.ts +0 -11
- package/dist/services/context/auto-compact-types.js +0 -1
- package/dist/services/context/build-dispatch-system-prompt.d.ts +11 -29
- package/dist/services/context/build-dispatch-system-prompt.js +8 -27
- package/dist/services/context/codegraph-unavailable-block.d.ts +38 -0
- package/dist/services/context/codegraph-unavailable-block.js +77 -0
- package/dist/services/context/context-audit-hint.d.ts +0 -1
- package/dist/services/context/context-audit-hint.js +0 -1
- package/dist/services/context/context-audit.d.ts +0 -1
- package/dist/services/context/context-audit.js +0 -1
- package/dist/services/context/harness-window-config.d.ts +0 -4
- package/dist/services/context/harness-window-config.js +0 -4
- package/dist/services/context/main-session-monitor.d.ts +0 -2
- package/dist/services/context/main-session-monitor.js +0 -2
- package/dist/services/context/memory-index-reader.d.ts +0 -2
- package/dist/services/context/memory-index-reader.js +0 -1
- package/dist/services/context/memory-preflight-config.d.ts +0 -1
- package/dist/services/context/memory-preflight-service.d.ts +0 -1
- package/dist/services/context/memory-preflight-service.js +0 -3
- package/dist/services/context/memory-preflight-support.d.ts +0 -5
- package/dist/services/context/post-compact-reinjection.d.ts +0 -1
- package/dist/services/context/post-compact-reinjection.js +0 -1
- package/dist/services/context/summary-view.d.ts +0 -1
- package/dist/services/context/summary-view.js +0 -1
- package/dist/services/crystallization/crystallization-service.d.ts +5 -11
- package/dist/services/crystallization/crystallization-service.js +3 -11
- package/dist/services/crystallization/crystallization-store.d.ts +6 -6
- package/dist/services/dispatch/await-batch-helpers.js +0 -3
- package/dist/services/dispatch/await-batch.d.ts +0 -1
- package/dist/services/dispatch/await-batch.js +0 -4
- package/dist/services/dispatch/batch-counter.js +0 -1
- package/dist/services/dispatch/conflict-replay.d.ts +0 -1
- package/dist/services/dispatch/conflict-replay.js +0 -1
- package/dist/services/dispatch/contract-store.d.ts +0 -2
- package/dist/services/dispatch/contract-store.js +0 -2
- package/dist/services/dispatch/dispatch-record-input-types.d.ts +0 -2
- package/dist/services/dispatch/dispatch-record-types.d.ts +0 -10
- package/dist/services/dispatch/dispatch-record-upgrade-fields.js +0 -7
- package/dist/services/dispatch/dispatch-record-upgrade-guards.js +0 -2
- package/dist/services/dispatch/dispatch-record-writer.d.ts +0 -5
- package/dist/services/dispatch/dispatch-record-writer.js +0 -21
- package/dist/services/dispatch/dispatch-sub-agent.d.ts +0 -1
- package/dist/services/dispatch/dispatch-sub-agent.js +0 -1
- package/dist/services/dispatch/e2e-fixtures.js +0 -1
- package/dist/services/dispatch/file-overlap-wave-planner.d.ts +0 -1
- package/dist/services/dispatch/file-overlap-wave-planner.js +0 -1
- package/dist/services/dispatch/isolation-lease.d.ts +0 -2
- package/dist/services/dispatch/isolation-lease.js +0 -2
- package/dist/services/dispatch/service-shutdown.js +0 -1
- package/dist/services/dispatch/session-capsule.js +0 -1
- package/dist/services/dispatch/slice-dag-types.d.ts +0 -1
- package/dist/services/dispatch/slice-dag.js +0 -2
- package/dist/services/dispatch/stage-enum.d.ts +0 -1
- package/dist/services/dispatch/stage-enum.js +0 -1
- package/dist/services/dispatch/startup-timeout.d.ts +0 -1
- package/dist/services/dispatch/sub-agent-batch-await.js +0 -3
- package/dist/services/dispatch/sub-agent-dispatcher-types.d.ts +0 -1
- package/dist/services/dispatch/sub-agent-dispatcher.js +0 -2
- package/dist/services/dispatch/test-tool-detection.d.ts +0 -3
- package/dist/services/dispatch/test-tool-detection.js +0 -2
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +19 -12
- package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.js +1 -2
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.d.ts +0 -2
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +0 -2
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.d.ts +0 -1
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +0 -1
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.d.ts +0 -1
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.js +0 -3
- package/dist/services/doctor/doctor-service/checks/workspace-layout.js +0 -2
- package/dist/services/doctor/doctor-service/index.d.ts +0 -1
- package/dist/services/doctor/doctor-service/index.js +0 -1
- package/dist/services/doctor/doctor-service/plugin-registry.d.ts +0 -2
- package/dist/services/doctor/doctor-service/plugin-registry.js +0 -2
- package/dist/services/doctor/doctor-service/probe-types.d.ts +0 -4
- package/dist/services/doctor/doctor-service/report/final-summary.d.ts +0 -1
- package/dist/services/doctor/doctor-service/report/final-summary.js +0 -1
- package/dist/services/doctor/doctor-service/types.d.ts +0 -5
- package/dist/services/doctor/doctor-service/types.js +0 -1
- package/dist/services/doctor/doctor-service.d.ts +0 -1
- package/dist/services/doctor/doctor-service.js +0 -2
- package/dist/services/env/shell-probe.js +0 -1
- package/dist/services/evidence/evidence-generator.js +0 -8
- package/dist/services/evolution/evolution-constraints.d.ts +0 -2
- package/dist/services/evolution/evolution-constraints.js +0 -2
- package/dist/services/evolution/evolution-service.d.ts +2 -12
- package/dist/services/evolution/evolution-service.js +0 -9
- package/dist/services/evolution/evolution-store.d.ts +6 -8
- package/dist/services/evolution/evolution-store.js +1 -3
- package/dist/services/evolution/evolution-types.d.ts +0 -2
- package/dist/services/evolution/evolution-types.js +0 -6
- package/dist/services/evolution/independent-evaluator-runner.d.ts +0 -3
- package/dist/services/evolution/independent-evaluator-runner.js +0 -1
- package/dist/services/evolution/regression-skeptic-runner.d.ts +0 -1
- package/dist/services/feedback/feedback-promotion-service.d.ts +0 -8
- package/dist/services/feedback/feedback-promotion-service.js +0 -10
- package/dist/services/feedback/promotion-artifact-evidence.d.ts +0 -1
- package/dist/services/feedback/promotion-artifact-evidence.js +0 -1
- package/dist/services/final-review/final-review-evidence-budget.d.ts +0 -3
- package/dist/services/final-review/final-review-evidence-budget.js +0 -5
- package/dist/services/final-review/final-review-evidence-sources.d.ts +0 -1
- package/dist/services/final-review/final-review-evidence-sources.js +0 -1
- package/dist/services/final-review/final-review-output-budget.d.ts +0 -1
- package/dist/services/final-review/final-review-output-budget.js +0 -3
- package/dist/services/final-review/final-review-service.d.ts +0 -1
- package/dist/services/final-review/final-review-service.js +0 -1
- package/dist/services/fixture/fixture-capture-service.js +0 -1
- package/dist/services/fixture/fixture-sanitize-service.d.ts +0 -3
- package/dist/services/fixture/fixture-sanitize-service.js +0 -3
- package/dist/services/fresh-context/config.js +0 -1
- package/dist/services/fresh-context/fresh-context-block.js +0 -1
- package/dist/services/fresh-context/trigger-scan.d.ts +0 -1
- package/dist/services/fresh-context/trigger-scan.js +0 -1
- package/dist/services/fuzzy-matching/fzf-pick-service.d.ts +0 -1
- package/dist/services/fuzzy-matching/fzf-pick-service.js +0 -1
- package/dist/services/handoff/handoff-parser.d.ts +0 -1
- package/dist/services/handoff/handoff-parser.js +0 -1
- package/dist/services/handoff/handoff-types.d.ts +0 -1
- package/dist/services/handoff/handoff-types.js +0 -1
- package/dist/services/handoff/handoff-writer.d.ts +0 -1
- package/dist/services/handoff/handoff-writer.js +0 -1
- package/dist/services/hooks/auto-compact-hook-install.d.ts +0 -1
- package/dist/services/hooks/auto-compact-hook-install.js +0 -1
- package/dist/services/hooks/output.d.ts +0 -1
- package/dist/services/hooks/output.js +0 -1
- package/dist/services/hooks/pre-tool-code-gate.d.ts +0 -1
- package/dist/services/hooks/pre-tool-code-gate.js +0 -1
- package/dist/services/hooks/presence-marker-detector.js +0 -1
- package/dist/services/hooks/worktree-authorization-gate.d.ts +0 -3
- package/dist/services/hooks/worktree-authorization-gate.js +0 -1
- package/dist/services/ide/adapters/claude-code-adapter.d.ts +0 -5
- package/dist/services/ide/adapters/claude-code-adapter.js +0 -11
- package/dist/services/ide/adapters/qoder-adapter.d.ts +0 -3
- package/dist/services/ide/adapters/qoder-adapter.js +0 -5
- package/dist/services/ide/adapters/tongyi-lingma-adapter.d.ts +0 -2
- package/dist/services/ide/adapters/tongyi-lingma-adapter.js +0 -2
- package/dist/services/ide/adapters/trae-adapter.d.ts +0 -3
- package/dist/services/ide/adapters/trae-adapter.js +3 -6
- package/dist/services/ide/adapters/zcode-adapter.js +0 -2
- package/dist/services/ide/current-model-detector.js +0 -1
- package/dist/services/ide/hook-protocol.d.ts +0 -2
- package/dist/services/ide/hook-protocol.js +0 -2
- package/dist/services/ide/ide-compact-types.d.ts +0 -7
- package/dist/services/ide/ide-types.d.ts +0 -12
- package/dist/services/ide/resource-profile.d.ts +0 -1
- package/dist/services/job/job-commit-verification.d.ts +0 -2
- package/dist/services/job/job-commit-verification.js +0 -2
- package/dist/services/job/job-orchestrator.d.ts +0 -1
- package/dist/services/job/job-orchestrator.js +0 -1
- package/dist/services/job/job-progress-store.d.ts +0 -2
- package/dist/services/job/job-progress-store.js +0 -3
- package/dist/services/job/job-types.js +0 -1
- package/dist/services/job-snapshot/snapshot.js +0 -1
- package/dist/services/karpathy-cost/karpathy-cost-check-service.js +0 -1
- package/dist/services/legacy/legacy-detector.js +0 -1
- package/dist/services/log/log-commands-service.d.ts +0 -2
- package/dist/services/log/log-commands-service.js +0 -2
- package/dist/services/log/logger.d.ts +0 -1
- package/dist/services/log/logger.js +0 -1
- package/dist/services/log/redact.d.ts +0 -1
- package/dist/services/log/redact.js +0 -1
- package/dist/services/log/retention.d.ts +0 -17
- package/dist/services/log/retention.js +0 -18
- package/dist/services/loop/loop-bee-relation-service.d.ts +3 -3
- package/dist/services/loop/loop-bee-relation-service.js +14 -13
- package/dist/services/loop/loop-bee-relation-store.d.ts +9 -10
- package/dist/services/loop/loop-bee-relation-store.js +1 -2
- package/dist/services/loop/loop-bee-relation-types.d.ts +1 -1
- package/dist/services/loop/loop-bee-relation-types.js +1 -1
- package/dist/services/loop/loop-release-service.d.ts +3 -3
- package/dist/services/loop/loop-release-service.js +1 -1
- package/dist/services/loop/loop-release-store.d.ts +6 -7
- package/dist/services/loop/loop-release-store.js +0 -1
- package/dist/services/loop/monotonic-guard.d.ts +0 -1
- package/dist/services/loop/monotonic-guard.js +0 -1
- package/dist/services/memory/memory-ingest-service.js +0 -1
- package/dist/services/memory/project-context-service.d.ts +0 -1
- package/dist/services/memory/project-context-service.js +0 -1
- package/dist/services/memory/project-memory-service/index/reindex.d.ts +0 -2
- package/dist/services/memory/project-memory-service/index/reindex.js +0 -1
- package/dist/services/memory/project-memory-service/index/search.d.ts +0 -1
- package/dist/services/memory/project-memory-service/index/search.js +0 -1
- package/dist/services/memory/project-memory-service/index.d.ts +1 -1
- package/dist/services/memory/project-memory-service/index.js +1 -1
- package/dist/services/memory/project-memory-service/memory-kinds.d.ts +0 -1
- package/dist/services/memory/project-memory-service/memory-kinds.js +0 -1
- package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +0 -1
- package/dist/services/memory/project-memory-service/parsers/frontmatter.js +0 -1
- package/dist/services/memory/project-memory-service/store/atomic-write.d.ts +19 -7
- package/dist/services/memory/project-memory-service/store/atomic-write.js +120 -26
- package/dist/services/memory/project-memory-service.js +0 -1
- package/dist/services/mode/mode-enforcement.js +0 -1
- package/dist/services/mode/mode-status-service.d.ts +0 -2
- package/dist/services/mode/mode-status-service.js +0 -2
- package/dist/services/observability/aggregation.d.ts +0 -4
- package/dist/services/observability/aggregation.js +0 -6
- package/dist/services/observability/observability-schema.js +0 -1
- package/dist/services/observability/observability-service.d.ts +0 -5
- package/dist/services/observability/observability-service.js +0 -4
- package/dist/services/observability/report-formatter.d.ts +0 -2
- package/dist/services/observability/report-formatter.js +0 -2
- package/dist/services/openspec/artifact-boundary.d.ts +0 -4
- package/dist/services/openspec/artifact-boundary.js +0 -4
- package/dist/services/openspec/coverage-evidence-reader.d.ts +0 -1
- package/dist/services/openspec/coverage-evidence-reader.js +0 -1
- package/dist/services/polyrepo/polyrepo-dispatcher.js +0 -1
- package/dist/services/polyrepo/polyrepo-scanner.js +0 -1
- package/dist/services/polyrepo/polyrepo-service.js +0 -1
- package/dist/services/polyrepo/polyrepo-types.d.ts +0 -1
- package/dist/services/prd/best-practice-auto-trigger.d.ts +0 -2
- package/dist/services/prd/best-practice-auto-trigger.js +0 -2
- package/dist/services/prd/gate-evidence-derivation.d.ts +0 -4
- package/dist/services/prd/gate-evidence-derivation.js +0 -5
- package/dist/services/prd/handoff-auto-regen.js +0 -5
- package/dist/services/prd/handoff-frontmatter-shape.d.ts +0 -2
- package/dist/services/prd/handoff-frontmatter-shape.js +0 -2
- package/dist/services/prd/handoff-frontmatter.d.ts +0 -1
- package/dist/services/prd/handoff-frontmatter.js +61 -2
- package/dist/services/prd/handoff-gate-evidence.d.ts +0 -1
- package/dist/services/prd/handoff-gate-evidence.js +12 -12
- package/dist/services/prd/handoff-path-resolution.d.ts +0 -7
- package/dist/services/prd/handoff-path-resolution.js +0 -10
- package/dist/services/prd/handoff-service.d.ts +11 -3
- package/dist/services/prd/handoff-service.js +11 -3
- package/dist/services/prd/handoff-types.d.ts +33 -3
- package/dist/services/prd/handoff-types.js +0 -1
- package/dist/services/prd/project-scan-bootstrap-service.d.ts +0 -1
- package/dist/services/prd/project-scan-bootstrap-service.js +0 -4
- package/dist/services/prd/project-scan-types.d.ts +0 -1
- package/dist/services/prd/project-scan-types.js +0 -1
- package/dist/services/preferences/preferences-service.d.ts +0 -1
- package/dist/services/preferences/preferences-service.js +0 -5
- package/dist/services/preferences/preferences-types.d.ts +0 -14
- package/dist/services/preferences/preferences-types.js +0 -4
- package/dist/services/progress/progress-service.js +0 -1
- package/dist/services/qa/bdd-test-style-verifier.d.ts +0 -1
- package/dist/services/qa/bdd-test-style-verifier.js +0 -1
- package/dist/services/qa/browser-event-logger.d.ts +0 -1
- package/dist/services/qa/browser-event-logger.js +0 -1
- package/dist/services/qa/browser-restart-detector.d.ts +0 -1
- package/dist/services/qa/browser-restart-detector.js +0 -1
- package/dist/services/qa/browser-reuse-hint.d.ts +0 -1
- package/dist/services/qa/browser-reuse-hint.js +0 -1
- package/dist/services/qa/qa-business-review-state.js +0 -2
- package/dist/services/qa/screenshot-archive-service.d.ts +0 -1
- package/dist/services/qa/screenshot-archive-service.js +0 -1
- package/dist/services/rd/impl.js +0 -1
- package/dist/services/rd/rd-service.d.ts +0 -5
- package/dist/services/rd/rd-service.js +0 -5
- package/dist/services/rd/reviewer-dispatch-policy.d.ts +0 -4
- package/dist/services/rd/reviewer-dispatch-policy.js +0 -4
- package/dist/services/rd/standards-diagnostic.js +0 -1
- package/dist/services/rd/tactical-stage.js +0 -1
- package/dist/services/rd-swarm/rd-swarm-types.d.ts +0 -1
- package/dist/services/rd-swarm/rd-swarm-types.js +0 -1
- package/dist/services/recommendations/installed-capability-detector.d.ts +5 -6
- package/dist/services/recommendations/installed-capability-detector.js +11 -11
- package/dist/services/release/version-precheck-service.d.ts +0 -2
- package/dist/services/release/version-precheck-service.js +0 -3
- package/dist/services/retrospective/retrospective-index.d.ts +0 -1
- package/dist/services/retrospective/retrospective-index.js +0 -1
- package/dist/services/retrospective/retrospective-show.d.ts +0 -1
- package/dist/services/retrospective/retrospective-show.js +0 -1
- package/dist/services/reviewer/model-family.js +0 -1
- package/dist/services/reviewer/reviewer-config.js +0 -1
- package/dist/services/reviewer/reviewer-service.d.ts +0 -1
- package/dist/services/reviewer/reviewer-service.js +0 -3
- package/dist/services/reviewer/selection-strategies.js +0 -1
- package/dist/services/runtime/runtime-detector.js +0 -1
- package/dist/services/runtime/runtime-service.d.ts +0 -2
- package/dist/services/runtime/vendor-adapter.d.ts +0 -7
- package/dist/services/runtime/vendors/claude-code.js +0 -1
- package/dist/services/runtime/vendors/codex.js +0 -1
- package/dist/services/runtime/vendors/copilot.js +0 -1
- package/dist/services/sc/sc-service.js +0 -6
- package/dist/services/scan/acceptance-coverage-service.js +0 -2
- package/dist/services/scan/api-diff-recorded.d.ts +0 -1
- package/dist/services/scan/api-diff-recorded.js +0 -1
- package/dist/services/scan/api-diff-service.d.ts +0 -1
- package/dist/services/scan/api-diff-service.js +0 -1
- package/dist/services/scan/api-diff-types.d.ts +0 -1
- package/dist/services/scan/api-diff-types.js +0 -1
- package/dist/services/scan/archetype-detection.d.ts +37 -0
- package/dist/services/scan/archetype-detection.js +175 -2
- package/dist/services/scan/archetype-service.js +36 -23
- package/dist/services/scan/file-size-policy.d.ts +0 -1
- package/dist/services/scan/file-size-policy.js +0 -5
- package/dist/services/scan/file-size-scan.d.ts +0 -1
- package/dist/services/scan/scan-types.d.ts +9 -0
- package/dist/services/security/safe-settings-path.js +0 -1
- package/dist/services/session/binding-store.d.ts +0 -4
- package/dist/services/session/binding-store.js +0 -7
- package/dist/services/session/caller-binding-service.d.ts +0 -6
- package/dist/services/session/caller-binding-service.js +0 -4
- package/dist/services/session/caller-id-types.d.ts +0 -3
- package/dist/services/session/caller-id-types.js +0 -2
- package/dist/services/session/getSessionDir.js +0 -1
- package/dist/services/session/index.js +0 -1
- package/dist/services/session/platform-fallbacks.d.ts +0 -3
- package/dist/services/session/platform-fallbacks.js +0 -3
- package/dist/services/session/resolve-caller-id.d.ts +0 -2
- package/dist/services/session/resolve-caller-id.js +0 -2
- package/dist/services/session/session-binding-bridge.d.ts +0 -2
- package/dist/services/session/session-binding-bridge.js +0 -15
- package/dist/services/session/session-checkpoint-service.d.ts +0 -1
- package/dist/services/session/session-checkpoint-service.js +0 -1
- package/dist/services/session/session-manager.d.ts +0 -8
- package/dist/services/session/session-manager.js +0 -19
- package/dist/services/session/session-resume-service.d.ts +0 -1
- package/dist/services/session/session-resume-service.js +0 -1
- package/dist/services/share/bundle-reader.d.ts +2 -5
- package/dist/services/share/bundle-reader.js +6 -8
- package/dist/services/share/bundle-writer.d.ts +2 -2
- package/dist/services/skill/resume-detector.js +0 -3
- package/dist/services/skill/skill-scheduler.d.ts +0 -1
- package/dist/services/skill/skill-scheduler.js +0 -1
- package/dist/services/skill/skill-search-service.d.ts +0 -2
- package/dist/services/skill/skill-search-service.js +0 -2
- package/dist/services/skillhub/release-diff.d.ts +2 -2
- package/dist/services/skillhub/release-export.d.ts +2 -2
- package/dist/services/skillhub/release-gc-blobs.d.ts +2 -2
- package/dist/services/skillhub/release-import.d.ts +2 -2
- package/dist/services/skillhub/release-import.js +2 -1
- package/dist/services/skillhub/release-retain.d.ts +2 -2
- package/dist/services/skillhub/release-retain.js +2 -1
- package/dist/services/skillhub/sqlite-store.d.ts +3 -3
- package/dist/services/skillhub/sqlite-store.js +4 -5
- package/dist/services/skills/hooks-codegate-superpowers.d.ts +0 -3
- package/dist/services/skills/hooks-codegate-superpowers.js +0 -14
- package/dist/services/skills/hooks-settings-service.d.ts +0 -2
- package/dist/services/skills/hooks-settings-service.js +0 -6
- package/dist/services/skills/presence-lease-service.d.ts +0 -1
- package/dist/services/skills/presence-lease-service.js +0 -1
- package/dist/services/skills/session-start-hook-constants.d.ts +0 -4
- package/dist/services/skills/session-start-hook-constants.js +0 -4
- package/dist/services/skills/skill-presence-service.d.ts +0 -8
- package/dist/services/skills/skill-presence-service.js +0 -13
- package/dist/services/skills/skill-statusline-model.d.ts +0 -6
- package/dist/services/skills/skill-statusline-model.js +1 -4
- package/dist/services/skills/skill-statusline-renderer.d.ts +0 -1
- package/dist/services/skills/skill-statusline-renderer.js +0 -12
- package/dist/services/skills/skill-statusline-service.js +0 -6
- package/dist/services/skills/skill-statusline-sid-suffix.d.ts +0 -2
- package/dist/services/skills/skill-statusline-sid-suffix.js +0 -2
- package/dist/services/skills/statusline-palette.d.ts +0 -2
- package/dist/services/skills/statusline-palette.js +0 -3
- package/dist/services/slice/slice-archive-service.js +0 -1
- package/dist/services/slice/slice-benchmark-service.d.ts +0 -1
- package/dist/services/slice/slice-benchmark-service.js +0 -1
- package/dist/services/slice/slice-check-service.js +0 -6
- package/dist/services/slice/slice-check-types.d.ts +0 -1
- package/dist/services/slice/slice-pick-service.d.ts +0 -1
- package/dist/services/slice/slice-pick-service.js +0 -1
- package/dist/services/slice/slice-review-state.js +0 -2
- package/dist/services/sqlite/sqlite-driver.d.ts +118 -0
- package/dist/services/sqlite/sqlite-driver.js +159 -0
- package/dist/services/standards/ide-aware-standards-service.d.ts +0 -2
- package/dist/services/standards/ide-aware-standards-service.js +0 -1
- package/dist/services/standards/loop-engineering-readiness-lint.d.ts +0 -1
- package/dist/services/standards/loop-engineering-readiness-lint.js +0 -1
- package/dist/services/standards/migrate-claude-rules-service.js +0 -3
- package/dist/services/standards/migrate-service.d.ts +0 -1
- package/dist/services/standards/migrate-service.js +0 -1
- package/dist/services/standards/missing-standards-detector.d.ts +0 -2
- package/dist/services/standards/missing-standards-detector.js +0 -3
- package/dist/services/standards/project-standards-service.d.ts +0 -1
- package/dist/services/standards/project-standards-service.js +0 -1
- package/dist/services/standards/standards-render.d.ts +0 -1
- package/dist/services/standards/standards-render.js +0 -1
- package/dist/services/standards/ui-library-dispatch-block.d.ts +0 -1
- package/dist/services/standards/ui-library-dispatch-block.js +0 -1
- package/dist/services/tech/tech-change-id-service.d.ts +0 -7
- package/dist/services/tech/tech-change-id-service.js +0 -7
- package/dist/services/tech/tech-service.js +0 -5
- package/dist/services/verdict/envelope-parsers.d.ts +0 -2
- package/dist/services/verdict/envelope-parsers.js +0 -2
- package/dist/services/verdict/envelopes.d.ts +0 -1
- package/dist/services/vm/vm-lease.js +0 -1
- package/dist/services/web/aria-node.d.ts +0 -1
- package/dist/services/web/bounded-output.d.ts +0 -1
- package/dist/services/web/bounded-output.js +0 -1
- package/dist/services/web/browser-acquire.js +0 -1
- package/dist/services/web/browser-cache-probe.js +0 -1
- package/dist/services/web/browser-session-manager.js +0 -1
- package/dist/services/web/daemon-entry.js +0 -1
- package/dist/services/web/daemon-registry.js +0 -1
- package/dist/services/web/daemon-supervisor.d.ts +4 -3
- package/dist/services/web/daemon-supervisor.js +4 -4
- package/dist/services/web/playwright-loader.js +0 -1
- package/dist/services/web/playwright-types.d.ts +0 -1
- package/dist/services/web/snapshot-pruner.js +0 -1
- package/dist/services/web/untrusted-envelope.d.ts +0 -1
- package/dist/services/web/web-artifact-paths.js +0 -1
- package/dist/services/web/web-client.d.ts +0 -1
- package/dist/services/web/web-daemon-service.js +0 -1
- package/dist/services/web/web-fallback.d.ts +0 -1
- package/dist/services/web/web-fallback.js +0 -1
- package/dist/services/web/web-install-service.js +0 -1
- package/dist/services/web/web-login-profile.js +0 -1
- package/dist/services/web/web-protocol.d.ts +0 -1
- package/dist/services/web/web-protocol.js +0 -1
- package/dist/services/web/web-status-report.js +0 -1
- package/dist/services/workflow/artifact-paths.js +0 -3
- package/dist/services/workflow/autonomous-resume-writer.js +0 -2
- package/dist/services/workflow/pipeline-verify-gate-support.d.ts +0 -5
- package/dist/services/workflow/pipeline-verify-gate-support.js +0 -11
- package/dist/services/workflow/pipeline-verify-service.d.ts +0 -2
- package/dist/services/workflow/pipeline-verify-service.js +0 -15
- package/dist/services/workflow/pipeline-verify-types.d.ts +0 -10
- package/dist/services/workflow/pipeline-verify-types.js +0 -2
- package/dist/services/workflow/plan-reader.d.ts +0 -1
- package/dist/services/workflow/plan-reader.js +0 -5
- package/dist/services/workflow/plan-refresher.js +0 -2
- package/dist/services/workflow/plan-trigger-detector.d.ts +0 -2
- package/dist/services/workflow/plan-trigger-detector.js +0 -3
- package/dist/services/workflow/workflow-autonomous-resume-helpers.js +0 -5
- package/dist/services/workflow/workflow-autonomous-service.js +0 -2
- package/dist/services/workflow/workflow-autonomous-types.d.ts +0 -2
- package/dist/services/workflow/workflow-autonomous-types.js +0 -2
- package/dist/services/workflow/workflow-graph-types.d.ts +0 -1
- package/dist/services/workflow/workflow-graph-types.js +0 -1
- package/dist/services/workflow/workflow-router-service.js +0 -4
- package/dist/services/workflow/workflow-skip-service.d.ts +0 -1
- package/dist/services/workflow/workflow-skip-service.js +0 -1
- package/dist/services/workflow/workflow-spec-lint.d.ts +0 -2
- package/dist/services/workflow/workflow-spec-lint.js +0 -2
- package/dist/services/workflow/workflow-spec-types.d.ts +0 -1
- package/dist/services/workflow/workflow-spec-types.js +0 -1
- package/dist/services/workflow/workflow-spec-yaml.d.ts +0 -2
- package/dist/services/workflow/workflow-spec-yaml.js +0 -2
- package/dist/services/workflow/workflow-spec.js +0 -1
- package/dist/services/workflow/workflow-state-store.js +0 -1
- package/dist/services/workspace/claude-settings-template.d.ts +0 -4
- package/dist/services/workspace/claude-settings-template.js +0 -4
- package/dist/services/workspace/generated-artifacts-stamp.d.ts +2 -2
- package/dist/services/workspace/generated-artifacts-stamp.js +2 -2
- package/dist/services/workspace/migrate-1-4-1-service.d.ts +0 -1
- package/dist/services/workspace/migrate-1-4-1-service.js +0 -1
- package/dist/services/workspace/migrate-service.js +0 -8
- package/dist/services/workspace/migrate-types.d.ts +0 -4
- package/dist/services/workspace/migrate-types.js +0 -1
- package/dist/services/workspace/reconcile-migrate.d.ts +0 -3
- package/dist/services/workspace/reconcile-migrate.js +0 -5
- package/dist/services/workspace/reconcile-service.d.ts +0 -3
- package/dist/services/workspace/reconcile-service.js +0 -7
- package/dist/services/workspace/reconcile-types.d.ts +0 -5
- package/dist/services/workspace/sid-naming-guard.d.ts +0 -1
- package/dist/services/workspace/sid-naming-guard.js +0 -1
- package/dist/services/workspace/templates/project-scan/index.d.ts +0 -3
- package/dist/services/workspace/templates/project-scan/index.js +0 -3
- package/dist/services/workspace/workspace-claude-settings-materializer.d.ts +0 -1
- package/dist/services/workspace/workspace-claude-settings-materializer.js +0 -4
- package/dist/services/workspace/workspace-service.d.ts +0 -7
- package/dist/services/workspace/workspace-service.js +1 -17
- package/dist/services/worktree/playwright-profile.js +0 -1
- package/dist/services/worktree/worktree-lease-types.d.ts +0 -1
- package/dist/services/worktree/worktree-lease-types.js +0 -1
- package/dist/services/worktree/worktree-lease.d.ts +0 -2
- package/dist/services/worktree/worktree-lease.js +0 -2
- package/dist/shared/format-md-compact.d.ts +0 -2
- package/dist/shared/format-md-compact.js +0 -2
- package/dist/shared/incrementing-number.d.ts +0 -1
- package/dist/shared/incrementing-number.js +0 -1
- package/dist/shared/path-utils.d.ts +0 -1
- package/dist/shared/path-utils.js +0 -1
- package/dist/shared/runtime-root.d.ts +0 -1
- package/dist/shared/runtime-root.js +0 -1
- package/dist/shared/stale-policy.d.ts +0 -1
- package/dist/shared/stale-policy.js +0 -1
- package/package.json +12 -10
- package/scripts/canonical-store-link.mjs +296 -0
- package/scripts/canonical-store-prune.mjs +131 -0
- package/scripts/canonical-store.mjs +298 -0
- package/scripts/install-skills.mjs +175 -560
- package/skills/bee/peaks-qa/references/reading-handoff-frontmatter.md +3 -1
- package/skills/bee/peaks-rd/references/parallel-review-fanout.md +1 -1
- package/skills/bee/peaks-rd/references/rd-fanout-contracts.md +3 -2
- package/skills/bee/peaks-rd/references/writing-handoff-frontmatter.md +29 -7
- package/skills/peaks-audit/SKILL.md +3 -3
- package/skills/peaks-code/references/frontend-only-mode.md +2 -2
- package/skills/peaks-code/references/startup-sequence.md +0 -4
- package/dist/cli/commands/upgrade-commands.d.ts +0 -25
- package/dist/cli/commands/upgrade-commands.js +0 -154
- package/dist/services/codegraph/codegraph-include-reconciler.d.ts +0 -10
- package/dist/services/codegraph/codegraph-include-reconciler.js +0 -160
- package/dist/services/upgrade/1x-detector-service.d.ts +0 -7
- package/dist/services/upgrade/1x-detector-service.js +0 -96
- package/dist/services/upgrade/gitignore-migrate-service.d.ts +0 -56
- package/dist/services/upgrade/gitignore-migrate-service.js +0 -170
- package/dist/services/upgrade/upgrade-service.d.ts +0 -81
- package/dist/services/upgrade/upgrade-service.js +0 -428
- package/skills/peaks-code/references/step-0-55-1x-detection.md +0 -83
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
* `decideIntegrationMode`) and the public `scanArchetype` entry; the
|
|
11
11
|
* `frontendOnly` / `frontendOnlyReason` output contract is unchanged.
|
|
12
12
|
*/
|
|
13
|
-
import { stat } from 'node:fs/promises';
|
|
14
|
-
import { join } from 'node:path';
|
|
13
|
+
import { readdir, stat } from 'node:fs/promises';
|
|
14
|
+
import { join, relative as relativePath } from 'node:path';
|
|
15
15
|
import { isDirectory, pathExists, readText } from 'peaks-loop-shared/fs';
|
|
16
16
|
export const BACKEND_DEP_NAMES = [
|
|
17
17
|
'express',
|
|
@@ -85,6 +85,179 @@ export async function readPackageJsonDeps(projectRoot) {
|
|
|
85
85
|
export async function detectBackendFrameworks(deps) {
|
|
86
86
|
return BACKEND_DEP_NAMES.filter((name) => name !== 'next' && Object.prototype.hasOwnProperty.call(deps, name));
|
|
87
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Manifests that only a service writes. Language-diverse on purpose: every
|
|
90
|
+
* other probe in this file is Node-specific, and a repository whose backend is
|
|
91
|
+
* Go / Java / Kotlin / Python / Ruby / PHP / Rust has no Node manifest at all,
|
|
92
|
+
* so a Node-only evidence set reported it as `frontendOnly`.
|
|
93
|
+
*/
|
|
94
|
+
export const SERVICE_ONLY_MANIFEST_FILES = [
|
|
95
|
+
'go.mod',
|
|
96
|
+
'pom.xml',
|
|
97
|
+
'build.gradle',
|
|
98
|
+
'build.gradle.kts',
|
|
99
|
+
'settings.gradle',
|
|
100
|
+
'settings.gradle.kts',
|
|
101
|
+
'manage.py',
|
|
102
|
+
'config.ru',
|
|
103
|
+
'artisan'
|
|
104
|
+
];
|
|
105
|
+
/**
|
|
106
|
+
* Manifests a service MAY write and a library or CLI also writes. Counted as
|
|
107
|
+
* backend evidence only when the file itself names a web framework — the
|
|
108
|
+
* alternative is a boolean that fires on any Python or Rust directory, which
|
|
109
|
+
* trades one wrong answer for another.
|
|
110
|
+
*/
|
|
111
|
+
export const CONDITIONAL_SERVICE_MANIFESTS = [
|
|
112
|
+
['requirements.txt', /\b(fastapi|flask|django|uvicorn|gunicorn|aiohttp|tornado|starlette)\b/i],
|
|
113
|
+
['pyproject.toml', /\b(fastapi|flask|django|uvicorn|gunicorn|aiohttp|tornado|starlette)\b/i],
|
|
114
|
+
['Cargo.toml', /\b(actix-web|axum|rocket|warp|tonic|hyper|poem)\b/i],
|
|
115
|
+
['Gemfile', /\b(rails|sinatra|hanami|puma|rack)\b/i],
|
|
116
|
+
['composer.json', /\b(laravel|symfony|slim)\b/i]
|
|
117
|
+
];
|
|
118
|
+
/** Directories never worth descending into when looking for a service manifest. */
|
|
119
|
+
const MANIFEST_WALK_SKIP_DIRS = new Set([
|
|
120
|
+
'node_modules',
|
|
121
|
+
'dist',
|
|
122
|
+
'build',
|
|
123
|
+
'out',
|
|
124
|
+
'coverage',
|
|
125
|
+
'target',
|
|
126
|
+
'vendor',
|
|
127
|
+
'__pycache__',
|
|
128
|
+
'.git'
|
|
129
|
+
]);
|
|
130
|
+
/**
|
|
131
|
+
* How deep from the project root a service is allowed to sit before its
|
|
132
|
+
* manifest stops being counted. Two levels covers the layouts that were
|
|
133
|
+
* invisible (`apps/gateway/package.json`, `services/checkout/requirements.txt`,
|
|
134
|
+
* `web/` + `cmd/server`), and a deeper walk would read generated trees.
|
|
135
|
+
*/
|
|
136
|
+
export const SERVICE_MANIFEST_MAX_DEPTH = 2;
|
|
137
|
+
/**
|
|
138
|
+
* How many leading bytes of a source file are read to find a directive. `'use
|
|
139
|
+
* server'` must be the first statement, so the head is the whole question, and
|
|
140
|
+
* reading a bounded head keeps this probe from pulling multi-megabyte files into
|
|
141
|
+
* memory.
|
|
142
|
+
*/
|
|
143
|
+
const DIRECTIVE_HEAD_BYTES = 400;
|
|
144
|
+
async function readDirSafe(dir) {
|
|
145
|
+
try {
|
|
146
|
+
return await readdir(dir, { withFileTypes: true });
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
// An unreadable directory is not evidence of a backend, and not of its
|
|
150
|
+
// absence either; the root manifest already carries the project.
|
|
151
|
+
return [];
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
function relativeFromRoot(projectRoot, dir) {
|
|
155
|
+
return relativePath(projectRoot, dir).replace(/\\/g, '/');
|
|
156
|
+
}
|
|
157
|
+
function labeled(relative, file) {
|
|
158
|
+
return relative === '' ? file : `${relative}/${file}`;
|
|
159
|
+
}
|
|
160
|
+
function descendable(entries, dir, depth) {
|
|
161
|
+
if (depth >= SERVICE_MANIFEST_MAX_DEPTH)
|
|
162
|
+
return [];
|
|
163
|
+
return entries
|
|
164
|
+
.filter((entry) => entry.isDirectory() &&
|
|
165
|
+
!MANIFEST_WALK_SKIP_DIRS.has(entry.name) &&
|
|
166
|
+
!entry.name.startsWith('.'))
|
|
167
|
+
.map((entry) => ({ dir: join(dir, entry.name), depth: depth + 1 }));
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Service manifests sitting in ONE directory: the unmistakable ones by name,
|
|
171
|
+
* and the shared ones only when the file names a web framework.
|
|
172
|
+
*/
|
|
173
|
+
async function manifestEvidenceInDir(dir, relative, names) {
|
|
174
|
+
const found = SERVICE_ONLY_MANIFEST_FILES.filter((manifest) => names.has(manifest)).map((manifest) => labeled(relative, manifest));
|
|
175
|
+
for (const [manifest, pattern] of CONDITIONAL_SERVICE_MANIFESTS) {
|
|
176
|
+
if (!names.has(manifest))
|
|
177
|
+
continue;
|
|
178
|
+
const text = await readText(join(dir, manifest)).catch(() => '');
|
|
179
|
+
const matched = pattern.exec(text);
|
|
180
|
+
if (matched !== null) {
|
|
181
|
+
found.push(`${labeled(relative, manifest)} (${matched[0].toLowerCase()})`);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return found;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* A nested `package.json` declares its own dependencies, and a workspace root
|
|
188
|
+
* does not list them. Reading only the root is how an express service under
|
|
189
|
+
* `apps/` became `frontendOnly`.
|
|
190
|
+
*/
|
|
191
|
+
async function workspacePackageEvidence(dir, relative, names, backendDepNames) {
|
|
192
|
+
if (relative === '' || !names.has('package.json'))
|
|
193
|
+
return [];
|
|
194
|
+
const { deps } = await readPackageJsonDeps(dir);
|
|
195
|
+
return backendDepNames
|
|
196
|
+
.filter((dep) => dep !== 'next' && Object.prototype.hasOwnProperty.call(deps, dep))
|
|
197
|
+
.map((dep) => `${relative}: ${dep}`);
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Backend evidence that lives OUTSIDE the root manifest: a workspace package's
|
|
201
|
+
* own `package.json`, and any non-Node service manifest.
|
|
202
|
+
*
|
|
203
|
+
* Returns `dir: evidence` strings (`apps/gateway: express`, `go.mod`,
|
|
204
|
+
* `services/checkout: requirements.txt`) rather than a boolean, because the
|
|
205
|
+
* whole defect this probe closes was a verdict that could not say what it saw.
|
|
206
|
+
*/
|
|
207
|
+
export async function detectNestedServiceEvidence(projectRoot, backendDepNames = BACKEND_DEP_NAMES) {
|
|
208
|
+
const evidence = [];
|
|
209
|
+
const queue = [{ dir: projectRoot, depth: 0 }];
|
|
210
|
+
while (queue.length > 0) {
|
|
211
|
+
const current = queue.shift();
|
|
212
|
+
if (current === undefined)
|
|
213
|
+
break;
|
|
214
|
+
const entries = await readDirSafe(current.dir);
|
|
215
|
+
const names = new Set(entries.map((entry) => entry.name));
|
|
216
|
+
const relative = relativeFromRoot(projectRoot, current.dir);
|
|
217
|
+
evidence.push(...(await manifestEvidenceInDir(current.dir, relative, names)));
|
|
218
|
+
evidence.push(...(await workspacePackageEvidence(current.dir, relative, names, backendDepNames)));
|
|
219
|
+
queue.push(...descendable(entries, current.dir, current.depth));
|
|
220
|
+
}
|
|
221
|
+
return evidence.sort();
|
|
222
|
+
}
|
|
223
|
+
/** Does this directory tree contain a file opening with `'use server'`? */
|
|
224
|
+
async function hasUseServerFile(rootDir) {
|
|
225
|
+
const queue = [{ dir: rootDir, depth: 0 }];
|
|
226
|
+
while (queue.length > 0) {
|
|
227
|
+
const current = queue.shift();
|
|
228
|
+
if (current === undefined)
|
|
229
|
+
break;
|
|
230
|
+
const entries = await readDirSafe(current.dir);
|
|
231
|
+
for (const entry of entries) {
|
|
232
|
+
const full = join(current.dir, entry.name);
|
|
233
|
+
if (entry.isDirectory())
|
|
234
|
+
continue;
|
|
235
|
+
if (!/\.(ts|tsx|js|jsx)$/.test(entry.name))
|
|
236
|
+
continue;
|
|
237
|
+
const text = await readText(full).catch(() => '');
|
|
238
|
+
if (/['"]use server['"]/.test(text.slice(0, DIRECTIVE_HEAD_BYTES)))
|
|
239
|
+
return true;
|
|
240
|
+
}
|
|
241
|
+
queue.push(...descendable(entries, current.dir, current.depth));
|
|
242
|
+
}
|
|
243
|
+
return false;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Next.js server actions: `'use server'` in a file under `app/`. Route handlers
|
|
247
|
+
* under `pages/api` / `app/api` were the only Next backend the detector knew
|
|
248
|
+
* about, so a Next app that mutates data through actions — the documented
|
|
249
|
+
* Next.js way — was reported as having no backend at all.
|
|
250
|
+
*/
|
|
251
|
+
export async function detectNextServerActions(projectRoot) {
|
|
252
|
+
for (const root of ['app', 'src/app']) {
|
|
253
|
+
const rootDir = join(projectRoot, root);
|
|
254
|
+
if (await isDirectory(rootDir)) {
|
|
255
|
+
if (await hasUseServerFile(rootDir))
|
|
256
|
+
return true;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
return false;
|
|
260
|
+
}
|
|
88
261
|
export async function detectNextApiRoutes(projectRoot, hasNext) {
|
|
89
262
|
if (!hasNext) {
|
|
90
263
|
return false;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { readdir } from 'node:fs/promises';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { isDirectory } from 'peaks-loop-shared/fs';
|
|
4
|
-
import { detectBackendDirs, detectBackendFrameworks, detectMonorepoConfigs, detectNextApiRoutes, detectSwagger, GREENFIELD_MAX_SRC_FILES, GREENFIELD_MAX_LOCKFILE_DAYS, HIGH_CONFIDENCE_SIGNAL_COUNT, LEGACY_MIN_SRC_FILES, lockfileAgeDays, LOCKFILE_STALE_DAYS, readPackageJsonDeps } from './archetype-detection.js';
|
|
4
|
+
import { detectBackendDirs, detectBackendFrameworks, detectMonorepoConfigs, detectNestedServiceEvidence, detectNextApiRoutes, detectNextServerActions, detectSwagger, GREENFIELD_MAX_SRC_FILES, GREENFIELD_MAX_LOCKFILE_DAYS, HIGH_CONFIDENCE_SIGNAL_COUNT, LEGACY_MIN_SRC_FILES, lockfileAgeDays, LOCKFILE_STALE_DAYS, readPackageJsonDeps } from './archetype-detection.js';
|
|
5
5
|
async function countSrcFiles(projectRoot, max = 500) {
|
|
6
6
|
const srcDir = join(projectRoot, 'src');
|
|
7
7
|
if (!(await isDirectory(srcDir))) {
|
|
@@ -30,11 +30,26 @@ async function countSrcFiles(projectRoot, max = 500) {
|
|
|
30
30
|
}
|
|
31
31
|
return count;
|
|
32
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* THE backend predicate — one answer, three callers.
|
|
35
|
+
*
|
|
36
|
+
* `decideArchetype`, `decideFrontendOnly` and `decideIntegrationMode` each
|
|
37
|
+
* spelled the same triple out inline, so a signal added for one of them left
|
|
38
|
+
* the other two reading a different project. The report then contradicted
|
|
39
|
+
* itself, which is the failure `54ba0cc4` ("one answer for where frontendOnly
|
|
40
|
+
* lives") was meant to end but did not. Anything that asks "does this repo
|
|
41
|
+
* have a backend?" asks here.
|
|
42
|
+
*/
|
|
43
|
+
function hasBackendEvidence(detected) {
|
|
44
|
+
return (detected.hasBackendFramework ||
|
|
45
|
+
detected.hasNextApiRoutes ||
|
|
46
|
+
detected.hasNextServerActions ||
|
|
47
|
+
detected.backendDirsPresent.length > 0 ||
|
|
48
|
+
detected.nestedServiceEvidence.length > 0);
|
|
49
|
+
}
|
|
33
50
|
function decideArchetype(detected) {
|
|
34
51
|
const signals = [];
|
|
35
|
-
const hasBackend = detected
|
|
36
|
-
detected.hasNextApiRoutes ||
|
|
37
|
-
detected.backendDirsPresent.length > 0;
|
|
52
|
+
const hasBackend = hasBackendEvidence(detected);
|
|
38
53
|
signals.push({
|
|
39
54
|
name: 'backend-presence',
|
|
40
55
|
matched: hasBackend,
|
|
@@ -44,8 +59,12 @@ function decideArchetype(detected) {
|
|
|
44
59
|
? `framework: ${detected.backendFrameworks.join(', ')}`
|
|
45
60
|
: null,
|
|
46
61
|
detected.hasNextApiRoutes ? 'next-api-routes' : null,
|
|
62
|
+
detected.hasNextServerActions ? 'next-server-actions' : null,
|
|
47
63
|
detected.backendDirsPresent.length > 0
|
|
48
64
|
? `dirs: ${detected.backendDirsPresent.join(', ')}`
|
|
65
|
+
: null,
|
|
66
|
+
detected.nestedServiceEvidence.length > 0
|
|
67
|
+
? `nested: ${detected.nestedServiceEvidence.join(', ')}`
|
|
49
68
|
: null
|
|
50
69
|
]
|
|
51
70
|
.filter(Boolean)
|
|
@@ -79,7 +98,6 @@ function decideArchetype(detected) {
|
|
|
79
98
|
}
|
|
80
99
|
// Monorepo detection runs BEFORE the backend check: a monorepo with
|
|
81
100
|
// a packages/server dir is a fullstack-monorepo, NOT legacy-fullstack.
|
|
82
|
-
// Slice 2026-07-15 ice-cola hot-fix: previously a monorepo with a
|
|
83
101
|
// backend sub-package fell through to `legacy-fullstack` because
|
|
84
102
|
// `hasBackend` includes `backendDirsPresent.length > 0`, which the
|
|
85
103
|
// L199 guard above couldn't handle. We now treat `hasMonorepoConfig`
|
|
@@ -131,33 +149,24 @@ function decideFrontendOnly(report) {
|
|
|
131
149
|
if (report.archetype === 'legacy-frontend' || report.archetype === 'frontend-monorepo') {
|
|
132
150
|
return { frontendOnly: true, reason: `archetype=${report.archetype}` };
|
|
133
151
|
}
|
|
134
|
-
const noBackend = !report.detected
|
|
135
|
-
!report.detected.hasNextApiRoutes &&
|
|
136
|
-
report.detected.backendDirsPresent.length === 0;
|
|
152
|
+
const noBackend = !hasBackendEvidence(report.detected);
|
|
137
153
|
if (noBackend && !report.detected.hasSwaggerOrProto) {
|
|
138
154
|
return { frontendOnly: true, reason: 'no-backend-no-swagger' };
|
|
139
155
|
}
|
|
140
|
-
if (
|
|
141
|
-
|
|
142
|
-
report.detected.backendDirsPresent.length > 0) {
|
|
143
|
-
return { frontendOnly: false, reason: 'backend-detected' };
|
|
156
|
+
if (noBackend) {
|
|
157
|
+
return { frontendOnly: false, reason: 'swagger-or-proto-present' };
|
|
144
158
|
}
|
|
145
|
-
return { frontendOnly: false, reason: '
|
|
159
|
+
return { frontendOnly: false, reason: 'backend-detected' };
|
|
146
160
|
}
|
|
147
161
|
/**
|
|
148
162
|
* Three frontend integration scenarios, from the signals `detected`
|
|
149
|
-
* already holds. Backend presence
|
|
150
|
-
*
|
|
151
|
-
*
|
|
152
|
-
*
|
|
153
|
-
* project with `pages/api` is `legacy-fullstack` there and must not be
|
|
154
|
-
* `prd-only` here — one report cannot contradict itself.
|
|
163
|
+
* already holds. Backend presence is the SAME predicate `decideArchetype`
|
|
164
|
+
* uses (`hasBackendEvidence`), because one report cannot be
|
|
165
|
+
* `legacy-fullstack` and `prd-only` at once — a Next project with server
|
|
166
|
+
* actions, or an express service under `apps/`, is a backend for both.
|
|
155
167
|
*/
|
|
156
168
|
function decideIntegrationMode(report) {
|
|
157
|
-
|
|
158
|
-
report.detected.hasNextApiRoutes ||
|
|
159
|
-
report.detected.backendDirsPresent.length > 0;
|
|
160
|
-
if (hasBackend) {
|
|
169
|
+
if (hasBackendEvidence(report.detected)) {
|
|
161
170
|
return { integrationMode: 'full-stack', reason: 'backend-detected' };
|
|
162
171
|
}
|
|
163
172
|
if (report.detected.hasSwaggerOrProto) {
|
|
@@ -172,6 +181,8 @@ export async function scanArchetype(options) {
|
|
|
172
181
|
const hasNext = Object.prototype.hasOwnProperty.call(deps, 'next');
|
|
173
182
|
const hasNextApiRoutes = await detectNextApiRoutes(projectRoot, hasNext);
|
|
174
183
|
const backendDirsPresent = await detectBackendDirs(projectRoot);
|
|
184
|
+
const nestedServiceEvidence = await detectNestedServiceEvidence(projectRoot);
|
|
185
|
+
const hasNextServerActions = hasNext ? await detectNextServerActions(projectRoot) : false;
|
|
175
186
|
const swaggerPaths = await detectSwagger(projectRoot);
|
|
176
187
|
const monorepoConfigs = await detectMonorepoConfigs(projectRoot);
|
|
177
188
|
const srcFileCount = await countSrcFiles(projectRoot);
|
|
@@ -180,6 +191,8 @@ export async function scanArchetype(options) {
|
|
|
180
191
|
hasPackageJson,
|
|
181
192
|
hasBackendFramework: backendFrameworks.length > 0,
|
|
182
193
|
backendFrameworks,
|
|
194
|
+
nestedServiceEvidence,
|
|
195
|
+
hasNextServerActions,
|
|
183
196
|
hasSwaggerOrProto: swaggerPaths.length > 0,
|
|
184
197
|
swaggerPaths,
|
|
185
198
|
hasMonorepoConfig: monorepoConfigs.length > 0,
|
|
@@ -26,7 +26,6 @@ export declare function inFileSizeScope(file: string): boolean;
|
|
|
26
26
|
* of a scope extension. Both consumers read this instead of each carrying its own
|
|
27
27
|
* half of the rule.
|
|
28
28
|
*
|
|
29
|
-
* WHY IT MATTERS (F3 of the repair cycle, rid `2026-09-30-cap-unify-01`). The
|
|
30
29
|
* census enumerated its scope with `git ls-files <dirs>` plus the extension test,
|
|
31
30
|
* while the scan measured EVERY changed non-exempt file at `fileSizeCapFor`'s
|
|
32
31
|
* else-branch 300 — including paths in neither list. The two disagreed about the
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
// `scripts/lint/file-size-census.ts` (the whole-tree count the husky gate
|
|
8
8
|
// ratchets). Neither may restate a number.
|
|
9
9
|
//
|
|
10
|
-
// WHY ONE MODULE (rid 2026-09-30-cap-unify-01). The policy was written twice,
|
|
11
10
|
// in two units: `max-lines: [error, {max: 400, skipBlankLines, skipComments}]`
|
|
12
11
|
// in `config/eslint/.peaks-rules.cjs` and a raw `DEFAULT_FILE_SIZE_THRESHOLD`
|
|
13
12
|
// of 800 here. Two spellings of one decision drift by construction, and the only
|
|
@@ -30,7 +29,6 @@
|
|
|
30
29
|
// A row that silently excluded them would not equal its own measurement — the
|
|
31
30
|
// same class of hole as lint-gate §4b (a surface asserted but never counted).
|
|
32
31
|
//
|
|
33
|
-
// NUMBERS THIS MODULE DOES NOT OWN, DECIDED 2026-09-30 (F6 of the repair cycle).
|
|
34
32
|
// A line-count constant elsewhere in the repo is a second copy of THIS policy only
|
|
35
33
|
// if it decides the same question — "may this file be committed at this size?".
|
|
36
34
|
// Three that do not, recorded here so the next reader does not re-litigate them:
|
|
@@ -43,7 +41,6 @@
|
|
|
43
41
|
// this cap and is NOT folded into it — folding it in would silently change what
|
|
44
42
|
// the legacy report says. Its name does not match the census's `CAP_NAME`
|
|
45
43
|
// second-copy rule on purpose; see lint-gate §4b row 7.
|
|
46
|
-
// - `src/services/skills/lint-reference-shape.ts` 800: the shape of an
|
|
47
44
|
// example lint report, not a cap.
|
|
48
45
|
/** Raw-line cap for `src/`, `scripts/` and `packages/` — including a `tests` directory inside a package. */
|
|
49
46
|
export const FILE_SIZE_CAP_DEFAULT = 300;
|
|
@@ -84,7 +81,6 @@ export function inFileSizeScope(file) {
|
|
|
84
81
|
* of a scope extension. Both consumers read this instead of each carrying its own
|
|
85
82
|
* half of the rule.
|
|
86
83
|
*
|
|
87
|
-
* WHY IT MATTERS (F3 of the repair cycle, rid `2026-09-30-cap-unify-01`). The
|
|
88
84
|
* census enumerated its scope with `git ls-files <dirs>` plus the extension test,
|
|
89
85
|
* while the scan measured EVERY changed non-exempt file at `fileSizeCapFor`'s
|
|
90
86
|
* else-branch 300 — including paths in neither list. The two disagreed about the
|
|
@@ -128,7 +124,6 @@ export function fileSizeScopeBucket(file) {
|
|
|
128
124
|
}
|
|
129
125
|
// ---------------------------------------------------------------------------
|
|
130
126
|
// THE SECOND SCOPE — `.husky/`, the directory the ratchet itself lives in
|
|
131
|
-
// (backlog §2.32, rid 2026-10-02-hooks-size-rows)
|
|
132
127
|
// ---------------------------------------------------------------------------
|
|
133
128
|
//
|
|
134
129
|
// WHAT WAS INVISIBLE. `FILE_SIZE_SCOPE_DIRS` names four directories, and `.husky`
|
|
@@ -49,7 +49,6 @@ export type FileSizeScanResult = {
|
|
|
49
49
|
* four scope directories, or with an extension it does not count. Reported
|
|
50
50
|
* rather than silently skipped, for the same reason `exemptFiles` is.
|
|
51
51
|
*
|
|
52
|
-
* WHY THEY ARE NOT VIOLATIONS (F3, rid 2026-09-30-cap-unify-01). Every file
|
|
53
52
|
* the scan checked used to be measured against `fileSizeCapFor`, whose
|
|
54
53
|
* else-branch is 300 — a number that is only defined for `src`/`packages`/
|
|
55
54
|
* `scripts`. So an out-of-scope path (a `.md`, a file under `.husky/`) could
|
|
@@ -22,6 +22,15 @@ export type ArchetypeReport = {
|
|
|
22
22
|
hasPackageJson: boolean;
|
|
23
23
|
hasBackendFramework: boolean;
|
|
24
24
|
backendFrameworks: string[];
|
|
25
|
+
/** Backend evidence the ROOT manifest cannot see: a workspace package's own
|
|
26
|
+
* `package.json` (`apps/gateway: express`) and any non-Node service
|
|
27
|
+
* manifest (`go.mod`, `services/checkout/requirements.txt (fastapi)`).
|
|
28
|
+
* Every probe that filled `detected` before this field read Node's
|
|
29
|
+
* manifest only, so a Go or Java service reported as `frontendOnly`. */
|
|
30
|
+
nestedServiceEvidence: string[];
|
|
31
|
+
/** Next.js server actions (`'use server'` under `app/`). Route handlers
|
|
32
|
+
* (`pages/api` / `app/api`) were the only Next backend recognised. */
|
|
33
|
+
hasNextServerActions: boolean;
|
|
25
34
|
hasSwaggerOrProto: boolean;
|
|
26
35
|
swaggerPaths: string[];
|
|
27
36
|
hasMonorepoConfig: boolean;
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
*
|
|
7
7
|
* v2.16.0 schema is a multi-instance registry with conflict-detection
|
|
8
8
|
* sentinel fields (ownerHint, pid, lastHeartbeat, instances Map).
|
|
9
|
-
* See PRD `001-2026-06-29-v2-16-0-change-id-axis-removal` AC-8.
|
|
10
9
|
*
|
|
11
10
|
* The store keeps a one-shot migration from the legacy schema:
|
|
12
11
|
* legacy single-session binding → v2.16.0 instances Map with one entry,
|
|
@@ -80,13 +79,11 @@ export declare function registerInstance(projectRoot: string, opts: {
|
|
|
80
79
|
};
|
|
81
80
|
/**
|
|
82
81
|
* Touch the `lastHeartbeat` for a specific instance. Used by the
|
|
83
|
-
* Doctor periodic loop (AC-10) and by the Skill presence `startup`
|
|
84
82
|
* gate.
|
|
85
83
|
*/
|
|
86
84
|
export declare function heartbeat(projectRoot: string, sid: string): Binding | null;
|
|
87
85
|
/**
|
|
88
86
|
* Drop an instance entry from the binding. Used when the last peaks-*
|
|
89
|
-
* skill on a Claude instance exits (AC-7: all skills inactive →
|
|
90
87
|
* no record). Returns the updated binding (or null if no instances
|
|
91
88
|
* remain and the caller wants to delete the binding entirely).
|
|
92
89
|
*/
|
|
@@ -94,7 +91,6 @@ export declare function dropInstance(projectRoot: string, sid: string): Binding
|
|
|
94
91
|
/**
|
|
95
92
|
* Drop stale instances (lastHeartbeat older than `ttlMs`). Returns
|
|
96
93
|
* the list of dropped sid values so the caller can log them. Used
|
|
97
|
-
* by AC-10 Doctor.
|
|
98
94
|
*/
|
|
99
95
|
export declare function dropStale(projectRoot: string, ttlMs: number): {
|
|
100
96
|
binding: Binding | null;
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
*
|
|
7
7
|
* v2.16.0 schema is a multi-instance registry with conflict-detection
|
|
8
8
|
* sentinel fields (ownerHint, pid, lastHeartbeat, instances Map).
|
|
9
|
-
* See PRD `001-2026-06-29-v2-16-0-change-id-axis-removal` AC-8.
|
|
10
9
|
*
|
|
11
10
|
* The store keeps a one-shot migration from the legacy schema:
|
|
12
11
|
* legacy single-session binding → v2.16.0 instances Map with one entry,
|
|
@@ -60,7 +59,6 @@ function getCurrentOuterSessionId() {
|
|
|
60
59
|
* both env vars unset returns the literal `'unknown'` sentinel
|
|
61
60
|
* for every process. Suffixing with `process.pid` makes the
|
|
62
61
|
* callerId process-unique without changing the surface (no new
|
|
63
|
-
* env var, no new schema field), preserving the AC-5 hard rule
|
|
64
62
|
* that "one Claude instance keeps one sid across multiple
|
|
65
63
|
* peaks-* skill activations" — a single process keeps a constant
|
|
66
64
|
* pid across the whole run, including `/compact`.
|
|
@@ -144,7 +142,6 @@ export function readBinding(projectRoot) {
|
|
|
144
142
|
typeof legacyShape.createdAt === 'string' &&
|
|
145
143
|
typeof legacyShape.projectRoot === 'string') {
|
|
146
144
|
// Auto-migrate marks lastHeartbeat as `now` (not `createdAt`) so the
|
|
147
|
-
// migrated instance does NOT immediately appear stale to AC-10.
|
|
148
145
|
// Legacy bindings date from the pre-v2.16.0 single-session era;
|
|
149
146
|
// their createdAt predates the binding sentinel concept entirely.
|
|
150
147
|
const migratedAt = nowIso();
|
|
@@ -226,7 +223,6 @@ export function registerInstance(projectRoot, opts) {
|
|
|
226
223
|
}
|
|
227
224
|
// Auto-resume: caller already has an instance in this scope —
|
|
228
225
|
// append roles and refresh heartbeat instead of creating a new
|
|
229
|
-
// sid. This is the AC-5 Claude-instance-level hard rule: a
|
|
230
226
|
// single Claude caller keeps one sid across multiple peaks-*
|
|
231
227
|
// skill activations.
|
|
232
228
|
const existingSidForCaller = Object.entries(existing.instances).find(([, inst]) => inst.callerId === callerId)?.[0];
|
|
@@ -283,7 +279,6 @@ export function registerInstance(projectRoot, opts) {
|
|
|
283
279
|
}
|
|
284
280
|
/**
|
|
285
281
|
* Touch the `lastHeartbeat` for a specific instance. Used by the
|
|
286
|
-
* Doctor periodic loop (AC-10) and by the Skill presence `startup`
|
|
287
282
|
* gate.
|
|
288
283
|
*/
|
|
289
284
|
export function heartbeat(projectRoot, sid) {
|
|
@@ -307,7 +302,6 @@ export function heartbeat(projectRoot, sid) {
|
|
|
307
302
|
}
|
|
308
303
|
/**
|
|
309
304
|
* Drop an instance entry from the binding. Used when the last peaks-*
|
|
310
|
-
* skill on a Claude instance exits (AC-7: all skills inactive →
|
|
311
305
|
* no record). Returns the updated binding (or null if no instances
|
|
312
306
|
* remain and the caller wants to delete the binding entirely).
|
|
313
307
|
*/
|
|
@@ -328,7 +322,6 @@ export function dropInstance(projectRoot, sid) {
|
|
|
328
322
|
/**
|
|
329
323
|
* Drop stale instances (lastHeartbeat older than `ttlMs`). Returns
|
|
330
324
|
* the list of dropped sid values so the caller can log them. Used
|
|
331
|
-
* by AC-10 Doctor.
|
|
332
325
|
*/
|
|
333
326
|
export function dropStale(projectRoot, ttlMs) {
|
|
334
327
|
const existing = readBinding(projectRoot);
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Caller-Binding Service (slice 020 — caller-keyed session binding).
|
|
3
2
|
*
|
|
4
3
|
* Each caller has its own on-disk binding file at
|
|
5
4
|
* `.peaks/_runtime/callers/<callerId>.json`. This service is the
|
|
@@ -33,7 +32,6 @@ export declare function getActiveSkillFileForCaller(projectRoot: string, peakSes
|
|
|
33
32
|
* Resolve a stable, deterministic callerId for a legacy single-file
|
|
34
33
|
* binding (M2). The hash input priority is:
|
|
35
34
|
*
|
|
36
|
-
* 1. `outerSessionId` (slice 018 stamped this on the per-peak
|
|
37
35
|
* session.json for sessions created after the slice shipped).
|
|
38
36
|
* 2. `claudeSessionId` (legacy field name on pre-018 presence
|
|
39
37
|
* files; honour the read side so v1.2.x data does not lose its
|
|
@@ -59,11 +57,9 @@ export declare function getCallerBinding(projectRoot: string, callerId: string):
|
|
|
59
57
|
*
|
|
60
58
|
* `getCallerBinding` answers a SHAPE question: "is there a well-formed
|
|
61
59
|
* binding file for this caller?". Session resolution needs a second
|
|
62
|
-
* answer: "is that binding still USABLE?". Slice 2026-09-12
|
|
63
60
|
* (rid=caller-binding-staleness) found it is not when the bound session's
|
|
64
61
|
* directory is gone — the binding was still trusted, so a command
|
|
65
62
|
* resolved the dead session id and `mkdir`'d a fresh tree under
|
|
66
|
-
* `.peaks/_runtime/<gone-sid>/...` for a session that no longer exists.
|
|
67
63
|
*
|
|
68
64
|
* Returns a tagged result rather than `null` so the fall-through is
|
|
69
65
|
* observable to the caller instead of silent:
|
|
@@ -88,7 +84,6 @@ export declare function resolveCallerBinding(projectRoot: string, callerId: stri
|
|
|
88
84
|
* must be a valid session id, projectRoot is canonicalized). Idempotent:
|
|
89
85
|
* re-writing the same callerId overwrites the file.
|
|
90
86
|
*
|
|
91
|
-
* Slice 2026-08-06-session-cacde8-A.5b: writes via `atomicWriteJson`
|
|
92
87
|
* (temp-file-then-rename) so a power-loss mid-write cannot leave the
|
|
93
88
|
* caller-binding file in a half-truncated state. `atomicWriteJson`
|
|
94
89
|
* owns its own `mkdirSync(dir, { recursive: true })`, so the inline
|
|
@@ -99,7 +94,6 @@ export declare function setCallerBinding(projectRoot: string, callerId: string,
|
|
|
99
94
|
/**
|
|
100
95
|
* Repoint an EXISTING per-caller binding at a new peak session id.
|
|
101
96
|
*
|
|
102
|
-
* Slice 2026-09-10 (rid=rebind-must-update-caller-binding): an explicit
|
|
103
97
|
* `peaks workspace init --session-id <X> --allow-session-rebind` rewrites
|
|
104
98
|
* the project-global `.peaks/_runtime/session.json`. Without this call the
|
|
105
99
|
* per-caller file keeps shadowing it for `getSessionIdCanonical`, so the
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Caller-Binding Service (slice 020 — caller-keyed session binding).
|
|
3
2
|
*
|
|
4
3
|
* Each caller has its own on-disk binding file at
|
|
5
4
|
* `.peaks/_runtime/callers/<callerId>.json`. This service is the
|
|
@@ -50,7 +49,6 @@ export function getActiveSkillFileForCaller(projectRoot, peakSessionId, callerId
|
|
|
50
49
|
* Resolve a stable, deterministic callerId for a legacy single-file
|
|
51
50
|
* binding (M2). The hash input priority is:
|
|
52
51
|
*
|
|
53
|
-
* 1. `outerSessionId` (slice 018 stamped this on the per-peak
|
|
54
52
|
* session.json for sessions created after the slice shipped).
|
|
55
53
|
* 2. `claudeSessionId` (legacy field name on pre-018 presence
|
|
56
54
|
* files; honour the read side so v1.2.x data does not lose its
|
|
@@ -112,7 +110,6 @@ export function resolveCallerBinding(projectRoot, callerId) {
|
|
|
112
110
|
* must be a valid session id, projectRoot is canonicalized). Idempotent:
|
|
113
111
|
* re-writing the same callerId overwrites the file.
|
|
114
112
|
*
|
|
115
|
-
* Slice 2026-08-06-session-cacde8-A.5b: writes via `atomicWriteJson`
|
|
116
113
|
* (temp-file-then-rename) so a power-loss mid-write cannot leave the
|
|
117
114
|
* caller-binding file in a half-truncated state. `atomicWriteJson`
|
|
118
115
|
* owns its own `mkdirSync(dir, { recursive: true })`, so the inline
|
|
@@ -133,7 +130,6 @@ export function setCallerBinding(projectRoot, callerId, binding) {
|
|
|
133
130
|
/**
|
|
134
131
|
* Repoint an EXISTING per-caller binding at a new peak session id.
|
|
135
132
|
*
|
|
136
|
-
* Slice 2026-09-10 (rid=rebind-must-update-caller-binding): an explicit
|
|
137
133
|
* `peaks workspace init --session-id <X> --allow-session-rebind` rewrites
|
|
138
134
|
* the project-global `.peaks/_runtime/session.json`. Without this call the
|
|
139
135
|
* per-caller file keeps shadowing it for `getSessionIdCanonical`, so the
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Caller-Id Resolution types (slice 020 — caller-keyed session binding,
|
|
3
2
|
* refactored in slice 4.0.8 to be adapter-owned per RD §5).
|
|
4
3
|
*
|
|
5
4
|
* Per RD §5 + C1 user-confirmed product decision (binding 2026-08-03):
|
|
@@ -14,7 +13,6 @@
|
|
|
14
13
|
* core resolution path only ever emits `'env-flag' | 'adapter' | 'none'`
|
|
15
14
|
* via the new `CallerProjection.source` field.
|
|
16
15
|
*
|
|
17
|
-
* See `.peaks/_runtime/2026-08-03-session-bee258/rd/requests/001-2026-08-03-presence-lease-graph-design.md`
|
|
18
16
|
* for the slice 4.0.8 contract.
|
|
19
17
|
*/
|
|
20
18
|
export type CallerIdSource = 'flag' | 'env' | 'fallback' | 'none';
|
|
@@ -59,7 +57,6 @@ export interface CallerProjection {
|
|
|
59
57
|
* On-disk shape of `.peaks/_runtime/callers/<callerId>.json`. One file
|
|
60
58
|
* per caller; two callers may point to the same `peakSessionId` (D6).
|
|
61
59
|
*
|
|
62
|
-
* Slice 2026-09-12 (rid=caller-binding-staleness): the former
|
|
63
60
|
* `lastActivityAt` field is REMOVED. It promised "bumped on every
|
|
64
61
|
* `peaks <cmd>` that touches the binding" but was written only at first
|
|
65
62
|
* bind and at an explicit rebind — never on reuse — so no freshness
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Caller-Id Resolution types (slice 020 — caller-keyed session binding,
|
|
3
2
|
* refactored in slice 4.0.8 to be adapter-owned per RD §5).
|
|
4
3
|
*
|
|
5
4
|
* Per RD §5 + C1 user-confirmed product decision (binding 2026-08-03):
|
|
@@ -14,7 +13,6 @@
|
|
|
14
13
|
* core resolution path only ever emits `'env-flag' | 'adapter' | 'none'`
|
|
15
14
|
* via the new `CallerProjection.source` field.
|
|
16
15
|
*
|
|
17
|
-
* See `.peaks/_runtime/2026-08-03-session-bee258/rd/requests/001-2026-08-03-presence-lease-graph-design.md`
|
|
18
16
|
* for the slice 4.0.8 contract.
|
|
19
17
|
*/
|
|
20
18
|
/**
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Canonical session-directory resolver.
|
|
3
3
|
*
|
|
4
|
-
* As of slice 2026-06-05-peaks-runtime-layer the per-session workspace
|
|
5
4
|
* lives at `<root>/.peaks/_runtime/<sessionId>/`, NOT at the legacy
|
|
6
5
|
* `<root>/.peaks/<sessionId>/` location. All **write** paths MUST route
|
|
7
6
|
* through this helper. The legacy top-level path survives only as a
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export { ensureSession, getSessionId, resolveCallerBoundSession, getCurrentSessionDir, listSessions, getSessionMeta, setSessionMeta, setSessionTitle, listSessionMetas, getProjectScanPath, hasProjectScan, setCurrentSessionBinding, rotateSessionBinding } from './session-manager.js';
|
|
2
2
|
export { getSessionDir } from './getSessionDir.js';
|
|
3
|
-
// Slice 020 — caller-keyed session binding. The new canonical path.
|
|
4
3
|
export { resolveCallerId } from './resolve-caller-id.js';
|
|
5
4
|
export { getCallerBindingFile, getActiveSkillFileForCaller, synthesiseLegacyCallerId, getCallerBinding, resolveCallerBinding, setCallerBinding, listCallerBindings } from './caller-binding-service.js';
|
|
6
5
|
// Slice 4.0.8 (C1): PLATFORM_FALLBACKS is deleted. Re-export kept as
|
|
@@ -11,8 +11,6 @@
|
|
|
11
11
|
* This file remains for one minor release as a no-op stub so legacy
|
|
12
12
|
* imports keep type-checking. The named export is now an empty
|
|
13
13
|
* readonly array; tests asserting `PLATFORM_FALLBACKS.length === 1`
|
|
14
|
-
* (slice 020 A5) have been moved into the 4.0.8 deprecation bucket
|
|
15
|
-
* (`tests/unit/services/session/caller-id-resolution.test.ts` will be
|
|
16
14
|
* updated in a follow-up slice — out of scope for the 4.0.8 contract
|
|
17
15
|
* freeze).
|
|
18
16
|
*
|
|
@@ -21,7 +19,6 @@
|
|
|
21
19
|
* (`getAdapter(ide).resolveCallerId(env)`), with `PEAKS_CALLER_ID` /
|
|
22
20
|
* `--caller-id <id>` as the vendor-neutral short-circuits.
|
|
23
21
|
*
|
|
24
|
-
* See `.peaks/_runtime/2026-08-03-session-bee258/rd/requests/001-2026-08-03-presence-lease-graph-design.md`
|
|
25
22
|
* for the slice 4.0.8 contract.
|
|
26
23
|
*/
|
|
27
24
|
export interface PlatformFallback {
|
|
@@ -11,8 +11,6 @@
|
|
|
11
11
|
* This file remains for one minor release as a no-op stub so legacy
|
|
12
12
|
* imports keep type-checking. The named export is now an empty
|
|
13
13
|
* readonly array; tests asserting `PLATFORM_FALLBACKS.length === 1`
|
|
14
|
-
* (slice 020 A5) have been moved into the 4.0.8 deprecation bucket
|
|
15
|
-
* (`tests/unit/services/session/caller-id-resolution.test.ts` will be
|
|
16
14
|
* updated in a follow-up slice — out of scope for the 4.0.8 contract
|
|
17
15
|
* freeze).
|
|
18
16
|
*
|
|
@@ -21,7 +19,6 @@
|
|
|
21
19
|
* (`getAdapter(ide).resolveCallerId(env)`), with `PEAKS_CALLER_ID` /
|
|
22
20
|
* `--caller-id <id>` as the vendor-neutral short-circuits.
|
|
23
21
|
*
|
|
24
|
-
* See `.peaks/_runtime/2026-08-03-session-bee258/rd/requests/001-2026-08-03-presence-lease-graph-design.md`
|
|
25
22
|
* for the slice 4.0.8 contract.
|
|
26
23
|
*/
|
|
27
24
|
/**
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Caller-Id Resolution (slice 020 — caller-keyed session binding,
|
|
3
2
|
* refactored in slice 4.0.8 to be adapter-owned per RD §5 + C1).
|
|
4
3
|
*
|
|
5
4
|
* As of 4.0.8 the per-platform `PLATFORM_FALLBACKS` table is DELETED.
|
|
@@ -30,7 +29,6 @@
|
|
|
30
29
|
* mutate state. The caller (a CLI command, a service, a test) decides
|
|
31
30
|
* what to do with the resolved id.
|
|
32
31
|
*
|
|
33
|
-
* See `.peaks/_runtime/2026-08-03-session-bee258/rd/requests/001-2026-08-03-presence-lease-graph-design.md`
|
|
34
32
|
* for the slice 4.0.8 contract.
|
|
35
33
|
*/
|
|
36
34
|
import { CallerIdError, type CallerProjection, type CallerProjectionSource } from './caller-id-types.js';
|