@productbrain/cli 0.1.0-beta.99 → 0.1.0-beta.997
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 +19 -4
- package/dist/commands/authority-domains.js.map +1 -1
- package/dist/commands/capture.d.ts.map +1 -1
- package/dist/commands/capture.js +5 -3
- 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 +1538 -46
- package/dist/commands/handshake.js.map +1 -1
- package/dist/commands/method.d.ts.map +1 -1
- package/dist/commands/method.js +5 -1
- 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/reject.d.ts.map +1 -1
- package/dist/commands/reject.js +2 -1
- package/dist/commands/reject.js.map +1 -1
- package/dist/commands/relate.d.ts.map +1 -1
- package/dist/commands/relate.js +4 -2
- package/dist/commands/relate.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/update.d.ts.map +1 -1
- package/dist/commands/update.js +2 -1
- 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/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +2 -1
- package/dist/commands/verify.js.map +1 -1
- 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
|
@@ -0,0 +1,454 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 4 formatter tests — provenanceMark, brief governance block,
|
|
3
|
+
* full orient governance list markers, entry formatter Authority line.
|
|
4
|
+
* DEC-1141/DEC-1142/DEC-1143.
|
|
5
|
+
*/
|
|
6
|
+
import { describe, expect, it } from 'vitest';
|
|
7
|
+
import { provenanceMark, formatOrient, formatOrientBrief } from '../orient.js';
|
|
8
|
+
import { formatEntry } from '../entry.js';
|
|
9
|
+
// ─── provenanceMark ──────────────────────────────────────────────────────────
|
|
10
|
+
describe('provenanceMark (Phase 4 DEC-1141)', () => {
|
|
11
|
+
it('returns ★ + space for authoritative', () => {
|
|
12
|
+
expect(provenanceMark('authoritative')).toBe('★ ');
|
|
13
|
+
});
|
|
14
|
+
it('returns ~ + space for provisional', () => {
|
|
15
|
+
expect(provenanceMark('provisional')).toBe('~ ');
|
|
16
|
+
});
|
|
17
|
+
it('returns · + space for floor', () => {
|
|
18
|
+
expect(provenanceMark('floor')).toBe('· ');
|
|
19
|
+
});
|
|
20
|
+
it('returns empty string for undefined', () => {
|
|
21
|
+
expect(provenanceMark(undefined)).toBe('');
|
|
22
|
+
});
|
|
23
|
+
it('returns empty string for unknown value', () => {
|
|
24
|
+
expect(provenanceMark('unknown-tier')).toBe('');
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
// ─── Minimal orient view builder ─────────────────────────────────────────────
|
|
28
|
+
function makeView(overrides = {}) {
|
|
29
|
+
return {
|
|
30
|
+
stage: 'grounded',
|
|
31
|
+
strategicContext: {
|
|
32
|
+
vision: null,
|
|
33
|
+
purpose: null,
|
|
34
|
+
activeBetCount: 0,
|
|
35
|
+
currentWorkPackage: null,
|
|
36
|
+
activeTensionCount: 0,
|
|
37
|
+
productAreas: [],
|
|
38
|
+
productAreaCount: 0,
|
|
39
|
+
},
|
|
40
|
+
activeWorkPackages: [],
|
|
41
|
+
governance: {
|
|
42
|
+
principles: [],
|
|
43
|
+
standards: [],
|
|
44
|
+
businessRules: [],
|
|
45
|
+
},
|
|
46
|
+
tensions: [],
|
|
47
|
+
architectureNotes: [],
|
|
48
|
+
proposals: [],
|
|
49
|
+
absenceSignals: [],
|
|
50
|
+
plannedWork: {
|
|
51
|
+
uncommittedDrafts: [],
|
|
52
|
+
inProgressEntries: [],
|
|
53
|
+
openTensions: [],
|
|
54
|
+
},
|
|
55
|
+
priorSessions: [],
|
|
56
|
+
recoveryBlock: null,
|
|
57
|
+
...overrides,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
// ─── formatOrientBrief: compact governance block ─────────────────────────────
|
|
61
|
+
describe('formatOrientBrief — compact governance-provenance block (DEC-1143)', () => {
|
|
62
|
+
it('renders governance block with provenance markers when entries present', () => {
|
|
63
|
+
const view = makeView({
|
|
64
|
+
governance: {
|
|
65
|
+
principles: [{ entryId: 'PRI-1', name: 'Ship fast', collectionSlug: 'principles', status: 'active', provenance: 'authoritative' }],
|
|
66
|
+
standards: [{ entryId: 'STD-42', name: 'No magic numbers', collectionSlug: 'standards', status: 'active', provenance: 'provisional' }],
|
|
67
|
+
businessRules: [{ entryId: 'BR-7', name: 'Fail closed', collectionSlug: 'business-rules', status: 'active', provenance: 'floor' }],
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
const out = formatOrientBrief(view);
|
|
71
|
+
expect(out).toContain('Governance:');
|
|
72
|
+
expect(out).toContain('★ PRI-1');
|
|
73
|
+
expect(out).toContain('~ STD-42');
|
|
74
|
+
expect(out).toContain('· BR-7');
|
|
75
|
+
});
|
|
76
|
+
it('omits governance block when all buckets are empty', () => {
|
|
77
|
+
const view = makeView();
|
|
78
|
+
const out = formatOrientBrief(view);
|
|
79
|
+
expect(out).not.toContain('Governance:');
|
|
80
|
+
});
|
|
81
|
+
it('slices to top 5 entries across all governance buckets', () => {
|
|
82
|
+
const makePrinciple = (n) => ({
|
|
83
|
+
entryId: `PRI-${n}`,
|
|
84
|
+
name: `Principle ${n}`,
|
|
85
|
+
collectionSlug: 'principles',
|
|
86
|
+
status: 'active',
|
|
87
|
+
provenance: 'floor',
|
|
88
|
+
});
|
|
89
|
+
const view = makeView({
|
|
90
|
+
governance: {
|
|
91
|
+
principles: [1, 2, 3, 4, 5, 6].map(makePrinciple),
|
|
92
|
+
standards: [],
|
|
93
|
+
businessRules: [],
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
const out = formatOrientBrief(view);
|
|
97
|
+
// Only 5 entries should appear.
|
|
98
|
+
expect(out).toContain('PRI-1');
|
|
99
|
+
expect(out).toContain('PRI-5');
|
|
100
|
+
expect(out).not.toContain('PRI-6');
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
// ─── formatOrient: governance list shows markers ─────────────────────────────
|
|
104
|
+
describe('formatOrient — governance section shows provenance markers', () => {
|
|
105
|
+
it('renders ★ for authoritative principle in full orient', () => {
|
|
106
|
+
const view = makeView({
|
|
107
|
+
governance: {
|
|
108
|
+
principles: [{ entryId: 'PRI-1', name: 'Test principle', collectionSlug: 'principles', status: 'active', provenance: 'authoritative', anchoredBy: 'Eng Team' }],
|
|
109
|
+
standards: [],
|
|
110
|
+
businessRules: [],
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
const out = formatOrient(view);
|
|
114
|
+
expect(out).toContain('★ PRI-1');
|
|
115
|
+
expect(out).toContain('(Eng Team)');
|
|
116
|
+
});
|
|
117
|
+
it('renders ~ for provisional standard', () => {
|
|
118
|
+
const view = makeView({
|
|
119
|
+
governance: {
|
|
120
|
+
principles: [],
|
|
121
|
+
standards: [{ entryId: 'STD-1', name: 'Provisional std', collectionSlug: 'standards', status: 'active', provenance: 'provisional' }],
|
|
122
|
+
businessRules: [],
|
|
123
|
+
},
|
|
124
|
+
});
|
|
125
|
+
const out = formatOrient(view);
|
|
126
|
+
expect(out).toContain('~ STD-1');
|
|
127
|
+
});
|
|
128
|
+
it('renders · for floor business rule', () => {
|
|
129
|
+
const view = makeView({
|
|
130
|
+
governance: {
|
|
131
|
+
principles: [],
|
|
132
|
+
standards: [],
|
|
133
|
+
businessRules: [{ entryId: 'BR-1', name: 'Floor rule', collectionSlug: 'business-rules', status: 'active', provenance: 'floor' }],
|
|
134
|
+
},
|
|
135
|
+
});
|
|
136
|
+
const out = formatOrient(view);
|
|
137
|
+
expect(out).toContain('· BR-1');
|
|
138
|
+
});
|
|
139
|
+
it('entries without provenance render without a marker (no orphaned space prefix)', () => {
|
|
140
|
+
const view = makeView({
|
|
141
|
+
governance: {
|
|
142
|
+
principles: [{ entryId: 'PRI-99', name: 'Legacy entry', collectionSlug: 'principles', status: 'active' }],
|
|
143
|
+
standards: [],
|
|
144
|
+
businessRules: [],
|
|
145
|
+
},
|
|
146
|
+
});
|
|
147
|
+
const out = formatOrient(view);
|
|
148
|
+
// Should contain the entry id without a provenance-mark prefix.
|
|
149
|
+
expect(out).toContain('PRI-99');
|
|
150
|
+
expect(out).not.toMatch(/[★~·] PRI-99/);
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
// ─── formatEntry: Authority line ─────────────────────────────────────────────
|
|
154
|
+
describe('formatEntry — Authority line (Phase 4 DEC-1141)', () => {
|
|
155
|
+
const baseEntry = {
|
|
156
|
+
entryId: 'DEC-42',
|
|
157
|
+
name: 'Use server auth context',
|
|
158
|
+
canonicalKey: 'decision',
|
|
159
|
+
status: 'active',
|
|
160
|
+
};
|
|
161
|
+
it('renders Authority line for authoritative entry with anchoredBy', () => {
|
|
162
|
+
const out = formatEntry({ ...baseEntry, provenance: 'authoritative', anchoredBy: 'Architecture Team' });
|
|
163
|
+
expect(out).toContain('Authority: ★ authoritative — anchoredBy Architecture Team');
|
|
164
|
+
});
|
|
165
|
+
it('renders Authority line for provisional entry without anchoredBy', () => {
|
|
166
|
+
const out = formatEntry({ ...baseEntry, provenance: 'provisional' });
|
|
167
|
+
expect(out).toContain('Authority: ~ provisional');
|
|
168
|
+
expect(out).not.toContain('anchoredBy');
|
|
169
|
+
});
|
|
170
|
+
it('renders Authority line for floor entry', () => {
|
|
171
|
+
const out = formatEntry({ ...baseEntry, provenance: 'floor' });
|
|
172
|
+
expect(out).toContain('Authority: · floor');
|
|
173
|
+
});
|
|
174
|
+
it('omits Authority line when provenance is absent (non-governance entry)', () => {
|
|
175
|
+
const out = formatEntry({ ...baseEntry, status: 'active' });
|
|
176
|
+
expect(out).not.toContain('Authority:');
|
|
177
|
+
});
|
|
178
|
+
it('surfaces why once: renders Why line and omits the source field from the Data block', () => {
|
|
179
|
+
const out = formatEntry({
|
|
180
|
+
...baseEntry,
|
|
181
|
+
provenance: 'authoritative',
|
|
182
|
+
why: 'We derive identity from server auth context.',
|
|
183
|
+
data: { rationale: 'We derive identity from server auth context.', scope: 'org' },
|
|
184
|
+
});
|
|
185
|
+
expect(out).toContain('Why: We derive identity from server auth context.');
|
|
186
|
+
// rationale is surfaced as Why — it must NOT also appear in the Data block.
|
|
187
|
+
expect(out).not.toContain('rationale:');
|
|
188
|
+
// other data fields still render.
|
|
189
|
+
expect(out).toContain('scope: org');
|
|
190
|
+
});
|
|
191
|
+
it('still renders the Data block when no why is present', () => {
|
|
192
|
+
const out = formatEntry({ ...baseEntry, data: { rationale: 'keep me', scope: 'org' } });
|
|
193
|
+
expect(out).toContain('Data:');
|
|
194
|
+
expect(out).toContain('rationale: keep me');
|
|
195
|
+
});
|
|
196
|
+
it('arch-note: description is not printed twice — suppressed from Data block, surfaced once as Why (whyField threaded)', () => {
|
|
197
|
+
// Architecture notes have no `rationale` field — the kernel resolves
|
|
198
|
+
// whyField='description' and threads it back. The formatter must suppress
|
|
199
|
+
// `description` from the Data block so it appears only as the Why line.
|
|
200
|
+
const archDesc = 'Architecture note describing the system boundary for this component.';
|
|
201
|
+
const out = formatEntry({
|
|
202
|
+
...baseEntry,
|
|
203
|
+
canonicalKey: 'architecture_note',
|
|
204
|
+
provenance: 'authoritative',
|
|
205
|
+
why: archDesc,
|
|
206
|
+
whyQuality: 'rationale',
|
|
207
|
+
whyField: 'description',
|
|
208
|
+
data: { description: archDesc },
|
|
209
|
+
});
|
|
210
|
+
expect(out).toContain(`Why: ${archDesc}`);
|
|
211
|
+
// description must NOT appear again in the Data block.
|
|
212
|
+
expect(out).not.toContain('description:');
|
|
213
|
+
});
|
|
214
|
+
it('arch-note with extra fields: description suppressed, other fields still render', () => {
|
|
215
|
+
const archDesc = 'Describes the caching boundary for service calls.';
|
|
216
|
+
const out = formatEntry({
|
|
217
|
+
...baseEntry,
|
|
218
|
+
canonicalKey: 'architecture_note',
|
|
219
|
+
provenance: 'provisional',
|
|
220
|
+
why: archDesc,
|
|
221
|
+
whyQuality: 'rationale',
|
|
222
|
+
whyField: 'description',
|
|
223
|
+
data: { description: archDesc, scope: 'service' },
|
|
224
|
+
});
|
|
225
|
+
expect(out).toContain(`Why: ${archDesc}`);
|
|
226
|
+
expect(out).not.toContain('description:');
|
|
227
|
+
expect(out).toContain('scope: service');
|
|
228
|
+
});
|
|
229
|
+
});
|
|
230
|
+
// ─── formatEntry: whyQuality self-announcing Why line (TEN-2191) ──────────────
|
|
231
|
+
describe('formatEntry — whyQuality Why line (TEN-2191)', () => {
|
|
232
|
+
const baseEntry = {
|
|
233
|
+
entryId: 'DEC-42',
|
|
234
|
+
name: 'Use server auth context',
|
|
235
|
+
canonicalKey: 'decision',
|
|
236
|
+
status: 'active',
|
|
237
|
+
};
|
|
238
|
+
it("renders a plain Why line for whyQuality 'rationale'", () => {
|
|
239
|
+
const out = formatEntry({
|
|
240
|
+
...baseEntry,
|
|
241
|
+
provenance: 'authoritative',
|
|
242
|
+
why: 'We derive identity from the server auth context.',
|
|
243
|
+
whyQuality: 'rationale',
|
|
244
|
+
data: { rationale: 'We derive identity from the server auth context.' },
|
|
245
|
+
});
|
|
246
|
+
expect(out).toContain('Why: We derive identity from the server auth context.');
|
|
247
|
+
expect(out).not.toContain('(restated)');
|
|
248
|
+
expect(out).not.toContain('no rationale captured');
|
|
249
|
+
// rationale surfaced as Why — not duplicated in Data.
|
|
250
|
+
expect(out).not.toContain('rationale:');
|
|
251
|
+
});
|
|
252
|
+
it("appends (restated) for whyQuality 'restated'", () => {
|
|
253
|
+
const out = formatEntry({
|
|
254
|
+
...baseEntry,
|
|
255
|
+
provenance: 'provisional',
|
|
256
|
+
why: 'Use server auth context',
|
|
257
|
+
whyQuality: 'restated',
|
|
258
|
+
data: { rationale: 'Use server auth context' },
|
|
259
|
+
});
|
|
260
|
+
expect(out).toContain('Why: Use server auth context (restated)');
|
|
261
|
+
});
|
|
262
|
+
it("renders the absence marker for whyQuality 'missing' and prints no rationale text", () => {
|
|
263
|
+
const out = formatEntry({
|
|
264
|
+
...baseEntry,
|
|
265
|
+
provenance: 'floor',
|
|
266
|
+
whyQuality: 'missing',
|
|
267
|
+
// A floor entry that only ever had a description — no rationale, no `why`.
|
|
268
|
+
data: { description: 'Some legacy description that is NOT a rationale.' },
|
|
269
|
+
});
|
|
270
|
+
expect(out).toContain('Why: — (no rationale captured)');
|
|
271
|
+
// The description must NOT be promoted into the Why line.
|
|
272
|
+
expect(out).not.toContain('Why: Some legacy description');
|
|
273
|
+
});
|
|
274
|
+
it('falls back to legacy behavior when whyQuality is absent (non-governance entry)', () => {
|
|
275
|
+
const out = formatEntry({ ...baseEntry, why: 'a derived why', data: { rationale: 'a derived why' } });
|
|
276
|
+
expect(out).toContain('Why: a derived why');
|
|
277
|
+
expect(out).not.toContain('(restated)');
|
|
278
|
+
});
|
|
279
|
+
});
|
|
280
|
+
// ─── TEN-2191: whyQuality honesty signal in TTY orient formatEntryList ────────
|
|
281
|
+
describe('formatOrient — whyQuality honesty signal in governance bullets (TEN-2191)', () => {
|
|
282
|
+
it("appends '— no rationale captured' for whyQuality 'missing' governance entry", () => {
|
|
283
|
+
const view = makeView({
|
|
284
|
+
governance: {
|
|
285
|
+
principles: [{ entryId: 'PRI-10', name: 'Fail closed', collectionSlug: 'principles', status: 'active', provenance: 'authoritative', whyQuality: 'missing' }],
|
|
286
|
+
standards: [],
|
|
287
|
+
businessRules: [],
|
|
288
|
+
},
|
|
289
|
+
});
|
|
290
|
+
const out = formatOrient(view);
|
|
291
|
+
expect(out).toContain('PRI-10');
|
|
292
|
+
expect(out).toContain('no rationale captured');
|
|
293
|
+
});
|
|
294
|
+
it("appends '— rationale restates name' for whyQuality 'restated' governance entry", () => {
|
|
295
|
+
const view = makeView({
|
|
296
|
+
governance: {
|
|
297
|
+
principles: [],
|
|
298
|
+
standards: [{ entryId: 'STD-99', name: 'Use server auth', collectionSlug: 'standards', status: 'active', provenance: 'provisional', whyQuality: 'restated' }],
|
|
299
|
+
businessRules: [],
|
|
300
|
+
},
|
|
301
|
+
});
|
|
302
|
+
const out = formatOrient(view);
|
|
303
|
+
expect(out).toContain('STD-99');
|
|
304
|
+
expect(out).toContain('rationale restates name');
|
|
305
|
+
});
|
|
306
|
+
it("adds no extra marker for whyQuality 'rationale' (healthy entry — no noise)", () => {
|
|
307
|
+
const view = makeView({
|
|
308
|
+
governance: {
|
|
309
|
+
principles: [],
|
|
310
|
+
standards: [],
|
|
311
|
+
businessRules: [{ entryId: 'BR-5', name: 'Scope by workspaceId', collectionSlug: 'business-rules', status: 'active', provenance: 'authoritative', whyQuality: 'rationale' }],
|
|
312
|
+
},
|
|
313
|
+
});
|
|
314
|
+
const out = formatOrient(view);
|
|
315
|
+
expect(out).toContain('BR-5');
|
|
316
|
+
expect(out).not.toContain('no rationale captured');
|
|
317
|
+
expect(out).not.toContain('rationale restates name');
|
|
318
|
+
});
|
|
319
|
+
it('adds no marker when whyQuality is absent (non-governance or legacy entry)', () => {
|
|
320
|
+
const view = makeView({
|
|
321
|
+
governance: {
|
|
322
|
+
principles: [{ entryId: 'PRI-1', name: 'Legacy entry', collectionSlug: 'principles', status: 'active' }],
|
|
323
|
+
standards: [],
|
|
324
|
+
businessRules: [],
|
|
325
|
+
},
|
|
326
|
+
});
|
|
327
|
+
const out = formatOrient(view);
|
|
328
|
+
expect(out).toContain('PRI-1');
|
|
329
|
+
expect(out).not.toContain('no rationale captured');
|
|
330
|
+
expect(out).not.toContain('rationale restates name');
|
|
331
|
+
});
|
|
332
|
+
it("appends '— no rationale captured' in binding governance (startup) bullets", () => {
|
|
333
|
+
const view = makeView({
|
|
334
|
+
startup: {
|
|
335
|
+
groundingStatus: 'grounded',
|
|
336
|
+
confidence: 'high',
|
|
337
|
+
totalFound: 1,
|
|
338
|
+
seeds: [],
|
|
339
|
+
bindingGovernance: {
|
|
340
|
+
principles: [{ entryId: 'PRI-20', name: 'No magic strings', collectionSlug: 'principles', provenance: 'authoritative', whyQuality: 'missing' }],
|
|
341
|
+
standards: [],
|
|
342
|
+
businessRules: [],
|
|
343
|
+
},
|
|
344
|
+
steeringContext: [],
|
|
345
|
+
supportingContext: [],
|
|
346
|
+
taskProfile: { workType: 'implementation', domain: 'governance', keywords: [] },
|
|
347
|
+
},
|
|
348
|
+
});
|
|
349
|
+
const out = formatOrient(view);
|
|
350
|
+
expect(out).toContain('PRI-20');
|
|
351
|
+
expect(out).toContain('no rationale captured');
|
|
352
|
+
});
|
|
353
|
+
});
|
|
354
|
+
// ─── STD-219 §4 (DEC-1147): grounding-stub self-announcing signal ─────────────
|
|
355
|
+
describe('formatOrient — grounding stub signal', () => {
|
|
356
|
+
it('renders the grounding-stub note when taskContext.isGroundingStub is set', () => {
|
|
357
|
+
const view = makeView({
|
|
358
|
+
taskContext: {
|
|
359
|
+
seeds: [],
|
|
360
|
+
context: [{ entryId: 'E-1', name: 'e', collectionSlug: 'standards', score: 9, hop: 1 }],
|
|
361
|
+
totalFound: 1,
|
|
362
|
+
confidence: 'high',
|
|
363
|
+
isGroundingStub: true,
|
|
364
|
+
groundingNote: 'Grounding stub only — fetch full context with tier=standard before complex decisions.',
|
|
365
|
+
},
|
|
366
|
+
});
|
|
367
|
+
const out = formatOrient(view);
|
|
368
|
+
expect(out).toContain('Grounding stub only');
|
|
369
|
+
expect(out).toContain('tier=standard');
|
|
370
|
+
});
|
|
371
|
+
it('does not render a stub note for normal (non-stub) taskContext', () => {
|
|
372
|
+
const view = makeView({
|
|
373
|
+
taskContext: {
|
|
374
|
+
seeds: [],
|
|
375
|
+
context: [{ entryId: 'E-1', name: 'e', collectionSlug: 'standards', score: 9, hop: 1 }],
|
|
376
|
+
totalFound: 1,
|
|
377
|
+
confidence: 'high',
|
|
378
|
+
},
|
|
379
|
+
});
|
|
380
|
+
const out = formatOrient(view);
|
|
381
|
+
expect(out).not.toContain('Grounding stub only');
|
|
382
|
+
});
|
|
383
|
+
});
|
|
384
|
+
// ─── FIX 2 — uncommittedDrafts whyQuality render (TEN-2191) ──────────────────
|
|
385
|
+
//
|
|
386
|
+
// The orient kernel attaches whyQuality on governance drafts. The formatter must
|
|
387
|
+
// surface the honesty signal on draft bullets consistently with formatEntryList's
|
|
388
|
+
// treatment of active governance entries (same marker text, PRI-17 least-noise).
|
|
389
|
+
describe('formatOrient — uncommittedDraft whyQuality honesty signal (FIX 2, TEN-2191)', () => {
|
|
390
|
+
it("appends '— no rationale captured' for a governance draft with whyQuality 'missing'", () => {
|
|
391
|
+
const view = makeView({
|
|
392
|
+
plannedWork: {
|
|
393
|
+
uncommittedDrafts: [{ name: 'Scope reads by workspaceId', collection: 'standards', whyQuality: 'missing' }],
|
|
394
|
+
inProgressEntries: [],
|
|
395
|
+
openTensions: [],
|
|
396
|
+
},
|
|
397
|
+
});
|
|
398
|
+
const out = formatOrient(view);
|
|
399
|
+
expect(out).toContain('Scope reads by workspaceId');
|
|
400
|
+
expect(out).toContain('no rationale captured');
|
|
401
|
+
});
|
|
402
|
+
it("appends '— rationale restates name' for a governance draft with whyQuality 'restated'", () => {
|
|
403
|
+
const view = makeView({
|
|
404
|
+
plannedWork: {
|
|
405
|
+
uncommittedDrafts: [{ name: 'Use server auth context', collection: 'decisions', whyQuality: 'restated' }],
|
|
406
|
+
inProgressEntries: [],
|
|
407
|
+
openTensions: [],
|
|
408
|
+
},
|
|
409
|
+
});
|
|
410
|
+
const out = formatOrient(view);
|
|
411
|
+
expect(out).toContain('Use server auth context');
|
|
412
|
+
expect(out).toContain('rationale restates name');
|
|
413
|
+
});
|
|
414
|
+
it("adds no extra marker for a healthy governance draft (whyQuality 'rationale')", () => {
|
|
415
|
+
const view = makeView({
|
|
416
|
+
plannedWork: {
|
|
417
|
+
uncommittedDrafts: [{ name: 'Fail closed on missing identity', collection: 'business-rules', whyQuality: 'rationale' }],
|
|
418
|
+
inProgressEntries: [],
|
|
419
|
+
openTensions: [],
|
|
420
|
+
},
|
|
421
|
+
});
|
|
422
|
+
const out = formatOrient(view);
|
|
423
|
+
expect(out).toContain('Fail closed on missing identity');
|
|
424
|
+
expect(out).not.toContain('no rationale captured');
|
|
425
|
+
expect(out).not.toContain('rationale restates name');
|
|
426
|
+
});
|
|
427
|
+
it('adds no marker for a non-governance draft (no whyQuality — TEN-2187 transparency path)', () => {
|
|
428
|
+
const view = makeView({
|
|
429
|
+
plannedWork: {
|
|
430
|
+
uncommittedDrafts: [{ name: 'Ship the feature X', collection: 'work_packages', why: 'Some description context' }],
|
|
431
|
+
inProgressEntries: [],
|
|
432
|
+
openTensions: [],
|
|
433
|
+
},
|
|
434
|
+
});
|
|
435
|
+
const out = formatOrient(view);
|
|
436
|
+
expect(out).toContain('Ship the feature X');
|
|
437
|
+
expect(out).not.toContain('no rationale captured');
|
|
438
|
+
expect(out).not.toContain('rationale restates name');
|
|
439
|
+
});
|
|
440
|
+
it('adds no marker for an open-mode draft (legacy shape — no whyQuality)', () => {
|
|
441
|
+
const view = makeView({
|
|
442
|
+
plannedWork: {
|
|
443
|
+
uncommittedDrafts: [{ name: 'Legacy draft', collection: 'decisions' }],
|
|
444
|
+
inProgressEntries: [],
|
|
445
|
+
openTensions: [],
|
|
446
|
+
},
|
|
447
|
+
});
|
|
448
|
+
const out = formatOrient(view);
|
|
449
|
+
expect(out).toContain('Legacy draft');
|
|
450
|
+
expect(out).not.toContain('no rationale captured');
|
|
451
|
+
expect(out).not.toContain('rationale restates name');
|
|
452
|
+
});
|
|
453
|
+
});
|
|
454
|
+
//# sourceMappingURL=orient-provenance.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orient-provenance.test.js","sourceRoot":"","sources":["../../../src/formatters/__tests__/orient-provenance.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,12 @@ export interface GateResult {
|
|
|
17
17
|
fix?: string;
|
|
18
18
|
fixType?: 'exact' | 'template' | 'manual';
|
|
19
19
|
hint?: string;
|
|
20
|
+
/** WP-438 S1: per-field flags indicating unresolved {{vocab:...}} tokens. */
|
|
21
|
+
tokens?: {
|
|
22
|
+
detail: boolean;
|
|
23
|
+
fix: boolean;
|
|
24
|
+
hint: boolean;
|
|
25
|
+
};
|
|
20
26
|
}
|
|
21
27
|
export interface AuditResult {
|
|
22
28
|
entryId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/formatters/audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/formatters/audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,MAAM,CAAC,EAAE;QACP,MAAM,EAAE,OAAO,CAAC;QAChB,GAAG,EAAE,OAAO,CAAC;QACb,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAClC,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,kBAAuB,GAAG,MAAM,CAiEzF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAMjE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/formatters/audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/formatters/audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,6 +34,27 @@ export interface EntryFromApi {
|
|
|
34
34
|
}>;
|
|
35
35
|
relations?: EntryRelation[];
|
|
36
36
|
history?: EntryHistoryEvent[];
|
|
37
|
+
/** Phase 4 (DEC-1141): authority provenance for active governance entries. */
|
|
38
|
+
provenance?: 'authoritative' | 'provisional' | 'floor';
|
|
39
|
+
/** Phase 4 (DEC-1142): team name when anchor resolves — render hint, never a gate. */
|
|
40
|
+
anchoredBy?: string;
|
|
41
|
+
/** Phase 4: WHY captured at write time (rationale only — TEN-2191 dropped the description fallback). */
|
|
42
|
+
why?: string;
|
|
43
|
+
/**
|
|
44
|
+
* TEN-2191: quality of the captured WHY for active governance entries.
|
|
45
|
+
* 'rationale' = a real rationale; 'restated' = rationale merely echoes the name;
|
|
46
|
+
* 'missing' = no rationale captured. Drives a self-announcing Why line.
|
|
47
|
+
*/
|
|
48
|
+
whyQuality?: 'rationale' | 'missing' | 'restated';
|
|
49
|
+
/**
|
|
50
|
+
* Kernel-resolved WHY-source field for this entry's collection (Codex finding,
|
|
51
|
+
* TEN-2191). 'rationale' for standard governance collections; 'description' for
|
|
52
|
+
* architecture notes (which have no `rationale` field). Used by formatEntry to
|
|
53
|
+
* suppress exactly the source field from the Data block so it is not printed
|
|
54
|
+
* twice alongside the Why line. When absent (older kernels), falls back to
|
|
55
|
+
* rationale-detection based on entry.why / data.rationale equality.
|
|
56
|
+
*/
|
|
57
|
+
whyField?: 'rationale' | 'description';
|
|
37
58
|
}
|
|
38
59
|
/** Format full entry for terminal output — data fields, relations (with type labels), last 10 history events. */
|
|
39
60
|
export declare function formatEntry(entry: EntryFromApi): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../src/formatters/entry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../src/formatters/entry.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;IACxC,kFAAkF;IAClF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,kBAAkB,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IAC/C,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,8EAA8E;IAC9E,UAAU,CAAC,EAAE,eAAe,GAAG,aAAa,GAAG,OAAO,CAAC;IACvD,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wGAAwG;IACxG,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,UAAU,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;IAClD;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC;CACxC;AAUD,iHAAiH;AACjH,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAwGvD"}
|
package/dist/formatters/entry.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Chain: DEC-186 (CLI uses Convex view model with CLI-native formatting).
|
|
4
4
|
*/
|
|
5
5
|
import { stripControlChars } from '../lib/strip.js';
|
|
6
|
+
import { provenanceMark } from './orient.js';
|
|
6
7
|
function sanitizeData(data) {
|
|
7
8
|
if (!data || typeof data !== 'object')
|
|
8
9
|
return undefined;
|
|
@@ -32,15 +33,55 @@ export function formatEntry(entry) {
|
|
|
32
33
|
if (entry.sourceExcerpt) {
|
|
33
34
|
lines.push(`Source excerpt: ${s(entry.sourceExcerpt)}`);
|
|
34
35
|
}
|
|
36
|
+
// Phase 4 (DEC-1141): authority provenance line for active governance entries.
|
|
37
|
+
if (entry.provenance) {
|
|
38
|
+
const mark = provenanceMark(entry.provenance).trim();
|
|
39
|
+
const anchorPart = entry.anchoredBy ? ` — anchoredBy ${s(entry.anchoredBy)}` : '';
|
|
40
|
+
lines.push(`Authority: ${mark} ${s(entry.provenance)}${anchorPart}`);
|
|
41
|
+
}
|
|
42
|
+
// Phase 4 (BET-238 E5): surface rationale first-class when present and not already
|
|
43
|
+
// surfaced via entry.data.rationale in the Data block below.
|
|
44
|
+
// TEN-2191 (honesty patch): WHY is rationale-only and whyQuality announces its
|
|
45
|
+
// quality, so a missing or restated rationale is visible instead of silently
|
|
46
|
+
// dropped or masked by description boilerplate:
|
|
47
|
+
// - 'missing' → "Why: — (no rationale captured)" (no `why` text exists)
|
|
48
|
+
// - 'restated' → "Why: <text> (restated)"
|
|
49
|
+
// - else (real rationale, or legacy non-governance entry with a `why`) → "Why: <text>"
|
|
50
|
+
if (entry.whyQuality === 'missing') {
|
|
51
|
+
lines.push(`Why: — (no rationale captured)`);
|
|
52
|
+
}
|
|
53
|
+
else if (entry.why) {
|
|
54
|
+
const suffix = entry.whyQuality === 'restated' ? ' (restated)' : '';
|
|
55
|
+
lines.push(`Why: ${s(entry.why)}${suffix}`);
|
|
56
|
+
}
|
|
57
|
+
const d = entry.data ?? {};
|
|
58
|
+
// Suppress the WHY-source field from the Data block so it isn't printed twice
|
|
59
|
+
// alongside the Why line. Prefer the kernel-threaded whyField ('rationale' for
|
|
60
|
+
// standard governance, 'description' for architecture notes whose write gate
|
|
61
|
+
// resolves WHY to description). Fall back to rationale-detection for older
|
|
62
|
+
// kernels that don't thread whyField. (Codex finding, TEN-2191, STD-218 parity.)
|
|
63
|
+
let whySourceKey = null;
|
|
64
|
+
if (entry.why) {
|
|
65
|
+
const kf = entry.whyField;
|
|
66
|
+
if ((kf === 'rationale' || kf === 'description') && typeof d[kf] === 'string' && d[kf].trim().length > 0) {
|
|
67
|
+
whySourceKey = kf;
|
|
68
|
+
}
|
|
69
|
+
else if (typeof d.rationale === 'string' && d.rationale.trim().length > 0) {
|
|
70
|
+
whySourceKey = 'rationale';
|
|
71
|
+
}
|
|
72
|
+
}
|
|
35
73
|
lines.push('');
|
|
36
74
|
const data = sanitizeData(entry.data);
|
|
37
75
|
if (data) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
76
|
+
const dataEntries = Object.entries(data).filter(([key]) => key !== whySourceKey);
|
|
77
|
+
if (dataEntries.length > 0) {
|
|
78
|
+
lines.push('Data:');
|
|
79
|
+
for (const [key, val] of dataEntries) {
|
|
80
|
+
const display = typeof val === 'string' ? val : JSON.stringify(val);
|
|
81
|
+
lines.push(` ${s(key)}: ${s(display)}`);
|
|
82
|
+
}
|
|
83
|
+
lines.push('');
|
|
42
84
|
}
|
|
43
|
-
lines.push('');
|
|
44
85
|
}
|
|
45
86
|
if (Array.isArray(entry.tags) && entry.tags.length > 0) {
|
|
46
87
|
lines.push(`Tags: ${entry.tags.map(s).join(', ')}`);
|