@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,328 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* Implements the pm upgrade command surface and its agent-facing runtime behavior.
|
|
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]="46439d77-bb74-5f36-9383-ac3362f41b3e")}catch(e){}}();
|
|
8
|
-
import { execFile } from "node:child_process";
|
|
9
|
-
import path from "node:path";
|
|
10
|
-
import { promisify } from "node:util";
|
|
11
|
-
import { renderPmCommand } from "../command-line.js";
|
|
12
|
-
import { readManagedExtensionState, runExtension, } from "../extension.js";
|
|
13
|
-
import { resolveExtensionRoots, pathExists, EXIT_CODE, PmCliError, resolvePmRoot, resolvePmCliVersion, } from "../runtime-primitives.js";
|
|
14
|
-
const execFileAsync = promisify(execFile);
|
|
15
|
-
const DEFAULT_CLI_PACKAGE = "@unbrained/pm-cli";
|
|
16
|
-
const DEFAULT_TAG = "latest";
|
|
17
|
-
const PACKAGE_UPGRADE_RETRY_SCOPE_FLAGS = {
|
|
18
|
-
global: ["--global"],
|
|
19
|
-
project: [],
|
|
20
|
-
};
|
|
21
|
-
/** Public contract for test only, shared by SDK and presentation-layer consumers. */
|
|
22
|
-
export const _testOnly = {
|
|
23
|
-
defaultCommandRunner,
|
|
24
|
-
isLocalNpmSpec,
|
|
25
|
-
normalizeTarget,
|
|
26
|
-
packageRecordMatchesTarget,
|
|
27
|
-
resolveCliPackage,
|
|
28
|
-
resolvePackageInstallSource,
|
|
29
|
-
resolveRunnablePackageSource,
|
|
30
|
-
resolveScope,
|
|
31
|
-
resolveTag,
|
|
32
|
-
packageCommandFor,
|
|
33
|
-
summarize,
|
|
34
|
-
};
|
|
35
|
-
function resolveScope(options) {
|
|
36
|
-
const projectLike = options.project === true ||
|
|
37
|
-
options.local === true ||
|
|
38
|
-
options.scope === "project";
|
|
39
|
-
const global = options.global === true || options.scope === "global";
|
|
40
|
-
if (projectLike && global) {
|
|
41
|
-
throw new PmCliError('Options "--project/--local" and "--global" are mutually exclusive.', EXIT_CODE.USAGE);
|
|
42
|
-
}
|
|
43
|
-
return global ? "global" : "project";
|
|
44
|
-
}
|
|
45
|
-
function normalizeTarget(value) {
|
|
46
|
-
return value.trim().toLowerCase();
|
|
47
|
-
}
|
|
48
|
-
function packageRecordMatchesTarget(record, target) {
|
|
49
|
-
const normalizedTarget = normalizeTarget(target);
|
|
50
|
-
const values = [
|
|
51
|
-
record.name,
|
|
52
|
-
record.directory,
|
|
53
|
-
record.source.input,
|
|
54
|
-
record.source.location,
|
|
55
|
-
record.source.package,
|
|
56
|
-
record.source.repository,
|
|
57
|
-
record.source.owner && record.source.repo
|
|
58
|
-
? `${record.source.owner}/${record.source.repo}`
|
|
59
|
-
: undefined,
|
|
60
|
-
];
|
|
61
|
-
return values.some((value) => typeof value === "string" && normalizeTarget(value) === normalizedTarget);
|
|
62
|
-
}
|
|
63
|
-
function resolveRoots(scope, global) {
|
|
64
|
-
const pmRoot = resolvePmRoot(process.cwd(), global.path);
|
|
65
|
-
const roots = resolveExtensionRoots(pmRoot, process.cwd());
|
|
66
|
-
return {
|
|
67
|
-
selected_root: scope === "global" ? roots.global : roots.project,
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
async function defaultCommandRunner(command, args, options) {
|
|
71
|
-
try {
|
|
72
|
-
const result = await execFileAsync(command, args, {
|
|
73
|
-
cwd: options?.cwd,
|
|
74
|
-
encoding: "utf8",
|
|
75
|
-
});
|
|
76
|
-
return {
|
|
77
|
-
stdout: result.stdout,
|
|
78
|
-
stderr: result.stderr,
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
catch (error) {
|
|
82
|
-
const stderr = typeof error === "object" && error !== null && "stderr" in error
|
|
83
|
-
? String(error.stderr ?? "")
|
|
84
|
-
: "";
|
|
85
|
-
const message = stderr.trim().length > 0
|
|
86
|
-
? stderr.trim()
|
|
87
|
-
: error instanceof Error
|
|
88
|
-
? error.message
|
|
89
|
-
: String(error);
|
|
90
|
-
throw new PmCliError(`Command failed: ${command} ${args.join(" ")}\n${message}`, EXIT_CODE.GENERIC_FAILURE);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
async function readCurrentVersion() {
|
|
94
|
-
return resolvePmCliVersion(import.meta.url, ["../../.."]);
|
|
95
|
-
}
|
|
96
|
-
function resolveTag(options) {
|
|
97
|
-
return typeof options.tag === "string" && options.tag.trim().length > 0
|
|
98
|
-
? options.tag.trim()
|
|
99
|
-
: DEFAULT_TAG;
|
|
100
|
-
}
|
|
101
|
-
function resolveCliPackage(options) {
|
|
102
|
-
return typeof options.packageName === "string" &&
|
|
103
|
-
options.packageName.trim().length > 0
|
|
104
|
-
? options.packageName.trim()
|
|
105
|
-
: DEFAULT_CLI_PACKAGE;
|
|
106
|
-
}
|
|
107
|
-
async function upgradeCli(options, dryRun) {
|
|
108
|
-
const runner = options.commandRunner ?? defaultCommandRunner;
|
|
109
|
-
const packageName = resolveCliPackage(options);
|
|
110
|
-
const tag = resolveTag(options);
|
|
111
|
-
const target = `${packageName}@${tag}`;
|
|
112
|
-
const command = ["npm", "install", "-g", target];
|
|
113
|
-
if (options.repair === true) {
|
|
114
|
-
command.push("--force");
|
|
115
|
-
}
|
|
116
|
-
const beforeVersion = await readCurrentVersion();
|
|
117
|
-
const planned = {
|
|
118
|
-
requested: true,
|
|
119
|
-
status: "planned",
|
|
120
|
-
package: packageName,
|
|
121
|
-
target,
|
|
122
|
-
command,
|
|
123
|
-
before_version: beforeVersion,
|
|
124
|
-
repair: options.repair === true,
|
|
125
|
-
};
|
|
126
|
-
if (dryRun) {
|
|
127
|
-
return planned;
|
|
128
|
-
}
|
|
129
|
-
try {
|
|
130
|
-
await runner(command[0], command.slice(1));
|
|
131
|
-
const verified = await runner("pm", ["--version"]);
|
|
132
|
-
return {
|
|
133
|
-
...planned,
|
|
134
|
-
status: "updated",
|
|
135
|
-
after_version: verified.stdout.trim() || undefined,
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
catch (error) {
|
|
139
|
-
return {
|
|
140
|
-
...planned,
|
|
141
|
-
status: "failed",
|
|
142
|
-
error: error instanceof Error ? error.message : String(error),
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
function isLocalNpmSpec(spec) {
|
|
147
|
-
return (path.isAbsolute(spec) ||
|
|
148
|
-
spec.startsWith(".") ||
|
|
149
|
-
spec.startsWith("..") ||
|
|
150
|
-
spec.startsWith("file:"));
|
|
151
|
-
}
|
|
152
|
-
function resolvePackageInstallSource(source, tag) {
|
|
153
|
-
if (source.kind === "npm") {
|
|
154
|
-
const rawSpec = source.input.startsWith("npm:")
|
|
155
|
-
? source.input.slice("npm:".length).trim()
|
|
156
|
-
: source.input.trim();
|
|
157
|
-
if (!isLocalNpmSpec(rawSpec) &&
|
|
158
|
-
source.package &&
|
|
159
|
-
source.package.trim().length > 0) {
|
|
160
|
-
return `npm:${source.package.trim()}@${tag}`;
|
|
161
|
-
}
|
|
162
|
-
return source.input.startsWith("npm:")
|
|
163
|
-
? source.input
|
|
164
|
-
: `npm:${source.input}`;
|
|
165
|
-
}
|
|
166
|
-
return source.input;
|
|
167
|
-
}
|
|
168
|
-
async function resolveRunnablePackageSource(source, tag) {
|
|
169
|
-
const installSource = resolvePackageInstallSource(source, tag);
|
|
170
|
-
if (source.kind !== "local") {
|
|
171
|
-
return installSource;
|
|
172
|
-
}
|
|
173
|
-
if (await pathExists(installSource)) {
|
|
174
|
-
return installSource;
|
|
175
|
-
}
|
|
176
|
-
if (await pathExists(source.location)) {
|
|
177
|
-
return source.location;
|
|
178
|
-
}
|
|
179
|
-
return installSource;
|
|
180
|
-
}
|
|
181
|
-
function packageCommandFor(source, installSource, scope, ref) {
|
|
182
|
-
const command = [
|
|
183
|
-
"pm",
|
|
184
|
-
"package",
|
|
185
|
-
"install",
|
|
186
|
-
installSource,
|
|
187
|
-
scope === "global" ? "--global" : "--project",
|
|
188
|
-
];
|
|
189
|
-
if (source.kind === "github" && ref && ref.trim().length > 0) {
|
|
190
|
-
command.push("--ref", ref.trim());
|
|
191
|
-
}
|
|
192
|
-
return command;
|
|
193
|
-
}
|
|
194
|
-
async function readManagedRecords(scope, global) {
|
|
195
|
-
const roots = resolveRoots(scope, global);
|
|
196
|
-
const managedState = await readManagedExtensionState(roots.selected_root);
|
|
197
|
-
return managedState.state.entries.filter((entry) => entry.scope === scope);
|
|
198
|
-
}
|
|
199
|
-
async function refreshManagedRecord(scope, global, record) {
|
|
200
|
-
const records = await readManagedRecords(scope, global);
|
|
201
|
-
return (records.find((candidate) => packageRecordMatchesTarget(candidate, record.name)) ??
|
|
202
|
-
records.find((candidate) => normalizeTarget(candidate.directory) ===
|
|
203
|
-
normalizeTarget(record.directory)));
|
|
204
|
-
}
|
|
205
|
-
async function upgradePackageRecord(record, options, global, scope, dryRun) {
|
|
206
|
-
const tag = resolveTag(options);
|
|
207
|
-
const installSource = await resolveRunnablePackageSource(record.source, tag);
|
|
208
|
-
const command = packageCommandFor(record.source, installSource, scope, record.source.ref);
|
|
209
|
-
const planned = {
|
|
210
|
-
name: record.name,
|
|
211
|
-
directory: record.directory,
|
|
212
|
-
scope,
|
|
213
|
-
source: record.source,
|
|
214
|
-
status: "planned",
|
|
215
|
-
command,
|
|
216
|
-
previous_version: record.manifest_version,
|
|
217
|
-
};
|
|
218
|
-
if (dryRun) {
|
|
219
|
-
return planned;
|
|
220
|
-
}
|
|
221
|
-
try {
|
|
222
|
-
await runExtension(installSource, {
|
|
223
|
-
install: true,
|
|
224
|
-
project: scope === "project",
|
|
225
|
-
global: scope === "global",
|
|
226
|
-
ref: record.source.kind === "github" ? record.source.ref : undefined,
|
|
227
|
-
}, global);
|
|
228
|
-
const refreshed = await refreshManagedRecord(scope, global, record);
|
|
229
|
-
return {
|
|
230
|
-
...planned,
|
|
231
|
-
status: "updated",
|
|
232
|
-
installed_version: refreshed?.manifest_version,
|
|
233
|
-
};
|
|
234
|
-
}
|
|
235
|
-
catch (error) {
|
|
236
|
-
return {
|
|
237
|
-
...planned,
|
|
238
|
-
status: "failed",
|
|
239
|
-
error: error instanceof Error ? error.message : String(error),
|
|
240
|
-
};
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
function summarize(cli, packages, includeCli, includePackages) {
|
|
244
|
-
const statuses = [
|
|
245
|
-
includeCli ? cli.status : undefined,
|
|
246
|
-
...packages.map((entry) => entry.status),
|
|
247
|
-
].filter((value) => typeof value === "string");
|
|
248
|
-
return {
|
|
249
|
-
requested_cli: includeCli,
|
|
250
|
-
requested_packages: includePackages,
|
|
251
|
-
planned: statuses.filter((status) => status === "planned").length,
|
|
252
|
-
updated: statuses.filter((status) => status === "updated").length,
|
|
253
|
-
skipped: statuses.filter((status) => status === "skipped").length,
|
|
254
|
-
failed: statuses.filter((status) => status === "failed").length,
|
|
255
|
-
};
|
|
256
|
-
}
|
|
257
|
-
/** Implements run upgrade for the public runtime surface of this module. */
|
|
258
|
-
export async function runUpgrade(target, options, global) {
|
|
259
|
-
const normalizedTarget = typeof target === "string" && target.trim().length > 0
|
|
260
|
-
? target.trim()
|
|
261
|
-
: undefined;
|
|
262
|
-
if (options.cliOnly === true && options.packagesOnly === true) {
|
|
263
|
-
const suggestedRetryArguments = [
|
|
264
|
-
"package",
|
|
265
|
-
"upgrade",
|
|
266
|
-
...(normalizedTarget ? [normalizedTarget] : []),
|
|
267
|
-
"--packages-only",
|
|
268
|
-
"--dry-run",
|
|
269
|
-
...PACKAGE_UPGRADE_RETRY_SCOPE_FLAGS[resolveScope(options)],
|
|
270
|
-
];
|
|
271
|
-
throw new PmCliError('Options "--cli-only" and "--packages-only" are mutually exclusive.', EXIT_CODE.USAGE, {
|
|
272
|
-
code: "package_upgrade_modes_mutually_exclusive",
|
|
273
|
-
recovery: {
|
|
274
|
-
suggested_retry: renderPmCommand(suggestedRetryArguments),
|
|
275
|
-
suggested_retry_args: suggestedRetryArguments,
|
|
276
|
-
},
|
|
277
|
-
});
|
|
278
|
-
}
|
|
279
|
-
const scope = resolveScope(options);
|
|
280
|
-
const dryRun = options.dryRun === true;
|
|
281
|
-
if (options.cliOnly === true && normalizedTarget) {
|
|
282
|
-
throw new PmCliError('A package target cannot be used with "--cli-only".', EXIT_CODE.USAGE);
|
|
283
|
-
}
|
|
284
|
-
const includeCli = options.packagesOnly === true || normalizedTarget ? false : true;
|
|
285
|
-
const includePackages = options.cliOnly === true ? false : true;
|
|
286
|
-
const cli = includeCli
|
|
287
|
-
? await upgradeCli(options, dryRun)
|
|
288
|
-
: {
|
|
289
|
-
requested: false,
|
|
290
|
-
status: "skipped",
|
|
291
|
-
package: resolveCliPackage(options),
|
|
292
|
-
target: `${resolveCliPackage(options)}@${resolveTag(options)}`,
|
|
293
|
-
command: [
|
|
294
|
-
"npm",
|
|
295
|
-
"install",
|
|
296
|
-
"-g",
|
|
297
|
-
`${resolveCliPackage(options)}@${resolveTag(options)}`,
|
|
298
|
-
],
|
|
299
|
-
repair: options.repair === true,
|
|
300
|
-
reason: "not_requested",
|
|
301
|
-
};
|
|
302
|
-
let packageRecords = includePackages
|
|
303
|
-
? await readManagedRecords(scope, global)
|
|
304
|
-
: [];
|
|
305
|
-
if (normalizedTarget) {
|
|
306
|
-
packageRecords = packageRecords.filter((entry) => packageRecordMatchesTarget(entry, normalizedTarget));
|
|
307
|
-
if (packageRecords.length === 0) {
|
|
308
|
-
throw new PmCliError(`Managed package "${normalizedTarget}" was not found in ${scope} scope.`, EXIT_CODE.NOT_FOUND);
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
const packages = [];
|
|
312
|
-
for (const record of packageRecords) {
|
|
313
|
-
packages.push(await upgradePackageRecord(record, options, global, scope, dryRun));
|
|
314
|
-
}
|
|
315
|
-
const summary = summarize(cli, packages, includeCli, includePackages);
|
|
316
|
-
return {
|
|
317
|
-
ok: summary.failed === 0,
|
|
318
|
-
action: "upgrade",
|
|
319
|
-
dry_run: dryRun,
|
|
320
|
-
scope,
|
|
321
|
-
target: normalizedTarget,
|
|
322
|
-
cli,
|
|
323
|
-
packages,
|
|
324
|
-
summary,
|
|
325
|
-
};
|
|
326
|
-
}
|
|
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]="b2b646c0-92fb-5bf6-998f-37d83428335d")}catch(e2){}})();import{execFile}from"node:child_process";import path from"node:path";import{promisify}from"node:util";import{renderPmCommand}from"../command-line.js";import{readManagedExtensionState,runExtension}from"../extension.js";import{resolveExtensionRoots,pathExists,EXIT_CODE,PmCliError,resolvePmRoot,resolvePmCliVersion}from"../runtime-primitives.js";const execFileAsync=promisify(execFile);const DEFAULT_CLI_PACKAGE="@unbrained/pm-cli";const DEFAULT_TAG="latest";const PACKAGE_UPGRADE_RETRY_SCOPE_FLAGS={global:["--global"],project:[]};const _testOnly={defaultCommandRunner,isLocalNpmSpec,normalizeTarget,packageRecordMatchesTarget,resolveCliPackage,resolvePackageInstallSource,resolveRunnablePackageSource,resolveScope,resolveTag,packageCommandFor,summarize};function resolveScope(options){const projectLike=options.project===true||options.local===true||options.scope==="project";const global2=options.global===true||options.scope==="global";if(projectLike&&global2){throw new PmCliError('Options "--project/--local" and "--global" are mutually exclusive.',EXIT_CODE.USAGE)}return global2?"global":"project"}function normalizeTarget(value){return value.trim().toLowerCase()}function packageRecordMatchesTarget(record,target){const normalizedTarget=normalizeTarget(target);const values=[record.name,record.directory,record.source.input,record.source.location,record.source.package,record.source.repository,record.source.owner&&record.source.repo?`${record.source.owner}/${record.source.repo}`:void 0];return values.some(value=>typeof value==="string"&&normalizeTarget(value)===normalizedTarget)}function resolveRoots(scope,global2){const pmRoot=resolvePmRoot(process.cwd(),global2.path);const roots=resolveExtensionRoots(pmRoot,process.cwd());return{selected_root:scope==="global"?roots.global:roots.project}}async function defaultCommandRunner(command,args,options){try{const result=await execFileAsync(command,args,{cwd:options?.cwd,encoding:"utf8"});return{stdout:result.stdout,stderr:result.stderr}}catch(error){const stderr=typeof error==="object"&&error!==null&&"stderr"in error?String(error.stderr??""):"";const message=stderr.trim().length>0?stderr.trim():error instanceof Error?error.message:String(error);throw new PmCliError(`Command failed: ${command} ${args.join(" ")}
|
|
2
|
+
${message}`,EXIT_CODE.GENERIC_FAILURE)}}async function readCurrentVersion(){return resolvePmCliVersion(import.meta.url,["../../.."])}function resolveTag(options){return typeof options.tag==="string"&&options.tag.trim().length>0?options.tag.trim():DEFAULT_TAG}function resolveCliPackage(options){return typeof options.packageName==="string"&&options.packageName.trim().length>0?options.packageName.trim():DEFAULT_CLI_PACKAGE}async function upgradeCli(options,dryRun){const runner=options.commandRunner??defaultCommandRunner;const packageName=resolveCliPackage(options);const tag=resolveTag(options);const target=`${packageName}@${tag}`;const command=["npm","install","-g",target];if(options.repair===true){command.push("--force")}const beforeVersion=await readCurrentVersion();const planned={requested:true,status:"planned",package:packageName,target,command,before_version:beforeVersion,repair:options.repair===true};if(dryRun){return planned}try{await runner(command[0],command.slice(1));const verified=await runner("pm",["--version"]);return{...planned,status:"updated",after_version:verified.stdout.trim()||void 0}}catch(error){return{...planned,status:"failed",error:error instanceof Error?error.message:String(error)}}}function isLocalNpmSpec(spec){return path.isAbsolute(spec)||spec.startsWith(".")||spec.startsWith("..")||spec.startsWith("file:")}function resolvePackageInstallSource(source,tag){if(source.kind==="npm"){const rawSpec=source.input.startsWith("npm:")?source.input.slice("npm:".length).trim():source.input.trim();if(!isLocalNpmSpec(rawSpec)&&source.package&&source.package.trim().length>0){return`npm:${source.package.trim()}@${tag}`}return source.input.startsWith("npm:")?source.input:`npm:${source.input}`}return source.input}async function resolveRunnablePackageSource(source,tag){const installSource=resolvePackageInstallSource(source,tag);if(source.kind!=="local"){return installSource}if(await pathExists(installSource)){return installSource}if(await pathExists(source.location)){return source.location}return installSource}function packageCommandFor(source,installSource,scope,ref){const command=["pm","package","install",installSource,scope==="global"?"--global":"--project"];if(source.kind==="github"&&ref&&ref.trim().length>0){command.push("--ref",ref.trim())}return command}async function readManagedRecords(scope,global2){const roots=resolveRoots(scope,global2);const managedState=await readManagedExtensionState(roots.selected_root);return managedState.state.entries.filter(entry=>entry.scope===scope)}async function refreshManagedRecord(scope,global2,record){const records=await readManagedRecords(scope,global2);return records.find(candidate=>packageRecordMatchesTarget(candidate,record.name))??records.find(candidate=>normalizeTarget(candidate.directory)===normalizeTarget(record.directory))}async function upgradePackageRecord(record,options,global2,scope,dryRun){const tag=resolveTag(options);const installSource=await resolveRunnablePackageSource(record.source,tag);const command=packageCommandFor(record.source,installSource,scope,record.source.ref);const planned={name:record.name,directory:record.directory,scope,source:record.source,status:"planned",command,previous_version:record.manifest_version};if(dryRun){return planned}try{await runExtension(installSource,{install:true,project:scope==="project",global:scope==="global",ref:record.source.kind==="github"?record.source.ref:void 0},global2);const refreshed=await refreshManagedRecord(scope,global2,record);return{...planned,status:"updated",installed_version:refreshed?.manifest_version}}catch(error){return{...planned,status:"failed",error:error instanceof Error?error.message:String(error)}}}function summarize(cli,packages,includeCli,includePackages){const statuses=[includeCli?cli.status:void 0,...packages.map(entry=>entry.status)].filter(value=>typeof value==="string");return{requested_cli:includeCli,requested_packages:includePackages,planned:statuses.filter(status=>status==="planned").length,updated:statuses.filter(status=>status==="updated").length,skipped:statuses.filter(status=>status==="skipped").length,failed:statuses.filter(status=>status==="failed").length}}async function runUpgrade(target,options,global2){const normalizedTarget=typeof target==="string"&&target.trim().length>0?target.trim():void 0;if(options.cliOnly===true&&options.packagesOnly===true){const suggestedRetryArguments=["package","upgrade",...normalizedTarget?[normalizedTarget]:[],"--packages-only","--dry-run",...PACKAGE_UPGRADE_RETRY_SCOPE_FLAGS[resolveScope(options)]];throw new PmCliError('Options "--cli-only" and "--packages-only" are mutually exclusive.',EXIT_CODE.USAGE,{code:"package_upgrade_modes_mutually_exclusive",recovery:{suggested_retry:renderPmCommand(suggestedRetryArguments),suggested_retry_args:suggestedRetryArguments}})}const scope=resolveScope(options);const dryRun=options.dryRun===true;if(options.cliOnly===true&&normalizedTarget){throw new PmCliError('A package target cannot be used with "--cli-only".',EXIT_CODE.USAGE)}const includeCli=options.packagesOnly===true||normalizedTarget?false:true;const includePackages=options.cliOnly===true?false:true;const cli=includeCli?await upgradeCli(options,dryRun):{requested:false,status:"skipped",package:resolveCliPackage(options),target:`${resolveCliPackage(options)}@${resolveTag(options)}`,command:["npm","install","-g",`${resolveCliPackage(options)}@${resolveTag(options)}`],repair:options.repair===true,reason:"not_requested"};let packageRecords=includePackages?await readManagedRecords(scope,global2):[];if(normalizedTarget){packageRecords=packageRecords.filter(entry=>packageRecordMatchesTarget(entry,normalizedTarget));if(packageRecords.length===0){throw new PmCliError(`Managed package "${normalizedTarget}" was not found in ${scope} scope.`,EXIT_CODE.NOT_FOUND)}}const packages=[];for(const record of packageRecords){packages.push(await upgradePackageRecord(record,options,global2,scope,dryRun))}const summary=summarize(cli,packages,includeCli,includePackages);return{ok:summary.failed===0,action:"upgrade",dry_run:dryRun,scope,target:normalizedTarget,cli,packages,summary}}export{_testOnly,runUpgrade};
|
|
327
3
|
//# sourceMappingURL=upgrade.js.map
|
|
328
|
-
//# debugId=46439d77-bb74-5f36-9383-ac3362f41b3e
|
|
@@ -1,82 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* @module sdk/governance/validate-history-drift
|
|
3
|
-
*
|
|
4
|
-
* Projects append-only item and workspace singleton drift into the validation
|
|
5
|
-
* check contract without adding history-specific weight to the main validate
|
|
6
|
-
* orchestration module.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="a2c96f3a-fa7a-538f-ae11-7b821e5b7ab2")}catch(e){}}();
|
|
10
|
-
import { scanHistoryDrift } from "../../core/history/drift-scan.js";
|
|
11
|
-
const DEFAULT_DIAGNOSTIC_LIMIT = 5;
|
|
12
|
-
/** Build the validation warning and bounded evidence projection for history drift. */
|
|
13
|
-
export async function buildValidateHistoryDriftCheck(pmRoot, items, verboseDiagnostics) {
|
|
14
|
-
const drift = await scanHistoryDrift(pmRoot, items);
|
|
15
|
-
const warningCounts = [
|
|
16
|
-
["validate_history_drift_missing_streams", drift.missingStreams.length],
|
|
17
|
-
[
|
|
18
|
-
"validate_history_drift_unreadable_streams",
|
|
19
|
-
drift.unreadableStreams.length,
|
|
20
|
-
],
|
|
21
|
-
["validate_history_drift_hash_mismatches", drift.hashMismatches.length],
|
|
22
|
-
["validate_history_drift_chain_mismatches", drift.chainMismatches.length],
|
|
23
|
-
["validate_history_drift_version_skews", drift.versionSkews.length],
|
|
24
|
-
[
|
|
25
|
-
"validate_history_drift_workspace_state_mismatches",
|
|
26
|
-
drift.workspaceStateMismatches.length,
|
|
27
|
-
],
|
|
28
|
-
[
|
|
29
|
-
"validate_history_drift_workspace_state_missing",
|
|
30
|
-
drift.workspaceStateMissing.length,
|
|
31
|
-
],
|
|
32
|
-
[
|
|
33
|
-
"validate_history_drift_workspace_state_unreadable",
|
|
34
|
-
drift.workspaceStateUnreadable.length,
|
|
35
|
-
],
|
|
36
|
-
];
|
|
37
|
-
const warnings = warningCounts
|
|
38
|
-
.filter(([, count]) => count > 0)
|
|
39
|
-
.map(([code, count]) => `${code}:${count}`);
|
|
40
|
-
const diagnosticLimit = verboseDiagnostics
|
|
41
|
-
? Number.POSITIVE_INFINITY
|
|
42
|
-
: DEFAULT_DIAGNOSTIC_LIMIT;
|
|
43
|
-
const driftedItems = drift.driftedItems.slice(0, diagnosticLimit);
|
|
44
|
-
const identityDiscontinuities = drift.identityDiscontinuities ?? [];
|
|
45
|
-
return {
|
|
46
|
-
check: {
|
|
47
|
-
name: "history_drift",
|
|
48
|
-
status: identityDiscontinuities.length > 0
|
|
49
|
-
? "error"
|
|
50
|
-
: warnings.length === 0
|
|
51
|
-
? "ok"
|
|
52
|
-
: "warn",
|
|
53
|
-
ok: identityDiscontinuities.length === 0 && warnings.length === 0,
|
|
54
|
-
details: {
|
|
55
|
-
identity_discontinuities: identityDiscontinuities.slice(0, diagnosticLimit),
|
|
56
|
-
identity_discontinuities_count: identityDiscontinuities.length,
|
|
57
|
-
identity_discontinuities_truncated: identityDiscontinuities.length > diagnosticLimit,
|
|
58
|
-
checked_items: items.length,
|
|
59
|
-
drifted_items_count: drift.driftedItems.length,
|
|
60
|
-
drifted_items: driftedItems,
|
|
61
|
-
drifted_items_truncated: driftedItems.length < drift.driftedItems.length,
|
|
62
|
-
counts: {
|
|
63
|
-
missing_streams: drift.missingStreams.length,
|
|
64
|
-
unreadable_streams: drift.unreadableStreams.length,
|
|
65
|
-
hash_mismatches: drift.hashMismatches.length,
|
|
66
|
-
chain_mismatches: drift.chainMismatches.length,
|
|
67
|
-
version_skews: drift.versionSkews.length,
|
|
68
|
-
workspace_state_mismatches: drift.workspaceStateMismatches.length,
|
|
69
|
-
workspace_state_missing: drift.workspaceStateMissing.length,
|
|
70
|
-
workspace_state_unreadable: drift.workspaceStateUnreadable.length,
|
|
71
|
-
},
|
|
72
|
-
workspace_state_mismatches: drift.workspaceStateMismatches,
|
|
73
|
-
workspace_state_missing: drift.workspaceStateMissing,
|
|
74
|
-
workspace_state_unreadable: drift.workspaceStateUnreadable,
|
|
75
|
-
version_skews: drift.versionSkews.slice(0, diagnosticLimit),
|
|
76
|
-
},
|
|
77
|
-
},
|
|
78
|
-
warnings,
|
|
79
|
-
};
|
|
80
|
-
}
|
|
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]="42402d5d-8074-591f-98b4-75f479509cb4")}catch(e2){}})();import{scanHistoryDrift}from"../../core/history/drift-scan.js";const DEFAULT_DIAGNOSTIC_LIMIT=5;async function buildValidateHistoryDriftCheck(pmRoot,items,verboseDiagnostics){const drift=await scanHistoryDrift(pmRoot,items);const warningCounts=[["validate_history_drift_missing_streams",drift.missingStreams.length],["validate_history_drift_unreadable_streams",drift.unreadableStreams.length],["validate_history_drift_hash_mismatches",drift.hashMismatches.length],["validate_history_drift_chain_mismatches",drift.chainMismatches.length],["validate_history_drift_version_skews",drift.versionSkews.length],["validate_history_drift_workspace_state_mismatches",drift.workspaceStateMismatches.length],["validate_history_drift_workspace_state_missing",drift.workspaceStateMissing.length],["validate_history_drift_workspace_state_unreadable",drift.workspaceStateUnreadable.length]];const warnings=warningCounts.filter(([,count])=>count>0).map(([code,count])=>`${code}:${count}`);const diagnosticLimit=verboseDiagnostics?Number.POSITIVE_INFINITY:DEFAULT_DIAGNOSTIC_LIMIT;const driftedItems=drift.driftedItems.slice(0,diagnosticLimit);const identityDiscontinuities=drift.identityDiscontinuities??[];return{check:{name:"history_drift",status:identityDiscontinuities.length>0?"error":warnings.length===0?"ok":"warn",ok:identityDiscontinuities.length===0&&warnings.length===0,details:{identity_discontinuities:identityDiscontinuities.slice(0,diagnosticLimit),identity_discontinuities_count:identityDiscontinuities.length,identity_discontinuities_truncated:identityDiscontinuities.length>diagnosticLimit,checked_items:items.length,drifted_items_count:drift.driftedItems.length,drifted_items:driftedItems,drifted_items_truncated:driftedItems.length<drift.driftedItems.length,counts:{missing_streams:drift.missingStreams.length,unreadable_streams:drift.unreadableStreams.length,hash_mismatches:drift.hashMismatches.length,chain_mismatches:drift.chainMismatches.length,version_skews:drift.versionSkews.length,workspace_state_mismatches:drift.workspaceStateMismatches.length,workspace_state_missing:drift.workspaceStateMissing.length,workspace_state_unreadable:drift.workspaceStateUnreadable.length},workspace_state_mismatches:drift.workspaceStateMismatches,workspace_state_missing:drift.workspaceStateMissing,workspace_state_unreadable:drift.workspaceStateUnreadable,version_skews:drift.versionSkews.slice(0,diagnosticLimit)}},warnings}}export{buildValidateHistoryDriftCheck};
|
|
81
2
|
//# sourceMappingURL=validate-history-drift.js.map
|
|
82
|
-
//# debugId=a2c96f3a-fa7a-538f-ae11-7b821e5b7ab2
|
|
@@ -1,18 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* @module sdk/governance/validate-item-reader
|
|
3
|
-
*
|
|
4
|
-
* Selects the least expensive authoritative item projection required by a
|
|
5
|
-
* validation run.
|
|
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]="01f042d0-7f02-59f5-8894-cf48eb936d99")}catch(e){}}();
|
|
9
|
-
import { listAllItemMetadata, listAllItemMetadataWithBody, } from "../../core/store/item-store.js";
|
|
10
|
-
/** Load collections for normal checks and add bodies only when history hashes must be verified. */
|
|
11
|
-
export async function readValidateItems(params) {
|
|
12
|
-
if (params.includeBody) {
|
|
13
|
-
return listAllItemMetadataWithBody(params.pmRoot, params.settings.item_format, params.typeToFolder, params.warnings, params.settings.schema, { forceSourceScan: true });
|
|
14
|
-
}
|
|
15
|
-
return listAllItemMetadata(params.pmRoot, params.settings.item_format, params.typeToFolder, params.warnings, params.settings.schema);
|
|
16
|
-
}
|
|
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]="3ae38c0a-7f43-5457-b9a5-d23491a371ea")}catch(e2){}})();import{listAllItemMetadata,listAllItemMetadataWithBody}from"../../core/store/item-store.js";async function readValidateItems(params){if(params.includeBody){return listAllItemMetadataWithBody(params.pmRoot,params.settings.item_format,params.typeToFolder,params.warnings,params.settings.schema,{forceSourceScan:true})}return listAllItemMetadata(params.pmRoot,params.settings.item_format,params.typeToFolder,params.warnings,params.settings.schema)}export{readValidateItems};
|
|
17
2
|
//# sourceMappingURL=validate-item-reader.js.map
|
|
18
|
-
//# debugId=01f042d0-7f02-59f5-8894-cf48eb936d99
|
|
@@ -1,37 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* @module sdk/governance/validate-normalization
|
|
3
|
-
*
|
|
4
|
-
* Provides shared path and meaningful-value normalization for validation
|
|
5
|
-
* diagnostics without coupling the helpers to the command orchestration.
|
|
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]="de2cc648-965a-59c9-b688-0fe12edeec82")}catch(e){}}();
|
|
9
|
-
import { toNonEmptyStringOrUndefined } from "../../core/shared/primitives.js";
|
|
10
|
-
/** Normalize a repository-relative path to stable forward-slash form. */
|
|
11
|
-
export function normalizeRelativePath(value) {
|
|
12
|
-
return value
|
|
13
|
-
.replaceAll("\\", "/")
|
|
14
|
-
.replace(/^\.\/+/, "")
|
|
15
|
-
.replace(/^\/+/, "");
|
|
16
|
-
}
|
|
17
|
-
/** Normalize a repository-relative directory without trailing separators. */
|
|
18
|
-
export function normalizeRelativeDirectoryPath(value) {
|
|
19
|
-
return normalizeRelativePath(value).replace(/\/+$/, "");
|
|
20
|
-
}
|
|
21
|
-
/** Treat blank and legacy null-like metadata tokens as absent values. */
|
|
22
|
-
export function toMeaningfulString(value) {
|
|
23
|
-
const normalized = toNonEmptyStringOrUndefined(value);
|
|
24
|
-
if (!normalized) {
|
|
25
|
-
return undefined;
|
|
26
|
-
}
|
|
27
|
-
const lowered = normalized.toLowerCase();
|
|
28
|
-
if (lowered === "none" ||
|
|
29
|
-
lowered === "null" ||
|
|
30
|
-
lowered === "n/a" ||
|
|
31
|
-
lowered === "na") {
|
|
32
|
-
return undefined;
|
|
33
|
-
}
|
|
34
|
-
return normalized;
|
|
35
|
-
}
|
|
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]="1d8059aa-0711-522b-a12e-f5469286542f")}catch(e2){}})();import{toNonEmptyStringOrUndefined}from"../../core/shared/primitives.js";function normalizeRelativePath(value){return value.replaceAll("\\","/").replace(/^\.\/+/,"").replace(/^\/+/,"")}function normalizeRelativeDirectoryPath(value){return normalizeRelativePath(value).replace(/\/+$/,"")}function toMeaningfulString(value){const normalized=toNonEmptyStringOrUndefined(value);if(!normalized){return void 0}const lowered=normalized.toLowerCase();if(lowered==="none"||lowered==="null"||lowered==="n/a"||lowered==="na"){return void 0}return normalized}export{normalizeRelativeDirectoryPath,normalizeRelativePath,toMeaningfulString};
|
|
36
2
|
//# sourceMappingURL=validate-normalization.js.map
|
|
37
|
-
//# debugId=de2cc648-965a-59c9-b688-0fe12edeec82
|