@cleocode/core 2026.9.22 → 2026.9.24
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/admin/import-tasks.d.ts.map +1 -1
- package/dist/admin/import-tasks.js +35 -6
- package/dist/admin/import-tasks.js.map +1 -1
- package/dist/admin/import.d.ts.map +1 -1
- package/dist/admin/import.js +25 -6
- package/dist/admin/import.js.map +1 -1
- package/dist/build-provenance.json +6 -0
- package/dist/cloud/http.d.ts +8 -0
- package/dist/cloud/http.d.ts.map +1 -1
- package/dist/cloud/http.js +8 -1
- package/dist/cloud/http.js.map +1 -1
- package/dist/cloud/index.d.ts +6 -1
- package/dist/cloud/index.d.ts.map +1 -1
- package/dist/cloud/index.js +6 -1
- package/dist/cloud/index.js.map +1 -1
- package/dist/cloud/nexus-auth.d.ts +169 -0
- package/dist/cloud/nexus-auth.d.ts.map +1 -0
- package/dist/cloud/nexus-auth.js +372 -0
- package/dist/cloud/nexus-auth.js.map +1 -0
- package/dist/cloud/nexus-credentials.d.ts +188 -0
- package/dist/cloud/nexus-credentials.d.ts.map +1 -0
- package/dist/cloud/nexus-credentials.js +323 -0
- package/dist/cloud/nexus-credentials.js.map +1 -0
- package/dist/cloud/nexus-link.d.ts +85 -0
- package/dist/cloud/nexus-link.d.ts.map +1 -0
- package/dist/cloud/nexus-link.js +226 -0
- package/dist/cloud/nexus-link.js.map +1 -0
- package/dist/cloud/presence.d.ts +88 -0
- package/dist/cloud/presence.d.ts.map +1 -0
- package/dist/cloud/presence.js +137 -0
- package/dist/cloud/presence.js.map +1 -0
- package/dist/cloud/projects.d.ts +3 -1
- package/dist/cloud/projects.d.ts.map +1 -1
- package/dist/cloud/projects.js +4 -2
- package/dist/cloud/projects.js.map +1 -1
- package/dist/crypto/credentials.d.ts +14 -4
- package/dist/crypto/credentials.d.ts.map +1 -1
- package/dist/crypto/credentials.js +15 -1
- package/dist/crypto/credentials.js.map +1 -1
- package/dist/decide/audit.d.ts +7 -1
- package/dist/decide/audit.d.ts.map +1 -1
- package/dist/decide/audit.js.map +1 -1
- package/dist/decide/bench/dataset.d.ts +125 -0
- package/dist/decide/bench/dataset.d.ts.map +1 -0
- package/dist/decide/bench/dataset.js +457 -0
- package/dist/decide/bench/dataset.js.map +1 -0
- package/dist/decide/bench/index.d.ts +23 -0
- package/dist/decide/bench/index.d.ts.map +1 -0
- package/dist/decide/bench/index.js +23 -0
- package/dist/decide/bench/index.js.map +1 -0
- package/dist/decide/bench/metrics.d.ts +55 -0
- package/dist/decide/bench/metrics.d.ts.map +1 -0
- package/dist/decide/bench/metrics.js +100 -0
- package/dist/decide/bench/metrics.js.map +1 -0
- package/dist/decide/bench/operation.d.ts +119 -0
- package/dist/decide/bench/operation.d.ts.map +1 -0
- package/dist/decide/bench/operation.js +171 -0
- package/dist/decide/bench/operation.js.map +1 -0
- package/dist/decide/bench/profiles.d.ts +74 -0
- package/dist/decide/bench/profiles.d.ts.map +1 -0
- package/dist/decide/bench/profiles.js +131 -0
- package/dist/decide/bench/profiles.js.map +1 -0
- package/dist/decide/bench/questions.d.ts +40 -0
- package/dist/decide/bench/questions.d.ts.map +1 -0
- package/dist/decide/bench/questions.js +107 -0
- package/dist/decide/bench/questions.js.map +1 -0
- package/dist/decide/bench/report.d.ts +21 -0
- package/dist/decide/bench/report.d.ts.map +1 -0
- package/dist/decide/bench/report.js +120 -0
- package/dist/decide/bench/report.js.map +1 -0
- package/dist/decide/bench/runner.d.ts +203 -0
- package/dist/decide/bench/runner.d.ts.map +1 -0
- package/dist/decide/bench/runner.js +335 -0
- package/dist/decide/bench/runner.js.map +1 -0
- package/dist/decide/bench/source.d.ts +21 -0
- package/dist/decide/bench/source.d.ts.map +1 -0
- package/dist/decide/bench/source.js +67 -0
- package/dist/decide/bench/source.js.map +1 -0
- package/dist/decide/bench/spot-check.d.ts +117 -0
- package/dist/decide/bench/spot-check.d.ts.map +1 -0
- package/dist/decide/bench/spot-check.js +221 -0
- package/dist/decide/bench/spot-check.js.map +1 -0
- package/dist/decide/bench/stats.d.ts +57 -0
- package/dist/decide/bench/stats.d.ts.map +1 -0
- package/dist/decide/bench/stats.js +82 -0
- package/dist/decide/bench/stats.js.map +1 -0
- package/dist/decide/bench/types.d.ts +216 -0
- package/dist/decide/bench/types.d.ts.map +1 -0
- package/dist/decide/bench/types.js +104 -0
- package/dist/decide/bench/types.js.map +1 -0
- package/dist/decide/client.d.ts +80 -4
- package/dist/decide/client.d.ts.map +1 -1
- package/dist/decide/client.js +428 -39
- package/dist/decide/client.js.map +1 -1
- package/dist/decide/credentials.d.ts +200 -16
- package/dist/decide/credentials.d.ts.map +1 -1
- package/dist/decide/credentials.js +547 -45
- package/dist/decide/credentials.js.map +1 -1
- package/dist/decide/index.d.ts +10 -4
- package/dist/decide/index.d.ts.map +1 -1
- package/dist/decide/index.js +10 -4
- package/dist/decide/index.js.map +1 -1
- package/dist/decide/jev-wire.d.ts +105 -7
- package/dist/decide/jev-wire.d.ts.map +1 -1
- package/dist/decide/jev-wire.js +426 -54
- package/dist/decide/jev-wire.js.map +1 -1
- package/dist/decide/operations.d.ts +149 -21
- package/dist/decide/operations.d.ts.map +1 -1
- package/dist/decide/operations.js +241 -31
- package/dist/decide/operations.js.map +1 -1
- package/dist/decide/provider-state.d.ts +162 -0
- package/dist/decide/provider-state.d.ts.map +1 -0
- package/dist/decide/provider-state.js +267 -0
- package/dist/decide/provider-state.js.map +1 -0
- package/dist/decide/provider.d.ts +31 -5
- package/dist/decide/provider.d.ts.map +1 -1
- package/dist/decide/provider.js.map +1 -1
- package/dist/decide/providers.d.ts +71 -0
- package/dist/decide/providers.d.ts.map +1 -0
- package/dist/decide/providers.js +85 -0
- package/dist/decide/providers.js.map +1 -0
- package/dist/decide/site.d.ts +2 -2
- package/dist/decide/site.d.ts.map +1 -1
- package/dist/decide/site.js +2 -0
- package/dist/decide/site.js.map +1 -1
- package/dist/decide/sites/list.d.ts +46 -0
- package/dist/decide/sites/list.d.ts.map +1 -0
- package/dist/decide/sites/list.js +206 -0
- package/dist/decide/sites/list.js.map +1 -0
- package/dist/decide/sites/registry.d.ts +152 -0
- package/dist/decide/sites/registry.d.ts.map +1 -0
- package/dist/decide/sites/registry.js +398 -0
- package/dist/decide/sites/registry.js.map +1 -0
- package/dist/decide/spend.d.ts +196 -0
- package/dist/decide/spend.d.ts.map +1 -0
- package/dist/decide/spend.js +387 -0
- package/dist/decide/spend.js.map +1 -0
- package/dist/decide/wizard.d.ts +61 -0
- package/dist/decide/wizard.d.ts.map +1 -0
- package/dist/decide/wizard.js +197 -0
- package/dist/decide/wizard.js.map +1 -0
- package/dist/dispatch/mvi-projection.d.ts +15 -2
- package/dist/dispatch/mvi-projection.d.ts.map +1 -1
- package/dist/dispatch/mvi-projection.js +73 -12
- package/dist/dispatch/mvi-projection.js.map +1 -1
- package/dist/docs/adr-allocator.d.ts +2 -2
- package/dist/docs/adr-allocator.d.ts.map +1 -1
- package/dist/docs/adr-allocator.js +17 -4
- package/dist/docs/adr-allocator.js.map +1 -1
- package/dist/docs/blob-consolidation.js +1 -1
- package/dist/docs/blob-consolidation.js.map +1 -1
- package/dist/docs/display-alias.d.ts +1 -1
- package/dist/docs/display-alias.d.ts.map +1 -1
- package/dist/docs/display-alias.js +7 -4
- package/dist/docs/display-alias.js.map +1 -1
- package/dist/docs/docs-audit.d.ts.map +1 -1
- package/dist/docs/docs-audit.js +1 -2
- package/dist/docs/docs-audit.js.map +1 -1
- package/dist/docs/docs-inconsistency-detector.js +1 -1
- package/dist/docs/docs-inconsistency-detector.js.map +1 -1
- package/dist/docs/docs-update.d.ts.map +1 -1
- package/dist/docs/docs-update.js +6 -1
- package/dist/docs/docs-update.js.map +1 -1
- package/dist/docs/export-document.js +3462 -1227
- package/dist/docs/export-document.js.map +3 -3
- package/dist/docs/numbering.js +1 -1
- package/dist/docs/numbering.js.map +1 -1
- package/dist/docs/supersede.d.ts.map +1 -1
- package/dist/docs/supersede.js +6 -3
- package/dist/docs/supersede.js.map +1 -1
- package/dist/docs/version-ssot.js +1 -1
- package/dist/docs/version-ssot.js.map +1 -1
- package/dist/doctor/db-substrate.d.ts.map +1 -1
- package/dist/doctor/db-substrate.js +39 -24
- package/dist/doctor/db-substrate.js.map +1 -1
- package/dist/doctor/knowledge-summary.d.ts +10 -3
- package/dist/doctor/knowledge-summary.d.ts.map +1 -1
- package/dist/doctor/knowledge-summary.js +10 -3
- package/dist/doctor/knowledge-summary.js.map +1 -1
- package/dist/doctor/project-identity.d.ts +128 -37
- package/dist/doctor/project-identity.d.ts.map +1 -1
- package/dist/doctor/project-identity.js +476 -63
- package/dist/doctor/project-identity.js.map +1 -1
- package/dist/doctor/twin-collapse.d.ts +52 -2
- package/dist/doctor/twin-collapse.d.ts.map +1 -1
- package/dist/doctor/twin-collapse.js +108 -4
- package/dist/doctor/twin-collapse.js.map +1 -1
- package/dist/error-catalog.js +2 -2
- package/dist/error-catalog.js.map +1 -1
- package/dist/error-registry.js +1 -1
- package/dist/error-registry.js.map +1 -1
- package/dist/gateway-client/generated/types.gen.d.ts +22 -2
- package/dist/gateway-client/generated/types.gen.d.ts.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/init/scaffold-workflows.d.ts.map +1 -1
- package/dist/init/scaffold-workflows.js +6 -3
- package/dist/init/scaffold-workflows.js.map +1 -1
- package/dist/init/upgrade-workflows.d.ts.map +1 -1
- package/dist/init/upgrade-workflows.js +6 -3
- package/dist/init/upgrade-workflows.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +20 -11
- package/dist/init.js.map +1 -1
- package/dist/inject/index.d.ts.map +1 -1
- package/dist/inject/index.js +2 -3
- package/dist/inject/index.js.map +1 -1
- package/dist/internal.d.ts +6 -5
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +7 -5
- package/dist/internal.js.map +1 -1
- package/dist/llm/credential-remove-entry.d.ts +59 -0
- package/dist/llm/credential-remove-entry.d.ts.map +1 -0
- package/dist/llm/credential-remove-entry.js +101 -0
- package/dist/llm/credential-remove-entry.js.map +1 -0
- package/dist/llm/oauth/device-code.d.ts +26 -6
- package/dist/llm/oauth/device-code.d.ts.map +1 -1
- package/dist/llm/oauth/device-code.js +44 -12
- package/dist/llm/oauth/device-code.js.map +1 -1
- package/dist/llm/plugin-facade.js +3556 -1321
- package/dist/llm/plugin-facade.js.map +3 -3
- package/dist/memory/attention.d.ts.map +1 -1
- package/dist/memory/attention.js +5 -3
- package/dist/memory/attention.js.map +1 -1
- package/dist/memory/decision-contradiction.d.ts +3 -3
- package/dist/memory/decision-contradiction.d.ts.map +1 -1
- package/dist/memory/decision-contradiction.js +4 -3
- package/dist/memory/decision-contradiction.js.map +1 -1
- package/dist/memory/decisions.d.ts +48 -3
- package/dist/memory/decisions.d.ts.map +1 -1
- package/dist/memory/decisions.js +98 -14
- package/dist/memory/decisions.js.map +1 -1
- package/dist/memory/graph-memory-bridge.d.ts.map +1 -1
- package/dist/memory/graph-memory-bridge.js +2 -0
- package/dist/memory/graph-memory-bridge.js.map +1 -1
- package/dist/memory/learnings.d.ts +6 -6
- package/dist/memory/observation-type-decision.d.ts +2 -2
- package/dist/memory/observation-type-decision.d.ts.map +1 -1
- package/dist/memory/observation-type-decision.js +3 -2
- package/dist/memory/observation-type-decision.js.map +1 -1
- package/dist/memory/patterns.d.ts +4 -4
- package/dist/memory/pipeline-manifest-sqlite.d.ts +111 -0
- package/dist/memory/pipeline-manifest-sqlite.d.ts.map +1 -1
- package/dist/memory/pipeline-manifest-sqlite.js +230 -2
- package/dist/memory/pipeline-manifest-sqlite.js.map +1 -1
- package/dist/migration/manual/T10165-backfill-adr-index.d.ts.map +1 -1
- package/dist/migration/manual/T10165-backfill-adr-index.js +5 -1
- package/dist/migration/manual/T10165-backfill-adr-index.js.map +1 -1
- package/dist/nexus/fleet-status.d.ts +83 -0
- package/dist/nexus/fleet-status.d.ts.map +1 -0
- package/dist/nexus/fleet-status.js +414 -0
- package/dist/nexus/fleet-status.js.map +1 -0
- package/dist/nexus/git-state.d.ts +15 -0
- package/dist/nexus/git-state.d.ts.map +1 -1
- package/dist/nexus/git-state.js +67 -2
- package/dist/nexus/git-state.js.map +1 -1
- package/dist/nexus/identity.d.ts.map +1 -1
- package/dist/nexus/identity.js +4 -0
- package/dist/nexus/identity.js.map +1 -1
- package/dist/nexus/index.d.ts +4 -1
- package/dist/nexus/index.d.ts.map +1 -1
- package/dist/nexus/index.js +7 -1
- package/dist/nexus/index.js.map +1 -1
- package/dist/nexus/migrate-json-to-sqlite.d.ts +3 -2
- package/dist/nexus/migrate-json-to-sqlite.d.ts.map +1 -1
- package/dist/nexus/migrate-json-to-sqlite.js +9 -17
- package/dist/nexus/migrate-json-to-sqlite.js.map +1 -1
- package/dist/nexus/migrations/M-split-graph.d.ts.map +1 -1
- package/dist/nexus/migrations/M-split-graph.js +4 -0
- package/dist/nexus/migrations/M-split-graph.js.map +1 -1
- package/dist/nexus/ops.d.ts +1 -0
- package/dist/nexus/ops.d.ts.map +1 -1
- package/dist/nexus/project-activity.d.ts +104 -0
- package/dist/nexus/project-activity.d.ts.map +1 -0
- package/dist/nexus/project-activity.js +150 -0
- package/dist/nexus/project-activity.js.map +1 -0
- package/dist/nexus/query.d.ts +2 -2
- package/dist/nexus/query.d.ts.map +1 -1
- package/dist/nexus/query.js +4 -19
- package/dist/nexus/query.js.map +1 -1
- package/dist/nexus/registry-errors.d.ts +61 -0
- package/dist/nexus/registry-errors.d.ts.map +1 -0
- package/dist/nexus/registry-errors.js +85 -0
- package/dist/nexus/registry-errors.js.map +1 -0
- package/dist/nexus/registry.d.ts +30 -5
- package/dist/nexus/registry.d.ts.map +1 -1
- package/dist/nexus/registry.js +115 -70
- package/dist/nexus/registry.js.map +1 -1
- package/dist/nexus/store.d.ts.map +1 -1
- package/dist/nexus/store.js +2 -0
- package/dist/nexus/store.js.map +1 -1
- package/dist/orchestrate/pivot.d.ts +4 -0
- package/dist/orchestrate/pivot.d.ts.map +1 -1
- package/dist/orchestrate/pivot.js +82 -14
- package/dist/orchestrate/pivot.js.map +1 -1
- package/dist/orchestrate/plan.d.ts.map +1 -1
- package/dist/orchestrate/plan.js +3 -0
- package/dist/orchestrate/plan.js.map +1 -1
- package/dist/orchestrate/query-ops.d.ts.map +1 -1
- package/dist/orchestrate/query-ops.js +29 -27
- package/dist/orchestrate/query-ops.js.map +1 -1
- package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
- package/dist/orchestrate/spawn-ops.js +29 -3
- package/dist/orchestrate/spawn-ops.js.map +1 -1
- package/dist/orchestration/bootstrap.d.ts.map +1 -1
- package/dist/orchestration/bootstrap.js +20 -14
- package/dist/orchestration/bootstrap.js.map +1 -1
- package/dist/orchestration/index.d.ts +15 -1
- package/dist/orchestration/index.d.ts.map +1 -1
- package/dist/orchestration/index.js +25 -6
- package/dist/orchestration/index.js.map +1 -1
- package/dist/orchestration/lead-rollup.d.ts +7 -1
- package/dist/orchestration/lead-rollup.d.ts.map +1 -1
- package/dist/orchestration/lead-rollup.js +20 -5
- package/dist/orchestration/lead-rollup.js.map +1 -1
- package/dist/orchestration/owner-decision-readiness.d.ts +2 -2
- package/dist/orchestration/owner-decision-readiness.d.ts.map +1 -1
- package/dist/orchestration/owner-decision-readiness.js +3 -2
- package/dist/orchestration/owner-decision-readiness.js.map +1 -1
- package/dist/orchestration/spawn-prompt.js +1 -1
- package/dist/orchestration/spawn-prompt.js.map +1 -1
- package/dist/orchestration/validate-spawn.d.ts.map +1 -1
- package/dist/orchestration/validate-spawn.js +2 -0
- package/dist/orchestration/validate-spawn.js.map +1 -1
- package/dist/orchestration/waves.d.ts +21 -10
- package/dist/orchestration/waves.d.ts.map +1 -1
- package/dist/orchestration/waves.js +38 -35
- package/dist/orchestration/waves.js.map +1 -1
- package/dist/paths.d.ts +9 -2
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +30 -13
- package/dist/paths.js.map +1 -1
- package/dist/phases/index.d.ts +1 -1
- package/dist/phases/index.d.ts.map +1 -1
- package/dist/phases/index.js +3 -4
- package/dist/phases/index.js.map +1 -1
- package/dist/project-info.d.ts +40 -3
- package/dist/project-info.d.ts.map +1 -1
- package/dist/project-info.js +74 -6
- package/dist/project-info.js.map +1 -1
- package/dist/project-lifecycle.d.ts +28 -7
- package/dist/project-lifecycle.d.ts.map +1 -1
- package/dist/project-lifecycle.js +114 -47
- package/dist/project-lifecycle.js.map +1 -1
- package/dist/project-scope.d.ts +86 -3
- package/dist/project-scope.d.ts.map +1 -1
- package/dist/project-scope.js +192 -17
- package/dist/project-scope.js.map +1 -1
- package/dist/release/github-pr.d.ts.map +1 -1
- package/dist/release/github-pr.js +2 -1
- package/dist/release/github-pr.js.map +1 -1
- package/dist/release/open.d.ts +12 -2
- package/dist/release/open.d.ts.map +1 -1
- package/dist/release/open.js +32 -3
- package/dist/release/open.js.map +1 -1
- package/dist/release/preflight-skip.d.ts +73 -0
- package/dist/release/preflight-skip.d.ts.map +1 -0
- package/dist/release/preflight-skip.js +254 -0
- package/dist/release/preflight-skip.js.map +1 -0
- package/dist/render/decide/index.d.ts +51 -0
- package/dist/render/decide/index.d.ts.map +1 -0
- package/dist/render/decide/index.js +289 -0
- package/dist/render/decide/index.js.map +1 -0
- package/dist/render/index.d.ts +1 -0
- package/dist/render/index.d.ts.map +1 -1
- package/dist/render/index.js +1 -0
- package/dist/render/index.js.map +1 -1
- package/dist/render/nexus/graph/index.d.ts +5 -0
- package/dist/render/nexus/graph/index.d.ts.map +1 -1
- package/dist/render/nexus/graph/index.js +53 -0
- package/dist/render/nexus/graph/index.js.map +1 -1
- package/dist/routing/capability-matrix.d.ts.map +1 -1
- package/dist/routing/capability-matrix.js +7 -0
- package/dist/routing/capability-matrix.js.map +1 -1
- package/dist/scaffold/ensure-config.d.ts +14 -6
- package/dist/scaffold/ensure-config.d.ts.map +1 -1
- package/dist/scaffold/ensure-config.js +39 -17
- package/dist/scaffold/ensure-config.js.map +1 -1
- package/dist/scaffold/project-identity.d.ts +115 -23
- package/dist/scaffold/project-identity.d.ts.map +1 -1
- package/dist/scaffold/project-identity.js +196 -44
- package/dist/scaffold/project-identity.js.map +1 -1
- package/dist/selfimprove/fix-gen.js +3569 -1334
- package/dist/selfimprove/fix-gen.js.map +3 -3
- package/dist/sentient/cross-project-hygiene.d.ts +12 -6
- package/dist/sentient/cross-project-hygiene.d.ts.map +1 -1
- package/dist/sentient/cross-project-hygiene.js +15 -10
- package/dist/sentient/cross-project-hygiene.js.map +1 -1
- package/dist/session/engine-ops.d.ts +13 -4
- package/dist/session/engine-ops.d.ts.map +1 -1
- package/dist/session/engine-ops.js +38 -45
- package/dist/session/engine-ops.js.map +1 -1
- package/dist/sessions/briefing.d.ts +7 -3
- package/dist/sessions/briefing.d.ts.map +1 -1
- package/dist/sessions/briefing.js +32 -71
- package/dist/sessions/briefing.js.map +1 -1
- package/dist/sessions/drift-watchdog.d.ts.map +1 -1
- package/dist/sessions/drift-watchdog.js +11 -19
- package/dist/sessions/drift-watchdog.js.map +1 -1
- package/dist/sessions/focus-state-store.d.ts +109 -27
- package/dist/sessions/focus-state-store.d.ts.map +1 -1
- package/dist/sessions/focus-state-store.js +171 -39
- package/dist/sessions/focus-state-store.js.map +1 -1
- package/dist/sessions/handoff.d.ts.map +1 -1
- package/dist/sessions/handoff.js +9 -18
- package/dist/sessions/handoff.js.map +1 -1
- package/dist/sessions/index.d.ts +4 -2
- package/dist/sessions/index.d.ts.map +1 -1
- package/dist/sessions/index.js +35 -6
- package/dist/sessions/index.js.map +1 -1
- package/dist/sessions/session-drift.d.ts.map +1 -1
- package/dist/sessions/session-drift.js +4 -2
- package/dist/sessions/session-drift.js.map +1 -1
- package/dist/sessions/session-view.d.ts +8 -1
- package/dist/sessions/session-view.d.ts.map +1 -1
- package/dist/sessions/session-view.js +9 -2
- package/dist/sessions/session-view.js.map +1 -1
- package/dist/setup/config-json-merge.d.ts +28 -0
- package/dist/setup/config-json-merge.d.ts.map +1 -1
- package/dist/setup/config-json-merge.js +52 -0
- package/dist/setup/config-json-merge.js.map +1 -1
- package/dist/setup/index.d.ts +15 -10
- package/dist/setup/index.d.ts.map +1 -1
- package/dist/setup/index.js +19 -10
- package/dist/setup/index.js.map +1 -1
- package/dist/setup/sections/llm.js +1 -1
- package/dist/setup/sections/llm.js.map +1 -1
- package/dist/setup/sections/nexus-account.d.ts +32 -0
- package/dist/setup/sections/nexus-account.d.ts.map +1 -0
- package/dist/setup/sections/nexus-account.js +64 -0
- package/dist/setup/sections/nexus-account.js.map +1 -0
- package/dist/setup/sections/system-one.d.ts +28 -0
- package/dist/setup/sections/system-one.d.ts.map +1 -0
- package/dist/setup/sections/system-one.js +53 -0
- package/dist/setup/sections/system-one.js.map +1 -0
- package/dist/setup/wizard.d.ts +15 -1
- package/dist/setup/wizard.d.ts.map +1 -1
- package/dist/setup/wizard.js +15 -0
- package/dist/setup/wizard.js.map +1 -1
- package/dist/skills/orchestrator/startup.d.ts.map +1 -1
- package/dist/skills/orchestrator/startup.js +18 -31
- package/dist/skills/orchestrator/startup.js.map +1 -1
- package/dist/skills/prune-bundled.d.ts +40 -1
- package/dist/skills/prune-bundled.d.ts.map +1 -1
- package/dist/skills/prune-bundled.js +117 -1
- package/dist/skills/prune-bundled.js.map +1 -1
- package/dist/snapshot/index.d.ts.map +1 -1
- package/dist/snapshot/index.js +60 -53
- package/dist/snapshot/index.js.map +1 -1
- package/dist/spawn/agent-identity.d.ts +33 -1
- package/dist/spawn/agent-identity.d.ts.map +1 -1
- package/dist/spawn/agent-identity.js +53 -1
- package/dist/spawn/agent-identity.js.map +1 -1
- package/dist/spawn/index.d.ts +1 -1
- package/dist/spawn/index.d.ts.map +1 -1
- package/dist/spawn/index.js +1 -1
- package/dist/spawn/index.js.map +1 -1
- package/dist/stats/index.d.ts.map +1 -1
- package/dist/stats/index.js +3 -4
- package/dist/stats/index.js.map +1 -1
- package/dist/status/index.d.ts +12 -3
- package/dist/status/index.d.ts.map +1 -1
- package/dist/status/index.js +47 -5
- package/dist/status/index.js.map +1 -1
- package/dist/store/agent-registry-accessor.d.ts.map +1 -1
- package/dist/store/agent-registry-accessor.js +2 -0
- package/dist/store/agent-registry-accessor.js.map +1 -1
- package/dist/store/attachment-repair.d.ts.map +1 -1
- package/dist/store/attachment-repair.js +42 -3
- package/dist/store/attachment-repair.js.map +1 -1
- package/dist/store/attachment-store.d.ts.map +1 -1
- package/dist/store/attachment-store.js +30 -46
- package/dist/store/attachment-store.js.map +1 -1
- package/dist/store/backup-pack.js +1 -1
- package/dist/store/backup-pack.js.map +1 -1
- package/dist/store/backup-recover-brain.d.ts +4 -0
- package/dist/store/backup-recover-brain.d.ts.map +1 -1
- package/dist/store/backup-recover-brain.js +2 -0
- package/dist/store/backup-recover-brain.js.map +1 -1
- package/dist/store/backup-recover.d.ts +9 -0
- package/dist/store/backup-recover.d.ts.map +1 -1
- package/dist/store/backup-recover.js +28 -1
- package/dist/store/backup-recover.js.map +1 -1
- package/dist/store/backup-sidecar.d.ts +30 -0
- package/dist/store/backup-sidecar.d.ts.map +1 -1
- package/dist/store/backup-sidecar.js +90 -2
- package/dist/store/backup-sidecar.js.map +1 -1
- package/dist/store/backup.d.ts +15 -1
- package/dist/store/backup.d.ts.map +1 -1
- package/dist/store/backup.js +18 -2
- package/dist/store/backup.js.map +1 -1
- package/dist/store/blob-keep.d.ts +135 -0
- package/dist/store/blob-keep.d.ts.map +1 -0
- package/dist/store/blob-keep.js +283 -0
- package/dist/store/blob-keep.js.map +1 -0
- package/dist/store/conduit-sqlite.d.ts.map +1 -1
- package/dist/store/conduit-sqlite.js +3 -0
- package/dist/store/conduit-sqlite.js.map +1 -1
- package/dist/store/converters.d.ts.map +1 -1
- package/dist/store/converters.js +11 -0
- package/dist/store/converters.js.map +1 -1
- package/dist/store/credential-transfer.d.ts +37 -5
- package/dist/store/credential-transfer.d.ts.map +1 -1
- package/dist/store/credential-transfer.js +75 -18
- package/dist/store/credential-transfer.js.map +1 -1
- package/dist/store/cross-db-cleanup.d.ts.map +1 -1
- package/dist/store/cross-db-cleanup.js +2 -0
- package/dist/store/cross-db-cleanup.js.map +1 -1
- package/dist/store/data-accessor.d.ts +1 -1
- package/dist/store/data-accessor.d.ts.map +1 -1
- package/dist/store/data-accessor.js.map +1 -1
- package/dist/store/db-helpers.d.ts +18 -0
- package/dist/store/db-helpers.d.ts.map +1 -1
- package/dist/store/db-helpers.js +46 -0
- package/dist/store/db-helpers.js.map +1 -1
- package/dist/store/dual-scope-db.d.ts.map +1 -1
- package/dist/store/dual-scope-db.js +13 -2
- package/dist/store/dual-scope-db.js.map +1 -1
- package/dist/store/exodus/on-open.d.ts.map +1 -1
- package/dist/store/exodus/on-open.js +35 -0
- package/dist/store/exodus/on-open.js.map +1 -1
- package/dist/store/exodus/runtime-targets.d.ts +3 -3
- package/dist/store/exodus/runtime-targets.js +3 -3
- package/dist/store/import-remap.d.ts +12 -1
- package/dist/store/import-remap.d.ts.map +1 -1
- package/dist/store/import-remap.js +14 -0
- package/dist/store/import-remap.js.map +1 -1
- package/dist/store/legacy-tasks-lineage.d.ts +3 -1
- package/dist/store/legacy-tasks-lineage.d.ts.map +1 -1
- package/dist/store/legacy-tasks-lineage.js +3 -1
- package/dist/store/legacy-tasks-lineage.js.map +1 -1
- package/dist/store/memory-accessor.js +1 -1
- package/dist/store/memory-accessor.js.map +1 -1
- package/dist/store/migrate-signaldock-to-conduit.d.ts.map +1 -1
- package/dist/store/migrate-signaldock-to-conduit.js +3 -0
- package/dist/store/migrate-signaldock-to-conduit.js.map +1 -1
- package/dist/store/migration-manager.d.ts +61 -0
- package/dist/store/migration-manager.d.ts.map +1 -1
- package/dist/store/migration-manager.js +138 -6
- package/dist/store/migration-manager.js.map +1 -1
- package/dist/store/migration-sqlite.d.ts.map +1 -1
- package/dist/store/migration-sqlite.js +2 -0
- package/dist/store/migration-sqlite.js.map +1 -1
- package/dist/store/nexus-sqlite.d.ts.map +1 -1
- package/dist/store/nexus-sqlite.js +3 -0
- package/dist/store/nexus-sqlite.js.map +1 -1
- package/dist/store/nexus-validation-schemas.d.ts +64 -0
- package/dist/store/nexus-validation-schemas.d.ts.map +1 -1
- package/dist/store/open-cleo-db.d.ts.map +1 -1
- package/dist/store/open-cleo-db.js +3 -0
- package/dist/store/open-cleo-db.js.map +1 -1
- package/dist/store/portable-bundle-import.d.ts +8 -0
- package/dist/store/portable-bundle-import.d.ts.map +1 -1
- package/dist/store/portable-bundle-import.js +12 -0
- package/dist/store/portable-bundle-import.js.map +1 -1
- package/dist/store/portable-bundle-relocate.d.ts.map +1 -1
- package/dist/store/portable-bundle-relocate.js +2 -0
- package/dist/store/portable-bundle-relocate.js.map +1 -1
- package/dist/store/portable-bundle-scan.d.ts.map +1 -1
- package/dist/store/portable-bundle-scan.js +2 -1
- package/dist/store/portable-bundle-scan.js.map +1 -1
- package/dist/store/portable-bundle.d.ts.map +1 -1
- package/dist/store/portable-bundle.js +15 -14
- package/dist/store/portable-bundle.js.map +1 -1
- package/dist/store/ports/domain-binding.d.ts.map +1 -1
- package/dist/store/ports/domain-binding.js +5 -0
- package/dist/store/ports/domain-binding.js.map +1 -1
- package/dist/store/pre-repair-snapshot.d.ts +4 -1
- package/dist/store/pre-repair-snapshot.d.ts.map +1 -1
- package/dist/store/pre-repair-snapshot.js +5 -1
- package/dist/store/pre-repair-snapshot.js.map +1 -1
- package/dist/store/regenerators.d.ts +4 -2
- package/dist/store/regenerators.d.ts.map +1 -1
- package/dist/store/regenerators.js +7 -3
- package/dist/store/regenerators.js.map +1 -1
- package/dist/store/repair-malformed-dbs.d.ts +4 -0
- package/dist/store/repair-malformed-dbs.d.ts.map +1 -1
- package/dist/store/repair-malformed-dbs.js +3 -0
- package/dist/store/repair-malformed-dbs.js.map +1 -1
- package/dist/store/safety-data-accessor.d.ts +8 -3
- package/dist/store/safety-data-accessor.d.ts.map +1 -1
- package/dist/store/safety-data-accessor.js +11 -4
- package/dist/store/safety-data-accessor.js.map +1 -1
- package/dist/store/schema/cleo-global/nexus.d.ts +48 -0
- package/dist/store/schema/cleo-global/nexus.d.ts.map +1 -1
- package/dist/store/schema/cleo-global/nexus.js +17 -0
- package/dist/store/schema/cleo-global/nexus.js.map +1 -1
- package/dist/store/schema/cleo-project/docs.d.ts +16 -0
- package/dist/store/schema/cleo-project/docs.d.ts.map +1 -1
- package/dist/store/schema/cleo-project/docs.js +10 -0
- package/dist/store/schema/cleo-project/docs.js.map +1 -1
- package/dist/store/schema/cleo-project/tasks-core.d.ts +80 -0
- package/dist/store/schema/cleo-project/tasks-core.d.ts.map +1 -1
- package/dist/store/schema/cleo-project/tasks-core.js +25 -1
- package/dist/store/schema/cleo-project/tasks-core.js.map +1 -1
- package/dist/store/schema/cleo-shared/brain.d.ts +1 -1
- package/dist/store/schema/memory-schema.d.ts +1 -1
- package/dist/store/schema/nexus-schema.d.ts +48 -0
- package/dist/store/schema/nexus-schema.d.ts.map +1 -1
- package/dist/store/schema/nexus-schema.js +28 -7
- package/dist/store/schema/nexus-schema.js.map +1 -1
- package/dist/store/session-store.d.ts +65 -0
- package/dist/store/session-store.d.ts.map +1 -1
- package/dist/store/session-store.js +108 -7
- package/dist/store/session-store.js.map +1 -1
- package/dist/store/split-brain-import.d.ts.map +1 -1
- package/dist/store/split-brain-import.js +2 -0
- package/dist/store/split-brain-import.js.map +1 -1
- package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
- package/dist/store/sqlite-data-accessor.js +252 -47
- package/dist/store/sqlite-data-accessor.js.map +1 -1
- package/dist/store/sqlite-native.d.ts.map +1 -1
- package/dist/store/sqlite-native.js +1 -0
- package/dist/store/sqlite-native.js.map +1 -1
- package/dist/store/sqlite.d.ts +15 -3
- package/dist/store/sqlite.d.ts.map +1 -1
- package/dist/store/sqlite.js +57 -20
- package/dist/store/sqlite.js.map +1 -1
- package/dist/store/store-write-guard.d.ts +9 -3
- package/dist/store/store-write-guard.d.ts.map +1 -1
- package/dist/store/store-write-guard.js +25 -4
- package/dist/store/store-write-guard.js.map +1 -1
- package/dist/store/table-classification.d.ts +1 -1
- package/dist/store/table-classification.d.ts.map +1 -1
- package/dist/store/table-classification.js +34 -8
- package/dist/store/table-classification.js.map +1 -1
- package/dist/store/task-claim.d.ts +144 -0
- package/dist/store/task-claim.d.ts.map +1 -0
- package/dist/store/task-claim.js +195 -0
- package/dist/store/task-claim.js.map +1 -0
- package/dist/store/task-version.d.ts +43 -5
- package/dist/store/task-version.d.ts.map +1 -1
- package/dist/store/task-version.js +113 -17
- package/dist/store/task-version.js.map +1 -1
- package/dist/store/tasks-schema.d.ts +2 -0
- package/dist/store/tasks-schema.d.ts.map +1 -1
- package/dist/store/tasks-schema.js +1 -0
- package/dist/store/tasks-schema.js.map +1 -1
- package/dist/store/tasks-sqlite.js +1 -1
- package/dist/store/tasks-sqlite.js.map +1 -1
- package/dist/store/twin-collapse.d.ts +339 -22
- package/dist/store/twin-collapse.d.ts.map +1 -1
- package/dist/store/twin-collapse.js +1323 -48
- package/dist/store/twin-collapse.js.map +1 -1
- package/dist/store/umbrella-data-accessor.d.ts +8 -3
- package/dist/store/umbrella-data-accessor.d.ts.map +1 -1
- package/dist/store/umbrella-data-accessor.js +10 -4
- package/dist/store/umbrella-data-accessor.js.map +1 -1
- package/dist/store/validation-schemas.d.ts +161 -1
- package/dist/store/validation-schemas.d.ts.map +1 -1
- package/dist/store/with-retry.d.ts +36 -0
- package/dist/store/with-retry.d.ts.map +1 -1
- package/dist/store/with-retry.js +51 -0
- package/dist/store/with-retry.js.map +1 -1
- package/dist/store/worktree-build-guard.d.ts +200 -0
- package/dist/store/worktree-build-guard.d.ts.map +1 -0
- package/dist/store/worktree-build-guard.js +497 -0
- package/dist/store/worktree-build-guard.js.map +1 -0
- package/dist/store/worktree-isolation-guard.d.ts +138 -0
- package/dist/store/worktree-isolation-guard.d.ts.map +1 -1
- package/dist/store/worktree-isolation-guard.js +189 -2
- package/dist/store/worktree-isolation-guard.js.map +1 -1
- package/dist/store/writer-lease.d.ts.map +1 -1
- package/dist/store/writer-lease.js +2 -0
- package/dist/store/writer-lease.js.map +1 -1
- package/dist/system/backup.d.ts +13 -2
- package/dist/system/backup.d.ts.map +1 -1
- package/dist/system/backup.js +11 -3
- package/dist/system/backup.js.map +1 -1
- package/dist/system/health.d.ts.map +1 -1
- package/dist/system/health.js +3 -1
- package/dist/system/health.js.map +1 -1
- package/dist/system/inject-generate.d.ts.map +1 -1
- package/dist/system/inject-generate.js +23 -10
- package/dist/system/inject-generate.js.map +1 -1
- package/dist/system/project-health.d.ts +8 -0
- package/dist/system/project-health.d.ts.map +1 -1
- package/dist/system/project-health.js +13 -5
- package/dist/system/project-health.js.map +1 -1
- package/dist/task-tools/index.d.ts +4 -2
- package/dist/task-tools/index.d.ts.map +1 -1
- package/dist/task-tools/index.js +3 -2
- package/dist/task-tools/index.js.map +1 -1
- package/dist/task-tools/score-task-priority.d.ts +131 -18
- package/dist/task-tools/score-task-priority.d.ts.map +1 -1
- package/dist/task-tools/score-task-priority.js +243 -80
- package/dist/task-tools/score-task-priority.js.map +1 -1
- package/dist/task-work/claims.d.ts +215 -0
- package/dist/task-work/claims.d.ts.map +1 -0
- package/dist/task-work/claims.js +272 -0
- package/dist/task-work/claims.js.map +1 -0
- package/dist/task-work/index.d.ts +47 -3
- package/dist/task-work/index.d.ts.map +1 -1
- package/dist/task-work/index.js +74 -41
- package/dist/task-work/index.js.map +1 -1
- package/dist/tasks/add.d.ts.map +1 -1
- package/dist/tasks/add.js +3 -2
- package/dist/tasks/add.js.map +1 -1
- package/dist/tasks/affected-packages.d.ts +5 -1
- package/dist/tasks/affected-packages.d.ts.map +1 -1
- package/dist/tasks/affected-packages.js +21 -3
- package/dist/tasks/affected-packages.js.map +1 -1
- package/dist/tasks/analyze.d.ts +29 -1
- package/dist/tasks/analyze.d.ts.map +1 -1
- package/dist/tasks/analyze.js +47 -37
- package/dist/tasks/analyze.js.map +1 -1
- package/dist/tasks/backfill-child-projections.d.ts.map +1 -1
- package/dist/tasks/backfill-child-projections.js +4 -1
- package/dist/tasks/backfill-child-projections.js.map +1 -1
- package/dist/tasks/change-set.d.ts +5 -0
- package/dist/tasks/change-set.d.ts.map +1 -1
- package/dist/tasks/change-set.js +75 -6
- package/dist/tasks/change-set.js.map +1 -1
- package/dist/tasks/command-line.d.ts +54 -0
- package/dist/tasks/command-line.d.ts.map +1 -0
- package/dist/tasks/command-line.js +151 -0
- package/dist/tasks/command-line.js.map +1 -0
- package/dist/tasks/complete.d.ts +16 -0
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +27 -7
- package/dist/tasks/complete.js.map +1 -1
- package/dist/tasks/component-pr.d.ts +162 -1
- package/dist/tasks/component-pr.d.ts.map +1 -1
- package/dist/tasks/component-pr.js +639 -53
- package/dist/tasks/component-pr.js.map +1 -1
- package/dist/tasks/delete.d.ts.map +1 -1
- package/dist/tasks/delete.js +20 -0
- package/dist/tasks/delete.js.map +1 -1
- package/dist/tasks/done-record.d.ts +14 -1
- package/dist/tasks/done-record.d.ts.map +1 -1
- package/dist/tasks/done-record.js +37 -0
- package/dist/tasks/done-record.js.map +1 -1
- package/dist/tasks/duplicate-detector.d.ts +23 -4
- package/dist/tasks/duplicate-detector.d.ts.map +1 -1
- package/dist/tasks/duplicate-detector.js +14 -5
- package/dist/tasks/duplicate-detector.js.map +1 -1
- package/dist/tasks/engine-wrap-ops.d.ts +48 -10
- package/dist/tasks/engine-wrap-ops.d.ts.map +1 -1
- package/dist/tasks/engine-wrap-ops.js +78 -10
- package/dist/tasks/engine-wrap-ops.js.map +1 -1
- package/dist/tasks/engine-wrap.d.ts +1 -1
- package/dist/tasks/engine-wrap.d.ts.map +1 -1
- package/dist/tasks/engine-wrap.js +1 -1
- package/dist/tasks/engine-wrap.js.map +1 -1
- package/dist/tasks/evidence.d.ts +2 -0
- package/dist/tasks/evidence.d.ts.map +1 -1
- package/dist/tasks/evidence.js +30 -4
- package/dist/tasks/evidence.js.map +1 -1
- package/dist/tasks/gate-runner.d.ts.map +1 -1
- package/dist/tasks/gate-runner.js +48 -12
- package/dist/tasks/gate-runner.js.map +1 -1
- package/dist/tasks/graph-ops.d.ts +9 -2
- package/dist/tasks/graph-ops.d.ts.map +1 -1
- package/dist/tasks/graph-ops.js +24 -32
- package/dist/tasks/graph-ops.js.map +1 -1
- package/dist/tasks/index.d.ts +1 -1
- package/dist/tasks/index.d.ts.map +1 -1
- package/dist/tasks/index.js +1 -1
- package/dist/tasks/index.js.map +1 -1
- package/dist/tasks/ops.d.ts +1 -0
- package/dist/tasks/ops.d.ts.map +1 -1
- package/dist/tasks/plan.d.ts.map +1 -1
- package/dist/tasks/plan.js +16 -60
- package/dist/tasks/plan.js.map +1 -1
- package/dist/tasks/ranking-audit.d.ts +122 -0
- package/dist/tasks/ranking-audit.d.ts.map +1 -0
- package/dist/tasks/ranking-audit.js +193 -0
- package/dist/tasks/ranking-audit.js.map +1 -0
- package/dist/tasks/task-analyze.d.ts.map +1 -1
- package/dist/tasks/task-analyze.js +19 -32
- package/dist/tasks/task-analyze.js.map +1 -1
- package/dist/tasks/task-context.d.ts.map +1 -1
- package/dist/tasks/task-context.js +13 -0
- package/dist/tasks/task-context.js.map +1 -1
- package/dist/tasks/task-import.d.ts.map +1 -1
- package/dist/tasks/task-import.js +21 -12
- package/dist/tasks/task-import.js.map +1 -1
- package/dist/tasks/task-next.d.ts +67 -2
- package/dist/tasks/task-next.d.ts.map +1 -1
- package/dist/tasks/task-next.js +99 -102
- package/dist/tasks/task-next.js.map +1 -1
- package/dist/tasks/task-ops.d.ts +1 -1
- package/dist/tasks/task-ops.d.ts.map +1 -1
- package/dist/tasks/task-ops.js +1 -1
- package/dist/tasks/task-ops.js.map +1 -1
- package/dist/tasks/tool-resolver.d.ts +7 -1
- package/dist/tasks/tool-resolver.d.ts.map +1 -1
- package/dist/tasks/tool-resolver.js +24 -10
- package/dist/tasks/tool-resolver.js.map +1 -1
- package/dist/tasks/update.d.ts +8 -2
- package/dist/tasks/update.d.ts.map +1 -1
- package/dist/tasks/update.js +35 -6
- package/dist/tasks/update.js.map +1 -1
- package/dist/telemetry/sqlite.d.ts.map +1 -1
- package/dist/telemetry/sqlite.js +2 -0
- package/dist/telemetry/sqlite.js.map +1 -1
- package/dist/upgrade.d.ts +1 -1
- package/dist/upgrade.d.ts.map +1 -1
- package/dist/upgrade.js +48 -9
- package/dist/upgrade.js.map +1 -1
- package/dist/validation/doctor/checks.d.ts +20 -6
- package/dist/validation/doctor/checks.d.ts.map +1 -1
- package/dist/validation/doctor/checks.js +53 -10
- package/dist/validation/doctor/checks.js.map +1 -1
- package/dist/validation/validate-ops.d.ts.map +1 -1
- package/dist/validation/validate-ops.js +2 -3
- package/dist/validation/validate-ops.js.map +1 -1
- package/migrations/drizzle-cleo-global/20260929010000_t12512-registry-probed-opened/migration.sql +35 -0
- package/migrations/drizzle-cleo-global/20260929020000_t12721-git-state-head-committed-at/migration.sql +25 -0
- package/migrations/drizzle-cleo-project/20260929000000_t12535-docs-attachments-union-shape/migration.sql +21 -0
- package/migrations/drizzle-cleo-project/20260929120000_t12502-task-claim-leases/migration.sql +77 -0
- package/migrations/drizzle-cleo-project/20260929130000_t12736-claim-lease-iso-repair/migration.sql +37 -0
- package/package.json +24 -14
- package/schemas/config.schema.json +13 -0
- package/schemas/project-info.schema.json +10 -4
- package/templates/CLEO-INJECTION.md +1 -1
- package/templates/CLEO-REFERENCE.md +7 -3
- package/templates/cleo-gitignore +11 -0
- package/templates/workflows/release-prepare.yml.tmpl +156 -10
|
@@ -1,37 +1,150 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* scoreTask —
|
|
2
|
+
* scoreTask — THE task ranker (T12661, tiered per council verdict D11161 / T12691).
|
|
3
3
|
*
|
|
4
|
-
* Computes a numeric score for a task given its attributes and project context.
|
|
5
4
|
* Pure functional — no I/O, no DB access, no async.
|
|
6
5
|
*
|
|
6
|
+
* `cleo next`, the briefing's `nextTasks` and both `cleo analyze` paths rank
|
|
7
|
+
* through this module. The order is LEXICOGRAPHIC, never an additive sum:
|
|
8
|
+
*
|
|
9
|
+
* 1. **Priority band** — the owner's priority: critical > high > medium > low.
|
|
10
|
+
* 2. **Severity** — attested severity: P0 > P1 > P2 > P3 > unknown. An unset
|
|
11
|
+
* severity is `unknown`; nothing is imputed (not even for a bug).
|
|
12
|
+
* 3. **Bounded tiebreak** — computed graph facts: dependencies ready (+10),
|
|
13
|
+
* phase alignment (+20), leverage (+5 per open dependent, capped at +20),
|
|
14
|
+
* anti-starvation age (+1 per week after the first, capped at +10).
|
|
15
|
+
* 4. **createdAt** — older first (parsed and normalised to UTC).
|
|
16
|
+
* 5. **id**.
|
|
17
|
+
*
|
|
18
|
+
* Computed signals therefore never cross a band: a plain ready critical task
|
|
19
|
+
* always outranks a low-priority P0 bug carrying every bonus. The additive
|
|
20
|
+
* scorer this replaces let that bug win 115 to 110. BRAIN success/failure
|
|
21
|
+
* patterns are informational factors only; they are not part of the order.
|
|
22
|
+
*
|
|
7
23
|
* @arch SDK Tool (Category B) — pure, no side effects, contracts-typed
|
|
8
24
|
* @task T10068
|
|
25
|
+
* @task T12661
|
|
26
|
+
* @task T12691
|
|
9
27
|
* @epic T9835
|
|
10
28
|
*/
|
|
11
|
-
import type { ScoreTaskContext, ScoreTaskInput, ScoreTaskResult } from '@cleocode/contracts';
|
|
29
|
+
import type { ScoreFactor, ScoreTaskContext, ScoreTaskInput, ScoreTaskKey, ScoreTaskResult, TaskSeverity } from '@cleocode/contracts';
|
|
30
|
+
/** Tier 1 — owner priority band rank (higher first). */
|
|
31
|
+
export declare const PRIORITY_BAND: Readonly<Record<string, number>>;
|
|
32
|
+
/** Tier 2 — attested severity rank (higher first); `unknown` is 0. */
|
|
33
|
+
export declare const SEVERITY_RANK: Readonly<Record<TaskSeverity, number>>;
|
|
34
|
+
/** Tier 3 — bonus when every dependency is satisfied. */
|
|
35
|
+
export declare const DEPS_READY_SCORE = 10;
|
|
36
|
+
/** Tier 3 — bonus when the task's phase matches the current phase. */
|
|
37
|
+
export declare const PHASE_ALIGNMENT_SCORE = 20;
|
|
38
|
+
/** Tier 3 — bonus per open task this task unblocks. */
|
|
39
|
+
export declare const LEVERAGE_PER_DEPENDENT = 5;
|
|
40
|
+
/** Tier 3 — cap on the leverage bonus. */
|
|
41
|
+
export declare const MAX_LEVERAGE_SCORE = 20;
|
|
42
|
+
/** Tier 3 — cap on the anti-starvation age bonus (+1 per week after the first). */
|
|
43
|
+
export declare const MAX_AGE_SCORE = 10;
|
|
12
44
|
/**
|
|
13
|
-
*
|
|
45
|
+
* Parse a task timestamp to epoch milliseconds, normalised to UTC.
|
|
14
46
|
*
|
|
15
|
-
*
|
|
16
|
-
* -
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
47
|
+
* Stores hold both ISO-8601 with a zone (`2026-09-01T10:00:00Z`) and SQLite's
|
|
48
|
+
* zone-less `YYYY-MM-DD HH:MM:SS`. `Date.parse` reads the zone-less form as
|
|
49
|
+
* LOCAL time, so the same instant scored and sorted differently by machine
|
|
50
|
+
* (T12661 review). A timestamp without a zone is taken as UTC.
|
|
51
|
+
*
|
|
52
|
+
* @param value - Timestamp text.
|
|
53
|
+
* @returns Epoch milliseconds, or `NaN` when unparseable.
|
|
54
|
+
*/
|
|
55
|
+
export declare function parseTimestampMs(value: string | null | undefined): number;
|
|
56
|
+
/**
|
|
57
|
+
* Score a single task: its lexicographic key, every factor tagged with its
|
|
58
|
+
* comparator tier, and the key folded into one number that sorts identically.
|
|
22
59
|
*
|
|
23
60
|
* @param task - Task to score
|
|
24
|
-
* @param ctx - Scoring context (phase, dep statuses, patterns)
|
|
25
|
-
* @returns Score and
|
|
61
|
+
* @param ctx - Scoring context (phase, dep statuses, leverage, `nowMs`, patterns)
|
|
62
|
+
* @returns Score, key and factors
|
|
26
63
|
*
|
|
27
64
|
* @example
|
|
28
65
|
* ```typescript
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* { currentPhase: 'v2', taskStatuses: new Map([['T0', 'done']]) },
|
|
32
|
-
* );
|
|
33
|
-
* // result.score === 75 (priority) + 20 (phase) + 10 (deps) = 105
|
|
66
|
+
* scoreTask({ id: 'T1', title: 'Auth', priority: 'high', kind: 'bug' }, {}).key;
|
|
67
|
+
* // { band: 3, severity: 0, tiebreak: 10 } — severity unknown, deps ready
|
|
34
68
|
* ```
|
|
35
69
|
*/
|
|
36
70
|
export declare function scoreTask(task: ScoreTaskInput, ctx: ScoreTaskContext): ScoreTaskResult;
|
|
71
|
+
/**
|
|
72
|
+
* Render one factor as an `--explain` line naming its comparator tier.
|
|
73
|
+
*
|
|
74
|
+
* @param factor - Scored factor.
|
|
75
|
+
* @returns e.g. `tier 1 band: priority high`, `tier 3 depsReady: all dependencies satisfied (+10)`,
|
|
76
|
+
* or `info brainSuccess: … (not in the order)`.
|
|
77
|
+
*/
|
|
78
|
+
export declare function formatScoreFactor(factor: ScoreFactor): string;
|
|
79
|
+
/**
|
|
80
|
+
* Count, for every task id, the OPEN tasks that depend on it — the leverage
|
|
81
|
+
* input of {@link scoreTask}. Done, archived and cancelled dependents are not
|
|
82
|
+
* work this task unblocks.
|
|
83
|
+
*
|
|
84
|
+
* @param tasks - Tasks with `depends` and `status`.
|
|
85
|
+
* @returns Map of task id to number of open dependents.
|
|
86
|
+
*/
|
|
87
|
+
export declare function computeLeverage(tasks: ReadonlyArray<{
|
|
88
|
+
depends?: string[];
|
|
89
|
+
status?: string;
|
|
90
|
+
}>): Map<string, number>;
|
|
91
|
+
/** A task with its score, key and factors, as {@link rankTasks} returns it. */
|
|
92
|
+
export interface RankedTask<T extends ScoreTaskInput> {
|
|
93
|
+
/** The task. */
|
|
94
|
+
task: T;
|
|
95
|
+
/** The key folded into one sortable number. */
|
|
96
|
+
score: number;
|
|
97
|
+
/** Every factor, tagged with its comparator tier. */
|
|
98
|
+
factors: ScoreFactor[];
|
|
99
|
+
/** The lexicographic key. */
|
|
100
|
+
key?: ScoreTaskKey;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Order tasks by the tiered key: band, severity, tiebreak (all higher first),
|
|
104
|
+
* then older `createdAt` (parsed, UTC), then id — deterministic, so every
|
|
105
|
+
* ranker returns the same order for the same input.
|
|
106
|
+
*
|
|
107
|
+
* @param tasks - Candidate tasks.
|
|
108
|
+
* @param ctx - Shared scoring context.
|
|
109
|
+
* @returns Ranked tasks.
|
|
110
|
+
*/
|
|
111
|
+
export declare function rankTasks<T extends ScoreTaskInput>(tasks: readonly T[], ctx: ScoreTaskContext): RankedTask<T>[];
|
|
112
|
+
/**
|
|
113
|
+
* Build the {@link ScoreTaskContext} every ordering surface shares (T12692):
|
|
114
|
+
* dependency statuses from the canonical readiness lookup, leverage over the
|
|
115
|
+
* population, the ranking phase and one clock instant. `cleo next`,
|
|
116
|
+
* `cleo orchestrate ready`, the focus ready wave and the wave listing all
|
|
117
|
+
* build their context here, so the same tasks rank the same way everywhere.
|
|
118
|
+
*
|
|
119
|
+
* @param population - Tasks whose open dependents count as leverage.
|
|
120
|
+
* @param dependencyLookup - Canonical dependency records (archived included).
|
|
121
|
+
* @param opts - Ranking phase and optional clock.
|
|
122
|
+
* @returns The scoring context.
|
|
123
|
+
* @task T12692
|
|
124
|
+
*/
|
|
125
|
+
export declare function buildRankingContext(population: Iterable<{
|
|
126
|
+
depends?: string[];
|
|
127
|
+
status?: string;
|
|
128
|
+
}>, dependencyLookup: ReadonlyMap<string, {
|
|
129
|
+
id: string;
|
|
130
|
+
status: string;
|
|
131
|
+
}>, opts: {
|
|
132
|
+
currentPhase: string | null;
|
|
133
|
+
nowMs?: number;
|
|
134
|
+
}): ScoreTaskContext & {
|
|
135
|
+
leverage: ReadonlyMap<string, number>;
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* Reorder items by THE comparator ({@link rankTasks}, D11161): band,
|
|
139
|
+
* severity, bounded tiebreak, createdAt, id. Items whose task record is not
|
|
140
|
+
* in `tasksById` keep their input order after every ranked item.
|
|
141
|
+
*
|
|
142
|
+
* @param items - Items to order (not mutated).
|
|
143
|
+
* @param idOf - Task id of an item.
|
|
144
|
+
* @param tasksById - Task records to rank the items by.
|
|
145
|
+
* @param ctx - Shared scoring context (see {@link buildRankingContext}).
|
|
146
|
+
* @returns A new array in ranked order.
|
|
147
|
+
* @task T12692
|
|
148
|
+
*/
|
|
149
|
+
export declare function orderByRanking<T>(items: readonly T[], idOf: (item: T) => string, tasksById: ReadonlyMap<string, ScoreTaskInput>, ctx: ScoreTaskContext): T[];
|
|
37
150
|
//# sourceMappingURL=score-task-priority.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"score-task-priority.d.ts","sourceRoot":"","sources":["../../src/task-tools/score-task-priority.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"score-task-priority.d.ts","sourceRoot":"","sources":["../../src/task-tools/score-task-priority.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,YAAY,EACb,MAAM,qBAAqB,CAAC;AAG7B,wDAAwD;AACxD,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAK1D,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAKhE,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,sEAAsE;AACtE,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,uDAAuD;AACvD,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,0CAA0C;AAC1C,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,mFAAmF;AACnF,eAAO,MAAM,aAAa,KAAK,CAAC;AAMhC;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAMzE;AAeD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,gBAAgB,GAAG,eAAe,CA+EtF;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAM7D;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,aAAa,CAAC;IAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC5D,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAOrB;AAED,+EAA+E;AAC/E,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,cAAc;IAClD,gBAAgB;IAChB,IAAI,EAAE,CAAC,CAAC;IACR,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,6BAA6B;IAC7B,GAAG,CAAC,EAAE,YAAY,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,cAAc,EAChD,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,GAAG,EAAE,gBAAgB,GACpB,UAAU,CAAC,CAAC,CAAC,EAAE,CAqBjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,QAAQ,CAAC;IAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EAC7D,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,EACrE,IAAI,EAAE;IAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACpD,gBAAgB,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAS9D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EACzB,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAC9C,GAAG,EAAE,gBAAgB,GACpB,CAAC,EAAE,CAiBL"}
|
|
@@ -1,118 +1,281 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* scoreTask —
|
|
2
|
+
* scoreTask — THE task ranker (T12661, tiered per council verdict D11161 / T12691).
|
|
3
3
|
*
|
|
4
|
-
* Computes a numeric score for a task given its attributes and project context.
|
|
5
4
|
* Pure functional — no I/O, no DB access, no async.
|
|
6
5
|
*
|
|
6
|
+
* `cleo next`, the briefing's `nextTasks` and both `cleo analyze` paths rank
|
|
7
|
+
* through this module. The order is LEXICOGRAPHIC, never an additive sum:
|
|
8
|
+
*
|
|
9
|
+
* 1. **Priority band** — the owner's priority: critical > high > medium > low.
|
|
10
|
+
* 2. **Severity** — attested severity: P0 > P1 > P2 > P3 > unknown. An unset
|
|
11
|
+
* severity is `unknown`; nothing is imputed (not even for a bug).
|
|
12
|
+
* 3. **Bounded tiebreak** — computed graph facts: dependencies ready (+10),
|
|
13
|
+
* phase alignment (+20), leverage (+5 per open dependent, capped at +20),
|
|
14
|
+
* anti-starvation age (+1 per week after the first, capped at +10).
|
|
15
|
+
* 4. **createdAt** — older first (parsed and normalised to UTC).
|
|
16
|
+
* 5. **id**.
|
|
17
|
+
*
|
|
18
|
+
* Computed signals therefore never cross a band: a plain ready critical task
|
|
19
|
+
* always outranks a low-priority P0 bug carrying every bonus. The additive
|
|
20
|
+
* scorer this replaces let that bug win 115 to 110. BRAIN success/failure
|
|
21
|
+
* patterns are informational factors only; they are not part of the order.
|
|
22
|
+
*
|
|
7
23
|
* @arch SDK Tool (Category B) — pure, no side effects, contracts-typed
|
|
8
24
|
* @task T10068
|
|
25
|
+
* @task T12661
|
|
26
|
+
* @task T12691
|
|
9
27
|
* @epic T9835
|
|
10
28
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
29
|
+
import { isReadinessDependencySatisfied } from '../tasks/dependency-check.js';
|
|
30
|
+
/** Tier 1 — owner priority band rank (higher first). */
|
|
31
|
+
export const PRIORITY_BAND = {
|
|
32
|
+
critical: 4,
|
|
33
|
+
high: 3,
|
|
34
|
+
medium: 2,
|
|
35
|
+
low: 1,
|
|
16
36
|
};
|
|
17
|
-
|
|
37
|
+
/** Tier 2 — attested severity rank (higher first); `unknown` is 0. */
|
|
38
|
+
export const SEVERITY_RANK = {
|
|
39
|
+
P0: 4,
|
|
40
|
+
P1: 3,
|
|
41
|
+
P2: 2,
|
|
42
|
+
P3: 1,
|
|
43
|
+
};
|
|
44
|
+
/** Tier 3 — bonus when every dependency is satisfied. */
|
|
45
|
+
export const DEPS_READY_SCORE = 10;
|
|
46
|
+
/** Tier 3 — bonus when the task's phase matches the current phase. */
|
|
47
|
+
export const PHASE_ALIGNMENT_SCORE = 20;
|
|
48
|
+
/** Tier 3 — bonus per open task this task unblocks. */
|
|
49
|
+
export const LEVERAGE_PER_DEPENDENT = 5;
|
|
50
|
+
/** Tier 3 — cap on the leverage bonus. */
|
|
51
|
+
export const MAX_LEVERAGE_SCORE = 20;
|
|
52
|
+
/** Tier 3 — cap on the anti-starvation age bonus (+1 per week after the first). */
|
|
53
|
+
export const MAX_AGE_SCORE = 10;
|
|
54
|
+
/** Weights that fold the key into one sortable number (tiebreak stays below 1000). */
|
|
55
|
+
const BAND_WEIGHT = 10000;
|
|
56
|
+
const SEVERITY_WEIGHT = 1000;
|
|
57
|
+
/**
|
|
58
|
+
* Parse a task timestamp to epoch milliseconds, normalised to UTC.
|
|
59
|
+
*
|
|
60
|
+
* Stores hold both ISO-8601 with a zone (`2026-09-01T10:00:00Z`) and SQLite's
|
|
61
|
+
* zone-less `YYYY-MM-DD HH:MM:SS`. `Date.parse` reads the zone-less form as
|
|
62
|
+
* LOCAL time, so the same instant scored and sorted differently by machine
|
|
63
|
+
* (T12661 review). A timestamp without a zone is taken as UTC.
|
|
64
|
+
*
|
|
65
|
+
* @param value - Timestamp text.
|
|
66
|
+
* @returns Epoch milliseconds, or `NaN` when unparseable.
|
|
67
|
+
*/
|
|
68
|
+
export function parseTimestampMs(value) {
|
|
69
|
+
if (!value)
|
|
70
|
+
return Number.NaN;
|
|
71
|
+
const text = value.trim();
|
|
72
|
+
const hasZone = /(?:[zZ]|[+-]\d{2}:?\d{2})$/.test(text);
|
|
73
|
+
if (hasZone || !/\d{2}:\d{2}/.test(text))
|
|
74
|
+
return Date.parse(text);
|
|
75
|
+
return Date.parse(`${text.replace(' ', 'T')}Z`);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Whether every dependency of a task is satisfied, under the same readiness
|
|
79
|
+
* policy as `depsReady` (cancelled work still blocks).
|
|
80
|
+
*/
|
|
18
81
|
function areDepsReady(depends, taskStatuses) {
|
|
19
82
|
if (!depends?.length)
|
|
20
83
|
return true;
|
|
21
84
|
if (!taskStatuses)
|
|
22
85
|
return false;
|
|
23
|
-
return depends.every((depId) =>
|
|
24
|
-
const status = taskStatuses.get(depId);
|
|
25
|
-
return status !== undefined && SATISFIED_STATUSES.has(status);
|
|
26
|
-
});
|
|
86
|
+
return depends.every((depId) => isReadinessDependencySatisfied(taskStatuses.get(depId)));
|
|
27
87
|
}
|
|
28
88
|
/**
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* Scoring formula:
|
|
32
|
-
* - **Priority** (+25/+50/+75/+100 depending on level)
|
|
33
|
-
* - **Phase alignment** (+20 when task phase matches `ctx.currentPhase`)
|
|
34
|
-
* - **Dependency readiness** (+10 when all deps are done/cancelled)
|
|
35
|
-
* - **Age bonus** (+1 per week over 7 days, capped at +15)
|
|
36
|
-
* - **Brain success pattern** (+10 for first matching success pattern)
|
|
37
|
-
* - **Brain failure pattern** (-5 for first matching failure pattern)
|
|
89
|
+
* Score a single task: its lexicographic key, every factor tagged with its
|
|
90
|
+
* comparator tier, and the key folded into one number that sorts identically.
|
|
38
91
|
*
|
|
39
92
|
* @param task - Task to score
|
|
40
|
-
* @param ctx - Scoring context (phase, dep statuses, patterns)
|
|
41
|
-
* @returns Score and
|
|
93
|
+
* @param ctx - Scoring context (phase, dep statuses, leverage, `nowMs`, patterns)
|
|
94
|
+
* @returns Score, key and factors
|
|
42
95
|
*
|
|
43
96
|
* @example
|
|
44
97
|
* ```typescript
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
* { currentPhase: 'v2', taskStatuses: new Map([['T0', 'done']]) },
|
|
48
|
-
* );
|
|
49
|
-
* // result.score === 75 (priority) + 20 (phase) + 10 (deps) = 105
|
|
98
|
+
* scoreTask({ id: 'T1', title: 'Auth', priority: 'high', kind: 'bug' }, {}).key;
|
|
99
|
+
* // { band: 3, severity: 0, tiebreak: 10 } — severity unknown, deps ready
|
|
50
100
|
* ```
|
|
51
101
|
*/
|
|
52
102
|
export function scoreTask(task, ctx) {
|
|
53
103
|
const factors = [];
|
|
54
|
-
|
|
55
|
-
//
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
104
|
+
const priority = task.priority ?? 'medium';
|
|
105
|
+
// Own-property lookups only: an unvalidated value such as `toString` must
|
|
106
|
+
// fall back, never yield a prototype member (which would fold to NaN).
|
|
107
|
+
const band = Object.hasOwn(PRIORITY_BAND, priority)
|
|
108
|
+
? PRIORITY_BAND[priority]
|
|
109
|
+
: PRIORITY_BAND['medium'];
|
|
110
|
+
factors.push({
|
|
111
|
+
name: 'band',
|
|
112
|
+
delta: band * BAND_WEIGHT,
|
|
113
|
+
detail: `priority ${priority}`,
|
|
114
|
+
tier: 1,
|
|
115
|
+
});
|
|
116
|
+
const severity = task.severity && Object.hasOwn(SEVERITY_RANK, task.severity) ? SEVERITY_RANK[task.severity] : 0;
|
|
117
|
+
factors.push({
|
|
118
|
+
name: 'severity',
|
|
119
|
+
delta: severity * SEVERITY_WEIGHT,
|
|
120
|
+
detail: task.severity ?? 'unknown (not set)',
|
|
121
|
+
tier: 2,
|
|
122
|
+
});
|
|
123
|
+
let tiebreak = 0;
|
|
124
|
+
const bonus = (name, delta, detail) => {
|
|
125
|
+
tiebreak += delta;
|
|
126
|
+
factors.push({ name, delta, detail, tier: 3 });
|
|
127
|
+
};
|
|
128
|
+
if (areDepsReady(task.depends, ctx.taskStatuses)) {
|
|
129
|
+
bonus('depsReady', DEPS_READY_SCORE, 'all dependencies satisfied');
|
|
130
|
+
}
|
|
60
131
|
if (ctx.currentPhase && task.phase === ctx.currentPhase) {
|
|
61
|
-
|
|
62
|
-
factors.push({
|
|
63
|
-
name: 'phaseAlignment',
|
|
64
|
-
delta: 20,
|
|
65
|
-
detail: `matches current phase "${ctx.currentPhase}"`,
|
|
66
|
-
});
|
|
132
|
+
bonus('phaseAlignment', PHASE_ALIGNMENT_SCORE, `matches current phase "${ctx.currentPhase}"`);
|
|
67
133
|
}
|
|
68
|
-
|
|
69
|
-
if (
|
|
70
|
-
|
|
71
|
-
factors.push({ name: 'depsReady', delta: 10, detail: 'all dependencies satisfied' });
|
|
134
|
+
const dependents = ctx.leverage?.get(task.id) ?? 0;
|
|
135
|
+
if (dependents > 0) {
|
|
136
|
+
bonus('leverage', Math.min(MAX_LEVERAGE_SCORE, dependents * LEVERAGE_PER_DEPENDENT), `unblocks ${dependents} open task(s) (capped at +${MAX_LEVERAGE_SCORE})`);
|
|
72
137
|
}
|
|
73
|
-
// Age bonus
|
|
74
138
|
if (task.createdAt) {
|
|
75
139
|
const nowMs = ctx.nowMs ?? Date.now();
|
|
76
|
-
const
|
|
77
|
-
const ageDays = ageMs / (1000 * 60 * 60 * 24);
|
|
140
|
+
const ageDays = (nowMs - parseTimestampMs(task.createdAt)) / (1000 * 60 * 60 * 24);
|
|
78
141
|
if (ageDays > 7) {
|
|
79
|
-
|
|
80
|
-
score += ageBonus;
|
|
81
|
-
factors.push({
|
|
82
|
-
name: 'age',
|
|
83
|
-
delta: ageBonus,
|
|
84
|
-
detail: `${Math.floor(ageDays)} days old`,
|
|
85
|
-
});
|
|
142
|
+
bonus('age', Math.min(MAX_AGE_SCORE, Math.floor(ageDays / 7)), `anti-starvation: ${Math.floor(ageDays)} days old (capped at +${MAX_AGE_SCORE})`);
|
|
86
143
|
}
|
|
87
144
|
}
|
|
88
|
-
//
|
|
145
|
+
// BRAIN patterns: informational only — not part of the order (D11161).
|
|
89
146
|
if (ctx.successPatterns?.length || ctx.failurePatterns?.length) {
|
|
90
|
-
const
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
147
|
+
const matchText = [task.title, ...(task.labels ?? [])].join(' ').toLowerCase();
|
|
148
|
+
const success = ctx.successPatterns?.find((p) => matchText.includes(p.pattern.toLowerCase()));
|
|
149
|
+
if (success)
|
|
150
|
+
factors.push({
|
|
151
|
+
name: 'brainSuccess',
|
|
152
|
+
delta: 0,
|
|
153
|
+
detail: `success pattern "${success.pattern}"`,
|
|
154
|
+
tier: null,
|
|
155
|
+
});
|
|
156
|
+
const failure = ctx.failurePatterns?.find((p) => matchText.includes(p.pattern.toLowerCase()));
|
|
157
|
+
if (failure)
|
|
158
|
+
factors.push({
|
|
159
|
+
name: 'brainFailure',
|
|
160
|
+
delta: 0,
|
|
161
|
+
detail: `failure pattern "${failure.pattern}"`,
|
|
162
|
+
tier: null,
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
const key = { band, severity, tiebreak };
|
|
166
|
+
return { score: band * BAND_WEIGHT + severity * SEVERITY_WEIGHT + tiebreak, factors, key };
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Render one factor as an `--explain` line naming its comparator tier.
|
|
170
|
+
*
|
|
171
|
+
* @param factor - Scored factor.
|
|
172
|
+
* @returns e.g. `tier 1 band: priority high`, `tier 3 depsReady: all dependencies satisfied (+10)`,
|
|
173
|
+
* or `info brainSuccess: … (not in the order)`.
|
|
174
|
+
*/
|
|
175
|
+
export function formatScoreFactor(factor) {
|
|
176
|
+
if (factor.tier === null)
|
|
177
|
+
return `info ${factor.name}: ${factor.detail} (not in the order)`;
|
|
178
|
+
if (factor.tier === 1 || factor.tier === 2)
|
|
179
|
+
return `tier ${factor.tier} ${factor.name}: ${factor.detail}`;
|
|
180
|
+
const sign = factor.delta >= 0 ? '+' : '';
|
|
181
|
+
return `tier 3 ${factor.name}: ${factor.detail} (${sign}${factor.delta})`;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Count, for every task id, the OPEN tasks that depend on it — the leverage
|
|
185
|
+
* input of {@link scoreTask}. Done, archived and cancelled dependents are not
|
|
186
|
+
* work this task unblocks.
|
|
187
|
+
*
|
|
188
|
+
* @param tasks - Tasks with `depends` and `status`.
|
|
189
|
+
* @returns Map of task id to number of open dependents.
|
|
190
|
+
*/
|
|
191
|
+
export function computeLeverage(tasks) {
|
|
192
|
+
const leverage = new Map();
|
|
193
|
+
for (const task of tasks) {
|
|
194
|
+
if (isReadinessDependencySatisfied(task.status) || task.status === 'cancelled')
|
|
195
|
+
continue;
|
|
196
|
+
for (const dep of task.depends ?? [])
|
|
197
|
+
leverage.set(dep, (leverage.get(dep) ?? 0) + 1);
|
|
198
|
+
}
|
|
199
|
+
return leverage;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Order tasks by the tiered key: band, severity, tiebreak (all higher first),
|
|
203
|
+
* then older `createdAt` (parsed, UTC), then id — deterministic, so every
|
|
204
|
+
* ranker returns the same order for the same input.
|
|
205
|
+
*
|
|
206
|
+
* @param tasks - Candidate tasks.
|
|
207
|
+
* @param ctx - Shared scoring context.
|
|
208
|
+
* @returns Ranked tasks.
|
|
209
|
+
*/
|
|
210
|
+
export function rankTasks(tasks, ctx) {
|
|
211
|
+
// Missing or unparseable timestamps sort after every dated task.
|
|
212
|
+
const created = (task) => {
|
|
213
|
+
const ms = parseTimestampMs(task.createdAt);
|
|
214
|
+
return Number.isNaN(ms) ? Number.POSITIVE_INFINITY : ms;
|
|
215
|
+
};
|
|
216
|
+
const zero = { band: 0, severity: 0, tiebreak: 0 };
|
|
217
|
+
return tasks
|
|
218
|
+
.map((task) => ({ task, ...scoreTask(task, ctx), createdMs: created(task) }))
|
|
219
|
+
.sort((a, b) => {
|
|
220
|
+
const ka = a.key ?? zero;
|
|
221
|
+
const kb = b.key ?? zero;
|
|
222
|
+
return (kb.band - ka.band ||
|
|
223
|
+
kb.severity - ka.severity ||
|
|
224
|
+
kb.tiebreak - ka.tiebreak ||
|
|
225
|
+
(a.createdMs === b.createdMs ? 0 : a.createdMs < b.createdMs ? -1 : 1) ||
|
|
226
|
+
a.task.id.localeCompare(b.task.id));
|
|
227
|
+
})
|
|
228
|
+
.map(({ createdMs: _createdMs, ...rest }) => rest);
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Build the {@link ScoreTaskContext} every ordering surface shares (T12692):
|
|
232
|
+
* dependency statuses from the canonical readiness lookup, leverage over the
|
|
233
|
+
* population, the ranking phase and one clock instant. `cleo next`,
|
|
234
|
+
* `cleo orchestrate ready`, the focus ready wave and the wave listing all
|
|
235
|
+
* build their context here, so the same tasks rank the same way everywhere.
|
|
236
|
+
*
|
|
237
|
+
* @param population - Tasks whose open dependents count as leverage.
|
|
238
|
+
* @param dependencyLookup - Canonical dependency records (archived included).
|
|
239
|
+
* @param opts - Ranking phase and optional clock.
|
|
240
|
+
* @returns The scoring context.
|
|
241
|
+
* @task T12692
|
|
242
|
+
*/
|
|
243
|
+
export function buildRankingContext(population, dependencyLookup, opts) {
|
|
244
|
+
return {
|
|
245
|
+
currentPhase: opts.currentPhase,
|
|
246
|
+
nowMs: opts.nowMs ?? Date.now(),
|
|
247
|
+
taskStatuses: new Map([...dependencyLookup.values()].map((task) => [task.id, task.status])),
|
|
248
|
+
leverage: computeLeverage([...population]),
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Reorder items by THE comparator ({@link rankTasks}, D11161): band,
|
|
253
|
+
* severity, bounded tiebreak, createdAt, id. Items whose task record is not
|
|
254
|
+
* in `tasksById` keep their input order after every ranked item.
|
|
255
|
+
*
|
|
256
|
+
* @param items - Items to order (not mutated).
|
|
257
|
+
* @param idOf - Task id of an item.
|
|
258
|
+
* @param tasksById - Task records to rank the items by.
|
|
259
|
+
* @param ctx - Shared scoring context (see {@link buildRankingContext}).
|
|
260
|
+
* @returns A new array in ranked order.
|
|
261
|
+
* @task T12692
|
|
262
|
+
*/
|
|
263
|
+
export function orderByRanking(items, idOf, tasksById, ctx) {
|
|
264
|
+
const known = [];
|
|
265
|
+
const seen = new Set();
|
|
266
|
+
for (const item of items) {
|
|
267
|
+
const id = idOf(item);
|
|
268
|
+
const task = tasksById.get(id);
|
|
269
|
+
if (task && !seen.has(id)) {
|
|
270
|
+
seen.add(id);
|
|
271
|
+
known.push(task);
|
|
114
272
|
}
|
|
115
273
|
}
|
|
116
|
-
|
|
274
|
+
const position = new Map(rankTasks(known, ctx).map((r, index) => [r.task.id, index]));
|
|
275
|
+
const rank = (item) => position.get(idOf(item)) ?? Number.POSITIVE_INFINITY;
|
|
276
|
+
return items
|
|
277
|
+
.map((item, index) => ({ item, index, rank: rank(item) }))
|
|
278
|
+
.sort((a, b) => (a.rank === b.rank ? a.index - b.index : a.rank < b.rank ? -1 : 1))
|
|
279
|
+
.map(({ item }) => item);
|
|
117
280
|
}
|
|
118
281
|
//# sourceMappingURL=score-task-priority.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"score-task-priority.js","sourceRoot":"","sources":["../../src/task-tools/score-task-priority.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"score-task-priority.js","sourceRoot":"","sources":["../../src/task-tools/score-task-priority.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAUH,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAE9E,wDAAwD;AACxD,MAAM,CAAC,MAAM,aAAa,GAAqC;IAC7D,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;IACT,GAAG,EAAE,CAAC;CACP,CAAC;AAEF,sEAAsE;AACtE,MAAM,CAAC,MAAM,aAAa,GAA2C;IACnE,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;CACN,CAAC;AAEF,yDAAyD;AACzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAEnC,sEAAsE;AACtE,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAExC,uDAAuD;AACvD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC,0CAA0C;AAC1C,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAErC,mFAAmF;AACnF,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAEhC,sFAAsF;AACtF,MAAM,WAAW,GAAG,KAAK,CAAC;AAC1B,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAgC;IAC/D,IAAI,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC;IAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAG,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CACnB,OAA6B,EAC7B,YAA6C;IAE7C,IAAI,CAAC,OAAO,EAAE,MAAM;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IAChC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,8BAA8B,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,SAAS,CAAC,IAAoB,EAAE,GAAqB;IACnE,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC;IAC3C,0EAA0E;IAC1E,uEAAuE;IACvE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC;QACjD,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAE;QAC1B,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAC;QACX,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,IAAI,GAAG,WAAW;QACzB,MAAM,EAAE,YAAY,QAAQ,EAAE;QAC9B,IAAI,EAAE,CAAC;KACR,CAAC,CAAC;IAEH,MAAM,QAAQ,GACZ,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClG,OAAO,CAAC,IAAI,CAAC;QACX,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,QAAQ,GAAG,eAAe;QACjC,MAAM,EAAE,IAAI,CAAC,QAAQ,IAAI,mBAAmB;QAC5C,IAAI,EAAE,CAAC;KACR,CAAC,CAAC;IAEH,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,MAAc,EAAQ,EAAE;QAClE,QAAQ,IAAI,KAAK,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC;IACF,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QACjD,KAAK,CAAC,WAAW,EAAE,gBAAgB,EAAE,4BAA4B,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,YAAY,EAAE,CAAC;QACxD,KAAK,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,0BAA0B,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC;IAChG,CAAC;IACD,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,KAAK,CACH,UAAU,EACV,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,UAAU,GAAG,sBAAsB,CAAC,EACjE,YAAY,UAAU,6BAA6B,kBAAkB,GAAG,CACzE,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QACnF,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,KAAK,CACH,KAAK,EACL,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAChD,oBAAoB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,yBAAyB,aAAa,GAAG,CACjF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,IAAI,GAAG,CAAC,eAAe,EAAE,MAAM,IAAI,GAAG,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;QAC/D,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/E,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC9F,IAAI,OAAO;YACT,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,oBAAoB,OAAO,CAAC,OAAO,GAAG;gBAC9C,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;QACL,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC9F,IAAI,OAAO;YACT,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,oBAAoB,OAAO,CAAC,OAAO,GAAG;gBAC9C,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;IACP,CAAC;IAED,MAAM,GAAG,GAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACvD,OAAO,EAAE,KAAK,EAAE,IAAI,GAAG,WAAW,GAAG,QAAQ,GAAG,eAAe,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAC7F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAmB;IACnD,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO,QAAQ,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,qBAAqB,CAAC;IAC5F,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;QACxC,OAAO,QAAQ,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;IAChE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1C,OAAO,UAAU,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,KAAK,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC;AAC5E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,KAA6D;IAE7D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW;YAAE,SAAS;QACzF,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE;YAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAcD;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CACvB,KAAmB,EACnB,GAAqB;IAErB,iEAAiE;IACjE,MAAM,OAAO,GAAG,CAAC,IAAO,EAAU,EAAE;QAClC,MAAM,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,CAAC,CAAC;IACF,MAAM,IAAI,GAAiB,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACjE,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC5E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC;QACzB,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC;QACzB,OAAO,CACL,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI;YACjB,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ;YACzB,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ;YACzB,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CACnC,CAAC;IACJ,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAA6D,EAC7D,gBAAqE,EACrE,IAAqD;IAErD,OAAO;QACL,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE;QAC/B,YAAY,EAAE,IAAI,GAAG,CACnB,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAU,CAAC,CAC9E;QACD,QAAQ,EAAE,eAAe,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAmB,EACnB,IAAyB,EACzB,SAA8C,EAC9C,GAAqB;IAErB,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACb,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAU,CAAC,CAAC,CAAC;IAC/F,MAAM,IAAI,GAAG,CAAC,IAAO,EAAU,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,iBAAiB,CAAC;IACvF,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACzD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAClF,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC"}
|