@unbrained/pm-cli 2026.9.7 → 2026.9.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/pm-developer/SKILL.md +12 -4
- package/.agents/skills/pm-developer/references/MULTI_AGENT_MERGE.md +19 -10
- package/.agents/skills/pm-extensions/SKILL.md +6 -0
- package/.agents/skills/pm-sdk/SKILL.md +11 -2
- package/.agents/skills/pm-user/SKILL.md +7 -2
- package/.agents/skills/pm-user/references/ECOSYSTEM_PLANNING.md +95 -0
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +231 -182
- package/dist/cli/after-command-context-usage.js +1 -48
- package/dist/cli/argv-utils.js +1 -40
- package/dist/cli/bootstrap-args.js +1 -9
- package/dist/cli/bundle-integrity.js +2 -110
- package/dist/cli/commander-usage.js +11 -771
- package/dist/cli/commands/activity.js +1 -9
- package/dist/cli/commands/aggregate.js +1 -5
- package/dist/cli/commands/append.js +1 -5
- package/dist/cli/commands/claim.js +1 -5
- package/dist/cli/commands/close-many.js +1 -5
- package/dist/cli/commands/close.js +1 -9
- package/dist/cli/commands/comments.js +1 -5
- package/dist/cli/commands/config.js +1 -9
- package/dist/cli/commands/context.js +1 -9
- package/dist/cli/commands/contracts.js +1 -5
- package/dist/cli/commands/copy.js +1 -9
- package/dist/cli/commands/create.js +1 -9
- package/dist/cli/commands/delete.js +1 -9
- package/dist/cli/commands/deps.js +1 -9
- package/dist/cli/commands/docs.js +1 -9
- package/dist/cli/commands/duplicates.js +1 -9
- package/dist/cli/commands/eval.js +1 -9
- package/dist/cli/commands/extension/describe.js +1 -5
- package/dist/cli/commands/extension/scaffold.js +1 -5
- package/dist/cli/commands/extension/shared.js +1 -5
- package/dist/cli/commands/extension.js +1 -9
- package/dist/cli/commands/files.js +1 -9
- package/dist/cli/commands/focus.js +1 -9
- package/dist/cli/commands/gc.js +1 -9
- package/dist/cli/commands/get.js +1 -9
- package/dist/cli/commands/graph.js +1 -10
- package/dist/cli/commands/health.js +1 -9
- package/dist/cli/commands/history-compact.js +1 -10
- package/dist/cli/commands/history-redact.js +1 -11
- package/dist/cli/commands/history-repair.js +1 -10
- package/dist/cli/commands/history.js +1 -5
- package/dist/cli/commands/index.js +1 -58
- package/dist/cli/commands/init-agent-guidance.js +1 -9
- package/dist/cli/commands/init.js +1 -9
- package/dist/cli/commands/learnings.js +1 -5
- package/dist/cli/commands/lifecycle-transitions.js +1 -5
- package/dist/cli/commands/list.js +1 -9
- package/dist/cli/commands/merge.js +1 -11
- package/dist/cli/commands/next.js +1 -9
- package/dist/cli/commands/notes.js +1 -5
- package/dist/cli/commands/plan.js +1 -9
- package/dist/cli/commands/profile.js +1 -9
- package/dist/cli/commands/restore.js +1 -9
- package/dist/cli/commands/scheduling-shortcuts.js +1 -9
- package/dist/cli/commands/schema.js +1 -10
- package/dist/cli/commands/search.js +1 -9
- package/dist/cli/commands/stats.js +1 -9
- package/dist/cli/commands/telemetry.js +1 -9
- package/dist/cli/commands/test-all.js +1 -9
- package/dist/cli/commands/test-runs.js +1 -9
- package/dist/cli/commands/test.js +1 -9
- package/dist/cli/commands/update-many.js +1 -5
- package/dist/cli/commands/update.js +1 -9
- package/dist/cli/commands/upgrade.js +1 -5
- package/dist/cli/commands/validate.js +1 -15
- package/dist/cli/context-intent-invocation.js +1 -20
- package/dist/cli/description-stdin.js +1 -17
- package/dist/cli/error-guidance.js +1 -1353
- package/dist/cli/extension-command-help.js +5 -636
- package/dist/cli/extension-command-options.js +1 -427
- package/dist/cli/extension-recovery.js +1 -126
- package/dist/cli/help-content.js +2 -1001
- package/dist/cli/help-json-payload.js +4 -570
- package/dist/cli/main.d.ts +4 -0
- package/dist/cli/main.js +5 -2573
- package/dist/cli/migration-gates.js +1 -289
- package/dist/cli/public.js +1 -20
- package/dist/cli/register-annotations.js +1 -270
- package/dist/cli/register-assurance.js +1 -62
- package/dist/cli/register-files-lookup.js +1 -56
- package/dist/cli/register-history-activity.d.ts +8 -0
- package/dist/cli/register-history-activity.js +2 -0
- package/dist/cli/register-history-author.js +1 -38
- package/dist/cli/register-history-maintenance.d.ts +9 -0
- package/dist/cli/register-history-maintenance.js +2 -0
- package/dist/cli/register-list-query.js +10 -943
- package/dist/cli/register-mutation-options.js +1 -9
- package/dist/cli/register-mutation.d.ts +0 -5
- package/dist/cli/register-mutation.js +19 -1893
- package/dist/cli/register-operations.js +1 -920
- package/dist/cli/register-setup.js +1 -716
- package/dist/cli/register-structured-mutation.js +1 -196
- package/dist/cli/registration-helpers.js +1 -5
- package/dist/cli/runtime-compatibility-boundary.js +4 -42
- package/dist/cli/schema-registration-helpers.js +1 -73
- package/dist/cli/search-refresh.js +1 -13
- package/dist/cli/stats-analytics-json.js +1 -68
- package/dist/cli/telemetry-flush.js +1 -10
- package/dist/cli-bundle/bundle-manifest.json +164 -156
- package/dist/cli-bundle/chunks/{chunk-NPN5I67J.js → chunk-3IPRM75M.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-4VL5P22L.js +2 -0
- package/dist/cli-bundle/chunks/chunk-AAFBV3U3.js +29 -0
- package/dist/cli-bundle/chunks/chunk-D3YVILJJ.js +20 -0
- package/dist/cli-bundle/chunks/{chunk-WYRZZ5ZE.js → chunk-DEZPZOQ7.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-ECBLPN7B.js +3 -0
- package/dist/cli-bundle/chunks/chunk-J6ERHBV2.js +235 -0
- package/dist/cli-bundle/chunks/chunk-JUNJ5EKI.js +2 -0
- package/dist/cli-bundle/chunks/chunk-L5RCDKQ2.js +2 -0
- package/dist/cli-bundle/chunks/chunk-NSAPNEYH.js +2 -0
- package/dist/cli-bundle/chunks/chunk-OHNLSGGV.js +79 -0
- package/dist/cli-bundle/chunks/chunk-WQKMSFBV.js +5 -0
- package/dist/cli-bundle/chunks/{chunk-BAX2BYUW.js → chunk-XZ6T7YPP.js} +256 -150
- package/dist/cli-bundle/chunks/{chunk-JT6XF6GE.js → chunk-Z3XVXUVF.js} +4 -4
- package/dist/cli-bundle/chunks/register-list-query-UIHRCS6D.js +11 -0
- package/dist/cli-bundle/chunks/register-mutation-WHWMGRVX.js +20 -0
- package/dist/cli-bundle/chunks/register-operations-64YZYTC5.js +2 -0
- package/dist/cli-bundle/chunks/register-setup-PERI45EM.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-2W4XIYOB.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-2WSBXIGF.js +12 -0
- package/dist/cli-bundle/focused-chunks/chunk-5FHTCOHS.js +3 -0
- package/dist/cli-bundle/focused-chunks/chunk-7N6DOREF.js +26 -0
- package/dist/cli-bundle/focused-chunks/{chunk-3BZEOXLT.js → chunk-7PC4R5QB.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-BUCJUZVG.js +6 -0
- package/dist/cli-bundle/focused-chunks/chunk-FE3BABLJ.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-IWITF53W.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-OQUGRHKV.js +10 -0
- package/dist/cli-bundle/focused-chunks/{chunk-M6PBRFSH.js → chunk-PNKIANFZ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-LIJIA4TY.js → chunk-QQQ4SAUO.js} +3 -3
- package/dist/cli-bundle/focused-chunks/chunk-TTYXF5YD.js +177 -0
- package/dist/cli-bundle/focused-chunks/chunk-XNR3DM6J.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-XSS3APUF.js +9 -0
- package/dist/cli-bundle/focused-chunks/chunk-YCDQ2N23.js +8 -0
- package/dist/cli-bundle/focused-chunks/chunk-YJUXGS57.js +20 -0
- package/dist/cli-bundle/focused-chunks/chunk-ZTCE4UO6.js +58 -0
- package/dist/cli-bundle/main.js +20 -20
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +2 -2
- package/dist/cli-bundle/sdk-core.js +37 -37
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +42 -42
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +11 -11
- package/dist/cli.js +1 -104
- package/dist/core/checkpoint/checkpoint-gc.js +1 -169
- package/dist/core/checkpoint/mutation-checkpoint.js +2 -133
- package/dist/core/config/nested-settings.js +1 -534
- package/dist/core/config/positional-value.js +1 -109
- package/dist/core/diagnostics/remediation.js +1 -506
- package/dist/core/extensions/activation-summary-markdown.js +2 -145
- package/dist/core/extensions/activation-summary.js +1 -92
- package/dist/core/extensions/activation-transaction.js +1 -46
- package/dist/core/extensions/capability-usage.js +1 -173
- package/dist/core/extensions/command-hook-context.js +1 -13
- package/dist/core/extensions/command-metadata-contract.js +1 -22
- package/dist/core/extensions/command-visibility-tier.js +1 -29
- package/dist/core/extensions/contribution-inventory.js +1 -173
- package/dist/core/extensions/exporter-output-contract.js +1 -66
- package/dist/core/extensions/extension-candidate.js +1 -18
- package/dist/core/extensions/extension-capability-aliases.js +1 -158
- package/dist/core/extensions/extension-hook-runtime.js +1 -699
- package/dist/core/extensions/extension-policy.js +1 -599
- package/dist/core/extensions/extension-registries.js +1 -62
- package/dist/core/extensions/extension-runtime-helpers.js +1 -33
- package/dist/core/extensions/extension-types.js +1 -102
- package/dist/core/extensions/flag-definition-validation.js +1 -52
- package/dist/core/extensions/flag-value-types.js +1 -64
- package/dist/core/extensions/index.js +1 -526
- package/dist/core/extensions/item-field-types.js +1 -39
- package/dist/core/extensions/item-fields.js +1 -261
- package/dist/core/extensions/loader.js +1 -2223
- package/dist/core/extensions/manifest-schema.js +1 -69
- package/dist/core/extensions/module-graph-snapshot.js +1 -33
- package/dist/core/extensions/preflight-ownership.js +1 -41
- package/dist/core/extensions/registration-validation.js +1 -82
- package/dist/core/extensions/registration-values.js +1 -209
- package/dist/core/extensions/reserved-host-flags.js +1 -36
- package/dist/core/extensions/runtime-registrations.js +1 -67
- package/dist/core/extensions/service-ownership.js +1 -19
- package/dist/core/extensions/version-compat.js +1 -216
- package/dist/core/fs/fs-utils.js +2 -158
- package/dist/core/fs/host-environment-errors.js +1 -141
- package/dist/core/fs/index.js +1 -9
- package/dist/core/fs/path-utils.js +1 -17
- package/dist/core/governance/content-fields.js +1 -160
- package/dist/core/governance/issue-codes.js +1 -151
- package/dist/core/governance/metadata-coverage.js +1 -358
- package/dist/core/history/drift-cache.js +3 -72
- package/dist/core/history/drift-scan.js +1 -342
- package/dist/core/history/event-classification.js +1 -109
- package/dist/core/history/event-index.js +8 -784
- package/dist/core/history/history-compact-bulk.js +1 -104
- package/dist/core/history/history-diff.js +1 -158
- package/dist/core/history/history-rewrite.d.ts +6 -1
- package/dist/core/history/history-rewrite.js +1 -107
- package/dist/core/history/history-storage-stats.js +1 -102
- package/dist/core/history/history-stream-policy.js +1 -62
- package/dist/core/history/history.js +2 -617
- package/dist/core/history/identity.js +1 -30
- package/dist/core/history/index.js +1 -9
- package/dist/core/history/projection.js +1 -196
- package/dist/core/history/read.d.ts +9 -0
- package/dist/core/history/read.js +1 -57
- package/dist/core/history/replay.js +2 -439
- package/dist/core/history/version-address.js +1 -32
- package/dist/core/history/workspace-history.js +2 -433
- package/dist/core/io/body-file.js +1 -62
- package/dist/core/io/bulk-ids-input.js +1 -112
- package/dist/core/item/actionability.js +1 -327
- package/dist/core/item/dependency-reference.js +1 -20
- package/dist/core/item/id.js +1 -112
- package/dist/core/item/index.js +1 -12
- package/dist/core/item/item-format-version.js +1 -78
- package/dist/core/item/item-format.js +5 -1473
- package/dist/core/item/item-record.js +1 -23
- package/dist/core/item/item-type-definition.js +1 -133
- package/dist/core/item/parent-reference-policy.js +1 -57
- package/dist/core/item/parse.js +2 -603
- package/dist/core/item/plan-lifecycle.js +1 -19
- package/dist/core/item/priority.js +1 -61
- package/dist/core/item/sprint-release-format.js +1 -38
- package/dist/core/item/status-filter.js +1 -115
- package/dist/core/item/status.js +1 -43
- package/dist/core/item/toon-decode.js +1 -29
- package/dist/core/item/type-registry.js +1 -715
- package/dist/core/item/type-synonyms.js +1 -38
- package/dist/core/lock/index.js +1 -9
- package/dist/core/lock/lock-gc.js +1 -240
- package/dist/core/lock/lock.js +3 -590
- package/dist/core/output/mutation-projection.js +1 -217
- package/dist/core/output/output-control.js +1 -25
- package/dist/core/output/output.js +11 -494
- package/dist/core/output/query-summary.js +1 -58
- package/dist/core/output/tabular.js +1 -77
- package/dist/core/packages/manifest.js +1 -244
- package/dist/core/packages/root.js +1 -84
- package/dist/core/policy/workflow-policy-schema.d.ts +312 -0
- package/dist/core/policy/workflow-policy-schema.js +2 -0
- package/dist/core/policy/workflow-policy-store.d.ts +24 -0
- package/dist/core/policy/workflow-policy-store.js +2 -0
- package/dist/core/policy/workflow-policy.d.ts +139 -0
- package/dist/core/policy/workflow-policy.js +2 -0
- package/dist/core/profile/profile-describe.js +1 -83
- package/dist/core/profile/profile-lint.js +1 -415
- package/dist/core/profile/profile-plan.js +0 -0
- package/dist/core/profile/profile-presets.js +1 -370
- package/dist/core/reproducibility/context.js +1 -82
- package/dist/core/schema/fields-file.js +2 -288
- package/dist/core/schema/item-types-file.js +2 -296
- package/dist/core/schema/runtime-field-filters.js +1 -49
- package/dist/core/schema/runtime-field-values.js +1 -313
- package/dist/core/schema/runtime-schema.js +2 -826
- package/dist/core/schema/status-defs-file.js +2 -227
- package/dist/core/schema/status-token.js +1 -31
- package/dist/core/schema/type-inference.js +1 -95
- package/dist/core/schema/type-presets.js +1 -87
- package/dist/core/schema/type-workflows.js +1 -104
- package/dist/core/search/background-refresh.js +2 -286
- package/dist/core/search/bm25.js +1 -146
- package/dist/core/search/cache.js +2 -534
- package/dist/core/search/corpus.js +1 -311
- package/dist/core/search/embedding-batches.js +1 -163
- package/dist/core/search/eval.js +1 -225
- package/dist/core/search/http-client.js +1 -75
- package/dist/core/search/providers.js +1 -242
- package/dist/core/search/relevance.js +1 -244
- package/dist/core/search/semantic-defaults.js +1 -199
- package/dist/core/search/staleness.js +1 -30
- package/dist/core/search/vector-stores.js +2 -664
- package/dist/core/search/vectorization-metadata.js +1 -81
- package/dist/core/sentry/helpers.js +1 -272
- package/dist/core/sentry/instrument.js +1 -387
- package/dist/core/session/session-state.js +1 -260
- package/dist/core/shared/agent-session-context.js +1 -133
- package/dist/core/shared/author.js +1 -1172
- package/dist/core/shared/command-types.js +1 -4
- package/dist/core/shared/conflict-markers.js +1 -31
- package/dist/core/shared/constants.js +1 -405
- package/dist/core/shared/errors.js +1 -20
- package/dist/core/shared/html-entity-decode.js +1 -131
- package/dist/core/shared/index.js +1 -12
- package/dist/core/shared/item-metadata-contract.js +1 -89
- package/dist/core/shared/lazy-module.js +1 -16
- package/dist/core/shared/levenshtein.js +1 -61
- package/dist/core/shared/memo.js +1 -19
- package/dist/core/shared/numeric-parsers.js +1 -20
- package/dist/core/shared/option-alias-visibility.js +1 -67
- package/dist/core/shared/primitives.js +1 -127
- package/dist/core/shared/serial-queue.js +1 -79
- package/dist/core/shared/serialization.js +1 -210
- package/dist/core/shared/split-comma-list.js +1 -30
- package/dist/core/shared/text-normalization.js +1 -38
- package/dist/core/shared/time.js +1 -306
- package/dist/core/store/index.js +1 -12
- package/dist/core/store/item-format-migration.js +1 -125
- package/dist/core/store/item-metadata-cache.js +1 -1116
- package/dist/core/store/item-metadata-query-index.js +9 -394
- package/dist/core/store/item-metadata-read-work.js +1 -43
- package/dist/core/store/item-store.js +1 -693
- package/dist/core/store/paths.d.ts +1 -1
- package/dist/core/store/paths.js +1 -214
- package/dist/core/store/settings-read-cache.js +1 -85
- package/dist/core/store/settings-validator.d.ts +1 -0
- package/dist/core/store/settings-validator.js +1 -421
- package/dist/core/store/settings.js +3 -1309
- package/dist/core/store/tracker-preflight.js +1 -141
- package/dist/core/telemetry/consent.js +5 -108
- package/dist/core/telemetry/observability.js +1 -246
- package/dist/core/telemetry/runtime.js +4 -1988
- package/dist/core/test/background-runs.js +4 -945
- package/dist/core/test/item-test-run-tracking.js +1 -63
- package/dist/core/test/run-selectors.js +1 -120
- package/dist/core/validate/estimate-defaults.js +1 -89
- package/dist/core/validate/fix-planning.js +1 -189
- package/dist/core/validate/linked-artifact-reference.js +1 -36
- package/dist/core/validate/missing-by-type.js +1 -34
- package/dist/core/validate/missing-link-owners.js +1 -95
- package/dist/core/validate/stale-file-classification.js +1 -82
- package/dist/mcp/http-server.js +5 -448
- package/dist/mcp/legacy-adapter.js +1 -77
- package/dist/mcp/runtime-capabilities.js +1 -200
- package/dist/mcp/server.js +4 -1233
- package/dist/mcp/tool-definitions.js +1 -804
- package/dist/sdk/actionability.js +1 -13
- package/dist/sdk/agent/closed-domain-contracts.js +1 -161
- package/dist/sdk/agent/command-recovery.js +1 -59
- package/dist/sdk/agent/command-suggestions.js +1 -66
- package/dist/sdk/agent/create-option-policy.js +1 -31
- package/dist/sdk/agent/identity-config.js +1 -106
- package/dist/sdk/agent/item-addressing.js +1 -207
- package/dist/sdk/agent/refusal-closure-census.js +1 -151
- package/dist/sdk/agent/refusal-closure.js +1 -133
- package/dist/sdk/agent/refusal-corpus-contracts.js +1 -193
- package/dist/sdk/agent/refusal-reachability.js +1 -593
- package/dist/sdk/agent/subcommand-recovery.js +1 -83
- package/dist/sdk/agent/task-transcript-contracts.js +1 -197
- package/dist/sdk/agent/tracker-preflight-contracts.js +1 -126
- package/dist/sdk/agent-capability-contracts.js +1 -428
- package/dist/sdk/agent-session-context.js +1 -9
- package/dist/sdk/annotations.js +1 -448
- package/dist/sdk/author-attribution.js +1 -468
- package/dist/sdk/authoring.js +1 -20
- package/dist/sdk/cli-bootstrap.js +1 -838
- package/dist/sdk/cli-contracts/agent-output-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts/agent-output-contracts.js +4 -476
- package/dist/sdk/cli-contracts/bootstrap-command-scanner.js +1 -79
- package/dist/sdk/cli-contracts/command-aliases.d.ts +4 -0
- package/dist/sdk/cli-contracts/command-aliases.js +1 -107
- package/dist/sdk/cli-contracts/command-exit-contracts.js +1 -151
- package/dist/sdk/cli-contracts/commander-mutation-options.js +1 -1081
- package/dist/sdk/cli-contracts/commander-types.js +1 -159
- package/dist/sdk/cli-contracts/completeness.js +1 -393
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.js +1 -222
- package/dist/sdk/cli-contracts/flag-contracts.js +1 -1947
- package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +1 -347
- package/dist/sdk/cli-contracts/grammar-contracts.js +1 -986
- package/dist/sdk/cli-contracts/registration-helpers.js +7 -990
- package/dist/sdk/cli-contracts/runtime-contracts.d.ts +5 -0
- package/dist/sdk/cli-contracts/runtime-contracts.js +1 -2090
- package/dist/sdk/cli-contracts/schemas/assurance-definition.js +1 -324
- package/dist/sdk/cli-contracts/string-lists.js +1 -16
- package/dist/sdk/cli-contracts/tool-option-contracts.js +1 -461
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +1 -2167
- package/dist/sdk/cli-contracts/tool-schema.d.ts +3 -1
- package/dist/sdk/cli-contracts/tool-schema.js +1 -1664
- package/dist/sdk/cli-contracts/typed-action-inputs.js +1 -4
- package/dist/sdk/cli-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts.js +1 -17
- package/dist/sdk/cli-program.js +1 -49
- package/dist/sdk/command-line.d.ts +2 -5
- package/dist/sdk/command-line.js +1 -78
- package/dist/sdk/comments.js +1 -133
- package/dist/sdk/compile-cache.js +1 -73
- package/dist/sdk/completion.js +174 -839
- package/dist/sdk/compose.js +1 -1090
- package/dist/sdk/config.js +1 -1204
- package/dist/sdk/context/recency.js +1 -33
- package/dist/sdk/context/semantic-session-attribution.js +1 -82
- package/dist/sdk/context/usage-egress.js +1 -29
- package/dist/sdk/context/usage-ledger.js +3 -185
- package/dist/sdk/context-intent-contracts.js +1 -709
- package/dist/sdk/context-intent-runtime.js +1 -115
- package/dist/sdk/context-packing.js +1 -218
- package/dist/sdk/context-relevance.js +1 -503
- package/dist/sdk/context-signal-store.js +2 -426
- package/dist/sdk/context-usage.js +1 -367
- package/dist/sdk/contracts.js +1 -23
- package/dist/sdk/core-governance.js +1 -14
- package/dist/sdk/core.js +1 -14
- package/dist/sdk/corpus-shape.js +1 -401
- package/dist/sdk/define.js +1 -220
- package/dist/sdk/dependencies.js +1 -718
- package/dist/sdk/dependency-flag-validation.js +1 -156
- package/dist/sdk/dependency-provenance.js +1 -135
- package/dist/sdk/docs.js +1 -14
- package/dist/sdk/duplicates.js +1 -40
- package/dist/sdk/environment/agent-environment.js +1 -466
- package/dist/sdk/environment/host-environment-errors.js +1 -8
- package/dist/sdk/environment/project-runtime-compatibility.js +1 -481
- package/dist/sdk/environment/source-context.js +1 -28
- package/dist/sdk/environment/tracker-preflight.js +1 -9
- package/dist/sdk/error-code-catalog.js +1 -153
- package/dist/sdk/error-runtime.js +1 -58
- package/dist/sdk/errors.js +1 -58
- package/dist/sdk/eval.js +1 -190
- package/dist/sdk/extension/author-manifest.js +1 -92
- package/dist/sdk/extension/bundled-catalog.js +1 -332
- package/dist/sdk/extension/concurrency.js +1 -25
- package/dist/sdk/extension/copy-scope.d.ts +2 -0
- package/dist/sdk/extension/copy-scope.js +2 -0
- package/dist/sdk/extension/custom-field-collisions.js +1 -30
- package/dist/sdk/extension/describe.js +3 -189
- package/dist/sdk/extension/doctor.js +1 -606
- package/dist/sdk/extension/install-plan.d.ts +69 -0
- package/dist/sdk/extension/install-plan.js +2 -0
- package/dist/sdk/extension/install-receipts.d.ts +7 -0
- package/dist/sdk/extension/install-receipts.js +2 -0
- package/dist/sdk/extension/install-runtime.js +3 -313
- package/dist/sdk/extension/install-snapshot.js +1 -66
- package/dist/sdk/extension/install-sources.js +5 -1057
- package/dist/sdk/extension/managed-state.js +2 -252
- package/dist/sdk/extension/migrations.js +2 -174
- package/dist/sdk/extension/output-ownership.js +1 -25
- package/dist/sdk/extension/runtime-summary.js +1 -18
- package/dist/sdk/extension/scaffold.js +4 -2308
- package/dist/sdk/extension/shared.js +1 -147
- package/dist/sdk/extension/source-resolution.js +1 -65
- package/dist/sdk/extension/update-check.js +1 -67
- package/dist/sdk/extension-command-context.js +1 -44
- package/dist/sdk/extension-contracts.js +1 -73
- package/dist/sdk/extension.d.ts +7 -2
- package/dist/sdk/extension.js +1 -2196
- package/dist/sdk/files.js +1 -535
- package/dist/sdk/flag-invocation-contracts.d.ts +0 -5
- package/dist/sdk/flag-invocation-contracts.js +1 -344
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -2224
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -2236
- package/dist/sdk/generated-error-code-catalog.js +1 -16
- package/dist/sdk/governance/assurance-action-contracts.js +1 -4
- package/dist/sdk/governance/assurance-action.js +1 -411
- package/dist/sdk/governance/assurance-limits.js +1 -10
- package/dist/sdk/governance/assurance-mutation-error.js +1 -81
- package/dist/sdk/governance/assurance-presets.js +1 -135
- package/dist/sdk/governance/assurance-runtime.js +1 -238
- package/dist/sdk/governance/assurance.js +4 -1182
- package/dist/sdk/governance/boundary-fixtures.js +1 -200
- package/dist/sdk/governance/coverage-assurance.js +1 -60
- package/dist/sdk/governance/defect-recurrence-coverage.js +1 -188
- package/dist/sdk/governance/defect-recurrence-graph.js +1 -120
- package/dist/sdk/governance/defect-recurrence-signals.js +1 -24
- package/dist/sdk/governance/defect-recurrence.js +1 -623
- package/dist/sdk/governance/extension-host-version.js +1 -115
- package/dist/sdk/governance/gc.js +1 -368
- package/dist/sdk/governance/health.js +1 -2367
- package/dist/sdk/governance/hierarchy-validation.js +1 -108
- package/dist/sdk/governance/linked-file-report.js +1 -71
- package/dist/sdk/governance/merge-receipt-history.js +1 -206
- package/dist/sdk/governance/provenance-health.js +1 -282
- package/dist/sdk/governance/reindex.js +4 -761
- package/dist/sdk/governance/stale-work.js +1 -82
- package/dist/sdk/governance/status-role-diagnostics.js +1 -35
- package/dist/sdk/governance/storage-integrity.js +1 -280
- package/dist/sdk/governance/tracked-runtime-cache.js +1 -106
- package/dist/sdk/governance/upgrade.js +2 -327
- package/dist/sdk/governance/validate-history-drift.js +1 -81
- package/dist/sdk/governance/validate-item-reader.js +1 -17
- package/dist/sdk/governance/validate-normalization.js +1 -36
- package/dist/sdk/governance/validate.d.ts +3 -1
- package/dist/sdk/governance/validate.js +1 -2261
- package/dist/sdk/governance/workflow-completeness.d.ts +32 -0
- package/dist/sdk/governance/workflow-completeness.js +2 -0
- package/dist/sdk/governance/workflow-policy.d.ts +47 -0
- package/dist/sdk/governance/workflow-policy.js +4 -0
- package/dist/sdk/governance/workspace-position.js +1 -163
- package/dist/sdk/governance.d.ts +2 -0
- package/dist/sdk/governance.js +1 -31
- package/dist/sdk/graph/adapter.js +1 -181
- package/dist/sdk/graph/analytics.js +1 -474
- package/dist/sdk/graph/assembly.js +1 -377
- package/dist/sdk/graph/cache.js +1 -160
- package/dist/sdk/graph/centrality.js +1 -258
- package/dist/sdk/graph/conformance.js +1 -130
- package/dist/sdk/graph/deadline-scheduling.d.ts +90 -0
- package/dist/sdk/graph/deadline-scheduling.js +2 -0
- package/dist/sdk/graph/durable-cache.d.ts +1 -1
- package/dist/sdk/graph/durable-cache.js +1 -361
- package/dist/sdk/graph/governance-contracts.js +1 -34
- package/dist/sdk/graph/governance.d.ts +13 -1
- package/dist/sdk/graph/governance.js +1 -735
- package/dist/sdk/graph/hierarchy-integrity.js +1 -310
- package/dist/sdk/graph/index.d.ts +3 -2
- package/dist/sdk/graph/index.js +1 -26
- package/dist/sdk/graph/lifecycle-coverage.d.ts +32 -0
- package/dist/sdk/graph/lifecycle-coverage.js +2 -0
- package/dist/sdk/graph/mutation-advisory.js +1 -176
- package/dist/sdk/graph/remediation.js +1 -197
- package/dist/sdk/graph/run.d.ts +15 -1
- package/dist/sdk/graph/run.js +1 -768
- package/dist/sdk/graph/scheduling.js +1 -124
- package/dist/sdk/graph/traversal.js +1 -284
- package/dist/sdk/graph/workspace-relationship-kind-registry.js +1 -27
- package/dist/sdk/graph.js +1 -15
- package/dist/sdk/guide-topics.js +1 -707
- package/dist/sdk/guide.js +1 -279
- package/dist/sdk/history/maintenance.d.ts +71 -0
- package/dist/sdk/history/maintenance.js +2 -0
- package/dist/sdk/history/salvage.js +2 -247
- package/dist/sdk/history/subject.d.ts +19 -0
- package/dist/sdk/history/subject.js +2 -0
- package/dist/sdk/history-analytics.js +1 -282
- package/dist/sdk/history-compact.js +1 -527
- package/dist/sdk/history-mcp.js +1 -68
- package/dist/sdk/history-provenance.js +1 -182
- package/dist/sdk/history-read.js +1 -96
- package/dist/sdk/history-redact.d.ts +1 -14
- package/dist/sdk/history-redact.js +1 -643
- package/dist/sdk/history-repair.d.ts +5 -0
- package/dist/sdk/history-repair.js +1 -657
- package/dist/sdk/improvement-ledger-validation.js +1 -62
- package/dist/sdk/improvement-ledger.js +2 -257
- package/dist/sdk/index.d.ts +4 -1
- package/dist/sdk/index.js +1 -183
- package/dist/sdk/init-agent-guidance.js +2 -496
- package/dist/sdk/init.js +2 -820
- package/dist/sdk/invocation-author.js +1 -39
- package/dist/sdk/item-children.js +1 -90
- package/dist/sdk/item-metadata-index.js +1 -15
- package/dist/sdk/item-schedule.js +1 -27
- package/dist/sdk/item-transaction.js +1 -396
- package/dist/sdk/learnings.js +1 -29
- package/dist/sdk/lifecycle/append.js +2 -53
- package/dist/sdk/lifecycle/claim.d.ts +2 -0
- package/dist/sdk/lifecycle/claim.js +1 -242
- package/dist/sdk/lifecycle/close-many.js +1 -438
- package/dist/sdk/lifecycle/close.js +1 -468
- package/dist/sdk/lifecycle/copy.js +1 -212
- package/dist/sdk/lifecycle/create.js +1 -1949
- package/dist/sdk/lifecycle/delete.js +1 -45
- package/dist/sdk/lifecycle/event-validation-messages.js +1 -91
- package/dist/sdk/lifecycle/focus.js +1 -91
- package/dist/sdk/lifecycle/hierarchy-mutation-lock.js +1 -24
- package/dist/sdk/lifecycle/legacy-none-tokens.js +1 -149
- package/dist/sdk/lifecycle/lifecycle-transitions.js +1 -40
- package/dist/sdk/lifecycle/mcp-actions.d.ts +2 -0
- package/dist/sdk/lifecycle/mcp-actions.js +1 -51
- package/dist/sdk/lifecycle/metadata-normalizers.js +1 -46
- package/dist/sdk/lifecycle/mutation-command-options.js +1 -9
- package/dist/sdk/lifecycle/plan.js +1 -1606
- package/dist/sdk/lifecycle/recurrence-parsers.d.ts +1 -1
- package/dist/sdk/lifecycle/recurrence-parsers.js +1 -147
- package/dist/sdk/lifecycle/reopen.js +1 -68
- package/dist/sdk/lifecycle/repeatable-metadata-parsers.js +1 -143
- package/dist/sdk/lifecycle/restore.d.ts +1 -0
- package/dist/sdk/lifecycle/restore.js +1 -330
- package/dist/sdk/lifecycle/shared-unset-fields.js +1 -295
- package/dist/sdk/lifecycle/update-many.js +1 -861
- package/dist/sdk/lifecycle/update.js +1 -2136
- package/dist/sdk/lifecycle-completion.js +1 -92
- package/dist/sdk/lifecycle-policy.js +1 -120
- package/dist/sdk/linked-artifacts.js +1 -530
- package/dist/sdk/mcp/apps.js +4 -133
- package/dist/sdk/mcp/authorization.js +1 -404
- package/dist/sdk/mcp/discovery.js +1 -494
- package/dist/sdk/mcp/interactions.js +1 -336
- package/dist/sdk/mcp/protocol.d.ts +7 -0
- package/dist/sdk/mcp/protocol.js +1 -184
- package/dist/sdk/mcp/skills.js +1 -389
- package/dist/sdk/mcp/subscriptions.js +1 -211
- package/dist/sdk/mcp/tasks.js +2 -430
- package/dist/sdk/mcp/transport.js +1 -260
- package/dist/sdk/merge/abandoned-receipts.js +1 -46
- package/dist/sdk/merge/driver.js +1 -212
- package/dist/sdk/merge/index.js +1 -16
- package/dist/sdk/merge/install.js +3 -561
- package/dist/sdk/merge/receipt-file-boundary.js +1 -46
- package/dist/sdk/merge/receipt-operation.js +1 -96
- package/dist/sdk/merge/receipt-schema.js +1 -397
- package/dist/sdk/merge/receipts.js +4 -525
- package/dist/sdk/merge/reconcile.js +1 -352
- package/dist/sdk/merge/three-way.js +3 -775
- package/dist/sdk/merge.js +1 -10
- package/dist/sdk/mutation-events.js +1 -292
- package/dist/sdk/mutation-guard.js +1 -216
- package/dist/sdk/notes.js +1 -139
- package/dist/sdk/output-contracts.js +1 -172
- package/dist/sdk/output-projection.js +1 -430
- package/dist/sdk/output-token-accounting.js +1 -140
- package/dist/sdk/output.js +1 -64
- package/dist/sdk/ownership-source.js +1 -21
- package/dist/sdk/package-import-adapters.js +1 -442
- package/dist/sdk/package-migrations.js +1 -20
- package/dist/sdk/package-runtime-options.js +1 -80
- package/dist/sdk/pagination.js +1 -162
- package/dist/sdk/profile.js +1 -454
- package/dist/sdk/provenance.js +1 -258
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/query/activity.js +1 -401
- package/dist/sdk/query/aggregate.d.ts +16 -0
- package/dist/sdk/query/aggregate.js +1 -390
- package/dist/sdk/query/calendar.js +1 -964
- package/dist/sdk/query/complete-list.js +1 -215
- package/dist/sdk/query/context.js +1 -1702
- package/dist/sdk/query/duplicate-candidates.js +1 -70
- package/dist/sdk/query/get.js +1 -450
- package/dist/sdk/query/history.js +1 -186
- package/dist/sdk/query/item-filter-options.js +1 -9
- package/dist/sdk/query/light-metadata.js +1 -18
- package/dist/sdk/query/list-filter-shared.js +1 -81
- package/dist/sdk/query/list.js +1 -1304
- package/dist/sdk/query/multi-value-filters.js +1 -78
- package/dist/sdk/query/next.js +1 -513
- package/dist/sdk/query/parsers.js +1 -44
- package/dist/sdk/query/projection-contracts.js +1 -184
- package/dist/sdk/query/search-contracts.d.ts +27 -0
- package/dist/sdk/query/search-contracts.js +1 -230
- package/dist/sdk/query/search-pagination.js +1 -35
- package/dist/sdk/query/search-rendering.js +1 -105
- package/dist/sdk/query/search.d.ts +6 -4
- package/dist/sdk/query/search.js +2 -1987
- package/dist/sdk/query.js +1 -35
- package/dist/sdk/read-output/continuation.js +1 -194
- package/dist/sdk/read-output-budget.js +1 -135
- package/dist/sdk/read-output-contracts.d.ts +1 -1
- package/dist/sdk/read-output-contracts.js +1 -1225
- package/dist/sdk/read-output-rows.js +1 -186
- package/dist/sdk/read-output-session.js +1 -208
- package/dist/sdk/relationship-analytics.js +1 -410
- package/dist/sdk/relationship-context.js +1 -284
- package/dist/sdk/relationship-history.js +4 -519
- package/dist/sdk/relationship-kinds/contract.js +1 -22
- package/dist/sdk/relationship-migration.js +1 -77
- package/dist/sdk/relationships.js +1 -579
- package/dist/sdk/reproducibility/process.js +1 -87
- package/dist/sdk/runtime-action-aliases.js +1 -59
- package/dist/sdk/runtime-extended-actions.js +1 -177
- package/dist/sdk/runtime-input.js +1 -614
- package/dist/sdk/runtime-primitives.js +1 -84
- package/dist/sdk/runtime-public-contracts.d.ts +2 -1
- package/dist/sdk/runtime-public-contracts.js +1 -4
- package/dist/sdk/runtime-stats-options.js +1 -38
- package/dist/sdk/runtime.d.ts +4 -0
- package/dist/sdk/runtime.js +1 -1928
- package/dist/sdk/scheduling-shortcuts.js +1 -63
- package/dist/sdk/schema-migration.js +3 -856
- package/dist/sdk/schema.d.ts +2 -1
- package/dist/sdk/schema.js +1 -1376
- package/dist/sdk/search-refresh-worker.js +1 -18
- package/dist/sdk/similarity-scoring.js +1 -53
- package/dist/sdk/similarity.js +1 -326
- package/dist/sdk/start-task-status.js +1 -14
- package/dist/sdk/stats.js +1 -270
- package/dist/sdk/structured-mutations.js +1 -580
- package/dist/sdk/telemetry-flush.js +1 -13
- package/dist/sdk/telemetry.js +1 -405
- package/dist/sdk/templates.js +2 -292
- package/dist/sdk/test/batch.js +2 -509
- package/dist/sdk/test/entry.js +1 -70
- package/dist/sdk/test/execution.js +6 -2211
- package/dist/sdk/test/linked-command-detection.js +1 -546
- package/dist/sdk/test/measurements.js +1 -91
- package/dist/sdk/test/parsers.js +1 -545
- package/dist/sdk/test/runs.js +1 -193
- package/dist/sdk/test/trust.js +2 -206
- package/dist/sdk/testing.js +4 -1391
- package/dist/sdk/traceability/runtime-files-lookup.js +1 -32
- package/dist/sdk/traceability/source-traceability.js +1 -292
- package/dist/sdk/tracker-root-discovery.js +1 -9
- package/dist/sdk/workspace-contracts-cache.js +1 -28
- package/dist/sdk/workspace-contracts.js +1 -33
- package/dist/sdk/workspace-memory.js +2 -318
- package/dist/sdk/workspace-recipe.js +1 -71
- package/dist/sdk/workspace-snapshot.js +4 -613
- package/dist/sdk/workspace-transaction-gc.js +1 -149
- package/dist/sdk/workspace-transaction.js +2 -363
- package/dist/sdk/workspace.js +3 -127
- package/dist/types/index.js +1 -9
- package/dist/types.d.ts +4 -0
- package/dist/types.js +1 -245
- package/docs/AGENT_GUIDE.md +1 -1
- package/docs/COMMANDS.md +10 -0
- package/docs/CONFIGURATION.md +12 -1
- package/docs/CONTEXT_ALGORITHM_PORTFOLIO.md +167 -0
- package/docs/DIAGNOSTIC_OUTPUT_CONTRACTS.md +9 -3
- package/docs/EXTENSIONS.md +1 -0
- package/docs/HISTORY_MAINTENANCE.md +125 -0
- package/docs/MCP_2026_07_28_CONFORMANCE.md +20 -10
- package/docs/PACKAGE_EVIDENCE.md +92 -0
- package/docs/PLANNING_MEASUREMENTS.md +183 -0
- package/docs/README.md +4 -0
- package/docs/READ_OUTPUT_CONTRACTS.md +5 -0
- package/docs/SCRIPTING.md +21 -0
- package/docs/TESTING.md +33 -0
- package/docs/WORKFLOW_POLICIES.md +129 -0
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +7 -7
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +11 -5
- package/marketplace.json +2 -2
- package/package.json +5 -5
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/scripts/finalize-build.mjs +45 -3
- package/dist/cli-bundle/chunks/chunk-AZDFJGH6.js +0 -9
- package/dist/cli-bundle/chunks/chunk-CKOL5U7J.js +0 -77
- package/dist/cli-bundle/chunks/chunk-JX4DH4WC.js +0 -3
- package/dist/cli-bundle/chunks/chunk-OF76PSDQ.js +0 -5
- package/dist/cli-bundle/chunks/chunk-QUWFABDM.js +0 -232
- package/dist/cli-bundle/chunks/chunk-QWRRFYK3.js +0 -2
- package/dist/cli-bundle/chunks/chunk-RWWBOWJ5.js +0 -2
- package/dist/cli-bundle/chunks/chunk-WGAOYSYH.js +0 -40
- package/dist/cli-bundle/chunks/chunk-WI2AYPA7.js +0 -2
- package/dist/cli-bundle/chunks/register-list-query-5JL52D33.js +0 -11
- package/dist/cli-bundle/chunks/register-mutation-ZPG7KMVP.js +0 -20
- package/dist/cli-bundle/chunks/register-operations-I5W3KMGB.js +0 -2
- package/dist/cli-bundle/chunks/register-setup-H4SVAVX7.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-AL5ON6K6.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-CHC2IDXA.js +0 -6
- package/dist/cli-bundle/focused-chunks/chunk-CK6QFAPZ.js +0 -20
- package/dist/cli-bundle/focused-chunks/chunk-EZR3GHFE.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-H2WJWK7L.js +0 -56
- package/dist/cli-bundle/focused-chunks/chunk-NTPY5GSO.js +0 -3
- package/dist/cli-bundle/focused-chunks/chunk-P5O7MP5Y.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-PDMW2E36.js +0 -177
- package/dist/cli-bundle/focused-chunks/chunk-PEFABF7E.js +0 -26
- package/dist/cli-bundle/focused-chunks/chunk-QTVCLMSZ.js +0 -6
- package/dist/cli-bundle/focused-chunks/chunk-QTZRBUYA.js +0 -8
- package/dist/cli-bundle/focused-chunks/chunk-SGQST3PQ.js +0 -12
- package/dist/cli-bundle/focused-chunks/chunk-UKHASMMP.js +0 -10
- package/dist/cli-bundle/focused-chunks/chunk-ZPEKQHOC.js +0 -2
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import{b as en,f as Et,h as kt,i as It,k as Ti,l as Ci,m as rn,n as Oi,o as xi,p as Ai}from"./chunk-5FHTCOHS.js";import{A as Er,D as St,E as Fi,F as $i,G as we,H as _e,I as zi,J as Xe,K as pe,N as Hi,O as Ui,P as Q,g as Mi,i as vr,u as fe,v as br,w as sn,x as me,y as wr,z as be}from"./chunk-OQUGRHKV.js";import{$ as v,$a as le,A as mi,Aa as tn,Ac as ie,Ca as bi,F as Qt,Fa as nn,G as Zt,Ga as wi,H as pr,J as _i,Ja as wt,Ka as yr,La as gr,Ma as Ne,Mc as on,Oa as Ei,Ob as Si,P as ge,Tb as Ri,Ua as ki,V as Re,Vc as Li,W as pi,Wc as Pi,Xb as Di,Yb as Ni,Z as k,_ as Ke,_c as ji,aa as b,eb as Ii,i as Xt,ia as hi,ja as De,ka as hr,la as te,ma as ve,na as X,oa as yi,pb as L,q as Gt,qb as qe,r as di,rb as ne,s as li,sb as T,t as ui,ta as gi,u as fi,ua as vi,y as Yt,z as Jt,zc as ue}from"./chunk-XSS3APUF.js";import{AsyncLocalStorage as Uc}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 kr=new Uc,Bi=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function an(e,t){let n=typeof e=="string"?e.trim():"";return n.length>0?n.slice(0,t):void 0}function Le(e,t){if(e===void 0)return;let n=typeof e=="object"&&e!==null?e:{},r=an(n.id,128),o=an(n.parent_id,128);if(r===void 0||!Bi.test(r)||o!==void 0&&!Bi.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=an(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function Ge(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=an(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function Bc(e,t,n){let r=kr.getStore(),o=Ge({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=Le(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={...Ge(r?.provenance),...o,...Ge(e?.provenance)},a=Le(e?.episode,!1)??Le(n,!1)??i??Le(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 Ir(e,t){return Bc(e.session_context,t,e.client_info?.episode)??{}}function Qp(e,t){let n=kr.getStore(),r=Le(e.episode,!0),o=Le(n?.episode,!1),i=r!==void 0&&r.parent_id===void 0&&o!==void 0?{...r,parent_id:o.id}:r,s={...Ge(n?.provenance),...Ge(e.provenance)};return kr.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function Zp(e){let t=Ge(e.provenance),n=Le(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 Mr}from"node:async_hooks";import{createHash as Xc}from"node:crypto";import V from"node:fs";import Ji from"node:os";import Me from"node:path";import{createHash as Wi}from"node:crypto";import{existsSync as Sr,promises as Vi,readFileSync as Wc}from"node:fs";import se 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 Vc="session.json";function Tr(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function Ki(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=Tr(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=>Tr(c,128)),a=t.focused_item_id===void 0||Tr(t.focused_item_id,128);if([n,r,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function Kc(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([n,r])=>{let o=Ki(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Cr(e){return se.join(Ei(e),Vc)}async function cn(e){try{let t=await Vi.readFile(Cr(e),"utf8"),n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return{};let r=n,o=r.focused_item,i=Kc(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 Or(e,t){let n=Cr(e);await Vi.mkdir(se.dirname(n),{recursive:!0}),await X(n,JSON.stringify(t))}function xr(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${Wi("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 Rr(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)}+${Wi("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function Dr(e,t,n){let r=await cn(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 Or(e,s)}async function sh(e){let t=xr(e.principal);await Dr(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??Rr(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 ah(e){let t=xr(e.principal);await Dr(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??Rr(r),confidence:o?"high":"medium",evidence:Ar([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:r}})}async function ch(e){let t=xr(e.principal);await Dr(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??Rr(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 qc(e,t){let n=t.PM_PATH?.trim();if(n){let o=se.resolve(e,n);if(Sr(se.join(o,"settings.json")))return o;let i=se.join(o,".agents","pm");if(Sr(se.join(i,"settings.json")))return i}let r=se.resolve(e);for(let o=0;o<32;o+=1){let i=se.join(r,".agents","pm");if(Sr(se.join(i,"settings.json")))return i;let s=se.dirname(r);if(s===r)break;r=s}}function qi(e){if(!e.key)return;let t=qc(e.cwd,e.env);if(t)try{let n=JSON.parse(Wc(Cr(t),"utf8"));return Ki(n.semantic_attribution?.[e.key])}catch{return}}async function dh(e){return(await cn(e)).focused_item}async function lh(e,t){let n=await cn(e);await Or(e,{...n,focused_item:t})}async function uh(e){let n={...await cn(e)};delete n.focused_item,await Or(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 Fr=["model","effort","role","topic","version"],un=new Mr,Qi=new Mr,fn=new Mr,$r=[{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:[]}],Zi=Object.freeze({max_bytes:1048576,max_lines:4096,network_access:!1,subprocess_access:!1}),Gc=Object.freeze({...Zi,max_bytes:4194304}),Nr=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function Yc(e){let t=ke(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"?Gc:Zi,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 es=Object.freeze($r.filter(e=>e.harness!=="ci").map(Yc).sort((e,t)=>e.harness.localeCompare(t.harness))),je=new Map,Ye=new Map;function P(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function Ee(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function ke(e){let t=e.harness.trim().toLowerCase();if(!Nr.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:Ee(e.environment_keys),model_environment_keys:Ee(e.model_environment_keys),session_environment_keys:Ee(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),Ee(r)]).filter(([n])=>Nr.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"&&Nr.test(n[0])&&(n[1]==="ai_agent_version"||n[1]==="claude_session_file"||n[1]==="codex_session_file"))),provenance_unavailable_dimensions:Ee(e.provenance_unavailable_dimensions).map(n=>n.toLowerCase()),argv_markers:Ee(e.argv_markers).map(n=>n.toLowerCase()),client_names:Ee(e.client_names).map(n=>n.toLowerCase())}}var ts=$r.map(ke);function Jc(e,t){return JSON.stringify(e)===JSON.stringify(t)}function ln(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function zr(e=[]){let t=new Map($r.filter(o=>o.harness!=="ci").map(o=>[o.harness,ke(o)]));for(let{adapter:o}of je.values())t.set(o.harness,ke(o.descriptor));let n=[...t.values(),...ts.filter(o=>o.harness==="ci"),...[...Ye.values()].map(o=>o.descriptor),...fn.getStore()?.descriptors??[],...e.map(ke)],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 Hr(e,t){for(let n of t??[]){let r=P(e[n]);if(r)return r.slice(0,256)}}function Qc(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 ns(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 Zc=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function Pe(e,t){if(e!=="role"||t===void 0)return t;let n=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return Zc.has(n)?n:void 0}function Lr(e,t){return P(e?.[t])?.slice(0,256)}var ed=1048576,jr=4194304,dn=new Map,Xi=Object.freeze({}),Pr=new Map,Gi=Object.freeze({});function Yi(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function td(e){let t;try{t=JSON.parse(e)}catch{return Gi}let n=Yi(t);if(!n)return Gi;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=Yi(c);d&&r.push({value:d,depth:a.depth+1})}}return Object.freeze({model:i,version:s})}function rs(e){try{return V.lstatSync(e).isFile()?"available":"missing"}catch(t){return hr(t)?"missing":"failed"}}function nd(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=Me.join(e,o.name,`${t}.jsonl`);return{candidate:i,status:rs(i)}})}catch(o){return{status:hr(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 os(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=Me.resolve(e.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),i=Me.join(e.home_dir??Ji.homedir(),".claude","projects"),s=Me.join(i,o,`${n}.jsonl`),a=P(e.session_file),c=a&&Me.basename(a)===`${n}.jsonl`?a:void 0;for(let d of[c,s]){if(!d)continue;let u=rs(d);if(u==="available")return{status:u,path:d};if(u==="failed")return{status:u}}return nd(i,n)}function rd(e,t,n){let r=os(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=Pr.get(s);if(a)return a[e];let c=Math.min(i.size,ed),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 m=Buffer.alloc(u);u>0&&V.readSync(o,m,0,u,i.size-u);let p={},_=i.size<=c?Buffer.concat([f,m]).toString("utf8").split(`
|
|
2
|
+
`):[...f.toString("utf8").split(`
|
|
3
|
+
`).slice(0,4096),...m.toString("utf8").split(`
|
|
4
|
+
`).slice(-4096)];for(let g of _){if(g.length===0||g.length>262144)continue;let S=td(g);if(p.model??=S.model,p.version??=S.version,p.model&&p.version)break}let y=Object.freeze(p);return Pr.clear(),Pr.set(s,y),y[e]}finally{V.closeSync(o)}}catch{return}}function od(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=Me.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 id(e){if(e<=jr)return[{offset:0,length:e}];let t=Math.floor(jr/2);return[{offset:e-t,length:t},{offset:0,length:t}]}function sd(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 ad(e,t){let n={},r=4096;for(let o of id(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(sd(n,a),n.model&&n.effort)break;if(n.model&&n.effort||r<=0)break}return n}function cd(e,t,n){let r=P(n.CODEX_THREAD_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let o=Me.join(t.home_dir??Ji.homedir(),".codex","sessions"),i=`${o}\0${r}`,s=dn.get(i);if(s)return s[e];let a=od(o,r);if(!a){dn.set(i,Xi);return}try{let c=V.openSync(a,"r");try{let d=V.fstatSync(c).size,u=ad(c,d);return dn.set(i,u),u[e]}finally{V.closeSync(c)}}catch{dn.set(i,Xi);return}}function dd(e,t,n,r){let o=fn.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 rd(e,t,n);if(s==="codex_session_file")return cd(e,t,n);if(s==="ai_agent_version"){let a=P(n.AI_AGENT);return!a||!r||!ln(a,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(a)?.[1]?.slice(0,256)}}function ld(e,t,n,r){if(e==="ai_agent_version"){let o=P(r.AI_AGENT);return o!==void 0&&ln(o,t.harness)?"available":"unavailable"}return e==="codex_session_file"?P(r.CODEX_THREAD_ID)!==void 0?"available":"unavailable":os(n,r).status}function Ur(e){return e||(Qi.getStore()??{env:process.env,argv:process.argv})}function ud(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 ln(d.slice(d.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||ln(r,a));return o||i||s}function fd(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 md(e){let t=e.find(([n])=>n!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function _d(e,t,n,r,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...Fr,...Object.keys(r?.provenance_environment_keys??{})]),c,d,u;a.has(e)&&(c=Pe(e,P(n[s])?.slice(0,256)),u=Pe(e,ns(t.argv??[],e)),d=Pe(e,Qc(t.argv??[],e)));let f={...r?.provenance_environment_keys,model:r?.model_environment_keys},m={...t.client_info?.provenance,model:t.client_info?.model},p=Lr(o?.provenance,e),_=Pe(e,Hr(n,f[e])),y=Pe(e,Lr(m,e)),g=Pe(e,Lr(t.provenance,e)),S=dd(e,t,n,r);return md([[c,"override"],[p,"session"],[u,"argv"],[_,"environment"],[y,"mcp_client"],[g,"host"],[S,"probe"]])??fd(e,i)??(d?{value:d,source:"argv"}:void 0)}function pd(e,t){if(!(!e||!t))return Xc("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function hd(e,t,n,r,o){let i=Object.keys(n?.provenance_environment_keys??{}),s=new Set([...Fr,...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=_d(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 wh(e){let t=e.map(ke),n=new Map(ts.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=Ye.get(i.harness);if(s&&!Jc(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=Ye.get(i.harness);Ye.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=Ye.get(i.harness);!s||s.registrations<=1?Ye.delete(i.harness):s.registrations-=1}}}}function yd(e){let t=ke(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>jr||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(Ee(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 Eh(){let e=new Map(es.map(t=>[t.harness,t]));for(let{adapter:t}of je.values())e.set(t.harness,t);return Object.freeze([...e.values()].sort((t,n)=>t.harness.localeCompare(n.harness)))}function kh(e){let t=e.map(yd),n=new Map(es.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=je.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=je.get(i.harness);je.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=je.get(i.harness);!s||s.registrations<=1?je.delete(i.harness):s.registrations-=1}}}}function Ih(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 Sh(e,t){return Qi.run(e,t)}function Th(e,t,n={}){let r=e.map(ke);return zr(r),fn.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function Br(e){let t=Ur(e),n=t.env??{},r=zr(t.descriptors),o=[...(t.argv??[]).slice(0,3),...t.process_labels??[]].slice(0,64).map(_=>_.slice(0,512)),i=t.client_info?.name.trim().toLowerCase()??"",s=r.find(_=>ud(_,n,o,i)),a=Ir(t,n),c=[Hr(n,s?.session_environment_keys),P(t.client_info?.session)?.slice(0,256)].find(_=>_!==void 0),d=pd(s?.harness,c),u=qi({cwd:t.cwd??process.cwd(),env:n,key:d}),f=hd(t,n,s,a,u),m=f.model,p=[["harness",s?.harness],["model",m?.value],["model_source",m?.source],["session",c],["instance",d],["provenance",Object.keys(f).length>0?f:void 0],["episode",a.episode]];return Object.fromEntries(p.filter(_=>_[1]!==void 0))}function gd(e){return e==="unavailable"?{status:"unavailable",reason:"harness_unavailable"}:e==="missing"?{status:"unavailable",reason:"resolver_input_missing"}:{status:"failed",reason:"resolver_failed"}}function vd(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=ld(a,n,r,o);return{...gd(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 is(e){let t=Ur(e),n=Br(t),r=zr(t.descriptors).find(d=>d.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&fn.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(P(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=Ir(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,Hr(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,ns(t.argv??[],"role")].some(d=>{let u=P(d)?.slice(0,256);return u!==void 0&&Pe("role",u)===void 0}),c=Object.fromEntries(Fr.map(d=>[d,vd(d,n,r,t,o,i,d==="role"&&a)]));return{...n,provenance_outcomes:c}}function Ch(){return process.env.PM_AUTHOR}function Oh(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function xh(e){return Br(e).harness}function bd(e,t,n){let r=Ur(n),o=Br(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 ss(e){let t=un.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function as(e){let t=un.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 cs(e){let t=un.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function ds(e,t){let n=bd(e,t);return un.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 Je=1,ls=1;function Rh(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=Je?t:Je}function us(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=Je))return e}function wd(e,t=ls){return e<t?"outdated":e>t?"ahead":"current"}function Dh(e,t=ls){let n=[],r=[];for(let o of e){let i=wd(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 Ed={"in-progress":"in_progress",cancelled:"canceled"};function mn(e,t){if(t){let o=Oi(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=Ed[n]??n;if(Gt.includes(r))return r}function Qe(e,t){return mn(e,t)??e}function he(e,t){return t.terminal_statuses.has(Qe(e,t))}import{encode as Ld}from"@toon-format/toon";import{isDeepStrictEqual as hs}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 kd=16;function Wr(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 Id(e){return[...new Set([Ai(e),Wr(e.key),Wr(e.cli_flag),...e.cli_aliases.map(t=>Wr(t))])]}function _s(e,t){for(let n of Id(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function ps(e){return Array.isArray(e)?e.flatMap(t=>ps(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 fs(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 b(`${t} must be one of true|false|1|0|yes|no`,v.USAGE)}function ms(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 b(`${t} must be a number`,v.USAGE);return r}function Sd(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 b(`${t} must be valid JSON ${n}`,v.USAGE)}function Td(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 Cd(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(!Td(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"&&!zi(e))return`${n} must be an RFC 3339 date-time`}}function Od(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=_n(i,t.items,`${n}[${o}]`,r+1);if(s)return s}}}function xd(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=_n(s,a,`${n}.${i}`,r+1);if(c)return c}}function _n(e,t,n,r=0){if(r>kd)return`${n} value schema exceeds maximum depth`;let o=Cd(e,t,n);if(o)return o;let i=Od(e,t,n,r);if(i)return i;let s=xd(e,t,n,r);if(s)return s;if(!t.one_of)return;let a=0;for(let c of t.one_of)if(_n(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 Fe(e,t,n){if(!e.value_schema||t===void 0)return t;let r=_n(t,e.value_schema,n);if(r)throw new b(r,v.USAGE);return t}function Tt(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:Fe(e,Sd(i,r,e.type),r)}if(e.repeatable||e.type==="string_array"){let i=ps(t);return e.type==="number"?Fe(e,i.map(s=>ms(s,r)),r):e.type==="boolean"?Fe(e,i.map(s=>fs(s,r)),r):Fe(e,i,r)}let o=Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return e.type==="number"?Fe(e,ms(o,r),r):e.type==="boolean"?Fe(e,fs(o,r),r):Fe(e,typeof o=="string"?o:String(o),r)}function Ad(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 Uh(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=_s(e,i);if(s===void 0){Ad(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=Tt(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function Bh(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=_s(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=Tt(s,a)))}return r}import{decode as Rd}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 Vr(e){return{value:Rd(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 Dd=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function Nd(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(Dd);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function pn(e){return Nd(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 Gr=new Set(["schema","tracker","auto"]),vs=new Set(["source","isolated","snapshot"]),Pd=new Set(["legacy","local_mutation","local_source_ref","acknowledged","invalid_provenance","foreign_source_ref"]),jd=new Set(["passed","failed","stopped","canceled"]),Md=new Set(_i);function tt(e){return e.replaceAll("\\","/")}function bs(e){for(let t of e)if(t!==0)return t;return 0}function yn(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var ws=["id","title","description","created_at","updated_at"],Fd=new Set(ge);function Es(e){if(e?.schema)return{statusRegistry:rn(e.schema),fieldRegistry:xi(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function $d(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function Ie(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new b(`Invalid item metadata: ${e}`,v.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 xt(e,t){throw new b(t,v.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 ks(e){let t=new Set(Fd);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||Ie(t)}function At(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&Ie(t),e}function Kr(e,t){let n=e[t];I(typeof n=="string",`${t} must be a string`),I(_e(n),`${t} must be a valid ISO timestamp`)}function ys(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 Yr(e,t,n){let r=e[t];r!==void 0&&(I(typeof r=="string",`${n} must be a string`),I(_e(r),`${n} must be a valid ISO timestamp`))}function zd(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(Zt.includes(n),`event.recurrence.by_weekday entries must be one of: ${Zt.join(", ")}`)}}}function Hd(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 Ud(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(_e(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function Bd(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(Qt.includes(n),`event.recurrence.freq must be one of: ${Qt.join(", ")}`),ys(t,"interval","event.recurrence.interval"),ys(t,"count","event.recurrence.count"),Yr(t,"until","event.recurrence.until"),zd(t.by_weekday),Hd(t.by_month_day),Ud(t.exdates)}function Wd(e){for(let r of ws)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>=Je,`pm_format_version must be an integer >= ${Je}`),t}function Vd(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=mn(n,r),i=r?r.definitions.map(s=>s.id):[...Gt];I(o!==void 0,`status must be one of: ${i.join(", ")}`)}function Kd(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 qd(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"||Jt.includes(n);I(r,`confidence string value must be one of: ${[...Jt,"med"].join(", ")}`);return}I(!1,"confidence must be a number or string")}}function Xd(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&Ie("severity must be a string");let n=t.trim().toLowerCase(),r=n==="med"||Yt.includes(n);I(r,`severity value must be one of: ${[...Yt,"med"].join(", ")}`)}function Gd(e){e.regression!==void 0&&typeof e.regression!="boolean"&&Ie("regression must be a boolean")}function Yd(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(_e(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 Jd(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 Qd(e){e.recurrence!==void 0&&(Bd(e.recurrence),e.recurrence.until!==void 0&&I(pe(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function Zd(e){let t=At(e,"events entries must be objects");I(typeof t.start_at=="string","event.start_at must be a string"),I(_e(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(_e(t.end_at),"event.end_at must be a valid ISO timestamp"),I(pe(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),Jd(t),t.all_day!==void 0&&I(typeof t.all_day=="boolean","event.all_day must be a boolean"),Qd(t)}function el(e){let t=e.events;if(t!==void 0){I(Array.isArray(t),"events must be an array");for(let n of t)Zd(n)}}function tl(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 nl(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 rl(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){$d(r,t)&&Ie(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=Tt(r,o,`metadata field "${r.metadata_key}"`)}catch(i){Ie(String(i?.message).replace(/^Invalid\s+/u,""))}}}function ol(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=ks(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length!==0&&(t.unknownFieldPolicy==="reject"?Ie(`unknown schema fields are not allowed: ${r.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`))}function Jr(e,t){let n=At(e,"item metadata must be an object"),r=Wd(n);Vd(n,t),Kd(n),qd(n),Xd(n),Gd(n),Kr(n,"created_at"),Kr(n,"updated_at"),n.deadline!==void 0&&Kr(n,"deadline"),Yd(n),el(n),Yr(n,"closed_at","closed_at"),Yr(n,"completed_at","completed_at"),tl(n),nl(n),rl(n,r,t),ol(n,t)}function il(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=pe(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 qr(e){if(!(!e||e.length===0))return[...e].sort((t,n)=>{let r=pe(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 sl(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=pe(n.at,r.at);return o!==0?o:n.text.localeCompare(r.text)});return t.length===0?void 0:t}function al(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!Qt.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>Zt.includes(s)))).sort((s,a)=>pr(s)-pr(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=>_e(s)))).sort((s,a)=>pe(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 cl(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(dl).sort(ll)}function dl(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:al(e.recurrence)};return yn(t),t}function ll(e,t){return bs([pe(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 ul(e){if(!(!e||e.length===0))return e.map(t=>({path:tt(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function fl(e){if(!e||e.length===0)return;let t=e.map(hl).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)=>bs([pe(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 Ze(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function ml(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function Xr(e){return typeof e=="string"?e:""}function _l(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 hn(e,t){return typeof e=="string"&&t.has(e)?e:void 0}function pl(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:hn(n.requested_pm_context_mode,Gr),pm_context_mode:hn(n.pm_context_mode,Gr),workspace_context_mode:hn(n.workspace_context_mode,vs),trust_reason:hn(n.trust_reason,Pd)}));return t.length>0?t:void 0}function hl(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=jd.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:Xr(e.started_at),finished_at:Xr(e.finished_at),recorded_at:Xr(e.recorded_at),attempt:ml(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:Ze(e.passed)??0,failed:Ze(e.failed)??0,skipped:Ze(e.skipped)??0,items:Ze(e.items),linked_tests:Ze(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:_l(e.measurements),executions:pl(e.executions)};return yn(o),o}function yl(e){if(!(!Array.isArray(e)||e.length===0))return e.map(El)}function Ct(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 Zr(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function eo(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function gs(e){if(!Zr(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!eo(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function gl(e){if(!Zr(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!eo(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function vl(e){let t=e?.trim().toLowerCase();if(!(!t||!Gr.has(t)))return t}function bl(e){let t=e?.trim().toLowerCase();if(!(!t||!vs.has(t)))return t}function wl(e,t){if(t===!0)return{provenance_invalid:!0};if(e===void 0)return{};if(!Zr(e))return{provenance_invalid:!0};let n=E(e.author),r=E(e.created_at),o=e.source_kind;return!n||!r||!_e(r)||o!=="local_mutation"&&o!=="merge_union"?{provenance_invalid:!0}:{provenance:{author:n,created_at:r,source_kind:o,source_ref:E(e.source_ref)}}}function El(e){let t={command:e.command?.trim()||void 0,path:e.path?tt(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:vl(e.pm_context_mode),workspace_context_mode:bl(e.workspace_context_mode),...wl(e.provenance,e.provenance_invalid),env_set:gs(e.env_set),env_clear:Ct(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:Ct(e.assert_stdout_contains),assert_stdout_regex:Ct(e.assert_stdout_regex),assert_stderr_contains:Ct(e.assert_stderr_contains),assert_stderr_regex:Ct(e.assert_stderr_regex),assert_stdout_min_lines:Ze(e.assert_stdout_min_lines),assert_json_field_equals:gs(e.assert_json_field_equals),assert_json_field_gte:gl(e.assert_json_field_gte),note:e.note?.trim()||void 0};return yn(t),t}function kl(e){if(!(!e||e.length===0))return[...e].map(t=>({path:tt(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 E(e){if(typeof e!="string")return;let t=e.trim();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=E(r.id),i=E(r.kind);if(!o||!i)continue;let s={id:o,kind:i},a=E(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 Sl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.path);if(!o)continue;let i={path:tt(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=E(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Tl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.command),i=E(r.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=tt(i));let a=E(r.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function Cl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.path);if(!o)continue;let i={path:tt(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=E(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Ol(e){if(e===null||typeof e!="object")return;let t=e,n=E(t.id),r=E(t.title),o=E(t.status),i=o&&Md.has(o)?o:void 0,s=ki(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 xl(d,t),d}function xl(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=E(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",Il],["files","files",Sl],["tests","tests",Tl],["docs","docs",Cl]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function Al(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=Ol(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function Rl(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=E(r.decision);if(!o||!i||!s)continue;let a={ts:o,author:i,decision:s},c=E(r.rationale);c&&(a.rationale=c);let d=E(r.evidence);d&&(a.evidence=d);let u=E(r.step_id);u&&(a.step_id=u),t.push(a)}return t.length>0?t:void 0}function Dl(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=E(r.text);if(!o||!i||!s)continue;let a={ts:o,author:i,text:s},c=E(r.step_id);c&&(a.step_id=c),t.push(a)}return t.length>0?t:void 0}function Nl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.text);if(!o)continue;let i={text:o},s=E(r.command);s&&(i.command=s);let a=E(r.expected);a&&(i.expected=a),t.push(i)}return t.length>0?t:void 0}function Ll(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 et(e){let t=0;for(;t<e.length&&e[t]===`
|
|
6
|
+
`;)t+=1;return e.slice(t).trimEnd()}function Pl(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(Jt.includes(t))return t}function jl(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(Yt.includes(t))return t}function Ot(e){return e||void 0}function Ml(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))eo(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function Fl(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]=Tt(r,o,`metadata field "${r.metadata_key}"`))}}function $l(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=ks(t),o=Object.keys(e).filter(i=>!n.has(i)).sort((i,s)=>i.localeCompare(s));o.length>0&&t.unknownFieldPolicy==="reject"&&Ie(`unknown schema fields are not allowed: ${o.join(", ")}`),o.length>0&&t.onWarning?.(`item_unknown_schema_fields:${o.join(",")}`)}function gn(e,t={}){let n=Es(t),r=mn(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:us(e.pm_format_version),source_type:E(e.source_type),type_options:Ll(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:il(e.dependencies),comments:qr(e.comments),notes:qr(e.notes),learnings:qr(e.learnings),files:ul(e.files),tests:yl(e.tests),test_runs:fl(e.test_runs),docs:kl(e.docs),deadline:Ot(e.deadline),reminders:sl(e.reminders),events:cl(e.events),closed_at:Ot(e.closed_at),completed_at:Ot(e.completed_at),assignee:E(e.assignee),claim_principal:E(e.claim_principal),source_owner:E(e.source_owner),author:Ot(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:E(e.definition_of_ready),order:e.order,goal:E(e.goal),objective:E(e.objective),value:E(e.value),impact:E(e.impact),outcome:E(e.outcome),why_now:E(e.why_now),parent:E(e.parent),reviewer:E(e.reviewer),risk:e.risk??void 0,confidence:Pl(e.confidence),sprint:E(e.sprint),release:E(e.release),blocked_by:E(e.blocked_by),blocked_reason:E(e.blocked_reason),unblock_note:E(e.unblock_note),reporter:E(e.reporter),severity:jl(e.severity),environment:E(e.environment),repro_steps:E(e.repro_steps),resolution:E(e.resolution),expected_result:E(e.expected_result),actual_result:E(e.actual_result),affected_version:E(e.affected_version),fixed_version:E(e.fixed_version),component:E(e.component),regression:e.regression,customer_impact:E(e.customer_impact),close_reason:Ot(e.close_reason),plan_mode:E(e.plan_mode),plan_scope:E(e.plan_scope),plan_harness:E(e.plan_harness),plan_resume_context:E(e.plan_resume_context),plan_steps:Al(e.plan_steps),plan_decisions:Rl(e.plan_decisions),plan_discoveries:Dl(e.plan_discoveries),plan_validation:Nl(e.plan_validation)};return Ml(i,e),Fl(i,n),$l(i,n),yn(i),i}function Is(e){return T(e,ge)}function zl(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 Hl(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=zl(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 Ul(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 Qr(e,t){return gn(e,{...t,onWarning:void 0})}function Bl(e,t,n={}){let r=Ul(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=Hl(r.content);o||(e.trimStart().startsWith("{")&&xt("json_markdown","JSON front matter is not valid JSON"),xt("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{xt("json_markdown","JSON front matter is not valid JSON")}return Jr(s,t),{metadata:Qr(s,n),body:et(i)}}function Wl(e,t,n={}){let r;try{r=Vr(e).value}catch{xt("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(!ws.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&xt("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return Jr(o.front_matter,t),I(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:Qr(o.front_matter,n),body:et(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"),Jr(s,t),{metadata:Qr(s,n),body:et(typeof i=="string"?i:"")}}function Vl(e,t={}){let n=gn(e.metadata,t),r=Is(n),o=JSON.stringify(r,null,2),i=et(e.body??"");return i?`${o}
|
|
8
|
+
|
|
9
|
+
${i}
|
|
10
|
+
`:`${o}
|
|
11
|
+
`}function Kl(e,t={}){let n=gn(e.metadata,t),r=Is(n),o=et(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i)),a=Ld(s),c;try{c=Vr(a).value}catch(d){throw new b("Refusing to persist a TOON item document that the configured decoder cannot read back.",v.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(!hs(c,s)){let d=typeof c=="object"&&c!==null&&!Array.isArray(c)?c:{},u=Object.keys(s).find(f=>!hs(s[f],d[f]))??"document";throw new b(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${u}".`,v.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 vn(e,t={}){let n=pn(e);if(n)throw new b(`Merge conflict markers detected in item document at line ${n.line} (${n.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,v.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=Es(t);return r==="toon"?Wl(e,o,t):Bl(e,o,t)}function Ss(e,t={}){return(t.format??"toon")==="toon"?Kl(e,t):Vl(e,t)}function re(e,t={}){return{metadata:gn(e.metadata,t),body:et(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 ql(e,t){let n=await ve(e);if(n===null)return{raw:n,entries:[]};if(await be({path:e,scope:"project"}),n.trim()==="")return{raw:n,entries:[]};let r=pn(n);if(r)throw new b(`History for ${t} contains merge conflict markers at line ${r.line} (${r.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,v.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 b(`History for ${t} contains invalid JSON at line ${i+1}. Repair or restore the history stream and retry.`,v.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 nt(e,t){return(await ql(e,t)).entries}import wo 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 Ts(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 ea from"fast-json-patch";import Ys from"node:fs/promises";import Hu from"node:path";import M from"node:fs/promises";import H from"node:path";import{randomUUID as Os}from"node:crypto";import{createRequire as eu}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 Xl=["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"],Gl=["append","cancel","claim","close","comment_add","create","learning_add","note_add","reopen"],Yl=new Set(Xl),Jl=new Set(Gl),Ql=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 Zl(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 rt(e){return e.event_class==="substantive"||e.event_class==="maintenance"?e.event_class:Yl.has(e.op)?"maintenance":Jl.has(e.op)||e.op!=="update"?"substantive":Array.isArray(e.patch)&&e.patch.length>0&&e.patch.every(t=>{let n=Zl(t);return n!==void 0&&Ql.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 tu="history-event-index.sqlite",no="5",nu=8,ru="history-event-index",ro=300,xs=3e4,ou="history-event-index-invalidation",iu="history-event-index-invalidations",su=ro*2*1e3,In=Symbol("history-index-lock-contended"),$e=new Map;function Dt(e){return H.join(e,"runtime",tu)}function Tn(e){return H.join(e,"runtime",iu)}async function au(e){let t=await M.readdir(Tn(e)).catch(n=>{if(te(n))return[];throw n});return{pending:t.filter(n=>n.endsWith(".pending")).sort(),committed:t.filter(n=>n.endsWith(".committed")).sort()}}async function to(e){let t=await au(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 Ui({pid:Number(o[1]),...i==="unknown"?{}:{process_start_identity:i}},Math.max(0,Date.now()-Number(o[3])),su))return r}return await M.rm(H.join(Tn(e),r),{force:!0}),null}))).filter(r=>r!==null),committed:t.committed}}async function Rt(e,t){let n=await Q(e,ou,ro,`history-event-index-invalidation:${process.pid}`,!1,!1,xs);try{return await t()}finally{await n()}}async function cu(e){let t=Tn(e);await M.mkdir(t,{recursive:!0});let n=Os(),r=await Hi(),o=H.join(t,`${r.pid}-${r.process_start_identity??"unknown"}-${Date.now()}-${n}.pending`);return await M.writeFile(o,`pending
|
|
13
|
+
`,{flag:"wx"}),{pendingPath:o,committedPath:H.join(t,`${n}.committed`)}}function du(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}async function bn(e){try{await M.rm(Dt(e),{force:!0})}catch{}}async function Cn(e,t){let n=await Q(e,ru,ro,`history-event-index:${process.pid}`,!1,!1,xs);try{return await t()}finally{await n()}}async function As(e){let t=H.join(e,"history"),n=await M.readdir(t,{withFileTypes:!0}).catch(s=>{if(typeof s=="object"&&s!==null&&"code"in s&&s.code==="ENOENT")return[];throw s}),r=$e.get(e)??{streams:new Map,ordered_events:[]},o=new Set,i=!$e.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 M.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 Rs(c,a);r.streams.set(a,{signature:u,byte_size:Number(d.size),events:f.map((m,p)=>({stream_id:a,stream_offset:p,entry:m}))}),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(oo)),$e.delete(e),$e.set(e,r),$e.size>nu){let s=$e.keys().next().value;$e.delete(s)}return{events:r.ordered_events,stream_byte_sizes:new Map([...r.streams].map(([s,a])=>[s,a.byte_size]))}}async function Rs(e,t){let n=await nt(e,t);for(let[r,o]of n.entries())if(typeof o.ts!="string"||!Xe(o.ts.trim()))throw new b(`History for ${t} contains an invalid or sub-millisecond timestamp at line ${r+1}. Repair or restore the history stream and retry.`,v.GENERIC_FAILURE,{code:"history_timestamp_invalid"});return n.map(r=>({...r,ts:new Date(r.ts.trim()).toISOString()}))}async function lu(e){return(await As(e)).events}function uu(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}function fu(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?uu(t):null}var wn;function On(){return wn!==void 0||(wn=fu(process.versions.node,eu(import.meta.url))),wn}function mu(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(no)}function Ds(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,rt(n),JSON.stringify(n))}function Ns(e){let t=JSON.parse(String(e.entry_json));return typeof t.ts!="string"||!Xe(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 Ls(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 _u(e){let t=On();return t?Cn(e,async()=>{let n;try{n=await Rt(e,()=>to(e))}catch(s){if(s instanceof b&&s.code==="lock_conflict")return!1;throw s}if(n.pending.length>0)return!1;let r=Dt(e);await M.mkdir(H.dirname(r),{recursive:!0});let o=`${r}.${Os()}.tmp`,i;try{i=new t(o),mu(i),i.exec("BEGIN IMMEDIATE");let s=await As(e);for(let c of s.events)Ds(i,c);for(let[c,d]of s.stream_byte_sizes)Ls(i,c,d);i.exec("COMMIT"),i.close(),i=void 0;let a=await Rt(e,async()=>{let c=await to(e);return c.pending.length>0||!du(n.committed,c.committed)?!1:(await M.rm(r,{force:!0}),await M.rename(o,r),await Promise.all(n.committed.map(d=>M.rm(H.join(Tn(e),d),{force:!0}))),!0)});return a||await M.rm(o,{force:!0}),a}catch(s){throw i?.close(),await M.rm(o,{force:!0}),s}}):!1}function En(e,t){return!t||t.length===0||t.includes(e)}function oo(e,t){return e.entry.ts.localeCompare(t.entry.ts)||e.stream_id.localeCompare(t.stream_id)||e.stream_offset-t.stream_offset}function Sn(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():e}function pu(e,t){if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){if(oo(e,{stream_id:t.after_stream_id,stream_offset:t.after_stream_offset,entry:{...e.entry,ts:Sn(t.after_ts)}})<=0)return!1}else if(t.since_ts!==void 0&&e.entry.ts<Sn(t.since_ts))return!1;return!0}function hu(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 yu(e,t){return!pu(e,t)||!En(e.entry.op,t.ops)||!En(e.entry.author,t.authors)||!En(e.entry.agent_instance??"",t.agent_instances)||!En(e.stream_id,t.stream_ids)||!hu(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 xy(e,t){let n=Math.max(0,Math.floor(t.limit)),r=(await lu(e)).filter(o=>yu(o,t)).slice(0,n+1);return{events:r.slice(0,t.limit),has_more:r.length>t.limit}}async function Ps(e,t,n){let r=H.dirname(H.dirname(e)),o=On();if(!o){await n();return}let i=!1;try{await Cn(r,async()=>{let s=Dt(r);try{await M.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!==no)throw new TypeError("Unsupported history event index version")}catch{a?.close(),await M.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);Ds(a,{stream_id:d,stream_offset:Number(u.value),entry:t}),Ls(a,d,(await M.stat(e)).size),a.exec("COMMIT"),a.close()}catch(d){if(a?.close(),!c)throw d;await bn(r)}})}catch(s){if(i){await bn(r);return}if(!(s instanceof b)||s.code!=="lock_conflict")throw s;let a;try{await Rt(r,async()=>{let c=await cu(r);a=c.pendingPath;try{await n(),i=!0}catch(d){throw await M.rm(c.pendingPath,{force:!0}),d}await M.rename(c.pendingPath,c.committedPath),await bn(r)})}catch(c){if(i){await bn(r);try{await M.rm(a,{force:!0})}catch{}return}throw c}}}async function io(e){await M.rm(Dt(H.dirname(H.dirname(e))),{force:!0})}function kn(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function gu(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 js(e,t){let n=await to(e);if(n.pending.length>0||n.committed.length>0)return;let r=new t(Dt(e),{readOnly:!0});try{if(r.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value===no)return r}catch(o){throw r.close(),o}r.close()}async function Ay(e,t){let n=On();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=Sn(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(Sn(t.since_ts)));kn(r,o,"op",t.ops),kn(r,o,"author",t.authors),gu(r,o,t.harnesses,t.harness_alias_authors),kn(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);kn(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s;try{return await Cn(e,async()=>Rt(e,async()=>{if(s=await js(e,n),!s)return null;let a=await bu(s,e,t.stream_ids);if(!await Fs(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(Ns);return s.close(),s=void 0,d.includes(null)?null:{events:d,has_more:c.length>t.limit}}))}catch{return s?.close(),null}}function Ms(e,t){let n=Object.create(null);for(let r of e){if(!t.has(r.stream_id)||rt(r.entry)!=="substantive")continue;let o=n[r.stream_id];(o===void 0||oo(o,r)<0)&&(n[r.stream_id]=r)}return n}async function vu(e,t){if(H.basename(t)!==t)return null;try{return(await M.stat(H.join(e,"history",`${t}.jsonl`))).size}catch(n){if(te(n))return 0;throw n}}async function Fs(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=>vu(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 bu(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 M.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(te(i))return[];throw i});return[...new Set([...r,...o])]}async function Cs(e,t,n,r){if(!e)return null;let o;try{return await Cn(t,async()=>Rt(t,async()=>{if(o=await js(t,e),!o)return null;if(!await Fs(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(Ns);if(d.includes(null))return o.close(),o=void 0,null;i.push(...d)}return o.close(),o=void 0,Ms(i,r)}))}catch(i){return o?.close(),i instanceof b&&i.code==="lock_conflict"?In:null}}async function Ry(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=On(),i=await Cs(o,e,n,r);if(i!==null&&i!==In)return i;if(o&&i!==In)try{if(await _u(e)){let a=await Cs(o,e,n,r);if(a!==null&&a!==In)return a}}catch{}let s=[];return await Promise.all(n.map(async a=>{let c=H.join(e,"history",`${a}.jsonl`);(await Rs(c,a).catch(u=>{if(u instanceof b&&u.code==="history_timestamp_invalid")return[];throw u})).forEach((u,f)=>{s.push({stream_id:a,stream_offset:f,entry:u})})})),Ms(s,r)}import _o from"node:fs/promises";import it 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 xn="changed_fields",wu="changed_field_count",so="rows",Eu=new Set(["apply","rollback"]),Hs=new Set(["deleted","would_delete"]),$s=256;function zs(e){return typeof e!="string"||e.length<=$s?e:`${e.slice(0,$s-1)}\u2026`}function ku(e){if(!ae(e))return null;let t={...e};return t.reason=zs(t.reason),ae(t.previous_terminal)&&(t.previous_terminal=Object.fromEntries(Object.entries(t.previous_terminal).map(([n,r])=>[n,zs(r)]))),t}function ae(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function Us(e){let t=e[xn];if(!Array.isArray(t))return null;let n=Object.getPrototypeOf(e)===null?Object.create(null):{};for(let[r,o]of Object.entries(e))r!==xn&&(n[r]=o);return n[wu]=t.length,n}function Iu(e){return"item"in e&&Array.isArray(e[xn])}function Su(e){return typeof e.mode=="string"&&Eu.has(e.mode)&&Array.isArray(e[so])}function Tu(e,t){let n=Object.getPrototypeOf(e)===null?Object.create(null):{};return Object.assign(n,e),n[so]=t,n}function Cu(e){if(!ae(e))return null;let t=ae(e.item)?e.item:ae(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"&&Hs.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 Ou(e){if(!ae(e)||!ae(e.item)||typeof e.item.id!="string")return null;let t=e[xn];if(!Array.isArray(t))return null;let n={id:e.item.id,...typeof e.outcome=="string"&&Hs.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 xu(e,e.item,n),n}function xu(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=ku(e.recurrence);if(o!==null&&(n.recurrence=o),Array.isArray(e.warnings)&&e.warnings.length>0&&(n.warnings=e.warnings),ae(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 Au(e){let t=Su(e)?e[so]:void 0;if(!Array.isArray(t))return{projected:e,changed:!1};let n=!1,r=t.map(o=>{if(!ae(o))return o;let i=Us(o);return i?(n=!0,i):o});return n?{projected:Tu(e,r),changed:!0}:{projected:e,changed:!1}}function Ru(e,t={}){if(t.idOnly===!0){let a=Cu(e);if(a!==null)return a}if(t.compactEnvelope===!0){let a=Ou(e);if(a!==null)return a}if((t.changedFields??"full")==="full"||!ae(e))return e;let r=!1,o=e,i=Iu(e)?Us(e):null;i!==null&&(o=i,r=!0);let s=Au(o);return s.changed&&(o=s.projected,r=!0),r?o:e}import{encode as Vs}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 Zy=new Set(Object.values(v));var Bs=!1;function ot(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ao(e){return typeof e=="object"&&e!==null&&e.code==="EPIPE"}function Du(){(process.exitCode===void 0||process.exitCode===v.SUCCESS)&&(process.exitCode=v.SUCCESS)}function Nu(){(process.exitCode===void 0||process.exitCode===v.SUCCESS)&&(process.exitCode=v.GENERIC_FAILURE)}function co(e){if(e==="stdout"){Du();return}Nu()}function Ws(e){let t=e instanceof Error?e:new Error(String(e));setImmediate(()=>{throw t})}function Lu(){Bs||(Bs=!0,process.stdout.on("error",e=>{if(ao(e)){co("stdout");return}Ws(e)}),process.stderr.on("error",e=>{if(ao(e)){co("stderr");return}Ws(e)}))}function Pu(e,t){Lu();try{return e==="stdout"?process.stdout.write(t):process.stderr.write(t),!0}catch(n){if(ao(n))return co(e),!1;throw n}}function An(e){return Pu("stderr",e)}function lo(e){return typeof e=="string"?JSON.stringify(e):typeof e=="number"||typeof e=="boolean"?String(e):e===null?"null":JSON.stringify(e)}function ju(e){return e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function Ks(e){if(e.length===0||!e.every(ot))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)&&ju(n[r])))}function qs(e,t){let n=" ".repeat(t);return e.split(`
|
|
68
|
+
`).map(r=>`${n}${r}`).join(`
|
|
69
|
+
`)}function Mu(e,t,n){let r=" ".repeat(n);return!ot(t)&&!Array.isArray(t)?`${r}${e}: ${lo(t)}`:Array.isArray(t)&&t.length===0?`${r}${e}: []`:Array.isArray(t)&&Ks(t)?qs(Vs({[e]:t}),n):ot(t)&&Object.keys(t).length===0?`${r}${e}: {}`:`${r}${e}:
|
|
70
|
+
${fo(t,n+1)}`}function uo(e){if(e!=null){if(Array.isArray(e)){let t=e.map(n=>uo(n)).filter(n=>n!==void 0);return t.length>0?t:void 0}if(ot(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=uo(r);o!==void 0&&(t[n]=o)}return Object.keys(t).length>0?t:void 0}return e}}function fo(e,t){let n=" ".repeat(t);if(Array.isArray(e))return e.length===0?"[]":Ks(e)?qs(Vs(e),t):e.map(r=>{if(!ot(r)&&!Array.isArray(r))return`${n}- ${lo(r)}`;let i=fo(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(ot(e)){let r=Object.entries(e);return r.length===0?"{}":r.map(([o,i])=>Mu(o,i,t)).join(`
|
|
75
|
+
`)}return`${n}${lo(e)}`}function mo(e,t){if(t==="json")return`${JSON.stringify(e,null,2)}
|
|
76
|
+
`;let n=uo(e);return n===void 0?`{}
|
|
77
|
+
`:`${fo(n,0)}
|
|
78
|
+
`}function eg(e){let t=Fi("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 Fu=it.join("runtime","history-drift-cache.json"),Xs={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 Gs(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function $u(e){let t=it.join(e,Fu),n=!1,r="invalid_cache_path";try{n=(await _o.stat(await _o.realpath(e))).isDirectory()}catch(o){let i=Gs(o);r=i===void 0?"unknown":Xs[i]??"filesystem_error"}if(!n){An(`[pm] warning: history_drift_cache_invalidation_failed:${r}
|
|
81
|
+
`);return}try{await _o.rm(t,{force:!0})}catch(o){let i=Gs(o);if(te(o))return;let s=i===void 0?"unknown":Xs[i]??"filesystem_error";An(`[pm] warning: history_drift_cache_invalidation_failed:${s}
|
|
82
|
+
`)}}async function Rn(e){let t=it.dirname(it.resolve(e));it.basename(t)==="history"&&await $u(it.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 Uu={front_matter:{},body:""},ze=3,Nt=[1,2,3],Bu=1,Wu=[1];function ta(e){return ne(L(e))}function st(e){return ne(L(e))}function Eg(e){return ne(L(e))}function go(e){let t={...e,record_hash_version:Bu},{record_hash:n,...r}=t;return{...t,record_hash:ta(r)}}function Ln(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(!Wu.includes(e.record_hash_version))return{ok:!1,error:"unsupported_record_hash_version"};let{record_hash:t,...n}=e;return ta(n)===e.record_hash?{ok:!0,coverage:"record_and_item_state"}:{ok:!1,error:"record_hash_mismatch"}}function Vu(e,t){let n={before_hash:e.before_hash,after_hash:e.after_hash,patch_hash:st(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 na(e,t,n={}){let r=Ln(e);if(!r.ok)throw new TypeError(r.error);let o=st(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!==st(t.patch),s=go({...t,...i?{reanchor_evidence:[...t.reanchor_evidence??[],Vu(e,n)]}:{}}),a=vo(s);if(!a.ok)throw new TypeError(a.error);return s}function ra(e){return!Array.isArray(e)||Object.keys(e).length!==e.length?!1:e.every(t=>!He(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 Ku(e){return He(e)&&typeof e.ts=="string"&&typeof e.author=="string"&&typeof e.op=="string"&&typeof e.before_hash=="string"&&typeof e.after_hash=="string"&&ra(e.patch)}function qu(e){let t=e.record_hash_version!==void 0,n=e.record_hash!==void 0;return t===n}function Xu(e){return!He(e)||!qu(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&&!ra(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||Ku(e.record)}function Gu(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&&st(t.patch)===e.patch_hash}function Yu(e,t,n){if(t.patch&&st(t.patch)!==t.patch_hash)return{kind:"patch_hash_mismatch"};if(t.record)return Gu(t)?{kind:"record",entry:t.record}:{kind:"record_hash_mismatch"};let r=t.patch??e.patch;if(st(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 vo(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)||!Xu(o))return{ok:!1,error:"rewrite_evidence_invalid"};let i=Yu(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(!Ln(i.entry).ok)return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};n=i.entry}return{ok:!0,coverage:"complete"}}function Dn(e,t){return(e??"").localeCompare(t??"")}function Js(e,t){return(e??0)-(t??0)}function Se(e,t,n){return JSON.stringify(e??n).localeCompare(JSON.stringify(t??n))}function Ju(e,t){return[e.scope.localeCompare(t.scope),Dn(e.path,t.path),Dn(e.command,t.command),Js(e.timeout_seconds,t.timeout_seconds),Dn(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,Se(e.env_clear,t.env_clear,[]),Se(e.env_set,t.env_set,{}),Se(e.assert_stdout_contains,t.assert_stdout_contains,[]),Se(e.assert_stdout_regex,t.assert_stdout_regex,[]),Se(e.assert_stderr_contains,t.assert_stderr_contains,[]),Se(e.assert_stderr_regex,t.assert_stderr_regex,[]),Js(e.assert_stdout_min_lines,t.assert_stdout_min_lines),Se(e.assert_json_field_equals,t.assert_json_field_equals,{}),Se(e.assert_json_field_gte,t.assert_json_field_gte,{}),Dn(e.note,t.note)].find(r=>r!==0)??0}function Qu(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function Zu(e,t){let n=Qu(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:He(r)&&Object.prototype.hasOwnProperty.call(r,o)?r[o]:void 0;if(s===void 0)return!1;r=s}return!0}function ef(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!Zu(r,o.path)?{...o,op:"add"}:o;n.push(i),r=ea.applyPatch(r,[i],!0,!0).newDocument}return n}function Nn(e,t,n=!1){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let o=re(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,...m})=>m)},...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(Ju)}:s;return{front_matter:T(a,ge),body:o.body}}function Qs(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let n=re(e);return{metadata:T(n.metadata,ge),body:n.body}}function kg(e){return oa(e,ze)}function oa(e,t){if(!Nt.some(n=>n===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return ne(L(Nn(e,t)))}function ia(e,t){let n=oa(e,t);return t===2?[n,ne(L(Nn(e,t,!0)))]:[n]}function Ig(){return ne(L(Uu))}function at(e){let t=Nn(e.before,ze),n=Nn(e.after,ze),r=Qs(e.before),o=Qs(e.after),i=ea.compare(r,o),s=ef(r,i),a=as(e.author),c=a.harness?Object.fromEntries(Object.entries(is().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??ss(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:ne(L(t)),after_hash:ne(L(n)),item_hash_version:ze,message:e.message===void 0?void 0:e.message,...d===void 0?{}:{context:d}};return go({...u,event_class:rt(u)})}function He(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function po(e){return new b(e,v.GENERIC_FAILURE,{code:"history_timestamp_invalid"})}function sa(e){let t=e.ts.trim();if(t.length===0)return we();if(!Xe(t))throw po("History timestamp must be a valid RFC 3339 date-time with millisecond precision");if(t!==e.ts)throw po("History timestamp must not contain surrounding whitespace");return e.ts}function Zs(e,t){let n=e.ts;if(typeof n=="string"&&n.trim().length>0){if(!Xe(n))throw po("History timestamp must be a valid RFC 3339 date-time with millisecond precision");return e}return{...e,ts:t}}function ho(e,t){let n=sa(t);if(typeof e=="string"){let r;try{r=JSON.parse(e)}catch{return e}return He(r)?JSON.stringify(Zs(r,n)):e}return He(e)?JSON.stringify(Zs(e,n)):JSON.stringify(e)}async function tf(e,t,n){if(n===!1)return!0;if(typeof n=="string"){let s=ho(n,t);return await yo(e,s),await Rn(e),await io(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=ho(typeof r.line=="string"?r.line:r.entry??t,t);return await yo(o,i),await Rn(o),await io(o),!0}async function yo(e,t){let n;try{n=JSON.parse(t)}catch{n=null}if(!He(n)||n.op!=="create"){await yi(e,t);return}await Ys.mkdir(Hu.dirname(e),{recursive:!0});try{await Ys.writeFile(e,`${t}
|
|
83
|
+
`,{encoding:"utf8",flag:"wx"})}catch(r){throw r.code!=="EEXIST"?r:new b("This item identity is reserved by an existing history stream.",v.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 ct(e,t){let n=await St("history_append",{history_path:e,entry:t});if(n.handled&&await tf(e,t,n.result))return;let r=t.ts.trim().length>0?t:{...t,ts:sa(t)},o=go({...r,event_class:rt(r)});await Ps(e,o,async()=>{await yo(e,ho(o,o))}),await Rn(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 nf={metadata:{},body:""};function Pn(){return structuredClone(nf)}function Ng(e,t=ze){return bo(e,t)[0]}function bo(e,t){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return ia(jn(e),t)}catch{}let n=ne(L({replay_fallback:!0,metadata:e.metadata,body:e.body}));return t===2?[n,n]:[n]}function da(e,t,n,r){let o=bo(e,n),i=bo(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 jn(e){return{metadata:e.metadata,body:e.body}}function Lg(e,t={}){return re(jn(e),t)}function Pg(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=re(e);return{metadata:T(t.metadata,ge),body:t.body}}function aa(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function rf(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function la(e){return Array.isArray(e)?e.filter(rf).map(t=>({...t,path:aa(t.path),from:typeof t.from=="string"?aa(t.from):void 0})):[]}function of(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 Mn(e,t){try{let n=la(t),r=wo.applyPatch(structuredClone(e),n,!0,!1).newDocument;return of(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 sf(e){return[...new Set(e.map(t=>t.item_hash_version).filter(t=>t!==void 0&&Nt.includes(t)))]}function ua(e){return e!==void 0&&!Nt.includes(e)}function af(e,t){return e!==void 0?[e]:t===void 0?[...Nt]:[t]}function fa(e){let t=Ln(e);if(!t.ok)return t.error;let n=vo(e);return n.ok?void 0:n.error}function cf(e,t){let n=fa(e);if(n)return{ok:!1,error:n};let r=Mn(t,e.patch);return r.ok?{ok:!0,document:r.document}:{ok:!1,error:"patch_apply_failed"}}function df(e,t){let n=fa(e);if(n)throw new TypeError(`${n}:entry_${t+1}`)}function ma(e){let t=Pn(),n,r,o=Ts(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=ua(a);c&&o.push(`verify_failed:unsupported_item_hash_version:${String(a)}:entry_${i+1}`);let d=cf(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=af(a,r).map(_=>({version:_,match:da(t,d.document,_,s)})),m=f.find(({match:_})=>_.pairIndex>=0);if(m===void 0){let _=f.some(({match:y})=>y.beforeIndex>=0);return{ok:!1,errors:[...o,`verify_failed:${_?"after":"before"}_hash_mismatch:entry_${i+1}`]}}let p=m.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 dt(e){let t=ma(e);return{ok:t.ok,errors:t.errors}}function ca(e,t){try{return{ok:!0,document:wo.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function lf(e,t){let n=structuredClone(e),r=0,o=0;for(let a of la(t)){let c=ca(n,a);if(c.ok){n=c.document;continue}if(a.op==="replace"){let d=ca(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 uf(e){let t=sf(e);if(t.length===1)return t[0];let n=ma(e);return n.ok&&n.item_hash_version!==void 0?n.item_hash_version:t.length===0?1:ze}function ff(e,t){let n=Mn(e,t.patch);if(n.ok)return{next:n.document,patch:t.patch,repaired:!1,converted:0,skipped:0};let r=lf(e,t.patch);return{next:r.document,patch:wo.compare(e,r.document),repaired:!0,converted:r.convertedReplaceToAdd,skipped:r.skippedOps}}function jg(e,t=uf(e),n={}){let r=e.findIndex(p=>ua(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=Pn(),i=[],s=[],a=0,c=0,d=0,u=0,f,m=t!==1||e.some(p=>p.item_hash_version!==void 0);for(let p=0;p<e.length;p+=1){let _=e[p];df(_,p);let y=ff(o,_),{next:g,patch:S,repaired:A,converted:D,skipped:$}=y;d+=D,u+=$,c+=Number(A);let x=da(o,g,t,_);f===void 0||n.continuousHashSurface!==!0?f=[x.pairIndex,x.beforeIndex,x.afterIndex,Math.min(f??0,x.beforeHashes.length-1)].find(ye=>ye>=0):f=Math.min(f,x.beforeHashes.length-1);let K=x.beforeHashes[f],W=x.afterHashes[f],J=K!==_.before_hash||W!==_.after_hash;J&&(a+=1);let q={..._,patch:S,before_hash:K,after_hash:W};m?q.item_hash_version=t:delete q.item_hash_version;let ee=q.item_hash_version!==_.item_hash_version;(J||A||ee)&&(q=na(_,q,{retainOriginalPatch:A})),i.push(q),s.push({index:p+1,rehashed:J,patch_repaired:A,converted_replace_to_add:D,skipped_ops:$}),o=g}return{entries:i,finalDocument:o,entriesRehashed:a,entriesPatchRepaired:c,convertedReplaceToAdd:d,skippedOps:u,details:s,itemHashVersion:t,explicitItemHashVersion:m}}function Mg(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
|
|
84
|
+
`)}
|
|
85
|
+
`}import va from"node:fs/promises";import Fn from"node:path";import{isUtf8 as hf}from"node:buffer";import mf from"node:fs/promises";import lt 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 Lt="_workspace";function Eo(e){return lt.join(e,"history",`${Lt}.jsonl`)}function _f(e,t){return{metadata:{id:Lt,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 ko(e,t=e.length){let n=Pn();for(let r of e.slice(0,t))n=Mn(n,r.patch).document;return jn(n)}function _a(e){return"documents"in e.metadata&&typeof e.metadata.documents=="object"&&e.metadata.documents!==null&&!Array.isArray(e.metadata.documents)?e.metadata.documents:{}}function Io(e){throw new b(`Workspace history verification failed: ${e.join(", ")}`,v.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 pf(e,t){let n=lt.resolve(t),r=lt.relative(e,n).replaceAll("\\","/");if(r.length===0||r===".."||r.startsWith("../")||lt.isAbsolute(r))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:r,absolutePath:n}}async function Yg(e){let t=await nt(Eo(e),Lt),n=dt(t);n.ok||Io(n.errors);let r=_a(t.length===0?Ke:ko(t)),o=[],i=[],s=[],a=[];for(let c of Object.keys(r).sort()){let d;try{let u=pf(e,lt.resolve(e,c));if(d=await ve(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 pa(e){let t=Eo(e.pmRoot),n=await nt(t,Lt),r=dt(n);r.ok||Io(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=we(),s=n.length===0?Ke:ko(n),a=_a(s),c=a[e.documentPath];if(c!==void 0&&L(c)!==L(e.before))throw new b(`Workspace history state for "${e.documentPath}" changed outside the audited mutation path.`,v.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=_f({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),u=at({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 ct(t,u),{entry:u,historyPath:t}}async function Jg(e){let t=await Q(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await pa(e)}finally{await t()}}async function ha(e){let t=await Q(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=Eo(e.pmRoot),r=await nt(n,Lt),o=dt(r);o.ok||Io(o.errors);let i=r.length===0?Ke:ko(r),s=at({nowIso:we(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await ct(n,s),{entry:s,historyPath:n}}finally{await t()}}async function ya(e,t){if(t===e.raw)return!1;let n=t===null?null:JSON.parse(t),r=JSON.parse(e.raw);await X(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await pa({pmRoot:e.pmRoot,documentPath:lt.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 mf.rm(e.filePath,{force:!0}):await X(e.filePath,t),o}return!0}async function Qg(e){let t=await Q(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=await ve(e.filePath),r=await e.mutate(n);return{changed:await ya({...e,raw:r.raw},n),result:r.result}}finally{await t()}}async function ga(e){let t=await Q(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await ya(e,await ve(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]="3635d0ca-b4ee-5c99-9115-6eace5120147")}catch{}})();var yf=1048576,gf=4194304;async function ba(e,t){let n=Fn.dirname(e);for(;n!==Fn.parse(e).root;){let o=await va.stat(n).catch(i=>{if(te(i))return null;throw i});if(o!==null){if(!o.isDirectory())throw new b("Workflow policy storage ancestor must be a directory.",v.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Restore the policy or approval history directory before retrying."]});break}n=Fn.dirname(n)}let r=await va.open(e,"r").catch(o=>{if(te(o))return null;throw o});if(r===null)return null;try{let o=(await r.stat()).size,i=Buffer.alloc(Math.min(t,o)+1),s=0;for(;s<i.length;){let a=await r.read(i,s,i.length-s,s);if(a.bytesRead===0)break;s+=a.bytesRead}if(s===i.length||!hf(i.subarray(0,s)))throw new b("Workflow policy input exceeds its byte bound or is not valid UTF-8.",v.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Inspect the policy and approval history; reduce the declaration or use verified history compaction before retrying."]});return i.toString("utf8",0,s)}finally{await r.close()}}function vf(e){if(e===null)return{version:1,enforcement:"advise",policies:[]};let t;try{t=JSON.parse(e)}catch{throw new b("schema/policies.json must contain valid JSON.",v.CONFLICT,{code:"workflow_policy_registry_invalid",nextSteps:["Restore valid policy JSON before retrying the mutation."]})}return Ri(t)}async function bf(e){return vf(await ba(Fn.join(e,"schema","policies.json"),yf))}async function wf(e,t){let n=await ba(Ne(e,t),gf);if(n===null)return[];let r;try{if(r=n.split(/\r?\n/).filter(o=>o.trim()).map(o=>JSON.parse(o)),!dt(r).ok)throw new Error("invalid chain")}catch{throw new b("Approval evidence requires a valid item history chain.",v.CONFLICT,{code:"workflow_policy_approval_history_invalid",nextSteps:[`Run pm history ${t} --verify before recording or using an approval.`]})}return r.flatMap(o=>{let i=o.context?.workflow_approval;if(o.op!=="policy_approve"||o.record_hash_version!==1||typeof o.record_hash!="string"||typeof i!="object"||i===null)return[];let s=i;return typeof s.policy_fingerprint!="string"||typeof s.content_fingerprint!="string"?[]:[{policy_fingerprint:s.policy_fingerprint,content_fingerprint:s.content_fingerprint,author:o.author}]})}async function Ef(e,t,n){let r=n.before?.status!==n.after?.status&&t.policies.some(s=>s.rule.kind==="approval"&&Di(s,n)),o=n.before?.id??n.after?.id,i=r&&typeof o=="string"?await wf(e,o):[];return Ni(t,{...n,approvals:i})}async function So(e){let t=await bf(e.pmRoot),n=await Ef(e.pmRoot,t,{operation:e.operation,author:e.author,before:e.before?{...e.before.metadata,body:e.before.body}:null,after:e.after?{...e.after.metadata,body:e.after.body}:null});if(n.allowed)return n;let r=n.decisions.filter(s=>!s.satisfied&&s.effect==="refuse");if(!e.dryRun)try{await ha({pmRoot:e.pmRoot,op:"policy_refused",author:e.author,context:{item_id:e.after?.metadata.id??e.before?.metadata.id,operation:e.operation,workflow_policies:n.decisions},message:"Workflow policy refused a proposed item mutation.",lockTtlSeconds:e.settings.locks.ttl_seconds,lockWaitMs:e.settings.locks.wait_ms})}catch(s){let a=new b("Workflow policy refusal could not be recorded in workspace history.",v.CONFLICT,{code:"workflow_policy_audit_failed",nextSteps:["Resolve workspace-history lock or storage failures, then retry the refused mutation; no item changes were written."]});throw a.cause=s,a}let o=r.slice(0,3).map(s=>`${s.policy_id} (${s.rule})`).join(", "),i=r.length>3?` and ${r.length-3} more`:"";throw new b(`Workflow policy refused ${e.operation}: ${o}${i}.`,v.CONFLICT,{code:"workflow_policy_refused",reason:r.slice(0,3).map(s=>s.policy_id).join(","),nextSteps:[...new Set(r.map(s=>s.remediation))].slice(0,3)})}import{AsyncLocalStorage as kf}from"node:async_hooks";import{channel as If}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 To=new kf,Co=If("@unbrained/pm-cli/item-metadata-enumeration/v1");function $n(e){Co.publish(e)}async function mv(e){let t={enumeration_calls:0,metadata_rows:0},n=r=>{To.getStore()?.includes(t)&&(t.enumeration_calls+=1,t.metadata_rows+=r)};Co.subscribe(n);try{return{result:await To.run([...To.getStore()??[],t],e),work:{...t}}}finally{Co.unsubscribe(n)}}import Sf from"node:crypto";import zn 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 Ea(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 Oo(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function Pt(e,t){let n=Ea(t),r=Oo(e);return r.startsWith(n)?r:`${n}${r}`}function Tf(e){let t=$i(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=>[zn.join(e,o,`${t}.md`),zn.join(e,o,`${t}.toon`)]);return r.push(zn.join(e,"history",`${t}.jsonl`)),(await Promise.all(r.map(o=>De(o)))).some(Boolean)}var wa=4,ka=12;function Of(e){return typeof e!="number"||!Number.isFinite(e)?wa:Math.min(ka,Math.max(wa,Math.trunc(e)))}async function bv(e,t,n={}){let r=Of(n.tokenLength),o=Math.min(r+6,ka),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${Ea(t)}${Tf(r)}`;if(!await(n.probeExisting===!1?De(zn.join(e,"history",`${a}.jsonl`)):Cf(e,a,n.typeToFolder??Re)))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import Ue from"node:fs/promises";import Sa from"node:path";import{randomUUID as xf}from"node:crypto";import{createRequire as Af}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 Rf="metadata-query-index.sqlite",jt="5";function Df(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}var Hn;function Nf(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?Df(t):null}function Mt(){return Hn!==void 0||(Hn=Nf(process.versions.node,Af(import.meta.url))),Hn}function Ia(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function ut(e){return Sa.join(e,"runtime",Rf)}function Lf(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 Bn(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function Ta(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 Ca(e){let t=ut(e.pmRoot),n=Mt();if(!n){await Ue.rm(t,{force:!0});return}await Ue.mkdir(Sa.dirname(t),{recursive:!0});let r=`${t}.${xf()}.tmp`,o;try{o=new n(r),Lf(o),o.exec("BEGIN IMMEDIATE"),Bn(o,"version",jt),Bn(o,"context_fingerprint",e.contextFingerprint),Bn(o,"source_cursor",e.sourceCursor);for(let i of e.rows)Ta(o,i);o.exec("COMMIT"),o.close(),o=void 0,await Ue.rm(t,{force:!0}),await Ue.rename(r,t)}catch(i){throw o?.close(),await Promise.allSettled([Ue.rm(r,{force:!0})]),i}}function Wn(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function Oa(e){let t=Mt();if(!t)return!1;let n=ut(e.pmRoot),r;try{await Ue.access(n),r=new t(n),r.exec("PRAGMA foreign_keys = ON");let o=Wn(r);if(o.version!==jt||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&&Ta(r,e.row),Bn(r,"source_cursor",e.sourceCursor),r.exec("COMMIT"),r.close(),!0}catch{try{r?.exec("ROLLBACK")}catch{}return r?.close(),!1}}function Un(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function Pf(e){let t=[],n=[];Un(t,n,"status",e.statuses,"IN"),Un(t,n,"status",e.excludeStatuses,"NOT IN"),Un(t,n,"type",e.types,"IN"),Un(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 Tv(e){let t=Mt();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=Pf(n),i;try{i=new t(ut(e.pmRoot),{readOnly:!0});let s=Wn(i);if(s.version!==jt||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(m=>{let p=JSON.parse(String(m.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 Cv(e){let t=Mt();if(!t||e.paths.length===0)return null;let n;try{n=new t(ut(e.pmRoot),{readOnly:!0});let r=Wn(n);if(r.version!==jt||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=Ia(e.limit,50),u=Ia(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),m=[];if(f.length>0){let p=f.map(g=>String(g.id)),_=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 _){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));m.push({item:S,files:y.get(String(g.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:m}}catch{return n?.close(),null}}async function Ov(e){let t=Mt();if(!t)return null;let n;try{n=new t(ut(e.pmRoot),{readOnly:!0});let r=Wn(n);if(r.version!==jt||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 Vn(e){await Ue.rm(ut(e),{force:!0})}import B from"node:fs/promises";import j from"node:path";import{createHash as jf,randomUUID as Na}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 ce=8,La=500,Mf="metadata-derived-index",Ff="metadata-cache.json",$f="metadata-cache-bodies.json",zf="metadata-cache-collections.json",Hf="metadata-cache-delta.json",Uf="metadata-cache-manifest.json",xa=4,Bf=["comments","notes","learnings","files","tests","test_runs","docs"];function Pa(){return en(fe())}function qn(e){let t={...e},n={};for(let r of Bf)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function ja(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function Ma(e,t,n,r){let o=jf("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 Xn(e){return j.join(e,"runtime",Ff)}function Gn(e){return j.join(e,"runtime",$f)}function Yn(e){return j.join(e,"runtime",zf)}function Ao(e){return j.join(e,"runtime",Hf)}function Ro(e){return j.join(e,"runtime",Uf)}function Jn(e,t){let n=j.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var Wf=24,Z=new Map,Qn=new WeakMap;function Do(e){return Qn.get(e)??e.source_cursor}function Vf(e,t){let n=Do(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){Qn.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 Kf(e,t){if(!e)return;let n=Do(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){Qn.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 qf(e,t){if(!e)return;let n=Do(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){Qn.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 Xf(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(Vf(e,r),Kf(t,r),qf(n,r))}function xo(e,t){Z.size>=Wf&&!Z.has(e)&&Si(Z),Z.set(e,t)}async function Te(e,t){let n;try{n=await B.stat(e)}catch{return Z.delete(e),null}let r=Z.get(e);if(r&&Ft(r.signature,n.mtimeMs,n.ctimeMs,n.size))return Z.delete(e),Z.set(e,r),r.envelope;let o;try{o=t(await B.readFile(e,"utf8"))}catch{o=null}return xo(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function Gf(e,t,n){let r=a=>{let c=JSON.parse(a);return c.version!==ce||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=Xn(e),i=await Te(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await Te(Jn(o,t),r);return s===null&&Ht(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function Yf(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ce||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=Gn(e),o=await Te(r,n);return t&&o?.context_fingerprint!==t?await Te(Jn(r,t),n):o}async function Jf(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ce||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=Yn(e),o=await Te(r,n);return t&&o?.context_fingerprint!==t?await Te(Jn(r,t),n):o}async function No(e){let t=Ao(e),n=await Te(t,r=>{let o=JSON.parse(r);return o.version!==ce||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 B.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function Lo(e){let t=Ro(e),n=await Te(t,r=>{let o=JSON.parse(r);return o.version!==ce||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 B.stat(t),await ft(e)}catch{}return null}async function $t(e,t){await B.mkdir(j.dirname(e),{recursive:!0}),await X(e,JSON.stringify(t));try{let r=await B.stat(e);xo(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{Z.delete(e)}let n=j.dirname(j.dirname(e));if(e===Xn(n)||e===Gn(n)||e===Yn(n)){let r=Jn(e,t.context_fingerprint);await X(r,JSON.stringify(t));try{let c=await B.stat(r);xo(r,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{Z.delete(r)}let o=j.dirname(e),i=j.extname(e),s=j.basename(e,i),a=(await B.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>xa){let c=(await Promise.all(a.map(async d=>{try{return{path:d,mtime:(await B.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-xa)))await B.rm(d.path,{force:!0}),Z.delete(d.path)}}}function Qf(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function Fa(e,t,n){return e===void 0||Qf(e,t,n)}function Ht(e,t){e&&!e.includes(t)&&e.push(t)}function Ft(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function Zf(e,t,n){let r=j.join(e,t);try{let o=await B.readdir(r);return{folder:t,dirPath:r,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&!te(o)&&Ht(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function em(e,t){try{let n=await B.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 Kn(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await em(e,n))))}function zt(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&&Ft(o,r.mtime_ms,r.ctime_ms,r.size)})}function tm(e){return nn.some(t=>e.toLowerCase().endsWith(t))}function nm(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function rm(e,t,n){if(n)for(let r of await be({path:e,scope:"project"}))Ht(t,r)}function Aa(e,t,n,r){if(e)return t&&n?n.collections:r}async function om(e,t,n){let r=await B.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=gr(e);await rm(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],d=!n.forceSourceRead&&c!==void 0&&Ft(c,o,i,s),u=n.previousBodies[t],f=!n.forceSourceRead&&u!==void 0&&Ft(u,o,i,s),m=n.previousCollections[t],p=!n.forceSourceRead&&m!==void 0&&Ft(m,o,i,s);if(!(!d||n.includeBody&&!f||n.includeCollections&&!p))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:c.metadata,heavyMetadata:Aa(n.includeCollections,p,m,void 0),bodyLength:c.body_length,body:n.includeBody?u.body:void 0};let y=await B.readFile(e,"utf8"),g=vn(y,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:A=>Ht(n.warnings,A)}),S=qn(g.metadata);return nm(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:Aa(n.includeCollections,p,m,S.heavy),bodyLength:d?c.body_length:g.body.length,body:n.includeBody?g.body:void 0}}function im(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?ja(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};Fa(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function sm(e,t,n,r){try{let o=await om(t,n,r);im(t,n,r,o)}catch{Ht(r.warnings,`item_list_item_read_failed:${e}/${j.basename(t)}`)}}function am(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function cm(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function dm(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function lm(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}async function um(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!tm(s))continue;let a=j.join(o,s),c=j.relative(t.pmRoot,a);n.push(sm(r,a,c,t)),n.length===32&&(await Promise.all(n),n.length=0)}await Promise.all(n)}async function fm(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!zt(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await $t(Xn(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await $t(Ro(e.pmRoot),{version:ce,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:qn(r.metadata).light,linkedFiles:r.metadata.files??[]}));n.length>=e.minimumIndexedItems?await Ca({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:n}):await Vn(e.pmRoot)}catch{}}async function mm(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 $t(Gn(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function _m(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 $t(Yn(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function Po(e,t,n={}){let r=await Lo(e);return n.required!==!0&&(r===null||r.entry_count<La)?async()=>{}:Q(e,Mf,30,t,!1,!1,3e3)}async function Hv(e,t){let n=await Lo(e);if(n===null)return null;let r=await No(e);if(r.invalid)return await ft(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&&!zt(i,await Kn(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function Ra(e,t){let n=j.relative(e,t);return n===""||n===".."||n.startsWith(`..${j.sep}`)||j.isAbsolute(n)?null:n}async function ft(e){await Promise.all([Xn(e),Gn(e),Yn(e),Ao(e),Ro(e)].map(async t=>{await B.rm(t,{force:!0}),Z.delete(t)})),await Vn(e)}async function pm(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await B.stat(e.mutation.itemPath),n=qn(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 hm(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function jo(e){let t=Ra(e.pmRoot,e.itemPath),n=e.previousItemPath?Ra(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await ft(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=Ma(e.preferredFormat,e.typeToFolder,e.schema,Pa()),o=await Lo(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await No(e.pmRoot);if(s.invalid)return await ft(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=hm(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 pm({mutation:e});let d=Na();return await $t(Ao(e.pmRoot),{version:ce,context_fingerprint:r,base_source_cursor:i,source_cursor:d,directory_signatures:await Kn(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await Oa({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:d,row:e.document===null?null:{relativePath:t,metadata:qn(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await Vn(e.pmRoot),[]}catch{return await ft(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function ym(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function Da(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function gm(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function vm(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=gr(n);if(!o)continue;let i=e.includeCollections?ja(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);Fa(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 bm(e){return e.forceSourceScan||Er()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!zt(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||Da(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||Da(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&gm(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function Zn(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=Pa(),d=Ma(t,n,o,c),u=await No(e);u.invalid&&await ft(e);let f=await Gf(e,d,i.cacheDiagnostics),m=s?await Yf(e,d):null,p=a?await Jf(e,d):null;Xf(f,m,p,u.envelope);let _=am(f,d),y=cm(m,d),g=dm(p,d),S=[...new Set(Object.values(n))],A=await Kn(e,S),D=Object.keys(_),$=Math.max(1,Math.floor(i.derivedIndexMinimumItems??La));if(bm({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:d,existingCache:f,existingBodyCache:m,existingCollectionsCache:p,directorySignatures:A,entryKeys:D,minimumIndexedItems:$,includeBody:s,includeCollections:a,previousBodies:y,previousCollections:g}))return vm({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:_,previousBodies:y,previousCollections:g});let x=await Promise.all(S.map(bt=>Zf(e,bt,r))),K=Er(),W=lm(),J={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,forceSourceRead:i.forceSourceScan===!0,dispatchReadHooks:K,previousEntries:_,previousBodies:y,previousCollections:g,state:W};await um(x,J);let q=await Kn(e,S),ee=zt(A,q)?q:{},We=W.misses.metadata||Object.keys(_).length!==Object.keys(W.newEntries).length||!zt(f?.directory_signatures,ee)||f===null?Na():f.source_cursor;return await fm({pmRoot:e,contextFingerprint:d,sourceCursor:We,existingCache:f,previousEntries:_,directorySignatures:ee,state:W,minimumIndexedItems:$}),s&&await mm({pmRoot:e,contextFingerprint:d,sourceCursor:We,existingBodyCache:m,previousBodies:y,state:W}),a&&await _m({pmRoot:e,contextFingerprint:d,sourceCursor:We,existingCollectionsCache:p,previousCollections:g,state:W}),ym(W)}async function $a(e,t,n,r,o){return(await Zn(e,t,n,r,o,{includeBody:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}async function za(e,t,n,r,o){return(await Zn(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 de(){let e=le();for(let t of fe()?.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 Ut(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function er(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function wm(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 Em(e,t){let n=[...e].sort(),r=wm(n,t),o=new Set,i=km(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 km(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 Ha(e){let t=new Map;for(let n of e){let r=Ut(n?.id);r&&!t.has(r)&&t.set(r,n)}return t}function Sm(e,t,n){let r=Ut(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 Tm(e,t,n,r){let o=Ut(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 Ua(e,t){let n=new Map;for(let[r,o]of e){let i=Sm(r,o,e);i&&n.set(er(i),i);for(let s of o.dependencies??[]){let a=Tm(r,s,e,t);a&&n.set(er(a),a)}}return[...n.values()].sort((r,o)=>er(r).localeCompare(er(o)))}function Gv(e,t=de()){return Ua(Ha(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 Om(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=Ut(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 tr(e,t=r=>r==="closed"||r==="canceled",n=de()){let r=Ha(e),o=Ua(r,n),i=xm(o),s=new Set([...r].filter(([,c])=>t(c.status)).map(([c])=>c)),a=Em([...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:Om(r,o,s)}}function Yv(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 xm(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 Mo(e,t){let n=new Set(t);return e.every(r=>n.has(r))}function Jv(e,t,n,r,o){let i=Ut(n);if(!i)return;let s=tr(e,r,o),a=tr(t,r,o),c=a.divergences.find(f=>!s.divergences.some(m=>m.child_id===f.child_id&&m.scalar_parent_id===f.scalar_parent_id&&Mo(f.dependency_parent_ids,m.dependency_parent_ids)));if(c){let f=[c.scalar_parent_id,...c.dependency_parent_ids].sort();throw new b(`Hierarchy mutation would assign ${c.child_id} to multiple parents: ${f.join(", ")}.`,v.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(m=>m.child_id===f.child_id&&Mo(f.parent_ids,m.parent_ids)));if(d)throw new b(`Hierarchy mutation would assign ${d.child_id} to multiple parents: ${d.parent_ids.join(", ")}.`,v.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(m=>Mo(f.item_ids,m.item_ids)));if(u)throw new b(`Hierarchy mutation would create a cycle: ${u.item_ids.join(" -> ")}.`,v.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 Am="global";function nb(e){let t=e?.trim();if(t)return ie(t)?Am:t}function rb(e,t,n){return Rm(e,t,n)}function Rm(e,t,n){let r=e.trim();return ie(n)||ue(r)?r:Pt(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 _t(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function Bt(e){let t=_t(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function Wt(e,t,n=!0){let r=_t(e);return n&&(ie(t)||r!==void 0&&ue(r))}function Fo(e,t){return Wt(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function Ba(e,t,n,r){return Wt(e,t)?r.get(e):n.get(e.toLowerCase())}function mt(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function Dm(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,o=_t(r.id);if(!o)continue;let i=typeof r.kind=="string"?r.kind:"related",s=`${i}\0${Fo(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 Nm(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 Dm(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=mt(r.holder_id,o.holder_id);if(i!==0)return i;let s=mt(r.target_id,o.target_id);return s!==0?s:mt(r.kind,o.kind)})}function Lm(e,t,n,r,o){if(typeof n!="object"||n===null)return;let i=_t(n.id);if(!i||Fo(i,n.source_kind)!==Fo(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 Pm(e,t=r=>r==="closed"||r==="canceled",n=de()){let r=new Map;for(let o of e){if(typeof o?.id!="string"||o.id.trim().length===0)continue;let i=_t(o.blocked_by);if(i)for(let s of o.dependencies??[]){let a=Lm(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=mt(o.holder_id,i.holder_id);if(s!==0)return s;let a=mt(o.target_id,i.target_id);return a!==0?a:mt(o.dependency_kind,i.dependency_kind)})}function $o(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,m)=>{let p=_t(d);if(!p||r.has(p.toLowerCase())||Wt(p,void 0,m))return;let _={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(`${_.holder_id}::${_.target_id}::${_.kind}::${_.source}`,_)};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;ie(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 jm(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 Mm(e){let t=new Map;for(let n of e){let r=Bt(n.blocked_by);r&&Wt(r)&&!t.has(r)&&t.set(r,r);for(let o of n.dependencies??[]){if(typeof o!="object"||o===null||!Wt(o.id,o.source_kind))continue;let i=Bt(o.id);i&&!t.has(i)&&t.set(i,i)}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}var Wa=new WeakMap;function lb(e){return e.hierarchyIntegrity??Wa.get(e)}function Fm(e,t=de()){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 nr(e,t,n){let r=n??de(),o=e.filter(_=>typeof _?.id=="string"&&_.id.trim().length>0),i=new Map(o.map(_=>[_.id.trim().toLowerCase(),_.id.trim()])),s=$o(o,t),a=jm(s);for(let _ of a)i.set(_.toLowerCase(),_);let c=Mm(o),d=new Set(i.keys()),u=new Map;for(let _ of c){let y=_;for(;d.has(y.toLowerCase());)y=`external:${y}`;u.set(_,y),d.add(y.toLowerCase())}let f=o.map(_=>{let y=Bt(_.parent),g=Bt(_.blocked_by),S=(_.dependencies??[]).flatMap(A=>{if(typeof A!="object"||A===null)return[];let D=A,$=Bt(D.id);return $?[{id:Ba($,D.source_kind,i,u),kind:typeof D.kind=="string"?D.kind:"related"}]:[]});return{id:_.id.trim(),...y?{parent:i.get(y.toLowerCase())}:{},...g?{blocked_by:Ba(g,void 0,i,u)}:{},dependencies:S}}),m=tr(o,t,r),p={graph:Ii.fromItems([...f,...a.map(_=>({id:_})),...c.map(_=>({id:u.get(_)}))],r),details:[...o.map(_=>({id:_.id.trim(),title:_.title,status:_.status,...typeof _.type=="string"&&_.type.trim().length>0?{type:_.type.trim()}:{}})),...a.map(_=>({id:_,title:`[missing] ${_}`,status:"missing"})),...c.map(_=>({id:u.get(_),title:`[external] ${_}`,status:"external"}))],missingIdSet:new Set(a.map(_=>_.toLowerCase())),dangling:s,duplicateRows:Nm(o,t),orderingContradictions:Pm(o,t,r),legacyAliasCounts:Fm(o,r),hierarchyIntegrity:m};return Wa.set(p,m),p}import{createHash as $m}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 zm=64,Hm=8;function Um(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 Ka(e,t=r=>r==="closed"||r==="canceled",n=le()){let r=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>Um(i,t)).sort(),o=n.list().map(i=>L(i)).sort();return $m("sha256").update(r.join("")).update("").update(o.join("")).digest("hex")}function Va(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var zo=class{#e=new Map;#t;#n;constructor(t={}){this.#t=Va("maxResultsPerWorkspace",t.maxResultsPerWorkspace,zm),this.#n=Va("maxWorkspaces",t.maxWorkspaces,Hm)}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()}},qa=new zo;function Xa(){return qa}function pb(){qa.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 Bm=["prerequisite","dependent","ancestor","descendant","provenance","related"],Wm=new TextEncoder;function Ho(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 rr(e){return Math.max(1,Math.ceil(Wm.encode(JSON.stringify(e)).byteLength/4))}function Uo(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 Vm(e,t,n,r){let o=e.filter(i=>i.source===t&&i.target===n||i.target===t&&i.source===n).map(i=>Uo(i,n,r));return[...new Set(o)].sort()}function Km(e){return Bm.find(t=>e.includes(t))}function qm(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 m=a[f];if(m.distance>=i&&u)continue;let p=e.neighborEdges(m.id,{direction:o,kinds:r.kinds,signal:r.signal});if(d+=p.meta.inspectedEdges,m.distance>=i){p.value.some(_=>!s.has(_.id))&&(u=!0);continue}for(let{id:_,edge:y}of p.value){if(s.has(_))continue;s.add(_);let g={id:_,distance:m.distance+1,via:m.id,role:Uo(y,_,n)};c.push(g),a.push(g)}}return c.sort((f,m)=>f.distance-m.distance||f.id.localeCompare(m.id)),{rows:c,visitedNodes:a.length,inspectedEdges:d,depthTruncated:u}}function Xm(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[Uo(a,s,n)]+=1;return{directEdges:o,directTotal:i.length,rootEdges:i.map(({edge:s})=>s)}}function Gm(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let o=r.distance===1?Vm(e.rootEdges,e.rootId,r.id,e.registry):[],i={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:o.length>0?Km(o):r.role,via:r.via,reasons:o.length>0?o:[`${r.role} via ${r.via} (depth ${r.distance})`]},s=rr(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 Ym(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=rr(i);if(o+s>e.tokenBudget)break;r.push(i),o+=s}return{edges:r,usedTokens:o,candidateCount:n.length}}function Ga(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let o=Ho(r.nodeLimit,20,"nodeLimit"),i=Ho(r.edgeLimit,40,"edgeLimit"),s=Ho(r.tokenBudget,1200,"tokenBudget"),a=r.registry??le(),c=new Map(n.map(Ve=>[Ve.id,Ve])),d=c.get(t)??{id:t},{evidence:u=[],...f}=d,m=[...u],p=qm(e,t,a,r),{rootEdges:_,...y}=Xm(e,t,a,r),g=Li("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),S=ji(p.rows,r.cursor,g,({id:Ve})=>Ve),A=p.rows.slice(S),D=rr(f)+rr(m);if(D>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let $=Gm({candidates:A,details:c,rootEdges:_,rootId:t,registry:a,nodeLimit:o,tokenBudget:s,initialTokens:D}),{nodes:x}=$,K=new Set([t,...x.map(({id:Ve})=>Ve)]),W=Ym({graph:e,included:K,options:r,registry:a,edgeLimit:i,tokenBudget:s,initialTokens:$.usedTokens}),{edges:J,usedTokens:q}=W,ee=S+x.length,ye=ee<p.rows.length,We=x.at(-1),bt=W.candidateCount-J.length,ci=p.depthTruncated||ye||bt>0,Hc={rootId:t,...f.status===void 0?{}:{rootStatus:f.status},...y,discoveredNodes:p.rows.length,returnedNodes:x.length,returnedEdges:J.length,omittedNodes:p.rows.length-ee,omittedEdges:bt,evidenceCount:m.length,hasMore:ye};return{root:f,summary:Hc,nodes:x,edges:J,evidence:m,meta:{exact:!0,truncated:ci,completeness:ci?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:s,usedTokens:q,visitedNodes:p.visitedNodes,inspectedEdges:p.inspectedEdges,omittedNodes:p.rows.length-ee,omittedEdges:bt,...ye&&We?{nextCursor:Pi(g,We.id,ee-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 Wo(e,t){return(t===void 0?void 0:bi(e,t))?.execution_role??vi[e.trim().toLowerCase()]??"agent"}var Vo="blocked_by",Ya="blocks",Jm=Object.freeze([Vo,Ya]),Bo="no-active-blocker";function F(e){return e.trim().toLowerCase()}function or(e,t){return t?`external:${e}`:`local:${F(e)}`}function Vt(e){let t=new Map,n=typeof e.blocked_by=="string"?e.blocked_by.trim():"";if(n.length>0&&F(n)!==Bo){let r=ue(n);t.set(or(n,r),r?n:F(n))}for(let r of e.dependencies??[]){let o=typeof r.id=="string"?r.id.trim():"";if(r.kind===Vo&&o.length>0&&F(o)!==Bo){let i=ue(o)||ie(r.source_kind);t.set(or(o,i),i?o:F(o))}}return[...t.values()].sort((r,o)=>r.localeCompare(o))}function ir(e){let t=new Map;for(let n of e){let r=F(n.id);r.length!==0&&t.set(r,new Set(Vt(n)))}for(let n of e){let r=F(n.id);if(r.length!==0)for(let o of n.dependencies??[]){let i=o.kind===Ya&&typeof o.id=="string"?F(o.id):"";if(i.length===0||i===Bo)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 Ja(e,t){let n=F(e.id);return n.length>0?ir(t).get(n)??Vt(e):Vt(e)}function Ko(e,t,n,r){let o=e,i=typeof o.id=="string"?r?.get(F(o.id))??Ja(o,[...t.values()]):Vt(e),s=new Set((e.dependencies??[]).filter(a=>a.kind===Vo&&ie(a.source_kind)&&typeof a.id=="string"&&a.id.trim().length>0).map(a=>or(a.id.trim(),!0)));return i.map(a=>{if(ue(a)||s.has(or(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(F(a));return c?{id:a,title:c.title,status:c.status,resolved:he(c.status,n)}:{id:a,title:null,status:null,resolved:!1}})}function Qm(e,t,n){return Ko(e,t,n)}function Zm(e,t){let n=new Map(e.map(s=>[F(s.id),s])),r=ir(e),o=new Set([...Qa(t),...t.blocked_statuses]),i=new Set;for(let s of e){let a=Qe(s.status,t);if(!o.has(a))continue;(t.blocked_statuses.has(a)||Ko(s,n,t,r).some(d=>!d.resolved))&&i.add(F(s.id))}return i}function e_(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(Qe(s.item.status,t))));let i={ready:[],decisions:[],gates:[]};for(let s of o){let a=Wo(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 Qa(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function t_(e,t,n){let r=[F(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(!he(s.status,n))return!0;r.push(F(s.id))}}}return!1}function n_(e){let t=new Map,n=new Map,r=new Map,o=ir(e);for(let i of e){t.set(F(i.id),i);let s=typeof i.parent=="string"?i.parent.trim():"";if(s.length>0){let a=F(s),c=n.get(a)??[];c.push(i),n.set(a,c)}for(let a of o.get(F(i.id))){let c=F(a),d=r.get(c)??[];d.push(i.id),r.set(c,d)}}return{itemsById:t,childrenByParent:n,blockedByReverse:r,blockerIdsByItem:o}}function r_(e,t,n,r){let{itemsById:o,childrenByParent:i,blockedByReverse:s,blockerIdsByItem:a}=n_(t),c=new Set([...Qa(n),...n.blocked_statuses]),d=new Set(t.filter(g=>!he(g.status,n)).map(g=>F(g.id))),u=[],f=[],m=[],p=[],_=[],y=0;for(let g of e){if(!c.has(Qe(g.status,n)))continue;y+=1;let S=Ko(g,o,n,a).filter(x=>!x.resolved),A=(s.get(F(g.id))??[]).filter(x=>d.has(F(x))).sort((x,K)=>x.localeCompare(K)),D={item:g,open_blockers:S,unblocks:A};if(t_(g.id,i,n)){m.push(D);continue}let $=n.blocked_statuses.has(Qe(g.status,n));if(S.length===0&&!$){let x=Wo(g.type,r);x==="human"?p.push(D):x==="gate"?_.push(D):u.push(D)}else f.push(D)}return{ready:u,blocked:f,containers:m,decisions:p,gates:_,active_count:y,container_count:m.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{}})();(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]="245ec731-790e-55ae-9bb6-3eeaaefe27ee")}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 w(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 Xo(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 sr(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 o_=C({key:h,values:w(h),required:l(O),aliases:l(w(h)),description:l(h)}),i_=C({command:R("create","update"),option:h,required:l(O),visible:l(O),enabled:l(O)}),s_=C({name:h,description:l(h),default_status:l(h),execution_role:l(R("agent","human","gate")),folder:l(h),aliases:l(w(h)),required_create_fields:l(w(h)),required_create_repeatables:l(w(h)),options:l(w(o_)),command_option_policies:l(w(i_))}),a_=C({id:h,aliases:l(w(h)),roles:l(w(R(...di))),description:l(h),order:l(N())}),c_=C({key:h,metadata_key:l(h),front_matter_key:l(h),cli_flag:l(h),cli_aliases:l(w(h)),description:l(h),type:l(R(...li)),commands:l(w(R(...ui))),repeatable:l(O),required:l(O),required_on_create:l(O),required_types:l(w(h)),allow_unset:l(O)}),d_=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]}},l_=C({type:h,allowed_transitions:w(d_)}),u_=l(C({version:l(N({int:!0})),files:l(C({types:l(h),statuses:l(h),fields:l(h),workflows:l(h)})),statuses:l(w(a_)),fields:l(w(c_)),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(w(l_)),unknown_field_policy:l(R(...fi))})),f_=l(C({preset:l(R(...mi)),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}))})),m_=C({name:h,disabled:l(O),require_trusted:l(O),require_provenance:l(O),sandbox_profile:l(R("none","restricted","strict")),allowed_capabilities:l(w(h)),blocked_capabilities:l(w(h)),allowed_surfaces:l(w(h)),blocked_surfaces:l(w(h)),allowed_commands:l(w(h)),blocked_commands:l(w(h)),allowed_actions:l(w(h)),blocked_actions:l(w(h)),allowed_services:l(w(h)),blocked_services:l(w(h))}),qo=R("block","warn"),__=e=>typeof e=="string"?qo(e):C({global:l(qo),project:l(qo)})(e),p_=l(C({mode:l(R("off","warn","enforce")),trust_mode:l(R("off","warn","enforce")),pm_max_version_exceeded_mode:l(__),require_provenance:l(O),trusted_extensions:l(w(h)),default_sandbox_profile:l(R("none","restricted","strict")),allowed_extensions:l(w(h)),blocked_extensions:l(w(h)),allowed_capabilities:l(w(h)),blocked_capabilities:l(w(h)),allowed_surfaces:l(w(h)),blocked_surfaces:l(w(h)),allowed_commands:l(w(h)),blocked_commands:l(w(h)),allowed_actions:l(w(h)),blocked_actions:l(w(h)),allowed_services:l(w(h)),blocked_services:l(w(h)),extension_overrides:l(w(m_))})),Be=Xo(128),h_=C({harness:Xo(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:l(w(Be,64)),model_environment_keys:l(w(Be,64)),session_environment_keys:l(w(Be,64)),provenance_environment_keys:l(sr(w(Be,64))),provenance_resolvers:l(sr(R("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:l(w(Be,64)),argv_markers:l(w(Be,64)),client_names:l(w(Be,64))}),y_=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:sr(Xo(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:w(h_)})),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(w(h)),lifecycle_stale_blocker_reason_patterns:l(w(h)),lifecycle_closure_like_blocked_reason_patterns:l(w(h)),lifecycle_closure_like_resolution_patterns:l(w(h)),lifecycle_closure_like_actual_result_patterns:l(w(h)),estimate_defaults_by_type:l(sr(N({int:!0,positive:!0})))})),governance:f_,workflow:l(C({definition_of_done:w(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(w(h))})),item_types:l(C({definitions:w(s_)})),schema:u_,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:w(h),disabled:w(h),policy:p_}),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),default_mode:l(R("auto","keyword","semantic","hybrid")),corpus_fields:l(w(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 Za(e){let t=y_(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 g_={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},ec=120;function Go(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function nc(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var v_=nc(g_),tc=new WeakMap;function b_(e){let t=tc.get(e);if(t)return t;let n=nc(e);return tc.set(e,n),n}function Ob(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return ec;if(t){let o=b_(t).get(n);if(Go(o))return Math.floor(o)}let r=v_.get(n);return Go(r)?Math.floor(r):ec}function Yo(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||!Go(r)||(t[o]=Math.floor(r))}return t}import{stat as w_}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 ar=new Map;function rc(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function E_(e){try{let t=await w_(e);return{path:e,mtime_ms:t.mtimeMs,size:t.size}}catch{return{path:e,mtime_ms:null,size:null}}}async function Ce(e){let t=rc(e),n=await Promise.all(t.map(r=>E_(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function Kt(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 oc(e){return ar.get(e)}function cr(e,t){let n=rc(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));ar.set(e,{tracked_paths:n,signatures:r,value:t.value})}function Oe(e){if(e){ar.delete(e);return}ar.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]="665677ea-4d55-5858-8b21-6dee20bfd46b")}catch{}})();var k_="settings:write",dc=Symbol("pm.settings.persist_source"),I_=128,S_=new Set(["off","advisory","strict"]);function ic(e){return structuredClone(pi[e])}function T_(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:k.governance.preset}function sc(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 C_(e){return e.preset==="custom"?sc({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):sc({preset:e.preset},e)}function O_(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),S_.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 lr(e){let t=e.governance??{},n=T_(t.preset),r=O_(t);if(n==="custom"){let s=ic("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=ic(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function lc(){return structuredClone(k)}function uc(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:k.search.mutation_refresh_policy}function fc(e){return e==="auto"||e==="keyword"||e==="semantic"||e==="hybrid"?e:"auto"}function mc(e){return typeof e=="boolean"?e:k.search.query_expansion.enabled}function _c(e){return typeof e!="string"?k.search.query_expansion.provider:e.trim()}function pc(e){return typeof e=="boolean"?e:k.search.rerank.enabled}function hc(e){return typeof e!="string"?k.search.rerank.model:e.trim()}function yc(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:k.search.rerank.top_k}function gc(e){if(typeof e!="string")return k.vector_store.collection_name;let n=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,I_);return n.length>0?n:k.vector_store.collection_name}function Jo(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function x_(e,t){let n=e.schema,r=Jo(n?.statuses),o=Jo(n?.fields),i=Jo(n?.type_workflows);return{source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:pt(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:pt(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 vc(e,t){Object.defineProperty(e,dc,{value:t,writable:!0,configurable:!0,enumerable:!1})}function bc(e){let t=e[dc];if(!(!t||typeof t!="object"))return t}function dr(e){let t=structuredClone(e.settings),n=bc(e.settings);return n&&vc(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function A_(e,t,n){let r=kt(t);return[n,It(e,r.files.types,Et.types),It(e,r.files.statuses,Et.statuses),It(e,r.files.fields,Et.fields),It(e,r.files.workflows,Et.workflows)]}async function R_(e,t,n){let r=await Ce(t);cr(e,{tracked_paths:t,signatures:r,value:dr(n)})}async function D_(e,t,n){try{await R_(e,t,n)}catch{Oe(e)}}function ac(e,t){return e.find(n=>n.path===t)}function N_(e,t,n){for(let r of n){let o=ac(e,r),i=ac(t,r);if(!o||!i||!Kt([o],[i]))return!1}return!0}async function Qo(e,t,n,r,o){try{let i=await Ce(t);if(!N_(r,i,o)){Oe(e);return}cr(e,{tracked_paths:t,signatures:i,value:dr(n)})}catch{Oe(e)}}function L_(e,t){let n=kt(e.schema),r=pt(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=qe(r,t.runtime_item_type_definitions),s=qe(n.statuses,t.runtime_schema_statuses),a=qe(n.fields,t.runtime_schema_fields),c=qe(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?pt(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 qt(e){return{settings:lc(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function P_(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function ei(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function wc(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:ei(e?.last_checked_files??t.last_checked_files)}}function oe(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function j_(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.mode}function M_(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.trust_mode}function Ec(e){return e==="none"||e==="restricted"||e==="strict"?e:k.extensions.policy.default_sandbox_profile}function F_(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=Ec(e.sandbox_profile));let r=oe(e.allowed_capabilities),o=oe(e.blocked_capabilities),i=oe(e.allowed_surfaces),s=oe(e.blocked_surfaces),a=oe(e.allowed_commands),c=oe(e.blocked_commands),d=oe(e.allowed_actions),u=oe(e.blocked_actions),f=oe(e.allowed_services),m=oe(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),m.length>0&&(n.blocked_services=m),n}function $_(e){let t=new Map;for(let n of e??[]){let r=F_(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function Zo(e){return e==="block"||e==="warn"?e:void 0}function z_(e){if(typeof e=="string")return Zo(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=Zo(e.global),n=Zo(e.project);return t===void 0&&n===void 0?void 0:{...t!==void 0?{global:t}:{},...n!==void 0?{project:n}:{}}}}function G(e,t){return oe(e?.[t]??k.extensions.policy[t])}function kc(e){let t=z_(e?.pm_max_version_exceeded_mode);return{mode:j_(e?.mode),trust_mode:M_(e?.trust_mode),...t!==void 0?{pm_max_version_exceeded_mode:t}:{},require_provenance:e?.require_provenance===!0,trusted_extensions:G(e,"trusted_extensions"),default_sandbox_profile:Ec(e?.default_sandbox_profile),allowed_extensions:G(e,"allowed_extensions"),blocked_extensions:G(e,"blocked_extensions"),allowed_capabilities:G(e,"allowed_capabilities"),blocked_capabilities:G(e,"blocked_capabilities"),allowed_surfaces:G(e,"allowed_surfaces"),blocked_surfaces:G(e,"blocked_surfaces"),allowed_commands:G(e,"allowed_commands"),blocked_commands:G(e,"blocked_commands"),allowed_actions:G(e,"allowed_actions"),blocked_actions:G(e,"blocked_actions"),allowed_services:G(e,"allowed_services"),blocked_services:G(e,"blocked_services"),extension_overrides:$_(e?.extension_overrides??k.extensions.policy.extension_overrides)}}function Ic(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 xe(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 Y(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function ti(e){return Array.isArray(e)?e:[]}function H_(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:Ic(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:xe(e.validation?.lifecycle_stale_blocker_reason_patterns??t.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:xe(e.validation?.lifecycle_closure_like_blocked_reason_patterns??t.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:xe(e.validation?.lifecycle_closure_like_resolution_patterns??t.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:xe(e.validation?.lifecycle_closure_like_actual_result_patterns??t.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:Yo(e.validation?.estimate_defaults_by_type)}}function U_(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 B_(e,t){return{...t.search,...e.search,default_mode:fc(e.search?.default_mode),mutation_refresh_policy:uc(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:mc(e.search?.query_expansion?.enabled),provider:_c(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:pc(e.search?.rerank?.enabled),model:hc(e.search?.rerank?.model),top_k:yc(e.search?.rerank?.top_k)}}}function W_(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:gc(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function V_(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function K_(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 q_(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function pt(e){let t=(e??[]).map(r=>gi(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 Sc(e){let t=lc(),n=lr({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:V_(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:H_(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:U_(e,t),agent_guidance:wc(e.agent_guidance??t.agent_guidance),item_types:{definitions:pt(e.item_types?.definitions)},schema:kt(e.schema??t.schema),context:K_(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:kc(e.extensions.policy??t.extensions.policy)},search:B_(e,t),providers:q_(e,t),vector_store:W_(e,t)}}function X_(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(Y(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=ti(e.agent_identity.harness_signals).map(n=>T(Y(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(Y(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=T(Y(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(Y(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=T(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=T(Y(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=ti(e.extensions.policy.extension_overrides).map(n=>T(Y(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","default_mode","mutation_refresh_policy","query_expansion","rerank"]),e.search.query_expansion=T(Y(e.search.query_expansion),["enabled","provider"]),e.search.rerank=T(Y(e.search.rerank),["enabled","model","top_k"]),e.providers=T(e.providers,["openai","ollama"]),e.providers.openai=T(Y(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=T(Y(e.providers.ollama),["base_url","model"]),e.vector_store=T(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=T(Y(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=T(Y(e.vector_store.lancedb),["path"])}function G_(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 Y_(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:Ic(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:xe(e.validation?.lifecycle_stale_blocker_reason_patterns??k.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:xe(e.validation?.lifecycle_closure_like_blocked_reason_patterns??k.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:xe(e.validation?.lifecycle_closure_like_resolution_patterns??k.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:xe(e.validation?.lifecycle_closure_like_actual_result_patterns??k.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:Yo(e.validation?.estimate_defaults_by_type)}}function J_(e){return{...k.search,...e.search,default_mode:fc(e.search?.default_mode),mutation_refresh_policy:uc(e.search?.mutation_refresh_policy),query_expansion:{...k.search.query_expansion,...e.search?.query_expansion,enabled:mc(e.search?.query_expansion?.enabled),provider:_c(e.search?.query_expansion?.provider)},rerank:{...k.search.rerank,...e.search?.rerank,enabled:pc(e.search?.rerank?.enabled),model:hc(e.search?.rerank?.model),top_k:yc(e.search?.rerank?.top_k)}}}function Q_(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 Z_(e){return{...e.vector_store,adapter:e.vector_store?.adapter??k.vector_store.adapter,collection_name:gc(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function ep(e,t,n,r){return{...e,item_format:"toon",validation:Y_(e,t),governance:t,agent_guidance:wc(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:J_(e),context:Q_(e),extensions:{enabled:ei(e.extensions?.enabled),disabled:ei(e.extensions?.disabled),policy:kc(e.extensions?.policy)},vector_store:Z_(e)}}function Tc(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(!qe(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:{};Tc(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var Cc=["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 cc(e,t){let n=G_(e),r=lr(n),o=kt(n.schema),i=L_(n,t),s=ep(n,r,o,i),a=T({...s,governance:C_(r)},Cc);return X_(a),a}function tp(e,t={}){let n=cc(e,t.persist_source);if(t.persist_source){let r=Sc(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=cc(r,t.persist_source),i=structuredClone(t.persist_source.source_settings);return Tc(i,o,n),`${JSON.stringify(T(i,Cc),null,2)}
|
|
175
|
+
`}return`${JSON.stringify(n,null,2)}
|
|
176
|
+
`}async function Oc(e){let t=wt(e),n=[t];await be({path:t,scope:"project"});let r=oc(e);if(r){let d=await Ce(r.tracked_paths);if(Kt(d,r.signatures))return dr(r.value)}let o=await Ce([t]),i;try{i=await ve(t)}catch{return qt("settings_read_fs_error")}if(i===null){let d=qt();return await Qo(e,[t],d,o,[t]),d}let s=await Ce([t]);if(!Kt(o,s))return Oe(e),Oc(e);let a;try{a=JSON.parse(i)}catch{let d=qt("settings_read_invalid_json");return await Qo(e,[t],d,s,[t]),d}let c=Za(a);if(!c.success){let d=qt("settings_read_invalid_schema");return await Qo(e,[t],d,s,[t]),d}try{let d=Sc(c.data),u=A_(e,d.schema,t);n=u;let f=await Ce(u),m=await Ti(e,d.schema),p=await Ci(e,d.schema),_=await Ce(u),y={...d,item_types:{definitions:pt([...d.item_types.definitions,...ti(p.type_definitions_from_file)])},schema:p.schema};vc(y,x_(c.data,y));let g={settings:y,metadata:{has_explicit_item_format:P_(a)},warnings:[...c.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],...m.created_paths.map(S=>`runtime_schema_bootstrap_created:${S}`),...p.warnings]};return m.created_paths.length===0?Kt(f,_)?cr(e,{tracked_paths:u,signatures:_,value:dr(g)}):Oe(e):Oe(e),g}catch{let d=qt("settings_read_merge_failed");return await D_(e,n,d),d}}async function xc(e){return(await Oc(e)).settings}async function Wb(e,t,n=k_){let r=wt(e),o=tp(t,{persist_source:bc(t)});try{await ga({pmRoot:e,filePath:r,raw:o,op:n,author:ds(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),await me({path:r,scope:"project",op:n})}finally{Oe(e)}}import np from"node:fs/promises";import rp 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 op(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function ip(e,t){return new b(`Missing history stream for ${e}. ${t} requires history streams when settings.history.missing_stream is strict_error.`,v.NOT_FOUND)}async function sp(e,t){return await hi(rp.dirname(e)),await(await np.open(e,"a")).close(),me({path:e,scope:"project",op:`${t}:history:auto_create`})}async function ni(e){return ap({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function ap(e){let t=op(e.itemIds),n=[],r=[];for(let o of t){let i=Ne(e.pmRoot,o);if(!await De(i)){if(e.settings.history.missing_stream==="strict_error")throw ip(o,e.commandLabel);r.push(...await sp(i,e.commandLabel)),r.push(`history_stream_auto_created:${o}`),n.push(o)}}return{auto_created_ids:n,warnings:r}}import oi from"node:fs/promises";import ur 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 ii(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 fr(e){return new b(`Tracker root is not a directory at ${e}.`,v.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 ri(e){return new b(`Tracker root is not readable at ${e}.`,v.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 cp(e){let t=ur.resolve(e),n=ur.parse(t).root,r=ur.dirname(t);for(;r!==n;){let o;try{o=await oi.stat(r)}catch(i){if(Ae(i,"ENOTDIR"))throw fr(e);if(!Ae(i,"ENOENT"))throw i;r=ur.dirname(r);continue}if(!o.isDirectory())throw fr(e);return}}async function ht(e){let t;try{t=await oi.stat(e)}catch(n){throw Ae(n,"ENOENT")?(await cp(e),new b(`Tracker is not initialized at ${e}. Tracker root does not exist. Run pm init first.`,v.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:ii(e)})):Ae(n,"ENOTDIR")?fr(e):Ae(n,"EACCES")||Ae(n,"EPERM")?ri(e):n}if(!t.isDirectory())throw fr(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw ri(e);try{await(await oi.opendir(e)).close()}catch(n){throw Ae(n,"EACCES")||Ae(n,"EPERM")?ri(e):n}}async function si(e){if(await ht(e),!await De(wt(e)))throw new b(`Tracker is not initialized at ${e}. Run pm init first.`,v.NOT_FOUND,{code:"tracker_not_initialized",reason:"settings_missing",resolved_path:e,nextSteps:["Initialize the selected tracker root with the emitted retry."],recovery:ii(e)})}import yt from"node:fs/promises";import dp from"node:path";import{isUtf8 as lp}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]="abd6941f-b4cc-50e4-a64e-d0720d73cdba")}catch{}})();async function up(e){try{return await yt.access(e),!0}catch{return!1}}function fp(e,t){e&&(e.includes(t)||e.push(t))}function Ac(e){return e??en(fe())}function mp(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}async function mr(e,t,n="pm-",r,o=Re){let i=t.trim(),s=i.startsWith("#")?i.slice(1):i;if(s.length===0)return null;let a=Pt(t,n),c=Oo(t),d=[...new Set([s,a,c])].filter(m=>m.length>0),u=Object.entries(o),f=mp(r);for(let m of d)for(let[p]of u)for(let _ of f){let y=yr(e,p,m,_,o);if(await up(y))return{id:m,type:p,itemPath:y,item_format:_}}return null}async function _r(e,t={}){let n=await _p(e,t);if(n.error!==null)throw n.error;return{raw:n.raw,document:n.document}}async function _p(e,t={}){let n=await yt.readFile(e.itemPath);if(!lp(n))throw new b("Item contains invalid UTF-8; preserve a binary backup before recovering it.",v.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 be({path:e.itemPath,scope:"project"});let o;try{o=vn(r,{format:e.item_format,schema:t.schema,extensionFieldNames:Ac(t.extensionFieldNames),onWarning:i=>fp(t.warnings,i)})}catch(i){if(i instanceof b&&i.code==="item_document_invalid")return{raw:r,document:null,error:new b(`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 pp(e,t,n=Re,r,o){await ht(e);let i=await $a(e,t,n,r,o);return $n(i.length),i.map(s=>s.metadata)}async function Rc(e,t,n=Re,r,o){await ht(e);let i=await za(e,t,n,r,o);return $n(i.length),i.map(s=>s.metadata)}async function Aw(e,t,n=Re,r,o,i={}){await ht(e);let s=await Zn(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan});return $n(s.length),s.map(a=>({...a.metadata,body:a.body}))}function Dc(e){return{async get(t){let n=await mr(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await _r(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>pp(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function hp(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await yt.readdir(dp.join(e,o));for(let s of i)for(let a of nn)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function yp(e,t,n,r){let o=Pt(t,n),i=await hp(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(c=>({id:c,distance:Xt(c,o,s)})).filter(c=>c.distance!==null).sort((c,d)=>c.distance-d.distance).slice(0,3).map(c=>c.id)}async function gp(e,t,n,r){let o=await yp(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 b(`Item ${t} not found`,v.NOT_FOUND,{nextSteps:i})}function vp(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 Nc(e){let t=e.typeToFolder??tn(e.settings,fe()).type_to_folder,n=await mr(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await gp(e.pmRoot,e.id,e.settings.id_prefix,t);let r=await Q(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 _r(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||a,d=cs(e.author),u=lr(e.settings);if(a&&c!==d&&!e.force&&!vp(e.op,e.bypassAssigneeConflict)){if(u.ownership_enforcement==="strict")throw new b(`Item ${n.id} is assigned to ${a}. Use --force to override.`,v.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 bp(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 wp(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await X(e.originalItemPath,e.originalRaw),await yt.rm(e.effectiveTargetItemPath,{force:!0});return}await X(e.originalItemPath,e.originalRaw)}}async function Lc(e){let t=await Nc({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=re(i,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),d=re(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=we();let m=re(d,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),p=await So({pmRoot:e.pmRoot,settings:e.settings,operation:e.op,author:e.author,before:c,after:m});await wr({pm_root:e.pmRoot,operation:e.op,before:c,after:m,changed_fields:u.changedFields,sdk:Dc({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let _=await ni({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),y="toon",g=Ss(m,{format:y,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),S=yr(e.pmRoot,m.metadata.type,r.id,y,n),A=Ne(e.pmRoot,r.id),D=await St("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:S,history_path:A,item_format:y,before:c,after:m,contents:g}),{effectiveTargetItemPath:$,effectiveSerializedAfter:x,skipItemWrite:K}=bp(D,S,g),W=await Po(e.pmRoot,e.author),J=[];try{K||await X($,x),!K&&$!==r.itemPath&&await yt.rm(r.itemPath);let ee=at({nowIso:m.metadata.updated_at,author:e.author,op:e.op,before:c,after:m,message:e.message,context:p.decisions.length===0?f:{...f,workflow_policies:p.decisions}});try{await ct(A,ee)}catch(ye){throw await wp({skipItemWrite:K,effectiveTargetItemPath:$,originalItemPath:r.itemPath,originalRaw:o}),ye}K||(J=await jo({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:$,previousItemPath:r.itemPath,document:m}))}finally{await W()}let q=[...await me({path:$,scope:"project",op:e.op,item_id:m.metadata.id,item_type:m.metadata.type,before:c,after:m,changed_fields:u.changedFields}),...await me({path:A,scope:"project",op:`${e.op}:history`,item_id:m.metadata.id,item_type:m.metadata.type,before:c,after:m,changed_fields:u.changedFields})];return br({id:m.metadata.id,op:e.op,item_type:m.metadata.type,previous_status:c.metadata.status,status:m.metadata.status,previous:sn(c.metadata,u.changedFields),current:sn(m.metadata,u.changedFields),changed_fields:u.changedFields}),{item:m.metadata,body:m.body,changedFields:u.changedFields,warnings:[...s,...u.warnings??[],...p.warnings,..._.warnings,...D.warnings,...J,...q]}}finally{await a()}}async function Rw(e){return Lc(e)}async function Dw(e){return Lc(e)}async function Nw(e){let t=await Nc({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=Ac(void 0),c=re(o,{schema:e.settings.schema,extensionFieldNames:a}),d=await So({pmRoot:e.pmRoot,settings:e.settings,operation:"delete",author:e.author,before:c,after:null,dryRun:e.dryRun});await wr({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:Dc({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let u=await ni({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),f=we(),m=Ke,p=at({nowIso:f,author:e.author,op:"delete",before:c,after:m,message:e.message,context:d.decisions.length===0?void 0:{workflow_policies:d.decisions}}),_=Ne(e.pmRoot,n.id),y=await St("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:_,before:c}),g=n.itemPath,S=!1;if(y.handled&&typeof y.result=="object"&&y.result!==null){let x=y.result;typeof x.item_path=="string"&&x.item_path.trim().length>0&&(g=x.item_path),x.skip_delete===!0&&(S=!0)}if(e.dryRun===!0)return{item:c.metadata,changedFields:["deleted"],targetPath:g,warnings:[...i,...d.warnings,...u.warnings,...y.warnings]};let A=await Po(e.pmRoot,e.author),D=[];try{S||await yt.rm(g);try{await ct(_,p)}catch(x){throw S||await X(g,r),x}S||(D=await jo({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:g,document:null}))}finally{await A()}let $=[...await me({path:g,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:m,changed_fields:["deleted"]}),...await me({path:_,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:m,changed_fields:["deleted"]})];return br({id:c.metadata.id,op:"delete",item_type:c.metadata.type,previous_status:c.metadata.status,previous:sn(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...i,...d.warnings,...u.warnings,...y.warnings,...D,...$]}}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 Ep(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:Xt(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 Pc(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function zw(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(m=>m.trim()))].filter(Boolean).sort((m,p)=>m.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:Ep(r,o),u=Pc([...i,r,...s]),f=e.retry_command??(d?Pc([...i,d,...s]):void 0);return new b(`Unknown ${a} ${c} "${r}". Allowed: ${o.join(", ")}${e.message_suffix??""}`,e.exit_code??v.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 kp=["tree","graph","context"],Ip=["none","repeated"],Sp=["outgoing","incoming","both"],Tp=32,Cp=200,Op=400,xp=16e3;function Ap(e){let t=e?.trim().toLowerCase()??"tree";if(kp.includes(t))return t;throw new b(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,v.USAGE)}function gt(e,t){if(e===void 0)return;let n=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(n)||n<1)throw new b(`Invalid --${t} value "${e}". Use a positive integer.`,v.USAGE);return n}function Mc(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new b(`Invalid --max-depth value "${e}". Use a non-negative integer.`,v.USAGE);return t}function Rp(e){let t=e?.trim().toLowerCase()??"none";if(Ip.includes(t))return t;throw new b(`Invalid --collapse value "${e}". Use "none" or "repeated".`,v.USAGE)}function Dp(e){let t=e?.trim().toLowerCase()??"both";if(Sp.includes(t))return t;throw new b(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,v.USAGE)}function Np(e,t=le()){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 b(`Invalid --kind value "${o}". Registered kinds: ${s}.`,v.USAGE)}r.add(i.kind)}return[...r].sort()}function Lp(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 Pp(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:Lp(e.dependencies)}}function jp(e){return on(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function Mp(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(Fc(d.id,n,r,o,i,s,a,c+1,d.kind))}}function Fp(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 Fc(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+=jp(f),Fp(f,u,d,r,o,i,s,a))return f;o==="repeated"&&i.add(d);let m=new Set(n);return m.add(d),Mp(f,u,t,m,r,o,i,s,a),f}function jc(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 $p(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,jc(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,jc(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 $c(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 m of f.dependencies)o.add(`${u}::${m.id.trim().toLowerCase()}::${m.kind}`),a.push({id:m.id,depth:d.depth+1})}}return{node_count:r.size,edge_count:o.size,edge_basis:"deduplicated_directed",missing_count:i.size}}function zp(e,t=le()){let n=Mc(e.maxDepth),r=gt(e.nodeLimit,"node-limit"),o=gt(e.edgeLimit,"edge-limit"),i=gt(e.tokenBudget,"token-budget"),s=Np(e.kind,t);return{direction:Dp(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 Hp(e,t,n,r){return Ga(e.graph,t,e.details.map(o=>o.id===t&&r.length>0?{...o,evidence:r}:o),n)}function ai(e,t,n,r){for(let o of n.slice(0,r)){let i=o?.trim();i&&e.push(`${t}:${i}`)}}async function Up(e,t,n,r){let o=await mr(e,t,n.id_prefix,n.item_format,r);if(!o)return[];let{document:i}=await _r(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(([,m])=>m===0))return[];let f=[`linked:${u.map(([m,p])=>`${m}=${p}`).join(",")}`];return ai(f,"file",a.map(m=>m.path),3),ai(f,"test",c.map(m=>m.command??m.path),2),ai(f,"doc",d.map(m=>m.path),2),f}function Bp(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 Wp(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 zc(e,t,n){let r;for(;;){let o=on(new TextEncoder().encode(mo(vr("deps",e),t)).byteLength);if(o===r)return o;n(o),r=o}}function Vp(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function Kp(e){try{return Hp(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&Vp(t))return e.smallestResult;throw t}}function qp(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,m,p;for(;;){let _=Kp({assembly:t,canonicalId:n,contextOptions:r,internalTokenBudget:f,rootEvidence:o,smallestResult:p});if("format"in _)return _;let y=_;m??=y.meta.tokenBudget,f??=m;let g=Bp({canonicalId:n,context:y,missingCount:a,missingReferences:c,referenceLimit:u,summaryOnly:i});if(p=g,i||(y.meta.tokenBudget=m,y.meta.usedTokens=zc(vt(g,!1),s,D=>{y.meta.usedTokens=D}),y.meta.usedTokens<=m))return g;if(u>0){u-=1;continue}let S=f,A=S*m/y.meta.usedTokens;f=Math.min(S-1,Math.max(1,Math.floor(A*.9)))}}function Xp(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:o,summaryOnly:i,outputFormat:s}=e,a=zp(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(),m=a.kinds?new Set(a.kinds.map(y=>f.require(y).kind)):void 0,p=new Set([n,...c.value]),_=[...t.dangling.active,...t.dangling.legacy_terminal].filter(y=>Wp({row:y,missingReachableSet:u,packetIds:p,filteredKinds:m,registry:f}));return qp({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:d.length,missingReferences:_})}function Gp(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 Yp(e,t,n,r,o,i,s){let a=o??Tp,c=gt(n.nodeLimit,"node-limit")??Cp,d=gt(n.edgeLimit,"edge-limit")??Op,u=gt(n.tokenBudget,"token-budget")??xp,f={nodeLimit:c,edgeLimit:d,tokenBudget:u,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},m=Fc(e,r,new Set,a,t==="graph"?"repeated":i,new Set,f),p=$c(e,r,void 0),_;for(;;){let y=$p(m),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(_=t==="tree"?{...S,tree:m}:{...S,graph:y},(_.truncation===void 0?on(new TextEncoder().encode(mo(vr("deps",vt(_,!1)),s)).byteLength):zc(vt(_,!1),s,D=>{_.truncation.estimated_tokens=D}))<=u)return _;if(!Gp(m))return f.reasons.add("token_budget"),_;f.reasons.add("token_budget")}}function vt(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 iE(e,t,n){let r=wi(process.cwd(),n.path);await si(r);let o=Ap(t.format),i=Mc(t.maxDepth),s=Rp(t.collapse);Mi(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await xc(r),d=tn(c,fe()),u=await Rc(r,c.item_format,d.type_to_folder,void 0,c.schema),f=rn(c.schema),m=new Map(u.map(_=>[_.id.trim().toLowerCase(),Pp(_)])),p=$o(u,_=>he(_,f));for(let _ of[...p.active,...p.legacy_terminal]){let y=m.get(_.holder_id.trim().toLowerCase()),g=_.kind.trim().toLowerCase();y&&!y.dependencies.some(S=>S.id.trim().toLowerCase()===_.target_id.trim().toLowerCase()&&S.kind===g)&&y.dependencies.push({id:_.target_id,kind:g})}if(!m.has(e.trim().toLowerCase()))throw new b(`Item ${e} not found`,v.NOT_FOUND);if(o==="context"){let _=m.get(e.trim().toLowerCase()).id,y=a?[]:await Up(r,_,c,d.type_to_folder),g=D=>he(D,f),S=de(),A=Xa().lookup(r,Ka(u,g,S),()=>nr(u,g,S));return vt(Xp({assembly:A.assembly,canonicalId:_,options:t,rootEvidence:y,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,A.assembly.legacyAliasCounts)}return a?vt({id:e,format:o,...$c(e,m,i)},!0,Object.fromEntries(Object.entries(nr(u,_=>he(_,f)).legacyAliasCounts))):vt(Yp(e,o,t,m,i,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(nr(u,_=>he(_,f)).legacyAliasCounts)))}export{Ru as a,Le as b,Ir as c,Qp as d,Zp as e,cn as f,xr as g,sh as h,ah as i,ch as j,dh as k,lh as l,uh as m,Fr as n,$r as o,es as p,wh as q,Eh as r,kh as s,Ih as t,Sh as u,Th as v,Br as w,is as x,Ch as y,Oh as z,xh as A,bd as B,cs as C,ds as D,_s as E,Tt as F,Uh as G,Bh as H,Je as I,ls as J,Rh as K,us as L,wd as M,Dh as N,mn as O,Qe as P,he as Q,pn as R,gn as S,vn as T,Ss as U,re as V,ql as W,nt as X,rt as Y,_u as Z,xy as _,Ay as $,Ry as aa,eg as ba,$u as ca,Rn as da,ze as ea,Nt as fa,Eg as ga,go as ha,Ln as ia,na as ja,kg as ka,ia as la,Ig as ma,at as na,ct as oa,Ts as pa,nf as qa,Pn as ra,Ng as sa,bo as ta,jn as ua,Lg as va,Pg as wa,la as xa,Mn as ya,ma as za,dt as Aa,uf as Ba,jg as Ca,Mg as Da,Lt as Ea,Eo as Fa,Yg as Ga,Jg as Ha,ha as Ia,Qg as Ja,ga as Ka,Ob as La,lr as Ma,Oc as Na,xc as Oa,Wb as Pa,yf as Qa,vf as Ra,bf as Sa,wf as Ta,Ef as Ua,So as Va,mv as Wa,ni as Xa,ap as Ya,Ea as Za,Oo as _a,Pt as $a,bv as ab,Tv as bb,Cv as cb,Ov as db,La as eb,Bf as fb,Po as gb,Hv as hb,jo as ib,Zn as jb,ht as kb,si as lb,mr as mb,_r as nb,_p as ob,pp as pb,Rc as qb,Aw as rb,Dc as sb,gp as tb,Rw as ub,Dw as vb,Nw as wb,zw as xb,nb as yb,rb as zb,Rm as Ab,de as Bb,Gv as Cb,tr as Db,Yv as Eb,xm as Fb,Jv as Gb,Bt as Hb,Nm as Ib,Pm as Jb,$o as Kb,jm as Lb,lb as Mb,nr as Nb,Ka as Ob,zo as Pb,Xa as Qb,pb as Rb,Ga as Sb,gt as Tb,Mc as Ub,Dp as Vb,Np as Wb,iE as Xb,Wo as Yb,Jm as Zb,Vt as _b,ir as $b,Ja as ac,Qm as bc,Zm as cc,e_ as dc,r_ as ec};
|
|
177
|
+
//# sourceMappingURL=chunk-TTYXF5YD.js.map
|