@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,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WP-1 — Loud workspace identity on every Chain write. WP-714 S3 extended this to every
|
|
3
|
+
* Chain READ too (see `emitEffectiveTenantNotice`'s doc comment below for the read-path wiring).
|
|
4
|
+
*
|
|
5
|
+
* Running `pb` from a directory with no repo pin (e.g. `~/`) silently resolves the
|
|
6
|
+
* GLOBAL profile and writes to whichever Chain that points at — proven live: captures
|
|
7
|
+
* meant for one workspace landed on another. This module makes every Chain read or write
|
|
8
|
+
* NAME its target workspace on stderr, and qualifies the line LOUDLY when the binding is an
|
|
9
|
+
* unpinned fallback (`global`/`default` — no repo pin) so a wrong-Chain call is never
|
|
10
|
+
* silent. An explicit binding (`local`/`env`) gets a plain, non-alarming line.
|
|
11
|
+
*
|
|
12
|
+
* Label source — the PROFILE SLUG only, via `resolveReportedProfile()`: it returns
|
|
13
|
+
* `missing-pin` when the credential cascade has ALREADY refused (nothing to name — see the
|
|
14
|
+
* formatter below), and otherwise delegates to `resolveEffectiveProfile()`, whose contract
|
|
15
|
+
* the rest of this paragraph describes.
|
|
16
|
+
* Deliberately NOT a workspace-name probe: `resolveEffectiveProfile()` reports the
|
|
17
|
+
* *configured* pin even when it dangles (TEN-2163), while a probe resolves what
|
|
18
|
+
* `resolveConfig()` actually binds. On a dangling local pin the two DISAGREE — the
|
|
19
|
+
* profile says `source='local'` (a plain, reassuring line) while the probe returns the
|
|
20
|
+
* GLOBAL workspace the write really drifts to. That would print a non-alarming line over
|
|
21
|
+
* the exact silent-drift this notice exists to expose. One resolution path means the
|
|
22
|
+
* label and its qualifier can never contradict — and there is no per-write network
|
|
23
|
+
* round-trip in front of the write.
|
|
24
|
+
*
|
|
25
|
+
* Output contract — follows capture.ts's grounding banner (the JSON-safety pattern):
|
|
26
|
+
* - The notice is written to STDERR, never stdout, so strict-JSON stdout is byte-for-byte
|
|
27
|
+
* unchanged in every mode.
|
|
28
|
+
* - There is NO output-mode gate at all (WP-721). Every mode — `--json`, `--quiet`, plain TTY —
|
|
29
|
+
* gets the one-line-per-process identity notice. `--json` used to suppress the plain line for
|
|
30
|
+
* an explicit binding, which left an agent in a correctly pinned repo with a ZERO-BYTE stderr
|
|
31
|
+
* and no tenant signal whatsoever (see `emitEffectiveTenantNotice` below). TEN-3238 had
|
|
32
|
+
* already exempted the unpinned-fallback WARNING from that gate; WP-721 removed the gate.
|
|
33
|
+
*
|
|
34
|
+
* NOT compared here: the repo-local pin against the globally active `pb` profile (DEC-1632,
|
|
35
|
+
* TEN-3398/WP-720 — reversing part of WP-714 S3/PR #823). An earlier version of this module
|
|
36
|
+
* warned on that divergence on every read and write. But the pin exists precisely to OVERRIDE
|
|
37
|
+
* global, and `pb profile use` reconciles the two by default (`--local`/`--global` are the
|
|
38
|
+
* opt-in ways to diverge them) — so a divergence is only ever a deliberate act, never drift.
|
|
39
|
+
* Warning on it forever trained operators to ignore the warning: one global profile and ten
|
|
40
|
+
* pinned workspaces means nine permanent warnings on entirely correct setups. That comparison
|
|
41
|
+
* belongs at the POINT OF ACTION instead — `pb profile use --global <name>` says so once, right
|
|
42
|
+
* when an operator creates the divergence (see `commands/profile.ts`'s `pinnedElsewhere` note) —
|
|
43
|
+
* never ambiently on every read or write after the fact. The three comparisons that DO still
|
|
44
|
+
* belong here share one shape pin-vs-global didn't: *the effective tenant is not what your
|
|
45
|
+
* binding SAYS* — no explicit binding at all (the unpinned-fallback warning below), a credential
|
|
46
|
+
* silently overriding the binding (`env-key`/`local-key`/`cwd-key`, in the loud set below), or
|
|
47
|
+
* the binding moving mid-session (`sessionBinding.ts`'s refusal). Pin-vs-global was a different
|
|
48
|
+
* comparison that got mistaken for one of these.
|
|
49
|
+
*
|
|
50
|
+
* SSOT: one pure formatter + one thin emitter — called explicitly from the 7 write-command
|
|
51
|
+
* files (8 call sites) and once per process from the shared kernel wrapper (`client.ts`'s
|
|
52
|
+
* `kernelCall`/`kernelCallEnvelope`/`kernelCallWithSession` — TEN-3398/WP-711 follow-up wired
|
|
53
|
+
* the write path in too, see `emitEffectiveTenantNotice`'s doc comment below) — no per-command
|
|
54
|
+
* copy-paste.
|
|
55
|
+
*
|
|
56
|
+
* `pb admin` is a SEPARATE credential cascade (`adminConfig.ts`'s `resolveAdminConfig`) that
|
|
57
|
+
* deliberately excludes committed `config.json` siteUrl + CWD env files (TEN-1334) — it can
|
|
58
|
+
* resolve a different tenant than the cascade above, so it gets its own formatter-reusing
|
|
59
|
+
* emitter (`emitAdminTenantNotice`/`describeAdminTenantForRefusal` below) rather than sharing
|
|
60
|
+
* `emitEffectiveTenantNotice`'s guard or resolution path.
|
|
61
|
+
*/
|
|
62
|
+
import { type ReportedProfileSource } from './reportedProfile.js';
|
|
63
|
+
import type { AdminConfigSource } from './adminConfig.js';
|
|
64
|
+
import { assertSessionStillBound } from './sessionBinding.js';
|
|
65
|
+
/** Inputs to the pure notice formatter. */
|
|
66
|
+
export interface EffectiveTenantNoticeInput {
|
|
67
|
+
/** Effective profile name (the configured pin / identity), or null when unconfigured. */
|
|
68
|
+
profile: string | null;
|
|
69
|
+
/** Where that profile came from — see resolveReportedProfile(). */
|
|
70
|
+
source: ReportedProfileSource;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Build the one-line target-workspace notice — or null when there is nothing to say.
|
|
74
|
+
*
|
|
75
|
+
* - `none` → null (not configured: nothing to name, stay silent).
|
|
76
|
+
* - `missing-pin` → null (declared project, no pin: the CLI REFUSES this write, so
|
|
77
|
+
* there is no target workspace to name — and never `→ unknown`).
|
|
78
|
+
* - `cwd-key` → LOUD, unnamed (a dotenv file here picked the Chain — same shape as
|
|
79
|
+
* `env-key`, different file).
|
|
80
|
+
* - `env-key` → LOUD, unnamed (an exported PRODUCTBRAIN_API_KEY picked the Chain;
|
|
81
|
+
* no profile describes it, so the write goes somewhere this process
|
|
82
|
+
* cannot name from config — TEN-3240).
|
|
83
|
+
* - `preview` → named + disposable (a deliberate `npm run pb:preview` binding; the
|
|
84
|
+
* PREVIEW banner already shouts, so this does not shout twice).
|
|
85
|
+
* - `global` / `default` → qualified + hint (no repo pin → an unpinned fallback binding).
|
|
86
|
+
* - `local` / `env` → plain (an explicit, intentional binding).
|
|
87
|
+
*
|
|
88
|
+
* Pure: no IO. The display label is the profile slug — a single resolution path, so the
|
|
89
|
+
* label and the qualifier can never contradict each other. DEC-1632/TEN-3398: no longer
|
|
90
|
+
* compares the pin against the globally active profile — see this module's header comment.
|
|
91
|
+
*/
|
|
92
|
+
export declare function formatEffectiveTenantNotice({ profile, source }: EffectiveTenantNoticeInput): string | null;
|
|
93
|
+
/**
|
|
94
|
+
* The ONE place a `(profile, source)` pair maps to a human-readable label — no "→" prefix, so
|
|
95
|
+
* it can be embedded in prose (the tenant notice's base line, and WP-715's session-binding
|
|
96
|
+
* refusal message) rather than only ever printed as a standalone line. `formatEffectiveTenantNotice`
|
|
97
|
+
* above is the notice-line caller; `describeCurrentTenant` further down is the prose caller.
|
|
98
|
+
*/
|
|
99
|
+
export declare function describeReportedTenant(profile: string | null, source: ReportedProfileSource): string | null;
|
|
100
|
+
/**
|
|
101
|
+
* Full prose description of the tenant CURRENTLY IN PLAY, for embedding in a message whose
|
|
102
|
+
* whole point is naming it — e.g. the session-binding refusal at `sessionBinding.ts` (WP-715).
|
|
103
|
+
* Unlike `formatEffectiveTenantNotice`, this never drops a shadowed repo pin: it states it explicitly, so
|
|
104
|
+
* a refusal reading "expected X, found Y" can never render the SAME tenant on both sides (the
|
|
105
|
+
* bug this closes — `resolveEffectiveProfile().profile` is blind to a credential override, so it
|
|
106
|
+
* always named the pin even while a foreign key was the one actually in play). Always returns a
|
|
107
|
+
* string — never null/undefined — so a caller building a "found ..." sentence never has to
|
|
108
|
+
* supply its own fallback.
|
|
109
|
+
*
|
|
110
|
+
* Deliberately UNQUOTED, including the shadowed pin: `sessionBinding.ts`'s
|
|
111
|
+
* `found "${found}"` template is the one place that wraps this whole value in quotes (the same
|
|
112
|
+
* template quotes `expected` too), so quoting the pin here as well double-quoted its closing
|
|
113
|
+
* mark (`...pin "product-brain""`) — cosmetic, but it reads like a typo in the exact message an
|
|
114
|
+
* agent surfaces to a human. This function owns zero quoting; the template owns all of it.
|
|
115
|
+
*/
|
|
116
|
+
export declare function describeCurrentTenant(profile: string | null, source: ReportedProfileSource): string;
|
|
117
|
+
/**
|
|
118
|
+
* Live-resolving wrapper for `client.ts`'s `describeCurrent` thunk (WP-715): re-runs
|
|
119
|
+
* `resolveReportedProfile()` — never `resolveEffectiveProfile()`, which is blind to a
|
|
120
|
+
* credential override — so a session-binding refusal always names the tenant a call would
|
|
121
|
+
* actually land in. Kept here, not client.ts, so that call site stays a one-liner.
|
|
122
|
+
*/
|
|
123
|
+
export declare function describeCurrentTenantForRefusal(): string;
|
|
124
|
+
/** Test-only: reset the once-per-process guard between cases (mirrors resetReportedProfileSnapshot). */
|
|
125
|
+
export declare function resetEffectiveTenantNoticeForTests(): void;
|
|
126
|
+
/**
|
|
127
|
+
* Resolve identity and write the target notice to STDERR — for every Chain read OR write, in
|
|
128
|
+
* EVERY output mode. WP-714 S3: originally called only from the 8 explicit write call sites;
|
|
129
|
+
* then ALSO called once per process from `client.ts`'s `kernelCall`/`kernelCallEnvelope` (the
|
|
130
|
+
* plain, non-session read path), so every read command that reaches the kernel announces too.
|
|
131
|
+
*
|
|
132
|
+
* ALSO wired into `kernelCallWithSession` (the write path) directly (TEN-3398 / WP-711
|
|
133
|
+
* follow-up). This comment used to claim that wiring was unnecessary because "every write
|
|
134
|
+
* command already calls this explicitly" — that premise was false: a census of every command
|
|
135
|
+
* module reaching `kernelCallWithSession` found 11 write commands (`accept-policy.ts`,
|
|
136
|
+
* `audit.ts`, `conflicts.ts`, `direction.ts`, `feedback.ts`, `handshake.ts`, `method.ts`,
|
|
137
|
+
* `questions.ts`, `rework.ts`, `shape.ts`, `verify.ts`) that never called this at all — a
|
|
138
|
+
* silent write with no target-workspace line, `chain.verifyEntry` and `rework.report` among
|
|
139
|
+
* them. A handful of write commands (`capture`/`promote`/`relate`/`restore`/`session`/
|
|
140
|
+
* `update`, plus the shared `organisationWrite.ts`/`runOrganisationWrite` helper used by
|
|
141
|
+
* `organisation.ts`/`organisationHierarchy.ts`) still call it explicitly, earlier in their own
|
|
142
|
+
* flow than any call `kernelCallWithSession` makes (e.g. `update`'s post-write
|
|
143
|
+
* `chain.getEntry` refresh) — the once-per-process guard makes `kernelCallWithSession`'s own
|
|
144
|
+
* call a no-op for those, so their output is unchanged bit-for-bit.
|
|
145
|
+
*
|
|
146
|
+
* Takes NO output-mode argument (WP-721). It used to take a `json` boolean that suppressed the
|
|
147
|
+
* plain line for an explicit binding; that parameter existed only to feed the gate, so it went
|
|
148
|
+
* with the gate rather than lingering as an ignored argument inviting the gate's return. The
|
|
149
|
+
* full reasoning is at the (now unconditional) emit inside the body — in short: `--json` is how
|
|
150
|
+
* agents invoke pb, agents are the bulk of both readers and writers, and a one-line-per-process
|
|
151
|
+
* stderr receipt naming the target Chain is the signal, not the noise. TEN-3238 had already made
|
|
152
|
+
* the unpinned-fallback WARNING survive `--json` for the same reason; WP-721 finished the job for
|
|
153
|
+
* the identity line itself. Safe in every mode because the notice goes to STDERR, so strict JSON
|
|
154
|
+
* on stdout stays byte-for-byte unchanged (and the CLI already writes unconditional stderr
|
|
155
|
+
* warnings elsewhere, e.g. the preview-scrub misroute in config.ts).
|
|
156
|
+
*
|
|
157
|
+
* DEC-1632/TEN-3398: does NOT compare the repo-local pin against the globally active profile —
|
|
158
|
+
* removed entirely (see this module's header comment). A prior version attached a "differs
|
|
159
|
+
* from the globally active Chain profile" line here that survived `--json` (WP-714 S3, PR
|
|
160
|
+
* #823); that line is gone, not just re-gated, because the pin existing to override global was
|
|
161
|
+
* never a warning-worthy condition in the first place.
|
|
162
|
+
*
|
|
163
|
+
* Never throws and does no network IO: a wrong/unreadable config degrades to silence, and
|
|
164
|
+
* the label comes from `resolveReportedProfile()` — only fast local config reads (no probe)
|
|
165
|
+
* in front of the call. It is safe to call immediately before any Chain read or write.
|
|
166
|
+
*/
|
|
167
|
+
export declare function emitEffectiveTenantNotice(): Promise<void>;
|
|
168
|
+
/**
|
|
169
|
+
* `pb admin`'s own identity, as `resolveAdminConfig()` actually resolved it — for
|
|
170
|
+
* `emitAdminTenantNotice`/`describeAdminTenantForRefusal` below (TEN-3398 / WP-711 follow-up).
|
|
171
|
+
*/
|
|
172
|
+
export interface AdminTenantIdentity {
|
|
173
|
+
profileName: string | null;
|
|
174
|
+
source: AdminConfigSource;
|
|
175
|
+
}
|
|
176
|
+
/** Test-only: reset admin's once-per-identity guard between cases. */
|
|
177
|
+
export declare function resetAdminTenantNoticeForTests(): void;
|
|
178
|
+
/**
|
|
179
|
+
* Resolve identity and write `pb admin`'s target notice to STDERR — once per DISTINCT identity
|
|
180
|
+
* per process (TEN-3398 / WP-711 follow-up: `adminCall` previously carried no notice at all,
|
|
181
|
+
* the one gap left after WP-712/WP-714 S3 covered every other kernel path).
|
|
182
|
+
*
|
|
183
|
+
* Unlike `emitEffectiveTenantNotice`, this NEVER suppresses under `--json` and has no
|
|
184
|
+
* "unpinned fallback" vs "explicit binding" distinction: every `pb admin` command can be a
|
|
185
|
+
* destructive bulk operation (`manage:delete-workspace`, `seed:backfill-starter`), so the
|
|
186
|
+
* identity line is never noise to cut, in any mode.
|
|
187
|
+
*/
|
|
188
|
+
export declare function emitAdminTenantNotice(admin: AdminTenantIdentity): void;
|
|
189
|
+
/**
|
|
190
|
+
* Prose description of `pb admin`'s CURRENT tenant, for embedding in the
|
|
191
|
+
* `assertSessionStillBound` refusal message — mirrors `describeCurrentTenantForRefusal`'s role
|
|
192
|
+
* on the non-admin path, but resolved off `resolveAdminConfig()`'s own identity rather than
|
|
193
|
+
* `resolveReportedProfile()`, for the same reason `adminSourceToReportedSource` exists.
|
|
194
|
+
*/
|
|
195
|
+
export declare function describeAdminTenantForRefusal(admin: AdminTenantIdentity): string;
|
|
196
|
+
/**
|
|
197
|
+
* Announce AND guard one `pb admin` call in a single call (TEN-3398 / WP-711 follow-up) — kept
|
|
198
|
+
* here, not `client.ts`'s `adminCall` (STD-2/DEC-1504 module-health budget), so `adminCall`
|
|
199
|
+
* stays a one-liner and this module owns the whole admin-identity story end to end.
|
|
200
|
+
*/
|
|
201
|
+
export declare function guardAdminCall(admin: AdminTenantIdentity, session: Parameters<typeof assertSessionStillBound>[0], fingerprint: string): void;
|
|
202
|
+
//# sourceMappingURL=workspaceNotice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspaceNotice.d.ts","sourceRoot":"","sources":["../../src/lib/workspaceNotice.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAEH,OAAO,EAA0B,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE1F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,2CAA2C;AAC3C,MAAM,WAAW,0BAA0B;IACzC,yFAAyF;IACzF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,mEAAmE;IACnE,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,0BAA0B,GAAG,MAAM,GAAG,IAAI,CAG1G;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,qBAAqB,GAAG,MAAM,GAAG,IAAI,CAuB3G;AAmBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAInG;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,IAAI,MAAM,CAGxD;AAYD,wGAAwG;AACxG,wBAAgB,kCAAkC,IAAI,IAAI,CAEzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAuC/D;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAwCD,sEAAsE;AACtE,wBAAgB,8BAA8B,IAAI,IAAI,CAErD;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAStE;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAEhF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,mBAAmB,EAC1B,OAAO,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC,CAAC,CAAC,EACtD,WAAW,EAAE,MAAM,GAClB,IAAI,CAGN"}
|
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WP-1 — Loud workspace identity on every Chain write. WP-714 S3 extended this to every
|
|
3
|
+
* Chain READ too (see `emitEffectiveTenantNotice`'s doc comment below for the read-path wiring).
|
|
4
|
+
*
|
|
5
|
+
* Running `pb` from a directory with no repo pin (e.g. `~/`) silently resolves the
|
|
6
|
+
* GLOBAL profile and writes to whichever Chain that points at — proven live: captures
|
|
7
|
+
* meant for one workspace landed on another. This module makes every Chain read or write
|
|
8
|
+
* NAME its target workspace on stderr, and qualifies the line LOUDLY when the binding is an
|
|
9
|
+
* unpinned fallback (`global`/`default` — no repo pin) so a wrong-Chain call is never
|
|
10
|
+
* silent. An explicit binding (`local`/`env`) gets a plain, non-alarming line.
|
|
11
|
+
*
|
|
12
|
+
* Label source — the PROFILE SLUG only, via `resolveReportedProfile()`: it returns
|
|
13
|
+
* `missing-pin` when the credential cascade has ALREADY refused (nothing to name — see the
|
|
14
|
+
* formatter below), and otherwise delegates to `resolveEffectiveProfile()`, whose contract
|
|
15
|
+
* the rest of this paragraph describes.
|
|
16
|
+
* Deliberately NOT a workspace-name probe: `resolveEffectiveProfile()` reports the
|
|
17
|
+
* *configured* pin even when it dangles (TEN-2163), while a probe resolves what
|
|
18
|
+
* `resolveConfig()` actually binds. On a dangling local pin the two DISAGREE — the
|
|
19
|
+
* profile says `source='local'` (a plain, reassuring line) while the probe returns the
|
|
20
|
+
* GLOBAL workspace the write really drifts to. That would print a non-alarming line over
|
|
21
|
+
* the exact silent-drift this notice exists to expose. One resolution path means the
|
|
22
|
+
* label and its qualifier can never contradict — and there is no per-write network
|
|
23
|
+
* round-trip in front of the write.
|
|
24
|
+
*
|
|
25
|
+
* Output contract — follows capture.ts's grounding banner (the JSON-safety pattern):
|
|
26
|
+
* - The notice is written to STDERR, never stdout, so strict-JSON stdout is byte-for-byte
|
|
27
|
+
* unchanged in every mode.
|
|
28
|
+
* - There is NO output-mode gate at all (WP-721). Every mode — `--json`, `--quiet`, plain TTY —
|
|
29
|
+
* gets the one-line-per-process identity notice. `--json` used to suppress the plain line for
|
|
30
|
+
* an explicit binding, which left an agent in a correctly pinned repo with a ZERO-BYTE stderr
|
|
31
|
+
* and no tenant signal whatsoever (see `emitEffectiveTenantNotice` below). TEN-3238 had
|
|
32
|
+
* already exempted the unpinned-fallback WARNING from that gate; WP-721 removed the gate.
|
|
33
|
+
*
|
|
34
|
+
* NOT compared here: the repo-local pin against the globally active `pb` profile (DEC-1632,
|
|
35
|
+
* TEN-3398/WP-720 — reversing part of WP-714 S3/PR #823). An earlier version of this module
|
|
36
|
+
* warned on that divergence on every read and write. But the pin exists precisely to OVERRIDE
|
|
37
|
+
* global, and `pb profile use` reconciles the two by default (`--local`/`--global` are the
|
|
38
|
+
* opt-in ways to diverge them) — so a divergence is only ever a deliberate act, never drift.
|
|
39
|
+
* Warning on it forever trained operators to ignore the warning: one global profile and ten
|
|
40
|
+
* pinned workspaces means nine permanent warnings on entirely correct setups. That comparison
|
|
41
|
+
* belongs at the POINT OF ACTION instead — `pb profile use --global <name>` says so once, right
|
|
42
|
+
* when an operator creates the divergence (see `commands/profile.ts`'s `pinnedElsewhere` note) —
|
|
43
|
+
* never ambiently on every read or write after the fact. The three comparisons that DO still
|
|
44
|
+
* belong here share one shape pin-vs-global didn't: *the effective tenant is not what your
|
|
45
|
+
* binding SAYS* — no explicit binding at all (the unpinned-fallback warning below), a credential
|
|
46
|
+
* silently overriding the binding (`env-key`/`local-key`/`cwd-key`, in the loud set below), or
|
|
47
|
+
* the binding moving mid-session (`sessionBinding.ts`'s refusal). Pin-vs-global was a different
|
|
48
|
+
* comparison that got mistaken for one of these.
|
|
49
|
+
*
|
|
50
|
+
* SSOT: one pure formatter + one thin emitter — called explicitly from the 7 write-command
|
|
51
|
+
* files (8 call sites) and once per process from the shared kernel wrapper (`client.ts`'s
|
|
52
|
+
* `kernelCall`/`kernelCallEnvelope`/`kernelCallWithSession` — TEN-3398/WP-711 follow-up wired
|
|
53
|
+
* the write path in too, see `emitEffectiveTenantNotice`'s doc comment below) — no per-command
|
|
54
|
+
* copy-paste.
|
|
55
|
+
*
|
|
56
|
+
* `pb admin` is a SEPARATE credential cascade (`adminConfig.ts`'s `resolveAdminConfig`) that
|
|
57
|
+
* deliberately excludes committed `config.json` siteUrl + CWD env files (TEN-1334) — it can
|
|
58
|
+
* resolve a different tenant than the cascade above, so it gets its own formatter-reusing
|
|
59
|
+
* emitter (`emitAdminTenantNotice`/`describeAdminTenantForRefusal` below) rather than sharing
|
|
60
|
+
* `emitEffectiveTenantNotice`'s guard or resolution path.
|
|
61
|
+
*/
|
|
62
|
+
import { resolveReportedProfile } from './reportedProfile.js';
|
|
63
|
+
import { readLocalProjectConfig } from './projectConfig.js';
|
|
64
|
+
import { assertSessionStillBound } from './sessionBinding.js';
|
|
65
|
+
/**
|
|
66
|
+
* Build the one-line target-workspace notice — or null when there is nothing to say.
|
|
67
|
+
*
|
|
68
|
+
* - `none` → null (not configured: nothing to name, stay silent).
|
|
69
|
+
* - `missing-pin` → null (declared project, no pin: the CLI REFUSES this write, so
|
|
70
|
+
* there is no target workspace to name — and never `→ unknown`).
|
|
71
|
+
* - `cwd-key` → LOUD, unnamed (a dotenv file here picked the Chain — same shape as
|
|
72
|
+
* `env-key`, different file).
|
|
73
|
+
* - `env-key` → LOUD, unnamed (an exported PRODUCTBRAIN_API_KEY picked the Chain;
|
|
74
|
+
* no profile describes it, so the write goes somewhere this process
|
|
75
|
+
* cannot name from config — TEN-3240).
|
|
76
|
+
* - `preview` → named + disposable (a deliberate `npm run pb:preview` binding; the
|
|
77
|
+
* PREVIEW banner already shouts, so this does not shout twice).
|
|
78
|
+
* - `global` / `default` → qualified + hint (no repo pin → an unpinned fallback binding).
|
|
79
|
+
* - `local` / `env` → plain (an explicit, intentional binding).
|
|
80
|
+
*
|
|
81
|
+
* Pure: no IO. The display label is the profile slug — a single resolution path, so the
|
|
82
|
+
* label and the qualifier can never contradict each other. DEC-1632/TEN-3398: no longer
|
|
83
|
+
* compares the pin against the globally active profile — see this module's header comment.
|
|
84
|
+
*/
|
|
85
|
+
export function formatEffectiveTenantNotice({ profile, source }) {
|
|
86
|
+
const label = describeReportedTenant(profile, source);
|
|
87
|
+
return label ? `→ ${label}` : null;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* The ONE place a `(profile, source)` pair maps to a human-readable label — no "→" prefix, so
|
|
91
|
+
* it can be embedded in prose (the tenant notice's base line, and WP-715's session-binding
|
|
92
|
+
* refusal message) rather than only ever printed as a standalone line. `formatEffectiveTenantNotice`
|
|
93
|
+
* above is the notice-line caller; `describeCurrentTenant` further down is the prose caller.
|
|
94
|
+
*/
|
|
95
|
+
export function describeReportedTenant(profile, source) {
|
|
96
|
+
if (source === 'none' || source === 'missing-pin')
|
|
97
|
+
return null;
|
|
98
|
+
// Deliberately NOT "unknown": that reads as "a workspace whose name we failed to look up".
|
|
99
|
+
// Here there is no name to look up — the credential itself chose the Chain, so the honest
|
|
100
|
+
// line names the credential and the repair (TEN-3240).
|
|
101
|
+
if (source === 'env-key') {
|
|
102
|
+
return 'unnamed workspace (PRODUCTBRAIN_API_KEY — the exported key picks the Chain, not a profile)';
|
|
103
|
+
}
|
|
104
|
+
if (source === 'cwd-key') {
|
|
105
|
+
return 'unnamed workspace (a dotenv file in this directory picks the Chain, not a profile)';
|
|
106
|
+
}
|
|
107
|
+
if (source === 'local-key') {
|
|
108
|
+
return 'unnamed workspace (config.local.json binds a credential directly, not a profile)';
|
|
109
|
+
}
|
|
110
|
+
const name = profile?.trim() || 'unknown';
|
|
111
|
+
// Deliberate and disposable: the operator ran `npm run pb:preview`, and index.ts already prints
|
|
112
|
+
// a loud PREVIEW banner on every command — so this names the workspace without a second alarm.
|
|
113
|
+
if (source === 'preview')
|
|
114
|
+
return `${name} (throwaway preview — \`npm run pb:real\` to go back)`;
|
|
115
|
+
if (source === 'global' || source === 'default') {
|
|
116
|
+
return `${name} (global default — run from your project dir to use its workspace)`;
|
|
117
|
+
}
|
|
118
|
+
// 'local' | 'env' — an explicit, intentional binding.
|
|
119
|
+
return name;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* The repo-local PIN a direct-credential binding overrides, when the repo declares one (WP-715).
|
|
123
|
+
* Meaningful only for the three sources where a `config.local.json` `profile` field can still be
|
|
124
|
+
* PRESENT while this process does not actually use it — a direct apiKey/env/dotenv binding
|
|
125
|
+
* outranks it (DEC-1607). Mirrors `whoami.ts`'s `shadowedPin` (previously computed ad hoc,
|
|
126
|
+
* env-key only, in that one command); generalized here to the whole outranking family so any
|
|
127
|
+
* caller naming the current tenant can state a shadowed pin rather than silently drop it.
|
|
128
|
+
*/
|
|
129
|
+
function resolveShadowedPin(source) {
|
|
130
|
+
if (source !== 'env-key' && source !== 'cwd-key' && source !== 'local-key')
|
|
131
|
+
return null;
|
|
132
|
+
try {
|
|
133
|
+
return readLocalProjectConfig()?.profile?.trim() || null;
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Full prose description of the tenant CURRENTLY IN PLAY, for embedding in a message whose
|
|
141
|
+
* whole point is naming it — e.g. the session-binding refusal at `sessionBinding.ts` (WP-715).
|
|
142
|
+
* Unlike `formatEffectiveTenantNotice`, this never drops a shadowed repo pin: it states it explicitly, so
|
|
143
|
+
* a refusal reading "expected X, found Y" can never render the SAME tenant on both sides (the
|
|
144
|
+
* bug this closes — `resolveEffectiveProfile().profile` is blind to a credential override, so it
|
|
145
|
+
* always named the pin even while a foreign key was the one actually in play). Always returns a
|
|
146
|
+
* string — never null/undefined — so a caller building a "found ..." sentence never has to
|
|
147
|
+
* supply its own fallback.
|
|
148
|
+
*
|
|
149
|
+
* Deliberately UNQUOTED, including the shadowed pin: `sessionBinding.ts`'s
|
|
150
|
+
* `found "${found}"` template is the one place that wraps this whole value in quotes (the same
|
|
151
|
+
* template quotes `expected` too), so quoting the pin here as well double-quoted its closing
|
|
152
|
+
* mark (`...pin "product-brain""`) — cosmetic, but it reads like a typo in the exact message an
|
|
153
|
+
* agent surfaces to a human. This function owns zero quoting; the template owns all of it.
|
|
154
|
+
*/
|
|
155
|
+
export function describeCurrentTenant(profile, source) {
|
|
156
|
+
const label = describeReportedTenant(profile, source) ?? 'a different, unrecorded workspace';
|
|
157
|
+
const shadowedPin = resolveShadowedPin(source);
|
|
158
|
+
return shadowedPin ? `${label}, shadowing pin ${shadowedPin}` : label;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Live-resolving wrapper for `client.ts`'s `describeCurrent` thunk (WP-715): re-runs
|
|
162
|
+
* `resolveReportedProfile()` — never `resolveEffectiveProfile()`, which is blind to a
|
|
163
|
+
* credential override — so a session-binding refusal always names the tenant a call would
|
|
164
|
+
* actually land in. Kept here, not client.ts, so that call site stays a one-liner.
|
|
165
|
+
*/
|
|
166
|
+
export function describeCurrentTenantForRefusal() {
|
|
167
|
+
const { profile, source } = resolveReportedProfile();
|
|
168
|
+
return describeCurrentTenant(profile, source);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Once-per-PROCESS guard (WP-714 S3). A `pb` invocation is one process, so this is really
|
|
172
|
+
* "once per command" — but a single command can reach this function many times (`pb orient`
|
|
173
|
+
* alone makes three separate `kernelCall`s). Set on the FIRST call regardless of outcome
|
|
174
|
+
* (silent 'none'/'missing-pin', json-suppressed, or an actual print): the resolved identity
|
|
175
|
+
* cannot change mid-process, so re-attempting on later calls would only ever repeat the same
|
|
176
|
+
* verdict — or, for a printed notice, repeat the same line.
|
|
177
|
+
*/
|
|
178
|
+
let hasAttemptedEffectiveTenantNotice = false;
|
|
179
|
+
/** Test-only: reset the once-per-process guard between cases (mirrors resetReportedProfileSnapshot). */
|
|
180
|
+
export function resetEffectiveTenantNoticeForTests() {
|
|
181
|
+
hasAttemptedEffectiveTenantNotice = false;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Resolve identity and write the target notice to STDERR — for every Chain read OR write, in
|
|
185
|
+
* EVERY output mode. WP-714 S3: originally called only from the 8 explicit write call sites;
|
|
186
|
+
* then ALSO called once per process from `client.ts`'s `kernelCall`/`kernelCallEnvelope` (the
|
|
187
|
+
* plain, non-session read path), so every read command that reaches the kernel announces too.
|
|
188
|
+
*
|
|
189
|
+
* ALSO wired into `kernelCallWithSession` (the write path) directly (TEN-3398 / WP-711
|
|
190
|
+
* follow-up). This comment used to claim that wiring was unnecessary because "every write
|
|
191
|
+
* command already calls this explicitly" — that premise was false: a census of every command
|
|
192
|
+
* module reaching `kernelCallWithSession` found 11 write commands (`accept-policy.ts`,
|
|
193
|
+
* `audit.ts`, `conflicts.ts`, `direction.ts`, `feedback.ts`, `handshake.ts`, `method.ts`,
|
|
194
|
+
* `questions.ts`, `rework.ts`, `shape.ts`, `verify.ts`) that never called this at all — a
|
|
195
|
+
* silent write with no target-workspace line, `chain.verifyEntry` and `rework.report` among
|
|
196
|
+
* them. A handful of write commands (`capture`/`promote`/`relate`/`restore`/`session`/
|
|
197
|
+
* `update`, plus the shared `organisationWrite.ts`/`runOrganisationWrite` helper used by
|
|
198
|
+
* `organisation.ts`/`organisationHierarchy.ts`) still call it explicitly, earlier in their own
|
|
199
|
+
* flow than any call `kernelCallWithSession` makes (e.g. `update`'s post-write
|
|
200
|
+
* `chain.getEntry` refresh) — the once-per-process guard makes `kernelCallWithSession`'s own
|
|
201
|
+
* call a no-op for those, so their output is unchanged bit-for-bit.
|
|
202
|
+
*
|
|
203
|
+
* Takes NO output-mode argument (WP-721). It used to take a `json` boolean that suppressed the
|
|
204
|
+
* plain line for an explicit binding; that parameter existed only to feed the gate, so it went
|
|
205
|
+
* with the gate rather than lingering as an ignored argument inviting the gate's return. The
|
|
206
|
+
* full reasoning is at the (now unconditional) emit inside the body — in short: `--json` is how
|
|
207
|
+
* agents invoke pb, agents are the bulk of both readers and writers, and a one-line-per-process
|
|
208
|
+
* stderr receipt naming the target Chain is the signal, not the noise. TEN-3238 had already made
|
|
209
|
+
* the unpinned-fallback WARNING survive `--json` for the same reason; WP-721 finished the job for
|
|
210
|
+
* the identity line itself. Safe in every mode because the notice goes to STDERR, so strict JSON
|
|
211
|
+
* on stdout stays byte-for-byte unchanged (and the CLI already writes unconditional stderr
|
|
212
|
+
* warnings elsewhere, e.g. the preview-scrub misroute in config.ts).
|
|
213
|
+
*
|
|
214
|
+
* DEC-1632/TEN-3398: does NOT compare the repo-local pin against the globally active profile —
|
|
215
|
+
* removed entirely (see this module's header comment). A prior version attached a "differs
|
|
216
|
+
* from the globally active Chain profile" line here that survived `--json` (WP-714 S3, PR
|
|
217
|
+
* #823); that line is gone, not just re-gated, because the pin existing to override global was
|
|
218
|
+
* never a warning-worthy condition in the first place.
|
|
219
|
+
*
|
|
220
|
+
* Never throws and does no network IO: a wrong/unreadable config degrades to silence, and
|
|
221
|
+
* the label comes from `resolveReportedProfile()` — only fast local config reads (no probe)
|
|
222
|
+
* in front of the call. It is safe to call immediately before any Chain read or write.
|
|
223
|
+
*/
|
|
224
|
+
export async function emitEffectiveTenantNotice() {
|
|
225
|
+
if (hasAttemptedEffectiveTenantNotice)
|
|
226
|
+
return;
|
|
227
|
+
hasAttemptedEffectiveTenantNotice = true;
|
|
228
|
+
let profile = null;
|
|
229
|
+
let source = 'none';
|
|
230
|
+
try {
|
|
231
|
+
({ profile, source } = resolveReportedProfile());
|
|
232
|
+
}
|
|
233
|
+
catch {
|
|
234
|
+
return; // unreadable/racing config — say nothing rather than crash a read or write.
|
|
235
|
+
}
|
|
236
|
+
if (source === 'none' || source === 'missing-pin')
|
|
237
|
+
return;
|
|
238
|
+
// WP-721: NO `json` gate. The identity line is emitted in every mode, for every source that
|
|
239
|
+
// has a tenant to name — an explicit `local`/`env` pin included. The loud QUALIFIER for the
|
|
240
|
+
// unpinned-fallback family still differs (`describeReportedTenant` owns it, unchanged); what
|
|
241
|
+
// no longer differs is whether an agent is told anything at all.
|
|
242
|
+
//
|
|
243
|
+
// The removed gate was justified as "the plain line carries no warning, so it is pure noise in
|
|
244
|
+
// agent logs". That reasoning does not survive the shape of the thing: this is ONE line per
|
|
245
|
+
// PROCESS (the `hasAttemptedEffectiveTenantNotice` guard above), on STDERR, naming the tenant a
|
|
246
|
+
// read or write is about to touch. For an agent that is not noise — it is the receipt for the
|
|
247
|
+
// exact safety property this module exists to provide, and WP-715 states the standard outright:
|
|
248
|
+
// "Agents are the primary consumers of the pb CLI and invoke it with --json. A guard that
|
|
249
|
+
// renders only in human TTY output is, for the bulk of real usage, not shipped."
|
|
250
|
+
//
|
|
251
|
+
// The gate went unnoticed because a SECOND line — the pin-vs-global disagreement NOTICE — used
|
|
252
|
+
// to survive `--json` and happened to carry the tenant name. DEC-1632 removed that comparison
|
|
253
|
+
// (correctly: a pin exists to override global, so a divergence is deliberate, and warning on it
|
|
254
|
+
// forever is fatigue), and with it the last thing an agent saw. Proven live on
|
|
255
|
+
// `@productbrain/cli@0.1.0-beta.5421`: `pb get WP-711 --json 2>err` left `err` at ZERO BYTES in
|
|
256
|
+
// a correctly pinned repo. DEC-1632's fatigue argument was about a WARNING that fires on
|
|
257
|
+
// correct setups, never about a single identity line — so restoring this line does NOT
|
|
258
|
+
// reintroduce that comparison, and must not: see this module's header comment.
|
|
259
|
+
//
|
|
260
|
+
// Safe in every mode for the same reason the unpinned-fallback warning already was (TEN-3238):
|
|
261
|
+
// it goes to STDERR, so strict JSON on stdout stays byte-for-byte unchanged.
|
|
262
|
+
const notice = formatEffectiveTenantNotice({ profile, source });
|
|
263
|
+
if (notice)
|
|
264
|
+
process.stderr.write(notice + '\n');
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Map `resolveAdminConfig()`'s `AdminConfigSource` onto the read/write notice's
|
|
268
|
+
* `ReportedProfileSource` vocabulary, so `pb admin` reuses the SAME formatter and label rules
|
|
269
|
+
* (`formatEffectiveTenantNotice`/`describeReportedTenant`) instead of a parallel copy. This is
|
|
270
|
+
* deliberately NOT a call to `resolveReportedProfile()` — that walks a DIFFERENT cascade
|
|
271
|
+
* (`config.ts`'s `resolveConfig`, which DOES read committed `config.json` siteUrl + CWD env
|
|
272
|
+
* files) and can disagree with what `resolveAdminConfig()` actually resolved, which would name
|
|
273
|
+
* a tenant this admin call is not actually about to use. `'legacy'` (the nameless
|
|
274
|
+
* `~/.config/productbrain/.env` fallback) has no direct analog in `ReportedProfileSource` — it
|
|
275
|
+
* maps to `'default'`, the closest existing "implicit, no deliberate per-repo pin" qualifier.
|
|
276
|
+
*/
|
|
277
|
+
function adminSourceToReportedSource(source) {
|
|
278
|
+
switch (source) {
|
|
279
|
+
case 'env': return 'env-key';
|
|
280
|
+
case 'local-profile': return 'local';
|
|
281
|
+
case 'global-profile': return 'global';
|
|
282
|
+
case 'legacy': return 'default';
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
/** Admin's own once-per-process guard — separate from `hasAttemptedEffectiveTenantNotice`
|
|
286
|
+
* above, because `resolveAdminConfig()`'s cascade is a different resolution than the one that
|
|
287
|
+
* guard's notice announces.
|
|
288
|
+
*
|
|
289
|
+
* Keyed by IDENTITY (`source:profileName`), not a single boolean (TEN-3398 follow-up,
|
|
290
|
+
* `admin/probe.ts`): `pb admin probe --env prod --env dev` resolves TWO genuinely different
|
|
291
|
+
* named-profile identities in one process, by design (the whole point is comparing them side
|
|
292
|
+
* by side) — a single shared flag would announce the first and silently swallow the second,
|
|
293
|
+
* hiding exactly which tenant the comparison's second half hit. A Set still gives every OTHER
|
|
294
|
+
* admin command (one identity resolved once via `resolveAdminConfig()`, called through
|
|
295
|
+
* `adminCall` any number of times) the same "announce once" behavior a boolean gave, since
|
|
296
|
+
* repeat calls carry the identical key. */
|
|
297
|
+
const announcedAdminTenantKeys = new Set();
|
|
298
|
+
function adminIdentityKey(admin) {
|
|
299
|
+
return `${admin.source}:${admin.profileName ?? ''}`;
|
|
300
|
+
}
|
|
301
|
+
/** Test-only: reset admin's once-per-identity guard between cases. */
|
|
302
|
+
export function resetAdminTenantNoticeForTests() {
|
|
303
|
+
announcedAdminTenantKeys.clear();
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Resolve identity and write `pb admin`'s target notice to STDERR — once per DISTINCT identity
|
|
307
|
+
* per process (TEN-3398 / WP-711 follow-up: `adminCall` previously carried no notice at all,
|
|
308
|
+
* the one gap left after WP-712/WP-714 S3 covered every other kernel path).
|
|
309
|
+
*
|
|
310
|
+
* Unlike `emitEffectiveTenantNotice`, this NEVER suppresses under `--json` and has no
|
|
311
|
+
* "unpinned fallback" vs "explicit binding" distinction: every `pb admin` command can be a
|
|
312
|
+
* destructive bulk operation (`manage:delete-workspace`, `seed:backfill-starter`), so the
|
|
313
|
+
* identity line is never noise to cut, in any mode.
|
|
314
|
+
*/
|
|
315
|
+
export function emitAdminTenantNotice(admin) {
|
|
316
|
+
const key = adminIdentityKey(admin);
|
|
317
|
+
if (announcedAdminTenantKeys.has(key))
|
|
318
|
+
return;
|
|
319
|
+
announcedAdminTenantKeys.add(key);
|
|
320
|
+
const notice = formatEffectiveTenantNotice({
|
|
321
|
+
profile: admin.profileName,
|
|
322
|
+
source: adminSourceToReportedSource(admin.source),
|
|
323
|
+
});
|
|
324
|
+
if (notice)
|
|
325
|
+
process.stderr.write(notice + '\n');
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Prose description of `pb admin`'s CURRENT tenant, for embedding in the
|
|
329
|
+
* `assertSessionStillBound` refusal message — mirrors `describeCurrentTenantForRefusal`'s role
|
|
330
|
+
* on the non-admin path, but resolved off `resolveAdminConfig()`'s own identity rather than
|
|
331
|
+
* `resolveReportedProfile()`, for the same reason `adminSourceToReportedSource` exists.
|
|
332
|
+
*/
|
|
333
|
+
export function describeAdminTenantForRefusal(admin) {
|
|
334
|
+
return describeCurrentTenant(admin.profileName, adminSourceToReportedSource(admin.source));
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Announce AND guard one `pb admin` call in a single call (TEN-3398 / WP-711 follow-up) — kept
|
|
338
|
+
* here, not `client.ts`'s `adminCall` (STD-2/DEC-1504 module-health budget), so `adminCall`
|
|
339
|
+
* stays a one-liner and this module owns the whole admin-identity story end to end.
|
|
340
|
+
*/
|
|
341
|
+
export function guardAdminCall(admin, session, fingerprint) {
|
|
342
|
+
emitAdminTenantNotice(admin);
|
|
343
|
+
assertSessionStillBound(session, fingerprint, () => describeAdminTenantForRefusal(admin));
|
|
344
|
+
}
|
|
345
|
+
//# sourceMappingURL=workspaceNotice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspaceNotice.js","sourceRoot":"","sources":["../../src/lib/workspaceNotice.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAEH,OAAO,EAAE,sBAAsB,EAA8B,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAU9D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,2BAA2B,CAAC,EAAE,OAAO,EAAE,MAAM,EAA8B;IACzF,MAAM,KAAK,GAAG,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACtD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAsB,EAAE,MAA6B;IAC1F,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,aAAa;QAAE,OAAO,IAAI,CAAC;IAC/D,2FAA2F;IAC3F,0FAA0F;IAC1F,uDAAuD;IACvD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,4FAA4F,CAAC;IACtG,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,oFAAoF,CAAC;IAC9F,CAAC;IACD,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAC3B,OAAO,kFAAkF,CAAC;IAC5F,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;IAC1C,gGAAgG;IAChG,+FAA+F;IAC/F,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,GAAG,IAAI,uDAAuD,CAAC;IAChG,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAChD,OAAO,GAAG,IAAI,oEAAoE,CAAC;IACrF,CAAC;IACD,sDAAsD;IACtD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,MAA6B;IACvD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IACxF,IAAI,CAAC;QACH,OAAO,sBAAsB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAsB,EAAE,MAA6B;IACzF,MAAM,KAAK,GAAG,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,mCAAmC,CAAC;IAC7F,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC/C,OAAO,WAAW,CAAC,CAAC,CAAC,GAAG,KAAK,mBAAmB,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AACxE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,+BAA+B;IAC7C,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,sBAAsB,EAAE,CAAC;IACrD,OAAO,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;GAOG;AACH,IAAI,iCAAiC,GAAG,KAAK,CAAC;AAE9C,wGAAwG;AACxG,MAAM,UAAU,kCAAkC;IAChD,iCAAiC,GAAG,KAAK,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB;IAC7C,IAAI,iCAAiC;QAAE,OAAO;IAC9C,iCAAiC,GAAG,IAAI,CAAC;IAEzC,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,IAAI,MAAM,GAA0B,MAAM,CAAC;IAC3C,IAAI,CAAC;QACH,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,sBAAsB,EAAE,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,4EAA4E;IACtF,CAAC;IACD,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,aAAa;QAAE,OAAO;IAE1D,4FAA4F;IAC5F,4FAA4F;IAC5F,6FAA6F;IAC7F,iEAAiE;IACjE,EAAE;IACF,+FAA+F;IAC/F,4FAA4F;IAC5F,gGAAgG;IAChG,8FAA8F;IAC9F,gGAAgG;IAChG,0FAA0F;IAC1F,iFAAiF;IACjF,EAAE;IACF,+FAA+F;IAC/F,8FAA8F;IAC9F,gGAAgG;IAChG,+EAA+E;IAC/E,gGAAgG;IAChG,yFAAyF;IACzF,uFAAuF;IACvF,+EAA+E;IAC/E,EAAE;IACF,+FAA+F;IAC/F,6EAA6E;IAC7E,MAAM,MAAM,GAAG,2BAA2B,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAChE,IAAI,MAAM;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAClD,CAAC;AAWD;;;;;;;;;;GAUG;AACH,SAAS,2BAA2B,CAAC,MAAyB;IAC5D,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,KAAK,CAAC,CAAC,OAAO,SAAS,CAAC;QAC7B,KAAK,eAAe,CAAC,CAAC,OAAO,OAAO,CAAC;QACrC,KAAK,gBAAgB,CAAC,CAAC,OAAO,QAAQ,CAAC;QACvC,KAAK,QAAQ,CAAC,CAAC,OAAO,SAAS,CAAC;IAClC,CAAC;AACH,CAAC;AAED;;;;;;;;;;;2CAW2C;AAC3C,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAAU,CAAC;AAEnD,SAAS,gBAAgB,CAAC,KAA0B;IAClD,OAAO,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;AACtD,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,8BAA8B;IAC5C,wBAAwB,CAAC,KAAK,EAAE,CAAC;AACnC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAA0B;IAC9D,MAAM,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO;IAC9C,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,2BAA2B,CAAC;QACzC,OAAO,EAAE,KAAK,CAAC,WAAW;QAC1B,MAAM,EAAE,2BAA2B,CAAC,KAAK,CAAC,MAAM,CAAC;KAClD,CAAC,CAAC;IACH,IAAI,MAAM;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAAC,KAA0B;IACtE,OAAO,qBAAqB,CAAC,KAAK,CAAC,WAAW,EAAE,2BAA2B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,KAA0B,EAC1B,OAAsD,EACtD,WAAmB;IAEnB,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC7B,uBAAuB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5F,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 5-minute TTL cache for workspace vocabulary context (WP-436 S2).
|
|
3
|
+
*
|
|
4
|
+
* Purpose (R2 mitigation): the CLI resolves vocabulary labels on every invocation.
|
|
5
|
+
* Without a cache, each `pb orient` / `pb get` / `pb capture` would call
|
|
6
|
+
* `chain.getVocabulary` — adding a Convex round-trip overhead and risking
|
|
7
|
+
* handshake-time staleness. A 5-min TTL short-circuits repeat calls within
|
|
8
|
+
* a typical session while staying fresh enough that label changes land quickly.
|
|
9
|
+
*
|
|
10
|
+
* PAT-230: the cache holds WorkspaceVocabCtx (pure data, no Convex imports here).
|
|
11
|
+
* DEC-1021: only Axis 2 (collectionLabels) lives here; Axis 1 (displayNames) is untouched.
|
|
12
|
+
*
|
|
13
|
+
* S4 note: when Cortex UI builds its `vocabularyStore`, it should mirror this
|
|
14
|
+
* contract — a keyed map by workspaceId with an expiresAt field (Cortex has
|
|
15
|
+
* direct access to workspaceId; the CLI uses apiKey as a 1:1 surrogate, since
|
|
16
|
+
* the HTTP gateway server-side injects workspaceId from authResult per
|
|
17
|
+
* convex/http.ts:675).
|
|
18
|
+
*/
|
|
19
|
+
import type { WorkspaceVocabCtx } from './canonicalRefs.js';
|
|
20
|
+
/**
|
|
21
|
+
* Get a cached WorkspaceVocabCtx by cacheKey, or null if expired/missing.
|
|
22
|
+
* Prints a staleness warning when the entry is older than STALE_WARN_MS.
|
|
23
|
+
*/
|
|
24
|
+
export declare function getCachedVocabCtx(cacheKey: string): WorkspaceVocabCtx | null;
|
|
25
|
+
/**
|
|
26
|
+
* Store a WorkspaceVocabCtx under cacheKey with a 5-min TTL.
|
|
27
|
+
*/
|
|
28
|
+
export declare function setCachedVocabCtx(cacheKey: string, ctx: WorkspaceVocabCtx): void;
|
|
29
|
+
/**
|
|
30
|
+
* Explicitly invalidate a cached vocab context by cacheKey.
|
|
31
|
+
* Call this when `updateCollectionLabels` mutation succeeds (e.g. after `pb handshake`).
|
|
32
|
+
*/
|
|
33
|
+
export declare function invalidateVocabCtx(cacheKey: string): void;
|
|
34
|
+
/**
|
|
35
|
+
* Clear all cached entries (useful for testing or `pb handshake --refresh`).
|
|
36
|
+
*/
|
|
37
|
+
export declare function clearVocabCache(): void;
|
|
38
|
+
/**
|
|
39
|
+
* Get the cached vocab context, or fetch it via the provided async fetcher on cache miss.
|
|
40
|
+
*
|
|
41
|
+
* Usage pattern at CLI command sites:
|
|
42
|
+
* ```ts
|
|
43
|
+
* const vocabCtx = await getOrFetchVocabCtx(config.apiKey, async () => {
|
|
44
|
+
* type VocabResult = { collectionLabels?: Record<string, unknown> };
|
|
45
|
+
* const vocab = await kernelCall<VocabResult>('chain.getVocabulary', {});
|
|
46
|
+
* return vocab?.collectionLabels
|
|
47
|
+
* ? { collectionLabels: vocab.collectionLabels as WorkspaceVocabCtx['collectionLabels'] }
|
|
48
|
+
* : null;
|
|
49
|
+
* });
|
|
50
|
+
* ```
|
|
51
|
+
*
|
|
52
|
+
* - `cacheKey`: use the API key as a surrogate for cacheKey (1:1 mapping at CLI layer).
|
|
53
|
+
* - `fetcher`: async function that resolves the vocab ctx; returns null on failure to signal
|
|
54
|
+
* "don't cache, fall back to resolver literal". Fetcher errors are swallowed — vocabulary
|
|
55
|
+
* labels are advisory (PAT-230 / fail-open principle).
|
|
56
|
+
*
|
|
57
|
+
* Returns WorkspaceVocabCtx on cache hit or successful fetch; undefined on error/null fetcher result.
|
|
58
|
+
*/
|
|
59
|
+
export declare function getOrFetchVocabCtx(cacheKey: string, fetcher: () => Promise<WorkspaceVocabCtx | null>): Promise<WorkspaceVocabCtx | undefined>;
|
|
60
|
+
//# sourceMappingURL=workspaceVocabCache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspaceVocabCache.d.ts","sourceRoot":"","sources":["../../src/lib/workspaceVocabCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAc5D;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAe5E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAEhF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEzD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAC/C,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAcxC"}
|