@unbrained/pm-cli 2026.9.6 → 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 +218 -182
- 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/RELEASING.md +1 -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,615 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module sdk/runtime-input
|
|
3
|
-
*
|
|
4
|
-
* Normalizes untyped action payload values at the SDK runtime boundary. These
|
|
5
|
-
* primitives are shared by native action dispatchers and MCP-specific adapters.
|
|
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]="d42d5fb1-eebc-5549-ae88-dc923d9d3696")}catch(e){}}();
|
|
9
|
-
import { EXIT_CODE } from "../core/shared/constants.js";
|
|
10
|
-
import { PmCliError } from "../core/shared/errors.js";
|
|
11
|
-
import { asRecordClone } from "../core/shared/primitives.js";
|
|
12
|
-
import { normalizeListOptions, normalizeUpdateOptions, } from "./cli-contracts/registration-helpers.js";
|
|
13
|
-
import { UPDATE_COMMANDER_STRING_OPTION_CONTRACTS } from "./cli-contracts/commander-mutation-options.js";
|
|
14
|
-
import { normalizeBulkIdsValue, } from "../core/io/bulk-ids-input.js";
|
|
15
|
-
import { overlayMutationStdinTokenPolicy, preserveMutationStdinTokenLiterals, transferMutationStdinTokenPolicy, } from "../core/item/parse.js";
|
|
16
|
-
const MCP_MUTATION_TRANSPORT = Symbol("pm.mcp-mutation-transport");
|
|
17
|
-
const WORKSPACE_CONTRACTS_CACHE_PRESERVING_ACTIONS = new Set([
|
|
18
|
-
"activity",
|
|
19
|
-
"aggregate",
|
|
20
|
-
"context",
|
|
21
|
-
"contracts",
|
|
22
|
-
"deps",
|
|
23
|
-
"files-discover",
|
|
24
|
-
"files-lookup",
|
|
25
|
-
"get",
|
|
26
|
-
"graph",
|
|
27
|
-
"health",
|
|
28
|
-
"history",
|
|
29
|
-
"list",
|
|
30
|
-
"next",
|
|
31
|
-
"search",
|
|
32
|
-
"stats",
|
|
33
|
-
"telemetry",
|
|
34
|
-
"validate",
|
|
35
|
-
]);
|
|
36
|
-
/** Mark an action object decoded from the MCP JSON-RPC transport. */
|
|
37
|
-
export function markMcpMutationTransportInput(input) {
|
|
38
|
-
Object.defineProperty(input, MCP_MUTATION_TRANSPORT, {
|
|
39
|
-
value: true,
|
|
40
|
-
enumerable: true,
|
|
41
|
-
});
|
|
42
|
-
return input;
|
|
43
|
-
}
|
|
44
|
-
function isMcpMutationTransportInput(input) {
|
|
45
|
-
return MCP_MUTATION_TRANSPORT in input;
|
|
46
|
-
}
|
|
47
|
-
function preserveTransportLiteralOptions(source, options) {
|
|
48
|
-
return isMcpMutationTransportInput(source)
|
|
49
|
-
? preserveMutationStdinTokenLiterals(options)
|
|
50
|
-
: transferMutationStdinTokenPolicy(source, options);
|
|
51
|
-
}
|
|
52
|
-
/** Clone mutation options with overrides while retaining stdin provenance. */
|
|
53
|
-
export function mutationOptionsWithOverrides(source, overrides, omittedKeys = []) {
|
|
54
|
-
const options = transferMutationStdinTokenPolicy(source, {
|
|
55
|
-
...source,
|
|
56
|
-
...overrides,
|
|
57
|
-
});
|
|
58
|
-
for (const key of omittedKeys)
|
|
59
|
-
Reflect.deleteProperty(options, key);
|
|
60
|
-
return options;
|
|
61
|
-
}
|
|
62
|
-
/** Read a non-empty string without altering its caller-provided whitespace. */
|
|
63
|
-
export function readRuntimeString(args, key) {
|
|
64
|
-
const value = args[key];
|
|
65
|
-
return typeof value === "string" && value.trim().length > 0
|
|
66
|
-
? value
|
|
67
|
-
: undefined;
|
|
68
|
-
}
|
|
69
|
-
/** Normalize a non-empty string or finite number into a scalar string. */
|
|
70
|
-
export function readRuntimeScalarString(args, key) {
|
|
71
|
-
const value = args[key];
|
|
72
|
-
if (typeof value === "string") {
|
|
73
|
-
return value.trim().length > 0 ? value : undefined;
|
|
74
|
-
}
|
|
75
|
-
return typeof value === "number" && Number.isFinite(value)
|
|
76
|
-
? String(value)
|
|
77
|
-
: undefined;
|
|
78
|
-
}
|
|
79
|
-
/** Normalize a string, including blank text, or a finite number into text. */
|
|
80
|
-
export function readRuntimeScalarStringAllowBlank(args, key) {
|
|
81
|
-
const value = args[key];
|
|
82
|
-
if (typeof value === "string") {
|
|
83
|
-
return value;
|
|
84
|
-
}
|
|
85
|
-
return typeof value === "number" && Number.isFinite(value)
|
|
86
|
-
? String(value)
|
|
87
|
-
: undefined;
|
|
88
|
-
}
|
|
89
|
-
/** Narrow unknown values to plain record-shaped action payloads. */
|
|
90
|
-
export function isRuntimeRecord(value) {
|
|
91
|
-
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
92
|
-
}
|
|
93
|
-
/** Parse an integer-valued MCP option while retaining a caller-specific label. */
|
|
94
|
-
export function parseRuntimeInteger(value, label) {
|
|
95
|
-
if (typeof value === "number") {
|
|
96
|
-
if (!Number.isInteger(value)) {
|
|
97
|
-
throw new PmCliError(`${label} must be a finite integer.`, EXIT_CODE.USAGE);
|
|
98
|
-
}
|
|
99
|
-
return value;
|
|
100
|
-
}
|
|
101
|
-
if (typeof value === "string" && value.trim().length > 0) {
|
|
102
|
-
const parsed = Number(value);
|
|
103
|
-
if (!Number.isInteger(parsed)) {
|
|
104
|
-
throw new PmCliError(`${label} must be a finite integer.`, EXIT_CODE.USAGE);
|
|
105
|
-
}
|
|
106
|
-
return parsed;
|
|
107
|
-
}
|
|
108
|
-
return undefined;
|
|
109
|
-
}
|
|
110
|
-
/** Resolve a numeric-or-string limit from top-level and nested action inputs. */
|
|
111
|
-
export function resolveRuntimeLimit(args, options) {
|
|
112
|
-
if (typeof args.limit === "number" && Number.isFinite(args.limit)) {
|
|
113
|
-
return args.limit;
|
|
114
|
-
}
|
|
115
|
-
if (typeof options.limit === "number" && Number.isFinite(options.limit)) {
|
|
116
|
-
return options.limit;
|
|
117
|
-
}
|
|
118
|
-
return (readRuntimeString(args, "limit") ?? readRuntimeString(options, "limit"));
|
|
119
|
-
}
|
|
120
|
-
/** Fixed SDK-runtime global options derived from one untyped action payload. */
|
|
121
|
-
export function actionGlobalOptions(args) {
|
|
122
|
-
const outputFormat = readRuntimeString(args, "outputFormat");
|
|
123
|
-
return {
|
|
124
|
-
json: true,
|
|
125
|
-
quiet: true,
|
|
126
|
-
author: readRuntimeString(args, "author"),
|
|
127
|
-
path: readRuntimeString(args, "path"),
|
|
128
|
-
noExtensions: args.noExtensions === true || args.no_extensions === true,
|
|
129
|
-
noPager: true,
|
|
130
|
-
outputInclude: readRuntimeString(args, "outputInclude"),
|
|
131
|
-
outputLimit: readRuntimeScalarString(args, "outputLimit"),
|
|
132
|
-
outputBudget: readRuntimeScalarString(args, "outputBudget"),
|
|
133
|
-
outputSession: readRuntimeString(args, "outputSession"),
|
|
134
|
-
outputCursor: readRuntimeString(args, "outputCursor"),
|
|
135
|
-
outputFormat: outputFormat === "json" || outputFormat === "toon"
|
|
136
|
-
? outputFormat
|
|
137
|
-
: undefined,
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
/** Fields whose MCP array values collapse into the CLI's CSV spelling. */
|
|
141
|
-
const ARRAY_TO_CSV_FIELDS = new Set([
|
|
142
|
-
"tags",
|
|
143
|
-
"blockedBy",
|
|
144
|
-
"blocked_by",
|
|
145
|
-
"skills",
|
|
146
|
-
"fields",
|
|
147
|
-
]);
|
|
148
|
-
/** Fields whose scalar MCP values promote into the CLI's repeatable arrays. */
|
|
149
|
-
const SCALAR_TO_ARRAY_FIELDS = new Set([
|
|
150
|
-
"comment",
|
|
151
|
-
"note",
|
|
152
|
-
"learning",
|
|
153
|
-
"reminder",
|
|
154
|
-
"event",
|
|
155
|
-
"dep",
|
|
156
|
-
"depRemove",
|
|
157
|
-
"dep_remove",
|
|
158
|
-
"file",
|
|
159
|
-
"doc",
|
|
160
|
-
"test",
|
|
161
|
-
"unset",
|
|
162
|
-
"addGlob",
|
|
163
|
-
"add_glob",
|
|
164
|
-
"migrate",
|
|
165
|
-
"envSet",
|
|
166
|
-
"env_set",
|
|
167
|
-
"envClear",
|
|
168
|
-
"env_clear",
|
|
169
|
-
]);
|
|
170
|
-
const ANNOTATION_SCALAR_TO_ARRAY_FIELDS = new Set([...SCALAR_TO_ARRAY_FIELDS].filter((field) => field !== "file"));
|
|
171
|
-
// Actions where the linked-resource fields `add` and `remove` are string[] arrays.
|
|
172
|
-
// For other actions (comments/notes/learnings) `add` and `remove` are scalar strings
|
|
173
|
-
// and must NOT be auto-promoted.
|
|
174
|
-
const ARRAY_ADD_REMOVE_ACTIONS = new Set([
|
|
175
|
-
"files",
|
|
176
|
-
"files-discover",
|
|
177
|
-
"docs",
|
|
178
|
-
"test",
|
|
179
|
-
"test-all",
|
|
180
|
-
]);
|
|
181
|
-
const SCALAR_ANNOTATION_SOURCE_ACTIONS = new Set([
|
|
182
|
-
"comments",
|
|
183
|
-
"notes",
|
|
184
|
-
"learnings",
|
|
185
|
-
]);
|
|
186
|
-
function assertMcpAnnotationFileUnavailable(action, options) {
|
|
187
|
-
if (!SCALAR_ANNOTATION_SOURCE_ACTIONS.has(action) ||
|
|
188
|
-
!Object.prototype.hasOwnProperty.call(options, "file")) {
|
|
189
|
-
return;
|
|
190
|
-
}
|
|
191
|
-
throw new PmCliError(`MCP ${action} does not accept options.file. Pass annotation text in options.add instead.`, EXIT_CODE.USAGE, {
|
|
192
|
-
code: "mcp_annotation_file_unavailable",
|
|
193
|
-
required: "Pass annotation text as JSON data; MCP annotation actions cannot read server-local files.",
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
/** Lifecycle actions where a top-level assignee argument aliases the author. */
|
|
197
|
-
const LIFECYCLE_AUTHOR_ALIAS_ACTIONS = new Set([
|
|
198
|
-
"claim",
|
|
199
|
-
"release",
|
|
200
|
-
"start-task",
|
|
201
|
-
"pause-task",
|
|
202
|
-
"close-task",
|
|
203
|
-
]);
|
|
204
|
-
const HOISTED_ACTION_OPTION_KEYS = {
|
|
205
|
-
list: ["status", "type", "tag", "priority", "limit", "offset"],
|
|
206
|
-
search: ["mode", "status", "type", "tag", "priority", "limit"],
|
|
207
|
-
create: [
|
|
208
|
-
"title",
|
|
209
|
-
"type",
|
|
210
|
-
"status",
|
|
211
|
-
"description",
|
|
212
|
-
"body",
|
|
213
|
-
"priority",
|
|
214
|
-
"tags",
|
|
215
|
-
"parent",
|
|
216
|
-
"createMode",
|
|
217
|
-
"create_mode",
|
|
218
|
-
"allowMissingParent",
|
|
219
|
-
"allowDuplicate",
|
|
220
|
-
],
|
|
221
|
-
update: ["parent", "allowMissingParent", "completedAt"],
|
|
222
|
-
copy: ["allowDuplicate"],
|
|
223
|
-
close: ["duplicateOf", "completedAt"],
|
|
224
|
-
comments: ["ifAbsent"],
|
|
225
|
-
notes: ["ifAbsent"],
|
|
226
|
-
learnings: ["ifAbsent"],
|
|
227
|
-
upgrade: [
|
|
228
|
-
"scope",
|
|
229
|
-
"dryRun",
|
|
230
|
-
"cliOnly",
|
|
231
|
-
"packagesOnly",
|
|
232
|
-
"repair",
|
|
233
|
-
"tag",
|
|
234
|
-
"packageName",
|
|
235
|
-
],
|
|
236
|
-
// pm-7u9j: the narrow pm_append tool declares `body` top-level; runAppend
|
|
237
|
-
// reads it from options, while schema/config consume their top-level values
|
|
238
|
-
// directly in runAction and therefore need no hoisting.
|
|
239
|
-
append: ["body"],
|
|
240
|
-
};
|
|
241
|
-
const UNIVERSAL_READ_OUTPUT_OPTION_KEYS = [
|
|
242
|
-
"outputInclude",
|
|
243
|
-
"outputLimit",
|
|
244
|
-
"outputBudget",
|
|
245
|
-
"outputFormat",
|
|
246
|
-
"outputSession",
|
|
247
|
-
"outputCursor",
|
|
248
|
-
];
|
|
249
|
-
/** Reconcile MCP array/scalar option spellings with CLI flag expectations. */
|
|
250
|
-
export function normalizeMcpOptionsArrays(options, action = "") {
|
|
251
|
-
const result = {};
|
|
252
|
-
const promoteAddRemove = ARRAY_ADD_REMOVE_ACTIONS.has(action);
|
|
253
|
-
const preserveStandaloneNote = action === "files" || action === "files-discover" || action === "docs";
|
|
254
|
-
const scalarToArrayFields = SCALAR_ANNOTATION_SOURCE_ACTIONS.has(action)
|
|
255
|
-
? ANNOTATION_SCALAR_TO_ARRAY_FIELDS
|
|
256
|
-
: SCALAR_TO_ARRAY_FIELDS;
|
|
257
|
-
for (const [key, value] of Object.entries(options)) {
|
|
258
|
-
if (Array.isArray(value) && ARRAY_TO_CSV_FIELDS.has(key)) {
|
|
259
|
-
result[key] = value.join(",");
|
|
260
|
-
continue;
|
|
261
|
-
}
|
|
262
|
-
if (key === "note" && preserveStandaloneNote) {
|
|
263
|
-
result[key] = value;
|
|
264
|
-
continue;
|
|
265
|
-
}
|
|
266
|
-
if (typeof value === "string" && scalarToArrayFields.has(key)) {
|
|
267
|
-
result[key] = [value];
|
|
268
|
-
continue;
|
|
269
|
-
}
|
|
270
|
-
if (typeof value === "string" &&
|
|
271
|
-
promoteAddRemove &&
|
|
272
|
-
(key === "add" || key === "remove")) {
|
|
273
|
-
result[key] = [value];
|
|
274
|
-
continue;
|
|
275
|
-
}
|
|
276
|
-
result[key] = value;
|
|
277
|
-
}
|
|
278
|
-
return result;
|
|
279
|
-
}
|
|
280
|
-
/** Resolve the explicit or lifecycle-assignee author accepted by MCP actions. */
|
|
281
|
-
function resolveMcpActionAuthor(args, options, action) {
|
|
282
|
-
const author = readRuntimeString(args, "author");
|
|
283
|
-
if (author !== undefined) {
|
|
284
|
-
return author;
|
|
285
|
-
}
|
|
286
|
-
return action !== undefined && LIFECYCLE_AUTHOR_ALIAS_ACTIONS.has(action)
|
|
287
|
-
? (readRuntimeString(args, "assignee") ??
|
|
288
|
-
readRuntimeString(options, "assignee"))
|
|
289
|
-
: undefined;
|
|
290
|
-
}
|
|
291
|
-
/** Add a resolved author only when the normalized options do not provide one. */
|
|
292
|
-
function withResolvedAuthor(options, author) {
|
|
293
|
-
return author !== undefined && options.author === undefined
|
|
294
|
-
? { ...options, author }
|
|
295
|
-
: options;
|
|
296
|
-
}
|
|
297
|
-
/** Merge hoisted top-level action arguments and author aliases into options. */
|
|
298
|
-
export function optionsWithAuthor(args, action) {
|
|
299
|
-
const sourceOptions = isRuntimeRecord(args.options)
|
|
300
|
-
? args.options
|
|
301
|
-
: undefined;
|
|
302
|
-
const baseOptions = asRecordClone(args.options);
|
|
303
|
-
const hoistedTopLevel = {};
|
|
304
|
-
const hoistKey = (key) => {
|
|
305
|
-
if (baseOptions[key] !== undefined || args[key] === undefined) {
|
|
306
|
-
return;
|
|
307
|
-
}
|
|
308
|
-
hoistedTopLevel[key] = args[key];
|
|
309
|
-
};
|
|
310
|
-
for (const key of HOISTED_ACTION_OPTION_KEYS[action ?? ""] ?? []) {
|
|
311
|
-
hoistKey(key);
|
|
312
|
-
}
|
|
313
|
-
for (const key of UNIVERSAL_READ_OUTPUT_OPTION_KEYS) {
|
|
314
|
-
hoistKey(key);
|
|
315
|
-
}
|
|
316
|
-
if (action !== undefined && isMcpMutationTransportInput(args)) {
|
|
317
|
-
assertMcpAnnotationFileUnavailable(action, baseOptions);
|
|
318
|
-
}
|
|
319
|
-
const options = normalizeMcpOptionsArrays({ ...hoistedTopLevel, ...baseOptions }, action);
|
|
320
|
-
const stdinPolicySource = isMcpMutationTransportInput(args)
|
|
321
|
-
? args
|
|
322
|
-
: (sourceOptions ?? args);
|
|
323
|
-
return preserveTransportLiteralOptions(stdinPolicySource, withResolvedAuthor(options, resolveMcpActionAuthor(args, options, action)));
|
|
324
|
-
}
|
|
325
|
-
// GH-170 (pm-pfnx): the narrow pm_files/pm_docs tools spell the CLI --note flag
|
|
326
|
-
// as `addNote` (the shared `note` parameter is the array-typed create/update
|
|
327
|
-
// note seed). Translate it onto the runner's `note` option; an explicit
|
|
328
|
-
// options.note (pm_run callers) wins.
|
|
329
|
-
/** Translate the MCP-only addNote spelling onto the runner note option. */
|
|
330
|
-
export function withAddNoteOption(options) {
|
|
331
|
-
if (options.addNote === undefined) {
|
|
332
|
-
return options;
|
|
333
|
-
}
|
|
334
|
-
const next = { ...options };
|
|
335
|
-
if (next.note === undefined && typeof next.addNote === "string") {
|
|
336
|
-
next.note = next.addNote;
|
|
337
|
-
}
|
|
338
|
-
delete next.addNote;
|
|
339
|
-
return next;
|
|
340
|
-
}
|
|
341
|
-
/** Map files-discover MCP controls onto the files runner's option shape. */
|
|
342
|
-
export function withFilesDiscoveryOptions(options) {
|
|
343
|
-
const next = { ...options };
|
|
344
|
-
if (next.discoveryNote !== undefined &&
|
|
345
|
-
next.note === undefined &&
|
|
346
|
-
typeof next.discoveryNote === "string") {
|
|
347
|
-
next.note = next.discoveryNote;
|
|
348
|
-
}
|
|
349
|
-
delete next.discover;
|
|
350
|
-
delete next.discoveryNote;
|
|
351
|
-
return next;
|
|
352
|
-
}
|
|
353
|
-
/** Canonicalize one action name into lower-kebab-case tokens. */
|
|
354
|
-
export function normalizeActionName(value) {
|
|
355
|
-
const chunks = [];
|
|
356
|
-
let lastWasSeparator = true;
|
|
357
|
-
for (const character of value.trim().toLowerCase()) {
|
|
358
|
-
const isAlphaNumeric = (character >= "a" && character <= "z") ||
|
|
359
|
-
(character >= "0" && character <= "9");
|
|
360
|
-
if (isAlphaNumeric) {
|
|
361
|
-
chunks.push(character);
|
|
362
|
-
lastWasSeparator = false;
|
|
363
|
-
continue;
|
|
364
|
-
}
|
|
365
|
-
if (!lastWasSeparator) {
|
|
366
|
-
chunks.push("-");
|
|
367
|
-
lastWasSeparator = true;
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
if (chunks.at(-1) === "-") {
|
|
371
|
-
chunks.pop();
|
|
372
|
-
}
|
|
373
|
-
return chunks.join("");
|
|
374
|
-
}
|
|
375
|
-
/** Return whether an action can change workspace extension contracts. */
|
|
376
|
-
export function shouldInvalidateWorkspaceContractsCacheAfterAction(action) {
|
|
377
|
-
return !WORKSPACE_CONTRACTS_CACHE_PRESERVING_ACTIONS.has(normalizeActionName(action));
|
|
378
|
-
}
|
|
379
|
-
/** Canonicalize one space-separated command path for lookup comparisons. */
|
|
380
|
-
export function normalizeCommandPath(value) {
|
|
381
|
-
return value.trim().toLowerCase().split(/\s+/).filter(Boolean).join(" ");
|
|
382
|
-
}
|
|
383
|
-
/** Coerce an unknown payload value into a non-empty string array. */
|
|
384
|
-
export function readRuntimeStringArray(value) {
|
|
385
|
-
if (!Array.isArray(value)) {
|
|
386
|
-
return [];
|
|
387
|
-
}
|
|
388
|
-
return value
|
|
389
|
-
.map((entry) => String(entry))
|
|
390
|
-
.filter((entry) => entry.length > 0);
|
|
391
|
-
}
|
|
392
|
-
/** Merge non-reserved top-level extension arguments into the options record. */
|
|
393
|
-
export function extensionOptionsFromArgs(args, options) {
|
|
394
|
-
const reserved = new Set([
|
|
395
|
-
"action",
|
|
396
|
-
"args",
|
|
397
|
-
"author",
|
|
398
|
-
"cwd",
|
|
399
|
-
"fullChangedFields",
|
|
400
|
-
"id",
|
|
401
|
-
"options",
|
|
402
|
-
"path",
|
|
403
|
-
"query",
|
|
404
|
-
"reason",
|
|
405
|
-
"target",
|
|
406
|
-
]);
|
|
407
|
-
const passthrough = {};
|
|
408
|
-
for (const [key, value] of Object.entries(args)) {
|
|
409
|
-
if (!reserved.has(key)) {
|
|
410
|
-
passthrough[key] = value;
|
|
411
|
-
}
|
|
412
|
-
}
|
|
413
|
-
const normalizedOptions = { ...passthrough, ...options };
|
|
414
|
-
delete normalizedOptions.args;
|
|
415
|
-
return normalizedOptions;
|
|
416
|
-
}
|
|
417
|
-
/** Mutation tools (create/update/close/append/update-many) return a verbose `changed_fields` array. On the agent path we drop it to a `changed_field_count` by default for token efficiency, restoring the full array only when the caller explicitly passes the MCP-level fullChangedFields=true control. Mutation options are forwarded unchanged so runtime fields named `full` remain valid user data. */
|
|
418
|
-
export function withMutationCompaction(args, options) {
|
|
419
|
-
const runnerOptions = preserveTransportLiteralOptions(options ?? {}, {
|
|
420
|
-
...options,
|
|
421
|
-
});
|
|
422
|
-
return {
|
|
423
|
-
changedFields: args.fullChangedFields === true ? "full" : "compact",
|
|
424
|
-
idOnly: args.idOnly === true,
|
|
425
|
-
runnerOptions,
|
|
426
|
-
};
|
|
427
|
-
}
|
|
428
|
-
/** Translate flat MCP filter parameters into the shared list-option shape. */
|
|
429
|
-
export function mutationListOptions(options) {
|
|
430
|
-
return {
|
|
431
|
-
type: readRuntimeScalarString(options, "filterType"),
|
|
432
|
-
tag: readRuntimeScalarString(options, "filterTag"),
|
|
433
|
-
priority: readRuntimeScalarString(options, "filterPriority"),
|
|
434
|
-
deadlineBefore: readRuntimeScalarString(options, "filterDeadlineBefore"),
|
|
435
|
-
deadlineAfter: readRuntimeScalarString(options, "filterDeadlineAfter"),
|
|
436
|
-
updatedAfter: readRuntimeScalarString(options, "filterUpdatedAfter"),
|
|
437
|
-
updatedBefore: readRuntimeScalarString(options, "filterUpdatedBefore"),
|
|
438
|
-
createdAfter: readRuntimeScalarString(options, "filterCreatedAfter"),
|
|
439
|
-
createdBefore: readRuntimeScalarString(options, "filterCreatedBefore"),
|
|
440
|
-
ids: normalizeBulkIdsValue(options.ids),
|
|
441
|
-
assignee: readRuntimeScalarString(options, "filterAssignee"),
|
|
442
|
-
assigneeFilter: readRuntimeScalarString(options, "filterAssigneeFilter") ??
|
|
443
|
-
readRuntimeScalarString(options, "filterAssignee_filter"),
|
|
444
|
-
parent: readRuntimeScalarString(options, "filterParent"),
|
|
445
|
-
sprint: readRuntimeScalarString(options, "filterSprint"),
|
|
446
|
-
release: readRuntimeScalarString(options, "filterRelease"),
|
|
447
|
-
limit: readRuntimeScalarString(options, "limit"),
|
|
448
|
-
offset: readRuntimeScalarString(options, "offset"),
|
|
449
|
-
};
|
|
450
|
-
}
|
|
451
|
-
/** Read one graph option that accepts scalar strings or repeatable arrays. */
|
|
452
|
-
function readGraphIdListOption(value) {
|
|
453
|
-
if (typeof value === "string" && value.trim().length > 0)
|
|
454
|
-
return value;
|
|
455
|
-
if (Array.isArray(value))
|
|
456
|
-
return readRuntimeStringArray(value);
|
|
457
|
-
return undefined;
|
|
458
|
-
}
|
|
459
|
-
/** Read one graph bound that accepts integer numbers or numeric strings. */
|
|
460
|
-
function readGraphBoundOption(value) {
|
|
461
|
-
if (typeof value === "number" && Number.isFinite(value))
|
|
462
|
-
return value;
|
|
463
|
-
if (typeof value === "string" && value.trim().length > 0)
|
|
464
|
-
return value;
|
|
465
|
-
return undefined;
|
|
466
|
-
}
|
|
467
|
-
/** Build graph command options from one flat MCP parameter payload. */
|
|
468
|
-
export function graphOptionsFromFlat(options) {
|
|
469
|
-
const kind = readGraphIdListOption(options.kind);
|
|
470
|
-
const exemptIsolate = readGraphIdListOption(options.exemptIsolate);
|
|
471
|
-
const exemptIsolateType = readGraphIdListOption(options.exemptIsolateType);
|
|
472
|
-
return {
|
|
473
|
-
...(kind === undefined ? {} : { kind }),
|
|
474
|
-
maxDepth: readGraphBoundOption(options.maxDepth),
|
|
475
|
-
limit: readGraphBoundOption(options.limit),
|
|
476
|
-
after: readRuntimeString(options, "after"),
|
|
477
|
-
direction: readRuntimeString(options, "direction"),
|
|
478
|
-
maxPaths: readGraphBoundOption(options.maxPaths),
|
|
479
|
-
sample: readGraphBoundOption(options.sample),
|
|
480
|
-
...(exemptIsolate === undefined ? {} : { exemptIsolate }),
|
|
481
|
-
...(exemptIsolateType === undefined ? {} : { exemptIsolateType }),
|
|
482
|
-
saveBaseline: options.saveBaseline === true,
|
|
483
|
-
rebuild: options.rebuild === true,
|
|
484
|
-
clear: options.clear === true,
|
|
485
|
-
summary: options.summary === true,
|
|
486
|
-
...(options.full === true ? { full: true } : {}),
|
|
487
|
-
};
|
|
488
|
-
}
|
|
489
|
-
function normalizeBulkMutationListOptions(options) {
|
|
490
|
-
const normalized = normalizeListOptions(options);
|
|
491
|
-
if (options.ids !== undefined) {
|
|
492
|
-
normalized.ids = normalizeBulkIdsValue(options.ids);
|
|
493
|
-
}
|
|
494
|
-
return normalized;
|
|
495
|
-
}
|
|
496
|
-
/** Build close-many command options from one flat MCP parameter payload. */
|
|
497
|
-
export function closeManyOptionsFromFlat(options) {
|
|
498
|
-
return {
|
|
499
|
-
status: readRuntimeString(options, "filterStatus"),
|
|
500
|
-
list: isRuntimeRecord(options.list)
|
|
501
|
-
? normalizeBulkMutationListOptions(options.list)
|
|
502
|
-
: mutationListOptions(options),
|
|
503
|
-
reason: readRuntimeString(options, "reason"),
|
|
504
|
-
resolution: readRuntimeString(options, "resolution"),
|
|
505
|
-
expectedResult: readRuntimeString(options, "expectedResult") ??
|
|
506
|
-
readRuntimeString(options, "expected_result") ??
|
|
507
|
-
readRuntimeString(options, "expected"),
|
|
508
|
-
actualResult: readRuntimeString(options, "actualResult") ??
|
|
509
|
-
readRuntimeString(options, "actual_result") ??
|
|
510
|
-
readRuntimeString(options, "actual"),
|
|
511
|
-
validateClose: readRuntimeString(options, "validateClose") ??
|
|
512
|
-
readRuntimeString(options, "validate_close"),
|
|
513
|
-
author: readRuntimeString(options, "author"),
|
|
514
|
-
message: readRuntimeString(options, "message"),
|
|
515
|
-
force: options.force === true ? true : undefined,
|
|
516
|
-
dryRun: options.dryRun === true || options.dry_run === true ? true : undefined,
|
|
517
|
-
rollback: readRuntimeString(options, "rollback"),
|
|
518
|
-
checkpoint: options.checkpoint === false ||
|
|
519
|
-
options.noCheckpoint === true ||
|
|
520
|
-
options.no_checkpoint === true
|
|
521
|
-
? false
|
|
522
|
-
: undefined,
|
|
523
|
-
};
|
|
524
|
-
}
|
|
525
|
-
/** Flat update-many parameters that steer batching instead of item fields. */
|
|
526
|
-
const UPDATE_MANY_FLAT_CONTROL_KEYS = new Set([
|
|
527
|
-
"filterStatus",
|
|
528
|
-
"filterType",
|
|
529
|
-
"filterTag",
|
|
530
|
-
"filterPriority",
|
|
531
|
-
"filterDeadlineBefore",
|
|
532
|
-
"filterDeadlineAfter",
|
|
533
|
-
"filterUpdatedAfter",
|
|
534
|
-
"filterUpdatedBefore",
|
|
535
|
-
"filterCreatedAfter",
|
|
536
|
-
"filterCreatedBefore",
|
|
537
|
-
"filterAssignee",
|
|
538
|
-
"filterAssigneeFilter",
|
|
539
|
-
"filterAssignee_filter",
|
|
540
|
-
"filterParent",
|
|
541
|
-
"filterSprint",
|
|
542
|
-
"filterRelease",
|
|
543
|
-
"ids",
|
|
544
|
-
"list",
|
|
545
|
-
"update",
|
|
546
|
-
"limit",
|
|
547
|
-
"offset",
|
|
548
|
-
"dryRun",
|
|
549
|
-
"dry_run",
|
|
550
|
-
"rollback",
|
|
551
|
-
"checkpoint",
|
|
552
|
-
"noCheckpoint",
|
|
553
|
-
"no_checkpoint",
|
|
554
|
-
]);
|
|
555
|
-
/** Extract per-item update fields from one flat update-many payload. */
|
|
556
|
-
export function updateManyUpdateOptionsFromFlat(options) {
|
|
557
|
-
const update = {};
|
|
558
|
-
for (const [key, value] of Object.entries(options)) {
|
|
559
|
-
if (UPDATE_MANY_FLAT_CONTROL_KEYS.has(key)) {
|
|
560
|
-
continue;
|
|
561
|
-
}
|
|
562
|
-
update[key] = value;
|
|
563
|
-
}
|
|
564
|
-
return normalizeMcpUpdateOptions(update);
|
|
565
|
-
}
|
|
566
|
-
/** Normalize MCP update fields onto the CLI update option contract. */
|
|
567
|
-
export function normalizeMcpUpdateOptions(options) {
|
|
568
|
-
const normalizedInput = normalizeMcpOptionsArrays(options, "update-many");
|
|
569
|
-
for (const contract of UPDATE_COMMANDER_STRING_OPTION_CONTRACTS) {
|
|
570
|
-
for (const key of contract.keys) {
|
|
571
|
-
const value = normalizedInput[key];
|
|
572
|
-
if (typeof value === "number" && Number.isFinite(value)) {
|
|
573
|
-
normalizedInput[key] = String(value);
|
|
574
|
-
}
|
|
575
|
-
}
|
|
576
|
-
}
|
|
577
|
-
return normalizeUpdateOptions(normalizedInput);
|
|
578
|
-
}
|
|
579
|
-
/** Build update-many command options from one flat MCP parameter payload. */
|
|
580
|
-
export function updateManyOptionsFromFlat(options) {
|
|
581
|
-
if (isRuntimeRecord(options.list) || isRuntimeRecord(options.update)) {
|
|
582
|
-
const updateSource = isRuntimeRecord(options.update)
|
|
583
|
-
? options.update
|
|
584
|
-
: updateManyUpdateOptionsFromFlat(options);
|
|
585
|
-
const normalizedUpdate = preserveTransportLiteralOptions(options, normalizeMcpUpdateOptions(updateSource));
|
|
586
|
-
return {
|
|
587
|
-
status: readRuntimeScalarString(options, "filterStatus"),
|
|
588
|
-
list: isRuntimeRecord(options.list)
|
|
589
|
-
? normalizeBulkMutationListOptions(options.list)
|
|
590
|
-
: mutationListOptions(options),
|
|
591
|
-
update: overlayMutationStdinTokenPolicy(updateSource, normalizedUpdate),
|
|
592
|
-
dryRun: options.dryRun === true || options.dry_run === true ? true : undefined,
|
|
593
|
-
rollback: readRuntimeString(options, "rollback"),
|
|
594
|
-
checkpoint: options.checkpoint === false ||
|
|
595
|
-
options.noCheckpoint === true ||
|
|
596
|
-
options.no_checkpoint === true
|
|
597
|
-
? false
|
|
598
|
-
: undefined,
|
|
599
|
-
};
|
|
600
|
-
}
|
|
601
|
-
return {
|
|
602
|
-
status: readRuntimeScalarString(options, "filterStatus"),
|
|
603
|
-
list: mutationListOptions(options),
|
|
604
|
-
update: preserveTransportLiteralOptions(options, updateManyUpdateOptionsFromFlat(options)),
|
|
605
|
-
dryRun: options.dryRun === true || options.dry_run === true ? true : undefined,
|
|
606
|
-
rollback: readRuntimeString(options, "rollback"),
|
|
607
|
-
checkpoint: options.checkpoint === false ||
|
|
608
|
-
options.noCheckpoint === true ||
|
|
609
|
-
options.no_checkpoint === true
|
|
610
|
-
? false
|
|
611
|
-
: undefined,
|
|
612
|
-
};
|
|
613
|
-
}
|
|
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]="6264e2f2-1b58-513b-b32d-54a89919de5d")}catch(e2){}})();import{EXIT_CODE}from"../core/shared/constants.js";import{PmCliError}from"../core/shared/errors.js";import{asRecordClone}from"../core/shared/primitives.js";import{normalizeListOptions,normalizeUpdateOptions}from"./cli-contracts/registration-helpers.js";import{UPDATE_COMMANDER_STRING_OPTION_CONTRACTS}from"./cli-contracts/commander-mutation-options.js";import{normalizeBulkIdsValue}from"../core/io/bulk-ids-input.js";import{overlayMutationStdinTokenPolicy,preserveMutationStdinTokenLiterals,transferMutationStdinTokenPolicy}from"../core/item/parse.js";const MCP_MUTATION_TRANSPORT=Symbol("pm.mcp-mutation-transport");const WORKSPACE_CONTRACTS_CACHE_PRESERVING_ACTIONS=new Set(["activity","aggregate","context","contracts","deps","files-discover","files-lookup","get","graph","health","history","list","next","search","stats","telemetry","validate"]);function markMcpMutationTransportInput(input){Object.defineProperty(input,MCP_MUTATION_TRANSPORT,{value:true,enumerable:true});return input}function isMcpMutationTransportInput(input){return MCP_MUTATION_TRANSPORT in input}function preserveTransportLiteralOptions(source,options){return isMcpMutationTransportInput(source)?preserveMutationStdinTokenLiterals(options):transferMutationStdinTokenPolicy(source,options)}function mutationOptionsWithOverrides(source,overrides,omittedKeys=[]){const options=transferMutationStdinTokenPolicy(source,{...source,...overrides});for(const key of omittedKeys)Reflect.deleteProperty(options,key);return options}function readRuntimeString(args,key){const value=args[key];return typeof value==="string"&&value.trim().length>0?value:void 0}function readRuntimeScalarString(args,key){const value=args[key];if(typeof value==="string"){return value.trim().length>0?value:void 0}return typeof value==="number"&&Number.isFinite(value)?String(value):void 0}function readRuntimeScalarStringAllowBlank(args,key){const value=args[key];if(typeof value==="string"){return value}return typeof value==="number"&&Number.isFinite(value)?String(value):void 0}function isRuntimeRecord(value){return value!==null&&typeof value==="object"&&!Array.isArray(value)}function parseRuntimeInteger(value,label){if(typeof value==="number"){if(!Number.isInteger(value)){throw new PmCliError(`${label} must be a finite integer.`,EXIT_CODE.USAGE)}return value}if(typeof value==="string"&&value.trim().length>0){const parsed=Number(value);if(!Number.isInteger(parsed)){throw new PmCliError(`${label} must be a finite integer.`,EXIT_CODE.USAGE)}return parsed}return void 0}function resolveRuntimeLimit(args,options){if(typeof args.limit==="number"&&Number.isFinite(args.limit)){return args.limit}if(typeof options.limit==="number"&&Number.isFinite(options.limit)){return options.limit}return readRuntimeString(args,"limit")??readRuntimeString(options,"limit")}function actionGlobalOptions(args){const outputFormat=readRuntimeString(args,"outputFormat");return{json:true,quiet:true,author:readRuntimeString(args,"author"),path:readRuntimeString(args,"path"),noExtensions:args.noExtensions===true||args.no_extensions===true,noPager:true,outputInclude:readRuntimeString(args,"outputInclude"),outputLimit:readRuntimeScalarString(args,"outputLimit"),outputBudget:readRuntimeScalarString(args,"outputBudget"),outputSession:readRuntimeString(args,"outputSession"),outputCursor:readRuntimeString(args,"outputCursor"),outputFormat:outputFormat==="json"||outputFormat==="toon"?outputFormat:void 0}}const ARRAY_TO_CSV_FIELDS=new Set(["tags","blockedBy","blocked_by","skills","fields"]);const SCALAR_TO_ARRAY_FIELDS=new Set(["comment","note","learning","reminder","event","dep","depRemove","dep_remove","file","doc","test","unset","addGlob","add_glob","migrate","envSet","env_set","envClear","env_clear"]);const ANNOTATION_SCALAR_TO_ARRAY_FIELDS=new Set([...SCALAR_TO_ARRAY_FIELDS].filter(field=>field!=="file"));const ARRAY_ADD_REMOVE_ACTIONS=new Set(["files","files-discover","docs","test","test-all"]);const SCALAR_ANNOTATION_SOURCE_ACTIONS=new Set(["comments","notes","learnings"]);function assertMcpAnnotationFileUnavailable(action,options){if(!SCALAR_ANNOTATION_SOURCE_ACTIONS.has(action)||!Object.prototype.hasOwnProperty.call(options,"file")){return}throw new PmCliError(`MCP ${action} does not accept options.file. Pass annotation text in options.add instead.`,EXIT_CODE.USAGE,{code:"mcp_annotation_file_unavailable",required:"Pass annotation text as JSON data; MCP annotation actions cannot read server-local files."})}const LIFECYCLE_AUTHOR_ALIAS_ACTIONS=new Set(["claim","release","start-task","pause-task","close-task"]);const HOISTED_ACTION_OPTION_KEYS={list:["status","type","tag","priority","limit","offset"],search:["mode","status","type","tag","priority","limit"],create:["title","type","status","description","body","priority","tags","parent","createMode","create_mode","allowMissingParent","allowDuplicate"],update:["parent","allowMissingParent","completedAt"],copy:["allowDuplicate"],close:["duplicateOf","completedAt"],comments:["ifAbsent"],notes:["ifAbsent"],learnings:["ifAbsent"],extension:["dryRun"],package:["dryRun"],install:["dryRun"],upgrade:["scope","dryRun","cliOnly","packagesOnly","repair","tag","packageName"],append:["body"]};const UNIVERSAL_READ_OUTPUT_OPTION_KEYS=["outputInclude","outputLimit","outputBudget","outputFormat","outputSession","outputCursor"];function normalizeMcpOptionsArrays(options,action=""){const result={};const promoteAddRemove=ARRAY_ADD_REMOVE_ACTIONS.has(action);const preserveStandaloneNote=action==="files"||action==="files-discover"||action==="docs";const scalarToArrayFields=SCALAR_ANNOTATION_SOURCE_ACTIONS.has(action)?ANNOTATION_SCALAR_TO_ARRAY_FIELDS:SCALAR_TO_ARRAY_FIELDS;for(const[key,value]of Object.entries(options)){if(Array.isArray(value)&&ARRAY_TO_CSV_FIELDS.has(key)){result[key]=value.join(",");continue}if(key==="note"&&preserveStandaloneNote){result[key]=value;continue}if(typeof value==="string"&&scalarToArrayFields.has(key)){result[key]=[value];continue}if(typeof value==="string"&&promoteAddRemove&&(key==="add"||key==="remove")){result[key]=[value];continue}result[key]=value}return result}function resolveMcpActionAuthor(args,options,action){const author=readRuntimeString(args,"author");if(author!==void 0){return author}return action!==void 0&&LIFECYCLE_AUTHOR_ALIAS_ACTIONS.has(action)?readRuntimeString(args,"assignee")??readRuntimeString(options,"assignee"):void 0}function withResolvedAuthor(options,author){return author!==void 0&&options.author===void 0?{...options,author}:options}function optionsWithAuthor(args,action){const sourceOptions=isRuntimeRecord(args.options)?args.options:void 0;const baseOptions=asRecordClone(args.options);const hoistedTopLevel={};const hoistKey=key=>{if(baseOptions[key]!==void 0||args[key]===void 0){return}hoistedTopLevel[key]=args[key]};for(const key of HOISTED_ACTION_OPTION_KEYS[action??""]??[]){hoistKey(key)}for(const key of UNIVERSAL_READ_OUTPUT_OPTION_KEYS){hoistKey(key)}if(action!==void 0&&isMcpMutationTransportInput(args)){assertMcpAnnotationFileUnavailable(action,baseOptions)}const options=normalizeMcpOptionsArrays({...hoistedTopLevel,...baseOptions},action);const stdinPolicySource=isMcpMutationTransportInput(args)?args:sourceOptions??args;return preserveTransportLiteralOptions(stdinPolicySource,withResolvedAuthor(options,resolveMcpActionAuthor(args,options,action)))}function withAddNoteOption(options){if(options.addNote===void 0){return options}const next={...options};if(next.note===void 0&&typeof next.addNote==="string"){next.note=next.addNote}delete next.addNote;return next}function withFilesDiscoveryOptions(options){const next={...options};if(next.discoveryNote!==void 0&&next.note===void 0&&typeof next.discoveryNote==="string"){next.note=next.discoveryNote}delete next.discover;delete next.discoveryNote;return next}function normalizeActionName(value){const chunks=[];let lastWasSeparator=true;for(const character of value.trim().toLowerCase()){const isAlphaNumeric=character>="a"&&character<="z"||character>="0"&&character<="9";if(isAlphaNumeric){chunks.push(character);lastWasSeparator=false;continue}if(!lastWasSeparator){chunks.push("-");lastWasSeparator=true}}if(chunks.at(-1)==="-"){chunks.pop()}return chunks.join("")}function shouldInvalidateWorkspaceContractsCacheAfterAction(action){return!WORKSPACE_CONTRACTS_CACHE_PRESERVING_ACTIONS.has(normalizeActionName(action))}function normalizeCommandPath(value){return value.trim().toLowerCase().split(/\s+/).filter(Boolean).join(" ")}function readRuntimeStringArray(value){if(!Array.isArray(value)){return[]}return value.map(entry=>String(entry)).filter(entry=>entry.length>0)}function extensionOptionsFromArgs(args,options){const reserved=new Set(["action","args","author","cwd","fullChangedFields","id","options","path","query","reason","target"]);const passthrough={};for(const[key,value]of Object.entries(args)){if(!reserved.has(key)){passthrough[key]=value}}const normalizedOptions={...passthrough,...options};delete normalizedOptions.args;return normalizedOptions}function withMutationCompaction(args,options){const runnerOptions=preserveTransportLiteralOptions(options??{},{...options});return{changedFields:args.fullChangedFields===true?"full":"compact",idOnly:args.idOnly===true,runnerOptions}}function mutationListOptions(options){return{type:readRuntimeScalarString(options,"filterType"),tag:readRuntimeScalarString(options,"filterTag"),priority:readRuntimeScalarString(options,"filterPriority"),deadlineBefore:readRuntimeScalarString(options,"filterDeadlineBefore"),deadlineAfter:readRuntimeScalarString(options,"filterDeadlineAfter"),updatedAfter:readRuntimeScalarString(options,"filterUpdatedAfter"),updatedBefore:readRuntimeScalarString(options,"filterUpdatedBefore"),createdAfter:readRuntimeScalarString(options,"filterCreatedAfter"),createdBefore:readRuntimeScalarString(options,"filterCreatedBefore"),ids:normalizeBulkIdsValue(options.ids),assignee:readRuntimeScalarString(options,"filterAssignee"),assigneeFilter:readRuntimeScalarString(options,"filterAssigneeFilter")??readRuntimeScalarString(options,"filterAssignee_filter"),parent:readRuntimeScalarString(options,"filterParent"),sprint:readRuntimeScalarString(options,"filterSprint"),release:readRuntimeScalarString(options,"filterRelease"),limit:readRuntimeScalarString(options,"limit"),offset:readRuntimeScalarString(options,"offset")}}function readGraphIdListOption(value){if(typeof value==="string"&&value.trim().length>0)return value;if(Array.isArray(value))return readRuntimeStringArray(value);return void 0}function readGraphBoundOption(value){if(typeof value==="number"&&Number.isFinite(value))return value;if(typeof value==="string"&&value.trim().length>0)return value;return void 0}function graphOptionsFromFlat(options){const kind=readGraphIdListOption(options.kind);const exemptIsolate=readGraphIdListOption(options.exemptIsolate);const exemptIsolateType=readGraphIdListOption(options.exemptIsolateType);return{...kind===void 0?{}:{kind},maxDepth:readGraphBoundOption(options.maxDepth),limit:readGraphBoundOption(options.limit),after:readRuntimeString(options,"after"),direction:readRuntimeString(options,"direction"),maxPaths:readGraphBoundOption(options.maxPaths),sample:readGraphBoundOption(options.sample),...exemptIsolate===void 0?{}:{exemptIsolate},...exemptIsolateType===void 0?{}:{exemptIsolateType},saveBaseline:options.saveBaseline===true,rebuild:options.rebuild===true,clear:options.clear===true,summary:options.summary===true,...options.full===true?{full:true}:{}}}function normalizeBulkMutationListOptions(options){const normalized=normalizeListOptions(options);if(options.ids!==void 0){normalized.ids=normalizeBulkIdsValue(options.ids)}return normalized}function closeManyOptionsFromFlat(options){return{status:readRuntimeString(options,"filterStatus"),list:isRuntimeRecord(options.list)?normalizeBulkMutationListOptions(options.list):mutationListOptions(options),reason:readRuntimeString(options,"reason"),resolution:readRuntimeString(options,"resolution"),expectedResult:readRuntimeString(options,"expectedResult")??readRuntimeString(options,"expected_result")??readRuntimeString(options,"expected"),actualResult:readRuntimeString(options,"actualResult")??readRuntimeString(options,"actual_result")??readRuntimeString(options,"actual"),validateClose:readRuntimeString(options,"validateClose")??readRuntimeString(options,"validate_close"),author:readRuntimeString(options,"author"),message:readRuntimeString(options,"message"),force:options.force===true?true:void 0,dryRun:options.dryRun===true||options.dry_run===true?true:void 0,rollback:readRuntimeString(options,"rollback"),checkpoint:options.checkpoint===false||options.noCheckpoint===true||options.no_checkpoint===true?false:void 0}}const UPDATE_MANY_FLAT_CONTROL_KEYS=new Set(["filterStatus","filterType","filterTag","filterPriority","filterDeadlineBefore","filterDeadlineAfter","filterUpdatedAfter","filterUpdatedBefore","filterCreatedAfter","filterCreatedBefore","filterAssignee","filterAssigneeFilter","filterAssignee_filter","filterParent","filterSprint","filterRelease","ids","list","update","limit","offset","dryRun","dry_run","rollback","checkpoint","noCheckpoint","no_checkpoint"]);function updateManyUpdateOptionsFromFlat(options){const update={};for(const[key,value]of Object.entries(options)){if(UPDATE_MANY_FLAT_CONTROL_KEYS.has(key)){continue}update[key]=value}return normalizeMcpUpdateOptions(update)}function normalizeMcpUpdateOptions(options){const normalizedInput=normalizeMcpOptionsArrays(options,"update-many");for(const contract of UPDATE_COMMANDER_STRING_OPTION_CONTRACTS){for(const key of contract.keys){const value=normalizedInput[key];if(typeof value==="number"&&Number.isFinite(value)){normalizedInput[key]=String(value)}}}return normalizeUpdateOptions(normalizedInput)}function updateManyOptionsFromFlat(options){if(isRuntimeRecord(options.list)||isRuntimeRecord(options.update)){const updateSource=isRuntimeRecord(options.update)?options.update:updateManyUpdateOptionsFromFlat(options);const normalizedUpdate=preserveTransportLiteralOptions(options,normalizeMcpUpdateOptions(updateSource));return{status:readRuntimeScalarString(options,"filterStatus"),list:isRuntimeRecord(options.list)?normalizeBulkMutationListOptions(options.list):mutationListOptions(options),update:overlayMutationStdinTokenPolicy(updateSource,normalizedUpdate),dryRun:options.dryRun===true||options.dry_run===true?true:void 0,rollback:readRuntimeString(options,"rollback"),checkpoint:options.checkpoint===false||options.noCheckpoint===true||options.no_checkpoint===true?false:void 0}}return{status:readRuntimeScalarString(options,"filterStatus"),list:mutationListOptions(options),update:preserveTransportLiteralOptions(options,updateManyUpdateOptionsFromFlat(options)),dryRun:options.dryRun===true||options.dry_run===true?true:void 0,rollback:readRuntimeString(options,"rollback"),checkpoint:options.checkpoint===false||options.noCheckpoint===true||options.no_checkpoint===true?false:void 0}}export{actionGlobalOptions,closeManyOptionsFromFlat,extensionOptionsFromArgs,graphOptionsFromFlat,isRuntimeRecord,markMcpMutationTransportInput,mutationListOptions,mutationOptionsWithOverrides,normalizeActionName,normalizeCommandPath,normalizeMcpOptionsArrays,normalizeMcpUpdateOptions,optionsWithAuthor,parseRuntimeInteger,readRuntimeScalarString,readRuntimeScalarStringAllowBlank,readRuntimeString,readRuntimeStringArray,resolveRuntimeLimit,shouldInvalidateWorkspaceContractsCacheAfterAction,updateManyOptionsFromFlat,updateManyUpdateOptionsFromFlat,withAddNoteOption,withFilesDiscoveryOptions,withMutationCompaction};
|
|
614
2
|
//# sourceMappingURL=runtime-input.js.map
|
|
615
|
-
//# debugId=d42d5fb1-eebc-5549-ae88-dc923d9d3696
|