@cleocode/core 2026.9.26 → 2026.10.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/dist/build-provenance.json +2 -2
- 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 +309 -10
- package/dist/cloud/manifest-check.js.map +1 -1
- package/dist/cloud/nexus-attach.d.ts +119 -0
- package/dist/cloud/nexus-attach.d.ts.map +1 -0
- package/dist/cloud/nexus-attach.js +267 -0
- package/dist/cloud/nexus-attach.js.map +1 -0
- package/dist/cloud/nexus-auth.d.ts +15 -3
- package/dist/cloud/nexus-auth.d.ts.map +1 -1
- package/dist/cloud/nexus-auth.js +90 -6
- package/dist/cloud/nexus-auth.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 +132 -0
- package/dist/cloud/nexus-cloud-status.d.ts.map +1 -0
- package/dist/cloud/nexus-cloud-status.js +476 -0
- package/dist/cloud/nexus-cloud-status.js.map +1 -0
- package/dist/cloud/nexus-cloud.d.ts +179 -0
- package/dist/cloud/nexus-cloud.d.ts.map +1 -0
- package/dist/cloud/nexus-cloud.js +296 -0
- package/dist/cloud/nexus-cloud.js.map +1 -0
- package/dist/cloud/nexus-device.d.ts +32 -7
- package/dist/cloud/nexus-device.d.ts.map +1 -1
- package/dist/cloud/nexus-device.js +54 -7
- package/dist/cloud/nexus-device.js.map +1 -1
- package/dist/cloud/nexus-enrol.d.ts +35 -4
- package/dist/cloud/nexus-enrol.d.ts.map +1 -1
- package/dist/cloud/nexus-enrol.js +192 -47
- 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-link.d.ts +8 -1
- package/dist/cloud/nexus-link.d.ts.map +1 -1
- package/dist/cloud/nexus-link.js +138 -11
- package/dist/cloud/nexus-link.js.map +1 -1
- package/dist/cloud/nexus-logout.d.ts +114 -0
- package/dist/cloud/nexus-logout.d.ts.map +1 -0
- package/dist/cloud/nexus-logout.js +429 -0
- package/dist/cloud/nexus-logout.js.map +1 -0
- package/dist/cloud/nexus-vault-keys.d.ts +129 -0
- package/dist/cloud/nexus-vault-keys.d.ts.map +1 -0
- package/dist/cloud/nexus-vault-keys.js +277 -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 +1733 -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 +8341 -3317
- 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 +8668 -3644
- 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 +8676 -3652
- 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/setup/sections/nexus-account.d.ts +8 -6
- package/dist/setup/sections/nexus-account.d.ts.map +1 -1
- package/dist/setup/sections/nexus-account.js +53 -9
- package/dist/setup/sections/nexus-account.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 +20 -0
- package/dist/store/portable-bundle-scan.d.ts.map +1 -1
- package/dist/store/portable-bundle-scan.js +38 -3
- package/dist/store/portable-bundle-scan.js.map +1 -1
- package/dist/store/portable-bundle.d.ts +33 -0
- package/dist/store/portable-bundle.d.ts.map +1 -1
- package/dist/store/portable-bundle.js +34 -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 +59 -3
- package/dist/store/sync/replica.d.ts.map +1 -1
- package/dist/store/sync/replica.js +84 -3
- package/dist/store/sync/replica.js.map +1 -1
- package/dist/store/sync/schema.d.ts +18 -3
- package/dist/store/sync/schema.d.ts.map +1 -1
- package/dist/store/sync/schema.js +27 -3
- 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,285 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Failed-first reruns for `tool:test` (T12961).
|
|
3
|
+
*
|
|
4
|
+
* When a test run fails, the failing test FILES are parsed out of the runner's
|
|
5
|
+
* output and remembered per execution root. The next test run in that root —
|
|
6
|
+
* normally after an attempted fix, so on a different tree and a cache miss —
|
|
7
|
+
* runs only those files first:
|
|
8
|
+
*
|
|
9
|
+
* - still failing (with a parseable FAIL line) → the caller gets that red
|
|
10
|
+
* result at once and the full run is skipped. It is NOT cached under the
|
|
11
|
+
* full command's key — the suite did not run — and the pointer moves to
|
|
12
|
+
* the current tree, so the next run on this same tree runs the normal
|
|
13
|
+
* command, which decides;
|
|
14
|
+
* - passing, or no FAIL line (a startup crash) → the normal run (full or
|
|
15
|
+
* affected) proceeds as before.
|
|
16
|
+
*
|
|
17
|
+
* Everything here is best-effort and fails OPEN to today's behaviour: when the
|
|
18
|
+
* failing files cannot be parsed, resolved to tracked files, or mapped to a
|
|
19
|
+
* runnable vitest binary and config, no focused run is planned and the normal
|
|
20
|
+
* command runs unchanged. `CLEO_EVIDENCE_FRESH=1` skips failed-first. A
|
|
21
|
+
* focused run can only ever *shorten* a red result; it can never produce or
|
|
22
|
+
* cache a pass, because a pass always falls through to the normal command.
|
|
23
|
+
*
|
|
24
|
+
* The flake retry lives in `runToolCached`: a failing normal run is re-run in
|
|
25
|
+
* FULL once, never through a focused run.
|
|
26
|
+
*
|
|
27
|
+
* ## Why the default reporter's text, not a JSON reporter
|
|
28
|
+
*
|
|
29
|
+
* The resolved test command is the project's own (`pnpm run test`, a pinned
|
|
30
|
+
* `testing.command`, an affected-packages command). Injecting
|
|
31
|
+
* `--reporter=json --outputFile=…` into it would change the command — and
|
|
32
|
+
* therefore the cache key and the evidence identity — and does not compose
|
|
33
|
+
* with scripts that fan out (`pnpm -r test`). The `FAIL <file>` lines of the
|
|
34
|
+
* vitest and jest default reporters sit in the closing summary, which is
|
|
35
|
+
* exactly the part the 64 KiB stream tail retains.
|
|
36
|
+
*
|
|
37
|
+
* ## Why the pointer is keyed on (tool, execution root), not on the command
|
|
38
|
+
*
|
|
39
|
+
* A failing test file is a failing test file whichever command found it: a
|
|
40
|
+
* full run's failures are just as worth re-running first before an affected
|
|
41
|
+
* run, whose command (and therefore cache key) differs. Scoping by execution
|
|
42
|
+
* root keeps one agent's red files out of another worktree's runs. Even if
|
|
43
|
+
* they did cross, a focused failure is a genuine failure of THIS tree's tests.
|
|
44
|
+
*
|
|
45
|
+
* @task T12961
|
|
46
|
+
*/
|
|
47
|
+
import { createHash } from 'node:crypto';
|
|
48
|
+
import { existsSync, readFileSync, renameSync, rmSync, writeFileSync } from 'node:fs';
|
|
49
|
+
import { dirname, isAbsolute, join, relative, resolve, sep } from 'node:path';
|
|
50
|
+
/** Canonical tools that record failing files and get failed-first reruns. */
|
|
51
|
+
export const FAILED_FIRST_TOOLS = new Set(['test']);
|
|
52
|
+
/**
|
|
53
|
+
* Most failing files remembered. A larger red set means the tree is broadly
|
|
54
|
+
* broken; the full run is the right next step and the pointer is dropped.
|
|
55
|
+
*/
|
|
56
|
+
export const MAX_FAILED_TEST_FILES = 100;
|
|
57
|
+
// ---------------------------------------------------------------------------
|
|
58
|
+
// Parsing
|
|
59
|
+
// ---------------------------------------------------------------------------
|
|
60
|
+
const ANSI = /\u001b\[[0-9;]*[A-Za-z]/g;
|
|
61
|
+
/** A test-file path: `*.test.*` / `*.spec.*` with a JS/TS extension. */
|
|
62
|
+
const TEST_FILE = String.raw `(\S+?\.(?:test|spec)\.[cm]?[jt]sx?)`;
|
|
63
|
+
/** Optional vitest project label: `|core| `. */
|
|
64
|
+
const PROJECT_LABEL = String.raw `(?:\|[^|]+\|\s+)?`;
|
|
65
|
+
/** ` FAIL src/a.test.ts > suite > case` (vitest) or `FAIL src/a.test.ts` (jest). */
|
|
66
|
+
const FAIL_LINE = new RegExp(String.raw `^\s*FAIL\s+${PROJECT_LABEL}${TEST_FILE}(?:\s|$)`);
|
|
67
|
+
/** ` ❯ src/a.test.ts (3 tests | 1 failed) 12ms` — vitest's per-file summary. */
|
|
68
|
+
const FILE_SUMMARY_LINE = new RegExp(String.raw `^\s*❯\s+${PROJECT_LABEL}${TEST_FILE}\s+\(.*\bfailed\b`);
|
|
69
|
+
/** `packages/core test: <line>` — the prefix `pnpm -r` puts on child output. */
|
|
70
|
+
const PNPM_RECURSIVE_PREFIX = /^([^\s:]+) [\w:.-]+: (.*)$/;
|
|
71
|
+
/**
|
|
72
|
+
* Raw `{base, file}` references to failing test files in runner output.
|
|
73
|
+
*
|
|
74
|
+
* @internal exported for tests
|
|
75
|
+
*/
|
|
76
|
+
export function extractFailingTestRefs(output) {
|
|
77
|
+
const refs = [];
|
|
78
|
+
for (const rawLine of output.replace(ANSI, '').split(/\r?\n/)) {
|
|
79
|
+
let line = rawLine;
|
|
80
|
+
let base = null;
|
|
81
|
+
const prefixed = PNPM_RECURSIVE_PREFIX.exec(line);
|
|
82
|
+
if (prefixed?.[1] && prefixed[2] !== undefined) {
|
|
83
|
+
base = prefixed[1];
|
|
84
|
+
line = prefixed[2];
|
|
85
|
+
}
|
|
86
|
+
const m = FAIL_LINE.exec(line) ?? FILE_SUMMARY_LINE.exec(line);
|
|
87
|
+
if (m?.[1])
|
|
88
|
+
refs.push({ base, file: m[1] });
|
|
89
|
+
}
|
|
90
|
+
return refs;
|
|
91
|
+
}
|
|
92
|
+
function toPosix(p) {
|
|
93
|
+
return sep === '/' ? p : p.split(sep).join('/');
|
|
94
|
+
}
|
|
95
|
+
/** `p` relative to `root` when it is an existing file inside it, else `null`. */
|
|
96
|
+
function insideRoot(root, p) {
|
|
97
|
+
const rel = relative(root, p);
|
|
98
|
+
if (rel === '' || rel.startsWith('..') || isAbsolute(rel))
|
|
99
|
+
return null;
|
|
100
|
+
return existsSync(p) ? toPosix(rel) : null;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Parse the failing test files out of a run's output and resolve each to a
|
|
104
|
+
* path relative to `executionRoot`.
|
|
105
|
+
*
|
|
106
|
+
* A reported path is tried against the `pnpm -r` package prefix, the
|
|
107
|
+
* execution root itself, and `searchBase` (the cwd of a focused run). A path
|
|
108
|
+
* none of those resolve is looked up among tracked files by suffix and kept
|
|
109
|
+
* only when exactly one matches. Unresolvable references are dropped; an empty
|
|
110
|
+
* result means "unknown" and disables failed-first for the next run.
|
|
111
|
+
*
|
|
112
|
+
* @param output - stdout and stderr of the run (ANSI allowed).
|
|
113
|
+
* @param executionRoot - Tree the run executed in.
|
|
114
|
+
* @param trackedFiles - Lazily supplied tracked-file list for suffix lookup.
|
|
115
|
+
* @param searchBase - Extra directory paths may be relative to.
|
|
116
|
+
* @returns Sorted, de-duplicated repo-relative paths; `[]` when unknown or
|
|
117
|
+
* when more than {@link MAX_FAILED_TEST_FILES} failed.
|
|
118
|
+
*
|
|
119
|
+
* @task T12961
|
|
120
|
+
*/
|
|
121
|
+
export function parseFailingTestFiles(output, executionRoot, trackedFiles = () => [], searchBase) {
|
|
122
|
+
const found = new Set();
|
|
123
|
+
for (const { base, file } of extractFailingTestRefs(output)) {
|
|
124
|
+
const candidates = [];
|
|
125
|
+
if (isAbsolute(file))
|
|
126
|
+
candidates.push(file);
|
|
127
|
+
else {
|
|
128
|
+
if (base !== null)
|
|
129
|
+
candidates.push(resolve(executionRoot, base, file));
|
|
130
|
+
if (searchBase !== undefined)
|
|
131
|
+
candidates.push(resolve(searchBase, file));
|
|
132
|
+
candidates.push(resolve(executionRoot, file));
|
|
133
|
+
}
|
|
134
|
+
let hit = null;
|
|
135
|
+
for (const c of candidates) {
|
|
136
|
+
hit = insideRoot(executionRoot, c);
|
|
137
|
+
if (hit !== null)
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
if (hit === null && !isAbsolute(file)) {
|
|
141
|
+
const suffix = `/${toPosix(file).replace(/^\.\//, '')}`;
|
|
142
|
+
const matches = trackedFiles().filter((t) => `/${t}`.endsWith(suffix));
|
|
143
|
+
if (matches.length === 1 && matches[0])
|
|
144
|
+
hit = matches[0];
|
|
145
|
+
}
|
|
146
|
+
if (hit !== null)
|
|
147
|
+
found.add(hit);
|
|
148
|
+
}
|
|
149
|
+
if (found.size > MAX_FAILED_TEST_FILES)
|
|
150
|
+
return [];
|
|
151
|
+
return [...found].sort();
|
|
152
|
+
}
|
|
153
|
+
/** `true` when vitest reported that the filters matched no test file. */
|
|
154
|
+
export function reportsNoTestFiles(output) {
|
|
155
|
+
return /No test files found/i.test(output.replace(ANSI, ''));
|
|
156
|
+
}
|
|
157
|
+
// ---------------------------------------------------------------------------
|
|
158
|
+
// Planning the focused run
|
|
159
|
+
// ---------------------------------------------------------------------------
|
|
160
|
+
const VITEST_CONFIG_NAMES = ['ts', 'mts', 'cts', 'js', 'mjs', 'cjs'].map((ext) => `vitest.config.${ext}`);
|
|
161
|
+
/** Nearest directory from `start` up to `root` (inclusive) satisfying `test`. */
|
|
162
|
+
function findUp(start, root, test) {
|
|
163
|
+
let dir = start;
|
|
164
|
+
for (;;) {
|
|
165
|
+
if (test(dir))
|
|
166
|
+
return dir;
|
|
167
|
+
if (dir === root)
|
|
168
|
+
return null;
|
|
169
|
+
const parent = dirname(dir);
|
|
170
|
+
if (parent === dir || relative(root, parent).startsWith('..'))
|
|
171
|
+
return null;
|
|
172
|
+
dir = parent;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Plan the focused invocations that re-run `files` in `executionRoot`.
|
|
177
|
+
*
|
|
178
|
+
* Each file runs under the vitest config nearest to it — the same config a
|
|
179
|
+
* `cd <package> && vitest run <file>` would use — with the nearest
|
|
180
|
+
* `node_modules/.bin/vitest`. Files are grouped per config directory.
|
|
181
|
+
*
|
|
182
|
+
* @returns The runs, or `null` when any file is gone or has no vitest config
|
|
183
|
+
* or binary (failed-first is then skipped; the normal command runs).
|
|
184
|
+
*
|
|
185
|
+
* @task T12961
|
|
186
|
+
*/
|
|
187
|
+
export function planFocusedRuns(files, executionRoot) {
|
|
188
|
+
if (files.length === 0)
|
|
189
|
+
return null;
|
|
190
|
+
const bin = process.platform === 'win32' ? 'vitest.cmd' : 'vitest';
|
|
191
|
+
const groups = new Map();
|
|
192
|
+
for (const file of files) {
|
|
193
|
+
const abs = resolve(executionRoot, file);
|
|
194
|
+
if (!existsSync(abs))
|
|
195
|
+
return null;
|
|
196
|
+
const configDir = findUp(dirname(abs), executionRoot, (d) => VITEST_CONFIG_NAMES.some((n) => existsSync(join(d, n))));
|
|
197
|
+
if (configDir === null)
|
|
198
|
+
return null;
|
|
199
|
+
let group = groups.get(configDir);
|
|
200
|
+
if (!group) {
|
|
201
|
+
const binDir = findUp(configDir, executionRoot, (d) => existsSync(join(d, 'node_modules', '.bin', bin)));
|
|
202
|
+
if (binDir === null)
|
|
203
|
+
return null;
|
|
204
|
+
group = { cwd: configDir, cmd: join(binDir, 'node_modules', '.bin', bin), args: ['run'] };
|
|
205
|
+
groups.set(configDir, group);
|
|
206
|
+
}
|
|
207
|
+
group.args.push(toPosix(relative(configDir, abs)));
|
|
208
|
+
}
|
|
209
|
+
return [...groups.values()];
|
|
210
|
+
}
|
|
211
|
+
// ---------------------------------------------------------------------------
|
|
212
|
+
// Pointer IO
|
|
213
|
+
// ---------------------------------------------------------------------------
|
|
214
|
+
/**
|
|
215
|
+
* Path of the failed-first pointer for one (tool, execution root). Lives in
|
|
216
|
+
* the evidence cache directory, so `clearToolCache` removes it too.
|
|
217
|
+
*
|
|
218
|
+
* @param storeRoot - CLEO store root holding `.cleo/cache/evidence/`.
|
|
219
|
+
* @param canonical - Canonical tool name.
|
|
220
|
+
* @param executionRoot - Normalised execution root.
|
|
221
|
+
*
|
|
222
|
+
* @task T12961
|
|
223
|
+
*/
|
|
224
|
+
export function failedFirstPointerPath(storeRoot, canonical, executionRoot) {
|
|
225
|
+
const id = createHash('sha256')
|
|
226
|
+
.update(JSON.stringify([canonical, executionRoot]))
|
|
227
|
+
.digest('hex')
|
|
228
|
+
.slice(0, 32);
|
|
229
|
+
return join(storeRoot, '.cleo', 'cache', 'evidence', `failed-first-${id}.json`);
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Read the failed-first pointer, or `null` when absent or malformed.
|
|
233
|
+
*
|
|
234
|
+
* @task T12961
|
|
235
|
+
*/
|
|
236
|
+
export function readFailedFirstPointer(storeRoot, canonical, executionRoot) {
|
|
237
|
+
const path = failedFirstPointerPath(storeRoot, canonical, executionRoot);
|
|
238
|
+
if (!existsSync(path))
|
|
239
|
+
return null;
|
|
240
|
+
try {
|
|
241
|
+
const parsed = JSON.parse(readFileSync(path, 'utf-8'));
|
|
242
|
+
if (parsed.schemaVersion !== 1 ||
|
|
243
|
+
parsed.canonical !== canonical ||
|
|
244
|
+
parsed.executionRoot !== executionRoot ||
|
|
245
|
+
!Array.isArray(parsed.files) ||
|
|
246
|
+
parsed.files.length === 0 ||
|
|
247
|
+
!parsed.files.every((f) => typeof f === 'string')) {
|
|
248
|
+
return null;
|
|
249
|
+
}
|
|
250
|
+
return parsed;
|
|
251
|
+
}
|
|
252
|
+
catch {
|
|
253
|
+
return null;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Remember `files` as the failing set, or forget it when `files` is empty.
|
|
258
|
+
* The cache directory must already exist.
|
|
259
|
+
*
|
|
260
|
+
* @task T12961
|
|
261
|
+
*/
|
|
262
|
+
export function writeFailedFirstPointer(storeRoot, canonical, executionRoot, files, treeHash) {
|
|
263
|
+
const path = failedFirstPointerPath(storeRoot, canonical, executionRoot);
|
|
264
|
+
try {
|
|
265
|
+
if (files.length === 0) {
|
|
266
|
+
rmSync(path, { force: true });
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
const pointer = {
|
|
270
|
+
schemaVersion: 1,
|
|
271
|
+
canonical,
|
|
272
|
+
executionRoot,
|
|
273
|
+
files: [...files],
|
|
274
|
+
treeHash,
|
|
275
|
+
capturedAt: new Date().toISOString(),
|
|
276
|
+
};
|
|
277
|
+
const tmp = `${path}.${process.pid}.tmp`;
|
|
278
|
+
writeFileSync(tmp, JSON.stringify(pointer, null, 2), 'utf-8');
|
|
279
|
+
renameSync(tmp, path);
|
|
280
|
+
}
|
|
281
|
+
catch {
|
|
282
|
+
// Best-effort: losing the pointer only costs the optimisation.
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
//# sourceMappingURL=tool-cache-failed-first.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-cache-failed-first.js","sourceRoot":"","sources":["../../src/tasks/tool-cache-failed-first.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAE9E,6EAA6E;AAC7E,MAAM,CAAC,MAAM,kBAAkB,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEzE;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAuCzC,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,IAAI,GAAG,0BAA0B,CAAC;AAExC,wEAAwE;AACxE,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAA,qCAAqC,CAAC;AAClE,gDAAgD;AAChD,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAA,mBAAmB,CAAC;AACpD,qFAAqF;AACrF,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,cAAc,aAAa,GAAG,SAAS,UAAU,CAAC,CAAC;AAC1F,gFAAgF;AAChF,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAClC,MAAM,CAAC,GAAG,CAAA,WAAW,aAAa,GAAG,SAAS,mBAAmB,CAClE,CAAC;AACF,gFAAgF;AAChF,MAAM,qBAAqB,GAAG,4BAA4B,CAAC;AAE3D;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAc;IAEd,MAAM,IAAI,GAAiD,EAAE,CAAC;IAC9D,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9D,IAAI,IAAI,GAAG,OAAO,CAAC;QACnB,IAAI,IAAI,GAAkB,IAAI,CAAC;QAC/B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC/C,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACnB,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,OAAO,CAAC,CAAS;IACxB,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC;AAED,iFAAiF;AACjF,SAAS,UAAU,CAAC,IAAY,EAAE,CAAS;IACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9B,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACvE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAc,EACd,aAAqB,EACrB,eAAwC,GAAG,EAAE,CAAC,EAAE,EAChD,UAAmB;IAEnB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,IAAI,UAAU,CAAC,IAAI,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvC,CAAC;YACJ,IAAI,IAAI,KAAK,IAAI;gBAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACvE,IAAI,UAAU,KAAK,SAAS;gBAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;YACzE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,GAAG,GAAkB,IAAI,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,GAAG,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;YACnC,IAAI,GAAG,KAAK,IAAI;gBAAE,MAAM;QAC1B,CAAC;QACD,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;YACxD,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YACvE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;gBAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,GAAG,KAAK,IAAI;YAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,GAAG,qBAAqB;QAAE,OAAO,EAAE,CAAC;IAClD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,OAAO,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,CACtE,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,GAAG,EAAE,CAChC,CAAC;AAEF,iFAAiF;AACjF,SAAS,MAAM,CAAC,KAAa,EAAE,IAAY,EAAE,IAA8B;IACzE,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,SAAS,CAAC;QACR,IAAI,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;QAC1B,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3E,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAwB,EACxB,aAAqB;IAErB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;IACnE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAClC,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAC1D,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CACxD,CAAC;QACF,IAAI,SAAS,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACpC,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CACpD,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CACjD,CAAC;YACF,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YACjC,KAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1F,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CACpC,SAAiB,EACjB,SAAiB,EACjB,aAAqB;IAErB,MAAM,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC;SAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;SAClD,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChB,OAAO,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;AAClF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,SAAiB,EACjB,SAAiB,EACjB,aAAqB;IAErB,MAAM,IAAI,GAAG,sBAAsB,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IACzE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAgC,CAAC;QACtF,IACE,MAAM,CAAC,aAAa,KAAK,CAAC;YAC1B,MAAM,CAAC,SAAS,KAAK,SAAS;YAC9B,MAAM,CAAC,aAAa,KAAK,aAAa;YACtC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YACzB,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EACjD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,MAA4B,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,SAAiB,EACjB,SAAiB,EACjB,aAAqB,EACrB,KAAwB,EACxB,QAAuB;IAEvB,MAAM,IAAI,GAAG,sBAAsB,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IACzE,IAAI,CAAC;QACH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAuB;YAClC,aAAa,EAAE,CAAC;YAChB,SAAS;YACT,aAAa;YACb,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;YACjB,QAAQ;YACR,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC;QACF,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;QACzC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC9D,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,+DAA+D;IACjE,CAAC;AACH,CAAC"}
|