@productbrain/cli 0.1.0-beta.1131 → 0.1.0-beta.11318
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -4
- package/dist/__tests__/adapters.test.js +79 -53
- package/dist/__tests__/adapters.test.js.map +1 -1
- package/dist/__tests__/adminConfig.test.d.ts +18 -0
- package/dist/__tests__/adminConfig.test.d.ts.map +1 -0
- package/dist/__tests__/adminConfig.test.js +221 -0
- package/dist/__tests__/adminConfig.test.js.map +1 -0
- package/dist/__tests__/batch-transformations.test.js +2 -26
- package/dist/__tests__/batch-transformations.test.js.map +1 -1
- package/dist/__tests__/capture-receipt-coaching.test.d.ts +2 -0
- package/dist/__tests__/capture-receipt-coaching.test.d.ts.map +1 -0
- package/dist/__tests__/capture-receipt-coaching.test.js +108 -0
- package/dist/__tests__/capture-receipt-coaching.test.js.map +1 -0
- package/dist/__tests__/capture-receipt-role-hint.test.d.ts +2 -0
- package/dist/__tests__/capture-receipt-role-hint.test.d.ts.map +1 -0
- package/dist/__tests__/capture-receipt-role-hint.test.js +64 -0
- package/dist/__tests__/capture-receipt-role-hint.test.js.map +1 -0
- package/dist/__tests__/capture-receipt-spine-floor.test.d.ts +2 -0
- package/dist/__tests__/capture-receipt-spine-floor.test.d.ts.map +1 -0
- package/dist/__tests__/capture-receipt-spine-floor.test.js +45 -0
- package/dist/__tests__/capture-receipt-spine-floor.test.js.map +1 -0
- package/dist/__tests__/capture.test.js +437 -231
- package/dist/__tests__/capture.test.js.map +1 -1
- package/dist/__tests__/cli-error-once.test.d.ts +2 -0
- package/dist/__tests__/cli-error-once.test.d.ts.map +1 -0
- package/dist/__tests__/cli-error-once.test.js +51 -0
- package/dist/__tests__/cli-error-once.test.js.map +1 -0
- package/dist/__tests__/client-binding-guard.test.d.ts +2 -0
- package/dist/__tests__/client-binding-guard.test.d.ts.map +1 -0
- package/dist/__tests__/client-binding-guard.test.js +84 -0
- package/dist/__tests__/client-binding-guard.test.js.map +1 -0
- package/dist/__tests__/coaching-mirror-drift.test.d.ts +2 -0
- package/dist/__tests__/coaching-mirror-drift.test.d.ts.map +1 -0
- package/dist/__tests__/coaching-mirror-drift.test.js +50 -0
- package/dist/__tests__/coaching-mirror-drift.test.js.map +1 -0
- package/dist/__tests__/codex-prep-parity.test.d.ts +2 -0
- package/dist/__tests__/codex-prep-parity.test.d.ts.map +1 -0
- package/dist/__tests__/codex-prep-parity.test.js +84 -0
- package/dist/__tests__/codex-prep-parity.test.js.map +1 -0
- package/dist/__tests__/config-prod-fallthrough.test.d.ts +2 -0
- package/dist/__tests__/config-prod-fallthrough.test.d.ts.map +1 -0
- package/dist/__tests__/config-prod-fallthrough.test.js +93 -0
- package/dist/__tests__/config-prod-fallthrough.test.js.map +1 -0
- package/dist/__tests__/config.test.js +559 -40
- package/dist/__tests__/config.test.js.map +1 -1
- package/dist/__tests__/constellation.test.js +26 -14
- package/dist/__tests__/constellation.test.js.map +1 -1
- package/dist/__tests__/conversation.test.d.ts +2 -0
- package/dist/__tests__/conversation.test.d.ts.map +1 -0
- package/dist/__tests__/conversation.test.js +113 -0
- package/dist/__tests__/conversation.test.js.map +1 -0
- package/dist/__tests__/entry-formatter.test.d.ts +2 -0
- package/dist/__tests__/entry-formatter.test.d.ts.map +1 -0
- package/dist/__tests__/entry-formatter.test.js +228 -0
- package/dist/__tests__/entry-formatter.test.js.map +1 -0
- package/dist/__tests__/entry-preflight.test.d.ts +2 -0
- package/dist/__tests__/entry-preflight.test.d.ts.map +1 -0
- package/dist/__tests__/entry-preflight.test.js +58 -0
- package/dist/__tests__/entry-preflight.test.js.map +1 -0
- package/dist/__tests__/entryAccept-batch.test.d.ts +2 -0
- package/dist/__tests__/entryAccept-batch.test.d.ts.map +1 -0
- package/dist/__tests__/entryAccept-batch.test.js +305 -0
- package/dist/__tests__/entryAccept-batch.test.js.map +1 -0
- package/dist/__tests__/entryAccept.test.d.ts +2 -0
- package/dist/__tests__/entryAccept.test.d.ts.map +1 -0
- package/dist/__tests__/entryAccept.test.js +582 -0
- package/dist/__tests__/entryAccept.test.js.map +1 -0
- package/dist/__tests__/entryDiscardResolve.test.d.ts +2 -0
- package/dist/__tests__/entryDiscardResolve.test.d.ts.map +1 -0
- package/dist/__tests__/entryDiscardResolve.test.js +28 -0
- package/dist/__tests__/entryDiscardResolve.test.js.map +1 -0
- package/dist/__tests__/entryOwn.test.d.ts +2 -0
- package/dist/__tests__/entryOwn.test.d.ts.map +1 -0
- package/dist/__tests__/entryOwn.test.js +50 -0
- package/dist/__tests__/entryOwn.test.js.map +1 -0
- package/dist/__tests__/entryTick.test.d.ts +2 -0
- package/dist/__tests__/entryTick.test.d.ts.map +1 -0
- package/dist/__tests__/entryTick.test.js +40 -0
- package/dist/__tests__/entryTick.test.js.map +1 -0
- package/dist/__tests__/envelope-contract.test.js +2 -0
- package/dist/__tests__/envelope-contract.test.js.map +1 -1
- package/dist/__tests__/errors.test.js +41 -0
- package/dist/__tests__/errors.test.js.map +1 -1
- package/dist/__tests__/fields.test.js +14 -3
- package/dist/__tests__/fields.test.js.map +1 -1
- package/dist/__tests__/gateway-dry-run-timeout.test.d.ts +2 -0
- package/dist/__tests__/gateway-dry-run-timeout.test.d.ts.map +1 -0
- package/dist/__tests__/gateway-dry-run-timeout.test.js +70 -0
- package/dist/__tests__/gateway-dry-run-timeout.test.js.map +1 -0
- package/dist/__tests__/gateway-timeout-body-phase.test.d.ts +2 -0
- package/dist/__tests__/gateway-timeout-body-phase.test.d.ts.map +1 -0
- package/dist/__tests__/gateway-timeout-body-phase.test.js +116 -0
- package/dist/__tests__/gateway-timeout-body-phase.test.js.map +1 -0
- package/dist/__tests__/glossary.test.js +10 -27
- package/dist/__tests__/glossary.test.js.map +1 -1
- package/dist/__tests__/health-gap-kinds-drift.test.d.ts +2 -0
- package/dist/__tests__/health-gap-kinds-drift.test.d.ts.map +1 -0
- package/dist/__tests__/health-gap-kinds-drift.test.js +43 -0
- package/dist/__tests__/health-gap-kinds-drift.test.js.map +1 -0
- package/dist/__tests__/hook-intents.test.js +31 -43
- package/dist/__tests__/hook-intents.test.js.map +1 -1
- package/dist/__tests__/init.test.d.ts +2 -1
- package/dist/__tests__/init.test.d.ts.map +1 -1
- package/dist/__tests__/init.test.js +159 -20
- package/dist/__tests__/init.test.js.map +1 -1
- package/dist/__tests__/kernel-value-sets-drift.test.d.ts +2 -0
- package/dist/__tests__/kernel-value-sets-drift.test.d.ts.map +1 -0
- package/dist/__tests__/kernel-value-sets-drift.test.js +46 -0
- package/dist/__tests__/kernel-value-sets-drift.test.js.map +1 -0
- package/dist/__tests__/kernel-value-sets-generator.test.d.ts +2 -0
- package/dist/__tests__/kernel-value-sets-generator.test.d.ts.map +1 -0
- package/dist/__tests__/kernel-value-sets-generator.test.js +108 -0
- package/dist/__tests__/kernel-value-sets-generator.test.js.map +1 -0
- package/dist/__tests__/login.test.js +18 -1
- package/dist/__tests__/login.test.js.map +1 -1
- package/dist/__tests__/missingPin.test.d.ts +11 -0
- package/dist/__tests__/missingPin.test.d.ts.map +1 -0
- package/dist/__tests__/missingPin.test.js +232 -0
- package/dist/__tests__/missingPin.test.js.map +1 -0
- package/dist/__tests__/notice-marker.test.js +146 -11
- package/dist/__tests__/notice-marker.test.js.map +1 -1
- package/dist/__tests__/orient.test.js +368 -38
- package/dist/__tests__/orient.test.js.map +1 -1
- package/dist/__tests__/perimeter.test.js +1 -1
- package/dist/__tests__/perimeter.test.js.map +1 -1
- package/dist/__tests__/preview-key-refresh.test.js +73 -13
- package/dist/__tests__/preview-key-refresh.test.js.map +1 -1
- package/dist/__tests__/profiles.test.js +498 -8
- package/dist/__tests__/profiles.test.js.map +1 -1
- package/dist/__tests__/prompts.test.js +18 -1
- package/dist/__tests__/prompts.test.js.map +1 -1
- package/dist/__tests__/rate-limit-resilience.test.d.ts +8 -0
- package/dist/__tests__/rate-limit-resilience.test.d.ts.map +1 -0
- package/dist/__tests__/rate-limit-resilience.test.js +191 -0
- package/dist/__tests__/rate-limit-resilience.test.js.map +1 -0
- package/dist/__tests__/read-target-notice.test.d.ts +2 -0
- package/dist/__tests__/read-target-notice.test.d.ts.map +1 -0
- package/dist/__tests__/read-target-notice.test.js +125 -0
- package/dist/__tests__/read-target-notice.test.js.map +1 -0
- package/dist/__tests__/relate.test.js +246 -14
- package/dist/__tests__/relate.test.js.map +1 -1
- package/dist/__tests__/removed-commands.test.d.ts +2 -0
- package/dist/__tests__/removed-commands.test.d.ts.map +1 -0
- package/dist/__tests__/removed-commands.test.js +99 -0
- package/dist/__tests__/removed-commands.test.js.map +1 -0
- package/dist/__tests__/reply-commands-registered.test.d.ts +2 -0
- package/dist/__tests__/reply-commands-registered.test.d.ts.map +1 -0
- package/dist/__tests__/reply-commands-registered.test.js +81 -0
- package/dist/__tests__/reply-commands-registered.test.js.map +1 -0
- package/dist/__tests__/repo-detect.test.js +18 -38
- package/dist/__tests__/repo-detect.test.js.map +1 -1
- package/dist/__tests__/reportedProfile.test.d.ts +2 -0
- package/dist/__tests__/reportedProfile.test.d.ts.map +1 -0
- package/dist/__tests__/reportedProfile.test.js +328 -0
- package/dist/__tests__/reportedProfile.test.js.map +1 -0
- package/dist/__tests__/restore.test.d.ts +2 -0
- package/dist/__tests__/restore.test.d.ts.map +1 -0
- package/dist/__tests__/restore.test.js +85 -0
- package/dist/__tests__/restore.test.js.map +1 -0
- package/dist/__tests__/route-latency-budget.test.d.ts +2 -0
- package/dist/__tests__/route-latency-budget.test.d.ts.map +1 -0
- package/dist/__tests__/route-latency-budget.test.js +107 -0
- package/dist/__tests__/route-latency-budget.test.js.map +1 -0
- package/dist/__tests__/runner.test.js +59 -44
- package/dist/__tests__/runner.test.js.map +1 -1
- package/dist/__tests__/session-binding-refusal-tenant.test.d.ts +2 -0
- package/dist/__tests__/session-binding-refusal-tenant.test.d.ts.map +1 -0
- package/dist/__tests__/session-binding-refusal-tenant.test.js +112 -0
- package/dist/__tests__/session-binding-refusal-tenant.test.js.map +1 -0
- package/dist/__tests__/session-close-conversation.test.d.ts +2 -0
- package/dist/__tests__/session-close-conversation.test.d.ts.map +1 -0
- package/dist/__tests__/session-close-conversation.test.js +75 -0
- package/dist/__tests__/session-close-conversation.test.js.map +1 -0
- package/dist/__tests__/session-close-loop.test.d.ts +2 -0
- package/dist/__tests__/session-close-loop.test.d.ts.map +1 -0
- package/dist/__tests__/session-close-loop.test.js +259 -0
- package/dist/__tests__/session-close-loop.test.js.map +1 -0
- package/dist/__tests__/session-label.test.d.ts +2 -0
- package/dist/__tests__/session-label.test.d.ts.map +1 -0
- package/dist/__tests__/session-label.test.js +46 -0
- package/dist/__tests__/session-label.test.js.map +1 -0
- package/dist/__tests__/session-list-show.test.d.ts +2 -0
- package/dist/__tests__/session-list-show.test.d.ts.map +1 -0
- package/dist/__tests__/session-list-show.test.js +173 -0
- package/dist/__tests__/session-list-show.test.js.map +1 -0
- package/dist/__tests__/session-pinned-role.test.d.ts +2 -0
- package/dist/__tests__/session-pinned-role.test.d.ts.map +1 -0
- package/dist/__tests__/session-pinned-role.test.js +305 -0
- package/dist/__tests__/session-pinned-role.test.js.map +1 -0
- package/dist/__tests__/session-reset.test.js +23 -7
- package/dist/__tests__/session-reset.test.js.map +1 -1
- package/dist/__tests__/session-resume-backstop.test.js +42 -0
- package/dist/__tests__/session-resume-backstop.test.js.map +1 -1
- package/dist/__tests__/session-role-name-sanitize.test.d.ts +2 -0
- package/dist/__tests__/session-role-name-sanitize.test.d.ts.map +1 -0
- package/dist/__tests__/session-role-name-sanitize.test.js +122 -0
- package/dist/__tests__/session-role-name-sanitize.test.js.map +1 -0
- package/dist/__tests__/session-start-key-refresh.test.js +47 -28
- package/dist/__tests__/session-start-key-refresh.test.js.map +1 -1
- package/dist/__tests__/session-state-machine.test.js +190 -9
- package/dist/__tests__/session-state-machine.test.js.map +1 -1
- package/dist/__tests__/session-switch.test.js +217 -4
- package/dist/__tests__/session-switch.test.js.map +1 -1
- package/dist/__tests__/session-touch.test.js +48 -107
- package/dist/__tests__/session-touch.test.js.map +1 -1
- package/dist/__tests__/sessionBinding.test.d.ts +2 -0
- package/dist/__tests__/sessionBinding.test.d.ts.map +1 -0
- package/dist/__tests__/sessionBinding.test.js +118 -0
- package/dist/__tests__/sessionBinding.test.js.map +1 -0
- package/dist/__tests__/sessionByIdLookup.test.d.ts +2 -0
- package/dist/__tests__/sessionByIdLookup.test.d.ts.map +1 -0
- package/dist/__tests__/sessionByIdLookup.test.js +63 -0
- package/dist/__tests__/sessionByIdLookup.test.js.map +1 -0
- package/dist/__tests__/skill-vocabulary.test.d.ts +1 -1
- package/dist/__tests__/skill-vocabulary.test.js +7 -2
- package/dist/__tests__/skill-vocabulary.test.js.map +1 -1
- package/dist/__tests__/state.test.js +21 -1
- package/dist/__tests__/state.test.js.map +1 -1
- package/dist/__tests__/stillTrue.test.d.ts +2 -0
- package/dist/__tests__/stillTrue.test.d.ts.map +1 -0
- package/dist/__tests__/stillTrue.test.js +52 -0
- package/dist/__tests__/stillTrue.test.js.map +1 -0
- package/dist/__tests__/strip.test.js +57 -3
- package/dist/__tests__/strip.test.js.map +1 -1
- package/dist/__tests__/surfaces.test.js +3 -4
- package/dist/__tests__/surfaces.test.js.map +1 -1
- package/dist/__tests__/tenant-notice-write-path.test.d.ts +2 -0
- package/dist/__tests__/tenant-notice-write-path.test.d.ts.map +1 -0
- package/dist/__tests__/tenant-notice-write-path.test.js +183 -0
- package/dist/__tests__/tenant-notice-write-path.test.js.map +1 -0
- package/dist/__tests__/update-check.test.js +21 -1
- package/dist/__tests__/update-check.test.js.map +1 -1
- package/dist/__tests__/update.test.js +470 -8
- package/dist/__tests__/update.test.js.map +1 -1
- package/dist/__tests__/verify-formatter.test.d.ts +2 -0
- package/dist/__tests__/verify-formatter.test.d.ts.map +1 -0
- package/dist/__tests__/verify-formatter.test.js +85 -0
- package/dist/__tests__/verify-formatter.test.js.map +1 -0
- package/dist/__tests__/vocabulary-leak.test.d.ts +1 -7
- package/dist/__tests__/vocabulary-leak.test.d.ts.map +1 -1
- package/dist/__tests__/vocabulary-leak.test.js +8 -115
- package/dist/__tests__/vocabulary-leak.test.js.map +1 -1
- package/dist/__tests__/workspace.test.js +11 -72
- package/dist/__tests__/workspace.test.js.map +1 -1
- package/dist/__tests__/workspaceNotice.test.d.ts +2 -0
- package/dist/__tests__/workspaceNotice.test.d.ts.map +1 -0
- package/dist/__tests__/workspaceNotice.test.js +559 -0
- package/dist/__tests__/workspaceNotice.test.js.map +1 -0
- package/dist/commands/__tests__/quality.test.d.ts +2 -0
- package/dist/commands/__tests__/quality.test.d.ts.map +1 -0
- package/dist/commands/__tests__/quality.test.js +250 -0
- package/dist/commands/__tests__/quality.test.js.map +1 -0
- package/dist/commands/__tests__/rework.test.d.ts +2 -0
- package/dist/commands/__tests__/rework.test.d.ts.map +1 -0
- package/dist/commands/__tests__/rework.test.js +149 -0
- package/dist/commands/__tests__/rework.test.js.map +1 -0
- package/dist/commands/__tests__/tensionsList.test.d.ts +2 -0
- package/dist/commands/__tests__/tensionsList.test.d.ts.map +1 -0
- package/dist/commands/__tests__/tensionsList.test.js +63 -0
- package/dist/commands/__tests__/tensionsList.test.js.map +1 -0
- package/dist/commands/accept-policy.d.ts +10 -0
- package/dist/commands/accept-policy.d.ts.map +1 -0
- package/dist/commands/accept-policy.js +107 -0
- package/dist/commands/accept-policy.js.map +1 -0
- package/dist/commands/admin/cockpit.d.ts +2 -13
- package/dist/commands/admin/cockpit.d.ts.map +1 -1
- package/dist/commands/admin/cockpit.js +5 -5
- package/dist/commands/admin/cockpit.js.map +1 -1
- package/dist/commands/admin/index.d.ts +49 -0
- package/dist/commands/admin/index.d.ts.map +1 -1
- package/dist/commands/admin/index.js +148 -29
- package/dist/commands/admin/index.js.map +1 -1
- package/dist/commands/admin/index.test.d.ts +2 -0
- package/dist/commands/admin/index.test.d.ts.map +1 -0
- package/dist/commands/admin/index.test.js +94 -0
- package/dist/commands/admin/index.test.js.map +1 -0
- package/dist/commands/admin/inspect.d.ts.map +1 -1
- package/dist/commands/admin/inspect.js +2 -7
- package/dist/commands/admin/inspect.js.map +1 -1
- package/dist/commands/admin/probe.d.ts +75 -0
- package/dist/commands/admin/probe.d.ts.map +1 -0
- package/dist/commands/admin/probe.js +224 -0
- package/dist/commands/admin/probe.js.map +1 -0
- package/dist/commands/admin/probe.test.d.ts +2 -0
- package/dist/commands/admin/probe.test.d.ts.map +1 -0
- package/dist/commands/admin/probe.test.js +193 -0
- package/dist/commands/admin/probe.test.js.map +1 -0
- package/dist/commands/admin/run.d.ts +43 -0
- package/dist/commands/admin/run.d.ts.map +1 -0
- package/dist/commands/admin/run.js +78 -0
- package/dist/commands/admin/run.js.map +1 -0
- package/dist/commands/admin/run.test.d.ts +18 -0
- package/dist/commands/admin/run.test.d.ts.map +1 -0
- package/dist/commands/admin/run.test.js +168 -0
- package/dist/commands/admin/run.test.js.map +1 -0
- package/dist/commands/admin/seed.d.ts +6 -21
- package/dist/commands/admin/seed.d.ts.map +1 -1
- package/dist/commands/admin/seed.js +41 -310
- package/dist/commands/admin/seed.js.map +1 -1
- package/dist/commands/admin/seed.test.d.ts +3 -4
- package/dist/commands/admin/seed.test.d.ts.map +1 -1
- package/dist/commands/admin/seed.test.js +26 -76
- package/dist/commands/admin/seed.test.js.map +1 -1
- package/dist/commands/admin/seedRegistryEntries.generated.d.ts.map +1 -1
- package/dist/commands/admin/seedRegistryEntries.generated.js +3 -84
- package/dist/commands/admin/seedRegistryEntries.generated.js.map +1 -1
- package/dist/commands/admin/seedRegistryEntries.test.d.ts +5 -3
- package/dist/commands/admin/seedRegistryEntries.test.d.ts.map +1 -1
- package/dist/commands/admin/seedRegistryEntries.test.js +60 -26
- package/dist/commands/admin/seedRegistryEntries.test.js.map +1 -1
- package/dist/commands/admin/seedRowType.d.ts +22 -0
- package/dist/commands/admin/seedRowType.d.ts.map +1 -0
- package/dist/commands/admin/seedRowType.js +2 -0
- package/dist/commands/admin/seedRowType.js.map +1 -0
- package/dist/commands/admin/seedStatusColor.d.ts +9 -0
- package/dist/commands/admin/seedStatusColor.d.ts.map +1 -0
- package/dist/commands/admin/seedStatusColor.js +19 -0
- package/dist/commands/admin/seedStatusColor.js.map +1 -0
- package/dist/commands/admin/seedStatusColor.test.d.ts +2 -0
- package/dist/commands/admin/seedStatusColor.test.d.ts.map +1 -0
- package/dist/commands/admin/seedStatusColor.test.js +31 -0
- package/dist/commands/admin/seedStatusColor.test.js.map +1 -0
- package/dist/commands/brief.d.ts.map +1 -1
- package/dist/commands/brief.js +24 -2
- package/dist/commands/brief.js.map +1 -1
- package/dist/commands/capture.d.ts +17 -16
- package/dist/commands/capture.d.ts.map +1 -1
- package/dist/commands/capture.js +105 -288
- package/dist/commands/capture.js.map +1 -1
- package/dist/commands/chain-walk.d.ts.map +1 -1
- package/dist/commands/chain-walk.js.map +1 -1
- package/dist/commands/changes.d.ts.map +1 -1
- package/dist/commands/changes.js.map +1 -1
- package/dist/commands/codex-prep.d.ts +11 -1
- package/dist/commands/codex-prep.d.ts.map +1 -1
- package/dist/commands/codex-prep.js +14 -83
- package/dist/commands/codex-prep.js.map +1 -1
- package/dist/commands/collections.d.ts +1 -1
- package/dist/commands/collections.d.ts.map +1 -1
- package/dist/commands/collections.js +1 -1
- package/dist/commands/collections.js.map +1 -1
- package/dist/commands/conflicts.d.ts +35 -0
- package/dist/commands/conflicts.d.ts.map +1 -0
- package/dist/commands/conflicts.js +194 -0
- package/dist/commands/conflicts.js.map +1 -0
- package/dist/commands/conflicts.test.d.ts +2 -0
- package/dist/commands/conflicts.test.d.ts.map +1 -0
- package/dist/commands/conflicts.test.js +179 -0
- package/dist/commands/conflicts.test.js.map +1 -0
- package/dist/commands/connect-config.test.js +11 -3
- package/dist/commands/connect-config.test.js.map +1 -1
- package/dist/commands/connect-decline.test.d.ts +2 -0
- package/dist/commands/connect-decline.test.d.ts.map +1 -0
- package/dist/commands/connect-decline.test.js +70 -0
- package/dist/commands/connect-decline.test.js.map +1 -0
- package/dist/commands/connect-integration.test.js +25 -12
- package/dist/commands/connect-integration.test.js.map +1 -1
- package/dist/commands/connect-legacy-migration.test.d.ts +2 -0
- package/dist/commands/connect-legacy-migration.test.d.ts.map +1 -0
- package/dist/commands/connect-legacy-migration.test.js +108 -0
- package/dist/commands/connect-legacy-migration.test.js.map +1 -0
- package/dist/commands/connect-redeem-failure.test.d.ts +2 -0
- package/dist/commands/connect-redeem-failure.test.d.ts.map +1 -0
- package/dist/commands/connect-redeem-failure.test.js +134 -0
- package/dist/commands/connect-redeem-failure.test.js.map +1 -0
- package/dist/commands/connect-screens.d.ts +16 -9
- package/dist/commands/connect-screens.d.ts.map +1 -1
- package/dist/commands/connect-screens.js +27 -36
- package/dist/commands/connect-screens.js.map +1 -1
- package/dist/commands/connect-screens.test.d.ts +2 -0
- package/dist/commands/connect-screens.test.d.ts.map +1 -0
- package/dist/commands/connect-screens.test.js +18 -0
- package/dist/commands/connect-screens.test.js.map +1 -0
- package/dist/commands/connect-seal.test.d.ts +2 -0
- package/dist/commands/connect-seal.test.d.ts.map +1 -0
- package/dist/commands/connect-seal.test.js +55 -0
- package/dist/commands/connect-seal.test.js.map +1 -0
- package/dist/commands/connect.d.ts +14 -11
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +236 -69
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/connect.test.js +226 -27
- package/dist/commands/connect.test.js.map +1 -1
- package/dist/commands/constellation.d.ts.map +1 -1
- package/dist/commands/constellation.js.map +1 -1
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/cross-cut.d.ts.map +1 -1
- package/dist/commands/cross-cut.js.map +1 -1
- package/dist/commands/direction.d.ts +10 -0
- package/dist/commands/direction.d.ts.map +1 -0
- package/dist/commands/direction.js +79 -0
- package/dist/commands/direction.js.map +1 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +105 -35
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/doctor.test.js +202 -6
- package/dist/commands/doctor.test.js.map +1 -1
- package/dist/commands/entryAccept.d.ts +26 -0
- package/dist/commands/entryAccept.d.ts.map +1 -0
- package/dist/commands/entryAccept.js +309 -0
- package/dist/commands/entryAccept.js.map +1 -0
- package/dist/commands/entryDiscardResolve.d.ts +9 -0
- package/dist/commands/entryDiscardResolve.d.ts.map +1 -0
- package/dist/commands/entryDiscardResolve.js +27 -0
- package/dist/commands/entryDiscardResolve.js.map +1 -0
- package/dist/commands/entryOwn.d.ts +5 -0
- package/dist/commands/entryOwn.d.ts.map +1 -0
- package/dist/commands/entryOwn.js +17 -0
- package/dist/commands/entryOwn.js.map +1 -0
- package/dist/commands/entryPreflight.d.ts +8 -0
- package/dist/commands/entryPreflight.d.ts.map +1 -0
- package/dist/commands/entryPreflight.js +48 -0
- package/dist/commands/entryPreflight.js.map +1 -0
- package/dist/commands/entryTick.d.ts +8 -0
- package/dist/commands/entryTick.d.ts.map +1 -0
- package/dist/commands/entryTick.js +43 -0
- package/dist/commands/entryTick.js.map +1 -0
- package/dist/commands/feedback.d.ts +39 -0
- package/dist/commands/feedback.d.ts.map +1 -0
- package/dist/commands/feedback.js +176 -0
- package/dist/commands/feedback.js.map +1 -0
- package/dist/commands/feedback.test.d.ts +2 -0
- package/dist/commands/feedback.test.d.ts.map +1 -0
- package/dist/commands/feedback.test.js +117 -0
- package/dist/commands/feedback.test.js.map +1 -0
- package/dist/commands/fields.d.ts.map +1 -1
- package/dist/commands/fields.js +1 -1
- package/dist/commands/fields.js.map +1 -1
- package/dist/commands/files.d.ts +26 -0
- package/dist/commands/files.d.ts.map +1 -0
- package/dist/commands/files.js +160 -0
- package/dist/commands/files.js.map +1 -0
- package/dist/commands/files.test.d.ts +2 -0
- package/dist/commands/files.test.d.ts.map +1 -0
- package/dist/commands/files.test.js +278 -0
- package/dist/commands/files.test.js.map +1 -0
- package/dist/commands/handshakeCursorSkillCleanup.d.ts +36 -0
- package/dist/commands/handshakeCursorSkillCleanup.d.ts.map +1 -0
- package/dist/commands/handshakeCursorSkillCleanup.js +110 -0
- package/dist/commands/handshakeCursorSkillCleanup.js.map +1 -0
- package/dist/commands/handshakeDriftClassification.d.ts +33 -0
- package/dist/commands/handshakeDriftClassification.d.ts.map +1 -0
- package/dist/commands/handshakeDriftClassification.js +62 -0
- package/dist/commands/handshakeDriftClassification.js.map +1 -0
- package/dist/commands/history.d.ts +32 -0
- package/dist/commands/history.d.ts.map +1 -0
- package/dist/commands/history.js +55 -0
- package/dist/commands/history.js.map +1 -0
- package/dist/commands/history.test.d.ts +2 -0
- package/dist/commands/history.test.d.ts.map +1 -0
- package/dist/commands/history.test.js +121 -0
- package/dist/commands/history.test.js.map +1 -0
- package/dist/commands/init.d.ts +15 -2
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +112 -14
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +15 -11
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/organisation.d.ts +12 -0
- package/dist/commands/organisation.d.ts.map +1 -0
- package/dist/commands/organisation.js +146 -0
- package/dist/commands/organisation.js.map +1 -0
- package/dist/commands/organisation.test.d.ts +2 -0
- package/dist/commands/organisation.test.d.ts.map +1 -0
- package/dist/commands/organisation.test.js +116 -0
- package/dist/commands/organisation.test.js.map +1 -0
- package/dist/commands/organisationHierarchy.d.ts +15 -0
- package/dist/commands/organisationHierarchy.d.ts.map +1 -0
- package/dist/commands/organisationHierarchy.js +114 -0
- package/dist/commands/organisationHierarchy.js.map +1 -0
- package/dist/commands/organisationHierarchy.test.d.ts +2 -0
- package/dist/commands/organisationHierarchy.test.d.ts.map +1 -0
- package/dist/commands/organisationHierarchy.test.js +144 -0
- package/dist/commands/organisationHierarchy.test.js.map +1 -0
- package/dist/commands/organisationWrite.d.ts +20 -0
- package/dist/commands/organisationWrite.d.ts.map +1 -0
- package/dist/commands/organisationWrite.js +41 -0
- package/dist/commands/organisationWrite.js.map +1 -0
- package/dist/commands/orient.d.ts +45 -96
- package/dist/commands/orient.d.ts.map +1 -1
- package/dist/commands/orient.js +139 -36
- package/dist/commands/orient.js.map +1 -1
- package/dist/commands/outcome.d.ts +90 -0
- package/dist/commands/outcome.d.ts.map +1 -0
- package/dist/commands/outcome.js +201 -0
- package/dist/commands/outcome.js.map +1 -0
- package/dist/commands/outcome.test.d.ts +2 -0
- package/dist/commands/outcome.test.d.ts.map +1 -0
- package/dist/commands/outcome.test.js +320 -0
- package/dist/commands/outcome.test.js.map +1 -0
- package/dist/commands/people.d.ts +6 -0
- package/dist/commands/people.d.ts.map +1 -0
- package/dist/commands/people.js +23 -0
- package/dist/commands/people.js.map +1 -0
- package/dist/commands/people.test.d.ts +2 -0
- package/dist/commands/people.test.d.ts.map +1 -0
- package/dist/commands/people.test.js +61 -0
- package/dist/commands/people.test.js.map +1 -0
- package/dist/commands/profile.d.ts +23 -2
- package/dist/commands/profile.d.ts.map +1 -1
- package/dist/commands/profile.js +192 -35
- package/dist/commands/profile.js.map +1 -1
- package/dist/commands/quality.d.ts +28 -0
- package/dist/commands/quality.d.ts.map +1 -0
- package/dist/commands/quality.js +74 -0
- package/dist/commands/quality.js.map +1 -0
- package/dist/commands/questions.d.ts +23 -0
- package/dist/commands/questions.d.ts.map +1 -0
- package/dist/commands/questions.js +238 -0
- package/dist/commands/questions.js.map +1 -0
- package/dist/commands/questions.test.d.ts +2 -0
- package/dist/commands/questions.test.d.ts.map +1 -0
- package/dist/commands/questions.test.js +159 -0
- package/dist/commands/questions.test.js.map +1 -0
- package/dist/commands/relate.d.ts +1 -0
- package/dist/commands/relate.d.ts.map +1 -1
- package/dist/commands/relate.js +85 -13
- package/dist/commands/relate.js.map +1 -1
- package/dist/commands/restore.d.ts +2 -0
- package/dist/commands/restore.d.ts.map +1 -0
- package/dist/commands/restore.js +83 -0
- package/dist/commands/restore.js.map +1 -0
- package/dist/commands/rework.d.ts +24 -0
- package/dist/commands/rework.d.ts.map +1 -0
- package/dist/commands/rework.js +97 -0
- package/dist/commands/rework.js.map +1 -0
- package/dist/commands/role.d.ts +88 -0
- package/dist/commands/role.d.ts.map +1 -0
- package/dist/commands/role.js +235 -0
- package/dist/commands/role.js.map +1 -0
- package/dist/commands/role.test.d.ts +2 -0
- package/dist/commands/role.test.d.ts.map +1 -0
- package/dist/commands/role.test.js +348 -0
- package/dist/commands/role.test.js.map +1 -0
- package/dist/commands/scoreboard.d.ts +26 -0
- package/dist/commands/scoreboard.d.ts.map +1 -0
- package/dist/commands/scoreboard.js +40 -0
- package/dist/commands/scoreboard.js.map +1 -0
- package/dist/commands/search.d.ts +2 -1
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +5 -4
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/session.d.ts +36 -5
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +301 -155
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/status.d.ts +7 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +101 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/status.test.d.ts +2 -0
- package/dist/commands/status.test.d.ts.map +1 -0
- package/dist/commands/status.test.js +75 -0
- package/dist/commands/status.test.js.map +1 -0
- package/dist/commands/stillTrue.d.ts +14 -0
- package/dist/commands/stillTrue.d.ts.map +1 -0
- package/dist/commands/stillTrue.js +48 -0
- package/dist/commands/stillTrue.js.map +1 -0
- package/dist/commands/tensionsList.d.ts +5 -0
- package/dist/commands/tensionsList.d.ts.map +1 -0
- package/dist/commands/tensionsList.js +27 -0
- package/dist/commands/tensionsList.js.map +1 -0
- package/dist/commands/update.d.ts +21 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +175 -42
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/usage.d.ts.map +1 -1
- package/dist/commands/usage.js +0 -18
- package/dist/commands/usage.js.map +1 -1
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +5 -0
- package/dist/commands/verify.js.map +1 -1
- package/dist/commands/welcome.d.ts.map +1 -1
- package/dist/commands/welcome.js +5 -2
- package/dist/commands/welcome.js.map +1 -1
- package/dist/commands/whoami.d.ts +10 -2
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +76 -20
- package/dist/commands/whoami.js.map +1 -1
- package/dist/commands/whoami.test.js +86 -6
- package/dist/commands/whoami.test.js.map +1 -1
- package/dist/commands/workspace.d.ts +7 -74
- package/dist/commands/workspace.d.ts.map +1 -1
- package/dist/commands/workspace.js +9 -70
- package/dist/commands/workspace.js.map +1 -1
- package/dist/formatters/__tests__/orient-plannedWorkCut.test.d.ts +2 -0
- package/dist/formatters/__tests__/orient-plannedWorkCut.test.d.ts.map +1 -0
- package/dist/formatters/__tests__/orient-plannedWorkCut.test.js +49 -0
- package/dist/formatters/__tests__/orient-plannedWorkCut.test.js.map +1 -0
- package/dist/formatters/__tests__/orient-provenance.test.d.ts +2 -3
- package/dist/formatters/__tests__/orient-provenance.test.d.ts.map +1 -1
- package/dist/formatters/__tests__/orient-provenance.test.js +41 -176
- package/dist/formatters/__tests__/orient-provenance.test.js.map +1 -1
- package/dist/formatters/__tests__/orient-ruleLists.test.d.ts +2 -0
- package/dist/formatters/__tests__/orient-ruleLists.test.d.ts.map +1 -0
- package/dist/formatters/__tests__/orient-ruleLists.test.js +93 -0
- package/dist/formatters/__tests__/orient-ruleLists.test.js.map +1 -0
- package/dist/formatters/__tests__/session-list-show.test.d.ts +2 -0
- package/dist/formatters/__tests__/session-list-show.test.d.ts.map +1 -0
- package/dist/formatters/__tests__/session-list-show.test.js +195 -0
- package/dist/formatters/__tests__/session-list-show.test.js.map +1 -0
- package/dist/formatters/__tests__/session.test.js +172 -8
- package/dist/formatters/__tests__/session.test.js.map +1 -1
- package/dist/formatters/__tests__/tensionsList.test.d.ts +2 -0
- package/dist/formatters/__tests__/tensionsList.test.d.ts.map +1 -0
- package/dist/formatters/__tests__/tensionsList.test.js +30 -0
- package/dist/formatters/__tests__/tensionsList.test.js.map +1 -0
- package/dist/formatters/brief.d.ts +6 -15
- package/dist/formatters/brief.d.ts.map +1 -1
- package/dist/formatters/brief.js +16 -14
- package/dist/formatters/brief.js.map +1 -1
- package/dist/formatters/brief.test.d.ts +2 -0
- package/dist/formatters/brief.test.d.ts.map +1 -0
- package/dist/formatters/brief.test.js +21 -0
- package/dist/formatters/brief.test.js.map +1 -0
- package/dist/formatters/capture.d.ts +24 -13
- package/dist/formatters/capture.d.ts.map +1 -1
- package/dist/formatters/capture.js +36 -14
- package/dist/formatters/capture.js.map +1 -1
- package/dist/formatters/coaching.d.ts +59 -0
- package/dist/formatters/coaching.d.ts.map +1 -0
- package/dist/formatters/coaching.js +51 -0
- package/dist/formatters/coaching.js.map +1 -0
- package/dist/formatters/collections.d.ts +0 -1
- package/dist/formatters/collections.d.ts.map +1 -1
- package/dist/formatters/collections.js +14 -5
- package/dist/formatters/collections.js.map +1 -1
- package/dist/formatters/conflicts.d.ts +71 -0
- package/dist/formatters/conflicts.d.ts.map +1 -0
- package/dist/formatters/conflicts.js +105 -0
- package/dist/formatters/conflicts.js.map +1 -0
- package/dist/formatters/conflicts.test.d.ts +2 -0
- package/dist/formatters/conflicts.test.d.ts.map +1 -0
- package/dist/formatters/conflicts.test.js +166 -0
- package/dist/formatters/conflicts.test.js.map +1 -0
- package/dist/formatters/context.d.ts +1 -1
- package/dist/formatters/context.d.ts.map +1 -1
- package/dist/formatters/context.js.map +1 -1
- package/dist/formatters/direction.d.ts +48 -0
- package/dist/formatters/direction.d.ts.map +1 -0
- package/dist/formatters/direction.js +75 -0
- package/dist/formatters/direction.js.map +1 -0
- package/dist/formatters/direction.test.d.ts +2 -0
- package/dist/formatters/direction.test.d.ts.map +1 -0
- package/dist/formatters/direction.test.js +70 -0
- package/dist/formatters/direction.test.js.map +1 -0
- package/dist/formatters/entry.d.ts +56 -3
- package/dist/formatters/entry.d.ts.map +1 -1
- package/dist/formatters/entry.js +69 -8
- package/dist/formatters/entry.js.map +1 -1
- package/dist/formatters/entryAccept.d.ts +83 -0
- package/dist/formatters/entryAccept.d.ts.map +1 -0
- package/dist/formatters/entryAccept.js +79 -0
- package/dist/formatters/entryAccept.js.map +1 -0
- package/dist/formatters/feedback.d.ts +61 -0
- package/dist/formatters/feedback.d.ts.map +1 -0
- package/dist/formatters/feedback.js +95 -0
- package/dist/formatters/feedback.js.map +1 -0
- package/dist/formatters/feedback.test.d.ts +2 -0
- package/dist/formatters/feedback.test.d.ts.map +1 -0
- package/dist/formatters/feedback.test.js +142 -0
- package/dist/formatters/feedback.test.js.map +1 -0
- package/dist/formatters/fields.d.ts +7 -1
- package/dist/formatters/fields.d.ts.map +1 -1
- package/dist/formatters/fields.js +9 -3
- package/dist/formatters/fields.js.map +1 -1
- package/dist/formatters/fields.test.d.ts +2 -0
- package/dist/formatters/fields.test.d.ts.map +1 -0
- package/dist/formatters/fields.test.js +42 -0
- package/dist/formatters/fields.test.js.map +1 -0
- package/dist/formatters/handshake.d.ts +24 -6
- package/dist/formatters/handshake.d.ts.map +1 -1
- package/dist/formatters/handshake.js +34 -15
- package/dist/formatters/handshake.js.map +1 -1
- package/dist/formatters/orient.coherencyCheckTag.test.d.ts +2 -0
- package/dist/formatters/orient.coherencyCheckTag.test.d.ts.map +1 -0
- package/dist/formatters/orient.coherencyCheckTag.test.js +22 -0
- package/dist/formatters/orient.coherencyCheckTag.test.js.map +1 -0
- package/dist/formatters/orient.d.ts +92 -145
- package/dist/formatters/orient.d.ts.map +1 -1
- package/dist/formatters/orient.js +143 -183
- package/dist/formatters/orient.js.map +1 -1
- package/dist/formatters/orient.rcrtMiss.test.d.ts +2 -0
- package/dist/formatters/orient.rcrtMiss.test.d.ts.map +1 -0
- package/dist/formatters/orient.rcrtMiss.test.js +77 -0
- package/dist/formatters/orient.rcrtMiss.test.js.map +1 -0
- package/dist/formatters/orient.rituals.test.d.ts +2 -0
- package/dist/formatters/orient.rituals.test.d.ts.map +1 -0
- package/dist/formatters/orient.rituals.test.js +72 -0
- package/dist/formatters/orient.rituals.test.js.map +1 -0
- package/dist/formatters/orientDegradation.d.ts +38 -0
- package/dist/formatters/orientDegradation.d.ts.map +1 -0
- package/dist/formatters/orientDegradation.js +50 -0
- package/dist/formatters/orientDegradation.js.map +1 -0
- package/dist/formatters/orientDegradation.test.d.ts +2 -0
- package/dist/formatters/orientDegradation.test.d.ts.map +1 -0
- package/dist/formatters/orientDegradation.test.js +28 -0
- package/dist/formatters/orientDegradation.test.js.map +1 -0
- package/dist/formatters/orientDirection.d.ts +25 -0
- package/dist/formatters/orientDirection.d.ts.map +1 -0
- package/dist/formatters/orientDirection.js +7 -0
- package/dist/formatters/orientDirection.js.map +1 -0
- package/dist/formatters/orientDirection.test.d.ts +2 -0
- package/dist/formatters/orientDirection.test.d.ts.map +1 -0
- package/dist/formatters/orientDirection.test.js +48 -0
- package/dist/formatters/orientDirection.test.js.map +1 -0
- package/dist/formatters/orientRetrievalMiss.d.ts +22 -0
- package/dist/formatters/orientRetrievalMiss.d.ts.map +1 -0
- package/dist/formatters/orientRetrievalMiss.js +17 -0
- package/dist/formatters/orientRetrievalMiss.js.map +1 -0
- package/dist/formatters/plannedWorkCounts.d.ts +19 -0
- package/dist/formatters/plannedWorkCounts.d.ts.map +1 -0
- package/dist/formatters/plannedWorkCounts.js +17 -0
- package/dist/formatters/plannedWorkCounts.js.map +1 -0
- package/dist/formatters/qualityChecks.d.ts +14 -0
- package/dist/formatters/qualityChecks.d.ts.map +1 -0
- package/dist/formatters/qualityChecks.js +97 -0
- package/dist/formatters/qualityChecks.js.map +1 -0
- package/dist/formatters/questions.d.ts +76 -0
- package/dist/formatters/questions.d.ts.map +1 -0
- package/dist/formatters/questions.js +122 -0
- package/dist/formatters/questions.js.map +1 -0
- package/dist/formatters/questions.test.d.ts +2 -0
- package/dist/formatters/questions.test.d.ts.map +1 -0
- package/dist/formatters/questions.test.js +156 -0
- package/dist/formatters/questions.test.js.map +1 -0
- package/dist/formatters/relate.d.ts +13 -2
- package/dist/formatters/relate.d.ts.map +1 -1
- package/dist/formatters/relate.js +15 -5
- package/dist/formatters/relate.js.map +1 -1
- package/dist/formatters/relate.test.d.ts +2 -0
- package/dist/formatters/relate.test.d.ts.map +1 -0
- package/dist/formatters/relate.test.js +91 -0
- package/dist/formatters/relate.test.js.map +1 -0
- package/dist/formatters/scoreboard.d.ts +11 -0
- package/dist/formatters/scoreboard.d.ts.map +1 -0
- package/dist/formatters/scoreboard.js +156 -0
- package/dist/formatters/scoreboard.js.map +1 -0
- package/dist/formatters/scoreboard.test.d.ts +2 -0
- package/dist/formatters/scoreboard.test.d.ts.map +1 -0
- package/dist/formatters/scoreboard.test.js +284 -0
- package/dist/formatters/scoreboard.test.js.map +1 -0
- package/dist/formatters/search.d.ts +24 -0
- package/dist/formatters/search.d.ts.map +1 -1
- package/dist/formatters/search.js +26 -11
- package/dist/formatters/search.js.map +1 -1
- package/dist/formatters/search.test.d.ts +2 -0
- package/dist/formatters/search.test.d.ts.map +1 -0
- package/dist/formatters/search.test.js +86 -0
- package/dist/formatters/search.test.js.map +1 -0
- package/dist/formatters/session-feedback.test.d.ts +2 -0
- package/dist/formatters/session-feedback.test.d.ts.map +1 -0
- package/dist/formatters/session-feedback.test.js +124 -0
- package/dist/formatters/session-feedback.test.js.map +1 -0
- package/dist/formatters/session.d.ts +121 -5
- package/dist/formatters/session.d.ts.map +1 -1
- package/dist/formatters/session.js +316 -31
- package/dist/formatters/session.js.map +1 -1
- package/dist/formatters/spineCheck.d.ts +14 -0
- package/dist/formatters/spineCheck.d.ts.map +1 -0
- package/dist/formatters/spineCheck.js +113 -0
- package/dist/formatters/spineCheck.js.map +1 -0
- package/dist/formatters/spineCheck.test.d.ts +2 -0
- package/dist/formatters/spineCheck.test.d.ts.map +1 -0
- package/dist/formatters/spineCheck.test.js +76 -0
- package/dist/formatters/spineCheck.test.js.map +1 -0
- package/dist/formatters/tensionsList.d.ts +17 -0
- package/dist/formatters/tensionsList.d.ts.map +1 -0
- package/dist/formatters/tensionsList.js +33 -0
- package/dist/formatters/tensionsList.js.map +1 -0
- package/dist/formatters/update.d.ts +26 -0
- package/dist/formatters/update.d.ts.map +1 -1
- package/dist/formatters/update.js +39 -7
- package/dist/formatters/update.js.map +1 -1
- package/dist/formatters/update.test.d.ts +2 -0
- package/dist/formatters/update.test.d.ts.map +1 -0
- package/dist/formatters/update.test.js +71 -0
- package/dist/formatters/update.test.js.map +1 -0
- package/dist/formatters/verify.d.ts +12 -4
- package/dist/formatters/verify.d.ts.map +1 -1
- package/dist/formatters/verify.js +20 -2
- package/dist/formatters/verify.js.map +1 -1
- package/dist/generated/healthGapKinds.generated.d.ts +12 -0
- package/dist/generated/healthGapKinds.generated.d.ts.map +1 -0
- package/dist/generated/healthGapKinds.generated.js +16 -0
- package/dist/generated/healthGapKinds.generated.js.map +1 -0
- package/dist/generated/organisationalAuthorityRefusalCodes.generated.d.ts +12 -0
- package/dist/generated/organisationalAuthorityRefusalCodes.generated.d.ts.map +1 -0
- package/dist/generated/organisationalAuthorityRefusalCodes.generated.js +11 -0
- package/dist/generated/organisationalAuthorityRefusalCodes.generated.js.map +1 -0
- package/dist/generated/routeLatencyBudget.generated.d.ts +54 -0
- package/dist/generated/routeLatencyBudget.generated.d.ts.map +1 -0
- package/dist/generated/routeLatencyBudget.generated.js +264 -0
- package/dist/generated/routeLatencyBudget.generated.js.map +1 -0
- package/dist/generated/sourceSurfaces.generated.d.ts +12 -0
- package/dist/generated/sourceSurfaces.generated.d.ts.map +1 -0
- package/dist/generated/sourceSurfaces.generated.js +11 -0
- package/dist/generated/sourceSurfaces.generated.js.map +1 -0
- package/dist/generators/adapters.d.ts +39 -6
- package/dist/generators/adapters.d.ts.map +1 -1
- package/dist/generators/adapters.js +88 -89
- package/dist/generators/adapters.js.map +1 -1
- package/dist/generators/adapters.test.js +14 -6
- package/dist/generators/adapters.test.js.map +1 -1
- package/dist/generators/briefing-projections.test.d.ts +2 -0
- package/dist/generators/briefing-projections.test.d.ts.map +1 -0
- package/dist/generators/briefing-projections.test.js +98 -0
- package/dist/generators/briefing-projections.test.js.map +1 -0
- package/dist/generators/context-md.d.ts +7 -2
- package/dist/generators/context-md.d.ts.map +1 -1
- package/dist/generators/context-md.js +14 -53
- package/dist/generators/context-md.js.map +1 -1
- package/dist/generators/everyone-rules-md.d.ts +9 -0
- package/dist/generators/everyone-rules-md.d.ts.map +1 -0
- package/dist/generators/everyone-rules-md.js +21 -0
- package/dist/generators/everyone-rules-md.js.map +1 -0
- package/dist/generators/noProjectionAssets.d.ts +15 -0
- package/dist/generators/noProjectionAssets.d.ts.map +1 -0
- package/dist/generators/noProjectionAssets.js +6 -0
- package/dist/generators/noProjectionAssets.js.map +1 -0
- package/dist/generators/portable-knowledge.d.ts +9 -26
- package/dist/generators/portable-knowledge.d.ts.map +1 -1
- package/dist/generators/portable-knowledge.js +11 -125
- package/dist/generators/portable-knowledge.js.map +1 -1
- package/dist/generators/portable-knowledge.test.js +82 -267
- package/dist/generators/portable-knowledge.test.js.map +1 -1
- package/dist/generators/region-projections.d.ts +0 -1
- package/dist/generators/region-projections.d.ts.map +1 -1
- package/dist/generators/region-projections.js +7 -5
- package/dist/generators/region-projections.js.map +1 -1
- package/dist/generators/region-projections.test.js +10 -15
- package/dist/generators/region-projections.test.js.map +1 -1
- package/dist/generators/region.test.js +9 -10
- package/dist/generators/region.test.js.map +1 -1
- package/dist/generators/retired-projections.d.ts +12 -0
- package/dist/generators/retired-projections.d.ts.map +1 -0
- package/dist/generators/retired-projections.js +75 -0
- package/dist/generators/retired-projections.js.map +1 -0
- package/dist/generators/retired-projections.test.d.ts +2 -0
- package/dist/generators/retired-projections.test.d.ts.map +1 -0
- package/dist/generators/retired-projections.test.js +64 -0
- package/dist/generators/retired-projections.test.js.map +1 -0
- package/dist/handleCliError.d.ts +30 -0
- package/dist/handleCliError.d.ts.map +1 -0
- package/dist/handleCliError.js +91 -0
- package/dist/handleCliError.js.map +1 -0
- package/dist/index.d.ts +0 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +166 -608
- package/dist/index.js.map +1 -1
- package/dist/lib/__tests__/parseFields.test.d.ts +2 -0
- package/dist/lib/__tests__/parseFields.test.d.ts.map +1 -0
- package/dist/lib/__tests__/parseFields.test.js +40 -0
- package/dist/lib/__tests__/parseFields.test.js.map +1 -0
- package/dist/lib/adminConfig.d.ts +48 -0
- package/dist/lib/adminConfig.d.ts.map +1 -0
- package/dist/lib/adminConfig.js +130 -0
- package/dist/lib/adminConfig.js.map +1 -0
- package/dist/lib/canonicalRefs.d.ts +27 -8
- package/dist/lib/canonicalRefs.d.ts.map +1 -1
- package/dist/lib/canonicalRefs.js +25 -6
- package/dist/lib/canonicalRefs.js.map +1 -1
- package/dist/lib/captureLink.d.ts +7 -0
- package/dist/lib/captureLink.d.ts.map +1 -0
- package/dist/lib/captureLink.js +29 -0
- package/dist/lib/captureLink.js.map +1 -0
- package/dist/lib/checklist.d.ts +32 -0
- package/dist/lib/checklist.d.ts.map +1 -0
- package/dist/lib/checklist.js +79 -0
- package/dist/lib/checklist.js.map +1 -0
- package/dist/lib/client.d.ts +38 -24
- package/dist/lib/client.d.ts.map +1 -1
- package/dist/lib/client.js +209 -102
- package/dist/lib/client.js.map +1 -1
- package/dist/lib/commanderOptions.d.ts +8 -0
- package/dist/lib/commanderOptions.d.ts.map +1 -0
- package/dist/lib/commanderOptions.js +10 -0
- package/dist/lib/commanderOptions.js.map +1 -0
- package/dist/lib/compose-wrapup-view.d.ts +68 -0
- package/dist/lib/compose-wrapup-view.d.ts.map +1 -0
- package/dist/lib/compose-wrapup-view.js +40 -0
- package/dist/lib/compose-wrapup-view.js.map +1 -0
- package/dist/lib/config.d.ts +43 -111
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +103 -309
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/configResult.d.ts +102 -0
- package/dist/lib/configResult.d.ts.map +1 -0
- package/dist/lib/configResult.js +179 -0
- package/dist/lib/configResult.js.map +1 -0
- package/dist/lib/connectProfileName.d.ts +36 -0
- package/dist/lib/connectProfileName.d.ts.map +1 -0
- package/dist/lib/connectProfileName.js +72 -0
- package/dist/lib/connectProfileName.js.map +1 -0
- package/dist/lib/connectProfileName.test.d.ts +2 -0
- package/dist/lib/connectProfileName.test.d.ts.map +1 -0
- package/dist/lib/connectProfileName.test.js +100 -0
- package/dist/lib/connectProfileName.test.js.map +1 -0
- package/dist/lib/constants.d.ts +3 -0
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +3 -0
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/conversation.d.ts +36 -0
- package/dist/lib/conversation.d.ts.map +1 -0
- package/dist/lib/conversation.js +66 -0
- package/dist/lib/conversation.js.map +1 -0
- package/dist/lib/createEntryResult.d.ts +34 -0
- package/dist/lib/createEntryResult.d.ts.map +1 -0
- package/dist/lib/createEntryResult.js +12 -0
- package/dist/lib/createEntryResult.js.map +1 -0
- package/dist/lib/deployment.js +2 -2
- package/dist/lib/deployment.js.map +1 -1
- package/dist/lib/deployment.test.js +20 -1
- package/dist/lib/deployment.test.js.map +1 -1
- package/dist/lib/envKeySnapshot.d.ts +10 -0
- package/dist/lib/envKeySnapshot.d.ts.map +1 -0
- package/dist/lib/envKeySnapshot.js +30 -0
- package/dist/lib/envKeySnapshot.js.map +1 -0
- package/dist/lib/errors.d.ts +90 -0
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +83 -0
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/frontmatter.d.ts +55 -0
- package/dist/lib/frontmatter.d.ts.map +1 -0
- package/dist/lib/frontmatter.js +92 -0
- package/dist/lib/frontmatter.js.map +1 -0
- package/dist/lib/frontmatter.test.d.ts +15 -0
- package/dist/lib/frontmatter.test.d.ts.map +1 -0
- package/dist/lib/frontmatter.test.js +98 -0
- package/dist/lib/frontmatter.test.js.map +1 -0
- package/dist/lib/gatewayTimeout.d.ts +88 -0
- package/dist/lib/gatewayTimeout.d.ts.map +1 -0
- package/dist/lib/gatewayTimeout.js +118 -0
- package/dist/lib/gatewayTimeout.js.map +1 -0
- package/dist/lib/gitEnvLeakKeysParity.test.d.ts +2 -0
- package/dist/lib/gitEnvLeakKeysParity.test.d.ts.map +1 -0
- package/dist/lib/gitEnvLeakKeysParity.test.js +73 -0
- package/dist/lib/gitEnvLeakKeysParity.test.js.map +1 -0
- package/dist/lib/glossary.d.ts +3 -15
- package/dist/lib/glossary.d.ts.map +1 -1
- package/dist/lib/glossary.js +6 -47
- package/dist/lib/glossary.js.map +1 -1
- package/dist/lib/hook-intents.d.ts +9 -4
- package/dist/lib/hook-intents.d.ts.map +1 -1
- package/dist/lib/hook-intents.js +10 -11
- package/dist/lib/hook-intents.js.map +1 -1
- package/dist/lib/judgeWait.d.ts +50 -0
- package/dist/lib/judgeWait.d.ts.map +1 -0
- package/dist/lib/judgeWait.js +64 -0
- package/dist/lib/judgeWait.js.map +1 -0
- package/dist/lib/kernelEnvelope.d.ts +42 -0
- package/dist/lib/kernelEnvelope.d.ts.map +1 -0
- package/dist/lib/kernelEnvelope.js +67 -0
- package/dist/lib/kernelEnvelope.js.map +1 -0
- package/dist/lib/localBinding.d.ts +86 -0
- package/dist/lib/localBinding.d.ts.map +1 -0
- package/dist/lib/localBinding.js +173 -0
- package/dist/lib/localBinding.js.map +1 -0
- package/dist/lib/normalizeMaterializedFilename.d.ts +3 -3
- package/dist/lib/normalizeMaterializedFilename.js +3 -3
- package/dist/lib/notice-marker.d.ts.map +1 -1
- package/dist/lib/notice-marker.js +186 -16
- package/dist/lib/notice-marker.js.map +1 -1
- package/dist/lib/outcomeObjectiveLines.d.ts +30 -0
- package/dist/lib/outcomeObjectiveLines.d.ts.map +1 -0
- package/dist/lib/outcomeObjectiveLines.js +29 -0
- package/dist/lib/outcomeObjectiveLines.js.map +1 -0
- package/dist/lib/ownerLine.d.ts +90 -0
- package/dist/lib/ownerLine.d.ts.map +1 -0
- package/dist/lib/ownerLine.js +77 -0
- package/dist/lib/ownerLine.js.map +1 -0
- package/dist/lib/parseFields.d.ts +19 -0
- package/dist/lib/parseFields.d.ts.map +1 -0
- package/dist/lib/parseFields.js +49 -0
- package/dist/lib/parseFields.js.map +1 -0
- package/dist/lib/pinnedRole.d.ts +28 -0
- package/dist/lib/pinnedRole.d.ts.map +1 -0
- package/dist/lib/pinnedRole.js +106 -0
- package/dist/lib/pinnedRole.js.map +1 -0
- package/dist/lib/platformGlossary.d.ts +22 -0
- package/dist/lib/platformGlossary.d.ts.map +1 -0
- package/dist/lib/platformGlossary.js +26 -0
- package/dist/lib/platformGlossary.js.map +1 -0
- package/dist/lib/previewBanner.d.ts +9 -0
- package/dist/lib/previewBanner.d.ts.map +1 -0
- package/dist/lib/previewBanner.js +36 -0
- package/dist/lib/previewBanner.js.map +1 -0
- package/dist/lib/productbrain-files.d.ts +108 -0
- package/dist/lib/productbrain-files.d.ts.map +1 -0
- package/dist/lib/productbrain-files.js +240 -0
- package/dist/lib/productbrain-files.js.map +1 -0
- package/dist/lib/productbrain-files.test.d.ts +2 -0
- package/dist/lib/productbrain-files.test.d.ts.map +1 -0
- package/dist/lib/productbrain-files.test.js +518 -0
- package/dist/lib/productbrain-files.test.js.map +1 -0
- package/dist/lib/profiles.d.ts +52 -4
- package/dist/lib/profiles.d.ts.map +1 -1
- package/dist/lib/profiles.js +72 -21
- package/dist/lib/profiles.js.map +1 -1
- package/dist/lib/projectConfig.d.ts +121 -0
- package/dist/lib/projectConfig.d.ts.map +1 -0
- package/dist/lib/projectConfig.js +226 -0
- package/dist/lib/projectConfig.js.map +1 -0
- package/dist/lib/prompts.d.ts +2 -0
- package/dist/lib/prompts.d.ts.map +1 -1
- package/dist/lib/prompts.js +2 -0
- package/dist/lib/prompts.js.map +1 -1
- package/dist/lib/proseBody.d.ts +14 -0
- package/dist/lib/proseBody.d.ts.map +1 -0
- package/dist/lib/proseBody.js +25 -0
- package/dist/lib/proseBody.js.map +1 -0
- package/dist/lib/rate-limit.d.ts +34 -0
- package/dist/lib/rate-limit.d.ts.map +1 -0
- package/dist/lib/rate-limit.js +89 -0
- package/dist/lib/rate-limit.js.map +1 -0
- package/dist/lib/readinessNotices.d.ts +12 -0
- package/dist/lib/readinessNotices.d.ts.map +1 -0
- package/dist/lib/readinessNotices.js +15 -0
- package/dist/lib/readinessNotices.js.map +1 -0
- package/dist/lib/repo-detect.d.ts +8 -2
- package/dist/lib/repo-detect.d.ts.map +1 -1
- package/dist/lib/repo-detect.js +11 -6
- package/dist/lib/repo-detect.js.map +1 -1
- package/dist/lib/reportedProfile.d.ts +18 -0
- package/dist/lib/reportedProfile.d.ts.map +1 -0
- package/dist/lib/reportedProfile.js +144 -0
- package/dist/lib/reportedProfile.js.map +1 -0
- package/dist/lib/restsOn.d.ts +33 -0
- package/dist/lib/restsOn.d.ts.map +1 -0
- package/dist/lib/restsOn.js +34 -0
- package/dist/lib/restsOn.js.map +1 -0
- package/dist/lib/ruleListRender.d.ts +268 -0
- package/dist/lib/ruleListRender.d.ts.map +1 -0
- package/dist/lib/ruleListRender.js +350 -0
- package/dist/lib/ruleListRender.js.map +1 -0
- package/dist/lib/runner.d.ts +9 -1
- package/dist/lib/runner.d.ts.map +1 -1
- package/dist/lib/runner.js +30 -4
- package/dist/lib/runner.js.map +1 -1
- package/dist/lib/seatSentence.d.ts +62 -0
- package/dist/lib/seatSentence.d.ts.map +1 -0
- package/dist/lib/seatSentence.js +82 -0
- package/dist/lib/seatSentence.js.map +1 -0
- package/dist/lib/session.d.ts +86 -12
- package/dist/lib/session.d.ts.map +1 -1
- package/dist/lib/session.js +243 -24
- package/dist/lib/session.js.map +1 -1
- package/dist/lib/sessionBinding.d.ts +61 -0
- package/dist/lib/sessionBinding.d.ts.map +1 -0
- package/dist/lib/sessionBinding.js +125 -0
- package/dist/lib/sessionBinding.js.map +1 -0
- package/dist/lib/sessionNotices.d.ts +54 -0
- package/dist/lib/sessionNotices.d.ts.map +1 -0
- package/dist/lib/sessionNotices.js +132 -0
- package/dist/lib/sessionNotices.js.map +1 -0
- package/dist/lib/sessionNotices.test.d.ts +2 -0
- package/dist/lib/sessionNotices.test.d.ts.map +1 -0
- package/dist/lib/sessionNotices.test.js +53 -0
- package/dist/lib/sessionNotices.test.js.map +1 -0
- package/dist/lib/spineVerdictRead.d.ts +70 -0
- package/dist/lib/spineVerdictRead.d.ts.map +1 -0
- package/dist/lib/spineVerdictRead.js +73 -0
- package/dist/lib/spineVerdictRead.js.map +1 -0
- package/dist/lib/spinner.js +2 -2
- package/dist/lib/spinner.js.map +1 -1
- package/dist/lib/startup-resolution-signals.d.ts +34 -0
- package/dist/lib/startup-resolution-signals.d.ts.map +1 -0
- package/dist/lib/startup-resolution-signals.js +116 -0
- package/dist/lib/startup-resolution-signals.js.map +1 -0
- package/dist/lib/startup-resolution-signals.test.d.ts +2 -0
- package/dist/lib/startup-resolution-signals.test.d.ts.map +1 -0
- package/dist/lib/startup-resolution-signals.test.js +113 -0
- package/dist/lib/startup-resolution-signals.test.js.map +1 -0
- package/dist/lib/startup-signals.d.ts +12 -0
- package/dist/lib/startup-signals.d.ts.map +1 -0
- package/dist/lib/startup-signals.js +179 -0
- package/dist/lib/startup-signals.js.map +1 -0
- package/dist/lib/startup-signals.test.d.ts +2 -0
- package/dist/lib/startup-signals.test.d.ts.map +1 -0
- package/dist/lib/startup-signals.test.js +165 -0
- package/dist/lib/startup-signals.test.js.map +1 -0
- package/dist/lib/state.d.ts +11 -2
- package/dist/lib/state.d.ts.map +1 -1
- package/dist/lib/state.js +11 -4
- package/dist/lib/state.js.map +1 -1
- package/dist/lib/statusCategories.d.ts +162 -0
- package/dist/lib/statusCategories.d.ts.map +1 -0
- package/dist/lib/statusCategories.js +286 -0
- package/dist/lib/statusCategories.js.map +1 -0
- package/dist/lib/strip.d.ts +17 -0
- package/dist/lib/strip.d.ts.map +1 -1
- package/dist/lib/strip.js +48 -1
- package/dist/lib/strip.js.map +1 -1
- package/dist/lib/style.d.ts +8 -2
- package/dist/lib/style.d.ts.map +1 -1
- package/dist/lib/style.js +24 -17
- package/dist/lib/style.js.map +1 -1
- package/dist/lib/update-check.d.ts +3 -2
- package/dist/lib/update-check.d.ts.map +1 -1
- package/dist/lib/update-check.js +10 -4
- package/dist/lib/update-check.js.map +1 -1
- package/dist/lib/workspaceNotice.d.ts +202 -0
- package/dist/lib/workspaceNotice.d.ts.map +1 -0
- package/dist/lib/workspaceNotice.js +345 -0
- package/dist/lib/workspaceNotice.js.map +1 -0
- package/dist/lib/writePerimeter.d.ts +72 -0
- package/dist/lib/writePerimeter.d.ts.map +1 -0
- package/dist/lib/writePerimeter.js +128 -0
- package/dist/lib/writePerimeter.js.map +1 -0
- package/dist/registerEntryCommands.d.ts +18 -0
- package/dist/registerEntryCommands.d.ts.map +1 -0
- package/dist/registerEntryCommands.js +122 -0
- package/dist/registerEntryCommands.js.map +1 -0
- package/dist/registerHistoryCommand.d.ts +8 -0
- package/dist/registerHistoryCommand.d.ts.map +1 -0
- package/dist/registerHistoryCommand.js +14 -0
- package/dist/registerHistoryCommand.js.map +1 -0
- package/dist/registerOutcomeCommands.d.ts +27 -0
- package/dist/registerOutcomeCommands.d.ts.map +1 -0
- package/dist/registerOutcomeCommands.js +27 -0
- package/dist/registerOutcomeCommands.js.map +1 -0
- package/dist/registerRoleCommands.d.ts +11 -0
- package/dist/registerRoleCommands.d.ts.map +1 -0
- package/dist/registerRoleCommands.js +42 -0
- package/dist/registerRoleCommands.js.map +1 -0
- package/dist/registerTensionsCommands.d.ts +10 -0
- package/dist/registerTensionsCommands.d.ts.map +1 -0
- package/dist/registerTensionsCommands.js +15 -0
- package/dist/registerTensionsCommands.js.map +1 -0
- package/dist/scoreboard/diagnose.d.ts +185 -0
- package/dist/scoreboard/diagnose.d.ts.map +1 -0
- package/dist/scoreboard/diagnose.js +282 -0
- package/dist/scoreboard/diagnose.js.map +1 -0
- package/dist/scoreboard/diagnose.test.d.ts +15 -0
- package/dist/scoreboard/diagnose.test.d.ts.map +1 -0
- package/dist/scoreboard/diagnose.test.js +288 -0
- package/dist/scoreboard/diagnose.test.js.map +1 -0
- package/dist/scoreboard/floors.d.ts +47 -0
- package/dist/scoreboard/floors.d.ts.map +1 -0
- package/dist/scoreboard/floors.js +33 -0
- package/dist/scoreboard/floors.js.map +1 -0
- package/dist/scoreboard/localDrift.d.ts +23 -0
- package/dist/scoreboard/localDrift.d.ts.map +1 -0
- package/dist/scoreboard/localDrift.js +111 -0
- package/dist/scoreboard/localDrift.js.map +1 -0
- package/dist/scoreboard/localDrift.test.d.ts +9 -0
- package/dist/scoreboard/localDrift.test.d.ts.map +1 -0
- package/dist/scoreboard/localDrift.test.js +82 -0
- package/dist/scoreboard/localDrift.test.js.map +1 -0
- package/dist/surfaces/__tests__/adapter.test.js +2 -6
- package/dist/surfaces/__tests__/adapter.test.js.map +1 -1
- package/dist/surfaces/__tests__/claude-skill-pointer-drift.test.d.ts +2 -0
- package/dist/surfaces/__tests__/claude-skill-pointer-drift.test.d.ts.map +1 -0
- package/dist/surfaces/__tests__/claude-skill-pointer-drift.test.js +180 -0
- package/dist/surfaces/__tests__/claude-skill-pointer-drift.test.js.map +1 -0
- package/dist/surfaces/adapters/claude.d.ts.map +1 -1
- package/dist/surfaces/adapters/claude.js +30 -25
- package/dist/surfaces/adapters/claude.js.map +1 -1
- package/dist/surfaces/registry.js +1 -1
- package/dist/surfaces/registry.js.map +1 -1
- package/package.json +9 -9
- package/dist/__tests__/audit.test.d.ts +0 -2
- package/dist/__tests__/audit.test.d.ts.map +0 -1
- package/dist/__tests__/audit.test.js +0 -399
- package/dist/__tests__/audit.test.js.map +0 -1
- package/dist/__tests__/authority-domains.test.d.ts +0 -2
- package/dist/__tests__/authority-domains.test.d.ts.map +0 -1
- package/dist/__tests__/authority-domains.test.js +0 -48
- package/dist/__tests__/authority-domains.test.js.map +0 -1
- package/dist/__tests__/handshake-augment.test.d.ts +0 -2
- package/dist/__tests__/handshake-augment.test.d.ts.map +0 -1
- package/dist/__tests__/handshake-augment.test.js +0 -423
- package/dist/__tests__/handshake-augment.test.js.map +0 -1
- package/dist/__tests__/handshake-dormancy.test.d.ts +0 -2
- package/dist/__tests__/handshake-dormancy.test.d.ts.map +0 -1
- package/dist/__tests__/handshake-dormancy.test.js +0 -207
- package/dist/__tests__/handshake-dormancy.test.js.map +0 -1
- package/dist/__tests__/handshake-formatter.test.d.ts +0 -2
- package/dist/__tests__/handshake-formatter.test.d.ts.map +0 -1
- package/dist/__tests__/handshake-formatter.test.js +0 -67
- package/dist/__tests__/handshake-formatter.test.js.map +0 -1
- package/dist/__tests__/handshake-preview.test.d.ts +0 -2
- package/dist/__tests__/handshake-preview.test.d.ts.map +0 -1
- package/dist/__tests__/handshake-preview.test.js +0 -841
- package/dist/__tests__/handshake-preview.test.js.map +0 -1
- package/dist/__tests__/handshake.e2e.test.d.ts +0 -2
- package/dist/__tests__/handshake.e2e.test.d.ts.map +0 -1
- package/dist/__tests__/handshake.e2e.test.js +0 -1252
- package/dist/__tests__/handshake.e2e.test.js.map +0 -1
- package/dist/__tests__/handshake.test.d.ts +0 -2
- package/dist/__tests__/handshake.test.d.ts.map +0 -1
- package/dist/__tests__/handshake.test.js +0 -805
- package/dist/__tests__/handshake.test.js.map +0 -1
- package/dist/__tests__/ingest.test.d.ts +0 -2
- package/dist/__tests__/ingest.test.d.ts.map +0 -1
- package/dist/__tests__/ingest.test.js +0 -185
- package/dist/__tests__/ingest.test.js.map +0 -1
- package/dist/__tests__/method-registry.integration.test.d.ts +0 -6
- package/dist/__tests__/method-registry.integration.test.d.ts.map +0 -1
- package/dist/__tests__/method-registry.integration.test.js +0 -18
- package/dist/__tests__/method-registry.integration.test.js.map +0 -1
- package/dist/__tests__/method-registry.test.d.ts +0 -14
- package/dist/__tests__/method-registry.test.d.ts.map +0 -1
- package/dist/__tests__/method-registry.test.js +0 -134
- package/dist/__tests__/method-registry.test.js.map +0 -1
- package/dist/__tests__/onboarding-path-b.test.d.ts +0 -2
- package/dist/__tests__/onboarding-path-b.test.d.ts.map +0 -1
- package/dist/__tests__/onboarding-path-b.test.js +0 -46
- package/dist/__tests__/onboarding-path-b.test.js.map +0 -1
- package/dist/__tests__/onboarding.test.d.ts +0 -6
- package/dist/__tests__/onboarding.test.d.ts.map +0 -1
- package/dist/__tests__/onboarding.test.js +0 -347
- package/dist/__tests__/onboarding.test.js.map +0 -1
- package/dist/__tests__/promote.test.d.ts +0 -2
- package/dist/__tests__/promote.test.d.ts.map +0 -1
- package/dist/__tests__/promote.test.js +0 -230
- package/dist/__tests__/promote.test.js.map +0 -1
- package/dist/__tests__/proposals.test.d.ts +0 -2
- package/dist/__tests__/proposals.test.d.ts.map +0 -1
- package/dist/__tests__/proposals.test.js +0 -167
- package/dist/__tests__/proposals.test.js.map +0 -1
- package/dist/__tests__/setup-ingest.test.d.ts +0 -2
- package/dist/__tests__/setup-ingest.test.d.ts.map +0 -1
- package/dist/__tests__/setup-ingest.test.js +0 -71
- package/dist/__tests__/setup-ingest.test.js.map +0 -1
- package/dist/__tests__/setup-resolver.test.d.ts +0 -14
- package/dist/__tests__/setup-resolver.test.d.ts.map +0 -1
- package/dist/__tests__/setup-resolver.test.js +0 -228
- package/dist/__tests__/setup-resolver.test.js.map +0 -1
- package/dist/commands/__tests__/setup-detect-surfaces.test.d.ts +0 -15
- package/dist/commands/__tests__/setup-detect-surfaces.test.d.ts.map +0 -1
- package/dist/commands/__tests__/setup-detect-surfaces.test.js +0 -149
- package/dist/commands/__tests__/setup-detect-surfaces.test.js.map +0 -1
- package/dist/commands/__tests__/setup-state.test.d.ts +0 -2
- package/dist/commands/__tests__/setup-state.test.d.ts.map +0 -1
- package/dist/commands/__tests__/setup-state.test.js +0 -194
- package/dist/commands/__tests__/setup-state.test.js.map +0 -1
- package/dist/commands/accept.d.ts +0 -18
- package/dist/commands/accept.d.ts.map +0 -1
- package/dist/commands/accept.js +0 -76
- package/dist/commands/accept.js.map +0 -1
- package/dist/commands/audit.d.ts +0 -25
- package/dist/commands/audit.d.ts.map +0 -1
- package/dist/commands/audit.js +0 -215
- package/dist/commands/audit.js.map +0 -1
- package/dist/commands/authority-domains.d.ts +0 -146
- package/dist/commands/authority-domains.d.ts.map +0 -1
- package/dist/commands/authority-domains.js +0 -283
- package/dist/commands/authority-domains.js.map +0 -1
- package/dist/commands/brand-pack.d.ts +0 -2
- package/dist/commands/brand-pack.d.ts.map +0 -1
- package/dist/commands/brand-pack.js +0 -25
- package/dist/commands/brand-pack.js.map +0 -1
- package/dist/commands/connect-context.d.ts +0 -45
- package/dist/commands/connect-context.d.ts.map +0 -1
- package/dist/commands/connect-context.js +0 -64
- package/dist/commands/connect-context.js.map +0 -1
- package/dist/commands/connect-context.test.d.ts +0 -2
- package/dist/commands/connect-context.test.d.ts.map +0 -1
- package/dist/commands/connect-context.test.js +0 -110
- package/dist/commands/connect-context.test.js.map +0 -1
- package/dist/commands/handshake.d.ts +0 -222
- package/dist/commands/handshake.d.ts.map +0 -1
- package/dist/commands/handshake.js +0 -2421
- package/dist/commands/handshake.js.map +0 -1
- package/dist/commands/ingest.d.ts +0 -14
- package/dist/commands/ingest.d.ts.map +0 -1
- package/dist/commands/ingest.js +0 -189
- package/dist/commands/ingest.js.map +0 -1
- package/dist/commands/method.d.ts +0 -99
- package/dist/commands/method.d.ts.map +0 -1
- package/dist/commands/method.js +0 -785
- package/dist/commands/method.js.map +0 -1
- package/dist/commands/migrate-setup.d.ts +0 -18
- package/dist/commands/migrate-setup.d.ts.map +0 -1
- package/dist/commands/migrate-setup.js +0 -198
- package/dist/commands/migrate-setup.js.map +0 -1
- package/dist/commands/promote.d.ts +0 -12
- package/dist/commands/promote.d.ts.map +0 -1
- package/dist/commands/promote.js +0 -113
- package/dist/commands/promote.js.map +0 -1
- package/dist/commands/proposals.d.ts +0 -9
- package/dist/commands/proposals.d.ts.map +0 -1
- package/dist/commands/proposals.js +0 -24
- package/dist/commands/proposals.js.map +0 -1
- package/dist/commands/reject.d.ts +0 -14
- package/dist/commands/reject.d.ts.map +0 -1
- package/dist/commands/reject.js +0 -44
- package/dist/commands/reject.js.map +0 -1
- package/dist/commands/setup-audit.d.ts +0 -59
- package/dist/commands/setup-audit.d.ts.map +0 -1
- package/dist/commands/setup-audit.js +0 -250
- package/dist/commands/setup-audit.js.map +0 -1
- package/dist/commands/setup-detect-surfaces.d.ts +0 -38
- package/dist/commands/setup-detect-surfaces.d.ts.map +0 -1
- package/dist/commands/setup-detect-surfaces.js +0 -76
- package/dist/commands/setup-detect-surfaces.js.map +0 -1
- package/dist/commands/setup-ingest.d.ts +0 -17
- package/dist/commands/setup-ingest.d.ts.map +0 -1
- package/dist/commands/setup-ingest.js +0 -226
- package/dist/commands/setup-ingest.js.map +0 -1
- package/dist/commands/setup-resolver.d.ts +0 -58
- package/dist/commands/setup-resolver.d.ts.map +0 -1
- package/dist/commands/setup-resolver.js +0 -150
- package/dist/commands/setup-resolver.js.map +0 -1
- package/dist/commands/setup-state.d.ts +0 -42
- package/dist/commands/setup-state.d.ts.map +0 -1
- package/dist/commands/setup-state.js +0 -93
- package/dist/commands/setup-state.js.map +0 -1
- package/dist/commands/setup.d.ts +0 -23
- package/dist/commands/setup.d.ts.map +0 -1
- package/dist/commands/setup.js +0 -69
- package/dist/commands/setup.js.map +0 -1
- package/dist/formatters/audit.d.ts +0 -52
- package/dist/formatters/audit.d.ts.map +0 -1
- package/dist/formatters/audit.js +0 -81
- package/dist/formatters/audit.js.map +0 -1
- package/dist/formatters/promote.d.ts +0 -30
- package/dist/formatters/promote.d.ts.map +0 -1
- package/dist/formatters/promote.js +0 -39
- package/dist/formatters/promote.js.map +0 -1
- package/dist/formatters/proposals.d.ts +0 -45
- package/dist/formatters/proposals.d.ts.map +0 -1
- package/dist/formatters/proposals.js +0 -62
- package/dist/formatters/proposals.js.map +0 -1
- package/dist/generators/archetypes.d.ts +0 -52
- package/dist/generators/archetypes.d.ts.map +0 -1
- package/dist/generators/archetypes.js +0 -153
- package/dist/generators/archetypes.js.map +0 -1
- package/dist/generators/archetypes.test.d.ts +0 -2
- package/dist/generators/archetypes.test.d.ts.map +0 -1
- package/dist/generators/archetypes.test.js +0 -237
- package/dist/generators/archetypes.test.js.map +0 -1
- package/dist/generators/chain-classifier.d.ts +0 -49
- package/dist/generators/chain-classifier.d.ts.map +0 -1
- package/dist/generators/chain-classifier.js +0 -180
- package/dist/generators/chain-classifier.js.map +0 -1
- package/dist/generators/chain-classifier.test.d.ts +0 -2
- package/dist/generators/chain-classifier.test.d.ts.map +0 -1
- package/dist/generators/chain-classifier.test.js +0 -257
- package/dist/generators/chain-classifier.test.js.map +0 -1
- package/dist/generators/chain-rules.d.ts +0 -42
- package/dist/generators/chain-rules.d.ts.map +0 -1
- package/dist/generators/chain-rules.js +0 -144
- package/dist/generators/chain-rules.js.map +0 -1
- package/dist/generators/chain-rules.test.d.ts +0 -2
- package/dist/generators/chain-rules.test.d.ts.map +0 -1
- package/dist/generators/chain-rules.test.js +0 -179
- package/dist/generators/chain-rules.test.js.map +0 -1
- package/dist/generators/handshake-diff.d.ts +0 -67
- package/dist/generators/handshake-diff.d.ts.map +0 -1
- package/dist/generators/handshake-diff.js +0 -183
- package/dist/generators/handshake-diff.js.map +0 -1
- package/dist/generators/handshake-diff.test.d.ts +0 -2
- package/dist/generators/handshake-diff.test.d.ts.map +0 -1
- package/dist/generators/handshake-diff.test.js +0 -264
- package/dist/generators/handshake-diff.test.js.map +0 -1
- package/dist/lib/activation.d.ts +0 -28
- package/dist/lib/activation.d.ts.map +0 -1
- package/dist/lib/activation.js +0 -57
- package/dist/lib/activation.js.map +0 -1
- package/dist/lib/activation.test.d.ts +0 -6
- package/dist/lib/activation.test.d.ts.map +0 -1
- package/dist/lib/activation.test.js +0 -121
- package/dist/lib/activation.test.js.map +0 -1
- package/dist/lib/collectionRegistry.d.ts +0 -38
- package/dist/lib/collectionRegistry.d.ts.map +0 -1
- package/dist/lib/collectionRegistry.js +0 -112
- package/dist/lib/collectionRegistry.js.map +0 -1
- package/dist/lib/conversation-engine.d.ts +0 -45
- package/dist/lib/conversation-engine.d.ts.map +0 -1
- package/dist/lib/conversation-engine.js +0 -112
- package/dist/lib/conversation-engine.js.map +0 -1
- package/dist/lib/conversation-phases.d.ts +0 -59
- package/dist/lib/conversation-phases.d.ts.map +0 -1
- package/dist/lib/conversation-phases.js +0 -11
- package/dist/lib/conversation-phases.js.map +0 -1
- package/dist/lib/conversation-signals.d.ts +0 -30
- package/dist/lib/conversation-signals.d.ts.map +0 -1
- package/dist/lib/conversation-signals.js +0 -64
- package/dist/lib/conversation-signals.js.map +0 -1
- package/dist/lib/inferSourceDate.d.ts +0 -12
- package/dist/lib/inferSourceDate.d.ts.map +0 -1
- package/dist/lib/inferSourceDate.js +0 -44
- package/dist/lib/inferSourceDate.js.map +0 -1
- package/dist/lib/method-registry.d.ts +0 -32
- package/dist/lib/method-registry.d.ts.map +0 -1
- package/dist/lib/method-registry.js +0 -53
- package/dist/lib/method-registry.js.map +0 -1
- package/dist/lib/onboarding-path-b.d.ts +0 -10
- package/dist/lib/onboarding-path-b.d.ts.map +0 -1
- package/dist/lib/onboarding-path-b.js +0 -213
- package/dist/lib/onboarding-path-b.js.map +0 -1
- package/dist/lib/onboarding-shared.d.ts +0 -80
- package/dist/lib/onboarding-shared.d.ts.map +0 -1
- package/dist/lib/onboarding-shared.js +0 -174
- package/dist/lib/onboarding-shared.js.map +0 -1
- package/dist/lib/onboarding-topics.d.ts +0 -27
- package/dist/lib/onboarding-topics.d.ts.map +0 -1
- package/dist/lib/onboarding-topics.js +0 -57
- package/dist/lib/onboarding-topics.js.map +0 -1
- package/dist/lib/onboarding.d.ts +0 -17
- package/dist/lib/onboarding.d.ts.map +0 -1
- package/dist/lib/onboarding.js +0 -350
- package/dist/lib/onboarding.js.map +0 -1
- package/dist/setup/__tests__/coach-traces.test.d.ts +0 -2
- package/dist/setup/__tests__/coach-traces.test.d.ts.map +0 -1
- package/dist/setup/__tests__/coach-traces.test.js +0 -189
- package/dist/setup/__tests__/coach-traces.test.js.map +0 -1
- package/dist/setup/__tests__/setup-commands.test.d.ts +0 -2
- package/dist/setup/__tests__/setup-commands.test.d.ts.map +0 -1
- package/dist/setup/__tests__/setup-commands.test.js +0 -177
- package/dist/setup/__tests__/setup-commands.test.js.map +0 -1
- package/dist/setup/__tests__/state-machine.test.d.ts +0 -2
- package/dist/setup/__tests__/state-machine.test.d.ts.map +0 -1
- package/dist/setup/__tests__/state-machine.test.js +0 -341
- package/dist/setup/__tests__/state-machine.test.js.map +0 -1
- package/dist/setup/detect-surfaces.d.ts +0 -21
- package/dist/setup/detect-surfaces.d.ts.map +0 -1
- package/dist/setup/detect-surfaces.js +0 -39
- package/dist/setup/detect-surfaces.js.map +0 -1
- package/dist/setup/manifest-writer.d.ts +0 -17
- package/dist/setup/manifest-writer.d.ts.map +0 -1
- package/dist/setup/manifest-writer.js +0 -153
- package/dist/setup/manifest-writer.js.map +0 -1
- package/dist/setup/perimeter.d.ts +0 -72
- package/dist/setup/perimeter.d.ts.map +0 -1
- package/dist/setup/perimeter.js +0 -128
- package/dist/setup/perimeter.js.map +0 -1
- package/dist/setup/state-machine.d.ts +0 -67
- package/dist/setup/state-machine.d.ts.map +0 -1
- package/dist/setup/state-machine.js +0 -124
- package/dist/setup/state-machine.js.map +0 -1
- package/dist/surfaces/__tests__/pb-setup-passthrough.test.d.ts +0 -2
- package/dist/surfaces/__tests__/pb-setup-passthrough.test.d.ts.map +0 -1
- package/dist/surfaces/__tests__/pb-setup-passthrough.test.js +0 -132
- package/dist/surfaces/__tests__/pb-setup-passthrough.test.js.map +0 -1
- package/templates/archetypes/boundary.md +0 -23
- package/templates/archetypes/constraint.md +0 -23
- package/templates/archetypes/convention.md +0 -23
- package/templates/archetypes/policy.md +0 -23
- package/templates/archetypes/quality-gate.md +0 -23
- package/templates/archetypes/workflow.md +0 -23
- package/templates/general/code-integrity.md +0 -11
- package/templates/general/getting-started.md +0 -12
- package/templates/method-registry.json +0 -16
- package/templates/node-ts/code-integrity.md +0 -13
- package/templates/node-ts/testing.md +0 -12
- package/templates/python/code-integrity.md +0 -13
- package/templates/python/testing.md +0 -12
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
const rate = (r) => `${r.count}/${r.of}`;
|
|
2
|
+
/** The verb each mode prints as, one place for every line below (RULE-664). */
|
|
3
|
+
const MODE_VERB = { hold: 'holds', suggest: 'suggests', record: 'records' };
|
|
4
|
+
/** TEN-4775: the header says what the check does per kind, from the mode the door applies, never a bar it does not hold at. */
|
|
5
|
+
function header(check) {
|
|
6
|
+
const of = (mode) => check.kinds.filter((k) => k.mode === mode).map((k) => k.kind).join(', ');
|
|
7
|
+
const holds = of('hold');
|
|
8
|
+
const later = ['suggest', 'record'].flatMap((mode) => (of(mode) ? [`${MODE_VERB[mode]} ${of(mode)}`] : []));
|
|
9
|
+
const parts = [holds ? `${MODE_VERB.hold} ${holds}` : `${MODE_VERB.hold} nothing`, ...later];
|
|
10
|
+
return `${check.checkKey} check (p ${check.holdAt.toFixed(2)}: ${parts.join('; ')})`;
|
|
11
|
+
}
|
|
12
|
+
/** TASK-747 (DEC-2117): the trip window of non-self resolutions, and the self-accepts beside it, never counted. */
|
|
13
|
+
function kindLine(k) {
|
|
14
|
+
if (k.mode !== 'hold' && k.trippedAt === null)
|
|
15
|
+
return ` ${k.kind}: ${MODE_VERB[k.mode]}; never held, so no trip window`;
|
|
16
|
+
const w = k.window;
|
|
17
|
+
const mode = k.trippedAt === null ? 'holds' : `suggests, hold tripped ${new Date(k.trippedAt).toISOString().slice(0, 10)}`;
|
|
18
|
+
return ` ${k.kind}: ${mode}; trip window ${w.fill} of ${w.of} non-self resolutions: unchanged ${w.accepted_unchanged}, `
|
|
19
|
+
+ `edited ${w.accepted_edited}, discarded ${w.discarded}; self-accepted unchanged ${rate(k.selfUnchanged)} self resolutions, `
|
|
20
|
+
+ `unattributed ${k.unattributed} (no writer person); neither counted`;
|
|
21
|
+
}
|
|
22
|
+
function windowLine(label, w) {
|
|
23
|
+
const reasons = Object.entries(w.unavailableReasons).map(([why, n]) => `${why} ${n}`).join(', ');
|
|
24
|
+
// TEN-5167: only the role check looks an owner up, so only its window carries the count.
|
|
25
|
+
const ownerUnread = w.ownerUnread ? `owner lookup failed ${rate(w.ownerUnread)} of the holds and suggestions, ` : '';
|
|
26
|
+
return ` ${label}: ${w.checked} writes checked; held ${rate(w.holds)}, suggested ${rate(w.suggestions)}, recorded at the bar ${rate(w.recorded)}, `
|
|
27
|
+
+ `timed out ${rate(w.timeouts)}, ${ownerUnread}unavailable ${rate(w.unavailable)}${reasons ? ` (${reasons})` : ''}; `
|
|
28
|
+
+ `of the holds: handed back ${rate(w.handBacks)}, overridden ${rate(w.overrides)}`;
|
|
29
|
+
}
|
|
30
|
+
/** TASK-901: what became of the held entries, each result by the writer itself and by someone else. */
|
|
31
|
+
function outcomesLine(label, w) {
|
|
32
|
+
const o = w.outcomes;
|
|
33
|
+
const part = (word) => `${word} ${o[word].self + o[word].other} (self ${o[word].self}, other ${o[word].other})`;
|
|
34
|
+
return ` ${label} outcomes: ${part('accepted_unchanged')}, ${part('accepted_edited')}, ${part('discarded')}`;
|
|
35
|
+
}
|
|
36
|
+
export function formatQualityChecks(result) {
|
|
37
|
+
const lines = [];
|
|
38
|
+
for (const check of result.checks) {
|
|
39
|
+
lines.push(header(check));
|
|
40
|
+
lines.push(...check.kinds.map(kindLine));
|
|
41
|
+
lines.push(windowLine('all time', check.allTime));
|
|
42
|
+
lines.push(outcomesLine('all time', check.allTime));
|
|
43
|
+
lines.push(windowLine('last 50 holds', check.lastHolds));
|
|
44
|
+
lines.push(outcomesLine('last 50 holds', check.lastHolds));
|
|
45
|
+
if (check.lastHoldsCutAtRows !== null)
|
|
46
|
+
lines.push(` last 50 holds: window cut at ${check.lastHoldsCutAtRows} rows; its counts are partial.`);
|
|
47
|
+
}
|
|
48
|
+
if (result.truncated)
|
|
49
|
+
lines.push('The ledger read stopped at its cap: the all-time counts cover the newest rows only.');
|
|
50
|
+
return lines.join('\n');
|
|
51
|
+
}
|
|
52
|
+
/** TASK-921: the words each class prints as; the class itself comes from the kernel (roleSuggestionOutcomes.ts). */
|
|
53
|
+
const CLASS_WORD = {
|
|
54
|
+
matched: 'matched', mismatched: 'mismatched', still_draft: 'still draft', discarded: 'discarded or retired', unowned: 'no owner',
|
|
55
|
+
unreadable: 'unreadable (no role kept)', gone: 'entry gone',
|
|
56
|
+
};
|
|
57
|
+
const TOTAL_LABEL = {
|
|
58
|
+
hold: 'holds', suggest: 'suggestions', record: 'recorded', released: 'released to the writer', placed: 'placed on its role', all: 'all',
|
|
59
|
+
};
|
|
60
|
+
/** `pb quality checks --role-suggestions` (TASK-921): one line per verdict, then each class over its denominator (RULE-17). */
|
|
61
|
+
export function formatRoleSuggestions(result) {
|
|
62
|
+
const lines = result.rows.map((r) => {
|
|
63
|
+
const p = r.probability === null ? 'p -' : `p ${r.probability.toFixed(2)}`;
|
|
64
|
+
const named = r.suggested ? `${r.suggested.name}${r.suggested.roleId ? ` (${r.suggested.roleId})` : ''}` : 'no role kept';
|
|
65
|
+
const owner = r.finalOwner ? `${r.finalOwner.name}${r.finalOwner.roleId ? ` (${r.finalOwner.roleId})` : ''}` : 'none';
|
|
66
|
+
const resolved = r.resolution ? `, ${r.resolution}` : '';
|
|
67
|
+
return `${new Date(r.at).toISOString().slice(0, 16)}Z ${r.subjectEntryId ?? '(no entry id)'} ${r.action}${r.late ? ' (late)' : ''} ${p} `
|
|
68
|
+
+ `named ${named} -> owner ${owner} [${r.entryStatus ?? 'gone'}${resolved}]: ${CLASS_WORD[r.class]}`;
|
|
69
|
+
});
|
|
70
|
+
if (lines.length === 0)
|
|
71
|
+
lines.push('No role-check suggestion or hold in the ledger read yet; pb quality checks shows how many writes the role check judged.');
|
|
72
|
+
for (const t of result.totals) {
|
|
73
|
+
const parts = result.classes.map((c) => `${CLASS_WORD[c]} ${t.byClass[c]}/${t.of}`); // the kernel's class order (ROLE_SUGGESTION_CLASSES)
|
|
74
|
+
lines.push(`${TOTAL_LABEL[t.action]}: ${t.of} rows; ${parts.join(', ')}`);
|
|
75
|
+
}
|
|
76
|
+
const lead = result.leadRoutes; // DEC-2165 kill line A (TASK-949): the route names the writer's own team, so expect 0
|
|
77
|
+
lines.push(`Team Lead routes: ${lead.of} entries Team Lead owns after a check named it; writer's team read ${lead.teamRead}/${lead.of}; owned in another team ${lead.offTeam}/${lead.teamRead}.`);
|
|
78
|
+
if (result.truncated) {
|
|
79
|
+
const from = result.readFrom === null ? 'its cap' : `${new Date(result.readFrom).toISOString().slice(0, 10)}`;
|
|
80
|
+
lines.push(`The ledger read stopped at ${from}: older verdicts are not in these rows or counts.`);
|
|
81
|
+
}
|
|
82
|
+
return lines.join('\n');
|
|
83
|
+
}
|
|
84
|
+
/** `pb quality checks --policy-rows` (TASK-961): one line per policy row at the bar, newest first, then how much was read (RULE-17). */
|
|
85
|
+
export function formatPolicyRows(result) {
|
|
86
|
+
const lines = result.rows.map((r) => {
|
|
87
|
+
const p = r.probability === null ? 'p -' : `p ${r.probability.toFixed(2)}`;
|
|
88
|
+
return `${new Date(r.at).toISOString().slice(0, 16)}Z ${r.subjectEntryId ?? '(no entry id)'} ${r.ruleId ?? '(no rule id)'} ${p} ${r.mode ?? '(no mode)'}`;
|
|
89
|
+
});
|
|
90
|
+
if (lines.length === 0)
|
|
91
|
+
lines.push('No policy-check row at the bar in the ledger read yet; pb quality checks shows how many writes the policy check judged.');
|
|
92
|
+
lines.push(`${result.rows.length} rows at the bar, from the newest ${result.scanned} check rows read.`);
|
|
93
|
+
if (result.truncated)
|
|
94
|
+
lines.push('The ledger read stopped at its cap: older policy rows are not listed.');
|
|
95
|
+
return lines.join('\n');
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=qualityChecks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qualityChecks.js","sourceRoot":"","sources":["../../src/formatters/qualityChecks.ts"],"names":[],"mappings":"AAaA,MAAM,IAAI,GAAG,CAAC,CAAgC,EAAU,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;AAChF,+EAA+E;AAC/E,MAAM,SAAS,GAAiC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAE1G,+HAA+H;AAC/H,SAAS,MAAM,CAAC,KAAY;IAC1B,MAAM,EAAE,GAAG,CAAC,IAAkB,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5G,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;IACzB,MAAM,KAAK,GAAI,CAAC,SAAS,EAAE,QAAQ,CAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvH,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC;IAC7F,OAAO,GAAG,KAAK,CAAC,QAAQ,aAAa,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACvF,CAAC;AAED,mHAAmH;AACnH,SAAS,QAAQ,CAAC,CAAO;IACvB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC;IACzH,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACnB,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAC3H,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,iBAAiB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,oCAAoC,CAAC,CAAC,kBAAkB,IAAI;UACrH,UAAU,CAAC,CAAC,eAAe,eAAe,CAAC,CAAC,SAAS,6BAA6B,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,qBAAqB;UAC5H,gBAAgB,CAAC,CAAC,YAAY,sCAAsC,CAAC;AAC3E,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,CAAS;IAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjG,yFAAyF;IACzF,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,uBAAuB,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,iCAAiC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrH,OAAO,KAAK,KAAK,KAAK,CAAC,CAAC,OAAO,yBAAyB,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,yBAAyB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI;UAChJ,aAAa,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,WAAW,eAAe,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI;UACpH,6BAA6B,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;AACxF,CAAC;AAED,uGAAuG;AACvG,SAAS,YAAY,CAAC,KAAa,EAAE,CAAS;IAC5C,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;IACrB,MAAM,IAAI,GAAG,CAAC,IAA8B,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC;IAC1I,OAAO,KAAK,KAAK,cAAc,IAAI,CAAC,oBAAoB,CAAC,KAAK,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;AAChH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAA2B;IAC7D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3D,IAAI,KAAK,CAAC,kBAAkB,KAAK,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,kCAAkC,KAAK,CAAC,kBAAkB,gCAAgC,CAAC,CAAC;IAChJ,CAAC;IACD,IAAI,MAAM,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAC;IACxH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,oHAAoH;AACpH,MAAM,UAAU,GAAmE;IACjF,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,sBAAsB,EAAE,OAAO,EAAE,UAAU;IAChI,UAAU,EAAE,2BAA2B,EAAE,IAAI,EAAE,YAAY;CAC5D,CAAC;AACF,MAAM,WAAW,GAAsE;IACrF,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,EAAE,oBAAoB,EAAE,GAAG,EAAE,KAAK;CACxI,CAAC;AAEF,+HAA+H;AAC/H,MAAM,UAAU,qBAAqB,CAAC,MAA6B;IACjE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;QAC1H,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QACtH,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,cAAc,IAAI,eAAe,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI;cACzI,SAAS,KAAK,aAAa,KAAK,KAAK,CAAC,CAAC,WAAW,IAAI,MAAM,GAAG,QAAQ,MAAM,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;IACzG,CAAC,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,yHAAyH,CAAC,CAAC;IAC9J,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,qDAAqD;QAC1I,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,sFAAsF;IACtH,KAAK,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,EAAE,sEAAsE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,2BAA2B,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IAClM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAC9G,KAAK,CAAC,IAAI,CAAC,8BAA8B,IAAI,mDAAmD,CAAC,CAAC;IACpG,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,wIAAwI;AACxI,MAAM,UAAU,gBAAgB,CAAC,MAAwB;IACvD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,cAAc,IAAI,eAAe,KAAK,CAAC,CAAC,MAAM,IAAI,cAAc,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC;IAChK,CAAC,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,yHAAyH,CAAC,CAAC;IAC9J,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,qCAAqC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;IACxG,IAAI,MAAM,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;IAC1G,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
export interface CreateResult {
|
|
2
|
+
entryId: string;
|
|
3
|
+
questionId?: string;
|
|
4
|
+
facetId: string;
|
|
5
|
+
status: 'escalated';
|
|
6
|
+
ownerRoleId: string;
|
|
7
|
+
routingReason: string;
|
|
8
|
+
nudge?: string;
|
|
9
|
+
}
|
|
10
|
+
/** `roleOrLeadName` is resolved by the caller (one `chain.getEntry` lookup) — this formatter
|
|
11
|
+
* never resolves ids itself ("no math here"). The name is
|
|
12
|
+
* workspace-controlled entry data (a role name), never sanitized upstream — every
|
|
13
|
+
* interpolation here goes through singleLine() first (BET-269 C3: terminal escaping) so a name
|
|
14
|
+
* containing control/ANSI sequences can't inject extra terminal output when this pretty-mode
|
|
15
|
+
* confirmation prints (round 2 review, PRRT_kwDORS4ils6YnqK-). */
|
|
16
|
+
export declare function formatQuestionCreate(result: CreateResult, roleOrLeadName: string): string;
|
|
17
|
+
export interface AssignResult {
|
|
18
|
+
entryId: string;
|
|
19
|
+
status: 'routed' | 'escalated';
|
|
20
|
+
ownerRoleId: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function formatQuestionAssignReassign(entryId: string, targetName: string): string;
|
|
23
|
+
export interface AnswerResult {
|
|
24
|
+
entryId: string;
|
|
25
|
+
status: 'processed';
|
|
26
|
+
answer?: string;
|
|
27
|
+
answerEntryId?: string;
|
|
28
|
+
askerPersonId?: string;
|
|
29
|
+
askerName?: string;
|
|
30
|
+
idempotent?: boolean;
|
|
31
|
+
processedVia?: 'answered' | 'declined' | 'force_closed';
|
|
32
|
+
replaced?: true;
|
|
33
|
+
answeredLine?: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* PRRT_kwDORS4ils6YnqK0 (round 2): does NOT mention `pb question list --mine` — S3 shipped no
|
|
37
|
+
* `list` subcommand at the time (createQuestionCommand() exposed only its write verbs; `list`
|
|
38
|
+
* was S4's own vertical, §4.1's slice-boundary fix). Pointing users at an unshipped command
|
|
39
|
+
* would have been a broken-command dead end; S4 restored the full §7.7 wording once `list`
|
|
40
|
+
* landed (D1c+D2a+D2b, WP-781: the surviving write verbs are now create/assign/answer/
|
|
41
|
+
* force-close — adopt/snooze/decline are deleted).
|
|
42
|
+
*
|
|
43
|
+
* Late #633 finding (PRRT_kwDORS4ils6YozQN): a question closed by decline/forceClose reaches
|
|
44
|
+
* the SAME idempotent branch as a genuine re-answer — say "already answered" only when it
|
|
45
|
+
* actually was (or when an older server response omits `processedVia` — treated as answered,
|
|
46
|
+
* the pre-fix behavior, so a caller that has not yet threaded the new field never regresses).
|
|
47
|
+
*/
|
|
48
|
+
export declare function formatQuestionAnswer(entryId: string, result: AnswerResult, askerName?: string): string;
|
|
49
|
+
export interface ForceCloseResult {
|
|
50
|
+
entryId: string;
|
|
51
|
+
status: 'processed';
|
|
52
|
+
idempotent?: boolean;
|
|
53
|
+
}
|
|
54
|
+
export declare function formatQuestionForceClose(entryId: string, result: ForceCloseResult): string;
|
|
55
|
+
export interface QuestionListRow {
|
|
56
|
+
entryId: string;
|
|
57
|
+
question: string;
|
|
58
|
+
status: string;
|
|
59
|
+
stateLabel: string;
|
|
60
|
+
routingReason?: string;
|
|
61
|
+
why: string;
|
|
62
|
+
domain: string;
|
|
63
|
+
withLabel: string;
|
|
64
|
+
ageDays: number;
|
|
65
|
+
legalVerbs: string[];
|
|
66
|
+
outcome?: string;
|
|
67
|
+
/** TASK-957 (RULE-664): the kernel's judge sentence for the row, printed as sent. */
|
|
68
|
+
judgeSentence?: string;
|
|
69
|
+
}
|
|
70
|
+
export interface QuestionListResult {
|
|
71
|
+
questions: QuestionListRow[];
|
|
72
|
+
viewerPersonId: string;
|
|
73
|
+
truncated?: boolean;
|
|
74
|
+
}
|
|
75
|
+
export declare function formatQuestionList(result: QuestionListResult, mine: boolean): string;
|
|
76
|
+
//# sourceMappingURL=questions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"questions.d.ts","sourceRoot":"","sources":["../../src/formatters/questions.ts"],"names":[],"mappings":"AAmCA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;mEAKmE;AACnE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAMzF;AAED,MAAM,WAAW,YAAY;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,QAAQ,GAAG,WAAW,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE;AAEtG,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAExF;AAED,MAAM,WAAW,YAAY;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,cAAc,CAAC;IAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE;AAElR;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAgBtG;AAED,MAAM,WAAW,gBAAgB;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE;AAEhG,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAE1F;AAID,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qFAAqF;IACrF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IAAG,SAAS,EAAE,eAAe,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE;AASjH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAmCpF"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { stripControlChars } from '../lib/strip.js';
|
|
2
|
+
/**
|
|
3
|
+
* Human-formatted rendering for `pb question <verb>` (WP-638 S3, §7.7 of the routed-questions
|
|
4
|
+
* design spec: docs/superpowers/specs/2026-08-10-routed-questions-design.md). One entry point
|
|
5
|
+
* per verb — every field rendered as the deployed
|
|
6
|
+
* mutation actually returned it, no math here.
|
|
7
|
+
*/
|
|
8
|
+
function singleLine(value) {
|
|
9
|
+
return value ? stripControlChars(value).replace(/\s+/g, ' ').trim() : '';
|
|
10
|
+
}
|
|
11
|
+
/** TEN-3332 rider (WP-707 S1): the list column's QUESTION truncation used to be a hard
|
|
12
|
+
* character-count slice with no word-boundary awareness and no ellipsis marker — a truncated
|
|
13
|
+
* row was visually indistinguishable from a short question that just happened to fit. Trims
|
|
14
|
+
* back to the last whitespace inside the limit and appends `…` only when the text actually
|
|
15
|
+
* needed cutting.
|
|
16
|
+
* WP-707 S1 round 2 (DEC-1622, ruling #10): `limit` is the CLI's column width, so the
|
|
17
|
+
* returned string (including the appended `…`) must never exceed it — slicing to `limit`
|
|
18
|
+
* before appending a 1-char ellipsis produced a `limit + 1`-char cell, one column over.
|
|
19
|
+
* Reserve that 1 char up front instead. */
|
|
20
|
+
function truncateWithEllipsis(value, limit) {
|
|
21
|
+
if (value.length <= limit)
|
|
22
|
+
return value;
|
|
23
|
+
const hardCap = value.slice(0, limit - 1);
|
|
24
|
+
const lastSpace = hardCap.lastIndexOf(' ');
|
|
25
|
+
const trimmed = lastSpace > 0 ? hardCap.slice(0, lastSpace) : hardCap;
|
|
26
|
+
return `${trimmed}…`;
|
|
27
|
+
}
|
|
28
|
+
/** `roleOrLeadName` is resolved by the caller (one `chain.getEntry` lookup) — this formatter
|
|
29
|
+
* never resolves ids itself ("no math here"). The name is
|
|
30
|
+
* workspace-controlled entry data (a role name), never sanitized upstream — every
|
|
31
|
+
* interpolation here goes through singleLine() first (BET-269 C3: terminal escaping) so a name
|
|
32
|
+
* containing control/ANSI sequences can't inject extra terminal output when this pretty-mode
|
|
33
|
+
* confirmation prints (round 2 review, PRRT_kwDORS4ils6YnqK-). */
|
|
34
|
+
export function formatQuestionCreate(result, roleOrLeadName) {
|
|
35
|
+
const name = singleLine(roleOrLeadName);
|
|
36
|
+
const base = `Asked as ${singleLine(result.questionId ?? result.entryId)}. It is with ${name}.`;
|
|
37
|
+
const blocksHint = ' If something is blocked on this, add --blocks <entry-id>.';
|
|
38
|
+
const nudge = result.nudge ? ` ${result.nudge}` : '';
|
|
39
|
+
return `${base}${blocksHint}${nudge}`;
|
|
40
|
+
}
|
|
41
|
+
export function formatQuestionAssignReassign(entryId, targetName) {
|
|
42
|
+
return `${singleLine(entryId)} reassigned to ${singleLine(targetName)}. They'll see it at their next session.`;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* PRRT_kwDORS4ils6YnqK0 (round 2): does NOT mention `pb question list --mine` — S3 shipped no
|
|
46
|
+
* `list` subcommand at the time (createQuestionCommand() exposed only its write verbs; `list`
|
|
47
|
+
* was S4's own vertical, §4.1's slice-boundary fix). Pointing users at an unshipped command
|
|
48
|
+
* would have been a broken-command dead end; S4 restored the full §7.7 wording once `list`
|
|
49
|
+
* landed (D1c+D2a+D2b, WP-781: the surviving write verbs are now create/assign/answer/
|
|
50
|
+
* force-close — adopt/snooze/decline are deleted).
|
|
51
|
+
*
|
|
52
|
+
* Late #633 finding (PRRT_kwDORS4ils6YozQN): a question closed by decline/forceClose reaches
|
|
53
|
+
* the SAME idempotent branch as a genuine re-answer — say "already answered" only when it
|
|
54
|
+
* actually was (or when an older server response omits `processedVia` — treated as answered,
|
|
55
|
+
* the pre-fix behavior, so a caller that has not yet threaded the new field never regresses).
|
|
56
|
+
*/
|
|
57
|
+
export function formatQuestionAnswer(entryId, result, askerName) {
|
|
58
|
+
if (result.idempotent) {
|
|
59
|
+
if (result.processedVia === 'declined' || result.processedVia === 'force_closed') {
|
|
60
|
+
const via = result.processedVia === 'declined' ? 'declined' : 'force-closed';
|
|
61
|
+
return `${singleLine(entryId)} is already processed (${via}) — no change.`;
|
|
62
|
+
}
|
|
63
|
+
// TASK-978 (TEN-5317): the same answer again; the kernel's line names who answered and when.
|
|
64
|
+
return `${singleLine(entryId)} already has this answer — no change. ${singleLine(result.answeredLine)}`.trim();
|
|
65
|
+
}
|
|
66
|
+
const name = singleLine(askerName) || 'The asker';
|
|
67
|
+
// TASK-978 (DEC-2181): a re-answer through the answer door replaced the answer; the history keeps the old one.
|
|
68
|
+
if (result.replaced)
|
|
69
|
+
return `${singleLine(entryId)} is answered again; the previous answer stays in its history. ${name} will see the new answer at their next session.`;
|
|
70
|
+
// §7.7's documented string (design spec line 1413) points at the persistent history surface
|
|
71
|
+
// this slice introduces — restored now that `pb question list --mine` actually exists (review
|
|
72
|
+
// finding: S3's temporary wording never got the S4 pointer added).
|
|
73
|
+
return `${singleLine(entryId)} is answered. ${name} will see the answer at their next session (and in pb question list --mine).`;
|
|
74
|
+
}
|
|
75
|
+
export function formatQuestionForceClose(entryId, result) {
|
|
76
|
+
return result.idempotent ? `${singleLine(entryId)} is already closed — no change.` : 'Force-closed. Reason recorded.';
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* §7.7's `pb question list` columns, in order: ID · QUESTION · STATE · WHY · DOMAIN · WITH ·
|
|
80
|
+
* AGE — plus OUTCOME on `--mine`, or TO DECIDE (the kernel's judge sentence, TASK-957) on the obligation view. Empty: `No open questions.` / `--mine`:
|
|
81
|
+
* `You haven't asked any questions yet.` — never a bare empty table.
|
|
82
|
+
*/
|
|
83
|
+
const QUESTION_LIST_TRUNCATE = 60;
|
|
84
|
+
export function formatQuestionList(result, mine) {
|
|
85
|
+
const rows = result.questions;
|
|
86
|
+
if (rows.length === 0) {
|
|
87
|
+
return mine ? "You haven't asked any questions yet." : 'No open questions.';
|
|
88
|
+
}
|
|
89
|
+
const header = mine
|
|
90
|
+
? 'ID | QUESTION | STATE | WHY | DOMAIN | WITH | AGE | OUTCOME'
|
|
91
|
+
: 'ID | QUESTION | STATE | WHY | DOMAIN | WITH | AGE | TO DECIDE';
|
|
92
|
+
// Pipe-delimited, not fixed-width — STATE/WHY/DOMAIN/WITH are already short, controlled
|
|
93
|
+
// server-side strings (never truncated, so a display string is never cut mid-word); only
|
|
94
|
+
// QUESTION (genuine user free text) is bounded.
|
|
95
|
+
const lines = rows.map((r) => {
|
|
96
|
+
const cols = [
|
|
97
|
+
singleLine(r.entryId),
|
|
98
|
+
truncateWithEllipsis(singleLine(r.question), QUESTION_LIST_TRUNCATE),
|
|
99
|
+
singleLine(r.stateLabel),
|
|
100
|
+
singleLine(r.why),
|
|
101
|
+
singleLine(r.domain),
|
|
102
|
+
singleLine(r.withLabel),
|
|
103
|
+
`${r.ageDays}d`,
|
|
104
|
+
];
|
|
105
|
+
if (mine)
|
|
106
|
+
cols.push(singleLine(r.outcome));
|
|
107
|
+
else
|
|
108
|
+
cols.push(singleLine(r.judgeSentence));
|
|
109
|
+
return cols.join(' | ');
|
|
110
|
+
});
|
|
111
|
+
// Review finding: the scan is honestly capped (ACK_GATE_ASKER_SCAN_CAP for --mine,
|
|
112
|
+
// ACK_GATE_ROLE_SCAN_CAP/ACK_GATE_OWNER_SCAN_CAP for the obligation view) — a caller who has
|
|
113
|
+
// asked/owed more than that must be TOLD the list isn't exhaustive, not left assuming an older
|
|
114
|
+
// row silently doesn't exist.
|
|
115
|
+
const truncationNote = result.truncated
|
|
116
|
+
? [mine
|
|
117
|
+
? 'Showing your most recent questions only — older ones exist but are not shown.'
|
|
118
|
+
: 'This list may be incomplete — some obligations may not be shown.']
|
|
119
|
+
: [];
|
|
120
|
+
return [header, ...lines, ...truncationNote].join('\n');
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=questions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"questions.js","sourceRoot":"","sources":["../../src/formatters/questions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"questions.test.d.ts","sourceRoot":"","sources":["../../src/formatters/questions.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { formatQuestionCreate, formatQuestionAssignReassign, formatQuestionAnswer, formatQuestionForceClose, formatQuestionList, } from './questions.js';
|
|
3
|
+
/**
|
|
4
|
+
* Formatter tests for `pb question` (WP-638 S3, §7.7 of the routed-questions design spec).
|
|
5
|
+
* Every case is re-derived from §7.7's per-verb confirmation/refusal table — the same
|
|
6
|
+
* "derived from the matrix, not written beside it" discipline the spec itself demands (§3.9).
|
|
7
|
+
*
|
|
8
|
+
* D1c+D2a+D2b (TASK-413/414/416, WP-781): `adopt`/`snooze`/`decline` are deleted, and `assign`
|
|
9
|
+
* is reassign-to-a-role only (DEC-1707/§10: no domain lookup anywhere; only assign/answer/
|
|
10
|
+
* forceClose remain). Every question is now born `'escalated'` straight to the Team Lead.
|
|
11
|
+
*/
|
|
12
|
+
function createResult(overrides = {}) {
|
|
13
|
+
return {
|
|
14
|
+
entryId: 'TEN-100',
|
|
15
|
+
questionId: 'QUE-7',
|
|
16
|
+
facetId: 'facet-1',
|
|
17
|
+
status: 'escalated',
|
|
18
|
+
ownerRoleId: 'role-lead',
|
|
19
|
+
routingReason: 'no_domain',
|
|
20
|
+
...overrides,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
describe('formatQuestionCreate', () => {
|
|
24
|
+
it('names who it has gone to, plus the blocks hint', () => {
|
|
25
|
+
const message = formatQuestionCreate(createResult(), 'Ralph');
|
|
26
|
+
expect(message).toBe('Asked as QUE-7. It is with Ralph. If something is blocked on this, add --blocks <entry-id>.');
|
|
27
|
+
});
|
|
28
|
+
it('appends the sub-80-char nudge verbatim when present', () => {
|
|
29
|
+
const message = formatQuestionCreate(createResult({ nudge: 'Tip: add a sentence on why it matters — the person who picks this up sees only what you wrote.' }), 'Ralph');
|
|
30
|
+
expect(message).toContain('Tip: add a sentence on why it matters');
|
|
31
|
+
});
|
|
32
|
+
// PRRT_kwDORS4ils6YnqK- (round 2 review): resolved role/team-lead names are
|
|
33
|
+
// workspace-controlled entry names — sanitize before interpolating into terminal output.
|
|
34
|
+
it('sanitizes a control-character-laden lead name before interpolating it', () => {
|
|
35
|
+
const message = formatQuestionCreate(createResult(), 'Ralph\x1b[31m\x07');
|
|
36
|
+
expect(message).toContain('Asked as QUE-7. It is with Ralph.');
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
describe('assign confirmation strings', () => {
|
|
40
|
+
it('reassign: names the target and says they will see it at their next session', () => {
|
|
41
|
+
const message = formatQuestionAssignReassign('TEN-100', 'Sylvie');
|
|
42
|
+
expect(message).toBe("TEN-100 reassigned to Sylvie. They'll see it at their next session.");
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
describe('formatQuestionAnswer', () => {
|
|
46
|
+
it('names the asker and never says "notified" (OR-18/R33)', () => {
|
|
47
|
+
const message = formatQuestionAnswer('TEN-100', { entryId: 'TEN-100', status: 'processed', answer: 'Yes.' }, 'Mathijs');
|
|
48
|
+
expect(message).toBe('TEN-100 is answered. Mathijs will see the answer at their next session (and in pb question list --mine).');
|
|
49
|
+
expect(message).not.toContain('notified');
|
|
50
|
+
});
|
|
51
|
+
// Review finding (post-S4 landing): now that `pb question list --mine` is a real, shipped
|
|
52
|
+
// command in this same PR, §7.7's documented string (design spec line 1413) restores the
|
|
53
|
+
// pointer S3's temporary wording had to omit.
|
|
54
|
+
it('mentions the now-shipped pb question list --mine command (§7.7)', () => {
|
|
55
|
+
const message = formatQuestionAnswer('TEN-100', { entryId: 'TEN-100', status: 'processed' }, 'Mathijs');
|
|
56
|
+
expect(message).toContain('pb question list --mine');
|
|
57
|
+
});
|
|
58
|
+
it('sanitizes a control-character-laden asker name before interpolating it (PRRT_kwDORS4ils6YnqK-)', () => {
|
|
59
|
+
const message = formatQuestionAnswer('TEN-100', { entryId: 'TEN-100', status: 'processed' }, 'Mathijs\x1b[31m\x07');
|
|
60
|
+
expect(message).toBe('TEN-100 is answered. Mathijs will see the answer at their next session (and in pb question list --mine).');
|
|
61
|
+
});
|
|
62
|
+
it('the same answer again: names the entry and the kernel line naming who answered and when (TEN-5317)', () => {
|
|
63
|
+
const answeredLine = 'This question was answered by Robin at 2026-10-17 14:20 UTC.';
|
|
64
|
+
const message = formatQuestionAnswer('TEN-100', { entryId: 'TEN-100', status: 'processed', idempotent: true, processedVia: 'answered', answeredLine });
|
|
65
|
+
expect(message).toBe(`TEN-100 already has this answer — no change. ${answeredLine}`);
|
|
66
|
+
});
|
|
67
|
+
it('a re-answer says the answer was replaced and the previous one stays in history (DEC-2181)', () => {
|
|
68
|
+
const message = formatQuestionAnswer('TEN-100', { entryId: 'TEN-100', status: 'processed', answer: 'Monday', replaced: true }, 'Robin');
|
|
69
|
+
expect(message).toBe('TEN-100 is answered again; the previous answer stays in its history. Robin will see the new answer at their next session.');
|
|
70
|
+
});
|
|
71
|
+
// Late #633 finding (PRRT_kwDORS4ils6YozQN): a question closed by decline/forceClose reaches
|
|
72
|
+
// the SAME idempotent branch as a genuine re-answer.
|
|
73
|
+
it('idempotent re-answer on a DECLINED question says "processed (declined)", never "already answered"', () => {
|
|
74
|
+
const message = formatQuestionAnswer('TEN-100', { entryId: 'TEN-100', status: 'processed', idempotent: true, processedVia: 'declined' });
|
|
75
|
+
expect(message).toBe('TEN-100 is already processed (declined) — no change.');
|
|
76
|
+
});
|
|
77
|
+
it('idempotent re-answer on a FORCE-CLOSED question says "processed (force-closed)", never "already answered"', () => {
|
|
78
|
+
const message = formatQuestionAnswer('TEN-100', { entryId: 'TEN-100', status: 'processed', idempotent: true, processedVia: 'force_closed' });
|
|
79
|
+
expect(message).toBe('TEN-100 is already processed (force-closed) — no change.');
|
|
80
|
+
});
|
|
81
|
+
it('the same answer again from an older server with no answeredLine still reads plainly', () => {
|
|
82
|
+
const message = formatQuestionAnswer('TEN-100', { entryId: 'TEN-100', status: 'processed', idempotent: true, processedVia: 'answered' });
|
|
83
|
+
expect(message).toBe('TEN-100 already has this answer — no change.');
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
describe('formatQuestionForceClose', () => {
|
|
87
|
+
it('"Force-closed. Reason recorded."', () => {
|
|
88
|
+
expect(formatQuestionForceClose('TEN-100', { entryId: 'TEN-100', status: 'processed' })).toBe('Force-closed. Reason recorded.');
|
|
89
|
+
});
|
|
90
|
+
it('idempotent re-close: names the entry, no second "recorded"', () => {
|
|
91
|
+
expect(formatQuestionForceClose('TEN-100', { entryId: 'TEN-100', status: 'processed', idempotent: true })).toBe('TEN-100 is already closed — no change.');
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
// WP-638 S4 (§4.1's slice-boundary fix) — `pb question list`.
|
|
95
|
+
describe('formatQuestionList', () => {
|
|
96
|
+
function row(overrides = {}) {
|
|
97
|
+
return {
|
|
98
|
+
entryId: 'TEN-1', question: 'Do we ship Dutch?', status: 'unrouted',
|
|
99
|
+
stateLabel: 'Suggested to you — take it or pass', why: 'Delivery Lead owns the Delivery domain',
|
|
100
|
+
domain: 'Delivery', withLabel: 'suggested: Delivery Lead', ageDays: 2,
|
|
101
|
+
legalVerbs: ['answer', 'take it', 'pass', 'reassign'],
|
|
102
|
+
...overrides,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
it('empty (non-mine): "No open questions." — never a bare empty table', () => {
|
|
106
|
+
expect(formatQuestionList({ questions: [], viewerPersonId: 'p1' }, false)).toBe('No open questions.');
|
|
107
|
+
});
|
|
108
|
+
it('empty (--mine): "You haven\'t asked any questions yet."', () => {
|
|
109
|
+
expect(formatQuestionList({ questions: [], viewerPersonId: 'p1' }, true)).toBe("You haven't asked any questions yet.");
|
|
110
|
+
});
|
|
111
|
+
it('renders the stateLabel and why, never the raw status enum', () => {
|
|
112
|
+
const out = formatQuestionList({ questions: [row()], viewerPersonId: 'p1' }, false);
|
|
113
|
+
expect(out).toContain('TEN-1');
|
|
114
|
+
expect(out).toContain('Suggested to you — take it or pass');
|
|
115
|
+
expect(out).not.toMatch(/\bunrouted\b/);
|
|
116
|
+
});
|
|
117
|
+
// TASK-957 (RULE-664): the kernel's judge sentence is the last column of the obligation view, printed as sent.
|
|
118
|
+
it('prints the kernel judge sentence unchanged under TO DECIDE', () => {
|
|
119
|
+
const out = formatQuestionList({ questions: [row({ judgeSentence: 'What is your answer, as Team Lead?' })], viewerPersonId: 'p1' }, false);
|
|
120
|
+
const [header, dataLine] = out.split('\n');
|
|
121
|
+
expect(header.endsWith('| TO DECIDE')).toBe(true);
|
|
122
|
+
expect(dataLine.endsWith(' | What is your answer, as Team Lead?')).toBe(true);
|
|
123
|
+
});
|
|
124
|
+
it('--mine appends the OUTCOME column', () => {
|
|
125
|
+
const out = formatQuestionList({ questions: [row({ status: 'processed', stateLabel: 'Closed', outcome: 'DEC-9 — Ship it.' })], viewerPersonId: 'p1' }, true);
|
|
126
|
+
expect(out).toContain('DEC-9 — Ship it.');
|
|
127
|
+
});
|
|
128
|
+
// TEN-3332 rider (WP-707 S1): the QUESTION column used to hard-slice at 60 chars with no
|
|
129
|
+
// word-boundary awareness and no ellipsis marker.
|
|
130
|
+
it('a QUESTION over the 60-char limit is trimmed at the last word boundary and marked with an ellipsis', () => {
|
|
131
|
+
const longQuestion = 'A first outside team runs its real work on Product Brain without us in the room';
|
|
132
|
+
expect(longQuestion.length).toBeGreaterThan(60);
|
|
133
|
+
const out = formatQuestionList({ questions: [row({ question: longQuestion })], viewerPersonId: 'p1' }, false);
|
|
134
|
+
const dataLine = out.split('\n')[1];
|
|
135
|
+
const questionCell = dataLine.split(' | ')[1];
|
|
136
|
+
expect(questionCell.endsWith('…')).toBe(true);
|
|
137
|
+
// WP-707 S1 round 2 (ruling #10): the ellipsis is INSIDE the 60-char column width, not
|
|
138
|
+
// appended past it — the cell (including `…`) must never exceed the limit.
|
|
139
|
+
expect(questionCell.length).toBeLessThanOrEqual(60);
|
|
140
|
+
const withoutEllipsis = questionCell.slice(0, -1);
|
|
141
|
+
expect(longQuestion.startsWith(withoutEllipsis)).toBe(true);
|
|
142
|
+
// The cut must land on a real word boundary — never mid-word.
|
|
143
|
+
const nextChar = longQuestion[withoutEllipsis.length];
|
|
144
|
+
expect(nextChar === ' ' || nextChar === undefined).toBe(true);
|
|
145
|
+
});
|
|
146
|
+
it('a QUESTION at or under the 60-char limit is rendered verbatim, with no ellipsis', () => {
|
|
147
|
+
const shortQuestion = 'Do we ship Dutch localization this quarter or next one';
|
|
148
|
+
expect(shortQuestion.length).toBeLessThanOrEqual(60);
|
|
149
|
+
const out = formatQuestionList({ questions: [row({ question: shortQuestion })], viewerPersonId: 'p1' }, false);
|
|
150
|
+
const dataLine = out.split('\n')[1];
|
|
151
|
+
const questionCell = dataLine.split(' | ')[1];
|
|
152
|
+
expect(questionCell).toBe(shortQuestion);
|
|
153
|
+
expect(questionCell.endsWith('…')).toBe(false);
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
//# sourceMappingURL=questions.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"questions.test.js","sourceRoot":"","sources":["../../src/formatters/questions.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Relate / unrelate receipt formatters — terminal output for pb relate / pb unrelate.
|
|
3
3
|
*/
|
|
4
|
+
/** WP-625 (S3 of WP-618, DEC-1546, TEN-3037): advisory-only relation-legality + altitude
|
|
5
|
+
* violations the relate door found — never blocks the write, always names the rule. */
|
|
6
|
+
export interface RelateAdvisory {
|
|
7
|
+
ruleId: string;
|
|
8
|
+
ruleText: string;
|
|
9
|
+
severity: string;
|
|
10
|
+
stage: string;
|
|
11
|
+
}
|
|
4
12
|
export interface RelateReceiptData {
|
|
5
13
|
fromId: string;
|
|
6
14
|
type: string;
|
|
7
15
|
toId: string;
|
|
8
16
|
alreadyExists?: boolean;
|
|
9
|
-
action: 'related' | 'unrelated' | '
|
|
10
|
-
|
|
17
|
+
action: 'related' | 'unrelated' | 'dry_run';
|
|
18
|
+
advisories?: RelateAdvisory[];
|
|
19
|
+
wouldBlock?: boolean;
|
|
20
|
+
blockingReason?: string;
|
|
21
|
+
chainDebtPrevented?: boolean;
|
|
11
22
|
}
|
|
12
23
|
export declare function formatRelateReceipt(data: RelateReceiptData): string;
|
|
13
24
|
export declare function formatUnrelateReceipt(data: RelateReceiptData): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relate.d.ts","sourceRoot":"","sources":["../../src/formatters/relate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,
|
|
1
|
+
{"version":3,"file":"relate.d.ts","sourceRoot":"","sources":["../../src/formatters/relate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;wFACwF;AACxF,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5C,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAE9B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAmBnE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAErE"}
|
|
@@ -2,13 +2,23 @@
|
|
|
2
2
|
* Relate / unrelate receipt formatters — terminal output for pb relate / pb unrelate.
|
|
3
3
|
*/
|
|
4
4
|
export function formatRelateReceipt(data) {
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
// TASK-585 (WP-802, TEN-4311): an advisory never blocks the write, so on a real write the line
|
|
6
|
+
// says the row WAS written; the kernel's ruleText names the undeclared verb and the declared ones.
|
|
7
|
+
const wrote = data.action === 'related' && !data.alreadyExists;
|
|
8
|
+
const advisoryLines = (data.advisories ?? []).map((a) => wrote
|
|
9
|
+
? ` ⚠ Written anyway (org stage: ${a.stage}): ${a.ruleText}`
|
|
10
|
+
: ` ⚠ ${a.ruleId} (org stage: ${a.stage}): ${a.ruleText}`);
|
|
11
|
+
const suffix = advisoryLines.length > 0 ? `\n${advisoryLines.join('\n')}` : '';
|
|
12
|
+
if (data.action === 'dry_run') {
|
|
13
|
+
const alreadyLine = data.alreadyExists ? `\n (already exists — a real --if-missing call would be a no-op)` : '';
|
|
14
|
+
const debtLine = data.chainDebtPrevented ? `\n ⚠ would be refused outright (common misuse for this entry pair)` : '';
|
|
15
|
+
const blockLine = data.wouldBlock ? `\n ✗ would be BLOCKED: ${data.blockingReason ?? 'unknown reason'}` : '';
|
|
16
|
+
return `[dry-run, no write] ${data.fromId} –[${data.type}]→ ${data.toId}${alreadyLine}${debtLine}${blockLine}${suffix}`;
|
|
7
17
|
}
|
|
8
|
-
if (data.
|
|
9
|
-
return `
|
|
18
|
+
if (data.alreadyExists) {
|
|
19
|
+
return `Already exists: ${data.fromId} –[${data.type}]→ ${data.toId}${suffix}`;
|
|
10
20
|
}
|
|
11
|
-
return `→ ${data.fromId} –[${data.type}]→ ${data.toId}`;
|
|
21
|
+
return `→ ${data.fromId} –[${data.type}]→ ${data.toId}${suffix}`;
|
|
12
22
|
}
|
|
13
23
|
export function formatUnrelateReceipt(data) {
|
|
14
24
|
return `✗ Removed ${data.fromId} –[${data.type}]→ ${data.toId}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relate.js","sourceRoot":"","sources":["../../src/formatters/relate.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"relate.js","sourceRoot":"","sources":["../../src/formatters/relate.ts"],"names":[],"mappings":"AAAA;;GAEG;AA0BH,MAAM,UAAU,mBAAmB,CAAC,IAAuB;IACzD,+FAA+F;IAC/F,mGAAmG;IACnG,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;IAC/D,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACtD,KAAK;QACH,CAAC,CAAC,kCAAkC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,QAAQ,EAAE;QAC7D,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,gBAAgB,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/E,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,kEAAkE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjH,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,qEAAqE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtH,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,2BAA2B,IAAI,CAAC,cAAc,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9G,OAAO,uBAAuB,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,EAAE,CAAC;IAC1H,CAAC;IACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,OAAO,mBAAmB,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC;IACjF,CAAC;IACD,OAAO,KAAK,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAuB;IAC3D,OAAO,aAAa,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relate.test.d.ts","sourceRoot":"","sources":["../../src/formatters/relate.test.ts"],"names":[],"mappings":""}
|