@unbrained/pm-cli 2026.9.7 → 2026.9.8
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/.agents/skills/pm-developer/SKILL.md +12 -4
- package/.agents/skills/pm-developer/references/MULTI_AGENT_MERGE.md +19 -10
- package/.agents/skills/pm-extensions/SKILL.md +6 -0
- package/.agents/skills/pm-sdk/SKILL.md +11 -2
- package/.agents/skills/pm-user/SKILL.md +5 -0
- package/.agents/skills/pm-user/references/ECOSYSTEM_PLANNING.md +95 -0
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +211 -181
- package/dist/cli/after-command-context-usage.js +1 -48
- package/dist/cli/argv-utils.js +1 -40
- package/dist/cli/bootstrap-args.js +1 -9
- package/dist/cli/bundle-integrity.js +2 -110
- package/dist/cli/commander-usage.js +11 -771
- package/dist/cli/commands/activity.js +1 -9
- package/dist/cli/commands/aggregate.js +1 -5
- package/dist/cli/commands/append.js +1 -5
- package/dist/cli/commands/claim.js +1 -5
- package/dist/cli/commands/close-many.js +1 -5
- package/dist/cli/commands/close.js +1 -9
- package/dist/cli/commands/comments.js +1 -5
- package/dist/cli/commands/config.js +1 -9
- package/dist/cli/commands/context.js +1 -9
- package/dist/cli/commands/contracts.js +1 -5
- package/dist/cli/commands/copy.js +1 -9
- package/dist/cli/commands/create.js +1 -9
- package/dist/cli/commands/delete.js +1 -9
- package/dist/cli/commands/deps.js +1 -9
- package/dist/cli/commands/docs.js +1 -9
- package/dist/cli/commands/duplicates.js +1 -9
- package/dist/cli/commands/eval.js +1 -9
- package/dist/cli/commands/extension/describe.js +1 -5
- package/dist/cli/commands/extension/scaffold.js +1 -5
- package/dist/cli/commands/extension/shared.js +1 -5
- package/dist/cli/commands/extension.js +1 -9
- package/dist/cli/commands/files.js +1 -9
- package/dist/cli/commands/focus.js +1 -9
- package/dist/cli/commands/gc.js +1 -9
- package/dist/cli/commands/get.js +1 -9
- package/dist/cli/commands/graph.js +1 -10
- package/dist/cli/commands/health.js +1 -9
- package/dist/cli/commands/history-compact.js +1 -10
- package/dist/cli/commands/history-redact.js +1 -11
- package/dist/cli/commands/history-repair.js +1 -10
- package/dist/cli/commands/history.js +1 -5
- package/dist/cli/commands/index.js +1 -58
- package/dist/cli/commands/init-agent-guidance.js +1 -9
- package/dist/cli/commands/init.js +1 -9
- package/dist/cli/commands/learnings.js +1 -5
- package/dist/cli/commands/lifecycle-transitions.js +1 -5
- package/dist/cli/commands/list.js +1 -9
- package/dist/cli/commands/merge.js +1 -11
- package/dist/cli/commands/next.js +1 -9
- package/dist/cli/commands/notes.js +1 -5
- package/dist/cli/commands/plan.js +1 -9
- package/dist/cli/commands/profile.js +1 -9
- package/dist/cli/commands/restore.js +1 -9
- package/dist/cli/commands/scheduling-shortcuts.js +1 -9
- package/dist/cli/commands/schema.js +1 -10
- package/dist/cli/commands/search.js +1 -9
- package/dist/cli/commands/stats.js +1 -9
- package/dist/cli/commands/telemetry.js +1 -9
- package/dist/cli/commands/test-all.js +1 -9
- package/dist/cli/commands/test-runs.js +1 -9
- package/dist/cli/commands/test.js +1 -9
- package/dist/cli/commands/update-many.js +1 -5
- package/dist/cli/commands/update.js +1 -9
- package/dist/cli/commands/upgrade.js +1 -5
- package/dist/cli/commands/validate.js +1 -15
- package/dist/cli/context-intent-invocation.js +1 -20
- package/dist/cli/description-stdin.js +1 -17
- package/dist/cli/error-guidance.js +1 -1353
- package/dist/cli/extension-command-help.js +5 -636
- package/dist/cli/extension-command-options.js +1 -427
- package/dist/cli/extension-recovery.js +1 -126
- package/dist/cli/help-content.js +2 -1001
- package/dist/cli/help-json-payload.js +4 -570
- package/dist/cli/main.d.ts +4 -0
- package/dist/cli/main.js +5 -2573
- package/dist/cli/migration-gates.js +1 -289
- package/dist/cli/public.js +1 -20
- package/dist/cli/register-annotations.js +1 -270
- package/dist/cli/register-assurance.js +1 -62
- package/dist/cli/register-files-lookup.js +1 -56
- package/dist/cli/register-history-activity.d.ts +8 -0
- package/dist/cli/register-history-activity.js +2 -0
- package/dist/cli/register-history-author.js +1 -38
- package/dist/cli/register-history-maintenance.d.ts +9 -0
- package/dist/cli/register-history-maintenance.js +2 -0
- package/dist/cli/register-list-query.js +10 -943
- package/dist/cli/register-mutation-options.js +1 -9
- package/dist/cli/register-mutation.js +19 -1893
- package/dist/cli/register-operations.js +1 -920
- package/dist/cli/register-setup.js +1 -716
- package/dist/cli/register-structured-mutation.js +1 -196
- package/dist/cli/registration-helpers.js +1 -5
- package/dist/cli/runtime-compatibility-boundary.js +4 -42
- package/dist/cli/schema-registration-helpers.js +1 -73
- package/dist/cli/search-refresh.js +1 -13
- package/dist/cli/stats-analytics-json.js +1 -68
- package/dist/cli/telemetry-flush.js +1 -10
- package/dist/cli-bundle/bundle-manifest.json +164 -156
- package/dist/cli-bundle/chunks/chunk-3BZZA6A3.js +5 -0
- package/dist/cli-bundle/chunks/chunk-AMRDVX36.js +235 -0
- package/dist/cli-bundle/chunks/chunk-DAM4CBBR.js +2202 -0
- package/dist/cli-bundle/chunks/{chunk-WYRZZ5ZE.js → chunk-DEZPZOQ7.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-FLDWYEND.js +77 -0
- package/dist/cli-bundle/chunks/{chunk-NPN5I67J.js → chunk-G5ADGQ2D.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-JAAEYHUA.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-JX4DH4WC.js → chunk-KR3RP4FH.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-LEZOUXG6.js +2 -0
- package/dist/cli-bundle/chunks/chunk-NSAPNEYH.js +2 -0
- package/dist/cli-bundle/chunks/chunk-QOEKOECV.js +29 -0
- package/dist/cli-bundle/chunks/chunk-RHSFOMHU.js +2 -0
- package/dist/cli-bundle/chunks/chunk-XOD2PCB6.js +20 -0
- package/dist/cli-bundle/chunks/{chunk-JT6XF6GE.js → chunk-YVEQ2AMO.js} +4 -4
- package/dist/cli-bundle/chunks/register-list-query-KSK3R63M.js +11 -0
- package/dist/cli-bundle/chunks/register-mutation-IQ5C7U6O.js +20 -0
- package/dist/cli-bundle/chunks/{register-operations-I5W3KMGB.js → register-operations-DWVHR2NC.js} +2 -2
- package/dist/cli-bundle/chunks/register-setup-BQ5SVD4B.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-3WRPWLA7.js +3 -0
- package/dist/cli-bundle/focused-chunks/chunk-7MBUII7U.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-COPBO5HW.js +8 -0
- package/dist/cli-bundle/focused-chunks/chunk-DUN4IXYN.js +20 -0
- package/dist/cli-bundle/focused-chunks/{chunk-LIJIA4TY.js → chunk-EE5QSM4Z.js} +3 -3
- package/dist/cli-bundle/focused-chunks/chunk-HJVARYM3.js +6 -0
- package/dist/cli-bundle/focused-chunks/chunk-IAUOUGVR.js +177 -0
- package/dist/cli-bundle/focused-chunks/chunk-KOOMJ54F.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-MZDXX7JY.js +56 -0
- package/dist/cli-bundle/focused-chunks/{chunk-M6PBRFSH.js → chunk-OPFHFGDD.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-QHNETP77.js +9 -0
- package/dist/cli-bundle/focused-chunks/{chunk-3BZEOXLT.js → chunk-RMWES4M6.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-RXT4P5QH.js +10 -0
- package/dist/cli-bundle/focused-chunks/chunk-SDOL6FM2.js +12 -0
- package/dist/cli-bundle/focused-chunks/chunk-SQV4AAUC.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-PEFABF7E.js → chunk-WE3IUNIW.js} +3 -3
- package/dist/cli-bundle/focused-chunks/chunk-YALOUBWJ.js +2 -0
- package/dist/cli-bundle/main.js +20 -20
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +2 -2
- package/dist/cli-bundle/sdk-core.js +29 -29
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +42 -42
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +11 -11
- package/dist/cli.js +1 -104
- package/dist/core/checkpoint/checkpoint-gc.js +1 -169
- package/dist/core/checkpoint/mutation-checkpoint.js +2 -133
- package/dist/core/config/nested-settings.js +1 -534
- package/dist/core/config/positional-value.js +1 -109
- package/dist/core/diagnostics/remediation.js +1 -506
- package/dist/core/extensions/activation-summary-markdown.js +2 -145
- package/dist/core/extensions/activation-summary.js +1 -92
- package/dist/core/extensions/activation-transaction.js +1 -46
- package/dist/core/extensions/capability-usage.js +1 -173
- package/dist/core/extensions/command-hook-context.js +1 -13
- package/dist/core/extensions/command-metadata-contract.js +1 -22
- package/dist/core/extensions/command-visibility-tier.js +1 -29
- package/dist/core/extensions/contribution-inventory.js +1 -173
- package/dist/core/extensions/exporter-output-contract.js +1 -66
- package/dist/core/extensions/extension-candidate.js +1 -18
- package/dist/core/extensions/extension-capability-aliases.js +1 -158
- package/dist/core/extensions/extension-hook-runtime.js +1 -699
- package/dist/core/extensions/extension-policy.js +1 -599
- package/dist/core/extensions/extension-registries.js +1 -62
- package/dist/core/extensions/extension-runtime-helpers.js +1 -33
- package/dist/core/extensions/extension-types.js +1 -102
- package/dist/core/extensions/flag-definition-validation.js +1 -52
- package/dist/core/extensions/flag-value-types.js +1 -64
- package/dist/core/extensions/index.js +1 -526
- package/dist/core/extensions/item-field-types.js +1 -39
- package/dist/core/extensions/item-fields.js +1 -261
- package/dist/core/extensions/loader.js +1 -2223
- package/dist/core/extensions/manifest-schema.js +1 -69
- package/dist/core/extensions/module-graph-snapshot.js +1 -33
- package/dist/core/extensions/preflight-ownership.js +1 -41
- package/dist/core/extensions/registration-validation.js +1 -82
- package/dist/core/extensions/registration-values.js +1 -209
- package/dist/core/extensions/reserved-host-flags.js +1 -36
- package/dist/core/extensions/runtime-registrations.js +1 -67
- package/dist/core/extensions/service-ownership.js +1 -19
- package/dist/core/extensions/version-compat.js +1 -216
- package/dist/core/fs/fs-utils.js +2 -158
- package/dist/core/fs/host-environment-errors.js +1 -141
- package/dist/core/fs/index.js +1 -9
- package/dist/core/fs/path-utils.js +1 -17
- package/dist/core/governance/content-fields.js +1 -160
- package/dist/core/governance/issue-codes.js +1 -151
- package/dist/core/governance/metadata-coverage.js +1 -358
- package/dist/core/history/drift-cache.js +3 -72
- package/dist/core/history/drift-scan.js +1 -342
- package/dist/core/history/event-classification.js +1 -109
- package/dist/core/history/event-index.js +8 -784
- package/dist/core/history/history-compact-bulk.js +1 -104
- package/dist/core/history/history-diff.js +1 -158
- package/dist/core/history/history-rewrite.d.ts +6 -1
- package/dist/core/history/history-rewrite.js +1 -107
- package/dist/core/history/history-storage-stats.js +1 -102
- package/dist/core/history/history-stream-policy.js +1 -62
- package/dist/core/history/history.js +2 -617
- package/dist/core/history/identity.js +1 -30
- package/dist/core/history/index.js +1 -9
- package/dist/core/history/projection.js +1 -196
- package/dist/core/history/read.d.ts +9 -0
- package/dist/core/history/read.js +1 -57
- package/dist/core/history/replay.js +2 -439
- package/dist/core/history/version-address.js +1 -32
- package/dist/core/history/workspace-history.js +2 -433
- package/dist/core/io/body-file.js +1 -62
- package/dist/core/io/bulk-ids-input.js +1 -112
- package/dist/core/item/actionability.js +1 -327
- package/dist/core/item/dependency-reference.js +1 -20
- package/dist/core/item/id.js +1 -112
- package/dist/core/item/index.js +1 -12
- package/dist/core/item/item-format-version.js +1 -78
- package/dist/core/item/item-format.js +5 -1473
- package/dist/core/item/item-record.js +1 -23
- package/dist/core/item/item-type-definition.js +1 -133
- package/dist/core/item/parent-reference-policy.js +1 -57
- package/dist/core/item/parse.js +2 -603
- package/dist/core/item/plan-lifecycle.js +1 -19
- package/dist/core/item/priority.js +1 -61
- package/dist/core/item/sprint-release-format.js +1 -38
- package/dist/core/item/status-filter.js +1 -115
- package/dist/core/item/status.js +1 -43
- package/dist/core/item/toon-decode.js +1 -29
- package/dist/core/item/type-registry.js +1 -715
- package/dist/core/item/type-synonyms.js +1 -38
- package/dist/core/lock/index.js +1 -9
- package/dist/core/lock/lock-gc.js +1 -240
- package/dist/core/lock/lock.js +3 -590
- package/dist/core/output/mutation-projection.js +1 -217
- package/dist/core/output/output-control.js +1 -25
- package/dist/core/output/output.js +11 -494
- package/dist/core/output/query-summary.js +1 -58
- package/dist/core/output/tabular.js +1 -77
- package/dist/core/packages/manifest.js +1 -244
- package/dist/core/packages/root.js +1 -84
- package/dist/core/profile/profile-describe.js +1 -83
- package/dist/core/profile/profile-lint.js +1 -415
- package/dist/core/profile/profile-plan.js +0 -0
- package/dist/core/profile/profile-presets.js +1 -370
- package/dist/core/reproducibility/context.js +1 -82
- package/dist/core/schema/fields-file.js +2 -288
- package/dist/core/schema/item-types-file.js +2 -296
- package/dist/core/schema/runtime-field-filters.js +1 -49
- package/dist/core/schema/runtime-field-values.js +1 -313
- package/dist/core/schema/runtime-schema.js +2 -826
- package/dist/core/schema/status-defs-file.js +2 -227
- package/dist/core/schema/status-token.js +1 -31
- package/dist/core/schema/type-inference.js +1 -95
- package/dist/core/schema/type-presets.js +1 -87
- package/dist/core/schema/type-workflows.js +1 -104
- package/dist/core/search/background-refresh.js +2 -286
- package/dist/core/search/bm25.js +1 -146
- package/dist/core/search/cache.js +2 -534
- package/dist/core/search/corpus.js +1 -311
- package/dist/core/search/embedding-batches.js +1 -163
- package/dist/core/search/eval.js +1 -225
- package/dist/core/search/http-client.js +1 -75
- package/dist/core/search/providers.js +1 -242
- package/dist/core/search/relevance.js +1 -244
- package/dist/core/search/semantic-defaults.js +1 -199
- package/dist/core/search/staleness.js +1 -30
- package/dist/core/search/vector-stores.js +2 -664
- package/dist/core/search/vectorization-metadata.js +1 -81
- package/dist/core/sentry/helpers.js +1 -272
- package/dist/core/sentry/instrument.js +1 -387
- package/dist/core/session/session-state.js +1 -260
- package/dist/core/shared/agent-session-context.js +1 -133
- package/dist/core/shared/author.js +1 -1172
- package/dist/core/shared/command-types.js +1 -4
- package/dist/core/shared/conflict-markers.js +1 -31
- package/dist/core/shared/constants.js +1 -405
- package/dist/core/shared/errors.js +1 -20
- package/dist/core/shared/html-entity-decode.js +1 -131
- package/dist/core/shared/index.js +1 -12
- package/dist/core/shared/item-metadata-contract.js +1 -89
- package/dist/core/shared/lazy-module.js +1 -16
- package/dist/core/shared/levenshtein.js +1 -61
- package/dist/core/shared/memo.js +1 -19
- package/dist/core/shared/numeric-parsers.js +1 -20
- package/dist/core/shared/option-alias-visibility.js +1 -67
- package/dist/core/shared/primitives.js +1 -127
- package/dist/core/shared/serial-queue.js +1 -79
- package/dist/core/shared/serialization.js +1 -210
- package/dist/core/shared/split-comma-list.js +1 -30
- package/dist/core/shared/text-normalization.js +1 -38
- package/dist/core/shared/time.js +1 -306
- package/dist/core/store/index.js +1 -12
- package/dist/core/store/item-format-migration.js +1 -125
- package/dist/core/store/item-metadata-cache.js +1 -1116
- package/dist/core/store/item-metadata-query-index.js +9 -394
- package/dist/core/store/item-metadata-read-work.js +1 -43
- package/dist/core/store/item-store.js +1 -693
- package/dist/core/store/paths.d.ts +1 -1
- package/dist/core/store/paths.js +1 -214
- package/dist/core/store/settings-read-cache.js +1 -85
- package/dist/core/store/settings-validator.js +1 -421
- package/dist/core/store/settings.js +3 -1309
- package/dist/core/store/tracker-preflight.js +1 -141
- package/dist/core/telemetry/consent.js +5 -108
- package/dist/core/telemetry/observability.js +1 -246
- package/dist/core/telemetry/runtime.js +4 -1988
- package/dist/core/test/background-runs.js +4 -945
- package/dist/core/test/item-test-run-tracking.js +1 -63
- package/dist/core/test/run-selectors.js +1 -120
- package/dist/core/validate/estimate-defaults.js +1 -89
- package/dist/core/validate/fix-planning.js +1 -189
- package/dist/core/validate/linked-artifact-reference.js +1 -36
- package/dist/core/validate/missing-by-type.js +1 -34
- package/dist/core/validate/missing-link-owners.js +1 -95
- package/dist/core/validate/stale-file-classification.js +1 -82
- package/dist/mcp/http-server.js +5 -448
- package/dist/mcp/legacy-adapter.js +1 -77
- package/dist/mcp/runtime-capabilities.js +1 -200
- package/dist/mcp/server.js +4 -1233
- package/dist/mcp/tool-definitions.js +1 -804
- package/dist/sdk/actionability.js +1 -13
- package/dist/sdk/agent/closed-domain-contracts.js +1 -161
- package/dist/sdk/agent/command-recovery.js +1 -59
- package/dist/sdk/agent/command-suggestions.js +1 -66
- package/dist/sdk/agent/create-option-policy.js +1 -31
- package/dist/sdk/agent/identity-config.js +1 -106
- package/dist/sdk/agent/item-addressing.js +1 -207
- package/dist/sdk/agent/refusal-closure-census.js +1 -151
- package/dist/sdk/agent/refusal-closure.js +1 -133
- package/dist/sdk/agent/refusal-corpus-contracts.js +1 -193
- package/dist/sdk/agent/refusal-reachability.js +1 -593
- package/dist/sdk/agent/subcommand-recovery.js +1 -83
- package/dist/sdk/agent/task-transcript-contracts.js +1 -197
- package/dist/sdk/agent/tracker-preflight-contracts.js +1 -126
- package/dist/sdk/agent-capability-contracts.js +1 -428
- package/dist/sdk/agent-session-context.js +1 -9
- package/dist/sdk/annotations.js +1 -448
- package/dist/sdk/author-attribution.js +1 -468
- package/dist/sdk/authoring.js +1 -20
- package/dist/sdk/cli-bootstrap.js +1 -838
- package/dist/sdk/cli-contracts/agent-output-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts/agent-output-contracts.js +4 -476
- package/dist/sdk/cli-contracts/bootstrap-command-scanner.js +1 -79
- package/dist/sdk/cli-contracts/command-aliases.d.ts +4 -0
- package/dist/sdk/cli-contracts/command-aliases.js +1 -107
- package/dist/sdk/cli-contracts/command-exit-contracts.js +1 -151
- package/dist/sdk/cli-contracts/commander-mutation-options.js +1 -1081
- package/dist/sdk/cli-contracts/commander-types.js +1 -159
- package/dist/sdk/cli-contracts/completeness.js +1 -393
- package/dist/sdk/cli-contracts/enum-contracts.js +1 -222
- package/dist/sdk/cli-contracts/flag-contracts.js +1 -1947
- package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +1 -347
- package/dist/sdk/cli-contracts/grammar-contracts.js +1 -986
- package/dist/sdk/cli-contracts/registration-helpers.js +7 -990
- package/dist/sdk/cli-contracts/runtime-contracts.d.ts +5 -0
- package/dist/sdk/cli-contracts/runtime-contracts.js +1 -2090
- package/dist/sdk/cli-contracts/schemas/assurance-definition.js +1 -324
- package/dist/sdk/cli-contracts/string-lists.js +1 -16
- package/dist/sdk/cli-contracts/tool-option-contracts.js +1 -461
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +1 -2167
- package/dist/sdk/cli-contracts/tool-schema.d.ts +3 -1
- package/dist/sdk/cli-contracts/tool-schema.js +1 -1664
- package/dist/sdk/cli-contracts/typed-action-inputs.js +1 -4
- package/dist/sdk/cli-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts.js +1 -17
- package/dist/sdk/cli-program.js +1 -49
- package/dist/sdk/command-line.d.ts +2 -5
- package/dist/sdk/command-line.js +1 -78
- package/dist/sdk/comments.js +1 -133
- package/dist/sdk/compile-cache.js +1 -73
- package/dist/sdk/completion.js +157 -837
- package/dist/sdk/compose.js +1 -1090
- package/dist/sdk/config.js +1 -1204
- package/dist/sdk/context/recency.js +1 -33
- package/dist/sdk/context/semantic-session-attribution.js +1 -82
- package/dist/sdk/context/usage-egress.js +1 -29
- package/dist/sdk/context/usage-ledger.js +3 -185
- package/dist/sdk/context-intent-contracts.js +1 -709
- package/dist/sdk/context-intent-runtime.js +1 -115
- package/dist/sdk/context-packing.js +1 -218
- package/dist/sdk/context-relevance.js +1 -503
- package/dist/sdk/context-signal-store.js +2 -426
- package/dist/sdk/context-usage.js +1 -367
- package/dist/sdk/contracts.js +1 -23
- package/dist/sdk/core-governance.js +1 -14
- package/dist/sdk/core.js +1 -14
- package/dist/sdk/corpus-shape.js +1 -401
- package/dist/sdk/define.js +1 -220
- package/dist/sdk/dependencies.js +1 -718
- package/dist/sdk/dependency-flag-validation.js +1 -156
- package/dist/sdk/dependency-provenance.js +1 -135
- package/dist/sdk/docs.js +1 -14
- package/dist/sdk/duplicates.js +1 -40
- package/dist/sdk/environment/agent-environment.js +1 -466
- package/dist/sdk/environment/host-environment-errors.js +1 -8
- package/dist/sdk/environment/project-runtime-compatibility.js +1 -481
- package/dist/sdk/environment/source-context.js +1 -28
- package/dist/sdk/environment/tracker-preflight.js +1 -9
- package/dist/sdk/error-code-catalog.js +1 -153
- package/dist/sdk/error-runtime.js +1 -58
- package/dist/sdk/errors.js +1 -58
- package/dist/sdk/eval.js +1 -190
- package/dist/sdk/extension/author-manifest.js +1 -92
- package/dist/sdk/extension/bundled-catalog.js +1 -332
- package/dist/sdk/extension/concurrency.js +1 -25
- package/dist/sdk/extension/copy-scope.d.ts +2 -0
- package/dist/sdk/extension/copy-scope.js +2 -0
- package/dist/sdk/extension/custom-field-collisions.js +1 -30
- package/dist/sdk/extension/describe.js +3 -189
- package/dist/sdk/extension/doctor.js +1 -606
- package/dist/sdk/extension/install-plan.d.ts +69 -0
- package/dist/sdk/extension/install-plan.js +2 -0
- package/dist/sdk/extension/install-receipts.d.ts +7 -0
- package/dist/sdk/extension/install-receipts.js +2 -0
- package/dist/sdk/extension/install-runtime.js +3 -313
- package/dist/sdk/extension/install-snapshot.js +1 -66
- package/dist/sdk/extension/install-sources.js +5 -1057
- package/dist/sdk/extension/managed-state.js +2 -252
- package/dist/sdk/extension/migrations.js +2 -174
- package/dist/sdk/extension/output-ownership.js +1 -25
- package/dist/sdk/extension/runtime-summary.js +1 -18
- package/dist/sdk/extension/scaffold.js +4 -2308
- package/dist/sdk/extension/shared.js +1 -147
- package/dist/sdk/extension/source-resolution.js +1 -65
- package/dist/sdk/extension/update-check.js +1 -67
- package/dist/sdk/extension-command-context.js +1 -44
- package/dist/sdk/extension-contracts.js +1 -73
- package/dist/sdk/extension.d.ts +7 -2
- package/dist/sdk/extension.js +1 -2196
- package/dist/sdk/files.js +1 -535
- package/dist/sdk/flag-invocation-contracts.d.ts +0 -5
- package/dist/sdk/flag-invocation-contracts.js +1 -344
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -2224
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -2236
- package/dist/sdk/generated-error-code-catalog.js +1 -16
- package/dist/sdk/governance/assurance-action-contracts.js +1 -4
- package/dist/sdk/governance/assurance-action.js +1 -411
- package/dist/sdk/governance/assurance-limits.js +1 -10
- package/dist/sdk/governance/assurance-mutation-error.js +1 -81
- package/dist/sdk/governance/assurance-presets.js +1 -135
- package/dist/sdk/governance/assurance-runtime.js +1 -238
- package/dist/sdk/governance/assurance.js +4 -1182
- package/dist/sdk/governance/boundary-fixtures.js +1 -200
- package/dist/sdk/governance/coverage-assurance.js +1 -60
- package/dist/sdk/governance/defect-recurrence-coverage.js +1 -188
- package/dist/sdk/governance/defect-recurrence-graph.js +1 -120
- package/dist/sdk/governance/defect-recurrence-signals.js +1 -24
- package/dist/sdk/governance/defect-recurrence.js +1 -623
- package/dist/sdk/governance/extension-host-version.js +1 -115
- package/dist/sdk/governance/gc.js +1 -368
- package/dist/sdk/governance/health.js +1 -2367
- package/dist/sdk/governance/hierarchy-validation.js +1 -108
- package/dist/sdk/governance/linked-file-report.js +1 -71
- package/dist/sdk/governance/merge-receipt-history.js +1 -206
- package/dist/sdk/governance/provenance-health.js +1 -282
- package/dist/sdk/governance/reindex.js +4 -761
- package/dist/sdk/governance/stale-work.js +1 -82
- package/dist/sdk/governance/status-role-diagnostics.js +1 -35
- package/dist/sdk/governance/storage-integrity.js +1 -280
- package/dist/sdk/governance/tracked-runtime-cache.js +1 -106
- package/dist/sdk/governance/upgrade.js +2 -327
- package/dist/sdk/governance/validate-history-drift.js +1 -81
- package/dist/sdk/governance/validate-item-reader.js +1 -17
- package/dist/sdk/governance/validate-normalization.js +1 -36
- package/dist/sdk/governance/validate.js +1 -2261
- package/dist/sdk/governance/workspace-position.js +1 -163
- package/dist/sdk/governance.d.ts +1 -0
- package/dist/sdk/governance.js +1 -31
- package/dist/sdk/graph/adapter.js +1 -181
- package/dist/sdk/graph/analytics.js +1 -474
- package/dist/sdk/graph/assembly.js +1 -377
- package/dist/sdk/graph/cache.js +1 -160
- package/dist/sdk/graph/centrality.js +1 -258
- package/dist/sdk/graph/conformance.js +1 -130
- package/dist/sdk/graph/deadline-scheduling.d.ts +90 -0
- package/dist/sdk/graph/deadline-scheduling.js +2 -0
- package/dist/sdk/graph/durable-cache.d.ts +1 -1
- package/dist/sdk/graph/durable-cache.js +1 -361
- package/dist/sdk/graph/governance-contracts.js +1 -34
- package/dist/sdk/graph/governance.d.ts +13 -1
- package/dist/sdk/graph/governance.js +1 -735
- package/dist/sdk/graph/hierarchy-integrity.js +1 -310
- package/dist/sdk/graph/index.d.ts +3 -2
- package/dist/sdk/graph/index.js +1 -26
- package/dist/sdk/graph/lifecycle-coverage.d.ts +32 -0
- package/dist/sdk/graph/lifecycle-coverage.js +2 -0
- package/dist/sdk/graph/mutation-advisory.js +1 -176
- package/dist/sdk/graph/remediation.js +1 -197
- package/dist/sdk/graph/run.d.ts +15 -1
- package/dist/sdk/graph/run.js +1 -768
- package/dist/sdk/graph/scheduling.js +1 -124
- package/dist/sdk/graph/traversal.js +1 -284
- package/dist/sdk/graph/workspace-relationship-kind-registry.js +1 -27
- package/dist/sdk/graph.js +1 -15
- package/dist/sdk/guide-topics.js +1 -707
- package/dist/sdk/guide.js +1 -279
- package/dist/sdk/history/maintenance.d.ts +71 -0
- package/dist/sdk/history/maintenance.js +2 -0
- package/dist/sdk/history/salvage.js +2 -247
- package/dist/sdk/history/subject.d.ts +19 -0
- package/dist/sdk/history/subject.js +2 -0
- package/dist/sdk/history-analytics.js +1 -282
- package/dist/sdk/history-compact.js +1 -527
- package/dist/sdk/history-mcp.js +1 -68
- package/dist/sdk/history-provenance.js +1 -182
- package/dist/sdk/history-read.js +1 -96
- package/dist/sdk/history-redact.d.ts +1 -14
- package/dist/sdk/history-redact.js +1 -643
- package/dist/sdk/history-repair.d.ts +5 -0
- package/dist/sdk/history-repair.js +1 -657
- package/dist/sdk/improvement-ledger-validation.js +1 -62
- package/dist/sdk/improvement-ledger.js +2 -257
- package/dist/sdk/index.d.ts +4 -0
- package/dist/sdk/index.js +1 -183
- package/dist/sdk/init-agent-guidance.js +2 -496
- package/dist/sdk/init.js +2 -820
- package/dist/sdk/invocation-author.js +1 -39
- package/dist/sdk/item-children.js +1 -90
- package/dist/sdk/item-metadata-index.js +1 -15
- package/dist/sdk/item-schedule.js +1 -27
- package/dist/sdk/item-transaction.js +1 -396
- package/dist/sdk/learnings.js +1 -29
- package/dist/sdk/lifecycle/append.js +2 -53
- package/dist/sdk/lifecycle/claim.d.ts +2 -0
- package/dist/sdk/lifecycle/claim.js +1 -242
- package/dist/sdk/lifecycle/close-many.js +1 -438
- package/dist/sdk/lifecycle/close.js +1 -468
- package/dist/sdk/lifecycle/copy.js +1 -212
- package/dist/sdk/lifecycle/create.js +1 -1949
- package/dist/sdk/lifecycle/delete.js +1 -45
- package/dist/sdk/lifecycle/event-validation-messages.js +1 -91
- package/dist/sdk/lifecycle/focus.js +1 -91
- package/dist/sdk/lifecycle/hierarchy-mutation-lock.js +1 -24
- package/dist/sdk/lifecycle/legacy-none-tokens.js +1 -149
- package/dist/sdk/lifecycle/lifecycle-transitions.js +1 -40
- package/dist/sdk/lifecycle/mcp-actions.d.ts +2 -0
- package/dist/sdk/lifecycle/mcp-actions.js +1 -51
- package/dist/sdk/lifecycle/metadata-normalizers.js +1 -46
- package/dist/sdk/lifecycle/mutation-command-options.js +1 -9
- package/dist/sdk/lifecycle/plan.js +1 -1606
- package/dist/sdk/lifecycle/recurrence-parsers.js +1 -147
- package/dist/sdk/lifecycle/reopen.js +1 -68
- package/dist/sdk/lifecycle/repeatable-metadata-parsers.js +1 -143
- package/dist/sdk/lifecycle/restore.d.ts +1 -0
- package/dist/sdk/lifecycle/restore.js +1 -330
- package/dist/sdk/lifecycle/shared-unset-fields.js +1 -295
- package/dist/sdk/lifecycle/update-many.js +1 -861
- package/dist/sdk/lifecycle/update.js +1 -2136
- package/dist/sdk/lifecycle-completion.js +1 -92
- package/dist/sdk/lifecycle-policy.js +1 -120
- package/dist/sdk/linked-artifacts.js +1 -530
- package/dist/sdk/mcp/apps.js +4 -133
- package/dist/sdk/mcp/authorization.js +1 -404
- package/dist/sdk/mcp/discovery.js +1 -494
- package/dist/sdk/mcp/interactions.js +1 -336
- package/dist/sdk/mcp/protocol.d.ts +7 -0
- package/dist/sdk/mcp/protocol.js +1 -184
- package/dist/sdk/mcp/skills.js +1 -389
- package/dist/sdk/mcp/subscriptions.js +1 -211
- package/dist/sdk/mcp/tasks.js +2 -430
- package/dist/sdk/mcp/transport.js +1 -260
- package/dist/sdk/merge/abandoned-receipts.js +1 -46
- package/dist/sdk/merge/driver.js +1 -212
- package/dist/sdk/merge/index.js +1 -16
- package/dist/sdk/merge/install.js +3 -561
- package/dist/sdk/merge/receipt-file-boundary.js +1 -46
- package/dist/sdk/merge/receipt-operation.js +1 -96
- package/dist/sdk/merge/receipt-schema.js +1 -397
- package/dist/sdk/merge/receipts.js +4 -525
- package/dist/sdk/merge/reconcile.js +1 -352
- package/dist/sdk/merge/three-way.js +3 -775
- package/dist/sdk/merge.js +1 -10
- package/dist/sdk/mutation-events.js +1 -292
- package/dist/sdk/mutation-guard.js +1 -216
- package/dist/sdk/notes.js +1 -139
- package/dist/sdk/output-contracts.js +1 -172
- package/dist/sdk/output-projection.js +1 -430
- package/dist/sdk/output-token-accounting.js +1 -140
- package/dist/sdk/output.js +1 -64
- package/dist/sdk/ownership-source.js +1 -21
- package/dist/sdk/package-import-adapters.js +1 -442
- package/dist/sdk/package-migrations.js +1 -20
- package/dist/sdk/package-runtime-options.js +1 -80
- package/dist/sdk/pagination.js +1 -162
- package/dist/sdk/profile.js +1 -454
- package/dist/sdk/provenance.js +1 -258
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/query/activity.js +1 -401
- package/dist/sdk/query/aggregate.d.ts +16 -0
- package/dist/sdk/query/aggregate.js +1 -390
- package/dist/sdk/query/calendar.js +1 -964
- package/dist/sdk/query/complete-list.js +1 -215
- package/dist/sdk/query/context.js +1 -1702
- package/dist/sdk/query/duplicate-candidates.js +1 -70
- package/dist/sdk/query/get.js +1 -450
- package/dist/sdk/query/history.js +1 -186
- package/dist/sdk/query/item-filter-options.js +1 -9
- package/dist/sdk/query/light-metadata.js +1 -18
- package/dist/sdk/query/list-filter-shared.js +1 -81
- package/dist/sdk/query/list.js +1 -1304
- package/dist/sdk/query/multi-value-filters.js +1 -78
- package/dist/sdk/query/next.js +1 -513
- package/dist/sdk/query/parsers.js +1 -44
- package/dist/sdk/query/projection-contracts.js +1 -184
- package/dist/sdk/query/search-contracts.js +1 -230
- package/dist/sdk/query/search-pagination.js +1 -35
- package/dist/sdk/query/search-rendering.js +1 -105
- package/dist/sdk/query/search.js +2 -1987
- package/dist/sdk/query.js +1 -35
- package/dist/sdk/read-output/continuation.js +1 -194
- package/dist/sdk/read-output-budget.js +1 -135
- package/dist/sdk/read-output-contracts.js +1 -1225
- package/dist/sdk/read-output-rows.js +1 -186
- package/dist/sdk/read-output-session.js +1 -208
- package/dist/sdk/relationship-analytics.js +1 -410
- package/dist/sdk/relationship-context.js +1 -284
- package/dist/sdk/relationship-history.js +4 -519
- package/dist/sdk/relationship-kinds/contract.js +1 -22
- package/dist/sdk/relationship-migration.js +1 -77
- package/dist/sdk/relationships.js +1 -579
- package/dist/sdk/reproducibility/process.js +1 -87
- package/dist/sdk/runtime-action-aliases.js +1 -59
- package/dist/sdk/runtime-extended-actions.js +1 -177
- package/dist/sdk/runtime-input.js +1 -614
- package/dist/sdk/runtime-primitives.js +1 -84
- package/dist/sdk/runtime-public-contracts.js +1 -4
- package/dist/sdk/runtime-stats-options.js +1 -38
- package/dist/sdk/runtime.js +1 -1928
- package/dist/sdk/scheduling-shortcuts.js +1 -63
- package/dist/sdk/schema-migration.js +3 -856
- package/dist/sdk/schema.js +1 -1376
- package/dist/sdk/search-refresh-worker.js +1 -18
- package/dist/sdk/similarity-scoring.js +1 -53
- package/dist/sdk/similarity.js +1 -326
- package/dist/sdk/start-task-status.js +1 -14
- package/dist/sdk/stats.js +1 -270
- package/dist/sdk/structured-mutations.js +1 -580
- package/dist/sdk/telemetry-flush.js +1 -13
- package/dist/sdk/telemetry.js +1 -405
- package/dist/sdk/templates.js +2 -292
- package/dist/sdk/test/batch.js +2 -509
- package/dist/sdk/test/entry.js +1 -70
- package/dist/sdk/test/execution.js +6 -2211
- package/dist/sdk/test/linked-command-detection.js +1 -546
- package/dist/sdk/test/measurements.js +1 -91
- package/dist/sdk/test/parsers.js +1 -545
- package/dist/sdk/test/runs.js +1 -193
- package/dist/sdk/test/trust.js +2 -206
- package/dist/sdk/testing.js +4 -1391
- package/dist/sdk/traceability/runtime-files-lookup.js +1 -32
- package/dist/sdk/traceability/source-traceability.js +1 -292
- package/dist/sdk/tracker-root-discovery.js +1 -9
- package/dist/sdk/workspace-contracts-cache.js +1 -28
- package/dist/sdk/workspace-contracts.js +1 -33
- package/dist/sdk/workspace-memory.js +2 -318
- package/dist/sdk/workspace-recipe.js +1 -71
- package/dist/sdk/workspace-snapshot.js +4 -613
- package/dist/sdk/workspace-transaction-gc.js +1 -149
- package/dist/sdk/workspace-transaction.js +2 -363
- package/dist/sdk/workspace.js +3 -127
- package/dist/types/index.js +1 -9
- package/dist/types.js +1 -245
- package/docs/AGENT_GUIDE.md +1 -1
- package/docs/CONTEXT_ALGORITHM_PORTFOLIO.md +167 -0
- package/docs/DIAGNOSTIC_OUTPUT_CONTRACTS.md +9 -3
- package/docs/EXTENSIONS.md +1 -0
- package/docs/HISTORY_MAINTENANCE.md +125 -0
- package/docs/MCP_2026_07_28_CONFORMANCE.md +20 -10
- package/docs/PACKAGE_EVIDENCE.md +92 -0
- package/docs/PLANNING_MEASUREMENTS.md +183 -0
- package/docs/README.md +3 -0
- package/docs/SCRIPTING.md +21 -0
- package/docs/TESTING.md +23 -0
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +5 -5
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +2 -2
- package/marketplace.json +2 -2
- package/package.json +1 -1
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/scripts/finalize-build.mjs +45 -3
- package/dist/cli-bundle/chunks/chunk-AZDFJGH6.js +0 -9
- package/dist/cli-bundle/chunks/chunk-BAX2BYUW.js +0 -2111
- package/dist/cli-bundle/chunks/chunk-CKOL5U7J.js +0 -77
- package/dist/cli-bundle/chunks/chunk-OF76PSDQ.js +0 -5
- package/dist/cli-bundle/chunks/chunk-QUWFABDM.js +0 -232
- package/dist/cli-bundle/chunks/chunk-QWRRFYK3.js +0 -2
- package/dist/cli-bundle/chunks/chunk-RWWBOWJ5.js +0 -2
- package/dist/cli-bundle/chunks/chunk-WGAOYSYH.js +0 -40
- package/dist/cli-bundle/chunks/chunk-WI2AYPA7.js +0 -2
- package/dist/cli-bundle/chunks/register-list-query-5JL52D33.js +0 -11
- package/dist/cli-bundle/chunks/register-mutation-ZPG7KMVP.js +0 -20
- package/dist/cli-bundle/chunks/register-setup-H4SVAVX7.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-AL5ON6K6.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-CHC2IDXA.js +0 -6
- package/dist/cli-bundle/focused-chunks/chunk-CK6QFAPZ.js +0 -20
- package/dist/cli-bundle/focused-chunks/chunk-EZR3GHFE.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-H2WJWK7L.js +0 -56
- package/dist/cli-bundle/focused-chunks/chunk-NTPY5GSO.js +0 -3
- package/dist/cli-bundle/focused-chunks/chunk-P5O7MP5Y.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-PDMW2E36.js +0 -177
- package/dist/cli-bundle/focused-chunks/chunk-QTVCLMSZ.js +0 -6
- package/dist/cli-bundle/focused-chunks/chunk-QTZRBUYA.js +0 -8
- package/dist/cli-bundle/focused-chunks/chunk-SGQST3PQ.js +0 -12
- package/dist/cli-bundle/focused-chunks/chunk-UKHASMMP.js +0 -10
- package/dist/cli-bundle/focused-chunks/chunk-ZPEKQHOC.js +0 -2
|
@@ -1,208 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* @module sdk/item-addressing
|
|
3
|
-
*
|
|
4
|
-
* Defines the shared item-address grammar used by CLI adapters. Commands keep
|
|
5
|
-
* their canonical positional id while accepting `--id` as a compatibility
|
|
6
|
-
* spelling, so integrations no longer need a per-command addressing table.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="271cf7c1-f84b-5f59-aa13-ed8cb4ee232f")}catch(e){}}();
|
|
10
|
-
import { resolveSubcommandFlagContractsForCommand, } from "../cli-contracts.js";
|
|
11
|
-
const ITEM_ID_ALIAS_COMMANDS = new Set([
|
|
12
|
-
"append",
|
|
13
|
-
"claim",
|
|
14
|
-
"close",
|
|
15
|
-
"close-task",
|
|
16
|
-
"comments",
|
|
17
|
-
"copy",
|
|
18
|
-
"delete",
|
|
19
|
-
"deps",
|
|
20
|
-
"docs",
|
|
21
|
-
"files",
|
|
22
|
-
"focus",
|
|
23
|
-
"get",
|
|
24
|
-
"history",
|
|
25
|
-
"history-compact",
|
|
26
|
-
"history-redact",
|
|
27
|
-
"history-repair",
|
|
28
|
-
"learnings",
|
|
29
|
-
"notes",
|
|
30
|
-
"pause-task",
|
|
31
|
-
"release",
|
|
32
|
-
"restore",
|
|
33
|
-
"start-task",
|
|
34
|
-
"test",
|
|
35
|
-
"update",
|
|
36
|
-
]);
|
|
37
|
-
const ITEM_ID_ALIAS_SUBCOMMANDS = new Map([
|
|
38
|
-
["files", "discover"],
|
|
39
|
-
["item", "complete"],
|
|
40
|
-
]);
|
|
41
|
-
const GLOBAL_VALUE_FLAGS = new Set([
|
|
42
|
-
"--author",
|
|
43
|
-
"--output-budget",
|
|
44
|
-
"--output-format",
|
|
45
|
-
"--output-include",
|
|
46
|
-
"--output-limit",
|
|
47
|
-
"--output-session",
|
|
48
|
-
"--path",
|
|
49
|
-
"--pm-path",
|
|
50
|
-
]);
|
|
51
|
-
const TRAILING_POSITIONAL_COUNTS = new Map([
|
|
52
|
-
["append", 1],
|
|
53
|
-
["close", 1],
|
|
54
|
-
["close-task", 1],
|
|
55
|
-
["comments", 1],
|
|
56
|
-
["item complete", 1],
|
|
57
|
-
["learnings", 1],
|
|
58
|
-
["notes", 1],
|
|
59
|
-
["restore", 1],
|
|
60
|
-
]);
|
|
61
|
-
/** Return whether a command participates in the shared item-id alias contract. */
|
|
62
|
-
export function supportsItemIdAlias(commandName) {
|
|
63
|
-
const normalized = commandName?.trim().toLowerCase() ?? "";
|
|
64
|
-
return (ITEM_ID_ALIAS_COMMANDS.has(normalized) ||
|
|
65
|
-
ITEM_ID_ALIAS_SUBCOMMANDS.has(normalized));
|
|
66
|
-
}
|
|
67
|
-
function findCommandIndex(argv) {
|
|
68
|
-
for (let index = 0; index < argv.length; index += 1) {
|
|
69
|
-
const token = argv[index];
|
|
70
|
-
if (token === "--")
|
|
71
|
-
return undefined;
|
|
72
|
-
if (GLOBAL_VALUE_FLAGS.has(token)) {
|
|
73
|
-
index += 1;
|
|
74
|
-
continue;
|
|
75
|
-
}
|
|
76
|
-
if (token.startsWith("-"))
|
|
77
|
-
continue;
|
|
78
|
-
return index;
|
|
79
|
-
}
|
|
80
|
-
return undefined;
|
|
81
|
-
}
|
|
82
|
-
/** Resolve the positional-id slot for direct and declared nested commands. */
|
|
83
|
-
function resolveItemAddressIndex(argv, commandIndex, commandName) {
|
|
84
|
-
const declaredSubcommand = ITEM_ID_ALIAS_SUBCOMMANDS.get(commandName);
|
|
85
|
-
if (declaredSubcommand === undefined)
|
|
86
|
-
return commandIndex + 1;
|
|
87
|
-
const usesDeclaredSubcommand = argv[commandIndex + 1]?.toLowerCase() === declaredSubcommand;
|
|
88
|
-
if (!usesDeclaredSubcommand && !ITEM_ID_ALIAS_COMMANDS.has(commandName)) {
|
|
89
|
-
return undefined;
|
|
90
|
-
}
|
|
91
|
-
return commandIndex + (usesDeclaredSubcommand ? 2 : 1);
|
|
92
|
-
}
|
|
93
|
-
function buildFlagContractMap(commandPath) {
|
|
94
|
-
const contractsByFlag = new Map();
|
|
95
|
-
for (const contract of resolveSubcommandFlagContractsForCommand(commandPath)) {
|
|
96
|
-
for (const flag of [
|
|
97
|
-
contract.flag,
|
|
98
|
-
contract.short,
|
|
99
|
-
...(contract.aliases ?? []),
|
|
100
|
-
]) {
|
|
101
|
-
if (flag)
|
|
102
|
-
contractsByFlag.set(flag, contract);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
return contractsByFlag;
|
|
106
|
-
}
|
|
107
|
-
function collectNamedItemIds(argv) {
|
|
108
|
-
const namedIds = [];
|
|
109
|
-
for (let index = 0; index < argv.length; index += 1) {
|
|
110
|
-
const token = argv[index];
|
|
111
|
-
if (token === "--")
|
|
112
|
-
break;
|
|
113
|
-
if (token === "--id") {
|
|
114
|
-
namedIds.push({ index, consumed: 2, value: argv[index + 1] });
|
|
115
|
-
index += 1;
|
|
116
|
-
}
|
|
117
|
-
else if (token.startsWith("--id=")) {
|
|
118
|
-
namedIds.push({
|
|
119
|
-
index,
|
|
120
|
-
consumed: 1,
|
|
121
|
-
value: token.slice("--id=".length),
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
return namedIds;
|
|
126
|
-
}
|
|
127
|
-
function consumesSeparateFlagValue(token, nextToken, contractsByFlag) {
|
|
128
|
-
const separatorIndex = token.indexOf("=");
|
|
129
|
-
if (separatorIndex >= 0 || nextToken === undefined || nextToken.startsWith("-")) {
|
|
130
|
-
return false;
|
|
131
|
-
}
|
|
132
|
-
const contract = contractsByFlag.get(token);
|
|
133
|
-
return contract !== undefined && contract.value_type !== "boolean";
|
|
134
|
-
}
|
|
135
|
-
function hasPositionalItemId(argv, addressIndex, commandPath, namedIndex, contractsByFlag) {
|
|
136
|
-
let trailingPositionals = 0;
|
|
137
|
-
for (let index = addressIndex; index < argv.length; index += 1) {
|
|
138
|
-
const token = argv[index];
|
|
139
|
-
if (token === "--")
|
|
140
|
-
break;
|
|
141
|
-
if (token === "--id") {
|
|
142
|
-
index += 1;
|
|
143
|
-
continue;
|
|
144
|
-
}
|
|
145
|
-
if (token.startsWith("--id="))
|
|
146
|
-
continue;
|
|
147
|
-
if (!token.startsWith("-")) {
|
|
148
|
-
if (index < namedIndex)
|
|
149
|
-
return true;
|
|
150
|
-
trailingPositionals += 1;
|
|
151
|
-
continue;
|
|
152
|
-
}
|
|
153
|
-
if (consumesSeparateFlagValue(token, argv[index + 1], contractsByFlag)) {
|
|
154
|
-
index += 1;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
return trailingPositionals > (TRAILING_POSITIONAL_COUNTS.get(commandPath) ?? 0);
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Normalize `pm <command> --id <value>` to the command's positional id form.
|
|
161
|
-
* The transformation is lossless for every other argument and reports a
|
|
162
|
-
* conflict instead of guessing when both forms are present.
|
|
163
|
-
*/
|
|
164
|
-
export function normalizeItemAddressInvocation(argv) {
|
|
165
|
-
const commandIndex = findCommandIndex(argv);
|
|
166
|
-
const commandName = commandIndex === undefined ? undefined : argv[commandIndex]?.toLowerCase();
|
|
167
|
-
if (!supportsItemIdAlias(commandName)) {
|
|
168
|
-
return { argv: [...argv], changed: false, conflict: false };
|
|
169
|
-
}
|
|
170
|
-
const commandPath = ITEM_ID_ALIAS_SUBCOMMANDS.get(commandName) ===
|
|
171
|
-
argv[commandIndex + 1]?.toLowerCase()
|
|
172
|
-
? `${commandName} ${argv[commandIndex + 1]?.toLowerCase()}`
|
|
173
|
-
: commandName;
|
|
174
|
-
const contractsByFlag = buildFlagContractMap(commandPath);
|
|
175
|
-
const namedIds = collectNamedItemIds(argv);
|
|
176
|
-
const named = namedIds[0];
|
|
177
|
-
if (!named || !named.value?.trim()) {
|
|
178
|
-
return { argv: [...argv], changed: false, conflict: false };
|
|
179
|
-
}
|
|
180
|
-
const addressIndex = resolveItemAddressIndex(argv, commandIndex, commandName);
|
|
181
|
-
if (addressIndex === undefined) {
|
|
182
|
-
return { argv: [...argv], changed: false, conflict: false };
|
|
183
|
-
}
|
|
184
|
-
if (namedIds.length > 1 ||
|
|
185
|
-
hasPositionalItemId(argv, addressIndex, commandPath, named.index, contractsByFlag)) {
|
|
186
|
-
return {
|
|
187
|
-
argv: [...argv],
|
|
188
|
-
changed: false,
|
|
189
|
-
conflict: true,
|
|
190
|
-
itemId: named.value,
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
const withoutNamed = [
|
|
194
|
-
...argv.slice(0, named.index),
|
|
195
|
-
...argv.slice(named.index + named.consumed),
|
|
196
|
-
];
|
|
197
|
-
const normalizedCommandIndex = findCommandIndex(withoutNamed);
|
|
198
|
-
const normalizedAddressIndex = resolveItemAddressIndex(withoutNamed, normalizedCommandIndex, commandName);
|
|
199
|
-
withoutNamed.splice(normalizedAddressIndex, 0, named.value);
|
|
200
|
-
return {
|
|
201
|
-
argv: withoutNamed,
|
|
202
|
-
changed: true,
|
|
203
|
-
conflict: false,
|
|
204
|
-
itemId: named.value,
|
|
205
|
-
};
|
|
206
|
-
}
|
|
1
|
+
!(function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="beeb59ac-0136-5821-bf6b-fefc68212b8a")}catch(e2){}})();import{findBootstrapCommandTokenIndex}from"../cli-contracts/bootstrap-command-scanner.js";import{resolvePmHistoryOperation}from"../cli-contracts/command-aliases.js";import{resolveSubcommandFlagContractsForCommand}from"../cli-contracts.js";const ITEM_ID_ALIAS_COMMANDS=new Set(["append","claim","close","close-task","comments","copy","delete","deps","docs","files","focus","get","history","history-compact","history-redact","history-repair","learnings","notes","pause-task","release","restore","start-task","test","update"]);const ITEM_ID_ALIAS_SUBCOMMANDS=new Map([["files","discover"],["item","complete"]]);const TRAILING_POSITIONAL_COUNTS=new Map([["append",1],["close",1],["close-task",1],["comments",1],["item complete",1],["learnings",1],["notes",1],["restore",1]]);function supportsItemIdAlias(commandName){const normalized=resolvePmHistoryOperation(commandName?.trim().toLowerCase()??"");return ITEM_ID_ALIAS_COMMANDS.has(normalized)||ITEM_ID_ALIAS_SUBCOMMANDS.has(normalized)}function resolveItemAddressIndex(argv,commandIndex,commandName){if(commandName==="history"){const leafOffset=findBootstrapCommandTokenIndex(argv.slice(commandIndex+1));const leafIndex=leafOffset===void 0?void 0:commandIndex+1+leafOffset;if(leafIndex===void 0)return commandIndex+1;const candidate=`${commandName} ${argv[leafIndex]}`;const operation=resolvePmHistoryOperation(candidate);if(operation!==candidate)return operation==="activity"?void 0:leafIndex+1}const declaredSubcommand=ITEM_ID_ALIAS_SUBCOMMANDS.get(commandName);if(declaredSubcommand===void 0)return commandIndex+1;const usesDeclaredSubcommand=argv[commandIndex+1]?.toLowerCase()===declaredSubcommand;if(!usesDeclaredSubcommand&&!ITEM_ID_ALIAS_COMMANDS.has(commandName)){return void 0}return commandIndex+(usesDeclaredSubcommand?2:1)}function buildFlagContractMap(commandPath){const contractsByFlag=new Map;for(const contract of resolveSubcommandFlagContractsForCommand(commandPath)){for(const flag of[contract.flag,contract.short,...contract.aliases??[]]){if(flag)contractsByFlag.set(flag,contract)}}return contractsByFlag}function collectNamedItemIds(argv){const namedIds=[];for(let index=0;index<argv.length;index+=1){const token=argv[index];if(token==="--")break;if(token==="--id"){namedIds.push({index,consumed:2,value:argv[index+1]});index+=1}else if(token.startsWith("--id=")){namedIds.push({index,consumed:1,value:token.slice("--id=".length)})}}return namedIds}function consumesSeparateFlagValue(token,nextToken,contractsByFlag){const separatorIndex=token.indexOf("=");if(separatorIndex>=0||nextToken===void 0||nextToken.startsWith("-")){return false}const contract=contractsByFlag.get(token);return contract!==void 0&&contract.value_type!=="boolean"}function hasPositionalItemId(argv,addressIndex,commandPath,namedIndex,contractsByFlag){let trailingPositionals=0;for(let index=addressIndex;index<argv.length;index+=1){const token=argv[index];if(token==="--")break;if(token==="--id"){index+=1;continue}if(token.startsWith("--id="))continue;if(!token.startsWith("-")){if(index<namedIndex)return true;trailingPositionals+=1;continue}if(consumesSeparateFlagValue(token,argv[index+1],contractsByFlag)){index+=1}}return trailingPositionals>(TRAILING_POSITIONAL_COUNTS.get(resolvePmHistoryOperation(commandPath))??0)}function normalizeItemAddressInvocation(argv){const commandIndex=findBootstrapCommandTokenIndex(argv);const commandName=commandIndex===void 0?void 0:argv[commandIndex]?.toLowerCase();if(!supportsItemIdAlias(commandName)){return{argv:[...argv],changed:false,conflict:false}}const addressIndex=resolveItemAddressIndex(argv,commandIndex,commandName);if(addressIndex===void 0){return{argv:[...argv],changed:false,conflict:false}}const commandPath=addressIndex>commandIndex+1?`${commandName} ${argv[addressIndex-1]}`:commandName;const contractsByFlag=buildFlagContractMap(commandPath);const namedIds=collectNamedItemIds(argv);const named=namedIds[0];if(!named||!named.value?.trim()){return{argv:[...argv],changed:false,conflict:false}}if(namedIds.length>1||hasPositionalItemId(argv,addressIndex,commandPath,named.index,contractsByFlag)){return{argv:[...argv],changed:false,conflict:true,itemId:named.value}}const withoutNamed=[...argv.slice(0,named.index),...argv.slice(named.index+named.consumed)];const normalizedCommandIndex=findBootstrapCommandTokenIndex(withoutNamed);const normalizedAddressIndex=resolveItemAddressIndex(withoutNamed,normalizedCommandIndex,commandName);withoutNamed.splice(normalizedAddressIndex,0,named.value);return{argv:withoutNamed,changed:true,conflict:false,itemId:named.value}}export{normalizeItemAddressInvocation,supportsItemIdAlias};
|
|
207
2
|
//# sourceMappingURL=item-addressing.js.map
|
|
208
|
-
//# debugId=271cf7c1-f84b-5f59-aa13-ed8cb4ee232f
|
|
@@ -1,152 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="a1efaf49-c6ca-53dd-8fad-eb2540c20cc8")}catch(e){}}();
|
|
4
|
-
export const PM_REFUSAL_CLOSURE_EXECUTABLE_CODE_BASELINE = 16;
|
|
5
|
-
/** @deprecated Historical v1 identities retained for SDK compatibility. */
|
|
6
|
-
export const PM_REFUSAL_CLOSURE_EXECUTABLE_CANONICAL_CODE_BASELINE = Object.freeze([
|
|
7
|
-
"bulk_ids_input_empty",
|
|
8
|
-
"bulk_ids_input_missing_path",
|
|
9
|
-
"bulk_ids_input_unreadable",
|
|
10
|
-
"invalid_argument_value",
|
|
11
|
-
"missing_lifecycle_target",
|
|
12
|
-
"missing_required_argument",
|
|
13
|
-
"projection_options_mutually_exclusive",
|
|
14
|
-
"tracker_not_initialized",
|
|
15
|
-
"tracker_root_missing",
|
|
16
|
-
"tracker_root_not_directory",
|
|
17
|
-
"tracker_root_unreadable",
|
|
18
|
-
"unknown_context_intent",
|
|
19
|
-
"unknown_field_projection",
|
|
20
|
-
"unknown_option",
|
|
21
|
-
"unknown_subcommand",
|
|
22
|
-
]);
|
|
23
|
-
/** Reviewed v2 floor of 18 catalog rows across 17 canonical groups. */
|
|
24
|
-
export const PM_REFUSAL_CLOSURE_EXECUTABLE_CODE_BASELINE_V2 = 18;
|
|
25
|
-
/** V2 canonical identities that must retain executable evidence. */
|
|
26
|
-
export const PM_REFUSAL_CLOSURE_EXECUTABLE_CANONICAL_CODE_BASELINE_V2 = Object.freeze([
|
|
27
|
-
...PM_REFUSAL_CLOSURE_EXECUTABLE_CANONICAL_CODE_BASELINE,
|
|
28
|
-
"manifest_unknown_key",
|
|
29
|
-
"no_version_bounds_declared",
|
|
30
|
-
].sort((left, right) => left.localeCompare(right)));
|
|
31
|
-
/** Ratchet receipt that prevents catalog growth from erasing proven closure. */
|
|
32
|
-
export function verifyPmRefusalClosureRatchet(report, baseline = PM_REFUSAL_CLOSURE_EXECUTABLE_CODE_BASELINE_V2) {
|
|
33
|
-
return {
|
|
34
|
-
ok: report.executable_error_code_count >= baseline,
|
|
35
|
-
baseline,
|
|
36
|
-
actual: report.executable_error_code_count,
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
/** Ratchet canonical compatibility-group identities independently from counts. */
|
|
40
|
-
export function verifyPmRefusalClosureIdentityRatchet(report, requiredCanonicalCodes = PM_REFUSAL_CLOSURE_EXECUTABLE_CANONICAL_CODE_BASELINE_V2) {
|
|
41
|
-
const executableCanonicalCodes = new Set(report.rows
|
|
42
|
-
.filter(({ disposition }) => disposition === "executable")
|
|
43
|
-
.map(({ canonical_code: canonicalCode }) => canonicalCode));
|
|
44
|
-
const missingRequiredCanonicalCodes = requiredCanonicalCodes.filter((code) => !executableCanonicalCodes.has(code));
|
|
45
|
-
return {
|
|
46
|
-
ok: missingRequiredCanonicalCodes.length === 0,
|
|
47
|
-
required_canonical_codes: [...requiredCanonicalCodes],
|
|
48
|
-
missing_required_canonical_codes: missingRequiredCanonicalCodes,
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
function evidenceFor(evidence, canonicalCode) {
|
|
52
|
-
const existing = evidence.get(canonicalCode);
|
|
53
|
-
if (existing)
|
|
54
|
-
return existing;
|
|
55
|
-
const created = {
|
|
56
|
-
kinds: new Set(),
|
|
57
|
-
probeIds: new Set(),
|
|
58
|
-
};
|
|
59
|
-
evidence.set(canonicalCode, created);
|
|
60
|
-
return created;
|
|
61
|
-
}
|
|
62
|
-
/** Build the complete closure join without silently omitting uncovered codes. */
|
|
63
|
-
export function buildPmRefusalClosureCensus(catalog, closedDomains, grammar) {
|
|
64
|
-
const canonicalByCode = new Map(catalog.map((contract) => [
|
|
65
|
-
contract.code,
|
|
66
|
-
contract.canonical_code ?? contract.code,
|
|
67
|
-
]));
|
|
68
|
-
const evidence = new Map();
|
|
69
|
-
let closedDomainProbeCount = 0;
|
|
70
|
-
let grammarProbeCount = 0;
|
|
71
|
-
for (const contract of catalog) {
|
|
72
|
-
const target = evidenceFor(evidence, contract.canonical_code ?? contract.code);
|
|
73
|
-
for (const state of contract.owned_states ?? []) {
|
|
74
|
-
target.kinds.add("owned_state");
|
|
75
|
-
target.probeIds.add(state.probe_id);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
for (const contract of closedDomains) {
|
|
79
|
-
const canonical = canonicalByCode.get(contract.error_code);
|
|
80
|
-
if (canonical === undefined)
|
|
81
|
-
continue;
|
|
82
|
-
closedDomainProbeCount += 1;
|
|
83
|
-
const target = evidenceFor(evidence, canonical);
|
|
84
|
-
target.kinds.add("closed_domain");
|
|
85
|
-
target.probeIds.add(contract.probe_id);
|
|
86
|
-
}
|
|
87
|
-
for (const contract of grammar) {
|
|
88
|
-
const canonical = canonicalByCode.get(contract.error_code);
|
|
89
|
-
if (canonical === undefined)
|
|
90
|
-
continue;
|
|
91
|
-
grammarProbeCount += 1;
|
|
92
|
-
const target = evidenceFor(evidence, canonical);
|
|
93
|
-
target.kinds.add("grammar");
|
|
94
|
-
target.probeIds.add(contract.probe_id);
|
|
95
|
-
}
|
|
96
|
-
const rows = catalog
|
|
97
|
-
.map((contract) => {
|
|
98
|
-
const canonicalCode = contract.canonical_code ?? contract.code;
|
|
99
|
-
const joined = evidence.get(canonicalCode);
|
|
100
|
-
const probeIds = [...joined.probeIds].sort();
|
|
101
|
-
return {
|
|
102
|
-
code: contract.code,
|
|
103
|
-
canonical_code: canonicalCode,
|
|
104
|
-
disposition: probeIds.length > 0 ? "executable" : "uncovered",
|
|
105
|
-
evidence_kinds: [...joined.kinds].sort(),
|
|
106
|
-
probe_ids: probeIds,
|
|
107
|
-
};
|
|
108
|
-
})
|
|
109
|
-
.sort((left, right) => (left.code < right.code ? -1 : 1));
|
|
110
|
-
const uncoveredErrorCodes = rows
|
|
111
|
-
.filter(({ disposition }) => disposition === "uncovered")
|
|
112
|
-
.map(({ code }) => code);
|
|
113
|
-
const executableCount = rows.length - uncoveredErrorCodes.length;
|
|
114
|
-
return {
|
|
115
|
-
ok: uncoveredErrorCodes.length === 0,
|
|
116
|
-
catalog_error_code_count: rows.length,
|
|
117
|
-
executable_error_code_count: executableCount,
|
|
118
|
-
uncovered_error_code_count: uncoveredErrorCodes.length,
|
|
119
|
-
coverage_fraction: rows.length === 0 ? 1 : executableCount / rows.length,
|
|
120
|
-
closed_domain_probe_count: closedDomainProbeCount,
|
|
121
|
-
grammar_probe_count: grammarProbeCount,
|
|
122
|
-
uncovered_error_codes: uncoveredErrorCodes,
|
|
123
|
-
rows,
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
/** Render the complete census for generated documentation and review evidence. */
|
|
127
|
-
export function renderPmRefusalClosureCensusMarkdown(report) {
|
|
128
|
-
const rows = report.rows.map((row) => `| \`${row.code}\` | \`${row.canonical_code}\` | ${row.disposition} | ${row.evidence_kinds.join(", ") || "none"} | ${row.probe_ids.length} |`);
|
|
129
|
-
return [
|
|
130
|
-
"# Generated refusal closure census",
|
|
131
|
-
"",
|
|
132
|
-
"Tracker: `pm-f05lsg`.",
|
|
133
|
-
"",
|
|
134
|
-
"Every catalog code is listed. An `uncovered` row is an explicit closure obligation, never an omission or implied approval.",
|
|
135
|
-
"",
|
|
136
|
-
`- Catalog error codes: ${report.catalog_error_code_count}`,
|
|
137
|
-
`- Executable error codes: ${report.executable_error_code_count}`,
|
|
138
|
-
`- Executable-code ratchet floor: ${PM_REFUSAL_CLOSURE_EXECUTABLE_CODE_BASELINE_V2}`,
|
|
139
|
-
`- Required executable canonical codes: ${PM_REFUSAL_CLOSURE_EXECUTABLE_CANONICAL_CODE_BASELINE_V2.map((code) => `\`${code}\``).join(", ")}`,
|
|
140
|
-
`- Uncovered error codes: ${report.uncovered_error_code_count}`,
|
|
141
|
-
`- Coverage fraction: ${report.coverage_fraction.toFixed(6)}`,
|
|
142
|
-
`- Closed-domain probes: ${report.closed_domain_probe_count}`,
|
|
143
|
-
`- Grammar probes: ${report.grammar_probe_count}`,
|
|
144
|
-
"",
|
|
145
|
-
"| Error code | Canonical code | Disposition | Evidence kinds | Probe count |",
|
|
146
|
-
"| --- | --- | --- | --- | --- |",
|
|
147
|
-
...rows,
|
|
148
|
-
"",
|
|
149
|
-
].join("\n");
|
|
150
|
-
}
|
|
1
|
+
!(function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ae22de89-8bac-5728-a6e2-29b342383abe")}catch(e2){}})();const PM_REFUSAL_CLOSURE_EXECUTABLE_CODE_BASELINE=16;const PM_REFUSAL_CLOSURE_EXECUTABLE_CANONICAL_CODE_BASELINE=Object.freeze(["bulk_ids_input_empty","bulk_ids_input_missing_path","bulk_ids_input_unreadable","invalid_argument_value","missing_lifecycle_target","missing_required_argument","projection_options_mutually_exclusive","tracker_not_initialized","tracker_root_missing","tracker_root_not_directory","tracker_root_unreadable","unknown_context_intent","unknown_field_projection","unknown_option","unknown_subcommand"]);const PM_REFUSAL_CLOSURE_EXECUTABLE_CODE_BASELINE_V2=18;const PM_REFUSAL_CLOSURE_EXECUTABLE_CANONICAL_CODE_BASELINE_V2=Object.freeze([...PM_REFUSAL_CLOSURE_EXECUTABLE_CANONICAL_CODE_BASELINE,"manifest_unknown_key","no_version_bounds_declared"].sort((left,right)=>left.localeCompare(right)));function verifyPmRefusalClosureRatchet(report,baseline=PM_REFUSAL_CLOSURE_EXECUTABLE_CODE_BASELINE_V2){return{ok:report.executable_error_code_count>=baseline,baseline,actual:report.executable_error_code_count}}function verifyPmRefusalClosureIdentityRatchet(report,requiredCanonicalCodes=PM_REFUSAL_CLOSURE_EXECUTABLE_CANONICAL_CODE_BASELINE_V2){const executableCanonicalCodes=new Set(report.rows.filter(({disposition})=>disposition==="executable").map(({canonical_code:canonicalCode})=>canonicalCode));const missingRequiredCanonicalCodes=requiredCanonicalCodes.filter(code=>!executableCanonicalCodes.has(code));return{ok:missingRequiredCanonicalCodes.length===0,required_canonical_codes:[...requiredCanonicalCodes],missing_required_canonical_codes:missingRequiredCanonicalCodes}}function evidenceFor(evidence,canonicalCode){const existing=evidence.get(canonicalCode);if(existing)return existing;const created={kinds:new Set,probeIds:new Set};evidence.set(canonicalCode,created);return created}function buildPmRefusalClosureCensus(catalog,closedDomains,grammar){const canonicalByCode=new Map(catalog.map(contract=>[contract.code,contract.canonical_code??contract.code]));const evidence=new Map;let closedDomainProbeCount=0;let grammarProbeCount=0;for(const contract of catalog){const target=evidenceFor(evidence,contract.canonical_code??contract.code);for(const state of contract.owned_states??[]){target.kinds.add("owned_state");target.probeIds.add(state.probe_id)}}for(const contract of closedDomains){const canonical=canonicalByCode.get(contract.error_code);if(canonical===void 0)continue;closedDomainProbeCount+=1;const target=evidenceFor(evidence,canonical);target.kinds.add("closed_domain");target.probeIds.add(contract.probe_id)}for(const contract of grammar){const canonical=canonicalByCode.get(contract.error_code);if(canonical===void 0)continue;grammarProbeCount+=1;const target=evidenceFor(evidence,canonical);target.kinds.add("grammar");target.probeIds.add(contract.probe_id)}const rows=catalog.map(contract=>{const canonicalCode=contract.canonical_code??contract.code;const joined=evidence.get(canonicalCode);const probeIds=[...joined.probeIds].sort();return{code:contract.code,canonical_code:canonicalCode,disposition:probeIds.length>0?"executable":"uncovered",evidence_kinds:[...joined.kinds].sort(),probe_ids:probeIds}}).sort((left,right)=>left.code<right.code?-1:1);const uncoveredErrorCodes=rows.filter(({disposition})=>disposition==="uncovered").map(({code})=>code);const executableCount=rows.length-uncoveredErrorCodes.length;return{ok:uncoveredErrorCodes.length===0,catalog_error_code_count:rows.length,executable_error_code_count:executableCount,uncovered_error_code_count:uncoveredErrorCodes.length,coverage_fraction:rows.length===0?1:executableCount/rows.length,closed_domain_probe_count:closedDomainProbeCount,grammar_probe_count:grammarProbeCount,uncovered_error_codes:uncoveredErrorCodes,rows}}function renderPmRefusalClosureCensusMarkdown(report){const rows=report.rows.map(row=>`| \`${row.code}\` | \`${row.canonical_code}\` | ${row.disposition} | ${row.evidence_kinds.join(", ")||"none"} | ${row.probe_ids.length} |`);return["# Generated refusal closure census","","Tracker: `pm-f05lsg`.","","Every catalog code is listed. An `uncovered` row is an explicit closure obligation, never an omission or implied approval.","",`- Catalog error codes: ${report.catalog_error_code_count}`,`- Executable error codes: ${report.executable_error_code_count}`,`- Executable-code ratchet floor: ${PM_REFUSAL_CLOSURE_EXECUTABLE_CODE_BASELINE_V2}`,`- Required executable canonical codes: ${PM_REFUSAL_CLOSURE_EXECUTABLE_CANONICAL_CODE_BASELINE_V2.map(code=>`\`${code}\``).join(", ")}`,`- Uncovered error codes: ${report.uncovered_error_code_count}`,`- Coverage fraction: ${report.coverage_fraction.toFixed(6)}`,`- Closed-domain probes: ${report.closed_domain_probe_count}`,`- Grammar probes: ${report.grammar_probe_count}`,"","| Error code | Canonical code | Disposition | Evidence kinds | Probe count |","| --- | --- | --- | --- | --- |",...rows,""].join("\n")}export{PM_REFUSAL_CLOSURE_EXECUTABLE_CANONICAL_CODE_BASELINE,PM_REFUSAL_CLOSURE_EXECUTABLE_CANONICAL_CODE_BASELINE_V2,PM_REFUSAL_CLOSURE_EXECUTABLE_CODE_BASELINE,PM_REFUSAL_CLOSURE_EXECUTABLE_CODE_BASELINE_V2,buildPmRefusalClosureCensus,renderPmRefusalClosureCensusMarkdown,verifyPmRefusalClosureIdentityRatchet,verifyPmRefusalClosureRatchet};
|
|
151
2
|
//# sourceMappingURL=refusal-closure-census.js.map
|
|
152
|
-
//# debugId=a1efaf49-c6ca-53dd-8fad-eb2540c20cc8
|
|
@@ -1,134 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* @module sdk/agent/refusal-closure
|
|
3
|
-
*
|
|
4
|
-
* Scores whether a structured refusal contains enough executable context for
|
|
5
|
-
* an agent to recover without another discovery round trip.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="0ec8c375-e58e-5ce4-b0aa-8a8a4dfa0778")}catch(e){}}();
|
|
9
|
-
import { EXIT_CODE } from "../../core/shared/constants.js";
|
|
10
|
-
/** Compare a refusal with its optional SDK-owned exact contract. */
|
|
11
|
-
function listContractObservationFindings(observation) {
|
|
12
|
-
return [
|
|
13
|
-
observation.expected_error_code !== undefined &&
|
|
14
|
-
observation.error_code !== observation.expected_error_code
|
|
15
|
-
? {
|
|
16
|
-
code: "error_code_mismatch",
|
|
17
|
-
probe_id: observation.probe_id,
|
|
18
|
-
detail: `Expected error code ${observation.expected_error_code}, received ${observation.error_code ?? "<missing>"}.`,
|
|
19
|
-
}
|
|
20
|
-
: undefined,
|
|
21
|
-
observation.expected_allowed_values !== undefined &&
|
|
22
|
-
JSON.stringify([...observation.allowed_values].sort()) !==
|
|
23
|
-
JSON.stringify([...observation.expected_allowed_values].sort())
|
|
24
|
-
? {
|
|
25
|
-
code: "incomplete_allowed_values",
|
|
26
|
-
probe_id: observation.probe_id,
|
|
27
|
-
detail: "The refusal's accepted domain differs from the SDK-owned domain contract.",
|
|
28
|
-
}
|
|
29
|
-
: undefined,
|
|
30
|
-
observation.expected_suggested_retry_args !== undefined &&
|
|
31
|
-
(observation.suggested_retry_args?.length ?? 0) === 0
|
|
32
|
-
? {
|
|
33
|
-
code: "missing_suggested_retry_args",
|
|
34
|
-
probe_id: observation.probe_id,
|
|
35
|
-
detail: "The refusal omitted shell-free suggested retry arguments.",
|
|
36
|
-
}
|
|
37
|
-
: undefined,
|
|
38
|
-
observation.expected_suggested_retry_args !== undefined &&
|
|
39
|
-
(observation.suggested_retry_args?.length ?? 0) > 0 &&
|
|
40
|
-
JSON.stringify(observation.suggested_retry_args) !==
|
|
41
|
-
JSON.stringify(observation.expected_suggested_retry_args)
|
|
42
|
-
? {
|
|
43
|
-
code: "suggested_retry_args_mismatch",
|
|
44
|
-
probe_id: observation.probe_id,
|
|
45
|
-
detail: "The refusal's suggested retry arguments differ from the SDK-owned contract.",
|
|
46
|
-
}
|
|
47
|
-
: undefined,
|
|
48
|
-
];
|
|
49
|
-
}
|
|
50
|
-
/** Return every closure defect contributed by one unique observation. */
|
|
51
|
-
function listObservationFindings(observation) {
|
|
52
|
-
return [
|
|
53
|
-
observation.exit_code !== EXIT_CODE.USAGE
|
|
54
|
-
? {
|
|
55
|
-
code: "non_refusal_exit",
|
|
56
|
-
probe_id: observation.probe_id,
|
|
57
|
-
detail: `${observation.entrypoint} returned exit code ${observation.exit_code}; a structured usage refusal must return ${EXIT_CODE.USAGE}.`,
|
|
58
|
-
}
|
|
59
|
-
: undefined,
|
|
60
|
-
observation.allowed_values_required !== false &&
|
|
61
|
-
observation.allowed_values.length === 0
|
|
62
|
-
? {
|
|
63
|
-
code: "missing_allowed_values",
|
|
64
|
-
probe_id: observation.probe_id,
|
|
65
|
-
detail: "The refusal omitted its complete accepted value domain.",
|
|
66
|
-
}
|
|
67
|
-
: undefined,
|
|
68
|
-
observation.allowed_values.includes(observation.rejected_value)
|
|
69
|
-
? {
|
|
70
|
-
code: "accepted_rejected_value",
|
|
71
|
-
probe_id: observation.probe_id,
|
|
72
|
-
detail: `${observation.rejected_value} is both rejected and advertised as allowed.`,
|
|
73
|
-
}
|
|
74
|
-
: undefined,
|
|
75
|
-
observation.suggested_retry.trim().length === 0
|
|
76
|
-
? {
|
|
77
|
-
code: "missing_suggested_retry",
|
|
78
|
-
probe_id: observation.probe_id,
|
|
79
|
-
detail: "The refusal omitted an executable suggested retry.",
|
|
80
|
-
}
|
|
81
|
-
: undefined,
|
|
82
|
-
!observation.retry_succeeded
|
|
83
|
-
? {
|
|
84
|
-
code: "retry_failed",
|
|
85
|
-
probe_id: observation.probe_id,
|
|
86
|
-
detail: "The advertised suggested retry did not succeed.",
|
|
87
|
-
}
|
|
88
|
-
: undefined,
|
|
89
|
-
...listContractObservationFindings(observation),
|
|
90
|
-
];
|
|
91
|
-
}
|
|
92
|
-
/** Score structured closed-domain refusals and executable retries. */
|
|
93
|
-
export function scorePmRefusalClosure(observations) {
|
|
94
|
-
const findings = [];
|
|
95
|
-
const seen = new Set();
|
|
96
|
-
let closedProbeCount = 0;
|
|
97
|
-
if (observations.length === 0) {
|
|
98
|
-
findings.push({
|
|
99
|
-
code: "empty_corpus",
|
|
100
|
-
probe_id: "corpus",
|
|
101
|
-
detail: "At least one real refusal observation is required.",
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
for (const observation of observations) {
|
|
105
|
-
if (seen.has(observation.probe_id)) {
|
|
106
|
-
findings.push({
|
|
107
|
-
code: "duplicate_probe",
|
|
108
|
-
probe_id: observation.probe_id,
|
|
109
|
-
detail: `${observation.probe_id} was supplied more than once.`,
|
|
110
|
-
});
|
|
111
|
-
continue;
|
|
112
|
-
}
|
|
113
|
-
seen.add(observation.probe_id);
|
|
114
|
-
const findingCount = findings.length;
|
|
115
|
-
for (const finding of listObservationFindings(observation)) {
|
|
116
|
-
if (finding !== undefined)
|
|
117
|
-
findings.push(finding);
|
|
118
|
-
}
|
|
119
|
-
if (findings.length === findingCount)
|
|
120
|
-
closedProbeCount += 1;
|
|
121
|
-
}
|
|
122
|
-
findings.sort((left, right) => left.probe_id !== right.probe_id
|
|
123
|
-
? left.probe_id.localeCompare(right.probe_id)
|
|
124
|
-
: left.code.localeCompare(right.code));
|
|
125
|
-
return {
|
|
126
|
-
ok: findings.length === 0,
|
|
127
|
-
probe_count: seen.size,
|
|
128
|
-
closed_probe_count: closedProbeCount,
|
|
129
|
-
closure_fraction: seen.size === 0 ? 0 : closedProbeCount / seen.size,
|
|
130
|
-
findings,
|
|
131
|
-
};
|
|
132
|
-
}
|
|
1
|
+
!(function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="6ecdd8cf-3153-5ed9-abd4-e8a73da6662a")}catch(e2){}})();import{EXIT_CODE}from"../../core/shared/constants.js";function listContractObservationFindings(observation){return[observation.expected_error_code!==void 0&&observation.error_code!==observation.expected_error_code?{code:"error_code_mismatch",probe_id:observation.probe_id,detail:`Expected error code ${observation.expected_error_code}, received ${observation.error_code??"<missing>"}.`}:void 0,observation.expected_allowed_values!==void 0&&JSON.stringify([...observation.allowed_values].sort())!==JSON.stringify([...observation.expected_allowed_values].sort())?{code:"incomplete_allowed_values",probe_id:observation.probe_id,detail:"The refusal's accepted domain differs from the SDK-owned domain contract."}:void 0,observation.expected_suggested_retry_args!==void 0&&(observation.suggested_retry_args?.length??0)===0?{code:"missing_suggested_retry_args",probe_id:observation.probe_id,detail:"The refusal omitted shell-free suggested retry arguments."}:void 0,observation.expected_suggested_retry_args!==void 0&&(observation.suggested_retry_args?.length??0)>0&&JSON.stringify(observation.suggested_retry_args)!==JSON.stringify(observation.expected_suggested_retry_args)?{code:"suggested_retry_args_mismatch",probe_id:observation.probe_id,detail:"The refusal's suggested retry arguments differ from the SDK-owned contract."}:void 0]}function listObservationFindings(observation){return[observation.exit_code!==EXIT_CODE.USAGE?{code:"non_refusal_exit",probe_id:observation.probe_id,detail:`${observation.entrypoint} returned exit code ${observation.exit_code}; a structured usage refusal must return ${EXIT_CODE.USAGE}.`}:void 0,observation.allowed_values_required!==false&&observation.allowed_values.length===0?{code:"missing_allowed_values",probe_id:observation.probe_id,detail:"The refusal omitted its complete accepted value domain."}:void 0,observation.allowed_values.includes(observation.rejected_value)?{code:"accepted_rejected_value",probe_id:observation.probe_id,detail:`${observation.rejected_value} is both rejected and advertised as allowed.`}:void 0,observation.suggested_retry.trim().length===0?{code:"missing_suggested_retry",probe_id:observation.probe_id,detail:"The refusal omitted an executable suggested retry."}:void 0,!observation.retry_succeeded?{code:"retry_failed",probe_id:observation.probe_id,detail:"The advertised suggested retry did not succeed."}:void 0,...listContractObservationFindings(observation)]}function scorePmRefusalClosure(observations){const findings=[];const seen=new Set;let closedProbeCount=0;if(observations.length===0){findings.push({code:"empty_corpus",probe_id:"corpus",detail:"At least one real refusal observation is required."})}for(const observation of observations){if(seen.has(observation.probe_id)){findings.push({code:"duplicate_probe",probe_id:observation.probe_id,detail:`${observation.probe_id} was supplied more than once.`});continue}seen.add(observation.probe_id);const findingCount=findings.length;for(const finding of listObservationFindings(observation)){if(finding!==void 0)findings.push(finding)}if(findings.length===findingCount)closedProbeCount+=1}findings.sort((left,right)=>left.probe_id!==right.probe_id?left.probe_id.localeCompare(right.probe_id):left.code.localeCompare(right.code));return{ok:findings.length===0,probe_count:seen.size,closed_probe_count:closedProbeCount,closure_fraction:seen.size===0?0:closedProbeCount/seen.size,findings}}export{scorePmRefusalClosure};
|
|
133
2
|
//# sourceMappingURL=refusal-closure.js.map
|
|
134
|
-
//# debugId=0ec8c375-e58e-5ce4-b0aa-8a8a4dfa0778
|