@unbrained/pm-cli 2026.9.6 → 2026.9.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/pm-developer/SKILL.md +12 -4
- package/.agents/skills/pm-developer/references/MULTI_AGENT_MERGE.md +19 -10
- package/.agents/skills/pm-extensions/SKILL.md +6 -0
- package/.agents/skills/pm-sdk/SKILL.md +11 -2
- package/.agents/skills/pm-user/SKILL.md +5 -0
- package/.agents/skills/pm-user/references/ECOSYSTEM_PLANNING.md +95 -0
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +218 -182
- package/dist/cli/after-command-context-usage.js +1 -48
- package/dist/cli/argv-utils.js +1 -40
- package/dist/cli/bootstrap-args.js +1 -9
- package/dist/cli/bundle-integrity.js +2 -110
- package/dist/cli/commander-usage.js +11 -771
- package/dist/cli/commands/activity.js +1 -9
- package/dist/cli/commands/aggregate.js +1 -5
- package/dist/cli/commands/append.js +1 -5
- package/dist/cli/commands/claim.js +1 -5
- package/dist/cli/commands/close-many.js +1 -5
- package/dist/cli/commands/close.js +1 -9
- package/dist/cli/commands/comments.js +1 -5
- package/dist/cli/commands/config.js +1 -9
- package/dist/cli/commands/context.js +1 -9
- package/dist/cli/commands/contracts.js +1 -5
- package/dist/cli/commands/copy.js +1 -9
- package/dist/cli/commands/create.js +1 -9
- package/dist/cli/commands/delete.js +1 -9
- package/dist/cli/commands/deps.js +1 -9
- package/dist/cli/commands/docs.js +1 -9
- package/dist/cli/commands/duplicates.js +1 -9
- package/dist/cli/commands/eval.js +1 -9
- package/dist/cli/commands/extension/describe.js +1 -5
- package/dist/cli/commands/extension/scaffold.js +1 -5
- package/dist/cli/commands/extension/shared.js +1 -5
- package/dist/cli/commands/extension.js +1 -9
- package/dist/cli/commands/files.js +1 -9
- package/dist/cli/commands/focus.js +1 -9
- package/dist/cli/commands/gc.js +1 -9
- package/dist/cli/commands/get.js +1 -9
- package/dist/cli/commands/graph.js +1 -10
- package/dist/cli/commands/health.js +1 -9
- package/dist/cli/commands/history-compact.js +1 -10
- package/dist/cli/commands/history-redact.js +1 -11
- package/dist/cli/commands/history-repair.js +1 -10
- package/dist/cli/commands/history.js +1 -5
- package/dist/cli/commands/index.js +1 -58
- package/dist/cli/commands/init-agent-guidance.js +1 -9
- package/dist/cli/commands/init.js +1 -9
- package/dist/cli/commands/learnings.js +1 -5
- package/dist/cli/commands/lifecycle-transitions.js +1 -5
- package/dist/cli/commands/list.js +1 -9
- package/dist/cli/commands/merge.js +1 -11
- package/dist/cli/commands/next.js +1 -9
- package/dist/cli/commands/notes.js +1 -5
- package/dist/cli/commands/plan.js +1 -9
- package/dist/cli/commands/profile.js +1 -9
- package/dist/cli/commands/restore.js +1 -9
- package/dist/cli/commands/scheduling-shortcuts.js +1 -9
- package/dist/cli/commands/schema.js +1 -10
- package/dist/cli/commands/search.js +1 -9
- package/dist/cli/commands/stats.js +1 -9
- package/dist/cli/commands/telemetry.js +1 -9
- package/dist/cli/commands/test-all.js +1 -9
- package/dist/cli/commands/test-runs.js +1 -9
- package/dist/cli/commands/test.js +1 -9
- package/dist/cli/commands/update-many.js +1 -5
- package/dist/cli/commands/update.js +1 -9
- package/dist/cli/commands/upgrade.js +1 -5
- package/dist/cli/commands/validate.js +1 -15
- package/dist/cli/context-intent-invocation.js +1 -20
- package/dist/cli/description-stdin.js +1 -17
- package/dist/cli/error-guidance.js +1 -1353
- package/dist/cli/extension-command-help.js +5 -636
- package/dist/cli/extension-command-options.js +1 -427
- package/dist/cli/extension-recovery.js +1 -126
- package/dist/cli/help-content.js +2 -1001
- package/dist/cli/help-json-payload.js +4 -570
- package/dist/cli/main.d.ts +4 -0
- package/dist/cli/main.js +5 -2573
- package/dist/cli/migration-gates.js +1 -289
- package/dist/cli/public.js +1 -20
- package/dist/cli/register-annotations.js +1 -270
- package/dist/cli/register-assurance.js +1 -62
- package/dist/cli/register-files-lookup.js +1 -56
- package/dist/cli/register-history-activity.d.ts +8 -0
- package/dist/cli/register-history-activity.js +2 -0
- package/dist/cli/register-history-author.js +1 -38
- package/dist/cli/register-history-maintenance.d.ts +9 -0
- package/dist/cli/register-history-maintenance.js +2 -0
- package/dist/cli/register-list-query.js +10 -943
- package/dist/cli/register-mutation-options.js +1 -9
- package/dist/cli/register-mutation.js +19 -1893
- package/dist/cli/register-operations.js +1 -920
- package/dist/cli/register-setup.js +1 -716
- package/dist/cli/register-structured-mutation.js +1 -196
- package/dist/cli/registration-helpers.js +1 -5
- package/dist/cli/runtime-compatibility-boundary.js +4 -42
- package/dist/cli/schema-registration-helpers.js +1 -73
- package/dist/cli/search-refresh.js +1 -13
- package/dist/cli/stats-analytics-json.js +1 -68
- package/dist/cli/telemetry-flush.js +1 -10
- package/dist/cli-bundle/bundle-manifest.json +164 -156
- package/dist/cli-bundle/chunks/chunk-3BZZA6A3.js +5 -0
- package/dist/cli-bundle/chunks/chunk-AMRDVX36.js +235 -0
- package/dist/cli-bundle/chunks/chunk-DAM4CBBR.js +2202 -0
- package/dist/cli-bundle/chunks/{chunk-WYRZZ5ZE.js → chunk-DEZPZOQ7.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-FLDWYEND.js +77 -0
- package/dist/cli-bundle/chunks/{chunk-NPN5I67J.js → chunk-G5ADGQ2D.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-JAAEYHUA.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-JX4DH4WC.js → chunk-KR3RP4FH.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-LEZOUXG6.js +2 -0
- package/dist/cli-bundle/chunks/chunk-NSAPNEYH.js +2 -0
- package/dist/cli-bundle/chunks/chunk-QOEKOECV.js +29 -0
- package/dist/cli-bundle/chunks/chunk-RHSFOMHU.js +2 -0
- package/dist/cli-bundle/chunks/chunk-XOD2PCB6.js +20 -0
- package/dist/cli-bundle/chunks/{chunk-JT6XF6GE.js → chunk-YVEQ2AMO.js} +4 -4
- package/dist/cli-bundle/chunks/register-list-query-KSK3R63M.js +11 -0
- package/dist/cli-bundle/chunks/register-mutation-IQ5C7U6O.js +20 -0
- package/dist/cli-bundle/chunks/{register-operations-I5W3KMGB.js → register-operations-DWVHR2NC.js} +2 -2
- package/dist/cli-bundle/chunks/register-setup-BQ5SVD4B.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-3WRPWLA7.js +3 -0
- package/dist/cli-bundle/focused-chunks/chunk-7MBUII7U.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-COPBO5HW.js +8 -0
- package/dist/cli-bundle/focused-chunks/chunk-DUN4IXYN.js +20 -0
- package/dist/cli-bundle/focused-chunks/{chunk-LIJIA4TY.js → chunk-EE5QSM4Z.js} +3 -3
- package/dist/cli-bundle/focused-chunks/chunk-HJVARYM3.js +6 -0
- package/dist/cli-bundle/focused-chunks/chunk-IAUOUGVR.js +177 -0
- package/dist/cli-bundle/focused-chunks/chunk-KOOMJ54F.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-MZDXX7JY.js +56 -0
- package/dist/cli-bundle/focused-chunks/{chunk-M6PBRFSH.js → chunk-OPFHFGDD.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-QHNETP77.js +9 -0
- package/dist/cli-bundle/focused-chunks/{chunk-3BZEOXLT.js → chunk-RMWES4M6.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-RXT4P5QH.js +10 -0
- package/dist/cli-bundle/focused-chunks/chunk-SDOL6FM2.js +12 -0
- package/dist/cli-bundle/focused-chunks/chunk-SQV4AAUC.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-PEFABF7E.js → chunk-WE3IUNIW.js} +3 -3
- package/dist/cli-bundle/focused-chunks/chunk-YALOUBWJ.js +2 -0
- package/dist/cli-bundle/main.js +20 -20
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +2 -2
- package/dist/cli-bundle/sdk-core.js +29 -29
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +42 -42
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +11 -11
- package/dist/cli.js +1 -104
- package/dist/core/checkpoint/checkpoint-gc.js +1 -169
- package/dist/core/checkpoint/mutation-checkpoint.js +2 -133
- package/dist/core/config/nested-settings.js +1 -534
- package/dist/core/config/positional-value.js +1 -109
- package/dist/core/diagnostics/remediation.js +1 -506
- package/dist/core/extensions/activation-summary-markdown.js +2 -145
- package/dist/core/extensions/activation-summary.js +1 -92
- package/dist/core/extensions/activation-transaction.js +1 -46
- package/dist/core/extensions/capability-usage.js +1 -173
- package/dist/core/extensions/command-hook-context.js +1 -13
- package/dist/core/extensions/command-metadata-contract.js +1 -22
- package/dist/core/extensions/command-visibility-tier.js +1 -29
- package/dist/core/extensions/contribution-inventory.js +1 -173
- package/dist/core/extensions/exporter-output-contract.js +1 -66
- package/dist/core/extensions/extension-candidate.js +1 -18
- package/dist/core/extensions/extension-capability-aliases.js +1 -158
- package/dist/core/extensions/extension-hook-runtime.js +1 -699
- package/dist/core/extensions/extension-policy.js +1 -599
- package/dist/core/extensions/extension-registries.js +1 -62
- package/dist/core/extensions/extension-runtime-helpers.js +1 -33
- package/dist/core/extensions/extension-types.js +1 -102
- package/dist/core/extensions/flag-definition-validation.js +1 -52
- package/dist/core/extensions/flag-value-types.js +1 -64
- package/dist/core/extensions/index.js +1 -526
- package/dist/core/extensions/item-field-types.js +1 -39
- package/dist/core/extensions/item-fields.js +1 -261
- package/dist/core/extensions/loader.js +1 -2223
- package/dist/core/extensions/manifest-schema.js +1 -69
- package/dist/core/extensions/module-graph-snapshot.js +1 -33
- package/dist/core/extensions/preflight-ownership.js +1 -41
- package/dist/core/extensions/registration-validation.js +1 -82
- package/dist/core/extensions/registration-values.js +1 -209
- package/dist/core/extensions/reserved-host-flags.js +1 -36
- package/dist/core/extensions/runtime-registrations.js +1 -67
- package/dist/core/extensions/service-ownership.js +1 -19
- package/dist/core/extensions/version-compat.js +1 -216
- package/dist/core/fs/fs-utils.js +2 -158
- package/dist/core/fs/host-environment-errors.js +1 -141
- package/dist/core/fs/index.js +1 -9
- package/dist/core/fs/path-utils.js +1 -17
- package/dist/core/governance/content-fields.js +1 -160
- package/dist/core/governance/issue-codes.js +1 -151
- package/dist/core/governance/metadata-coverage.js +1 -358
- package/dist/core/history/drift-cache.js +3 -72
- package/dist/core/history/drift-scan.js +1 -342
- package/dist/core/history/event-classification.js +1 -109
- package/dist/core/history/event-index.js +8 -784
- package/dist/core/history/history-compact-bulk.js +1 -104
- package/dist/core/history/history-diff.js +1 -158
- package/dist/core/history/history-rewrite.d.ts +6 -1
- package/dist/core/history/history-rewrite.js +1 -107
- package/dist/core/history/history-storage-stats.js +1 -102
- package/dist/core/history/history-stream-policy.js +1 -62
- package/dist/core/history/history.js +2 -617
- package/dist/core/history/identity.js +1 -30
- package/dist/core/history/index.js +1 -9
- package/dist/core/history/projection.js +1 -196
- package/dist/core/history/read.d.ts +9 -0
- package/dist/core/history/read.js +1 -57
- package/dist/core/history/replay.js +2 -439
- package/dist/core/history/version-address.js +1 -32
- package/dist/core/history/workspace-history.js +2 -433
- package/dist/core/io/body-file.js +1 -62
- package/dist/core/io/bulk-ids-input.js +1 -112
- package/dist/core/item/actionability.js +1 -327
- package/dist/core/item/dependency-reference.js +1 -20
- package/dist/core/item/id.js +1 -112
- package/dist/core/item/index.js +1 -12
- package/dist/core/item/item-format-version.js +1 -78
- package/dist/core/item/item-format.js +5 -1473
- package/dist/core/item/item-record.js +1 -23
- package/dist/core/item/item-type-definition.js +1 -133
- package/dist/core/item/parent-reference-policy.js +1 -57
- package/dist/core/item/parse.js +2 -603
- package/dist/core/item/plan-lifecycle.js +1 -19
- package/dist/core/item/priority.js +1 -61
- package/dist/core/item/sprint-release-format.js +1 -38
- package/dist/core/item/status-filter.js +1 -115
- package/dist/core/item/status.js +1 -43
- package/dist/core/item/toon-decode.js +1 -29
- package/dist/core/item/type-registry.js +1 -715
- package/dist/core/item/type-synonyms.js +1 -38
- package/dist/core/lock/index.js +1 -9
- package/dist/core/lock/lock-gc.js +1 -240
- package/dist/core/lock/lock.js +3 -590
- package/dist/core/output/mutation-projection.js +1 -217
- package/dist/core/output/output-control.js +1 -25
- package/dist/core/output/output.js +11 -494
- package/dist/core/output/query-summary.js +1 -58
- package/dist/core/output/tabular.js +1 -77
- package/dist/core/packages/manifest.js +1 -244
- package/dist/core/packages/root.js +1 -84
- package/dist/core/profile/profile-describe.js +1 -83
- package/dist/core/profile/profile-lint.js +1 -415
- package/dist/core/profile/profile-plan.js +0 -0
- package/dist/core/profile/profile-presets.js +1 -370
- package/dist/core/reproducibility/context.js +1 -82
- package/dist/core/schema/fields-file.js +2 -288
- package/dist/core/schema/item-types-file.js +2 -296
- package/dist/core/schema/runtime-field-filters.js +1 -49
- package/dist/core/schema/runtime-field-values.js +1 -313
- package/dist/core/schema/runtime-schema.js +2 -826
- package/dist/core/schema/status-defs-file.js +2 -227
- package/dist/core/schema/status-token.js +1 -31
- package/dist/core/schema/type-inference.js +1 -95
- package/dist/core/schema/type-presets.js +1 -87
- package/dist/core/schema/type-workflows.js +1 -104
- package/dist/core/search/background-refresh.js +2 -286
- package/dist/core/search/bm25.js +1 -146
- package/dist/core/search/cache.js +2 -534
- package/dist/core/search/corpus.js +1 -311
- package/dist/core/search/embedding-batches.js +1 -163
- package/dist/core/search/eval.js +1 -225
- package/dist/core/search/http-client.js +1 -75
- package/dist/core/search/providers.js +1 -242
- package/dist/core/search/relevance.js +1 -244
- package/dist/core/search/semantic-defaults.js +1 -199
- package/dist/core/search/staleness.js +1 -30
- package/dist/core/search/vector-stores.js +2 -664
- package/dist/core/search/vectorization-metadata.js +1 -81
- package/dist/core/sentry/helpers.js +1 -272
- package/dist/core/sentry/instrument.js +1 -387
- package/dist/core/session/session-state.js +1 -260
- package/dist/core/shared/agent-session-context.js +1 -133
- package/dist/core/shared/author.js +1 -1172
- package/dist/core/shared/command-types.js +1 -4
- package/dist/core/shared/conflict-markers.js +1 -31
- package/dist/core/shared/constants.js +1 -405
- package/dist/core/shared/errors.js +1 -20
- package/dist/core/shared/html-entity-decode.js +1 -131
- package/dist/core/shared/index.js +1 -12
- package/dist/core/shared/item-metadata-contract.js +1 -89
- package/dist/core/shared/lazy-module.js +1 -16
- package/dist/core/shared/levenshtein.js +1 -61
- package/dist/core/shared/memo.js +1 -19
- package/dist/core/shared/numeric-parsers.js +1 -20
- package/dist/core/shared/option-alias-visibility.js +1 -67
- package/dist/core/shared/primitives.js +1 -127
- package/dist/core/shared/serial-queue.js +1 -79
- package/dist/core/shared/serialization.js +1 -210
- package/dist/core/shared/split-comma-list.js +1 -30
- package/dist/core/shared/text-normalization.js +1 -38
- package/dist/core/shared/time.js +1 -306
- package/dist/core/store/index.js +1 -12
- package/dist/core/store/item-format-migration.js +1 -125
- package/dist/core/store/item-metadata-cache.js +1 -1116
- package/dist/core/store/item-metadata-query-index.js +9 -394
- package/dist/core/store/item-metadata-read-work.js +1 -43
- package/dist/core/store/item-store.js +1 -693
- package/dist/core/store/paths.d.ts +1 -1
- package/dist/core/store/paths.js +1 -214
- package/dist/core/store/settings-read-cache.js +1 -85
- package/dist/core/store/settings-validator.js +1 -421
- package/dist/core/store/settings.js +3 -1309
- package/dist/core/store/tracker-preflight.js +1 -141
- package/dist/core/telemetry/consent.js +5 -108
- package/dist/core/telemetry/observability.js +1 -246
- package/dist/core/telemetry/runtime.js +4 -1988
- package/dist/core/test/background-runs.js +4 -945
- package/dist/core/test/item-test-run-tracking.js +1 -63
- package/dist/core/test/run-selectors.js +1 -120
- package/dist/core/validate/estimate-defaults.js +1 -89
- package/dist/core/validate/fix-planning.js +1 -189
- package/dist/core/validate/linked-artifact-reference.js +1 -36
- package/dist/core/validate/missing-by-type.js +1 -34
- package/dist/core/validate/missing-link-owners.js +1 -95
- package/dist/core/validate/stale-file-classification.js +1 -82
- package/dist/mcp/http-server.js +5 -448
- package/dist/mcp/legacy-adapter.js +1 -77
- package/dist/mcp/runtime-capabilities.js +1 -200
- package/dist/mcp/server.js +4 -1233
- package/dist/mcp/tool-definitions.js +1 -804
- package/dist/sdk/actionability.js +1 -13
- package/dist/sdk/agent/closed-domain-contracts.js +1 -161
- package/dist/sdk/agent/command-recovery.js +1 -59
- package/dist/sdk/agent/command-suggestions.js +1 -66
- package/dist/sdk/agent/create-option-policy.js +1 -31
- package/dist/sdk/agent/identity-config.js +1 -106
- package/dist/sdk/agent/item-addressing.js +1 -207
- package/dist/sdk/agent/refusal-closure-census.js +1 -151
- package/dist/sdk/agent/refusal-closure.js +1 -133
- package/dist/sdk/agent/refusal-corpus-contracts.js +1 -193
- package/dist/sdk/agent/refusal-reachability.js +1 -593
- package/dist/sdk/agent/subcommand-recovery.js +1 -83
- package/dist/sdk/agent/task-transcript-contracts.js +1 -197
- package/dist/sdk/agent/tracker-preflight-contracts.js +1 -126
- package/dist/sdk/agent-capability-contracts.js +1 -428
- package/dist/sdk/agent-session-context.js +1 -9
- package/dist/sdk/annotations.js +1 -448
- package/dist/sdk/author-attribution.js +1 -468
- package/dist/sdk/authoring.js +1 -20
- package/dist/sdk/cli-bootstrap.js +1 -838
- package/dist/sdk/cli-contracts/agent-output-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts/agent-output-contracts.js +4 -476
- package/dist/sdk/cli-contracts/bootstrap-command-scanner.js +1 -79
- package/dist/sdk/cli-contracts/command-aliases.d.ts +4 -0
- package/dist/sdk/cli-contracts/command-aliases.js +1 -107
- package/dist/sdk/cli-contracts/command-exit-contracts.js +1 -151
- package/dist/sdk/cli-contracts/commander-mutation-options.js +1 -1081
- package/dist/sdk/cli-contracts/commander-types.js +1 -159
- package/dist/sdk/cli-contracts/completeness.js +1 -393
- package/dist/sdk/cli-contracts/enum-contracts.js +1 -222
- package/dist/sdk/cli-contracts/flag-contracts.js +1 -1947
- package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +1 -347
- package/dist/sdk/cli-contracts/grammar-contracts.js +1 -986
- package/dist/sdk/cli-contracts/registration-helpers.js +7 -990
- package/dist/sdk/cli-contracts/runtime-contracts.d.ts +5 -0
- package/dist/sdk/cli-contracts/runtime-contracts.js +1 -2090
- package/dist/sdk/cli-contracts/schemas/assurance-definition.js +1 -324
- package/dist/sdk/cli-contracts/string-lists.js +1 -16
- package/dist/sdk/cli-contracts/tool-option-contracts.js +1 -461
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +1 -2167
- package/dist/sdk/cli-contracts/tool-schema.d.ts +3 -1
- package/dist/sdk/cli-contracts/tool-schema.js +1 -1664
- package/dist/sdk/cli-contracts/typed-action-inputs.js +1 -4
- package/dist/sdk/cli-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts.js +1 -17
- package/dist/sdk/cli-program.js +1 -49
- package/dist/sdk/command-line.d.ts +2 -5
- package/dist/sdk/command-line.js +1 -78
- package/dist/sdk/comments.js +1 -133
- package/dist/sdk/compile-cache.js +1 -73
- package/dist/sdk/completion.js +157 -837
- package/dist/sdk/compose.js +1 -1090
- package/dist/sdk/config.js +1 -1204
- package/dist/sdk/context/recency.js +1 -33
- package/dist/sdk/context/semantic-session-attribution.js +1 -82
- package/dist/sdk/context/usage-egress.js +1 -29
- package/dist/sdk/context/usage-ledger.js +3 -185
- package/dist/sdk/context-intent-contracts.js +1 -709
- package/dist/sdk/context-intent-runtime.js +1 -115
- package/dist/sdk/context-packing.js +1 -218
- package/dist/sdk/context-relevance.js +1 -503
- package/dist/sdk/context-signal-store.js +2 -426
- package/dist/sdk/context-usage.js +1 -367
- package/dist/sdk/contracts.js +1 -23
- package/dist/sdk/core-governance.js +1 -14
- package/dist/sdk/core.js +1 -14
- package/dist/sdk/corpus-shape.js +1 -401
- package/dist/sdk/define.js +1 -220
- package/dist/sdk/dependencies.js +1 -718
- package/dist/sdk/dependency-flag-validation.js +1 -156
- package/dist/sdk/dependency-provenance.js +1 -135
- package/dist/sdk/docs.js +1 -14
- package/dist/sdk/duplicates.js +1 -40
- package/dist/sdk/environment/agent-environment.js +1 -466
- package/dist/sdk/environment/host-environment-errors.js +1 -8
- package/dist/sdk/environment/project-runtime-compatibility.js +1 -481
- package/dist/sdk/environment/source-context.js +1 -28
- package/dist/sdk/environment/tracker-preflight.js +1 -9
- package/dist/sdk/error-code-catalog.js +1 -153
- package/dist/sdk/error-runtime.js +1 -58
- package/dist/sdk/errors.js +1 -58
- package/dist/sdk/eval.js +1 -190
- package/dist/sdk/extension/author-manifest.js +1 -92
- package/dist/sdk/extension/bundled-catalog.js +1 -332
- package/dist/sdk/extension/concurrency.js +1 -25
- package/dist/sdk/extension/copy-scope.d.ts +2 -0
- package/dist/sdk/extension/copy-scope.js +2 -0
- package/dist/sdk/extension/custom-field-collisions.js +1 -30
- package/dist/sdk/extension/describe.js +3 -189
- package/dist/sdk/extension/doctor.js +1 -606
- package/dist/sdk/extension/install-plan.d.ts +69 -0
- package/dist/sdk/extension/install-plan.js +2 -0
- package/dist/sdk/extension/install-receipts.d.ts +7 -0
- package/dist/sdk/extension/install-receipts.js +2 -0
- package/dist/sdk/extension/install-runtime.js +3 -313
- package/dist/sdk/extension/install-snapshot.js +1 -66
- package/dist/sdk/extension/install-sources.js +5 -1057
- package/dist/sdk/extension/managed-state.js +2 -252
- package/dist/sdk/extension/migrations.js +2 -174
- package/dist/sdk/extension/output-ownership.js +1 -25
- package/dist/sdk/extension/runtime-summary.js +1 -18
- package/dist/sdk/extension/scaffold.js +4 -2308
- package/dist/sdk/extension/shared.js +1 -147
- package/dist/sdk/extension/source-resolution.js +1 -65
- package/dist/sdk/extension/update-check.js +1 -67
- package/dist/sdk/extension-command-context.js +1 -44
- package/dist/sdk/extension-contracts.js +1 -73
- package/dist/sdk/extension.d.ts +7 -2
- package/dist/sdk/extension.js +1 -2196
- package/dist/sdk/files.js +1 -535
- package/dist/sdk/flag-invocation-contracts.d.ts +0 -5
- package/dist/sdk/flag-invocation-contracts.js +1 -344
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -2224
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -2236
- package/dist/sdk/generated-error-code-catalog.js +1 -16
- package/dist/sdk/governance/assurance-action-contracts.js +1 -4
- package/dist/sdk/governance/assurance-action.js +1 -411
- package/dist/sdk/governance/assurance-limits.js +1 -10
- package/dist/sdk/governance/assurance-mutation-error.js +1 -81
- package/dist/sdk/governance/assurance-presets.js +1 -135
- package/dist/sdk/governance/assurance-runtime.js +1 -238
- package/dist/sdk/governance/assurance.js +4 -1182
- package/dist/sdk/governance/boundary-fixtures.js +1 -200
- package/dist/sdk/governance/coverage-assurance.js +1 -60
- package/dist/sdk/governance/defect-recurrence-coverage.js +1 -188
- package/dist/sdk/governance/defect-recurrence-graph.js +1 -120
- package/dist/sdk/governance/defect-recurrence-signals.js +1 -24
- package/dist/sdk/governance/defect-recurrence.js +1 -623
- package/dist/sdk/governance/extension-host-version.js +1 -115
- package/dist/sdk/governance/gc.js +1 -368
- package/dist/sdk/governance/health.js +1 -2367
- package/dist/sdk/governance/hierarchy-validation.js +1 -108
- package/dist/sdk/governance/linked-file-report.js +1 -71
- package/dist/sdk/governance/merge-receipt-history.js +1 -206
- package/dist/sdk/governance/provenance-health.js +1 -282
- package/dist/sdk/governance/reindex.js +4 -761
- package/dist/sdk/governance/stale-work.js +1 -82
- package/dist/sdk/governance/status-role-diagnostics.js +1 -35
- package/dist/sdk/governance/storage-integrity.js +1 -280
- package/dist/sdk/governance/tracked-runtime-cache.js +1 -106
- package/dist/sdk/governance/upgrade.js +2 -327
- package/dist/sdk/governance/validate-history-drift.js +1 -81
- package/dist/sdk/governance/validate-item-reader.js +1 -17
- package/dist/sdk/governance/validate-normalization.js +1 -36
- package/dist/sdk/governance/validate.js +1 -2261
- package/dist/sdk/governance/workspace-position.js +1 -163
- package/dist/sdk/governance.d.ts +1 -0
- package/dist/sdk/governance.js +1 -31
- package/dist/sdk/graph/adapter.js +1 -181
- package/dist/sdk/graph/analytics.js +1 -474
- package/dist/sdk/graph/assembly.js +1 -377
- package/dist/sdk/graph/cache.js +1 -160
- package/dist/sdk/graph/centrality.js +1 -258
- package/dist/sdk/graph/conformance.js +1 -130
- package/dist/sdk/graph/deadline-scheduling.d.ts +90 -0
- package/dist/sdk/graph/deadline-scheduling.js +2 -0
- package/dist/sdk/graph/durable-cache.d.ts +1 -1
- package/dist/sdk/graph/durable-cache.js +1 -361
- package/dist/sdk/graph/governance-contracts.js +1 -34
- package/dist/sdk/graph/governance.d.ts +13 -1
- package/dist/sdk/graph/governance.js +1 -735
- package/dist/sdk/graph/hierarchy-integrity.js +1 -310
- package/dist/sdk/graph/index.d.ts +3 -2
- package/dist/sdk/graph/index.js +1 -26
- package/dist/sdk/graph/lifecycle-coverage.d.ts +32 -0
- package/dist/sdk/graph/lifecycle-coverage.js +2 -0
- package/dist/sdk/graph/mutation-advisory.js +1 -176
- package/dist/sdk/graph/remediation.js +1 -197
- package/dist/sdk/graph/run.d.ts +15 -1
- package/dist/sdk/graph/run.js +1 -768
- package/dist/sdk/graph/scheduling.js +1 -124
- package/dist/sdk/graph/traversal.js +1 -284
- package/dist/sdk/graph/workspace-relationship-kind-registry.js +1 -27
- package/dist/sdk/graph.js +1 -15
- package/dist/sdk/guide-topics.js +1 -707
- package/dist/sdk/guide.js +1 -279
- package/dist/sdk/history/maintenance.d.ts +71 -0
- package/dist/sdk/history/maintenance.js +2 -0
- package/dist/sdk/history/salvage.js +2 -247
- package/dist/sdk/history/subject.d.ts +19 -0
- package/dist/sdk/history/subject.js +2 -0
- package/dist/sdk/history-analytics.js +1 -282
- package/dist/sdk/history-compact.js +1 -527
- package/dist/sdk/history-mcp.js +1 -68
- package/dist/sdk/history-provenance.js +1 -182
- package/dist/sdk/history-read.js +1 -96
- package/dist/sdk/history-redact.d.ts +1 -14
- package/dist/sdk/history-redact.js +1 -643
- package/dist/sdk/history-repair.d.ts +5 -0
- package/dist/sdk/history-repair.js +1 -657
- package/dist/sdk/improvement-ledger-validation.js +1 -62
- package/dist/sdk/improvement-ledger.js +2 -257
- package/dist/sdk/index.d.ts +4 -0
- package/dist/sdk/index.js +1 -183
- package/dist/sdk/init-agent-guidance.js +2 -496
- package/dist/sdk/init.js +2 -820
- package/dist/sdk/invocation-author.js +1 -39
- package/dist/sdk/item-children.js +1 -90
- package/dist/sdk/item-metadata-index.js +1 -15
- package/dist/sdk/item-schedule.js +1 -27
- package/dist/sdk/item-transaction.js +1 -396
- package/dist/sdk/learnings.js +1 -29
- package/dist/sdk/lifecycle/append.js +2 -53
- package/dist/sdk/lifecycle/claim.d.ts +2 -0
- package/dist/sdk/lifecycle/claim.js +1 -242
- package/dist/sdk/lifecycle/close-many.js +1 -438
- package/dist/sdk/lifecycle/close.js +1 -468
- package/dist/sdk/lifecycle/copy.js +1 -212
- package/dist/sdk/lifecycle/create.js +1 -1949
- package/dist/sdk/lifecycle/delete.js +1 -45
- package/dist/sdk/lifecycle/event-validation-messages.js +1 -91
- package/dist/sdk/lifecycle/focus.js +1 -91
- package/dist/sdk/lifecycle/hierarchy-mutation-lock.js +1 -24
- package/dist/sdk/lifecycle/legacy-none-tokens.js +1 -149
- package/dist/sdk/lifecycle/lifecycle-transitions.js +1 -40
- package/dist/sdk/lifecycle/mcp-actions.d.ts +2 -0
- package/dist/sdk/lifecycle/mcp-actions.js +1 -51
- package/dist/sdk/lifecycle/metadata-normalizers.js +1 -46
- package/dist/sdk/lifecycle/mutation-command-options.js +1 -9
- package/dist/sdk/lifecycle/plan.js +1 -1606
- package/dist/sdk/lifecycle/recurrence-parsers.js +1 -147
- package/dist/sdk/lifecycle/reopen.js +1 -68
- package/dist/sdk/lifecycle/repeatable-metadata-parsers.js +1 -143
- package/dist/sdk/lifecycle/restore.d.ts +1 -0
- package/dist/sdk/lifecycle/restore.js +1 -330
- package/dist/sdk/lifecycle/shared-unset-fields.js +1 -295
- package/dist/sdk/lifecycle/update-many.js +1 -861
- package/dist/sdk/lifecycle/update.js +1 -2136
- package/dist/sdk/lifecycle-completion.js +1 -92
- package/dist/sdk/lifecycle-policy.js +1 -120
- package/dist/sdk/linked-artifacts.js +1 -530
- package/dist/sdk/mcp/apps.js +4 -133
- package/dist/sdk/mcp/authorization.js +1 -404
- package/dist/sdk/mcp/discovery.js +1 -494
- package/dist/sdk/mcp/interactions.js +1 -336
- package/dist/sdk/mcp/protocol.d.ts +7 -0
- package/dist/sdk/mcp/protocol.js +1 -184
- package/dist/sdk/mcp/skills.js +1 -389
- package/dist/sdk/mcp/subscriptions.js +1 -211
- package/dist/sdk/mcp/tasks.js +2 -430
- package/dist/sdk/mcp/transport.js +1 -260
- package/dist/sdk/merge/abandoned-receipts.js +1 -46
- package/dist/sdk/merge/driver.js +1 -212
- package/dist/sdk/merge/index.js +1 -16
- package/dist/sdk/merge/install.js +3 -561
- package/dist/sdk/merge/receipt-file-boundary.js +1 -46
- package/dist/sdk/merge/receipt-operation.js +1 -96
- package/dist/sdk/merge/receipt-schema.js +1 -397
- package/dist/sdk/merge/receipts.js +4 -525
- package/dist/sdk/merge/reconcile.js +1 -352
- package/dist/sdk/merge/three-way.js +3 -775
- package/dist/sdk/merge.js +1 -10
- package/dist/sdk/mutation-events.js +1 -292
- package/dist/sdk/mutation-guard.js +1 -216
- package/dist/sdk/notes.js +1 -139
- package/dist/sdk/output-contracts.js +1 -172
- package/dist/sdk/output-projection.js +1 -430
- package/dist/sdk/output-token-accounting.js +1 -140
- package/dist/sdk/output.js +1 -64
- package/dist/sdk/ownership-source.js +1 -21
- package/dist/sdk/package-import-adapters.js +1 -442
- package/dist/sdk/package-migrations.js +1 -20
- package/dist/sdk/package-runtime-options.js +1 -80
- package/dist/sdk/pagination.js +1 -162
- package/dist/sdk/profile.js +1 -454
- package/dist/sdk/provenance.js +1 -258
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/query/activity.js +1 -401
- package/dist/sdk/query/aggregate.d.ts +16 -0
- package/dist/sdk/query/aggregate.js +1 -390
- package/dist/sdk/query/calendar.js +1 -964
- package/dist/sdk/query/complete-list.js +1 -215
- package/dist/sdk/query/context.js +1 -1702
- package/dist/sdk/query/duplicate-candidates.js +1 -70
- package/dist/sdk/query/get.js +1 -450
- package/dist/sdk/query/history.js +1 -186
- package/dist/sdk/query/item-filter-options.js +1 -9
- package/dist/sdk/query/light-metadata.js +1 -18
- package/dist/sdk/query/list-filter-shared.js +1 -81
- package/dist/sdk/query/list.js +1 -1304
- package/dist/sdk/query/multi-value-filters.js +1 -78
- package/dist/sdk/query/next.js +1 -513
- package/dist/sdk/query/parsers.js +1 -44
- package/dist/sdk/query/projection-contracts.js +1 -184
- package/dist/sdk/query/search-contracts.js +1 -230
- package/dist/sdk/query/search-pagination.js +1 -35
- package/dist/sdk/query/search-rendering.js +1 -105
- package/dist/sdk/query/search.js +2 -1987
- package/dist/sdk/query.js +1 -35
- package/dist/sdk/read-output/continuation.js +1 -194
- package/dist/sdk/read-output-budget.js +1 -135
- package/dist/sdk/read-output-contracts.js +1 -1225
- package/dist/sdk/read-output-rows.js +1 -186
- package/dist/sdk/read-output-session.js +1 -208
- package/dist/sdk/relationship-analytics.js +1 -410
- package/dist/sdk/relationship-context.js +1 -284
- package/dist/sdk/relationship-history.js +4 -519
- package/dist/sdk/relationship-kinds/contract.js +1 -22
- package/dist/sdk/relationship-migration.js +1 -77
- package/dist/sdk/relationships.js +1 -579
- package/dist/sdk/reproducibility/process.js +1 -87
- package/dist/sdk/runtime-action-aliases.js +1 -59
- package/dist/sdk/runtime-extended-actions.js +1 -177
- package/dist/sdk/runtime-input.js +1 -614
- package/dist/sdk/runtime-primitives.js +1 -84
- package/dist/sdk/runtime-public-contracts.js +1 -4
- package/dist/sdk/runtime-stats-options.js +1 -38
- package/dist/sdk/runtime.js +1 -1928
- package/dist/sdk/scheduling-shortcuts.js +1 -63
- package/dist/sdk/schema-migration.js +3 -856
- package/dist/sdk/schema.js +1 -1376
- package/dist/sdk/search-refresh-worker.js +1 -18
- package/dist/sdk/similarity-scoring.js +1 -53
- package/dist/sdk/similarity.js +1 -326
- package/dist/sdk/start-task-status.js +1 -14
- package/dist/sdk/stats.js +1 -270
- package/dist/sdk/structured-mutations.js +1 -580
- package/dist/sdk/telemetry-flush.js +1 -13
- package/dist/sdk/telemetry.js +1 -405
- package/dist/sdk/templates.js +2 -292
- package/dist/sdk/test/batch.js +2 -509
- package/dist/sdk/test/entry.js +1 -70
- package/dist/sdk/test/execution.js +6 -2211
- package/dist/sdk/test/linked-command-detection.js +1 -546
- package/dist/sdk/test/measurements.js +1 -91
- package/dist/sdk/test/parsers.js +1 -545
- package/dist/sdk/test/runs.js +1 -193
- package/dist/sdk/test/trust.js +2 -206
- package/dist/sdk/testing.js +4 -1391
- package/dist/sdk/traceability/runtime-files-lookup.js +1 -32
- package/dist/sdk/traceability/source-traceability.js +1 -292
- package/dist/sdk/tracker-root-discovery.js +1 -9
- package/dist/sdk/workspace-contracts-cache.js +1 -28
- package/dist/sdk/workspace-contracts.js +1 -33
- package/dist/sdk/workspace-memory.js +2 -318
- package/dist/sdk/workspace-recipe.js +1 -71
- package/dist/sdk/workspace-snapshot.js +4 -613
- package/dist/sdk/workspace-transaction-gc.js +1 -149
- package/dist/sdk/workspace-transaction.js +2 -363
- package/dist/sdk/workspace.js +3 -127
- package/dist/types/index.js +1 -9
- package/dist/types.js +1 -245
- package/docs/AGENT_GUIDE.md +1 -1
- package/docs/CONTEXT_ALGORITHM_PORTFOLIO.md +167 -0
- package/docs/DIAGNOSTIC_OUTPUT_CONTRACTS.md +9 -3
- package/docs/EXTENSIONS.md +1 -0
- package/docs/HISTORY_MAINTENANCE.md +125 -0
- package/docs/MCP_2026_07_28_CONFORMANCE.md +20 -10
- package/docs/PACKAGE_EVIDENCE.md +92 -0
- package/docs/PLANNING_MEASUREMENTS.md +183 -0
- package/docs/README.md +3 -0
- package/docs/RELEASING.md +1 -0
- package/docs/SCRIPTING.md +21 -0
- package/docs/TESTING.md +23 -0
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +5 -5
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +2 -2
- package/marketplace.json +2 -2
- package/package.json +1 -1
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/scripts/finalize-build.mjs +45 -3
- package/dist/cli-bundle/chunks/chunk-AZDFJGH6.js +0 -9
- package/dist/cli-bundle/chunks/chunk-BAX2BYUW.js +0 -2111
- package/dist/cli-bundle/chunks/chunk-CKOL5U7J.js +0 -77
- package/dist/cli-bundle/chunks/chunk-OF76PSDQ.js +0 -5
- package/dist/cli-bundle/chunks/chunk-QUWFABDM.js +0 -232
- package/dist/cli-bundle/chunks/chunk-QWRRFYK3.js +0 -2
- package/dist/cli-bundle/chunks/chunk-RWWBOWJ5.js +0 -2
- package/dist/cli-bundle/chunks/chunk-WGAOYSYH.js +0 -40
- package/dist/cli-bundle/chunks/chunk-WI2AYPA7.js +0 -2
- package/dist/cli-bundle/chunks/register-list-query-5JL52D33.js +0 -11
- package/dist/cli-bundle/chunks/register-mutation-ZPG7KMVP.js +0 -20
- package/dist/cli-bundle/chunks/register-setup-H4SVAVX7.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-AL5ON6K6.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-CHC2IDXA.js +0 -6
- package/dist/cli-bundle/focused-chunks/chunk-CK6QFAPZ.js +0 -20
- package/dist/cli-bundle/focused-chunks/chunk-EZR3GHFE.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-H2WJWK7L.js +0 -56
- package/dist/cli-bundle/focused-chunks/chunk-NTPY5GSO.js +0 -3
- package/dist/cli-bundle/focused-chunks/chunk-P5O7MP5Y.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-PDMW2E36.js +0 -177
- package/dist/cli-bundle/focused-chunks/chunk-QTVCLMSZ.js +0 -6
- package/dist/cli-bundle/focused-chunks/chunk-QTZRBUYA.js +0 -8
- package/dist/cli-bundle/focused-chunks/chunk-SGQST3PQ.js +0 -12
- package/dist/cli-bundle/focused-chunks/chunk-UKHASMMP.js +0 -10
- package/dist/cli-bundle/focused-chunks/chunk-ZPEKQHOC.js +0 -2
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import{b as Zt,f as wt,h as Et,i as kt,k as Ii,l as Si,m as nn,n as Ti,o as Ci,p as Oi}from"./chunk-3WRPWLA7.js";import{A as wr,D as It,E as Ni,F as Li,G as be,H as me,I as Pi,J as qe,K as _e,N as ji,O as Mi,P as Y,g as Di,i as gr,u as ue,v as vr,w as on,x as fe,y as br,z as ve}from"./chunk-RXT4P5QH.js";import{$ as w,$a as de,A as ui,Aa as en,Bc as rn,Ca as gi,F as Jt,Fa as tn,G as Qt,Ga as vi,H as _r,J as fi,Ja as vt,Ka as hr,Kc as Ai,La as yr,Lc as xi,Ma as bt,Oa as bi,Ob as ki,P as he,Pc as Ri,Ua as wi,V as xe,W as mi,Z as k,_ as Ve,aa as E,eb as Ei,i as qt,ia as _i,ja as Re,ka as pr,la as ye,ma as ge,na as q,oa as pi,oc as le,pb as L,pc as oe,q as Xt,qb as Ke,r as ai,rb as ee,s as ci,sb as T,t as di,ta as hi,u as li,ua as yi,y as Gt,z as Yt}from"./chunk-QHNETP77.js";import{AsyncLocalStorage as Nc}from"node:async_hooks";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="27a9b88e-ee47-55c8-b511-07ce9754346c")}catch{}})();var Er=new Nc,Fi=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function sn(e,t){let n=typeof e=="string"?e.trim():"";return n.length>0?n.slice(0,t):void 0}function De(e,t){if(e===void 0)return;let n=typeof e=="object"&&e!==null?e:{},r=sn(n.id,128),o=sn(n.parent_id,128);if(r===void 0||!Fi.test(r)||o!==void 0&&!Fi.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=sn(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function Xe(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=sn(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function Lc(e,t,n){let r=Er.getStore(),o=Xe({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=De(t.PM_AGENT_EPISODE_ID===void 0?void 0:{id:t.PM_AGENT_EPISODE_ID,label:t.PM_AGENT_EPISODE_LABEL,parent_id:t.PM_AGENT_EPISODE_PARENT_ID},!1),s={...Xe(r?.provenance),...o,...Xe(e?.provenance)},a=De(e?.episode,!1)??De(n,!1)??i??De(r?.episode,!1);return Object.keys(s).length===0&&a===void 0?void 0:{...Object.keys(s).length===0?{}:{provenance:s},...a===void 0?{}:{episode:a}}}function kr(e,t){return Lc(e.session_context,t,e.client_info?.episode)??{}}function jp(e,t){let n=Er.getStore(),r=De(e.episode,!0),o=De(n?.episode,!1),i=r!==void 0&&r.parent_id===void 0&&o!==void 0?{...r,parent_id:o.id}:r,s={...Xe(n?.provenance),...Xe(e.provenance)};return Er.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function Mp(e){let t=Xe(e.provenance),n=De(e.episode,!0);return{...n===void 0?{}:{PM_AGENT_EPISODE_ID:n.id,...n.label===void 0?{}:{PM_AGENT_EPISODE_LABEL:n.label},...n.parent_id===void 0?{}:{PM_AGENT_EPISODE_PARENT_ID:n.parent_id}},...t.role===void 0?{}:{PM_AGENT_SESSION_ROLE:t.role},...t.topic===void 0?{}:{PM_AGENT_SESSION_TOPIC:t.topic}}}import{AsyncLocalStorage as jr}from"node:async_hooks";import{createHash as $c}from"node:crypto";import V from"node:fs";import Ki from"node:os";import Pe from"node:path";import{createHash as $i}from"node:crypto";import{existsSync as Ir,promises as zi,readFileSync as Pc}from"node:fs";import ie from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9cefffc1-c3d6-5c4a-980f-d9d3eaef0f58")}catch{}})();var jc="session.json";function Sr(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function Hi(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=e,n=["implementer","planner","release-operator"].includes(String(t.role)),r=["high","medium"].includes(String(t.confidence)),o=Sr(t.topic,256),i=Array.isArray(t.evidence)&&t.evidence.length<=32&&t.evidence.every(c=>typeof c=="string"&&c.length<=128),s=Array.isArray(t.active_item_ids)&&t.active_item_ids.length<=64&&t.active_item_ids.every(c=>Sr(c,128)),a=t.focused_item_id===void 0||Sr(t.focused_item_id,128);if([n,r,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function Mc(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([n,r])=>{let o=Hi(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Tr(e){return ie.join(bi(e),jc)}async function an(e){try{let t=await zi.readFile(Tr(e),"utf8"),n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return{};let r=n,o=r.focused_item,i=Mc(r.semantic_attribution);return typeof o=="string"&&o.trim().length>0?{focused_item:o,...i?{semantic_attribution:i}:{}}:i?{semantic_attribution:i}:{}}catch{return{}}}async function Cr(e,t){let n=Tr(e);await zi.mkdir(ie.dirname(n),{recursive:!0}),await q(n,JSON.stringify(t))}function Or(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${$i("sha256").update(e).digest("hex").slice(0,24)}`}function Ar(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function xr(e){let t=[...new Set(e)].sort((o,i)=>o.localeCompare(i));if(t.length===1)return t[0];let n=`workset:${t.join("+")}`;return n.length<=256?n:`workset:${t.join("+").slice(0,230)}+${$i("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function Rr(e,t,n){let r=await an(e),o={...r.semantic_attribution},i=n(o[t]);i===void 0?delete o[t]:o[t]=i;let s={...r};Object.keys(o).length===0?delete s.semantic_attribution:s.semantic_attribution=o,await Cr(e,s)}async function Wp(e){let t=Or(e.principal);await Rr(e.pmRoot,t,n=>{let r=[...new Set([...n?.active_item_ids??[],e.itemId])].slice(-64).sort((i,s)=>i.localeCompare(s)),o=n?.focused_item_id;return{role:"implementer",topic:o??xr(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Ar([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}async function Vp(e){let t=Or(e.principal);await Rr(e.pmRoot,t,n=>{if(!n)return;let r=n.active_item_ids.filter(i=>i!==e.itemId);if(r.length===0&&!n.focused_item_id)return;let o=n.focused_item_id;return{...n,role:"release-operator",topic:o??xr(r),confidence:o?"high":"medium",evidence:Ar([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:r}})}async function Kp(e){let t=Or(e.principal);await Rr(e.pmRoot,t,n=>{let r=n?.active_item_ids??[];if(!e.itemId&&r.length===0)return;let o=e.itemId;return{role:o?"planner":n.role,topic:o??xr(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Ar([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}function Fc(e,t){let n=t.PM_PATH?.trim();if(n){let o=ie.resolve(e,n);if(Ir(ie.join(o,"settings.json")))return o;let i=ie.join(o,".agents","pm");if(Ir(ie.join(i,"settings.json")))return i}let r=ie.resolve(e);for(let o=0;o<32;o+=1){let i=ie.join(r,".agents","pm");if(Ir(ie.join(i,"settings.json")))return i;let s=ie.dirname(r);if(s===r)break;r=s}}function Ui(e){if(!e.key)return;let t=Fc(e.cwd,e.env);if(t)try{let n=JSON.parse(Pc(Tr(t),"utf8"));return Hi(n.semantic_attribution?.[e.key])}catch{return}}async function qp(e){return(await an(e)).focused_item}async function Xp(e,t){let n=await an(e);await Cr(e,{...n,focused_item:t})}async function Gp(e){let n={...await an(e)};delete n.focused_item,await Cr(e,n)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c39d3d14-b0b5-5309-b89a-9da08e1a939a")}catch{}})();var Mr=["model","effort","role","topic","version"],ln=new jr,qi=new jr,un=new jr,Fr=[{harness:"claude-code",environment_keys:["CLAUDE_CODE","CLAUDECODE"],model_environment_keys:["ANTHROPIC_MODEL","CLAUDE_MODEL"],session_environment_keys:["CLAUDE_CODE_SESSION_ID"],provenance_environment_keys:{effort:["CLAUDE_EFFORT"]},provenance_resolvers:{model:"claude_session_file",version:"claude_session_file"},provenance_unavailable_dimensions:["role","topic"],argv_markers:["claude","claude-code"],client_names:["claude","claude-code","claude code"]},{harness:"codex",environment_keys:["CODEX_HOME","CODEX_CI","CODEX_THREAD_ID"],model_environment_keys:["CODEX_MODEL"],session_environment_keys:["CODEX_THREAD_ID"],provenance_environment_keys:{effort:["CODEX_REASONING_EFFORT","CODEX_EFFORT"],role:["CODEX_SESSION_ROLE"]},provenance_resolvers:{model:"codex_session_file",effort:"codex_session_file",version:"ai_agent_version"},provenance_unavailable_dimensions:["topic"],argv_markers:["codex"],client_names:["codex"]},{harness:"pi",environment_keys:["PI_AGENT","PI_CODING_AGENT"],model_environment_keys:["PI_MODEL"],session_environment_keys:["PI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["pi"],client_names:["pi"]},{harness:"opencode",environment_keys:["OPENCODE","OPENCODE_SESSION_ID"],model_environment_keys:["OPENCODE_MODEL"],session_environment_keys:["OPENCODE_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["opencode"],client_names:["opencode"]},{harness:"cursor",environment_keys:["CURSOR_AGENT","CURSOR_TRACE_ID"],model_environment_keys:["CURSOR_MODEL"],session_environment_keys:["CURSOR_TRACE_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["cursor"],client_names:["cursor"]},{harness:"aider",environment_keys:["AIDER","AIDER_MODEL"],model_environment_keys:["AIDER_MODEL"],session_environment_keys:["AIDER_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["aider"],client_names:["aider"]},{harness:"gemini-cli",environment_keys:["GEMINI_CLI","GEMINI_CLI_HOME"],model_environment_keys:["GEMINI_MODEL"],session_environment_keys:["GEMINI_CLI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["gemini","gemini-cli"],client_names:["gemini","gemini-cli","gemini cli"]},{harness:"ci",environment_keys:["CI","GITHUB_ACTIONS","BUILDKITE","GITLAB_CI"],provenance_unavailable_dimensions:["model","effort","role","topic"],argv_markers:[],client_names:[]}],Xi=Object.freeze({max_bytes:1048576,max_lines:4096,network_access:!1,subprocess_access:!1}),zc=Object.freeze({...Xi,max_bytes:4194304}),Dr=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function Hc(e){let t=Ee(e).provenance_unavailable_dimensions,n=new Set(["model","version",...Object.keys(e.provenance_environment_keys??{}),...Object.keys(e.provenance_resolvers??{})]);return Object.freeze({contract_version:1,adapter_version:"v1",priority:0,harness:e.harness,descriptor:e,supported_dimensions:Object.freeze([...n].sort()),native_sources:Object.freeze(["environment","argv","mcp_client",...Object.values(e.provenance_resolvers??{}).some(r=>r?.endsWith("session_file"))?["session_file"]:[]]),probe_policy:e.harness==="codex"?zc:Xi,normalization:Object.freeze({model_family:"v1",effort:"v1",preserve_raw:!0}),confidence:"high",waivers:Object.freeze(Object.fromEntries(t.map(r=>[r,"Harness does not expose this dimension."])))})}var Gi=Object.freeze(Fr.filter(e=>e.harness!=="ci").map(Hc).sort((e,t)=>e.harness.localeCompare(t.harness))),Le=new Map,Ge=new Map;function P(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function we(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function Ee(e){let t=e.harness.trim().toLowerCase();if(!Dr.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:we(e.environment_keys),model_environment_keys:we(e.model_environment_keys),session_environment_keys:we(e.session_environment_keys),provenance_environment_keys:Object.fromEntries(Object.entries(e.provenance_environment_keys??{}).slice(0,32).map(([n,r])=>[n.trim().toLowerCase().slice(0,64),we(r)]).filter(([n])=>Dr.test(n))),provenance_resolvers:Object.fromEntries(Object.entries(e.provenance_resolvers??{}).slice(0,32).map(([n,r])=>[n.trim().toLowerCase().slice(0,64),r]).filter(n=>typeof n[0]=="string"&&Dr.test(n[0])&&(n[1]==="ai_agent_version"||n[1]==="claude_session_file"||n[1]==="codex_session_file"))),provenance_unavailable_dimensions:we(e.provenance_unavailable_dimensions).map(n=>n.toLowerCase()),argv_markers:we(e.argv_markers).map(n=>n.toLowerCase()),client_names:we(e.client_names).map(n=>n.toLowerCase())}}var Yi=Fr.map(Ee);function Uc(e,t){return JSON.stringify(e)===JSON.stringify(t)}function dn(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function $r(e=[]){let t=new Map(Fr.filter(o=>o.harness!=="ci").map(o=>[o.harness,Ee(o)]));for(let{adapter:o}of Le.values())t.set(o.harness,Ee(o.descriptor));let n=[...t.values(),...Yi.filter(o=>o.harness==="ci"),...[...Ge.values()].map(o=>o.descriptor),...un.getStore()?.descriptors??[],...e.map(Ee)],r=new Set;for(let o of n){if(r.has(o.harness))throw new Error(`Harness signal descriptor collision for "${o.harness}"`);r.add(o.harness)}return n}function zr(e,t){for(let n of t??[]){let r=P(e[n]);if(r)return r.slice(0,256)}}function Bc(e,t){if(t==="role"){let n=e.slice(0,8).map(r=>r.trim().toLowerCase()).find(r=>["claim","create","update","close","release","review"].includes(r));if(n==="review")return"reviewer";if(n)return"implementer"}}function Ji(e,t){let n=t==="model"?["--model","--agent-model"]:[`--agent-${t}`],r=e.slice(0,8);for(let o=0;o<r.length;o+=1){let i=r[o].slice(0,512);if(n.includes(i))return P(r[o+1])?.slice(0,256);let s=n.find(a=>i.startsWith(`${a}=`));if(s)return P(i.slice(s.length+1))?.slice(0,256)}}var Wc=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function Ne(e,t){if(e!=="role"||t===void 0)return t;let n=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return Wc.has(n)?n:void 0}function Nr(e,t){return P(e?.[t])?.slice(0,256)}var Vc=1048576,Pr=4194304,cn=new Map,Bi=Object.freeze({}),Lr=new Map,Wi=Object.freeze({});function Vi(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function Kc(e){let t;try{t=JSON.parse(e)}catch{return Wi}let n=Vi(t);if(!n)return Wi;let r=[{value:n,depth:0}],o=0,i,s;for(;r.length>0&&o<64;){let a=r.shift();if(o+=1,i??=P(a.value.model)?.slice(0,256),s??=P(a.value.version)?.slice(0,256),i&&s)break;if(!(a.depth>=4))for(let c of Object.values(a.value)){let d=Vi(c);d&&r.push({value:d,depth:a.depth+1})}}return Object.freeze({model:i,version:s})}function Qi(e){try{return V.lstatSync(e).isFile()?"available":"missing"}catch(t){return pr(t)?"missing":"failed"}}function qc(e,t){let n;try{n=V.readdirSync(e,{withFileTypes:!0}).filter(o=>o.isDirectory()).sort((o,i)=>o.name.localeCompare(i.name)).slice(0,512).map(o=>{let i=Pe.join(e,o.name,`${t}.jsonl`);return{candidate:i,status:Qi(i)}})}catch(o){return{status:pr(o)?"missing":"failed"}}let r=n.filter(({status:o})=>o==="available").map(({candidate:o})=>o);return r.length===0?{status:n.some(({status:o})=>o==="failed")?"failed":"missing"}:r.length>1?{status:"ambiguous"}:{status:"available",path:r[0]}}function Zi(e,t){let n=P(t.CLAUDE_CODE_SESSION_ID);if(!n||!/^[A-Za-z0-9_-]{1,128}$/u.test(n))return{status:"unavailable"};let o=Pe.resolve(e.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),i=Pe.join(e.home_dir??Ki.homedir(),".claude","projects"),s=Pe.join(i,o,`${n}.jsonl`),a=P(e.session_file),c=a&&Pe.basename(a)===`${n}.jsonl`?a:void 0;for(let d of[c,s]){if(!d)continue;let u=Qi(d);if(u==="available")return{status:u,path:d};if(u==="failed")return{status:u}}return qc(i,n)}function Xc(e,t,n){let r=Zi(t,n);if(r.status==="available")try{let o=V.openSync(r.path,V.constants.O_RDONLY|V.constants.O_NOFOLLOW);try{let i=V.fstatSync(o),s=`${r.path}\0${i.size}\0${i.mtimeMs}`,a=Lr.get(s);if(a)return a[e];let c=Math.min(i.size,Vc),d=Math.min(c,Math.ceil(c/2)),u=Math.min(c-d,i.size-d),f=Buffer.alloc(d);V.readSync(o,f,0,d,0);let _=Buffer.alloc(u);u>0&&V.readSync(o,_,0,u,i.size-u);let p={},m=i.size<=c?Buffer.concat([f,_]).toString("utf8").split(`
|
|
2
|
+
`):[...f.toString("utf8").split(`
|
|
3
|
+
`).slice(0,4096),..._.toString("utf8").split(`
|
|
4
|
+
`).slice(-4096)];for(let g of m){if(g.length===0||g.length>262144)continue;let S=Kc(g);if(p.model??=S.model,p.version??=S.version,p.model&&p.version)break}let y=Object.freeze(p);return Lr.clear(),Lr.set(s,y),y[e]}finally{V.closeSync(o)}}catch{return}}function Gc(e,t){let n=0,r=(o,i)=>{if(i>4||n>=512)return;let s;try{s=V.readdirSync(o,{withFileTypes:!0}).sort((a,c)=>c.name.localeCompare(a.name))}catch{return}for(let a of s){if(n+=1,n>512)return;let c=Pe.join(o,a.name);if(a.isFile()&&a.name.endsWith(`-${t}.jsonl`))return c;if(a.isDirectory()){let d=r(c,i+1);if(d)return d}}};return r(e,0)}function Yc(e){if(e<=Pr)return[{offset:0,length:e}];let t=Math.floor(Pr/2);return[{offset:e-t,length:t},{offset:0,length:t}]}function Jc(e,t){if(t.length===0||t.length>262144)return;let n;try{n=JSON.parse(t)}catch{return}if(typeof n!="object"||n===null||Array.isArray(n))return;let r=n;if(r.type!=="turn_context")return;let o=typeof r.payload=="object"&&r.payload!==null?r.payload:void 0;e.model??=P(o?.model)?.slice(0,256),e.effort??=P(o?.effort)?.slice(0,256)}function Qc(e,t){let n={},r=4096;for(let o of Yc(t)){let i=Buffer.alloc(o.length);V.readSync(e,i,0,o.length,o.offset);let s=i.toString("utf8").split(`
|
|
5
|
+
`).reverse().slice(0,r);r-=s.length;for(let a of s)if(Jc(n,a),n.model&&n.effort)break;if(n.model&&n.effort||r<=0)break}return n}function Zc(e,t,n){let r=P(n.CODEX_THREAD_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let o=Pe.join(t.home_dir??Ki.homedir(),".codex","sessions"),i=`${o}\0${r}`,s=cn.get(i);if(s)return s[e];let a=Gc(o,r);if(!a){cn.set(i,Bi);return}try{let c=V.openSync(a,"r");try{let d=V.fstatSync(c).size,u=Qc(c,d);return cn.set(i,u),u[e]}finally{V.closeSync(c)}}catch{cn.set(i,Bi);return}}function ed(e,t,n,r){let o=un.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(P(n.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let s=r?.provenance_resolvers[e];if(s==="claude_session_file")return Xc(e,t,n);if(s==="codex_session_file")return Zc(e,t,n);if(s==="ai_agent_version"){let a=P(n.AI_AGENT);return!a||!r||!dn(a,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(a)?.[1]?.slice(0,256)}}function td(e,t,n,r){if(e==="ai_agent_version"){let o=P(r.AI_AGENT);return o!==void 0&&dn(o,t.harness)?"available":"unavailable"}return e==="codex_session_file"?P(r.CODEX_THREAD_ID)!==void 0?"available":"unavailable":Zi(n,r).status}function Hr(e){return e||(qi.getStore()??{env:process.env,argv:process.argv})}function nd(e,t,n,r){let o=e.environment_keys.some(a=>P(t[a])!==void 0),i=e.argv_markers.some(a=>n.some(c=>{let d=c.replaceAll("\\","/");return dn(d.slice(d.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||dn(r,a));return o||i||s}function rd(e,t){if(!t)return;let n;if(e==="topic"&&(n=t.topic),e==="role"&&(n=t.role),!!n)return{value:n,source:"inferred",confidence:t.confidence,rule_version:t.rule_version,evidence:t.evidence}}function od(e){let t=e.find(([n])=>n!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function id(e,t,n,r,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...Mr,...Object.keys(r?.provenance_environment_keys??{})]),c,d,u;a.has(e)&&(c=Ne(e,P(n[s])?.slice(0,256)),u=Ne(e,Ji(t.argv??[],e)),d=Ne(e,Bc(t.argv??[],e)));let f={...r?.provenance_environment_keys,model:r?.model_environment_keys},_={...t.client_info?.provenance,model:t.client_info?.model},p=Nr(o?.provenance,e),m=Ne(e,zr(n,f[e])),y=Ne(e,Nr(_,e)),g=Ne(e,Nr(t.provenance,e)),S=ed(e,t,n,r);return od([[c,"override"],[p,"session"],[u,"argv"],[m,"environment"],[y,"mcp_client"],[g,"host"],[S,"probe"]])??rd(e,i)??(d?{value:d,source:"argv"}:void 0)}function sd(e,t){if(!(!e||!t))return $c("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function ad(e,t,n,r,o){let i=Object.keys(n?.provenance_environment_keys??{}),s=new Set([...Mr,...i,...Object.keys(n?.provenance_resolvers??{}),...Object.keys(e.provenance??{}),...Object.keys(e.client_info?.provenance??{}),...Object.keys(r?.provenance??{})]),a={};for(let c of s){let d=id(c,e,t,n,r,o);d?a[c]=d:n&&(c!=="version"||n.provenance_unavailable_dimensions.includes(c))&&(a[c]=null)}return a}function ih(e){let t=e.map(Ee),n=new Map(Yi.map(i=>[i.harness,i])),r=new Set;for(let i of t){if(r.has(i.harness)||n.has(i.harness))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);let s=Ge.get(i.harness);if(s&&!Uc(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=Ge.get(i.harness);Ge.set(i.harness,{descriptor:i,registrations:(s?.registrations??0)+1})}let o=!0;return()=>{if(o){o=!1;for(let i of t){let s=Ge.get(i.harness);!s||s.registrations<=1?Ge.delete(i.harness):s.registrations-=1}}}}function cd(e){let t=Ee(e.descriptor),n=e.harness.trim().toLowerCase();if(e.contract_version!==1)throw new Error(`Unsupported provenance adapter contract for "${n}": ${e.contract_version}`);if(t.harness!==n)throw new Error(`Provenance adapter harness "${n}" does not match descriptor "${t.harness}".`);let r=P(e.adapter_version)?.slice(0,64);if(!r)throw new Error(`Provenance adapter "${n}" requires a version.`);if(!Number.isSafeInteger(e.priority))throw new Error(`Provenance adapter "${n}" requires an integer priority.`);if(e.probe_policy.network_access!==!1||e.probe_policy.subprocess_access!==!1||e.probe_policy.max_bytes>Pr||e.probe_policy.max_lines>4096)throw new Error(`Provenance adapter "${n}" exceeds the bounded local probe policy.`);return Object.freeze({...e,adapter_version:r,harness:n,descriptor:t,supported_dimensions:Object.freeze(we(e.supported_dimensions).map(o=>o.toLowerCase()).sort()),native_sources:Object.freeze([...new Set(e.native_sources)]),probe_policy:Object.freeze({...e.probe_policy}),normalization:Object.freeze({...e.normalization}),...e.waivers?{waivers:Object.freeze(Object.fromEntries(Object.entries(e.waivers).slice(0,32).map(([o,i])=>[o.slice(0,64),i.slice(0,256)])))}:{}})}function sh(){let e=new Map(Gi.map(t=>[t.harness,t]));for(let{adapter:t}of Le.values())e.set(t.harness,t);return Object.freeze([...e.values()].sort((t,n)=>t.harness.localeCompare(n.harness)))}function ah(e){let t=e.map(cd),n=new Map(Gi.map(i=>[i.harness,i])),r=new Set;for(let i of t){if(r.has(i.harness))throw new Error(`Provenance adapter collision for "${i.harness}".`);let s=n.get(i.harness);if(s&&i.priority<=s.priority)throw new Error(`Provenance adapter override for "${i.harness}" requires priority greater than ${s.priority}.`);let a=Le.get(i.harness);if(a&&JSON.stringify(a.adapter)!==JSON.stringify(i))throw new Error(`Provenance adapter collision for "${i.harness}".`);r.add(i.harness)}for(let i of t){let s=Le.get(i.harness);Le.set(i.harness,{adapter:i,registrations:(s?.registrations??0)+1})}let o=!0;return()=>{if(o){o=!1;for(let i of t){let s=Le.get(i.harness);!s||s.registrations<=1?Le.delete(i.harness):s.registrations-=1}}}}function ch(e,t){let n=t.trim().slice(0,256),r=n.toLowerCase();if(e==="model"){let o=/^(gpt-\d+(?:\.\d+)?)/u.exec(r)?.[1];o&&(r=o)}else r=r.replaceAll(/[_\s-]+/gu,""),r={minimal:"low",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max",ultra:"ultra"}[r]??r;return{raw:n,normalized:r,vocabulary:"v1"}}function dh(e,t){return qi.run(e,t)}function lh(e,t,n={}){let r=e.map(Ee);return $r(r),un.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function Ur(e){let t=Hr(e),n=t.env??{},r=$r(t.descriptors),o=[...(t.argv??[]).slice(0,3),...t.process_labels??[]].slice(0,64).map(m=>m.slice(0,512)),i=t.client_info?.name.trim().toLowerCase()??"",s=r.find(m=>nd(m,n,o,i)),a=kr(t,n),c=[zr(n,s?.session_environment_keys),P(t.client_info?.session)?.slice(0,256)].find(m=>m!==void 0),d=sd(s?.harness,c),u=Ui({cwd:t.cwd??process.cwd(),env:n,key:d}),f=ad(t,n,s,a,u),_=f.model,p=[["harness",s?.harness],["model",_?.value],["model_source",_?.source],["session",c],["instance",d],["provenance",Object.keys(f).length>0?f:void 0],["episode",a.episode]];return Object.fromEntries(p.filter(m=>m[1]!==void 0))}function dd(e){return e==="unavailable"?{status:"unavailable",reason:"harness_unavailable"}:e==="missing"?{status:"unavailable",reason:"resolver_input_missing"}:{status:"failed",reason:"resolver_failed"}}function ld(e,t,n,r,o,i,s){let a=n?.provenance_resolvers[e];if(t.provenance?.[e])return{status:"resolved",...a?{resolver:a}:{},rule_version:"v1"};if(s)return{status:"unavailable",reason:"invalid_value",rule_version:"v1"};if(a){if(!i)return{status:"unavailable",reason:"probes_disabled",resolver:a,rule_version:"v1"};let c=td(a,n,r,o);return{...dd(c),resolver:a,rule_version:"v1"}}return{status:n?.provenance_unavailable_dimensions.includes(e)?"unavailable":"not_configured",reason:n?.provenance_unavailable_dimensions.includes(e)?"harness_unavailable":"resolver_not_configured",rule_version:"v1"}}function es(e){let t=Hr(e),n=Ur(t),r=$r(t.descriptors).find(d=>d.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&un.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(P(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=kr(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,zr(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,Ji(t.argv??[],"role")].some(d=>{let u=P(d)?.slice(0,256);return u!==void 0&&Ne("role",u)===void 0}),c=Object.fromEntries(Mr.map(d=>[d,ld(d,n,r,t,o,i,d==="role"&&a)]));return{...n,provenance_outcomes:c}}function uh(){return process.env.PM_AUTHOR}function fh(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function mh(e){return Ur(e).harness}function ud(e,t,n){let r=Hr(n),o=Ur(r);if(e!==void 0){let s=P(e);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}if(r.env?.PM_AUTHOR!==void 0){let s=P(r.env.PM_AUTHOR);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}let i=P(t);return i?{author:i,source:"configured",...o}:o.harness?{author:`harness:${o.harness}`,source:"detected",...o}:{author:"unknown",source:"unknown",...o}}function ts(e){let t=ln.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function ns(e){let t=ln.getStore();return t?.author!==e?e.startsWith("harness:")?{harness:e.slice(8)}:{}:{...t.harness?{harness:t.harness}:{},...t.model?{model:t.model}:{},...t.model_source?{model_source:t.model_source}:{},...t.session?{session:t.session}:{},...t.instance?{instance:t.instance}:{},...t.provenance?{provenance:t.provenance}:{},...t.episode?{episode:t.episode}:{}}}function rs(e){let t=ln.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function os(e,t){let n=ud(e,t);return ln.enterWith(n),n.author}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8ee74259-29b1-5795-9253-9fa0869e4585")}catch{}})();var Ye=1,is=1;function ph(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=Ye?t:Ye}function ss(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=Ye))return e}function fd(e,t=is){return e<t?"outdated":e>t?"ahead":"current"}function hh(e,t=is){let n=[],r=[];for(let o of e){let i=fd(o.version,t);i==="outdated"?n.push(o.ref):i==="ahead"&&r.push(o.ref)}return{outdated:n.sort((o,i)=>o.localeCompare(i)),ahead:r.sort((o,i)=>o.localeCompare(i))}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="6bb283b8-5c81-562a-926e-e48b83e6ebc8")}catch{}})();var md={"in-progress":"in_progress",cancelled:"canceled"};function fn(e,t){if(t){let o=Ti(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=md[n]??n;if(Xt.includes(r))return r}function Je(e,t){return fn(e,t)??e}function pe(e,t){return t.terminal_statuses.has(Je(e,t))}import{encode as Sd}from"@toon-format/toon";import{isDeepStrictEqual as us}from"node:util";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="42eb2987-269d-5b18-b0fe-5b4334fdb6a0")}catch{}})();var _d=16;function Br(e){let t=e.trim().replaceAll(/[^A-Za-z0-9]+/g," ").split(/\s+/).filter(o=>o.length>0).map(o=>o.toLowerCase());if(t.length===0)return e;let[n,...r]=t;return`${n}${r.map(o=>`${o.slice(0,1).toUpperCase()}${o.slice(1)}`).join("")}`}function pd(e){return[...new Set([Oi(e),Br(e.key),Br(e.cli_flag),...e.cli_aliases.map(t=>Br(t))])]}function ds(e,t){for(let n of pd(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function ls(e){return Array.isArray(e)?e.flatMap(t=>ls(t)).map(t=>t.trim()).filter(t=>t.length>0):typeof e=="string"?e.split(/[,\n|]/).map(t=>t.trim()).filter(t=>t.length>0):e==null?[]:[String(e).trim()].filter(t=>t.length>0)}function as(e,t){if(typeof e=="boolean")return e;if(typeof e=="number"){if(e===1)return!0;if(e===0)return!1}if(typeof e=="string"){let n=e.trim().toLowerCase();if(n==="true"||n==="1"||n==="yes")return!0;if(n==="false"||n==="0"||n==="no")return!1}throw new E(`${t} must be one of true|false|1|0|yes|no`,w.USAGE)}function cs(e,t){if(typeof e=="number"&&Number.isFinite(e))return e;let n=typeof e=="string"?e.trim():String(e),r=Number(n);if(!Number.isFinite(r))throw new E(`${t} must be a number`,w.USAGE);return r}function hd(e,t,n){let r=typeof e=="string"?(()=>{try{return JSON.parse(e)}catch{return}})():e;if(n==="array"&&Array.isArray(r)||n==="object"&&typeof r=="object"&&r!==null&&!Array.isArray(r))return r;throw new E(`${t} must be valid JSON ${n}`,w.USAGE)}function yd(e,t){return t===void 0?!0:t==="array"?Array.isArray(e):t==="object"?typeof e=="object"&&e!==null&&!Array.isArray(e):typeof e===t}function gd(e,t,n){if(t.const!==void 0&&L(e)!==L(t.const))return`${n} must equal ${L(t.const)}`;if(t.enum!==void 0&&!t.enum.some(r=>L(r)===L(e)))return`${n} must be one of ${t.enum.map(r=>L(r)).join("|")}`;if(!yd(e,t.type))return`${n} must match configured type ${String(t.type)}`;if(typeof e=="string"){if(t.min_length!==void 0&&e.length<t.min_length)return`${n} must contain at least ${t.min_length} characters`;if(t.format==="date-time"&&!Pi(e))return`${n} must be an RFC 3339 date-time`}}function vd(e,t,n,r){if(Array.isArray(e)){if(t.min_items!==void 0&&e.length<t.min_items)return`${n} must contain at least ${t.min_items} items`;if(t.items)for(let[o,i]of e.entries()){let s=mn(i,t.items,`${n}[${o}]`,r+1);if(s)return s}}}function bd(e,t,n,r){if(typeof e!="object"||e===null||Array.isArray(e))return;let o=e;for(let i of t.required??[])if(!Object.hasOwn(o,i))return`${n}.${i} is required`;for(let[i,s]of Object.entries(o)){let a=t.properties?.[i];if(!a){if(t.additional_properties===!1)return`${n}.${i} is not allowed`;continue}let c=mn(s,a,`${n}.${i}`,r+1);if(c)return c}}function mn(e,t,n,r=0){if(r>_d)return`${n} value schema exceeds maximum depth`;let o=gd(e,t,n);if(o)return o;let i=vd(e,t,n,r);if(i)return i;let s=bd(e,t,n,r);if(s)return s;if(!t.one_of)return;let a=0;for(let c of t.one_of)if(mn(e,c,n,r+1)===void 0&&(a+=1,a>1))break;return a===1?void 0:`${n} must match exactly one configured schema variant`}function je(e,t,n){if(!e.value_schema||t===void 0)return t;let r=mn(t,e.value_schema,n);if(r)throw new E(r,w.USAGE);return t}function St(e,t,n){let r=n??`--${e.cli_flag}`;if(e.type==="array"||e.type==="object"){let i=Array.isArray(t)?t[t.length-1]:t;return i===void 0?void 0:je(e,hd(i,r,e.type),r)}if(e.repeatable||e.type==="string_array"){let i=ls(t);return e.type==="number"?je(e,i.map(s=>cs(s,r)),r):e.type==="boolean"?je(e,i.map(s=>as(s,r)),r):je(e,i,r)}let o=Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return e.type==="number"?je(e,cs(o,r),r):e.type==="boolean"?je(e,as(o,r),r):je(e,typeof o=="string"?o:String(o),r)}function wd(e,t){return!e.required&&!e.required_on_create?!1:e.required_types.length===0?!0:t?e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function Th(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=ds(e,i);if(s===void 0){wd(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=St(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function Ch(e,t,n=["update"]){let r={},o=(n??["update"]).flatMap(s=>t.command_to_fields.get(s)??[]),i=new Set;for(let s of o){let a=ds(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=St(s,a)))}return r}import{decode as Ed}from"@toon-format/toon";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e48e0cc7-7577-5702-ac17-a4529697444e")}catch{}})();function Wr(e){return{value:Ed(e),usedScalarBracketEscape:!1}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="45fa31ba-dea9-56db-b971-84c11e8a1c88")}catch{}})();var kd=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function Id(e){if(e.length===0)return[];let t=e.split(/\r?\n/),n=[];for(let r=0;r<t.length;r+=1){let o=t[r]??"",i=o.match(kd);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function _n(e){return Id(e)[0]}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="48df511d-df81-56f7-bb1d-f10230b43cfa")}catch{}})();var Xr=new Set(["schema","tracker","auto"]),_s=new Set(["source","isolated","snapshot"]),Td=new Set(["legacy","local_mutation","local_source_ref","acknowledged","invalid_provenance","foreign_source_ref"]),Cd=new Set(["passed","failed","stopped","canceled"]),Od=new Set(fi);function et(e){return e.replaceAll("\\","/")}function ps(e){for(let t of e)if(t!==0)return t;return 0}function hn(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var hs=["id","title","description","created_at","updated_at"],Ad=new Set(he);function ys(e){if(e?.schema)return{statusRegistry:nn(e.schema),fieldRegistry:Ci(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function xd(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function ke(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new E(`Invalid item metadata: ${e}`,w.GENERIC_FAILURE,{code:"item_document_invalid",reason:e.includes("required")?"missing_required_field":"schema_validation_error",...t?{field:t}:{},required:"Provide an item document whose metadata satisfies the active runtime schema.",why:e})}function Ot(e,t){throw new E(t,w.GENERIC_FAILURE,{code:"item_document_invalid",reason:"syntax_error",format:e,required:`Provide a syntactically valid ${e==="toon"?"TOON":"JSON Markdown"} item document.`,why:"The document could not be decoded far enough to validate item metadata."})}function gs(e){let t=new Set(Ad);for(let n of e.fieldRegistry?.definitions??[])t.add(n.metadata_key);for(let n of e.extensionFieldNames)t.add(n);return t}function I(e,t){e||ke(t)}function At(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&ke(t),e}function Vr(e,t){let n=e[t];I(typeof n=="string",`${t} must be a string`),I(me(n),`${t} must be a valid ISO timestamp`)}function fs(e,t,n){let r=e[t];r!==void 0&&I(typeof r=="number"&&Number.isInteger(r)&&r>=1,`${n} must be an integer >= 1`)}function Gr(e,t,n){let r=e[t];r!==void 0&&(I(typeof r=="string",`${n} must be a string`),I(me(r),`${n} must be a valid ISO timestamp`))}function Rd(e){if(e!==void 0){I(Array.isArray(e),"event.recurrence.by_weekday must be an array");for(let t of e){I(typeof t=="string","event.recurrence.by_weekday entries must be strings");let n=t.trim().toLowerCase();I(Qt.includes(n),`event.recurrence.by_weekday entries must be one of: ${Qt.join(", ")}`)}}}function Dd(e){if(e!==void 0){I(Array.isArray(e),"event.recurrence.by_month_day must be an array");for(let t of e)I(typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=31,"event.recurrence.by_month_day entries must be integers 1..31")}}function Nd(e){if(e!==void 0){I(Array.isArray(e),"event.recurrence.exdates must be an array");for(let t of e)I(typeof t=="string","event.recurrence.exdates entries must be strings"),I(me(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function Ld(e){let t=At(e,"event.recurrence must be an object");I(typeof t.freq=="string","event.recurrence.freq must be a string");let n=t.freq.trim().toLowerCase();I(Jt.includes(n),`event.recurrence.freq must be one of: ${Jt.join(", ")}`),fs(t,"interval","event.recurrence.interval"),fs(t,"count","event.recurrence.count"),Gr(t,"until","event.recurrence.until"),Rd(t.by_weekday),Dd(t.by_month_day),Nd(t.exdates)}function Pd(e){for(let r of hs)I(typeof e[r]=="string",`${r} is required and must be a string`);let t=e.type;I(typeof t=="string"&&t.trim().length>0,"type must be a non-empty string");let n=e.pm_format_version;return n!==void 0&&I(typeof n=="number"&&Number.isInteger(n)&&n>=Ye,`pm_format_version must be an integer >= ${Ye}`),t}function jd(e,t){let n=e.status;I(typeof n=="string"&&n.trim().length>0,"status must be a non-empty string");let r=t?.statusRegistry,o=fn(n,r),i=r?r.definitions.map(s=>s.id):[...Xt];I(o!==void 0,`status must be one of: ${i.join(", ")}`)}function Md(e){let t=e.priority;I(typeof t=="number"&&Number.isInteger(t)&&[0,1,2,3,4].includes(t),"priority must be an integer 0..4");let n=e.tags;I(Array.isArray(n),"tags must be an array");for(let r of n)I(typeof r=="string","tags entries must be strings")}function Fd(e){let t=e.confidence;if(t!==void 0){if(typeof t=="number"){I(Number.isInteger(t)&&t>=0&&t<=100,"confidence number value must be an integer 0..100");return}if(typeof t=="string"){let n=t.trim().toLowerCase(),r=n==="med"||Yt.includes(n);I(r,`confidence string value must be one of: ${[...Yt,"med"].join(", ")}`);return}I(!1,"confidence must be a number or string")}}function $d(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&ke("severity must be a string");let n=t.trim().toLowerCase(),r=n==="med"||Gt.includes(n);I(r,`severity value must be one of: ${[...Gt,"med"].join(", ")}`)}function zd(e){e.regression!==void 0&&typeof e.regression!="boolean"&&ke("regression must be a boolean")}function Hd(e){let t=e.reminders;if(t!==void 0){I(Array.isArray(t),"reminders must be an array");for(let n of t){let r=At(n,"reminders entries must be objects");I(typeof r.at=="string","reminder.at must be a string"),I(me(r.at),"reminder.at must be a valid ISO timestamp"),I(typeof r.text=="string","reminder.text must be a string"),I(r.text.trim().length>0,"reminder.text must not be empty")}}}function Ud(e){for(let t of["title","description","location","timezone"])e[t]!==void 0&&(I(typeof e[t]=="string",`event.${t} must be a string`),I(e[t].trim().length>0,`event.${t} must not be empty`))}function Bd(e){e.recurrence!==void 0&&(Ld(e.recurrence),e.recurrence.until!==void 0&&I(_e(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function Wd(e){let t=At(e,"events entries must be objects");I(typeof t.start_at=="string","event.start_at must be a string"),I(me(t.start_at),"event.start_at must be a valid ISO timestamp"),t.end_at!==void 0&&(I(typeof t.end_at=="string","event.end_at must be a string"),I(me(t.end_at),"event.end_at must be a valid ISO timestamp"),I(_e(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),Ud(t),t.all_day!==void 0&&I(typeof t.all_day=="boolean","event.all_day must be a boolean"),Bd(t)}function Vd(e){let t=e.events;if(t!==void 0){I(Array.isArray(t),"events must be an array");for(let n of t)Wd(n)}}function Kd(e){for(let t of["source_type","source_owner","design","external_ref"]){let n=e[t];n!==void 0&&I(typeof n=="string",`${t} must be a string`)}}function qd(e){let t=e.type_options;if(t===void 0)return;let n=At(t,"type_options must be an object");for(let[r,o]of Object.entries(n))I(r.trim().length>0,"type_options keys must be non-empty"),I(typeof o=="string","type_options values must be strings"),I(o.trim().length>0,"type_options values must be non-empty strings")}function Xd(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){xd(r,t)&&ke(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=St(r,o,`metadata field "${r.metadata_key}"`)}catch(i){ke(String(i?.message).replace(/^Invalid\s+/u,""))}}}function Gd(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=gs(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length!==0&&(t.unknownFieldPolicy==="reject"?ke(`unknown schema fields are not allowed: ${r.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`))}function Yr(e,t){let n=At(e,"item metadata must be an object"),r=Pd(n);jd(n,t),Md(n),Fd(n),$d(n),zd(n),Vr(n,"created_at"),Vr(n,"updated_at"),n.deadline!==void 0&&Vr(n,"deadline"),Hd(n),Vd(n),Gr(n,"closed_at","closed_at"),Gr(n,"completed_at","completed_at"),Kd(n),qd(n),Xd(n,r,t),Gd(n,t)}function Yd(e){if(!(!e||e.length===0))return[...e].map(t=>({id:t.id.trim(),kind:t.kind,created_at:t.created_at,author:t.author?.trim()||void 0,source_kind:t.source_kind?.trim()||void 0,author_source:t.author_source})).sort((t,n)=>{let r=_e(t.created_at,n.created_at);if(r!==0)return r;let o=t.id.localeCompare(n.id);if(o!==0)return o;let i=t.kind.localeCompare(n.kind);return i!==0?i:(t.source_kind??"").localeCompare(n.source_kind??"")})}function Kr(e){if(!(!e||e.length===0))return[...e].sort((t,n)=>{let r=_e(t.created_at,n.created_at);if(r!==0)return r;let o=t.text.localeCompare(n.text);return o!==0?o:t.author.localeCompare(n.author)})}function Jd(e){if(!e||e.length===0)return;let t=[...e].map(n=>({at:n.at,text:n.text.trim()})).filter(n=>n.text.length>0).sort((n,r)=>{let o=_e(n.at,r.at);return o!==0?o:n.text.localeCompare(r.text)});return t.length===0?void 0:t}function Qd(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!Jt.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>Qt.includes(s)))).sort((s,a)=>_r(s)-_r(a)),r=Array.from(new Set((e.by_month_day??[]).filter(s=>Number.isInteger(s)&&s>=1&&s<=31).map(s=>s))).sort((s,a)=>s-a),o=Array.from(new Set((e.exdates??[]).map(s=>s.trim()).filter(s=>me(s)))).sort((s,a)=>_e(s,a)),i={freq:t,interval:e.interval!==void 0&&e.interval>1?e.interval:void 0,count:e.count,until:e.until?.trim()||void 0,by_weekday:n.length>0?n:void 0,by_month_day:r.length>0?r:void 0,exdates:o.length>0?o:void 0};for(let[s,a]of Object.entries(i))a===void 0&&delete i[s];return i}function Zd(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(el).sort(tl)}function el(e){let t={start_at:e.start_at,end_at:e.end_at||void 0,title:e.title?.trim()||void 0,description:e.description?.trim()||void 0,location:e.location?.trim()||void 0,all_day:e.all_day,timezone:e.timezone?.trim()||void 0,recurrence:Qd(e.recurrence)};return hn(t),t}function tl(e,t){return ps([_e(e.start_at,t.start_at),(e.end_at??"").localeCompare(t.end_at??""),(e.title??"").localeCompare(t.title??""),+!!e.all_day-+!!t.all_day,(e.timezone??"").localeCompare(t.timezone??""),(e.location??"").localeCompare(t.location??""),(e.description??"").localeCompare(t.description??""),JSON.stringify(e.recurrence??{}).localeCompare(JSON.stringify(t.recurrence??{}))])}function nl(e){if(!(!e||e.length===0))return e.map(t=>({path:et(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function rl(e){if(!e||e.length===0)return;let t=e.map(al).filter(n=>n.run_id.length>0&&n.started_at.length>0&&n.finished_at.length>0&&n.recorded_at.length>0).sort((n,r)=>ps([_e(n.recorded_at,r.recorded_at),n.run_id.localeCompare(r.run_id),n.kind.localeCompare(r.kind)]));return t.length>0?t:void 0}function Qe(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function ol(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function qr(e){return typeof e=="string"?e:""}function il(e){if(!Array.isArray(e))return;let t=e.filter(r=>r!==null&&typeof r=="object"&&typeof r.name=="string"&&r.name.trim().length>0&&typeof r.value=="number"&&Number.isFinite(r.value)&&typeof r.recorded_at=="string"&&r.recorded_at.trim().length>0).map(r=>({name:r.name.trim(),value:r.value,unit:typeof r.unit=="string"&&r.unit.trim()||void 0,threshold:typeof r.threshold=="number"&&Number.isFinite(r.threshold)?r.threshold:void 0,recorded_at:r.recorded_at.trim()})),n=[...new Map(t.map(r=>[r.name,r])).values()].sort((r,o)=>r.name.localeCompare(o.name)).slice(0,32);return n.length>0?n:void 0}function pn(e,t){return typeof e=="string"&&t.has(e)?e:void 0}function sl(e){if(!Array.isArray(e))return;let t=e.filter(n=>n&&typeof n.command=="string"&&n.command.trim().length>0).slice(0,32).map(n=>({command:n.command.trim(),requested_pm_context_mode:pn(n.requested_pm_context_mode,Xr),pm_context_mode:pn(n.pm_context_mode,Xr),workspace_context_mode:pn(n.workspace_context_mode,_s),trust_reason:pn(n.trust_reason,Td)}));return t.length>0?t:void 0}function al(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=Cd.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:qr(e.started_at),finished_at:qr(e.finished_at),recorded_at:qr(e.recorded_at),attempt:ol(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:Qe(e.passed)??0,failed:Qe(e.failed)??0,skipped:Qe(e.skipped)??0,items:Qe(e.items),linked_tests:Qe(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:il(e.measurements),executions:sl(e.executions)};return hn(o),o}function cl(e){if(!(!Array.isArray(e)||e.length===0))return e.map(ml)}function Tt(e){if(!Array.isArray(e))return;let t=[...new Set(e.filter(n=>typeof n=="string").map(n=>n.trim()).filter(n=>n.length>0))].sort((n,r)=>n.localeCompare(r));return t.length>0?t:void 0}function Qr(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Zr(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function ms(e){if(!Qr(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!Zr(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function dl(e){if(!Qr(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!Zr(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function ll(e){let t=e?.trim().toLowerCase();if(!(!t||!Xr.has(t)))return t}function ul(e){let t=e?.trim().toLowerCase();if(!(!t||!_s.has(t)))return t}function fl(e,t){if(t===!0)return{provenance_invalid:!0};if(e===void 0)return{};if(!Qr(e))return{provenance_invalid:!0};let n=b(e.author),r=b(e.created_at),o=e.source_kind;return!n||!r||!me(r)||o!=="local_mutation"&&o!=="merge_union"?{provenance_invalid:!0}:{provenance:{author:n,created_at:r,source_kind:o,source_ref:b(e.source_ref)}}}function ml(e){let t={command:e.command?.trim()||void 0,path:e.path?et(e.path):void 0,scope:e.scope,timeout_seconds:typeof e.timeout_seconds=="number"&&Number.isFinite(e.timeout_seconds)&&e.timeout_seconds>0?e.timeout_seconds:void 0,pm_context_mode:ll(e.pm_context_mode),workspace_context_mode:ul(e.workspace_context_mode),...fl(e.provenance,e.provenance_invalid),env_set:ms(e.env_set),env_clear:Tt(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:Tt(e.assert_stdout_contains),assert_stdout_regex:Tt(e.assert_stdout_regex),assert_stderr_contains:Tt(e.assert_stderr_contains),assert_stderr_regex:Tt(e.assert_stderr_regex),assert_stdout_min_lines:Qe(e.assert_stdout_min_lines),assert_json_field_equals:ms(e.assert_json_field_equals),assert_json_field_gte:dl(e.assert_json_field_gte),note:e.note?.trim()||void 0};return hn(t),t}function _l(e){if(!(!e||e.length===0))return[...e].map(t=>({path:et(t.path),scope:t.scope,note:t.note?.trim()||void 0})).sort((t,n)=>{let r=t.scope.localeCompare(n.scope);if(r!==0)return r;let o=t.path.localeCompare(n.path);return o!==0?o:(t.note??"").localeCompare(n.note??"")})}function b(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function pl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=b(r.id),i=b(r.kind);if(!o||!i)continue;let s={id:o,kind:i},a=b(r.note);a&&(s.note=a),r.required_before_step===!0&&(s.required_before_step=!0),t.push(s)}return t.length>0?t:void 0}function hl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=b(r.path);if(!o)continue;let i={path:et(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=b(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function yl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=b(r.command),i=b(r.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=et(i));let a=b(r.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function gl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=b(r.path);if(!o)continue;let i={path:et(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=b(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function vl(e){if(e===null||typeof e!="object")return;let t=e,n=b(t.id),r=b(t.title),o=b(t.status),i=o&&Od.has(o)?o:void 0,s=wi(t.order)??Number.NaN,a=typeof t.created_at=="string"?t.created_at:"",c=typeof t.updated_at=="string"?t.updated_at:"";if(!n||!r||!i||!Number.isFinite(s)||!a||!c)return;let d={id:n,order:s,title:r,status:i,created_at:a,updated_at:c};return bl(d,t),d}function bl(e,t){let n=[["body","body"],["owner","owner"],["evidence","evidence"],["blocked_reason","blocked_reason"],["superseded_by","superseded_by"]];for(let[i,s]of n){let a=b(t[s]);a&&(e[i]=a)}let r=typeof t.completed_at=="string"?t.completed_at:void 0;r&&r.length>0&&(e.completed_at=r);let o=[["linked_items","linked_items",pl],["files","files",hl],["tests","tests",yl],["docs","docs",gl]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function wl(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=vl(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function El(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=typeof r.ts=="string"?r.ts:"",i=typeof r.author=="string"?r.author:"",s=b(r.decision);if(!o||!i||!s)continue;let a={ts:o,author:i,decision:s},c=b(r.rationale);c&&(a.rationale=c);let d=b(r.evidence);d&&(a.evidence=d);let u=b(r.step_id);u&&(a.step_id=u),t.push(a)}return t.length>0?t:void 0}function kl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=typeof r.ts=="string"?r.ts:"",i=typeof r.author=="string"?r.author:"",s=b(r.text);if(!o||!i||!s)continue;let a={ts:o,author:i,text:s},c=b(r.step_id);c&&(a.step_id=c),t.push(a)}return t.length>0?t:void 0}function Il(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=b(r.text);if(!o)continue;let i={text:o},s=b(r.command);s&&(i.command=s);let a=b(r.expected);a&&(i.expected=a),t.push(i)}return t.length>0?t:void 0}function Sl(e){if(!e)return;let t=Object.entries(e).map(([n,r])=>[n.trim(),r.trim()]).filter(([n,r])=>n.length>0&&r.length>0).sort((n,r)=>n[0].localeCompare(r[0]));if(t.length!==0)return Object.fromEntries(t)}function Ze(e){let t=0;for(;t<e.length&&e[t]===`
|
|
6
|
+
`;)t+=1;return e.slice(t).trimEnd()}function Tl(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(Yt.includes(t))return t}function Cl(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(Gt.includes(t))return t}function Ct(e){return e||void 0}function Ol(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))Zr(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function Al(e,t){if(!t?.fieldRegistry)return;let n=e;for(let r of t.fieldRegistry.definitions){let o=n[r.metadata_key];o!==void 0&&(n[r.metadata_key]=St(r,o,`metadata field "${r.metadata_key}"`))}}function xl(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=gs(t),o=Object.keys(e).filter(i=>!n.has(i)).sort((i,s)=>i.localeCompare(s));o.length>0&&t.unknownFieldPolicy==="reject"&&ke(`unknown schema fields are not allowed: ${o.join(", ")}`),o.length>0&&t.onWarning?.(`item_unknown_schema_fields:${o.join(",")}`)}function yn(e,t={}){let n=ys(t),r=fn(e.status,n?.statusRegistry)??e.status,o=Array.from(new Set((Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string").map(s=>s.trim().toLowerCase()).filter(Boolean))).sort((s,a)=>s.localeCompare(a)),i={id:e.id,title:e.title,description:e.description,type:e.type,pm_format_version:ss(e.pm_format_version),source_type:b(e.source_type),type_options:Sl(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:Yd(e.dependencies),comments:Kr(e.comments),notes:Kr(e.notes),learnings:Kr(e.learnings),files:nl(e.files),tests:cl(e.tests),test_runs:rl(e.test_runs),docs:_l(e.docs),deadline:Ct(e.deadline),reminders:Jd(e.reminders),events:Zd(e.events),closed_at:Ct(e.closed_at),completed_at:Ct(e.completed_at),assignee:b(e.assignee),claim_principal:b(e.claim_principal),source_owner:b(e.source_owner),author:Ct(e.author),estimated_minutes:e.estimated_minutes,acceptance_criteria:e.acceptance_criteria??void 0,design:e.design??void 0,external_ref:e.external_ref??void 0,definition_of_ready:b(e.definition_of_ready),order:e.order,goal:b(e.goal),objective:b(e.objective),value:b(e.value),impact:b(e.impact),outcome:b(e.outcome),why_now:b(e.why_now),parent:b(e.parent),reviewer:b(e.reviewer),risk:e.risk??void 0,confidence:Tl(e.confidence),sprint:b(e.sprint),release:b(e.release),blocked_by:b(e.blocked_by),blocked_reason:b(e.blocked_reason),unblock_note:b(e.unblock_note),reporter:b(e.reporter),severity:Cl(e.severity),environment:b(e.environment),repro_steps:b(e.repro_steps),resolution:b(e.resolution),expected_result:b(e.expected_result),actual_result:b(e.actual_result),affected_version:b(e.affected_version),fixed_version:b(e.fixed_version),component:b(e.component),regression:e.regression,customer_impact:b(e.customer_impact),close_reason:Ct(e.close_reason),plan_mode:b(e.plan_mode),plan_scope:b(e.plan_scope),plan_harness:b(e.plan_harness),plan_resume_context:b(e.plan_resume_context),plan_steps:wl(e.plan_steps),plan_decisions:El(e.plan_decisions),plan_discoveries:kl(e.plan_discoveries),plan_validation:Il(e.plan_validation)};return Ol(i,e),Al(i,n),xl(i,n),hn(i),i}function vs(e){return T(e,he)}function Rl(e){let t=0,n=!1,r=!1;for(let o=0;o<e.length;o+=1){let i=e[o];if(n){if(r){r=!1;continue}if(i==="\\"){r=!0;continue}i==='"'&&(n=!1);continue}if(i==='"'){n=!0;continue}if(i==="{"){t+=1;continue}if(i==="}"&&(t-=1,t===0))return o}return-1}function Dl(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=Rl(e);if(t<0)return{frontMatter:"",body:e};let n=e.slice(0,t+1),r=e.slice(t+1).replace(/^\r?\n+/,"");return{frontMatter:n,body:r}}function Nl(e){let t=e.charCodeAt(0)===65279?e.slice(1):e,n=t.match(/^[ \t]*---[ \t]*(?:\r?\n|$)/);if(!n)return{content:t,stripped:!1};let r=n[0].length;for(;r<t.length;){let o=t.indexOf(`
|
|
7
|
+
`,r),i=o===-1?t.length:o,s=t.slice(r,i).replace(/\r$/,""),a=o===-1?i:i+1;if(s.trim()==="---")return{content:t.slice(a).replace(/^\s+/,""),stripped:!0};r=a}return{content:t,stripped:!1}}function Jr(e,t){return yn(e,{...t,onWarning:void 0})}function Ll(e,t,n={}){let r=Nl(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=Dl(r.content);o||(e.trimStart().startsWith("{")&&Ot("json_markdown","JSON front matter is not valid JSON"),Ot("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{Ot("json_markdown","JSON front matter is not valid JSON")}return Yr(s,t),{metadata:Jr(s,n),body:Ze(i)}}function Pl(e,t,n={}){let r;try{r=Wr(e).value}catch{Ot("toon","TOON item document is not valid TOON")}I(typeof r=="object"&&r!==null&&!Array.isArray(r),"TOON item document must be an object");let o=r;if(!hs.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&Ot("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return Yr(o.front_matter,t),I(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:Jr(o.front_matter,n),body:Ze(typeof o.body=="string"?o.body:"")};let{body:i,...s}=o;return I(i===void 0||typeof i=="string","TOON item document body must be a string"),Yr(s,t),{metadata:Jr(s,n),body:Ze(typeof i=="string"?i:"")}}function jl(e,t={}){let n=yn(e.metadata,t),r=vs(n),o=JSON.stringify(r,null,2),i=Ze(e.body??"");return i?`${o}
|
|
8
|
+
|
|
9
|
+
${i}
|
|
10
|
+
`:`${o}
|
|
11
|
+
`}function Ml(e,t={}){let n=yn(e.metadata,t),r=vs(n),o=Ze(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i)),a=Sd(s),c;try{c=Wr(a).value}catch(d){throw new E("Refusing to persist a TOON item document that the configured decoder cannot read back.",w.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_error",format:"toon",required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:d instanceof Error?d.message:String(d)})}if(!us(c,s)){let d=typeof c=="object"&&c!==null&&!Array.isArray(c)?c:{},u=Object.keys(s).find(f=>!us(s[f],d[f]))??"document";throw new E(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${u}".`,w.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_mismatch",format:"toon",field:u,required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:"The encoded document decoded to a value different from the canonical item payload."})}return`${a}
|
|
12
|
+
`}function gn(e,t={}){let n=_n(e);if(n)throw new E(`Merge conflict markers detected in item document at line ${n.line} (${n.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,w.GENERIC_FAILURE,{code:"merge_conflict_markers_detected",reason:"merge_conflict",required:"Resolve merge-conflict markers in the item file before parsing or mutation commands.",why:"Partially merged documents can corrupt item metadata and history integrity.",examples:["git status","git add <resolved-file> && git commit"],nextSteps:["Resolve conflicts, save the file, then rerun the pm command."]});let r=t.format??"toon",o=ys(t);return r==="toon"?Pl(e,o,t):Ll(e,o,t)}function bs(e,t={}){return(t.format??"toon")==="toon"?Ml(e,t):jl(e,t)}function te(e,t={}){return{metadata:yn(e.metadata,t),body:Ze(e.body??"")}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bfa74c9e-a366-5b09-a7bc-869226fb6140")}catch{}})();async function Fl(e,t){let n=await ge(e);if(n===null)return{raw:n,entries:[]};if(await ve({path:e,scope:"project"}),n.trim()==="")return{raw:n,entries:[]};let r=_n(n);if(r)throw new E(`History for ${t} contains merge conflict markers at line ${r.line} (${r.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,w.GENERIC_FAILURE,{code:"history_merge_conflict_markers_detected",required:"Repair the history stream by resolving merge-conflict markers.",why:"Conflict markers break JSONL parsing and invalidate deterministic audit history.",examples:[`pm history ${t}`,`pm restore ${t} <timestamp-or-version>`],nextSteps:["Resolve or restore the history file, then rerun the command."]});let o=[];for(let[i,s]of n.split(/\r?\n/).entries()){let a=s.trim();if(a)try{o.push(JSON.parse(a))}catch{throw new E(`History for ${t} contains invalid JSON at line ${i+1}. Repair or restore the history stream and retry.`,w.GENERIC_FAILURE,{code:"history_json_invalid",nextSteps:[`Run pm history-repair ${t} --salvage-tail --dry-run to check whether only an invalid suffix is damaged.`]})}}return{raw:n,entries:o}}async function tt(e,t){return(await Fl(e,t)).entries}import bo from"fast-json-patch";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="24b1fb96-5c1e-5669-be21-fdeef4d413a6")}catch{}})();function ws(e){let t=[],n=e[0]?.op==="history_compact_baseline",r=n?1:void 0,o=!1;for(let[i,s]of e.entries())s.op==="delete"&&(o=!0),s.op==="create"&&(r!==void 0&&t.push({prior_genesis_index:r,repeated_create_index:i+1,sequence:o?"delete_then_create":n?"checkpoint_then_create":"multiple_creates"}),r??=i+1,o=!1);return t}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="82c79093-2a40-5b4c-8d41-637b0ae03c4f")}catch{}})();import Gs from"fast-json-patch";import Vs from"node:fs/promises";import Du from"node:path";import F from"node:fs/promises";import H from"node:path";import{randomUUID as ks}from"node:crypto";import{createRequire as Vl}from"node:module";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9d5caf29-c1f2-5120-bc0b-c64a0bdd19ff")}catch{}})();var $l=["docs_add","files_add","history:author-acknowledge","history_author_acknowledge","history_compact","history_compact_baseline","history_redact","history_repair","history_salvage","normalize","release","test_run_track","tests_add","tests_remove","update_audit","update_ownership_bypass"],zl=["append","cancel","claim","close","comment_add","create","learning_add","note_add","reopen"],Hl=new Set($l),Ul=new Set(zl),Bl=new Set(["actual_result","affected_version","assignee","blocked_by","blocked_reason","close_reason","confidence","customer_impact","definition_of_ready","dependencies","docs","environment","expected_result","files","fixed_version","goal","impact","learnings","notes","objective","order","outcome","parent","release","reminders","reporter","repro_steps","resolution","reviewer","severity","sprint","tests","test_runs","unblock_note","updated_at","value","why_now"]);function Wl(e){let t=e.path.split("/").filter(Boolean);return t[0]==="metadata"||t[0]==="front_matter"?t[1]:t[0]==="body"?"body":void 0}function nt(e){return e.event_class==="substantive"||e.event_class==="maintenance"?e.event_class:Hl.has(e.op)?"maintenance":Ul.has(e.op)||e.op!=="update"?"substantive":Array.isArray(e.patch)&&e.patch.length>0&&e.patch.every(t=>{let n=Wl(t);return n!==void 0&&Bl.has(n)})?"maintenance":"substantive"}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="542d77d0-7bb8-5ed0-a1da-09de33d3767f")}catch{}})();var Kl="history-event-index.sqlite",to="5",ql=8,Xl="history-event-index",no=300,Is=3e4,Gl="history-event-index-invalidation",Yl="history-event-index-invalidations",Jl=no*2*1e3,kn=Symbol("history-index-lock-contended"),Me=new Map;function Rt(e){return H.join(e,"runtime",Kl)}function Sn(e){return H.join(e,"runtime",Yl)}async function Ql(e){let t=await F.readdir(Sn(e)).catch(n=>{if(ye(n))return[];throw n});return{pending:t.filter(n=>n.endsWith(".pending")).sort(),committed:t.filter(n=>n.endsWith(".committed")).sort()}}async function eo(e){let t=await Ql(e);return{pending:(await Promise.all(t.pending.map(async r=>{let o=/^(\d+)-(unknown|\d+)-(\d+)-.+\.pending$/u.exec(r);if(o!==null){let i=o[2];if(await Mi({pid:Number(o[1]),...i==="unknown"?{}:{process_start_identity:i}},Math.max(0,Date.now()-Number(o[3])),Jl))return r}return await F.rm(H.join(Sn(e),r),{force:!0}),null}))).filter(r=>r!==null),committed:t.committed}}async function xt(e,t){let n=await Y(e,Gl,no,`history-event-index-invalidation:${process.pid}`,!1,!1,Is);try{return await t()}finally{await n()}}async function Zl(e){let t=Sn(e);await F.mkdir(t,{recursive:!0});let n=ks(),r=await ji(),o=H.join(t,`${r.pid}-${r.process_start_identity??"unknown"}-${Date.now()}-${n}.pending`);return await F.writeFile(o,`pending
|
|
13
|
+
`,{flag:"wx"}),{pendingPath:o,committedPath:H.join(t,`${n}.committed`)}}function eu(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}async function vn(e){try{await F.rm(Rt(e),{force:!0})}catch{}}async function Tn(e,t){let n=await Y(e,Xl,no,`history-event-index:${process.pid}`,!1,!1,Is);try{return await t()}finally{await n()}}async function Ss(e){let t=H.join(e,"history"),n=await F.readdir(t,{withFileTypes:!0}).catch(s=>{if(typeof s=="object"&&s!==null&&"code"in s&&s.code==="ENOENT")return[];throw s}),r=Me.get(e)??{streams:new Map,ordered_events:[]},o=new Set,i=!Me.has(e);for(let s of n.filter(a=>a.isFile()&&a.name.endsWith(".jsonl")).sort((a,c)=>a.name.localeCompare(c.name))){let a=s.name.slice(0,-6);o.add(a);let c=H.join(t,s.name),d=await F.stat(c,{bigint:!0}),u=[d.dev,d.ino,d.size,d.mtimeNs,d.ctimeNs].join(":");if(r.streams.get(a)?.signature===u)continue;let f=await Ts(c,a);r.streams.set(a,{signature:u,byte_size:Number(d.size),events:f.map((_,p)=>({stream_id:a,stream_offset:p,entry:_}))}),i=!0}for(let s of r.streams.keys())o.has(s)||(r.streams.delete(s),i=!0);if(i&&(r.ordered_events=[...r.streams.values()].flatMap(s=>s.events).sort(ro)),Me.delete(e),Me.set(e,r),Me.size>ql){let s=Me.keys().next().value;Me.delete(s)}return{events:r.ordered_events,stream_byte_sizes:new Map([...r.streams].map(([s,a])=>[s,a.byte_size]))}}async function Ts(e,t){let n=await tt(e,t);for(let[r,o]of n.entries())if(typeof o.ts!="string"||!qe(o.ts.trim()))throw new E(`History for ${t} contains an invalid or sub-millisecond timestamp at line ${r+1}. Repair or restore the history stream and retry.`,w.GENERIC_FAILURE,{code:"history_timestamp_invalid"});return n.map(r=>({...r,ts:new Date(r.ts.trim()).toISOString()}))}async function tu(e){return(await Ss(e)).events}function nu(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}function ru(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?nu(t):null}var bn;function Cn(){return bn!==void 0||(bn=ru(process.versions.node,Vl(import.meta.url))),bn}function ou(e){e.exec(`
|
|
14
|
+
PRAGMA journal_mode = OFF;
|
|
15
|
+
PRAGMA synchronous = OFF;
|
|
16
|
+
CREATE TABLE metadata (
|
|
17
|
+
key TEXT PRIMARY KEY,
|
|
18
|
+
value TEXT NOT NULL
|
|
19
|
+
) STRICT;
|
|
20
|
+
CREATE TABLE events (
|
|
21
|
+
stream_id TEXT NOT NULL,
|
|
22
|
+
stream_offset INTEGER NOT NULL,
|
|
23
|
+
ts TEXT NOT NULL,
|
|
24
|
+
author TEXT NOT NULL,
|
|
25
|
+
agent_harness TEXT,
|
|
26
|
+
agent_instance TEXT,
|
|
27
|
+
op TEXT NOT NULL,
|
|
28
|
+
event_class TEXT NOT NULL CHECK(event_class IN ('substantive', 'maintenance')),
|
|
29
|
+
entry_json TEXT NOT NULL,
|
|
30
|
+
PRIMARY KEY(stream_id, stream_offset)
|
|
31
|
+
) STRICT;
|
|
32
|
+
CREATE TABLE streams (
|
|
33
|
+
stream_id TEXT PRIMARY KEY,
|
|
34
|
+
byte_size INTEGER NOT NULL CHECK(byte_size >= 0)
|
|
35
|
+
) STRICT;
|
|
36
|
+
CREATE INDEX events_order
|
|
37
|
+
ON events(ts, stream_id, stream_offset);
|
|
38
|
+
CREATE INDEX events_op_order
|
|
39
|
+
ON events(op, ts, stream_id, stream_offset);
|
|
40
|
+
CREATE INDEX events_class_stream_order
|
|
41
|
+
ON events(event_class, stream_id, ts, stream_offset);
|
|
42
|
+
CREATE INDEX events_author_order
|
|
43
|
+
ON events(author, ts, stream_id, stream_offset);
|
|
44
|
+
CREATE INDEX events_harness_order
|
|
45
|
+
ON events(agent_harness, ts, stream_id, stream_offset);
|
|
46
|
+
CREATE INDEX events_instance_order
|
|
47
|
+
ON events(agent_instance, ts, stream_id, stream_offset);
|
|
48
|
+
`),e.prepare("INSERT INTO metadata(key, value) VALUES ('version', ?)").run(to)}function Cs(e,t){let n={...t.entry,ts:new Date(t.entry.ts.trim()).toISOString()};e.prepare(`INSERT INTO events(
|
|
49
|
+
stream_id, stream_offset, ts, author, agent_harness,
|
|
50
|
+
agent_instance, op, event_class, entry_json
|
|
51
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(t.stream_id,t.stream_offset,n.ts,n.author,n.agent_harness??null,n.agent_instance??null,n.op,nt(n),JSON.stringify(n))}function Os(e){let t=JSON.parse(String(e.entry_json));return typeof t.ts!="string"||!qe(t.ts.trim())?null:{stream_id:String(e.stream_id),stream_offset:Number(e.stream_offset),entry:{...t,ts:new Date(t.ts.trim()).toISOString()}}}function As(e,t,n){e.prepare(`INSERT INTO streams(stream_id, byte_size) VALUES (?, ?)
|
|
52
|
+
ON CONFLICT(stream_id) DO UPDATE SET byte_size = excluded.byte_size`).run(t,n)}async function iu(e){let t=Cn();return t?Tn(e,async()=>{let n;try{n=await xt(e,()=>eo(e))}catch(s){if(s instanceof E&&s.code==="lock_conflict")return!1;throw s}if(n.pending.length>0)return!1;let r=Rt(e);await F.mkdir(H.dirname(r),{recursive:!0});let o=`${r}.${ks()}.tmp`,i;try{i=new t(o),ou(i),i.exec("BEGIN IMMEDIATE");let s=await Ss(e);for(let c of s.events)Cs(i,c);for(let[c,d]of s.stream_byte_sizes)As(i,c,d);i.exec("COMMIT"),i.close(),i=void 0;let a=await xt(e,async()=>{let c=await eo(e);return c.pending.length>0||!eu(n.committed,c.committed)?!1:(await F.rm(r,{force:!0}),await F.rename(o,r),await Promise.all(n.committed.map(d=>F.rm(H.join(Sn(e),d),{force:!0}))),!0)});return a||await F.rm(o,{force:!0}),a}catch(s){throw i?.close(),await F.rm(o,{force:!0}),s}}):!1}function wn(e,t){return!t||t.length===0||t.includes(e)}function ro(e,t){return e.entry.ts.localeCompare(t.entry.ts)||e.stream_id.localeCompare(t.stream_id)||e.stream_offset-t.stream_offset}function In(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():e}function su(e,t){if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){if(ro(e,{stream_id:t.after_stream_id,stream_offset:t.after_stream_offset,entry:{...e.entry,ts:In(t.after_ts)}})<=0)return!1}else if(t.since_ts!==void 0&&e.entry.ts<In(t.since_ts))return!1;return!0}function au(e,t){return!t.harnesses||t.harnesses.length===0||t.harnesses.includes(e.entry.agent_harness??"")?!0:e.entry.agent_harness===void 0&&(t.harness_alias_authors??[]).includes(e.entry.author)}function cu(e,t){return!su(e,t)||!wn(e.entry.op,t.ops)||!wn(e.entry.author,t.authors)||!wn(e.entry.agent_instance??"",t.agent_instances)||!wn(e.stream_id,t.stream_ids)||!au(e,t)?!1:(t.provenance??[]).every(n=>{let r=e.entry.agent_provenance?.[n.dimension]?.value;return r!==void 0&&n.values.includes(r)})}async function my(e,t){let n=Math.max(0,Math.floor(t.limit)),r=(await tu(e)).filter(o=>cu(o,t)).slice(0,n+1);return{events:r.slice(0,t.limit),has_more:r.length>t.limit}}async function xs(e,t,n){let r=H.dirname(H.dirname(e)),o=Cn();if(!o){await n();return}let i=!1;try{await Tn(r,async()=>{let s=Rt(r);try{await F.access(s)}catch{await n();return}let a;try{if(a=new o(s),a.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==to)throw new TypeError("Unsupported history event index version")}catch{a?.close(),await F.rm(s,{force:!0}),await n();return}try{a.exec("PRAGMA busy_timeout = 5000"),a.exec("BEGIN IMMEDIATE")}catch(d){throw a.close(),d}let c=!1;try{await n(),c=!0,i=!0;let d=H.basename(e,".jsonl"),u=a.prepare("SELECT COALESCE(MAX(stream_offset), -1) + 1 AS value FROM events WHERE stream_id = ?").get(d);Cs(a,{stream_id:d,stream_offset:Number(u.value),entry:t}),As(a,d,(await F.stat(e)).size),a.exec("COMMIT"),a.close()}catch(d){if(a?.close(),!c)throw d;await vn(r)}})}catch(s){if(i){await vn(r);return}if(!(s instanceof E)||s.code!=="lock_conflict")throw s;let a;try{await xt(r,async()=>{let c=await Zl(r);a=c.pendingPath;try{await n(),i=!0}catch(d){throw await F.rm(c.pendingPath,{force:!0}),d}await F.rename(c.pendingPath,c.committedPath),await vn(r)})}catch(c){if(i){await vn(r);try{await F.rm(a,{force:!0})}catch{}return}throw c}}}async function oo(e){await F.rm(Rt(H.dirname(H.dirname(e))),{force:!0})}function En(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function du(e,t,n,r){if(!n||n.length===0)return;let o=n.map(()=>"?").join(", "),i=r??[];if(i.length>0){e.push(`(agent_harness IN (${o}) OR (agent_harness IS NULL AND author IN (${i.map(()=>"?").join(", ")})))`),t.push(...n,...i);return}e.push(`agent_harness IN (${o})`),t.push(...n)}async function Rs(e,t){let n=await eo(e);if(n.pending.length>0||n.committed.length>0)return;let r=new t(Rt(e),{readOnly:!0});try{if(r.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value===to)return r}catch(o){throw r.close(),o}r.close()}async function _y(e,t){let n=Cn();if(!n)return null;let r=[],o=[];if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){r.push("(ts > ? OR (ts = ? AND stream_id > ?) OR (ts = ? AND stream_id = ? AND stream_offset > ?))");let a=In(t.after_ts);o.push(a,a,t.after_stream_id,a,t.after_stream_id,t.after_stream_offset)}else t.since_ts!==void 0&&(r.push("ts >= ?"),o.push(In(t.since_ts)));En(r,o,"op",t.ops),En(r,o,"author",t.authors),du(r,o,t.harnesses,t.harness_alias_authors),En(r,o,"agent_instance",t.agent_instances);for(let a of t.provenance??[])r.push(`json_extract(entry_json, '$.agent_provenance.${a.dimension}.value') IN (${a.values.map(()=>"?").join(", ")})`),o.push(...a.values);En(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s;try{return await Tn(e,async()=>xt(e,async()=>{if(s=await Rs(e,n),!s)return null;let a=await uu(s,e,t.stream_ids);if(!await Ns(s,e,a))return s.close(),s=void 0,null;let c=s.prepare(`SELECT stream_id, stream_offset, entry_json
|
|
53
|
+
FROM events${i}
|
|
54
|
+
ORDER BY ts, stream_id, stream_offset
|
|
55
|
+
LIMIT ?`).all(...o,Math.max(0,Math.floor(t.limit))+1),d=c.slice(0,t.limit).map(Os);return s.close(),s=void 0,d.includes(null)?null:{events:d,has_more:c.length>t.limit}}))}catch{return s?.close(),null}}function Ds(e,t){let n=Object.create(null);for(let r of e){if(!t.has(r.stream_id)||nt(r.entry)!=="substantive")continue;let o=n[r.stream_id];(o===void 0||ro(o,r)<0)&&(n[r.stream_id]=r)}return n}async function lu(e,t){if(H.basename(t)!==t)return null;try{return(await F.stat(H.join(e,"history",`${t}.jsonl`))).size}catch(n){if(ye(n))return 0;throw n}}async function Ns(e,t,n){for(let r=0;r<n.length;r+=500){let o=n.slice(r,r+500),i=new Map(e.prepare(`SELECT stream_id, byte_size FROM streams
|
|
56
|
+
WHERE stream_id IN (${o.map(()=>"?").join(", ")})`).all(...o).map(a=>[String(a.stream_id),Number(a.byte_size)])),s=await Promise.all(o.map(a=>lu(t,a)));for(let[a,c]of s.entries()){if(c===null)return!1;let d=o[a],u=i.get(d);if(!(c===0&&u===void 0)&&c!==u)return!1}}return!0}async function uu(e,t,n){if(n&&n.length>0)return[...new Set(n.filter(i=>i.trim().length>0))];let r=e.prepare("SELECT stream_id FROM streams").all().map(i=>String(i.stream_id)),o=await F.readdir(H.join(t,"history"),{withFileTypes:!0}).then(i=>i.filter(s=>s.isFile()&&s.name.endsWith(".jsonl")).map(s=>s.name.slice(0,-6))).catch(i=>{if(ye(i))return[];throw i});return[...new Set([...r,...o])]}async function Es(e,t,n,r){if(!e)return null;let o;try{return await Tn(t,async()=>xt(t,async()=>{if(o=await Rs(t,e),!o)return null;if(!await Ns(o,t,n))return o.close(),o=void 0,null;let i=[];for(let s=0;s<n.length;s+=500){let a=n.slice(s,s+500),d=o.prepare(`SELECT stream_id, stream_offset, entry_json
|
|
57
|
+
FROM (
|
|
58
|
+
SELECT stream_id, stream_offset, entry_json,
|
|
59
|
+
ROW_NUMBER() OVER (
|
|
60
|
+
PARTITION BY stream_id
|
|
61
|
+
ORDER BY ts DESC, stream_offset DESC
|
|
62
|
+
) AS recency_rank
|
|
63
|
+
FROM events
|
|
64
|
+
WHERE event_class = 'substantive'
|
|
65
|
+
AND stream_id IN (${a.map(()=>"?").join(", ")})
|
|
66
|
+
)
|
|
67
|
+
WHERE recency_rank = 1`).all(...a).map(Os);if(d.includes(null))return o.close(),o=void 0,null;i.push(...d)}return o.close(),o=void 0,Ds(i,r)}))}catch(i){return o?.close(),i instanceof E&&i.code==="lock_conflict"?kn:null}}async function py(e,t){let n=[...new Set(t.filter(a=>a.trim().length>0&&H.basename(a)===a))];if(n.length===0)return{};let r=new Set(n),o=Cn(),i=await Es(o,e,n,r);if(i!==null&&i!==kn)return i;if(o&&i!==kn)try{if(await iu(e)){let a=await Es(o,e,n,r);if(a!==null&&a!==kn)return a}}catch{}let s=[];return await Promise.all(n.map(async a=>{let c=H.join(e,"history",`${a}.jsonl`);(await Ts(c,a).catch(u=>{if(u instanceof E&&u.code==="history_timestamp_invalid")return[];throw u})).forEach((u,f)=>{s.push({stream_id:a,stream_offset:f,entry:u})})})),Ds(s,r)}import mo from"node:fs/promises";import ot from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3d2360c6-41c1-5527-a53c-38d0590e3f04")}catch{}})();var On="changed_fields",fu="changed_field_count",io="rows",mu=new Set(["apply","rollback"]),js=new Set(["deleted","would_delete"]),Ls=256;function Ps(e){return typeof e!="string"||e.length<=Ls?e:`${e.slice(0,Ls-1)}\u2026`}function _u(e){if(!se(e))return null;let t={...e};return t.reason=Ps(t.reason),se(t.previous_terminal)&&(t.previous_terminal=Object.fromEntries(Object.entries(t.previous_terminal).map(([n,r])=>[n,Ps(r)]))),t}function se(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function Ms(e){let t=e[On];if(!Array.isArray(t))return null;let n=Object.getPrototypeOf(e)===null?Object.create(null):{};for(let[r,o]of Object.entries(e))r!==On&&(n[r]=o);return n[fu]=t.length,n}function pu(e){return"item"in e&&Array.isArray(e[On])}function hu(e){return typeof e.mode=="string"&&mu.has(e.mode)&&Array.isArray(e[io])}function yu(e,t){let n=Object.getPrototypeOf(e)===null?Object.create(null):{};return Object.assign(n,e),n[io]=t,n}function gu(e){if(!se(e))return null;let t=se(e.item)?e.item:se(e.plan)?e.plan:null;if(t===null)return null;let n=typeof t.id=="string"?t.id:void 0,r=typeof e.outcome=="string"&&js.has(e.outcome)?e.outcome:typeof t.status=="string"?t.status:void 0;return n?r?{id:n,status:r,...typeof e.deleted=="boolean"?{deleted:e.deleted}:{}}:{id:n}:null}function vu(e){if(!se(e)||!se(e.item)||typeof e.item.id!="string")return null;let t=e[On];if(!Array.isArray(t))return null;let n={id:e.item.id,...typeof e.outcome=="string"&&js.has(e.outcome)?{status:e.outcome}:typeof e.item.status=="string"?{status:e.item.status}:{},...typeof e.deleted=="boolean"?{deleted:e.deleted}:{},...typeof e.previous_status=="string"?{previous_status:e.previous_status}:{},changed_field_count:t.length};return bu(e,e.item,n),n}function bu(e,t,n){let r=typeof e.close_reason=="string"?e.close_reason:typeof t.close_reason=="string"?t.close_reason:void 0;r!==void 0&&(n.close_reason=r);let o=_u(e.recurrence);if(o!==null&&(n.recurrence=o),Array.isArray(e.warnings)&&e.warnings.length>0&&(n.warnings=e.warnings),se(e.recovery)&&(n.recovery=e.recovery),typeof e.claimed_by=="string")for(let i of["claimed_by","previous_assignee","forced","skipped","available","attempts"])Object.hasOwn(e,i)&&(n[i]=e[i])}function wu(e){let t=hu(e)?e[io]:void 0;if(!Array.isArray(t))return{projected:e,changed:!1};let n=!1,r=t.map(o=>{if(!se(o))return o;let i=Ms(o);return i?(n=!0,i):o});return n?{projected:yu(e,r),changed:!0}:{projected:e,changed:!1}}function Eu(e,t={}){if(t.idOnly===!0){let a=gu(e);if(a!==null)return a}if(t.compactEnvelope===!0){let a=vu(e);if(a!==null)return a}if((t.changedFields??"full")==="full"||!se(e))return e;let r=!1,o=e,i=pu(e)?Ms(e):null;i!==null&&(o=i,r=!0);let s=wu(o);return s.changed&&(o=s.projected,r=!0),r?o:e}import{encode as zs}from"@toon-format/toon";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1a9ff3c9-9c7e-50ec-bb12-8a7f91de757f")}catch{}})();var My=new Set(Object.values(w));var Fs=!1;function rt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function so(e){return typeof e=="object"&&e!==null&&e.code==="EPIPE"}function ku(){(process.exitCode===void 0||process.exitCode===w.SUCCESS)&&(process.exitCode=w.SUCCESS)}function Iu(){(process.exitCode===void 0||process.exitCode===w.SUCCESS)&&(process.exitCode=w.GENERIC_FAILURE)}function ao(e){if(e==="stdout"){ku();return}Iu()}function $s(e){let t=e instanceof Error?e:new Error(String(e));setImmediate(()=>{throw t})}function Su(){Fs||(Fs=!0,process.stdout.on("error",e=>{if(so(e)){ao("stdout");return}$s(e)}),process.stderr.on("error",e=>{if(so(e)){ao("stderr");return}$s(e)}))}function Tu(e,t){Su();try{return e==="stdout"?process.stdout.write(t):process.stderr.write(t),!0}catch(n){if(so(n))return ao(e),!1;throw n}}function An(e){return Tu("stderr",e)}function co(e){return typeof e=="string"?JSON.stringify(e):typeof e=="number"||typeof e=="boolean"?String(e):e===null?"null":JSON.stringify(e)}function Cu(e){return e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function Hs(e){if(e.length===0||!e.every(rt))return!1;let t=Object.keys(e[0]);return t.length>0&&e.every(n=>Object.keys(n).length===t.length&&t.every(r=>Object.hasOwn(n,r)&&Cu(n[r])))}function Us(e,t){let n=" ".repeat(t);return e.split(`
|
|
68
|
+
`).map(r=>`${n}${r}`).join(`
|
|
69
|
+
`)}function Ou(e,t,n){let r=" ".repeat(n);return!rt(t)&&!Array.isArray(t)?`${r}${e}: ${co(t)}`:Array.isArray(t)&&t.length===0?`${r}${e}: []`:Array.isArray(t)&&Hs(t)?Us(zs({[e]:t}),n):rt(t)&&Object.keys(t).length===0?`${r}${e}: {}`:`${r}${e}:
|
|
70
|
+
${uo(t,n+1)}`}function lo(e){if(e!=null){if(Array.isArray(e)){let t=e.map(n=>lo(n)).filter(n=>n!==void 0);return t.length>0?t:void 0}if(rt(e)){let t={};for(let[n,r]of Object.entries(e)){if(n==="omitted_field_groups"&&Array.isArray(r)&&r.length===0){t[n]=[];continue}let o=lo(r);o!==void 0&&(t[n]=o)}return Object.keys(t).length>0?t:void 0}return e}}function uo(e,t){let n=" ".repeat(t);if(Array.isArray(e))return e.length===0?"[]":Hs(e)?Us(zs(e),t):e.map(r=>{if(!rt(r)&&!Array.isArray(r))return`${n}- ${co(r)}`;let i=uo(r,t+1).split(`
|
|
71
|
+
`),[s,...a]=i;return a.length===0?`${n}- ${s.trimStart()}`:`${n}- ${s.trimStart()}
|
|
72
|
+
${a.join(`
|
|
73
|
+
`)}`}).join(`
|
|
74
|
+
`);if(rt(e)){let r=Object.entries(e);return r.length===0?"{}":r.map(([o,i])=>Ou(o,i,t)).join(`
|
|
75
|
+
`)}return`${n}${co(e)}`}function fo(e,t){if(t==="json")return`${JSON.stringify(e,null,2)}
|
|
76
|
+
`;let n=lo(e);return n===void 0?`{}
|
|
77
|
+
`:`${uo(n,0)}
|
|
78
|
+
`}function Fy(e){let t=Ni("error_format",{message:e}),n=t.handled&&typeof t.result=="string"?t.result:e;An(n.endsWith(`
|
|
79
|
+
`)?n:`${n}
|
|
80
|
+
`)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="979782f5-f4ee-5df5-a68a-0c51ab0548ae")}catch{}})();var Au=ot.join("runtime","history-drift-cache.json"),Bs={EINVAL:"invalid_cache_path",EISDIR:"cache_path_is_directory",ENOENT:"invalid_cache_path",ENOTDIR:"invalid_cache_path",ERR_FS_EISDIR:"cache_path_is_directory"};function Ws(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function xu(e){let t=ot.join(e,Au),n=!1,r="invalid_cache_path";try{n=(await mo.stat(await mo.realpath(e))).isDirectory()}catch(o){let i=Ws(o);r=i===void 0?"unknown":Bs[i]??"filesystem_error"}if(!n){An(`[pm] warning: history_drift_cache_invalidation_failed:${r}
|
|
81
|
+
`);return}try{await mo.rm(t,{force:!0})}catch(o){let i=Ws(o);if(ye(o))return;let s=i===void 0?"unknown":Bs[i]??"filesystem_error";An(`[pm] warning: history_drift_cache_invalidation_failed:${s}
|
|
82
|
+
`)}}async function xn(e){let t=ot.dirname(ot.resolve(e));ot.basename(t)==="history"&&await xu(ot.dirname(t))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="70eda133-68fd-5dd6-afe9-c892f23e50a5")}catch{}})();var Nu={front_matter:{},body:""},Fe=3,Dt=[1,2,3],Lu=1,Pu=[1];function Ys(e){return ee(L(e))}function it(e){return ee(L(e))}function sg(e){return ee(L(e))}function yo(e){let t={...e,record_hash_version:Lu},{record_hash:n,...r}=t;return{...t,record_hash:Ys(r)}}function Nn(e){if(e.record_hash_version===void 0&&e.record_hash===void 0)return{ok:!0,coverage:"item_state_only"};if(e.record_hash_version===void 0||e.record_hash===void 0)return{ok:!1,error:"incomplete_record_hash_envelope"};if(!Pu.includes(e.record_hash_version))return{ok:!1,error:"unsupported_record_hash_version"};let{record_hash:t,...n}=e;return Ys(n)===e.record_hash?{ok:!0,coverage:"record_and_item_state"}:{ok:!1,error:"record_hash_mismatch"}}function ju(e,t){let n={before_hash:e.before_hash,after_hash:e.after_hash,patch_hash:it(e.patch)};return e.item_hash_version!==void 0&&(n.item_hash_version=e.item_hash_version),t.retainOriginalPatch&&(n.patch=structuredClone(e.patch)),t.retainPriorRecordHash!==!1&&e.record_hash_version!==void 0&&e.record_hash!==void 0&&(n.record_hash_version=e.record_hash_version,n.record_hash=e.record_hash,n.record=structuredClone(e)),n}function Js(e,t,n={}){let r=Nn(e);if(!r.ok)throw new TypeError(r.error);let o=it(e.patch),i=n.retainPriorRecord===!0||e.before_hash!==t.before_hash||e.after_hash!==t.after_hash||e.item_hash_version!==t.item_hash_version||o!==it(t.patch),s=yo({...t,...i?{reanchor_evidence:[...t.reanchor_evidence??[],ju(e,n)]}:{}}),a=go(s);if(!a.ok)throw new TypeError(a.error);return s}function Qs(e){return!Array.isArray(e)||Object.keys(e).length!==e.length?!1:e.every(t=>!$e(t)||typeof t.path!="string"?!1:t.op==="move"||t.op==="copy"?typeof t.from=="string":["add","replace","test"].includes(t.op)?Object.hasOwn(t,"value"):t.op==="remove")}function Mu(e){return $e(e)&&typeof e.ts=="string"&&typeof e.author=="string"&&typeof e.op=="string"&&typeof e.before_hash=="string"&&typeof e.after_hash=="string"&&Qs(e.patch)}function Fu(e){let t=e.record_hash_version!==void 0,n=e.record_hash!==void 0;return t===n}function $u(e){return!$e(e)||!Fu(e)||typeof e.before_hash!="string"||typeof e.after_hash!="string"||typeof e.patch_hash!="string"||!/^[a-f0-9]{64}$/u.test(e.patch_hash)||e.patch!==void 0&&!Qs(e.patch)||e.record_hash_version!==void 0&&typeof e.record_hash_version!="number"||e.record_hash!==void 0&&(typeof e.record_hash!="string"||!/^[a-f0-9]{64}$/u.test(e.record_hash))?!1:e.record===void 0||Mu(e.record)}function zu(e){let t=e.record;return t!==void 0&&t.before_hash===e.before_hash&&t.after_hash===e.after_hash&&t.item_hash_version===e.item_hash_version&&t.record_hash_version===e.record_hash_version&&t.record_hash===e.record_hash&&it(t.patch)===e.patch_hash}function Hu(e,t,n){if(t.patch&&it(t.patch)!==t.patch_hash)return{kind:"patch_hash_mismatch"};if(t.record)return zu(t)?{kind:"record",entry:t.record}:{kind:"record_hash_mismatch"};let r=t.patch??e.patch;if(it(r)!==t.patch_hash)return{kind:"digest_only"};let o={...e,before_hash:t.before_hash,after_hash:t.after_hash,patch:r,...t.item_hash_version===void 0?{}:{item_hash_version:t.item_hash_version},...t.record_hash_version===void 0?{}:{record_hash_version:t.record_hash_version},...t.record_hash===void 0?{}:{record_hash:t.record_hash},...n.length===0?{}:{reanchor_evidence:n}};return n.length===0&&delete o.reanchor_evidence,t.item_hash_version===void 0&&delete o.item_hash_version,t.record_hash_version===void 0||t.record_hash===void 0?{kind:"legacy",entry:o}:{kind:"record",entry:o}}function go(e){let t=e.reanchor_evidence;if(t===void 0)return{ok:!0,coverage:"none"};if(!Array.isArray(t))return{ok:!1,error:"rewrite_evidence_invalid"};if(t.length===0)return{ok:!0,coverage:"none"};let n=e;for(let r=t.length-1;r>=0;r-=1){let o=t[r];if(!(r in t)||!$u(o))return{ok:!1,error:"rewrite_evidence_invalid"};let i=Hu(n,o,t.slice(0,r));if(i.kind==="patch_hash_mismatch")return{ok:!1,error:"rewrite_evidence_patch_hash_mismatch"};if(i.kind==="record_hash_mismatch")return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};if(i.kind==="digest_only")return{ok:!0,coverage:"digest_only"};if(i.kind==="legacy")return{ok:!0,coverage:"legacy_anchor_only"};if(!Nn(i.entry).ok)return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};n=i.entry}return{ok:!0,coverage:"complete"}}function Rn(e,t){return(e??"").localeCompare(t??"")}function Ks(e,t){return(e??0)-(t??0)}function Ie(e,t,n){return JSON.stringify(e??n).localeCompare(JSON.stringify(t??n))}function Uu(e,t){return[e.scope.localeCompare(t.scope),Rn(e.path,t.path),Rn(e.command,t.command),Ks(e.timeout_seconds,t.timeout_seconds),Rn(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,Ie(e.env_clear,t.env_clear,[]),Ie(e.env_set,t.env_set,{}),Ie(e.assert_stdout_contains,t.assert_stdout_contains,[]),Ie(e.assert_stdout_regex,t.assert_stdout_regex,[]),Ie(e.assert_stderr_contains,t.assert_stderr_contains,[]),Ie(e.assert_stderr_regex,t.assert_stderr_regex,[]),Ks(e.assert_stdout_min_lines,t.assert_stdout_min_lines),Ie(e.assert_json_field_equals,t.assert_json_field_equals,{}),Ie(e.assert_json_field_gte,t.assert_json_field_gte,{}),Rn(e.note,t.note)].find(r=>r!==0)??0}function Bu(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function Wu(e,t){let n=Bu(t);if(n.length===0)return!0;let r=e;for(let o of n){let i=/^(0|[1-9]\d*)$/.test(o)?Number(o):-1,s=Array.isArray(r)?i>=0&&i<r.length?r[i]:void 0:$e(r)&&Object.prototype.hasOwnProperty.call(r,o)?r[o]:void 0;if(s===void 0)return!1;r=s}return!0}function Vu(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!Wu(r,o.path)?{...o,op:"add"}:o;n.push(i),r=Gs.applyPatch(r,[i],!0,!0).newDocument}return n}function Dn(e,t,n=!1){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let o=te(e),s=t===1||t===2&&n?{...o.metadata,...o.metadata.dependencies===void 0?{}:{dependencies:o.metadata.dependencies.map(d=>({...d,id:d.id.toLowerCase()}))},...o.metadata.tests===void 0?{}:{tests:o.metadata.tests.map(({workspace_context_mode:d,provenance:u,provenance_invalid:f,..._})=>_)},...o.metadata.test_runs===void 0?{}:{test_runs:o.metadata.test_runs.map(({executions:d,...u})=>u)}}:o.metadata,a=t===1&&s.tests?{...s,tests:[...s.tests].sort(Uu)}:s;return{front_matter:T(a,he),body:o.body}}function qs(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let n=te(e);return{metadata:T(n.metadata,he),body:n.body}}function ag(e){return Zs(e,Fe)}function Zs(e,t){if(!Dt.some(n=>n===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return ee(L(Dn(e,t)))}function ea(e,t){let n=Zs(e,t);return t===2?[n,ee(L(Dn(e,t,!0)))]:[n]}function cg(){return ee(L(Nu))}function st(e){let t=Dn(e.before,Fe),n=Dn(e.after,Fe),r=qs(e.before),o=qs(e.after),i=Gs.compare(r,o),s=Vu(r,i),a=ns(e.author),c=a.harness?Object.fromEntries(Object.entries(es().provenance_outcomes).filter(([,f])=>f.resolver!==void 0&&f.status!=="resolved")):void 0,d=c===void 0||Object.keys(c).length===0?e.context:{...e.context,agent_provenance_outcomes:c},u={ts:e.nowIso,author:e.author,author_source:e.authorSource??ts(e.author),...a.harness?{agent_harness:a.harness}:{},...a.model?{agent_model:a.model}:{},...a.model_source?{agent_model_source:a.model_source}:{},...a.instance?{agent_instance:a.instance}:{},...a.provenance?{agent_provenance:a.provenance}:{},...a.episode?{agent_episode:a.episode}:{},op:e.op,patch:s,before_hash:ee(L(t)),after_hash:ee(L(n)),item_hash_version:Fe,message:e.message===void 0?void 0:e.message,...d===void 0?{}:{context:d}};return yo({...u,event_class:nt(u)})}function $e(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function _o(e){return new E(e,w.GENERIC_FAILURE,{code:"history_timestamp_invalid"})}function ta(e){let t=e.ts.trim();if(t.length===0)return be();if(!qe(t))throw _o("History timestamp must be a valid RFC 3339 date-time with millisecond precision");if(t!==e.ts)throw _o("History timestamp must not contain surrounding whitespace");return e.ts}function Xs(e,t){let n=e.ts;if(typeof n=="string"&&n.trim().length>0){if(!qe(n))throw _o("History timestamp must be a valid RFC 3339 date-time with millisecond precision");return e}return{...e,ts:t}}function po(e,t){let n=ta(t);if(typeof e=="string"){let r;try{r=JSON.parse(e)}catch{return e}return $e(r)?JSON.stringify(Xs(r,n)):e}return $e(e)?JSON.stringify(Xs(e,n)):JSON.stringify(e)}async function Ku(e,t,n){if(n===!1)return!0;if(typeof n=="string"){let s=po(n,t);return await ho(e,s),await xn(e),await oo(e),!0}if(typeof n!="object"||n===null)return!1;let r=n;if(r.skip===!0)return!0;let o=typeof r.history_path=="string"?r.history_path:e,i=po(typeof r.line=="string"?r.line:r.entry??t,t);return await ho(o,i),await xn(o),await oo(o),!0}async function ho(e,t){let n;try{n=JSON.parse(t)}catch{n=null}if(!$e(n)||n.op!=="create"){await pi(e,t);return}await Vs.mkdir(Du.dirname(e),{recursive:!0});try{await Vs.writeFile(e,`${t}
|
|
83
|
+
`,{encoding:"utf8",flag:"wx"})}catch(r){throw r.code!=="EEXIST"?r:new E("This item identity is reserved by an existing history stream.",w.CONFLICT,{code:"item_identity_reserved",required:"Choose a new item ID or restore the original item from its history.",nextSteps:["Run pm history <id> --full, then pm restore <id> <version> to recover the original item."]})}}async function at(e,t){let n=await It("history_append",{history_path:e,entry:t});if(n.handled&&await Ku(e,t,n.result))return;let r=t.ts.trim().length>0?t:{...t,ts:ta(t)},o=yo({...r,event_class:nt(r)});await xs(e,o,async()=>{await ho(e,po(o,o))}),await xn(e)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="19838bc7-d35d-5fae-a023-2e39697ffec9")}catch{}})();var qu={metadata:{},body:""};function Ln(){return structuredClone(qu)}function yg(e,t=Fe){return vo(e,t)[0]}function vo(e,t){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return ea(Pn(e),t)}catch{}let n=ee(L({replay_fallback:!0,metadata:e.metadata,body:e.body}));return t===2?[n,n]:[n]}function oa(e,t,n,r){let o=vo(e,n),i=vo(t,n);return{beforeHashes:o,afterHashes:i,pairIndex:o.findIndex((s,a)=>s===r.before_hash&&i[a]===r.after_hash),beforeIndex:o.indexOf(r.before_hash),afterIndex:i.indexOf(r.after_hash)}}function Pn(e){return{metadata:e.metadata,body:e.body}}function gg(e,t={}){return te(Pn(e),t)}function vg(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=te(e);return{metadata:T(t.metadata,he),body:t.body}}function na(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function Xu(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function ia(e){return Array.isArray(e)?e.filter(Xu).map(t=>({...t,path:na(t.path),from:typeof t.from=="string"?na(t.from):void 0})):[]}function Gu(e){return typeof e=="object"&&e!==null&&"metadata"in e&&"body"in e&&typeof e.body=="string"&&typeof e.metadata=="object"&&e.metadata!==null}function jn(e,t){try{let n=ia(t),r=bo.applyPatch(structuredClone(e),n,!0,!1).newDocument;return Gu(r)?{ok:!0,document:{metadata:r.metadata,body:r.body}}:{ok:!1,error:new Error("history_replay_invalid_document_shape")}}catch(n){return{ok:!1,error:n}}}function Yu(e){return[...new Set(e.map(t=>t.item_hash_version).filter(t=>t!==void 0&&Dt.includes(t)))]}function sa(e){return e!==void 0&&!Dt.includes(e)}function Ju(e,t){return e!==void 0?[e]:t===void 0?[...Dt]:[t]}function aa(e){let t=Nn(e);if(!t.ok)return t.error;let n=go(e);return n.ok?void 0:n.error}function Qu(e,t){let n=aa(e);if(n)return{ok:!1,error:n};let r=jn(t,e.patch);return r.ok?{ok:!0,document:r.document}:{ok:!1,error:"patch_apply_failed"}}function Zu(e,t){let n=aa(e);if(n)throw new TypeError(`${n}:entry_${t+1}`)}function ca(e){let t=Ln(),n,r,o=ws(e).map(i=>`verify_failed:duplicate_create:entry_${i.repeated_create_index}:prior_${i.prior_genesis_index}`);for(let i=0;i<e.length;i+=1){let s=e[i],a=s.item_hash_version,c=sa(a);c&&o.push(`verify_failed:unsupported_item_hash_version:${String(a)}:entry_${i+1}`);let d=Qu(s,t);if(!d.ok)return{ok:!1,errors:[...o,`verify_failed:${d.error}:entry_${i+1}`]};if(c){t=d.document,n=void 0,r=void 0;continue}let f=Ju(a,r).map(m=>({version:m,match:oa(t,d.document,m,s)})),_=f.find(({match:m})=>m.pairIndex>=0);if(_===void 0){let m=f.some(({match:y})=>y.beforeIndex>=0);return{ok:!1,errors:[...o,`verify_failed:${m?"after":"before"}_hash_mismatch:entry_${i+1}`]}}let p=_.version;t=d.document,n=p,r=a??r}return o.length>0?{ok:!1,errors:o,...n===void 0?{}:{item_hash_version:n}}:{ok:!0,errors:[],...n===void 0?{}:{item_hash_version:n}}}function Mn(e){let t=ca(e);return{ok:t.ok,errors:t.errors}}function ra(e,t){try{return{ok:!0,document:bo.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function ef(e,t){let n=structuredClone(e),r=0,o=0;for(let a of ia(t)){let c=ra(n,a);if(c.ok){n=c.document;continue}if(a.op==="replace"){let d=ra(n,{...a,op:"add"});if(d.ok){n=d.document,r+=1;continue}}o+=1}let i=n;return{document:{metadata:typeof i.metadata=="object"&&i.metadata!==null?i.metadata:{},body:typeof i.body=="string"?i.body:e.body},convertedReplaceToAdd:r,skippedOps:o}}function tf(e){let t=Yu(e);if(t.length===1)return t[0];let n=ca(e);return n.ok&&n.item_hash_version!==void 0?n.item_hash_version:t.length===0?1:Fe}function nf(e,t){let n=jn(e,t.patch);if(n.ok)return{next:n.document,patch:t.patch,repaired:!1,converted:0,skipped:0};let r=ef(e,t.patch);return{next:r.document,patch:bo.compare(e,r.document),repaired:!0,converted:r.convertedReplaceToAdd,skipped:r.skippedOps}}function bg(e,t=tf(e),n={}){let r=e.findIndex(p=>sa(p.item_hash_version));if(r>=0)throw new TypeError(`unsupported_item_hash_version:${String(e[r]?.item_hash_version)}:entry_${r+1}`);let o=Ln(),i=[],s=[],a=0,c=0,d=0,u=0,f,_=t!==1||e.some(p=>p.item_hash_version!==void 0);for(let p=0;p<e.length;p+=1){let m=e[p];Zu(m,p);let y=nf(o,m),{next:g,patch:S,repaired:A,converted:x,skipped:M}=y;d+=x,u+=M,c+=Number(A);let D=oa(o,g,t,m);f===void 0||n.continuousHashSurface!==!0?f=[D.pairIndex,D.beforeIndex,D.afterIndex,Math.min(f??0,D.beforeHashes.length-1)].find(Ue=>Ue>=0):f=Math.min(f,D.beforeHashes.length-1);let re=D.beforeHashes[f],B=D.afterHashes[f],Q=re!==m.before_hash||B!==m.after_hash;Q&&(a+=1);let K={...m,patch:S,before_hash:re,after_hash:B};_?K.item_hash_version=t:delete K.item_hash_version;let Z=K.item_hash_version!==m.item_hash_version;(Q||A||Z)&&(K=Js(m,K,{retainOriginalPatch:A})),i.push(K),s.push({index:p+1,rehashed:Q,patch_repaired:A,converted_replace_to_add:x,skipped_ops:M}),o=g}return{entries:i,finalDocument:o,entriesRehashed:a,entriesPatchRepaired:c,convertedReplaceToAdd:d,skippedOps:u,details:s,itemHashVersion:t,explicitItemHashVersion:_}}function wg(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
|
|
84
|
+
`)}
|
|
85
|
+
`}import{AsyncLocalStorage as rf}from"node:async_hooks";import{channel as of}from"node:diagnostics_channel";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="118ec110-fa84-550b-a0a8-4def314270b6")}catch{}})();var wo=new rf,Eo=of("@unbrained/pm-cli/item-metadata-enumeration/v1");function Fn(e){Eo.publish(e)}async function Sg(e){let t={enumeration_calls:0,metadata_rows:0},n=r=>{wo.getStore()?.includes(t)&&(t.enumeration_calls+=1,t.metadata_rows+=r)};Eo.subscribe(n);try{return{result:await wo.run([...wo.getStore()??[],t],e),work:{...t}}}finally{Eo.unsubscribe(n)}}import sf from"node:crypto";import $n from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="72c5a2e2-4e90-587d-a461-946b4836e447")}catch{}})();function la(e){let t=[],n=!1;for(let r of(e??"").toLowerCase()){let o=r.charCodeAt(0),i=o>=48&&o<=57,s=o>=97&&o<=122;if(!i&&!s){n=t.length>0;continue}n&&(t.push("-"),n=!1),t.push(r)}return t.length===0?"pm-":`${t.join("")}-`}function ko(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function Nt(e,t){let n=la(t),r=ko(e);return r.startsWith(n)?r:`${n}${r}`}function af(e){let t=Li(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=sf.randomInt(0,36).toString(36);return n}async function cf(e,t,n){let r=[...new Set(Object.values(n))].flatMap(o=>[$n.join(e,o,`${t}.md`),$n.join(e,o,`${t}.toon`)]);return r.push($n.join(e,"history",`${t}.jsonl`)),(await Promise.all(r.map(o=>Re(o)))).some(Boolean)}var da=4,ua=12;function df(e){return typeof e!="number"||!Number.isFinite(e)?da:Math.min(ua,Math.max(da,Math.trunc(e)))}async function Dg(e,t,n={}){let r=df(n.tokenLength),o=Math.min(r+6,ua),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${la(t)}${af(r)}`;if(!await(n.probeExisting===!1?Re($n.join(e,"history",`${a}.jsonl`)):cf(e,a,n.typeToFolder??xe)))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import ze from"node:fs/promises";import ma from"node:path";import{randomUUID as lf}from"node:crypto";import{createRequire as uf}from"node:module";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e9e67ec7-10cb-57b0-a094-ae52b01a0f8a")}catch{}})();var ff="metadata-query-index.sqlite",Lt="5";function mf(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}var zn;function _f(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?mf(t):null}function Pt(){return zn!==void 0||(zn=_f(process.versions.node,uf(import.meta.url))),zn}function fa(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function ct(e){return ma.join(e,"runtime",ff)}function pf(e){e.exec(`
|
|
86
|
+
PRAGMA foreign_keys = ON;
|
|
87
|
+
PRAGMA journal_mode = OFF;
|
|
88
|
+
PRAGMA synchronous = OFF;
|
|
89
|
+
CREATE TABLE metadata (
|
|
90
|
+
key TEXT PRIMARY KEY,
|
|
91
|
+
value TEXT NOT NULL
|
|
92
|
+
) STRICT;
|
|
93
|
+
CREATE TABLE items (
|
|
94
|
+
id TEXT PRIMARY KEY,
|
|
95
|
+
relative_path TEXT NOT NULL UNIQUE,
|
|
96
|
+
metadata_json TEXT NOT NULL,
|
|
97
|
+
status TEXT NOT NULL,
|
|
98
|
+
type TEXT NOT NULL,
|
|
99
|
+
priority INTEGER NOT NULL,
|
|
100
|
+
updated_at TEXT NOT NULL,
|
|
101
|
+
created_at TEXT NOT NULL,
|
|
102
|
+
parent TEXT,
|
|
103
|
+
assignee TEXT,
|
|
104
|
+
sprint TEXT,
|
|
105
|
+
release TEXT
|
|
106
|
+
) STRICT;
|
|
107
|
+
CREATE INDEX items_default_order
|
|
108
|
+
ON items(priority, updated_at DESC, id);
|
|
109
|
+
CREATE INDEX items_status_default_order
|
|
110
|
+
ON items(status, priority, updated_at DESC, id);
|
|
111
|
+
CREATE INDEX items_type_default_order
|
|
112
|
+
ON items(type, priority, updated_at DESC, id);
|
|
113
|
+
CREATE INDEX items_parent_default_order
|
|
114
|
+
ON items(parent, priority, updated_at DESC, id);
|
|
115
|
+
CREATE TABLE item_metadata_keys (
|
|
116
|
+
item_id TEXT NOT NULL,
|
|
117
|
+
key TEXT NOT NULL,
|
|
118
|
+
PRIMARY KEY(item_id, key),
|
|
119
|
+
FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
|
|
120
|
+
) STRICT;
|
|
121
|
+
CREATE INDEX item_metadata_keys_key_item
|
|
122
|
+
ON item_metadata_keys(key, item_id);
|
|
123
|
+
CREATE TABLE item_linked_files (
|
|
124
|
+
item_id TEXT NOT NULL,
|
|
125
|
+
path TEXT NOT NULL,
|
|
126
|
+
scope TEXT NOT NULL,
|
|
127
|
+
note TEXT,
|
|
128
|
+
PRIMARY KEY(item_id, path, scope),
|
|
129
|
+
FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
|
|
130
|
+
) STRICT;
|
|
131
|
+
CREATE INDEX item_linked_files_path_scope_item
|
|
132
|
+
ON item_linked_files(path, scope, item_id);
|
|
133
|
+
CREATE VIRTUAL TABLE item_search USING fts5(
|
|
134
|
+
id UNINDEXED,
|
|
135
|
+
title,
|
|
136
|
+
description,
|
|
137
|
+
tags,
|
|
138
|
+
tokenize = 'unicode61'
|
|
139
|
+
);
|
|
140
|
+
`)}function Un(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function _a(e,t){let n=t.metadata;e.prepare(`INSERT INTO items(
|
|
141
|
+
id, relative_path, metadata_json, status, type, priority,
|
|
142
|
+
updated_at, created_at, parent, assignee, sprint, release
|
|
143
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
144
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
145
|
+
relative_path = excluded.relative_path,
|
|
146
|
+
metadata_json = excluded.metadata_json,
|
|
147
|
+
status = excluded.status,
|
|
148
|
+
type = excluded.type,
|
|
149
|
+
priority = excluded.priority,
|
|
150
|
+
updated_at = excluded.updated_at,
|
|
151
|
+
created_at = excluded.created_at,
|
|
152
|
+
parent = excluded.parent,
|
|
153
|
+
assignee = excluded.assignee,
|
|
154
|
+
sprint = excluded.sprint,
|
|
155
|
+
release = excluded.release`).run(n.id,t.relativePath,JSON.stringify(n),n.status,n.type,n.priority,n.updated_at,n.created_at,n.parent??null,n.assignee??null,n.sprint??null,n.release??null),e.prepare("DELETE FROM item_metadata_keys WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_linked_files WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_search WHERE rowid = (SELECT rowid FROM items WHERE id = ?)").run(n.id),e.prepare("INSERT INTO item_search(rowid, id, title, description, tags) SELECT rowid, ?, ?, ?, ? FROM items WHERE id = ?").run(n.id,n.title,n.description,n.tags.join(" "),n.id);let r=e.prepare("INSERT INTO item_metadata_keys(item_id, key) VALUES (?, ?)");for(let i of Object.keys(n))r.run(n.id,i);let o=e.prepare("INSERT INTO item_linked_files(item_id, path, scope, note) VALUES (?, ?, ?, ?)");for(let i of t.linkedFiles??[])o.run(n.id,i.path,i.scope,i.note??null)}async function pa(e){let t=ct(e.pmRoot),n=Pt();if(!n){await ze.rm(t,{force:!0});return}await ze.mkdir(ma.dirname(t),{recursive:!0});let r=`${t}.${lf()}.tmp`,o;try{o=new n(r),pf(o),o.exec("BEGIN IMMEDIATE"),Un(o,"version",Lt),Un(o,"context_fingerprint",e.contextFingerprint),Un(o,"source_cursor",e.sourceCursor);for(let i of e.rows)_a(o,i);o.exec("COMMIT"),o.close(),o=void 0,await ze.rm(t,{force:!0}),await ze.rename(r,t)}catch(i){throw o?.close(),await Promise.allSettled([ze.rm(r,{force:!0})]),i}}function Bn(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function ha(e){let t=Pt();if(!t)return!1;let n=ct(e.pmRoot),r;try{await ze.access(n),r=new t(n),r.exec("PRAGMA foreign_keys = ON");let o=Bn(r);if(o.version!==Lt||o.context_fingerprint!==e.contextFingerprint||o.source_cursor!==e.expectedSourceCursor)return r.close(),!1;r.exec("BEGIN IMMEDIATE");let i=r.prepare("DELETE FROM items WHERE relative_path = ?"),s=r.prepare("SELECT rowid FROM items WHERE relative_path = ?"),a=r.prepare("DELETE FROM item_search WHERE rowid = ?");for(let c of e.deletedRelativePaths??[]){let d=s.get(c);i.run(c),d&&a.run(d.rowid)}return e.row&&_a(r,e.row),Un(r,"source_cursor",e.sourceCursor),r.exec("COMMIT"),r.close(),!0}catch{try{r?.exec("ROLLBACK")}catch{}return r?.close(),!1}}function Hn(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function hf(e){let t=[],n=[];Hn(t,n,"status",e.statuses,"IN"),Hn(t,n,"status",e.excludeStatuses,"NOT IN"),Hn(t,n,"type",e.types,"IN"),Hn(t,n,"id",e.ids,"IN");for(let r of e.metadataKeys??[])t.push("EXISTS (SELECT 1 FROM item_metadata_keys AS indexed_key WHERE indexed_key.item_id = items.id AND indexed_key.key = ?)"),n.push(r);for(let[r,o]of[["parent",e.parent],["assignee",e.assignee],["sprint",e.sprint],["release",e.release]])o!==void 0&&(t.push(`${r} = ?`),n.push(o));return e.priority!==void 0&&(t.push("priority = ?"),n.push(e.priority)),{where:t.length===0?"":` WHERE ${t.join(" AND ")}`,parameters:n}}async function Fg(e){let t=Pt();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=hf(n),i;try{i=new t(ct(e.pmRoot),{readOnly:!0});let s=Bn(i);if(s.version!==Lt||s.source_cursor!==e.expectedSourceCursor)return i.close(),null;let a=i.prepare(`SELECT COUNT(*) AS count FROM items${r}`).get(...o),c=[],d="";n.limit!==void 0?(d+=" LIMIT ?",c.push(Math.max(0,Math.floor(n.limit))),n.offset!==void 0&&(d+=" OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))))):n.offset!==void 0&&(d+=" LIMIT -1 OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))));let f=i.prepare(`SELECT metadata_json FROM items${r}
|
|
156
|
+
ORDER BY ${n.terminalStatuses&&n.terminalStatuses.length>0?`CASE WHEN status IN (${n.terminalStatuses.map(()=>"?").join(", ")}) THEN 1 ELSE 0 END ASC, `:""}priority ASC, updated_at DESC, id ASC${d}`).all(...o,...n.terminalStatuses??[],...c).map(_=>{let p=JSON.parse(String(_.metadata_json));if(!p.id)throw new TypeError("Indexed metadata row has no id");return p});return i.close(),{source_cursor:s.source_cursor,total:Number(a.count),items:f}}catch{return i?.close(),null}}async function $g(e){let t=Pt();if(!t||e.paths.length===0)return null;let n;try{n=new t(ct(e.pmRoot),{readOnly:!0});let r=Bn(n);if(r.version!==Lt||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let o=e.paths.map(()=>"?").join(", "),i=e.scope===void 0?"":" AND scope = ?",s=[...e.paths,...e.scope===void 0?[]:[e.scope]],a=`path IN (${o})${i}`,c=n.prepare(`SELECT COUNT(DISTINCT item_id) AS count
|
|
157
|
+
FROM item_linked_files
|
|
158
|
+
WHERE ${a}`).get(...s),d=fa(e.limit,50),u=fa(e.offset,0),f=n.prepare(`SELECT items.id, items.metadata_json
|
|
159
|
+
FROM items
|
|
160
|
+
WHERE EXISTS (
|
|
161
|
+
SELECT 1 FROM item_linked_files
|
|
162
|
+
WHERE item_linked_files.item_id = items.id AND ${a}
|
|
163
|
+
)
|
|
164
|
+
ORDER BY items.priority ASC, items.updated_at DESC, items.id ASC
|
|
165
|
+
LIMIT ? OFFSET ?`).all(...s,d,u),_=[];if(f.length>0){let p=f.map(g=>String(g.id)),m=n.prepare(`SELECT item_id, path, scope, note
|
|
166
|
+
FROM item_linked_files
|
|
167
|
+
WHERE item_id IN (${p.map(()=>"?").join(", ")})
|
|
168
|
+
AND ${a}
|
|
169
|
+
ORDER BY path ASC, scope ASC`).all(...p,...s),y=new Map(p.map(g=>[g,[]]));for(let g of m){let S=String(g.item_id),A=y.get(S);A.push({path:String(g.path),scope:String(g.scope),...g.note===null?{}:{note:String(g.note)}}),y.set(S,A)}for(let g of f){let S=JSON.parse(String(g.metadata_json));_.push({item:S,files:y.get(String(g.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:_}}catch{return n?.close(),null}}async function zg(e){let t=Pt();if(!t)return null;let n;try{n=new t(ct(e.pmRoot),{readOnly:!0});let r=Bn(n);if(r.version!==Lt||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let i=n.prepare(`SELECT items.metadata_json
|
|
170
|
+
FROM item_search
|
|
171
|
+
JOIN items ON items.id = item_search.id
|
|
172
|
+
WHERE item_search MATCH ?
|
|
173
|
+
ORDER BY bm25(item_search), items.priority, items.updated_at DESC, items.id
|
|
174
|
+
LIMIT ?`).all(e.query,Math.max(0,Math.floor(e.limit))).map(s=>JSON.parse(String(s.metadata_json)));return n.close(),{source_cursor:r.source_cursor,items:i}}catch{return n?.close(),null}}async function Wn(e){await ze.rm(ct(e),{force:!0})}import W from"node:fs/promises";import j from"node:path";import{createHash as yf,randomUUID as wa}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1c60c095-9763-5372-9dc3-c0ea1a5caca6")}catch{}})();var ae=8,Ea=500,gf="metadata-derived-index",vf="metadata-cache.json",bf="metadata-cache-bodies.json",wf="metadata-cache-collections.json",Ef="metadata-cache-delta.json",kf="metadata-cache-manifest.json",ya=4,If=["comments","notes","learnings","files","tests","test_runs","docs"];function ka(){return Zt(ue())}function Kn(e){let t={...e},n={};for(let r of If)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function Ia(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function Sa(e,t,n,r){let o=yf("sha256");o.update(`format:${e??"default"}`);let i=Object.entries(t).sort(([s],[a])=>s.localeCompare(a)).map(([s,a])=>`${s}=${a}`).join(",");return o.update(`|types:${i}`),n&&o.update(`|schema:${JSON.stringify(n)}`),r.length>0&&o.update(`|extension_fields:${r.join(",")}`),o.digest("hex").slice(0,16)}function qn(e){return j.join(e,"runtime",vf)}function Xn(e){return j.join(e,"runtime",bf)}function Gn(e){return j.join(e,"runtime",wf)}function So(e){return j.join(e,"runtime",Ef)}function To(e){return j.join(e,"runtime",kf)}function Yn(e,t){let n=j.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var Sf=24,J=new Map,Jn=new WeakMap;function Co(e){return Jn.get(e)??e.source_cursor}function Tf(e,t){let n=Co(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){Jn.set(e,n);for(let[r,o]of Object.entries(t.changes))o.entry?e.entries[r]=o.entry:delete e.entries[r];e.directory_signatures=t.directory_signatures,e.source_cursor=t.source_cursor}}function Cf(e,t){if(!e)return;let n=Co(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){Jn.set(e,n);for(let[r,o]of Object.entries(t.changes))o.body?e.bodies[r]=o.body:delete e.bodies[r];e.source_cursor=t.source_cursor}}function Of(e,t){if(!e)return;let n=Co(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){Jn.set(e,n);for(let[r,o]of Object.entries(t.changes))o.collections?e.collections[r]=o.collections:delete e.collections[r];e.source_cursor=t.source_cursor}}function Af(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(Tf(e,r),Cf(t,r),Of(n,r))}function Io(e,t){J.size>=Sf&&!J.has(e)&&ki(J),J.set(e,t)}async function Se(e,t){let n;try{n=await W.stat(e)}catch{return J.delete(e),null}let r=J.get(e);if(r&&jt(r.signature,n.mtimeMs,n.ctimeMs,n.size))return J.delete(e),J.set(e,r),r.envelope;let o;try{o=t(await W.readFile(e,"utf8"))}catch{o=null}return Io(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function xf(e,t,n){let r=a=>{let c=JSON.parse(a);return c.version!==ae||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=qn(e),i=await Se(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await Se(Yn(o,t),r);return s===null&&$t(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function Rf(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ae||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=Xn(e),o=await Se(r,n);return t&&o?.context_fingerprint!==t?await Se(Yn(r,t),n):o}async function Df(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ae||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=Gn(e),o=await Se(r,n);return t&&o?.context_fingerprint!==t?await Se(Yn(r,t),n):o}async function Oo(e){let t=So(e),n=await Se(t,r=>{let o=JSON.parse(r);return o.version!==ae||typeof o.base_source_cursor!="string"||typeof o.source_cursor!="string"||typeof o.changes!="object"||o.changes===null?null:o});if(n)return{envelope:n,invalid:!1};try{return await W.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function Ao(e){let t=To(e),n=await Se(t,r=>{let o=JSON.parse(r);return o.version!==ae||typeof o.context_fingerprint!="string"||typeof o.source_cursor!="string"||!Number.isInteger(o.entry_count)||o.entry_count<0||typeof o.directory_signatures!="object"||o.directory_signatures===null?null:o});if(n)return n;try{await W.stat(t),await dt(e)}catch{}return null}async function Mt(e,t){await W.mkdir(j.dirname(e),{recursive:!0}),await q(e,JSON.stringify(t));try{let r=await W.stat(e);Io(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{J.delete(e)}let n=j.dirname(j.dirname(e));if(e===qn(n)||e===Xn(n)||e===Gn(n)){let r=Yn(e,t.context_fingerprint);await q(r,JSON.stringify(t));try{let c=await W.stat(r);Io(r,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{J.delete(r)}let o=j.dirname(e),i=j.extname(e),s=j.basename(e,i),a=(await W.readdir(o,{withFileTypes:!0}).catch(()=>[])).filter(c=>c.isFile()&&c.name!==j.basename(e)&&c.name.startsWith(`${s}.`)&&c.name.endsWith(i)).map(c=>j.join(o,c.name));if(a.length>ya){let c=(await Promise.all(a.map(async d=>{try{return{path:d,mtime:(await W.stat(d)).mtimeMs}}catch{return null}}))).filter(d=>d!==null);for(let d of c.sort((u,f)=>u.mtime-f.mtime).slice(0,Math.max(0,c.length-ya)))await W.rm(d.path,{force:!0}),J.delete(d.path)}}}function Nf(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function Ta(e,t,n){return e===void 0||Nf(e,t,n)}function $t(e,t){e&&!e.includes(t)&&e.push(t)}function jt(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function Lf(e,t,n){let r=j.join(e,t);try{let o=await W.readdir(r);return{folder:t,dirPath:r,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&!ye(o)&&$t(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function Pf(e,t){try{let n=await W.stat(j.join(e,t));return[t,{exists:!0,mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size}]}catch{return[t,{exists:!1,mtime_ms:0,ctime_ms:0,size:0}]}}async function Vn(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await Pf(e,n))))}function Ft(e,t){return!e||Object.keys(e).length!==Object.keys(t).length?!1:Object.entries(t).every(([n,r])=>{let o=e[n];return o!==void 0&&o.exists===r.exists&&jt(o,r.mtime_ms,r.ctime_ms,r.size)})}function jf(e){return tn.some(t=>e.toLowerCase().endsWith(t))}function Mf(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function Ff(e,t,n){if(n)for(let r of await ve({path:e,scope:"project"}))$t(t,r)}function ga(e,t,n,r){if(e)return t&&n?n.collections:r}async function $f(e,t,n){let r=await W.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=yr(e);await Ff(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],d=!n.forceSourceRead&&c!==void 0&&jt(c,o,i,s),u=n.previousBodies[t],f=!n.forceSourceRead&&u!==void 0&&jt(u,o,i,s),_=n.previousCollections[t],p=!n.forceSourceRead&&_!==void 0&&jt(_,o,i,s);if(!(!d||n.includeBody&&!f||n.includeCollections&&!p))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:c.metadata,heavyMetadata:ga(n.includeCollections,p,_,void 0),bodyLength:c.body_length,body:n.includeBody?u.body:void 0};let y=await W.readFile(e,"utf8"),g=gn(y,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:A=>$t(n.warnings,A)}),S=Kn(g.metadata);return Mf(n.state.misses,n.includeBody,n.includeCollections,d,f,p),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:d?c.metadata:S.light,heavyMetadata:ga(n.includeCollections,p,_,S.heavy),bodyLength:d?c.body_length:g.body.length,body:n.includeBody?g.body:void 0}}function zf(e,t,n,r){n.state.newEntries[t]={mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size,metadata:r.lightMetadata,body_length:r.bodyLength},n.includeBody&&r.body!==void 0&&(n.state.newBodies[t]={mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size,body:r.body}),n.includeCollections&&r.heavyMetadata!==void 0&&(n.state.newCollections[t]={mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size,collections:r.heavyMetadata});let o=n.includeCollections?Ia(r.lightMetadata,r.heavyMetadata):r.lightMetadata,i=n.state.documentsById.get(o.id),s={metadata:o,body:r.body,item_format:r.itemFormat,item_path:e};Ta(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function Hf(e,t,n,r){try{let o=await $f(t,n,r);zf(t,n,r,o)}catch{$t(r.warnings,`item_list_item_read_failed:${e}/${j.basename(t)}`)}}function Uf(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function Bf(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function Wf(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function Vf(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}async function Kf(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!jf(s))continue;let a=j.join(o,s),c=j.relative(t.pmRoot,a);n.push(Hf(r,a,c,t)),n.length===32&&(await Promise.all(n),n.length=0)}await Promise.all(n)}async function qf(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!Ft(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await Mt(qn(e.pmRoot),{version:ae,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await Mt(To(e.pmRoot),{version:ae,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,entry_count:Object.keys(e.state.newEntries).length,directory_signatures:e.directorySignatures});let n=[...e.state.documentsById.values()].map(({candidate:r})=>({relativePath:j.relative(e.pmRoot,r.item_path),metadata:Kn(r.metadata).light,linkedFiles:r.metadata.files??[]}));n.length>=e.minimumIndexedItems?await pa({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:n}):await Wn(e.pmRoot)}catch{}}async function Xf(e){!(e.state.misses.body||Object.keys(e.previousBodies).length!==Object.keys(e.state.newBodies).length)&&e.existingBodyCache!==null&&e.existingBodyCache.context_fingerprint===e.contextFingerprint||await Mt(Xn(e.pmRoot),{version:ae,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function Gf(e){!(e.state.misses.collections||Object.keys(e.previousCollections).length!==Object.keys(e.state.newCollections).length)&&e.existingCollectionsCache!==null&&e.existingCollectionsCache.context_fingerprint===e.contextFingerprint||await Mt(Gn(e.pmRoot),{version:ae,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function xo(e,t,n={}){let r=await Ao(e);return n.required!==!0&&(r===null||r.entry_count<Ea)?async()=>{}:Y(e,gf,30,t,!1,!1,3e3)}async function Zg(e,t){let n=await Ao(e);if(n===null)return null;let r=await Oo(e);if(r.invalid)return await dt(e),null;let o=r.envelope?.context_fingerprint===n.context_fingerprint&&r.envelope.base_source_cursor===n.source_cursor?r.envelope.source_cursor:n.source_cursor,i=r.envelope?.context_fingerprint===n.context_fingerprint&&r.envelope.base_source_cursor===n.source_cursor?r.envelope.directory_signatures:n.directory_signatures;return t&&!Ft(i,await Vn(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function va(e,t){let n=j.relative(e,t);return n===""||n===".."||n.startsWith(`..${j.sep}`)||j.isAbsolute(n)?null:n}async function dt(e){await Promise.all([qn(e),Xn(e),Gn(e),So(e),To(e)].map(async t=>{await W.rm(t,{force:!0}),J.delete(t)})),await Wn(e)}async function Yf(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await W.stat(e.mutation.itemPath),n=Kn(e.mutation.document.metadata),r={mtime_ms:t.mtimeMs,ctime_ms:t.ctimeMs,size:t.size};return{entry:{...r,metadata:n.light,body_length:e.mutation.document.body.length},body:{...r,body:e.mutation.document.body},collections:{...r,collections:n.heavy}}}function Jf(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function Ro(e){let t=va(e.pmRoot,e.itemPath),n=e.previousItemPath?va(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await dt(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=Sa(e.preferredFormat,e.typeToFolder,e.schema,ka()),o=await Ao(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await Oo(e.pmRoot);if(s.invalid)return await dt(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=Jf(s.envelope,r,i),c=s.envelope?.context_fingerprint===r&&s.envelope.base_source_cursor===i?s.envelope.source_cursor:i;n!==void 0&&(a[n]={entry:null,body:null,collections:null}),a[t]=await Yf({mutation:e});let d=wa();return await Mt(So(e.pmRoot),{version:ae,context_fingerprint:r,base_source_cursor:i,source_cursor:d,directory_signatures:await Vn(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await ha({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:d,row:e.document===null?null:{relativePath:t,metadata:Kn(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await Wn(e.pmRoot),[]}catch{return await dt(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function Qf(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function ba(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function Zf(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function em(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=yr(n);if(!o)continue;let i=e.includeCollections?Ia(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);Ta(s?.itemFormat,o,e.preferredFormat)&&t.set(i.id,{itemFormat:o,candidate:{metadata:i,body:e.includeBody?e.previousBodies[n]?.body:void 0,item_format:o,item_path:j.join(e.pmRoot,n)}})}return[...t.values()].sort((n,r)=>n.candidate.metadata.id.localeCompare(r.candidate.metadata.id)).map(n=>n.candidate)}function tm(e){return e.forceSourceScan||wr()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!Ft(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||ba(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||ba(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&Zf(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function Qn(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=ka(),d=Sa(t,n,o,c),u=await Oo(e);u.invalid&&await dt(e);let f=await xf(e,d,i.cacheDiagnostics),_=s?await Rf(e,d):null,p=a?await Df(e,d):null;Af(f,_,p,u.envelope);let m=Uf(f,d),y=Bf(_,d),g=Wf(p,d),S=[...new Set(Object.values(n))],A=await Vn(e,S),x=Object.keys(m),M=Math.max(1,Math.floor(i.derivedIndexMinimumItems??Ea));if(tm({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:d,existingCache:f,existingBodyCache:_,existingCollectionsCache:p,directorySignatures:A,entryKeys:x,minimumIndexedItems:M,includeBody:s,includeCollections:a,previousBodies:y,previousCollections:g}))return em({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:m,previousBodies:y,previousCollections:g});let D=await Promise.all(S.map(gt=>Lf(e,gt,r))),re=wr(),B=Vf(),Q={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,forceSourceRead:i.forceSourceScan===!0,dispatchReadHooks:re,previousEntries:m,previousBodies:y,previousCollections:g,state:B};await Kf(D,Q);let K=await Vn(e,S),Z=Ft(A,K)?K:{},Be=B.misses.metadata||Object.keys(m).length!==Object.keys(B.newEntries).length||!Ft(f?.directory_signatures,Z)||f===null?wa():f.source_cursor;return await qf({pmRoot:e,contextFingerprint:d,sourceCursor:Be,existingCache:f,previousEntries:m,directorySignatures:Z,state:B,minimumIndexedItems:M}),s&&await Xf({pmRoot:e,contextFingerprint:d,sourceCursor:Be,existingBodyCache:_,previousBodies:y,state:B}),a&&await Gf({pmRoot:e,contextFingerprint:d,sourceCursor:Be,existingCollectionsCache:p,previousCollections:g,state:B}),Qf(B)}async function Ca(e,t,n,r,o){return(await Qn(e,t,n,r,o,{includeBody:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}async function Oa(e,t,n,r,o){return(await Qn(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0a3dd0c1-2dea-5143-a2eb-65e758a0cc71")}catch{}})();function ce(){let e=de();for(let t of ue()?.relationship_kinds??[])for(let n of t.definitions)e.register(n);return e}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="83d1acab-79a1-5e9f-b6a4-97dade07d74a")}catch{}})();function zt(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function Zn(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function nm(e,t){let n=new Set,r=[];for(let o of[...e].sort()){if(n.has(o))continue;n.add(o);let i=[{nodeId:o,children:[...t.get(o)??[]].sort(),nextChild:0}];for(;i.length>0;){let s=i.at(-1),a=s.children[s.nextChild];a===void 0?(r.push(s.nodeId),i.pop()):(s.nextChild+=1,n.has(a)||(n.add(a),i.push({nodeId:a,children:[...t.get(a)??[]].sort(),nextChild:0})))}}return r}function rm(e,t){let n=[...e].sort(),r=nm(n,t),o=new Set,i=om(n,t),s=[];for(let a of r.reverse()){if(o.has(a))continue;let c=im(a,i,o);(c.length>1||t.get(c[0])?.has(c[0]))&&s.push(c)}return s.sort((a,c)=>a.join("\0").localeCompare(c.join("\0")))}function om(e,t){let n=new Map(e.map(r=>[r,new Set]));for(let[r,o]of t)for(let i of o)n.get(i)?.add(r);return n}function im(e,t,n){let r=[],o=[e];for(n.add(e);o.length>0;){let i=o.pop();r.push(i);for(let s of[...t.get(i)].sort())n.has(s)||(n.add(s),o.push(s))}return r.sort()}function Aa(e){let t=new Map;for(let n of e){let r=zt(n?.id);r&&!t.has(r)&&t.set(r,n)}return t}function sm(e,t,n){let r=zt(t.parent);if(!(!r||!n.has(r)))return{parent_id:r,child_id:e,source:"scalar_parent",kind:"parent",holder_id:e,child_cardinality:"one"}}function am(e,t,n,r){let o=zt(t?.id),i=r.resolve(t?.kind);if(!o||!n.has(o)||!i?.hierarchy)return;let s=i.hierarchyDirection==="source_parent";return{parent_id:s?e:o,child_id:s?o:e,source:"dependency",kind:i.kind,holder_id:e,target_id:o,child_cardinality:s?i.incoming:i.outgoing}}function xa(e,t){let n=new Map;for(let[r,o]of e){let i=sm(r,o,e);i&&n.set(Zn(i),i);for(let s of o.dependencies??[]){let a=am(r,s,e,t);a&&n.set(Zn(a),a)}}return[...n.values()].sort((r,o)=>Zn(r).localeCompare(Zn(o)))}function av(e,t=ce()){return xa(Aa(e),t)}function cm(e,t,n){let r=new Set(e.filter(o=>o.child_cardinality==="one").map(o=>o.child_id));return[...t].filter(([o,i])=>i.length>1&&r.has(o)).map(([o,i])=>({child_id:o,parent_ids:[...i],legacy_terminal:n.has(o)&&i.every(s=>n.has(s))})).sort((o,i)=>o.child_id.localeCompare(i.child_id))}function dm(e,t,n){let r=new Map;for(let i of t){if(i.source!=="dependency")continue;let s=r.get(i.child_id)??new Set;s.add(i.parent_id),r.set(i.child_id,s)}let o=[];for(let[i,s]of e){let a=zt(s.parent);if(!a||!e.has(a))continue;let c=[...r.get(i)??[]].filter(d=>d!==a).sort();c.length!==0&&o.push({child_id:i,scalar_parent_id:a,dependency_parent_ids:c,legacy_terminal:n.has(i)&&n.has(a)&&c.every(d=>n.has(d))})}return o.sort((i,s)=>i.child_id.localeCompare(s.child_id))}function er(e,t=r=>r==="closed"||r==="canceled",n=ce()){let r=Aa(e),o=xa(r,n),i=lm(o),s=new Set([...r].filter(([,c])=>t(c.status)).map(([c])=>c)),a=rm([...r.keys()],new Map([...i.children_by_parent].map(([c,d])=>[c,new Set(d)]))).map(c=>({item_ids:c,legacy_terminal:c.every(d=>s.has(d))}));return{relations:o,cycles:a,cardinality_violations:cm(o,i.parents_by_child,s),divergences:dm(r,o,s)}}function cv(e){return e.source==="scalar_parent"?`${e.parent_id} -> ${e.child_id} (scalar parent on ${e.holder_id})`:`${e.parent_id} -> ${e.child_id} (${e.kind} dependency on ${e.holder_id})`}function lm(e){let t=new Map,n=new Map;for(let r of e){let o=t.get(r.child_id)??new Set;o.add(r.parent_id),t.set(r.child_id,o);let i=n.get(r.parent_id)??new Set;i.add(r.child_id),n.set(r.parent_id,i)}return{parents_by_child:new Map([...t].map(([r,o])=>[r,[...o].sort()])),children_by_parent:new Map([...n].map(([r,o])=>[r,[...o].sort()]))}}function Do(e,t){let n=new Set(t);return e.every(r=>n.has(r))}function dv(e,t,n,r,o){let i=zt(n);if(!i)return;let s=er(e,r,o),a=er(t,r,o),c=a.divergences.find(f=>!s.divergences.some(_=>_.child_id===f.child_id&&_.scalar_parent_id===f.scalar_parent_id&&Do(f.dependency_parent_ids,_.dependency_parent_ids)));if(c){let f=[c.scalar_parent_id,...c.dependency_parent_ids].sort();throw new E(`Hierarchy mutation would assign ${c.child_id} to multiple parents: ${f.join(", ")}.`,w.CONFLICT,{code:"hierarchy_parent_divergence_created",source_id:i,target_id:c.child_id,verification_errors:f})}let d=a.cardinality_violations.find(f=>(f.child_id===i||f.parent_ids.includes(i))&&!s.cardinality_violations.some(_=>_.child_id===f.child_id&&Do(f.parent_ids,_.parent_ids)));if(d)throw new E(`Hierarchy mutation would assign ${d.child_id} to multiple parents: ${d.parent_ids.join(", ")}.`,w.CONFLICT,{code:"hierarchy_cardinality_created",source_id:i,target_id:d.child_id,verification_errors:d.parent_ids});let u=a.cycles.find(f=>f.item_ids.includes(i)&&!s.cycles.some(_=>Do(f.item_ids,_.item_ids)));if(u)throw new E(`Hierarchy mutation would create a cycle: ${u.item_ids.join(" -> ")}.`,w.CONFLICT,{code:"hierarchy_cycle_created",source_id:i,verification_errors:u.item_ids})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="fdd874ad-e51d-5df2-9486-a0465ad65979")}catch{}})();var um="global";function _v(e){let t=e?.trim();if(t)return oe(t)?um:t}function pv(e,t,n){return fm(e,t,n)}function fm(e,t,n){let r=e.trim();return oe(n)||le(r)?r:Nt(r,t)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="06ecc7a4-c593-5d99-89f5-714a4590d0a5")}catch{}})();function ut(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function Ht(e){let t=ut(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function Ut(e,t,n=!0){let r=ut(e);return n&&(oe(t)||r!==void 0&&le(r))}function No(e,t){return Ut(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function Ra(e,t,n,r){return Ut(e,t)?r.get(e):n.get(e.toLowerCase())}function lt(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function mm(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,o=ut(r.id);if(!o)continue;let i=typeof r.kind=="string"?r.kind:"related",s=`${i}\0${No(o,r.source_kind)}`,a=t.get(s);a?a.count+=1:t.set(s,{target_id:o,kind:i,count:1})}return t}function _m(e,t=n=>n==="closed"||n==="canceled"){let n=[];for(let r of e)if(!(typeof r?.id!="string"||r.id.trim().length===0))for(let o of mm(r).values())o.count<2||n.push({holder_id:r.id.trim(),target_id:o.target_id,kind:o.kind,occurrences:o.count,holder_status:r.status,legacy_terminal:t(r.status)});return n.sort((r,o)=>{let i=lt(r.holder_id,o.holder_id);if(i!==0)return i;let s=lt(r.target_id,o.target_id);return s!==0?s:lt(r.kind,o.kind)})}function pm(e,t,n,r,o){if(typeof n!="object"||n===null)return;let i=ut(n.id);if(!i||No(i,n.source_kind)!==No(t))return;let s=o.resolve(typeof n.kind=="string"?n.kind:"related");if(!(s?.ordering!==!0||(s.precedence??"source_before_target")!=="source_before_target"))return{holder_id:e.id.trim(),target_id:i,dependency_kind:s.kind,holder_status:e.status,legacy_terminal:r(e.status)}}function hm(e,t=r=>r==="closed"||r==="canceled",n=ce()){let r=new Map;for(let o of e){if(typeof o?.id!="string"||o.id.trim().length===0)continue;let i=ut(o.blocked_by);if(i)for(let s of o.dependencies??[]){let a=pm(o,i,s,t,n);a&&r.set(`${a.holder_id.toLowerCase()}\0${a.target_id.toLowerCase()}\0${a.dependency_kind}`,a)}}return[...r.values()].sort((o,i)=>{let s=lt(o.holder_id,i.holder_id);if(s!==0)return s;let a=lt(o.target_id,i.target_id);return a!==0?a:lt(o.dependency_kind,i.dependency_kind)})}function Lo(e,t=n=>n==="closed"||n==="canceled"){let n=e.filter(c=>typeof c?.id=="string"&&c.id.trim().length>0),r=new Set(n.map(c=>c.id.trim().toLowerCase())),o=new Map,i=(c,d,u,f,_)=>{let p=ut(d);if(!p||r.has(p.toLowerCase())||Ut(p,void 0,_))return;let m={holder_id:c.id.trim(),target_id:p,kind:u,source:f,holder_status:c.status,legacy_terminal:t(c.status),no_active_blocker_sentinel:p.toLowerCase()==="no-active-blocker"};o.set(`${m.holder_id}::${m.target_id}::${m.kind}::${m.source}`,m)};for(let c of n){i(c,c.parent,"parent","parent",!1),i(c,c.blocked_by,"blocked_by","blocked_by",!0);for(let d of c.dependencies??[]){if(typeof d!="object"||d===null)continue;let u=d;oe(u.source_kind)||i(c,u.id,typeof u.kind=="string"?u.kind:"related","dependency",!0)}}let s=[...o.values()].sort((c,d)=>c.holder_id.localeCompare(d.holder_id)||c.target_id.localeCompare(d.target_id)||c.kind.localeCompare(d.kind)||c.source.localeCompare(d.source)),a=s.filter(c=>c.legacy_terminal);return{active:s.filter(c=>!c.legacy_terminal),legacy_terminal:a,no_active_blocker_sentinels:s.filter(c=>c.no_active_blocker_sentinel)}}function ym(e){let t=new Map;for(let n of[...e.active,...e.legacy_terminal]){if(n.no_active_blocker_sentinel)continue;let r=n.target_id.trim(),o=r.toLowerCase();t.has(o)||t.set(o,r)}return[...t.values()].sort((n,r)=>n.localeCompare(r))}function gm(e){let t=new Map;for(let n of e){let r=Ht(n.blocked_by);r&&Ut(r)&&!t.has(r)&&t.set(r,r);for(let o of n.dependencies??[]){if(typeof o!="object"||o===null||!Ut(o.id,o.source_kind))continue;let i=Ht(o.id);i&&!t.has(i)&&t.set(i,i)}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}var Da=new WeakMap;function Ev(e){return e.hierarchyIntegrity??Da.get(e)}function vm(e,t=ce()){let n={};for(let r of e)for(let o of r.dependencies??[]){if(typeof o!="object"||o===null)continue;let i=o.kind;if(typeof i!="string")continue;let s=i.trim().toLowerCase().replaceAll("-","_"),a=t.resolve(i);a&&s!==a.kind&&(n[s]=(n[s]??0)+1)}return Object.fromEntries(Object.entries(n).sort(([r],[o])=>r.localeCompare(o)))}function tr(e,t,n){let r=n??ce(),o=e.filter(m=>typeof m?.id=="string"&&m.id.trim().length>0),i=new Map(o.map(m=>[m.id.trim().toLowerCase(),m.id.trim()])),s=Lo(o,t),a=ym(s);for(let m of a)i.set(m.toLowerCase(),m);let c=gm(o),d=new Set(i.keys()),u=new Map;for(let m of c){let y=m;for(;d.has(y.toLowerCase());)y=`external:${y}`;u.set(m,y),d.add(y.toLowerCase())}let f=o.map(m=>{let y=Ht(m.parent),g=Ht(m.blocked_by),S=(m.dependencies??[]).flatMap(A=>{if(typeof A!="object"||A===null)return[];let x=A,M=Ht(x.id);return M?[{id:Ra(M,x.source_kind,i,u),kind:typeof x.kind=="string"?x.kind:"related"}]:[]});return{id:m.id.trim(),...y?{parent:i.get(y.toLowerCase())}:{},...g?{blocked_by:Ra(g,void 0,i,u)}:{},dependencies:S}}),_=er(o,t,r),p={graph:Ei.fromItems([...f,...a.map(m=>({id:m})),...c.map(m=>({id:u.get(m)}))],r),details:[...o.map(m=>({id:m.id.trim(),title:m.title,status:m.status,...typeof m.type=="string"&&m.type.trim().length>0?{type:m.type.trim()}:{}})),...a.map(m=>({id:m,title:`[missing] ${m}`,status:"missing"})),...c.map(m=>({id:u.get(m),title:`[external] ${m}`,status:"external"}))],missingIdSet:new Set(a.map(m=>m.toLowerCase())),dangling:s,duplicateRows:_m(o,t),orderingContradictions:hm(o,t,r),legacyAliasCounts:vm(o,r),hierarchyIntegrity:_};return Da.set(p,_),p}import{createHash as bm}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="10f534cf-ee82-54a2-9807-390eca5fb0b8")}catch{}})();var wm=64,Em=8;function km(e,t){let n=(e.dependencies??[]).map(r=>{if(typeof r!="object"||r===null)return"";let o=r;return`${typeof o.kind=="string"?o.kind:"related"}:${typeof o.id=="string"?o.id:""}`}).sort().join(",");return[e.id,e.title,e.status,t(e.status)?"1":"0",typeof e.type=="string"?e.type.trim():"",e.parent??"",e.blocked_by??"",n].join("\0")}function La(e,t=r=>r==="closed"||r==="canceled",n=de()){let r=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>km(i,t)).sort(),o=n.list().map(i=>L(i)).sort();return bm("sha256").update(r.join("")).update("").update(o.join("")).digest("hex")}function Na(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var Po=class{#e=new Map;#t;#n;constructor(t={}){this.#t=Na("maxResultsPerWorkspace",t.maxResultsPerWorkspace,wm),this.#n=Na("maxWorkspaces",t.maxWorkspaces,Em)}lookup(t,n,r){let o=this.#e.get(t),i=!0;(o===void 0||o.fingerprint!==n)&&(o={fingerprint:n,assembly:r(),results:new Map},i=!1,!this.#e.has(t)&&this.#e.size>=this.#n&&this.#e.delete(this.#e.keys().next().value)),this.#e.delete(t),this.#e.set(t,o);let s=o,a=this.#t;return{assembly:s.assembly,assemblyReused:i,fingerprint:n,memoize(c,d){let u=s.results.get(c);if(u!==void 0||s.results.has(c))return s.results.delete(c),s.results.set(c,u),{value:structuredClone(u),reused:!0};let f=d();return s.results.size>=a&&s.results.delete(s.results.keys().next().value),s.results.set(c,structuredClone(f)),{value:f,reused:!1}}}}clear(){this.#e.clear()}},Pa=new Po;function ja(){return Pa}function Cv(){Pa.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="47b3091f-a1a8-503c-83e9-46b85adf4207")}catch{}})();var Im=["prerequisite","dependent","ancestor","descendant","provenance","related"],Sm=new TextEncoder;function jo(e,t,n){let r=e??t;if(!Number.isInteger(r)||r<1)throw new TypeError(`Relationship context ${n} must be positive`);return r}function nr(e){return Math.max(1,Math.ceil(Sm.encode(JSON.stringify(e)).byteLength/4))}function Mo(e,t,n){let r=n.resolve(e.kind);if(r?.ordering){let i=(r.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===i?"prerequisite":"dependent"}if(r?.hierarchy){let i=r.hierarchyDirection==="source_parent"?e.source:e.target;return t===i?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function Tm(e,t,n,r){let o=e.filter(i=>i.source===t&&i.target===n||i.target===t&&i.source===n).map(i=>Mo(i,n,r));return[...new Set(o)].sort()}function Cm(e){return Im.find(t=>e.includes(t))}function Om(e,t,n,r){let o=r.direction??"both",i=r.maxDepth??3;if(!Number.isInteger(i)||i<0)throw new TypeError("Relationship context maxDepth must be non-negative");let s=new Set([t]),a=[{id:t,distance:0}],c=[],d=0,u=!1;for(let f=0;f<a.length;f+=1){r.signal?.throwIfAborted();let _=a[f];if(_.distance>=i&&u)continue;let p=e.neighborEdges(_.id,{direction:o,kinds:r.kinds,signal:r.signal});if(d+=p.meta.inspectedEdges,_.distance>=i){p.value.some(m=>!s.has(m.id))&&(u=!0);continue}for(let{id:m,edge:y}of p.value){if(s.has(m))continue;s.add(m);let g={id:m,distance:_.distance+1,via:_.id,role:Mo(y,m,n)};c.push(g),a.push(g)}}return c.sort((f,_)=>f.distance-_.distance||f.id.localeCompare(_.id)),{rows:c,visitedNodes:a.length,inspectedEdges:d,depthTruncated:u}}function Am(e,t,n,r){let o={prerequisite:0,dependent:0,ancestor:0,descendant:0,provenance:0,related:0},i=e.neighborEdges(t,{direction:r.direction??"both",kinds:r.kinds,signal:r.signal}).value;for(let{id:s,edge:a}of i)o[Mo(a,s,n)]+=1;return{directEdges:o,directTotal:i.length,rootEdges:i.map(({edge:s})=>s)}}function xm(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let o=r.distance===1?Tm(e.rootEdges,e.rootId,r.id,e.registry):[],i={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:o.length>0?Cm(o):r.role,via:r.via,reasons:o.length>0?o:[`${r.role} via ${r.via} (depth ${r.distance})`]},s=nr(i);if(n+s>e.tokenBudget)break;t.push(i),n+=s}if(e.candidates.length>0&&t.length===0)throw new TypeError("Relationship context tokenBudget cannot fit one node");return{nodes:t,usedTokens:n}}function Rm(e){let t=e.options.kinds?new Set(e.options.kinds.map(i=>e.registry.require(i).kind)):void 0,n=e.graph.edges().filter(i=>{if(!e.included.has(i.source)||!e.included.has(i.target))return!1;if(t===void 0||t.has(i.kind))return!0;let s=e.registry.resolve(i.kind)?.inverse;return s!==void 0&&t.has(s)}),r=[],o=e.initialTokens;for(let i of n){if(r.length>=e.edgeLimit)break;let s=nr(i);if(o+s>e.tokenBudget)break;r.push(i),o+=s}return{edges:r,usedTokens:o,candidateCount:n.length}}function Ma(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let o=jo(r.nodeLimit,20,"nodeLimit"),i=jo(r.edgeLimit,40,"edgeLimit"),s=jo(r.tokenBudget,1200,"tokenBudget"),a=r.registry??de(),c=new Map(n.map(We=>[We.id,We])),d=c.get(t)??{id:t},{evidence:u=[],...f}=d,_=[...u],p=Om(e,t,a,r),{rootEdges:m,...y}=Am(e,t,a,r),g=Ai("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),S=Ri(p.rows,r.cursor,g,({id:We})=>We),A=p.rows.slice(S),x=nr(f)+nr(_);if(x>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let M=xm({candidates:A,details:c,rootEdges:m,rootId:t,registry:a,nodeLimit:o,tokenBudget:s,initialTokens:x}),{nodes:D}=M,re=new Set([t,...D.map(({id:We})=>We)]),B=Rm({graph:e,included:re,options:r,registry:a,edgeLimit:i,tokenBudget:s,initialTokens:M.usedTokens}),{edges:Q,usedTokens:K}=B,Z=S+D.length,Ue=Z<p.rows.length,Be=D.at(-1),gt=B.candidateCount-Q.length,si=p.depthTruncated||Ue||gt>0,Dc={rootId:t,...f.status===void 0?{}:{rootStatus:f.status},...y,discoveredNodes:p.rows.length,returnedNodes:D.length,returnedEdges:Q.length,omittedNodes:p.rows.length-Z,omittedEdges:gt,evidenceCount:_.length,hasMore:Ue};return{root:f,summary:Dc,nodes:D,edges:Q,evidence:_,meta:{exact:!0,truncated:si,completeness:si?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:s,usedTokens:K,visitedNodes:p.visitedNodes,inspectedEdges:p.inspectedEdges,omittedNodes:p.rows.length-Z,omittedEdges:gt,...Ue&&Be?{nextCursor:xi(g,Be.id,Z-1)}:{}}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="59b12366-2f29-5acb-8196-91e9ab183666")}catch{}})();function $o(e,t){return(t===void 0?void 0:gi(e,t))?.execution_role??yi[e.trim().toLowerCase()]??"agent"}var zo="blocked_by",Fa="blocks",Dm=Object.freeze([zo,Fa]),Fo="no-active-blocker";function $(e){return e.trim().toLowerCase()}function rr(e,t){return t?`external:${e}`:`local:${$(e)}`}function Bt(e){let t=new Map,n=typeof e.blocked_by=="string"?e.blocked_by.trim():"";if(n.length>0&&$(n)!==Fo){let r=le(n);t.set(rr(n,r),r?n:$(n))}for(let r of e.dependencies??[]){let o=typeof r.id=="string"?r.id.trim():"";if(r.kind===zo&&o.length>0&&$(o)!==Fo){let i=le(o)||oe(r.source_kind);t.set(rr(o,i),i?o:$(o))}}return[...t.values()].sort((r,o)=>r.localeCompare(o))}function or(e){let t=new Map;for(let n of e){let r=$(n.id);r.length!==0&&t.set(r,new Set(Bt(n)))}for(let n of e){let r=$(n.id);if(r.length!==0)for(let o of n.dependencies??[]){let i=o.kind===Fa&&typeof o.id=="string"?$(o.id):"";if(i.length===0||i===Fo)continue;let s=t.get(i)??new Set;s.add(r),t.set(i,s)}}return new Map([...t].map(([n,r])=>[n,[...r].sort((o,i)=>o.localeCompare(i))]))}function $a(e,t){let n=$(e.id);return n.length>0?or(t).get(n)??Bt(e):Bt(e)}function Ho(e,t,n,r){let o=e,i=typeof o.id=="string"?r?.get($(o.id))??$a(o,[...t.values()]):Bt(e),s=new Set((e.dependencies??[]).filter(a=>a.kind===zo&&oe(a.source_kind)&&typeof a.id=="string"&&a.id.trim().length>0).map(a=>rr(a.id.trim(),!0)));return i.map(a=>{if(le(a)||s.has(rr(a,!0)))return{id:a,title:null,status:null,resolved:!1,external:!0,...typeof e.updated_at=="string"?{blocked_since:e.updated_at}:{},resolver:null};let c=t.get($(a));return c?{id:a,title:c.title,status:c.status,resolved:pe(c.status,n)}:{id:a,title:null,status:null,resolved:!1}})}function Nm(e,t,n){return Ho(e,t,n)}function Lm(e,t){let n=new Map(e.map(s=>[$(s.id),s])),r=or(e),o=new Set([...za(t),...t.blocked_statuses]),i=new Set;for(let s of e){let a=Je(s.status,t);if(!o.has(a))continue;(t.blocked_statuses.has(a)||Ho(s,n,t,r).some(d=>!d.resolved))&&i.add($(s.id))}return i}function Pm(e,t,n={},r){let o=[...e.ready,...e.decisions,...e.gates];n.includeContainers===!0&&o.push(...e.containers.filter(s=>s.open_blockers.length===0&&!t.blocked_statuses.has(Je(s.item.status,t))));let i={ready:[],decisions:[],gates:[]};for(let s of o){let a=$o(s.item.type,r);a==="human"&&n.includeDecisions!==!0?i.decisions.push(s):a==="gate"&&n.includeGates!==!0?i.gates.push(s):i.ready.push(s)}return i}function za(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function jm(e,t,n){let r=[$(e)],o=new Set;for(;r.length>0;){let i=r.pop();if(!o.has(i)){o.add(i);for(let s of t.get(i)??[]){if(!pe(s.status,n))return!0;r.push($(s.id))}}}return!1}function Mm(e){let t=new Map,n=new Map,r=new Map,o=or(e);for(let i of e){t.set($(i.id),i);let s=typeof i.parent=="string"?i.parent.trim():"";if(s.length>0){let a=$(s),c=n.get(a)??[];c.push(i),n.set(a,c)}for(let a of o.get($(i.id))){let c=$(a),d=r.get(c)??[];d.push(i.id),r.set(c,d)}}return{itemsById:t,childrenByParent:n,blockedByReverse:r,blockerIdsByItem:o}}function Fm(e,t,n,r){let{itemsById:o,childrenByParent:i,blockedByReverse:s,blockerIdsByItem:a}=Mm(t),c=new Set([...za(n),...n.blocked_statuses]),d=new Set(t.filter(g=>!pe(g.status,n)).map(g=>$(g.id))),u=[],f=[],_=[],p=[],m=[],y=0;for(let g of e){if(!c.has(Je(g.status,n)))continue;y+=1;let S=Ho(g,o,n,a).filter(D=>!D.resolved),A=(s.get($(g.id))??[]).filter(D=>d.has($(D))).sort((D,re)=>D.localeCompare(re)),x={item:g,open_blockers:S,unblocks:A};if(jm(g.id,i,n)){_.push(x);continue}let M=n.blocked_statuses.has(Je(g.status,n));if(S.length===0&&!M){let D=$o(g.type,r);D==="human"?p.push(x):D==="gate"?m.push(x):u.push(x)}else f.push(x)}return{ready:u,blocked:f,containers:_,decisions:p,gates:m,active_count:y,container_count:_.length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ae1c56b3-148d-502d-9450-e807fdfab4da")}catch{}})();import $m from"node:fs/promises";import ft from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e2a2001e-b162-599e-b262-76d2223a343c")}catch{}})();var Wt="_workspace";function Uo(e){return ft.join(e,"history",`${Wt}.jsonl`)}function zm(e,t){return{metadata:{id:Wt,title:"Workspace state",description:"Audited singleton workspace document state.",type:"Chore",status:"open",priority:2,tags:["workspace-history"],created_at:t,updated_at:t,documents:e},body:""}}function Bo(e,t=e.length){let n=Ln();for(let r of e.slice(0,t))n=jn(n,r.patch).document;return Pn(n)}function Ha(e){return"documents"in e.metadata&&typeof e.metadata.documents=="object"&&e.metadata.documents!==null&&!Array.isArray(e.metadata.documents)?e.metadata.documents:{}}function Wo(e){throw new E(`Workspace history verification failed: ${e.join(", ")}`,w.CONFLICT,{code:"workspace_history_chain_invalid",reason:"workspace_history_chain_verification_failed",verification_errors:[...e],required:"Repair the _workspace history chain before reading, reconciling, restoring, or appending audited singleton state.",why:"Continuing against an unverifiable append-only stream could hide or compound workspace state corruption.",examples:["pm history _workspace --verify --json","pm validate --check-history-drift --fix-hints --json"],nextSteps:["Inspect the exact verification_errors and preserve the corrupt stream as evidence.","Use the history-drift remediation returned by validate before retrying the refused operation."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify --json"}})}function Hm(e,t){let n=ft.resolve(t),r=ft.relative(e,n).replaceAll("\\","/");if(r.length===0||r===".."||r.startsWith("../")||ft.isAbsolute(r))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:r,absolutePath:n}}async function Gv(e){let t=await tt(Uo(e),Wt),n=Mn(t);n.ok||Wo(n.errors);let r=Ha(t.length===0?Ve:Bo(t)),o=[],i=[],s=[],a=[];for(let c of Object.keys(r).sort()){let d;try{let u=Hm(e,ft.resolve(e,c));if(d=await ge(u.absolutePath),d===null){s.push(c);continue}let f=JSON.parse(d);(L(f)===L(r[c])?o:i).push(c)}catch{a.push(c)}}return{ok:i.length===0&&s.length===0&&a.length===0,document_count:Object.keys(r).length,matching_documents:o,mismatched_documents:i,missing_documents:s,unreadable_documents:a}}async function Ua(e){let t=Uo(e.pmRoot),n=await tt(t,Wt),r=Mn(n);r.ok||Wo(r.errors);let o=e.idempotencyKey===void 0?void 0:n.find(f=>f.op===`${e.op}:${e.idempotencyKey}`);if(o)return{entry:o,historyPath:t};let i=be(),s=n.length===0?Ve:Bo(n),a=Ha(s),c=a[e.documentPath];if(c!==void 0&&L(c)!==L(e.before))throw new E(`Workspace history state for "${e.documentPath}" changed outside the audited mutation path.`,w.CONFLICT,{code:"workspace_history_state_conflict",reason:"out_of_band_workspace_state",required:"Reconcile the singleton document with its matching _workspace history state before retrying the mutation.",why:"Accepting the write would make the append-only audit stream describe a state that was not actually observed.",examples:["pm history _workspace --verify","pm validate --check-history-drift --fix-hints"],nextSteps:["Review the version-control change that altered the singleton and preserve the intended document plus its matching workspace history.","Rerun the original mutation only after the on-disk singleton agrees with the latest audited workspace state."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify"}});let d=zm({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),u=st({nowIso:i,author:e.author,op:e.idempotencyKey===void 0?e.op:`${e.op}:${e.idempotencyKey}`,before:s,after:d,message:e.message});return await at(t,u),{entry:u,historyPath:t}}async function Yv(e){let t=await Y(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Ua(e)}finally{await t()}}async function Jv(e){let t=await Y(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=Uo(e.pmRoot),r=await tt(n,Wt),o=Mn(r);o.ok||Wo(o.errors);let i=r.length===0?Ve:Bo(r),s=st({nowIso:be(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await at(n,s),{entry:s,historyPath:n}}finally{await t()}}async function Ba(e,t){if(t===e.raw)return!1;let n=t===null?null:JSON.parse(t),r=JSON.parse(e.raw);await q(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await Ua({pmRoot:e.pmRoot,documentPath:ft.relative(e.pmRoot,e.filePath).replaceAll("\\","/"),before:n,after:r,op:e.op,author:e.author,lockTtlSeconds:e.lockTtlSeconds,lockWaitMs:e.lockWaitMs,message:e.message})}catch(o){throw t===null?await $m.rm(e.filePath,{force:!0}):await q(e.filePath,t),o}return!0}async function Qv(e){let t=await Y(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=await ge(e.filePath),r=await e.mutate(n);return{changed:await Ba({...e,raw:r.raw},n),result:r.result}}finally{await t()}}async function Wa(e){let t=await Y(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Ba(e,await ge(e.filePath))}finally{await t()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b7444d15-00dd-5523-8bdb-199321e7722b")}catch{}})();var U={ok:!1},h=e=>typeof e=="string"?{ok:!0,value:e}:U,O=e=>typeof e=="boolean"?{ok:!0,value:e}:U;function N(e={}){return t=>typeof t!="number"||!Number.isFinite(t)||e.int&&(!Number.isInteger(t)||!Number.isSafeInteger(t))||e.positive&&t<=0||typeof e.min=="number"&&t<e.min||typeof e.max=="number"&&t>e.max?U:{ok:!0,value:t}}function R(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:U}function v(e,t){return n=>{if(!Array.isArray(n)||t!==void 0&&n.length>t)return U;let r=[];for(let o of n){let i=e(o);if(!i.ok)return U;r.push(i.value)}return{ok:!0,value:r}}}function Ko(e,t){return n=>typeof n=="string"&&n.length>0&&n.length<=e&&n===n.trim()&&(t===void 0||t.test(n))?{ok:!0,value:n}:U}function l(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function ir(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return U;let n={};for(let[r,o]of Object.entries(t)){let i=e(o);if(!i.ok)return U;n[r]=i.value}return{ok:!0,value:n}}}function C(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return U;let n=t,r={};for(let[o,i]of Object.entries(e)){let s=i(n[o]);if(!s.ok)return U;s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var Um=C({key:h,values:v(h),required:l(O),aliases:l(v(h)),description:l(h)}),Bm=C({command:R("create","update"),option:h,required:l(O),visible:l(O),enabled:l(O)}),Wm=C({name:h,description:l(h),default_status:l(h),execution_role:l(R("agent","human","gate")),folder:l(h),aliases:l(v(h)),required_create_fields:l(v(h)),required_create_repeatables:l(v(h)),options:l(v(Um)),command_option_policies:l(v(Bm))}),Vm=C({id:h,aliases:l(v(h)),roles:l(v(R(...ai))),description:l(h),order:l(N())}),Km=C({key:h,metadata_key:l(h),front_matter_key:l(h),cli_flag:l(h),cli_aliases:l(v(h)),description:l(h),type:l(R(...ci)),commands:l(v(R(...di))),repeatable:l(O),required:l(O),required_on_create:l(O),required_types:l(v(h)),allow_unset:l(O)}),qm=e=>{if(!Array.isArray(e)||e.length!==2)return U;let[t,n]=e;return typeof t!="string"||typeof n!="string"?U:{ok:!0,value:[t,n]}},Xm=C({type:h,allowed_transitions:v(qm)}),Gm=l(C({version:l(N({int:!0})),files:l(C({types:l(h),statuses:l(h),fields:l(h),workflows:l(h)})),statuses:l(v(Vm)),fields:l(v(Km)),workflow:l(C({draft_status:l(h),open_status:l(h),in_progress_status:l(h),blocked_status:l(h),close_status:l(h),canceled_status:l(h)})),type_workflows:l(v(Xm)),unknown_field_policy:l(R(...li))})),Ym=l(C({preset:l(R(...ui)),ownership_enforcement:l(R("none","warn","strict")),create_mode_default:l(R("progressive","strict")),close_validation_default:l(R("off","warn","strict")),require_close_reason:l(O),parent_reference:l(R("warn","strict_error")),metadata_profile:l(R("core","strict","custom")),force_required_for_stale_lock:l(O),create_default_type:l(h),workflow_enforcement:l(R("off","warn","strict")),duplicate_detection_mode:l(R("off","advisory","strict")),duplicate_detection_threshold:l(N({min:0,max:1})),duplicate_detection_limit:l(N({int:!0,min:0,max:20}))})),Jm=C({name:h,disabled:l(O),require_trusted:l(O),require_provenance:l(O),sandbox_profile:l(R("none","restricted","strict")),allowed_capabilities:l(v(h)),blocked_capabilities:l(v(h)),allowed_surfaces:l(v(h)),blocked_surfaces:l(v(h)),allowed_commands:l(v(h)),blocked_commands:l(v(h)),allowed_actions:l(v(h)),blocked_actions:l(v(h)),allowed_services:l(v(h)),blocked_services:l(v(h))}),Vo=R("block","warn"),Qm=e=>typeof e=="string"?Vo(e):C({global:l(Vo),project:l(Vo)})(e),Zm=l(C({mode:l(R("off","warn","enforce")),trust_mode:l(R("off","warn","enforce")),pm_max_version_exceeded_mode:l(Qm),require_provenance:l(O),trusted_extensions:l(v(h)),default_sandbox_profile:l(R("none","restricted","strict")),allowed_extensions:l(v(h)),blocked_extensions:l(v(h)),allowed_capabilities:l(v(h)),blocked_capabilities:l(v(h)),allowed_surfaces:l(v(h)),blocked_surfaces:l(v(h)),allowed_commands:l(v(h)),blocked_commands:l(v(h)),allowed_actions:l(v(h)),blocked_actions:l(v(h)),allowed_services:l(v(h)),blocked_services:l(v(h)),extension_overrides:l(v(Jm))})),He=Ko(128),e_=C({harness:Ko(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:l(v(He,64)),model_environment_keys:l(v(He,64)),session_environment_keys:l(v(He,64)),provenance_environment_keys:l(ir(v(He,64))),provenance_resolvers:l(ir(R("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:l(v(He,64)),argv_markers:l(v(He,64)),client_names:l(v(He,64))}),t_=C({version:N({int:!0}),id_prefix:h,ids:l(C({token_length:l(N({int:!0,min:4,max:12}))})),author_default:h,agent_identity:l(C({probes_enabled:l(O),identity_vocabulary:l(C({version:N({int:!0,positive:!0}),aliases:ir(Ko(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:v(e_)})),mutation_guard:l(C({require_attributed_author:l(O),secret_guard:l(R("off","advise","block")),stale_in_progress_hours:l(N({int:!0,positive:!0}))})),item_format:l(R("toon","json_markdown")),locks:C({ttl_seconds:N({int:!0}),wait_ms:l(N({int:!0,min:0}))}),checkpoints:l(C({retention_days:l(N({int:!0,positive:!0}))})),output:C({default_format:R("toon","json")}),ux:l(C({deprecation_hints:l(O)})),history:l(C({missing_stream:R("auto_create","strict_error"),compact_policy:l(C({enabled:l(O),max_entries:l(N({int:!0,positive:!0})),trigger:l(R("health_warn","auto"))}))})),validation:l(C({sprint_release_format:R("warn","strict_error"),parent_reference:l(R("warn","strict_error")),metadata_profile:l(R("core","strict","custom")),metadata_required_fields:l(v(h)),lifecycle_stale_blocker_reason_patterns:l(v(h)),lifecycle_closure_like_blocked_reason_patterns:l(v(h)),lifecycle_closure_like_resolution_patterns:l(v(h)),lifecycle_closure_like_actual_result_patterns:l(v(h)),estimate_defaults_by_type:l(ir(N({int:!0,positive:!0})))})),governance:Ym,workflow:l(C({definition_of_done:v(h)})),testing:l(C({record_results_to_items:O,allow_untrusted_linked_tests:l(O)})),telemetry:l(C({enabled:O,first_run_prompt_completed:l(O),capture_level:l(R("minimal","redacted","max")),endpoint:l(h),installation_id:l(h),retention_days:l(N({int:!0,positive:!0}))})),agent_guidance:l(C({prompt_completed:l(O),declined:l(O),declined_at:l(h),template_version:l(N({int:!0,positive:!0})),last_checked_files:l(v(h))})),item_types:l(C({definitions:v(Wm)})),schema:Gm,context:l(C({default_depth:l(R("brief","standard","deep")),activity_limit:l(N({int:!0,positive:!0})),stale_threshold_days:l(N({int:!0,positive:!0})),sections:l(C({hierarchy:l(O),activity:l(O),progress:l(O),recently_created:l(O),unparented:l(O),blockers:l(O),files:l(O),workload:l(O),staleness:l(O),tests:l(O)}))})),extensions:C({enabled:v(h),disabled:v(h),policy:Zm}),search:C({score_threshold:N(),hybrid_semantic_weight:l(N()),max_results:N({int:!0}),embedding_model:h,embedding_corpus_max_characters:l(N()),embedding_batch_size:N({int:!0}),embedding_timeout_ms:l(N({int:!0})),scanner_max_batch_retries:N({int:!0}),provider:l(h),corpus_fields:l(v(h)),mutation_refresh_policy:l(R("cache_only","semantic_configured","semantic_auto")),query_expansion:l(C({enabled:l(O),provider:l(h)})),rerank:l(C({enabled:l(O),model:l(h),top_k:l(N({int:!0,positive:!0}))})),bm25:l(C({k1:l(N()),b:l(N())}))}),providers:C({openai:C({base_url:h,api_key:h,model:h}),ollama:C({base_url:h,model:h})}),vector_store:C({adapter:l(h),collection_name:l(h),qdrant:C({url:h,api_key:h}),lancedb:C({path:h})})});function Va(e){let t=t_(e);return t.ok?{success:!0,data:t.value}:{success:!1}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="833a4f8a-7e5d-5480-a526-4e1ebaadd0a8")}catch{}})();var n_={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},Ka=120;function qo(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function Xa(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var r_=Xa(n_),qa=new WeakMap;function o_(e){let t=qa.get(e);if(t)return t;let n=Xa(e);return qa.set(e,n),n}function nb(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return Ka;if(t){let o=o_(t).get(n);if(qo(o))return Math.floor(o)}let r=r_.get(n);return qo(r)?Math.floor(r):Ka}function Xo(e){let t={};if(e===null||typeof e!="object"||Array.isArray(e))return t;for(let[n,r]of Object.entries(e)){let o=n.trim();o.length===0||!qo(r)||(t[o]=Math.floor(r))}return t}import{stat as i_}from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7c23ef10-ea7a-5680-8850-822e7d0c07a6")}catch{}})();var sr=new Map;function Ga(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function s_(e){try{let t=await i_(e);return{path:e,mtime_ms:t.mtimeMs,size:t.size}}catch{return{path:e,mtime_ms:null,size:null}}}async function Te(e){let t=Ga(e),n=await Promise.all(t.map(r=>s_(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function Vt(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){let r=e[n],o=t[n];if(r.path!==o.path||r.mtime_ms!==o.mtime_ms||r.size!==o.size)return!1}return!0}function Ya(e){return sr.get(e)}function ar(e,t){let n=Ga(t.tracked_paths),r=[...t.signatures].map(o=>({path:o.path,mtime_ms:o.mtime_ms,size:o.size})).sort((o,i)=>o.path.localeCompare(i.path));sr.set(e,{tracked_paths:n,signatures:r,value:t.value})}function Ce(e){if(e){sr.delete(e);return}sr.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9c6acf02-5259-51f7-bbda-f3967ed0ab74")}catch{}})();var a_="settings:write",tc=Symbol("pm.settings.persist_source"),c_=128,d_=new Set(["off","advisory","strict"]);function Ja(e){return structuredClone(mi[e])}function l_(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:k.governance.preset}function Qa(e,t){let n=typeof t.create_default_type=="string"?t.create_default_type.trim():void 0;return n&&n.length>0&&(e.create_default_type=n),(t.workflow_enforcement==="off"||t.workflow_enforcement==="warn"||t.workflow_enforcement==="strict")&&(e.workflow_enforcement=t.workflow_enforcement),t.require_close_reason===!1&&(e.require_close_reason=!1),e.duplicate_detection_mode=t.duplicate_detection_mode,e.duplicate_detection_threshold=t.duplicate_detection_threshold,e.duplicate_detection_limit=t.duplicate_detection_limit,e}function u_(e){return e.preset==="custom"?Qa({preset:"custom",ownership_enforcement:e.ownership_enforcement,create_mode_default:e.create_mode_default,close_validation_default:e.close_validation_default,parent_reference:e.parent_reference,metadata_profile:e.metadata_profile,force_required_for_stale_lock:e.force_required_for_stale_lock},e):Qa({preset:e.preset},e)}function f_(e){let t=typeof e.create_default_type=="string"?e.create_default_type.trim():void 0,n={};t&&t.length>0&&(n.create_default_type=t),(e.workflow_enforcement==="off"||e.workflow_enforcement==="warn"||e.workflow_enforcement==="strict")&&(n.workflow_enforcement=e.workflow_enforcement),typeof e.require_close_reason=="boolean"&&(n.require_close_reason=e.require_close_reason),d_.has(String(e.duplicate_detection_mode))&&(n.duplicate_detection_mode=e.duplicate_detection_mode);let r=e.duplicate_detection_threshold;[typeof r=="number",Number.isFinite(r),Number(r)>=0,Number(r)<=1].every(Boolean)&&(n.duplicate_detection_threshold=r);let o=e.duplicate_detection_limit;return[typeof o=="number",Number.isSafeInteger(o),Number(o)>=0,Number(o)<=20].every(Boolean)&&(n.duplicate_detection_limit=o),n}function dr(e){let t=e.governance??{},n=l_(t.preset),r=f_(t);if(n==="custom"){let s=Ja("default"),a=r.require_close_reason??s.require_close_reason;return{preset:n,ownership_enforcement:t.ownership_enforcement??s.ownership_enforcement,create_mode_default:t.create_mode_default??s.create_mode_default,close_validation_default:t.close_validation_default??s.close_validation_default,parent_reference:t.parent_reference??s.parent_reference,metadata_profile:t.metadata_profile??s.metadata_profile,force_required_for_stale_lock:t.force_required_for_stale_lock??s.force_required_for_stale_lock,...r,require_close_reason:a,duplicate_detection_mode:r.duplicate_detection_mode??s.duplicate_detection_mode,duplicate_detection_threshold:r.duplicate_detection_threshold??s.duplicate_detection_threshold,duplicate_detection_limit:r.duplicate_detection_limit??s.duplicate_detection_limit}}let o=Ja(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function nc(){return structuredClone(k)}function rc(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:k.search.mutation_refresh_policy}function oc(e){return typeof e=="boolean"?e:k.search.query_expansion.enabled}function ic(e){return typeof e!="string"?k.search.query_expansion.provider:e.trim()}function sc(e){return typeof e=="boolean"?e:k.search.rerank.enabled}function ac(e){return typeof e!="string"?k.search.rerank.model:e.trim()}function cc(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:k.search.rerank.top_k}function dc(e){if(typeof e!="string")return k.vector_store.collection_name;let n=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,c_);return n.length>0?n:k.vector_store.collection_name}function Go(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function m_(e,t){let n=e.schema,r=Go(n?.statuses),o=Go(n?.fields),i=Go(n?.type_workflows);return{source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:mt(e.item_types?.definitions),has_source_schema_statuses:r.present,source_schema_statuses:r.values,has_source_schema_fields:o.present,source_schema_fields:o.values,has_source_schema_type_workflows:i.present,source_schema_type_workflows:i.values,runtime_item_type_definitions:mt(t.item_types?.definitions),runtime_schema_statuses:structuredClone(t.schema.statuses),runtime_schema_fields:structuredClone(t.schema.fields),runtime_schema_type_workflows:structuredClone(t.schema.type_workflows??[])}}function lc(e,t){Object.defineProperty(e,tc,{value:t,writable:!0,configurable:!0,enumerable:!1})}function uc(e){let t=e[tc];if(!(!t||typeof t!="object"))return t}function cr(e){let t=structuredClone(e.settings),n=uc(e.settings);return n&&lc(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function __(e,t,n){let r=Et(t);return[n,kt(e,r.files.types,wt.types),kt(e,r.files.statuses,wt.statuses),kt(e,r.files.fields,wt.fields),kt(e,r.files.workflows,wt.workflows)]}async function p_(e,t,n){let r=await Te(t);ar(e,{tracked_paths:t,signatures:r,value:cr(n)})}async function h_(e,t,n){try{await p_(e,t,n)}catch{Ce(e)}}function Za(e,t){return e.find(n=>n.path===t)}function y_(e,t,n){for(let r of n){let o=Za(e,r),i=Za(t,r);if(!o||!i||!Vt([o],[i]))return!1}return!0}async function Yo(e,t,n,r,o){try{let i=await Te(t);if(!y_(r,i,o)){Ce(e);return}ar(e,{tracked_paths:t,signatures:i,value:cr(n)})}catch{Ce(e)}}function g_(e,t){let n=Et(e.schema),r=mt(e.item_types?.definitions);if(!t)return{item_type_definitions:r,schema_statuses:n.statuses,schema_fields:n.fields,schema_type_workflows:n.type_workflows};let o=n.type_workflows??[],i=Ke(r,t.runtime_item_type_definitions),s=Ke(n.statuses,t.runtime_schema_statuses),a=Ke(n.fields,t.runtime_schema_fields),c=Ke(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?mt(t.source_item_type_definitions):[]:r,schema_statuses:s?t.has_source_schema_statuses?structuredClone(t.source_schema_statuses):[]:n.statuses,schema_fields:a?t.has_source_schema_fields?structuredClone(t.source_schema_fields):[]:n.fields,schema_type_workflows:c?t.has_source_schema_type_workflows?structuredClone(t.source_schema_type_workflows):void 0:n.type_workflows}}function Kt(e){return{settings:nc(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function v_(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function Qo(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function fc(e){let t=k.agent_guidance,n=e?.template_version;return{prompt_completed:e?.prompt_completed===!0,declined:e?.declined===!0,declined_at:typeof e?.declined_at=="string"?e.declined_at:t.declined_at,template_version:typeof n=="number"&&Number.isInteger(n)&&n>0?n:t.template_version,last_checked_files:Qo(e?.last_checked_files??t.last_checked_files)}}function ne(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function b_(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.mode}function w_(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.trust_mode}function mc(e){return e==="none"||e==="restricted"||e==="strict"?e:k.extensions.policy.default_sandbox_profile}function E_(e){let t=e.name.trim().toLowerCase();if(t.length===0)return null;let n={name:t};e.disabled===!0&&(n.disabled=!0),e.require_trusted===!0&&(n.require_trusted=!0),e.require_provenance===!0&&(n.require_provenance=!0),e.sandbox_profile!==void 0&&(n.sandbox_profile=mc(e.sandbox_profile));let r=ne(e.allowed_capabilities),o=ne(e.blocked_capabilities),i=ne(e.allowed_surfaces),s=ne(e.blocked_surfaces),a=ne(e.allowed_commands),c=ne(e.blocked_commands),d=ne(e.allowed_actions),u=ne(e.blocked_actions),f=ne(e.allowed_services),_=ne(e.blocked_services);return r.length>0&&(n.allowed_capabilities=r),o.length>0&&(n.blocked_capabilities=o),i.length>0&&(n.allowed_surfaces=i),s.length>0&&(n.blocked_surfaces=s),a.length>0&&(n.allowed_commands=a),c.length>0&&(n.blocked_commands=c),d.length>0&&(n.allowed_actions=d),u.length>0&&(n.blocked_actions=u),f.length>0&&(n.allowed_services=f),_.length>0&&(n.blocked_services=_),n}function k_(e){let t=new Map;for(let n of e??[]){let r=E_(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function Jo(e){return e==="block"||e==="warn"?e:void 0}function I_(e){if(typeof e=="string")return Jo(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=Jo(e.global),n=Jo(e.project);return t===void 0&&n===void 0?void 0:{...t!==void 0?{global:t}:{},...n!==void 0?{project:n}:{}}}}function X(e,t){return ne(e?.[t]??k.extensions.policy[t])}function _c(e){let t=I_(e?.pm_max_version_exceeded_mode);return{mode:b_(e?.mode),trust_mode:w_(e?.trust_mode),...t!==void 0?{pm_max_version_exceeded_mode:t}:{},require_provenance:e?.require_provenance===!0,trusted_extensions:X(e,"trusted_extensions"),default_sandbox_profile:mc(e?.default_sandbox_profile),allowed_extensions:X(e,"allowed_extensions"),blocked_extensions:X(e,"blocked_extensions"),allowed_capabilities:X(e,"allowed_capabilities"),blocked_capabilities:X(e,"blocked_capabilities"),allowed_surfaces:X(e,"allowed_surfaces"),blocked_surfaces:X(e,"blocked_surfaces"),allowed_commands:X(e,"allowed_commands"),blocked_commands:X(e,"blocked_commands"),allowed_actions:X(e,"allowed_actions"),blocked_actions:X(e,"blocked_actions"),allowed_services:X(e,"allowed_services"),blocked_services:X(e,"blocked_services"),extension_overrides:k_(e?.extension_overrides??k.extensions.policy.extension_overrides)}}function pc(e){return[...new Set((e??[]).map(n=>n.trim().toLowerCase().replaceAll("-","_")))].filter(n=>n.length>0).sort((n,r)=>n.localeCompare(r)).filter(n=>["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"].includes(n))}function Oe(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function z(e,t){return e===void 0?t:e}function G(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function Zo(e){return Array.isArray(e)?e:[]}function S_(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:pc(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:Oe(e.validation?.lifecycle_stale_blocker_reason_patterns??t.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:Oe(e.validation?.lifecycle_closure_like_blocked_reason_patterns??t.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:Oe(e.validation?.lifecycle_closure_like_resolution_patterns??t.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:Oe(e.validation?.lifecycle_closure_like_actual_result_patterns??t.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:Xo(e.validation?.estimate_defaults_by_type)}}function T_(e,t){return{enabled:e.telemetry?.enabled??t.telemetry.enabled,first_run_prompt_completed:e.telemetry?.first_run_prompt_completed??t.telemetry.first_run_prompt_completed,capture_level:e.telemetry?.capture_level??t.telemetry.capture_level,endpoint:e.telemetry?.endpoint??t.telemetry.endpoint,installation_id:e.telemetry?.installation_id??t.telemetry.installation_id,retention_days:e.telemetry?.retention_days??t.telemetry.retention_days}}function C_(e,t){return{...t.search,...e.search,mutation_refresh_policy:rc(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:oc(e.search?.query_expansion?.enabled),provider:ic(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:sc(e.search?.rerank?.enabled),model:ac(e.search?.rerank?.model),top_k:cc(e.search?.rerank?.top_k)}}}function O_(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:dc(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function A_(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function x_(e,t){return{default_depth:e.context?.default_depth??t.context.default_depth,activity_limit:e.context?.activity_limit??t.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??t.context.stale_threshold_days,sections:{...t.context.sections,...e.context?.sections}}}function R_(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function mt(e){let t=(e??[]).map(r=>hi(r)).filter(r=>r!==null),n=new Map;for(let r of t)n.set(r.name.toLowerCase(),r);return[...n.values()].sort((r,o)=>r.name.localeCompare(o.name))}function hc(e){let t=nc(),n=dr({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:A_(e,t),locks:{...t.locks,...e.locks},ids:{...t.ids,...e.ids},agent_identity:structuredClone(e.agent_identity??t.agent_identity),mutation_guard:{...t.mutation_guard,...e.mutation_guard},checkpoints:{...t.checkpoints,...e.checkpoints},output:{...t.output,...e.output},ux:{...t.ux,...e.ux},history:{...t.history,...e.history,compact_policy:{...t.history.compact_policy,...e.history?.compact_policy}},validation:S_(e,t,n),governance:n,workflow:{definition_of_done:[...e.workflow?.definition_of_done??t.workflow.definition_of_done]},testing:{record_results_to_items:e.testing?.record_results_to_items??t.testing.record_results_to_items,allow_untrusted_linked_tests:e.testing?.allow_untrusted_linked_tests??t.testing.allow_untrusted_linked_tests},telemetry:T_(e,t),agent_guidance:fc(e.agent_guidance??t.agent_guidance),item_types:{definitions:mt(e.item_types?.definitions)},schema:Et(e.schema??t.schema),context:x_(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:_c(e.extensions.policy??t.extensions.policy)},search:C_(e,t),providers:R_(e,t),vector_store:O_(e,t)}}function D_(e){e.agent_identity=T(e.agent_identity,["probes_enabled","identity_vocabulary","harness_signals"]);let t=e.agent_identity;Object.hasOwn(t,"identity_vocabulary")&&(t.identity_vocabulary=T(G(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=Zo(e.agent_identity.harness_signals).map(n=>T(G(n),["harness","environment_keys","model_environment_keys","session_environment_keys","provenance_environment_keys","provenance_resolvers","provenance_unavailable_dimensions","argv_markers","client_names"])),e.locks=T(e.locks,["ttl_seconds","wait_ms"]),e.ids=T(e.ids,["token_length"]),e.mutation_guard=T(e.mutation_guard,["require_attributed_author","secret_guard","stale_in_progress_hours"]),e.checkpoints=T(e.checkpoints,["retention_days"]),e.output=T(e.output,["default_format"]),e.ux=T(e.ux,["deprecation_hints"]),e.history=T(e.history,["missing_stream","compact_policy"]),e.validation=T(e.validation,["sprint_release_format","parent_reference","metadata_profile","metadata_required_fields","lifecycle_stale_blocker_reason_patterns","lifecycle_closure_like_blocked_reason_patterns","lifecycle_closure_like_resolution_patterns","lifecycle_closure_like_actual_result_patterns","estimate_defaults_by_type"]),e.governance=T(e.governance,["preset","ownership_enforcement","create_mode_default","close_validation_default","require_close_reason","parent_reference","metadata_profile","force_required_for_stale_lock","create_default_type","workflow_enforcement","duplicate_detection_mode","duplicate_detection_threshold","duplicate_detection_limit"]),e.workflow=T(e.workflow,["definition_of_done"]),e.testing=T(e.testing,["record_results_to_items","allow_untrusted_linked_tests"]),e.telemetry=T(e.telemetry,["enabled","first_run_prompt_completed","capture_level","endpoint","installation_id","retention_days"]),e.agent_guidance=T(e.agent_guidance,["prompt_completed","declined","declined_at","template_version","last_checked_files"]),e.item_types=T(e.item_types,["definitions"]),e.schema=T(e.schema,["version","files","statuses","fields","workflow","type_workflows","unknown_field_policy"]),e.schema.files=T(G(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=T(G(e.schema.workflow),["draft_status","open_status","in_progress_status","blocked_status","close_status","canceled_status"]),e.context=T(e.context,["default_depth","activity_limit","stale_threshold_days","sections"]),e.context.sections=T(G(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=T(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=T(G(e.extensions.policy),["mode","trust_mode","pm_max_version_exceeded_mode","require_provenance","trusted_extensions","default_sandbox_profile","allowed_extensions","blocked_extensions","allowed_capabilities","blocked_capabilities","allowed_surfaces","blocked_surfaces","allowed_commands","blocked_commands","allowed_actions","blocked_actions","allowed_services","blocked_services","extension_overrides"]),e.extensions.policy.extension_overrides=Zo(e.extensions.policy.extension_overrides).map(n=>T(G(n),["name","disabled","require_trusted","require_provenance","sandbox_profile","allowed_capabilities","blocked_capabilities","allowed_surfaces","blocked_surfaces","allowed_commands","blocked_commands","allowed_actions","blocked_actions","allowed_services","blocked_services"])),e.search=T(e.search,["score_threshold","hybrid_semantic_weight","max_results","embedding_model","embedding_corpus_max_characters","embedding_batch_size","embedding_timeout_ms","scanner_max_batch_retries","provider","mutation_refresh_policy","query_expansion","rerank"]),e.search.query_expansion=T(G(e.search.query_expansion),["enabled","provider"]),e.search.rerank=T(G(e.search.rerank),["enabled","model","top_k"]),e.providers=T(e.providers,["openai","ollama"]),e.providers.openai=T(G(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=T(G(e.providers.ollama),["base_url","model"]),e.vector_store=T(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=T(G(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=T(G(e.vector_store.lancedb),["path"])}function N_(e){return{...e,locks:z(e.locks,k.locks),ids:z(e.ids,k.ids),agent_identity:z(e.agent_identity,k.agent_identity),mutation_guard:z(e.mutation_guard,k.mutation_guard),checkpoints:z(e.checkpoints,k.checkpoints),output:z(e.output,k.output),ux:z(e.ux,k.ux),history:z(e.history,k.history),validation:z(e.validation,k.validation),workflow:z(e.workflow,k.workflow),testing:z(e.testing,k.testing),telemetry:z(e.telemetry,k.telemetry),agent_guidance:z(e.agent_guidance,k.agent_guidance),item_types:z(e.item_types,k.item_types),schema:z(e.schema,k.schema),context:z(e.context,k.context),extensions:z(e.extensions,k.extensions),search:z(e.search,k.search),providers:z(e.providers,k.providers),vector_store:z(e.vector_store,k.vector_store)}}function L_(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:pc(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:Oe(e.validation?.lifecycle_stale_blocker_reason_patterns??k.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:Oe(e.validation?.lifecycle_closure_like_blocked_reason_patterns??k.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:Oe(e.validation?.lifecycle_closure_like_resolution_patterns??k.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:Oe(e.validation?.lifecycle_closure_like_actual_result_patterns??k.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:Xo(e.validation?.estimate_defaults_by_type)}}function P_(e){return{...k.search,...e.search,mutation_refresh_policy:rc(e.search?.mutation_refresh_policy),query_expansion:{...k.search.query_expansion,...e.search?.query_expansion,enabled:oc(e.search?.query_expansion?.enabled),provider:ic(e.search?.query_expansion?.provider)},rerank:{...k.search.rerank,...e.search?.rerank,enabled:sc(e.search?.rerank?.enabled),model:ac(e.search?.rerank?.model),top_k:cc(e.search?.rerank?.top_k)}}}function j_(e){return{default_depth:e.context?.default_depth??k.context.default_depth,activity_limit:e.context?.activity_limit??k.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??k.context.stale_threshold_days,sections:{...k.context.sections,...e.context?.sections}}}function M_(e){return{...e.vector_store,adapter:e.vector_store?.adapter??k.vector_store.adapter,collection_name:dc(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function F_(e,t,n,r){return{...e,item_format:"toon",validation:L_(e,t),governance:t,agent_guidance:fc(e.agent_guidance),item_types:{definitions:r.item_type_definitions},schema:{...n,statuses:r.schema_statuses,fields:r.schema_fields,type_workflows:r.schema_type_workflows},search:P_(e),context:j_(e),extensions:{enabled:Qo(e.extensions?.enabled),disabled:Qo(e.extensions?.disabled),policy:_c(e.extensions?.policy)},vector_store:M_(e)}}function yc(e,t,n){let r=new Set([...Object.keys(t),...Object.keys(n)]);for(let o of r){let i=t[o],s=n[o];if(!Ke(i,s)){if(s===void 0){delete e[o];continue}if(typeof i=="object"&&i!==null&&!Array.isArray(i)&&typeof s=="object"&&s!==null&&!Array.isArray(s)){let a=e[o],c=typeof a=="object"&&a!==null&&!Array.isArray(a)?a:{};yc(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var gc=["version","id_prefix","ids","author_default","agent_identity","mutation_guard","item_format","locks","checkpoints","output","ux","history","validation","governance","workflow","testing","telemetry","agent_guidance","item_types","schema","context","extensions","search","providers","vector_store"];function ec(e,t){let n=N_(e),r=dr(n),o=Et(n.schema),i=g_(n,t),s=F_(n,r,o,i),a=T({...s,governance:u_(r)},gc);return D_(a),a}function $_(e,t={}){let n=ec(e,t.persist_source);if(t.persist_source){let r=hc(t.persist_source.source_settings);r.item_types={definitions:structuredClone(t.persist_source.runtime_item_type_definitions)},r.schema={...r.schema,statuses:structuredClone(t.persist_source.runtime_schema_statuses),fields:structuredClone(t.persist_source.runtime_schema_fields),type_workflows:structuredClone(t.persist_source.runtime_schema_type_workflows)};let o=ec(r,t.persist_source),i=structuredClone(t.persist_source.source_settings);return yc(i,o,n),`${JSON.stringify(T(i,gc),null,2)}
|
|
175
|
+
`}return`${JSON.stringify(n,null,2)}
|
|
176
|
+
`}async function vc(e){let t=vt(e),n=[t];await ve({path:t,scope:"project"});let r=Ya(e);if(r){let d=await Te(r.tracked_paths);if(Vt(d,r.signatures))return cr(r.value)}let o=await Te([t]),i;try{i=await ge(t)}catch{return Kt("settings_read_fs_error")}if(i===null){let d=Kt();return await Yo(e,[t],d,o,[t]),d}let s=await Te([t]);if(!Vt(o,s))return Ce(e),vc(e);let a;try{a=JSON.parse(i)}catch{let d=Kt("settings_read_invalid_json");return await Yo(e,[t],d,s,[t]),d}let c=Va(a);if(!c.success){let d=Kt("settings_read_invalid_schema");return await Yo(e,[t],d,s,[t]),d}try{let d=hc(c.data),u=__(e,d.schema,t);n=u;let f=await Te(u),_=await Ii(e,d.schema),p=await Si(e,d.schema),m=await Te(u),y={...d,item_types:{definitions:mt([...d.item_types.definitions,...Zo(p.type_definitions_from_file)])},schema:p.schema};lc(y,m_(c.data,y));let g={settings:y,metadata:{has_explicit_item_format:v_(a)},warnings:[...c.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],..._.created_paths.map(S=>`runtime_schema_bootstrap_created:${S}`),...p.warnings]};return _.created_paths.length===0?Vt(f,m)?ar(e,{tracked_paths:u,signatures:m,value:cr(g)}):Ce(e):Ce(e),g}catch{let d=Kt("settings_read_merge_failed");return await h_(e,n,d),d}}async function bc(e){return(await vc(e)).settings}async function gb(e,t,n=a_){let r=vt(e),o=$_(t,{persist_source:uc(t)});try{await Wa({pmRoot:e,filePath:r,raw:o,op:n,author:os(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),await fe({path:r,scope:"project",op:n})}finally{Ce(e)}}import z_ from"node:fs/promises";import H_ from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="99eadab1-5338-5d75-b600-fa0463053375")}catch{}})();function U_(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function B_(e,t){return new E(`Missing history stream for ${e}. ${t} requires history streams when settings.history.missing_stream is strict_error.`,w.NOT_FOUND)}async function W_(e,t){return await _i(H_.dirname(e)),await(await z_.open(e,"a")).close(),fe({path:e,scope:"project",op:`${t}:history:auto_create`})}async function ei(e){return V_({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function V_(e){let t=U_(e.itemIds),n=[],r=[];for(let o of t){let i=bt(e.pmRoot,o);if(!await Re(i)){if(e.settings.history.missing_stream==="strict_error")throw B_(o,e.commandLabel);r.push(...await W_(i,e.commandLabel)),r.push(`history_stream_auto_created:${o}`),n.push(o)}}return{auto_created_ids:n,warnings:r}}import ni from"node:fs/promises";import lr from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="57662b37-0d33-5cde-ad84-0a90fb520439")}catch{}})();function Ae(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function ri(e){let t=["--pm-path",e,"init","--defaults","--agent-guidance","skip"];return{suggested_retry:`pm ${t.map(n=>`'${n.replaceAll("'",`'"'"'`)}'`).join(" ")}`,suggested_retry_args:t}}function ur(e){return new E(`Tracker root is not a directory at ${e}.`,w.USAGE,{code:"tracker_root_not_directory",reason:"not_a_directory",resolved_path:e,nextSteps:["Pass a tracker directory, usually <workspace>/.agents/pm, rather than a file path."]})}function ti(e){return new E(`Tracker root is not readable at ${e}.`,w.GENERIC_FAILURE,{code:"tracker_root_unreadable",reason:"unreadable",resolved_path:e,nextSteps:["Grant read and directory-search permission to the tracker root, then retry."]})}async function K_(e){let t=lr.resolve(e),n=lr.parse(t).root,r=lr.dirname(t);for(;r!==n;){let o;try{o=await ni.stat(r)}catch(i){if(Ae(i,"ENOTDIR"))throw ur(e);if(!Ae(i,"ENOENT"))throw i;r=lr.dirname(r);continue}if(!o.isDirectory())throw ur(e);return}}async function _t(e){let t;try{t=await ni.stat(e)}catch(n){throw Ae(n,"ENOENT")?(await K_(e),new E(`Tracker is not initialized at ${e}. Tracker root does not exist. Run pm init first.`,w.NOT_FOUND,{code:"tracker_root_missing",reason:"missing",resolved_path:e,nextSteps:["Confirm the tracker root path or initialize it with the emitted retry."],recovery:ri(e)})):Ae(n,"ENOTDIR")?ur(e):Ae(n,"EACCES")||Ae(n,"EPERM")?ti(e):n}if(!t.isDirectory())throw ur(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw ti(e);try{await(await ni.opendir(e)).close()}catch(n){throw Ae(n,"EACCES")||Ae(n,"EPERM")?ti(e):n}}async function oi(e){if(await _t(e),!await Re(vt(e)))throw new E(`Tracker is not initialized at ${e}. Run pm init first.`,w.NOT_FOUND,{code:"tracker_not_initialized",reason:"settings_missing",resolved_path:e,nextSteps:["Initialize the selected tracker root with the emitted retry."],recovery:ri(e)})}import pt from"node:fs/promises";import q_ from"node:path";import{isUtf8 as X_}from"node:buffer";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="724cba31-ab22-520c-a08a-7d281908b27f")}catch{}})();async function G_(e){try{return await pt.access(e),!0}catch{return!1}}function Y_(e,t){e&&(e.includes(t)||e.push(t))}function wc(e){return e??Zt(ue())}function J_(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}async function fr(e,t,n="pm-",r,o=xe){let i=t.trim(),s=i.startsWith("#")?i.slice(1):i;if(s.length===0)return null;let a=Nt(t,n),c=ko(t),d=[...new Set([s,a,c])].filter(_=>_.length>0),u=Object.entries(o),f=J_(r);for(let _ of d)for(let[p]of u)for(let m of f){let y=hr(e,p,_,m,o);if(await G_(y))return{id:_,type:p,itemPath:y,item_format:m}}return null}async function mr(e,t={}){let n=await Q_(e,t);if(n.error!==null)throw n.error;return{raw:n.raw,document:n.document}}async function Q_(e,t={}){let n=await pt.readFile(e.itemPath);if(!X_(n))throw new E("Item contains invalid UTF-8; preserve a binary backup before recovering it.",w.CONFLICT,{code:"item_document_encoding_invalid",item_id:e.id,item_path:e.itemPath,byte_length:n.length,empty:!1});let r=n.toString("utf8");await ve({path:e.itemPath,scope:"project"});let o;try{o=gn(r,{format:e.item_format,schema:t.schema,extensionFieldNames:wc(t.extensionFieldNames),onWarning:i=>Y_(t.warnings,i)})}catch(i){if(i instanceof E&&i.code==="item_document_invalid")return{raw:r,document:null,error:new E(`Cannot read ${e.id} at ${e.itemPath}${n.length===0?" (zero-length file)":""}: ${i.message}`,i.exitCode,{...i.context,item_id:e.id,item_path:e.itemPath,byte_length:n.length,empty:n.length===0,nextSteps:[`Run pm history ${e.id} --full, then pm restore ${e.id} <version> to recover a recorded state.`]})};throw i}return{raw:r,document:o,error:null}}async function Z_(e,t,n=xe,r,o){await _t(e);let i=await Ca(e,t,n,r,o);return Fn(i.length),i.map(s=>s.metadata)}async function Ec(e,t,n=xe,r,o){await _t(e);let i=await Oa(e,t,n,r,o);return Fn(i.length),i.map(s=>s.metadata)}async function rw(e,t,n=xe,r,o,i={}){await _t(e);let s=await Qn(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan});return Fn(s.length),s.map(a=>({...a.metadata,body:a.body}))}function kc(e){return{async get(t){let n=await fr(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await mr(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>Z_(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function ep(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await pt.readdir(q_.join(e,o));for(let s of i)for(let a of tn)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function tp(e,t,n,r){let o=Nt(t,n),i=await ep(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(c=>({id:c,distance:qt(c,o,s)})).filter(c=>c.distance!==null).sort((c,d)=>c.distance-d.distance).slice(0,3).map(c=>c.id)}async function np(e,t,n,r){let o=await tp(e,t,n,r),i=["Confirm the active --path/PM_PATH scope, then retry with a valid id."];return o.length>0&&i.unshift(`Did you mean one of: ${o.join(", ")}?`),new E(`Item ${t} not found`,w.NOT_FOUND,{nextSteps:i})}function rp(e,t){return e==="claim"||t===!0&&(e==="comment_add"||e==="comment_edit"||e==="comment_delete"||e==="note_add"||e==="learning_add"||e==="release"||e==="update"||e==="update_ownership_bypass"||e==="update_audit")}async function Ic(e){let t=e.typeToFolder??en(e.settings,ue()).type_to_folder,n=await fr(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await np(e.pmRoot,e.id,e.settings.id_prefix,t);let r=await Y(e.pmRoot,n.id,e.settings.locks.ttl_seconds,e.author,!!e.force,e.settings.governance.force_required_for_stale_lock,e.settings.locks.wait_ms);try{let o=[],{raw:i,document:s}=await mr(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||a,d=rs(e.author),u=dr(e.settings);if(a&&c!==d&&!e.force&&!rp(e.op,e.bypassAssigneeConflict)){if(u.ownership_enforcement==="strict")throw new E(`Item ${n.id} is assigned to ${a}. Use --force to override.`,w.CONFLICT);u.ownership_enforcement==="warn"&&o.push(`ownership_warning:assignee_conflict:${n.id}:${a}`)}return{typeToFolder:t,located:n,originalRaw:i,document:s,warnings:o,releaseLock:r}}catch(o){throw await r(),o}}function op(e,t,n){if(!e.handled||typeof e.result!="object"||e.result===null)return{effectiveTargetItemPath:t,effectiveSerializedAfter:n,skipItemWrite:!1};let r=e.result;return{effectiveTargetItemPath:typeof r.target_item_path=="string"&&r.target_item_path.trim().length>0?r.target_item_path:t,effectiveSerializedAfter:typeof r.contents=="string"?r.contents:n,skipItemWrite:r.skip_write===!0}}async function ip(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await q(e.originalItemPath,e.originalRaw),await pt.rm(e.effectiveTargetItemPath,{force:!0});return}await q(e.originalItemPath,e.originalRaw)}}async function Sc(e){let t=await Ic({pmRoot:e.pmRoot,settings:e.settings,id:e.id,op:e.op,author:e.author,force:e.force,bypassAssigneeConflict:e.bypassAssigneeConflict,extensionFieldNames:e.extensionFieldNames,typeToFolder:e.typeToFolder}),{typeToFolder:n,located:r,originalRaw:o,document:i,warnings:s,releaseLock:a}=t;try{let c=te(i,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),d=te(structuredClone(i),{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),u=await e.mutate(d);if(e.skipNoop===!0&&u.changedFields.length===0)return{item:c.metadata,body:c.body,changedFields:[],warnings:[...s,...u.warnings??[]]};let f=e.resolveHistoryContext?.();d.metadata.updated_at=be();let _=te(d,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames});await br({pm_root:e.pmRoot,operation:e.op,before:c,after:_,changed_fields:u.changedFields,sdk:kc({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let p=await ei({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),m="toon",y=bs(_,{format:m,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),g=hr(e.pmRoot,_.metadata.type,r.id,m,n),S=bt(e.pmRoot,r.id),A=await It("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:g,history_path:S,item_format:m,before:c,after:_,contents:y}),{effectiveTargetItemPath:x,effectiveSerializedAfter:M,skipItemWrite:D}=op(A,g,y),re=await xo(e.pmRoot,e.author),B=[];try{D||await q(x,M),!D&&x!==r.itemPath&&await pt.rm(r.itemPath);let K=st({nowIso:_.metadata.updated_at,author:e.author,op:e.op,before:c,after:_,message:e.message,context:f});try{await at(S,K)}catch(Z){throw await ip({skipItemWrite:D,effectiveTargetItemPath:x,originalItemPath:r.itemPath,originalRaw:o}),Z}D||(B=await Ro({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:x,previousItemPath:r.itemPath,document:_}))}finally{await re()}let Q=[...await fe({path:x,scope:"project",op:e.op,item_id:_.metadata.id,item_type:_.metadata.type,before:c,after:_,changed_fields:u.changedFields}),...await fe({path:S,scope:"project",op:`${e.op}:history`,item_id:_.metadata.id,item_type:_.metadata.type,before:c,after:_,changed_fields:u.changedFields})];return vr({id:_.metadata.id,op:e.op,item_type:_.metadata.type,previous_status:c.metadata.status,status:_.metadata.status,previous:on(c.metadata,u.changedFields),current:on(_.metadata,u.changedFields),changed_fields:u.changedFields}),{item:_.metadata,body:_.body,changedFields:u.changedFields,warnings:[...s,...u.warnings??[],...p.warnings,...A.warnings,...B,...Q]}}finally{await a()}}async function ow(e){return Sc(e)}async function iw(e){return Sc(e)}async function sw(e){let t=await Ic({pmRoot:e.pmRoot,settings:e.settings,id:e.id,op:"delete",author:e.author,force:e.force}),{located:n,originalRaw:r,document:o,warnings:i,releaseLock:s}=t;try{let a=wc(void 0),c=te(o,{schema:e.settings.schema,extensionFieldNames:a});await br({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:kc({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let d=await ei({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),u=be(),f=Ve,_=st({nowIso:u,author:e.author,op:"delete",before:c,after:f,message:e.message}),p=bt(e.pmRoot,n.id),m=await It("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:p,before:c}),y=n.itemPath,g=!1;if(m.handled&&typeof m.result=="object"&&m.result!==null){let M=m.result;typeof M.item_path=="string"&&M.item_path.trim().length>0&&(y=M.item_path),M.skip_delete===!0&&(g=!0)}if(e.dryRun===!0)return{item:c.metadata,changedFields:["deleted"],targetPath:y,warnings:[...i,...d.warnings,...m.warnings]};let S=await xo(e.pmRoot,e.author),A=[];try{g||await pt.rm(y);try{await at(p,_)}catch(M){throw g||await q(y,r),M}g||(A=await Ro({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:y,document:null}))}finally{await S()}let x=[...await fe({path:y,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:f,changed_fields:["deleted"]}),...await fe({path:p,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:f,changed_fields:["deleted"]})];return vr({id:c.metadata.id,op:"delete",item_type:c.metadata.type,previous_status:c.metadata.status,previous:on(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...i,...d.warnings,...m.warnings,...A,...x]}}finally{await s()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5c8194ff-d877-51b8-bd54-d206f85a979c")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8ed4af4c-40cf-5902-930b-78a4758871b2")}catch{}})();function sp(e,t){let n=e.trim().toLowerCase();if(n.length===0)return;let r=Math.floor(n.length/3);return t.map(o=>({candidate:o,distance:qt(n,o.toLowerCase(),r)??Number.POSITIVE_INFINITY})).filter(({distance:o})=>Number.isFinite(o)).sort((o,i)=>o.distance!==i.distance?o.distance-i.distance:o.candidate.localeCompare(i.candidate))[0]?.candidate}function Tc(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function mw(e){let t=e.command_path.trim().replaceAll(/\s+/gu," "),n=e.token.trim(),r=n.length===0?"<empty>":n,o=[...new Set(e.allowed.map(_=>_.trim()))].filter(Boolean).sort((_,p)=>_.localeCompare(p));if(t.length===0||r.length===0||o.length===0)throw new TypeError("Unknown-subcommand contracts require a path, token, and allowed set");let i=t.split(" "),s=e.trailing_args??[],a=e.display_name??`pm ${t}`,c=e.token_kind??"subcommand",d=e.retry_command?void 0:sp(r,o),u=Tc([...i,r,...s]),f=e.retry_command??(d?Tc([...i,d,...s]):void 0);return new E(`Unknown ${a} ${c} "${r}". Allowed: ${o.join(", ")}${e.message_suffix??""}`,e.exit_code??w.USAGE,{code:"unknown_subcommand",reason:"unknown_positional_token",examples:[...f?[f]:[],...e.examples??[],`pm ${t} --help`],nextSteps:f?[`Retry with the suggested command: ${f}`]:["Choose one value from recovery.allowed_values."],recovery:{attempted_command:u,allowed_values:o,suggested_retry:f,fallback_candidates:e.fallback_candidates}})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2f2a7df8-9c95-5ed1-bd43-33dde57dd7f0")}catch{}})();var ap=["tree","graph","context"],cp=["none","repeated"],dp=["outgoing","incoming","both"],lp=32,up=200,fp=400,mp=16e3;function _p(e){let t=e?.trim().toLowerCase()??"tree";if(ap.includes(t))return t;throw new E(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,w.USAGE)}function ht(e,t){if(e===void 0)return;let n=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(n)||n<1)throw new E(`Invalid --${t} value "${e}". Use a positive integer.`,w.USAGE);return n}function Oc(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new E(`Invalid --max-depth value "${e}". Use a non-negative integer.`,w.USAGE);return t}function pp(e){let t=e?.trim().toLowerCase()??"none";if(cp.includes(t))return t;throw new E(`Invalid --collapse value "${e}". Use "none" or "repeated".`,w.USAGE)}function hp(e){let t=e?.trim().toLowerCase()??"both";if(dp.includes(t))return t;throw new E(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,w.USAGE)}function yp(e,t=de()){if(e===void 0)return;let n=(Array.isArray(e)?e:[e]).flatMap(o=>o.split(",")).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)return;let r=new Set;for(let o of n){let i=t.resolve(o);if(!i){let s=t.list().map(a=>a.kind).join(", ");throw new E(`Invalid --kind value "${o}". Registered kinds: ${s}.`,w.USAGE)}r.add(i.kind)}return[...r].sort()}function gp(e){if(!e||e.length===0)return[];let t=e.map(({id:r,kind:o})=>({id:r.trim(),kind:o.trim().toLowerCase()})).sort((r,o)=>{let i=r.kind.localeCompare(o.kind);return i!==0?i:r.id.localeCompare(o.id)}),n=new Map;for(let r of t){let o=`${r.kind.toLowerCase()}::${r.id.toLowerCase()}`;n.has(o)||n.set(o,{id:r.id,kind:r.kind})}return[...n.values()]}function vp(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:gp(e.dependencies)}}function bp(e){return rn(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function wp(e,t,n,r,o,i,s,a,c){for(let d of t.dependencies){let u=Math.max(1,Math.ceil(JSON.stringify({from:e.id,to:d.id,kind:d.kind}).length/3));if(a.nodes>=a.nodeLimit){e.truncated=!0,a.reasons.add("node_limit");break}if(a.edges>=a.edgeLimit){e.truncated=!0,a.reasons.add("edge_limit");break}if(a.estimatedTokens+u>=a.tokenBudget){e.truncated=!0,a.reasons.add("token_budget");break}a.edges+=1,a.estimatedTokens+=u,e.dependencies.push(Ac(d.id,n,r,o,i,s,a,c+1,d.kind))}}function Ep(e,t,n,r,o,i,s,a){return s.estimatedTokens>=s.tokenBudget&&t?.dependencies.length?(e.truncated=!0,s.reasons.add("token_budget"),!0):!t||e.cycle?!0:r!==void 0&&a>=r?(t.dependencies.length>0&&(e.truncated=!0,s.reasons.add("max_depth")),!0):o==="repeated"&&i.has(n)?(e.collapsed=!0,!0):!1}function Ac(e,t,n,r,o,i,s,a=0,c){let d=e.trim().toLowerCase(),u=t.get(d),f={id:u?.id??e,title:u?.title,type:u?.type,status:u?.status,via:c,missing:!u,cycle:n.has(d),dependencies:[]};if(s.nodes+=1,s.estimatedTokens+=bp(f),Ep(f,u,d,r,o,i,s,a))return f;o==="repeated"&&i.add(d);let _=new Set(n);return _.add(d),wp(f,u,t,_,r,o,i,s,a),f}function Cc(e,t){return!e||e.missing&&!t.missing?t:{...e,title:e.title??t.title,type:e.type??t.type,status:e.status??t.status}}function kp(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,Cc(t.get(a.id),{id:a.id,title:a.title,type:a.type,status:a.status,missing:a.missing}));for(let c of a.dependencies){t.set(c.id,Cc(t.get(c.id),{id:c.id,title:c.title,type:c.type,status:c.status,missing:c.missing}));let d=c.via??"related",u=`${a.id}::${c.id}::${d}`;n.has(u)||n.set(u,{from:a.id,to:c.id,kind:d}),c.cycle||r.push(c)}}let o=[...t.values()].sort((a,c)=>a.id.localeCompare(c.id)),i=[...n.values()].sort((a,c)=>{let d=a.from.localeCompare(c.from);if(d!==0)return d;let u=a.to.localeCompare(c.to);return u!==0?u:a.kind.localeCompare(c.kind)}),s=o.filter(a=>a.missing).map(a=>a.id);return{root_id:e.id,nodes:o,edges:i,missing_ids:s}}function xc(e,t,n){let r=new Set,o=new Set,i=new Set,s=new Set,a=[{id:e,depth:0}],c=0;for(;c<a.length;){let d=a[c++],u=d.id.trim().toLowerCase();r.add(u);let f=t.get(u);if(!f){i.add(u);continue}if(!(n!==void 0&&d.depth>=n)&&!s.has(u)){s.add(u);for(let _ of f.dependencies)o.add(`${u}::${_.id.trim().toLowerCase()}::${_.kind}`),a.push({id:_.id,depth:d.depth+1})}}return{node_count:r.size,edge_count:o.size,edge_basis:"deduplicated_directed",missing_count:i.size}}function Ip(e,t=de()){let n=Oc(e.maxDepth),r=ht(e.nodeLimit,"node-limit"),o=ht(e.edgeLimit,"edge-limit"),i=ht(e.tokenBudget,"token-budget"),s=yp(e.kind,t);return{direction:hp(e.direction),...s===void 0?{}:{kinds:s},...n===void 0?{}:{maxDepth:n},...r===void 0?{}:{nodeLimit:r},...o===void 0?{}:{edgeLimit:o},...i===void 0?{}:{tokenBudget:i},...e.cursor?.trim()?{cursor:e.cursor.trim()}:{}}}function Sp(e,t,n,r){return Ma(e.graph,t,e.details.map(o=>o.id===t&&r.length>0?{...o,evidence:r}:o),n)}function ii(e,t,n,r){for(let o of n.slice(0,r)){let i=o?.trim();i&&e.push(`${t}:${i}`)}}async function Tp(e,t,n,r){let o=await fr(e,t,n.id_prefix,n.item_format,r);if(!o)return[];let{document:i}=await mr(o,{schema:n.schema}),s=i.metadata,a=s.files??[],c=s.tests??[],d=s.docs??[],u=[["files",a.length],["tests",c.length],["docs",d.length],["comments",(s.comments??[]).length],["notes",(s.notes??[]).length],["learnings",(s.learnings??[]).length]];if(u.every(([,_])=>_===0))return[];let f=[`linked:${u.map(([_,p])=>`${_}=${p}`).join(",")}`];return ii(f,"file",a.map(_=>_.path),3),ii(f,"test",c.map(_=>_.command??_.path),2),ii(f,"doc",d.map(_=>_.path),2),f}function Cp(e){let{canonicalId:t,context:n,missingCount:r,missingReferences:o,referenceLimit:i,summaryOnly:s}=e;return{id:t,format:"context",node_count:n.nodes.length+1,edge_count:n.edges.length,edge_basis:"deduplicated_directed",missing_count:r,missing_scope:"traversal",missing_reference_count:o.length,...s?{}:{missing_references:o.slice(0,i),context:n}}}function Op(e){let{row:t,missingReachableSet:n,packetIds:r,filteredKinds:o,registry:i}=e;if(t.no_active_blocker_sentinel||!n.has(t.target_id.trim().toLowerCase())||!r.has(t.holder_id))return!1;if(o===void 0)return!0;let s=i.resolve(t.kind);return s!==void 0&&(o.has(s.kind)||s.inverse!==void 0&&o.has(s.inverse))}function Rc(e,t,n){let r;for(;;){let o=rn(new TextEncoder().encode(fo(gr("deps",e),t)).byteLength);if(o===r)return o;n(o),r=o}}function Ap(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function xp(e){try{return Sp(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&Ap(t))return e.smallestResult;throw t}}function Rp(e){let{assembly:t,canonicalId:n,contextOptions:r,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:a,missingReferences:c}=e,u=r.edgeLimit??40,f=r.tokenBudget,_,p;for(;;){let m=xp({assembly:t,canonicalId:n,contextOptions:r,internalTokenBudget:f,rootEvidence:o,smallestResult:p});if("format"in m)return m;let y=m;_??=y.meta.tokenBudget,f??=_;let g=Cp({canonicalId:n,context:y,missingCount:a,missingReferences:c,referenceLimit:u,summaryOnly:i});if(p=g,i||(y.meta.tokenBudget=_,y.meta.usedTokens=Rc(yt(g,!1),s,x=>{y.meta.usedTokens=x}),y.meta.usedTokens<=_))return g;if(u>0){u-=1;continue}let S=f,A=S*_/y.meta.usedTokens;f=Math.min(S-1,Math.max(1,Math.floor(A*.9)))}}function Dp(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:o,summaryOnly:i,outputFormat:s}=e,a=Ip(r,t.graph.registry()),c=t.graph.closure(n,{direction:a.direction,...a.kinds===void 0?{}:{kinds:a.kinds},maxDepth:a.maxDepth??3}),d=c.value.filter(y=>t.missingIdSet.has(y.toLowerCase())),u=new Set(d.map(y=>y.toLowerCase())),f=t.graph.registry(),_=a.kinds?new Set(a.kinds.map(y=>f.require(y).kind)):void 0,p=new Set([n,...c.value]),m=[...t.dangling.active,...t.dangling.legacy_terminal].filter(y=>Op({row:y,missingReachableSet:u,packetIds:p,filteredKinds:_,registry:f}));return Rp({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:d.length,missingReferences:m})}function Np(e){let t=[e],n;for(;t.length>0;){let r=t.pop();r.dependencies.length>0&&(n=r,t.push(...r.dependencies))}return n?(n.dependencies.pop(),n.truncated=!0,!0):!1}function Lp(e,t,n,r,o,i,s){let a=o??lp,c=ht(n.nodeLimit,"node-limit")??up,d=ht(n.edgeLimit,"edge-limit")??fp,u=ht(n.tokenBudget,"token-budget")??mp,f={nodeLimit:c,edgeLimit:d,tokenBudget:u,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},_=Ac(e,r,new Set,a,t==="graph"?"repeated":i,new Set,f),p=xc(e,r,void 0),m;for(;;){let y=kp(_),g=f.reasons.size===0?void 0:{reasons:[...f.reasons].sort(),limits:{max_depth:a,node_limit:c,edge_limit:d,token_budget:u},estimated_tokens:0,total_node_count:p.node_count,total_edge_count:p.edge_count,omitted_node_count:Math.max(0,p.node_count-y.nodes.length),omitted_edge_count:Math.max(0,p.edge_count-y.edges.length)},S={id:e,format:t,node_count:y.nodes.length,edge_count:y.edges.length,edge_basis:"deduplicated_directed",missing_count:y.missing_ids.length,...g?{truncation:g}:{}};if(m=t==="tree"?{...S,tree:_}:{...S,graph:y},(m.truncation===void 0?rn(new TextEncoder().encode(fo(gr("deps",yt(m,!1)),s)).byteLength):Rc(yt(m,!1),s,x=>{m.truncation.estimated_tokens=x}))<=u)return m;if(!Np(_))return f.reasons.add("token_budget"),m;f.reasons.add("token_budget")}}function yt(e,t,n={}){let r={name:e.format==="tree"?"dependency_tree":e.format==="graph"?"dependency_graph":"relationship_context",restore_with:"--full"};return{...e,legacy_alias_counts:n,projection:{mode:t?"summary":"full",declared_field_groups:[r],included_field_groups:t?[]:[r.name]}}}async function Dw(e,t,n){let r=vi(process.cwd(),n.path);await oi(r);let o=_p(t.format),i=Oc(t.maxDepth),s=pp(t.collapse);Di(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await bc(r),d=en(c,ue()),u=await Ec(r,c.item_format,d.type_to_folder,void 0,c.schema),f=nn(c.schema),_=new Map(u.map(m=>[m.id.trim().toLowerCase(),vp(m)])),p=Lo(u,m=>pe(m,f));for(let m of[...p.active,...p.legacy_terminal]){let y=_.get(m.holder_id.trim().toLowerCase()),g=m.kind.trim().toLowerCase();y&&!y.dependencies.some(S=>S.id.trim().toLowerCase()===m.target_id.trim().toLowerCase()&&S.kind===g)&&y.dependencies.push({id:m.target_id,kind:g})}if(!_.has(e.trim().toLowerCase()))throw new E(`Item ${e} not found`,w.NOT_FOUND);if(o==="context"){let m=_.get(e.trim().toLowerCase()).id,y=a?[]:await Tp(r,m,c,d.type_to_folder),g=x=>pe(x,f),S=ce(),A=ja().lookup(r,La(u,g,S),()=>tr(u,g,S));return yt(Dp({assembly:A.assembly,canonicalId:m,options:t,rootEvidence:y,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,A.assembly.legacyAliasCounts)}return a?yt({id:e,format:o,...xc(e,_,i)},!0,Object.fromEntries(Object.entries(tr(u,m=>pe(m,f)).legacyAliasCounts))):yt(Lp(e,o,t,_,i,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(tr(u,m=>pe(m,f)).legacyAliasCounts)))}export{Eu as a,De as b,kr as c,jp as d,Mp as e,an as f,Or as g,Wp as h,Vp as i,Kp as j,qp as k,Xp as l,Gp as m,Mr as n,Fr as o,Gi as p,ih as q,sh as r,ah as s,ch as t,dh as u,lh as v,Ur as w,es as x,uh as y,fh as z,mh as A,ud as B,rs as C,os as D,ds as E,St as F,Th as G,Ch as H,Ye as I,is as J,ph as K,ss as L,fd as M,hh as N,fn as O,Je as P,pe as Q,_n as R,yn as S,gn as T,bs as U,te as V,Fl as W,tt as X,nt as Y,iu as Z,my as _,_y as $,py as aa,Fy as ba,xu as ca,xn as da,Fe as ea,Dt as fa,sg as ga,yo as ha,Nn as ia,Js as ja,ag as ka,ea as la,cg as ma,st as na,at as oa,ws as pa,qu as qa,Ln as ra,yg as sa,vo as ta,Pn as ua,gg as va,vg as wa,ia as xa,jn as ya,ca as za,Mn as Aa,tf as Ba,bg as Ca,wg as Da,Wt as Ea,Uo as Fa,Gv as Ga,Yv as Ha,Jv as Ia,Qv as Ja,Wa as Ka,nb as La,dr as Ma,vc as Na,bc as Oa,gb as Pa,Sg as Qa,ei as Ra,V_ as Sa,la as Ta,ko as Ua,Nt as Va,Dg as Wa,Fg as Xa,$g as Ya,zg as Za,Ea as _a,If as $a,xo as ab,Zg as bb,Ro as cb,Qn as db,_t as eb,oi as fb,fr as gb,mr as hb,Q_ as ib,Z_ as jb,Ec as kb,rw as lb,kc as mb,np as nb,ow as ob,iw as pb,sw as qb,mw as rb,_v as sb,pv as tb,fm as ub,ce as vb,av as wb,er as xb,cv as yb,lm as zb,dv as Ab,Ht as Bb,_m as Cb,hm as Db,Lo as Eb,ym as Fb,Ev as Gb,tr as Hb,La as Ib,Po as Jb,ja as Kb,Cv as Lb,Ma as Mb,ht as Nb,Oc as Ob,hp as Pb,yp as Qb,Dw as Rb,$o as Sb,Dm as Tb,Bt as Ub,or as Vb,$a as Wb,Nm as Xb,Lm as Yb,Pm as Zb,Fm as _b};
|
|
177
|
+
//# sourceMappingURL=chunk-IAUOUGVR.js.map
|