@cleocode/core 2026.10.1 → 2026.10.3
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/dist/build-provenance.json +2 -2
- package/dist/cloud/http.d.ts +2 -0
- package/dist/cloud/http.d.ts.map +1 -1
- package/dist/cloud/http.js +3 -0
- package/dist/cloud/http.js.map +1 -1
- package/dist/cloud/journal.d.ts +9 -5
- package/dist/cloud/journal.d.ts.map +1 -1
- package/dist/cloud/journal.js +29 -8
- package/dist/cloud/journal.js.map +1 -1
- package/dist/cloud/manifest-check.d.ts +140 -4
- package/dist/cloud/manifest-check.d.ts.map +1 -1
- package/dist/cloud/manifest-check.js +322 -10
- package/dist/cloud/manifest-check.js.map +1 -1
- package/dist/cloud/nexus-attach.d.ts +25 -0
- package/dist/cloud/nexus-attach.d.ts.map +1 -1
- package/dist/cloud/nexus-attach.js +81 -6
- package/dist/cloud/nexus-attach.js.map +1 -1
- package/dist/cloud/nexus-cloud-activity.d.ts +37 -0
- package/dist/cloud/nexus-cloud-activity.d.ts.map +1 -0
- package/dist/cloud/nexus-cloud-activity.js +79 -0
- package/dist/cloud/nexus-cloud-activity.js.map +1 -0
- package/dist/cloud/nexus-cloud-status.d.ts.map +1 -1
- package/dist/cloud/nexus-cloud-status.js +36 -0
- package/dist/cloud/nexus-cloud-status.js.map +1 -1
- package/dist/cloud/nexus-device.d.ts +1 -1
- package/dist/cloud/nexus-enrol.d.ts.map +1 -1
- package/dist/cloud/nexus-enrol.js +5 -0
- package/dist/cloud/nexus-enrol.js.map +1 -1
- package/dist/cloud/nexus-home.d.ts +74 -0
- package/dist/cloud/nexus-home.d.ts.map +1 -0
- package/dist/cloud/nexus-home.js +97 -0
- package/dist/cloud/nexus-home.js.map +1 -0
- package/dist/cloud/nexus-vault-keys.d.ts +130 -0
- package/dist/cloud/nexus-vault-keys.d.ts.map +1 -0
- package/dist/cloud/nexus-vault-keys.js +347 -0
- package/dist/cloud/nexus-vault-keys.js.map +1 -0
- package/dist/cloud/nexus-vault-state.d.ts +121 -0
- package/dist/cloud/nexus-vault-state.d.ts.map +1 -0
- package/dist/cloud/nexus-vault-state.js +274 -0
- package/dist/cloud/nexus-vault-state.js.map +1 -0
- package/dist/cloud/nexus-vault.d.ts +160 -0
- package/dist/cloud/nexus-vault.d.ts.map +1 -0
- package/dist/cloud/nexus-vault.js +1745 -0
- package/dist/cloud/nexus-vault.js.map +1 -0
- package/dist/cloud/signing.d.ts +24 -8
- package/dist/cloud/signing.d.ts.map +1 -1
- package/dist/cloud/signing.js +61 -15
- package/dist/cloud/signing.js.map +1 -1
- package/dist/docs/export-document.js +8137 -3318
- package/dist/docs/export-document.js.map +3 -3
- package/dist/doctor/migrations.d.ts +75 -0
- package/dist/doctor/migrations.d.ts.map +1 -0
- package/dist/doctor/migrations.js +136 -0
- package/dist/doctor/migrations.js.map +1 -0
- package/dist/doctor/sync-sealer.d.ts +48 -0
- package/dist/doctor/sync-sealer.d.ts.map +1 -0
- package/dist/doctor/sync-sealer.js +109 -0
- package/dist/doctor/sync-sealer.js.map +1 -0
- package/dist/doctor/sync-triggers.d.ts +53 -0
- package/dist/doctor/sync-triggers.d.ts.map +1 -0
- package/dist/doctor/sync-triggers.js +157 -0
- package/dist/doctor/sync-triggers.js.map +1 -0
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +5 -1
- package/dist/init.js.map +1 -1
- package/dist/internal.d.ts +1 -1
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +1 -1
- package/dist/internal.js.map +1 -1
- package/dist/llm/plugin-facade.js +8442 -3623
- package/dist/llm/plugin-facade.js.map +3 -3
- package/dist/nexus/projects-clean.d.ts +3 -0
- package/dist/nexus/projects-clean.d.ts.map +1 -1
- package/dist/nexus/projects-clean.js +9 -3
- package/dist/nexus/projects-clean.js.map +1 -1
- package/dist/nexus/registry-roots.d.ts +3 -1
- package/dist/nexus/registry-roots.d.ts.map +1 -1
- package/dist/nexus/registry-roots.js +5 -2
- package/dist/nexus/registry-roots.js.map +1 -1
- package/dist/nexus/registry.d.ts +8 -1
- package/dist/nexus/registry.d.ts.map +1 -1
- package/dist/nexus/registry.js +24 -10
- package/dist/nexus/registry.js.map +1 -1
- package/dist/nexus/workspace.d.ts +4 -1
- package/dist/nexus/workspace.d.ts.map +1 -1
- package/dist/nexus/workspace.js +10 -4
- package/dist/nexus/workspace.js.map +1 -1
- package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
- package/dist/orchestrate/spawn-ops.js +7 -2
- package/dist/orchestrate/spawn-ops.js.map +1 -1
- package/dist/orchestrate/worker-verify.d.ts +121 -12
- package/dist/orchestrate/worker-verify.d.ts.map +1 -1
- package/dist/orchestrate/worker-verify.js +172 -21
- package/dist/orchestrate/worker-verify.js.map +1 -1
- package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
- package/dist/orchestration/spawn-prompt.js +15 -9
- package/dist/orchestration/spawn-prompt.js.map +1 -1
- package/dist/release/ci-evidence.d.ts +9 -0
- package/dist/release/ci-evidence.d.ts.map +1 -1
- package/dist/release/ci-evidence.js +9 -2
- package/dist/release/ci-evidence.js.map +1 -1
- package/dist/resources/backend.d.ts +15 -3
- package/dist/resources/backend.d.ts.map +1 -1
- package/dist/resources/backend.js +7 -3
- package/dist/resources/backend.js.map +1 -1
- package/dist/resources/darwin-backend.d.ts +142 -0
- package/dist/resources/darwin-backend.d.ts.map +1 -0
- package/dist/resources/darwin-backend.js +288 -0
- package/dist/resources/darwin-backend.js.map +1 -0
- package/dist/resources/governor.d.ts +44 -1
- package/dist/resources/governor.d.ts.map +1 -1
- package/dist/resources/governor.js +100 -36
- package/dist/resources/governor.js.map +1 -1
- package/dist/resources/heavy-command.d.ts +132 -0
- package/dist/resources/heavy-command.d.ts.map +1 -0
- package/dist/resources/heavy-command.js +768 -0
- package/dist/resources/heavy-command.js.map +1 -0
- package/dist/resources/monitor.d.ts +50 -1
- package/dist/resources/monitor.d.ts.map +1 -1
- package/dist/resources/monitor.js +83 -1
- package/dist/resources/monitor.js.map +1 -1
- package/dist/resources/run-admission.d.ts +303 -0
- package/dist/resources/run-admission.d.ts.map +1 -0
- package/dist/resources/run-admission.js +648 -0
- package/dist/resources/run-admission.js.map +1 -0
- package/dist/resources/run-class.d.ts +111 -0
- package/dist/resources/run-class.d.ts.map +1 -0
- package/dist/resources/run-class.js +658 -0
- package/dist/resources/run-class.js.map +1 -0
- package/dist/resources/run-governed.d.ts +158 -0
- package/dist/resources/run-governed.d.ts.map +1 -0
- package/dist/resources/run-governed.js +406 -0
- package/dist/resources/run-governed.js.map +1 -0
- package/dist/resources/slot-holder.d.ts +267 -0
- package/dist/resources/slot-holder.d.ts.map +1 -0
- package/dist/resources/slot-holder.js +505 -0
- package/dist/resources/slot-holder.js.map +1 -0
- package/dist/resources/tool-groups.d.ts +74 -0
- package/dist/resources/tool-groups.d.ts.map +1 -0
- package/dist/resources/tool-groups.js +118 -0
- package/dist/resources/tool-groups.js.map +1 -0
- package/dist/routing/build-command-groups.d.ts.map +1 -1
- package/dist/routing/build-command-groups.js +1 -0
- package/dist/routing/build-command-groups.js.map +1 -1
- package/dist/selfimprove/fix-gen.js +8446 -3627
- package/dist/selfimprove/fix-gen.js.map +3 -3
- package/dist/sentient/cross-project-hygiene.d.ts +3 -2
- package/dist/sentient/cross-project-hygiene.d.ts.map +1 -1
- package/dist/sentient/cross-project-hygiene.js +5 -2
- package/dist/sentient/cross-project-hygiene.js.map +1 -1
- package/dist/sentient/state.d.ts +7 -0
- package/dist/sentient/state.d.ts.map +1 -1
- package/dist/sentient/state.js.map +1 -1
- package/dist/sentient/tick.d.ts +14 -2
- package/dist/sentient/tick.d.ts.map +1 -1
- package/dist/sentient/tick.js +63 -4
- package/dist/sentient/tick.js.map +1 -1
- package/dist/store/backup-recover.d.ts.map +1 -1
- package/dist/store/backup-recover.js +5 -0
- package/dist/store/backup-recover.js.map +1 -1
- package/dist/store/data-accessor.d.ts +1 -0
- package/dist/store/data-accessor.d.ts.map +1 -1
- package/dist/store/data-accessor.js +7 -0
- package/dist/store/data-accessor.js.map +1 -1
- package/dist/store/dual-scope-db.d.ts +23 -1
- package/dist/store/dual-scope-db.d.ts.map +1 -1
- package/dist/store/dual-scope-db.js +126 -36
- package/dist/store/dual-scope-db.js.map +1 -1
- package/dist/store/exodus/recovery.d.ts.map +1 -1
- package/dist/store/exodus/recovery.js +15 -0
- package/dist/store/exodus/recovery.js.map +1 -1
- package/dist/store/legacy-tasks-lineage.d.ts.map +1 -1
- package/dist/store/legacy-tasks-lineage.js +5 -0
- package/dist/store/legacy-tasks-lineage.js.map +1 -1
- package/dist/store/lock.d.ts +8 -1
- package/dist/store/lock.d.ts.map +1 -1
- package/dist/store/lock.js +10 -2
- package/dist/store/lock.js.map +1 -1
- package/dist/store/migration-manager.d.ts +5 -0
- package/dist/store/migration-manager.d.ts.map +1 -1
- package/dist/store/migration-manager.js +11 -0
- package/dist/store/migration-manager.js.map +1 -1
- package/dist/store/migration-runner.d.ts +158 -0
- package/dist/store/migration-runner.d.ts.map +1 -0
- package/dist/store/migration-runner.js +493 -0
- package/dist/store/migration-runner.js.map +1 -0
- package/dist/store/portable-bundle-import.d.ts +15 -1
- package/dist/store/portable-bundle-import.d.ts.map +1 -1
- package/dist/store/portable-bundle-import.js +24 -4
- package/dist/store/portable-bundle-import.js.map +1 -1
- package/dist/store/portable-bundle-relocate.d.ts +43 -0
- package/dist/store/portable-bundle-relocate.d.ts.map +1 -1
- package/dist/store/portable-bundle-relocate.js +79 -5
- package/dist/store/portable-bundle-relocate.js.map +1 -1
- package/dist/store/portable-bundle-scan.d.ts +42 -0
- package/dist/store/portable-bundle-scan.d.ts.map +1 -1
- package/dist/store/portable-bundle-scan.js +132 -25
- package/dist/store/portable-bundle-scan.js.map +1 -1
- package/dist/store/portable-bundle.d.ts +40 -0
- package/dist/store/portable-bundle.d.ts.map +1 -1
- package/dist/store/portable-bundle.js +43 -7
- package/dist/store/portable-bundle.js.map +1 -1
- package/dist/store/row-identity-registry.d.ts +137 -7
- package/dist/store/row-identity-registry.d.ts.map +1 -1
- package/dist/store/row-identity-registry.js +364 -9
- package/dist/store/row-identity-registry.js.map +1 -1
- package/dist/store/row-identity.d.ts.map +1 -1
- package/dist/store/row-identity.js +9 -10
- package/dist/store/row-identity.js.map +1 -1
- package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
- package/dist/store/sqlite-data-accessor.js +10 -0
- package/dist/store/sqlite-data-accessor.js.map +1 -1
- package/dist/store/sqlite.d.ts +31 -0
- package/dist/store/sqlite.d.ts.map +1 -1
- package/dist/store/sqlite.js +5 -1
- package/dist/store/sqlite.js.map +1 -1
- package/dist/store/sync/capture.d.ts +203 -0
- package/dist/store/sync/capture.d.ts.map +1 -0
- package/dist/store/sync/capture.js +562 -0
- package/dist/store/sync/capture.js.map +1 -0
- package/dist/store/sync/clock-store.d.ts.map +1 -1
- package/dist/store/sync/clock-store.js +2 -0
- package/dist/store/sync/clock-store.js.map +1 -1
- package/dist/store/sync/fk-orphans.d.ts +133 -0
- package/dist/store/sync/fk-orphans.d.ts.map +1 -0
- package/dist/store/sync/fk-orphans.js +265 -0
- package/dist/store/sync/fk-orphans.js.map +1 -0
- package/dist/store/sync/flags.d.ts +7 -0
- package/dist/store/sync/flags.d.ts.map +1 -1
- package/dist/store/sync/flags.js +16 -0
- package/dist/store/sync/flags.js.map +1 -1
- package/dist/store/sync/hlc.d.ts.map +1 -1
- package/dist/store/sync/hlc.js +4 -0
- package/dist/store/sync/hlc.js.map +1 -1
- package/dist/store/sync/identity-fill.d.ts +45 -0
- package/dist/store/sync/identity-fill.d.ts.map +1 -0
- package/dist/store/sync/identity-fill.js +85 -0
- package/dist/store/sync/identity-fill.js.map +1 -0
- package/dist/store/sync/machinery.d.ts +27 -0
- package/dist/store/sync/machinery.d.ts.map +1 -0
- package/dist/store/sync/machinery.js +44 -0
- package/dist/store/sync/machinery.js.map +1 -0
- package/dist/store/sync/netting.d.ts +120 -0
- package/dist/store/sync/netting.d.ts.map +1 -0
- package/dist/store/sync/netting.js +336 -0
- package/dist/store/sync/netting.js.map +1 -0
- package/dist/store/sync/replica.d.ts +27 -2
- package/dist/store/sync/replica.d.ts.map +1 -1
- package/dist/store/sync/replica.js +47 -3
- package/dist/store/sync/replica.js.map +1 -1
- package/dist/store/sync/schema.d.ts +12 -0
- package/dist/store/sync/schema.d.ts.map +1 -1
- package/dist/store/sync/schema.js +21 -0
- package/dist/store/sync/schema.js.map +1 -1
- package/dist/store/sync/seal-backlog.d.ts +21 -0
- package/dist/store/sync/seal-backlog.d.ts.map +1 -0
- package/dist/store/sync/seal-backlog.js +24 -0
- package/dist/store/sync/seal-backlog.js.map +1 -0
- package/dist/store/sync/sealer-values.d.ts +34 -0
- package/dist/store/sync/sealer-values.d.ts.map +1 -0
- package/dist/store/sync/sealer-values.js +53 -0
- package/dist/store/sync/sealer-values.js.map +1 -0
- package/dist/store/sync/sealer.d.ts +145 -0
- package/dist/store/sync/sealer.d.ts.map +1 -0
- package/dist/store/sync/sealer.js +906 -0
- package/dist/store/sync/sealer.js.map +1 -0
- package/dist/store/sync/structural.d.ts +63 -0
- package/dist/store/sync/structural.d.ts.map +1 -0
- package/dist/store/sync/structural.js +180 -0
- package/dist/store/sync/structural.js.map +1 -0
- package/dist/store/sync/timestamps.d.ts +92 -0
- package/dist/store/sync/timestamps.d.ts.map +1 -0
- package/dist/store/sync/timestamps.js +228 -0
- package/dist/store/sync/timestamps.js.map +1 -0
- package/dist/store/sync/tombstones.d.ts +75 -0
- package/dist/store/sync/tombstones.d.ts.map +1 -0
- package/dist/store/sync/tombstones.js +103 -0
- package/dist/store/sync/tombstones.js.map +1 -0
- package/dist/store/sync/trigger-classes.d.ts +221 -0
- package/dist/store/sync/trigger-classes.d.ts.map +1 -0
- package/dist/store/sync/trigger-classes.js +441 -0
- package/dist/store/sync/trigger-classes.js.map +1 -0
- package/dist/store/sync/trigger-suspend-at-path.d.ts +23 -0
- package/dist/store/sync/trigger-suspend-at-path.d.ts.map +1 -0
- package/dist/store/sync/trigger-suspend-at-path.js +44 -0
- package/dist/store/sync/trigger-suspend-at-path.js.map +1 -0
- package/dist/store/sync/writer-version.d.ts +43 -0
- package/dist/store/sync/writer-version.d.ts.map +1 -0
- package/dist/store/sync/writer-version.js +90 -0
- package/dist/store/sync/writer-version.js.map +1 -0
- package/dist/store/table-classification.d.ts.map +1 -1
- package/dist/store/table-classification.js +102 -0
- package/dist/store/table-classification.js.map +1 -1
- package/dist/store/trigger-suspend-schema.d.ts +44 -0
- package/dist/store/trigger-suspend-schema.d.ts.map +1 -0
- package/dist/store/trigger-suspend-schema.js +25 -0
- package/dist/store/trigger-suspend-schema.js.map +1 -0
- package/dist/store/vault-manifest.d.ts +365 -0
- package/dist/store/vault-manifest.d.ts.map +1 -0
- package/dist/store/vault-manifest.js +812 -0
- package/dist/store/vault-manifest.js.map +1 -0
- package/dist/store/writer-lease.d.ts +31 -0
- package/dist/store/writer-lease.d.ts.map +1 -1
- package/dist/store/writer-lease.js +65 -2
- package/dist/store/writer-lease.js.map +1 -1
- package/dist/system/health.d.ts.map +1 -1
- package/dist/system/health.js +21 -0
- package/dist/system/health.js.map +1 -1
- package/dist/system/project-health.d.ts.map +1 -1
- package/dist/system/project-health.js +3 -1
- package/dist/system/project-health.js.map +1 -1
- package/dist/tasks/affected-packages.d.ts +58 -0
- package/dist/tasks/affected-packages.d.ts.map +1 -1
- package/dist/tasks/affected-packages.js +75 -6
- package/dist/tasks/affected-packages.js.map +1 -1
- package/dist/tasks/affected-scope.d.ts +150 -23
- package/dist/tasks/affected-scope.d.ts.map +1 -1
- package/dist/tasks/affected-scope.js +320 -32
- package/dist/tasks/affected-scope.js.map +1 -1
- package/dist/tasks/change-set.d.ts +96 -0
- package/dist/tasks/change-set.d.ts.map +1 -1
- package/dist/tasks/change-set.js +169 -4
- package/dist/tasks/change-set.js.map +1 -1
- package/dist/tasks/complete-ci.d.ts +115 -0
- package/dist/tasks/complete-ci.d.ts.map +1 -0
- package/dist/tasks/complete-ci.js +171 -0
- package/dist/tasks/complete-ci.js.map +1 -0
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +50 -17
- package/dist/tasks/complete.js.map +1 -1
- package/dist/tasks/compute-task-view.d.ts.map +1 -1
- package/dist/tasks/compute-task-view.js +7 -0
- package/dist/tasks/compute-task-view.js.map +1 -1
- package/dist/tasks/done-plan.d.ts.map +1 -1
- package/dist/tasks/done-plan.js +51 -30
- package/dist/tasks/done-plan.js.map +1 -1
- package/dist/tasks/done-record.d.ts +6 -0
- package/dist/tasks/done-record.d.ts.map +1 -1
- package/dist/tasks/done-record.js +9 -3
- package/dist/tasks/done-record.js.map +1 -1
- package/dist/tasks/evidence.d.ts +3 -2
- package/dist/tasks/evidence.d.ts.map +1 -1
- package/dist/tasks/evidence.js +143 -12
- package/dist/tasks/evidence.js.map +1 -1
- package/dist/tasks/gate-notes.d.ts +22 -0
- package/dist/tasks/gate-notes.d.ts.map +1 -0
- package/dist/tasks/gate-notes.js +33 -0
- package/dist/tasks/gate-notes.js.map +1 -0
- package/dist/tasks/index.d.ts +2 -1
- package/dist/tasks/index.d.ts.map +1 -1
- package/dist/tasks/index.js +2 -1
- package/dist/tasks/index.js.map +1 -1
- package/dist/tasks/test-run-binding.d.ts +117 -0
- package/dist/tasks/test-run-binding.d.ts.map +1 -0
- package/dist/tasks/test-run-binding.js +365 -0
- package/dist/tasks/test-run-binding.js.map +1 -0
- package/dist/tasks/tool-cache-env.d.ts +123 -0
- package/dist/tasks/tool-cache-env.d.ts.map +1 -0
- package/dist/tasks/tool-cache-env.js +287 -0
- package/dist/tasks/tool-cache-env.js.map +1 -0
- package/dist/tasks/tool-cache-failed-first.d.ts +155 -0
- package/dist/tasks/tool-cache-failed-first.d.ts.map +1 -0
- package/dist/tasks/tool-cache-failed-first.js +285 -0
- package/dist/tasks/tool-cache-failed-first.js.map +1 -0
- package/dist/tasks/tool-cache.d.ts +375 -55
- package/dist/tasks/tool-cache.d.ts.map +1 -1
- package/dist/tasks/tool-cache.js +912 -303
- package/dist/tasks/tool-cache.js.map +1 -1
- package/dist/tasks/tool-resolver.d.ts +4 -3
- package/dist/tasks/tool-resolver.d.ts.map +1 -1
- package/dist/tasks/tool-resolver.js +15 -4
- package/dist/tasks/tool-resolver.js.map +1 -1
- package/dist/tasks/tool-semaphore.d.ts +67 -7
- package/dist/tasks/tool-semaphore.d.ts.map +1 -1
- package/dist/tasks/tool-semaphore.js +134 -56
- package/dist/tasks/tool-semaphore.js.map +1 -1
- package/dist/upgrade.d.ts.map +1 -1
- package/dist/upgrade.js +4 -0
- package/dist/upgrade.js.map +1 -1
- package/dist/validation/engine-ops.d.ts +6 -0
- package/dist/validation/engine-ops.d.ts.map +1 -1
- package/dist/validation/engine-ops.js +8 -0
- package/dist/validation/engine-ops.js.map +1 -1
- package/migrations/drizzle-cleo-project/20260930170000_t12819-trigger-suspend-clause/migration.sql +367 -0
- package/migrations/sync-journal/20260930120000_t12343-capture/migration.sql +47 -0
- package/migrations/sync-journal/20261001170000_t12984-sealer/migration.sql +101 -0
- package/package.json +13 -13
- package/templates/CLEO-INJECTION.md +5 -5
- package/templates/CLEO-REFERENCE.md +8 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gate-notes.js","sourceRoot":"","sources":["../../src/tasks/gate-notes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAAiD;IAEjD,MAAM,KAAK,GAA8C,EAAE,CAAC;IAC5D,IAAI,CAAC,YAAY,EAAE,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAElE,EAAE,CAAC;QACF,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ;YAAE,SAAS;QAC7D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3F,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAC1F,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/dist/tasks/index.d.ts
CHANGED
|
@@ -35,7 +35,8 @@ export { type AppendSeverityAttestationOptions, appendSignedSeverityAttestation,
|
|
|
35
35
|
export { showTask, type TaskDetail, taskExists, taskShow, taskShowIvtrHistory, taskShowOperation, taskShowWithHistory, } from './show.js';
|
|
36
36
|
export { taskSyncLinks, taskSyncLinksRemove, taskSyncReconcile } from './sync-ops.js';
|
|
37
37
|
export { taskAnalyze, taskBatchValidate, taskBlockers, taskCancel, taskClaim, taskComplexityEstimate, taskDepends, taskDeps, taskDepsCycles, taskDepsOverview, taskDepsTree, taskDepsValidate, taskExport, taskHistory, taskImpact, taskImport, taskLint, taskNext, taskPromote, taskRankingHistory, taskRankingRevert, taskRelates, taskRelatesAdd, taskRelatesFind, taskRelatesRemove, taskReopen, taskReorder, taskReparent, taskRestore, taskSlice, taskStats, taskTree, taskUnarchive, taskUnclaim, } from './task-ops.js';
|
|
38
|
-
export { cacheEntryPath, captureDirtyFingerprint, captureHead, clearToolCache, computeCacheKey, isEntryUsable, type RunToolOptions, readCacheEntry, runToolCached, TOOL_RUN_IDENTITY_FIELDS, type ToolCacheEntry, type ToolRunIdentity, type ToolRunResult, writeCacheEntry, } from './tool-cache.js';
|
|
38
|
+
export { cacheEntryPath, captureDirtyFingerprint, captureHead, captureTreeHash, clearToolCache, computeCacheKey, isEntryUsable, type RunToolOptions, readCacheEntry, resourceKillReason, runToolCached, TOOL_CACHE_SCHEMA_VERSION, TOOL_RUN_IDENTITY_FIELDS, type ToolCacheEntry, type ToolRunIdentity, type ToolRunResult, writeCacheEntry, } from './tool-cache.js';
|
|
39
|
+
export { captureEnvFingerprint, captureResourceEnv, ENV_SENSITIVE_TOOLS, } from './tool-cache-env.js';
|
|
39
40
|
export { type CanonicalTool, listValidToolNames, type ResolutionSource, type ResolvedToolCommand, type ResolveToolResult, resolveToolCommand, } from './tool-resolver.js';
|
|
40
41
|
export { type AcquireSlotOptions, acquireGlobalSlot, defaultMaxConcurrent, isHolderAlive, listSlotHolders, type ReleaseSlotFn, readHolder, reapOrphanedSlots, reapSlotIfOrphaned, resolveMaxConcurrent, type SlotHolder, semaphoreDir, } from './tool-semaphore.js';
|
|
41
42
|
export { taskUpdate, type UpdateTaskOptions, type UpdateTaskResult, updateTask } from './update.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tasks/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tasks/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tasks/index.js
CHANGED
|
@@ -45,7 +45,8 @@ export { showTask, taskExists, taskShow, taskShowIvtrHistory, taskShowOperation,
|
|
|
45
45
|
export { taskSyncLinks, taskSyncLinksRemove, taskSyncReconcile } from './sync-ops.js';
|
|
46
46
|
export { taskAnalyze, taskBatchValidate, taskBlockers, taskCancel, taskClaim, taskComplexityEstimate, taskDepends, taskDeps, taskDepsCycles, taskDepsOverview, taskDepsTree, taskDepsValidate, taskExport, taskHistory, taskImpact, taskImport, taskLint, taskNext, taskPromote, taskRankingHistory, taskRankingRevert, taskRelates, taskRelatesAdd, taskRelatesFind, taskRelatesRemove, taskReopen, taskReorder, taskReparent, taskRestore, taskSlice, taskStats, taskTree, taskUnarchive, taskUnclaim, } from './task-ops.js';
|
|
47
47
|
// Tool result cache + cross-process semaphore (T1534 / ADR-061)
|
|
48
|
-
export { cacheEntryPath, captureDirtyFingerprint, captureHead, clearToolCache, computeCacheKey, isEntryUsable, readCacheEntry, runToolCached, TOOL_RUN_IDENTITY_FIELDS, writeCacheEntry, } from './tool-cache.js';
|
|
48
|
+
export { cacheEntryPath, captureDirtyFingerprint, captureHead, captureTreeHash, clearToolCache, computeCacheKey, isEntryUsable, readCacheEntry, resourceKillReason, runToolCached, TOOL_CACHE_SCHEMA_VERSION, TOOL_RUN_IDENTITY_FIELDS, writeCacheEntry, } from './tool-cache.js';
|
|
49
|
+
export { captureEnvFingerprint, captureResourceEnv, ENV_SENSITIVE_TOOLS, } from './tool-cache-env.js';
|
|
49
50
|
// Project-agnostic tool resolution (T1534 / ADR-061)
|
|
50
51
|
export { listValidToolNames, resolveToolCommand, } from './tool-resolver.js';
|
|
51
52
|
// Cross-process global per-tool concurrency semaphore (T1534 / ADR-061)
|
package/dist/tasks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tasks/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tasks/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Binding a targeted `test-run:` report to the change it claims to test
|
|
3
|
+
* (T12965).
|
|
4
|
+
*
|
|
5
|
+
* What a bound atom guarantees, exactly:
|
|
6
|
+
* 1. **Freshness.** The report's own run time (vitest `startTime`, else the
|
|
7
|
+
* file's mtime) is not older than any of:
|
|
8
|
+
* - the committer time of HEAD and of every commit the branch adds over
|
|
9
|
+
* origin's default branch — unless the commits made after the run only
|
|
10
|
+
* recorded what was on disk when it ran: HEAD as of the run is in HEAD's
|
|
11
|
+
* reflog, and no path that differs between that commit and the working
|
|
12
|
+
* tree was modified, deleted or moved after the run (edit, run the
|
|
13
|
+
* tests, commit, then verify). Any other commit after the run is
|
|
14
|
+
* refused — a rebase onto a newer base included, since it rewrites the
|
|
15
|
+
* files it brings in — so bind the report before committing, or re-run;
|
|
16
|
+
* - the newest working-tree modification of any path the branch changed
|
|
17
|
+
* against origin's default branch (committed, uncommitted or untracked;
|
|
18
|
+
* the report itself excluded) — or, with no origin to diff against, any
|
|
19
|
+
* uncommitted tracked edit;
|
|
20
|
+
* - for each uncommitted deletion (a rename's old path included, since a
|
|
21
|
+
* move keeps the file's own mtime), the modification time of the
|
|
22
|
+
* nearest existing directory it was removed from.
|
|
23
|
+
* Commit times, reflog times and mtimes are recorded facts, not proof of
|
|
24
|
+
* content: this refuses stale reports, it does not attest that the report
|
|
25
|
+
* is honest.
|
|
26
|
+
* 2. **Relevance.** When the change touches workspace packages only, the
|
|
27
|
+
* report covers a test file of every affected package that has one —
|
|
28
|
+
* each directly changed package and each package that depends on one,
|
|
29
|
+
* the set `tool:test-affected` runs. An affected package with no test
|
|
30
|
+
* file (tracked, or added by the change) cannot be covered and is
|
|
31
|
+
* recorded in `untestedPackages`, as `tool:test-affected` records a
|
|
32
|
+
* dependent with no test project; when no affected package has a test
|
|
33
|
+
* file, the report is refused. A test file covers its package when one
|
|
34
|
+
* of its tests passed (a file a `-t` filter skipped entirely covers
|
|
35
|
+
* nothing); one such file is enough: a targeted report speaks for the
|
|
36
|
+
* packages it ran, not for every file in them — merged CI does that. A
|
|
37
|
+
* workspace-wide change (a path outside every package, such as a root
|
|
38
|
+
* config or the lockfile) is refused outright: only a full-suite run
|
|
39
|
+
* speaks for it, and a report cannot show that it ran the whole suite
|
|
40
|
+
* (test configs exclude tracked test files, so per-package file counts
|
|
41
|
+
* prove nothing) — `tool:test` runs it. A report with no passed test at
|
|
42
|
+
* all is refused before any of this.
|
|
43
|
+
* Docs-only changes, and checkouts with no origin to diff against, are
|
|
44
|
+
* not judged.
|
|
45
|
+
* 3. **Identity.** HEAD and the tool cache's tree hash (T12958) at verify time are
|
|
46
|
+
* recorded, and `cleo complete` refuses the atom once that tree moved
|
|
47
|
+
* (unless merged CI or a full run carries the gate).
|
|
48
|
+
*
|
|
49
|
+
* It does NOT prove the report was produced by this tree's code: a report is
|
|
50
|
+
* a file the caller supplies. Merged CI (`ci:<pr>`) or `tool:test` are the
|
|
51
|
+
* evidence that does.
|
|
52
|
+
*
|
|
53
|
+
* @task T12965
|
|
54
|
+
*/
|
|
55
|
+
/** The parts of a vitest (or jest) JSON report the binding reads. */
|
|
56
|
+
export interface TestRunReport {
|
|
57
|
+
/** Epoch milliseconds the run started. */
|
|
58
|
+
startTime?: number;
|
|
59
|
+
/**
|
|
60
|
+
* Per-file results: `name` is the test file path, `assertionResults` its
|
|
61
|
+
* tests (`passed`, `failed`, `skipped`/`pending`, `todo`). A file's own
|
|
62
|
+
* `status` says nothing about whether any test ran: vitest reports a file
|
|
63
|
+
* whose every test a `-t` filter skipped as `passed`.
|
|
64
|
+
*/
|
|
65
|
+
testResults?: Array<{
|
|
66
|
+
status?: string;
|
|
67
|
+
name?: string;
|
|
68
|
+
assertionResults?: Array<{
|
|
69
|
+
status?: string;
|
|
70
|
+
}>;
|
|
71
|
+
}>;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Most test files a `test-run:` atom lists; `testFileCount` keeps the true
|
|
75
|
+
* total when a full-suite report covers more.
|
|
76
|
+
*/
|
|
77
|
+
export declare const TEST_RUN_MAX_RECORDED_FILES = 200;
|
|
78
|
+
/**
|
|
79
|
+
* The report's test files that ran at least one passing test, relative to
|
|
80
|
+
* `root` where they lie inside it, slash-separated, sorted and unique. A file
|
|
81
|
+
* whose every test was skipped, filtered out (`-t`) or todo covers nothing,
|
|
82
|
+
* and neither does a file that lists no `assertionResults` (T12965 review).
|
|
83
|
+
*
|
|
84
|
+
* @param report - Parsed report.
|
|
85
|
+
* @param root - Execution root.
|
|
86
|
+
* @returns The covered test files.
|
|
87
|
+
* @task T12965
|
|
88
|
+
*/
|
|
89
|
+
export declare function coveredTestFiles(report: TestRunReport, root: string): string[];
|
|
90
|
+
/** What binding a report decided. */
|
|
91
|
+
export type TestRunBinding = {
|
|
92
|
+
/** The report is refused. */
|
|
93
|
+
ok: false;
|
|
94
|
+
/** Older than the change (stale), or not covering it (insufficient). */
|
|
95
|
+
codeName: 'E_EVIDENCE_STALE' | 'E_EVIDENCE_INSUFFICIENT';
|
|
96
|
+
/** Why, and what to do instead. */
|
|
97
|
+
reason: string;
|
|
98
|
+
} | {
|
|
99
|
+
/** The report may be bound. */
|
|
100
|
+
ok: true;
|
|
101
|
+
/** Affected packages with no test file, which no report could cover (sorted). */
|
|
102
|
+
untestedPackages: string[];
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* Bind a report to the change it claims to test, or refuse it when it is
|
|
106
|
+
* older than the change or does not cover it (see the module doc for exactly
|
|
107
|
+
* what this guarantees).
|
|
108
|
+
*
|
|
109
|
+
* @param report - Parsed report.
|
|
110
|
+
* @param reportPath - Absolute path of the report file.
|
|
111
|
+
* @param root - The task's checkout (a git checkout, or not).
|
|
112
|
+
* @param testFiles - {@link coveredTestFiles} of the report.
|
|
113
|
+
* @returns The refusal, or the binding with the affected packages left untested.
|
|
114
|
+
* @task T12965
|
|
115
|
+
*/
|
|
116
|
+
export declare function bindTestRunReport(report: TestRunReport, reportPath: string, root: string, testFiles: readonly string[]): TestRunBinding;
|
|
117
|
+
//# sourceMappingURL=test-run-binding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-run-binding.d.ts","sourceRoot":"","sources":["../../src/tasks/test-run-binding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAcH,qEAAqE;AACrE,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,gBAAgB,CAAC,EAAE,KAAK,CAAC;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC/C,CAAC,CAAC;CACJ;AAED;;;GAGG;AACH,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAc/C;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAe9E;AAiOD,qCAAqC;AACrC,MAAM,MAAM,cAAc,GACtB;IACE,6BAA6B;IAC7B,EAAE,EAAE,KAAK,CAAC;IACV,wEAAwE;IACxE,QAAQ,EAAE,kBAAkB,GAAG,yBAAyB,CAAC;IACzD,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;CAChB,GACD;IACE,+BAA+B;IAC/B,EAAE,EAAE,IAAI,CAAC;IACT,iFAAiF;IACjF,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AAEN;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,MAAM,EAAE,GAC3B,cAAc,CAkGhB"}
|
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Binding a targeted `test-run:` report to the change it claims to test
|
|
3
|
+
* (T12965).
|
|
4
|
+
*
|
|
5
|
+
* What a bound atom guarantees, exactly:
|
|
6
|
+
* 1. **Freshness.** The report's own run time (vitest `startTime`, else the
|
|
7
|
+
* file's mtime) is not older than any of:
|
|
8
|
+
* - the committer time of HEAD and of every commit the branch adds over
|
|
9
|
+
* origin's default branch — unless the commits made after the run only
|
|
10
|
+
* recorded what was on disk when it ran: HEAD as of the run is in HEAD's
|
|
11
|
+
* reflog, and no path that differs between that commit and the working
|
|
12
|
+
* tree was modified, deleted or moved after the run (edit, run the
|
|
13
|
+
* tests, commit, then verify). Any other commit after the run is
|
|
14
|
+
* refused — a rebase onto a newer base included, since it rewrites the
|
|
15
|
+
* files it brings in — so bind the report before committing, or re-run;
|
|
16
|
+
* - the newest working-tree modification of any path the branch changed
|
|
17
|
+
* against origin's default branch (committed, uncommitted or untracked;
|
|
18
|
+
* the report itself excluded) — or, with no origin to diff against, any
|
|
19
|
+
* uncommitted tracked edit;
|
|
20
|
+
* - for each uncommitted deletion (a rename's old path included, since a
|
|
21
|
+
* move keeps the file's own mtime), the modification time of the
|
|
22
|
+
* nearest existing directory it was removed from.
|
|
23
|
+
* Commit times, reflog times and mtimes are recorded facts, not proof of
|
|
24
|
+
* content: this refuses stale reports, it does not attest that the report
|
|
25
|
+
* is honest.
|
|
26
|
+
* 2. **Relevance.** When the change touches workspace packages only, the
|
|
27
|
+
* report covers a test file of every affected package that has one —
|
|
28
|
+
* each directly changed package and each package that depends on one,
|
|
29
|
+
* the set `tool:test-affected` runs. An affected package with no test
|
|
30
|
+
* file (tracked, or added by the change) cannot be covered and is
|
|
31
|
+
* recorded in `untestedPackages`, as `tool:test-affected` records a
|
|
32
|
+
* dependent with no test project; when no affected package has a test
|
|
33
|
+
* file, the report is refused. A test file covers its package when one
|
|
34
|
+
* of its tests passed (a file a `-t` filter skipped entirely covers
|
|
35
|
+
* nothing); one such file is enough: a targeted report speaks for the
|
|
36
|
+
* packages it ran, not for every file in them — merged CI does that. A
|
|
37
|
+
* workspace-wide change (a path outside every package, such as a root
|
|
38
|
+
* config or the lockfile) is refused outright: only a full-suite run
|
|
39
|
+
* speaks for it, and a report cannot show that it ran the whole suite
|
|
40
|
+
* (test configs exclude tracked test files, so per-package file counts
|
|
41
|
+
* prove nothing) — `tool:test` runs it. A report with no passed test at
|
|
42
|
+
* all is refused before any of this.
|
|
43
|
+
* Docs-only changes, and checkouts with no origin to diff against, are
|
|
44
|
+
* not judged.
|
|
45
|
+
* 3. **Identity.** HEAD and the tool cache's tree hash (T12958) at verify time are
|
|
46
|
+
* recorded, and `cleo complete` refuses the atom once that tree moved
|
|
47
|
+
* (unless merged CI or a full run carries the gate).
|
|
48
|
+
*
|
|
49
|
+
* It does NOT prove the report was produced by this tree's code: a report is
|
|
50
|
+
* a file the caller supplies. Merged CI (`ci:<pr>`) or `tool:test` are the
|
|
51
|
+
* evidence that does.
|
|
52
|
+
*
|
|
53
|
+
* @task T12965
|
|
54
|
+
*/
|
|
55
|
+
import { execFileSync } from 'node:child_process';
|
|
56
|
+
import { existsSync, realpathSync, statSync } from 'node:fs';
|
|
57
|
+
import { dirname, isAbsolute, relative, resolve } from 'node:path';
|
|
58
|
+
import { discoveryEnv } from '../git/work-tree.js';
|
|
59
|
+
import { changedPathsSinceDefault, deriveAffectedPackages, listWorkspacePackages, originDefaultMergeBase, } from './affected-packages.js';
|
|
60
|
+
/**
|
|
61
|
+
* Most test files a `test-run:` atom lists; `testFileCount` keeps the true
|
|
62
|
+
* total when a full-suite report covers more.
|
|
63
|
+
*/
|
|
64
|
+
export const TEST_RUN_MAX_RECORDED_FILES = 200;
|
|
65
|
+
/** Mtime slack for filesystems with coarse timestamps (ms). */
|
|
66
|
+
const MTIME_SLACK_MS = 1000;
|
|
67
|
+
/** Most branch commits whose committer time is read. */
|
|
68
|
+
const MAX_CHANGE_COMMITS = 1000;
|
|
69
|
+
/** Most HEAD reflog entries read to find HEAD as of the run. */
|
|
70
|
+
const MAX_REFLOG_ENTRIES = 1000;
|
|
71
|
+
/** A tracked test file, by the names vitest and jest pick up. */
|
|
72
|
+
const TEST_FILE = /\.(test|spec)\.[cm]?[jt]sx?$/;
|
|
73
|
+
/**
|
|
74
|
+
* The report's test files that ran at least one passing test, relative to
|
|
75
|
+
* `root` where they lie inside it, slash-separated, sorted and unique. A file
|
|
76
|
+
* whose every test was skipped, filtered out (`-t`) or todo covers nothing,
|
|
77
|
+
* and neither does a file that lists no `assertionResults` (T12965 review).
|
|
78
|
+
*
|
|
79
|
+
* @param report - Parsed report.
|
|
80
|
+
* @param root - Execution root.
|
|
81
|
+
* @returns The covered test files.
|
|
82
|
+
* @task T12965
|
|
83
|
+
*/
|
|
84
|
+
export function coveredTestFiles(report, root) {
|
|
85
|
+
if (!Array.isArray(report.testResults))
|
|
86
|
+
return [];
|
|
87
|
+
const inside = (rel) => !rel.startsWith('..') && !isAbsolute(rel);
|
|
88
|
+
const files = report.testResults.flatMap((tr) => {
|
|
89
|
+
if (typeof tr.name !== 'string' || tr.name === '')
|
|
90
|
+
return [];
|
|
91
|
+
const ran = Array.isArray(tr.assertionResults)
|
|
92
|
+
? tr.assertionResults.some((a) => a?.status === 'passed')
|
|
93
|
+
: false;
|
|
94
|
+
if (!ran)
|
|
95
|
+
return [];
|
|
96
|
+
let rel = isAbsolute(tr.name) ? relative(root, tr.name) : tr.name;
|
|
97
|
+
// A symlinked spelling of the same checkout (macOS /var → /private/var).
|
|
98
|
+
if (!inside(rel))
|
|
99
|
+
rel = relative(realpathOr(root), realpathOr(tr.name));
|
|
100
|
+
return [inside(rel) ? rel.split('\\').join('/') : tr.name];
|
|
101
|
+
});
|
|
102
|
+
return [...new Set(files)].sort();
|
|
103
|
+
}
|
|
104
|
+
function realpathOr(path) {
|
|
105
|
+
try {
|
|
106
|
+
return realpathSync(path);
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
return path;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
function mtimeOf(path) {
|
|
113
|
+
try {
|
|
114
|
+
return statSync(path).mtimeMs;
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
return null; // deleted by the change
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/** Read-only git in `root`; null on any failure. */
|
|
121
|
+
function git(root, args) {
|
|
122
|
+
try {
|
|
123
|
+
return execFileSync('git', args, {
|
|
124
|
+
cwd: root,
|
|
125
|
+
encoding: 'utf-8',
|
|
126
|
+
env: discoveryEnv(),
|
|
127
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
function lines(output) {
|
|
135
|
+
return (output ?? '').split('\n').filter(Boolean);
|
|
136
|
+
}
|
|
137
|
+
function dirtyTracked(root) {
|
|
138
|
+
return lines(git(root, ['diff', '--name-only', '--no-renames', 'HEAD']));
|
|
139
|
+
}
|
|
140
|
+
/** The newest committer time among HEAD and the branch's own commits. */
|
|
141
|
+
function newestChangeCommit(root) {
|
|
142
|
+
const mergeBase = originDefaultMergeBase(root);
|
|
143
|
+
const rows = [
|
|
144
|
+
...lines(git(root, ['log', '-n', '1', '--format=%H %ct', 'HEAD'])),
|
|
145
|
+
...(mergeBase
|
|
146
|
+
? lines(git(root, [
|
|
147
|
+
'log',
|
|
148
|
+
'-n',
|
|
149
|
+
String(MAX_CHANGE_COMMITS),
|
|
150
|
+
'--format=%H %ct',
|
|
151
|
+
`${mergeBase}..HEAD`,
|
|
152
|
+
]))
|
|
153
|
+
: []),
|
|
154
|
+
];
|
|
155
|
+
let newest = null;
|
|
156
|
+
for (const row of rows) {
|
|
157
|
+
const [sha, seconds] = row.split(' ');
|
|
158
|
+
const at = Number(seconds) * 1000;
|
|
159
|
+
if (sha && Number.isFinite(at) && (newest === null || at > newest.at))
|
|
160
|
+
newest = { sha, at };
|
|
161
|
+
}
|
|
162
|
+
return newest;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* What HEAD pointed at when the tests ran: the newest HEAD reflog entry that
|
|
166
|
+
* is not after the run. Null when the reflog does not reach back that far.
|
|
167
|
+
*/
|
|
168
|
+
function headAtRun(root, after) {
|
|
169
|
+
const rows = lines(git(root, [
|
|
170
|
+
'reflog',
|
|
171
|
+
'show',
|
|
172
|
+
'--date=unix',
|
|
173
|
+
'--format=%H %gd',
|
|
174
|
+
'-n',
|
|
175
|
+
String(MAX_REFLOG_ENTRIES),
|
|
176
|
+
'HEAD',
|
|
177
|
+
]));
|
|
178
|
+
for (const row of rows) {
|
|
179
|
+
const match = /^([0-9a-f]{40,64}) HEAD@\{(\d+)\}$/.exec(row);
|
|
180
|
+
if (match?.[1] && match[2] && !after(Number(match[2]) * 1000))
|
|
181
|
+
return match[1];
|
|
182
|
+
}
|
|
183
|
+
return null;
|
|
184
|
+
}
|
|
185
|
+
/** The most recently modified of `paths` that still exists. */
|
|
186
|
+
function newestModified(root, paths) {
|
|
187
|
+
let newest = null;
|
|
188
|
+
for (const path of paths) {
|
|
189
|
+
const at = mtimeOf(resolve(root, path));
|
|
190
|
+
if (at !== null && (newest === null || at > newest.at))
|
|
191
|
+
newest = { path, at };
|
|
192
|
+
}
|
|
193
|
+
return newest;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* When each deletion against `base` (HEAD: the uncommitted ones) happened, as
|
|
197
|
+
* far as the filesystem says: the mtime of the nearest existing directory it
|
|
198
|
+
* was removed from. A rename's old path is a deletion here (`--no-renames`),
|
|
199
|
+
* and a move keeps the moved file's own mtime, so this is the only trace
|
|
200
|
+
* either leaves.
|
|
201
|
+
*/
|
|
202
|
+
function deletionsSince(root, base) {
|
|
203
|
+
const out = git(root, ['diff', '--name-only', '--no-renames', '--diff-filter=D', base]);
|
|
204
|
+
if (out === null)
|
|
205
|
+
return null;
|
|
206
|
+
return lines(out).flatMap((path) => {
|
|
207
|
+
let dir = dirname(resolve(root, path));
|
|
208
|
+
while (!existsSync(dir) && dir.length > root.length)
|
|
209
|
+
dir = dirname(dir);
|
|
210
|
+
const at = mtimeOf(dir);
|
|
211
|
+
return at === null ? [] : [{ path, dir, at }];
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* The first deletion against `base` that happened after the run. Writing the
|
|
216
|
+
* report itself touches its own directory: there, only a change after the
|
|
217
|
+
* report was written counts.
|
|
218
|
+
*/
|
|
219
|
+
function deletedAfterRun(root, base, clock) {
|
|
220
|
+
const reportDir = dirname(clock.reportPath);
|
|
221
|
+
const reportWritten = mtimeOf(clock.reportPath) ?? clock.ranAt;
|
|
222
|
+
return (deletionsSince(root, base) ?? []).find((d) => realpathOr(d.dir) === reportDir
|
|
223
|
+
? d.at > Math.max(clock.ranAt, reportWritten) + MTIME_SLACK_MS
|
|
224
|
+
: clock.after(d.at));
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Why the commits made after the run may hold content the run did not see,
|
|
228
|
+
* or null when they only recorded what was on disk when it ran (T12965
|
|
229
|
+
* review): every path that differs between HEAD as of the run and the
|
|
230
|
+
* working tree now is unmodified, and undeleted, since the run.
|
|
231
|
+
*/
|
|
232
|
+
function committedAfterRunUnseen(root, clock) {
|
|
233
|
+
const atRun = headAtRun(root, clock.after);
|
|
234
|
+
if (atRun === null)
|
|
235
|
+
return 'HEAD as of the run is not in the reflog, so what the run saw is unknown';
|
|
236
|
+
const differing = git(root, ['diff', '--name-only', '--no-renames', atRun]);
|
|
237
|
+
if (differing === null)
|
|
238
|
+
return `git could not diff ${atRun.slice(0, 12)} against the working tree`;
|
|
239
|
+
const touched = newestModified(root, lines(differing).filter((p) => p !== clock.reportRel));
|
|
240
|
+
if (touched !== null && clock.after(touched.at)) {
|
|
241
|
+
return `${touched.path} was modified at ${new Date(touched.at).toISOString()}, after the run`;
|
|
242
|
+
}
|
|
243
|
+
const removed = deletedAfterRun(root, atRun, clock);
|
|
244
|
+
if (removed) {
|
|
245
|
+
return `${removed.path} was deleted or moved at ${new Date(removed.at).toISOString()}, after the run`;
|
|
246
|
+
}
|
|
247
|
+
return null;
|
|
248
|
+
}
|
|
249
|
+
/** The first package (of `packages`, longest directory first) whose directory holds `path`. */
|
|
250
|
+
function ownerOf(path, packages) {
|
|
251
|
+
return packages.find((p) => path === p.dir || path.startsWith(`${p.dir}/`));
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Names of the workspace packages that hold a test file: a tracked one, or
|
|
255
|
+
* one the change adds (an untracked or changed test file on disk).
|
|
256
|
+
*/
|
|
257
|
+
function packagesWithTestFiles(root, packages, changed) {
|
|
258
|
+
const tracked = lines(git(root, ['ls-files', '--', '*.test.*', '*.spec.*']));
|
|
259
|
+
const added = changed.filter((f) => mtimeOf(resolve(root, f)) !== null);
|
|
260
|
+
const owners = new Set();
|
|
261
|
+
for (const file of [...tracked, ...added]) {
|
|
262
|
+
if (!TEST_FILE.test(file))
|
|
263
|
+
continue;
|
|
264
|
+
const owner = ownerOf(file, packages);
|
|
265
|
+
if (owner)
|
|
266
|
+
owners.add(owner.name);
|
|
267
|
+
}
|
|
268
|
+
return owners;
|
|
269
|
+
}
|
|
270
|
+
function staleRefusal(ranAt, what, at, remedy) {
|
|
271
|
+
return (`test-run report is stale: it ran at ${new Date(ranAt).toISOString()}, but ${what} at ` +
|
|
272
|
+
`${new Date(at).toISOString()}, after the run. ${remedy}`);
|
|
273
|
+
}
|
|
274
|
+
/** The remedy for a report older than the change. */
|
|
275
|
+
const RERUN = 'Re-run the tests and record the fresh report (write reports to a gitignored path or outside the checkout).';
|
|
276
|
+
/** Up to five names, then a count. */
|
|
277
|
+
function someNames(names) {
|
|
278
|
+
return `${names.slice(0, 5).join(', ')}${names.length > 5 ? `, … (${names.length} packages)` : ''}`;
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Bind a report to the change it claims to test, or refuse it when it is
|
|
282
|
+
* older than the change or does not cover it (see the module doc for exactly
|
|
283
|
+
* what this guarantees).
|
|
284
|
+
*
|
|
285
|
+
* @param report - Parsed report.
|
|
286
|
+
* @param reportPath - Absolute path of the report file.
|
|
287
|
+
* @param root - The task's checkout (a git checkout, or not).
|
|
288
|
+
* @param testFiles - {@link coveredTestFiles} of the report.
|
|
289
|
+
* @returns The refusal, or the binding with the affected packages left untested.
|
|
290
|
+
* @task T12965
|
|
291
|
+
*/
|
|
292
|
+
export function bindTestRunReport(report, reportPath, root, testFiles) {
|
|
293
|
+
const ranAt = typeof report.startTime === 'number' && Number.isFinite(report.startTime)
|
|
294
|
+
? report.startTime
|
|
295
|
+
: mtimeOf(reportPath);
|
|
296
|
+
if (ranAt === null)
|
|
297
|
+
return { ok: true, untestedPackages: [] };
|
|
298
|
+
const clock = {
|
|
299
|
+
ranAt,
|
|
300
|
+
after: (at) => at > ranAt + MTIME_SLACK_MS,
|
|
301
|
+
reportPath: realpathOr(reportPath),
|
|
302
|
+
reportRel: relative(realpathOr(root), realpathOr(reportPath)).split('\\').join('/'),
|
|
303
|
+
};
|
|
304
|
+
const stale = (reason) => ({
|
|
305
|
+
ok: false,
|
|
306
|
+
codeName: 'E_EVIDENCE_STALE',
|
|
307
|
+
reason,
|
|
308
|
+
});
|
|
309
|
+
const refuse = (reason) => ({
|
|
310
|
+
ok: false,
|
|
311
|
+
codeName: 'E_EVIDENCE_INSUFFICIENT',
|
|
312
|
+
reason,
|
|
313
|
+
});
|
|
314
|
+
const commit = newestChangeCommit(root);
|
|
315
|
+
if (commit !== null && clock.after(commit.at)) {
|
|
316
|
+
const unseen = committedAfterRunUnseen(root, clock);
|
|
317
|
+
if (unseen !== null) {
|
|
318
|
+
return stale(staleRefusal(ranAt, `commit ${commit.sha.slice(0, 12)} of the change was made`, commit.at, `It may hold content the run did not see: ${unseen}. Bind test-run before committing ` +
|
|
319
|
+
'(cleo verify right after the run), or re-run the tests and record the fresh report.'));
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
const changed = changedPathsSinceDefault(root);
|
|
323
|
+
const newest = newestModified(root, (changed ?? dirtyTracked(root)).filter((p) => p !== clock.reportRel));
|
|
324
|
+
if (newest !== null && clock.after(newest.at)) {
|
|
325
|
+
return stale(staleRefusal(ranAt, `${newest.path} was modified`, newest.at, RERUN));
|
|
326
|
+
}
|
|
327
|
+
const removed = deletedAfterRun(root, 'HEAD', clock);
|
|
328
|
+
if (removed) {
|
|
329
|
+
return stale(staleRefusal(ranAt, `${removed.path} was deleted or moved (its directory changed)`, removed.at, RERUN));
|
|
330
|
+
}
|
|
331
|
+
if (changed === null || changed.length === 0)
|
|
332
|
+
return { ok: true, untestedPackages: [] };
|
|
333
|
+
const scope = deriveAffectedPackages(root, changed);
|
|
334
|
+
if (scope.scope === 'full') {
|
|
335
|
+
// A workspace-wide change can break any package: only a full-suite run
|
|
336
|
+
// speaks for it, and no report shows it ran the whole suite.
|
|
337
|
+
return refuse(`The change is workspace-wide (${scope.reason}), so only a full-suite run speaks for it, ` +
|
|
338
|
+
'and a test-run report cannot show that it ran the whole suite (test configs exclude ' +
|
|
339
|
+
'tracked test files, so file counts prove nothing). Record tool:test, which runs the ' +
|
|
340
|
+
'full suite for a workspace-wide change, or ci:<pr> once the PR merges.');
|
|
341
|
+
}
|
|
342
|
+
if (scope.direct.length === 0)
|
|
343
|
+
return { ok: true, untestedPackages: [] };
|
|
344
|
+
// Longest directory first, so a file belongs to its innermost package.
|
|
345
|
+
const workspace = listWorkspacePackages(root).sort((a, b) => b.dir.length - a.dir.length);
|
|
346
|
+
const withTests = packagesWithTestFiles(root, workspace, changed);
|
|
347
|
+
const required = scope.packages.filter((name) => withTests.has(name));
|
|
348
|
+
const untestedPackages = scope.packages.filter((name) => !withTests.has(name));
|
|
349
|
+
if (required.length === 0) {
|
|
350
|
+
return refuse(`No test file exists in the changed package(s) ${someNames(scope.direct)} or in any package ` +
|
|
351
|
+
'that depends on them, so a targeted test-run cannot cover the change. Record tool:test.');
|
|
352
|
+
}
|
|
353
|
+
const covered = new Set(testFiles.flatMap((f) => ownerOf(f, workspace)?.name ?? []));
|
|
354
|
+
const missing = required.filter((name) => !covered.has(name));
|
|
355
|
+
if (missing.length === 0)
|
|
356
|
+
return { ok: true, untestedPackages };
|
|
357
|
+
const labelled = missing.map((name) => scope.direct.includes(name) ? `${name} (changed)` : `${name} (depends on a changed package)`);
|
|
358
|
+
return refuse(`${testFiles.length === 0
|
|
359
|
+
? 'test-run report lists no test files, so it covers no test file of'
|
|
360
|
+
: 'test-run report covers no test file of'} ${someNames(labelled)}. A targeted report must cover every affected package that has ` +
|
|
361
|
+
'tests — each changed package and each package that depends on one, the set ' +
|
|
362
|
+
'tool:test-affected runs. Run those tests and record the report, or record ' +
|
|
363
|
+
'tool:test-affected (or tool:test).');
|
|
364
|
+
}
|
|
365
|
+
//# sourceMappingURL=test-run-binding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-run-binding.js","sourceRoot":"","sources":["../../src/tasks/test-run-binding.ts"],"names":[],"mappings":"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"}
|