@unbrained/pm-cli 2026.9.7 → 2026.9.9
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 +7 -2
- package/.agents/skills/pm-user/references/ECOSYSTEM_PLANNING.md +95 -0
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +231 -182
- package/dist/cli/after-command-context-usage.js +1 -48
- package/dist/cli/argv-utils.js +1 -40
- package/dist/cli/bootstrap-args.js +1 -9
- package/dist/cli/bundle-integrity.js +2 -110
- package/dist/cli/commander-usage.js +11 -771
- package/dist/cli/commands/activity.js +1 -9
- package/dist/cli/commands/aggregate.js +1 -5
- package/dist/cli/commands/append.js +1 -5
- package/dist/cli/commands/claim.js +1 -5
- package/dist/cli/commands/close-many.js +1 -5
- package/dist/cli/commands/close.js +1 -9
- package/dist/cli/commands/comments.js +1 -5
- package/dist/cli/commands/config.js +1 -9
- package/dist/cli/commands/context.js +1 -9
- package/dist/cli/commands/contracts.js +1 -5
- package/dist/cli/commands/copy.js +1 -9
- package/dist/cli/commands/create.js +1 -9
- package/dist/cli/commands/delete.js +1 -9
- package/dist/cli/commands/deps.js +1 -9
- package/dist/cli/commands/docs.js +1 -9
- package/dist/cli/commands/duplicates.js +1 -9
- package/dist/cli/commands/eval.js +1 -9
- package/dist/cli/commands/extension/describe.js +1 -5
- package/dist/cli/commands/extension/scaffold.js +1 -5
- package/dist/cli/commands/extension/shared.js +1 -5
- package/dist/cli/commands/extension.js +1 -9
- package/dist/cli/commands/files.js +1 -9
- package/dist/cli/commands/focus.js +1 -9
- package/dist/cli/commands/gc.js +1 -9
- package/dist/cli/commands/get.js +1 -9
- package/dist/cli/commands/graph.js +1 -10
- package/dist/cli/commands/health.js +1 -9
- package/dist/cli/commands/history-compact.js +1 -10
- package/dist/cli/commands/history-redact.js +1 -11
- package/dist/cli/commands/history-repair.js +1 -10
- package/dist/cli/commands/history.js +1 -5
- package/dist/cli/commands/index.js +1 -58
- package/dist/cli/commands/init-agent-guidance.js +1 -9
- package/dist/cli/commands/init.js +1 -9
- package/dist/cli/commands/learnings.js +1 -5
- package/dist/cli/commands/lifecycle-transitions.js +1 -5
- package/dist/cli/commands/list.js +1 -9
- package/dist/cli/commands/merge.js +1 -11
- package/dist/cli/commands/next.js +1 -9
- package/dist/cli/commands/notes.js +1 -5
- package/dist/cli/commands/plan.js +1 -9
- package/dist/cli/commands/profile.js +1 -9
- package/dist/cli/commands/restore.js +1 -9
- package/dist/cli/commands/scheduling-shortcuts.js +1 -9
- package/dist/cli/commands/schema.js +1 -10
- package/dist/cli/commands/search.js +1 -9
- package/dist/cli/commands/stats.js +1 -9
- package/dist/cli/commands/telemetry.js +1 -9
- package/dist/cli/commands/test-all.js +1 -9
- package/dist/cli/commands/test-runs.js +1 -9
- package/dist/cli/commands/test.js +1 -9
- package/dist/cli/commands/update-many.js +1 -5
- package/dist/cli/commands/update.js +1 -9
- package/dist/cli/commands/upgrade.js +1 -5
- package/dist/cli/commands/validate.js +1 -15
- package/dist/cli/context-intent-invocation.js +1 -20
- package/dist/cli/description-stdin.js +1 -17
- package/dist/cli/error-guidance.js +1 -1353
- package/dist/cli/extension-command-help.js +5 -636
- package/dist/cli/extension-command-options.js +1 -427
- package/dist/cli/extension-recovery.js +1 -126
- package/dist/cli/help-content.js +2 -1001
- package/dist/cli/help-json-payload.js +4 -570
- package/dist/cli/main.d.ts +4 -0
- package/dist/cli/main.js +5 -2573
- package/dist/cli/migration-gates.js +1 -289
- package/dist/cli/public.js +1 -20
- package/dist/cli/register-annotations.js +1 -270
- package/dist/cli/register-assurance.js +1 -62
- package/dist/cli/register-files-lookup.js +1 -56
- package/dist/cli/register-history-activity.d.ts +8 -0
- package/dist/cli/register-history-activity.js +2 -0
- package/dist/cli/register-history-author.js +1 -38
- package/dist/cli/register-history-maintenance.d.ts +9 -0
- package/dist/cli/register-history-maintenance.js +2 -0
- package/dist/cli/register-list-query.js +10 -943
- package/dist/cli/register-mutation-options.js +1 -9
- package/dist/cli/register-mutation.d.ts +0 -5
- 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-NPN5I67J.js → chunk-3IPRM75M.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-4VL5P22L.js +2 -0
- package/dist/cli-bundle/chunks/chunk-AAFBV3U3.js +29 -0
- package/dist/cli-bundle/chunks/chunk-D3YVILJJ.js +20 -0
- package/dist/cli-bundle/chunks/{chunk-WYRZZ5ZE.js → chunk-DEZPZOQ7.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-ECBLPN7B.js +3 -0
- package/dist/cli-bundle/chunks/chunk-J6ERHBV2.js +235 -0
- package/dist/cli-bundle/chunks/chunk-JUNJ5EKI.js +2 -0
- package/dist/cli-bundle/chunks/chunk-L5RCDKQ2.js +2 -0
- package/dist/cli-bundle/chunks/chunk-NSAPNEYH.js +2 -0
- package/dist/cli-bundle/chunks/chunk-OHNLSGGV.js +79 -0
- package/dist/cli-bundle/chunks/chunk-WQKMSFBV.js +5 -0
- package/dist/cli-bundle/chunks/{chunk-BAX2BYUW.js → chunk-XZ6T7YPP.js} +256 -150
- package/dist/cli-bundle/chunks/{chunk-JT6XF6GE.js → chunk-Z3XVXUVF.js} +4 -4
- package/dist/cli-bundle/chunks/register-list-query-UIHRCS6D.js +11 -0
- package/dist/cli-bundle/chunks/register-mutation-WHWMGRVX.js +20 -0
- package/dist/cli-bundle/chunks/register-operations-64YZYTC5.js +2 -0
- package/dist/cli-bundle/chunks/register-setup-PERI45EM.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-2W4XIYOB.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-2WSBXIGF.js +12 -0
- package/dist/cli-bundle/focused-chunks/chunk-5FHTCOHS.js +3 -0
- package/dist/cli-bundle/focused-chunks/chunk-7N6DOREF.js +26 -0
- package/dist/cli-bundle/focused-chunks/{chunk-3BZEOXLT.js → chunk-7PC4R5QB.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-BUCJUZVG.js +6 -0
- package/dist/cli-bundle/focused-chunks/chunk-FE3BABLJ.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-IWITF53W.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-OQUGRHKV.js +10 -0
- package/dist/cli-bundle/focused-chunks/{chunk-M6PBRFSH.js → chunk-PNKIANFZ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-LIJIA4TY.js → chunk-QQQ4SAUO.js} +3 -3
- package/dist/cli-bundle/focused-chunks/chunk-TTYXF5YD.js +177 -0
- package/dist/cli-bundle/focused-chunks/chunk-XNR3DM6J.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-XSS3APUF.js +9 -0
- package/dist/cli-bundle/focused-chunks/chunk-YCDQ2N23.js +8 -0
- package/dist/cli-bundle/focused-chunks/chunk-YJUXGS57.js +20 -0
- package/dist/cli-bundle/focused-chunks/chunk-ZTCE4UO6.js +58 -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 +37 -37
- 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/policy/workflow-policy-schema.d.ts +312 -0
- package/dist/core/policy/workflow-policy-schema.js +2 -0
- package/dist/core/policy/workflow-policy-store.d.ts +24 -0
- package/dist/core/policy/workflow-policy-store.js +2 -0
- package/dist/core/policy/workflow-policy.d.ts +139 -0
- package/dist/core/policy/workflow-policy.js +2 -0
- 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.d.ts +1 -0
- 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.d.ts +1 -1
- 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 +174 -839
- 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.d.ts +3 -1
- package/dist/sdk/governance/validate.js +1 -2261
- package/dist/sdk/governance/workflow-completeness.d.ts +32 -0
- package/dist/sdk/governance/workflow-completeness.js +2 -0
- package/dist/sdk/governance/workflow-policy.d.ts +47 -0
- package/dist/sdk/governance/workflow-policy.js +4 -0
- package/dist/sdk/governance/workspace-position.js +1 -163
- package/dist/sdk/governance.d.ts +2 -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 -1
- 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.d.ts +1 -1
- 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.d.ts +27 -0
- 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.d.ts +6 -4
- 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.d.ts +1 -1
- 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.d.ts +2 -1
- package/dist/sdk/runtime-public-contracts.js +1 -4
- package/dist/sdk/runtime-stats-options.js +1 -38
- package/dist/sdk/runtime.d.ts +4 -0
- 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.d.ts +2 -1
- 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.d.ts +4 -0
- package/dist/types.js +1 -245
- package/docs/AGENT_GUIDE.md +1 -1
- package/docs/COMMANDS.md +10 -0
- package/docs/CONFIGURATION.md +12 -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 +4 -0
- package/docs/READ_OUTPUT_CONTRACTS.md +5 -0
- package/docs/SCRIPTING.md +21 -0
- package/docs/TESTING.md +33 -0
- package/docs/WORKFLOW_POLICIES.md +129 -0
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +7 -7
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +11 -5
- package/marketplace.json +2 -2
- package/package.json +5 -5
- 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-CKOL5U7J.js +0 -77
- package/dist/cli-bundle/chunks/chunk-JX4DH4WC.js +0 -3
- 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-operations-I5W3KMGB.js +0 -2
- 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-PEFABF7E.js +0 -26
- 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,157 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="d6f359cb-2bc9-5f96-8789-db91512d0bd5")}catch(e){}}();
|
|
4
|
-
import { EXIT_CODE } from "../core/shared/constants.js";
|
|
5
|
-
import { PmCliError } from "../core/shared/errors.js";
|
|
6
|
-
import { toErrorMessage } from "../core/shared/primitives.js";
|
|
7
|
-
import { locateItem, readLocatedItem, } from "../core/store/item-store.js";
|
|
8
|
-
import { isExternalDependencySourceKind } from "./dependency-provenance.js";
|
|
9
|
-
import { resolveWorkspaceRelationshipKindRegistry } from "./graph/assembly.js";
|
|
10
|
-
import { assertRelationshipEdgeAllowed, } from "./relationships.js";
|
|
11
|
-
/** Reject malformed shorthand before item-id prefix normalization can create a dangling graph node. */
|
|
12
|
-
export function assertValidBareDependencyFlagValue(value, structured, flag = "--dep") {
|
|
13
|
-
if (!structured && /[:,=]/.test(value)) {
|
|
14
|
-
throw new PmCliError(`Invalid ${flag} value "${value}". Use a bare item id or id=<id>,kind=<kind>.`, EXIT_CODE.USAGE, {
|
|
15
|
-
code: "dependency_flag_value_invalid",
|
|
16
|
-
reason: "malformed_dependency_shorthand",
|
|
17
|
-
flag,
|
|
18
|
-
value,
|
|
19
|
-
required: "Use a bare item id or an explicit id=<id>,kind=<kind> entry.",
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Validate prospective stored dependencies against the active relationship
|
|
25
|
-
* ontology before a create or update mutation writes item or history state.
|
|
26
|
-
*/
|
|
27
|
-
export function assertDependencyEdgesAllowed(holderId, dependencies, registry = resolveWorkspaceRelationshipKindRegistry()) {
|
|
28
|
-
for (const dependency of dependencies ?? []) {
|
|
29
|
-
try {
|
|
30
|
-
assertRelationshipEdgeAllowed(holderId, dependency.id, dependency.kind, registry);
|
|
31
|
-
}
|
|
32
|
-
catch (error) {
|
|
33
|
-
throw new PmCliError(toErrorMessage(error), EXIT_CODE.USAGE, {
|
|
34
|
-
code: "dependency_edge_not_allowed",
|
|
35
|
-
why: `${holderId} -> ${dependency.id} (${dependency.kind}) violates the active relationship-kind policy`,
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
async function readDependencyEndpointCreatedAt(located, schema) {
|
|
41
|
-
return (await readLocatedItem(located, { schema })).document.metadata
|
|
42
|
-
.created_at;
|
|
43
|
-
}
|
|
44
|
-
async function resolveDependencyHolderCreatedAt(holder, context) {
|
|
45
|
-
if (holder.createdAt !== undefined)
|
|
46
|
-
return holder.createdAt;
|
|
47
|
-
const located = await locateItem(context.pmRoot, holder.id, context.idPrefix, context.itemFormat, context.typeToFolder);
|
|
48
|
-
return located === null
|
|
49
|
-
? undefined
|
|
50
|
-
: readDependencyEndpointCreatedAt(located, context.schema);
|
|
51
|
-
}
|
|
52
|
-
function dependencyTemporalOrderError(params) {
|
|
53
|
-
const definition = params.registry.require(params.dependency.kind);
|
|
54
|
-
return new PmCliError(`${definition.kind} requires source ${params.holder.id} to be created after target ${params.dependency.id}`, EXIT_CODE.USAGE, {
|
|
55
|
-
code: "dependency_temporal_order_invalid",
|
|
56
|
-
reason: "source_not_after_target",
|
|
57
|
-
required: `${params.holder.id}.created_at must be later than ${params.dependency.id}.created_at for ${definition.kind}.`,
|
|
58
|
-
why: "Chronological recurrence direction must be validated before the relationship is persisted.",
|
|
59
|
-
source_id: params.holder.id,
|
|
60
|
-
source_created_at: params.sourceCreatedAt,
|
|
61
|
-
target_id: params.dependency.id,
|
|
62
|
-
target_created_at: params.targetCreatedAt,
|
|
63
|
-
temporal_order: definition.temporalOrder,
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
async function assertTemporalDependencyChronology(params) {
|
|
67
|
-
const temporalDependencies = params.dependencies.filter((dependency) => params.registry.resolve(dependency.kind)?.temporalOrder ===
|
|
68
|
-
"source_after_target" &&
|
|
69
|
-
!params.missingTargets.includes(dependency.id));
|
|
70
|
-
if (temporalDependencies.length === 0 || params.holders.length === 0)
|
|
71
|
-
return;
|
|
72
|
-
const locatedTargets = new Map(params.resolutions.flatMap(({ target, located }) => located === null ? [] : [[target, located]]));
|
|
73
|
-
const targetCreatedAt = new Map(await Promise.all([...new Set(temporalDependencies.map(({ id }) => id))].map(async (target) => [
|
|
74
|
-
target,
|
|
75
|
-
await readDependencyEndpointCreatedAt(locatedTargets.get(target), params.context.schema),
|
|
76
|
-
])));
|
|
77
|
-
for (const holder of params.holders) {
|
|
78
|
-
const sourceCreatedAt = await resolveDependencyHolderCreatedAt(holder, params.context);
|
|
79
|
-
if (sourceCreatedAt === undefined)
|
|
80
|
-
continue;
|
|
81
|
-
for (const dependency of temporalDependencies) {
|
|
82
|
-
const targetTimestamp = targetCreatedAt.get(dependency.id);
|
|
83
|
-
const sourceTime = Date.parse(sourceCreatedAt);
|
|
84
|
-
const targetTime = Date.parse(targetTimestamp);
|
|
85
|
-
if (Number.isFinite(sourceTime) &&
|
|
86
|
-
Number.isFinite(targetTime) &&
|
|
87
|
-
sourceTime > targetTime) {
|
|
88
|
-
continue;
|
|
89
|
-
}
|
|
90
|
-
throw dependencyTemporalOrderError({
|
|
91
|
-
holder,
|
|
92
|
-
dependency,
|
|
93
|
-
sourceCreatedAt,
|
|
94
|
-
targetCreatedAt: targetTimestamp,
|
|
95
|
-
registry: params.registry,
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Resolve every newly supplied local dependency and enforce declared endpoint
|
|
102
|
-
* chronology before a mutation commits.
|
|
103
|
-
* Explicit external provenance bypasses workspace lookup, while the opt-in
|
|
104
|
-
* unresolved mode returns durable warning tokens instead of pretending that
|
|
105
|
-
* the graph edge resolved successfully.
|
|
106
|
-
*/
|
|
107
|
-
export async function assertDependencyTargetsResolvable(params) {
|
|
108
|
-
const registry = params.registry ?? resolveWorkspaceRelationshipKindRegistry();
|
|
109
|
-
const localDependencies = (params.dependencies ?? []).filter((dependency) => !isExternalDependencySourceKind(dependency.source_kind));
|
|
110
|
-
const localTargets = [
|
|
111
|
-
...new Set(localDependencies.map((dependency) => dependency.id)),
|
|
112
|
-
];
|
|
113
|
-
const resolutions = await Promise.all(localTargets.map(async (target) => ({
|
|
114
|
-
target,
|
|
115
|
-
located: await locateItem(params.pmRoot, target, params.idPrefix, params.itemFormat, params.typeToFolder),
|
|
116
|
-
})));
|
|
117
|
-
const missingTargets = resolutions
|
|
118
|
-
.filter(({ located }) => located === null)
|
|
119
|
-
.map(({ target }) => target)
|
|
120
|
-
.sort((left, right) => (left < right ? -1 : 1));
|
|
121
|
-
if (missingTargets.length > 0 && params.allowUnresolved !== true) {
|
|
122
|
-
throw new PmCliError(`Dependency target${missingTargets.length === 1 ? "" : "s"} not found: ${missingTargets.join(", ")}`, EXIT_CODE.NOT_FOUND, {
|
|
123
|
-
code: "dependency_target_not_found",
|
|
124
|
-
reason: "unresolved_local_dependency",
|
|
125
|
-
required: "Every local dependency target must exist before the edge is committed.",
|
|
126
|
-
why: "Fail-fast target resolution prevents dangling graph nodes and preserves reliable traversal semantics.",
|
|
127
|
-
unresolved_targets: missingTargets,
|
|
128
|
-
examples: [
|
|
129
|
-
"--dep id=<existing-item-id>,kind=related",
|
|
130
|
-
"--dep id=<external-id>,kind=related,source_kind=external",
|
|
131
|
-
"--allow-unresolved-deps --dep id=<future-item-id>,kind=related",
|
|
132
|
-
],
|
|
133
|
-
nextSteps: [
|
|
134
|
-
`Create or correct ${missingTargets.length === 1 ? "the target" : "the targets"}, then retry the mutation.`,
|
|
135
|
-
"Use source_kind=external for a cross-workspace reference.",
|
|
136
|
-
"Use --allow-unresolved-deps only when the dangling local edge is intentional.",
|
|
137
|
-
],
|
|
138
|
-
recovery: {
|
|
139
|
-
recovery_mode: "compact",
|
|
140
|
-
missing: missingTargets,
|
|
141
|
-
suggested_flags: ["--allow-unresolved-deps"],
|
|
142
|
-
suggested_retry: `pm search "${missingTargets[0]}" --limit 10`,
|
|
143
|
-
},
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
await assertTemporalDependencyChronology({
|
|
147
|
-
dependencies: localDependencies,
|
|
148
|
-
missingTargets,
|
|
149
|
-
resolutions,
|
|
150
|
-
holders: params.holders ?? [],
|
|
151
|
-
registry,
|
|
152
|
-
context: params,
|
|
153
|
-
});
|
|
154
|
-
return missingTargets.map((target) => `dependency_target_unresolved:${target}`);
|
|
155
|
-
}
|
|
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]="e2e87672-508a-5aef-b728-42e40544cf3c")}catch(e2){}})();import{EXIT_CODE}from"../core/shared/constants.js";import{PmCliError}from"../core/shared/errors.js";import{toErrorMessage}from"../core/shared/primitives.js";import{locateItem,readLocatedItem}from"../core/store/item-store.js";import{isExternalDependencySourceKind}from"./dependency-provenance.js";import{resolveWorkspaceRelationshipKindRegistry}from"./graph/assembly.js";import{assertRelationshipEdgeAllowed}from"./relationships.js";function assertValidBareDependencyFlagValue(value,structured,flag="--dep"){if(!structured&&/[:,=]/.test(value)){throw new PmCliError(`Invalid ${flag} value "${value}". Use a bare item id or id=<id>,kind=<kind>.`,EXIT_CODE.USAGE,{code:"dependency_flag_value_invalid",reason:"malformed_dependency_shorthand",flag,value,required:"Use a bare item id or an explicit id=<id>,kind=<kind> entry."})}}function assertDependencyEdgesAllowed(holderId,dependencies,registry=resolveWorkspaceRelationshipKindRegistry()){for(const dependency of dependencies??[]){try{assertRelationshipEdgeAllowed(holderId,dependency.id,dependency.kind,registry)}catch(error){throw new PmCliError(toErrorMessage(error),EXIT_CODE.USAGE,{code:"dependency_edge_not_allowed",why:`${holderId} -> ${dependency.id} (${dependency.kind}) violates the active relationship-kind policy`})}}}async function readDependencyEndpointCreatedAt(located,schema){return(await readLocatedItem(located,{schema})).document.metadata.created_at}async function resolveDependencyHolderCreatedAt(holder,context){if(holder.createdAt!==void 0)return holder.createdAt;const located=await locateItem(context.pmRoot,holder.id,context.idPrefix,context.itemFormat,context.typeToFolder);return located===null?void 0:readDependencyEndpointCreatedAt(located,context.schema)}function dependencyTemporalOrderError(params){const definition=params.registry.require(params.dependency.kind);return new PmCliError(`${definition.kind} requires source ${params.holder.id} to be created after target ${params.dependency.id}`,EXIT_CODE.USAGE,{code:"dependency_temporal_order_invalid",reason:"source_not_after_target",required:`${params.holder.id}.created_at must be later than ${params.dependency.id}.created_at for ${definition.kind}.`,why:"Chronological recurrence direction must be validated before the relationship is persisted.",source_id:params.holder.id,source_created_at:params.sourceCreatedAt,target_id:params.dependency.id,target_created_at:params.targetCreatedAt,temporal_order:definition.temporalOrder})}async function assertTemporalDependencyChronology(params){const temporalDependencies=params.dependencies.filter(dependency=>params.registry.resolve(dependency.kind)?.temporalOrder==="source_after_target"&&!params.missingTargets.includes(dependency.id));if(temporalDependencies.length===0||params.holders.length===0)return;const locatedTargets=new Map(params.resolutions.flatMap(({target,located})=>located===null?[]:[[target,located]]));const targetCreatedAt=new Map(await Promise.all([...new Set(temporalDependencies.map(({id})=>id))].map(async target=>[target,await readDependencyEndpointCreatedAt(locatedTargets.get(target),params.context.schema)])));for(const holder of params.holders){const sourceCreatedAt=await resolveDependencyHolderCreatedAt(holder,params.context);if(sourceCreatedAt===void 0)continue;for(const dependency of temporalDependencies){const targetTimestamp=targetCreatedAt.get(dependency.id);const sourceTime=Date.parse(sourceCreatedAt);const targetTime=Date.parse(targetTimestamp);if(Number.isFinite(sourceTime)&&Number.isFinite(targetTime)&&sourceTime>targetTime){continue}throw dependencyTemporalOrderError({holder,dependency,sourceCreatedAt,targetCreatedAt:targetTimestamp,registry:params.registry})}}}async function assertDependencyTargetsResolvable(params){const registry=params.registry??resolveWorkspaceRelationshipKindRegistry();const localDependencies=(params.dependencies??[]).filter(dependency=>!isExternalDependencySourceKind(dependency.source_kind));const localTargets=[...new Set(localDependencies.map(dependency=>dependency.id))];const resolutions=await Promise.all(localTargets.map(async target=>({target,located:await locateItem(params.pmRoot,target,params.idPrefix,params.itemFormat,params.typeToFolder)})));const missingTargets=resolutions.filter(({located})=>located===null).map(({target})=>target).sort((left,right)=>left<right?-1:1);if(missingTargets.length>0&¶ms.allowUnresolved!==true){throw new PmCliError(`Dependency target${missingTargets.length===1?"":"s"} not found: ${missingTargets.join(", ")}`,EXIT_CODE.NOT_FOUND,{code:"dependency_target_not_found",reason:"unresolved_local_dependency",required:"Every local dependency target must exist before the edge is committed.",why:"Fail-fast target resolution prevents dangling graph nodes and preserves reliable traversal semantics.",unresolved_targets:missingTargets,examples:["--dep id=<existing-item-id>,kind=related","--dep id=<external-id>,kind=related,source_kind=external","--allow-unresolved-deps --dep id=<future-item-id>,kind=related"],nextSteps:[`Create or correct ${missingTargets.length===1?"the target":"the targets"}, then retry the mutation.`,"Use source_kind=external for a cross-workspace reference.","Use --allow-unresolved-deps only when the dangling local edge is intentional."],recovery:{recovery_mode:"compact",missing:missingTargets,suggested_flags:["--allow-unresolved-deps"],suggested_retry:`pm search "${missingTargets[0]}" --limit 10`}})}await assertTemporalDependencyChronology({dependencies:localDependencies,missingTargets,resolutions,holders:params.holders??[],registry,context:params});return missingTargets.map(target=>`dependency_target_unresolved:${target}`)}export{assertDependencyEdgesAllowed,assertDependencyTargetsResolvable,assertValidBareDependencyFlagValue};
|
|
156
2
|
//# sourceMappingURL=dependency-flag-validation.js.map
|
|
157
|
-
//# debugId=d6f359cb-2bc9-5f96-8789-db91512d0bd5
|
|
@@ -1,136 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* @module sdk/dependency-provenance
|
|
3
|
-
*
|
|
4
|
-
* Defines the public provenance contract for dependency seeds that reference
|
|
5
|
-
* items outside the current workspace.
|
|
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]="ee17fdea-aeac-55b0-8302-a8740ba8428e")}catch(e){}}();
|
|
9
|
-
import { normalizeItemId } from "../core/item/id.js";
|
|
10
|
-
import { isExternalDependencyReference, isExternalDependencySourceKind, } from "../core/item/dependency-reference.js";
|
|
11
|
-
export { isExternalDependencyReference, isExternalDependencySourceKind, } from "../core/item/dependency-reference.js";
|
|
12
|
-
/** Provenance value declaring that a dependency id belongs to another workspace. */
|
|
13
|
-
export const EXTERNAL_DEPENDENCY_SOURCE_KIND = "global";
|
|
14
|
-
/** Human-facing alias accepted wherever external dependency provenance is parsed. */
|
|
15
|
-
export const EXTERNAL_DEPENDENCY_SOURCE_KIND_ALIAS = "external";
|
|
16
|
-
/** Stable external lifecycle values understood without coupling core to a provider. */
|
|
17
|
-
export const EXTERNAL_DEPENDENCY_RESOLUTION_STATUSES = [
|
|
18
|
-
"open",
|
|
19
|
-
"closed",
|
|
20
|
-
"unknown",
|
|
21
|
-
];
|
|
22
|
-
const externalDependencyResolvers = new Map();
|
|
23
|
-
const MAX_EXTERNAL_TITLE_LENGTH = 240;
|
|
24
|
-
const MAX_EXTERNAL_SOURCE_LENGTH = 2_048;
|
|
25
|
-
/** Normalize and cap provider strings before they reach agent-facing output. */
|
|
26
|
-
function boundedExternalText(value, fallback, maximumLength) {
|
|
27
|
-
return (value?.trim() || fallback).slice(0, maximumLength);
|
|
28
|
-
}
|
|
29
|
-
/** Reject provider payloads that violate the runtime resolver-result contract. */
|
|
30
|
-
function isExternalDependencyResolverResult(value) {
|
|
31
|
-
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
const candidate = value;
|
|
35
|
-
return (typeof candidate.status === "string" &&
|
|
36
|
-
(candidate.title == null || typeof candidate.title === "string") &&
|
|
37
|
-
(candidate.source == null || typeof candidate.source === "string") &&
|
|
38
|
-
(candidate.checkedAt == null || typeof candidate.checkedAt === "string"));
|
|
39
|
-
}
|
|
40
|
-
/** Register a package-owned external dependency resolver and return its idempotent disposer. */
|
|
41
|
-
export function registerExternalDependencyResolver(resolver) {
|
|
42
|
-
const name = resolver.name.trim();
|
|
43
|
-
if (name.length === 0) {
|
|
44
|
-
throw new Error("External dependency resolver name must not be empty");
|
|
45
|
-
}
|
|
46
|
-
if (externalDependencyResolvers.has(name)) {
|
|
47
|
-
throw new Error(`External dependency resolver already registered: ${name}`);
|
|
48
|
-
}
|
|
49
|
-
const registeredResolver = {
|
|
50
|
-
name,
|
|
51
|
-
supports: (reference) => resolver.supports(reference),
|
|
52
|
-
resolve: (reference) => resolver.resolve(reference),
|
|
53
|
-
};
|
|
54
|
-
externalDependencyResolvers.set(name, registeredResolver);
|
|
55
|
-
return () => {
|
|
56
|
-
if (externalDependencyResolvers.get(name) === registeredResolver) {
|
|
57
|
-
externalDependencyResolvers.delete(name);
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
/** Resolve one external locator through registered package providers with bounded provider-neutral evidence. */
|
|
62
|
-
export async function resolveExternalDependencyReference(reference, options = {}) {
|
|
63
|
-
const id = reference.trim();
|
|
64
|
-
if (!isExternalDependencyReference(id)) {
|
|
65
|
-
return null;
|
|
66
|
-
}
|
|
67
|
-
const resolvers = [...externalDependencyResolvers.values()].filter((resolver) => {
|
|
68
|
-
try {
|
|
69
|
-
return resolver.supports(id);
|
|
70
|
-
}
|
|
71
|
-
catch {
|
|
72
|
-
return false;
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
const outcomes = await Promise.allSettled(resolvers.map((resolver) => Promise.resolve().then(() => resolver.resolve(id))));
|
|
76
|
-
for (const [index, outcome] of outcomes.entries()) {
|
|
77
|
-
if (outcome.status !== "fulfilled" ||
|
|
78
|
-
!isExternalDependencyResolverResult(outcome.value)) {
|
|
79
|
-
continue;
|
|
80
|
-
}
|
|
81
|
-
const resolver = resolvers[index];
|
|
82
|
-
const candidate = outcome.value;
|
|
83
|
-
const status = EXTERNAL_DEPENDENCY_RESOLUTION_STATUSES.includes(candidate.status)
|
|
84
|
-
? candidate.status
|
|
85
|
-
: "unknown";
|
|
86
|
-
const title = boundedExternalText(candidate.title, "", MAX_EXTERNAL_TITLE_LENGTH);
|
|
87
|
-
const source = boundedExternalText(candidate.source, id, MAX_EXTERNAL_SOURCE_LENGTH);
|
|
88
|
-
const observedAtMs = Date.parse(candidate.checkedAt?.trim() ?? "");
|
|
89
|
-
const checkedAt = Number.isFinite(observedAtMs)
|
|
90
|
-
? new Date(observedAtMs).toISOString()
|
|
91
|
-
: (options.now?.() ?? new Date().toISOString());
|
|
92
|
-
return {
|
|
93
|
-
id,
|
|
94
|
-
status,
|
|
95
|
-
resolved: status === "closed",
|
|
96
|
-
title: title.length > 0 ? title : null,
|
|
97
|
-
source,
|
|
98
|
-
checked_at: checkedAt,
|
|
99
|
-
resolver: resolver.name,
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
return null;
|
|
103
|
-
}
|
|
104
|
-
/** Canonicalize external provenance while preserving other named source kinds. */
|
|
105
|
-
export function normalizeDependencySourceKind(sourceKind) {
|
|
106
|
-
const trimmed = sourceKind?.trim();
|
|
107
|
-
if (!trimmed) {
|
|
108
|
-
return undefined;
|
|
109
|
-
}
|
|
110
|
-
return isExternalDependencySourceKind(trimmed)
|
|
111
|
-
? EXTERNAL_DEPENDENCY_SOURCE_KIND
|
|
112
|
-
: trimmed;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Normalize a dependency seed id without corrupting cross-workspace identity.
|
|
116
|
-
* Local and legacy seeds retain normal workspace-prefix behavior; explicitly
|
|
117
|
-
* global seeds preserve the caller-provided id verbatim (apart from trimming).
|
|
118
|
-
*/
|
|
119
|
-
export function normalizeDependencySeedId(id, prefix, sourceKind) {
|
|
120
|
-
return normalizeItemReference(id, prefix, sourceKind);
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Canonicalize a local relationship target using the workspace prefix. Explicit
|
|
124
|
-
* provider locators and externally sourced identities retain case and spelling;
|
|
125
|
-
* only surrounding whitespace is removed. Resolution and parent policy remain
|
|
126
|
-
* the caller's responsibility, so dangling local ids are never guessed remote.
|
|
127
|
-
*/
|
|
128
|
-
export function normalizeItemReference(reference, prefix, sourceKind) {
|
|
129
|
-
const trimmed = reference.trim();
|
|
130
|
-
return isExternalDependencySourceKind(sourceKind) ||
|
|
131
|
-
isExternalDependencyReference(trimmed)
|
|
132
|
-
? trimmed
|
|
133
|
-
: normalizeItemId(trimmed, prefix);
|
|
134
|
-
}
|
|
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]="fdd874ad-e51d-5df2-9486-a0465ad65979")}catch(e2){}})();import{normalizeItemId}from"../core/item/id.js";import{isExternalDependencyReference,isExternalDependencySourceKind}from"../core/item/dependency-reference.js";import{isExternalDependencyReference as isExternalDependencyReference2,isExternalDependencySourceKind as isExternalDependencySourceKind2}from"../core/item/dependency-reference.js";const EXTERNAL_DEPENDENCY_SOURCE_KIND="global";const EXTERNAL_DEPENDENCY_SOURCE_KIND_ALIAS="external";const EXTERNAL_DEPENDENCY_RESOLUTION_STATUSES=["open","closed","unknown"];const externalDependencyResolvers=new Map;const MAX_EXTERNAL_TITLE_LENGTH=240;const MAX_EXTERNAL_SOURCE_LENGTH=2048;function boundedExternalText(value,fallback,maximumLength){return(value?.trim()||fallback).slice(0,maximumLength)}function isExternalDependencyResolverResult(value){if(typeof value!=="object"||value===null||Array.isArray(value)){return false}const candidate=value;return typeof candidate.status==="string"&&(candidate.title==null||typeof candidate.title==="string")&&(candidate.source==null||typeof candidate.source==="string")&&(candidate.checkedAt==null||typeof candidate.checkedAt==="string")}function registerExternalDependencyResolver(resolver){const name=resolver.name.trim();if(name.length===0){throw new Error("External dependency resolver name must not be empty")}if(externalDependencyResolvers.has(name)){throw new Error(`External dependency resolver already registered: ${name}`)}const registeredResolver={name,supports:reference=>resolver.supports(reference),resolve:reference=>resolver.resolve(reference)};externalDependencyResolvers.set(name,registeredResolver);return()=>{if(externalDependencyResolvers.get(name)===registeredResolver){externalDependencyResolvers.delete(name)}}}async function resolveExternalDependencyReference(reference,options={}){const id=reference.trim();if(!isExternalDependencyReference(id)){return null}const resolvers=[...externalDependencyResolvers.values()].filter(resolver=>{try{return resolver.supports(id)}catch{return false}});const outcomes=await Promise.allSettled(resolvers.map(resolver=>Promise.resolve().then(()=>resolver.resolve(id))));for(const[index,outcome]of outcomes.entries()){if(outcome.status!=="fulfilled"||!isExternalDependencyResolverResult(outcome.value)){continue}const resolver=resolvers[index];const candidate=outcome.value;const status=EXTERNAL_DEPENDENCY_RESOLUTION_STATUSES.includes(candidate.status)?candidate.status:"unknown";const title=boundedExternalText(candidate.title,"",MAX_EXTERNAL_TITLE_LENGTH);const source=boundedExternalText(candidate.source,id,MAX_EXTERNAL_SOURCE_LENGTH);const observedAtMs=Date.parse(candidate.checkedAt?.trim()??"");const checkedAt=Number.isFinite(observedAtMs)?new Date(observedAtMs).toISOString():options.now?.()??new Date().toISOString();return{id,status,resolved:status==="closed",title:title.length>0?title:null,source,checked_at:checkedAt,resolver:resolver.name}}return null}function normalizeDependencySourceKind(sourceKind){const trimmed=sourceKind?.trim();if(!trimmed){return void 0}return isExternalDependencySourceKind(trimmed)?EXTERNAL_DEPENDENCY_SOURCE_KIND:trimmed}function normalizeDependencySeedId(id,prefix,sourceKind){return normalizeItemReference(id,prefix,sourceKind)}function normalizeItemReference(reference,prefix,sourceKind){const trimmed=reference.trim();return isExternalDependencySourceKind(sourceKind)||isExternalDependencyReference(trimmed)?trimmed:normalizeItemId(trimmed,prefix)}export{EXTERNAL_DEPENDENCY_RESOLUTION_STATUSES,EXTERNAL_DEPENDENCY_SOURCE_KIND,EXTERNAL_DEPENDENCY_SOURCE_KIND_ALIAS,isExternalDependencyReference2 as isExternalDependencyReference,isExternalDependencySourceKind2 as isExternalDependencySourceKind,normalizeDependencySeedId,normalizeDependencySourceKind,normalizeItemReference,registerExternalDependencyResolver,resolveExternalDependencyReference};
|
|
135
2
|
//# sourceMappingURL=dependency-provenance.js.map
|
|
136
|
-
//# debugId=ee17fdea-aeac-55b0-8302-a8740ba8428e
|
package/dist/sdk/docs.js
CHANGED
|
@@ -1,15 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
!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]="c4c82f8f-7890-5ed2-8f0f-a82ba42cf807")}catch(e){}}();
|
|
3
|
-
import { renameArtifactsResultKey, runLinkedArtifacts, } from "./linked-artifacts.js";
|
|
4
|
-
/** Implements run docs for the public runtime surface of this module. */
|
|
5
|
-
export async function runDocs(id, options, global) {
|
|
6
|
-
const result = await runLinkedArtifacts(id, options, global, {
|
|
7
|
-
metadataKey: "docs",
|
|
8
|
-
op: "docs_add",
|
|
9
|
-
bareNoun: "doc",
|
|
10
|
-
supportsAppendStable: false,
|
|
11
|
-
});
|
|
12
|
-
return renameArtifactsResultKey(result, "docs");
|
|
13
|
-
}
|
|
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]="aef928ec-4a5b-5614-bb5c-cbf63f891845")}catch(e2){}})();import{renameArtifactsResultKey,runLinkedArtifacts}from"./linked-artifacts.js";async function runDocs(id,options,global2){const result=await runLinkedArtifacts(id,options,global2,{metadataKey:"docs",op:"docs_add",bareNoun:"doc",supportsAppendStable:false});return renameArtifactsResultKey(result,"docs")}export{runDocs};
|
|
14
2
|
//# sourceMappingURL=docs.js.map
|
|
15
|
-
//# debugId=c4c82f8f-7890-5ed2-8f0f-a82ba42cf807
|
package/dist/sdk/duplicates.js
CHANGED
|
@@ -1,41 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
!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]="51a84d98-6b3c-55ad-81f8-81928aa6e537")}catch(e){}}();
|
|
3
|
-
import { resolvePmRoot } from "../core/store/paths.js";
|
|
4
|
-
import { findDuplicateClusters, } from "./similarity.js";
|
|
5
|
-
/** Discover existing duplicate clusters without creating or mutating an item. */
|
|
6
|
-
export async function runDuplicates(global, options = {}) {
|
|
7
|
-
const result = await findDuplicateClusters({
|
|
8
|
-
pmRoot: resolvePmRoot(process.cwd(), global.path),
|
|
9
|
-
exhaustive: options.exhaustive,
|
|
10
|
-
...(options.status === undefined
|
|
11
|
-
? {}
|
|
12
|
-
: {
|
|
13
|
-
statuses: options.status.flatMap((status) => status
|
|
14
|
-
.split(",")
|
|
15
|
-
.map((value) => value.trim())
|
|
16
|
-
.filter(Boolean)),
|
|
17
|
-
}),
|
|
18
|
-
...(options.since === undefined ? {} : { since: options.since }),
|
|
19
|
-
...(options.threshold === undefined
|
|
20
|
-
? {}
|
|
21
|
-
: { threshold: options.threshold }),
|
|
22
|
-
...(options.limit === undefined ? {} : { limit: options.limit }),
|
|
23
|
-
});
|
|
24
|
-
return {
|
|
25
|
-
...result,
|
|
26
|
-
clusters: result.clusters.map((cluster) => {
|
|
27
|
-
const canonicalId = cluster.id;
|
|
28
|
-
return {
|
|
29
|
-
...cluster,
|
|
30
|
-
canonical_id: canonicalId,
|
|
31
|
-
close_command: `pm close <duplicate-id> --duplicate-of ${canonicalId}`,
|
|
32
|
-
};
|
|
33
|
-
}),
|
|
34
|
-
guidance: {
|
|
35
|
-
strategy: "review_then_close_duplicate",
|
|
36
|
-
command: "pm close <duplicate-id> --duplicate-of <canonical-id>",
|
|
37
|
-
},
|
|
38
|
-
};
|
|
39
|
-
}
|
|
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]="499dfc08-cf70-55fe-8868-65c3107e3a91")}catch(e2){}})();import{resolvePmRoot}from"../core/store/paths.js";import{findDuplicateClusters}from"./similarity.js";async function runDuplicates(global2,options={}){const result=await findDuplicateClusters({pmRoot:resolvePmRoot(process.cwd(),global2.path),exhaustive:options.exhaustive,...options.status===void 0?{}:{statuses:options.status.flatMap(status=>status.split(",").map(value=>value.trim()).filter(Boolean))},...options.since===void 0?{}:{since:options.since},...options.threshold===void 0?{}:{threshold:options.threshold},...options.limit===void 0?{}:{limit:options.limit}});return{...result,clusters:result.clusters.map(cluster=>{const canonicalId=cluster.id;return{...cluster,canonical_id:canonicalId,close_command:`pm close <duplicate-id> --duplicate-of ${canonicalId}`}}),guidance:{strategy:"review_then_close_duplicate",command:"pm close <duplicate-id> --duplicate-of <canonical-id>"}}}export{runDuplicates};
|
|
40
2
|
//# sourceMappingURL=duplicates.js.map
|
|
41
|
-
//# debugId=51a84d98-6b3c-55ad-81f8-81928aa6e537
|