@productbrain/cli 0.1.0-beta.98 → 0.1.0-beta.989
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/audit.test.js +5 -0
- package/dist/__tests__/audit.test.js.map +1 -1
- 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__/config.test.js +272 -2
- package/dist/__tests__/config.test.js.map +1 -1
- package/dist/__tests__/constants.test.js +6 -1
- package/dist/__tests__/constants.test.js.map +1 -1
- package/dist/__tests__/envelope-contract.test.js +29 -3
- package/dist/__tests__/envelope-contract.test.js.map +1 -1
- package/dist/__tests__/errors.test.js +1 -0
- package/dist/__tests__/errors.test.js.map +1 -1
- 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 +423 -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.js +566 -4
- package/dist/__tests__/handshake-preview.test.js.map +1 -1
- 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 +1252 -0
- package/dist/__tests__/handshake.e2e.test.js.map +1 -0
- package/dist/__tests__/handshake.test.js +611 -2
- package/dist/__tests__/handshake.test.js.map +1 -1
- package/dist/__tests__/manifest.test.js +118 -1
- package/dist/__tests__/manifest.test.js.map +1 -1
- 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 +184 -7
- 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 +1 -2
- package/dist/__tests__/personal-layer.test.d.ts.map +1 -1
- package/dist/__tests__/personal-layer.test.js +12 -48
- package/dist/__tests__/personal-layer.test.js.map +1 -1
- package/dist/__tests__/profiles.test.js +106 -2
- package/dist/__tests__/profiles.test.js.map +1 -1
- package/dist/__tests__/promote.test.js +2 -2
- package/dist/__tests__/promote.test.js.map +1 -1
- package/dist/__tests__/session-state-machine.test.js +45 -1
- package/dist/__tests__/session-state-machine.test.js.map +1 -1
- 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 +129 -0
- package/dist/__tests__/session-switch.test.js.map +1 -0
- package/dist/__tests__/setup-ingest.test.js +16 -0
- package/dist/__tests__/setup-ingest.test.js.map +1 -1
- 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 +187 -0
- package/dist/__tests__/skill-vocabulary.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__/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__/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 +534 -0
- package/dist/__tests__/vocabulary-leak.test.js.map +1 -0
- package/dist/__tests__/workspace.test.js +32 -12
- package/dist/__tests__/workspace.test.js.map +1 -1
- 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__/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/admin/seed.d.ts +46 -2
- package/dist/commands/admin/seed.d.ts.map +1 -1
- package/dist/commands/admin/seed.js +475 -33
- package/dist/commands/admin/seed.js.map +1 -1
- package/dist/commands/admin/seed.test.d.ts +5 -0
- package/dist/commands/admin/seed.test.d.ts.map +1 -1
- package/dist/commands/admin/seed.test.js +67 -2
- package/dist/commands/admin/seed.test.js.map +1 -1
- package/dist/commands/admin/seedRegistryEntries.generated.d.ts +14 -0
- package/dist/commands/admin/seedRegistryEntries.generated.d.ts.map +1 -0
- package/dist/commands/admin/seedRegistryEntries.generated.js +117 -0
- package/dist/commands/admin/seedRegistryEntries.generated.js.map +1 -0
- package/dist/commands/admin/seedRegistryEntries.test.d.ts +11 -0
- package/dist/commands/admin/seedRegistryEntries.test.d.ts.map +1 -0
- package/dist/commands/admin/seedRegistryEntries.test.js +67 -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 +30 -3
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/authority-domains.d.ts +7 -1
- package/dist/commands/authority-domains.d.ts.map +1 -1
- package/dist/commands/authority-domains.js +17 -3
- package/dist/commands/authority-domains.js.map +1 -1
- package/dist/commands/capture.d.ts.map +1 -1
- package/dist/commands/capture.js +3 -2
- package/dist/commands/capture.js.map +1 -1
- package/dist/commands/codex-prep.d.ts +1 -0
- package/dist/commands/codex-prep.d.ts.map +1 -1
- package/dist/commands/codex-prep.js +10 -7
- package/dist/commands/codex-prep.js.map +1 -1
- 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 +64 -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 +110 -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 +13 -12
- package/dist/commands/connect-integration.test.js.map +1 -1
- package/dist/commands/connect-screens.d.ts +6 -4
- package/dist/commands/connect-screens.d.ts.map +1 -1
- package/dist/commands/connect-screens.js +30 -19
- package/dist/commands/connect-screens.js.map +1 -1
- package/dist/commands/connect.d.ts +19 -6
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +31 -56
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +68 -3
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/doctor.test.js +150 -0
- package/dist/commands/doctor.test.js.map +1 -1
- package/dist/commands/handshake.d.ts +194 -2
- package/dist/commands/handshake.d.ts.map +1 -1
- package/dist/commands/handshake.js +1537 -46
- package/dist/commands/handshake.js.map +1 -1
- package/dist/commands/method.d.ts.map +1 -1
- package/dist/commands/method.js +3 -0
- package/dist/commands/method.js.map +1 -1
- package/dist/commands/orient.d.ts +63 -2
- package/dist/commands/orient.d.ts.map +1 -1
- package/dist/commands/orient.js +106 -4
- package/dist/commands/orient.js.map +1 -1
- package/dist/commands/profile.d.ts +1 -14
- package/dist/commands/profile.d.ts.map +1 -1
- package/dist/commands/profile.js +89 -72
- package/dist/commands/profile.js.map +1 -1
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +50 -13
- 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.map +1 -1
- package/dist/commands/setup-ingest.js +4 -2
- package/dist/commands/setup-ingest.js.map +1 -1
- 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 +52 -131
- package/dist/commands/setup.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/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 +23 -2
- package/dist/commands/workspace.d.ts.map +1 -1
- package/dist/commands/workspace.js +2 -2
- package/dist/commands/workspace.js.map +1 -1
- 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 +454 -0
- package/dist/formatters/__tests__/orient-provenance.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/entry.d.ts +21 -0
- package/dist/formatters/entry.d.ts.map +1 -1
- package/dist/formatters/entry.js +46 -5
- package/dist/formatters/entry.js.map +1 -1
- package/dist/formatters/handshake.d.ts +19 -3
- package/dist/formatters/handshake.d.ts.map +1 -1
- package/dist/formatters/handshake.js +48 -13
- package/dist/formatters/handshake.js.map +1 -1
- package/dist/formatters/orient.d.ts +79 -4
- package/dist/formatters/orient.d.ts.map +1 -1
- package/dist/formatters/orient.js +119 -18
- package/dist/formatters/orient.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 +76 -0
- package/dist/generators/manifest.d.ts.map +1 -1
- package/dist/generators/manifest.js +125 -14
- package/dist/generators/manifest.js.map +1 -1
- package/dist/generators/portable-knowledge.d.ts +6 -12
- package/dist/generators/portable-knowledge.d.ts.map +1 -1
- package/dist/generators/portable-knowledge.js +2 -19
- package/dist/generators/portable-knowledge.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.js +134 -26
- package/dist/index.js.map +1 -1
- package/dist/lib/activation.d.ts.map +1 -1
- package/dist/lib/activation.js +3 -3
- package/dist/lib/activation.js.map +1 -1
- package/dist/lib/activation.test.js +3 -3
- package/dist/lib/activation.test.js.map +1 -1
- package/dist/lib/canonicalRefs.d.ts +72 -0
- package/dist/lib/canonicalRefs.d.ts.map +1 -1
- package/dist/lib/canonicalRefs.js +67 -0
- package/dist/lib/canonicalRefs.js.map +1 -1
- package/dist/lib/client.d.ts.map +1 -1
- package/dist/lib/client.js +13 -3
- package/dist/lib/client.js.map +1 -1
- package/dist/lib/config.d.ts +70 -4
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +151 -11
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/constants.d.ts +2 -0
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +2 -0
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/errors.d.ts +1 -0
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +1 -0
- package/dist/lib/errors.js.map +1 -1
- 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 +0 -1
- package/dist/lib/onboarding-path-b.js.map +1 -1
- package/dist/lib/onboarding-shared.d.ts +0 -1
- package/dist/lib/onboarding-shared.d.ts.map +1 -1
- package/dist/lib/onboarding-shared.js +1 -17
- package/dist/lib/onboarding-shared.js.map +1 -1
- package/dist/lib/profiles.d.ts +3 -1
- package/dist/lib/profiles.d.ts.map +1 -1
- package/dist/lib/profiles.js +9 -6
- package/dist/lib/profiles.js.map +1 -1
- package/dist/lib/session.d.ts +10 -0
- package/dist/lib/session.d.ts.map +1 -1
- package/dist/lib/session.js +14 -0
- package/dist/lib/session.js.map +1 -1
- package/dist/lib/update-check.d.ts +42 -7
- package/dist/lib/update-check.d.ts.map +1 -1
- package/dist/lib/update-check.js +213 -62
- package/dist/lib/update-check.js.map +1 -1
- 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/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/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 +58 -2
- package/dist/surfaces/registry.d.ts.map +1 -1
- package/dist/surfaces/registry.js +82 -7
- package/dist/surfaces/registry.js.map +1 -1
- 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 +3 -1
- package/dist/__tests__/setup.test.d.ts +0 -2
- package/dist/__tests__/setup.test.d.ts.map +0 -1
- package/dist/__tests__/setup.test.js +0 -141
- package/dist/__tests__/setup.test.js.map +0 -1
- package/dist/generators/__tests__/surface-profiles.test.d.ts +0 -2
- package/dist/generators/__tests__/surface-profiles.test.d.ts.map +0 -1
- package/dist/generators/__tests__/surface-profiles.test.js +0 -89
- package/dist/generators/__tests__/surface-profiles.test.js.map +0 -1
- package/dist/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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orient.d.ts","sourceRoot":"","sources":["../../src/commands/orient.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"orient.d.ts","sourceRoot":"","sources":["../../src/commands/orient.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/orient.js
CHANGED
|
@@ -2,10 +2,63 @@
|
|
|
2
2
|
* pb orient — prints workspace stage and all orient sections per ARCH-25.
|
|
3
3
|
* BET-181 Slice 0: routes through runCliCommand for JSON-default output.
|
|
4
4
|
*/
|
|
5
|
-
import { getConfigOrGuide } from '../lib/config.js';
|
|
5
|
+
import { getConfig, getConfigOrGuide } from '../lib/config.js';
|
|
6
6
|
import { kernelCall } from '../lib/client.js';
|
|
7
|
-
import { runCliCommand } from '../lib/runner.js';
|
|
7
|
+
import { runCliCommand, isJsonMode } from '../lib/runner.js';
|
|
8
|
+
import { stripConvexInternals } from '../lib/strip.js';
|
|
8
9
|
import { formatOrient, formatOrientBrief } from '../formatters/orient.js';
|
|
10
|
+
import { getOrFetchVocabCtx } from '../lib/workspaceVocabCache.js';
|
|
11
|
+
/**
|
|
12
|
+
* WP-376 α.3: fire-and-forget orient byte report from the CLI surface.
|
|
13
|
+
*
|
|
14
|
+
* Inlined raw fetch (vs `kernelCall`) for three reasons:
|
|
15
|
+
* 1. No spinner — observability must not show user-visible progress
|
|
16
|
+
* indicators after the orient render completes.
|
|
17
|
+
* 2. Truly fire-and-forget — never block returning to the shell on a
|
|
18
|
+
* slow gateway, never propagate errors to the user.
|
|
19
|
+
* 3. Avoids the post-write session-touch heartbeat (kernelCallWithSession)
|
|
20
|
+
* — orient byte report is itself a heartbeat-equivalent observability
|
|
21
|
+
* write, so a follow-up agent.touchSession is redundant (parallel to
|
|
22
|
+
* MCP's TOUCH_EXCLUDED exemption in client.ts).
|
|
23
|
+
*
|
|
24
|
+
* The gateway's `injectSessionAuth` (BR-18) resolves workspaceId / apiKeyId /
|
|
25
|
+
* clerkUserId from the bearer token, so the surface only sends payload bytes
|
|
26
|
+
* + truncation flag. Auth and identity stay server-side.
|
|
27
|
+
*/
|
|
28
|
+
// PREDICATE-MIRROR: convex/agentKnowledge/orientBudget.ts → NON_MEANINGFUL_TASK_RE +
|
|
29
|
+
// taskIsMeaningful. Mirrored here because packages/* has no documented import path
|
|
30
|
+
// into convex/. Keep in sync; drift risk captured as a residual TEN (DEC-NEW).
|
|
31
|
+
const NON_MEANINGFUL_TASK_RE = /^[\s]*$/u;
|
|
32
|
+
function taskIsMeaningful(task) {
|
|
33
|
+
if (typeof task !== 'string')
|
|
34
|
+
return false;
|
|
35
|
+
return !NON_MEANINGFUL_TASK_RE.test(task);
|
|
36
|
+
}
|
|
37
|
+
// DEC-NEW: reports the resolved tier + task-presence alongside bytes + truncated.
|
|
38
|
+
function reportOrientCliBytes(bytes, truncated, tier, taskProvided) {
|
|
39
|
+
let apiKey;
|
|
40
|
+
let siteUrl;
|
|
41
|
+
try {
|
|
42
|
+
({ apiKey, siteUrl } = getConfig());
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
// No config — best-effort observability never fails the command.
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
void fetch(`${siteUrl}/api/aki`, {
|
|
49
|
+
method: 'POST',
|
|
50
|
+
headers: {
|
|
51
|
+
'Content-Type': 'application/json',
|
|
52
|
+
Authorization: `Bearer ${apiKey}`,
|
|
53
|
+
},
|
|
54
|
+
body: JSON.stringify({
|
|
55
|
+
fn: 'agent.reportOrientMetric',
|
|
56
|
+
args: { bytes, truncated, tier, taskProvided },
|
|
57
|
+
}),
|
|
58
|
+
}).catch(() => {
|
|
59
|
+
// Best-effort — silently swallow.
|
|
60
|
+
});
|
|
61
|
+
}
|
|
9
62
|
function normalizeView(raw) {
|
|
10
63
|
return {
|
|
11
64
|
...raw,
|
|
@@ -37,6 +90,23 @@ export async function runOrient(options = {}) {
|
|
|
37
90
|
const config = await getConfigOrGuide(() => runOrient(options));
|
|
38
91
|
if (!config)
|
|
39
92
|
return;
|
|
93
|
+
// WP-436 S2: resolve workspace vocabulary context (Axis 2, PAT-230, DEC-1021).
|
|
94
|
+
// Uses the API key as the cache key (1:1 with workspace at CLI layer).
|
|
95
|
+
// Fail-open: if chain.getVocabulary is unreachable, resolver falls back to canonicalKey literal.
|
|
96
|
+
const vocabCtx = await getOrFetchVocabCtx(config.apiKey, async () => {
|
|
97
|
+
const vocab = await kernelCall('chain.getVocabulary', {});
|
|
98
|
+
if (vocab?.collectionLabels || vocab?.collectionDefaults) {
|
|
99
|
+
return {
|
|
100
|
+
...(vocab.collectionLabels ? { collectionLabels: vocab.collectionLabels } : {}),
|
|
101
|
+
...(vocab.collectionDefaults ? { collectionDefaults: vocab.collectionDefaults } : {}),
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
return null;
|
|
105
|
+
});
|
|
106
|
+
// WP-376 α.3: capture the view + raw flag from the closure so we can
|
|
107
|
+
// measure client-side rendered bytes after runCliCommand finishes.
|
|
108
|
+
let capturedView = null;
|
|
109
|
+
let capturedTruncated = false;
|
|
40
110
|
await runCliCommand({
|
|
41
111
|
fn: async () => {
|
|
42
112
|
const callArgs = {};
|
|
@@ -44,14 +114,46 @@ export async function runOrient(options = {}) {
|
|
|
44
114
|
callArgs.task = options.task;
|
|
45
115
|
if (options.scope)
|
|
46
116
|
callArgs.scope = options.scope;
|
|
117
|
+
// STD-219 §5 chain-versioned by DEC-NEW: surface forwards tier by key omission;
|
|
118
|
+
// kernel applies the task-conditional default via resolveEffectiveTier when tier unset.
|
|
119
|
+
if (options.full)
|
|
120
|
+
callArgs.tier = 'full';
|
|
47
121
|
const raw = await kernelCall('chain.getOrientView', Object.keys(callArgs).length > 0 ? callArgs : {});
|
|
48
122
|
// Normalize before output in any mode — ensures JSON keys are stable
|
|
49
123
|
// for agent consumers (optional sections become empty arrays, not absent).
|
|
50
|
-
|
|
124
|
+
const view = normalizeView(raw);
|
|
125
|
+
capturedView = view;
|
|
126
|
+
// BET-β S3b parity with MCP: prefer the tier-budget signal (_budget.truncated),
|
|
127
|
+
// fall back to the legacy input-scan flag (_truncated). Summary-tier section
|
|
128
|
+
// dropping is reported via _budget.truncated only, so reading _truncated alone
|
|
129
|
+
// recorded lastOrientTruncated:false on the main path this change introduces.
|
|
130
|
+
capturedTruncated = raw._budget?.truncated ?? raw._truncated === true;
|
|
131
|
+
return view;
|
|
51
132
|
},
|
|
52
133
|
formatPretty: (view) => {
|
|
53
|
-
return options.brief ? formatOrientBrief(view) : formatOrient(view);
|
|
134
|
+
return options.brief ? formatOrientBrief(view, vocabCtx) : formatOrient(view, vocabCtx);
|
|
54
135
|
},
|
|
55
136
|
});
|
|
137
|
+
// WP-376 α.3: fire-and-forget byte report. Match what the user actually saw —
|
|
138
|
+
// JSON-stringified data for piped/JSON mode, formatted text for TTY.
|
|
139
|
+
if (capturedView != null) {
|
|
140
|
+
try {
|
|
141
|
+
let rendered;
|
|
142
|
+
if (isJsonMode()) {
|
|
143
|
+
rendered = JSON.stringify(stripConvexInternals(capturedView));
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
rendered = options.brief ? formatOrientBrief(capturedView, vocabCtx) : formatOrient(capturedView, vocabCtx);
|
|
147
|
+
}
|
|
148
|
+
const bytes = Buffer.byteLength(rendered, 'utf8');
|
|
149
|
+
// DEC-NEW: resolved tier mirrors the kernel rule (the response carries no
|
|
150
|
+
// tier field) — explicit --full, else task-conditional default.
|
|
151
|
+
const resolvedTier = options.full ? 'full' : taskIsMeaningful(options.task) ? 'summary' : 'standard';
|
|
152
|
+
reportOrientCliBytes(bytes, capturedTruncated, resolvedTier, taskIsMeaningful(options.task));
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
// Best-effort observability — never fail the command on measurement.
|
|
156
|
+
}
|
|
157
|
+
}
|
|
56
158
|
}
|
|
57
159
|
//# sourceMappingURL=orient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orient.js","sourceRoot":"","sources":["../../src/commands/orient.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"orient.js","sourceRoot":"","sources":["../../src/commands/orient.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,23 +21,10 @@ export declare function runProfileCreate(opts: {
|
|
|
21
21
|
apiKey: string;
|
|
22
22
|
url?: string;
|
|
23
23
|
}): Promise<void>;
|
|
24
|
-
/**
|
|
25
|
-
* pb profile use <name> [--local]
|
|
26
|
-
*
|
|
27
|
-
* Without --local (default): switch global active profile.
|
|
28
|
-
* - Closes any active session (TEN-1277: session orphaning)
|
|
29
|
-
* - Resets config cache so next getConfig() reads the new profile
|
|
30
|
-
* - Clears env vars so they get re-read from the new profile
|
|
31
|
-
*
|
|
32
|
-
* With --local: write profile pin to .productbrain/config.local.json
|
|
33
|
-
* in the walked-up project root.
|
|
34
|
-
* - Does NOT update global active-profile
|
|
35
|
-
* - Does NOT close session (local switch doesn't orphan server session)
|
|
36
|
-
* - Throws CLIError if no project root found
|
|
37
|
-
*/
|
|
38
24
|
export declare function runProfileUse(opts: {
|
|
39
25
|
name: string;
|
|
40
26
|
local?: boolean;
|
|
27
|
+
global?: boolean;
|
|
41
28
|
}): Promise<void>;
|
|
42
29
|
/** pb profile delete <name> */
|
|
43
30
|
export declare function runProfileDelete(opts: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/commands/profile.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/commands/profile.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAeH,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;CAC3C,CAAC;AAEF,wBAAgB,uBAAuB,IAAI,iBAAiB,CAQ3D;AAED,4DAA4D;AAC5D,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAuBpD;AAED,6DAA6D;AAC7D,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,IAAI,CAAC,CAQhB;AAaD,wBAAsB,aAAa,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA8F5G;AAUD,+BAA+B;AAC/B,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ5E"}
|
package/dist/commands/profile.js
CHANGED
|
@@ -5,12 +5,11 @@
|
|
|
5
5
|
* Uses runCliCommand pattern from runner.ts for JSON/pretty output.
|
|
6
6
|
* Uses CLIError from errors.ts for structured error reporting.
|
|
7
7
|
*/
|
|
8
|
-
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
|
|
9
|
-
import { resolve } from 'path';
|
|
10
8
|
import { runCliCommand } from '../lib/runner.js';
|
|
11
9
|
import { listProfiles, getActiveProfile, createProfile, useProfile, deleteProfile, } from '../lib/profiles.js';
|
|
12
|
-
import { readSession,
|
|
13
|
-
import { resetConfigCache, findProjectRoot, readLocalProjectConfig } from '../lib/config.js';
|
|
10
|
+
import { readSession, discardSession, sessionFileExists } from '../lib/session.js';
|
|
11
|
+
import { resetConfigCache, findProjectRoot, readLocalProjectConfig, setLocalProfilePin } from '../lib/config.js';
|
|
12
|
+
import { probeWorkspace } from '../lib/workspace-probe.js';
|
|
14
13
|
import { CLIError, ErrorCode } from '../lib/errors.js';
|
|
15
14
|
export function resolveProfileListState() {
|
|
16
15
|
const profiles = listProfiles();
|
|
@@ -55,86 +54,104 @@ export async function runProfileCreate(opts) {
|
|
|
55
54
|
formatPretty: (data) => `Profile "${data.name}" created.`,
|
|
56
55
|
});
|
|
57
56
|
}
|
|
58
|
-
/**
|
|
59
|
-
* pb profile use <name> [--local]
|
|
60
|
-
*
|
|
61
|
-
* Without --local (default): switch global active profile.
|
|
62
|
-
* - Closes any active session (TEN-1277: session orphaning)
|
|
63
|
-
* - Resets config cache so next getConfig() reads the new profile
|
|
64
|
-
* - Clears env vars so they get re-read from the new profile
|
|
65
|
-
*
|
|
66
|
-
* With --local: write profile pin to .productbrain/config.local.json
|
|
67
|
-
* in the walked-up project root.
|
|
68
|
-
* - Does NOT update global active-profile
|
|
69
|
-
* - Does NOT close session (local switch doesn't orphan server session)
|
|
70
|
-
* - Throws CLIError if no project root found
|
|
71
|
-
*/
|
|
72
57
|
export async function runProfileUse(opts) {
|
|
73
|
-
if (opts.local) {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
throw new CLIError('No .productbrain/ directory found in this directory tree. Run `pb connect` first or use `pb profile use <name>` (without --local) to switch globally.', {
|
|
79
|
-
code: ErrorCode.CONFIG_INVALID,
|
|
80
|
-
category: 'config',
|
|
81
|
-
guidance: 'Run `pb connect <token>` to set up a project workspace, or omit --local to switch globally.',
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
const configDir = resolve(projectRoot, '.productbrain');
|
|
85
|
-
const localConfigPath = resolve(configDir, 'config.local.json');
|
|
86
|
-
// Read existing local config to preserve other fields
|
|
87
|
-
let existingLocal = {};
|
|
88
|
-
if (existsSync(localConfigPath)) {
|
|
89
|
-
try {
|
|
90
|
-
existingLocal = JSON.parse(readFileSync(localConfigPath, 'utf8'));
|
|
91
|
-
}
|
|
92
|
-
catch { /* ignore parse errors */ }
|
|
93
|
-
}
|
|
94
|
-
const localConfig = { ...existingLocal, profile: opts.name };
|
|
95
|
-
mkdirSync(configDir, { recursive: true });
|
|
96
|
-
writeFileSync(localConfigPath, JSON.stringify(localConfig, null, 2) + '\n');
|
|
97
|
-
return {
|
|
98
|
-
name: opts.name,
|
|
99
|
-
local: true,
|
|
100
|
-
projectRoot,
|
|
101
|
-
};
|
|
102
|
-
},
|
|
103
|
-
formatPretty: (data) => {
|
|
104
|
-
return `Local profile set to "${data.name}" in ${data.projectRoot}/.productbrain/config.local.json`;
|
|
105
|
-
},
|
|
58
|
+
if (opts.local && opts.global) {
|
|
59
|
+
throw new CLIError('Cannot use both --local and --global.', {
|
|
60
|
+
code: ErrorCode.VALIDATION_FAILED,
|
|
61
|
+
category: 'validation',
|
|
62
|
+
guidance: 'Pick one: --local (repo pin only), --global (global only), or neither (reconcile both).',
|
|
106
63
|
});
|
|
107
|
-
return;
|
|
108
64
|
}
|
|
109
|
-
// Default: global profile switch
|
|
110
65
|
await runCliCommand({
|
|
111
66
|
fn: async () => {
|
|
112
|
-
|
|
113
|
-
const
|
|
114
|
-
|
|
115
|
-
|
|
67
|
+
const projectRoot = findProjectRoot(process.cwd());
|
|
68
|
+
const localPin = readLocalProjectConfig()?.profile ?? null;
|
|
69
|
+
// PB_PROFILE always wins resolution (by design). If it's set, ANY profile write
|
|
70
|
+
// here is shadowed — surface that instead of failing silently (the TEN-2163 trap).
|
|
71
|
+
const PB_PROFILE = process.env.PB_PROFILE?.trim() || null;
|
|
72
|
+
const resetEnv = () => {
|
|
73
|
+
resetConfigCache();
|
|
74
|
+
delete process.env.PRODUCTBRAIN_API_KEY;
|
|
75
|
+
delete process.env.CONVEX_SITE_URL;
|
|
76
|
+
};
|
|
77
|
+
// Discard ANY session file (active OR stale closed marker) — a closed marker would
|
|
78
|
+
// let the 2h auto-resume re-pin the old workspace. Report only an ACTIVE session
|
|
79
|
+
// in the print line.
|
|
80
|
+
const discardSessionState = () => {
|
|
81
|
+
const hadActive = readSession() !== null;
|
|
82
|
+
if (sessionFileExists())
|
|
83
|
+
discardSession();
|
|
84
|
+
return hadActive;
|
|
85
|
+
};
|
|
86
|
+
// --- --local: repo pin only ---
|
|
87
|
+
if (opts.local) {
|
|
88
|
+
if (!projectRoot) {
|
|
89
|
+
throw new CLIError('No .productbrain/ directory found in this directory tree. Run `pb connect` first or use `pb use <name> --global` to switch globally.', { code: ErrorCode.CONFIG_INVALID, category: 'config',
|
|
90
|
+
guidance: 'Run `pb connect <token>` to set up a project workspace, or use --global.' });
|
|
91
|
+
}
|
|
92
|
+
setLocalProfilePin(projectRoot, opts.name);
|
|
93
|
+
const sessionCleared = discardSessionState();
|
|
94
|
+
resetEnv();
|
|
95
|
+
return { name: opts.name, scope: 'local', reconciledLocalPin: false,
|
|
96
|
+
sessionCleared, workspace: await safeProbe(), pinnedElsewhere: null, 'PB_PROFILE': PB_PROFILE };
|
|
116
97
|
}
|
|
98
|
+
// --- --global: global only (does not change a locally-pinned repo) ---
|
|
99
|
+
if (opts.global) {
|
|
100
|
+
useProfile(opts.name);
|
|
101
|
+
const pinnedElsewhere = localPin && localPin !== opts.name ? localPin : null;
|
|
102
|
+
// The repo's effective workspace only changes when it is NOT pinned elsewhere.
|
|
103
|
+
const sessionCleared = pinnedElsewhere ? false : discardSessionState();
|
|
104
|
+
resetEnv();
|
|
105
|
+
const workspace = pinnedElsewhere ? null : await safeProbe();
|
|
106
|
+
return { name: opts.name, scope: 'global', reconciledLocalPin: false,
|
|
107
|
+
sessionCleared, workspace, pinnedElsewhere, 'PB_PROFILE': PB_PROFILE };
|
|
108
|
+
}
|
|
109
|
+
// --- default: flip global AND reconcile the repo pin if one exists ---
|
|
117
110
|
useProfile(opts.name);
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
};
|
|
111
|
+
let reconciledLocalPin = false;
|
|
112
|
+
if (projectRoot && localPin) {
|
|
113
|
+
setLocalProfilePin(projectRoot, opts.name);
|
|
114
|
+
reconciledLocalPin = true;
|
|
115
|
+
}
|
|
116
|
+
const sessionCleared = discardSessionState();
|
|
117
|
+
resetEnv();
|
|
118
|
+
return { name: opts.name, scope: 'reconcile', reconciledLocalPin,
|
|
119
|
+
sessionCleared, workspace: await safeProbe(), pinnedElsewhere: null, 'PB_PROFILE': PB_PROFILE };
|
|
128
120
|
},
|
|
129
|
-
formatPretty: (
|
|
130
|
-
|
|
131
|
-
if (
|
|
132
|
-
|
|
121
|
+
formatPretty: (d) => {
|
|
122
|
+
const lines = [];
|
|
123
|
+
if (d.scope === 'global') {
|
|
124
|
+
const arrow = d.workspace ? ` → ${d.workspace}` : '';
|
|
125
|
+
lines.push(`Switched global profile to "${d.name}"${arrow}.`);
|
|
126
|
+
if (d.pinnedElsewhere) {
|
|
127
|
+
lines.push(`Note: this repo is pinned to "${d.pinnedElsewhere}" via config.local.json — the global switch won't change it here.`);
|
|
128
|
+
lines.push(`Run \`pb use ${d.name}\` (no flag) to switch this repo too.`);
|
|
129
|
+
}
|
|
133
130
|
}
|
|
134
|
-
|
|
131
|
+
else {
|
|
132
|
+
const arrow = d.workspace ? ` → ${d.workspace}` : '';
|
|
133
|
+
const where = d.scope === 'local' ? ' (repo-local)' : '';
|
|
134
|
+
lines.push(`Now using "${d.name}"${where}${arrow}`);
|
|
135
|
+
if (d.reconciledLocalPin)
|
|
136
|
+
lines.push('(updated repo-local pin in .productbrain/config.local.json)');
|
|
137
|
+
}
|
|
138
|
+
if (d.sessionCleared)
|
|
139
|
+
lines.push('(previous session closed)');
|
|
140
|
+
if (d['PB_PROFILE']) {
|
|
141
|
+
lines.push(`⚠ PB_PROFILE is set to "${d['PB_PROFILE']}" in your environment and overrides profile resolution.`);
|
|
142
|
+
lines.push(` This switch won't take effect until you unset it: \`unset PB_PROFILE\`.`);
|
|
143
|
+
}
|
|
144
|
+
return lines.join('\n');
|
|
135
145
|
},
|
|
136
146
|
});
|
|
137
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* Best-effort workspace name after a profile switch; null on any failure.
|
|
150
|
+
* probeWorkspace() already swallows network/auth errors and returns null, so this is offline-safe.
|
|
151
|
+
*/
|
|
152
|
+
async function safeProbe() {
|
|
153
|
+
return (await probeWorkspace())?.name ?? null;
|
|
154
|
+
}
|
|
138
155
|
/** pb profile delete <name> */
|
|
139
156
|
export async function runProfileDelete(opts) {
|
|
140
157
|
await runCliCommand({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/commands/profile.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/commands/profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/commands/session.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAuCH,wBAAsB,eAAe,CAAC,OAAO,GAAE;IAC7C,wFAAwF;IACxF,IAAI,CAAC,EAAE,OAAO,CAAA;CACV,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/commands/session.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAuCH,wBAAsB,eAAe,CAAC,OAAO,GAAE;IAC7C,wFAAwF;IACxF,IAAI,CAAC,EAAE,OAAO,CAAA;CACV,GAAG,OAAO,CAAC,IAAI,CAAC,CA2IrB;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAUnC;AAED,wBAAsB,eAAe,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAqFtF"}
|
package/dist/commands/session.js
CHANGED
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { getConfigOrGuide } from '../lib/config.js';
|
|
9
9
|
import { kernelCall } from '../lib/client.js';
|
|
10
|
-
import { readSession, writeSession, clearSession, readClosedMarker } from '../lib/session.js';
|
|
10
|
+
import { readSession, writeSession, clearSession, discardSession, readClosedMarker } from '../lib/session.js';
|
|
11
11
|
import { isJsonMode } from '../lib/runner.js';
|
|
12
12
|
import { formatSessionStart, formatSessionClose } from '../formatters/session.js';
|
|
13
13
|
import { runHandshake } from './handshake.js';
|
|
14
14
|
import { CLIError, ErrorCode } from '../lib/errors.js';
|
|
15
15
|
import { getActiveProfile } from '../lib/profiles.js';
|
|
16
|
-
import { readLocalProjectConfig } from '../lib/config.js';
|
|
16
|
+
import { readLocalProjectConfig, resolveEffectiveProfile } from '../lib/config.js';
|
|
17
17
|
/** 2-hour window for auto-resume (WP-322 E1). */
|
|
18
18
|
const RESUME_WINDOW_MS = 2 * 60 * 60 * 1000;
|
|
19
19
|
export async function runSessionStart(options = {}) {
|
|
@@ -22,10 +22,21 @@ export async function runSessionStart(options = {}) {
|
|
|
22
22
|
return;
|
|
23
23
|
// Support both legacy --json flag and global output mode (DEC-299, backward compat)
|
|
24
24
|
const json = isJsonMode() || options.json === true;
|
|
25
|
+
// Effective profile for this start — used both for the switch-backstop decision and to
|
|
26
|
+
// stamp the session (one read, one value, so they can't disagree mid-start).
|
|
27
|
+
const effectiveProfile = resolveEffectiveProfile().profile;
|
|
25
28
|
// Check for existing session
|
|
26
29
|
const existing = readSession();
|
|
27
30
|
if (existing) {
|
|
28
|
-
|
|
31
|
+
// Backstop (TEN-2163): if the effective profile changed since this session started,
|
|
32
|
+
// it's pinned to the old workspace — discard it and start fresh. Local, offline-safe.
|
|
33
|
+
const currentProfile = effectiveProfile;
|
|
34
|
+
const switched = existing.profile && currentProfile && existing.profile !== currentProfile;
|
|
35
|
+
if (switched) {
|
|
36
|
+
discardSession();
|
|
37
|
+
// fall through to the fresh-start path below
|
|
38
|
+
}
|
|
39
|
+
else if (json) {
|
|
29
40
|
process.stdout.write(JSON.stringify({
|
|
30
41
|
sessionId: existing.sessionId,
|
|
31
42
|
workspaceName: existing.workspaceName,
|
|
@@ -35,12 +46,14 @@ export async function runSessionStart(options = {}) {
|
|
|
35
46
|
}) + '\n');
|
|
36
47
|
return;
|
|
37
48
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
49
|
+
else {
|
|
50
|
+
process.stdout.write(`Session already active: ${existing.sessionId}\n`);
|
|
51
|
+
process.stdout.write(`Started: ${existing.startedAt}\n`);
|
|
52
|
+
process.stdout.write(`Entries captured: ${existing.entriesCaptured.length}\n`);
|
|
53
|
+
process.stdout.write('\n');
|
|
54
|
+
process.stdout.write('Run `pb session close` to end it, or `pb session close --force` to force-close.\n');
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
44
57
|
}
|
|
45
58
|
// WP-322 E1: Check for a recent closed session — auto-resume within 2h window
|
|
46
59
|
const closedMarker = readClosedMarker();
|
|
@@ -65,6 +78,7 @@ export async function runSessionStart(options = {}) {
|
|
|
65
78
|
workspaceName: resumed.workspaceName,
|
|
66
79
|
startedAt: new Date().toISOString(),
|
|
67
80
|
entriesCaptured: [],
|
|
81
|
+
profile: effectiveProfile ?? undefined,
|
|
68
82
|
};
|
|
69
83
|
writeSession(state);
|
|
70
84
|
if (json) {
|
|
@@ -119,6 +133,7 @@ export async function runSessionStart(options = {}) {
|
|
|
119
133
|
workspaceName: result.workspaceName,
|
|
120
134
|
startedAt: new Date().toISOString(),
|
|
121
135
|
entriesCaptured: [],
|
|
136
|
+
profile: effectiveProfile ?? undefined,
|
|
122
137
|
};
|
|
123
138
|
writeSession(state);
|
|
124
139
|
if (json) {
|
|
@@ -186,18 +201,40 @@ export async function runSessionClose(options = {}) {
|
|
|
186
201
|
}
|
|
187
202
|
catch (err) {
|
|
188
203
|
if (!options.force) {
|
|
189
|
-
|
|
204
|
+
const detail = err instanceof Error ? err.message : String(err);
|
|
205
|
+
throw new CLIError(`Failed to close session: ${detail}. Run \`pb session close --force\` to clear local state anyway.`, {
|
|
190
206
|
code: ErrorCode.NETWORK_UNREACHABLE,
|
|
191
207
|
category: 'network',
|
|
192
|
-
guidance: '
|
|
208
|
+
guidance: 'Run `pb session close --force` to clear local state anyway.',
|
|
193
209
|
});
|
|
194
210
|
}
|
|
195
211
|
}
|
|
196
212
|
process.stdout.write(formatSessionClose(session) + '\n');
|
|
213
|
+
// WP-439 S6: surface unrepaired setup-asset receipts as a non-blocking
|
|
214
|
+
// advisory. Failures here are silent — never let a network blip or schema
|
|
215
|
+
// gap prevent a session from closing.
|
|
216
|
+
try {
|
|
217
|
+
const advisory = await kernelCall('setup.listFailedAuditReceipts', {});
|
|
218
|
+
if (advisory.total > 0) {
|
|
219
|
+
const preview = advisory.entries
|
|
220
|
+
.slice(0, 3)
|
|
221
|
+
.map((e) => `${e.entryId} (${e.status})`)
|
|
222
|
+
.join(', ');
|
|
223
|
+
const more = advisory.total > 3 ? ` and ${advisory.total - 3} more` : '';
|
|
224
|
+
process.stdout.write(`\nNote: ${advisory.total} unrepaired setup-asset receipt(s) on file — ${preview}${more}.\n` +
|
|
225
|
+
'Run `pb setup-audit` to inspect; `pb setup-audit --repair` to retry.\n');
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
catch {
|
|
229
|
+
// Advisory call failure is non-fatal.
|
|
230
|
+
}
|
|
197
231
|
// Clear local state
|
|
198
232
|
clearSession();
|
|
199
|
-
// Refresh context files so next session starts with updated knowledge
|
|
233
|
+
// Refresh context files so next session starts with updated knowledge.
|
|
234
|
+
// WP-439 S4: internal handshake runs lenient — strict-mode failures from an
|
|
235
|
+
// automatic refresh would block close; orphans are surfaced via the
|
|
236
|
+
// advisory above + `pb handshake` (called directly) instead.
|
|
200
237
|
process.stdout.write('Refreshing context...\n');
|
|
201
|
-
await runHandshake({ force: false, apply: true });
|
|
238
|
+
await runHandshake({ force: false, apply: true, lenient: true });
|
|
202
239
|
}
|
|
203
240
|
//# sourceMappingURL=session.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/commands/session.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAqB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/commands/session.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAqB,MAAM,mBAAmB,CAAC;AACjI,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAqBnF,iDAAiD;AACjD,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAO5C,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,UAGlC,EAAE;IACJ,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IACtE,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,oFAAoF;IACpF,MAAM,IAAI,GAAG,UAAU,EAAE,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC;IAEnD,uFAAuF;IACvF,6EAA6E;IAC7E,MAAM,gBAAgB,GAAG,uBAAuB,EAAE,CAAC,OAAO,CAAC;IAE3D,6BAA6B;IAC7B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAI,QAAQ,EAAE,CAAC;QACb,oFAAoF;QACpF,sFAAsF;QACtF,MAAM,cAAc,GAAG,gBAAgB,CAAC;QACxC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,IAAI,cAAc,IAAI,QAAQ,CAAC,OAAO,KAAK,cAAc,CAAC;QAC3F,IAAI,QAAQ,EAAE,CAAC;YACb,cAAc,EAAE,CAAC;YACjB,6CAA6C;QAC/C,CAAC;aAAM,IAAI,IAAI,EAAE,CAAC;YAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;gBAClC,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,aAAa,EAAE,QAAQ,CAAC,aAAa;gBACrC,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,aAAa,EAAE,IAAI;gBACnB,aAAa,EAAE,sBAAsB,EAAE,EAAE,OAAO,IAAI,gBAAgB,EAAE;aACvE,CAAC,GAAG,IAAI,CAAC,CAAC;YACX,OAAO;QACT,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC;YACxE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC;YACzD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,QAAQ,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,CAAC;YAC/E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mFAAmF,CAAC,CAAC;YAC1G,OAAO;QACT,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAC;IACxC,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;QACvE,IAAI,OAAO,GAAG,gBAAgB,EAAE,CAAC;YAC/B,4DAA4D;YAC5D,MAAM,WAAW,GAAG,MAAM,UAAU,CAAyB,kBAAkB,EAAE,EAAE,CAAC,CAAC;YACrF,IAAI,WAAW,EAAE,KAAK,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI;oBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACzD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAsB,qBAAqB,EAAE;oBAC3E,WAAW,EAAE,WAAW,CAAC,GAAG;oBAC5B,QAAQ,EAAE,WAAW,CAAC,KAAK;oBAC3B,iBAAiB,EAAE,YAAY,CAAC,SAAS;oBACzC,UAAU,EAAE,KAAK;iBAClB,CAAC,CAAC;gBACH,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrD,MAAM,KAAK,GAAiB;oBAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,WAAW,EAAE,WAAW,CAAC,GAAG;oBAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;oBACpC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,eAAe,EAAE,EAAE;oBACnB,OAAO,EAAE,gBAAgB,IAAI,SAAS;iBACvC,CAAC;gBACF,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,IAAI,EAAE,CAAC;oBACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;wBAClC,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;wBAClC,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,OAAO,EAAE,IAAI;wBACb,uBAAuB,EAAE,YAAY,CAAC,SAAS;wBAC/C,aAAa,EAAE,sBAAsB,EAAE,EAAE,OAAO,IAAI,gBAAgB,EAAE;qBACvE,CAAC,GAAG,IAAI,CAAC,CAAC;oBACX,MAAM,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC/D,OAAO;gBACT,CAAC;gBACD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;gBACjD,MAAM,YAAY,GAAG,WAAW,GAAG,EAAE;oBACnC,CAAC,CAAC,GAAG,WAAW,OAAO;oBACvB,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC;gBAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,WAAW,YAAY,YAAY,KAAK,CAAC,CAAC;gBAChG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,EAAE,OAAO,IAAI,gBAAgB,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC3H,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBAChD,MAAM,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClD,OAAO;YACT,CAAC;QACH,CAAC;aAAM,CAAC;YACN,gEAAgE;YAChE,YAAY,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,MAAM,SAAS,GAAG,MAAM,UAAU,CAAyB,kBAAkB,EAAE,EAAE,CAAC,CAAC;IACnF,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;QACtB,MAAM,IAAI,QAAQ,CAAC,wEAAwE,EAAE;YAC3F,IAAI,EAAE,SAAS,CAAC,YAAY;YAC5B,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,oEAAoE;SAC/E,CAAC,CAAC;IACL,CAAC;IAED,4DAA4D;IAC5D,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAqB,oBAAoB,EAAE;QACxE,WAAW,EAAE,SAAS,CAAC,GAAG;QAC1B,QAAQ,EAAE,SAAS,CAAC,KAAK;QACzB,UAAU,EAAE,KAAK;KAClB,CAAC,CAAC;IAEH,wBAAwB;IACxB,MAAM,KAAK,GAAiB;QAC1B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,WAAW,EAAE,SAAS,CAAC,GAAG;QAC1B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,eAAe,EAAE,EAAE;QACnB,OAAO,EAAE,gBAAgB,IAAI,SAAS;KACvC,CAAC;IACF,YAAY,CAAC,KAAK,CAAC,CAAC;IAEpB,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YAClC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,aAAa,EAAE,gBAAgB,EAAE;SAClC,CAAC,GAAG,IAAI,CAAC,CAAC;QACX,gCAAgC;QAChC,MAAM,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,OAAO;IACT,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,sBAAsB,EAAE,EAAE,OAAO,IAAI,gBAAgB,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAEnI,wBAAwB;IACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAChD,MAAM,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,QAAQ,CAAC,oBAAoB,EAAE;YACvC,IAAI,EAAE,SAAS,CAAC,gBAAgB;YAChC,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE,+BAA+B;SAC1C,CAAC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,UAA+B,EAAE;IACrE,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IACtE,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC9E,OAAO;IACT,CAAC;IAED,wBAAwB;IACxB,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;IACpD,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,oBAAoB,EAAE;gBACrC,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,cAAc,EAAE,YAAY;gBAC5B,eAAe,EAAE,CAAC,EAAE,kDAAkD;gBACtE,YAAY,EAAE,CAAC;aAChB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,uDAAuD;YACvD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,KAAK,CAAC,CAAC;QACrH,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,oBAAoB,EAAE;YACrC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChE,MAAM,IAAI,QAAQ,CAChB,4BAA4B,MAAM,iEAAiE,EACnG;gBACE,IAAI,EAAE,SAAS,CAAC,mBAAmB;gBACnC,QAAQ,EAAE,SAAS;gBACnB,QAAQ,EAAE,6DAA6D;aACxE,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAEzD,uEAAuE;IACvE,0EAA0E;IAC1E,sCAAsC;IACtC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,UAAU,CAQ9B,+BAA+B,EAAE,EAAE,CAAC,CAAC;QACxC,IAAI,QAAQ,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO;iBAC7B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;iBACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;iBACxC,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,QAAQ,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,WAAW,QAAQ,CAAC,KAAK,gDAAgD,OAAO,GAAG,IAAI,KAAK;gBAC1F,wEAAwE,CAC3E,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sCAAsC;IACxC,CAAC;IAED,oBAAoB;IACpB,YAAY,EAAE,CAAC;IAEf,uEAAuE;IACvE,4EAA4E;IAC5E,oEAAoE;IACpE,6DAA6D;IAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAChD,MAAM,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACnE,CAAC"}
|