@productbrain/cli 0.1.0-beta.55 → 0.1.0-beta.5504
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/README.md +3 -1
- package/dist/__tests__/adapters.test.js +54 -1
- package/dist/__tests__/adapters.test.js.map +1 -1
- package/dist/__tests__/adminConfig.test.d.ts +18 -0
- package/dist/__tests__/adminConfig.test.d.ts.map +1 -0
- package/dist/__tests__/adminConfig.test.js +221 -0
- package/dist/__tests__/adminConfig.test.js.map +1 -0
- package/dist/__tests__/audit.test.js +65 -44
- package/dist/__tests__/audit.test.js.map +1 -1
- package/dist/__tests__/authority-domains-queue.test.d.ts +2 -0
- package/dist/__tests__/authority-domains-queue.test.d.ts.map +1 -0
- package/dist/__tests__/authority-domains-queue.test.js +169 -0
- package/dist/__tests__/authority-domains-queue.test.js.map +1 -0
- package/dist/__tests__/authority-domains.test.d.ts +2 -0
- package/dist/__tests__/authority-domains.test.d.ts.map +1 -0
- package/dist/__tests__/authority-domains.test.js +48 -0
- package/dist/__tests__/authority-domains.test.js.map +1 -0
- package/dist/__tests__/canonicalRefs.vocab.test.d.ts +2 -0
- package/dist/__tests__/canonicalRefs.vocab.test.d.ts.map +1 -0
- package/dist/__tests__/canonicalRefs.vocab.test.js +251 -0
- package/dist/__tests__/canonicalRefs.vocab.test.js.map +1 -0
- package/dist/__tests__/capture-receipt-coaching.test.d.ts +2 -0
- package/dist/__tests__/capture-receipt-coaching.test.d.ts.map +1 -0
- package/dist/__tests__/capture-receipt-coaching.test.js +89 -0
- package/dist/__tests__/capture-receipt-coaching.test.js.map +1 -0
- package/dist/__tests__/capture-receipt-domain.test.d.ts +2 -0
- package/dist/__tests__/capture-receipt-domain.test.d.ts.map +1 -0
- package/dist/__tests__/capture-receipt-domain.test.js +29 -0
- package/dist/__tests__/capture-receipt-domain.test.js.map +1 -0
- package/dist/__tests__/capture.test.js +1123 -54
- package/dist/__tests__/capture.test.js.map +1 -1
- package/dist/__tests__/client-binding-guard.test.d.ts +2 -0
- package/dist/__tests__/client-binding-guard.test.d.ts.map +1 -0
- package/dist/__tests__/client-binding-guard.test.js +84 -0
- package/dist/__tests__/client-binding-guard.test.js.map +1 -0
- package/dist/__tests__/coaching-mirror-drift.test.d.ts +2 -0
- package/dist/__tests__/coaching-mirror-drift.test.d.ts.map +1 -0
- package/dist/__tests__/coaching-mirror-drift.test.js +47 -0
- package/dist/__tests__/coaching-mirror-drift.test.js.map +1 -0
- package/dist/__tests__/codex-prep-parity.test.d.ts +2 -0
- package/dist/__tests__/codex-prep-parity.test.d.ts.map +1 -0
- package/dist/__tests__/codex-prep-parity.test.js +107 -0
- package/dist/__tests__/codex-prep-parity.test.js.map +1 -0
- package/dist/__tests__/collection-registry-seed-drift.test.d.ts +2 -0
- package/dist/__tests__/collection-registry-seed-drift.test.d.ts.map +1 -0
- package/dist/__tests__/collection-registry-seed-drift.test.js +81 -0
- package/dist/__tests__/collection-registry-seed-drift.test.js.map +1 -0
- package/dist/__tests__/config-prod-fallthrough.test.d.ts +2 -0
- package/dist/__tests__/config-prod-fallthrough.test.d.ts.map +1 -0
- package/dist/__tests__/config-prod-fallthrough.test.js +93 -0
- package/dist/__tests__/config-prod-fallthrough.test.js.map +1 -0
- package/dist/__tests__/config.test.d.ts +1 -1
- package/dist/__tests__/config.test.js +845 -18
- package/dist/__tests__/config.test.js.map +1 -1
- package/dist/__tests__/constants.test.js +6 -1
- package/dist/__tests__/constants.test.js.map +1 -1
- package/dist/__tests__/constellation.test.js +14 -14
- package/dist/__tests__/constellation.test.js.map +1 -1
- package/dist/__tests__/context-strategy.test.js +8 -8
- package/dist/__tests__/context-strategy.test.js.map +1 -1
- package/dist/__tests__/conversation.test.d.ts +2 -0
- package/dist/__tests__/conversation.test.d.ts.map +1 -0
- package/dist/__tests__/conversation.test.js +113 -0
- package/dist/__tests__/conversation.test.js.map +1 -0
- package/dist/__tests__/entry-formatter.test.d.ts +2 -0
- package/dist/__tests__/entry-formatter.test.d.ts.map +1 -0
- package/dist/__tests__/entry-formatter.test.js +82 -0
- package/dist/__tests__/entry-formatter.test.js.map +1 -0
- package/dist/__tests__/entryArchive.test.d.ts +2 -0
- package/dist/__tests__/entryArchive.test.d.ts.map +1 -0
- package/dist/__tests__/entryArchive.test.js +35 -0
- package/dist/__tests__/entryArchive.test.js.map +1 -0
- package/dist/__tests__/envelope-contract.test.d.ts +15 -0
- package/dist/__tests__/envelope-contract.test.d.ts.map +1 -0
- package/dist/__tests__/envelope-contract.test.js +154 -0
- package/dist/__tests__/envelope-contract.test.js.map +1 -0
- package/dist/__tests__/errors.test.js +26 -0
- package/dist/__tests__/errors.test.js.map +1 -1
- package/dist/__tests__/fields.test.js +20 -20
- package/dist/__tests__/fields.test.js.map +1 -1
- package/dist/__tests__/gateway-dry-run-timeout.test.d.ts +2 -0
- package/dist/__tests__/gateway-dry-run-timeout.test.d.ts.map +1 -0
- package/dist/__tests__/gateway-dry-run-timeout.test.js +70 -0
- package/dist/__tests__/gateway-dry-run-timeout.test.js.map +1 -0
- package/dist/__tests__/gateway-timeout-body-phase.test.d.ts +2 -0
- package/dist/__tests__/gateway-timeout-body-phase.test.d.ts.map +1 -0
- package/dist/__tests__/gateway-timeout-body-phase.test.js +121 -0
- package/dist/__tests__/gateway-timeout-body-phase.test.js.map +1 -0
- package/dist/__tests__/handshake-augment.test.d.ts +2 -0
- package/dist/__tests__/handshake-augment.test.d.ts.map +1 -0
- package/dist/__tests__/handshake-augment.test.js +424 -0
- package/dist/__tests__/handshake-augment.test.js.map +1 -0
- package/dist/__tests__/handshake-dormancy.test.d.ts +2 -0
- package/dist/__tests__/handshake-dormancy.test.d.ts.map +1 -0
- package/dist/__tests__/handshake-dormancy.test.js +207 -0
- package/dist/__tests__/handshake-dormancy.test.js.map +1 -0
- package/dist/__tests__/handshake-formatter.test.d.ts +2 -0
- package/dist/__tests__/handshake-formatter.test.d.ts.map +1 -0
- package/dist/__tests__/handshake-formatter.test.js +67 -0
- package/dist/__tests__/handshake-formatter.test.js.map +1 -0
- package/dist/__tests__/handshake-preview.test.d.ts +2 -0
- package/dist/__tests__/handshake-preview.test.d.ts.map +1 -0
- package/dist/__tests__/handshake-preview.test.js +950 -0
- package/dist/__tests__/handshake-preview.test.js.map +1 -0
- package/dist/__tests__/handshake.e2e.test.d.ts +2 -0
- package/dist/__tests__/handshake.e2e.test.d.ts.map +1 -0
- package/dist/__tests__/handshake.e2e.test.js +1255 -0
- package/dist/__tests__/handshake.e2e.test.js.map +1 -0
- package/dist/__tests__/handshake.test.js +787 -2
- package/dist/__tests__/handshake.test.js.map +1 -1
- package/dist/__tests__/health-gap-kinds-drift.test.d.ts +2 -0
- package/dist/__tests__/health-gap-kinds-drift.test.d.ts.map +1 -0
- package/dist/__tests__/health-gap-kinds-drift.test.js +41 -0
- package/dist/__tests__/health-gap-kinds-drift.test.js.map +1 -0
- package/dist/__tests__/hook-intents.test.d.ts +2 -0
- package/dist/__tests__/hook-intents.test.d.ts.map +1 -0
- package/dist/__tests__/hook-intents.test.js +184 -0
- package/dist/__tests__/hook-intents.test.js.map +1 -0
- package/dist/__tests__/ingest.test.js +37 -28
- package/dist/__tests__/ingest.test.js.map +1 -1
- package/dist/__tests__/init.test.js +51 -14
- package/dist/__tests__/init.test.js.map +1 -1
- package/dist/__tests__/kernel-value-sets-drift.test.d.ts +2 -0
- package/dist/__tests__/kernel-value-sets-drift.test.d.ts.map +1 -0
- package/dist/__tests__/kernel-value-sets-drift.test.js +46 -0
- package/dist/__tests__/kernel-value-sets-drift.test.js.map +1 -0
- package/dist/__tests__/kernel-value-sets-generator.test.d.ts +2 -0
- package/dist/__tests__/kernel-value-sets-generator.test.d.ts.map +1 -0
- package/dist/__tests__/kernel-value-sets-generator.test.js +108 -0
- package/dist/__tests__/kernel-value-sets-generator.test.js.map +1 -0
- package/dist/__tests__/manifest.test.d.ts +6 -0
- package/dist/__tests__/manifest.test.d.ts.map +1 -0
- package/dist/__tests__/manifest.test.js +255 -0
- package/dist/__tests__/manifest.test.js.map +1 -0
- package/dist/__tests__/method-publish-coherency.test.d.ts +9 -0
- package/dist/__tests__/method-publish-coherency.test.d.ts.map +1 -0
- package/dist/__tests__/method-publish-coherency.test.js +71 -0
- package/dist/__tests__/method-publish-coherency.test.js.map +1 -0
- package/dist/__tests__/method-registry.integration.test.d.ts +6 -0
- package/dist/__tests__/method-registry.integration.test.d.ts.map +1 -0
- package/dist/__tests__/method-registry.integration.test.js +17 -0
- package/dist/__tests__/method-registry.integration.test.js.map +1 -0
- package/dist/__tests__/method-registry.test.d.ts +12 -0
- package/dist/__tests__/method-registry.test.d.ts.map +1 -0
- package/dist/__tests__/method-registry.test.js +86 -0
- package/dist/__tests__/method-registry.test.js.map +1 -0
- package/dist/__tests__/migrate-setup-session-refusal.test.d.ts +2 -0
- package/dist/__tests__/migrate-setup-session-refusal.test.d.ts.map +1 -0
- package/dist/__tests__/migrate-setup-session-refusal.test.js +65 -0
- package/dist/__tests__/migrate-setup-session-refusal.test.js.map +1 -0
- package/dist/__tests__/missingPin.test.d.ts +11 -0
- package/dist/__tests__/missingPin.test.d.ts.map +1 -0
- package/dist/__tests__/missingPin.test.js +233 -0
- package/dist/__tests__/missingPin.test.js.map +1 -0
- package/dist/__tests__/notice-marker.test.d.ts +2 -0
- package/dist/__tests__/notice-marker.test.d.ts.map +1 -0
- package/dist/__tests__/notice-marker.test.js +176 -0
- package/dist/__tests__/notice-marker.test.js.map +1 -0
- package/dist/__tests__/onboarding-path-b.test.js +4 -4
- package/dist/__tests__/onboarding-path-b.test.js.map +1 -1
- package/dist/__tests__/orient.test.js +503 -13
- package/dist/__tests__/orient.test.js.map +1 -1
- package/dist/__tests__/perimeter.test.d.ts +2 -0
- package/dist/__tests__/perimeter.test.d.ts.map +1 -0
- package/dist/__tests__/perimeter.test.js +165 -0
- package/dist/__tests__/perimeter.test.js.map +1 -0
- package/dist/__tests__/personal-layer.test.d.ts +11 -0
- package/dist/__tests__/personal-layer.test.d.ts.map +1 -0
- package/dist/__tests__/personal-layer.test.js +268 -0
- package/dist/__tests__/personal-layer.test.js.map +1 -0
- package/dist/__tests__/preview-key-refresh.test.d.ts +2 -0
- package/dist/__tests__/preview-key-refresh.test.d.ts.map +1 -0
- package/dist/__tests__/preview-key-refresh.test.js +126 -0
- package/dist/__tests__/preview-key-refresh.test.js.map +1 -0
- package/dist/__tests__/profiles.test.js +380 -5
- package/dist/__tests__/profiles.test.js.map +1 -1
- package/dist/__tests__/promote-batch.test.d.ts +2 -0
- package/dist/__tests__/promote-batch.test.d.ts.map +1 -0
- package/dist/__tests__/promote-batch.test.js +185 -0
- package/dist/__tests__/promote-batch.test.js.map +1 -0
- package/dist/__tests__/promote.test.js +292 -23
- package/dist/__tests__/promote.test.js.map +1 -1
- package/dist/__tests__/proof-run.test.d.ts +2 -0
- package/dist/__tests__/proof-run.test.d.ts.map +1 -0
- package/dist/__tests__/proof-run.test.js +255 -0
- package/dist/__tests__/proof-run.test.js.map +1 -0
- package/dist/__tests__/proposals.test.js +19 -19
- package/dist/__tests__/proposals.test.js.map +1 -1
- package/dist/__tests__/rate-limit-resilience.test.d.ts +7 -0
- package/dist/__tests__/rate-limit-resilience.test.d.ts.map +1 -0
- package/dist/__tests__/rate-limit-resilience.test.js +209 -0
- package/dist/__tests__/rate-limit-resilience.test.js.map +1 -0
- package/dist/__tests__/read-target-notice.test.d.ts +2 -0
- package/dist/__tests__/read-target-notice.test.d.ts.map +1 -0
- package/dist/__tests__/read-target-notice.test.js +129 -0
- package/dist/__tests__/read-target-notice.test.js.map +1 -0
- package/dist/__tests__/relate.test.js +146 -14
- package/dist/__tests__/relate.test.js.map +1 -1
- package/dist/__tests__/reportedProfile.test.d.ts +2 -0
- package/dist/__tests__/reportedProfile.test.d.ts.map +1 -0
- package/dist/__tests__/reportedProfile.test.js +328 -0
- package/dist/__tests__/reportedProfile.test.js.map +1 -0
- package/dist/__tests__/restore.test.d.ts +2 -0
- package/dist/__tests__/restore.test.d.ts.map +1 -0
- package/dist/__tests__/restore.test.js +85 -0
- package/dist/__tests__/restore.test.js.map +1 -0
- package/dist/__tests__/route-latency-budget.test.d.ts +2 -0
- package/dist/__tests__/route-latency-budget.test.d.ts.map +1 -0
- package/dist/__tests__/route-latency-budget.test.js +103 -0
- package/dist/__tests__/route-latency-budget.test.js.map +1 -0
- package/dist/__tests__/session-binding-refusal-tenant.test.d.ts +2 -0
- package/dist/__tests__/session-binding-refusal-tenant.test.d.ts.map +1 -0
- package/dist/__tests__/session-binding-refusal-tenant.test.js +112 -0
- package/dist/__tests__/session-binding-refusal-tenant.test.js.map +1 -0
- package/dist/__tests__/session-close-loop.test.d.ts +2 -0
- package/dist/__tests__/session-close-loop.test.d.ts.map +1 -0
- package/dist/__tests__/session-close-loop.test.js +231 -0
- package/dist/__tests__/session-close-loop.test.js.map +1 -0
- package/dist/__tests__/session-label.test.d.ts +2 -0
- package/dist/__tests__/session-label.test.d.ts.map +1 -0
- package/dist/__tests__/session-label.test.js +46 -0
- package/dist/__tests__/session-label.test.js.map +1 -0
- package/dist/__tests__/session-list-show.test.d.ts +2 -0
- package/dist/__tests__/session-list-show.test.d.ts.map +1 -0
- package/dist/__tests__/session-list-show.test.js +174 -0
- package/dist/__tests__/session-list-show.test.js.map +1 -0
- package/dist/__tests__/session-reset.test.d.ts +2 -0
- package/dist/__tests__/session-reset.test.d.ts.map +1 -0
- package/dist/__tests__/session-reset.test.js +138 -0
- package/dist/__tests__/session-reset.test.js.map +1 -0
- package/dist/__tests__/session-resume-backstop.test.d.ts +2 -0
- package/dist/__tests__/session-resume-backstop.test.d.ts.map +1 -0
- package/dist/__tests__/session-resume-backstop.test.js +107 -0
- package/dist/__tests__/session-resume-backstop.test.js.map +1 -0
- package/dist/__tests__/session-start-key-refresh.test.d.ts +2 -0
- package/dist/__tests__/session-start-key-refresh.test.d.ts.map +1 -0
- package/dist/__tests__/session-start-key-refresh.test.js +212 -0
- package/dist/__tests__/session-start-key-refresh.test.js.map +1 -0
- package/dist/__tests__/session-state-machine.test.d.ts +2 -0
- package/dist/__tests__/session-state-machine.test.d.ts.map +1 -0
- package/dist/__tests__/session-state-machine.test.js +379 -0
- package/dist/__tests__/session-state-machine.test.js.map +1 -0
- package/dist/__tests__/session-switch.test.d.ts +2 -0
- package/dist/__tests__/session-switch.test.d.ts.map +1 -0
- package/dist/__tests__/session-switch.test.js +267 -0
- package/dist/__tests__/session-switch.test.js.map +1 -0
- package/dist/__tests__/session-touch.test.js +16 -11
- package/dist/__tests__/session-touch.test.js.map +1 -1
- package/dist/__tests__/session.test.js +2 -2
- package/dist/__tests__/session.test.js.map +1 -1
- package/dist/__tests__/sessionBinding.test.d.ts +2 -0
- package/dist/__tests__/sessionBinding.test.d.ts.map +1 -0
- package/dist/__tests__/sessionBinding.test.js +118 -0
- package/dist/__tests__/sessionBinding.test.js.map +1 -0
- package/dist/__tests__/sessionByIdLookup.test.d.ts +2 -0
- package/dist/__tests__/sessionByIdLookup.test.d.ts.map +1 -0
- package/dist/__tests__/sessionByIdLookup.test.js +63 -0
- package/dist/__tests__/sessionByIdLookup.test.js.map +1 -0
- package/dist/__tests__/setup-ingest.test.d.ts +2 -0
- package/dist/__tests__/setup-ingest.test.d.ts.map +1 -0
- package/dist/__tests__/setup-ingest.test.js +71 -0
- package/dist/__tests__/setup-ingest.test.js.map +1 -0
- package/dist/__tests__/setup-resolver.test.d.ts +14 -0
- package/dist/__tests__/setup-resolver.test.d.ts.map +1 -0
- package/dist/__tests__/setup-resolver.test.js +228 -0
- package/dist/__tests__/setup-resolver.test.js.map +1 -0
- package/dist/__tests__/setupShFallbackWarning.test.d.ts +2 -0
- package/dist/__tests__/setupShFallbackWarning.test.d.ts.map +1 -0
- package/dist/__tests__/setupShFallbackWarning.test.js +15 -0
- package/dist/__tests__/setupShFallbackWarning.test.js.map +1 -0
- package/dist/__tests__/skill-vocabulary.test.d.ts +21 -0
- package/dist/__tests__/skill-vocabulary.test.d.ts.map +1 -0
- package/dist/__tests__/skill-vocabulary.test.js +192 -0
- package/dist/__tests__/skill-vocabulary.test.js.map +1 -0
- package/dist/__tests__/state.test.d.ts +6 -0
- package/dist/__tests__/state.test.d.ts.map +1 -0
- package/dist/__tests__/state.test.js +117 -0
- package/dist/__tests__/state.test.js.map +1 -0
- package/dist/__tests__/strip.test.js +31 -3
- package/dist/__tests__/strip.test.js.map +1 -1
- package/dist/__tests__/surfaces.test.d.ts +2 -0
- package/dist/__tests__/surfaces.test.d.ts.map +1 -0
- package/dist/__tests__/surfaces.test.js +46 -0
- package/dist/__tests__/surfaces.test.js.map +1 -0
- package/dist/__tests__/tenant-notice-write-path.test.d.ts +2 -0
- package/dist/__tests__/tenant-notice-write-path.test.d.ts.map +1 -0
- package/dist/__tests__/tenant-notice-write-path.test.js +169 -0
- package/dist/__tests__/tenant-notice-write-path.test.js.map +1 -0
- package/dist/__tests__/update-check.test.d.ts +2 -0
- package/dist/__tests__/update-check.test.d.ts.map +1 -0
- package/dist/__tests__/update-check.test.js +215 -0
- package/dist/__tests__/update-check.test.js.map +1 -0
- package/dist/__tests__/update.test.js +263 -22
- package/dist/__tests__/update.test.js.map +1 -1
- package/dist/__tests__/upgrade-runner.test.d.ts +2 -0
- package/dist/__tests__/upgrade-runner.test.d.ts.map +1 -0
- package/dist/__tests__/upgrade-runner.test.js +54 -0
- package/dist/__tests__/upgrade-runner.test.js.map +1 -0
- package/dist/__tests__/upgrade.test.d.ts +2 -0
- package/dist/__tests__/upgrade.test.d.ts.map +1 -0
- package/dist/__tests__/upgrade.test.js +56 -0
- package/dist/__tests__/upgrade.test.js.map +1 -0
- package/dist/__tests__/verify-formatter.test.d.ts +2 -0
- package/dist/__tests__/verify-formatter.test.d.ts.map +1 -0
- package/dist/__tests__/verify-formatter.test.js +85 -0
- package/dist/__tests__/verify-formatter.test.js.map +1 -0
- package/dist/__tests__/vocabulary-leak.test.d.ts +39 -0
- package/dist/__tests__/vocabulary-leak.test.d.ts.map +1 -0
- package/dist/__tests__/vocabulary-leak.test.js +539 -0
- package/dist/__tests__/vocabulary-leak.test.js.map +1 -0
- package/dist/__tests__/workspace.test.js +52 -32
- package/dist/__tests__/workspace.test.js.map +1 -1
- package/dist/__tests__/workspaceNotice.test.d.ts +2 -0
- package/dist/__tests__/workspaceNotice.test.d.ts.map +1 -0
- package/dist/__tests__/workspaceNotice.test.js +567 -0
- package/dist/__tests__/workspaceNotice.test.js.map +1 -0
- package/dist/commands/__tests__/connect-handoff.test.d.ts +11 -0
- package/dist/commands/__tests__/connect-handoff.test.d.ts.map +1 -0
- package/dist/commands/__tests__/connect-handoff.test.js +111 -0
- package/dist/commands/__tests__/connect-handoff.test.js.map +1 -0
- package/dist/commands/__tests__/quality.test.d.ts +2 -0
- package/dist/commands/__tests__/quality.test.d.ts.map +1 -0
- package/dist/commands/__tests__/quality.test.js +156 -0
- package/dist/commands/__tests__/quality.test.js.map +1 -0
- package/dist/commands/__tests__/rework.test.d.ts +2 -0
- package/dist/commands/__tests__/rework.test.d.ts.map +1 -0
- package/dist/commands/__tests__/rework.test.js +149 -0
- package/dist/commands/__tests__/rework.test.js.map +1 -0
- package/dist/commands/__tests__/setup-detect-surfaces.test.d.ts +15 -0
- package/dist/commands/__tests__/setup-detect-surfaces.test.d.ts.map +1 -0
- package/dist/commands/__tests__/setup-detect-surfaces.test.js +149 -0
- package/dist/commands/__tests__/setup-detect-surfaces.test.js.map +1 -0
- package/dist/commands/__tests__/setup-state.test.d.ts +2 -0
- package/dist/commands/__tests__/setup-state.test.d.ts.map +1 -0
- package/dist/commands/__tests__/setup-state.test.js +194 -0
- package/dist/commands/__tests__/setup-state.test.js.map +1 -0
- package/dist/commands/accept-policy.d.ts +10 -0
- package/dist/commands/accept-policy.d.ts.map +1 -0
- package/dist/commands/accept-policy.js +107 -0
- package/dist/commands/accept-policy.js.map +1 -0
- package/dist/commands/accept.d.ts.map +1 -1
- package/dist/commands/accept.js +5 -5
- package/dist/commands/accept.js.map +1 -1
- package/dist/commands/admin/cockpit.d.ts +31 -10
- package/dist/commands/admin/cockpit.d.ts.map +1 -1
- package/dist/commands/admin/cockpit.js +415 -26
- package/dist/commands/admin/cockpit.js.map +1 -1
- package/dist/commands/admin/index.d.ts +49 -0
- package/dist/commands/admin/index.d.ts.map +1 -1
- package/dist/commands/admin/index.js +172 -1
- package/dist/commands/admin/index.js.map +1 -1
- package/dist/commands/admin/index.test.d.ts +2 -0
- package/dist/commands/admin/index.test.d.ts.map +1 -0
- package/dist/commands/admin/index.test.js +84 -0
- package/dist/commands/admin/index.test.js.map +1 -0
- package/dist/commands/admin/inspect.d.ts +9 -0
- package/dist/commands/admin/inspect.d.ts.map +1 -1
- package/dist/commands/admin/inspect.js +20 -1
- package/dist/commands/admin/inspect.js.map +1 -1
- package/dist/commands/admin/inspect.test.js +20 -1
- package/dist/commands/admin/inspect.test.js.map +1 -1
- package/dist/commands/admin/manage.d.ts +8 -0
- package/dist/commands/admin/manage.d.ts.map +1 -0
- package/dist/commands/admin/manage.js +260 -0
- package/dist/commands/admin/manage.js.map +1 -0
- package/dist/commands/admin/manage.test.d.ts +16 -0
- package/dist/commands/admin/manage.test.d.ts.map +1 -0
- package/dist/commands/admin/manage.test.js +159 -0
- package/dist/commands/admin/manage.test.js.map +1 -0
- package/dist/commands/admin/probe.d.ts +75 -0
- package/dist/commands/admin/probe.d.ts.map +1 -0
- package/dist/commands/admin/probe.js +224 -0
- package/dist/commands/admin/probe.js.map +1 -0
- package/dist/commands/admin/probe.test.d.ts +2 -0
- package/dist/commands/admin/probe.test.d.ts.map +1 -0
- package/dist/commands/admin/probe.test.js +193 -0
- package/dist/commands/admin/probe.test.js.map +1 -0
- package/dist/commands/admin/run.d.ts +43 -0
- package/dist/commands/admin/run.d.ts.map +1 -0
- package/dist/commands/admin/run.js +78 -0
- package/dist/commands/admin/run.js.map +1 -0
- package/dist/commands/admin/run.test.d.ts +18 -0
- package/dist/commands/admin/run.test.d.ts.map +1 -0
- package/dist/commands/admin/run.test.js +168 -0
- package/dist/commands/admin/run.test.js.map +1 -0
- package/dist/commands/admin/seed.d.ts +46 -3
- package/dist/commands/admin/seed.d.ts.map +1 -1
- package/dist/commands/admin/seed.js +497 -77
- package/dist/commands/admin/seed.js.map +1 -1
- package/dist/commands/admin/seed.test.d.ts +5 -0
- package/dist/commands/admin/seed.test.d.ts.map +1 -1
- package/dist/commands/admin/seed.test.js +90 -8
- package/dist/commands/admin/seed.test.js.map +1 -1
- package/dist/commands/admin/seedRegistryEntries.generated.d.ts +14 -0
- package/dist/commands/admin/seedRegistryEntries.generated.d.ts.map +1 -0
- package/dist/commands/admin/seedRegistryEntries.generated.js +153 -0
- package/dist/commands/admin/seedRegistryEntries.generated.js.map +1 -0
- package/dist/commands/admin/seedRegistryEntries.test.d.ts +13 -0
- package/dist/commands/admin/seedRegistryEntries.test.d.ts.map +1 -0
- package/dist/commands/admin/seedRegistryEntries.test.js +91 -0
- package/dist/commands/admin/seedRegistryEntries.test.js.map +1 -0
- package/dist/commands/admin/seedRowType.d.ts +22 -0
- package/dist/commands/admin/seedRowType.d.ts.map +1 -0
- package/dist/commands/admin/seedRowType.js +2 -0
- package/dist/commands/admin/seedRowType.js.map +1 -0
- package/dist/commands/admin/seedStatusColor.d.ts +9 -0
- package/dist/commands/admin/seedStatusColor.d.ts.map +1 -0
- package/dist/commands/admin/seedStatusColor.js +18 -0
- package/dist/commands/admin/seedStatusColor.js.map +1 -0
- package/dist/commands/admin/seedStatusColor.test.d.ts +2 -0
- package/dist/commands/admin/seedStatusColor.test.d.ts.map +1 -0
- package/dist/commands/admin/seedStatusColor.test.js +25 -0
- package/dist/commands/admin/seedStatusColor.test.js.map +1 -0
- package/dist/commands/audit.d.ts.map +1 -1
- package/dist/commands/audit.js +42 -7
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/authority-domains.d.ts +157 -0
- package/dist/commands/authority-domains.d.ts.map +1 -0
- package/dist/commands/authority-domains.js +387 -0
- package/dist/commands/authority-domains.js.map +1 -0
- package/dist/commands/brief.d.ts.map +1 -1
- package/dist/commands/brief.js +9 -5
- package/dist/commands/brief.js.map +1 -1
- package/dist/commands/capture.d.ts +16 -3
- package/dist/commands/capture.d.ts.map +1 -1
- package/dist/commands/capture.js +265 -98
- package/dist/commands/capture.js.map +1 -1
- package/dist/commands/chain-walk.d.ts.map +1 -1
- package/dist/commands/chain-walk.js +2 -2
- package/dist/commands/chain-walk.js.map +1 -1
- package/dist/commands/changes.d.ts.map +1 -1
- package/dist/commands/changes.js +2 -2
- package/dist/commands/changes.js.map +1 -1
- package/dist/commands/codex-prep.d.ts +12 -1
- package/dist/commands/codex-prep.d.ts.map +1 -1
- package/dist/commands/codex-prep.js +19 -85
- package/dist/commands/codex-prep.js.map +1 -1
- package/dist/commands/collections.d.ts.map +1 -1
- package/dist/commands/collections.js +5 -5
- package/dist/commands/collections.js.map +1 -1
- package/dist/commands/conflicts.d.ts +40 -0
- package/dist/commands/conflicts.d.ts.map +1 -0
- package/dist/commands/conflicts.js +267 -0
- package/dist/commands/conflicts.js.map +1 -0
- package/dist/commands/conflicts.test.d.ts +2 -0
- package/dist/commands/conflicts.test.d.ts.map +1 -0
- package/dist/commands/conflicts.test.js +219 -0
- package/dist/commands/conflicts.test.js.map +1 -0
- package/dist/commands/connect-config.test.d.ts +2 -0
- package/dist/commands/connect-config.test.d.ts.map +1 -0
- package/dist/commands/connect-config.test.js +44 -0
- package/dist/commands/connect-config.test.js.map +1 -0
- package/dist/commands/connect-context.d.ts +45 -0
- package/dist/commands/connect-context.d.ts.map +1 -0
- package/dist/commands/connect-context.js +83 -0
- package/dist/commands/connect-context.js.map +1 -0
- package/dist/commands/connect-context.test.d.ts +2 -0
- package/dist/commands/connect-context.test.d.ts.map +1 -0
- package/dist/commands/connect-context.test.js +158 -0
- package/dist/commands/connect-context.test.js.map +1 -0
- package/dist/commands/connect-handoff.d.ts +51 -0
- package/dist/commands/connect-handoff.d.ts.map +1 -0
- package/dist/commands/connect-handoff.js +70 -0
- package/dist/commands/connect-handoff.js.map +1 -0
- package/dist/commands/connect-integration.test.js +58 -35
- package/dist/commands/connect-integration.test.js.map +1 -1
- package/dist/commands/connect-legacy-migration.test.d.ts +2 -0
- package/dist/commands/connect-legacy-migration.test.d.ts.map +1 -0
- package/dist/commands/connect-legacy-migration.test.js +109 -0
- package/dist/commands/connect-legacy-migration.test.js.map +1 -0
- package/dist/commands/connect-screens.d.ts +33 -0
- package/dist/commands/connect-screens.d.ts.map +1 -0
- package/dist/commands/connect-screens.js +124 -0
- package/dist/commands/connect-screens.js.map +1 -0
- package/dist/commands/connect.d.ts +27 -6
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +256 -119
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/connect.test.js +348 -7
- package/dist/commands/connect.test.js.map +1 -1
- package/dist/commands/constellation.d.ts.map +1 -1
- package/dist/commands/constellation.js +2 -2
- package/dist/commands/constellation.js.map +1 -1
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +2 -2
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/cross-cut.d.ts.map +1 -1
- package/dist/commands/cross-cut.js +2 -2
- package/dist/commands/cross-cut.js.map +1 -1
- package/dist/commands/direction.d.ts +10 -0
- package/dist/commands/direction.d.ts.map +1 -0
- package/dist/commands/direction.js +79 -0
- package/dist/commands/direction.js.map +1 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +175 -39
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/doctor.test.js +353 -7
- package/dist/commands/doctor.test.js.map +1 -1
- package/dist/commands/entryArchive.d.ts +8 -0
- package/dist/commands/entryArchive.d.ts.map +1 -0
- package/dist/commands/entryArchive.js +37 -0
- package/dist/commands/entryArchive.js.map +1 -0
- package/dist/commands/feedback.d.ts +36 -0
- package/dist/commands/feedback.d.ts.map +1 -0
- package/dist/commands/feedback.js +193 -0
- package/dist/commands/feedback.js.map +1 -0
- package/dist/commands/feedback.test.d.ts +2 -0
- package/dist/commands/feedback.test.d.ts.map +1 -0
- package/dist/commands/feedback.test.js +125 -0
- package/dist/commands/feedback.test.js.map +1 -0
- package/dist/commands/fields.d.ts.map +1 -1
- package/dist/commands/fields.js +3 -3
- package/dist/commands/fields.js.map +1 -1
- package/dist/commands/files.d.ts +26 -0
- package/dist/commands/files.d.ts.map +1 -0
- package/dist/commands/files.js +160 -0
- package/dist/commands/files.js.map +1 -0
- package/dist/commands/files.test.d.ts +2 -0
- package/dist/commands/files.test.d.ts.map +1 -0
- package/dist/commands/files.test.js +278 -0
- package/dist/commands/files.test.js.map +1 -0
- package/dist/commands/get.js +3 -3
- package/dist/commands/get.js.map +1 -1
- package/dist/commands/handshake.d.ts +223 -2
- package/dist/commands/handshake.d.ts.map +1 -1
- package/dist/commands/handshake.js +2106 -62
- package/dist/commands/handshake.js.map +1 -1
- package/dist/commands/ingest.d.ts.map +1 -1
- package/dist/commands/ingest.js +15 -6
- package/dist/commands/ingest.js.map +1 -1
- package/dist/commands/init.d.ts +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +20 -17
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +6 -5
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/method.d.ts +99 -0
- package/dist/commands/method.d.ts.map +1 -0
- package/dist/commands/method.js +804 -0
- package/dist/commands/method.js.map +1 -0
- package/dist/commands/migrate-setup.d.ts +18 -0
- package/dist/commands/migrate-setup.d.ts.map +1 -0
- package/dist/commands/migrate-setup.js +162 -0
- package/dist/commands/migrate-setup.js.map +1 -0
- package/dist/commands/organisation.d.ts +41 -0
- package/dist/commands/organisation.d.ts.map +1 -0
- package/dist/commands/organisation.js +353 -0
- package/dist/commands/organisation.js.map +1 -0
- package/dist/commands/organisation.test.d.ts +2 -0
- package/dist/commands/organisation.test.d.ts.map +1 -0
- package/dist/commands/organisation.test.js +233 -0
- package/dist/commands/organisation.test.js.map +1 -0
- package/dist/commands/organisationHierarchy.d.ts +8 -0
- package/dist/commands/organisationHierarchy.d.ts.map +1 -0
- package/dist/commands/organisationHierarchy.js +67 -0
- package/dist/commands/organisationHierarchy.js.map +1 -0
- package/dist/commands/organisationHierarchy.test.d.ts +2 -0
- package/dist/commands/organisationHierarchy.test.d.ts.map +1 -0
- package/dist/commands/organisationHierarchy.test.js +55 -0
- package/dist/commands/organisationHierarchy.test.js.map +1 -0
- package/dist/commands/organisationWrite.d.ts +18 -0
- package/dist/commands/organisationWrite.d.ts.map +1 -0
- package/dist/commands/organisationWrite.js +50 -0
- package/dist/commands/organisationWrite.js.map +1 -0
- package/dist/commands/orient.d.ts +128 -2
- package/dist/commands/orient.d.ts.map +1 -1
- package/dist/commands/orient.js +223 -7
- package/dist/commands/orient.js.map +1 -1
- package/dist/commands/outcome.d.ts +117 -0
- package/dist/commands/outcome.d.ts.map +1 -0
- package/dist/commands/outcome.js +192 -0
- package/dist/commands/outcome.js.map +1 -0
- package/dist/commands/outcome.test.d.ts +2 -0
- package/dist/commands/outcome.test.d.ts.map +1 -0
- package/dist/commands/outcome.test.js +294 -0
- package/dist/commands/outcome.test.js.map +1 -0
- package/dist/commands/profile.d.ts +16 -1
- package/dist/commands/profile.d.ts.map +1 -1
- package/dist/commands/profile.js +173 -37
- package/dist/commands/profile.js.map +1 -1
- package/dist/commands/promote.d.ts +12 -1
- package/dist/commands/promote.d.ts.map +1 -1
- package/dist/commands/promote.js +243 -57
- package/dist/commands/promote.js.map +1 -1
- package/dist/commands/proof-run.d.ts +51 -0
- package/dist/commands/proof-run.d.ts.map +1 -0
- package/dist/commands/proof-run.js +209 -0
- package/dist/commands/proof-run.js.map +1 -0
- package/dist/commands/proposals.d.ts.map +1 -1
- package/dist/commands/proposals.js +2 -2
- package/dist/commands/proposals.js.map +1 -1
- package/dist/commands/quality.d.ts +16 -0
- package/dist/commands/quality.d.ts.map +1 -0
- package/dist/commands/quality.js +29 -0
- package/dist/commands/quality.js.map +1 -0
- package/dist/commands/questions.d.ts +33 -0
- package/dist/commands/questions.d.ts.map +1 -0
- package/dist/commands/questions.js +300 -0
- package/dist/commands/questions.js.map +1 -0
- package/dist/commands/questions.test.d.ts +2 -0
- package/dist/commands/questions.test.d.ts.map +1 -0
- package/dist/commands/questions.test.js +175 -0
- package/dist/commands/questions.test.js.map +1 -0
- package/dist/commands/reject.d.ts.map +1 -1
- package/dist/commands/reject.js +5 -4
- package/dist/commands/reject.js.map +1 -1
- package/dist/commands/relate.d.ts +1 -0
- package/dist/commands/relate.d.ts.map +1 -1
- package/dist/commands/relate.js +66 -5
- package/dist/commands/relate.js.map +1 -1
- package/dist/commands/restore.d.ts +2 -0
- package/dist/commands/restore.d.ts.map +1 -0
- package/dist/commands/restore.js +83 -0
- package/dist/commands/restore.js.map +1 -0
- package/dist/commands/rework.d.ts +24 -0
- package/dist/commands/rework.d.ts.map +1 -0
- package/dist/commands/rework.js +97 -0
- package/dist/commands/rework.js.map +1 -0
- package/dist/commands/scoreboard.d.ts +28 -0
- package/dist/commands/scoreboard.d.ts.map +1 -0
- package/dist/commands/scoreboard.js +40 -0
- package/dist/commands/scoreboard.js.map +1 -0
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +2 -2
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/session.d.ts +59 -7
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +495 -50
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/setup-audit.d.ts +59 -0
- package/dist/commands/setup-audit.d.ts.map +1 -0
- package/dist/commands/setup-audit.js +250 -0
- package/dist/commands/setup-audit.js.map +1 -0
- package/dist/commands/setup-detect-surfaces.d.ts +38 -0
- package/dist/commands/setup-detect-surfaces.d.ts.map +1 -0
- package/dist/commands/setup-detect-surfaces.js +76 -0
- package/dist/commands/setup-detect-surfaces.js.map +1 -0
- package/dist/commands/setup-ingest.d.ts +17 -0
- package/dist/commands/setup-ingest.d.ts.map +1 -0
- package/dist/commands/setup-ingest.js +179 -0
- package/dist/commands/setup-ingest.js.map +1 -0
- package/dist/commands/setup-resolver.d.ts +58 -0
- package/dist/commands/setup-resolver.d.ts.map +1 -0
- package/dist/commands/setup-resolver.js +150 -0
- package/dist/commands/setup-resolver.js.map +1 -0
- package/dist/commands/setup-state.d.ts +42 -0
- package/dist/commands/setup-state.d.ts.map +1 -0
- package/dist/commands/setup-state.js +93 -0
- package/dist/commands/setup-state.js.map +1 -0
- package/dist/commands/setup.d.ts +17 -9
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +53 -152
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/shape.d.ts +16 -0
- package/dist/commands/shape.d.ts.map +1 -0
- package/dist/commands/shape.js +149 -0
- package/dist/commands/shape.js.map +1 -0
- package/dist/commands/shape.test.d.ts +2 -0
- package/dist/commands/shape.test.d.ts.map +1 -0
- package/dist/commands/shape.test.js +148 -0
- package/dist/commands/shape.test.js.map +1 -0
- package/dist/commands/status.d.ts +7 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +102 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/status.test.d.ts +2 -0
- package/dist/commands/status.test.d.ts.map +1 -0
- package/dist/commands/status.test.js +75 -0
- package/dist/commands/status.test.js.map +1 -0
- package/dist/commands/update.d.ts +20 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +92 -35
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/upgrade.d.ts +5 -0
- package/dist/commands/upgrade.d.ts.map +1 -0
- package/dist/commands/upgrade.js +110 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/commands/usage.d.ts +40 -0
- package/dist/commands/usage.d.ts.map +1 -0
- package/dist/commands/usage.js +214 -0
- package/dist/commands/usage.js.map +1 -0
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +9 -3
- package/dist/commands/verify.js.map +1 -1
- package/dist/commands/welcome.d.ts +21 -0
- package/dist/commands/welcome.d.ts.map +1 -0
- package/dist/commands/welcome.js +53 -0
- package/dist/commands/welcome.js.map +1 -0
- package/dist/commands/whoami.d.ts +20 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +126 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/commands/whoami.test.d.ts +2 -0
- package/dist/commands/whoami.test.d.ts.map +1 -0
- package/dist/commands/whoami.test.js +130 -0
- package/dist/commands/whoami.test.js.map +1 -0
- package/dist/commands/workspace.d.ts +76 -2
- package/dist/commands/workspace.d.ts.map +1 -1
- package/dist/commands/workspace.js +30 -6
- package/dist/commands/workspace.js.map +1 -1
- package/dist/formatters/__tests__/orient-possibleConflict.test.d.ts +2 -0
- package/dist/formatters/__tests__/orient-possibleConflict.test.d.ts.map +1 -0
- package/dist/formatters/__tests__/orient-possibleConflict.test.js +68 -0
- package/dist/formatters/__tests__/orient-possibleConflict.test.js.map +1 -0
- package/dist/formatters/__tests__/orient-provenance.test.d.ts +7 -0
- package/dist/formatters/__tests__/orient-provenance.test.d.ts.map +1 -0
- package/dist/formatters/__tests__/orient-provenance.test.js +548 -0
- package/dist/formatters/__tests__/orient-provenance.test.js.map +1 -0
- package/dist/formatters/__tests__/session-list-show.test.d.ts +2 -0
- package/dist/formatters/__tests__/session-list-show.test.d.ts.map +1 -0
- package/dist/formatters/__tests__/session-list-show.test.js +159 -0
- package/dist/formatters/__tests__/session-list-show.test.js.map +1 -0
- package/dist/formatters/__tests__/session.test.d.ts +2 -0
- package/dist/formatters/__tests__/session.test.d.ts.map +1 -0
- package/dist/formatters/__tests__/session.test.js +206 -0
- package/dist/formatters/__tests__/session.test.js.map +1 -0
- package/dist/formatters/audit.d.ts +6 -0
- package/dist/formatters/audit.d.ts.map +1 -1
- package/dist/formatters/audit.js +1 -1
- package/dist/formatters/audit.js.map +1 -1
- package/dist/formatters/brief.d.ts +1 -0
- package/dist/formatters/brief.d.ts.map +1 -1
- package/dist/formatters/brief.js +1 -1
- package/dist/formatters/brief.js.map +1 -1
- package/dist/formatters/capture.d.ts +8 -0
- package/dist/formatters/capture.d.ts.map +1 -1
- package/dist/formatters/capture.js +12 -1
- package/dist/formatters/capture.js.map +1 -1
- package/dist/formatters/coaching.d.ts +55 -0
- package/dist/formatters/coaching.d.ts.map +1 -0
- package/dist/formatters/coaching.js +46 -0
- package/dist/formatters/coaching.js.map +1 -0
- package/dist/formatters/conflicts.d.ts +69 -0
- package/dist/formatters/conflicts.d.ts.map +1 -0
- package/dist/formatters/conflicts.js +87 -0
- package/dist/formatters/conflicts.js.map +1 -0
- package/dist/formatters/conflicts.test.d.ts +2 -0
- package/dist/formatters/conflicts.test.d.ts.map +1 -0
- package/dist/formatters/conflicts.test.js +136 -0
- package/dist/formatters/conflicts.test.js.map +1 -0
- package/dist/formatters/context.d.ts +1 -1
- package/dist/formatters/context.d.ts.map +1 -1
- package/dist/formatters/context.js.map +1 -1
- package/dist/formatters/direction.d.ts +48 -0
- package/dist/formatters/direction.d.ts.map +1 -0
- package/dist/formatters/direction.js +75 -0
- package/dist/formatters/direction.js.map +1 -0
- package/dist/formatters/direction.test.d.ts +2 -0
- package/dist/formatters/direction.test.d.ts.map +1 -0
- package/dist/formatters/direction.test.js +70 -0
- package/dist/formatters/direction.test.js.map +1 -0
- package/dist/formatters/entry.d.ts +44 -0
- package/dist/formatters/entry.d.ts.map +1 -1
- package/dist/formatters/entry.js +70 -7
- package/dist/formatters/entry.js.map +1 -1
- package/dist/formatters/feedback.d.ts +56 -0
- package/dist/formatters/feedback.d.ts.map +1 -0
- package/dist/formatters/feedback.js +89 -0
- package/dist/formatters/feedback.js.map +1 -0
- package/dist/formatters/feedback.test.d.ts +2 -0
- package/dist/formatters/feedback.test.d.ts.map +1 -0
- package/dist/formatters/feedback.test.js +112 -0
- package/dist/formatters/feedback.test.js.map +1 -0
- package/dist/formatters/handshake.d.ts +39 -0
- package/dist/formatters/handshake.d.ts.map +1 -1
- package/dist/formatters/handshake.js +133 -3
- package/dist/formatters/handshake.js.map +1 -1
- package/dist/formatters/orient.coherencyCheckTag.test.d.ts +2 -0
- package/dist/formatters/orient.coherencyCheckTag.test.d.ts.map +1 -0
- package/dist/formatters/orient.coherencyCheckTag.test.js +22 -0
- package/dist/formatters/orient.coherencyCheckTag.test.js.map +1 -0
- package/dist/formatters/orient.d.ts +245 -8
- package/dist/formatters/orient.d.ts.map +1 -1
- package/dist/formatters/orient.js +277 -42
- package/dist/formatters/orient.js.map +1 -1
- package/dist/formatters/orient.rcrtMiss.test.d.ts +2 -0
- package/dist/formatters/orient.rcrtMiss.test.d.ts.map +1 -0
- package/dist/formatters/orient.rcrtMiss.test.js +146 -0
- package/dist/formatters/orient.rcrtMiss.test.js.map +1 -0
- package/dist/formatters/orient.rituals.test.d.ts +2 -0
- package/dist/formatters/orient.rituals.test.d.ts.map +1 -0
- package/dist/formatters/orient.rituals.test.js +70 -0
- package/dist/formatters/orient.rituals.test.js.map +1 -0
- package/dist/formatters/orient.shapeAdvisorySummary.test.d.ts +2 -0
- package/dist/formatters/orient.shapeAdvisorySummary.test.d.ts.map +1 -0
- package/dist/formatters/orient.shapeAdvisorySummary.test.js +62 -0
- package/dist/formatters/orient.shapeAdvisorySummary.test.js.map +1 -0
- package/dist/formatters/orientDegradation.d.ts +21 -0
- package/dist/formatters/orientDegradation.d.ts.map +1 -0
- package/dist/formatters/orientDegradation.js +33 -0
- package/dist/formatters/orientDegradation.js.map +1 -0
- package/dist/formatters/orientDirection.d.ts +77 -0
- package/dist/formatters/orientDirection.d.ts.map +1 -0
- package/dist/formatters/orientDirection.js +94 -0
- package/dist/formatters/orientDirection.js.map +1 -0
- package/dist/formatters/orientDirection.test.d.ts +2 -0
- package/dist/formatters/orientDirection.test.d.ts.map +1 -0
- package/dist/formatters/orientDirection.test.js +193 -0
- package/dist/formatters/orientDirection.test.js.map +1 -0
- package/dist/formatters/orientRetrievalMiss.d.ts +30 -0
- package/dist/formatters/orientRetrievalMiss.d.ts.map +1 -0
- package/dist/formatters/orientRetrievalMiss.js +24 -0
- package/dist/formatters/orientRetrievalMiss.js.map +1 -0
- package/dist/formatters/promote.d.ts +49 -0
- package/dist/formatters/promote.d.ts.map +1 -1
- package/dist/formatters/promote.js +40 -0
- package/dist/formatters/promote.js.map +1 -1
- package/dist/formatters/proposals.js +2 -2
- package/dist/formatters/proposals.js.map +1 -1
- package/dist/formatters/questions.d.ts +100 -0
- package/dist/formatters/questions.d.ts.map +1 -0
- package/dist/formatters/questions.js +163 -0
- package/dist/formatters/questions.js.map +1 -0
- package/dist/formatters/questions.test.d.ts +2 -0
- package/dist/formatters/questions.test.d.ts.map +1 -0
- package/dist/formatters/questions.test.js +211 -0
- package/dist/formatters/questions.test.js.map +1 -0
- package/dist/formatters/relate.d.ts +14 -1
- package/dist/formatters/relate.d.ts.map +1 -1
- package/dist/formatters/relate.js +12 -3
- package/dist/formatters/relate.js.map +1 -1
- package/dist/formatters/relate.test.d.ts +2 -0
- package/dist/formatters/relate.test.d.ts.map +1 -0
- package/dist/formatters/relate.test.js +81 -0
- package/dist/formatters/relate.test.js.map +1 -0
- package/dist/formatters/scoreboard.d.ts +11 -0
- package/dist/formatters/scoreboard.d.ts.map +1 -0
- package/dist/formatters/scoreboard.js +164 -0
- package/dist/formatters/scoreboard.js.map +1 -0
- package/dist/formatters/scoreboard.test.d.ts +2 -0
- package/dist/formatters/scoreboard.test.d.ts.map +1 -0
- package/dist/formatters/scoreboard.test.js +303 -0
- package/dist/formatters/scoreboard.test.js.map +1 -0
- package/dist/formatters/search.d.ts.map +1 -1
- package/dist/formatters/search.js +17 -1
- package/dist/formatters/search.js.map +1 -1
- package/dist/formatters/search.test.d.ts +2 -0
- package/dist/formatters/search.test.d.ts.map +1 -0
- package/dist/formatters/search.test.js +46 -0
- package/dist/formatters/search.test.js.map +1 -0
- package/dist/formatters/session-feedback.test.d.ts +2 -0
- package/dist/formatters/session-feedback.test.d.ts.map +1 -0
- package/dist/formatters/session-feedback.test.js +61 -0
- package/dist/formatters/session-feedback.test.js.map +1 -0
- package/dist/formatters/session.d.ts +123 -5
- package/dist/formatters/session.d.ts.map +1 -1
- package/dist/formatters/session.js +317 -12
- package/dist/formatters/session.js.map +1 -1
- package/dist/formatters/shape.d.ts +54 -0
- package/dist/formatters/shape.d.ts.map +1 -0
- package/dist/formatters/shape.js +97 -0
- package/dist/formatters/shape.js.map +1 -0
- package/dist/formatters/shape.test.d.ts +2 -0
- package/dist/formatters/shape.test.d.ts.map +1 -0
- package/dist/formatters/shape.test.js +80 -0
- package/dist/formatters/shape.test.js.map +1 -0
- package/dist/formatters/spineCheck.d.ts +76 -0
- package/dist/formatters/spineCheck.d.ts.map +1 -0
- package/dist/formatters/spineCheck.js +111 -0
- package/dist/formatters/spineCheck.js.map +1 -0
- package/dist/formatters/update.d.ts +3 -0
- package/dist/formatters/update.d.ts.map +1 -1
- package/dist/formatters/update.js +4 -0
- package/dist/formatters/update.js.map +1 -1
- package/dist/formatters/verify.d.ts +12 -4
- package/dist/formatters/verify.d.ts.map +1 -1
- package/dist/formatters/verify.js +20 -2
- package/dist/formatters/verify.js.map +1 -1
- package/dist/generated/healthGapKinds.generated.d.ts +12 -0
- package/dist/generated/healthGapKinds.generated.d.ts.map +1 -0
- package/dist/generated/healthGapKinds.generated.js +24 -0
- package/dist/generated/healthGapKinds.generated.js.map +1 -0
- package/dist/generated/relationTypes.generated.d.ts +12 -0
- package/dist/generated/relationTypes.generated.d.ts.map +1 -0
- package/dist/generated/relationTypes.generated.js +11 -0
- package/dist/generated/relationTypes.generated.js.map +1 -0
- package/dist/generated/routeLatencyBudget.generated.d.ts +55 -0
- package/dist/generated/routeLatencyBudget.generated.d.ts.map +1 -0
- package/dist/generated/routeLatencyBudget.generated.js +351 -0
- package/dist/generated/routeLatencyBudget.generated.js.map +1 -0
- package/dist/generated/sourceSurfaces.generated.d.ts +12 -0
- package/dist/generated/sourceSurfaces.generated.d.ts.map +1 -0
- package/dist/generated/sourceSurfaces.generated.js +11 -0
- package/dist/generated/sourceSurfaces.generated.js.map +1 -0
- package/dist/generators/adapters.d.ts +33 -0
- package/dist/generators/adapters.d.ts.map +1 -1
- package/dist/generators/adapters.js +68 -8
- package/dist/generators/adapters.js.map +1 -1
- package/dist/generators/archetypes.d.ts.map +1 -1
- package/dist/generators/archetypes.js +46 -9
- package/dist/generators/archetypes.js.map +1 -1
- package/dist/generators/archetypes.test.js +35 -0
- package/dist/generators/archetypes.test.js.map +1 -1
- package/dist/generators/boundary-manifest.d.ts +29 -0
- package/dist/generators/boundary-manifest.d.ts.map +1 -0
- package/dist/generators/boundary-manifest.js +183 -0
- package/dist/generators/boundary-manifest.js.map +1 -0
- package/dist/generators/boundary-manifest.real-file.test.d.ts +2 -0
- package/dist/generators/boundary-manifest.real-file.test.d.ts.map +1 -0
- package/dist/generators/boundary-manifest.real-file.test.js +70 -0
- package/dist/generators/boundary-manifest.real-file.test.js.map +1 -0
- package/dist/generators/boundary-manifest.test.d.ts +2 -0
- package/dist/generators/boundary-manifest.test.d.ts.map +1 -0
- package/dist/generators/boundary-manifest.test.js +91 -0
- package/dist/generators/boundary-manifest.test.js.map +1 -0
- package/dist/generators/chain-classifier-kernel-client-drift.test.d.ts +2 -0
- package/dist/generators/chain-classifier-kernel-client-drift.test.d.ts.map +1 -0
- package/dist/generators/chain-classifier-kernel-client-drift.test.js +41 -0
- package/dist/generators/chain-classifier-kernel-client-drift.test.js.map +1 -0
- package/dist/generators/chain-classifier.d.ts +67 -14
- package/dist/generators/chain-classifier.d.ts.map +1 -1
- package/dist/generators/chain-classifier.js +46 -174
- package/dist/generators/chain-classifier.js.map +1 -1
- package/dist/generators/chain-rules.d.ts +3 -3
- package/dist/generators/chain-rules.d.ts.map +1 -1
- package/dist/generators/chain-rules.js +118 -6
- package/dist/generators/chain-rules.js.map +1 -1
- package/dist/generators/chain-rules.test.js +273 -4
- package/dist/generators/chain-rules.test.js.map +1 -1
- package/dist/generators/context-md.js +7 -7
- package/dist/generators/context-md.js.map +1 -1
- package/dist/generators/manifest.d.ts +115 -0
- package/dist/generators/manifest.d.ts.map +1 -0
- package/dist/generators/manifest.js +277 -0
- package/dist/generators/manifest.js.map +1 -0
- package/dist/generators/portable-knowledge.d.ts +24 -2
- package/dist/generators/portable-knowledge.d.ts.map +1 -1
- package/dist/generators/portable-knowledge.js +97 -2
- package/dist/generators/portable-knowledge.js.map +1 -1
- package/dist/generators/portable-knowledge.test.js +43 -0
- package/dist/generators/portable-knowledge.test.js.map +1 -1
- package/dist/generators/region-projections.d.ts +18 -0
- package/dist/generators/region-projections.d.ts.map +1 -0
- package/dist/generators/region-projections.js +49 -0
- package/dist/generators/region-projections.js.map +1 -0
- package/dist/generators/region-projections.test.d.ts +2 -0
- package/dist/generators/region-projections.test.d.ts.map +1 -0
- package/dist/generators/region-projections.test.js +63 -0
- package/dist/generators/region-projections.test.js.map +1 -0
- package/dist/generators/region.d.ts +24 -0
- package/dist/generators/region.d.ts.map +1 -0
- package/dist/generators/region.js +87 -0
- package/dist/generators/region.js.map +1 -0
- package/dist/generators/region.test.d.ts +2 -0
- package/dist/generators/region.test.d.ts.map +1 -0
- package/dist/generators/region.test.js +126 -0
- package/dist/generators/region.test.js.map +1 -0
- package/dist/generators/surface-profiles.d.ts +1 -2
- package/dist/generators/surface-profiles.d.ts.map +1 -1
- package/dist/generators/surface-profiles.js.map +1 -1
- package/dist/index.d.ts +0 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +422 -186
- package/dist/index.js.map +1 -1
- package/dist/lib/__tests__/legalRelationTypes.test.d.ts +2 -0
- package/dist/lib/__tests__/legalRelationTypes.test.d.ts.map +1 -0
- package/dist/lib/__tests__/legalRelationTypes.test.js +98 -0
- package/dist/lib/__tests__/legalRelationTypes.test.js.map +1 -0
- package/dist/lib/__tests__/parseFields.test.d.ts +2 -0
- package/dist/lib/__tests__/parseFields.test.d.ts.map +1 -0
- package/dist/lib/__tests__/parseFields.test.js +40 -0
- package/dist/lib/__tests__/parseFields.test.js.map +1 -0
- package/dist/lib/activation.d.ts.map +1 -1
- package/dist/lib/activation.js +8 -4
- package/dist/lib/activation.js.map +1 -1
- package/dist/lib/activation.test.js +6 -6
- package/dist/lib/activation.test.js.map +1 -1
- package/dist/lib/adminConfig.d.ts +48 -0
- package/dist/lib/adminConfig.d.ts.map +1 -0
- package/dist/lib/adminConfig.js +130 -0
- package/dist/lib/adminConfig.js.map +1 -0
- package/dist/lib/canonicalRefs.d.ts +160 -0
- package/dist/lib/canonicalRefs.d.ts.map +1 -0
- package/dist/lib/canonicalRefs.js +169 -0
- package/dist/lib/canonicalRefs.js.map +1 -0
- package/dist/lib/captureGrounding.d.ts +53 -0
- package/dist/lib/captureGrounding.d.ts.map +1 -0
- package/dist/lib/captureGrounding.js +108 -0
- package/dist/lib/captureGrounding.js.map +1 -0
- package/dist/lib/client.d.ts +42 -15
- package/dist/lib/client.d.ts.map +1 -1
- package/dist/lib/client.js +224 -66
- package/dist/lib/client.js.map +1 -1
- package/dist/lib/collectionRegistry.d.ts +80 -0
- package/dist/lib/collectionRegistry.d.ts.map +1 -0
- package/dist/lib/collectionRegistry.js +170 -0
- package/dist/lib/collectionRegistry.js.map +1 -0
- package/dist/lib/commanderOptions.d.ts +8 -0
- package/dist/lib/commanderOptions.d.ts.map +1 -0
- package/dist/lib/commanderOptions.js +10 -0
- package/dist/lib/commanderOptions.js.map +1 -0
- package/dist/lib/compose-wrapup-view.d.ts +48 -0
- package/dist/lib/compose-wrapup-view.d.ts.map +1 -0
- package/dist/lib/compose-wrapup-view.js +37 -0
- package/dist/lib/compose-wrapup-view.js.map +1 -0
- package/dist/lib/config.d.ts +102 -54
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +260 -163
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/configResult.d.ts +103 -0
- package/dist/lib/configResult.d.ts.map +1 -0
- package/dist/lib/configResult.js +180 -0
- package/dist/lib/configResult.js.map +1 -0
- package/dist/lib/connectKeyLabel.d.ts +9 -0
- package/dist/lib/connectKeyLabel.d.ts.map +1 -0
- package/dist/lib/connectKeyLabel.js +12 -0
- package/dist/lib/connectKeyLabel.js.map +1 -0
- package/dist/lib/constants.d.ts +5 -1
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +8 -1
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/conversation.d.ts +36 -0
- package/dist/lib/conversation.d.ts.map +1 -0
- package/dist/lib/conversation.js +66 -0
- package/dist/lib/conversation.js.map +1 -0
- package/dist/lib/createEntryResult.d.ts +34 -0
- package/dist/lib/createEntryResult.d.ts.map +1 -0
- package/dist/lib/createEntryResult.js +12 -0
- package/dist/lib/createEntryResult.js.map +1 -0
- package/dist/lib/envKeySnapshot.d.ts +10 -0
- package/dist/lib/envKeySnapshot.d.ts.map +1 -0
- package/dist/lib/envKeySnapshot.js +30 -0
- package/dist/lib/envKeySnapshot.js.map +1 -0
- package/dist/lib/errors.d.ts +67 -0
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +67 -0
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/frontmatter.d.ts +55 -0
- package/dist/lib/frontmatter.d.ts.map +1 -0
- package/dist/lib/frontmatter.js +92 -0
- package/dist/lib/frontmatter.js.map +1 -0
- package/dist/lib/frontmatter.test.d.ts +15 -0
- package/dist/lib/frontmatter.test.d.ts.map +1 -0
- package/dist/lib/frontmatter.test.js +98 -0
- package/dist/lib/frontmatter.test.js.map +1 -0
- package/dist/lib/gatewayTimeout.d.ts +88 -0
- package/dist/lib/gatewayTimeout.d.ts.map +1 -0
- package/dist/lib/gatewayTimeout.js +118 -0
- package/dist/lib/gatewayTimeout.js.map +1 -0
- package/dist/lib/gitEnvLeakKeysParity.test.d.ts +2 -0
- package/dist/lib/gitEnvLeakKeysParity.test.d.ts.map +1 -0
- package/dist/lib/gitEnvLeakKeysParity.test.js +73 -0
- package/dist/lib/gitEnvLeakKeysParity.test.js.map +1 -0
- package/dist/lib/glossary.js +1 -1
- package/dist/lib/glossary.js.map +1 -1
- package/dist/lib/hook-intents.d.ts +51 -0
- package/dist/lib/hook-intents.d.ts.map +1 -0
- package/dist/lib/hook-intents.js +85 -0
- package/dist/lib/hook-intents.js.map +1 -0
- package/dist/lib/inferSourceDate.d.ts +12 -0
- package/dist/lib/inferSourceDate.d.ts.map +1 -0
- package/dist/lib/inferSourceDate.js +44 -0
- package/dist/lib/inferSourceDate.js.map +1 -0
- package/dist/lib/kernelEnvelope.d.ts +31 -0
- package/dist/lib/kernelEnvelope.d.ts.map +1 -0
- package/dist/lib/kernelEnvelope.js +52 -0
- package/dist/lib/kernelEnvelope.js.map +1 -0
- package/dist/lib/legalRelationTypes.d.ts +25 -0
- package/dist/lib/legalRelationTypes.d.ts.map +1 -0
- package/dist/lib/legalRelationTypes.js +94 -0
- package/dist/lib/legalRelationTypes.js.map +1 -0
- package/dist/lib/localBinding.d.ts +86 -0
- package/dist/lib/localBinding.d.ts.map +1 -0
- package/dist/lib/localBinding.js +173 -0
- package/dist/lib/localBinding.js.map +1 -0
- package/dist/lib/method-registry.d.ts +37 -0
- package/dist/lib/method-registry.d.ts.map +1 -0
- package/dist/lib/method-registry.js +41 -0
- package/dist/lib/method-registry.js.map +1 -0
- package/dist/lib/normalizeMaterializedFilename.d.ts +28 -0
- package/dist/lib/normalizeMaterializedFilename.d.ts.map +1 -0
- package/dist/lib/normalizeMaterializedFilename.js +56 -0
- package/dist/lib/normalizeMaterializedFilename.js.map +1 -0
- package/dist/lib/normalizeMaterializedFilename.test.d.ts +16 -0
- package/dist/lib/normalizeMaterializedFilename.test.d.ts.map +1 -0
- package/dist/lib/normalizeMaterializedFilename.test.js +90 -0
- package/dist/lib/normalizeMaterializedFilename.test.js.map +1 -0
- package/dist/lib/notice-marker.d.ts +3 -0
- package/dist/lib/notice-marker.d.ts.map +1 -0
- package/dist/lib/notice-marker.js +223 -0
- package/dist/lib/notice-marker.js.map +1 -0
- package/dist/lib/onboarding-path-b.d.ts.map +1 -1
- package/dist/lib/onboarding-path-b.js +42 -13
- package/dist/lib/onboarding-path-b.js.map +1 -1
- package/dist/lib/onboarding-shared.d.ts +4 -4
- package/dist/lib/onboarding-shared.d.ts.map +1 -1
- package/dist/lib/onboarding-shared.js +7 -22
- package/dist/lib/onboarding-shared.js.map +1 -1
- package/dist/lib/onboarding.d.ts.map +1 -1
- package/dist/lib/onboarding.js +12 -4
- package/dist/lib/onboarding.js.map +1 -1
- package/dist/lib/parseFields.d.ts +19 -0
- package/dist/lib/parseFields.d.ts.map +1 -0
- package/dist/lib/parseFields.js +49 -0
- package/dist/lib/parseFields.js.map +1 -0
- package/dist/lib/previewBanner.d.ts +9 -0
- package/dist/lib/previewBanner.d.ts.map +1 -0
- package/dist/lib/previewBanner.js +37 -0
- package/dist/lib/previewBanner.js.map +1 -0
- package/dist/lib/productbrain-files.d.ts +94 -0
- package/dist/lib/productbrain-files.d.ts.map +1 -0
- package/dist/lib/productbrain-files.js +214 -0
- package/dist/lib/productbrain-files.js.map +1 -0
- package/dist/lib/productbrain-files.test.d.ts +2 -0
- package/dist/lib/productbrain-files.test.d.ts.map +1 -0
- package/dist/lib/productbrain-files.test.js +293 -0
- package/dist/lib/productbrain-files.test.js.map +1 -0
- package/dist/lib/profiles.d.ts +53 -5
- package/dist/lib/profiles.d.ts.map +1 -1
- package/dist/lib/profiles.js +77 -23
- package/dist/lib/profiles.js.map +1 -1
- package/dist/lib/projectConfig.d.ts +81 -0
- package/dist/lib/projectConfig.d.ts.map +1 -0
- package/dist/lib/projectConfig.js +157 -0
- package/dist/lib/projectConfig.js.map +1 -0
- package/dist/lib/rate-limit.d.ts +38 -0
- package/dist/lib/rate-limit.d.ts.map +1 -0
- package/dist/lib/rate-limit.js +83 -0
- package/dist/lib/rate-limit.js.map +1 -0
- package/dist/lib/reportedProfile.d.ts +18 -0
- package/dist/lib/reportedProfile.d.ts.map +1 -0
- package/dist/lib/reportedProfile.js +144 -0
- package/dist/lib/reportedProfile.js.map +1 -0
- package/dist/lib/runner.d.ts +8 -0
- package/dist/lib/runner.d.ts.map +1 -1
- package/dist/lib/runner.js +23 -0
- package/dist/lib/runner.js.map +1 -1
- package/dist/lib/session.d.ts +113 -4
- package/dist/lib/session.d.ts.map +1 -1
- package/dist/lib/session.js +323 -13
- package/dist/lib/session.js.map +1 -1
- package/dist/lib/sessionBinding.d.ts +61 -0
- package/dist/lib/sessionBinding.d.ts.map +1 -0
- package/dist/lib/sessionBinding.js +125 -0
- package/dist/lib/sessionBinding.js.map +1 -0
- package/dist/lib/sessionNotices.d.ts +57 -0
- package/dist/lib/sessionNotices.d.ts.map +1 -0
- package/dist/lib/sessionNotices.js +128 -0
- package/dist/lib/sessionNotices.js.map +1 -0
- package/dist/lib/sessionNotices.test.d.ts +2 -0
- package/dist/lib/sessionNotices.test.d.ts.map +1 -0
- package/dist/lib/sessionNotices.test.js +48 -0
- package/dist/lib/sessionNotices.test.js.map +1 -0
- package/dist/lib/spinner.js +2 -2
- package/dist/lib/spinner.js.map +1 -1
- package/dist/lib/startup-resolution-signals.d.ts +34 -0
- package/dist/lib/startup-resolution-signals.d.ts.map +1 -0
- package/dist/lib/startup-resolution-signals.js +116 -0
- package/dist/lib/startup-resolution-signals.js.map +1 -0
- package/dist/lib/startup-resolution-signals.test.d.ts +2 -0
- package/dist/lib/startup-resolution-signals.test.d.ts.map +1 -0
- package/dist/lib/startup-resolution-signals.test.js +113 -0
- package/dist/lib/startup-resolution-signals.test.js.map +1 -0
- package/dist/lib/startup-signals.d.ts +12 -0
- package/dist/lib/startup-signals.d.ts.map +1 -0
- package/dist/lib/startup-signals.js +172 -0
- package/dist/lib/startup-signals.js.map +1 -0
- package/dist/lib/startup-signals.test.d.ts +2 -0
- package/dist/lib/startup-signals.test.d.ts.map +1 -0
- package/dist/lib/startup-signals.test.js +165 -0
- package/dist/lib/startup-signals.test.js.map +1 -0
- package/dist/lib/state.d.ts +58 -0
- package/dist/lib/state.d.ts.map +1 -0
- package/dist/lib/state.js +95 -0
- package/dist/lib/state.js.map +1 -0
- package/dist/lib/strip.d.ts +8 -0
- package/dist/lib/strip.d.ts.map +1 -1
- package/dist/lib/strip.js +23 -1
- package/dist/lib/strip.js.map +1 -1
- package/dist/lib/style.d.ts +3 -1
- package/dist/lib/style.d.ts.map +1 -1
- package/dist/lib/style.js +9 -2
- package/dist/lib/style.js.map +1 -1
- package/dist/lib/tokenConstants.d.ts +19 -0
- package/dist/lib/tokenConstants.d.ts.map +1 -0
- package/dist/lib/tokenConstants.js +19 -0
- package/dist/lib/tokenConstants.js.map +1 -0
- package/dist/lib/update-check.d.ts +56 -0
- package/dist/lib/update-check.d.ts.map +1 -0
- package/dist/lib/update-check.js +296 -0
- package/dist/lib/update-check.js.map +1 -0
- package/dist/lib/upgrade-runner.d.ts +22 -0
- package/dist/lib/upgrade-runner.d.ts.map +1 -0
- package/dist/lib/upgrade-runner.js +110 -0
- package/dist/lib/upgrade-runner.js.map +1 -0
- package/dist/lib/workspace-probe.d.ts +3 -0
- package/dist/lib/workspace-probe.d.ts.map +1 -1
- package/dist/lib/workspace-probe.js +8 -14
- package/dist/lib/workspace-probe.js.map +1 -1
- package/dist/lib/workspaceNotice.d.ts +202 -0
- package/dist/lib/workspaceNotice.d.ts.map +1 -0
- package/dist/lib/workspaceNotice.js +345 -0
- package/dist/lib/workspaceNotice.js.map +1 -0
- package/dist/lib/workspaceVocabCache.d.ts +60 -0
- package/dist/lib/workspaceVocabCache.d.ts.map +1 -0
- package/dist/lib/workspaceVocabCache.js +98 -0
- package/dist/lib/workspaceVocabCache.js.map +1 -0
- package/dist/registerEntryCommands.d.ts +17 -0
- package/dist/registerEntryCommands.d.ts.map +1 -0
- package/dist/registerEntryCommands.js +83 -0
- package/dist/registerEntryCommands.js.map +1 -0
- package/dist/registerOutcomeCommands.d.ts +24 -0
- package/dist/registerOutcomeCommands.d.ts.map +1 -0
- package/dist/registerOutcomeCommands.js +27 -0
- package/dist/registerOutcomeCommands.js.map +1 -0
- package/dist/registerProposalCommands.d.ts +13 -0
- package/dist/registerProposalCommands.d.ts.map +1 -0
- package/dist/registerProposalCommands.js +76 -0
- package/dist/registerProposalCommands.js.map +1 -0
- package/dist/scoreboard/diagnose.d.ts +226 -0
- package/dist/scoreboard/diagnose.d.ts.map +1 -0
- package/dist/scoreboard/diagnose.js +344 -0
- package/dist/scoreboard/diagnose.js.map +1 -0
- package/dist/scoreboard/diagnose.test.d.ts +15 -0
- package/dist/scoreboard/diagnose.test.d.ts.map +1 -0
- package/dist/scoreboard/diagnose.test.js +355 -0
- package/dist/scoreboard/diagnose.test.js.map +1 -0
- package/dist/scoreboard/floors.d.ts +47 -0
- package/dist/scoreboard/floors.d.ts.map +1 -0
- package/dist/scoreboard/floors.js +33 -0
- package/dist/scoreboard/floors.js.map +1 -0
- package/dist/scoreboard/localDrift.d.ts +23 -0
- package/dist/scoreboard/localDrift.d.ts.map +1 -0
- package/dist/scoreboard/localDrift.js +111 -0
- package/dist/scoreboard/localDrift.js.map +1 -0
- package/dist/scoreboard/localDrift.test.d.ts +9 -0
- package/dist/scoreboard/localDrift.test.d.ts.map +1 -0
- package/dist/scoreboard/localDrift.test.js +82 -0
- package/dist/scoreboard/localDrift.test.js.map +1 -0
- package/dist/setup/__tests__/coach-traces.test.d.ts +2 -0
- package/dist/setup/__tests__/coach-traces.test.d.ts.map +1 -0
- package/dist/setup/__tests__/coach-traces.test.js +189 -0
- package/dist/setup/__tests__/coach-traces.test.js.map +1 -0
- package/dist/setup/__tests__/setup-commands.test.d.ts +2 -0
- package/dist/setup/__tests__/setup-commands.test.d.ts.map +1 -0
- package/dist/setup/__tests__/setup-commands.test.js +177 -0
- package/dist/setup/__tests__/setup-commands.test.js.map +1 -0
- package/dist/setup/__tests__/state-machine.test.d.ts +2 -0
- package/dist/setup/__tests__/state-machine.test.d.ts.map +1 -0
- package/dist/setup/__tests__/state-machine.test.js +341 -0
- package/dist/setup/__tests__/state-machine.test.js.map +1 -0
- package/dist/setup/detect-surfaces.d.ts +21 -0
- package/dist/setup/detect-surfaces.d.ts.map +1 -0
- package/dist/setup/detect-surfaces.js +39 -0
- package/dist/setup/detect-surfaces.js.map +1 -0
- package/dist/setup/manifest-writer.d.ts +17 -0
- package/dist/setup/manifest-writer.d.ts.map +1 -0
- package/dist/setup/manifest-writer.js +153 -0
- package/dist/setup/manifest-writer.js.map +1 -0
- package/dist/setup/perimeter.d.ts +72 -0
- package/dist/setup/perimeter.d.ts.map +1 -0
- package/dist/setup/perimeter.js +128 -0
- package/dist/setup/perimeter.js.map +1 -0
- package/dist/setup/state-machine.d.ts +67 -0
- package/dist/setup/state-machine.d.ts.map +1 -0
- package/dist/setup/state-machine.js +124 -0
- package/dist/setup/state-machine.js.map +1 -0
- package/dist/surfaces/__tests__/adapter.test.d.ts +2 -0
- package/dist/surfaces/__tests__/adapter.test.d.ts.map +1 -0
- package/dist/surfaces/__tests__/adapter.test.js +90 -0
- package/dist/surfaces/__tests__/adapter.test.js.map +1 -0
- package/dist/surfaces/__tests__/pb-setup-passthrough.test.d.ts +2 -0
- package/dist/surfaces/__tests__/pb-setup-passthrough.test.d.ts.map +1 -0
- package/dist/surfaces/__tests__/pb-setup-passthrough.test.js +132 -0
- package/dist/surfaces/__tests__/pb-setup-passthrough.test.js.map +1 -0
- package/dist/surfaces/__tests__/telemetry.test.d.ts +2 -0
- package/dist/surfaces/__tests__/telemetry.test.d.ts.map +1 -0
- package/dist/surfaces/__tests__/telemetry.test.js +55 -0
- package/dist/surfaces/__tests__/telemetry.test.js.map +1 -0
- package/dist/surfaces/adapter.d.ts +70 -0
- package/dist/surfaces/adapter.d.ts.map +1 -0
- package/dist/surfaces/adapter.js +2 -0
- package/dist/surfaces/adapter.js.map +1 -0
- package/dist/surfaces/adapters/claude.d.ts +3 -0
- package/dist/surfaces/adapters/claude.d.ts.map +1 -0
- package/dist/surfaces/adapters/claude.js +67 -0
- package/dist/surfaces/adapters/claude.js.map +1 -0
- package/dist/surfaces/adapters/codex.d.ts +3 -0
- package/dist/surfaces/adapters/codex.d.ts.map +1 -0
- package/dist/surfaces/adapters/codex.js +61 -0
- package/dist/surfaces/adapters/codex.js.map +1 -0
- package/dist/surfaces/adapters/copilot.d.ts +3 -0
- package/dist/surfaces/adapters/copilot.d.ts.map +1 -0
- package/dist/surfaces/adapters/copilot.js +59 -0
- package/dist/surfaces/adapters/copilot.js.map +1 -0
- package/dist/surfaces/adapters/cursor.d.ts +3 -0
- package/dist/surfaces/adapters/cursor.d.ts.map +1 -0
- package/dist/surfaces/adapters/cursor.js +78 -0
- package/dist/surfaces/adapters/cursor.js.map +1 -0
- package/dist/surfaces/registry.d.ts +76 -0
- package/dist/surfaces/registry.d.ts.map +1 -0
- package/dist/surfaces/registry.js +117 -0
- package/dist/surfaces/registry.js.map +1 -0
- package/dist/surfaces/telemetry.d.ts +17 -0
- package/dist/surfaces/telemetry.d.ts.map +1 -0
- package/dist/surfaces/telemetry.js +31 -0
- package/dist/surfaces/telemetry.js.map +1 -0
- package/package.json +7 -3
- package/templates/method-registry.json +16 -0
- package/dist/__tests__/setup.test.d.ts +0 -2
- package/dist/__tests__/setup.test.d.ts.map +0 -1
- package/dist/__tests__/setup.test.js +0 -141
- package/dist/__tests__/setup.test.js.map +0 -1
- package/dist/generators/__tests__/surface-profiles.test.d.ts +0 -2
- package/dist/generators/__tests__/surface-profiles.test.d.ts.map +0 -1
- package/dist/generators/__tests__/surface-profiles.test.js +0 -89
- package/dist/generators/__tests__/surface-profiles.test.js.map +0 -1
- package/dist/generators/chain-classifier.test.d.ts +0 -2
- package/dist/generators/chain-classifier.test.d.ts.map +0 -1
- package/dist/generators/chain-classifier.test.js +0 -257
- package/dist/generators/chain-classifier.test.js.map +0 -1
- package/dist/lib/onboarding-phases.d.ts +0 -9
- package/dist/lib/onboarding-phases.d.ts.map +0 -1
- package/dist/lib/onboarding-phases.js +0 -120
- package/dist/lib/onboarding-phases.js.map +0 -1
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scoreboard formatter — compact human-readable board for `pb scoreboard` (pretty mode).
|
|
3
|
+
*
|
|
4
|
+
* The JSON mode (the agent-primary surface) emits the full structured ScoreboardCliView; this is
|
|
5
|
+
* the human glance: one line per metric with a status glyph, the raw reading, and (when not ok)
|
|
6
|
+
* the next action. The standing coaching/moat `unmeasured` line always prints — honesty over
|
|
7
|
+
* flattery (four green tiles ≠ a healthy moat).
|
|
8
|
+
*/
|
|
9
|
+
import { green, red, yellow, dim, bold, cyan } from '../lib/style.js';
|
|
10
|
+
function statusGlyph(status) {
|
|
11
|
+
switch (status) {
|
|
12
|
+
case 'ok':
|
|
13
|
+
return green('OK ');
|
|
14
|
+
case 'degraded':
|
|
15
|
+
return red('DEGRADED');
|
|
16
|
+
case 'awaiting':
|
|
17
|
+
return yellow('AWAITING');
|
|
18
|
+
case 'unmeasured':
|
|
19
|
+
return dim('UNMEASURED');
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function formatLine(d) {
|
|
23
|
+
const head = `${statusGlyph(d.status).padEnd(10)} ${bold(d.metric)} ${d.label}`;
|
|
24
|
+
const reading = ` ${dim('reading:')} ${d.reading}`;
|
|
25
|
+
const lines = [head, reading];
|
|
26
|
+
if (d.status !== 'ok') {
|
|
27
|
+
lines.push(` ${dim('cause:')} ${d.cause}`);
|
|
28
|
+
if (d.nextAction)
|
|
29
|
+
lines.push(` ${cyan('→')} ${d.nextAction}`);
|
|
30
|
+
}
|
|
31
|
+
return lines.join('\n');
|
|
32
|
+
}
|
|
33
|
+
/** A parenthetical qualifier for a value sampled from a scan-capped read — never silently
|
|
34
|
+
* presented as complete (PR #422 review: the label-honesty failure this run exists to prevent). */
|
|
35
|
+
function truncatedQualifier(truncated) {
|
|
36
|
+
return truncated ? ' (sampled — scan cap reached)' : '';
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* WP-499 Slice B (TEN-2743, §2.5): the coherence panel renders RAW values, never a diagnosis
|
|
40
|
+
* tile — DEC-1282, no thresholds baked in. `humanBar.meets`/`lowerBound` is the one legitimate
|
|
41
|
+
* bar-comparison output (from readVerdictSummary); this section never computes a second one.
|
|
42
|
+
*/
|
|
43
|
+
function formatCoherence(c) {
|
|
44
|
+
const lowerBoundText = c.humanBar.lowerBound === null ? 'null' : c.humanBar.lowerBound.toFixed(3);
|
|
45
|
+
// PR #422 review (Codex): reviewed/real/falseAlarm/humanBar.meets are a SAMPLE, not a
|
|
46
|
+
// complete count, whenever readVerdictSummary's scan was capped — a misleading `meets` is
|
|
47
|
+
// exactly what a reader must never see rendered as if it were the full picture.
|
|
48
|
+
const verdictsSuffix = truncatedQualifier(c.reviewedTruncated);
|
|
49
|
+
// PR #422 review round 2 (Codex): overrides/heldBlocks come from two INDEPENDENTLY capped
|
|
50
|
+
// partitions — the server returns rate:null whenever truncated is true (dividing them would
|
|
51
|
+
// bias the ratio, e.g. 5,000 real overrides capped to 500 alongside 500 real held-blocks
|
|
52
|
+
// would read 50% instead of the true ~91%). So truncated+null is a DISTINCT, self-explaining
|
|
53
|
+
// state from "no data yet" (denominator===0, truncated:false) — never conflate the two
|
|
54
|
+
// messages, and never suffix a generic qualifier onto either.
|
|
55
|
+
const overrideRateText = c.contradictionOverrideRate.rate !== null
|
|
56
|
+
? `${(c.contradictionOverrideRate.rate * 100).toFixed(0)}%`
|
|
57
|
+
: c.contradictionOverrideRate.truncated
|
|
58
|
+
? 'rate unavailable — too many events to sample reliably (scan cap reached)'
|
|
59
|
+
: 'no enforcement events yet';
|
|
60
|
+
const openConflictsSuffix = c.openConflictsTruncated ? '+' : '';
|
|
61
|
+
// Review fix (PR #528 P1): this is the OBSERVED precision (real/reviewed), a DIFFERENT
|
|
62
|
+
// number from humanBar.lowerBound (the Wilson confidence bound on the same ratio) — a
|
|
63
|
+
// 1-real/0-falseAlarm cohort reads precision 1.000 while lowerBound sits well below 1.
|
|
64
|
+
// `c.precision` is itself optional (an older deployment's payload predates the field).
|
|
65
|
+
// Review fix (PR #528 round 2, P2): when the verdict-cohort scan truncated, `precision` is
|
|
66
|
+
// only the ratio within the SAMPLED rows, not the full population — the same honesty rule
|
|
67
|
+
// already applied to the counts/humanBar lines above (verdictsSuffix) must also cover this.
|
|
68
|
+
const precisionText = c.precision === undefined
|
|
69
|
+
? 'n/a (older deployment)'
|
|
70
|
+
: c.precision === null
|
|
71
|
+
? 'n/a (N=0)'
|
|
72
|
+
: `${c.precision.toFixed(3)}${verdictsSuffix}`;
|
|
73
|
+
// PR #422 review (Codex): detectionCoverage was assembled server-side specifically for this
|
|
74
|
+
// panel but never rendered — an operator running the default pretty `pb scoreboard` never saw
|
|
75
|
+
// it at all.
|
|
76
|
+
const surfaces = Object.keys(c.detectionCoverage.bySurface);
|
|
77
|
+
const detectionLines = surfaces.length === 0
|
|
78
|
+
? [` ${dim('detection coverage:')} no detection events yet`]
|
|
79
|
+
: [
|
|
80
|
+
` ${dim('detection coverage:')} scanned ${c.detectionCoverage.scanned}${truncatedQualifier(c.detectionCoverage.truncated)}`,
|
|
81
|
+
...surfaces.map((surface) => {
|
|
82
|
+
const counts = c.detectionCoverage.bySurface[surface];
|
|
83
|
+
return ` ${surface}: checked_clear=${counts.checked_clear} checked_conflicts=${counts.checked_conflicts} partial=${counts.partial} unavailable=${counts.unavailable}`;
|
|
84
|
+
}),
|
|
85
|
+
];
|
|
86
|
+
// Review fix (PR #528 P1): every C2 field on CoherencePayload is OPTIONAL — an older
|
|
87
|
+
// deployment's `coherence` object can be present (passing the `if (payload.coherence)`
|
|
88
|
+
// guard in formatScoreboard below) while lacking every field C2 added. Missing-field →
|
|
89
|
+
// undefined → wrong-branch is a documented trap in this repo; render "n/a", never
|
|
90
|
+
// dereference `c.dial.coherencyMode` unguarded (the exact crash the finding named).
|
|
91
|
+
const hasQueueFields = c.openUnverdicted !== undefined && c.verdictedOpenCount !== undefined && c.snoozedCount !== undefined;
|
|
92
|
+
// Adversarial done-audit fix (set-algebra advertising): snoozedUnverdicted publishes the third
|
|
93
|
+
// partition (open + unverdicted + currently snoozed) — see coherenceDial.ts's identity note.
|
|
94
|
+
// Optional/predates-this-fix, same convention as every other C2 queue field. Review fix (PR
|
|
95
|
+
// #539, Codex P2, "qualify truncated snoozed-unverdicted counts"): derived from the SAME
|
|
96
|
+
// sample as openUnverdicted (healSweepRuns.ts's computeVerdictSummary — one fetch, two
|
|
97
|
+
// filters), so it shares openUnverdicted's OWN truncation flag, never rendered as exact
|
|
98
|
+
// when the sample itself was capped.
|
|
99
|
+
const snoozedUnverdictedSuffix = c.snoozedUnverdicted !== undefined
|
|
100
|
+
? `, snoozed-unverdicted ${c.snoozedUnverdicted}${truncatedQualifier(!!c.openUnverdictedTruncated)}`
|
|
101
|
+
: '';
|
|
102
|
+
const queueLine = hasQueueFields
|
|
103
|
+
? ` ${dim('queue:')} actionable ${c.openUnverdicted}${truncatedQualifier(!!c.openUnverdictedTruncated)}, `
|
|
104
|
+
+ `verdicted-open ${c.verdictedOpenCount}${truncatedQualifier(!!c.verdictedOpenTruncated)}, `
|
|
105
|
+
+ `snoozed ${c.snoozedCount}${truncatedQualifier(!!c.snoozedCountTruncated)}${snoozedUnverdictedSuffix}`
|
|
106
|
+
: ` ${dim('queue:')} n/a (older deployment)`;
|
|
107
|
+
// Review fix (PR #528 round 2, P2): totalOpen is countOpenConflictIssues' own 200-row-capped
|
|
108
|
+
// count — the adjacent legacy `open conflicts:` line above already qualifies with `+` via
|
|
109
|
+
// openConflictsSuffix; this line rendered an exact-looking number with no such signal.
|
|
110
|
+
const totalOpenLine = c.totalOpen === undefined
|
|
111
|
+
? ` ${dim('total open:')} n/a (older deployment)`
|
|
112
|
+
: ` ${dim('total open:')} ${c.totalOpen}${truncatedQualifier(!!c.totalOpenTruncated)}${c.totalOpenAlarm ? ' ⚠ ALARM — 150+ open rows' : ''}`;
|
|
113
|
+
const dialLine = c.dial === undefined
|
|
114
|
+
? ` ${dim('dial:')} n/a (older deployment)`
|
|
115
|
+
: ` ${dim('dial:')} mode=${c.dial.coherencyMode} br170Graduated=${c.dial.br170Graduated} br170GraduatedPinned=${c.dial.br170GraduatedPinned}`;
|
|
116
|
+
// C1 (WP-468/FEAT-1408): at-cap disclosure for publish-origin rows (10-row cap) — never
|
|
117
|
+
// telemetry-only (spec requirement). Missing field → older deployment, same n/a convention.
|
|
118
|
+
const publishOriginLine = c.publishOriginOpen === undefined
|
|
119
|
+
? ` ${dim('publish-origin:')} n/a (older deployment)`
|
|
120
|
+
: ` ${dim('publish-origin:')} ${c.publishOriginOpen}/10${truncatedQualifier(!!c.publishOriginTruncated)}${c.publishOriginAtCap ? ' ⚠ AT CAP' : ''}`;
|
|
121
|
+
return [
|
|
122
|
+
`${bold('COHERENCE')} Contradiction advisories & verdicts`,
|
|
123
|
+
` ${dim('open conflicts:')} ${c.openConflictCount}${openConflictsSuffix}`,
|
|
124
|
+
` ${dim('verdicts:')} reviewed ${c.reviewed}, real ${c.real}, falseAlarm ${c.falseAlarm}${verdictsSuffix}`,
|
|
125
|
+
` ${dim('humanBar:')} lowerBound ${lowerBoundText}, meets ${c.humanBar.meets}${verdictsSuffix}`,
|
|
126
|
+
` ${dim('precision:')} ${precisionText}`,
|
|
127
|
+
// point 8: the actionable/verdicted-open/snoozed set. Adversarial done-audit fix
|
|
128
|
+
// (set-algebra advertising): the true identity is totalOpen = actionable +
|
|
129
|
+
// snoozed-unverdicted + verdicted-open — an unverdicted row IS moved out of "actionable"
|
|
130
|
+
// by snoozing (isActionableConflictIssue excludes it); snoozed-unverdicted is that bucket.
|
|
131
|
+
queueLine,
|
|
132
|
+
totalOpenLine,
|
|
133
|
+
// point 8, scope-doc F10: the dial state — previously unreadable from any scoreboard surface.
|
|
134
|
+
dialLine,
|
|
135
|
+
publishOriginLine,
|
|
136
|
+
...detectionLines,
|
|
137
|
+
` ${dim('contradiction override rate:')} ${overrideRateText}`,
|
|
138
|
+
];
|
|
139
|
+
}
|
|
140
|
+
export function formatScoreboard(view) {
|
|
141
|
+
const { diagnosis, payload } = view;
|
|
142
|
+
const when = new Date(payload.generatedAt).toISOString();
|
|
143
|
+
const out = [];
|
|
144
|
+
out.push(bold('Flywheel scoreboard') + dim(` (workspace ${payload.workspaceId} · ${when})`));
|
|
145
|
+
out.push('');
|
|
146
|
+
out.push(formatLine(diagnosis.m1));
|
|
147
|
+
out.push(formatLine(diagnosis.m2));
|
|
148
|
+
out.push(formatLine(diagnosis.m3));
|
|
149
|
+
out.push(formatLine(diagnosis.m4));
|
|
150
|
+
out.push(formatLine(diagnosis.m5));
|
|
151
|
+
out.push('');
|
|
152
|
+
out.push(formatLine(diagnosis.moat));
|
|
153
|
+
// coherence-run-sweep fix (PR #422 post-merge thread, Codex P2, "Handle scoreboards
|
|
154
|
+
// from older deployments"): `payload.coherence`'s type is compile-time only —
|
|
155
|
+
// `kernelCall`'s generic doesn't verify the RUNTIME shape a deployment predating this
|
|
156
|
+
// field actually returns. Rendering unconditionally threw for the default pretty path
|
|
157
|
+
// (only `--json` avoided it); skip the panel instead of crashing `pb scoreboard`.
|
|
158
|
+
if (payload.coherence) {
|
|
159
|
+
out.push('');
|
|
160
|
+
out.push(...formatCoherence(payload.coherence));
|
|
161
|
+
}
|
|
162
|
+
return out.join('\n');
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=scoreboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scoreboard.js","sourceRoot":"","sources":["../../src/formatters/scoreboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scoreboard.test.d.ts","sourceRoot":"","sources":["../../src/formatters/scoreboard.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WP-499 Slice B (TEN-2743, §2.5) — formatScoreboard's new coherence section.
|
|
3
|
+
* DEC-1282: no thresholds baked in — the coherence panel renders raw values, never a second
|
|
4
|
+
* diagnosis tile (diagnose() never touches payload.coherence — confirmed by not passing through it).
|
|
5
|
+
*/
|
|
6
|
+
import { describe, expect, it } from 'vitest';
|
|
7
|
+
import { formatScoreboard } from './scoreboard.js';
|
|
8
|
+
import { diagnose } from '../scoreboard/diagnose.js';
|
|
9
|
+
function basePayload(coherence) {
|
|
10
|
+
return {
|
|
11
|
+
workspaceId: 'ws-1',
|
|
12
|
+
generatedAt: 1_800_000_000_000,
|
|
13
|
+
m1: { mix: { audited: 0, draft: 0, noDomain: 0, total: 0 }, noDomainShare: null, auditedShare: null, draftShare: null, windowMs: 1, servedRowCount: 0 },
|
|
14
|
+
m2: { divergentBuckets: 0, fullParity: true, task: null },
|
|
15
|
+
m3: { capturedCount: 0, everRatifiedCount: 0, inSessionRatifiedCount: 0, everRatifiedRate: null, inSessionRatifiedRate: null, sessionWindow: 20, sessionsConsidered: 0 },
|
|
16
|
+
m4: {
|
|
17
|
+
reworkJoinWindowMs: 1, lookbackWindowMs: 1, now: 1, servedCount: 0, unattributableServedCount: 0,
|
|
18
|
+
pendingObservationCount: 0, decidedCount: 0, firstTimeGoodCount: 0, reworkedCount: 0, firstTimeGoodShare: null,
|
|
19
|
+
signalCount: 0, joinedSignalCount: 0, unjoinedSignalCount: 0, falseAttributionRate: null,
|
|
20
|
+
byClassification: { revision: 0, ci_review_correction: 0, user_override: 0 },
|
|
21
|
+
ciReviewCorrectionAttribution: { attributable: 0, notAttributable: 0, unspecified: 0 },
|
|
22
|
+
cohort: { workspaceId: 'ws-1', taskProvidedCount: 0, taskAbsentCount: 0 },
|
|
23
|
+
},
|
|
24
|
+
materialization: { latestMaterializedAt: null, materializationAgeMs: null, now: 1 },
|
|
25
|
+
coherence,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
const localDrift = { localProjectionMtime: null, serverMaterializedAt: null, localLagMs: null, localAgeMs: null };
|
|
29
|
+
/** Default coherence fixture — override only the fields a test cares about. */
|
|
30
|
+
function coherence(overrides = {}) {
|
|
31
|
+
return {
|
|
32
|
+
openConflictCount: 0,
|
|
33
|
+
openConflictsTruncated: false,
|
|
34
|
+
reviewed: 0,
|
|
35
|
+
real: 0,
|
|
36
|
+
falseAlarm: 0,
|
|
37
|
+
reviewedTruncated: false,
|
|
38
|
+
humanBar: { meets: false, lowerBound: null, reviewed: 0 },
|
|
39
|
+
precision: null,
|
|
40
|
+
openUnverdicted: 0,
|
|
41
|
+
verdictedOpenCount: 0,
|
|
42
|
+
snoozedCount: 0,
|
|
43
|
+
totalOpen: 0,
|
|
44
|
+
totalOpenAlarm: false,
|
|
45
|
+
dial: { br170Graduated: false, br170GraduatedPinned: false, coherencyMode: 'light' },
|
|
46
|
+
detectionCoverage: { bySurface: {}, scanned: 0, truncated: false },
|
|
47
|
+
contradictionOverrideRate: { overrides: 0, heldBlocks: 0, rate: null, truncated: false },
|
|
48
|
+
...overrides,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function view(c) {
|
|
52
|
+
const payload = basePayload(c);
|
|
53
|
+
return { payload, localDrift, diagnosis: diagnose(payload, localDrift) };
|
|
54
|
+
}
|
|
55
|
+
describe('formatScoreboard coherence section (TEN-2743, §2.5)', () => {
|
|
56
|
+
it('renders openConflictCount, reviewed/real/falseAlarm, and humanBar exactly as the payload carries them — no recomputed Wilson math', () => {
|
|
57
|
+
const output = formatScoreboard(view(coherence({
|
|
58
|
+
openConflictCount: 3,
|
|
59
|
+
reviewed: 2,
|
|
60
|
+
real: 1,
|
|
61
|
+
falseAlarm: 1,
|
|
62
|
+
humanBar: { meets: false, lowerBound: 0.05, reviewed: 2 },
|
|
63
|
+
})));
|
|
64
|
+
// PR #422 review (Copilot): assert the specific line, not a bare digit substring — the
|
|
65
|
+
// ISO timestamp header and other metric readings can also contain "3".
|
|
66
|
+
expect(output).toContain('open conflicts: 3');
|
|
67
|
+
expect(output).toContain('reviewed 2');
|
|
68
|
+
expect(output).toContain('real 1');
|
|
69
|
+
expect(output).toContain('falseAlarm 1');
|
|
70
|
+
expect(output).toContain('meets false');
|
|
71
|
+
expect(output).toContain('0.05');
|
|
72
|
+
});
|
|
73
|
+
it('renders "no enforcement events yet" when contradictionOverrideRate.rate is null — never "0%", never blank', () => {
|
|
74
|
+
const output = formatScoreboard(view(coherence()));
|
|
75
|
+
expect(output).toContain('no enforcement events yet');
|
|
76
|
+
expect(output).not.toContain('0%');
|
|
77
|
+
});
|
|
78
|
+
it('renders a percentage when contradictionOverrideRate.rate is non-null', () => {
|
|
79
|
+
const output = formatScoreboard(view(coherence({
|
|
80
|
+
contradictionOverrideRate: { overrides: 3, heldBlocks: 1, rate: 0.75, truncated: false },
|
|
81
|
+
})));
|
|
82
|
+
expect(output).toContain('75%');
|
|
83
|
+
expect(output).not.toContain('no enforcement events yet');
|
|
84
|
+
});
|
|
85
|
+
it('renders an honest "rate unavailable" message — never a percentage — when the scan was capped (PR #422 review round 2, Codex: independently-capped partitions bias a naive ratio, so the server now returns rate:null whenever truncated is true)', () => {
|
|
86
|
+
const output = formatScoreboard(view(coherence({
|
|
87
|
+
contradictionOverrideRate: { overrides: 500, heldBlocks: 0, rate: null, truncated: true },
|
|
88
|
+
})));
|
|
89
|
+
const overrideLine = output.split('\n').find((l) => l.includes('contradiction override rate'));
|
|
90
|
+
expect(overrideLine).not.toMatch(/\d+%/);
|
|
91
|
+
expect(overrideLine).not.toContain('no enforcement events yet');
|
|
92
|
+
expect(overrideLine).toMatch(/scan cap|too many events|unavailable/i);
|
|
93
|
+
});
|
|
94
|
+
it('renders the detectionCoverage panel — bySurface breakdown and scanned count (PR #422 review, Codex — was assembled but never rendered)', () => {
|
|
95
|
+
const output = formatScoreboard(view(coherence({
|
|
96
|
+
detectionCoverage: {
|
|
97
|
+
bySurface: { publish: { checked_clear: 2, checked_conflicts: 1, partial: 0, unavailable: 0 } },
|
|
98
|
+
scanned: 3,
|
|
99
|
+
truncated: false,
|
|
100
|
+
},
|
|
101
|
+
})));
|
|
102
|
+
expect(output).toContain('detection coverage');
|
|
103
|
+
expect(output).toContain('publish');
|
|
104
|
+
expect(output).toContain('checked_clear=2');
|
|
105
|
+
expect(output).toContain('checked_conflicts=1');
|
|
106
|
+
});
|
|
107
|
+
it('renders an honest empty state when detectionCoverage has no surfaces yet', () => {
|
|
108
|
+
const output = formatScoreboard(view(coherence()));
|
|
109
|
+
expect(output).toContain('detection coverage');
|
|
110
|
+
expect(output).toMatch(/no detection events yet/i);
|
|
111
|
+
});
|
|
112
|
+
it('renders a truncation qualifier on the detection coverage line when the scan was capped', () => {
|
|
113
|
+
const output = formatScoreboard(view(coherence({
|
|
114
|
+
detectionCoverage: { bySurface: { publish: { checked_clear: 1, checked_conflicts: 0, partial: 0, unavailable: 0 } }, scanned: 5000, truncated: true },
|
|
115
|
+
})));
|
|
116
|
+
const coverageLine = output.split('\n').find((l) => l.includes('detection coverage'));
|
|
117
|
+
expect(coverageLine).toMatch(/sampled|truncat/i);
|
|
118
|
+
});
|
|
119
|
+
it('renders a truncation qualifier on verdicts AND humanBar when reviewedTruncated is true — a misleading meets must never render unqualified (PR #422 review, Codex)', () => {
|
|
120
|
+
const output = formatScoreboard(view(coherence({
|
|
121
|
+
reviewed: 1000, real: 950, falseAlarm: 50, reviewedTruncated: true,
|
|
122
|
+
humanBar: { meets: true, lowerBound: 0.94, reviewed: 1000 },
|
|
123
|
+
})));
|
|
124
|
+
const verdictsLine = output.split('\n').find((l) => l.includes('verdicts:'));
|
|
125
|
+
const humanBarLine = output.split('\n').find((l) => l.includes('humanBar:'));
|
|
126
|
+
expect(verdictsLine).toMatch(/sampled|truncat/i);
|
|
127
|
+
expect(humanBarLine).toMatch(/sampled|truncat/i);
|
|
128
|
+
});
|
|
129
|
+
it('renders no truncation qualifiers when every underlying scan was complete', () => {
|
|
130
|
+
const output = formatScoreboard(view(coherence({ reviewed: 2, real: 1, falseAlarm: 1 })));
|
|
131
|
+
const verdictsLine = output.split('\n').find((l) => l.includes('verdicts:'));
|
|
132
|
+
const humanBarLine = output.split('\n').find((l) => l.includes('humanBar:'));
|
|
133
|
+
expect(verdictsLine).not.toMatch(/sampled|truncat/i);
|
|
134
|
+
expect(humanBarLine).not.toMatch(/sampled|truncat/i);
|
|
135
|
+
});
|
|
136
|
+
// coherence-run-sweep fix (PR #422 post-merge thread, Codex P2, "Handle scoreboards from
|
|
137
|
+
// older deployments"): `payload.coherence`'s type is compile-time only — a deployment
|
|
138
|
+
// predating this field returns a payload that genuinely lacks it at runtime (kernelCall's
|
|
139
|
+
// generic never verifies the wire shape). The pretty path must degrade, not throw.
|
|
140
|
+
it('does not throw when payload.coherence is absent (older deployment) and simply omits the panel', () => {
|
|
141
|
+
const payload = basePayload(coherence());
|
|
142
|
+
delete payload.coherence;
|
|
143
|
+
const v = { payload, localDrift, diagnosis: diagnose(payload, localDrift) };
|
|
144
|
+
let output = '';
|
|
145
|
+
expect(() => {
|
|
146
|
+
output = formatScoreboard(v);
|
|
147
|
+
}).not.toThrow();
|
|
148
|
+
expect(output).not.toContain('COHERENCE');
|
|
149
|
+
});
|
|
150
|
+
// C2 (WP-468/FEAT-1407, point 8) — the new queue/precision/dial fields.
|
|
151
|
+
it('renders precision as an explicit "n/a (N=0)" when nothing has been verdicted, never a blank/misleading number', () => {
|
|
152
|
+
const output = formatScoreboard(view(coherence({ reviewed: 0, precision: null })));
|
|
153
|
+
const precisionLine = output.split('\n').find((l) => l.includes('precision:'));
|
|
154
|
+
expect(precisionLine).toContain('n/a (N=0)');
|
|
155
|
+
});
|
|
156
|
+
// Review fix (PR #528 P1): precision is the OBSERVED ratio (real/reviewed) — a DIFFERENT
|
|
157
|
+
// number from humanBar.lowerBound (the Wilson confidence bound on that same ratio). A
|
|
158
|
+
// 1-real/0-falseAlarm cohort must read precision 1.000 even though its lowerBound is well
|
|
159
|
+
// below 1 — conflating the two mislabels the statistic on every non-empty cohort.
|
|
160
|
+
it('renders the OBSERVED precision, distinct from the Wilson lowerBound, for a small all-real cohort', () => {
|
|
161
|
+
const output = formatScoreboard(view(coherence({
|
|
162
|
+
reviewed: 1, real: 1, falseAlarm: 0, precision: 1,
|
|
163
|
+
humanBar: { meets: false, lowerBound: 0.206, reviewed: 1 },
|
|
164
|
+
})));
|
|
165
|
+
const precisionLine = output.split('\n').find((l) => l.includes('precision:'));
|
|
166
|
+
const humanBarLine = output.split('\n').find((l) => l.includes('humanBar:'));
|
|
167
|
+
expect(precisionLine).toContain('1.000');
|
|
168
|
+
expect(humanBarLine).toContain('0.206');
|
|
169
|
+
expect(precisionLine).not.toContain('0.206');
|
|
170
|
+
});
|
|
171
|
+
// Review fix (PR #528 round 2, P2): when the verdict-cohort scan truncated, precision is
|
|
172
|
+
// only the ratio within the SAMPLED rows, not the full population — the same honesty rule
|
|
173
|
+
// already applied to the counts/humanBar lines (verdictsSuffix) must also cover this line.
|
|
174
|
+
it('renders precision with a truncation qualifier when reviewedTruncated is true', () => {
|
|
175
|
+
const output = formatScoreboard(view(coherence({
|
|
176
|
+
reviewed: 1300, real: 1300, falseAlarm: 0, precision: 1, reviewedTruncated: true,
|
|
177
|
+
humanBar: { meets: true, lowerBound: 0.99, reviewed: 1300 },
|
|
178
|
+
})));
|
|
179
|
+
const precisionLine = output.split('\n').find((l) => l.includes('precision:'));
|
|
180
|
+
expect(precisionLine).toContain('1.000');
|
|
181
|
+
expect(precisionLine).toContain('sampled — scan cap reached');
|
|
182
|
+
});
|
|
183
|
+
// Review fix (PR #528 P7 / older-deployment defaults): `payload.coherence` can be PRESENT
|
|
184
|
+
// (passing the outer `if (payload.coherence)` guard) while predating every C2 field —
|
|
185
|
+
// `c.dial.coherencyMode` must never throw unguarded.
|
|
186
|
+
it('renders "n/a (older deployment)" for precision/queue/total-open/dial when those C2 fields are entirely absent, never throws', () => {
|
|
187
|
+
const olderDeploymentCoherence = coherence();
|
|
188
|
+
delete olderDeploymentCoherence.precision;
|
|
189
|
+
delete olderDeploymentCoherence.openUnverdicted;
|
|
190
|
+
delete olderDeploymentCoherence.verdictedOpenCount;
|
|
191
|
+
delete olderDeploymentCoherence.snoozedCount;
|
|
192
|
+
delete olderDeploymentCoherence.totalOpen;
|
|
193
|
+
delete olderDeploymentCoherence.totalOpenAlarm;
|
|
194
|
+
delete olderDeploymentCoherence.dial;
|
|
195
|
+
let output = '';
|
|
196
|
+
expect(() => {
|
|
197
|
+
output = formatScoreboard(view(olderDeploymentCoherence));
|
|
198
|
+
}).not.toThrow();
|
|
199
|
+
expect(output.split('\n').find((l) => l.includes('precision:'))).toContain('n/a (older deployment)');
|
|
200
|
+
expect(output.split('\n').find((l) => l.includes('queue:'))).toContain('n/a (older deployment)');
|
|
201
|
+
expect(output.split('\n').find((l) => l.includes('total open:'))).toContain('n/a (older deployment)');
|
|
202
|
+
expect(output.split('\n').find((l) => l.includes('dial:'))).toContain('n/a (older deployment)');
|
|
203
|
+
});
|
|
204
|
+
it('renders the actionable/verdicted-open/snoozed queue counts', () => {
|
|
205
|
+
const output = formatScoreboard(view(coherence({
|
|
206
|
+
openUnverdicted: 3, verdictedOpenCount: 2, snoozedCount: 1,
|
|
207
|
+
})));
|
|
208
|
+
const queueLine = output.split('\n').find((l) => l.includes('queue:'));
|
|
209
|
+
expect(queueLine).toContain('actionable 3');
|
|
210
|
+
expect(queueLine).toContain('verdicted-open 2');
|
|
211
|
+
expect(queueLine).toContain('snoozed 1');
|
|
212
|
+
});
|
|
213
|
+
// Review fix (PR #528 P1): every one of these queue sub-counts is itself a capped-sample
|
|
214
|
+
// count — a truncation flag must render a qualifier, never present as an exact number.
|
|
215
|
+
it('renders a truncation qualifier on each queue sub-count independently', () => {
|
|
216
|
+
const output = formatScoreboard(view(coherence({
|
|
217
|
+
openUnverdicted: 200, openUnverdictedTruncated: true,
|
|
218
|
+
verdictedOpenCount: 5000, verdictedOpenTruncated: true,
|
|
219
|
+
snoozedCount: 200, snoozedCountTruncated: true,
|
|
220
|
+
})));
|
|
221
|
+
const queueLine = output.split('\n').find((l) => l.includes('queue:'));
|
|
222
|
+
expect(queueLine).toMatch(/actionable 200.*sampled/);
|
|
223
|
+
expect(queueLine).toMatch(/verdicted-open 5000.*sampled/);
|
|
224
|
+
expect(queueLine).toMatch(/snoozed 200.*sampled/);
|
|
225
|
+
});
|
|
226
|
+
// Review fix (PR #539, Codex P2, "qualify truncated snoozed-unverdicted counts"):
|
|
227
|
+
// snoozedUnverdicted is derived from the SAME sample as openUnverdicted (one fetch, two
|
|
228
|
+
// filters, healSweepRuns.ts) — it must inherit openUnverdicted's OWN truncation qualifier,
|
|
229
|
+
// never render as an exact number when that shared sample was capped.
|
|
230
|
+
it('qualifies snoozed-unverdicted as sampled when the shared openUnverdicted sample was truncated', () => {
|
|
231
|
+
const output = formatScoreboard(view(coherence({
|
|
232
|
+
openUnverdicted: 200, openUnverdictedTruncated: true, snoozedUnverdicted: 15,
|
|
233
|
+
})));
|
|
234
|
+
const queueLine = output.split('\n').find((l) => l.includes('queue:'));
|
|
235
|
+
expect(queueLine).toMatch(/snoozed-unverdicted 15.*sampled/);
|
|
236
|
+
});
|
|
237
|
+
it('renders snoozed-unverdicted as an exact number when the sample was NOT truncated', () => {
|
|
238
|
+
const output = formatScoreboard(view(coherence({
|
|
239
|
+
openUnverdicted: 3, openUnverdictedTruncated: false, snoozedUnverdicted: 1,
|
|
240
|
+
})));
|
|
241
|
+
const queueLine = output.split('\n').find((l) => l.includes('queue:'));
|
|
242
|
+
expect(queueLine).toContain('snoozed-unverdicted 1');
|
|
243
|
+
expect(queueLine).not.toMatch(/snoozed-unverdicted 1.*sampled/);
|
|
244
|
+
});
|
|
245
|
+
it('renders totalOpen with a loud alarm suffix once totalOpenAlarm is true', () => {
|
|
246
|
+
// Note: /alarm/i alone would false-match the pre-existing "falseAlarm" verdict-count field
|
|
247
|
+
// name — assert on the specific "total open" LINE, not the whole payload.
|
|
248
|
+
const quiet = formatScoreboard(view(coherence({ totalOpen: 12, totalOpenAlarm: false })));
|
|
249
|
+
const quietLine = quiet.split('\n').find((l) => l.includes('total open:'));
|
|
250
|
+
expect(quietLine).toContain('total open: 12');
|
|
251
|
+
expect(quietLine).not.toMatch(/ALARM/);
|
|
252
|
+
const loud = formatScoreboard(view(coherence({ totalOpen: 151, totalOpenAlarm: true })));
|
|
253
|
+
const loudLine = loud.split('\n').find((l) => l.includes('total open:'));
|
|
254
|
+
expect(loudLine).toContain('total open: 151');
|
|
255
|
+
expect(loudLine).toMatch(/ALARM/);
|
|
256
|
+
});
|
|
257
|
+
// Review fix (PR #528 round 2, P2): totalOpen previously rendered an exact-looking number
|
|
258
|
+
// with no truncation signal, even though it is countOpenConflictIssues' own 200-row-capped
|
|
259
|
+
// count — the SAME honesty rule already applied to every other capped count in this panel.
|
|
260
|
+
it('renders totalOpen with a truncation qualifier when totalOpenTruncated is true', () => {
|
|
261
|
+
const output = formatScoreboard(view(coherence({ totalOpen: 200, totalOpenTruncated: true })));
|
|
262
|
+
const totalOpenLine = output.split('\n').find((l) => l.includes('total open:'));
|
|
263
|
+
expect(totalOpenLine).toContain('total open: 200');
|
|
264
|
+
expect(totalOpenLine).toContain('sampled — scan cap reached');
|
|
265
|
+
});
|
|
266
|
+
it('renders totalOpen with NO truncation qualifier when totalOpenTruncated is false', () => {
|
|
267
|
+
const output = formatScoreboard(view(coherence({ totalOpen: 12, totalOpenTruncated: false })));
|
|
268
|
+
const totalOpenLine = output.split('\n').find((l) => l.includes('total open:'));
|
|
269
|
+
expect(totalOpenLine).not.toContain('sampled');
|
|
270
|
+
});
|
|
271
|
+
it('renders the dial state — mode, br170Graduated, br170GraduatedPinned (scope-doc F10)', () => {
|
|
272
|
+
const output = formatScoreboard(view(coherence({
|
|
273
|
+
dial: { br170Graduated: true, br170GraduatedPinned: true, coherencyMode: 'strict' },
|
|
274
|
+
})));
|
|
275
|
+
const dialLine = output.split('\n').find((l) => l.includes('dial:'));
|
|
276
|
+
expect(dialLine).toContain('mode=strict');
|
|
277
|
+
expect(dialLine).toContain('br170Graduated=true');
|
|
278
|
+
expect(dialLine).toContain('br170GraduatedPinned=true');
|
|
279
|
+
});
|
|
280
|
+
// C1 (WP-468/FEAT-1408): the at-cap disclosure — never telemetry-only.
|
|
281
|
+
it('renders the publish-origin count and cap disclosure', () => {
|
|
282
|
+
const output = formatScoreboard(view(coherence({
|
|
283
|
+
publishOriginOpen: 3, publishOriginAtCap: false, publishOriginTruncated: false,
|
|
284
|
+
})));
|
|
285
|
+
const line = output.split('\n').find((l) => l.includes('publish-origin:'));
|
|
286
|
+
expect(line).toContain('publish-origin: 3/10');
|
|
287
|
+
expect(line).not.toMatch(/AT CAP/);
|
|
288
|
+
});
|
|
289
|
+
it('renders an AT CAP warning when publishOriginAtCap is true', () => {
|
|
290
|
+
const output = formatScoreboard(view(coherence({
|
|
291
|
+
publishOriginOpen: 10, publishOriginAtCap: true, publishOriginTruncated: false,
|
|
292
|
+
})));
|
|
293
|
+
const line = output.split('\n').find((l) => l.includes('publish-origin:'));
|
|
294
|
+
expect(line).toContain('publish-origin: 10/10');
|
|
295
|
+
expect(line).toMatch(/AT CAP/);
|
|
296
|
+
});
|
|
297
|
+
it('renders "n/a (older deployment)" for publish-origin when the field is absent', () => {
|
|
298
|
+
const output = formatScoreboard(view(coherence()));
|
|
299
|
+
const line = output.split('\n').find((l) => l.includes('publish-origin:'));
|
|
300
|
+
expect(line).toContain('n/a (older deployment)');
|
|
301
|
+
});
|
|
302
|
+
});
|
|
303
|
+
//# sourceMappingURL=scoreboard.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scoreboard.test.js","sourceRoot":"","sources":["../../src/formatters/scoreboard.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAoE,MAAM,2BAA2B,CAAC;AAGvH,SAAS,WAAW,CAAC,SAA2B;IAC9C,OAAO;QACL,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,iBAAiB;QAC9B,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE;QACvJ,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;QACzD,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,sBAAsB,EAAE,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,kBAAkB,EAAE,CAAC,EAAE;QACxK,EAAE,EAAE;YACF,kBAAkB,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,yBAAyB,EAAE,CAAC;YAChG,uBAAuB,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,kBAAkB,EAAE,IAAI;YAC9G,WAAW,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,oBAAoB,EAAE,IAAI;YACxF,gBAAgB,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;YAC5E,6BAA6B,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE;YACtF,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE;SAC1E;QACD,eAAe,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;QACnF,SAAS;KACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAiB,EAAE,oBAAoB,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAEhI,+EAA+E;AAC/E,SAAS,SAAS,CAAC,YAAuC,EAAE;IAC1D,OAAO;QACL,iBAAiB,EAAE,CAAC;QACpB,sBAAsB,EAAE,KAAK;QAC7B,QAAQ,EAAE,CAAC;QACX,IAAI,EAAE,CAAC;QACP,UAAU,EAAE,CAAC;QACb,iBAAiB,EAAE,KAAK;QACxB,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE;QACzD,SAAS,EAAE,IAAI;QACf,eAAe,EAAE,CAAC;QAClB,kBAAkB,EAAE,CAAC;QACrB,YAAY,EAAE,CAAC;QACf,SAAS,EAAE,CAAC;QACZ,cAAc,EAAE,KAAK;QACrB,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE;QACpF,iBAAiB,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE;QAClE,yBAAyB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE;QACxF,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,SAAS,IAAI,CAAC,CAAmB;IAC/B,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC/B,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;AAC3E,CAAC;AAED,QAAQ,CAAC,qDAAqD,EAAE,GAAG,EAAE;IACnE,EAAE,CAAC,mIAAmI,EAAE,GAAG,EAAE;QAC3I,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7C,iBAAiB,EAAE,CAAC;YACpB,QAAQ,EAAE,CAAC;YACX,IAAI,EAAE,CAAC;YACP,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE;SAC1D,CAAC,CAAC,CAAC,CAAC;QACL,uFAAuF;QACvF,uEAAuE;QACvE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2GAA2G,EAAE,GAAG,EAAE;QACnH,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7C,yBAAyB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE;SACzF,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kPAAkP,EAAE,GAAG,EAAE;QAC1P,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7C,yBAAyB,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;SAC1F,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC,CAAC;QAC/F,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QAChE,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wIAAwI,EAAE,GAAG,EAAE;QAChJ,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7C,iBAAiB,EAAE;gBACjB,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE;gBAC9F,OAAO,EAAE,CAAC;gBACV,SAAS,EAAE,KAAK;aACjB;SACF,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wFAAwF,EAAE,GAAG,EAAE;QAChG,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7C,iBAAiB,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;SACtJ,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACtF,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mKAAmK,EAAE,GAAG,EAAE;QAC3K,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7C,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI;YAClE,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC5D,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QAC7E,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACjD,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1F,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QAC7E,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACrD,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,yFAAyF;IACzF,sFAAsF;IACtF,0FAA0F;IAC1F,mFAAmF;IACnF,EAAE,CAAC,+FAA+F,EAAE,GAAG,EAAE;QACvG,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC;QACzC,OAAQ,OAA4C,CAAC,SAAS,CAAC;QAC/D,MAAM,CAAC,GAAsB,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;QAE/F,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,CAAC,GAAG,EAAE;YACV,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,wEAAwE;IACxE,EAAE,CAAC,+GAA+G,EAAE,GAAG,EAAE;QACvH,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QAC/E,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,yFAAyF;IACzF,sFAAsF;IACtF,0FAA0F;IAC1F,kFAAkF;IAClF,EAAE,CAAC,kGAAkG,EAAE,GAAG,EAAE;QAC1G,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7C,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;YACjD,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE;SAC3D,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QAC/E,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,yFAAyF;IACzF,0FAA0F;IAC1F,2FAA2F;IAC3F,EAAE,CAAC,8EAA8E,EAAE,GAAG,EAAE;QACtF,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7C,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,iBAAiB,EAAE,IAAI;YAChF,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC5D,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QAC/E,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,0FAA0F;IAC1F,sFAAsF;IACtF,qDAAqD;IACrD,EAAE,CAAC,6HAA6H,EAAE,GAAG,EAAE;QACrI,MAAM,wBAAwB,GAAG,SAAS,EAAE,CAAC;QAC7C,OAAQ,wBAAsD,CAAC,SAAS,CAAC;QACzE,OAAQ,wBAAsD,CAAC,eAAe,CAAC;QAC/E,OAAQ,wBAAsD,CAAC,kBAAkB,CAAC;QAClF,OAAQ,wBAAsD,CAAC,YAAY,CAAC;QAC5E,OAAQ,wBAAsD,CAAC,SAAS,CAAC;QACzE,OAAQ,wBAAsD,CAAC,cAAc,CAAC;QAC9E,OAAQ,wBAAsD,CAAC,IAAI,CAAC;QAEpE,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,CAAC,GAAG,EAAE;YACV,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACrG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACjG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACtG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;IAClG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7C,eAAe,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC;SAC3D,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC5C,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAChD,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,yFAAyF;IACzF,uFAAuF;IACvF,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7C,eAAe,EAAE,GAAG,EAAE,wBAAwB,EAAE,IAAI;YACpD,kBAAkB,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI;YACtD,YAAY,EAAE,GAAG,EAAE,qBAAqB,EAAE,IAAI;SAC/C,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QACrD,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;QAC1D,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,kFAAkF;IAClF,wFAAwF;IACxF,2FAA2F;IAC3F,sEAAsE;IACtE,EAAE,CAAC,+FAA+F,EAAE,GAAG,EAAE;QACvG,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7C,eAAe,EAAE,GAAG,EAAE,wBAAwB,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE;SAC7E,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kFAAkF,EAAE,GAAG,EAAE;QAC1F,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7C,eAAe,EAAE,CAAC,EAAE,wBAAwB,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;SAC3E,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACrD,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,2FAA2F;QAC3F,0EAA0E;QAC1E,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1F,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;QAC3E,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC9C,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEvC,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACzF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;QACzE,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC9C,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,0FAA0F;IAC1F,2FAA2F;IAC3F,2FAA2F;IAC3F,EAAE,CAAC,+EAA+E,EAAE,GAAG,EAAE;QACvF,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/F,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;QAChF,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACnD,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;QACzF,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/F,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;QAChF,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qFAAqF,EAAE,GAAG,EAAE;QAC7F,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7C,IAAI,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE;SACpF,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACrE,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC1C,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAClD,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,uEAAuE;IACvE,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7C,iBAAiB,EAAE,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK;SAC/E,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC3E,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7C,iBAAiB,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK;SAC/E,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC3E,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8EAA8E,EAAE,GAAG,EAAE;QACtF,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC3E,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/formatters/search.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/formatters/search.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAgBD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,CAgBnE"}
|
|
@@ -3,6 +3,20 @@
|
|
|
3
3
|
* Chain: DEC-186 (CLI uses Convex view model with CLI-native formatting).
|
|
4
4
|
*/
|
|
5
5
|
import { stripControlChars } from '../lib/strip.js';
|
|
6
|
+
/**
|
|
7
|
+
* Status column display word. 'active' displays as the canonical 'accepted' word — the two
|
|
8
|
+
* are the same trust level (DEC-1575), so the CLI never shows a fresh accept and a legacy
|
|
9
|
+
* row under different labels. Every other stored word (including 'accepted' itself, and any
|
|
10
|
+
* non-vocabulary word a caller passes) displays as-is. Deliberately NOT
|
|
11
|
+
* kernel/entries/statusStateMachine.ts's foldLegacyTrustState — its deprecated→archived leg
|
|
12
|
+
* would ALSO rewrite display for those words, folding two genuinely distinct stored values
|
|
13
|
+
* into one shown word (a duplicate-name trap this column must not create).
|
|
14
|
+
*/
|
|
15
|
+
function displayStatus(status) {
|
|
16
|
+
if (!status)
|
|
17
|
+
return '';
|
|
18
|
+
return status === 'active' ? 'accepted' : status;
|
|
19
|
+
}
|
|
6
20
|
export function formatSearchResults(results) {
|
|
7
21
|
if (results.length === 0) {
|
|
8
22
|
return 'No results found.';
|
|
@@ -13,7 +27,9 @@ export function formatSearchResults(results) {
|
|
|
13
27
|
for (const r of results) {
|
|
14
28
|
const id = r.entryId ?? r.name;
|
|
15
29
|
const coll = r.collectionSlug ?? '—';
|
|
16
|
-
|
|
30
|
+
const status = displayStatus(r.status);
|
|
31
|
+
const statusSuffix = status ? ` (${s(status)})` : '';
|
|
32
|
+
lines.push(` ${s(id)} [${s(coll)}] ${s(r.name)}${statusSuffix}`);
|
|
17
33
|
}
|
|
18
34
|
return lines.join('\n');
|
|
19
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/formatters/search.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AASpD,MAAM,UAAU,mBAAmB,CAAC,OAAuB;IACzD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,sFAAsF;IACtF,MAAM,CAAC,GAAG,iBAAiB,CAAC;IAC5B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,cAAc,IAAI,GAAG,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/formatters/search.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AASpD;;;;;;;;GAQG;AACH,SAAS,aAAa,CAAC,MAA0B;IAC/C,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAuB;IACzD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,sFAAsF;IACtF,MAAM,CAAC,GAAG,iBAAiB,CAAC;IAC5B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,cAAc,IAAI,GAAG,CAAC;QACrC,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,YAAY,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.test.d.ts","sourceRoot":"","sources":["../../src/formatters/search.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WP-644 S2 (TASK-74): formatSearchResults gains a status column. 'active' displays as the
|
|
3
|
+
* canonical 'accepted' word (DEC-1575 — the two are the same trust level); every other word
|
|
4
|
+
* (including 'accepted' itself, and any non-vocabulary word a caller passes) displays as
|
|
5
|
+
* stored. A missing status renders nothing, never the literal string "undefined".
|
|
6
|
+
*/
|
|
7
|
+
import { describe, expect, it } from 'vitest';
|
|
8
|
+
import { formatSearchResults } from './search.js';
|
|
9
|
+
describe('formatSearchResults — status column trust-word display (WP-644 S2)', () => {
|
|
10
|
+
it("a legacy 'active' row displays as 'accepted'", () => {
|
|
11
|
+
const output = formatSearchResults([
|
|
12
|
+
{ entryId: 'WP-1', name: 'Legacy row', collectionSlug: 'work-packages', status: 'active' },
|
|
13
|
+
]);
|
|
14
|
+
expect(output).toContain('accepted');
|
|
15
|
+
expect(output).not.toContain('(active)');
|
|
16
|
+
});
|
|
17
|
+
it("a canonical 'accepted' row displays as 'accepted' (unchanged)", () => {
|
|
18
|
+
const output = formatSearchResults([
|
|
19
|
+
{ entryId: 'WP-2', name: 'Canonical row', collectionSlug: 'work-packages', status: 'accepted' },
|
|
20
|
+
]);
|
|
21
|
+
expect(output).toContain('accepted');
|
|
22
|
+
});
|
|
23
|
+
it("a non-vocabulary status word ('published') displays as stored, not remapped", () => {
|
|
24
|
+
const output = formatSearchResults([
|
|
25
|
+
{ entryId: 'DEC-1', name: 'Unrelated word', collectionSlug: 'decisions', status: 'published' },
|
|
26
|
+
]);
|
|
27
|
+
expect(output).toContain('published');
|
|
28
|
+
});
|
|
29
|
+
it('a missing status renders nothing — never the literal "undefined"', () => {
|
|
30
|
+
const output = formatSearchResults([
|
|
31
|
+
{ entryId: 'WP-3', name: 'No status', collectionSlug: 'work-packages' },
|
|
32
|
+
]);
|
|
33
|
+
expect(output).not.toContain('undefined');
|
|
34
|
+
});
|
|
35
|
+
it("a 'draft'/'archived'/'deprecated' row displays as stored, not folded into another word", () => {
|
|
36
|
+
const output = formatSearchResults([
|
|
37
|
+
{ entryId: 'WP-4', name: 'Draft row', collectionSlug: 'work-packages', status: 'draft' },
|
|
38
|
+
{ entryId: 'WP-5', name: 'Deprecated row', collectionSlug: 'work-packages', status: 'deprecated' },
|
|
39
|
+
{ entryId: 'WP-6', name: 'Archived row', collectionSlug: 'work-packages', status: 'archived' },
|
|
40
|
+
]);
|
|
41
|
+
expect(output).toContain('draft');
|
|
42
|
+
expect(output).toContain('deprecated');
|
|
43
|
+
expect(output).toContain('archived');
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=search.test.js.map
|