@productbrain/cli 0.1.0-beta.37 → 0.1.0-beta.3726
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 +14 -0
- package/dist/__tests__/adapters.test.js +54 -1
- package/dist/__tests__/adapters.test.js.map +1 -1
- 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 +625 -33
- package/dist/__tests__/capture.test.js.map +1 -1
- 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 +58 -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 +82 -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 +410 -10
- package/dist/__tests__/config.test.js.map +1 -1
- package/dist/__tests__/constants.test.js +53 -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__/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 +152 -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__/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__/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 +41 -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 +498 -12
- 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 +162 -10
- 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 +18 -18
- 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 +207 -0
- package/dist/__tests__/rate-limit-resilience.test.js.map +1 -0
- package/dist/__tests__/relate.test.js +14 -14
- package/dist/__tests__/relate.test.js.map +1 -1
- 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-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 +99 -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 +183 -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 +132 -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__/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__/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 +97 -0
- package/dist/__tests__/state.test.js.map +1 -0
- 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__/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 +97 -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 +338 -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.d.ts.map +1 -1
- package/dist/commands/accept.js +4 -4
- package/dist/commands/accept.js.map +1 -1
- package/dist/commands/admin/cockpit.d.ts +91 -0
- package/dist/commands/admin/cockpit.d.ts.map +1 -0
- package/dist/commands/admin/cockpit.js +617 -0
- package/dist/commands/admin/cockpit.js.map +1 -0
- package/dist/commands/admin/index.d.ts +70 -0
- package/dist/commands/admin/index.d.ts.map +1 -0
- package/dist/commands/admin/index.js +363 -0
- package/dist/commands/admin/index.js.map +1 -0
- 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 +68 -0
- package/dist/commands/admin/index.test.js.map +1 -0
- package/dist/commands/admin/inspect.d.ts +30 -0
- package/dist/commands/admin/inspect.d.ts.map +1 -0
- package/dist/commands/admin/inspect.js +555 -0
- package/dist/commands/admin/inspect.js.map +1 -0
- package/dist/commands/admin/inspect.test.d.ts +7 -0
- package/dist/commands/admin/inspect.test.d.ts.map +1 -0
- package/dist/commands/admin/inspect.test.js +90 -0
- package/dist/commands/admin/inspect.test.js.map +1 -0
- 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/run.d.ts +43 -0
- package/dist/commands/admin/run.d.ts.map +1 -0
- package/dist/commands/admin/run.js +68 -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 +146 -0
- package/dist/commands/admin/run.test.js.map +1 -0
- package/dist/commands/admin/seed.d.ts +75 -0
- package/dist/commands/admin/seed.d.ts.map +1 -0
- package/dist/commands/admin/seed.js +944 -0
- package/dist/commands/admin/seed.js.map +1 -0
- package/dist/commands/admin/seed.test.d.ts +11 -0
- package/dist/commands/admin/seed.test.d.ts.map +1 -0
- package/dist/commands/admin/seed.test.js +127 -0
- package/dist/commands/admin/seed.test.js.map +1 -0
- 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/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 +12 -0
- package/dist/commands/capture.d.ts.map +1 -1
- package/dist/commands/capture.js +266 -69
- 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 +104 -33
- package/dist/commands/connect-integration.test.js.map +1 -1
- 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 +32 -7
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +187 -106
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/connect.test.js +200 -2
- 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 +95 -19
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/doctor.test.js +165 -2
- package/dist/commands/doctor.test.js.map +1 -1
- 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 +2 -2
- 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 +243 -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 +1 -9
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +44 -19
- 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 +148 -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 +125 -2
- package/dist/commands/orient.d.ts.map +1 -1
- package/dist/commands/orient.js +222 -7
- package/dist/commands/orient.js.map +1 -1
- package/dist/commands/profile.d.ts +11 -1
- package/dist/commands/profile.d.ts.map +1 -1
- package/dist/commands/profile.js +114 -26
- 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 +239 -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/reject.d.ts.map +1 -1
- package/dist/commands/reject.js +4 -3
- package/dist/commands/reject.js.map +1 -1
- package/dist/commands/relate.d.ts.map +1 -1
- package/dist/commands/relate.js +26 -6
- 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 +482 -46
- 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 +174 -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/update.d.ts +8 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +55 -32
- 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 +50 -0
- package/dist/commands/welcome.js.map +1 -0
- package/dist/commands/whoami.d.ts +12 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +70 -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 +50 -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 +136 -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.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 +9 -0
- package/dist/formatters/capture.js.map +1 -1
- package/dist/formatters/coaching.d.ts +51 -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 +247 -8
- package/dist/formatters/orient.d.ts.map +1 -1
- package/dist/formatters/orient.js +296 -29
- 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/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/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/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 +115 -5
- package/dist/formatters/session.d.ts.map +1 -1
- package/dist/formatters/session.js +293 -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 +64 -0
- package/dist/formatters/spineCheck.d.ts.map +1 -0
- package/dist/formatters/spineCheck.js +92 -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/routeLatencyBudget.generated.d.ts +55 -0
- package/dist/generated/routeLatencyBudget.generated.d.ts.map +1 -0
- package/dist/generated/routeLatencyBudget.generated.js +348 -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 +64 -4
- 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 +6 -6
- 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 +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +504 -105
- package/dist/index.js.map +1 -1
- 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/canonicalRefs.d.ts +141 -0
- package/dist/lib/canonicalRefs.d.ts.map +1 -0
- package/dist/lib/canonicalRefs.js +150 -0
- package/dist/lib/canonicalRefs.js.map +1 -0
- package/dist/lib/client.d.ts +46 -14
- package/dist/lib/client.d.ts.map +1 -1
- package/dist/lib/client.js +218 -43
- package/dist/lib/client.js.map +1 -1
- package/dist/lib/collectionRegistry.d.ts +52 -0
- package/dist/lib/collectionRegistry.d.ts.map +1 -0
- package/dist/lib/collectionRegistry.js +118 -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 +149 -9
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +385 -53
- package/dist/lib/config.js.map +1 -1
- 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 +27 -2
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +47 -3
- 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/deployment.d.ts +23 -0
- package/dist/lib/deployment.d.ts.map +1 -0
- package/dist/lib/deployment.js +78 -0
- package/dist/lib/deployment.js.map +1 -0
- package/dist/lib/deployment.test.d.ts +5 -0
- package/dist/lib/deployment.test.d.ts.map +1 -0
- package/dist/lib/deployment.test.js +54 -0
- package/dist/lib/deployment.test.js.map +1 -0
- package/dist/lib/errors.d.ts +60 -0
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +60 -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/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/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 +53 -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 +258 -0
- package/dist/lib/productbrain-files.test.js.map +1 -0
- package/dist/lib/profiles.d.ts +3 -1
- package/dist/lib/profiles.d.ts.map +1 -1
- package/dist/lib/profiles.js +15 -7
- package/dist/lib/profiles.js.map +1 -1
- package/dist/lib/prompts.d.ts +27 -0
- package/dist/lib/prompts.d.ts.map +1 -1
- package/dist/lib/prompts.js +42 -0
- package/dist/lib/prompts.js.map +1 -1
- package/dist/lib/rate-limit.d.ts +37 -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/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 +85 -4
- package/dist/lib/session.d.ts.map +1 -1
- package/dist/lib/session.js +276 -13
- package/dist/lib/session.js.map +1 -1
- package/dist/lib/sessionNotices.d.ts +26 -0
- package/dist/lib/sessionNotices.d.ts.map +1 -0
- package/dist/lib/sessionNotices.js +31 -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 +51 -0
- package/dist/lib/state.d.ts.map +1 -0
- package/dist/lib/state.js +90 -0
- package/dist/lib/state.js.map +1 -0
- package/dist/lib/strip.d.ts.map +1 -1
- package/dist/lib/strip.js +7 -1
- package/dist/lib/strip.js.map +1 -1
- package/dist/lib/style.d.ts +31 -0
- package/dist/lib/style.d.ts.map +1 -1
- package/dist/lib/style.js +61 -0
- package/dist/lib/style.js.map +1 -1
- package/dist/lib/style.test.js +69 -1
- package/dist/lib/style.test.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 +59 -0
- package/dist/lib/workspaceNotice.d.ts.map +1 -0
- package/dist/lib/workspaceNotice.js +77 -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/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 +11 -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 -132
- 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,219 @@
|
|
|
1
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
2
|
+
const { getConfigOrGuide, kernelCall, kernelCallWithSession, readSession, runCliCommand } = vi.hoisted(() => ({
|
|
3
|
+
getConfigOrGuide: vi.fn(),
|
|
4
|
+
kernelCall: vi.fn(),
|
|
5
|
+
kernelCallWithSession: vi.fn(),
|
|
6
|
+
readSession: vi.fn(),
|
|
7
|
+
runCliCommand: vi.fn(async ({ fn }) => fn()),
|
|
8
|
+
}));
|
|
9
|
+
vi.mock('../lib/config.js', () => ({ getConfigOrGuide }));
|
|
10
|
+
vi.mock('../lib/client.js', () => ({ kernelCall, kernelCallWithSession }));
|
|
11
|
+
vi.mock('../lib/runner.js', () => ({ runCliCommand }));
|
|
12
|
+
vi.mock('../lib/session.js', () => ({ readSession }));
|
|
13
|
+
import { createConflictsCommand, runConflictsList, runConflictsResolve, runConflictsSummary, runConflictsSnooze, runConflictsReverdict, } from './conflicts.js';
|
|
14
|
+
describe('pb conflicts command surface (WP-499 Slice A, TEN-2744)', () => {
|
|
15
|
+
beforeEach(() => {
|
|
16
|
+
vi.clearAllMocks();
|
|
17
|
+
getConfigOrGuide.mockResolvedValue({ apiKey: 'pb_sk_test', siteUrl: 'https://example.test' });
|
|
18
|
+
kernelCall.mockResolvedValue([]);
|
|
19
|
+
kernelCallWithSession.mockResolvedValue({ ok: true });
|
|
20
|
+
readSession.mockReturnValue(null);
|
|
21
|
+
});
|
|
22
|
+
it('routes list/resolve/summary through the guided config flow (Codex P2) — an unconfigured caller gets the guided setup, not a raw AUTH_MISSING', async () => {
|
|
23
|
+
readSession.mockReturnValue({ sessionId: 'session-1' });
|
|
24
|
+
getConfigOrGuide.mockResolvedValueOnce(null); // list: first-run, no config yet
|
|
25
|
+
await runConflictsList({});
|
|
26
|
+
expect(kernelCall).not.toHaveBeenCalled();
|
|
27
|
+
getConfigOrGuide.mockResolvedValueOnce(null); // resolve: first-run, no config yet
|
|
28
|
+
await runConflictsResolve('issue-1', { verdict: 'real' });
|
|
29
|
+
expect(kernelCallWithSession).not.toHaveBeenCalled();
|
|
30
|
+
getConfigOrGuide.mockResolvedValueOnce(null); // summary: first-run, no config yet
|
|
31
|
+
await runConflictsSummary({});
|
|
32
|
+
expect(kernelCall).not.toHaveBeenCalled();
|
|
33
|
+
});
|
|
34
|
+
it('retries the original call after guided first-run authentication (matches feedback.ts submit)', async () => {
|
|
35
|
+
getConfigOrGuide
|
|
36
|
+
.mockImplementationOnce(async (retry) => { await retry(); return null; })
|
|
37
|
+
.mockResolvedValueOnce({ apiKey: 'pb_sk_test', siteUrl: 'https://example.test' });
|
|
38
|
+
await runConflictsList({});
|
|
39
|
+
expect(kernelCall).toHaveBeenCalledOnce();
|
|
40
|
+
// Review fix (PR #528 round 2, P2): the default/actionable case now omits `mode` entirely
|
|
41
|
+
// (pre-C2 deployment compatibility — see runConflictsList's doc comment).
|
|
42
|
+
// PR #528 R3 P2: `now` is a live-computed, minute-bucketed cache-key freshness value.
|
|
43
|
+
expect(kernelCall).toHaveBeenCalledWith('conflicts.list', { now: expect.any(Number) });
|
|
44
|
+
});
|
|
45
|
+
it('exposes list, resolve, reverdict, snooze, and summary in help metadata', () => {
|
|
46
|
+
const command = createConflictsCommand();
|
|
47
|
+
expect(command.commands.map((item) => item.name())).toEqual(['list', 'resolve', 'reverdict', 'snooze', 'summary']);
|
|
48
|
+
});
|
|
49
|
+
it('lists conflicts via a plain read, defaulting to the actionable mode (C2) — no session required, --status OMITTED', async () => {
|
|
50
|
+
await runConflictsList({});
|
|
51
|
+
// Review fix (PR #528 round 2, P2): `mode` is omitted on the wire for the default case — a
|
|
52
|
+
// pre-C2 backend's validator (which never declared `mode`) then runs its own legacy handler
|
|
53
|
+
// instead of rejecting the unexpected key; a post-C2 backend defaults to 'actionable' server-
|
|
54
|
+
// side (mode ?? 'actionable'), so the OBSERVED behavior is unchanged either way.
|
|
55
|
+
// PR #528 R3 P2: `now` is a live-computed, minute-bucketed cache-key freshness value.
|
|
56
|
+
expect(kernelCall).toHaveBeenCalledWith('conflicts.list', { now: expect.any(Number) });
|
|
57
|
+
expect(kernelCallWithSession).not.toHaveBeenCalled();
|
|
58
|
+
});
|
|
59
|
+
it('--all requests the full open debt pile (verdicted + snoozed rows)', async () => {
|
|
60
|
+
await runConflictsList({ all: true });
|
|
61
|
+
expect(kernelCall).toHaveBeenCalledWith('conflicts.list', { mode: 'all', now: expect.any(Number) });
|
|
62
|
+
});
|
|
63
|
+
// Review fix (PR #528 round 3, P2): --all's first attempt still sends {mode:'all'} (a post-C2
|
|
64
|
+
// backend needs it), which crashes a pre-C2 backend's exact-match validator on the unexpected
|
|
65
|
+
// key — retry with the bare legacy payload it actually understands instead of hard-failing.
|
|
66
|
+
it('--all retries with the bare legacy payload when a pre-C2 backend rejects the additive mode field', async () => {
|
|
67
|
+
kernelCall
|
|
68
|
+
.mockRejectedValueOnce(new Error("ArgumentValidationError: Object contains extra field 'mode' that is not in the validator."))
|
|
69
|
+
.mockResolvedValueOnce([]);
|
|
70
|
+
await runConflictsList({ all: true });
|
|
71
|
+
expect(kernelCall).toHaveBeenCalledTimes(2);
|
|
72
|
+
expect(kernelCall).toHaveBeenNthCalledWith(1, 'conflicts.list', { mode: 'all', now: expect.any(Number) });
|
|
73
|
+
expect(kernelCall).toHaveBeenNthCalledWith(2, 'conflicts.list', {});
|
|
74
|
+
});
|
|
75
|
+
// PR #538 late review fix (P2, "mark capped legacy conflict responses as truncated"): the
|
|
76
|
+
// legacy handler's own scan caps at 200 rows with no listTruncated metadata on the wire — an
|
|
77
|
+
// exact-200 response is ambiguous, so it must be stamped truncated defensively.
|
|
78
|
+
it('stamps a legacy fallback response truncated when it hits the 200-row cap', async () => {
|
|
79
|
+
kernelCall
|
|
80
|
+
.mockRejectedValueOnce(new Error("ArgumentValidationError: Object contains extra field 'now' that is not in the validator."))
|
|
81
|
+
.mockResolvedValueOnce(Array.from({ length: 200 }, (_, i) => ({ id: `c${i}` })));
|
|
82
|
+
await runConflictsList({});
|
|
83
|
+
const result = await runCliCommand.mock.results[0].value;
|
|
84
|
+
expect(result).toHaveLength(200);
|
|
85
|
+
expect(result.every((item) => item.listTruncated === true)).toBe(true);
|
|
86
|
+
});
|
|
87
|
+
it('does NOT stamp a legacy fallback response truncated when it is under the cap', async () => {
|
|
88
|
+
kernelCall
|
|
89
|
+
.mockRejectedValueOnce(new Error("ArgumentValidationError: Object contains extra field 'now' that is not in the validator."))
|
|
90
|
+
.mockResolvedValueOnce([{ id: 'c1' }]);
|
|
91
|
+
await runConflictsList({});
|
|
92
|
+
const result = await runCliCommand.mock.results[0].value;
|
|
93
|
+
expect(result).toEqual([{ id: 'c1' }]);
|
|
94
|
+
});
|
|
95
|
+
it('--all does NOT retry (and propagates) an unrelated rejection', async () => {
|
|
96
|
+
kernelCall.mockRejectedValueOnce(new Error('Network error: fetch failed'));
|
|
97
|
+
await expect(runConflictsList({ all: true })).rejects.toThrow('Network error: fetch failed');
|
|
98
|
+
expect(kernelCall).toHaveBeenCalledTimes(1);
|
|
99
|
+
});
|
|
100
|
+
// Review fix (PR #528 P2): an OMITTED --status and an EXPLICITLY passed "--status open" must
|
|
101
|
+
// not collapse to the same value — the option no longer carries a Commander default, so
|
|
102
|
+
// `options.status` is `undefined` when omitted and 'open' only when the caller typed it.
|
|
103
|
+
it('an EXPLICIT --status open is the legacy alias for --all (the full debt pile), distinct from an omitted --status', async () => {
|
|
104
|
+
await runConflictsList({ status: 'open' });
|
|
105
|
+
expect(kernelCall).toHaveBeenCalledWith('conflicts.list', { mode: 'all', now: expect.any(Number) });
|
|
106
|
+
});
|
|
107
|
+
it('rejects an unsupported --status value client-side before calling the gateway', async () => {
|
|
108
|
+
await expect(runConflictsList({ status: 'resolved' })).rejects.toThrow(/open/);
|
|
109
|
+
expect(kernelCall).not.toHaveBeenCalled();
|
|
110
|
+
});
|
|
111
|
+
it('requires an active session before resolving (workspace write, session-attributed)', async () => {
|
|
112
|
+
await expect(runConflictsResolve('issue-1', { verdict: 'real' })).rejects.toMatchObject({ code: 'SESSION_REQUIRED' });
|
|
113
|
+
expect(kernelCallWithSession).not.toHaveBeenCalled();
|
|
114
|
+
});
|
|
115
|
+
it('maps the CLI vocabulary "noise" to the stored schema literal "false_alarm" — never forwards sessionId as a wire arg (resolveConflictIssueFromGateway declares no such field; kernelCallWithSession touches the session internally via readSession())', async () => {
|
|
116
|
+
readSession.mockReturnValue({ sessionId: 'session-1' });
|
|
117
|
+
await runConflictsResolve('issue-1', { verdict: 'noise' });
|
|
118
|
+
expect(kernelCallWithSession).toHaveBeenCalledWith('conflicts.resolve', {
|
|
119
|
+
issueId: 'issue-1', verdict: 'false_alarm',
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
it('passes "real" through unchanged', async () => {
|
|
123
|
+
readSession.mockReturnValue({ sessionId: 'session-1' });
|
|
124
|
+
await runConflictsResolve('issue-1', { verdict: 'real' });
|
|
125
|
+
expect(kernelCallWithSession).toHaveBeenCalledWith('conflicts.resolve', {
|
|
126
|
+
issueId: 'issue-1', verdict: 'real',
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
it('rejects an unrecognized --verdict value client-side before calling the gateway', async () => {
|
|
130
|
+
readSession.mockReturnValue({ sessionId: 'session-1' });
|
|
131
|
+
await expect(runConflictsResolve('issue-1', { verdict: 'bogus' })).rejects.toThrow(/real|noise/);
|
|
132
|
+
expect(kernelCallWithSession).not.toHaveBeenCalled();
|
|
133
|
+
});
|
|
134
|
+
it('reads the precision summary via a plain read — no session required, no client-side Wilson math', async () => {
|
|
135
|
+
kernelCall.mockResolvedValue({
|
|
136
|
+
reviewed: 2, real: 1, falseAlarm: 1,
|
|
137
|
+
humanBar: { meets: false, lowerBound: 0.05, reviewed: 2 },
|
|
138
|
+
});
|
|
139
|
+
await runConflictsSummary({});
|
|
140
|
+
expect(kernelCall).toHaveBeenCalledWith('conflicts.summary', {});
|
|
141
|
+
expect(kernelCallWithSession).not.toHaveBeenCalled();
|
|
142
|
+
});
|
|
143
|
+
// Review fix (PR #528 P2): this is the ACTUAL bug surface — Commander itself, not a
|
|
144
|
+
// hand-constructed options object. Before the fix, `.option('--status <status>', ..., 'open')`
|
|
145
|
+
// meant Commander supplied `status: 'open'` whether or not the user typed `--status open`,
|
|
146
|
+
// making the legacy alias unreachable.
|
|
147
|
+
it('parses the Commander list surface — an unadorned "list" defaults to actionable', async () => {
|
|
148
|
+
const command = createConflictsCommand();
|
|
149
|
+
command.exitOverride();
|
|
150
|
+
await command.parseAsync(['list'], { from: 'user' });
|
|
151
|
+
// Review fix (PR #528 round 2, P2): `mode` omitted for the default case — see
|
|
152
|
+
// runConflictsList's doc comment (pre-C2 deployment compatibility).
|
|
153
|
+
// PR #528 R3 P2: `now` is a live-computed, minute-bucketed cache-key freshness value.
|
|
154
|
+
expect(kernelCall).toHaveBeenCalledWith('conflicts.list', { now: expect.any(Number) });
|
|
155
|
+
});
|
|
156
|
+
it('parses the Commander list surface — an explicit "--status open" requests the legacy full debt pile', async () => {
|
|
157
|
+
const command = createConflictsCommand();
|
|
158
|
+
command.exitOverride();
|
|
159
|
+
await command.parseAsync(['list', '--status', 'open'], { from: 'user' });
|
|
160
|
+
expect(kernelCall).toHaveBeenCalledWith('conflicts.list', { mode: 'all', now: expect.any(Number) });
|
|
161
|
+
});
|
|
162
|
+
it('parses the Commander resolve surface and forwards the mapped verdict', async () => {
|
|
163
|
+
readSession.mockReturnValue({ sessionId: 'session-1' });
|
|
164
|
+
const command = createConflictsCommand();
|
|
165
|
+
command.exitOverride();
|
|
166
|
+
await command.parseAsync(['resolve', 'issue-42', '--verdict', 'noise'], { from: 'user' });
|
|
167
|
+
expect(kernelCallWithSession).toHaveBeenCalledWith('conflicts.resolve', {
|
|
168
|
+
issueId: 'issue-42', verdict: 'false_alarm',
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
describe('pb conflicts snooze (C2, bounded logged debt — DEC-1491)', () => {
|
|
172
|
+
it('requires an active session before snoozing (workspace write, session-attributed)', async () => {
|
|
173
|
+
await expect(runConflictsSnooze('issue-1', { until: '7', reason: 'waiting on founder' }))
|
|
174
|
+
.rejects.toMatchObject({ code: 'SESSION_REQUIRED' });
|
|
175
|
+
expect(kernelCallWithSession).not.toHaveBeenCalled();
|
|
176
|
+
});
|
|
177
|
+
it('rejects a non-numeric or out-of-range --until client-side before calling the gateway', async () => {
|
|
178
|
+
readSession.mockReturnValue({ sessionId: 'session-1' });
|
|
179
|
+
await expect(runConflictsSnooze('issue-1', { until: 'abc', reason: 'x' })).rejects.toThrow(/1 and 14/);
|
|
180
|
+
await expect(runConflictsSnooze('issue-1', { until: '15', reason: 'x' })).rejects.toThrow(/1 and 14/);
|
|
181
|
+
await expect(runConflictsSnooze('issue-1', { until: '0', reason: 'x' })).rejects.toThrow(/1 and 14/);
|
|
182
|
+
expect(kernelCallWithSession).not.toHaveBeenCalled();
|
|
183
|
+
});
|
|
184
|
+
it('requires a non-empty --reason — a snooze is logged debt, never a silent dismissal', async () => {
|
|
185
|
+
readSession.mockReturnValue({ sessionId: 'session-1' });
|
|
186
|
+
await expect(runConflictsSnooze('issue-1', { until: '7', reason: ' ' })).rejects.toThrow(/reason/i);
|
|
187
|
+
expect(kernelCallWithSession).not.toHaveBeenCalled();
|
|
188
|
+
});
|
|
189
|
+
it('forwards untilDays (as a number) and reason to conflicts.snooze', async () => {
|
|
190
|
+
readSession.mockReturnValue({ sessionId: 'session-1' });
|
|
191
|
+
kernelCallWithSession.mockResolvedValue({ ok: true, snoozedUntil: Date.now() + 1000, snoozeCount: 1 });
|
|
192
|
+
await runConflictsSnooze('issue-1', { until: '7', reason: 'waiting on founder' });
|
|
193
|
+
expect(kernelCallWithSession).toHaveBeenCalledWith('conflicts.snooze', {
|
|
194
|
+
issueId: 'issue-1', untilDays: 7, reason: 'waiting on founder',
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
describe('pb conflicts reverdict (C2, logged amendment — point 3)', () => {
|
|
199
|
+
it('requires an active session before reverdicting', async () => {
|
|
200
|
+
await expect(runConflictsReverdict('issue-1', { verdict: 'real', reason: 'new evidence' }))
|
|
201
|
+
.rejects.toMatchObject({ code: 'SESSION_REQUIRED' });
|
|
202
|
+
expect(kernelCallWithSession).not.toHaveBeenCalled();
|
|
203
|
+
});
|
|
204
|
+
it('requires a non-empty --reason — a reverdict is a logged amendment, never a silent overwrite', async () => {
|
|
205
|
+
readSession.mockReturnValue({ sessionId: 'session-1' });
|
|
206
|
+
await expect(runConflictsReverdict('issue-1', { verdict: 'real', reason: '' })).rejects.toThrow(/reason/i);
|
|
207
|
+
expect(kernelCallWithSession).not.toHaveBeenCalled();
|
|
208
|
+
});
|
|
209
|
+
it('maps "noise" to false_alarm and forwards the reason to conflicts.reverdict', async () => {
|
|
210
|
+
readSession.mockReturnValue({ sessionId: 'session-1' });
|
|
211
|
+
kernelCallWithSession.mockResolvedValue({ ok: true, priorVerdict: 'real', verdict: 'false_alarm' });
|
|
212
|
+
await runConflictsReverdict('issue-1', { verdict: 'noise', reason: 'endpoint was edited, re-checked' });
|
|
213
|
+
expect(kernelCallWithSession).toHaveBeenCalledWith('conflicts.reverdict', {
|
|
214
|
+
issueId: 'issue-1', verdict: 'false_alarm', reason: 'endpoint was edited, re-checked',
|
|
215
|
+
});
|
|
216
|
+
});
|
|
217
|
+
});
|
|
218
|
+
});
|
|
219
|
+
//# sourceMappingURL=conflicts.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conflicts.test.js","sourceRoot":"","sources":["../../src/commands/conflicts.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect-config.test.d.ts","sourceRoot":"","sources":["../../src/commands/connect-config.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
|
|
2
|
+
import { mkdirSync, writeFileSync, readFileSync, rmSync } from 'fs';
|
|
3
|
+
import { resolve } from 'path';
|
|
4
|
+
import { tmpdir } from 'os';
|
|
5
|
+
// connect.js imports the Ink screens + handoff helpers; mock them so importing connect.js stays
|
|
6
|
+
// side-effect-free (matches connect.test.ts / connect-integration.test.ts). We deliberately do
|
|
7
|
+
// NOT mock `fs` — saveProjectConfig is real-filesystem logic and these tests assert on real files.
|
|
8
|
+
vi.mock('./connect-screens.js', () => ({ runConnectScreens: vi.fn(async () => { }) }));
|
|
9
|
+
vi.mock('./connect-handoff.js', () => ({
|
|
10
|
+
detectHandoffMarkers: vi.fn(() => ({})),
|
|
11
|
+
resolveHandoff: vi.fn(() => null),
|
|
12
|
+
printHandoff: vi.fn(),
|
|
13
|
+
}));
|
|
14
|
+
import { saveProjectConfig } from './connect.js';
|
|
15
|
+
describe('saveProjectConfig redirect detection (real fs)', () => {
|
|
16
|
+
let repo;
|
|
17
|
+
const prevCwd = process.cwd();
|
|
18
|
+
beforeEach(() => {
|
|
19
|
+
repo = resolve(tmpdir(), `pb-connect-${Date.now()}-${Math.random().toString(36).slice(2)}`);
|
|
20
|
+
mkdirSync(resolve(repo, '.productbrain'), { recursive: true });
|
|
21
|
+
process.chdir(repo);
|
|
22
|
+
});
|
|
23
|
+
afterEach(() => {
|
|
24
|
+
process.chdir(prevCwd);
|
|
25
|
+
rmSync(repo, { recursive: true, force: true });
|
|
26
|
+
});
|
|
27
|
+
it('returns previousProfile=null on first connect', () => {
|
|
28
|
+
const r = saveProjectConfig('https://x.convex.site', 'workspace-a');
|
|
29
|
+
expect(r.previousProfile).toBeNull();
|
|
30
|
+
expect(JSON.parse(readFileSync(resolve(repo, '.productbrain', 'config.local.json'), 'utf8')).profile).toBe('workspace-a');
|
|
31
|
+
});
|
|
32
|
+
it('reports the prior profile when redirecting to a different workspace', () => {
|
|
33
|
+
writeFileSync(resolve(repo, '.productbrain', 'config.local.json'), JSON.stringify({ profile: 'workspace-a' }));
|
|
34
|
+
const r = saveProjectConfig('https://y.convex.site', 'workspace-b');
|
|
35
|
+
expect(r.previousProfile).toBe('workspace-a');
|
|
36
|
+
expect(JSON.parse(readFileSync(resolve(repo, '.productbrain', 'config.local.json'), 'utf8')).profile).toBe('workspace-b');
|
|
37
|
+
});
|
|
38
|
+
it('reports null when re-connecting the same workspace', () => {
|
|
39
|
+
writeFileSync(resolve(repo, '.productbrain', 'config.local.json'), JSON.stringify({ profile: 'workspace-a' }));
|
|
40
|
+
const r = saveProjectConfig('https://x.convex.site', 'workspace-a');
|
|
41
|
+
expect(r.previousProfile).toBeNull();
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=connect-config.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect-config.test.js","sourceRoot":"","sources":["../../src/commands/connect-config.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* connect-context — non-UI orchestration for the post-connect wizard.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from connect-screens.tsx so the seed-readiness poll + context
|
|
5
|
+
* handshake can be tested without rendering Ink. The screens render purely from
|
|
6
|
+
* the result of prepareConnectContext().
|
|
7
|
+
*
|
|
8
|
+
* Chain: WP-433 (pb connect handoff), WP-439 S4 (strict-by-default handshake),
|
|
9
|
+
* WP-379 S3b (async seed polling).
|
|
10
|
+
*/
|
|
11
|
+
import { type HealthGap } from './handshake.js';
|
|
12
|
+
export interface ConnectContext {
|
|
13
|
+
/** True when the context handshake threw (context files may be incomplete). */
|
|
14
|
+
handshakeFailed: boolean;
|
|
15
|
+
/** Handshake error message, when handshakeFailed. */
|
|
16
|
+
handshakeError?: string;
|
|
17
|
+
/** Non-empty when starter-setup seeds were still pending after the poll. */
|
|
18
|
+
seedGaps?: ReadonlyArray<HealthGap>;
|
|
19
|
+
/**
|
|
20
|
+
* Adapter files PB left untouched because they already existed without its
|
|
21
|
+
* auto-gen marker (you authored them). The screen relays these so a user with
|
|
22
|
+
* a pre-existing CLAUDE.md is not falsely told it was synced (TEN-2107).
|
|
23
|
+
* Undefined = nothing skipped.
|
|
24
|
+
*/
|
|
25
|
+
skippedFiles?: ReadonlyArray<string>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Prepare the workspace context after `pb connect` redeems a token:
|
|
29
|
+
*
|
|
30
|
+
* 1. Poll until starter-setup seeds are ready FIRST. The handshake fetches
|
|
31
|
+
* seeded setup-asset bodies (skills/rules); on a fresh workspace those seeds
|
|
32
|
+
* land asynchronously (WP-379 S3b), so running the handshake before they are
|
|
33
|
+
* ready makes its body fetch fail.
|
|
34
|
+
* 2. Run the handshake LENIENT. This is an automatic onboarding handshake — it
|
|
35
|
+
* follows the precedent set for the automatic refresh at session close
|
|
36
|
+
* (session.ts, WP-439 S4): automatic runs must not hard-fail on a body-fetch
|
|
37
|
+
* error; orphaned assets are surfaced when the user runs `pb handshake`
|
|
38
|
+
* directly. Strict-by-default is for that direct command, not for the silent
|
|
39
|
+
* post-connect refresh.
|
|
40
|
+
*
|
|
41
|
+
* Never throws — failures are captured in the returned object for the screen to
|
|
42
|
+
* render.
|
|
43
|
+
*/
|
|
44
|
+
export declare function prepareConnectContext(): Promise<ConnectContext>;
|
|
45
|
+
//# sourceMappingURL=connect-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect-context.d.ts","sourceRoot":"","sources":["../../src/commands/connect-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAqC,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGnF,MAAM,WAAW,cAAc;IAC7B,+EAA+E;IAC/E,eAAe,EAAE,OAAO,CAAC;IACzB,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACpC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,cAAc,CAAC,CAgBrE"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* connect-context — non-UI orchestration for the post-connect wizard.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from connect-screens.tsx so the seed-readiness poll + context
|
|
5
|
+
* handshake can be tested without rendering Ink. The screens render purely from
|
|
6
|
+
* the result of prepareConnectContext().
|
|
7
|
+
*
|
|
8
|
+
* Chain: WP-433 (pb connect handoff), WP-439 S4 (strict-by-default handshake),
|
|
9
|
+
* WP-379 S3b (async seed polling).
|
|
10
|
+
*/
|
|
11
|
+
import { runHandshake, pollUntilSeedsReady } from './handshake.js';
|
|
12
|
+
import { setSpinnersSilenced, areSpinnersSilenced } from '../lib/runner.js';
|
|
13
|
+
/**
|
|
14
|
+
* Prepare the workspace context after `pb connect` redeems a token:
|
|
15
|
+
*
|
|
16
|
+
* 1. Poll until starter-setup seeds are ready FIRST. The handshake fetches
|
|
17
|
+
* seeded setup-asset bodies (skills/rules); on a fresh workspace those seeds
|
|
18
|
+
* land asynchronously (WP-379 S3b), so running the handshake before they are
|
|
19
|
+
* ready makes its body fetch fail.
|
|
20
|
+
* 2. Run the handshake LENIENT. This is an automatic onboarding handshake — it
|
|
21
|
+
* follows the precedent set for the automatic refresh at session close
|
|
22
|
+
* (session.ts, WP-439 S4): automatic runs must not hard-fail on a body-fetch
|
|
23
|
+
* error; orphaned assets are surfaced when the user runs `pb handshake`
|
|
24
|
+
* directly. Strict-by-default is for that direct command, not for the silent
|
|
25
|
+
* post-connect refresh.
|
|
26
|
+
*
|
|
27
|
+
* Never throws — failures are captured in the returned object for the screen to
|
|
28
|
+
* render.
|
|
29
|
+
*/
|
|
30
|
+
export async function prepareConnectContext() {
|
|
31
|
+
// WP-2 (TEN-2561): silence the per-kernelCall spinners — "Loading chain getVocabulary",
|
|
32
|
+
// "Loading chain getOrientView", "Loading setup listAssetsForUser" — that withSpinner
|
|
33
|
+
// renders for every kernelCall the seed-poll + handshake make. Use the spinner-silence
|
|
34
|
+
// flag, NOT global quiet mode: quiet also gates interactive prompts (prompts.ts), so
|
|
35
|
+
// flipping it would suppress the handshake's adopt/revert prompts for PB-managed tampered
|
|
36
|
+
// files — turning an answerable prompt into a silent "context sync skipped". The caller
|
|
37
|
+
// (runConnectScreens) shows one human progress line instead. Restored in `finally` so the
|
|
38
|
+
// flip is scoped to this call.
|
|
39
|
+
const priorSilenced = areSpinnersSilenced();
|
|
40
|
+
setSpinnersSilenced(true);
|
|
41
|
+
try {
|
|
42
|
+
return await prepareConnectContextInner();
|
|
43
|
+
}
|
|
44
|
+
finally {
|
|
45
|
+
setSpinnersSilenced(priorSilenced);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
async function prepareConnectContextInner() {
|
|
49
|
+
// 1. Wait for seeds to be ready before the handshake consumes them.
|
|
50
|
+
// probe-failed (network/auth) is non-blocking — no seeds warning when the
|
|
51
|
+
// health endpoint is simply unreachable.
|
|
52
|
+
let seedGaps;
|
|
53
|
+
try {
|
|
54
|
+
const seedResult = await pollUntilSeedsReady();
|
|
55
|
+
if (seedResult.status === 'seeds-pending') {
|
|
56
|
+
seedGaps = seedResult.gaps;
|
|
57
|
+
}
|
|
58
|
+
// seeds-ready and probe-failed both leave seedGaps undefined (no warning).
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
// Future-proofing: pollUntilSeedsReady does not throw today (its probe
|
|
62
|
+
// catches everything into 'probe-failed'); this guards that contract drifting.
|
|
63
|
+
}
|
|
64
|
+
// 2. Run handshake lenient — capture failure for display rather than aborting.
|
|
65
|
+
let handshakeFailed = false;
|
|
66
|
+
let handshakeError;
|
|
67
|
+
let skippedFiles;
|
|
68
|
+
try {
|
|
69
|
+
const report = await runHandshake({ force: false, apply: true, quiet: true, lenient: true });
|
|
70
|
+
// userOwnedSkipped = adapter files that already existed without PB's auto-gen
|
|
71
|
+
// marker, so the handshake left them untouched. Relay them so the screen does
|
|
72
|
+
// not falsely report them as synced (TEN-2107). These are NOT drift (TEN-2150).
|
|
73
|
+
if (report?.userOwnedSkipped && report.userOwnedSkipped.length > 0) {
|
|
74
|
+
skippedFiles = report.userOwnedSkipped;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
handshakeFailed = true;
|
|
79
|
+
handshakeError = err instanceof Error ? err.message : String(err);
|
|
80
|
+
}
|
|
81
|
+
return { handshakeFailed, handshakeError, seedGaps, skippedFiles };
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=connect-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect-context.js","sourceRoot":"","sources":["../../src/commands/connect-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAkB,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAkB5E;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,wFAAwF;IACxF,sFAAsF;IACtF,uFAAuF;IACvF,qFAAqF;IACrF,0FAA0F;IAC1F,wFAAwF;IACxF,0FAA0F;IAC1F,+BAA+B;IAC/B,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAC;IAC5C,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC;QACH,OAAO,MAAM,0BAA0B,EAAE,CAAC;IAC5C,CAAC;YAAS,CAAC;QACT,mBAAmB,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,0BAA0B;IACvC,oEAAoE;IACpE,0EAA0E;IAC1E,yCAAyC;IACzC,IAAI,QAA8C,CAAC;IACnD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAC/C,IAAI,UAAU,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC;YAC1C,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;QAC7B,CAAC;QACD,2EAA2E;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;QACvE,+EAA+E;IACjF,CAAC;IAED,+EAA+E;IAC/E,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,cAAkC,CAAC;IACvC,IAAI,YAA+C,CAAC;IACpD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7F,8EAA8E;QAC9E,8EAA8E;QAC9E,gFAAgF;QAChF,IAAI,MAAM,EAAE,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnE,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACzC,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAe,GAAG,IAAI,CAAC;QACvB,cAAc,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AACrE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect-context.test.d.ts","sourceRoot":"","sources":["../../src/commands/connect-context.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for prepareConnectContext — the non-UI orchestration behind the
|
|
3
|
+
* post-connect wizard (seed-readiness poll + context handshake).
|
|
4
|
+
*
|
|
5
|
+
* Root cause (P1): `pb connect`'s automatic handshake ran STRICT and BEFORE the
|
|
6
|
+
* seed-readiness poll. On a fresh workspace (seeds still landing async) or with
|
|
7
|
+
* an orphan setup-asset body, the handshake's body fetch failed and — being
|
|
8
|
+
* strict (WP-439 S4) — threw, surfacing only a dim "⚠ Context sync skipped" and
|
|
9
|
+
* leaving CLAUDE.md / rules unwritten. WP-439 S4 made the automatic refresh at
|
|
10
|
+
* session close LENIENT (session.ts) for exactly this reason; connect's automatic
|
|
11
|
+
* refresh follows that same precedent.
|
|
12
|
+
*
|
|
13
|
+
* Fix: poll seeds ready FIRST, then run the handshake LENIENT.
|
|
14
|
+
*/
|
|
15
|
+
import { describe, it, expect, beforeEach, vi } from 'vitest';
|
|
16
|
+
vi.mock('./handshake.js', () => ({
|
|
17
|
+
runHandshake: vi.fn(async () => { }),
|
|
18
|
+
pollUntilSeedsReady: vi.fn(async () => ({ status: 'seeds-ready' })),
|
|
19
|
+
}));
|
|
20
|
+
import * as handshake from './handshake.js';
|
|
21
|
+
import { prepareConnectContext } from './connect-context.js';
|
|
22
|
+
import { areSpinnersSilenced, setSpinnersSilenced, getQuietMode, setQuietMode } from '../lib/runner.js';
|
|
23
|
+
const runHandshake = vi.mocked(handshake.runHandshake);
|
|
24
|
+
const pollUntilSeedsReady = vi.mocked(handshake.pollUntilSeedsReady);
|
|
25
|
+
const PENDING_GAPS = [
|
|
26
|
+
{ kind: 'starter-setup-missing', severity: 'warn', message: 'Starter setup seeds are still running.' },
|
|
27
|
+
];
|
|
28
|
+
describe('prepareConnectContext', () => {
|
|
29
|
+
beforeEach(() => {
|
|
30
|
+
vi.clearAllMocks();
|
|
31
|
+
pollUntilSeedsReady.mockResolvedValue({ status: 'seeds-ready' });
|
|
32
|
+
runHandshake.mockResolvedValue(undefined);
|
|
33
|
+
});
|
|
34
|
+
it('runs the handshake in lenient mode (matches session.ts automatic-handshake policy)', async () => {
|
|
35
|
+
await prepareConnectContext();
|
|
36
|
+
expect(runHandshake).toHaveBeenCalledTimes(1);
|
|
37
|
+
expect(runHandshake).toHaveBeenCalledWith(expect.objectContaining({ force: false, apply: true, quiet: true, lenient: true }));
|
|
38
|
+
});
|
|
39
|
+
it('waits for seeds to be ready BEFORE running the handshake', async () => {
|
|
40
|
+
const order = [];
|
|
41
|
+
pollUntilSeedsReady.mockImplementation(async () => {
|
|
42
|
+
order.push('poll');
|
|
43
|
+
return { status: 'seeds-ready' };
|
|
44
|
+
});
|
|
45
|
+
runHandshake.mockImplementation(async () => {
|
|
46
|
+
order.push('handshake');
|
|
47
|
+
return undefined;
|
|
48
|
+
});
|
|
49
|
+
await prepareConnectContext();
|
|
50
|
+
expect(order).toEqual(['poll', 'handshake']);
|
|
51
|
+
});
|
|
52
|
+
it('surfaces seed gaps when starter setup is still pending', async () => {
|
|
53
|
+
pollUntilSeedsReady.mockResolvedValue({ status: 'seeds-pending', gaps: PENDING_GAPS });
|
|
54
|
+
const result = await prepareConnectContext();
|
|
55
|
+
expect(result.seedGaps).toEqual(PENDING_GAPS);
|
|
56
|
+
expect(result.handshakeFailed).toBe(false);
|
|
57
|
+
});
|
|
58
|
+
it('reports no seed gaps when seeds are ready', async () => {
|
|
59
|
+
pollUntilSeedsReady.mockResolvedValue({ status: 'seeds-ready' });
|
|
60
|
+
const result = await prepareConnectContext();
|
|
61
|
+
expect(result.seedGaps).toBeUndefined();
|
|
62
|
+
});
|
|
63
|
+
it('reports no seed gaps when the health probe fails (non-blocking)', async () => {
|
|
64
|
+
pollUntilSeedsReady.mockResolvedValue({ status: 'probe-failed', error: 'network down' });
|
|
65
|
+
const result = await prepareConnectContext();
|
|
66
|
+
expect(result.seedGaps).toBeUndefined();
|
|
67
|
+
});
|
|
68
|
+
it('captures a handshake failure without throwing', async () => {
|
|
69
|
+
runHandshake.mockRejectedValue(new Error('boom'));
|
|
70
|
+
const result = await prepareConnectContext();
|
|
71
|
+
expect(result.handshakeFailed).toBe(true);
|
|
72
|
+
expect(result.handshakeError).toBe('boom');
|
|
73
|
+
});
|
|
74
|
+
it('surfaces seed gaps AND a handshake failure together (fresh-workspace worst case)', async () => {
|
|
75
|
+
// Seeds time out, then the lenient handshake still throws on a genuinely
|
|
76
|
+
// orphaned body — both signals must surface independently.
|
|
77
|
+
pollUntilSeedsReady.mockResolvedValue({ status: 'seeds-pending', gaps: PENDING_GAPS });
|
|
78
|
+
runHandshake.mockRejectedValue(new Error('orphan body'));
|
|
79
|
+
const result = await prepareConnectContext();
|
|
80
|
+
expect(result.seedGaps).toEqual(PENDING_GAPS);
|
|
81
|
+
expect(result.handshakeFailed).toBe(true);
|
|
82
|
+
expect(result.handshakeError).toBe('orphan body');
|
|
83
|
+
});
|
|
84
|
+
it('reports success when the handshake completes', async () => {
|
|
85
|
+
const result = await prepareConnectContext();
|
|
86
|
+
expect(result.handshakeFailed).toBe(false);
|
|
87
|
+
expect(result.handshakeError).toBeUndefined();
|
|
88
|
+
});
|
|
89
|
+
it('surfaces files PB left untouched (user-owned files without the auto-gen marker)', async () => {
|
|
90
|
+
// TEN-2107: the handshake skips files the user authored (no auto-gen marker)
|
|
91
|
+
// and reports them as userOwnedSkipped. The connect screen must relay these so
|
|
92
|
+
// a user with a pre-existing CLAUDE.md is not falsely told "synced". These are
|
|
93
|
+
// never treated as drift (TEN-2150).
|
|
94
|
+
runHandshake.mockResolvedValue({
|
|
95
|
+
filesWritten: ['AGENTS.md'],
|
|
96
|
+
filesSkipped: [
|
|
97
|
+
{ path: 'CLAUDE.md', reason: 'user-owned — left untouched (pb won\'t overwrite your file)' },
|
|
98
|
+
],
|
|
99
|
+
userOwnedSkipped: ['CLAUDE.md'],
|
|
100
|
+
});
|
|
101
|
+
const result = await prepareConnectContext();
|
|
102
|
+
expect(result.skippedFiles).toEqual(['CLAUDE.md']);
|
|
103
|
+
expect(result.handshakeFailed).toBe(false);
|
|
104
|
+
});
|
|
105
|
+
it('reports no skipped files when PB wrote (or refreshed) everything', async () => {
|
|
106
|
+
// Default mock resolves an empty/undefined report → nothing left untouched.
|
|
107
|
+
const result = await prepareConnectContext();
|
|
108
|
+
expect(result.skippedFiles).toBeUndefined();
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
describe('prepareConnectContext — spinner-silence seam (WP-2 / TEN-2561)', () => {
|
|
112
|
+
// The seed-poll + handshake make kernelCalls whose spinners render raw internal labels
|
|
113
|
+
// ("Loading chain getVocabulary", …). The fn must suppress those during its work via the
|
|
114
|
+
// SPINNER-silence flag — and must NOT touch global quiet mode, which gates interactive
|
|
115
|
+
// prompts (so the handshake's adopt/revert prompts for tampered files still run). The
|
|
116
|
+
// flag is restored afterward, even when the (lenient) handshake throws.
|
|
117
|
+
beforeEach(() => {
|
|
118
|
+
vi.clearAllMocks();
|
|
119
|
+
pollUntilSeedsReady.mockResolvedValue({ status: 'seeds-ready' });
|
|
120
|
+
runHandshake.mockResolvedValue(undefined);
|
|
121
|
+
setSpinnersSilenced(false);
|
|
122
|
+
setQuietMode(false);
|
|
123
|
+
});
|
|
124
|
+
it('silences spinners during seed-poll + handshake, then restores — WITHOUT touching quiet', async () => {
|
|
125
|
+
let silencedDuringPoll;
|
|
126
|
+
let silencedDuringHandshake;
|
|
127
|
+
let quietDuringHandshake;
|
|
128
|
+
pollUntilSeedsReady.mockImplementation(async () => {
|
|
129
|
+
silencedDuringPoll = areSpinnersSilenced();
|
|
130
|
+
return { status: 'seeds-ready' };
|
|
131
|
+
});
|
|
132
|
+
runHandshake.mockImplementation(async () => {
|
|
133
|
+
silencedDuringHandshake = areSpinnersSilenced();
|
|
134
|
+
quietDuringHandshake = getQuietMode();
|
|
135
|
+
return undefined;
|
|
136
|
+
});
|
|
137
|
+
expect(areSpinnersSilenced()).toBe(false);
|
|
138
|
+
await prepareConnectContext();
|
|
139
|
+
expect(silencedDuringPoll).toBe(true);
|
|
140
|
+
expect(silencedDuringHandshake).toBe(true);
|
|
141
|
+
// Quiet (the interactive-prompt gate) must stay off — otherwise the handshake's
|
|
142
|
+
// adopt/revert tamper prompts would throw NON_INTERACTIVE (TEN-2561 regression).
|
|
143
|
+
expect(quietDuringHandshake).toBe(false);
|
|
144
|
+
expect(areSpinnersSilenced()).toBe(false); // restored
|
|
145
|
+
});
|
|
146
|
+
it('restores the spinner-silence flag even when the handshake throws (lenient)', async () => {
|
|
147
|
+
runHandshake.mockRejectedValue(new Error('boom'));
|
|
148
|
+
const result = await prepareConnectContext();
|
|
149
|
+
expect(result.handshakeFailed).toBe(true);
|
|
150
|
+
expect(areSpinnersSilenced()).toBe(false); // restored despite the throw
|
|
151
|
+
});
|
|
152
|
+
it('preserves a pre-existing silenced=true (does not force it back off)', async () => {
|
|
153
|
+
setSpinnersSilenced(true);
|
|
154
|
+
await prepareConnectContext();
|
|
155
|
+
expect(areSpinnersSilenced()).toBe(true);
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
//# sourceMappingURL=connect-context.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect-context.test.js","sourceRoot":"","sources":["../../src/commands/connect-context.test.ts"],"names":[],"mappings":"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"}
|