@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,50 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* @module core/schema/runtime-field-filters
|
|
3
|
-
*
|
|
4
|
-
* Resolves configurable schema, fields, statuses, and workflows for Runtime Field Filters.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
!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]="43a56374-808c-5fa6-bd6c-5d93175df0d2")}catch(e){}}();
|
|
8
|
-
import { coerceRuntimeFieldValue, readRuntimeFieldOptionValue, } from "./runtime-field-values.js";
|
|
9
|
-
import { stableValueEquals } from "../shared/serialization.js";
|
|
10
|
-
function valuesEqual(left, right) {
|
|
11
|
-
return stableValueEquals(left, right);
|
|
12
|
-
}
|
|
13
|
-
/** Implements collect runtime filter values for the public runtime surface of this module. */
|
|
14
|
-
export function collectRuntimeFilterValues(options, fieldRegistry, command) {
|
|
15
|
-
const filters = {};
|
|
16
|
-
for (const definition of fieldRegistry.command_to_fields.get(command) ?? []) {
|
|
17
|
-
const rawValue = readRuntimeFieldOptionValue(options, definition);
|
|
18
|
-
if (rawValue === undefined) {
|
|
19
|
-
continue;
|
|
20
|
-
}
|
|
21
|
-
filters[definition.metadata_key] = coerceRuntimeFieldValue(definition, rawValue);
|
|
22
|
-
}
|
|
23
|
-
return filters;
|
|
24
|
-
}
|
|
25
|
-
/** Implements matches runtime filters for the public runtime surface of this module. */
|
|
26
|
-
export function matchesRuntimeFilters(item, filters) {
|
|
27
|
-
for (const [fieldKey, expectedValue] of Object.entries(filters)) {
|
|
28
|
-
const actualValue = item[fieldKey];
|
|
29
|
-
if (Array.isArray(expectedValue)) {
|
|
30
|
-
if (Array.isArray(actualValue)) {
|
|
31
|
-
const normalizedActual = actualValue.map((value) => String(value));
|
|
32
|
-
const normalizedExpected = expectedValue.map((value) => String(value));
|
|
33
|
-
if (!normalizedExpected.every((value) => normalizedActual.includes(value))) {
|
|
34
|
-
return false;
|
|
35
|
-
}
|
|
36
|
-
continue;
|
|
37
|
-
}
|
|
38
|
-
if (!valuesEqual(actualValue, expectedValue[expectedValue.length - 1])) {
|
|
39
|
-
return false;
|
|
40
|
-
}
|
|
41
|
-
continue;
|
|
42
|
-
}
|
|
43
|
-
if (!valuesEqual(actualValue, expectedValue)) {
|
|
44
|
-
return false;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return true;
|
|
48
|
-
}
|
|
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]="7778b388-1b28-53e7-a06e-ef6441b0ed68")}catch(e2){}})();import{coerceRuntimeFieldValue,readRuntimeFieldOptionValue}from"./runtime-field-values.js";import{stableValueEquals}from"../shared/serialization.js";function valuesEqual(left,right){return stableValueEquals(left,right)}function collectRuntimeFilterValues(options,fieldRegistry,command){const filters={};for(const definition of fieldRegistry.command_to_fields.get(command)??[]){const rawValue=readRuntimeFieldOptionValue(options,definition);if(rawValue===void 0){continue}filters[definition.metadata_key]=coerceRuntimeFieldValue(definition,rawValue)}return filters}function matchesRuntimeFilters(item,filters){for(const[fieldKey,expectedValue]of Object.entries(filters)){const actualValue=item[fieldKey];if(Array.isArray(expectedValue)){if(Array.isArray(actualValue)){const normalizedActual=actualValue.map(value=>String(value));const normalizedExpected=expectedValue.map(value=>String(value));if(!normalizedExpected.every(value=>normalizedActual.includes(value))){return false}continue}if(!valuesEqual(actualValue,expectedValue[expectedValue.length-1])){return false}continue}if(!valuesEqual(actualValue,expectedValue)){return false}}return true}export{collectRuntimeFilterValues,matchesRuntimeFilters};
|
|
49
2
|
//# sourceMappingURL=runtime-field-filters.js.map
|
|
50
|
-
//# debugId=43a56374-808c-5fa6-bd6c-5d93175df0d2
|
|
@@ -1,314 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* @module core/schema/runtime-field-values
|
|
3
|
-
*
|
|
4
|
-
* Resolves configurable schema, fields, statuses, and workflows for Runtime Field Values.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
!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]="91a3969e-59b3-506e-9349-ca08e73a1228")}catch(e){}}();
|
|
8
|
-
import { EXIT_CODE } from "../shared/constants.js";
|
|
9
|
-
import { PmCliError } from "../shared/errors.js";
|
|
10
|
-
import { stableStringify } from "../shared/serialization.js";
|
|
11
|
-
import { isRfc3339DateTime } from "../shared/time.js";
|
|
12
|
-
import { runtimeFieldOptionTarget, } from "./runtime-schema.js";
|
|
13
|
-
const MAX_VALUE_SCHEMA_DEPTH = 16;
|
|
14
|
-
function toCamelToken(value) {
|
|
15
|
-
const segments = value
|
|
16
|
-
.trim()
|
|
17
|
-
.replaceAll(/[^A-Za-z0-9]+/g, " ")
|
|
18
|
-
.split(/\s+/)
|
|
19
|
-
.filter((segment) => segment.length > 0)
|
|
20
|
-
.map((segment) => segment.toLowerCase());
|
|
21
|
-
if (segments.length === 0) {
|
|
22
|
-
return value;
|
|
23
|
-
}
|
|
24
|
-
const [first, ...rest] = segments;
|
|
25
|
-
return `${first}${rest.map((segment) => `${segment.slice(0, 1).toUpperCase()}${segment.slice(1)}`).join("")}`;
|
|
26
|
-
}
|
|
27
|
-
function resolveCandidateOptionKeys(definition) {
|
|
28
|
-
return [
|
|
29
|
-
...new Set([
|
|
30
|
-
runtimeFieldOptionTarget(definition),
|
|
31
|
-
toCamelToken(definition.key),
|
|
32
|
-
toCamelToken(definition.cli_flag),
|
|
33
|
-
...definition.cli_aliases.map((alias) => toCamelToken(alias)),
|
|
34
|
-
]),
|
|
35
|
-
];
|
|
36
|
-
}
|
|
37
|
-
/** Implements read runtime field option value for the public runtime surface of this module. */
|
|
38
|
-
export function readRuntimeFieldOptionValue(options, definition) {
|
|
39
|
-
for (const candidateKey of resolveCandidateOptionKeys(definition)) {
|
|
40
|
-
if (!Object.hasOwn(options, candidateKey)) {
|
|
41
|
-
continue;
|
|
42
|
-
}
|
|
43
|
-
const value = options[candidateKey];
|
|
44
|
-
if (value !== undefined) {
|
|
45
|
-
return value;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return undefined;
|
|
49
|
-
}
|
|
50
|
-
function normalizeStringArrayValue(value) {
|
|
51
|
-
if (Array.isArray(value)) {
|
|
52
|
-
return value
|
|
53
|
-
.flatMap((entry) => normalizeStringArrayValue(entry))
|
|
54
|
-
.map((entry) => entry.trim())
|
|
55
|
-
.filter((entry) => entry.length > 0);
|
|
56
|
-
}
|
|
57
|
-
if (typeof value === "string") {
|
|
58
|
-
return value
|
|
59
|
-
.split(/[,\n|]/)
|
|
60
|
-
.map((entry) => entry.trim())
|
|
61
|
-
.filter((entry) => entry.length > 0);
|
|
62
|
-
}
|
|
63
|
-
if (value === undefined || value === null) {
|
|
64
|
-
return [];
|
|
65
|
-
}
|
|
66
|
-
return [String(value).trim()].filter((entry) => entry.length > 0);
|
|
67
|
-
}
|
|
68
|
-
function parseBooleanValue(raw, label) {
|
|
69
|
-
if (typeof raw === "boolean") {
|
|
70
|
-
return raw;
|
|
71
|
-
}
|
|
72
|
-
if (typeof raw === "number") {
|
|
73
|
-
if (raw === 1) {
|
|
74
|
-
return true;
|
|
75
|
-
}
|
|
76
|
-
if (raw === 0) {
|
|
77
|
-
return false;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
if (typeof raw === "string") {
|
|
81
|
-
const normalized = raw.trim().toLowerCase();
|
|
82
|
-
if (normalized === "true" || normalized === "1" || normalized === "yes") {
|
|
83
|
-
return true;
|
|
84
|
-
}
|
|
85
|
-
if (normalized === "false" || normalized === "0" || normalized === "no") {
|
|
86
|
-
return false;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
throw new PmCliError(`${label} must be one of true|false|1|0|yes|no`, EXIT_CODE.USAGE);
|
|
90
|
-
}
|
|
91
|
-
function parseNumberValue(raw, label) {
|
|
92
|
-
if (typeof raw === "number" && Number.isFinite(raw)) {
|
|
93
|
-
return raw;
|
|
94
|
-
}
|
|
95
|
-
const candidate = typeof raw === "string" ? raw.trim() : String(raw);
|
|
96
|
-
const parsed = Number(candidate);
|
|
97
|
-
if (!Number.isFinite(parsed)) {
|
|
98
|
-
throw new PmCliError(`${label} must be a number`, EXIT_CODE.USAGE);
|
|
99
|
-
}
|
|
100
|
-
return parsed;
|
|
101
|
-
}
|
|
102
|
-
function parseJsonContainerValue(raw, label, expectedType) {
|
|
103
|
-
const parsed = typeof raw === "string"
|
|
104
|
-
? (() => {
|
|
105
|
-
try {
|
|
106
|
-
return JSON.parse(raw);
|
|
107
|
-
}
|
|
108
|
-
catch {
|
|
109
|
-
return undefined;
|
|
110
|
-
}
|
|
111
|
-
})()
|
|
112
|
-
: raw;
|
|
113
|
-
if ((expectedType === "array" && Array.isArray(parsed)) ||
|
|
114
|
-
(expectedType === "object" &&
|
|
115
|
-
typeof parsed === "object" &&
|
|
116
|
-
parsed !== null &&
|
|
117
|
-
!Array.isArray(parsed))) {
|
|
118
|
-
return parsed;
|
|
119
|
-
}
|
|
120
|
-
throw new PmCliError(`${label} must be valid JSON ${expectedType}`, EXIT_CODE.USAGE);
|
|
121
|
-
}
|
|
122
|
-
function valueMatchesSchemaType(value, type) {
|
|
123
|
-
if (type === undefined)
|
|
124
|
-
return true;
|
|
125
|
-
if (type === "array")
|
|
126
|
-
return Array.isArray(value);
|
|
127
|
-
if (type === "object") {
|
|
128
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
129
|
-
}
|
|
130
|
-
return typeof value === type;
|
|
131
|
-
}
|
|
132
|
-
function runtimeFieldPrimitiveSchemaError(value, schema, path) {
|
|
133
|
-
if (schema.const !== undefined &&
|
|
134
|
-
stableStringify(value) !== stableStringify(schema.const)) {
|
|
135
|
-
return `${path} must equal ${stableStringify(schema.const)}`;
|
|
136
|
-
}
|
|
137
|
-
if (schema.enum !== undefined &&
|
|
138
|
-
!schema.enum.some((candidate) => stableStringify(candidate) === stableStringify(value))) {
|
|
139
|
-
return `${path} must be one of ${schema.enum.map((entry) => stableStringify(entry)).join("|")}`;
|
|
140
|
-
}
|
|
141
|
-
if (!valueMatchesSchemaType(value, schema.type)) {
|
|
142
|
-
return `${path} must match configured type ${String(schema.type)}`;
|
|
143
|
-
}
|
|
144
|
-
if (typeof value === "string") {
|
|
145
|
-
if (schema.min_length !== undefined && value.length < schema.min_length) {
|
|
146
|
-
return `${path} must contain at least ${schema.min_length} characters`;
|
|
147
|
-
}
|
|
148
|
-
if (schema.format === "date-time" && !isRfc3339DateTime(value)) {
|
|
149
|
-
return `${path} must be an RFC 3339 date-time`;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
return undefined;
|
|
153
|
-
}
|
|
154
|
-
function runtimeFieldArraySchemaError(value, schema, path, depth) {
|
|
155
|
-
if (!Array.isArray(value))
|
|
156
|
-
return undefined;
|
|
157
|
-
if (schema.min_items !== undefined && value.length < schema.min_items) {
|
|
158
|
-
return `${path} must contain at least ${schema.min_items} items`;
|
|
159
|
-
}
|
|
160
|
-
if (!schema.items)
|
|
161
|
-
return undefined;
|
|
162
|
-
for (const [index, entry] of value.entries()) {
|
|
163
|
-
const error = runtimeFieldSchemaError(entry, schema.items, `${path}[${index}]`, depth + 1);
|
|
164
|
-
if (error)
|
|
165
|
-
return error;
|
|
166
|
-
}
|
|
167
|
-
return undefined;
|
|
168
|
-
}
|
|
169
|
-
function runtimeFieldObjectSchemaError(value, schema, path, depth) {
|
|
170
|
-
if (typeof value !== "object" || value === null || Array.isArray(value))
|
|
171
|
-
return undefined;
|
|
172
|
-
const record = value;
|
|
173
|
-
for (const key of schema.required ?? []) {
|
|
174
|
-
if (!Object.hasOwn(record, key))
|
|
175
|
-
return `${path}.${key} is required`;
|
|
176
|
-
}
|
|
177
|
-
for (const [key, entry] of Object.entries(record)) {
|
|
178
|
-
const propertySchema = schema.properties?.[key];
|
|
179
|
-
if (!propertySchema) {
|
|
180
|
-
if (schema.additional_properties === false)
|
|
181
|
-
return `${path}.${key} is not allowed`;
|
|
182
|
-
continue;
|
|
183
|
-
}
|
|
184
|
-
const error = runtimeFieldSchemaError(entry, propertySchema, `${path}.${key}`, depth + 1);
|
|
185
|
-
if (error)
|
|
186
|
-
return error;
|
|
187
|
-
}
|
|
188
|
-
return undefined;
|
|
189
|
-
}
|
|
190
|
-
/** Return the first semantic schema mismatch without mutating the input value. */
|
|
191
|
-
function runtimeFieldSchemaError(value, schema, path, depth = 0) {
|
|
192
|
-
if (depth > MAX_VALUE_SCHEMA_DEPTH)
|
|
193
|
-
return `${path} value schema exceeds maximum depth`;
|
|
194
|
-
const directError = runtimeFieldPrimitiveSchemaError(value, schema, path);
|
|
195
|
-
if (directError)
|
|
196
|
-
return directError;
|
|
197
|
-
const arrayError = runtimeFieldArraySchemaError(value, schema, path, depth);
|
|
198
|
-
if (arrayError)
|
|
199
|
-
return arrayError;
|
|
200
|
-
const objectError = runtimeFieldObjectSchemaError(value, schema, path, depth);
|
|
201
|
-
if (objectError)
|
|
202
|
-
return objectError;
|
|
203
|
-
if (!schema.one_of)
|
|
204
|
-
return undefined;
|
|
205
|
-
let matches = 0;
|
|
206
|
-
for (const candidate of schema.one_of) {
|
|
207
|
-
if (runtimeFieldSchemaError(value, candidate, path, depth + 1) === undefined) {
|
|
208
|
-
matches += 1;
|
|
209
|
-
if (matches > 1)
|
|
210
|
-
break;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
return matches === 1
|
|
214
|
-
? undefined
|
|
215
|
-
: `${path} must match exactly one configured schema variant`;
|
|
216
|
-
}
|
|
217
|
-
function validateRuntimeFieldValue(definition, value, label) {
|
|
218
|
-
if (!definition.value_schema || value === undefined)
|
|
219
|
-
return value;
|
|
220
|
-
const error = runtimeFieldSchemaError(value, definition.value_schema, label);
|
|
221
|
-
if (error)
|
|
222
|
-
throw new PmCliError(error, EXIT_CODE.USAGE);
|
|
223
|
-
return value;
|
|
224
|
-
}
|
|
225
|
-
/** Implements coerce runtime field value for the public runtime surface of this module. */
|
|
226
|
-
export function coerceRuntimeFieldValue(definition, rawValue, labelOverride) {
|
|
227
|
-
const label = labelOverride ?? `--${definition.cli_flag}`;
|
|
228
|
-
if (definition.type === "array" || definition.type === "object") {
|
|
229
|
-
const containerRaw = Array.isArray(rawValue)
|
|
230
|
-
? rawValue[rawValue.length - 1]
|
|
231
|
-
: rawValue;
|
|
232
|
-
if (containerRaw === undefined) {
|
|
233
|
-
return undefined;
|
|
234
|
-
}
|
|
235
|
-
return validateRuntimeFieldValue(definition, parseJsonContainerValue(containerRaw, label, definition.type), label);
|
|
236
|
-
}
|
|
237
|
-
if (definition.repeatable || definition.type === "string_array") {
|
|
238
|
-
const values = normalizeStringArrayValue(rawValue);
|
|
239
|
-
if (definition.type === "number") {
|
|
240
|
-
return validateRuntimeFieldValue(definition, values.map((value) => parseNumberValue(value, label)), label);
|
|
241
|
-
}
|
|
242
|
-
if (definition.type === "boolean") {
|
|
243
|
-
return validateRuntimeFieldValue(definition, values.map((value) => parseBooleanValue(value, label)), label);
|
|
244
|
-
}
|
|
245
|
-
return validateRuntimeFieldValue(definition, values, label);
|
|
246
|
-
}
|
|
247
|
-
const scalarRaw = Array.isArray(rawValue)
|
|
248
|
-
? rawValue[rawValue.length - 1]
|
|
249
|
-
: rawValue;
|
|
250
|
-
if (scalarRaw === undefined) {
|
|
251
|
-
return undefined;
|
|
252
|
-
}
|
|
253
|
-
if (definition.type === "number") {
|
|
254
|
-
return validateRuntimeFieldValue(definition, parseNumberValue(scalarRaw, label), label);
|
|
255
|
-
}
|
|
256
|
-
if (definition.type === "boolean") {
|
|
257
|
-
return validateRuntimeFieldValue(definition, parseBooleanValue(scalarRaw, label), label);
|
|
258
|
-
}
|
|
259
|
-
return validateRuntimeFieldValue(definition, typeof scalarRaw === "string" ? scalarRaw : String(scalarRaw), label);
|
|
260
|
-
}
|
|
261
|
-
function shouldRequireFieldOnCreate(definition, itemTypeName) {
|
|
262
|
-
if (!definition.required && !definition.required_on_create) {
|
|
263
|
-
return false;
|
|
264
|
-
}
|
|
265
|
-
if (definition.required_types.length === 0) {
|
|
266
|
-
return true;
|
|
267
|
-
}
|
|
268
|
-
if (!itemTypeName) {
|
|
269
|
-
return false;
|
|
270
|
-
}
|
|
271
|
-
return definition.required_types
|
|
272
|
-
.map((value) => value.toLowerCase())
|
|
273
|
-
.includes(itemTypeName.trim().toLowerCase());
|
|
274
|
-
}
|
|
275
|
-
/** Implements collect runtime create field values for the public runtime surface of this module. */
|
|
276
|
-
export function collectRuntimeCreateFieldValues(options, fieldRegistry, itemTypeName) {
|
|
277
|
-
const values = {};
|
|
278
|
-
const missingRequiredFlags = [];
|
|
279
|
-
for (const definition of fieldRegistry.command_to_fields.get("create") ??
|
|
280
|
-
[]) {
|
|
281
|
-
const rawValue = readRuntimeFieldOptionValue(options, definition);
|
|
282
|
-
if (rawValue === undefined) {
|
|
283
|
-
if (shouldRequireFieldOnCreate(definition, itemTypeName)) {
|
|
284
|
-
missingRequiredFlags.push(`--${definition.cli_flag}`);
|
|
285
|
-
}
|
|
286
|
-
continue;
|
|
287
|
-
}
|
|
288
|
-
values[definition.metadata_key] = coerceRuntimeFieldValue(definition, rawValue);
|
|
289
|
-
}
|
|
290
|
-
return {
|
|
291
|
-
values,
|
|
292
|
-
missing_required_flags: [...new Set(missingRequiredFlags)].sort((left, right) => left.localeCompare(right)),
|
|
293
|
-
};
|
|
294
|
-
}
|
|
295
|
-
/** Implements collect runtime update field values for the public runtime surface of this module. */
|
|
296
|
-
export function collectRuntimeUpdateFieldValues(options, fieldRegistry, commands = ["update"]) {
|
|
297
|
-
const values = {};
|
|
298
|
-
const definitions = (commands ?? ["update"]).flatMap((command) => fieldRegistry.command_to_fields.get(command) ?? []);
|
|
299
|
-
const seen = new Set();
|
|
300
|
-
for (const definition of definitions) {
|
|
301
|
-
const rawValue = readRuntimeFieldOptionValue(options, definition);
|
|
302
|
-
if (rawValue === undefined) {
|
|
303
|
-
continue;
|
|
304
|
-
}
|
|
305
|
-
if (seen.has(definition.metadata_key)) {
|
|
306
|
-
continue;
|
|
307
|
-
}
|
|
308
|
-
seen.add(definition.metadata_key);
|
|
309
|
-
values[definition.metadata_key] = coerceRuntimeFieldValue(definition, rawValue);
|
|
310
|
-
}
|
|
311
|
-
return values;
|
|
312
|
-
}
|
|
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]="42eb2987-269d-5b18-b0fe-5b4334fdb6a0")}catch(e2){}})();import{EXIT_CODE}from"../shared/constants.js";import{PmCliError}from"../shared/errors.js";import{stableStringify}from"../shared/serialization.js";import{isRfc3339DateTime}from"../shared/time.js";import{runtimeFieldOptionTarget}from"./runtime-schema.js";const MAX_VALUE_SCHEMA_DEPTH=16;function toCamelToken(value){const segments=value.trim().replaceAll(/[^A-Za-z0-9]+/g," ").split(/\s+/).filter(segment=>segment.length>0).map(segment=>segment.toLowerCase());if(segments.length===0){return value}const[first,...rest]=segments;return`${first}${rest.map(segment=>`${segment.slice(0,1).toUpperCase()}${segment.slice(1)}`).join("")}`}function resolveCandidateOptionKeys(definition){return[...new Set([runtimeFieldOptionTarget(definition),toCamelToken(definition.key),toCamelToken(definition.cli_flag),...definition.cli_aliases.map(alias=>toCamelToken(alias))])]}function readRuntimeFieldOptionValue(options,definition){for(const candidateKey of resolveCandidateOptionKeys(definition)){if(!Object.hasOwn(options,candidateKey)){continue}const value=options[candidateKey];if(value!==void 0){return value}}return void 0}function normalizeStringArrayValue(value){if(Array.isArray(value)){return value.flatMap(entry=>normalizeStringArrayValue(entry)).map(entry=>entry.trim()).filter(entry=>entry.length>0)}if(typeof value==="string"){return value.split(/[,\n|]/).map(entry=>entry.trim()).filter(entry=>entry.length>0)}if(value===void 0||value===null){return[]}return[String(value).trim()].filter(entry=>entry.length>0)}function parseBooleanValue(raw,label){if(typeof raw==="boolean"){return raw}if(typeof raw==="number"){if(raw===1){return true}if(raw===0){return false}}if(typeof raw==="string"){const normalized=raw.trim().toLowerCase();if(normalized==="true"||normalized==="1"||normalized==="yes"){return true}if(normalized==="false"||normalized==="0"||normalized==="no"){return false}}throw new PmCliError(`${label} must be one of true|false|1|0|yes|no`,EXIT_CODE.USAGE)}function parseNumberValue(raw,label){if(typeof raw==="number"&&Number.isFinite(raw)){return raw}const candidate=typeof raw==="string"?raw.trim():String(raw);const parsed=Number(candidate);if(!Number.isFinite(parsed)){throw new PmCliError(`${label} must be a number`,EXIT_CODE.USAGE)}return parsed}function parseJsonContainerValue(raw,label,expectedType){const parsed=typeof raw==="string"?(()=>{try{return JSON.parse(raw)}catch{return void 0}})():raw;if(expectedType==="array"&&Array.isArray(parsed)||expectedType==="object"&&typeof parsed==="object"&&parsed!==null&&!Array.isArray(parsed)){return parsed}throw new PmCliError(`${label} must be valid JSON ${expectedType}`,EXIT_CODE.USAGE)}function valueMatchesSchemaType(value,type){if(type===void 0)return true;if(type==="array")return Array.isArray(value);if(type==="object"){return typeof value==="object"&&value!==null&&!Array.isArray(value)}return typeof value===type}function runtimeFieldPrimitiveSchemaError(value,schema,path){if(schema.const!==void 0&&stableStringify(value)!==stableStringify(schema.const)){return`${path} must equal ${stableStringify(schema.const)}`}if(schema.enum!==void 0&&!schema.enum.some(candidate=>stableStringify(candidate)===stableStringify(value))){return`${path} must be one of ${schema.enum.map(entry=>stableStringify(entry)).join("|")}`}if(!valueMatchesSchemaType(value,schema.type)){return`${path} must match configured type ${String(schema.type)}`}if(typeof value==="string"){if(schema.min_length!==void 0&&value.length<schema.min_length){return`${path} must contain at least ${schema.min_length} characters`}if(schema.format==="date-time"&&!isRfc3339DateTime(value)){return`${path} must be an RFC 3339 date-time`}}return void 0}function runtimeFieldArraySchemaError(value,schema,path,depth){if(!Array.isArray(value))return void 0;if(schema.min_items!==void 0&&value.length<schema.min_items){return`${path} must contain at least ${schema.min_items} items`}if(!schema.items)return void 0;for(const[index,entry]of value.entries()){const error=runtimeFieldSchemaError(entry,schema.items,`${path}[${index}]`,depth+1);if(error)return error}return void 0}function runtimeFieldObjectSchemaError(value,schema,path,depth){if(typeof value!=="object"||value===null||Array.isArray(value))return void 0;const record=value;for(const key of schema.required??[]){if(!Object.hasOwn(record,key))return`${path}.${key} is required`}for(const[key,entry]of Object.entries(record)){const propertySchema=schema.properties?.[key];if(!propertySchema){if(schema.additional_properties===false)return`${path}.${key} is not allowed`;continue}const error=runtimeFieldSchemaError(entry,propertySchema,`${path}.${key}`,depth+1);if(error)return error}return void 0}function runtimeFieldSchemaError(value,schema,path,depth=0){if(depth>MAX_VALUE_SCHEMA_DEPTH)return`${path} value schema exceeds maximum depth`;const directError=runtimeFieldPrimitiveSchemaError(value,schema,path);if(directError)return directError;const arrayError=runtimeFieldArraySchemaError(value,schema,path,depth);if(arrayError)return arrayError;const objectError=runtimeFieldObjectSchemaError(value,schema,path,depth);if(objectError)return objectError;if(!schema.one_of)return void 0;let matches=0;for(const candidate of schema.one_of){if(runtimeFieldSchemaError(value,candidate,path,depth+1)===void 0){matches+=1;if(matches>1)break}}return matches===1?void 0:`${path} must match exactly one configured schema variant`}function validateRuntimeFieldValue(definition,value,label){if(!definition.value_schema||value===void 0)return value;const error=runtimeFieldSchemaError(value,definition.value_schema,label);if(error)throw new PmCliError(error,EXIT_CODE.USAGE);return value}function coerceRuntimeFieldValue(definition,rawValue,labelOverride){const label=labelOverride??`--${definition.cli_flag}`;if(definition.type==="array"||definition.type==="object"){const containerRaw=Array.isArray(rawValue)?rawValue[rawValue.length-1]:rawValue;if(containerRaw===void 0){return void 0}return validateRuntimeFieldValue(definition,parseJsonContainerValue(containerRaw,label,definition.type),label)}if(definition.repeatable||definition.type==="string_array"){const values=normalizeStringArrayValue(rawValue);if(definition.type==="number"){return validateRuntimeFieldValue(definition,values.map(value=>parseNumberValue(value,label)),label)}if(definition.type==="boolean"){return validateRuntimeFieldValue(definition,values.map(value=>parseBooleanValue(value,label)),label)}return validateRuntimeFieldValue(definition,values,label)}const scalarRaw=Array.isArray(rawValue)?rawValue[rawValue.length-1]:rawValue;if(scalarRaw===void 0){return void 0}if(definition.type==="number"){return validateRuntimeFieldValue(definition,parseNumberValue(scalarRaw,label),label)}if(definition.type==="boolean"){return validateRuntimeFieldValue(definition,parseBooleanValue(scalarRaw,label),label)}return validateRuntimeFieldValue(definition,typeof scalarRaw==="string"?scalarRaw:String(scalarRaw),label)}function shouldRequireFieldOnCreate(definition,itemTypeName){if(!definition.required&&!definition.required_on_create){return false}if(definition.required_types.length===0){return true}if(!itemTypeName){return false}return definition.required_types.map(value=>value.toLowerCase()).includes(itemTypeName.trim().toLowerCase())}function collectRuntimeCreateFieldValues(options,fieldRegistry,itemTypeName){const values={};const missingRequiredFlags=[];for(const definition of fieldRegistry.command_to_fields.get("create")??[]){const rawValue=readRuntimeFieldOptionValue(options,definition);if(rawValue===void 0){if(shouldRequireFieldOnCreate(definition,itemTypeName)){missingRequiredFlags.push(`--${definition.cli_flag}`)}continue}values[definition.metadata_key]=coerceRuntimeFieldValue(definition,rawValue)}return{values,missing_required_flags:[...new Set(missingRequiredFlags)].sort((left,right)=>left.localeCompare(right))}}function collectRuntimeUpdateFieldValues(options,fieldRegistry,commands=["update"]){const values={};const definitions=(commands??["update"]).flatMap(command=>fieldRegistry.command_to_fields.get(command)??[]);const seen=new Set;for(const definition of definitions){const rawValue=readRuntimeFieldOptionValue(options,definition);if(rawValue===void 0){continue}if(seen.has(definition.metadata_key)){continue}seen.add(definition.metadata_key);values[definition.metadata_key]=coerceRuntimeFieldValue(definition,rawValue)}return values}export{coerceRuntimeFieldValue,collectRuntimeCreateFieldValues,collectRuntimeUpdateFieldValues,readRuntimeFieldOptionValue};
|
|
313
2
|
//# sourceMappingURL=runtime-field-values.js.map
|
|
314
|
-
//# debugId=91a3969e-59b3-506e-9349-ca08e73a1228
|