@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
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Owner spot-check for the System One benchmark dataset (T12495).
|
|
3
|
+
*
|
|
4
|
+
* Before any spend, a small random sample stratified by site and label is
|
|
5
|
+
* written to a file. The orchestrator shows each item to the owner through
|
|
6
|
+
* the ask tool (the item carries the proposed label and the allowed labels
|
|
7
|
+
* as ready-made options) and writes the answers to a corrections file.
|
|
8
|
+
* {@link applyBenchCorrections} then relabels (or drops) those rows and marks
|
|
9
|
+
* them owner-verified. Both steps are offline: no provider is contacted.
|
|
10
|
+
*
|
|
11
|
+
* @task T12495
|
|
12
|
+
* @epic T12486
|
|
13
|
+
*/
|
|
14
|
+
import { readFile } from 'node:fs/promises';
|
|
15
|
+
import { z } from 'zod';
|
|
16
|
+
import { createSeededRandom, DEFAULT_BENCH_SEED, shuffled } from './stats.js';
|
|
17
|
+
import { labelsForSite } from './types.js';
|
|
18
|
+
/** Default spot-check sample size. */
|
|
19
|
+
export const DEFAULT_SPOT_CHECK_SIZE = 30;
|
|
20
|
+
/** Characters of each text shown in a spot-check item. */
|
|
21
|
+
const SPOT_CHECK_TEXT_CHARS = 280;
|
|
22
|
+
/** Clip a text for display. */
|
|
23
|
+
function brief(text) {
|
|
24
|
+
const flat = text.replace(/\s+/g, ' ').trim();
|
|
25
|
+
return flat.length <= SPOT_CHECK_TEXT_CHARS
|
|
26
|
+
? flat
|
|
27
|
+
: `${flat.slice(0, SPOT_CHECK_TEXT_CHARS - 1)}…`;
|
|
28
|
+
}
|
|
29
|
+
/** One-paragraph summary of a row. */
|
|
30
|
+
function summarize(row) {
|
|
31
|
+
if (row.site === 'duplicateDetection') {
|
|
32
|
+
const { a, b } = row.input;
|
|
33
|
+
return `Are these the same work? [${a.id}] ${brief(a.title)} — ${brief(a.description)} || [${b.id}] ${brief(b.title)} — ${brief(b.description)}`;
|
|
34
|
+
}
|
|
35
|
+
if (row.site === 'observationType') {
|
|
36
|
+
return `Which type is this observation? [${row.input.id}] ${brief(row.input.title)} — ${brief(row.input.text)}`;
|
|
37
|
+
}
|
|
38
|
+
const { newer, older } = row.input;
|
|
39
|
+
return `Does the newer decision conflict with or replace the older one? NEWER [${newer.id}] ${brief(newer.decision)} (${brief(newer.rationale)}) || OLDER [${older.id}] ${brief(older.decision)} (${brief(older.rationale)})`;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Largest-remainder allocation of `size` slots over strata, at least one
|
|
43
|
+
* slot per stratum while slots last.
|
|
44
|
+
*/
|
|
45
|
+
function allocate(counts, size) {
|
|
46
|
+
const total = counts.reduce((s, c) => s + c, 0);
|
|
47
|
+
if (total === 0)
|
|
48
|
+
return counts.map(() => 0);
|
|
49
|
+
const target = Math.min(size, total);
|
|
50
|
+
const alloc = counts.map((c) => (c > 0 && target >= counts.length ? 1 : 0));
|
|
51
|
+
let left = target - alloc.reduce((s, a) => s + a, 0);
|
|
52
|
+
const exact = counts.map((c) => (c / total) * left);
|
|
53
|
+
for (const [i, e] of exact.entries()) {
|
|
54
|
+
const add = Math.min(Math.floor(e), (counts[i] ?? 0) - (alloc[i] ?? 0));
|
|
55
|
+
alloc[i] = (alloc[i] ?? 0) + add;
|
|
56
|
+
left -= add;
|
|
57
|
+
}
|
|
58
|
+
const order = exact
|
|
59
|
+
.map((e, i) => ({ i, r: e - Math.floor(e) }))
|
|
60
|
+
.sort((x, y) => y.r - x.r || x.i - y.i);
|
|
61
|
+
while (left > 0) {
|
|
62
|
+
let moved = false;
|
|
63
|
+
for (const { i } of order) {
|
|
64
|
+
if (left === 0)
|
|
65
|
+
break;
|
|
66
|
+
if ((alloc[i] ?? 0) < (counts[i] ?? 0)) {
|
|
67
|
+
alloc[i] = (alloc[i] ?? 0) + 1;
|
|
68
|
+
left -= 1;
|
|
69
|
+
moved = true;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (!moved)
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
return alloc;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Draw a random sample stratified by site and label.
|
|
79
|
+
*
|
|
80
|
+
* @param rows - Dataset rows.
|
|
81
|
+
* @param opts - Sample size (default {@link DEFAULT_SPOT_CHECK_SIZE}) and seed.
|
|
82
|
+
* @returns The spot-check file contents.
|
|
83
|
+
*/
|
|
84
|
+
export function sampleBenchSpotCheck(rows, opts = {}) {
|
|
85
|
+
const seed = opts.seed ?? DEFAULT_BENCH_SEED;
|
|
86
|
+
const random = createSeededRandom(seed ^ 0x5eed);
|
|
87
|
+
const strata = new Map();
|
|
88
|
+
for (const r of rows) {
|
|
89
|
+
const key = `${r.site}\u0000${r.label}`;
|
|
90
|
+
strata.set(key, [...(strata.get(key) ?? []), r]);
|
|
91
|
+
}
|
|
92
|
+
const keys = [...strata.keys()].sort();
|
|
93
|
+
const alloc = allocate(keys.map((k) => strata.get(k)?.length ?? 0), opts.size ?? DEFAULT_SPOT_CHECK_SIZE);
|
|
94
|
+
const items = [];
|
|
95
|
+
for (const [i, key] of keys.entries()) {
|
|
96
|
+
for (const row of shuffled(strata.get(key) ?? [], random).slice(0, alloc[i] ?? 0)) {
|
|
97
|
+
const allowed = labelsForSite(row.site);
|
|
98
|
+
items.push({
|
|
99
|
+
id: row.id,
|
|
100
|
+
site: row.site,
|
|
101
|
+
proposedLabel: row.label,
|
|
102
|
+
options: [row.label, ...allowed.filter((l) => l !== row.label)],
|
|
103
|
+
summary: summarize(row),
|
|
104
|
+
provenance: row.provenance,
|
|
105
|
+
ownerVerified: row.ownerVerified === true,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return {
|
|
110
|
+
schemaVersion: 1,
|
|
111
|
+
generatedAt: (opts.now ?? new Date()).toISOString(),
|
|
112
|
+
seed,
|
|
113
|
+
instructions: 'For each item, ask the owner (ask tool) to pick one of `options` (the proposed label is first) or "drop" when the pair is not a fair test. Write the answers as {"corrections":[{"id","label"} | {"id","drop":true}]} and pass the file to `cleo decide bench --corrections <file>`. Confirming the proposed label also marks the row owner-verified.',
|
|
114
|
+
items: shuffled(items, random),
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
/** Zod schema of one correction. */
|
|
118
|
+
const correctionSchema = z.union([
|
|
119
|
+
z.object({
|
|
120
|
+
id: z.string().min(1),
|
|
121
|
+
label: z.string().min(1),
|
|
122
|
+
note: z.string().optional(),
|
|
123
|
+
}),
|
|
124
|
+
z.object({ id: z.string().min(1), drop: z.literal(true), note: z.string().optional() }),
|
|
125
|
+
]);
|
|
126
|
+
/** Zod schema of a corrections file: `{ corrections: [...] }` or a bare array. */
|
|
127
|
+
const correctionsFileSchema = z.union([
|
|
128
|
+
z.object({ corrections: z.array(correctionSchema) }),
|
|
129
|
+
z.array(correctionSchema),
|
|
130
|
+
]);
|
|
131
|
+
/**
|
|
132
|
+
* Parse a corrections file.
|
|
133
|
+
*
|
|
134
|
+
* @param text - File contents (JSON).
|
|
135
|
+
* @returns The corrections.
|
|
136
|
+
* @throws Error when the JSON or its shape is invalid.
|
|
137
|
+
*/
|
|
138
|
+
export function parseBenchCorrections(text) {
|
|
139
|
+
let json;
|
|
140
|
+
try {
|
|
141
|
+
json = JSON.parse(text);
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
throw new Error('corrections file is not JSON');
|
|
145
|
+
}
|
|
146
|
+
const parsed = correctionsFileSchema.safeParse(json);
|
|
147
|
+
if (!parsed.success) {
|
|
148
|
+
throw new Error('corrections file must be {"corrections":[{"id","label"}|{"id","drop":true}]}');
|
|
149
|
+
}
|
|
150
|
+
return Array.isArray(parsed.data) ? parsed.data : parsed.data.corrections;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Read and parse a corrections file.
|
|
154
|
+
*
|
|
155
|
+
* @param path - Corrections file.
|
|
156
|
+
* @returns The corrections.
|
|
157
|
+
*/
|
|
158
|
+
export async function readBenchCorrections(path) {
|
|
159
|
+
return parseBenchCorrections(await readFile(path, 'utf-8'));
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Apply owner corrections: relabel or drop the named rows and mark every
|
|
163
|
+
* corrected (or confirmed) row owner-verified. A relabelled row keeps its
|
|
164
|
+
* original label in `correctedFrom`.
|
|
165
|
+
*
|
|
166
|
+
* @param rows - Dataset rows.
|
|
167
|
+
* @param corrections - Owner answers.
|
|
168
|
+
* @returns The new rows and a receipt.
|
|
169
|
+
*/
|
|
170
|
+
export function applyBenchCorrections(rows, corrections) {
|
|
171
|
+
const byId = new Map(corrections.map((c) => [c.id, c]));
|
|
172
|
+
const seen = new Set();
|
|
173
|
+
const rejected = [];
|
|
174
|
+
let confirmed = 0;
|
|
175
|
+
let relabelled = 0;
|
|
176
|
+
let dropped = 0;
|
|
177
|
+
const out = [];
|
|
178
|
+
for (const row of rows) {
|
|
179
|
+
const c = byId.get(row.id);
|
|
180
|
+
if (!c) {
|
|
181
|
+
out.push(row);
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
seen.add(row.id);
|
|
185
|
+
const note = c.note ? { ownerNote: c.note } : {};
|
|
186
|
+
if ('drop' in c) {
|
|
187
|
+
dropped++;
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
if (!labelsForSite(row.site).includes(c.label)) {
|
|
191
|
+
rejected.push({ id: row.id, label: c.label });
|
|
192
|
+
out.push(row);
|
|
193
|
+
continue;
|
|
194
|
+
}
|
|
195
|
+
if (c.label === row.label) {
|
|
196
|
+
confirmed++;
|
|
197
|
+
out.push({ ...row, ...note, ownerVerified: true });
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
relabelled++;
|
|
201
|
+
out.push({
|
|
202
|
+
...row,
|
|
203
|
+
...note,
|
|
204
|
+
label: c.label,
|
|
205
|
+
correctedFrom: row.correctedFrom ?? row.label,
|
|
206
|
+
ownerVerified: true,
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
return {
|
|
211
|
+
rows: out,
|
|
212
|
+
receipt: {
|
|
213
|
+
confirmed,
|
|
214
|
+
relabelled,
|
|
215
|
+
dropped,
|
|
216
|
+
unmatched: corrections.filter((c) => !seen.has(c.id)).map((c) => c.id),
|
|
217
|
+
rejected,
|
|
218
|
+
},
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=spot-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spot-check.js","sourceRoot":"","sources":["../../../src/decide/bench/spot-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic randomness and summary statistics for the System One
|
|
3
|
+
* benchmark (T12495). Every random choice (negative sampling, the owner
|
|
4
|
+
* spot-check sample) goes through a seeded generator so a dataset can be
|
|
5
|
+
* rebuilt byte for byte.
|
|
6
|
+
*
|
|
7
|
+
* @task T12495
|
|
8
|
+
* @epic T12486
|
|
9
|
+
*/
|
|
10
|
+
/** Default seed: the task number, so an unseeded run is still reproducible. */
|
|
11
|
+
export declare const DEFAULT_BENCH_SEED = 12495;
|
|
12
|
+
/** A seeded generator of floats in [0, 1). */
|
|
13
|
+
export type BenchRandom = () => number;
|
|
14
|
+
/**
|
|
15
|
+
* Mulberry32: a small, fast, seeded PRNG (not cryptographic).
|
|
16
|
+
*
|
|
17
|
+
* @param seed - 32-bit seed.
|
|
18
|
+
* @returns A generator of floats in [0, 1).
|
|
19
|
+
*/
|
|
20
|
+
export declare function createSeededRandom(seed: number): BenchRandom;
|
|
21
|
+
/**
|
|
22
|
+
* Fisher–Yates shuffle into a new array.
|
|
23
|
+
*
|
|
24
|
+
* @param items - Items to shuffle.
|
|
25
|
+
* @param random - Seeded generator.
|
|
26
|
+
* @returns A shuffled copy.
|
|
27
|
+
*/
|
|
28
|
+
export declare function shuffled<T>(items: readonly T[], random: BenchRandom): T[];
|
|
29
|
+
/**
|
|
30
|
+
* The `p`-th percentile (nearest-rank) of `values`.
|
|
31
|
+
*
|
|
32
|
+
* @param values - Samples.
|
|
33
|
+
* @param p - Percentile in [0, 100].
|
|
34
|
+
* @returns The percentile, or `null` when there are no samples.
|
|
35
|
+
*/
|
|
36
|
+
export declare function percentile(values: readonly number[], p: number): number | null;
|
|
37
|
+
/** Mean and spread of one metric across repeated runs. */
|
|
38
|
+
export interface BenchSpread {
|
|
39
|
+
/** Runs that produced a value. */
|
|
40
|
+
readonly n: number;
|
|
41
|
+
/** Arithmetic mean. */
|
|
42
|
+
readonly mean: number | null;
|
|
43
|
+
/** Sample standard deviation (0 for a single run). */
|
|
44
|
+
readonly stddev: number | null;
|
|
45
|
+
/** Smallest value. */
|
|
46
|
+
readonly min: number | null;
|
|
47
|
+
/** Largest value. */
|
|
48
|
+
readonly max: number | null;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Mean, sample standard deviation, min and max of the non-null values.
|
|
52
|
+
*
|
|
53
|
+
* @param values - One value per run; `null` means the run produced none.
|
|
54
|
+
* @returns The spread.
|
|
55
|
+
*/
|
|
56
|
+
export declare function spreadOf(values: readonly (number | null)[]): BenchSpread;
|
|
57
|
+
//# sourceMappingURL=stats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../../src/decide/bench/stats.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAExC,8CAA8C;AAC9C,MAAM,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC;AAEvC;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAS5D;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,GAAG,CAAC,EAAE,CAWzE;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK9E;AAED,0DAA0D;AAC1D,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,sBAAsB;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,qBAAqB;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,WAAW,CAaxE"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic randomness and summary statistics for the System One
|
|
3
|
+
* benchmark (T12495). Every random choice (negative sampling, the owner
|
|
4
|
+
* spot-check sample) goes through a seeded generator so a dataset can be
|
|
5
|
+
* rebuilt byte for byte.
|
|
6
|
+
*
|
|
7
|
+
* @task T12495
|
|
8
|
+
* @epic T12486
|
|
9
|
+
*/
|
|
10
|
+
/** Default seed: the task number, so an unseeded run is still reproducible. */
|
|
11
|
+
export const DEFAULT_BENCH_SEED = 12495;
|
|
12
|
+
/**
|
|
13
|
+
* Mulberry32: a small, fast, seeded PRNG (not cryptographic).
|
|
14
|
+
*
|
|
15
|
+
* @param seed - 32-bit seed.
|
|
16
|
+
* @returns A generator of floats in [0, 1).
|
|
17
|
+
*/
|
|
18
|
+
export function createSeededRandom(seed) {
|
|
19
|
+
let a = seed >>> 0;
|
|
20
|
+
return () => {
|
|
21
|
+
a = (a + 0x6d2b79f5) >>> 0;
|
|
22
|
+
let t = a;
|
|
23
|
+
t = Math.imul(t ^ (t >>> 15), t | 1);
|
|
24
|
+
t ^= t + Math.imul(t ^ (t >>> 7), t | 61);
|
|
25
|
+
return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Fisher–Yates shuffle into a new array.
|
|
30
|
+
*
|
|
31
|
+
* @param items - Items to shuffle.
|
|
32
|
+
* @param random - Seeded generator.
|
|
33
|
+
* @returns A shuffled copy.
|
|
34
|
+
*/
|
|
35
|
+
export function shuffled(items, random) {
|
|
36
|
+
const out = [...items];
|
|
37
|
+
for (let i = out.length - 1; i > 0; i--) {
|
|
38
|
+
const j = Math.floor(random() * (i + 1));
|
|
39
|
+
const tmp = out[i];
|
|
40
|
+
const other = out[j];
|
|
41
|
+
if (tmp === undefined || other === undefined)
|
|
42
|
+
continue;
|
|
43
|
+
out[i] = other;
|
|
44
|
+
out[j] = tmp;
|
|
45
|
+
}
|
|
46
|
+
return out;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The `p`-th percentile (nearest-rank) of `values`.
|
|
50
|
+
*
|
|
51
|
+
* @param values - Samples.
|
|
52
|
+
* @param p - Percentile in [0, 100].
|
|
53
|
+
* @returns The percentile, or `null` when there are no samples.
|
|
54
|
+
*/
|
|
55
|
+
export function percentile(values, p) {
|
|
56
|
+
if (values.length === 0)
|
|
57
|
+
return null;
|
|
58
|
+
const sorted = [...values].sort((x, y) => x - y);
|
|
59
|
+
const rank = Math.min(sorted.length, Math.max(1, Math.ceil((p / 100) * sorted.length)));
|
|
60
|
+
return sorted[rank - 1] ?? null;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Mean, sample standard deviation, min and max of the non-null values.
|
|
64
|
+
*
|
|
65
|
+
* @param values - One value per run; `null` means the run produced none.
|
|
66
|
+
* @returns The spread.
|
|
67
|
+
*/
|
|
68
|
+
export function spreadOf(values) {
|
|
69
|
+
const xs = values.filter((v) => v !== null && Number.isFinite(v));
|
|
70
|
+
if (xs.length === 0)
|
|
71
|
+
return { n: 0, mean: null, stddev: null, min: null, max: null };
|
|
72
|
+
const mean = xs.reduce((s, x) => s + x, 0) / xs.length;
|
|
73
|
+
const variance = xs.length > 1 ? xs.reduce((s, x) => s + (x - mean) ** 2, 0) / (xs.length - 1) : 0;
|
|
74
|
+
return {
|
|
75
|
+
n: xs.length,
|
|
76
|
+
mean,
|
|
77
|
+
stddev: Math.sqrt(variance),
|
|
78
|
+
min: Math.min(...xs),
|
|
79
|
+
max: Math.max(...xs),
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=stats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/decide/bench/stats.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types and row schemas for the System One accuracy benchmark (T12495).
|
|
3
|
+
*
|
|
4
|
+
* A benchmark row is ONE labelled question built from CLEO's own history
|
|
5
|
+
* (duplicate task pairs, explicitly typed observations, superseding decision
|
|
6
|
+
* pairs), already redacted. Rows are stored as JSONL; every row carries its
|
|
7
|
+
* provenance (source record ids and the rule that labelled it) so the owner
|
|
8
|
+
* spot-check and any later audit can trace the label back to the store.
|
|
9
|
+
*
|
|
10
|
+
* @task T12495
|
|
11
|
+
* @epic T12486
|
|
12
|
+
*/
|
|
13
|
+
import { z } from 'zod';
|
|
14
|
+
/** The benchmarked decision sites, by their `decide.sites.*` key name. */
|
|
15
|
+
export declare const BENCH_SITES: readonly ["duplicateDetection", "observationType", "decisionContradiction"];
|
|
16
|
+
/** One of {@link BENCH_SITES}. */
|
|
17
|
+
export type BenchSite = (typeof BENCH_SITES)[number];
|
|
18
|
+
/** Labels of the duplicate-detection site. `duplicate` is the positive class. */
|
|
19
|
+
export declare const DUPLICATE_LABELS: readonly ["duplicate", "distinct"];
|
|
20
|
+
/** Labels of the decision-contradiction site. `conflict` is the positive class. */
|
|
21
|
+
export declare const CONTRADICTION_LABELS: readonly ["conflict", "compatible"];
|
|
22
|
+
/**
|
|
23
|
+
* The labels a row of `site` may carry.
|
|
24
|
+
*
|
|
25
|
+
* @param site - Benchmarked site.
|
|
26
|
+
* @returns The allowed labels, positive class first for the two-label sites.
|
|
27
|
+
*/
|
|
28
|
+
export declare function labelsForSite(site: BenchSite): readonly string[];
|
|
29
|
+
/**
|
|
30
|
+
* The positive class of a two-label site, or `null` for a multi-class site
|
|
31
|
+
* (whose precision, recall, F1 and false-positive rate are macro averages).
|
|
32
|
+
*
|
|
33
|
+
* @param site - Benchmarked site.
|
|
34
|
+
* @returns The positive label, or `null`.
|
|
35
|
+
*/
|
|
36
|
+
export declare function positiveLabel(site: BenchSite): string | null;
|
|
37
|
+
/** Why a row carries its label. */
|
|
38
|
+
export declare const BENCH_LABEL_RULES: readonly ["duplicates-relation", "cancelled-duplicate-reason", "note-duplicate-reference", "same-parent-unrelated", "explicit-type", "supersedes-edge", "random-unlinked-pair"];
|
|
39
|
+
/** One of {@link BENCH_LABEL_RULES}. */
|
|
40
|
+
export type BenchLabelRule = (typeof BENCH_LABEL_RULES)[number];
|
|
41
|
+
/** Zod schema of one dataset row (one JSONL line). */
|
|
42
|
+
export declare const benchRowSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
43
|
+
site: z.ZodLiteral<"duplicateDetection">;
|
|
44
|
+
input: z.ZodObject<{
|
|
45
|
+
a: z.ZodObject<{
|
|
46
|
+
id: z.ZodString;
|
|
47
|
+
title: z.ZodString;
|
|
48
|
+
description: z.ZodString;
|
|
49
|
+
}, z.core.$strip>;
|
|
50
|
+
b: z.ZodObject<{
|
|
51
|
+
id: z.ZodString;
|
|
52
|
+
title: z.ZodString;
|
|
53
|
+
description: z.ZodString;
|
|
54
|
+
}, z.core.$strip>;
|
|
55
|
+
}, z.core.$strip>;
|
|
56
|
+
id: z.ZodString;
|
|
57
|
+
label: z.ZodString;
|
|
58
|
+
provenance: z.ZodObject<{
|
|
59
|
+
sourceIds: z.ZodArray<z.ZodString>;
|
|
60
|
+
rule: z.ZodEnum<{
|
|
61
|
+
"duplicates-relation": "duplicates-relation";
|
|
62
|
+
"cancelled-duplicate-reason": "cancelled-duplicate-reason";
|
|
63
|
+
"note-duplicate-reference": "note-duplicate-reference";
|
|
64
|
+
"same-parent-unrelated": "same-parent-unrelated";
|
|
65
|
+
"explicit-type": "explicit-type";
|
|
66
|
+
"supersedes-edge": "supersedes-edge";
|
|
67
|
+
"random-unlinked-pair": "random-unlinked-pair";
|
|
68
|
+
}>;
|
|
69
|
+
reason: z.ZodString;
|
|
70
|
+
}, z.core.$strip>;
|
|
71
|
+
ownerVerified: z.ZodOptional<z.ZodBoolean>;
|
|
72
|
+
correctedFrom: z.ZodOptional<z.ZodString>;
|
|
73
|
+
ownerNote: z.ZodOptional<z.ZodString>;
|
|
74
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
75
|
+
site: z.ZodLiteral<"observationType">;
|
|
76
|
+
input: z.ZodObject<{
|
|
77
|
+
id: z.ZodString;
|
|
78
|
+
title: z.ZodString;
|
|
79
|
+
text: z.ZodString;
|
|
80
|
+
}, z.core.$strip>;
|
|
81
|
+
id: z.ZodString;
|
|
82
|
+
label: z.ZodString;
|
|
83
|
+
provenance: z.ZodObject<{
|
|
84
|
+
sourceIds: z.ZodArray<z.ZodString>;
|
|
85
|
+
rule: z.ZodEnum<{
|
|
86
|
+
"duplicates-relation": "duplicates-relation";
|
|
87
|
+
"cancelled-duplicate-reason": "cancelled-duplicate-reason";
|
|
88
|
+
"note-duplicate-reference": "note-duplicate-reference";
|
|
89
|
+
"same-parent-unrelated": "same-parent-unrelated";
|
|
90
|
+
"explicit-type": "explicit-type";
|
|
91
|
+
"supersedes-edge": "supersedes-edge";
|
|
92
|
+
"random-unlinked-pair": "random-unlinked-pair";
|
|
93
|
+
}>;
|
|
94
|
+
reason: z.ZodString;
|
|
95
|
+
}, z.core.$strip>;
|
|
96
|
+
ownerVerified: z.ZodOptional<z.ZodBoolean>;
|
|
97
|
+
correctedFrom: z.ZodOptional<z.ZodString>;
|
|
98
|
+
ownerNote: z.ZodOptional<z.ZodString>;
|
|
99
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
100
|
+
site: z.ZodLiteral<"decisionContradiction">;
|
|
101
|
+
input: z.ZodObject<{
|
|
102
|
+
newer: z.ZodObject<{
|
|
103
|
+
id: z.ZodString;
|
|
104
|
+
type: z.ZodOptional<z.ZodString>;
|
|
105
|
+
decision: z.ZodString;
|
|
106
|
+
rationale: z.ZodString;
|
|
107
|
+
}, z.core.$strip>;
|
|
108
|
+
older: z.ZodObject<{
|
|
109
|
+
id: z.ZodString;
|
|
110
|
+
type: z.ZodOptional<z.ZodString>;
|
|
111
|
+
decision: z.ZodString;
|
|
112
|
+
rationale: z.ZodString;
|
|
113
|
+
}, z.core.$strip>;
|
|
114
|
+
}, z.core.$strip>;
|
|
115
|
+
id: z.ZodString;
|
|
116
|
+
label: z.ZodString;
|
|
117
|
+
provenance: z.ZodObject<{
|
|
118
|
+
sourceIds: z.ZodArray<z.ZodString>;
|
|
119
|
+
rule: z.ZodEnum<{
|
|
120
|
+
"duplicates-relation": "duplicates-relation";
|
|
121
|
+
"cancelled-duplicate-reason": "cancelled-duplicate-reason";
|
|
122
|
+
"note-duplicate-reference": "note-duplicate-reference";
|
|
123
|
+
"same-parent-unrelated": "same-parent-unrelated";
|
|
124
|
+
"explicit-type": "explicit-type";
|
|
125
|
+
"supersedes-edge": "supersedes-edge";
|
|
126
|
+
"random-unlinked-pair": "random-unlinked-pair";
|
|
127
|
+
}>;
|
|
128
|
+
reason: z.ZodString;
|
|
129
|
+
}, z.core.$strip>;
|
|
130
|
+
ownerVerified: z.ZodOptional<z.ZodBoolean>;
|
|
131
|
+
correctedFrom: z.ZodOptional<z.ZodString>;
|
|
132
|
+
ownerNote: z.ZodOptional<z.ZodString>;
|
|
133
|
+
}, z.core.$strip>], "site">;
|
|
134
|
+
/** One labelled, redacted benchmark row. */
|
|
135
|
+
export type BenchRow = z.infer<typeof benchRowSchema>;
|
|
136
|
+
/** Where a row came from and why it carries its label. */
|
|
137
|
+
export type BenchProvenance = BenchRow['provenance'];
|
|
138
|
+
/** A task as the dataset builder reads it (from the task accessor). */
|
|
139
|
+
export interface BenchTaskRecord {
|
|
140
|
+
/** Task id. */
|
|
141
|
+
readonly id: string;
|
|
142
|
+
/** Title. */
|
|
143
|
+
readonly title: string;
|
|
144
|
+
/** Description (empty when absent). */
|
|
145
|
+
readonly description: string;
|
|
146
|
+
/** Status. */
|
|
147
|
+
readonly status: string;
|
|
148
|
+
/** Parent id, when any. */
|
|
149
|
+
readonly parentId: string | null;
|
|
150
|
+
/** Cancellation reason, when cancelled with one. */
|
|
151
|
+
readonly cancellationReason?: string;
|
|
152
|
+
/** Free-text notes. */
|
|
153
|
+
readonly notes: readonly string[];
|
|
154
|
+
/** Typed relations to other tasks. */
|
|
155
|
+
readonly relates: readonly {
|
|
156
|
+
readonly taskId: string;
|
|
157
|
+
readonly type: string;
|
|
158
|
+
readonly reason?: string;
|
|
159
|
+
}[];
|
|
160
|
+
}
|
|
161
|
+
/** An observation as the dataset builder reads it (from the brain accessor). */
|
|
162
|
+
export interface BenchObservationRecord {
|
|
163
|
+
/** Observation id. */
|
|
164
|
+
readonly id: string;
|
|
165
|
+
/** Stored type. */
|
|
166
|
+
readonly type: string;
|
|
167
|
+
/** Title. */
|
|
168
|
+
readonly title: string;
|
|
169
|
+
/** Narrative (the text the keyword heuristic classifies). */
|
|
170
|
+
readonly narrative: string;
|
|
171
|
+
}
|
|
172
|
+
/** A decision as the dataset builder reads it (from the brain accessor). */
|
|
173
|
+
export interface BenchDecisionRecord {
|
|
174
|
+
/** Decision id. */
|
|
175
|
+
readonly id: string;
|
|
176
|
+
/** Decision type. */
|
|
177
|
+
readonly type: string;
|
|
178
|
+
/** Decision text. */
|
|
179
|
+
readonly decision: string;
|
|
180
|
+
/** Rationale. */
|
|
181
|
+
readonly rationale: string;
|
|
182
|
+
/** Id of the decision this one supersedes, when any. */
|
|
183
|
+
readonly supersedes?: string | null;
|
|
184
|
+
/** Id of the decision that superseded this one, when any. */
|
|
185
|
+
readonly supersededBy?: string | null;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* The store port the dataset builder reads through. The default
|
|
189
|
+
* implementation (`./source.ts`) uses the core task and brain accessors;
|
|
190
|
+
* tests inject records directly.
|
|
191
|
+
*/
|
|
192
|
+
export interface BenchSource {
|
|
193
|
+
/** Every task, including cancelled and archived ones. */
|
|
194
|
+
tasks(): Promise<readonly BenchTaskRecord[]>;
|
|
195
|
+
/** Every observation, including invalidated ones. */
|
|
196
|
+
observations(): Promise<readonly BenchObservationRecord[]>;
|
|
197
|
+
/** Every decision, including superseded ones. */
|
|
198
|
+
decisions(): Promise<readonly BenchDecisionRecord[]>;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* One provider connection the benchmark compares. The key is sent only as a
|
|
202
|
+
* bearer token and is never written to the results, the report or the log.
|
|
203
|
+
*/
|
|
204
|
+
export interface BenchConnection {
|
|
205
|
+
/** Profile name shown in the results (e.g. `layahost`, `jev`). */
|
|
206
|
+
readonly name: string;
|
|
207
|
+
/** Provider kind (`layahost`, `jev`, …); informational. */
|
|
208
|
+
readonly provider: string;
|
|
209
|
+
/** Jev-compatible base URL. */
|
|
210
|
+
readonly baseUrl: string;
|
|
211
|
+
/** API key. */
|
|
212
|
+
readonly apiKey: string;
|
|
213
|
+
/** Model; absent → the provider's default. */
|
|
214
|
+
readonly model?: string;
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/decide/bench/types.ts"],"names":[],"mappings":"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"}
|