@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,183 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* @module sdk/history-provenance
|
|
3
|
-
*
|
|
4
|
-
* Provides patch-free immutable-history provenance projections, filtering,
|
|
5
|
-
* identity interpretation, and bounded coverage summaries.
|
|
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]="8b010e79-a73a-5760-ac05-8dc88484cd69")}catch(e){}}();
|
|
9
|
-
import { AGENT_PROVENANCE_DIMENSIONS, } from "../core/shared/author.js";
|
|
10
|
-
import { EXIT_CODE } from "../core/shared/constants.js";
|
|
11
|
-
import { PmCliError } from "../core/shared/errors.js";
|
|
12
|
-
/** Default interpretation used when a legacy workspace has no vocabulary. */
|
|
13
|
-
export const DEFAULT_AUTHOR_IDENTITY_VOCABULARY = {
|
|
14
|
-
version: 1,
|
|
15
|
-
aliases: {},
|
|
16
|
-
};
|
|
17
|
-
/** Resolve the extensible dimension vocabulary declared by built-ins and workspace descriptors. */
|
|
18
|
-
export function resolveHistoryProvenanceDimensions(descriptors = []) {
|
|
19
|
-
const dimensions = new Set(AGENT_PROVENANCE_DIMENSIONS);
|
|
20
|
-
const addDimension = (dimension) => {
|
|
21
|
-
if (/^[a-z0-9]+(?:-[a-z0-9]+)*$/u.test(dimension)) {
|
|
22
|
-
dimensions.add(dimension);
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
for (const descriptor of descriptors) {
|
|
26
|
-
for (const dimension of Object.keys(descriptor.provenance_environment_keys ?? {})) {
|
|
27
|
-
addDimension(dimension);
|
|
28
|
-
}
|
|
29
|
-
for (const dimension of Object.keys(descriptor.provenance_resolvers ?? {})) {
|
|
30
|
-
addDimension(dimension);
|
|
31
|
-
}
|
|
32
|
-
for (const dimension of descriptor.provenance_unavailable_dimensions ??
|
|
33
|
-
[]) {
|
|
34
|
-
addDimension(dimension);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
return [...dimensions].sort();
|
|
38
|
-
}
|
|
39
|
-
function normalizeSet(value) {
|
|
40
|
-
if (value === undefined)
|
|
41
|
-
return undefined;
|
|
42
|
-
const values = typeof value === "string" ? [value] : value;
|
|
43
|
-
const normalized = values
|
|
44
|
-
.flatMap((entry) => entry.split(","))
|
|
45
|
-
.map((entry) => entry.trim())
|
|
46
|
-
.filter((entry) => entry.length > 0);
|
|
47
|
-
return normalized.length === 0 ? undefined : new Set(normalized);
|
|
48
|
-
}
|
|
49
|
-
function resolveCanonicalHarness(entry, vocabulary) {
|
|
50
|
-
if (entry.agent_harness?.trim()) {
|
|
51
|
-
return { agent_harness: entry.agent_harness, harness_source: "recorded" };
|
|
52
|
-
}
|
|
53
|
-
const interpreted = vocabulary.aliases[entry.author];
|
|
54
|
-
return interpreted
|
|
55
|
-
? { agent_harness: interpreted, harness_source: "vocabulary" }
|
|
56
|
-
: { harness_source: "unresolved" };
|
|
57
|
-
}
|
|
58
|
-
/** Parse and validate exact provenance dimension predicates. */
|
|
59
|
-
export function parseHistoryProvenanceFilters(filters, dimensions = AGENT_PROVENANCE_DIMENSIONS) {
|
|
60
|
-
const allowed = new Set(dimensions);
|
|
61
|
-
const predicates = new Map();
|
|
62
|
-
const values = filters.provenance === undefined
|
|
63
|
-
? []
|
|
64
|
-
: typeof filters.provenance === "string"
|
|
65
|
-
? [filters.provenance]
|
|
66
|
-
: filters.provenance;
|
|
67
|
-
for (const raw of values.flatMap((entry) => entry.split(","))) {
|
|
68
|
-
const separator = raw.indexOf("=");
|
|
69
|
-
if (separator < 0) {
|
|
70
|
-
throw new PmCliError(`Provenance predicate must use dimension=value; received "${raw.trim()}".`, EXIT_CODE.USAGE, { code: "invalid_provenance_predicate" });
|
|
71
|
-
}
|
|
72
|
-
const dimension = raw.slice(0, separator).trim().toLowerCase();
|
|
73
|
-
const value = raw.slice(separator + 1).trim();
|
|
74
|
-
if (!allowed.has(dimension)) {
|
|
75
|
-
throw new PmCliError(`Unknown provenance dimension "${dimension || raw.trim()}". Declared dimensions: ${[...allowed].sort().join(", ")}.`, EXIT_CODE.USAGE, { code: "unknown_provenance_dimension" });
|
|
76
|
-
}
|
|
77
|
-
if (value.length === 0) {
|
|
78
|
-
throw new PmCliError(`Provenance predicate must use dimension=value; received "${raw.trim()}".`, EXIT_CODE.USAGE, { code: "invalid_provenance_predicate" });
|
|
79
|
-
}
|
|
80
|
-
const accepted = predicates.get(dimension) ?? new Set();
|
|
81
|
-
accepted.add(value);
|
|
82
|
-
predicates.set(dimension, accepted);
|
|
83
|
-
}
|
|
84
|
-
return predicates;
|
|
85
|
-
}
|
|
86
|
-
/** Project one immutable entry without its JSON Patch or document hashes. */
|
|
87
|
-
export function projectHistoryProvenance(entry, vocabulary = DEFAULT_AUTHOR_IDENTITY_VOCABULARY, coordinates = {}) {
|
|
88
|
-
const harness = resolveCanonicalHarness(entry, vocabulary);
|
|
89
|
-
return {
|
|
90
|
-
...(coordinates.itemId === undefined
|
|
91
|
-
? {}
|
|
92
|
-
: { item_id: coordinates.itemId }),
|
|
93
|
-
...(coordinates.version === undefined
|
|
94
|
-
? {}
|
|
95
|
-
: { version: coordinates.version }),
|
|
96
|
-
ts: entry.ts,
|
|
97
|
-
op: entry.op,
|
|
98
|
-
author: entry.author,
|
|
99
|
-
...(entry.author_source === undefined
|
|
100
|
-
? {}
|
|
101
|
-
: { author_source: entry.author_source }),
|
|
102
|
-
...harness,
|
|
103
|
-
vocabulary_version: vocabulary.version,
|
|
104
|
-
...(entry.agent_instance === undefined
|
|
105
|
-
? {}
|
|
106
|
-
: { agent_instance: entry.agent_instance }),
|
|
107
|
-
agent_provenance: entry.agent_provenance ?? {},
|
|
108
|
-
...(entry.message === undefined ? {} : { message: entry.message }),
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
/** Test one immutable entry against shared provenance predicates. */
|
|
112
|
-
export function historyEntryMatchesProvenance(entry, filters, vocabulary = DEFAULT_AUTHOR_IDENTITY_VOCABULARY, dimensions = AGENT_PROVENANCE_DIMENSIONS) {
|
|
113
|
-
return compileHistoryProvenanceMatcher(filters, vocabulary, dimensions)(entry);
|
|
114
|
-
}
|
|
115
|
-
/** Compile shared provenance predicates once for efficient history scans. */
|
|
116
|
-
export function compileHistoryProvenanceMatcher(filters, vocabulary = DEFAULT_AUTHOR_IDENTITY_VOCABULARY, dimensions = AGENT_PROVENANCE_DIMENSIONS) {
|
|
117
|
-
const harnesses = normalizeSet(filters.harness);
|
|
118
|
-
const instances = normalizeSet(filters.agentInstance);
|
|
119
|
-
const predicates = parseHistoryProvenanceFilters(filters, dimensions);
|
|
120
|
-
return (entry) => {
|
|
121
|
-
const resolved = resolveCanonicalHarness(entry, vocabulary);
|
|
122
|
-
const resolvedHarness = resolved.agent_harness;
|
|
123
|
-
if (harnesses && (!resolvedHarness || !harnesses.has(resolvedHarness)))
|
|
124
|
-
return false;
|
|
125
|
-
if (instances && !instances.has(entry.agent_instance ?? ""))
|
|
126
|
-
return false;
|
|
127
|
-
for (const [dimension, accepted] of predicates) {
|
|
128
|
-
const observation = entry.agent_provenance?.[dimension];
|
|
129
|
-
if (!observation || !accepted.has(observation.value))
|
|
130
|
-
return false;
|
|
131
|
-
}
|
|
132
|
-
return true;
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
/** Summarize identity and dimension completeness without returning event rows. */
|
|
136
|
-
export function summarizeHistoryProvenance(entries, vocabulary = DEFAULT_AUTHOR_IDENTITY_VOCABULARY, dimensions = AGENT_PROVENANCE_DIMENSIONS) {
|
|
137
|
-
const allDimensions = new Set(dimensions);
|
|
138
|
-
const unresolvedAuthors = new Map();
|
|
139
|
-
let resolvedHarnesses = 0;
|
|
140
|
-
for (const entry of entries) {
|
|
141
|
-
for (const dimension of Object.keys(entry.agent_provenance ?? {})) {
|
|
142
|
-
allDimensions.add(dimension);
|
|
143
|
-
}
|
|
144
|
-
const harness = resolveCanonicalHarness(entry, vocabulary);
|
|
145
|
-
if (harness.agent_harness)
|
|
146
|
-
resolvedHarnesses += 1;
|
|
147
|
-
else {
|
|
148
|
-
unresolvedAuthors.set(entry.author, (unresolvedAuthors.get(entry.author) ?? 0) + 1);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
return {
|
|
152
|
-
entries: entries.length,
|
|
153
|
-
vocabulary_version: vocabulary.version,
|
|
154
|
-
harness: {
|
|
155
|
-
resolved: resolvedHarnesses,
|
|
156
|
-
unresolved: entries.length - resolvedHarnesses,
|
|
157
|
-
unresolved_authors: [...unresolvedAuthors]
|
|
158
|
-
.map(([author, count]) => ({ author, entries: count }))
|
|
159
|
-
.sort((left, right) => right.entries - left.entries ||
|
|
160
|
-
left.author.localeCompare(right.author))
|
|
161
|
-
.slice(0, 20),
|
|
162
|
-
},
|
|
163
|
-
dimensions: [...allDimensions].sort().map((dimension) => {
|
|
164
|
-
let observed = 0;
|
|
165
|
-
let unavailable = 0;
|
|
166
|
-
for (const entry of entries) {
|
|
167
|
-
const observation = entry.agent_provenance?.[dimension];
|
|
168
|
-
if (observation === null)
|
|
169
|
-
unavailable += 1;
|
|
170
|
-
else if (observation !== undefined)
|
|
171
|
-
observed += 1;
|
|
172
|
-
}
|
|
173
|
-
return {
|
|
174
|
-
dimension,
|
|
175
|
-
observed,
|
|
176
|
-
unavailable,
|
|
177
|
-
legacy_missing: entries.length - observed - unavailable,
|
|
178
|
-
};
|
|
179
|
-
}),
|
|
180
|
-
};
|
|
181
|
-
}
|
|
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]="94a81e04-bb02-5c2e-9362-4cf7212d66e6")}catch(e2){}})();import{AGENT_PROVENANCE_DIMENSIONS}from"../core/shared/author.js";import{EXIT_CODE}from"../core/shared/constants.js";import{PmCliError}from"../core/shared/errors.js";const DEFAULT_AUTHOR_IDENTITY_VOCABULARY={version:1,aliases:{}};function resolveHistoryProvenanceDimensions(descriptors=[]){const dimensions=new Set(AGENT_PROVENANCE_DIMENSIONS);const addDimension=dimension=>{if(/^[a-z0-9]+(?:-[a-z0-9]+)*$/u.test(dimension)){dimensions.add(dimension)}};for(const descriptor of descriptors){for(const dimension of Object.keys(descriptor.provenance_environment_keys??{})){addDimension(dimension)}for(const dimension of Object.keys(descriptor.provenance_resolvers??{})){addDimension(dimension)}for(const dimension of descriptor.provenance_unavailable_dimensions??[]){addDimension(dimension)}}return[...dimensions].sort()}function normalizeSet(value){if(value===void 0)return void 0;const values=typeof value==="string"?[value]:value;const normalized=values.flatMap(entry=>entry.split(",")).map(entry=>entry.trim()).filter(entry=>entry.length>0);return normalized.length===0?void 0:new Set(normalized)}function resolveCanonicalHarness(entry,vocabulary){if(entry.agent_harness?.trim()){return{agent_harness:entry.agent_harness,harness_source:"recorded"}}const interpreted=vocabulary.aliases[entry.author];return interpreted?{agent_harness:interpreted,harness_source:"vocabulary"}:{harness_source:"unresolved"}}function parseHistoryProvenanceFilters(filters,dimensions=AGENT_PROVENANCE_DIMENSIONS){const allowed=new Set(dimensions);const predicates=new Map;const values=filters.provenance===void 0?[]:typeof filters.provenance==="string"?[filters.provenance]:filters.provenance;for(const raw of values.flatMap(entry=>entry.split(","))){const separator=raw.indexOf("=");if(separator<0){throw new PmCliError(`Provenance predicate must use dimension=value; received "${raw.trim()}".`,EXIT_CODE.USAGE,{code:"invalid_provenance_predicate"})}const dimension=raw.slice(0,separator).trim().toLowerCase();const value=raw.slice(separator+1).trim();if(!allowed.has(dimension)){throw new PmCliError(`Unknown provenance dimension "${dimension||raw.trim()}". Declared dimensions: ${[...allowed].sort().join(", ")}.`,EXIT_CODE.USAGE,{code:"unknown_provenance_dimension"})}if(value.length===0){throw new PmCliError(`Provenance predicate must use dimension=value; received "${raw.trim()}".`,EXIT_CODE.USAGE,{code:"invalid_provenance_predicate"})}const accepted=predicates.get(dimension)??new Set;accepted.add(value);predicates.set(dimension,accepted)}return predicates}function projectHistoryProvenance(entry,vocabulary=DEFAULT_AUTHOR_IDENTITY_VOCABULARY,coordinates={}){const harness=resolveCanonicalHarness(entry,vocabulary);return{...coordinates.itemId===void 0?{}:{item_id:coordinates.itemId},...coordinates.version===void 0?{}:{version:coordinates.version},ts:entry.ts,op:entry.op,author:entry.author,...entry.author_source===void 0?{}:{author_source:entry.author_source},...harness,vocabulary_version:vocabulary.version,...entry.agent_instance===void 0?{}:{agent_instance:entry.agent_instance},agent_provenance:entry.agent_provenance??{},...entry.message===void 0?{}:{message:entry.message}}}function historyEntryMatchesProvenance(entry,filters,vocabulary=DEFAULT_AUTHOR_IDENTITY_VOCABULARY,dimensions=AGENT_PROVENANCE_DIMENSIONS){return compileHistoryProvenanceMatcher(filters,vocabulary,dimensions)(entry)}function compileHistoryProvenanceMatcher(filters,vocabulary=DEFAULT_AUTHOR_IDENTITY_VOCABULARY,dimensions=AGENT_PROVENANCE_DIMENSIONS){const harnesses=normalizeSet(filters.harness);const instances=normalizeSet(filters.agentInstance);const predicates=parseHistoryProvenanceFilters(filters,dimensions);return entry=>{const resolved=resolveCanonicalHarness(entry,vocabulary);const resolvedHarness=resolved.agent_harness;if(harnesses&&(!resolvedHarness||!harnesses.has(resolvedHarness)))return false;if(instances&&!instances.has(entry.agent_instance??""))return false;for(const[dimension,accepted]of predicates){const observation=entry.agent_provenance?.[dimension];if(!observation||!accepted.has(observation.value))return false}return true}}function summarizeHistoryProvenance(entries,vocabulary=DEFAULT_AUTHOR_IDENTITY_VOCABULARY,dimensions=AGENT_PROVENANCE_DIMENSIONS){const allDimensions=new Set(dimensions);const unresolvedAuthors=new Map;let resolvedHarnesses=0;for(const entry of entries){for(const dimension of Object.keys(entry.agent_provenance??{})){allDimensions.add(dimension)}const harness=resolveCanonicalHarness(entry,vocabulary);if(harness.agent_harness)resolvedHarnesses+=1;else{unresolvedAuthors.set(entry.author,(unresolvedAuthors.get(entry.author)??0)+1)}}return{entries:entries.length,vocabulary_version:vocabulary.version,harness:{resolved:resolvedHarnesses,unresolved:entries.length-resolvedHarnesses,unresolved_authors:[...unresolvedAuthors].map(([author,count])=>({author,entries:count})).sort((left,right)=>right.entries-left.entries||left.author.localeCompare(right.author)).slice(0,20)},dimensions:[...allDimensions].sort().map(dimension=>{let observed=0;let unavailable=0;for(const entry of entries){const observation=entry.agent_provenance?.[dimension];if(observation===null)unavailable+=1;else if(observation!==void 0)observed+=1}return{dimension,observed,unavailable,legacy_missing:entries.length-observed-unavailable}})}}export{DEFAULT_AUTHOR_IDENTITY_VOCABULARY,compileHistoryProvenanceMatcher,historyEntryMatchesProvenance,parseHistoryProvenanceFilters,projectHistoryProvenance,resolveHistoryProvenanceDimensions,summarizeHistoryProvenance};
|
|
182
2
|
//# sourceMappingURL=history-provenance.js.map
|
|
183
|
-
//# debugId=8b010e79-a73a-5760-ac05-8dc88484cd69
|
package/dist/sdk/history-read.js
CHANGED
|
@@ -1,97 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* @module sdk/history-read
|
|
3
|
-
*
|
|
4
|
-
* Public, mutation-free item time-travel reads backed by the same verified
|
|
5
|
-
* replay kernel used by `pm restore`. Integrators can use this primitive as a
|
|
6
|
-
* building block for provenance browsers, immutable records, and VCS-like
|
|
7
|
-
* systems without acquiring locks or appending history.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
!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]="6fe766e2-93e8-5653-beb5-16bd92efae51")}catch(e){}}();
|
|
11
|
-
import { assertInitializedTracker } from "./environment/tracker-preflight.js";
|
|
12
|
-
import { getActiveExtensionRegistrations } from "../core/extensions/index.js";
|
|
13
|
-
import { applyHistoryPatch, ensureMaterializedHistoryTarget, extractPatchFailureContext, replayHistoryToTarget, resolveHistoryTarget, } from "../core/history/projection.js";
|
|
14
|
-
import { readHistoryEntries } from "../core/history/read.js";
|
|
15
|
-
import { historyVersionOffset } from "../core/history/version-address.js";
|
|
16
|
-
import { hashDocument, hashDocumentVerificationCandidates, hashEmptyDocument, } from "../core/history/history.js";
|
|
17
|
-
import { replayToCanonicalItemDocument, verifyHistoryChainWithVersion, } from "../core/history/replay.js";
|
|
18
|
-
import { resolveItemTypeRegistry } from "../core/item/type-registry.js";
|
|
19
|
-
import { EXIT_CODE } from "../core/shared/constants.js";
|
|
20
|
-
import { PmCliError } from "../core/shared/errors.js";
|
|
21
|
-
import { resolvePmRoot } from "../core/store/paths.js";
|
|
22
|
-
import { readSettings } from "../core/store/settings.js";
|
|
23
|
-
import { resolveHistorySubject } from "./history-redact.js";
|
|
24
|
-
export { findHistoryIdentityDiscontinuities, } from "../core/history/identity.js";
|
|
25
|
-
/**
|
|
26
|
-
* Verify a history chain and optionally compare it with a current document.
|
|
27
|
-
*
|
|
28
|
-
* Omitting the current document is useful for workspace-scoped streams, which
|
|
29
|
-
* aggregate multiple configuration files and therefore have no single item
|
|
30
|
-
* document to compare.
|
|
31
|
-
*/
|
|
32
|
-
export function verifyHistoryEntries(history, currentDocument) {
|
|
33
|
-
const verification = verifyHistoryChainWithVersion(history);
|
|
34
|
-
const latestAfterHash = history.length > 0
|
|
35
|
-
? history[history.length - 1].after_hash
|
|
36
|
-
: hashEmptyDocument();
|
|
37
|
-
const currentItemHashCandidates = currentDocument === undefined ||
|
|
38
|
-
verification.item_hash_version === undefined
|
|
39
|
-
? undefined
|
|
40
|
-
: hashDocumentVerificationCandidates(currentDocument, verification.item_hash_version);
|
|
41
|
-
const currentItemHash = currentDocument === undefined
|
|
42
|
-
? undefined
|
|
43
|
-
: currentItemHashCandidates === undefined
|
|
44
|
-
? hashDocument(currentDocument)
|
|
45
|
-
: currentItemHashCandidates[Math.max(0, currentItemHashCandidates.indexOf(latestAfterHash))];
|
|
46
|
-
const currentMatchesLatest = currentItemHash === undefined
|
|
47
|
-
? undefined
|
|
48
|
-
: currentItemHash === latestAfterHash;
|
|
49
|
-
const errors = [...verification.errors];
|
|
50
|
-
if (currentMatchesLatest === false) {
|
|
51
|
-
errors.push("verify_failed:current_item_hash_mismatch");
|
|
52
|
-
}
|
|
53
|
-
return {
|
|
54
|
-
ok: errors.length === 0,
|
|
55
|
-
entries: history.length,
|
|
56
|
-
errors,
|
|
57
|
-
latest_after_hash: history.length > 0 ? history[history.length - 1].after_hash : undefined,
|
|
58
|
-
current_item_hash: currentItemHash,
|
|
59
|
-
current_matches_latest: currentMatchesLatest,
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Reconstruct one item at a one-based version or ISO timestamp without locks,
|
|
64
|
-
* item writes, history writes, or derived-index mutations.
|
|
65
|
-
*/
|
|
66
|
-
export async function getItemAt(id, target, options = {}) {
|
|
67
|
-
const pmRoot = resolvePmRoot(options.cwd ?? process.cwd(), options.pmRoot);
|
|
68
|
-
await assertInitializedTracker(pmRoot);
|
|
69
|
-
const settings = await readSettings(pmRoot);
|
|
70
|
-
const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());
|
|
71
|
-
const subject = await resolveHistorySubject(pmRoot, id, settings, typeRegistry.type_to_folder);
|
|
72
|
-
const history = await readHistoryEntries(subject.historyPath, subject.id);
|
|
73
|
-
if (history.length === 0) {
|
|
74
|
-
throw new PmCliError(`No history exists for ${subject.id}; point-in-time reads are unavailable.`, EXIT_CODE.NOT_FOUND);
|
|
75
|
-
}
|
|
76
|
-
const resolvedTarget = resolveHistoryTarget(target, history);
|
|
77
|
-
const replay = ensureMaterializedHistoryTarget(replayHistoryToTarget(history, resolvedTarget.historyIndex), resolvedTarget);
|
|
78
|
-
const document = replayToCanonicalItemDocument(replay, {
|
|
79
|
-
schema: settings.schema,
|
|
80
|
-
});
|
|
81
|
-
if (document.metadata.id !== subject.id) {
|
|
82
|
-
throw new PmCliError(`History target resolved to item ${document.metadata.id}, expected ${subject.id}.`, EXIT_CODE.GENERIC_FAILURE);
|
|
83
|
-
}
|
|
84
|
-
const targetEntry = history[resolvedTarget.historyIndex];
|
|
85
|
-
const offset = historyVersionOffset(history, true);
|
|
86
|
-
return {
|
|
87
|
-
document,
|
|
88
|
-
reconstructed: true,
|
|
89
|
-
as_of_version: offset === null ? null : offset + resolvedTarget.historyIndex + 1,
|
|
90
|
-
as_of_timestamp: targetEntry.ts,
|
|
91
|
-
target: resolvedTarget,
|
|
92
|
-
history_length: history.length,
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
export { applyHistoryPatch, ensureMaterializedHistoryTarget, extractPatchFailureContext, readHistoryEntries, replayHistoryToTarget, resolveHistoryTarget, };
|
|
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]="ed4ecd27-71df-5dca-a155-11409db4af21")}catch(e2){}})();import{assertInitializedTracker}from"./environment/tracker-preflight.js";import{getActiveExtensionRegistrations}from"../core/extensions/index.js";import{applyHistoryPatch,ensureMaterializedHistoryTarget,extractPatchFailureContext,replayHistoryToTarget,resolveHistoryTarget}from"../core/history/projection.js";import{readHistoryEntries}from"../core/history/read.js";import{historyVersionOffset}from"../core/history/version-address.js";import{hashDocument,hashDocumentVerificationCandidates,hashEmptyDocument}from"../core/history/history.js";import{replayToCanonicalItemDocument,verifyHistoryChainWithVersion}from"../core/history/replay.js";import{resolveItemTypeRegistry}from"../core/item/type-registry.js";import{EXIT_CODE}from"../core/shared/constants.js";import{PmCliError}from"../core/shared/errors.js";import{resolvePmRoot}from"../core/store/paths.js";import{readSettings}from"../core/store/settings.js";import{resolveHistorySubject}from"./history/subject.js";import{findHistoryIdentityDiscontinuities}from"../core/history/identity.js";function verifyHistoryEntries(history,currentDocument){const verification=verifyHistoryChainWithVersion(history);const latestAfterHash=history.length>0?history[history.length-1].after_hash:hashEmptyDocument();const currentItemHashCandidates=currentDocument===void 0||verification.item_hash_version===void 0?void 0:hashDocumentVerificationCandidates(currentDocument,verification.item_hash_version);const currentItemHash=currentDocument===void 0?void 0:currentItemHashCandidates===void 0?hashDocument(currentDocument):currentItemHashCandidates[Math.max(0,currentItemHashCandidates.indexOf(latestAfterHash))];const currentMatchesLatest=currentItemHash===void 0?void 0:currentItemHash===latestAfterHash;const errors=[...verification.errors];if(currentMatchesLatest===false){errors.push("verify_failed:current_item_hash_mismatch")}return{ok:errors.length===0,entries:history.length,errors,latest_after_hash:history.length>0?history[history.length-1].after_hash:void 0,current_item_hash:currentItemHash,current_matches_latest:currentMatchesLatest}}async function getItemAt(id,target,options={}){const pmRoot=resolvePmRoot(options.cwd??process.cwd(),options.pmRoot);await assertInitializedTracker(pmRoot);const settings=await readSettings(pmRoot);const typeRegistry=resolveItemTypeRegistry(settings,getActiveExtensionRegistrations());const subject=await resolveHistorySubject(pmRoot,id,settings,typeRegistry.type_to_folder);const history=await readHistoryEntries(subject.historyPath,subject.id);if(history.length===0){throw new PmCliError(`No history exists for ${subject.id}; point-in-time reads are unavailable.`,EXIT_CODE.NOT_FOUND)}const resolvedTarget=resolveHistoryTarget(target,history);const replay=ensureMaterializedHistoryTarget(replayHistoryToTarget(history,resolvedTarget.historyIndex),resolvedTarget);const document=replayToCanonicalItemDocument(replay,{schema:settings.schema});if(document.metadata.id!==subject.id){throw new PmCliError(`History target resolved to item ${document.metadata.id}, expected ${subject.id}.`,EXIT_CODE.GENERIC_FAILURE)}const targetEntry=history[resolvedTarget.historyIndex];const offset=historyVersionOffset(history,true);return{document,reconstructed:true,as_of_version:offset===null?null:offset+resolvedTarget.historyIndex+1,as_of_timestamp:targetEntry.ts,target:resolvedTarget,history_length:history.length}}export{applyHistoryPatch,ensureMaterializedHistoryTarget,extractPatchFailureContext,findHistoryIdentityDiscontinuities,getItemAt,readHistoryEntries,replayHistoryToTarget,resolveHistoryTarget,verifyHistoryEntries};
|
|
96
2
|
//# sourceMappingURL=history-read.js.map
|
|
97
|
-
//# debugId=6fe766e2-93e8-5653-beb5-16bd92efae51
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
+
export { resolveHistorySubject, type HistorySubject, } from "./history/subject.js";
|
|
1
2
|
import { type ReplayDocument } from "../core/history/replay.js";
|
|
2
3
|
import type { GlobalOptions } from "../core/shared/command-types.js";
|
|
3
|
-
import { locateItem } from "../core/store/item-store.js";
|
|
4
|
-
import { readSettings } from "../core/store/settings.js";
|
|
5
4
|
/** Documents the history redact command options payload exchanged by command, SDK, and package integrations. */
|
|
6
5
|
export interface HistoryRedactCommandOptions {
|
|
7
6
|
/** Value that configures or reports literal for this contract. */
|
|
@@ -29,15 +28,6 @@ interface LiteralRule {
|
|
|
29
28
|
value: string;
|
|
30
29
|
}
|
|
31
30
|
type RedactionRule = RegexRule | LiteralRule;
|
|
32
|
-
/** Documents the history subject payload exchanged by command, SDK, and package integrations. */
|
|
33
|
-
export interface HistorySubject {
|
|
34
|
-
/** Stable identifier used to reference this record across commands and storage. */
|
|
35
|
-
id: string;
|
|
36
|
-
/** Filesystem path used for history resolution. */
|
|
37
|
-
historyPath: string;
|
|
38
|
-
/** Value that configures or reports located for this contract. */
|
|
39
|
-
located: Awaited<ReturnType<typeof locateItem>>;
|
|
40
|
-
}
|
|
41
31
|
/** Documents the history redact result payload exchanged by command, SDK, and package integrations. */
|
|
42
32
|
export interface HistoryRedactResult {
|
|
43
33
|
/** Stable identifier used to reference this record across commands and storage. */
|
|
@@ -104,8 +94,6 @@ declare function redactUnknownValue(value: unknown, rules: RedactionRule[], repl
|
|
|
104
94
|
replacements: number;
|
|
105
95
|
};
|
|
106
96
|
declare function hasItemMetadata(replay: ReplayDocument): boolean;
|
|
107
|
-
/** Implements resolve history subject for the public runtime surface of this module. */
|
|
108
|
-
export declare function resolveHistorySubject(pmRoot: string, id: string, settings: Awaited<ReturnType<typeof readSettings>>, typeToFolder: Record<string, string>): Promise<HistorySubject>;
|
|
109
97
|
/** Implements run history redact for the public runtime surface of this module. */
|
|
110
98
|
export declare function runHistoryRedact(id: string, options: HistoryRedactCommandOptions, global: GlobalOptions): Promise<HistoryRedactResult>;
|
|
111
99
|
/** Public contract for test only, shared by SDK and presentation-layer consumers. */
|
|
@@ -120,4 +108,3 @@ export declare const _testOnly: {
|
|
|
120
108
|
redactStringValue: typeof redactStringValue;
|
|
121
109
|
redactUnknownValue: typeof redactUnknownValue;
|
|
122
110
|
};
|
|
123
|
-
export {};
|