@unbrained/pm-cli 2026.11.1 → 2026.11.2

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.
Files changed (146) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +18 -0
  3. package/CONTRIBUTING.md +1 -1
  4. package/dist/cli/migration-gates.js +1 -1
  5. package/dist/cli-bundle/bundle-manifest.json +1 -1
  6. package/dist/cli-bundle/chunks/{chunk-TMPO4CTZ.js → chunk-3A4NVHYS.js} +2 -2
  7. package/dist/cli-bundle/chunks/{chunk-UUN3WNMQ.js → chunk-3ZQQVJT2.js} +3 -3
  8. package/dist/cli-bundle/chunks/{chunk-TYERATXH.js → chunk-4HW253W2.js} +2 -2
  9. package/dist/cli-bundle/chunks/{chunk-F3ECOBKA.js → chunk-4OELCF3O.js} +2 -2
  10. package/dist/cli-bundle/chunks/{chunk-2GK2IVU5.js → chunk-533L6D2N.js} +3 -3
  11. package/dist/cli-bundle/chunks/{chunk-NILQ2ZMV.js → chunk-ABFFRQRO.js} +2 -2
  12. package/dist/cli-bundle/chunks/chunk-BFZUJ5QP.js +115 -0
  13. package/dist/cli-bundle/chunks/{chunk-SBVX5CMV.js → chunk-D52QQ7LP.js} +2 -2
  14. package/dist/cli-bundle/chunks/{chunk-WFBYKDB2.js → chunk-DAZFCSDV.js} +2 -2
  15. package/dist/cli-bundle/chunks/{chunk-ICT6E4IW.js → chunk-EN27ZQSV.js} +2 -2
  16. package/dist/cli-bundle/chunks/{chunk-MRUA2Z43.js → chunk-GK2CHAT3.js} +2 -2
  17. package/dist/cli-bundle/chunks/{chunk-MTRIGD7M.js → chunk-HOGKWJU5.js} +42 -42
  18. package/dist/cli-bundle/chunks/{chunk-WX25MU4N.js → chunk-J3JM36EH.js} +3 -3
  19. package/dist/cli-bundle/chunks/{chunk-O56O7NIE.js → chunk-JRXD7SIL.js} +2 -2
  20. package/dist/cli-bundle/chunks/{chunk-5KW4WUAK.js → chunk-K46GDAKX.js} +2 -2
  21. package/dist/cli-bundle/chunks/{chunk-N45IXPCA.js → chunk-KJLGBLR3.js} +2 -2
  22. package/dist/cli-bundle/chunks/{chunk-UEEG47TU.js → chunk-NGRPD3ZO.js} +2 -2
  23. package/dist/cli-bundle/chunks/chunk-OJR2YGXF.js +31 -0
  24. package/dist/cli-bundle/chunks/chunk-QHHFXNSQ.js +3 -0
  25. package/dist/cli-bundle/chunks/{chunk-Y7CKVU56.js → chunk-RGHLQGEX.js} +2 -2
  26. package/dist/cli-bundle/chunks/{chunk-6PKWKVS6.js → chunk-VEOFWE32.js} +2 -2
  27. package/dist/cli-bundle/chunks/chunk-ZNWDYDFF.js +129 -0
  28. package/dist/cli-bundle/chunks/{indexed-receipt-blobs-KGMJVFH2.js → indexed-receipt-blobs-IEJ2QOW3.js} +2 -2
  29. package/dist/cli-bundle/chunks/item-transaction-JHPBH6N7.js +2 -0
  30. package/dist/cli-bundle/chunks/{mutation-admission-BOOCJPCU.js → mutation-admission-QUNQZCZ5.js} +2 -2
  31. package/dist/cli-bundle/chunks/{register-list-query-23OX36Q3.js → register-list-query-NZTK3AXA.js} +2 -2
  32. package/dist/cli-bundle/chunks/{register-mutation-JPJ5YNDX.js → register-mutation-2OFAMOVH.js} +2 -2
  33. package/dist/cli-bundle/chunks/{register-operations-IGR7ERY5.js → register-operations-RFMM5KZ6.js} +2 -2
  34. package/dist/cli-bundle/chunks/{register-setup-BMIFKZZP.js → register-setup-6B6Q7M5L.js} +2 -2
  35. package/dist/cli-bundle/chunks/{settlement-hook-YWSWFOZY.js → settlement-hook-UTCEZBFT.js} +2 -2
  36. package/dist/cli-bundle/chunks/{stage-ON7CYYPM.js → stage-VLI4OBVX.js} +2 -2
  37. package/dist/cli-bundle/focused-chunks/{chunk-5TWS5KOM.js → chunk-3UD6F2KQ.js} +2 -2
  38. package/dist/cli-bundle/focused-chunks/{chunk-5WCQFH6D.js → chunk-4NVPDZLX.js} +2 -2
  39. package/dist/cli-bundle/focused-chunks/{chunk-PAT6QF63.js → chunk-4UUE3YXZ.js} +2 -2
  40. package/dist/cli-bundle/focused-chunks/{chunk-2Y77HWIX.js → chunk-5UDDRPYR.js} +2 -2
  41. package/dist/cli-bundle/focused-chunks/{chunk-RPUDOJVB.js → chunk-745IDMTD.js} +2 -2
  42. package/dist/cli-bundle/focused-chunks/{chunk-3NYWMUX3.js → chunk-B6OOKKOX.js} +3 -3
  43. package/dist/cli-bundle/focused-chunks/{chunk-JCR32IAO.js → chunk-EJJWOFP5.js} +2 -2
  44. package/dist/cli-bundle/focused-chunks/chunk-FUGYXUUL.js +80 -0
  45. package/dist/cli-bundle/focused-chunks/{chunk-Z7GIVH6B.js → chunk-HMXVTWIV.js} +2 -2
  46. package/dist/cli-bundle/focused-chunks/{chunk-UQIBGLDR.js → chunk-I4Z2SCV5.js} +2 -2
  47. package/dist/cli-bundle/focused-chunks/chunk-JLN5CFYM.js +2 -0
  48. package/dist/cli-bundle/focused-chunks/chunk-K4FMZB4Y.js +23 -0
  49. package/dist/cli-bundle/focused-chunks/{chunk-DFUTCKUF.js → chunk-MQVBWFJF.js} +2 -2
  50. package/dist/cli-bundle/focused-chunks/{chunk-6GMYW42K.js → chunk-NJFMG3IK.js} +2 -2
  51. package/dist/cli-bundle/focused-chunks/{chunk-6OKPYCLU.js → chunk-PCCZ72C3.js} +54 -54
  52. package/dist/cli-bundle/focused-chunks/chunk-PF553UVP.js +44 -0
  53. package/dist/cli-bundle/focused-chunks/{chunk-VFQAZLKO.js → chunk-Q23K6WLV.js} +2 -2
  54. package/dist/cli-bundle/focused-chunks/{chunk-LVA76N27.js → chunk-QNXXOFLQ.js} +2 -2
  55. package/dist/cli-bundle/focused-chunks/{chunk-JLXGRDTG.js → chunk-QVFE5LIX.js} +3 -3
  56. package/dist/cli-bundle/focused-chunks/{chunk-VS2ZFPXD.js → chunk-RUCG6UWN.js} +2 -2
  57. package/dist/cli-bundle/focused-chunks/{chunk-WX2RVS2Y.js → chunk-SGWYNU7T.js} +2 -2
  58. package/dist/cli-bundle/focused-chunks/chunk-TGS5RXBY.js +26 -0
  59. package/dist/cli-bundle/focused-chunks/{chunk-AL7SOFUL.js → chunk-WD43E7RU.js} +2 -2
  60. package/dist/cli-bundle/focused-chunks/{chunk-GE755ODZ.js → chunk-YM4AMP7H.js} +2 -2
  61. package/dist/cli-bundle/focused-chunks/{indexed-receipt-blobs-KHWT44EK.js → indexed-receipt-blobs-FT3KF6VJ.js} +2 -2
  62. package/dist/cli-bundle/focused-chunks/{item-transaction-7VLPA2SU.js → item-transaction-F4SN7TXJ.js} +2 -2
  63. package/dist/cli-bundle/focused-chunks/{mutation-admission-2DH27R5Y.js → mutation-admission-7R2FXJ5O.js} +2 -2
  64. package/dist/cli-bundle/focused-chunks/{settlement-hook-SJV52ZTV.js → settlement-hook-KMIBD4F2.js} +2 -2
  65. package/dist/cli-bundle/focused-chunks/{stage-FYOBWQA7.js → stage-6B3O2GZ6.js} +2 -2
  66. package/dist/cli-bundle/main.js +24 -24
  67. package/dist/cli-bundle/sdk-authoring.js +1 -1
  68. package/dist/cli-bundle/sdk-contracts.js +1 -1
  69. package/dist/cli-bundle/sdk-core.js +1 -1
  70. package/dist/cli-bundle/sdk-governance.js +1 -1
  71. package/dist/cli-bundle/sdk-graph.js +1 -1
  72. package/dist/cli-bundle/sdk-merge.js +57 -57
  73. package/dist/cli-bundle/sdk-query.js +1 -1
  74. package/dist/cli-bundle/sdk-runtime.js +1 -1
  75. package/dist/cli-bundle/sdk-testing.js +1 -1
  76. package/dist/cli-bundle/sdk.js +9 -9
  77. package/dist/core/extensions/extension-types.d.ts +5 -0
  78. package/dist/core/extensions/extension-types.js +1 -1
  79. package/dist/core/item/parse.js +2 -2
  80. package/dist/core/lock/lock-confinement.d.ts +55 -0
  81. package/dist/core/lock/lock-confinement.js +2 -0
  82. package/dist/core/lock/lock-gc.js +1 -1
  83. package/dist/core/lock/lock.js +2 -2
  84. package/dist/core/shared/errors.d.ts +6 -0
  85. package/dist/core/shared/errors.js +1 -1
  86. package/dist/core/store/settings-sections.d.ts +61 -0
  87. package/dist/core/store/settings-sections.js +3 -0
  88. package/dist/core/store/settings-validator.d.ts +4 -0
  89. package/dist/core/store/settings-validator.js +1 -1
  90. package/dist/core/store/settings.d.ts +29 -2
  91. package/dist/core/store/settings.js +4 -3
  92. package/dist/core/telemetry/consent.js +2 -2
  93. package/dist/core/telemetry/runtime.js +2 -2
  94. package/dist/core/test/background-runs.js +3 -3
  95. package/dist/sdk/config.js +1 -1
  96. package/dist/sdk/extension-command-context.js +2 -2
  97. package/dist/sdk/generated/error-code-catalog-rows.d.ts +39 -0
  98. package/dist/sdk/generated/error-code-catalog-rows.js +2 -0
  99. package/dist/sdk/generated/generated-error-code-catalog-part-1.d.ts +3 -3
  100. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
  101. package/dist/sdk/generated/generated-error-code-catalog-part-2.d.ts +3 -3
  102. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
  103. package/dist/sdk/generated-error-code-catalog.js +1 -1
  104. package/dist/sdk/mcp/discovery.js +1 -1
  105. package/dist/sdk/public-surface.json +1 -1
  106. package/dist/sdk/runtime-primitives.d.ts +2 -1
  107. package/dist/sdk/runtime-primitives.js +1 -1
  108. package/docs/AGENT_EVIDENCE_CONSISTENCY.md +10 -0
  109. package/docs/CONFIGURATION.md +9 -0
  110. package/docs/DEVELOPMENT_DEPENDENCY_SECURITY.md +9 -6
  111. package/docs/RELEASING.md +22 -2
  112. package/docs/SDK.md +28 -1
  113. package/docs/SDK_CONFIGURATION_SAFETY.md +55 -0
  114. package/docs/TESTING.md +2 -1
  115. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +12 -3
  116. package/marketplace.json +1 -1
  117. package/package.json +9 -3
  118. package/packages/pm-beads/package.json +1 -1
  119. package/packages/pm-calendar/package.json +1 -1
  120. package/packages/pm-command-kit/package.json +1 -1
  121. package/packages/pm-digital-twin/package.json +1 -1
  122. package/packages/pm-governance-audit/package.json +1 -1
  123. package/packages/pm-guide-shell/package.json +1 -1
  124. package/packages/pm-kanban/package.json +1 -1
  125. package/packages/pm-lifecycle-hooks/package.json +1 -1
  126. package/packages/pm-linked-test-adapters/package.json +1 -1
  127. package/packages/pm-search-advanced/package.json +1 -1
  128. package/packages/pm-templates/package.json +1 -1
  129. package/packages/pm-todos/package.json +1 -1
  130. package/packages/pm-vcs/package.json +1 -1
  131. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  132. package/plugins/pm-claude/package.json +1 -1
  133. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  134. package/plugins/pm-codex/package.json +1 -1
  135. package/plugins/pm-codex/plugin.json +1 -1
  136. package/runtime-dependencies.json +1 -1
  137. package/dist/cli-bundle/chunks/chunk-5WVE7XBS.js +0 -114
  138. package/dist/cli-bundle/chunks/chunk-E74BORFX.js +0 -128
  139. package/dist/cli-bundle/chunks/chunk-MP2DQJH2.js +0 -3
  140. package/dist/cli-bundle/chunks/chunk-O6TFUV6M.js +0 -31
  141. package/dist/cli-bundle/chunks/item-transaction-Q5S5YLEJ.js +0 -2
  142. package/dist/cli-bundle/focused-chunks/chunk-3Z53POXU.js +0 -2
  143. package/dist/cli-bundle/focused-chunks/chunk-7WJDRZOR.js +0 -22
  144. package/dist/cli-bundle/focused-chunks/chunk-CIQ6YWCW.js +0 -26
  145. package/dist/cli-bundle/focused-chunks/chunk-M22TI7LP.js +0 -79
  146. package/dist/cli-bundle/focused-chunks/chunk-SXZM4PSS.js +0 -44
@@ -1,3 +1,3 @@
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]="7474e879-83ca-56ff-981a-fdfede976378")}catch{}})();var b=["commands","renderers","hooks","schema","importers","search","parser","preflight","services"],F=2,v=Object.freeze({migration:"schema",validation:"schema"}),M=Object.freeze({version:2,capabilities:[...b],legacy_aliases:{...v}}),P=["off","warn","enforce"],U=["off","warn","enforce"],Y=["none","restricted","strict"],q=["block","warn"],W=["commands.override","commands.handler","hooks.beforecommand","hooks.beforemutation","hooks.aftercommand","hooks.onwrite","hooks.onread","hooks.onindex","schema.flags","schema.itemfields","schema.itemtypes","schema.relationshipkinds","schema.migrations","schema.profiles","parser.override","preflight.override","services.override","renderers.override","importers.importer","importers.exporter","search.provider","search.vectorstore","services.assuranceprovider"],X=["output_format","error_format","help_format","lock_acquire","lock_release","history_append","item_store_write","item_store_delete","context_relevance","command_result"];function m(){return{mode:"off",trust_mode:"off",require_provenance:!1,trusted_extensions:[],default_sandbox_profile:"none",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:[]}}(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]="3d6df465-e82e-57d8-a687-6c2e720c99c1")}catch{}})();var E=["goal","objective","value","impact","outcome","why_now","parent","reviewer","risk","confidence","sprint","release","blocked_by","blocked_reason","unblock_note","reporter","severity","environment","repro_steps","resolution","expected_result","actual_result"],T=["id","title","description","type","pm_format_version","source_type","type_options","status","priority","tags","created_at","updated_at","deadline","reminders","events","closed_at","completed_at","assignee","claim_principal","source_owner","author","estimated_minutes","acceptance_criteria","design","external_ref","definition_of_ready","order",...E,"affected_version","fixed_version","component","regression","customer_impact","dependencies","comments","notes","learnings","files","tests","test_runs","docs","close_reason","duplicate_of","plan_mode","plan_scope","plan_harness","plan_resume_context","plan_validation","plan_decisions","plan_discoveries","plan_steps"],k=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]="426ae308-83c5-5c99-bb0d-c63e9c890570")}catch{}})();var I=Object.freeze([{id:"draft",roles:["draft"]},{id:"open",roles:["active","default_open"]},{id:"in_progress",aliases:["in-progress"],roles:["active"]},{id:"blocked",roles:["blocked"]},{id:"closed",roles:["terminal","terminal_done","default_close"]},{id:"canceled",aliases:["cancelled"],roles:["terminal","terminal_canceled","default_cancel"]}]),O=Object.freeze({draft_status:"draft",open_status:"open",in_progress_status:"in_progress",blocked_status:"blocked",close_status:"closed",canceled_status:"canceled"}),z=".agents/pm",$="settings.json",V="Closed at creation via pm create",N=["","epics","features","tasks","chores","issues","schema","history","search","extensions","locks"],A=["decisions","events","reminders","milestones","meetings","plans"],J=[...N,...A],Q={Epic:"epics",Feature:"features",Task:"tasks",Chore:"chores",Issue:"issues",Decision:"decisions",Event:"events",Reminder:"reminders",Milestone:"milestones",Meeting:"meetings",Plan:"plans"},D={minimal:{ownership_enforcement:"none",create_mode_default:"progressive",close_validation_default:"off",require_close_reason:!0,parent_reference:"strict_error",metadata_profile:"core",force_required_for_stale_lock:!1,duplicate_detection_mode:"off",duplicate_detection_threshold:.8,duplicate_detection_limit:3},default:{ownership_enforcement:"warn",create_mode_default:"progressive",close_validation_default:"warn",require_close_reason:!0,parent_reference:"strict_error",metadata_profile:"core",force_required_for_stale_lock:!0,duplicate_detection_mode:"strict",duplicate_detection_threshold:.8,duplicate_detection_limit:3},strict:{ownership_enforcement:"strict",create_mode_default:"strict",close_validation_default:"strict",require_close_reason:!0,parent_reference:"strict_error",metadata_profile:"strict",force_required_for_stale_lock:!0,duplicate_detection_mode:"strict",duplicate_detection_threshold:.8,duplicate_detection_limit:3}},S=["no active blocker","ready for planned execution sequencing","work completed","work is closed"],u={blocked_reason:["no active blocker because work is closed","work is closed"],resolution:["closed with implementation evidence","closed with verification evidence","work completed and recorded","work is closed"],actual_result:["closed and recorded","work completed","work completed and recorded"]};function h(e){return e?[...e]:void 0}var Z={version:1,id_prefix:"pm-",ids:{token_length:4},author_default:"",agent_identity:{probes_enabled:!0,identity_vocabulary:{version:1,aliases:{}},harness_signals:[]},mutation_guard:{require_attributed_author:!1,secret_guard:"advise",stale_in_progress_hours:72},item_format:"toon",locks:{ttl_seconds:1800,wait_ms:3e3},checkpoints:{retention_days:14},output:{default_format:"toon"},ux:{deprecation_hints:!0},history:{missing_stream:"auto_create",compact_policy:{enabled:!1,max_entries:500,trigger:"health_warn"}},validation:{sprint_release_format:"warn",parent_reference:"warn",metadata_profile:"core",metadata_required_fields:[],lifecycle_stale_blocker_reason_patterns:[...S],lifecycle_closure_like_blocked_reason_patterns:[...u.blocked_reason],lifecycle_closure_like_resolution_patterns:[...u.resolution],lifecycle_closure_like_actual_result_patterns:[...u.actual_result],estimate_defaults_by_type:{}},governance:{preset:"minimal",...D.minimal},workflow:{definition_of_done:[]},testing:{record_results_to_items:!1,allow_untrusted_linked_tests:!1},telemetry:{enabled:!0,first_run_prompt_completed:!1,capture_level:"redacted",endpoint:"https://pm-cli.unbrained.dev/v1/events",installation_id:"",retention_days:365},agent_guidance:{prompt_completed:!1,declined:!1,declined_at:"",template_version:1,last_checked_files:[]},item_types:{definitions:[]},schema:{version:1,files:{types:"schema/types.json",statuses:"schema/statuses.json",fields:"schema/fields.json",workflows:"schema/workflows.json"},statuses:I.map(e=>({...e,aliases:h(e.aliases),roles:h(e.roles)})),fields:[],workflow:{...O},unknown_field_policy:"allow"},extensions:{enabled:[],disabled:[],policy:m()},search:{score_threshold:0,hybrid_semantic_weight:.7,max_results:50,embedding_model:"",embedding_batch_size:32,embedding_timeout_ms:3e4,scanner_max_batch_retries:3,provider:"",default_mode:"auto",mutation_refresh_policy:"semantic_configured",query_expansion:{enabled:!1,provider:""},rerank:{enabled:!1,model:"",top_k:20}},providers:{openai:{base_url:"",api_key:"",model:""},ollama:{base_url:"",model:""}},context:{default_depth:"brief",activity_limit:10,stale_threshold_days:7,next_ranking_policy:"priority_floor",sections:{hierarchy:!0,activity:!0,progress:!0,recently_created:!0,unparented:!0,blockers:!0,files:!0,workload:!0,staleness:!0,tests:!0}},vector_store:{adapter:"",collection_name:"pm_items",qdrant:{url:"",api_key:""},lancedb:{path:""}}},H={metadata:{},body:""},y={SUCCESS:0,GENERIC_FAILURE:1,USAGE:2,NOT_FOUND:3,CONFLICT:4,DEPENDENCY_FAILED:5,NO_EFFECT:6,PARTIAL_EFFECT:7},R=Object.freeze({unknown_command:"usage",unknown_option:"usage",missing_required_option:"usage",missing_required_argument:"usage",invalid_command_usage:"usage",linked_test_value_not_quoted:"usage",invalid_argument_value:"validation",health_findings:"validation",validation_findings:"validation",close_through_update:"validation",no_update_fields:"validation",unsupported_update_option:"validation",tracker_not_initialized:"validation",item_not_found:"validation",ownership_conflict:"conflict",lock_conflict:"conflict",terminal_state_conflict:"conflict",dependency_failed:"runtime",init_gitignore_unwritable:"runtime",merge_git_config_unwritable:"runtime",command_failed:"runtime",unknown_error:"runtime"});function ee(e){let t=(e??"").trim().toLowerCase();if(t.length===0)return"unknown";let o=R[t];return typeof o=="string"?o:t.includes("conflict")||t.includes("locked")?"conflict":t.startsWith("unknown_")||t.startsWith("missing_required_")?"usage":t.startsWith("invalid_")||t.endsWith("_not_found")||t.includes("validation")?"validation":t.endsWith("_error")||t.endsWith("_failed")?"runtime":"unknown"}(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]="277cefd2-1da3-55f6-aa07-9f0d34d02314")}catch{}})();var f=class extends Error{exitCode;code;context;constructor(t,o,i={}){super(t),this.name="PmCliError",this.exitCode=o,this.context=i,this.code=i.code}};import*as r from"node:fs/promises";import{constants as p}from"node:fs";import c from"node:path";import C 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]="3792f1fd-ed9d-5252-887d-e4517a55fb9c")}catch{}})();var L=[10,25,50,100];async function w(e){await r.mkdir(e,{recursive:!0})}async function le(e){try{return await r.access(e),!0}catch{return!1}}function g(e){return x(e)||l(e,"ENOTDIR")}function x(e){return l(e,"ENOENT")}async function ce(e){try{return await r.readFile(e,"utf8")}catch(t){if(g(t))return null;throw t}}async function de(e,t){let o=await r.open(e,p.O_RDONLY|p.O_NOFOLLOW|p.O_NONBLOCK);try{if(!(await o.stat()).isFile())throw t;return await o.readFile("utf8")}finally{await o.close()}}function _e(e){let t=e?.replaceAll(c.sep,"/"),o=t!==void 0&&!c.posix.isAbsolute(t)&&!c.win32.isAbsolute(t)&&!t.split("/").includes(".."),i=o?t.split("/")[0]:void 0,s={"settings.json":"settings",runtime:"runtime",schema:"schema",history:"history",transactions:"transactions"},n=i===void 0?"tracker_storage":Object.hasOwn(s,i)?s[i]:"tracker_storage",d=o&&t.length>0&&t.length<=160&&t.split("/").every(a=>a!=="."&&/^[a-zA-Z0-9_.-]+$/u.test(a)),_=d?t:`${n} (entry name redacted)`;return new f(`Transaction preview requires regular files and directories. Inspect ${_} relative to the selected tracker root.`,y.USAGE,{code:"transaction_preview_non_regular_file",preview_storage:{storage_area:n,...d?{relative_entry:t}:{},entry_redacted:!d},required:"regular files and directories within the configured tracker storage",why:"Preview does not follow linked entries or read special files.",nextSteps:[`Inspect ${_} within the selected tracker for links, directories used as files, or special files; do not follow link targets.`,"Restore the intended regular files and directories, then retry the original dry-run command."]})}async function fe(e,t,o={}){let i=c.dirname(e);o.createParentDirectories!==!1&&await w(i);let s=c.join(i,`.${c.basename(e)}.${process.pid}.${Date.now()}.${C.randomBytes(4).toString("hex")}.tmp`);await r.writeFile(s,t,"utf8");try{await r.rename(s,e)}catch(n){if(process.platform==="win32"&&(l(n,"EPERM")||l(n,"EBUSY"))){let d=n;for(let _ of L){await new Promise(a=>setTimeout(a,_));try{await r.rename(s,e);return}catch(a){if(d=a,!l(a,"EPERM")&&!l(a,"EBUSY"))break}}try{await r.unlink(s)}catch{}throw d}if(l(n,"EXDEV")){try{await r.copyFile(s,e)}finally{try{await r.unlink(s)}catch{}}return}try{await r.unlink(s)}catch{}throw n}}async function ue(e,t){let o=c.dirname(e);await w(o);let i=await r.open(e,"a");try{await i.writeFile(`${t}
2
- `,"utf8")}finally{await i.close()}}async function pe(e){try{await r.unlink(e)}catch(t){if(!g(t))throw t}}function l(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}export{b as a,F as b,v as c,M as d,P as e,U as f,Y as g,q as h,W as i,X as j,m as k,E as l,k as m,I as n,O as o,z as p,$ as q,V as r,N as s,J as t,Q as u,D as v,S as w,u as x,Z as y,H as z,y as A,ee as B,f as C,w as D,le as E,g as F,x as G,ce as H,de as I,_e as J,fe as K,ue as L,pe as M};
3
- //# sourceMappingURL=chunk-WX25MU4N.js.map
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]="937c31e4-62a2-5815-8c7b-3640688b43b9")}catch{}})();var b=["commands","renderers","hooks","schema","importers","search","parser","preflight","services"],F=2,v=Object.freeze({migration:"schema",validation:"schema"}),M=Object.freeze({version:2,capabilities:[...b],legacy_aliases:{...v}}),P=["off","warn","enforce"],U=["off","warn","enforce"],Y=["none","restricted","strict"],q=["block","warn"],W=["commands.override","commands.handler","hooks.beforecommand","hooks.beforemutation","hooks.aftercommand","hooks.onwrite","hooks.onread","hooks.onindex","schema.flags","schema.itemfields","schema.itemtypes","schema.relationshipkinds","schema.migrations","schema.profiles","parser.override","preflight.override","services.override","renderers.override","importers.importer","importers.exporter","search.provider","search.vectorstore","services.assuranceprovider"],X=["output_format","error_format","help_format","lock_acquire","lock_release","history_append","item_store_write","item_store_delete","context_relevance","command_result"];function m(){return{mode:"off",trust_mode:"off",require_provenance:!1,trusted_extensions:[],default_sandbox_profile:"none",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:[]}}(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]="3d6df465-e82e-57d8-a687-6c2e720c99c1")}catch{}})();var E=["goal","objective","value","impact","outcome","why_now","parent","reviewer","risk","confidence","sprint","release","blocked_by","blocked_reason","unblock_note","reporter","severity","environment","repro_steps","resolution","expected_result","actual_result"],T=["id","title","description","type","pm_format_version","source_type","type_options","status","priority","tags","created_at","updated_at","deadline","reminders","events","closed_at","completed_at","assignee","claim_principal","source_owner","author","estimated_minutes","acceptance_criteria","design","external_ref","definition_of_ready","order",...E,"affected_version","fixed_version","component","regression","customer_impact","dependencies","comments","notes","learnings","files","tests","test_runs","docs","close_reason","duplicate_of","plan_mode","plan_scope","plan_harness","plan_resume_context","plan_validation","plan_decisions","plan_discoveries","plan_steps"],k=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]="426ae308-83c5-5c99-bb0d-c63e9c890570")}catch{}})();var I=Object.freeze([{id:"draft",roles:["draft"]},{id:"open",roles:["active","default_open"]},{id:"in_progress",aliases:["in-progress"],roles:["active"]},{id:"blocked",roles:["blocked"]},{id:"closed",roles:["terminal","terminal_done","default_close"]},{id:"canceled",aliases:["cancelled"],roles:["terminal","terminal_canceled","default_cancel"]}]),O=Object.freeze({draft_status:"draft",open_status:"open",in_progress_status:"in_progress",blocked_status:"blocked",close_status:"closed",canceled_status:"canceled"}),z=".agents/pm",$="settings.json",V="Closed at creation via pm create",N=["","epics","features","tasks","chores","issues","schema","history","search","extensions","locks"],A=["decisions","events","reminders","milestones","meetings","plans"],J=[...N,...A],Q={Epic:"epics",Feature:"features",Task:"tasks",Chore:"chores",Issue:"issues",Decision:"decisions",Event:"events",Reminder:"reminders",Milestone:"milestones",Meeting:"meetings",Plan:"plans"},D={minimal:{ownership_enforcement:"none",create_mode_default:"progressive",close_validation_default:"off",require_close_reason:!0,parent_reference:"strict_error",metadata_profile:"core",force_required_for_stale_lock:!1,duplicate_detection_mode:"off",duplicate_detection_threshold:.8,duplicate_detection_limit:3},default:{ownership_enforcement:"warn",create_mode_default:"progressive",close_validation_default:"warn",require_close_reason:!0,parent_reference:"strict_error",metadata_profile:"core",force_required_for_stale_lock:!0,duplicate_detection_mode:"strict",duplicate_detection_threshold:.8,duplicate_detection_limit:3},strict:{ownership_enforcement:"strict",create_mode_default:"strict",close_validation_default:"strict",require_close_reason:!0,parent_reference:"strict_error",metadata_profile:"strict",force_required_for_stale_lock:!0,duplicate_detection_mode:"strict",duplicate_detection_threshold:.8,duplicate_detection_limit:3}},S=["no active blocker","ready for planned execution sequencing","work completed","work is closed"],f={blocked_reason:["no active blocker because work is closed","work is closed"],resolution:["closed with implementation evidence","closed with verification evidence","work completed and recorded","work is closed"],actual_result:["closed and recorded","work completed","work completed and recorded"]};function h(e){return e?[...e]:void 0}var Z={version:1,id_prefix:"pm-",ids:{token_length:4},author_default:"",agent_identity:{probes_enabled:!0,identity_vocabulary:{version:1,aliases:{}},harness_signals:[]},mutation_guard:{require_attributed_author:!1,secret_guard:"advise",stale_in_progress_hours:72},item_format:"toon",locks:{ttl_seconds:1800,wait_ms:3e3},checkpoints:{retention_days:14},output:{default_format:"toon"},ux:{deprecation_hints:!0},history:{missing_stream:"auto_create",compact_policy:{enabled:!1,max_entries:500,trigger:"health_warn"}},validation:{sprint_release_format:"warn",parent_reference:"warn",metadata_profile:"core",metadata_required_fields:[],lifecycle_stale_blocker_reason_patterns:[...S],lifecycle_closure_like_blocked_reason_patterns:[...f.blocked_reason],lifecycle_closure_like_resolution_patterns:[...f.resolution],lifecycle_closure_like_actual_result_patterns:[...f.actual_result],estimate_defaults_by_type:{}},governance:{preset:"minimal",...D.minimal},workflow:{definition_of_done:[]},testing:{record_results_to_items:!1,allow_untrusted_linked_tests:!1},telemetry:{enabled:!0,first_run_prompt_completed:!1,capture_level:"redacted",endpoint:"https://pm-cli.unbrained.dev/v1/events",installation_id:"",retention_days:365},agent_guidance:{prompt_completed:!1,declined:!1,declined_at:"",template_version:1,last_checked_files:[]},item_types:{definitions:[]},schema:{version:1,files:{types:"schema/types.json",statuses:"schema/statuses.json",fields:"schema/fields.json",workflows:"schema/workflows.json"},statuses:I.map(e=>({...e,aliases:h(e.aliases),roles:h(e.roles)})),fields:[],workflow:{...O},unknown_field_policy:"allow"},extensions:{enabled:[],disabled:[],policy:m()},search:{score_threshold:0,hybrid_semantic_weight:.7,max_results:50,embedding_model:"",embedding_batch_size:32,embedding_timeout_ms:3e4,scanner_max_batch_retries:3,provider:"",default_mode:"auto",mutation_refresh_policy:"semantic_configured",query_expansion:{enabled:!1,provider:""},rerank:{enabled:!1,model:"",top_k:20}},providers:{openai:{base_url:"",api_key:"",model:""},ollama:{base_url:"",model:""}},context:{default_depth:"brief",activity_limit:10,stale_threshold_days:7,next_ranking_policy:"priority_floor",sections:{hierarchy:!0,activity:!0,progress:!0,recently_created:!0,unparented:!0,blockers:!0,files:!0,workload:!0,staleness:!0,tests:!0}},vector_store:{adapter:"",collection_name:"pm_items",qdrant:{url:"",api_key:""},lancedb:{path:""}}},H={metadata:{},body:""},y={SUCCESS:0,GENERIC_FAILURE:1,USAGE:2,NOT_FOUND:3,CONFLICT:4,DEPENDENCY_FAILED:5,NO_EFFECT:6,PARTIAL_EFFECT:7},R=Object.freeze({unknown_command:"usage",unknown_option:"usage",missing_required_option:"usage",missing_required_argument:"usage",invalid_command_usage:"usage",linked_test_value_not_quoted:"usage",invalid_argument_value:"validation",health_findings:"validation",validation_findings:"validation",close_through_update:"validation",no_update_fields:"validation",unsupported_update_option:"validation",tracker_not_initialized:"validation",item_not_found:"validation",ownership_conflict:"conflict",lock_conflict:"conflict",terminal_state_conflict:"conflict",dependency_failed:"runtime",init_gitignore_unwritable:"runtime",merge_git_config_unwritable:"runtime",command_failed:"runtime",unknown_error:"runtime"});function ee(e){let t=(e??"").trim().toLowerCase();if(t.length===0)return"unknown";let o=R[t];return typeof o=="string"?o:t.includes("conflict")||t.includes("locked")?"conflict":t.startsWith("unknown_")||t.startsWith("missing_required_")?"usage":t.startsWith("invalid_")||t.endsWith("_not_found")||t.includes("validation")?"validation":t.endsWith("_error")||t.endsWith("_failed")?"runtime":"unknown"}(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]="59ace77e-9dc1-59e8-aa2e-ee7364e04773")}catch{}})();var u=class extends Error{exitCode;code;context;constructor(t,o,i={}){super(t),this.name="PmCliError",this.exitCode=o,this.context=i,this.code=i.code}};import*as r from"node:fs/promises";import{constants as p}from"node:fs";import c from"node:path";import C 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]="3792f1fd-ed9d-5252-887d-e4517a55fb9c")}catch{}})();var L=[10,25,50,100];async function w(e){await r.mkdir(e,{recursive:!0})}async function le(e){try{return await r.access(e),!0}catch{return!1}}function g(e){return x(e)||l(e,"ENOTDIR")}function x(e){return l(e,"ENOENT")}async function ce(e){try{return await r.readFile(e,"utf8")}catch(t){if(g(t))return null;throw t}}async function de(e,t){let o=await r.open(e,p.O_RDONLY|p.O_NOFOLLOW|p.O_NONBLOCK);try{if(!(await o.stat()).isFile())throw t;return await o.readFile("utf8")}finally{await o.close()}}function _e(e){let t=e?.replaceAll(c.sep,"/"),o=t!==void 0&&!c.posix.isAbsolute(t)&&!c.win32.isAbsolute(t)&&!t.split("/").includes(".."),i=o?t.split("/")[0]:void 0,s={"settings.json":"settings",runtime:"runtime",schema:"schema",history:"history",transactions:"transactions"},n=i===void 0?"tracker_storage":Object.hasOwn(s,i)?s[i]:"tracker_storage",d=o&&t.length>0&&t.length<=160&&t.split("/").every(a=>a!=="."&&/^[a-zA-Z0-9_.-]+$/u.test(a)),_=d?t:`${n} (entry name redacted)`;return new u(`Transaction preview requires regular files and directories. Inspect ${_} relative to the selected tracker root.`,y.USAGE,{code:"transaction_preview_non_regular_file",preview_storage:{storage_area:n,...d?{relative_entry:t}:{},entry_redacted:!d},required:"regular files and directories within the configured tracker storage",why:"Preview does not follow linked entries or read special files.",nextSteps:[`Inspect ${_} within the selected tracker for links, directories used as files, or special files; do not follow link targets.`,"Restore the intended regular files and directories, then retry the original dry-run command."]})}async function ue(e,t,o={}){let i=c.dirname(e);o.createParentDirectories!==!1&&await w(i);let s=c.join(i,`.${c.basename(e)}.${process.pid}.${Date.now()}.${C.randomBytes(4).toString("hex")}.tmp`);await r.writeFile(s,t,"utf8");try{await r.rename(s,e)}catch(n){if(process.platform==="win32"&&(l(n,"EPERM")||l(n,"EBUSY"))){let d=n;for(let _ of L){await new Promise(a=>setTimeout(a,_));try{await r.rename(s,e);return}catch(a){if(d=a,!l(a,"EPERM")&&!l(a,"EBUSY"))break}}try{await r.unlink(s)}catch{}throw d}if(l(n,"EXDEV")){try{await r.copyFile(s,e)}finally{try{await r.unlink(s)}catch{}}return}try{await r.unlink(s)}catch{}throw n}}async function fe(e,t){let o=c.dirname(e);await w(o);let i=await r.open(e,"a");try{await i.writeFile(`${t}
2
+ `,"utf8")}finally{await i.close()}}async function pe(e){try{await r.unlink(e)}catch(t){if(!g(t))throw t}}function l(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}export{b as a,F as b,v as c,M as d,P as e,U as f,Y as g,q as h,W as i,X as j,m as k,E as l,k as m,I as n,O as o,z as p,$ as q,V as r,N as s,J as t,Q as u,D as v,S as w,f as x,Z as y,H as z,y as A,ee as B,u as C,w as D,le as E,g as F,x as G,ce as H,de as I,_e as J,ue as K,fe as L,pe as M};
3
+ //# sourceMappingURL=chunk-J3JM36EH.js.map
@@ -1,3 +1,3 @@
1
- import{a as k,c as I,d as A,e as _,k as T,m as C}from"./chunk-5KW4WUAK.js";import{ub as b,vb as v,wb as R}from"./chunk-UUN3WNMQ.js";import{Ag as w,Jc as H,X as D,fg as f,ig as g,jg as a}from"./chunk-E74BORFX.js";import{Jh as x,Mh as m,Nh as y,qd as E}from"./chunk-5WVE7XBS.js";import{A as c,C as p}from"./chunk-WX25MU4N.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="631e56aa-4d7e-58b6-bbea-a0d320716b82")}catch{}})();(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="0bcdd63c-5fd3-585d-a6c5-9393029ef864")}catch{}})();(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="4dce4f19-071c-54a8-be0d-5975d9e3b34b")}catch{}})();(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="f330a0c5-a967-5383-9c27-efa4a39e0f0d")}catch{}})();(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="a178bd8b-fc53-5633-84d5-621b61930581")}catch{}})();function O(t,e){if(typeof t!="string")return;let o=Number.parseInt(t,10);if(!/^\d+$/.test(t.trim())||!Number.isSafeInteger(o))throw new p(`history-compact ${e} must be a non-negative integer.`,c.USAGE);return o}async function S(t,e,o){let r=f(o),n=Date.now(),i=await D(a(e,"ids")),l=i===void 0?void 0:H(i),d=O(e.allOver,"--all-over"),u=O(e.minEntries,"--min-entries");if(e.closed===!0&&e.allStreams===!0)throw new p("history-compact: --closed and --all-streams are mutually exclusive; pick one lifecycle scope.",c.USAGE);let s=e.closed===!0?"closed":e.allStreams===!0?"all-streams":void 0;if((l!==void 0||d!==void 0||s!==void 0)&&typeof e.before=="string")throw new p("history-compact: --before applies only in single-id mode (bulk mode always compacts full streams).",c.USAGE);if(I(t,{ids:l,allOver:d,scope:s}),t!==void 0&&u!==void 0)throw new p("history-compact: --min-entries applies only in bulk mode (single-id mode compacts the named stream).",c.USAGE);if(t===void 0){let h=await A({ids:l,scope:s,allOver:d,minEntries:u,dryRun:e.dryRun===!0,author:a(e,"author"),message:a(e,"message"),force:!!e.force},r);m(h,r),h.totals.items_errored>0&&(process.exitCode=c.GENERIC_FAILURE)}else{let h=await k(t,{before:a(e,"before"),dryRun:e.dryRun===!0,author:a(e,"author"),message:a(e,"message"),force:!!e.force},r);m(h,r)}r.profile&&y(`profile:command=history-compact took_ms=${Date.now()-n}`)}async function N(t,e,o,r){let n=f(r),i=Date.now(),l=await C(t,e,{author:a(o,"author"),message:a(o,"message"),force:!!o.force},n);await w(n,l),m(l,n),n.profile&&y(`profile:command=restore took_ms=${Date.now()-i}`)}async function B(t,e){let o=f(e),r=await T({verify:a(t,"verify"),output:a(t,"output"),hashAlgorithm:a(t,"hashAlgorithm")},o);"format"in r?(E(r),o.quiet||x(`${JSON.stringify(r,null,2)}
1
+ import{a as k,c as I,d as A,e as _,k as T,m as C}from"./chunk-K46GDAKX.js";import{ub as b,vb as v,wb as R}from"./chunk-3ZQQVJT2.js";import{Dg as w,Jc as H,X as D,ig as f,lg as g,mg as a}from"./chunk-ZNWDYDFF.js";import{Kh as x,Nh as m,Oh as y,qd as E}from"./chunk-BFZUJ5QP.js";import{A as c,C as p}from"./chunk-J3JM36EH.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="631e56aa-4d7e-58b6-bbea-a0d320716b82")}catch{}})();(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="0bcdd63c-5fd3-585d-a6c5-9393029ef864")}catch{}})();(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="4dce4f19-071c-54a8-be0d-5975d9e3b34b")}catch{}})();(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="f330a0c5-a967-5383-9c27-efa4a39e0f0d")}catch{}})();(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="a178bd8b-fc53-5633-84d5-621b61930581")}catch{}})();function O(t,e){if(typeof t!="string")return;let o=Number.parseInt(t,10);if(!/^\d+$/.test(t.trim())||!Number.isSafeInteger(o))throw new p(`history-compact ${e} must be a non-negative integer.`,c.USAGE);return o}async function S(t,e,o){let r=f(o),n=Date.now(),i=await D(a(e,"ids")),l=i===void 0?void 0:H(i),d=O(e.allOver,"--all-over"),u=O(e.minEntries,"--min-entries");if(e.closed===!0&&e.allStreams===!0)throw new p("history-compact: --closed and --all-streams are mutually exclusive; pick one lifecycle scope.",c.USAGE);let s=e.closed===!0?"closed":e.allStreams===!0?"all-streams":void 0;if((l!==void 0||d!==void 0||s!==void 0)&&typeof e.before=="string")throw new p("history-compact: --before applies only in single-id mode (bulk mode always compacts full streams).",c.USAGE);if(I(t,{ids:l,allOver:d,scope:s}),t!==void 0&&u!==void 0)throw new p("history-compact: --min-entries applies only in bulk mode (single-id mode compacts the named stream).",c.USAGE);if(t===void 0){let h=await A({ids:l,scope:s,allOver:d,minEntries:u,dryRun:e.dryRun===!0,author:a(e,"author"),message:a(e,"message"),force:!!e.force},r);m(h,r),h.totals.items_errored>0&&(process.exitCode=c.GENERIC_FAILURE)}else{let h=await k(t,{before:a(e,"before"),dryRun:e.dryRun===!0,author:a(e,"author"),message:a(e,"message"),force:!!e.force},r);m(h,r)}r.profile&&y(`profile:command=history-compact took_ms=${Date.now()-n}`)}async function N(t,e,o,r){let n=f(r),i=Date.now(),l=await C(t,e,{author:a(o,"author"),message:a(o,"message"),force:!!o.force},n);await w(n,l),m(l,n),n.profile&&y(`profile:command=restore took_ms=${Date.now()-i}`)}async function B(t,e){let o=f(e),r=await T({verify:a(t,"verify"),output:a(t,"output"),hashAlgorithm:a(t,"hashAlgorithm")},o);"format"in r?(E(r),o.quiet||x(`${JSON.stringify(r,null,2)}
2
2
  `)):m(r,o),"ok"in r&&!r.ok&&(process.exitCode=c.GENERIC_FAILURE)}function Z(t,e){t.command(e?"attest":"history-attest",{hidden:!e}).summary("Export or verify history proof.").option("--verify <file>","Compare retained streams with a detached JSON proof").option("--output <file>","Create a proof file and return a compact receipt").option("--hash-algorithm <name>","Bundle digest algorithm: sha256 (default) or sha512").description("Export exact-byte history commitments, or verify an independently retained proof without tracker writes.").action(B),t.command("restore",{hidden:!e}).summary("Restore a version.").argument("<id>","Item id").argument("<target>","Restore target timestamp or version number").option("--author <value>","Mutation author").option("--message <value>","History message").option("--force","Force ownership/lock override").description("Restore an item to an earlier timestamp or version.").action(N),t.command(e?"redact":"history-redact",{hidden:!e}).summary("Redact sensitive values.").argument("<id>","Item id").option("--literal <value>","Literal string to redact (repeatable)",g).option("--regex <value>","Regex pattern to redact (repeatable; accepts /pattern/flags or raw pattern)",g).option("--replacement <value>",'Replacement string (default: "[redacted]")').option("--dry-run","Preview redaction impact without writing item/history files").option("--author <value>","Mutation author").option("--message <value>","Audit history message for the redaction marker entry").option("--force","Force ownership/lock override").description("Redact sensitive literals/patterns from an item history stream and recompute hashes.").action(async(o,r,n)=>{let i=f(n),l=Date.now(),d=Array.isArray(r.literal)?r.literal:void 0,u=Array.isArray(r.regex)?r.regex:void 0,s=await _(o,{literal:d,regex:u,replacement:a(r,"replacement"),dryRun:r.dryRun===!0,author:a(r,"author"),message:a(r,"message"),force:!!r.force},i);s.changed&&!s.dry_run&&await w(i,s),m(s,i),i.profile&&y(`profile:command=history-redact took_ms=${Date.now()-l}`)}),t.command(e?"repair":"history-repair",{hidden:!e}).summary("Repair drift.").argument("[id]","Item id (omit with --all)").option("--salvage-tail","Recover invalid tail; requires verified prefix").option("--all","Scan every stream for drift and repair each drifted stream in one audited pass").option("--dry-run","Preview the re-anchor impact without writing the history file").option("--normalize-provenance","Remove invalid provenance; return aggregate-only evidence").option("--author <value>","Mutation author").option("--message <value>","Audit history message for the repair marker entry").option("--force","Force ownership/lock override").description("Re-anchor a drifted item history chain (recompute hashes, reconcile with the on-disk item) and record an audit marker. Use --all to repair every drifted stream.").action(async(o,r,n)=>{let i=f(n),l=Date.now(),d=r.all===!0;v(o,d);let u={dryRun:r.dryRun===!0,author:a(r,"author"),message:a(r,"message"),force:!!r.force,normalizeProvenance:r.normalizeProvenance===!0,salvageTail:r.salvageTail===!0};if(d){let s=await R(u,i);m(s,i),s.totals.failed>0&&(process.exitCode=c.GENERIC_FAILURE)}else{let s=await b(o,u,i);m(s,i)}i.profile&&y(`profile:command=history-repair took_ms=${Date.now()-l}`)}),t.command(e?"compact":"history-compact",{hidden:!e}).summary("Compact streams.").argument("[id]","Item id (omit when using a bulk selector)").option("--before <value>","Compact entries strictly before this version number or ISO timestamp (single-id mode only)").option("--ids <value>","Bulk IDs: comma/newline text, - stdin, or @path file").option("--all-over <n>","Bulk: compact every stream with more than N entries").option("--closed","Bulk: compact only closed (terminal) items' streams").option("--all-streams","Bulk: compact every history stream regardless of lifecycle state").option("--min-entries <n>","Bulk: skip streams with at most N entries (already compact; default 3)").option("--dry-run","Preview compaction impact without writing the history file").option("--author <value>","Mutation author").option("--message <value>","Audit history message for the compaction marker entry").option("--force","Force ownership/lock override").description("Compact item history streams into a synthetic baseline plus retained tail entries. Pass an item id for one stream, or a bulk selector (--ids/--all-over/--closed/--all-streams) to compact many.").action(S)}export{Z as a};
3
- //# sourceMappingURL=chunk-O56O7NIE.js.map
3
+ //# sourceMappingURL=chunk-JRXD7SIL.js.map
@@ -1,6 +1,6 @@
1
- import{$ as kt,A as io,Jb as yo,K as so,L as ao,Lb as go,Nb as _o,O as co,Ob as wo,Ta as ho,W as lo,X as uo,_ as mo,aa as Rt,ba as ze,g as It,ia as fo,j as Jn,n as Zn,qc as bo,r as ge,rb as po,s as eo,sb as Ve,t as to,u as Be,uc as vo,v as ro,w as no,z as oo}from"./chunk-UUN3WNMQ.js";import{a as ye,b as V,c as Vn,d as Kn}from"./chunk-WFBYKDB2.js";import{Ab as Un,Bb as Ge,Cb as $e,Cf as Yn,Db as We,Df as Xn,Eb as Gn,Fa as Rn,Ga as xn,Ib as $n,Jb as St,Jc as zn,Ka as An,O as J,Oa as j,Oe as Qn,Qa as Cn,Ra as te,S as Kr,Sa as Et,Sb as Wn,T as Qr,Ta as Tn,V as Yr,W as Xr,Y as vt,Z as En,Za as Mn,_ as Pe,ab as Fn,ac as Bn,da as kn,hb as je,jb as qe,kb as Pn,lb as he,mb as pe,nb as Hn,ob as Ln,pb as Ne,qa as Le,rb as On,sb as jn,ua as Oe,xb as qn,yb as Nn,zb as Ue}from"./chunk-E74BORFX.js";import{Ah as pt,Cf as on,Ch as yt,Dh as un,Ea as N,Eh as mn,Fb as S,Ib as Ce,Id as x,Jb as Wr,Jd as ft,Je as tn,Kb as Br,Lb as ut,Ma as k,Mi as P,Na as Ur,Oa as Gr,Pg as sn,Ph as gt,Qa as B,Qg as an,Rh as fn,Sa as Re,Si as Dn,Td as O,Ug as cn,Vd as Z,Wg as dn,Wh as hn,Xh as pn,Yh as yn,Yi as H,Zh as gn,a as F,cb as lt,ce as Te,di as z,ee as Jr,ei as _n,fb as Y,fh as ln,fi as _t,gi as ue,he as Zr,hf as De,hi as me,if as rn,ii as wt,je as de,jf as le,ji as D,ki as wn,ld as I,li as fe,mi as bn,oe as en,pb as ae,pe as Me,pi as bt,qb as xe,qe as Fe,sd as zr,si as vn,td as mt,tf as ee,ti as He,ub as Ae,ui as Sn,vb as $r,vi as In,wd as X,wf as nn,xd as Vr,yd as ce,zh as ht}from"./chunk-5WVE7XBS.js";import{A as f,C as h,E as ke,G as Nr,K as L,u as qr}from"./chunk-WX25MU4N.js";import So from"node:fs/promises";import Io 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]="f3603dce-8aeb-5409-80f4-ad3367e35eb9")}catch{}})();function zi(e,t,r){let n=new Set,o=[];for(let i of e){let s=i.trim();if(s.length===0||n.has(s))continue;n.add(s);let a=t.get(s);if(a===void 0){o.push({id:s,entries:0,selected:!1,skip_reason:"no_stream"});continue}if(a.entries<=r){o.push({id:s,entries:a.entries,selected:!1,skip_reason:"already_compact"});continue}o.push({id:s,entries:a.entries,selected:!0,skip_reason:null})}return o}function Vi(e,t){let r=[...e].sort((o,i)=>i.entries-o.entries||o.id.localeCompare(i.id)),n=[];for(let o of r){if(t.scope==="closed"&&o.bucket!=="closed"){n.push({id:o.id,entries:o.entries,selected:!1,skip_reason:"scope_mismatch"});continue}if(o.entries<=t.minEntries){n.push({id:o.id,entries:o.entries,selected:!1,skip_reason:"already_compact"});continue}if(t.allOver!==void 0&&o.entries<=t.allOver){n.push({id:o.id,entries:o.entries,selected:!1,skip_reason:"below_threshold"});continue}n.push({id:o.id,entries:o.entries,selected:!0,skip_reason:null})}return n}function Eo(e,t){if(t.ids!==void 0&&t.ids.length>0){let r=new Map(e.map(n=>[n.id,n]));return zi(t.ids,r,t.minEntries)}return Vi(e,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]="c6009e5f-840e-5e3a-b8b9-6e9d42d63410")}catch{}})();function Ki(e,t){if(e===void 0)return{kind:"default",raw:null,compactCount:t.length,retainedCount:0};let r=e.trim();if(r.length===0)throw new h("history-compact --before requires a non-empty value.",f.USAGE);if(/^\d+$/.test(r)){let i=Number.parseInt(r,10),s=j(t);if(!Number.isSafeInteger(i)||i<s+1||i>s+t.length+1)throw new h(`history-compact --before version must be between ${s+1} and ${s+t.length+1}.`,f.USAGE);let a=i-s-1;return{kind:"version",raw:r,compactCount:a,retainedCount:t.length-a}}let n=Date.parse(r);if(!Number.isFinite(n))throw new h(`Invalid history-compact --before value "${e}". Use a version number or ISO timestamp.`,f.USAGE);let o=0;for(let[i,s]of t.entries()){let a=Date.parse(s.ts);if(!Number.isFinite(a))throw new h(`History for this item contains invalid timestamp at entry ${i+1}.`,f.GENERIC_FAILURE);if(a>=n)break;o+=1}return{kind:"timestamp",raw:r,compactCount:o,retainedCount:t.length-o}}function Qi(e,t){let r=ue(),n=ue();for(let o=0;o<e.length;o+=1){let i=e[o];r=te(r,i.patch,o+1,i.op),o+1===t&&(n=structuredClone(r))}return{checkpoint:n,finalReplay:r}}function Yi(e,t){if(!e)return{loadedItem:null,currentItemRawBeforeLock:null,matchedChainBefore:null};let r=t[t.length-1];return{loadedItem:e,currentItemRawBeforeLock:e.raw,matchedChainBefore:fn.some(n=>(r.item_hash_version===void 0||r.item_hash_version===n)&&wt(fe(e.document),n,x(r.hash_algorithm)).includes(r.after_hash))}}function Xi(e,t){return typeof e.message=="string"&&e.message.trim().length>0?e.message:t.raw===null?`history-compact compacted full stream (${t.compactCount} entr${t.compactCount===1?"y":"ies"}).`:`history-compact compacted ${t.compactCount} entr${t.compactCount===1?"y":"ies"} before ${t.raw}.`}function Ji(e){return e.raw===null?`history-compact baseline snapshot after compacting ${e.compactCount} entr${e.compactCount===1?"y":"ies"}.`:`history-compact baseline snapshot before ${e.raw}.`}function Zi(e){if(!e.changed)return{rewrittenEntries:e.historyEntries,baselineEntryAdded:!1,auditEntryAdded:!1};let{checkpoint:t,finalReplay:r}=Qi(e.historyEntries,e.boundary.compactCount),n=e.historyEntries.slice(e.boundary.compactCount),o=j(e.historyEntries,!0),i=e.historyEntries[e.boundary.compactCount-1],s=z({hashAlgorithm:x(i.hash_algorithm),nowIso:e.historyEntries[e.boundary.compactCount-1].ts,author:e.author,op:"history_compact_baseline",before:D(ue()),after:D(t),message:Ji(e.boundary),context:{history_compaction:{contract_version:1,version_offset:o===null?null:o+e.boundary.compactCount-1,checkpoint_timestamp_semantics:"last_compacted_entry",pruned_entry_count:e.boundary.compactCount,pruned_stream_digest:hn(e.historyEntries.slice(0,e.boundary.compactCount)),retained_proof:"stream_digest_and_checkpoint",limitation:"individual_pruned_entries_require_pre_compaction_stream"}}}),a=[pn({...s,before_hash:wt(ue(),i.item_hash_version??1,x(i.hash_algorithm))[0],after_hash:i.after_hash,item_hash_version:i.item_hash_version}),...n];return e.dryRun||a.push(z({nowIso:S(),author:e.author,op:"history_compact",before:D(r),after:D(r),message:Xi(e.options,e.boundary)})),{rewrittenEntries:a,baselineEntryAdded:!0,auditEntryAdded:!e.dryRun}}async function es(e,t,r){let{pmRoot:n,settings:o,typeRegistry:i}=await ye(r.path),s=await V(n,e,o,i.type_to_folder);return Ve({pmRoot:n,subject:s,settings:o,typeRegistry:i,operation:"history-compact",options:t,transform:a=>ts(s,t,a)})}function ts(e,t,r){let n=e.historyPath,o=r.entries,i=r.verification;if(!i.ok)throw new h(`history-compact requires a valid history chain (${i.errors.join(", ")}). Run pm history-repair ${e.id} first.`,f.CONFLICT);let s=Ki(t.before,o),a=s.compactCount>0,c=!!t.dryRun,l=r.author,d=[];a||d.push("history_compact_noop_before_boundary");let u=Yi(r.loadedItem,o);u.matchedChainBefore===!1&&d.push("history_compact_item_chain_mismatch");let{rewrittenEntries:m,baselineEntryAdded:p,auditEntryAdded:g}=Zi({historyEntries:o,boundary:s,changed:a,dryRun:c,author:l,options:t}),_=j(o,!0),y=s.retainedCount>0&&_!==null?_+s.compactCount+1:null;return{changed:a,rewrittenEntries:m,report:({verification:w,warnings:b})=>({id:e.id,dry_run:c,changed:a,compact_boundary:{kind:s.kind,before:s.raw,entries_compacted:s.compactCount,entries_retained:s.retainedCount,first_retained_entry:y},history:{path:n,entries_scanned:o.length,entries_after:m.length,baseline_entry_added:p,audit_entry_added:g,verify_ok:w.ok,verify_errors:w.errors},item:{exists:e.located!==null,path:e.located?.itemPath??null,matched_chain_before:u.matchedChainBefore},warnings:[...new Set([...d,...b])].sort((v,E)=>v.localeCompare(E)),generated_at:S()})}}var rs=3;function ns(e){for(let r of["allOver","minEntries"]){let n=e[r];if(n!==void 0&&(!Number.isSafeInteger(n)||n<0))throw new h(`history-compact ${r} must be a non-negative safe integer.`,f.USAGE)}let t=Xr(e.ids);if(e.ids!==void 0&&t==="")throw new h("history-compact ids requires at least one valid item ID.",f.USAGE,{code:"bulk_ids_input_empty",required:"Provide one or more string or finite numeric IDs; non-finite and unsupported selector values are rejected."});return{...e,ids:t===void 0?void 0:Yr(t)}}function cd(e,t){let r=t.ids!==void 0&&t.ids.length>0,n=t.allOver!==void 0||t.scope!==void 0;if((e!==void 0?1:0)+(r?1:0)+(n?1:0)==0)throw new h("history-compact: provide an item <id>, or a bulk selector (--ids, --all-over <N>, --closed, or --all-streams).",f.USAGE);if(e!==void 0&&(r||n))throw new h("history-compact: <id> and bulk selectors (--ids/--all-over/--closed/--all-streams) are mutually exclusive; pass one item id, or use bulk mode without a positional id.",f.USAGE);if(r&&n)throw new h("history-compact: --ids is mutually exclusive with --all-over/--closed/--all-streams; pass an explicit id list or a scan selector, not both.",f.USAGE)}function os(e){let t=0;for(let r of e.split(/\r?\n/))r.trim().length>0&&(t+=1);return t}async function is(e){let t=O(e.settings.schema),r=Be(t),n=await Ne(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema),o=new Map(n.map(l=>[l.id,r.classify(l.status)])),i=Io.join(e.pmRoot,"history"),s=[],a=[];if(!await ke(i))return{candidates:s,preselectionErrors:a};let c=(await So.readdir(i)).filter(l=>l.endsWith(".jsonl")).sort((l,d)=>l.localeCompare(d));for(let l of c){let d=Io.join(i,l),u=l.slice(0,-6);try{let m=await So.readFile(d,"utf8");await ce({path:d,scope:"project"}),s.push({id:u,entries:os(m),bucket:o.get(u)??null})}catch(m){a.push({id:u,outcome:"errored",entries_before:0,entries_after:null,skip_reason:null,changed:!1,error:m instanceof Error?m.message:String(m)})}}return{candidates:s,preselectionErrors:a}}async function ss(e){if(!e.row.selected)return{selected:!1,compacted:!1,errored:!1,result:{id:e.row.id,outcome:"skipped",entries_before:e.row.entries,entries_after:null,skip_reason:e.row.skip_reason,changed:!1,error:null}};try{let t=await es(e.row.id,{dryRun:e.dryRun,author:e.options.author,message:e.options.message,force:e.options.force},e.global);return{selected:!0,compacted:!0,errored:!1,result:{id:e.row.id,outcome:"compacted",entries_before:e.row.entries,entries_after:t.history.entries_after,skip_reason:null,changed:t.changed,error:null}}}catch(t){return{selected:!0,compacted:!1,errored:!0,result:{id:e.row.id,outcome:"errored",entries_before:e.row.entries,entries_after:null,skip_reason:null,changed:!1,error:t instanceof Error?t.message:String(t)}}}}async function dd(e,t){let r=ns(e),{pmRoot:n,settings:o,typeRegistry:i}=await ye(t.path),{candidates:s,preselectionErrors:a}=await is({pmRoot:n,settings:o,typeToFolder:i.type_to_folder}),c=r.ids!==void 0&&r.ids.length>0?"ids":"scan",l=e.minEntries??rs,d=o.history.compact_policy,u=c==="scan"&&e.allOver===void 0&&d.enabled,m=e.allOver??(u?d.max_entries:void 0),p=Eo(s,{ids:r.ids,scope:e.scope,minEntries:l,allOver:m}),g=!!e.dryRun,_=[...a],y={streams_considered:s.length+a.length,selected:0,items_compacted:0,items_skipped:0,items_errored:a.length};for(let w of p){let b=await ss({row:w,options:r,dryRun:g,global:t});if(_.push(b.result),!b.selected){y.items_skipped+=1;continue}y.selected+=1,b.compacted&&(y.items_compacted+=1),b.errored&&(y.items_errored+=1)}return{bulk:!0,dry_run:g,mode:c,scope:e.scope??null,criteria:{min_entries:l,all_over:m??null,policy_threshold_applied:u},totals:y,results:_,generated_at:S()}}import xt 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]="ebf3254f-1fed-5972-b91a-b8ff101675f4")}catch{}})();function At(e){return Array.isArray(e)?e:typeof e=="string"?[e]:[]}function Ro(e){let t=[];for(let r of e)t.includes(r)||t.push(r);return t.includes("g")||t.push("g"),t.join("")}function xo(e){let t=e.trim();if(t.length===0)throw new h("history-redact --regex requires a non-empty pattern.",f.USAGE);let r=t,n="g";if(t.startsWith("/")&&t.length>1){let o=t.lastIndexOf("/");o>0&&(r=t.slice(1,o),n=Ro(t.slice(o+1)))}if(r.length===0)throw new h("history-redact --regex cannot use an empty pattern.",f.USAGE);try{new RegExp(r,n)}catch{throw new h("Invalid --regex value; provide a valid JavaScript regular expression.",f.USAGE)}return{kind:"regex",source:r,flags:n}}function Ao(e,t){let r=[...new Set(At(e).map(i=>i.trim()))].filter(i=>i.length>0).map(i=>({kind:"literal",value:i})),n=[...new Set(At(t).map(i=>i.trim()))].filter(i=>i.length>0).map(xo),o=[...r,...n];if(o.length===0)throw new h("history-redact requires at least one matcher via --literal or --regex.",f.USAGE,{code:"missing_required_argument",required:"Provide --literal <value> and/or --regex <pattern>.",examples:['pm history-redact pm-a1b2 --literal "[redacted_path_prefix]/private"','pm history-redact pm-a1b2 --regex "/192\\\\.168\\\\.[0-9.]+/g" --replacement "[scrubbed_ip]"']});return o}function Co(e,t,r){if(t.length===0)return{value:e,replacements:0};let n=0,o=0;for(;n<=e.length;){let i=e.indexOf(t,n);if(i===-1)break;o+=1,n=i+Math.max(1,t.length)}return o===0?{value:e,replacements:0}:{value:e.split(t).join(r),replacements:o}}function To(e,t,r){let n=new RegExp(t.source,t.flags),o=[...e.matchAll(n)];return o.length===0?{value:e,replacements:0}:{value:e.replace(n,r),replacements:o.length}}function Ct(e,t,r){let n=e,o=0;for(let i of t){let s=i.kind==="literal"?Co(n,i.value,r):To(n,i,r);n=s.value,o+=s.replacements}return{value:n,replacements:o}}function _e(e,t,r){if(typeof e=="string")return Ct(e,t,r);if(Array.isArray(e)){let n=0;return{value:e.map(o=>{let i=_e(o,t,r);return n+=i.replacements,i.value}),replacements:n}}if(typeof e=="object"&&e!==null){let n=0,o={};for(let[i,s]of Object.entries(e)){let a=_e(s,t,r);n+=a.replacements,o[i]=a.value}return{value:o,replacements:n}}return{value:e,replacements:0}}function ko(e,t,r){let n=0;return{patch:e.map(o=>{if(!Object.prototype.hasOwnProperty.call(o,"value"))return o;let i=_e(o.value,t,r);return n+=i.replacements,i.replacements>0?{...o,value:i.value}:o}),replacements:n}}function as(e){let t=structuredClone(_t),r=0,n=0;for(let o=0;o<e.length;o+=1){let i=e[o];me(t,void 0,x(i.hash_algorithm))!==i.before_hash&&(r+=1),t=te(t,i.patch,o+1,i.op),me(t,void 0,x(i.hash_algorithm))!==i.after_hash&&(n+=1)}return{hashMismatchesBefore:r,hashMismatchesAfter:n,finalDocument:t}}function cs(e,t,r){let n=0,o=!1,i=!1,s=e.message;if(typeof e.message=="string"){let l=Ct(e.message,t,r);s=l.value,n+=l.replacements,l.replacements>0&&(o=!0)}let a=ko(e.patch,t,r);n+=a.replacements,o||=a.replacements>0;let c=e.reanchor_evidence?.map(l=>{let d=l.patch?ko(l.patch,t,r):{patch:void 0,replacements:0},u=l.record?_e(l.record,t,r):{value:void 0,replacements:0};n+=d.replacements,n+=u.replacements;let m=d.replacements>0||u.replacements>0;if(o||=m,!m)return l;i=!0;let{patch:p,record:g,record_hash:_,record_hash_version:y,...w}=l;return d.replacements>0?w:{...w,patch:l.patch}});return{entry:{...e,message:s,patch:a.patch,...c?{reanchor_evidence:c}:{}},replacements:n,changed:o,reanchorEvidenceRedacted:i}}function ds(e,t,r){let n=structuredClone(_t),o=0,i=0,s=[];for(let a=0;a<e.length;a+=1){let c=e[a],l=yn(c);if(!l.ok)throw new h(`history-redact refuses invalid immutable record ${a+1} (${l.error}).`,f.GENERIC_FAILURE);let d=cs(c,t,r);i+=d.replacements,d.changed&&(o+=1);let u=me(n,void 0,x(c.hash_algorithm));n=te(n,d.entry.patch,a+1,d.entry.op);let m=me(n,void 0,x(c.hash_algorithm));s.push(gn(c,{...d.entry,before_hash:u,after_hash:m},{retainPriorRecord:d.changed,retainPriorRecordHash:!d.changed}))}return{entries:s,finalDocument:n,entriesChanged:o,replacements:i}}function Mo(e){return Object.keys(e.metadata).length>0}function ls(e){if(!Mo(e.finalDocument))return{raw:null,path:null,document:null};let t=Fe(D(e.finalDocument),{schema:e.settings.schema});if(t.metadata.id!==e.subject.id)throw new h("history-redact would change the item id; narrow your patterns.",f.USAGE);return{document:t,path:B(e.pmRoot,t.metadata.type,e.subject.id,"toon",e.typeToFolder),raw:Me(t,{format:"toon",schema:e.settings.schema})}}function us(e,t){return typeof e.message=="string"&&e.message.trim().length>0?e.message:`history-redact replaced ${t.replacements} match(es) across ${t.entriesChanged} entr${t.entriesChanged===1?"y":"ies"}.`}function ms(e){let t=[...e.rewritten.entries];if(e.dryRun||!e.changed)return{rewrittenEntries:t,auditEntryAdded:!1};let r=e.nextItemDocument??D(e.rewritten.finalDocument);return t.push(z({nowIso:S(),author:e.author,op:"history_redact",before:r,after:r,message:e.message})),{rewrittenEntries:t,auditEntryAdded:!0}}function fs(e){let t=[];return{applyRewrite:async({historyRawUnderLock:r})=>{let n=await je(e.pmRoot,e.author),o=new Set;e.currentItem.path&&o.add(e.currentItem.path),e.nextItem.path&&o.add(e.nextItem.path);let i=new Map;e.currentItem.path&&e.currentItem.raw!==null&&i.set(e.currentItem.path,e.currentItem.raw);let s=()=>{};try{try{e.nextItem.path&&e.nextItem.raw!==null&&e.nextItem.raw!==e.currentItem.raw&&await L(e.nextItem.path,e.nextItem.raw),e.currentItem.path&&(!e.nextItem.path||e.nextItem.path!==e.currentItem.path)&&await xt.rm(e.currentItem.path,{force:!0}),await L(e.subject.historyPath,vn(e.rewrittenEntries))}catch(c){try{await hs(e.subject.historyPath,r,o,i)}finally{await gt(e.subject.historyPath)}throw c}await gt(e.subject.historyPath);let a=e.nextItem.path??e.currentItem.path;a&&(t=await qe({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:e.typeRegistry.type_to_folder,schema:e.settings.schema,itemPath:a,...e.currentItem.path?{previousItemPath:e.currentItem.path}:{},document:e.nextItem.document}))}finally{await n().catch(a=>{s=()=>{throw a}})}s()},afterWrite:async()=>[...t,...await ps(e.subject.historyPath,[e.nextItem.path,e.currentItem.path])]}}async function hs(e,t,r,n){t===null?await xt.rm(e,{force:!0}):await L(e,t);for(let o of r){let i=n.get(o);i===void 0?await xt.rm(o,{force:!0}):await L(o,i)}}async function ps(e,t){let r=[],n=new Set(t.filter(o=>o!==null));for(let o of n)r.push(...await X({path:o,scope:"project",op:"history_redact"}));return r.push(...await X({path:e,scope:"project",op:"history_redact:history"})),r}async function Ad(e,t,r){let{pmRoot:n,settings:o,typeRegistry:i}=await ye(r.path),s=t.replacement??"",a=s.length===0,c=a?"[redacted]":s,l=Ao(t.literal,t.regex),d=await V(n,e,o,i.type_to_folder);return Ve({pmRoot:n,subject:d,settings:o,typeRegistry:i,operation:"history-redact",options:t,transform:u=>ys({pmRoot:n,subject:d,settings:o,typeRegistry:i,options:t,rules:l,replacement:c,replacementIsDefault:a},u)})}function ys(e,t){let{pmRoot:r,subject:n,settings:o,typeRegistry:i,options:s,rules:a,replacement:c,replacementIsDefault:l}=e,d=t.entries,u=as(d),m=ds(d,a,c),p=u.hashMismatchesBefore+u.hashMismatchesAfter,g=!!s.dryRun,_=m.replacements>0,y=[];p>0&&y.push(`history_redact_preexisting_hash_mismatches:${p}`),_||y.push("history_redact_no_matches");let w={raw:t.loadedItem?.raw??null,path:n.located?.itemPath??null,document:t.loadedItem?.document??null},b=ls({pmRoot:r,subject:n,settings:o,typeToFolder:i.type_to_folder,finalDocument:m.finalDocument}),v=(w.path??null)!==(b.path??null)||(w.raw??null)!==(b.raw??null),E=t.author,R=us(s,m),{rewrittenEntries:$,auditEntryAdded:W}=ms({rewritten:m,dryRun:g,changed:_,nextItemDocument:b.document,author:E,message:R});return{changed:_,rewrittenEntries:$,...fs({pmRoot:r,subject:n,settings:o,typeRegistry:i,currentItem:w,nextItem:b,author:E,rewrittenEntries:$}),report:({verification:Q,warnings:ct})=>({id:n.id,dry_run:g,changed:_,patterns:{literal_count:a.filter(A=>A.kind==="literal").length,regex_count:a.filter(A=>A.kind==="regex").length,total_count:a.length,replacement_is_default:l},history:{path:n.historyPath,entries_scanned:d.length,entries_changed:m.entriesChanged,replacements:m.replacements,hash_mismatches_before:u.hashMismatchesBefore,hash_mismatches_after:u.hashMismatchesAfter,preexisting_hash_mismatches:p,audit_entry_added:W,verify_ok:Q.ok,verify_errors:Q.errors},item:{existed_before:w.path!==null,exists_after:b.path!==null,path_before:w.path,path_after:b.path,changed:v},warnings:[...new Set([...y,...ct])].sort((A,dt)=>A.localeCompare(dt)),generated_at:S()})}}var Cd={applyLiteralRule:Co,applyRegexRule:To,buildRedactionRules:Ao,hasItemMetadata:Mo,normalizeRegexFlags:Ro,normalizeStringArrayInput:At,parseRegexRule:xo,redactStringValue:Ct,redactUnknownValue:_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]="63c96190-0df9-5803-aa61-b973493a7277")}catch{}})();var Tt={format:"pm-history-attestation",version:1,stream_hash:"exact_file_bytes",rollup_hash:"stable_json_without_workspace_digest",ordering:"stream_id_code_unit_ascending",consistency:"per_stream_snapshot_with_change_detection",trust:"independently_retained_bundle"};import{createHash as gs}from"node:crypto";import{isUtf8 as _s}from"node:buffer";import we from"node:fs/promises";import Mt 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]="a049f799-3807-59b5-96de-51e900798779")}catch{}})();async function Fo(e){try{return(await we.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort()}catch(t){if(Nr(t))return[];throw t}}function ws(e,t,r,n){let o=t.at(-1),i;for(let c=t.length-1;c>=0;c-=1)if(["history_compact","history_compact_baseline","history_redact","history_repair","history_salvage","merge_reconcile"].includes(t[c].op)){i=t[c];break}let s=t[0]?.context?.history_compaction,a=typeof s=="object"&&s!==null&&"pruned_stream_digest"in s&&typeof s.pruned_stream_digest=="string"?s.pruned_stream_digest:null;return{id:e,entries:t.length,bytes:r,stream_digest:n,latest_after_hash:o?.after_hash??null,latest_record_hash:o?.record_hash??null,latest_hash_algorithm:o?x(o.hash_algorithm):null,rewrite_count:t.reduce((c,l)=>c+(l.reanchor_evidence?.length??0),0),checkpoint_digest:a,last_maintenance:i?{op:i.op,ts:i.ts,record_hash:i.record_hash??null}:null}}function bs(e,t,r){try{if(!/^[A-Za-z0-9_-]+$/u.test(e)||!_s(t))return null;let n=[];for(let o of t.toString("utf8").split(/\r?\n/u)){if(!o.trim())continue;let i=JSON.parse(o);if(typeof i!="object"||i===null||Array.isArray(i))return null;let s=i;if(![s.op,s.author,s.ts,s.before_hash,s.after_hash].every(a=>typeof a=="string")||!Array.isArray(s.patch))return null;n.push(s)}return bt(n).ok?ws(e,n,t.length,r):null}catch{return null}}async function Ft(e,t){if(!(await we.stat(e)).isDirectory())throw new TypeError("attestation tracker root must be a directory");let r=Mt.join(e,"history"),n=await Fo(r),o=new Map,i=[];for(let s of n){let a=s.slice(0,-6),c={id:a,digest:null,stream:null};i.push(c);let l=Mt.join(r,s);try{let d=await we.lstat(l);if(o.set(s,F([d.ino,d.size,d.mtimeMs,d.ctimeMs])),!d.isFile())continue;let u=await we.readFile(l);c.digest=gs(t).update(u).digest("hex"),c.stream=bs(a,u,c.digest)}catch{}}if(F(n)!==F(await Fo(r)))throw new TypeError("attestation history inventory changed during read; retry");for(let[s,a]of o){let c=await we.lstat(Mt.join(r,s));if(a!==F([c.ino,c.size,c.mtimeMs,c.ctimeMs]))throw new TypeError("attestation history stream changed during read; retry")}return 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]="54d3c0f4-e663-5e31-aa4e-45ea2f6aaf75")}catch{}})();function Dt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Pt(e,t){return Object.keys(e).length===t.length&&t.every(r=>Object.hasOwn(e,r))}function re(e,t){return typeof e=="string"&&(t==="sha256"?/^[a-f0-9]{64}$/u:/^[a-f0-9]{128}$/u).test(e)}function vs(e){return e.entries===0?[e.latest_hash_algorithm,e.latest_after_hash,e.latest_record_hash,e.checkpoint_digest,e.last_maintenance].every(t=>t===null)&&e.rewrite_count===0:e.latest_hash_algorithm!=="sha256"&&e.latest_hash_algorithm!=="sha512"?!1:re(e.latest_after_hash,e.latest_hash_algorithm)&&(e.latest_record_hash===null||re(e.latest_record_hash,e.latest_hash_algorithm))}function Es(e){return e===null?!0:!Dt(e)||!Pt(e,["op","ts","record_hash"])?!1:typeof e.op=="string"&&["history_compact","history_compact_baseline","history_redact","history_repair","history_salvage","merge_reconcile"].includes(e.op)&&typeof e.ts=="string"&&Ce(e.ts)&&(e.record_hash===null||re(e.record_hash,"sha256")||re(e.record_hash,"sha512"))}function Ss(e,t){return!Dt(e)||!Pt(e,["id","entries","bytes","stream_digest","latest_after_hash","latest_record_hash","latest_hash_algorithm","rewrite_count","checkpoint_digest","last_maintenance"])?!1:typeof e.id=="string"&&/^[A-Za-z0-9_-]+$/u.test(e.id)&&[e.entries,e.bytes,e.rewrite_count].every(r=>typeof r=="number"&&Number.isSafeInteger(r)&&r>=0)&&re(e.stream_digest,t)&&vs(e)&&(e.checkpoint_digest===null||re(e.checkpoint_digest,"sha256"))&&Es(e.last_maintenance)}function Do(e){if(!Dt(e)||!Pt(e,["format","version","hash_algorithm","generated_at","streams","workspace_digest"]))throw new TypeError("Invalid history attestation bundle");if(e.format!==Tt.format||e.version!==1||typeof e.generated_at!="string"||!Ce(e.generated_at)||!Array.isArray(e.streams)||e.hash_algorithm!=="sha256"&&e.hash_algorithm!=="sha512")throw new TypeError("Invalid history attestation format");let t=e.hash_algorithm,r;for(let i of e.streams){if(!Ss(i,t))throw new TypeError("Invalid history attestation stream");let s=i.id;if(r!==void 0&&s<=r)throw new TypeError("Invalid history attestation stream order");r=s}let{workspace_digest:n,...o}=e;if(ft(F(o),t)!==n)throw new TypeError("History attestation rollup mismatch");return e}async function Po(e={}){let t=x(e.hashAlgorithm),r=e.generatedAt??S();if(!Ce(r))throw new TypeError("Invalid history attestation timestamp");let n=await Ft(k(e.cwd??process.cwd(),e.pmRoot),t),o=n.filter(s=>s.stream===null);if(o.length>0)throw new TypeError(`Cannot export history attestation: invalid streams ${o.map(s=>s.id).join(", ")}`);let i={format:Tt.format,version:1,hash_algorithm:t,generated_at:r,streams:n.map(s=>s.stream)};return Do({...i,workspace_digest:ft(F(i),t)})}async function Ho(e,t={}){let r=Do(e),n=await Ft(k(t.cwd??process.cwd(),t.pmRoot),r.hash_algorithm),o=new Map(n.map(d=>[d.id,d])),i=new Map(r.streams.map(d=>[d.id,d])),s=r.streams.filter(d=>!o.has(d.id)).map(d=>d.id),a=n.filter(d=>!i.has(d.id)).map(d=>d.id),c=n.filter(d=>d.stream===null).map(d=>d.id),l=[];for(let d of r.streams){let u=o.get(d.id);u&&(u.digest!==d.stream_digest||F(u.stream)!==F(d))&&l.push({id:d.id,before_digest:d.stream_digest,after_digest:u.digest,last_maintenance:u.stream?.last_maintenance??null})}return{ok:s.length+a.length+c.length+l.length===0,workspace_digest:r.workspace_digest,streams_checked:n.length,changed_streams:l.map(d=>d.id),missing_streams:s,added_streams:a,invalid_streams:c,transitions:l}}import Lo 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]="3bca4afb-f1cc-5627-a377-b30e8005a284")}catch{}})();async function el(e,t){for(let n of["verify","output","hashAlgorithm"]){let o=e[n];if(!(n==="verify"&&typeof o=="object"&&o!==null)&&o!==void 0&&(typeof o!="string"||o.trim().length===0))throw new h(`history attest ${n} requires a nonempty string.`,f.USAGE)}if(e.verify!==void 0){if(e.output!==void 0||e.hashAlgorithm!==void 0)throw new h("history attest --verify cannot be combined with --output or --hash-algorithm",f.USAGE);let n;try{n=typeof e.verify=="string"?JSON.parse(await Lo.readFile(e.verify,"utf8")):e.verify}catch{throw new h("Cannot read history attestation proof. Provide --verify with a readable JSON proof file.",f.USAGE)}return Ho(n,{pmRoot:t.path})}let r=await Po({pmRoot:t.path,hashAlgorithm:x(e.hashAlgorithm)});if(e.output===void 0)return r;try{await Lo.writeFile(e.output,`${JSON.stringify(r,null,2)}
1
+ import{$ as kt,A as io,Jb as yo,K as so,L as ao,Lb as go,Nb as _o,O as co,Ob as wo,Ta as ho,W as lo,X as uo,_ as mo,aa as Rt,ba as ze,g as It,ia as fo,j as Jn,n as Zn,qc as bo,r as ge,rb as po,s as eo,sb as Ve,t as to,u as Be,uc as vo,v as ro,w as no,z as oo}from"./chunk-3ZQQVJT2.js";import{a as ye,b as V,c as Vn,d as Kn}from"./chunk-DAZFCSDV.js";import{Ab as Un,Bb as Ge,Cb as $e,Db as We,Eb as Gn,Fa as Rn,Ff as Yn,Ga as xn,Gf as Xn,Ib as $n,Jb as St,Jc as zn,Ka as An,O as J,Oa as j,Qa as Cn,Ra as te,Re as Qn,S as Kr,Sa as Et,Sb as Wn,T as Qr,Ta as Tn,V as Yr,W as Xr,Y as vt,Z as En,Za as Mn,_ as Pe,ab as Fn,ac as Bn,da as kn,hb as je,jb as qe,kb as Pn,lb as he,mb as pe,nb as Hn,ob as Ln,pb as Ne,qa as Le,rb as On,sb as jn,ua as Oe,xb as qn,yb as Nn,zb as Ue}from"./chunk-ZNWDYDFF.js";import{$i as H,Ah as ht,Bh as pt,Df as on,Dh as yt,Ea as N,Eh as un,Fb as S,Fh as mn,Ib as Ce,Id as x,Jb as Wr,Jd as ft,Kb as Br,Ke as tn,Lb as ut,Ma as k,Na as Ur,Oa as Gr,Pi as P,Qa as B,Qg as sn,Qh as gt,Rg as an,Sa as Re,Sh as fn,Td as O,Vd as Z,Vg as cn,Vi as Dn,Xg as dn,Xh as hn,Yh as pn,Zh as yn,_h as gn,a as F,cb as lt,ce as Te,ee as Jr,ei as z,fb as Y,fi as _n,gh as ln,gi as _t,he as Zr,hi as ue,if as De,ii as me,je as de,jf as rn,ji as wt,kf as le,ki as D,ld as I,li as wn,mi as fe,ni as bn,oe as en,pb as ae,pe as Me,qb as xe,qe as Fe,qi as bt,sd as zr,td as mt,ti as vn,ub as Ae,uf as ee,ui as He,vb as $r,vi as Sn,wd as X,wi as In,xd as Vr,xf as nn,yd as ce}from"./chunk-BFZUJ5QP.js";import{A as f,C as h,E as ke,G as Nr,K as L,u as qr}from"./chunk-J3JM36EH.js";import So from"node:fs/promises";import Io 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]="f3603dce-8aeb-5409-80f4-ad3367e35eb9")}catch{}})();function zi(e,t,r){let n=new Set,o=[];for(let i of e){let s=i.trim();if(s.length===0||n.has(s))continue;n.add(s);let a=t.get(s);if(a===void 0){o.push({id:s,entries:0,selected:!1,skip_reason:"no_stream"});continue}if(a.entries<=r){o.push({id:s,entries:a.entries,selected:!1,skip_reason:"already_compact"});continue}o.push({id:s,entries:a.entries,selected:!0,skip_reason:null})}return o}function Vi(e,t){let r=[...e].sort((o,i)=>i.entries-o.entries||o.id.localeCompare(i.id)),n=[];for(let o of r){if(t.scope==="closed"&&o.bucket!=="closed"){n.push({id:o.id,entries:o.entries,selected:!1,skip_reason:"scope_mismatch"});continue}if(o.entries<=t.minEntries){n.push({id:o.id,entries:o.entries,selected:!1,skip_reason:"already_compact"});continue}if(t.allOver!==void 0&&o.entries<=t.allOver){n.push({id:o.id,entries:o.entries,selected:!1,skip_reason:"below_threshold"});continue}n.push({id:o.id,entries:o.entries,selected:!0,skip_reason:null})}return n}function Eo(e,t){if(t.ids!==void 0&&t.ids.length>0){let r=new Map(e.map(n=>[n.id,n]));return zi(t.ids,r,t.minEntries)}return Vi(e,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]="c6009e5f-840e-5e3a-b8b9-6e9d42d63410")}catch{}})();function Ki(e,t){if(e===void 0)return{kind:"default",raw:null,compactCount:t.length,retainedCount:0};let r=e.trim();if(r.length===0)throw new h("history-compact --before requires a non-empty value.",f.USAGE);if(/^\d+$/.test(r)){let i=Number.parseInt(r,10),s=j(t);if(!Number.isSafeInteger(i)||i<s+1||i>s+t.length+1)throw new h(`history-compact --before version must be between ${s+1} and ${s+t.length+1}.`,f.USAGE);let a=i-s-1;return{kind:"version",raw:r,compactCount:a,retainedCount:t.length-a}}let n=Date.parse(r);if(!Number.isFinite(n))throw new h(`Invalid history-compact --before value "${e}". Use a version number or ISO timestamp.`,f.USAGE);let o=0;for(let[i,s]of t.entries()){let a=Date.parse(s.ts);if(!Number.isFinite(a))throw new h(`History for this item contains invalid timestamp at entry ${i+1}.`,f.GENERIC_FAILURE);if(a>=n)break;o+=1}return{kind:"timestamp",raw:r,compactCount:o,retainedCount:t.length-o}}function Qi(e,t){let r=ue(),n=ue();for(let o=0;o<e.length;o+=1){let i=e[o];r=te(r,i.patch,o+1,i.op),o+1===t&&(n=structuredClone(r))}return{checkpoint:n,finalReplay:r}}function Yi(e,t){if(!e)return{loadedItem:null,currentItemRawBeforeLock:null,matchedChainBefore:null};let r=t[t.length-1];return{loadedItem:e,currentItemRawBeforeLock:e.raw,matchedChainBefore:fn.some(n=>(r.item_hash_version===void 0||r.item_hash_version===n)&&wt(fe(e.document),n,x(r.hash_algorithm)).includes(r.after_hash))}}function Xi(e,t){return typeof e.message=="string"&&e.message.trim().length>0?e.message:t.raw===null?`history-compact compacted full stream (${t.compactCount} entr${t.compactCount===1?"y":"ies"}).`:`history-compact compacted ${t.compactCount} entr${t.compactCount===1?"y":"ies"} before ${t.raw}.`}function Ji(e){return e.raw===null?`history-compact baseline snapshot after compacting ${e.compactCount} entr${e.compactCount===1?"y":"ies"}.`:`history-compact baseline snapshot before ${e.raw}.`}function Zi(e){if(!e.changed)return{rewrittenEntries:e.historyEntries,baselineEntryAdded:!1,auditEntryAdded:!1};let{checkpoint:t,finalReplay:r}=Qi(e.historyEntries,e.boundary.compactCount),n=e.historyEntries.slice(e.boundary.compactCount),o=j(e.historyEntries,!0),i=e.historyEntries[e.boundary.compactCount-1],s=z({hashAlgorithm:x(i.hash_algorithm),nowIso:e.historyEntries[e.boundary.compactCount-1].ts,author:e.author,op:"history_compact_baseline",before:D(ue()),after:D(t),message:Ji(e.boundary),context:{history_compaction:{contract_version:1,version_offset:o===null?null:o+e.boundary.compactCount-1,checkpoint_timestamp_semantics:"last_compacted_entry",pruned_entry_count:e.boundary.compactCount,pruned_stream_digest:hn(e.historyEntries.slice(0,e.boundary.compactCount)),retained_proof:"stream_digest_and_checkpoint",limitation:"individual_pruned_entries_require_pre_compaction_stream"}}}),a=[pn({...s,before_hash:wt(ue(),i.item_hash_version??1,x(i.hash_algorithm))[0],after_hash:i.after_hash,item_hash_version:i.item_hash_version}),...n];return e.dryRun||a.push(z({nowIso:S(),author:e.author,op:"history_compact",before:D(r),after:D(r),message:Xi(e.options,e.boundary)})),{rewrittenEntries:a,baselineEntryAdded:!0,auditEntryAdded:!e.dryRun}}async function es(e,t,r){let{pmRoot:n,settings:o,typeRegistry:i}=await ye(r.path),s=await V(n,e,o,i.type_to_folder);return Ve({pmRoot:n,subject:s,settings:o,typeRegistry:i,operation:"history-compact",options:t,transform:a=>ts(s,t,a)})}function ts(e,t,r){let n=e.historyPath,o=r.entries,i=r.verification;if(!i.ok)throw new h(`history-compact requires a valid history chain (${i.errors.join(", ")}). Run pm history-repair ${e.id} first.`,f.CONFLICT);let s=Ki(t.before,o),a=s.compactCount>0,c=!!t.dryRun,l=r.author,d=[];a||d.push("history_compact_noop_before_boundary");let u=Yi(r.loadedItem,o);u.matchedChainBefore===!1&&d.push("history_compact_item_chain_mismatch");let{rewrittenEntries:m,baselineEntryAdded:p,auditEntryAdded:g}=Zi({historyEntries:o,boundary:s,changed:a,dryRun:c,author:l,options:t}),_=j(o,!0),y=s.retainedCount>0&&_!==null?_+s.compactCount+1:null;return{changed:a,rewrittenEntries:m,report:({verification:w,warnings:b})=>({id:e.id,dry_run:c,changed:a,compact_boundary:{kind:s.kind,before:s.raw,entries_compacted:s.compactCount,entries_retained:s.retainedCount,first_retained_entry:y},history:{path:n,entries_scanned:o.length,entries_after:m.length,baseline_entry_added:p,audit_entry_added:g,verify_ok:w.ok,verify_errors:w.errors},item:{exists:e.located!==null,path:e.located?.itemPath??null,matched_chain_before:u.matchedChainBefore},warnings:[...new Set([...d,...b])].sort((v,E)=>v.localeCompare(E)),generated_at:S()})}}var rs=3;function ns(e){for(let r of["allOver","minEntries"]){let n=e[r];if(n!==void 0&&(!Number.isSafeInteger(n)||n<0))throw new h(`history-compact ${r} must be a non-negative safe integer.`,f.USAGE)}let t=Xr(e.ids);if(e.ids!==void 0&&t==="")throw new h("history-compact ids requires at least one valid item ID.",f.USAGE,{code:"bulk_ids_input_empty",required:"Provide one or more string or finite numeric IDs; non-finite and unsupported selector values are rejected."});return{...e,ids:t===void 0?void 0:Yr(t)}}function cd(e,t){let r=t.ids!==void 0&&t.ids.length>0,n=t.allOver!==void 0||t.scope!==void 0;if((e!==void 0?1:0)+(r?1:0)+(n?1:0)==0)throw new h("history-compact: provide an item <id>, or a bulk selector (--ids, --all-over <N>, --closed, or --all-streams).",f.USAGE);if(e!==void 0&&(r||n))throw new h("history-compact: <id> and bulk selectors (--ids/--all-over/--closed/--all-streams) are mutually exclusive; pass one item id, or use bulk mode without a positional id.",f.USAGE);if(r&&n)throw new h("history-compact: --ids is mutually exclusive with --all-over/--closed/--all-streams; pass an explicit id list or a scan selector, not both.",f.USAGE)}function os(e){let t=0;for(let r of e.split(/\r?\n/))r.trim().length>0&&(t+=1);return t}async function is(e){let t=O(e.settings.schema),r=Be(t),n=await Ne(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema),o=new Map(n.map(l=>[l.id,r.classify(l.status)])),i=Io.join(e.pmRoot,"history"),s=[],a=[];if(!await ke(i))return{candidates:s,preselectionErrors:a};let c=(await So.readdir(i)).filter(l=>l.endsWith(".jsonl")).sort((l,d)=>l.localeCompare(d));for(let l of c){let d=Io.join(i,l),u=l.slice(0,-6);try{let m=await So.readFile(d,"utf8");await ce({path:d,scope:"project"}),s.push({id:u,entries:os(m),bucket:o.get(u)??null})}catch(m){a.push({id:u,outcome:"errored",entries_before:0,entries_after:null,skip_reason:null,changed:!1,error:m instanceof Error?m.message:String(m)})}}return{candidates:s,preselectionErrors:a}}async function ss(e){if(!e.row.selected)return{selected:!1,compacted:!1,errored:!1,result:{id:e.row.id,outcome:"skipped",entries_before:e.row.entries,entries_after:null,skip_reason:e.row.skip_reason,changed:!1,error:null}};try{let t=await es(e.row.id,{dryRun:e.dryRun,author:e.options.author,message:e.options.message,force:e.options.force},e.global);return{selected:!0,compacted:!0,errored:!1,result:{id:e.row.id,outcome:"compacted",entries_before:e.row.entries,entries_after:t.history.entries_after,skip_reason:null,changed:t.changed,error:null}}}catch(t){return{selected:!0,compacted:!1,errored:!0,result:{id:e.row.id,outcome:"errored",entries_before:e.row.entries,entries_after:null,skip_reason:null,changed:!1,error:t instanceof Error?t.message:String(t)}}}}async function dd(e,t){let r=ns(e),{pmRoot:n,settings:o,typeRegistry:i}=await ye(t.path),{candidates:s,preselectionErrors:a}=await is({pmRoot:n,settings:o,typeToFolder:i.type_to_folder}),c=r.ids!==void 0&&r.ids.length>0?"ids":"scan",l=e.minEntries??rs,d=o.history.compact_policy,u=c==="scan"&&e.allOver===void 0&&d.enabled,m=e.allOver??(u?d.max_entries:void 0),p=Eo(s,{ids:r.ids,scope:e.scope,minEntries:l,allOver:m}),g=!!e.dryRun,_=[...a],y={streams_considered:s.length+a.length,selected:0,items_compacted:0,items_skipped:0,items_errored:a.length};for(let w of p){let b=await ss({row:w,options:r,dryRun:g,global:t});if(_.push(b.result),!b.selected){y.items_skipped+=1;continue}y.selected+=1,b.compacted&&(y.items_compacted+=1),b.errored&&(y.items_errored+=1)}return{bulk:!0,dry_run:g,mode:c,scope:e.scope??null,criteria:{min_entries:l,all_over:m??null,policy_threshold_applied:u},totals:y,results:_,generated_at:S()}}import xt 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]="ebf3254f-1fed-5972-b91a-b8ff101675f4")}catch{}})();function At(e){return Array.isArray(e)?e:typeof e=="string"?[e]:[]}function Ro(e){let t=[];for(let r of e)t.includes(r)||t.push(r);return t.includes("g")||t.push("g"),t.join("")}function xo(e){let t=e.trim();if(t.length===0)throw new h("history-redact --regex requires a non-empty pattern.",f.USAGE);let r=t,n="g";if(t.startsWith("/")&&t.length>1){let o=t.lastIndexOf("/");o>0&&(r=t.slice(1,o),n=Ro(t.slice(o+1)))}if(r.length===0)throw new h("history-redact --regex cannot use an empty pattern.",f.USAGE);try{new RegExp(r,n)}catch{throw new h("Invalid --regex value; provide a valid JavaScript regular expression.",f.USAGE)}return{kind:"regex",source:r,flags:n}}function Ao(e,t){let r=[...new Set(At(e).map(i=>i.trim()))].filter(i=>i.length>0).map(i=>({kind:"literal",value:i})),n=[...new Set(At(t).map(i=>i.trim()))].filter(i=>i.length>0).map(xo),o=[...r,...n];if(o.length===0)throw new h("history-redact requires at least one matcher via --literal or --regex.",f.USAGE,{code:"missing_required_argument",required:"Provide --literal <value> and/or --regex <pattern>.",examples:['pm history-redact pm-a1b2 --literal "[redacted_path_prefix]/private"','pm history-redact pm-a1b2 --regex "/192\\\\.168\\\\.[0-9.]+/g" --replacement "[scrubbed_ip]"']});return o}function Co(e,t,r){if(t.length===0)return{value:e,replacements:0};let n=0,o=0;for(;n<=e.length;){let i=e.indexOf(t,n);if(i===-1)break;o+=1,n=i+Math.max(1,t.length)}return o===0?{value:e,replacements:0}:{value:e.split(t).join(r),replacements:o}}function To(e,t,r){let n=new RegExp(t.source,t.flags),o=[...e.matchAll(n)];return o.length===0?{value:e,replacements:0}:{value:e.replace(n,r),replacements:o.length}}function Ct(e,t,r){let n=e,o=0;for(let i of t){let s=i.kind==="literal"?Co(n,i.value,r):To(n,i,r);n=s.value,o+=s.replacements}return{value:n,replacements:o}}function _e(e,t,r){if(typeof e=="string")return Ct(e,t,r);if(Array.isArray(e)){let n=0;return{value:e.map(o=>{let i=_e(o,t,r);return n+=i.replacements,i.value}),replacements:n}}if(typeof e=="object"&&e!==null){let n=0,o={};for(let[i,s]of Object.entries(e)){let a=_e(s,t,r);n+=a.replacements,o[i]=a.value}return{value:o,replacements:n}}return{value:e,replacements:0}}function ko(e,t,r){let n=0;return{patch:e.map(o=>{if(!Object.prototype.hasOwnProperty.call(o,"value"))return o;let i=_e(o.value,t,r);return n+=i.replacements,i.replacements>0?{...o,value:i.value}:o}),replacements:n}}function as(e){let t=structuredClone(_t),r=0,n=0;for(let o=0;o<e.length;o+=1){let i=e[o];me(t,void 0,x(i.hash_algorithm))!==i.before_hash&&(r+=1),t=te(t,i.patch,o+1,i.op),me(t,void 0,x(i.hash_algorithm))!==i.after_hash&&(n+=1)}return{hashMismatchesBefore:r,hashMismatchesAfter:n,finalDocument:t}}function cs(e,t,r){let n=0,o=!1,i=!1,s=e.message;if(typeof e.message=="string"){let l=Ct(e.message,t,r);s=l.value,n+=l.replacements,l.replacements>0&&(o=!0)}let a=ko(e.patch,t,r);n+=a.replacements,o||=a.replacements>0;let c=e.reanchor_evidence?.map(l=>{let d=l.patch?ko(l.patch,t,r):{patch:void 0,replacements:0},u=l.record?_e(l.record,t,r):{value:void 0,replacements:0};n+=d.replacements,n+=u.replacements;let m=d.replacements>0||u.replacements>0;if(o||=m,!m)return l;i=!0;let{patch:p,record:g,record_hash:_,record_hash_version:y,...w}=l;return d.replacements>0?w:{...w,patch:l.patch}});return{entry:{...e,message:s,patch:a.patch,...c?{reanchor_evidence:c}:{}},replacements:n,changed:o,reanchorEvidenceRedacted:i}}function ds(e,t,r){let n=structuredClone(_t),o=0,i=0,s=[];for(let a=0;a<e.length;a+=1){let c=e[a],l=yn(c);if(!l.ok)throw new h(`history-redact refuses invalid immutable record ${a+1} (${l.error}).`,f.GENERIC_FAILURE);let d=cs(c,t,r);i+=d.replacements,d.changed&&(o+=1);let u=me(n,void 0,x(c.hash_algorithm));n=te(n,d.entry.patch,a+1,d.entry.op);let m=me(n,void 0,x(c.hash_algorithm));s.push(gn(c,{...d.entry,before_hash:u,after_hash:m},{retainPriorRecord:d.changed,retainPriorRecordHash:!d.changed}))}return{entries:s,finalDocument:n,entriesChanged:o,replacements:i}}function Mo(e){return Object.keys(e.metadata).length>0}function ls(e){if(!Mo(e.finalDocument))return{raw:null,path:null,document:null};let t=Fe(D(e.finalDocument),{schema:e.settings.schema});if(t.metadata.id!==e.subject.id)throw new h("history-redact would change the item id; narrow your patterns.",f.USAGE);return{document:t,path:B(e.pmRoot,t.metadata.type,e.subject.id,"toon",e.typeToFolder),raw:Me(t,{format:"toon",schema:e.settings.schema})}}function us(e,t){return typeof e.message=="string"&&e.message.trim().length>0?e.message:`history-redact replaced ${t.replacements} match(es) across ${t.entriesChanged} entr${t.entriesChanged===1?"y":"ies"}.`}function ms(e){let t=[...e.rewritten.entries];if(e.dryRun||!e.changed)return{rewrittenEntries:t,auditEntryAdded:!1};let r=e.nextItemDocument??D(e.rewritten.finalDocument);return t.push(z({nowIso:S(),author:e.author,op:"history_redact",before:r,after:r,message:e.message})),{rewrittenEntries:t,auditEntryAdded:!0}}function fs(e){let t=[];return{applyRewrite:async({historyRawUnderLock:r})=>{let n=await je(e.pmRoot,e.author),o=new Set;e.currentItem.path&&o.add(e.currentItem.path),e.nextItem.path&&o.add(e.nextItem.path);let i=new Map;e.currentItem.path&&e.currentItem.raw!==null&&i.set(e.currentItem.path,e.currentItem.raw);let s=()=>{};try{try{e.nextItem.path&&e.nextItem.raw!==null&&e.nextItem.raw!==e.currentItem.raw&&await L(e.nextItem.path,e.nextItem.raw),e.currentItem.path&&(!e.nextItem.path||e.nextItem.path!==e.currentItem.path)&&await xt.rm(e.currentItem.path,{force:!0}),await L(e.subject.historyPath,vn(e.rewrittenEntries))}catch(c){try{await hs(e.subject.historyPath,r,o,i)}finally{await gt(e.subject.historyPath)}throw c}await gt(e.subject.historyPath);let a=e.nextItem.path??e.currentItem.path;a&&(t=await qe({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:e.typeRegistry.type_to_folder,schema:e.settings.schema,itemPath:a,...e.currentItem.path?{previousItemPath:e.currentItem.path}:{},document:e.nextItem.document}))}finally{await n().catch(a=>{s=()=>{throw a}})}s()},afterWrite:async()=>[...t,...await ps(e.subject.historyPath,[e.nextItem.path,e.currentItem.path])]}}async function hs(e,t,r,n){t===null?await xt.rm(e,{force:!0}):await L(e,t);for(let o of r){let i=n.get(o);i===void 0?await xt.rm(o,{force:!0}):await L(o,i)}}async function ps(e,t){let r=[],n=new Set(t.filter(o=>o!==null));for(let o of n)r.push(...await X({path:o,scope:"project",op:"history_redact"}));return r.push(...await X({path:e,scope:"project",op:"history_redact:history"})),r}async function Ad(e,t,r){let{pmRoot:n,settings:o,typeRegistry:i}=await ye(r.path),s=t.replacement??"",a=s.length===0,c=a?"[redacted]":s,l=Ao(t.literal,t.regex),d=await V(n,e,o,i.type_to_folder);return Ve({pmRoot:n,subject:d,settings:o,typeRegistry:i,operation:"history-redact",options:t,transform:u=>ys({pmRoot:n,subject:d,settings:o,typeRegistry:i,options:t,rules:l,replacement:c,replacementIsDefault:a},u)})}function ys(e,t){let{pmRoot:r,subject:n,settings:o,typeRegistry:i,options:s,rules:a,replacement:c,replacementIsDefault:l}=e,d=t.entries,u=as(d),m=ds(d,a,c),p=u.hashMismatchesBefore+u.hashMismatchesAfter,g=!!s.dryRun,_=m.replacements>0,y=[];p>0&&y.push(`history_redact_preexisting_hash_mismatches:${p}`),_||y.push("history_redact_no_matches");let w={raw:t.loadedItem?.raw??null,path:n.located?.itemPath??null,document:t.loadedItem?.document??null},b=ls({pmRoot:r,subject:n,settings:o,typeToFolder:i.type_to_folder,finalDocument:m.finalDocument}),v=(w.path??null)!==(b.path??null)||(w.raw??null)!==(b.raw??null),E=t.author,R=us(s,m),{rewrittenEntries:$,auditEntryAdded:W}=ms({rewritten:m,dryRun:g,changed:_,nextItemDocument:b.document,author:E,message:R});return{changed:_,rewrittenEntries:$,...fs({pmRoot:r,subject:n,settings:o,typeRegistry:i,currentItem:w,nextItem:b,author:E,rewrittenEntries:$}),report:({verification:Q,warnings:ct})=>({id:n.id,dry_run:g,changed:_,patterns:{literal_count:a.filter(A=>A.kind==="literal").length,regex_count:a.filter(A=>A.kind==="regex").length,total_count:a.length,replacement_is_default:l},history:{path:n.historyPath,entries_scanned:d.length,entries_changed:m.entriesChanged,replacements:m.replacements,hash_mismatches_before:u.hashMismatchesBefore,hash_mismatches_after:u.hashMismatchesAfter,preexisting_hash_mismatches:p,audit_entry_added:W,verify_ok:Q.ok,verify_errors:Q.errors},item:{existed_before:w.path!==null,exists_after:b.path!==null,path_before:w.path,path_after:b.path,changed:v},warnings:[...new Set([...y,...ct])].sort((A,dt)=>A.localeCompare(dt)),generated_at:S()})}}var Cd={applyLiteralRule:Co,applyRegexRule:To,buildRedactionRules:Ao,hasItemMetadata:Mo,normalizeRegexFlags:Ro,normalizeStringArrayInput:At,parseRegexRule:xo,redactStringValue:Ct,redactUnknownValue:_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]="63c96190-0df9-5803-aa61-b973493a7277")}catch{}})();var Tt={format:"pm-history-attestation",version:1,stream_hash:"exact_file_bytes",rollup_hash:"stable_json_without_workspace_digest",ordering:"stream_id_code_unit_ascending",consistency:"per_stream_snapshot_with_change_detection",trust:"independently_retained_bundle"};import{createHash as gs}from"node:crypto";import{isUtf8 as _s}from"node:buffer";import we from"node:fs/promises";import Mt 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]="a049f799-3807-59b5-96de-51e900798779")}catch{}})();async function Fo(e){try{return(await we.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort()}catch(t){if(Nr(t))return[];throw t}}function ws(e,t,r,n){let o=t.at(-1),i;for(let c=t.length-1;c>=0;c-=1)if(["history_compact","history_compact_baseline","history_redact","history_repair","history_salvage","merge_reconcile"].includes(t[c].op)){i=t[c];break}let s=t[0]?.context?.history_compaction,a=typeof s=="object"&&s!==null&&"pruned_stream_digest"in s&&typeof s.pruned_stream_digest=="string"?s.pruned_stream_digest:null;return{id:e,entries:t.length,bytes:r,stream_digest:n,latest_after_hash:o?.after_hash??null,latest_record_hash:o?.record_hash??null,latest_hash_algorithm:o?x(o.hash_algorithm):null,rewrite_count:t.reduce((c,l)=>c+(l.reanchor_evidence?.length??0),0),checkpoint_digest:a,last_maintenance:i?{op:i.op,ts:i.ts,record_hash:i.record_hash??null}:null}}function bs(e,t,r){try{if(!/^[A-Za-z0-9_-]+$/u.test(e)||!_s(t))return null;let n=[];for(let o of t.toString("utf8").split(/\r?\n/u)){if(!o.trim())continue;let i=JSON.parse(o);if(typeof i!="object"||i===null||Array.isArray(i))return null;let s=i;if(![s.op,s.author,s.ts,s.before_hash,s.after_hash].every(a=>typeof a=="string")||!Array.isArray(s.patch))return null;n.push(s)}return bt(n).ok?ws(e,n,t.length,r):null}catch{return null}}async function Ft(e,t){if(!(await we.stat(e)).isDirectory())throw new TypeError("attestation tracker root must be a directory");let r=Mt.join(e,"history"),n=await Fo(r),o=new Map,i=[];for(let s of n){let a=s.slice(0,-6),c={id:a,digest:null,stream:null};i.push(c);let l=Mt.join(r,s);try{let d=await we.lstat(l);if(o.set(s,F([d.ino,d.size,d.mtimeMs,d.ctimeMs])),!d.isFile())continue;let u=await we.readFile(l);c.digest=gs(t).update(u).digest("hex"),c.stream=bs(a,u,c.digest)}catch{}}if(F(n)!==F(await Fo(r)))throw new TypeError("attestation history inventory changed during read; retry");for(let[s,a]of o){let c=await we.lstat(Mt.join(r,s));if(a!==F([c.ino,c.size,c.mtimeMs,c.ctimeMs]))throw new TypeError("attestation history stream changed during read; retry")}return 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]="54d3c0f4-e663-5e31-aa4e-45ea2f6aaf75")}catch{}})();function Dt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Pt(e,t){return Object.keys(e).length===t.length&&t.every(r=>Object.hasOwn(e,r))}function re(e,t){return typeof e=="string"&&(t==="sha256"?/^[a-f0-9]{64}$/u:/^[a-f0-9]{128}$/u).test(e)}function vs(e){return e.entries===0?[e.latest_hash_algorithm,e.latest_after_hash,e.latest_record_hash,e.checkpoint_digest,e.last_maintenance].every(t=>t===null)&&e.rewrite_count===0:e.latest_hash_algorithm!=="sha256"&&e.latest_hash_algorithm!=="sha512"?!1:re(e.latest_after_hash,e.latest_hash_algorithm)&&(e.latest_record_hash===null||re(e.latest_record_hash,e.latest_hash_algorithm))}function Es(e){return e===null?!0:!Dt(e)||!Pt(e,["op","ts","record_hash"])?!1:typeof e.op=="string"&&["history_compact","history_compact_baseline","history_redact","history_repair","history_salvage","merge_reconcile"].includes(e.op)&&typeof e.ts=="string"&&Ce(e.ts)&&(e.record_hash===null||re(e.record_hash,"sha256")||re(e.record_hash,"sha512"))}function Ss(e,t){return!Dt(e)||!Pt(e,["id","entries","bytes","stream_digest","latest_after_hash","latest_record_hash","latest_hash_algorithm","rewrite_count","checkpoint_digest","last_maintenance"])?!1:typeof e.id=="string"&&/^[A-Za-z0-9_-]+$/u.test(e.id)&&[e.entries,e.bytes,e.rewrite_count].every(r=>typeof r=="number"&&Number.isSafeInteger(r)&&r>=0)&&re(e.stream_digest,t)&&vs(e)&&(e.checkpoint_digest===null||re(e.checkpoint_digest,"sha256"))&&Es(e.last_maintenance)}function Do(e){if(!Dt(e)||!Pt(e,["format","version","hash_algorithm","generated_at","streams","workspace_digest"]))throw new TypeError("Invalid history attestation bundle");if(e.format!==Tt.format||e.version!==1||typeof e.generated_at!="string"||!Ce(e.generated_at)||!Array.isArray(e.streams)||e.hash_algorithm!=="sha256"&&e.hash_algorithm!=="sha512")throw new TypeError("Invalid history attestation format");let t=e.hash_algorithm,r;for(let i of e.streams){if(!Ss(i,t))throw new TypeError("Invalid history attestation stream");let s=i.id;if(r!==void 0&&s<=r)throw new TypeError("Invalid history attestation stream order");r=s}let{workspace_digest:n,...o}=e;if(ft(F(o),t)!==n)throw new TypeError("History attestation rollup mismatch");return e}async function Po(e={}){let t=x(e.hashAlgorithm),r=e.generatedAt??S();if(!Ce(r))throw new TypeError("Invalid history attestation timestamp");let n=await Ft(k(e.cwd??process.cwd(),e.pmRoot),t),o=n.filter(s=>s.stream===null);if(o.length>0)throw new TypeError(`Cannot export history attestation: invalid streams ${o.map(s=>s.id).join(", ")}`);let i={format:Tt.format,version:1,hash_algorithm:t,generated_at:r,streams:n.map(s=>s.stream)};return Do({...i,workspace_digest:ft(F(i),t)})}async function Ho(e,t={}){let r=Do(e),n=await Ft(k(t.cwd??process.cwd(),t.pmRoot),r.hash_algorithm),o=new Map(n.map(d=>[d.id,d])),i=new Map(r.streams.map(d=>[d.id,d])),s=r.streams.filter(d=>!o.has(d.id)).map(d=>d.id),a=n.filter(d=>!i.has(d.id)).map(d=>d.id),c=n.filter(d=>d.stream===null).map(d=>d.id),l=[];for(let d of r.streams){let u=o.get(d.id);u&&(u.digest!==d.stream_digest||F(u.stream)!==F(d))&&l.push({id:d.id,before_digest:d.stream_digest,after_digest:u.digest,last_maintenance:u.stream?.last_maintenance??null})}return{ok:s.length+a.length+c.length+l.length===0,workspace_digest:r.workspace_digest,streams_checked:n.length,changed_streams:l.map(d=>d.id),missing_streams:s,added_streams:a,invalid_streams:c,transitions:l}}import Lo 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]="3bca4afb-f1cc-5627-a377-b30e8005a284")}catch{}})();async function el(e,t){for(let n of["verify","output","hashAlgorithm"]){let o=e[n];if(!(n==="verify"&&typeof o=="object"&&o!==null)&&o!==void 0&&(typeof o!="string"||o.trim().length===0))throw new h(`history attest ${n} requires a nonempty string.`,f.USAGE)}if(e.verify!==void 0){if(e.output!==void 0||e.hashAlgorithm!==void 0)throw new h("history attest --verify cannot be combined with --output or --hash-algorithm",f.USAGE);let n;try{n=typeof e.verify=="string"?JSON.parse(await Lo.readFile(e.verify,"utf8")):e.verify}catch{throw new h("Cannot read history attestation proof. Provide --verify with a readable JSON proof file.",f.USAGE)}return Ho(n,{pmRoot:t.path})}let r=await Po({pmRoot:t.path,hashAlgorithm:x(e.hashAlgorithm)});if(e.output===void 0)return r;try{await Lo.writeFile(e.output,`${JSON.stringify(r,null,2)}
2
2
  `,{flag:"wx",mode:384})}catch{throw new h("Cannot create history attestation proof. Choose --output with a new filename in a writable directory; existing files are never overwritten.",f.USAGE)}return{output:e.output,workspace_digest:r.workspace_digest,streams:r.streams.length}}import Is from"fast-json-patch";import Ht 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]="f3145f17-e911-571b-9da3-f014e6fdde1c")}catch{}})();async function Oo(e,t,r){let n=await Hn(e,{schema:t.schema});return n.error===null?{raw:n.raw,document:n.document}:{raw:n.raw,document:jo(r),recovered:!0}}function ks(e,t){return Cn(e,t,{errorSubject:"restore",allowFutureTimestamp:!0})}function jo(e){let t=Et(e,e.length-1);return Object.keys(t.metadata).length===0?{metadata:{},body:t.body}:Fe(D(t))}async function Rs(e,t,r,n){let o=await V(e,t,r,n),i=o.located?await Pe({pmRoot:e,settings:r,itemId:o.id,commandLabel:"restore"}):{warnings:[]};return{...o,historyPolicyWarnings:i.warnings}}function xs(e,t){let r=fe(e),n=fe(t),o=Is.compare(r,n),i=new Set;for(let s of o){if(s.path==="/body"||s.path.startsWith("/body/")){i.add("body");continue}let a=s.path.replace(/^\/(?:metadata|front_matter)\/?/,"").split("/")[0];i.add(a.replaceAll("~1","/").replaceAll("~0","~"))}return Array.from(i).sort((s,a)=>s.localeCompare(a))}async function As(e){let t=await po({pmRoot:e.pmRoot,subject:e.subject,settings:e.settings,typeRegistry:e.typeRegistry,historyRawBeforeLock:e.historyRawBeforeLock,currentItemRawBeforeLock:e.currentItemRawBeforeLock,operation:"restore",readItem:r=>Oo(r,e.settings,e.history)});return{loadedItemUnderLock:t.loadedItemUnderLock,existingItemPath:t.locatedUnderLock?.itemPath??null}}function Cs(e,t){return e?{document:e.document,originalRaw:e.raw}:{document:jo(t),originalRaw:null}}function Ts(e){let t=e.document.metadata.assignee?.trim();if(!(t&&t!==e.author&&!e.force))return[];if(e.enforcement==="strict")throw new h(`Item ${e.resolvedId} is assigned to ${t}. Use --force to override.`,f.CONFLICT);return e.enforcement==="warn"?[`ownership_warning:assignee_conflict:${e.resolvedId}:${t}`]:[]}async function Ms(e){if(e.existingItemPath&&e.resolvedOriginalRaw!==null&&e.restoredItemPath!==e.existingItemPath){await L(e.existingItemPath,e.resolvedOriginalRaw),await Ht.rm(e.restoredItemPath,{force:!0});return}if(e.existingItemPath&&e.resolvedOriginalRaw!==null){await L(e.existingItemPath,e.resolvedOriginalRaw);return}await Ht.rm(e.restoredItemPath,{force:!0})}async function Fs(e){return[...await X({path:e.restoredItemPath,scope:"project",op:"restore",item_id:e.after.metadata.id,item_type:e.after.metadata.type,before:e.before,after:e.after,changed_fields:["restored"]}),...await X({path:e.historyPath,scope:"project",op:"restore:history",item_id:e.after.metadata.id,item_type:e.after.metadata.type,before:e.before,after:e.after,changed_fields:["restored"]})]}async function _l(e,t,r,n){let o=k(process.cwd(),n.path);await H(o);let i=await P(o),s=N(i,I()),a=await Rs(o,e,i,s.type_to_folder),c=a.id,{raw:l,entries:d}=await rn(a.historyPath,c);if(d.length===0)throw new h(`No history exists for ${c}; restore is unavailable.`,f.NOT_FOUND);let u=ks(t,d),m=Tn(Et(d,u.historyIndex),u),p=wn(m,{schema:i.schema});if(p.metadata.id!==c)throw new h(`Restore target resolved to item ${p.metadata.id}, expected ${c}.`,f.GENERIC_FAILURE);let g=(a.located?await Oo(a.located,i,d):null)?.raw??null,_=De(r.author,i.author_default),y=await tn(o,c,i.locks.ttl_seconds,_,!!r.force,i.governance.force_required_for_stale_lock,i.locks.wait_ms,{waitPolicy:"progress"}),w=y.release;try{let{loadedItemUnderLock:b,existingItemPath:v}=await As({pmRoot:o,subject:a,settings:i,typeRegistry:s,historyRawBeforeLock:l,currentItemRawBeforeLock:g,history:d}),E="toon",R=Cs(b,d);Fn(o,R.document),p.metadata.pm_format_version=Jr(Math.max(Te(p.metadata),Te(R.document.metadata))),Dn(Ur(o),Te(p.metadata));let $=Ts({document:R.document,author:_,force:r.force,enforcement:i.governance.ownership_enforcement,resolvedId:c}),W=xs(R.document,p),Q=await Mn({pmRoot:o,settings:i,operation:"restore",author:_,before:R.document,after:p});await Vr({pm_root:o,operation:"restore",before:R.document,after:p,changed_fields:W,sdk:On({pmRoot:o,settings:i,typeToFolder:s.type_to_folder})});let ct=Me(p,{format:E,schema:i.schema}),A=B(o,p.metadata.type,c,E,s.type_to_folder),dt=await y.fence(async()=>{let $i=await je(o,_),jr;try{await L(A,ct),v&&A!==v&&await Ht.rm(v);let Wi=z({nowIso:S(),author:_,op:"restore",before:R.document,after:p,message:r.message,context:Q.decisions.length===0?void 0:{workflow_policies:Q.decisions}});try{await _n(a.historyPath,Wi)}catch(Bi){throw await Ms({existingItemPath:v,resolvedOriginalRaw:R.originalRaw,restoredItemPath:A}),Bi}jr=await qe({pmRoot:o,preferredFormat:i.item_format,typeToFolder:s.type_to_folder,schema:i.schema,itemPath:A,previousItemPath:v??void 0,document:p})}finally{await $i()}return jr}),Gi=await Fs({restoredItemPath:A,historyPath:a.historyPath,before:R.document,after:p});zr({id:p.metadata.id,op:"restore",item_type:p.metadata.type,previous_status:R.document.metadata.status,status:p.metadata.status,previous:mt(R.document.metadata,W),current:mt(p.metadata,W),changed_fields:W});let Lr=d[u.historyIndex],Or=j(d,!0);return{item:p.metadata,restored_from:{kind:u.kind,target:u.raw,history_index:u.historyIndex+1,version:Or===null?null:Or+u.historyIndex+1,entry_ts:Lr.ts,entry_op:Lr.op},changed_fields:W,warnings:[...Q.warnings,...b?.recovered?["restore_unreadable_item_recovered"]:[],...a.historyPolicyWarnings,...$,...dt,...Gi]}}finally{await w()}}(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]="190eb119-9510-59d6-bb3a-d1f807c68281")}catch{}})();var Ds=["status","type","tag","priority","deadlineBefore","deadlineAfter","updatedAfter","updatedBefore","createdAfter","createdBefore","ids","assignee","assigneeFilter","parent","sprint","release"],Ps=["filterAcMissing","filterEstimatesMissing","filterResolutionMissing","filterMetadataMissing","filterReviewerMissing","filterRiskMissing","filterConfidenceMissing","filterSprintMissing","filterReleaseMissing","hasNotes","hasLearnings","hasFiles","hasDocs","hasTests","hasComments","hasDeps","hasBody","hasLinkedCommand","noNotes","noLearnings","noFiles","noDocs","noTests","noComments","noDeps","emptyBody","noLinkedCommand"];function Hs(e){return e!=null&&(typeof e!="string"||e.split(",").some(t=>t.trim().length>0))}function bl(e,t,r={}){let n=r.includePagination!==!1;return[t,...Ds.map(o=>e?.[o]),...n?[e?.limit,e?.offset]:[]].some(Hs)||Ps.some(o=>e?.[o]===!0)}function qo(e){return{type:e.type,tag:e.tag,priority:e.priority,deadlineBefore:e.deadlineBefore,deadlineAfter:e.deadlineAfter,assignee:e.assignee,assigneeFilter:e.assigneeFilter,parent:e.parent,sprint:e.sprint,release:e.release}}(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]="59f55926-8d04-52f8-a7fc-d32edd32b760")}catch{}})();var No=["parent","type","priority","status","assignee","tags","sprint","release"];function Go(e,t){let r=Le(e,t,{strict:!0,flagLabel:"--status"});if(!(!r||r.length===0))return r}function $o(e,t=["estimate","estimated_minutes","priority"]){let r=e.sum?.trim(),n=e.avg?.trim(),o=r&&r.length>0?r:void 0,i=n&&n.length>0?n:void 0;if(!o&&!i)return null;if(o&&i&&o!==i)throw new h("Aggregate --sum and --avg must target the same numeric field",f.USAGE);let s=o??i;if(!t.includes(s))throw new h(`Aggregate numeric field "${s}" is not registered. Allowed: ${t.join(", ")}`,f.USAGE);return{field:s,sum:o!==void 0,avg:i!==void 0}}function Wo(e){let t=e?.trim()??"status";if(t.length===0)throw new h("--group-by requires at least one field name",f.USAGE);let r=zn(t);if(r.length===0)throw new h("--group-by requires a comma-separated list of fields",f.USAGE);for(let n of r)if(!No.includes(n))throw new h(`Aggregate group fields must be one of ${No.join("|")}; received "${n}"`,f.USAGE);return r}function Bo(e){let t=[...new Set(e.map(r=>r.trim().toLowerCase()).filter(r=>r.length>0))].sort((r,n)=>r.localeCompare(n));return t.length===0?null:t.join(",")}function zo(e,t){switch(e){case"parent":return t.parent??null;case"type":return t.type;case"priority":return t.priority;case"status":return t.status;case"assignee":return t.assignee??null;case"tags":return Bo(t.tags);case"sprint":return t.sprint??null;case"release":return t.release??null;default:return null}}function Vo(e,t){let r=e??null,n=t??null;return r===n?0:r===null?1:n===null?-1:typeof r=="number"&&typeof n=="number"?r-n:String(r).localeCompare(String(n))}function Ke(e,t){return e.map(r=>`${r}:${JSON.stringify(t[r]??null)}`).join("|")}var Ls={parent:"(unparented)",type:"(untyped)",priority:"(no priority)",status:"(no status)",assignee:"(unassigned)",tags:"(untagged)",sprint:"(no sprint)",release:"(no release)"};function Uo(e,t){return t==null||t===""?Ls[e]:String(t)}function Os(e,t){return e.length===1?Uo(e[0],t[e[0]]):e.map(r=>`${r}=${Uo(r,t[r])}`).join(" | ")}function Ko(e,t,r){for(let n of r){let o=Vo(e.group[n],t.group[n]);if(o!==0)return o}return 0}function Qo(e,t){let r=e[t];if(typeof r=="number"&&Number.isFinite(r))return r;if(typeof r=="string"){let n=r.trim();if(n.length===0)return null;let o=Number(n);if(Number.isFinite(o))return o}return null}function Yo(e,t){return t<=0?0:Math.round(e/t*1e4)/100}function Lt(e,t,r){let n=Zr(String(t),r)??t;if(n===r.open_status){e.open_count+=1;return}if(n==="in_progress"||r.active_statuses.has(n)&&n!==r.open_status){e.in_progress_count+=1;return}if(r.terminal_done_statuses.has(n)||n===r.close_status){e.closed_count+=1;return}e.other_count+=1}function js(e,t){return{row:{group:e,count:1},numeric_count:t===null?0:1,numeric_sum:t??0,null_count:t===null?1:0,open_count:0,in_progress_count:0,closed_count:0,other_count:0}}function qs(e,t){if(t===null){e.null_count+=1;return}e.numeric_count+=1,e.numeric_sum+=t}function Ns(e){e.accumulator.row.count+=1,e.includeCompletion&&Lt(e.accumulator,e.item.status,e.statusRegistry),e.numericAggregation!==null&&qs(e.accumulator,e.numericValue)}function Us(e,t,r,n){for(let o of t){let i=Ke(r,o),s=e.get(i);if(s){Ns({...n,accumulator:s});continue}let a=js(o,n.numericValue);n.includeCompletion&&Lt(a,n.item.status,n.statusRegistry),e.set(i,a)}}function Gs(e,t){let r={};for(let n of e)r[n]=zo(n,t);return r}function $s(e,t,r){let n=[Gs(e,t)];if(r==="tuple")return n;for(let o of e){let i=t[o];if(!Array.isArray(i))continue;let s=[...new Set(i.map(a=>a.trim().toLowerCase()).filter(Boolean))].sort();s.length!==0&&(n=n.flatMap(a=>s.map(c=>({...a,[o]:c}))))}return n}function Ws(e,t,r,n){let o={...e.row,group_label:Os(t,e.row.group)};return r&&(o.open=e.open_count,o.in_progress=e.in_progress_count,o.closed=e.closed_count,o.other=e.other_count,o.completion_pct=Yo(e.closed_count,e.row.count)),n!==null&&(o.null_count=e.null_count,n.sum&&(o.sum=e.numeric_sum),n.avg&&(o.avg=e.numeric_count===0?null:e.numeric_sum/e.numeric_count)),o}function Bs(e){return{group_by:e.groupBy,set_mode:e.setMode,count:!0,completion:e.includeCompletion,include_unparented:e.includeUnparented,status:e.status?.[0]??null,status_values:e.status,type:e.options.type??null,tag:e.options.tag??null,priority:e.options.priority??null,deadline_before:e.options.deadlineBefore??null,deadline_after:e.options.deadlineAfter??null,assignee:e.options.assignee??null,assignee_filter:e.options.assigneeFilter??null,parent:e.options.parent??null,sprint:e.options.sprint??null,release:e.options.release??null,...e.numericAggregation!==null?{sum:e.options.sum??null,avg:e.options.avg??null,numeric_field:e.numericAggregation.field}:{}}}async function Rl(e,t){if(e.count===!1)throw new h("Aggregate grouped counts are always enabled; omit count=false.",f.USAGE);let r=k(process.cwd(),t.path),n=await P(r),o=O(n.schema),i=["estimate","estimated_minutes","priority",...Z(n.schema).definitions.filter(v=>v.type==="number").map(v=>v.metadata_key)],s=Wo(e.groupBy),a=e.setMode??"element";if(a!=="element"&&a!=="tuple")throw new h("Aggregate --set-mode must be element or tuple",f.USAGE);let c=Go(e.status,o),l=$o(e,[...new Set(i)].sort((v,E)=>v.localeCompare(E))),d=e.completion===!0,u=e.includeUnparented===!0,m=await ze(void 0,{...qo(e),status:e.status,noTruncate:!0,strictRead:!0},t),p=new Map,g=0,_=0,y=0;for(let v of m.items){let E=v;if(s.includes("parent")&&E.parent===void 0&&!u){g+=1;continue}let R=l===null?null:Qo(E,l.field),$=$s(s,E,a);Us(p,$,s,{item:E,statusRegistry:o,includeCompletion:d,numericAggregation:l,numericValue:R}),y+=$.length,_+=1}let w=[...p.values()].map(v=>Ws(v,s,d,l)).sort((v,E)=>Ko(v,E,s)),b=m.warnings&&m.warnings.length>0?m.warnings:void 0;return{...zs(w,s,e),count:w.length,totals:{items_considered:m.items.length,items_grouped:_,items_skipped_unparented:g,group_memberships:y},filters:Bs({groupBy:s,setMode:a,includeCompletion:d,includeUnparented:u,status:c,options:e,numericAggregation:l}),now:S(),...b?{warnings:b}:{}}}function zs(e,t,r){let n=fo(r.limit,"limit")??50,o=r.after===void 0?-1:e.findIndex(a=>Ke(t,a.group)===r.after);if(r.after!==void 0&&o<0)throw new h("Aggregate --after cursor is absent from the current grouping; restart without --after.",f.USAGE);let i=e.slice(o+1,o+1+n),s=o+1+i.length<e.length;return{groups:i,returned_count:i.length,truncated:s,next_after:s?Ke(t,i.at(-1).group):null}}var xl={buildGroupKey:Ke,compareAggregateRows:Ko,compareNullableGroupValue:Vo,completionPct:Yo,normalizeTagGroupValue:Bo,parseGroupBy:Wo,parseNumericAggregation:$o,parseStatus:Go,readNumericAggregateValue:Qo,resolveGroupValue:zo,updateCompletionCounts:Lt};(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]="21742dd3-12b5-5285-89d8-036693459eb8")}catch{}})();var Xo=1e6,Jo=20;function Zo(e,t,r,n=Jo){if(!Number.isSafeInteger(n)||n<0)throw new h("Child projection sample limit must be a non-negative integer.",f.USAGE);let o=e.trim().toLowerCase(),i={},s=[],a=0;for(let y of t){if(a+=1,a>Xo)throw new h(`Child projection exceeded the ${Xo.toLocaleString("en-US")} item safety bound.`,f.GENERIC_FAILURE,{code:"child_projection_item_bound_exceeded",required:"Use an indexed or parent-filtered metadata source.",why:"Unbounded graph scans can exhaust memory in universal project stores.",nextSteps:["Build the derived item index, then retry the parent read."]});s.push(y)}let c=new Map(s.map(y=>[y.id.trim().toLowerCase(),y])),l=co(ao(s,so())),d=new Set(l.children_by_parent.get(o)??[]);for(let y of s)y.parent?.trim().toLowerCase()===o&&d.add(y.id.trim().toLowerCase());let u=[...d].map(y=>c.get(y)),m=0;for(let y of u){let w=y.status.trim().toLowerCase();i[w]=(i[w]??0)+1,de(w,r)||(m+=1)}u.sort((y,w)=>y.id.localeCompare(w.id));let p=u.slice(0,n).map(y=>({id:y.id,title:y.title,type:y.type,status:y.status,priority:y.priority})),g=u.length>p.length,_=n===0?Jo:n;return{count:u.length,active:m,by_status:Object.fromEntries(Object.entries(i).sort(([y],[w])=>y.localeCompare(w))),sample:p,sample_limit:n,truncated:g,next_offset:g?p.length:null,continuation:g?`pm list --status all --parent ${e} --offset ${p.length} --limit ${_}`:null,scanned:a}}(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]="db3fe399-8eb8-5b17-8a9e-89eda4774234")}catch{}})();var Vs=new Set(["event","meeting","reminder"]);function Ks(e){return Vs.has(e.type.trim().toLowerCase())||e.deadline!==void 0||(e.reminders?.length??0)>0||(e.events?.length??0)>0}function Ot(e){if(!Ks(e))return;let t=[...e.events??[]].sort((n,o)=>n.start_at.localeCompare(o.start_at)),r=t[0];return{deadline:e.deadline??null,start_at:r?.start_at??null,end_at:r?.end_at??null,location:r?.location??null,reminders:[...e.reminders??[]],events:t}}import{readdir as Ys}from"node:fs/promises";import jt 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]="bf7cac44-d2fc-5e7c-a9f1-a82c7460b07c")}catch{}})();var Xs=new Set(["epic","feature","milestone","plan"]),Js=new Set(Object.keys(qr).map(e=>e.toLowerCase()));function Nt(e){return Object.fromEntries(["comments","notes","learnings","files","tests","docs","reminders","events"].map(t=>[t,e[t]?.length??0]))}function Zs(e,t,r,n,o){let i=Nt(e);return[...t.length>0?["body"]:[],...Object.entries(i).flatMap(([s,a])=>a>0?[s]:[]),...i.files+i.tests+i.docs>0?["linked"]:[],...r===void 0?["children"]:r.count>0?["children"]:[],...typeof e.assignee=="string"&&e.assignee.trim().length>0?["claim_state"]:[],...Ot(e)?["schedule"]:[],...n&&It(e).length>0?["blockers"]:[],...!o.full&&e.dependencies?.some(({id:s,kind:a,...c})=>Object.values(c).some(l=>l!==void 0))?["dependency_provenance"]:[]]}function ti(e){let t=e.trim().toLowerCase();return t.length>0&&(Xs.has(t)||!Js.has(t))}function ei(e){return{ts:e.ts,author:e.author,message:e.message??null}}function ea(e,t){let r=e?.trim(),n=r&&r.length>0?r:null,o=[...t].reverse().find(s=>s.op==="claim"),i=[...t].reverse().find(s=>s.op==="release");return{claimed:n!==null,assignee:n,last_claim:o?ei(o):null,last_release:i?ei(i):null}}function ta(e){if(e===void 0||e.trim().length===0)return"standard";let t=e.trim().toLowerCase();if(t==="full")return"deep";if(ht.includes(t))return t;throw new h("Get --depth must be one of brief|standard|deep|full",f.USAGE,{field:"depth",value:e,recovery:{allowed_values:[...pt]}})}function ra(e,t,r){let n=Nt(e),o={...e};if(!r&&e.dependencies!==void 0&&(o.dependencies=e.dependencies.map(({id:g,kind:_})=>({id:g,kind:_}))),t==="deep")return{...o,comments:e.comments??[],notes:e.notes??[],learnings:e.learnings??[],files:e.files??[],tests:e.tests??[],docs:e.docs??[],reminders:e.reminders??[],events:e.events??[],notes_count:n.notes,tests_count:n.tests,collection_counts:n};let{comments:i,notes:s,learnings:a,files:c,tests:l,docs:d,reminders:u,events:m,...p}=o;return{...p,notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:n}}function na(e){if(e===void 0)return null;let t=e.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(t.length===0)throw new h("Get --fields requires a comma-separated list of field names",f.USAGE);return t}function Qe(e){return e.startsWith("item.")?e.slice(5):e}function oa(e,t,r){if(e===null)return;let n=yt(t),o=new Set(n),i=e.filter(s=>{let a=Qe(s);return!o.has(s)&&!o.has(a)});if(i.length>0){let s=["get",r,"--fields",e.filter(a=>!i.includes(a)).join(",")||"id,title,status"];throw new h(`Unknown get --fields value(s): ${i.join(", ")}`,f.USAGE,{code:"unknown_field_projection",examples:["pm get <id> --fields id,title,status,type,updated_at","pm get <id> --fields id,title,claim_state","pm get <id> --fields id,title,body,linked.files"],recovery:{allowed_values:n,suggested_retry:Y(s),suggested_retry_args:s}})}}var ia=new Set(["comments","notes","learnings","files","tests","test_runs","docs","reminders","events","dependencies","plan_steps","plan_decisions","plan_discoveries","plan_validation"]);function sa(e,t,r){return Object.hasOwn(t,r)?t[r]:e[r]!==void 0?e[r]:ia.has(r)?[]:void 0}function aa(e,t){let r=e,n={notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:Nt(e)},o={id:e.id};for(let i of t){let s=Qe(i);s==="body"||s==="linked"||s.startsWith("linked.")||s==="claim_state"||s.startsWith("claim_state.")||s==="children"||s.startsWith("children.")||s==="schedule"||s.startsWith("schedule.")||s==="blockers"||(o[s]=sa(r,n,s))}return o}function be(e,t){return e?.some(r=>r===t||r===`item.${t}`)??!1}function ne(e,t){return e.some(r=>{let n=Qe(r);return n===t||n.startsWith(`${t}.`)})}function ca(e,t){if(e.full&&(e.fields!==void 0||e.depth!==void 0))throw new h("Get projection options are mutually exclusive; remove the extra projection flag and retry.",f.USAGE,{code:"projection_options_mutually_exclusive",flag:"--full",recovery:{suggested_retry:Y(["get",t,"--full"]),suggested_retry_args:["get",t,"--full"]}});if(e.tree!==!0&&e.treeDepth!==void 0)throw new h("Get --tree-depth requires --tree",f.USAGE);if(e.at!==void 0&&e.tree===!0)throw new h("Get --at cannot be combined with --tree because workspace-level historical projections are not yet indexed.",f.USAGE);return{depth:e.full?"deep":ta(e.depth),full:e.full===!0||e.depth?.trim().toLowerCase()==="full",treeDepth:e.tree===!0?Zn(e.treeDepth,"--tree-depth"):void 0,fields:na(e.fields),fieldProjection:e.fields!==void 0}}async function da(e,t,r){let n=k(process.cwd(),t.path);await H(n);let o=await P(n),i=N(o,I());if(r!==void 0){let c=await Kn(e,r,{pmRoot:t.path});return{pmRoot:n,settings:o,typeToFolder:i.type_to_folder,locatedId:c.document.metadata.id,metadata:c.document.metadata,body:c.document.body,historical:c}}let s=await he(n,e,o.id_prefix,o.item_format,i.type_to_folder);if(!s)throw await jn(n,e,o.id_prefix,i.type_to_folder);let a=await pe(s,{schema:o.schema});return{pmRoot:n,settings:o,typeToFolder:i.type_to_folder,locatedId:s.id,metadata:a.document.metadata,body:a.document.body}}function la(e,t,r,n){let o=[...Z(t.schema).definitions.map(i=>i.metadata_key),...J(I())];if(oa(e,o,n),r&&ne(e??[],"children"))throw new h("Get --at cannot project children because workspace-level historical relationships are not yet indexed.",f.USAGE);if(r&&ne(e??[],"blockers"))throw new h("Get --at cannot project current blocker statuses; read the current item with --fields blockers instead.",f.USAGE)}function qt(e){let{fieldProjection:t,depth:r,fields:n,field:o}=e;return t?o==="body"||o==="linked"?be(n,o):ne(n,o):r!=="brief"}async function ua(e,t){if(!t)return;let r=Re(e.pmRoot,e.locatedId),n=await le(r,e.locatedId);return ea(e.metadata.assignee,e.historical?n.slice(0,e.historical.target.historyIndex+1):n)}function ma(e,t,r,n){let o=n||be(r,"linked.files"),i=n||be(r,"linked.tests"),s=n||be(r,"linked.docs");!n&&!o&&!i&&!s||(e.linked={files:o?t.metadata.files??[]:[],tests:i?t.metadata.tests??[]:[],docs:s?t.metadata.docs??[]:[]})}async function fa(e,t){if(!t)return;let r=O(e.settings.schema),n=await Ne(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema);return Zo(e.locatedId,n,r)}function ha(e,t){let r=new Map;for(let n of e){let o=n.external?n.id:t.get(n.id.toLowerCase())?.id??n.id;r.set(n.external?`external:${o}`:`local:${o.toLowerCase()}`,{...n,id:o})}return[...r.values()]}async function pa(e,t){let r=jt.basename(e),n=(await Ys(jt.dirname(e)).catch(o=>{throw Bn("Cannot verify the blocker's physical file identity",{exitCode:f.GENERIC_FAILURE,context:{code:"blocker_identity_read_failed",required:"Restore access to the blocker item directory, then retry the item read."},cause:o})})).filter(o=>o.toLowerCase()===r.toLowerCase()).sort((o,i)=>+(i===r)-+(o===r)||o.localeCompare(i)).map(o=>jt.parse(o).name)[0];if(n===void 0)throw new h(`Blocker canonical file disappeared during identity verification: ${t}`,f.CONFLICT,{code:"item_identity_conflict",required:"Restore the canonical blocker file and validate storage integrity before retrying the item read."});return n}async function ya(e,t,r){if(t.historical!==void 0||!(r.fieldProjection?ne(r.fields,"blockers"):r.depth!=="brief"))return;let n=It(t.metadata);if(n.length===0)return;let o=new Map([t.metadata.blocked_by,...(t.metadata.dependencies??[]).filter(a=>a.kind==="blocked_by").map(a=>a.id)].filter(a=>typeof a=="string").map(a=>[a.trim().toLowerCase(),a.trim()])),i=new Map;for(let a of n){if(Yn(a)||!/^(?!\.{1,2}$)[^/\\:\0]+$/u.test(a)||t.metadata.dependencies?.some(d=>d.id.trim()===a&&d.kind==="blocked_by"&&Xn(d.source_kind)))continue;let c=await he(t.pmRoot,o.get(a),t.settings.id_prefix,t.settings.item_format,t.typeToFolder);if(c===null)continue;let l=await pe(c,{schema:t.settings.schema});if(c.id=await pa(c.itemPath,c.id),l.document.metadata.id!==c.id)throw new h(`Blocker identity differs from its canonical file: ${c.id}`,f.CONFLICT,{code:"item_identity_conflict",required:"Restore the canonical blocker identity and validate storage integrity before retrying the item read."});i.set(a.toLowerCase(),l.document.metadata)}let s=ha(Jn({blocked_by:t.metadata.blocked_by,dependencies:t.metadata.dependencies,updated_at:t.metadata.updated_at},i,O(t.settings.schema)),i);e.blockers={scope:"declared",open:s.filter(a=>!a.resolved).map(({resolved:a,...c})=>c),closed_count:s.filter(a=>a.resolved).length},!r.fieldProjection&&!r.full&&delete e.item.blocked_by}function ga(e,t,r,n){if(!n)return;let o=Ot(t.metadata);if(o){if(r===null||be(r,"schedule")){e.schedule=o;return}e.schedule=Object.fromEntries(Object.entries(o).filter(([i])=>r.some(s=>Qe(s)===`schedule.${i}`)))}}async function _a(e,t,r,n){if(t.tree!==!0)return;let o=await ze(void 0,{parent:e.locatedId,tree:!0,treeDepth:r===void 0?void 0:String(r),full:!0},n);return{root_id:e.locatedId,root_title:e.metadata.title,depth_limit:r??null,count:o.count,items:o.items.map(i=>i)}}async function tu(e,t,r={}){let n=ca(r,e),o=await da(e,t,r.at);la(n.fields,o.settings,o.historical!==void 0,o.locatedId);let i=qt({...n,field:"body"}),s=qt({...n,field:"linked"}),a=qt({...n,field:"claim_state"}),c=o.historical===void 0&&(n.fieldProjection?ne(n.fields,"children"):n.depth==="deep"&&(n.full||ti(o.metadata.type))),l=n.fieldProjection?ne(n.fields,"schedule"):n.depth!=="brief",d=await ua(o,a),u={item:n.fieldProjection?aa(o.metadata,n.fields):ra(o.metadata,n.depth,n.full)};i&&(u.item.body=o.body),ma(u,o,n.fields,s),d&&(u.claim_state=d),ga(u,o,n.fields,l),await ya(u,o,n);let m=await fa(o,c);m!==void 0&&(u.children=m);let p=await _a(o,r,n.treeDepth,t);if(p!==void 0&&(u.tree=p),o.historical&&(u.reconstructed=!0,u.as_of_version=o.historical.as_of_version,u.as_of_timestamp=o.historical.as_of_timestamp),o.historical===void 0)try{await ln({pmRoot:o.pmRoot,author:De(void 0,o.settings.author_default),itemIds:[o.locatedId],intent:"get"})}catch{}return nn(u,n.fieldProjection?[]:Zs(o.metadata,o.body,m,o.historical===void 0,n)),u}var ru={shouldAutoIncludeGetChildren:ti};(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]="284b91be-bd4e-5345-969b-0304834b0da8")}catch{}})();function wa(e,t){return t===void 0?e:e.slice(Math.max(0,e.length-t))}function ba(e,t){return e.map(({entry:r,version:n})=>{let o=new Set,i=bn(r.patch);for(let s of i)o.add(vt(s.path)),s.from&&o.add(vt(s.from));return{index:n,...t?{version:t.offset===null?null:t.offset+n}:{},ts:r.ts,op:r.op,author:r.author,patch_ops:i.length,changed_fields:[...o].sort((s,a)=>s.localeCompare(a))}})}function va(e){if(e[0]?.op!=="history_compact_baseline")return;let t=j(e,!0);return{offset:t,first_version:t===null?null:t+1,last_version:t===null?null:t+e.length}}async function Ea(e,t){let r=k(process.cwd(),t.path);await H(r);let n=await P(r),o=N(n,I()),i=e.trim()===He,s=i?He:kn(e,n.id_prefix),a=await he(r,s,n.id_prefix,n.item_format,o.type_to_folder),c=a?.id??s,l=i?Sn(r):Re(r,c);if(!a&&!await ke(l))throw new h(`Item ${e} not found`,f.NOT_FOUND);return a&&await Pe({pmRoot:r,settings:n,itemId:a.id,commandLabel:"history"}),{historyPath:l,located:a,resolvedId:c,settings:n}}function Sa(e){let{resolvedId:t,selectedHistory:r,options:n,limit:o,addressing:i,vocabulary:s,total:a}=e,c=n.compact===!0,l=(n.order??(c||n.provenance===!0?"newest_first":"oldest_first"))==="newest_first",d=l?[...r].reverse():r,u=d.map(({entry:y})=>y),m=c?ba(d,i):void 0,p=n.provenance===!0?d.map(({entry:y,durableVersion:w})=>go(y,s,{itemId:t,version:w})):void 0,g=n.provenance===!0?"provenance":c?"compact":"full",_={compact:{compact_history:m},provenance:{provenance_history:p},full:{history:u}}[g];return{id:t,..._,compact:c,projection:{mode:g,row_key:{compact:"compact_history",provenance:"provenance_history",full:"history"}[g]},omission_receipt:on("history",g),count:u.length,total:a,order:l?"newest_first":"oldest_first",limit:o??null,version_addressing:i}}async function mu(e,t,r){if(t.order!==void 0&&t.order!=="oldest_first"&&t.order!=="newest_first")throw new h("--order must be oldest_first or newest_first",f.USAGE);let n=Oe(t.limit),{historyPath:o,located:i,resolvedId:s,settings:a}=await Ea(e,r),c=await le(o,s),l=va(c),d=a.agent_identity.identity_vocabulary,u=yo(a.agent_identity.harness_signals),m=_o({harness:t.harness,agentInstance:t.agentInstance,provenance:t.provenanceFilter},d,u),p=Ia(c).filter(({entry:y})=>m(y)),g=wa(p,n),_=Sa({resolvedId:s,selectedHistory:g,options:t,limit:n,addressing:l,vocabulary:d,total:p.length});if(t.provenanceSummary===!0&&(_.provenance_summary=wo(p.map(({entry:y})=>y),d,u)),t.diff||t.field!==void 0){let y=new Set(g.map(({version:w})=>w));_.diff=En(c,{windowStartIndex:(g[0]?.version??c.length+1)-1,field:t.field}).filter(w=>y.has(w.index)),_.order==="newest_first"&&_.diff.reverse()}if(t.verify){let y=i?(await pe(i,{schema:a.schema})).document:void 0;if(_.verification=Vn(c,y),s===He&&_.verification.ok){let w=await In(k(process.cwd(),r.path));_.verification={..._.verification,ok:w.ok,errors:w.ok?_.verification.errors:[..._.verification.errors,"verify_failed:workspace_state_mismatch"],workspace_state_matches_latest:w.ok,workspace_state_mismatches:w.mismatched_documents,workspace_state_missing:w.missing_documents,workspace_state_unreadable:w.unreadable_documents}}}return _}function Ia(e){let t=j(e,!0);return e.map((r,n)=>({entry:r,version:n+1,durableVersion:t===null?void 0:t+n+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]="28cc85af-b7e7-5069-97a9-18844352cc59")}catch{}})();function ka(e){if(e===void 0)return"keyword";let t=e.trim().toLowerCase();if(t!=="keyword"&&t!=="semantic"&&t!=="hybrid")throw new h("Search mode must be one of keyword|semantic|hybrid",f.USAGE);return t}function Ye(e){return e===!0}function ri(e){return $r(e,0,1)??void 0}function ni(e){if(e===void 0)return"or";let t=e.trim().toLowerCase();if(t!=="and"&&t!=="or"&&t!=="exact")throw new h("Search --match-mode must be one of and|or|exact",f.USAGE);return t}function oi(e){if(e==null||e==="")return;let t=typeof e=="number"?e:Number(String(e).trim());if(!Number.isFinite(t)||t<0)throw new h("Search --min-score must be a finite number >= 0",f.USAGE);return t}function K(e,t){if(e==null)return;let r=String(e).trim();if(r.length!==0)return ut(r,new Date,t)}function C(e){return e.toLowerCase().replace(/\s+/g," ").trim()}function Ut(e,t){if(e!==void 0)return ut(e,new Date,t)}function Ra(e){if(e===void 0)return;let t=e.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(t.length===0)throw new h("Search --fields requires a comma-separated list of field names",f.USAGE);return[...new Set(t)]}function Xe(e,t="<query>"){let r=e.compact===!0,n=e.full===!0,o=Ra(e.fields);if(Number(r)+Number(n)+ +(o!==void 0)>1)throw new h("Search projection options are mutually exclusive. Use one of --compact, --full, or --fields.",f.USAGE,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:Y(["search",t,"--full"]),suggested_retry_args:["search",t,"--full"]}});return r?{mode:"compact",fields:[...un]}:n?{mode:"full",fields:[]}:o?{mode:"fields",fields:o}:{mode:"full",fields:[]}}function Gt(e,t,r="<query>"){if(e.mode!=="fields")return;let n=mn([...t.definitions.flatMap(s=>[s.key,s.metadata_key]),...J(I())]),o=new Set(n),i=e.fields.filter(s=>{let a=s.trim();return!o.has(a)});if(i.length>0){let s=["search",r,"--fields",e.fields.filter(a=>!i.includes(a)).join(",")||"id,title,status,score"];throw new h(`Unknown search --fields value(s): ${i.join(", ")}`,f.USAGE,{code:"unknown_field_projection",examples:["pm search <query> --fields id,title,status,score","pm search <query> --fields id,title,item.description,matched_fields"],nextSteps:["Use item.<field> for explicit item metadata fields, or run pm search --help for projection examples."],recovery:{allowed_values:n,suggested_retry:Y(s),suggested_retry_args:s}})}}function Je(e){let t=C(e);if(!t)throw new h("Search query must not be empty",f.USAGE);return t.split(/\s+/u).filter(Boolean)}function $t(e){let t=e.search?.max_results;return typeof t=="number"&&Number.isFinite(t)&&t>0?Math.floor(t):50}var xa=["auto","keyword","semantic","hybrid"];function Aa(e){let t=e.search?.default_mode;if(typeof t!="string")return"auto";let r=t.trim().toLowerCase();return xa.includes(r)?r:"auto"}function Wt(e){if(typeof e.requested=="string"&&e.requested.trim().length>0)return{mode:ka(e.requested),source:"explicit"};let t=Aa(e.settings);return t!=="auto"?{mode:t,source:"settings"}:{mode:e.semanticRunnable?"hybrid":"keyword",source:"auto"}}function Bt(e){let t=e.search?.score_threshold;return typeof t=="number"&&Number.isFinite(t)?t:0}function zt(e){let t=e.search?.hybrid_semantic_weight;return typeof t=="number"&&Number.isFinite(t)&&t>=0&&t<=1?t:.7}function Vt(e){let t={title_exact_bonus:10,title_weight:48,description_weight:5,tags_weight:6,status_weight:2,body_weight:1,comments_weight:1,notes_weight:1,learnings_weight:1,reminders_weight:2,events_weight:2,dependencies_weight:3,linked_content_weight:1},r=e.search?.tuning;if(!r)return t;let n=(o,i)=>typeof o=="number"&&Number.isFinite(o)&&o>=0?o:i;return{title_exact_bonus:n(r.title_exact_bonus,t.title_exact_bonus),title_weight:n(r.title_weight,t.title_weight),description_weight:n(r.description_weight,t.description_weight),tags_weight:n(r.tags_weight,t.tags_weight),status_weight:n(r.status_weight,t.status_weight),body_weight:n(r.body_weight,t.body_weight),comments_weight:n(r.comments_weight,t.comments_weight),notes_weight:n(r.notes_weight,t.notes_weight),learnings_weight:n(r.learnings_weight,t.learnings_weight),reminders_weight:n(r.reminders_weight,t.reminders_weight),events_weight:n(r.events_weight,t.events_weight),dependencies_weight:n(r.dependencies_weight,t.dependencies_weight),linked_content_weight:n(r.linked_content_weight,t.linked_content_weight)}}import Ca 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]="e1f303b6-a641-5550-b58c-ef023b68d5e4")}catch{}})();function Kt(e){return an("search",{pmRoot:e.pmRoot===void 0?void 0:Ca.resolve(e.pmRoot),query:e.query.trim(),mode:e.mode,options:sn(e.searchOptions,Qn)})}function ii(e){let t=dn(e.sorted,{cursor:e.searchOptions.after,fingerprint:Kt(e),limit:e.limit,readId:r=>r.item.id});return{limited:t.rows,pageExtras:{applied_limit:e.limit,...t.has_more?{has_more:!0,truncated:!0}:{},...t.next_cursor?{next_cursor:t.next_cursor}:{}}}}(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]="c8a2412e-2b0c-59c2-81ad-43de4d51562f")}catch{}})();function si(e){if(typeof e!="string")return!1;let t=e.split(",").map(r=>r.trim().toLowerCase()).filter(Boolean);return t.length===1&&t[0]==="all"}var Ta=[{optionKey:"status",summaryKey:"status",normalize:e=>si(e)?"all":e},{optionKey:"type",summaryKey:"type"},{optionKey:"tag",summaryKey:"tag"},{optionKey:"priority",summaryKey:"priority"},{optionKey:"deadlineBefore",summaryKey:"deadline_before"},{optionKey:"deadlineAfter",summaryKey:"deadline_after"},{optionKey:"updatedAfter",summaryKey:"updated_after"},{optionKey:"updatedBefore",summaryKey:"updated_before"},{optionKey:"createdAfter",summaryKey:"created_after"},{optionKey:"createdBefore",summaryKey:"created_before"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"},{optionKey:"parent",summaryKey:"parent"}];function oe(e){let{mode:t,matchMode:r,options:n,includeLinked:o,titleExact:i,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:c,runtimeFieldFilters:l}=e,d={};return mo(d,n,Ta),Object.assign(d,Rt(n)),Object.assign(d,kt(n)),r!==void 0&&r!=="or"&&(d.match_mode=r),o&&(d.include_linked=!0),i&&(d.title_exact=!0),s&&(d.phrase_exact=!0),a>0&&(d.score_threshold=a),t==="hybrid"&&n.semanticWeight!==void 0&&(d.hybrid_semantic_weight=c),n.limit!==void 0&&(d.limit=n.limit),l&&Object.keys(l).length>0&&(d.runtime_filters=l),d}function ie(e){let{effectiveMode:t,matchMode:r,options:n,includeLinked:o,titleExact:i,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:c,queryExpansion:l,rerank:d,runtimeFieldFilters:u}=e,m=p=>p??null;return{mode:t,match_mode:r,status:n.status===void 0||si(n.status)?"all":n.status,type:m(n.type),tag:m(n.tag),priority:m(n.priority),deadline_before:m(n.deadlineBefore),deadline_after:m(n.deadlineAfter),updated_after:m(n.updatedAfter),updated_before:m(n.updatedBefore),created_after:m(n.createdAfter),created_before:m(n.createdBefore),assignee:m(n.assignee),sprint:m(n.sprint),release:m(n.release),parent:m(n.parent),...Rt(n),...kt(n),include_linked:o,title_exact:i,phrase_exact:s,score_threshold:a,hybrid_semantic_weight:t==="hybrid"?c:null,query_expansion_enabled:l.enabled,query_expansion_provider:l.provider,rerank_enabled:d.enabled,rerank_model:d.model,rerank_top_k:d.top_k,limit:m(n.limit),runtime_filters:u}}(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]="0272e482-0dab-5970-b19a-4da286fd112b")}catch{}})();var Ma=1.2,Fa=.75;function Qt(e){return ee(e)}function Da(e){let t=new Map;for(let r of e)t.set(r,(t.get(r)??0)+1);return t}function ci(e){let t=[],r=new Map,n=0;for(let i of e){let s=Qt(i.text),a=Da(s);n+=s.length;for(let c of a.keys())r.set(c,(r.get(c)??0)+1);t.push({id:i.id,termFrequencies:a,length:s.length})}let o=t.length;return{documents:t,documentFrequency:r,documentCount:o,averageDocumentLength:o>0?n/o:0}}function Pa(e,t){return Math.log(1+(e-t+.5)/(t+.5))}function di(e,t,r){let n=new Map;if(e.documentCount===0||e.averageDocumentLength===0)return n;let o=[...new Set(t.filter(s=>s.length>0))];if(o.length===0)return n;let i=new Map;for(let s of o){let a=e.documentFrequency.get(s);a!==void 0&&i.set(s,Pa(e.documentCount,a))}if(i.size===0)return n;for(let s of e.documents){let a=0;for(let[c,l]of i){let d=s.termFrequencies.get(c);if(d===void 0)continue;let u=1-r.b+r.b*s.length/e.averageDocumentLength,m=d+r.k1*u;a+=l*(d*(r.k1+1)/m)}a>0&&n.set(s.id,a)}return n}function ai(e,t,r,n){return typeof e!="number"||!Number.isFinite(e)?t:Math.min(n,Math.max(r,e))}function li(e){let t=r=>typeof r=="string"?[r]:typeof r=="number"?[String(r)]:Array.isArray(r)?r.flatMap(t):typeof r=="object"&&r!==null?Object.values(r).flatMap(t):[];return t(Object.values(e)).join(" ")}function ui(e){let t=e?.search?.bm25;return{k1:ai(t?.k1,Ma,0,1e3),b:ai(t?.b,Fa,0,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]="b75c3c5e-e2b7-5e65-a56a-883dc896290e")}catch{}})();var Yt=4,Ha=20,La=200,Oa=new Set(["a","an","and","for","from","in","into","of","on","or","the","to","with"]);function Xt(e,t){let r=[],n=new Set;for(let o of e){let i=o.trim().replaceAll(/\s+/g," ");if(i.length===0)continue;let s=i.toLowerCase();if(!n.has(s)&&(n.add(s),r.push(i),r.length>=t))break}return r}function ja(e){let t=e.toLowerCase();return t.length>4&&t.endsWith("ies")?`${t.slice(0,-3)}y`:t.length>4&&(t.endsWith("ches")||t.endsWith("shes")||t.endsWith("xes")||t.endsWith("zes")||t.endsWith("sses"))?t.slice(0,-2):t.length>3&&t.endsWith("s")&&!t.endsWith("ss")&&!t.endsWith("us")&&!t.endsWith("is")&&!t.endsWith("as")?t.slice(0,-1):t}function qa(e){let t=e.toLowerCase();return t.length>2&&(!t.endsWith("s")||t.endsWith("ss"))?t.endsWith("y")&&!/[aeiou]y$/u.test(t)?`${t.slice(0,-1)}ies`:t.endsWith("ch")||t.endsWith("sh")||t.endsWith("x")||t.endsWith("z")||t.endsWith("ss")?`${t}es`:`${t}s`:t}function mi(e,t=Yt){let r=e.trim().replaceAll(/\s+/g," ");if(r.length===0)return[];let n=ee(r);if(n.length===0)return[r];let o=n.filter(a=>!Oa.has(a.toLowerCase())),i=n.map(a=>ja(a)),s=o.map(a=>qa(a));return Xt([r,n.join(" "),o.join(" "),i.join(" "),s.join(" ")],Math.max(1,t))}function fi(e){let t=Array.isArray(e)?e:e?.queries;return Array.isArray(t)?Xt(t.filter(r=>typeof r=="string"),Yt):[]}function hi(e,t,r){return Xt([...e,...t],Math.max(1,r))}function pi(e,t){let r=e.search?.query_expansion,n=ae(r?.provider);return{enabled:r?.enabled===!0,provider:n??t,max_queries:Yt}}function yi(e,t){let r=e.search?.rerank,n=ae(r?.model),o=Ae(r?.top_k)??Ha;return{enabled:r?.enabled===!0,model:n??t,top_k:Math.min(La,o)}}function gi(e){let t=Array.isArray(e)?e:e?.hits;if(!Array.isArray(t))return[];let r=new Map;for(let o of t){if(typeof o!="object"||o===null)continue;let i=ae(o.id),s=o.score;if(!i||typeof s!="number"||!Number.isFinite(s))continue;let a=r.get(i);(a===void 0||s>a)&&r.set(i,s)}let n=[...r.entries()].map(([o,i])=>({id:o,score:i}));return n.sort((o,i)=>o.score!==i.score?i.score-o.score:o.id.localeCompare(i.id)),n}function Na(e,t){let r=e.length,n=0;for(let o=0;o<r;o+=1)n+=e[o]*t[o];return n}function _i(e){let t=0;for(let r=0;r<e.length;r+=1)t+=e[r]*e[r];return Math.sqrt(t)}function Ua(e,t,r){if(!e||!t||e.length===0||t.length===0||e.length!==t.length)return 0;let n=Na(e,t),o=_i(t),i=r*o;return!Number.isFinite(n)||!Number.isFinite(r)||!Number.isFinite(o)||!Number.isFinite(i)||i===0?0:Math.max(-1,Math.min(1,n/i))}async function wi(e,t,r,n,o){if(n.length===0)return new Map;let i=ae(t)??e.model,s=i===e.model?e:{...e,model:i},a=[r.trim(),...n.map(m=>m.text)],c=await Ue(s,a,o?{timeout_ms:o}:{}),l=c[0];if(!l)return new Map;let d=_i(l),u=new Map;for(let m=0;m<n.length;m+=1){let p=n[m],g=c[m+1];if(!g)continue;let _=Ua(l,g,d);u.set(p.id,Math.max(0,Math.min(1,(_+1)/2)))}return u}(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]="a5d1f401-e5eb-5b6e-8b5a-d8135128f44b")}catch{}})();function se(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function q(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.text=="string"):[]}function ve(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.id=="string"&&typeof t.kind=="string"):[]}function Jt(e){let t=e.metadata;return[t.title,t.description,t.status,se(t.tags).join(" "),e.body,q(t.comments).map(r=>r.text).join(" "),q(t.notes).map(r=>r.text).join(" "),q(t.learnings).map(r=>r.text).join(" "),Ge(t).join(" "),$e(t).join(" "),ve(t.dependencies).map(r=>`${r.id} ${r.kind}`).join(" "),We(t)]}function Zt(e,t){return Jt(e).some(r=>C(r).includes(t))}function er(e,t,r){return!r.titleExact&&!r.phraseExact?e:e.filter(n=>!(r.titleExact&&C(n.metadata.title)!==t||r.phraseExact&&!Zt(n,t)))}function Ga(e){if(e&&[...e].some(t=>t.toLowerCase()==="none"||t.toLowerCase()==="null"))throw new h('--assignee no longer accepts "none" or "null".',f.USAGE)}function $a(e,t,r){let n=ge(e.assignee,{label:"--assignee"});Ga(n);let o=lo(e),i=uo(e);return{typeFilter:eo(e.type,t),tagFilter:ge(e.tag,{label:"--tag",normalize:s=>s.toLowerCase()}),priorityFilter:to(e.priority),deadlineBefore:Ut(e.deadlineBefore,"deadline-before"),deadlineAfter:Ut(e.deadlineAfter,"deadline-after"),updatedAfter:K(e.updatedAfter,"updated-after"),updatedBefore:K(e.updatedBefore,"updated-before"),createdAfter:K(e.createdAfter,"created-after"),createdBefore:K(e.createdBefore,"created-before"),assigneeFilter:n,sprintFilter:ge(e.sprint,{label:"--sprint"}),releaseFilter:ge(e.release,{label:"--release"}),parentFilter:e.parent?.trim(),statusSet:r&&r.length>0?new Set(r):void 0,missingMetadataFilters:o,missingMetadataActive:ro(o),contentFieldFilters:i,contentFiltersActive:oo(i)}}function Wa(e,t){return Ba(e,t)&&Br(e,t)&&za(e,t)}function Ba(e,t){if(t.statusSet&&!t.statusSet.has(e.status)||t.typeFilter&&!t.typeFilter.has(e.type))return!1;let r=t.tagFilter;return!(r&&!se(e.tags).some(n=>r.has(n))||t.priorityFilter!==void 0&&!t.priorityFilter.has(e.priority))}function za(e,t){return!(t.assigneeFilter!==void 0&&(e.assignee===void 0||!t.assigneeFilter.has(e.assignee))||t.sprintFilter!==void 0&&(e.sprint===void 0||!t.sprintFilter.has(e.sprint))||t.releaseFilter!==void 0&&(e.release===void 0||!t.releaseFilter.has(e.release))||t.parentFilter!==void 0&&e.parent!==t.parentFilter)}function Va(e,t,r,n){let o=e.metadata;return!(!Wa(o,t)||!xn(o,r)||t.missingMetadataActive&&!no(o,t.missingMetadataFilters,n)||t.contentFiltersActive&&!io(o,t.contentFieldFilters))}function tr(e,t,r,n,o,i){let s=$a(t,r,o);return e.filter(a=>Va(a,s,n,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]="a3f9e7fa-7ebf-5fc7-93a4-f12cff30f4ff")}catch{}})();var Ka=2,Qa=120,Ya=6,Xa=40,Ja=1e3,Za=900,ec="\xAB",tc="\xBB",bi=60;function Ze(e,t){let r=0,n=0;for(;;){let o=e.indexOf(t,n);if(o<0)return r;r+=1,n=o+t.length}}var vi=[{name:"title",weightKey:"title_weight",value:e=>e.metadata.title},{name:"description",weightKey:"description_weight",value:e=>e.metadata.description},{name:"tags",weightKey:"tags_weight",value:e=>se(e.metadata.tags).join(" ")},{name:"status",weightKey:"status_weight",value:e=>typeof e.metadata.status=="string"?e.metadata.status:""},{name:"body",weightKey:"body_weight",value:e=>e.body},{name:"comments",weightKey:"comments_weight",value:e=>q(e.metadata.comments).map(t=>t.text).join(" ")},{name:"notes",weightKey:"notes_weight",value:e=>q(e.metadata.notes).map(t=>t.text).join(" ")},{name:"learnings",weightKey:"learnings_weight",value:e=>q(e.metadata.learnings).map(t=>t.text).join(" ")},{name:"reminders",weightKey:"reminders_weight",value:e=>Ge(e.metadata).join(" ")},{name:"events",weightKey:"events_weight",value:e=>$e(e.metadata).join(" ")},{name:"dependencies",weightKey:"dependencies_weight",value:e=>ve(e.metadata.dependencies).map(t=>`${t.id} ${t.kind}`).join(" ")},{name:"plan",weightKey:"body_weight",value:e=>We(e.metadata)}],rc=new Map(vi.map(e=>[e.name,e]));function rr(e,t){let r=t.filter(o=>o.length>0).sort((o,i)=>i.length-o.length).map(o=>o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"));if(r.length===0)return e;let n=new RegExp(r.join("|"),"gi");return e.replace(n,o=>`${ec}${o}${tc}`)}function nr(e,t){if(e.length===0)return null;let r=e.toLowerCase(),n=-1,o=0;for(let d of t){if(d.length===0)continue;let u=r.indexOf(d);u>=0&&(n<0||u<n)&&(n=u,o=d.length)}if(n<0)return null;let i=Math.max(0,n-bi),s=Math.min(e.length,n+o+bi),a=rr(e.slice(i,s),t),c=i>0?"\u2026":"",l=s<e.length?"\u2026":"";return`${c}${a}${l}`}function et(e,t,r){let n=[];for(let o of t){let i=rc.get(o);if(i===void 0)continue;let s=nr(i.value(e),r);s!==null&&n.push({field:o,snippet:s})}return n}function nc(e,t,r){return[...vi.map(n=>({name:n.name,value:n.value(e),weight:r[n.weightKey]})),{name:"linked_content",value:t,weight:r.linked_content_weight}]}function oc(e,t,r){let n=C(e.id),o=typeof r=="string"?r.trim().toLowerCase():"",i=C(o),s=i.length>0&&n.startsWith(i)?n.slice(i.length).trim():n;return t!==n&&t!==s?null:{item:e,score:t===n?Ja:Za,matched_fields:["id"],matched_all_terms:!0,exact_id_match:!0}}function ic(e,t,r,n,o){for(let i of e){let s=t.get(i)??0;s>0&&(o.score+=s*n.title_exact_bonus,o.matched.add("title"),o.matchedTokens.add(i));for(let a of r){let c=Ze(a.value.toLowerCase(),i);c>0&&(o.score+=c*a.weight,o.matched.add(a.name),o.matchedTokens.add(i))}}}function sc(e,t,r,n){C(e.title)===t&&(n.score+=Qa,n.matched.add("title"));for(let o of r){let i=Ze(C(o.value),t);i>0&&(n.score+=i*o.weight*Ya,n.matched.add(o.name))}}function or(e,t,r,n,o,i,s=!1){let a=e.metadata,c=oc(a,r,i);if(c)return c;let l=new Map;for(let g of ee(a.title))l.set(g,(l.get(g)??0)+1);let d=nc(e,n,o),u={score:0,matched:new Set,matchedTokens:new Set};ic(t,l,d,o,u);let m=new Set(t),p=m.size>0&&u.matchedTokens.size===m.size;return s&&m.size>1&&p&&(u.score+=Xa),t.length>=Ka&&r.includes(" ")&&sc(a,r,d,u),u.score<=0?null:{item:a,score:u.score,matched_fields:[...u.matched].sort((g,_)=>g.localeCompare(_)),matched_all_terms:p}}function ir(e,t){return[...e].sort((r,n)=>{let o=n.score-r.score;if(o!==0)return o;let i=de(r.item.status,t),s=de(n.item.status,t);if(i!==s)return i?1:-1;let a=r.item.priority-n.item.priority;if(a!==0)return a;let c=Wr(n.item.updated_at,r.item.updated_at);return c!==0?c:r.item.id.localeCompare(n.item.id)})}function sr(e,t,r,n,o,i,s,a=!1){return or(e,t,r,n?o.get(e.metadata.id)??"":"",i,s,a)}function Ee(e){if(e.size===0)return new Map;let t=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY;for(let o of e.values())t=Math.min(t,o),r=Math.max(r,o);if(r===t)return new Map([...e.keys()].map(o=>[o,1]));let n=new Map;for(let[o,i]of e)n.set(o,(i-t)/(r-t));return 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]="c8484fbd-5fb2-56aa-9d69-26646be262a9")}catch{}})();function rt(e){let t=[],r=e;for(let n=0;n<5&&r&&typeof r=="object";n+=1){let o=r.code;typeof o=="string"&&t.push(o.toLowerCase()),r=r.cause}return t.join(" ")}function nt(e){let t=(e instanceof Error?e.message:String(e)).toLowerCase(),r=rt(e),n=`${t} ${r}`;return n.includes("timed out")||n.includes("timeout")||n.includes("etimedout")?"timeout":n.includes("econnrefused")||n.includes("connection refused")||n.includes("connect ")||n.includes("enotfound")||n.includes("eai_again")||n.includes("econnreset")||n.includes("fetch failed")?"connection":"error"}function ar(e,t){let r=nt(t);return`search_${e}_fallback:${r}:using_keyword_mode`}function Ei(e){return e?.commands?.some(t=>t.command.trim()==="reindex")===!0?{command:"pm reindex --mode hybrid",args:["reindex","--mode","hybrid"]}:{command:"pm install search-advanced --project",args:["install","search-advanced","--project"],follow_up_command:"pm reindex --mode hybrid",follow_up_args:["reindex","--mode","hybrid"]}}async function cr(e,t,r){try{let n=await Wn(e);n.warnings.length>0&&r.push(...n.warnings);let o=ho(t.map(s=>({id:s.metadata.id,updated_at:s.metadata.updated_at})),n.entries);if(o.length===0)return;let i=Ei(I());r.push(...Si(o.length,i)),process.stderr.write(`[pm] warning: ${o.length} item${o.length===1?" is":"s are"} new or modified since the last reindex and ${o.length===1?"is":"are"} NOT in the semantic index yet \u2014 run '${i.command}'${i.follow_up_command?`, then '${i.follow_up_command}'`:""}. (Write-time embedding is governed by search.mutation_refresh_policy; staleness means the embed was skipped, failed, or the backend was unreachable.)
3
3
  `)}catch{}}function Si(e,t){return[`vector_index_stale:${e}`,`vector_index_recovery:${t.args.join(" ")}`,...t.follow_up_args?[`vector_index_recovery_follow_up:${t.follow_up_args.join(" ")}`]:[]]}function ot(e,t,r,n){if(!t.active)throw new h(`Search mode '${e}' requires a configured embedding provider in settings.providers.openai or settings.providers.ollama`,f.USAGE);if(!r.active&&!n)throw new h(`Search mode '${e}' requires a configured vector store in settings.vector_store.qdrant/settings.vector_store.lancedb or an extension adapter selected by settings.vector_store.adapter`,f.USAGE);return{provider:t.active,vectorStore:r.active??null}}var T=xe;function Se(e){let t=I(),r=Kr(t,e);if(!r)return null;let n=r.runtime_definition??r.definition,o=n.query,i=n.queryExpansion??n.query_expansion,s=n.rerank,a=T(n.name)??T(r.definition.name)??e;if(!a)return null;let c={providerName:a,...typeof o=="function"?{query:o}:{},...typeof i=="function"?{queryExpansion:i}:{},...typeof s=="function"?{rerank:s}:{}};return!c.query&&!c.queryExpansion&&!c.rerank?null:c}function dr(e){let t=T(e.search?.provider),r=Se(t);return r?.query?{providerName:r.providerName,query:r.query}:null}function lr(e){let t=I(),r=T(e.vector_store?.adapter),n=Qr(t,r);if(!n)return null;let o=n.runtime_definition??n.definition,i=o.query;if(typeof i!="function")return null;let s=o.upsert;return{adapterName:T(o.name)??T(n.definition.name)??r??"extension",query:i,...typeof s=="function"?{upsert:s}:{}}}function ur(e,t,r){let n=Array.isArray(t)?t:t?.hits;if(!Array.isArray(n))throw new h(`Extension search provider "${e}" must return an array of hits or { hits: [...] }`,f.GENERIC_FAILURE);let o=new Set,i=[];for(let s of n){if(typeof s!="object"||s===null)continue;let a=T(s.id),c=s.score;if(!a||typeof c!="number"||!Number.isFinite(c)||o.has(a))continue;let l=r.get(a);if(!l)continue;let d=s.matched_fields,u=Array.isArray(d)&&d.every(m=>typeof m=="string")?[...new Set(d.map(m=>m.trim()).filter(m=>m.length>0))].sort((m,p)=>m.localeCompare(p)):[`provider:${e}`];o.add(a),i.push({item:l.metadata,score:c,matched_fields:u})}return i}function mr(e,t){let r=[],n=new Map;for(let o of e){if(n.has(o.id))continue;let i=t.get(o.id);i&&(n.set(o.id,o.score),r.push({item:i.metadata,score:o.score,matched_fields:["semantic"]}))}return{semanticHits:r,semanticScores:n}}function tt(e,t){let r=t.filter(c=>c.exact_id_match===!0);if(r.length===0)return e;let n=new Set(r.map(c=>c.item.id)),o=e.filter(c=>!n.has(c.item.id)),i=o.reduce((c,l)=>Math.max(c,l.score),0),s=r.sort((c,l)=>l.score-c.score),a=i+s.length+1;return[...s.map((c,l)=>({...c,score:a-l,matched_fields:["id"]})),...o]}function it(e,t,r,n,o="semantic"){let i=new Map(r.map(u=>[u.item.id,u.score])),s=new Map(r.map(u=>[u.item.id,u.matched_fields])),a=Ee(t),c=Ee(i),l=new Set([...t.keys(),...i.keys()]),d=1-n;return[...l].map(u=>{let m=e.get(u),p=a.get(u)??0,g=c.get(u)??0,_=p*n+g*d;if(_<=0)return null;let y=new Set;t.has(u)&&y.add(o);for(let w of s.get(u)??[])y.add(w);return{item:m.metadata,score:_,matched_fields:[...y].sort((w,b)=>w.localeCompare(b))}}).filter(u=>u!==null)}function fr(e){let t=e.configuredProvider?.trim().toLowerCase();return t==="bm25"?"explicit":t==="auto"&&!e.hasEmbeddingProvider&&!e.hasExtensionSearchProvider?"auto-fallback":null}function hr(e){let t=e.filteredDocuments.map(s=>({id:s.metadata.id,text:li(Gn(s,{fields:e.corpusFields}))})),r=ci(t),n=di(r,Qt(e.query),e.bm25Params),o=new Map(e.filteredDocuments.map(s=>[s.metadata.id,s]));if(e.requestedMode==="semantic"){let s=[...n].map(([a,c])=>({item:o.get(a).metadata,score:c,matched_fields:["bm25"]}));return tt(s,e.keywordHits)}let i=it(o,n,e.keywordHits,e.hybridSemanticWeight,"bm25");return tt(i,e.keywordHits)}function pr(e){let t=new Map;for(let n of e)for(let o of n){let i=t.get(o.id);(!i||o.score>i.score)&&t.set(o.id,o)}let r=[...t.values()];return r.sort((n,o)=>n.score!==o.score?o.score-n.score:n.id.localeCompare(o.id)),r}function yr(e){let t=e.metadata,r=Array.isArray(t?.tags)?t.tags.join(" "):"";return[t?.title,t?.description,t?.type,t?.status,r,e.body].map(n=>typeof n=="string"?n.trim():"").filter(n=>n.length>0).join(`
4
4
  `)}async function ac(e,t){let r=e.queryExpansion.enabled?mi(t,e.queryExpansion.max_queries):[t],n=r.length>0?r:[t];if(!e.queryExpansion.enabled)return n;if(e.queryExpansionExtension?.expand)try{let o=await Promise.resolve(e.queryExpansionExtension.expand({query:t,mode:e.requestedMode,settings:e.settings}));return hi(n,fi(o),e.queryExpansion.max_queries)}catch{return e.warnings.push(`search_query_expansion_provider_failed:${e.queryExpansionExtension.providerName}:using_builtin`),n}return e.queryExpansion.provider&&e.queryExpansion.provider!=="openai"&&e.queryExpansion.provider!=="ollama"&&e.warnings.push(`search_query_expansion_provider_unavailable:${e.queryExpansion.provider}:using_builtin`),n}async function cc(e,t,r,n){if(e.extensionVectorAdapter?.query)try{return await Promise.resolve(e.extensionVectorAdapter.query({vector:t,limit:r,settings:e.settings}))}catch(o){if(!e.vectorStore)throw new h(`Extension vector adapter query failed and no built-in fallback store is configured (${o instanceof Error?o.message:String(o)})`,f.GENERIC_FAILURE);return e.warnings.push(`search_vector_adapter_failed:${e.extensionVectorAdapter.adapterName}:using_builtin`),await St(e.vectorStore,t,r,n)}if(e.vectorStore)return await St(e.vectorStore,t,r,n);throw new h("Semantic search requires either a configured vector store or an extension vector adapter query handler",f.USAGE)}function dc(e,t,r){return[...e].sort((n,o)=>n.score!==o.score?o.score-n.score:n.item.id.localeCompare(o.item.id)).slice(0,r).map(n=>{let o=t.get(n.item.id);return o?{hit:n,text:yr(o)}:null}).filter(n=>n!==null)}async function lc(e,t,r){if(!e.rerankExtension?.rerank)return null;try{let n=await Promise.resolve(e.rerankExtension.rerank({query:t,mode:"hybrid",model:e.rerank.model,top_k:e.rerank.top_k,settings:e.settings,candidates:r.map(i=>({id:i.hit.item.id,text:i.text,score:i.hit.score}))})),o=gi(n);return o.length>0?new Map(o.map(i=>[i.id,i.score])):(e.warnings.push(`search_rerank_provider_invalid_response:${e.rerankExtension.providerName}:using_builtin`),null)}catch{return e.warnings.push(`search_rerank_provider_failed:${e.rerankExtension.providerName}:using_builtin`),null}}async function uc(e,t,r){let n=await lc(e,t,r);if(n)return n;let o=r.map(i=>({id:i.hit.item.id,text:i.text}));try{return await wi(e.provider,e.rerank.model,t,o,e.embeddingTimeoutMs)}catch{return e.warnings.push("search_rerank_failed:using_hybrid_scores"),null}}function mc(e,t){let r=new Set(t.keys()),n=e.map(o=>{let i=t.get(o.item.id);if(i===void 0)return o;let s=new Set(o.matched_fields);return s.add("rerank"),{...o,score:i,matched_fields:[...s].sort((a,c)=>a.localeCompare(c))}});return n.sort((o,i)=>{let s=r.has(o.item.id),a=r.has(i.item.id);return s!==a?s?-1:1:o.score!==i.score?i.score-o.score:o.item.id.localeCompare(i.item.id)}),n}async function fc(e,t,r,n){if(!e.rerank.enabled||r.length<=1)return r;let o=dc(r,n,e.rerank.top_k),i=await uc(e,t,o);return i&&i.size>0?mc(r,i):r}async function gr(e){let t=Math.max(e.limit??e.maxResults,e.maxResults),r=e.embeddingTimeoutMs!==void 0?{timeout_ms:e.embeddingTimeoutMs}:{},n=e.vectorQueryTimeoutMs!==void 0?{timeout_ms:e.vectorQueryTimeoutMs}:{},o=e.query.trim(),i=await ac(e,o),s=await Ue(e.provider,i,r),a=await Promise.all(s.map(async g=>await cc(e,g,t,n))),c=pr(a),l=new Map(e.filteredDocuments.map(g=>[g.metadata.id,g])),{semanticHits:d,semanticScores:u}=mr(c,l),m=u.size;if(e.requestedMode==="semantic")return{hits:tt(d,e.keywordHits),vectorMatchCount:m};let p=await fc(e,o,it(l,u,e.keywordHits,e.hybridSemanticWeight),l);return{hits:tt(p,e.keywordHits),vectorMatchCount:m}}function Ii(e){let t=Se(e.provider??void 0);return t?.queryExpansion?{providerName:t.providerName,expand:t.queryExpansion}:null}function ki(e){let t=Se(T(e.search?.provider));return t?.rerank?{providerName:t.providerName,rerank:t.rerank}:null}import st from"node:fs/promises";import _r 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]="de9a1cbd-f277-52ef-adc6-66225f2d2f4f")}catch{}})();function wr(e){let t=(e.files??[]).map(s=>({scope:s.scope,path:s.path.trim()})),r=(e.docs??[]).map(s=>({scope:s.scope,path:s.path.trim()})),n=(e.tests??[]).filter(s=>typeof s.path=="string"&&s.path.trim().length>0).map(s=>({scope:s.scope,path:s.path.trim()})),o=[...t,...r,...n].filter(s=>s.path.length>0).sort((s,a)=>s.scope.localeCompare(a.scope)||s.path.localeCompare(a.path)),i=new Map;for(let s of o)i.set(`${s.scope}:${s.path}`,s);return[...i.values()]}async function Ri(e){let t=_r.resolve(e);try{let r=await st.realpath(t);return{resolved:t,realpath:r}}catch{return null}}async function br(e,t){let[r,n]=await Promise.all([Ri(e),Ri(t)]);return{projectContainmentRoot:r,globalContainmentRoot:n}}async function vr(e,t){let r=wr(e.metadata),n=[];for(let o of r){let i=o.scope==="global"?t.globalContainmentRoot:t.projectContainmentRoot;if(!i)continue;let s=_r.resolve(i.resolved,o.path);if(!lt(i.resolved,s))continue;let a;try{a=await st.realpath(s)}catch{continue}if(lt(i.realpath,a))try{await ce({path:s,scope:o.scope}),n.push(await st.readFile(s,"utf8"))}catch{}}return n.join(`
5
5
  `)}async function Er(e,t,r,n){let o=J(I()),i=async(l,d,u)=>{let m=async(p,g)=>{await ce({path:p,scope:"project"});let _=await st.readFile(p,"utf8");return en(_,{format:g,schema:n,extensionFieldNames:o,onWarning:y=>s.push(y)}).body};try{return await m(d,u)}catch{let p=u==="toon"?"json_markdown":"toon",g=B(e,l.type,l.id,p,r);try{return await m(g,p)}catch{return s.push(`item_list_item_read_failed:${_r.relative(e,g)}`),""}}},s=[],a=await Pn(e,t,r,s,n),c=[];if(a.length===0){let l=await Ln(e,t,r,s,n);for(let d of l){let u=B(e,d.type,d.id,t,r),m=await i(d,u,t);c.push({metadata:d,body:m})}return{documents:c,warnings:[...new Set(s)].sort((d,u)=>d.localeCompare(u))}}for(let l of a){if(typeof l.body=="string"){c.push({metadata:l.metadata,body:l.body});continue}let d=await i(l.metadata,l.item_path,l.item_format);c.push({metadata:l.metadata,body:d})}return{documents:c,warnings:[...new Set(s)].sort((l,d)=>l.localeCompare(d))}}async function xi(e,t,r){let n=new Map;if(!e||t!=="keyword"&&t!=="hybrid")return n;let o=process.cwd(),i=await br(o,Gr(o)),s=await Promise.all(r.map(async a=>[a.metadata.id,await vr(a,i)]));for(let[a,c]of s)n.set(a,c);return 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]="17122985-4157-5732-9142-444327cb273d")}catch{}})();var Ai=["tag","status","type","priority"];function Sr(e){let t={},r=[];for(let n of e.split(/\s+/).filter(o=>o.length>0)){let o=n.indexOf(":"),i=o>0?n.slice(0,o).toLowerCase():"",s=o>0?n.slice(o+1):"",a=Ai.includes(i)?i:void 0;if(a&&s.length>0&&t[a]===void 0){t[a]=s;continue}r.push(n)}return{residualQuery:r.join(" "),inlineFilters:t}}function Ir(e,t,r){let n={...e};for(let o of Ai){let i=t[o];if(i!==void 0){if(xe(n[o])!==void 0){r.push(`search_inline_filter_ignored:${o}:flag_takes_precedence`);continue}n[o]=i}}return n}function Ci(e,t){let r=[],n=Sr(e),o=Object.keys(n.inlineFilters).length>0;if(o&&n.residualQuery.trim().length===0)throw new h("Inline field:value tokens consumed the entire query, leaving no search terms.",f.USAGE,{examples:["pm search auth tag:area:search","pm list --tag area:search --status open"],nextSteps:["Add keyword terms alongside the inline filters, or use pm list for pure tag/status/type/priority filtering."]});let i=o?n.residualQuery:e,s=Ir(t,n.inlineFilters,r);return{query:i,options:s,inlineWarnings:r,highlight:s.highlight===!0,includeLinked:Ye(s.includeLinked),titleExact:Ye(s.titleExact),phraseExact:Ye(s.phraseExact),matchMode:ni(typeof s.matchMode=="string"?s.matchMode:void 0),minScoreOverride:oi(s.minScore),countOnly:s.count===!0,tokens:Je(i),normalizedQuery:C(i),limit:Oe(s.limit),projection:Xe(s,e),modeWasExplicit:typeof s.mode=="string"&&s.mode.trim().length>0}}function Ti(e){if(e.after!==void 0&&e.count===!0)throw new h("Search --after cannot be combined with --count.",f.USAGE)}(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]="d7beacb7-66a5-581f-93f0-68ceb4b8e41e")}catch{}})();function Rr(e,t,r,n,o,i,s,a,c,l,d,u,m,p){let g=m?{total:0,count_only:!0}:{};if(l.mode==="compact"&&n.compact===!0){let y=oe({mode:t,matchMode:r,options:n,includeLinked:o,titleExact:n.titleExact===!0,phraseExact:n.phraseExact===!0,scoreThreshold:i,hybridSemanticWeight:s,runtimeFieldFilters:u});return{query:e.trim(),mode:t,...Tr(p),items:[],count:0,...g,filters:y,...d.length>0?{warnings:d}:{}}}let _=l.mode==="full"?null:[...l.fields];return{query:e.trim(),mode:t,mode_source:p,items:[],count:0,...g,filters:ie({effectiveMode:t,matchMode:r,options:n,includeLinked:o,titleExact:n.titleExact===!0,phraseExact:n.phraseExact===!0,scoreThreshold:i,hybridSemanticWeight:s,queryExpansion:a,rerank:c,runtimeFieldFilters:u??{}}),projection:{mode:l.mode,fields:_},now:S(),...d.length>0?{warnings:d}:{}}}function xr(e,t){let r=t.trim();if(r.length===0)return null;if(r==="score")return e.score;if(r==="matched_fields")return e.matched_fields;if(r.startsWith("item.")){let i=r.slice(5);return i.length===0?null:e.item[i]??null}let n=e,o=e.item;return Object.prototype.hasOwnProperty.call(o,r)?o[r]??null:Object.prototype.hasOwnProperty.call(n,r)?n[r]??null:null}function Ar(e,t){return t.mode==="full"?e.map(({matched_all_terms:r,exact_id_match:n,...o})=>o):e.map(r=>{let n={};for(let o of t.fields)n[o]=xr(r,o);return n})}function Cr(e,t){return Rr(e.query,e.effectiveMode,e.matchMode,e.options,e.includeLinked,e.scoreThreshold,e.hybridSemanticWeight,e.queryExpansion,e.rerank,e.projection,e.warnings,e.runtimeFieldFilters,t,e.modeSource)}function Mi(e,t){if(e.projection.mode==="compact"&&e.options.compact===!0)return kr({query:e.query.trim(),mode:e.effectiveMode,...Tr(e.modeSource),items:[],count:t,total:t,count_only:!0,filters:oe({mode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,runtimeFieldFilters:e.runtimeFieldFilters})},e.warnings);let r=e.projection.mode==="full"?null:[...e.projection.fields];return kr({query:e.query.trim(),mode:e.effectiveMode,mode_source:e.modeSource,items:[],count:t,total:t,count_only:!0,filters:ie({effectiveMode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,queryExpansion:e.queryExpansion,rerank:e.rerank,runtimeFieldFilters:e.runtimeFieldFilters}),projection:{mode:e.projection.mode,fields:r},now:S()},e.warnings)}function Tr(e){return e==="settings"?{mode_source:e}:{}}function kr(e,t){return t.length===0?e:{...e,warnings:t}}function Ie(e,t){return t?{...e,workspace_memory:t}:e}function Fi(e,t,r){if(!e.highlight)return{hits:r,projection:e.projection};let n=new Map(t.map(i=>[i.metadata.id,i])),o=r.map(i=>({...i,highlights:et(n.get(i.item.id),i.matched_fields,e.tokens)}));return e.projection.mode==="full"||e.projection.fields.includes("highlights")?{hits:o,projection:e.projection}:{hits:o,projection:{mode:e.projection.mode,fields:[...e.projection.fields,"highlights"]}}}function Di(e,t,r,n,o,i){let s=n<r?{total:r}:{};if(e.projection.mode==="compact"&&e.options.compact===!0)return kr({query:e.query.trim(),mode:e.effectiveMode,...Tr(e.modeSource),items:t,count:t.length,...s,...i,filters:oe({mode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,runtimeFieldFilters:e.runtimeFieldFilters})},e.warnings);let a=o.mode==="full"?null:[...o.fields];return{query:e.query.trim(),mode:e.effectiveMode,mode_source:e.modeSource,items:t,count:t.length,...s,...i,filters:ie({effectiveMode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,queryExpansion:e.queryExpansion,rerank:e.rerank,runtimeFieldFilters:e.runtimeFieldFilters}),projection:{mode:o.mode,fields:a},now:S(),...e.warnings.length>0?{warnings:e.warnings}:{}}}(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]="3bfd872f-6ed7-551c-a027-3748493de3e9")}catch{}})();var uf={applyFilters:tr,applyExactQueryFilters:er,applyInlineQueryFilters:Ir,buildHitHighlights:et,buildVerboseSearchFilters:ie,buildExplicitSemanticFallbackWarning:ar,buildCompactSearchFilterSummary:oe,buildHybridLexicalScore:sr,buildRerankCorpus:yr,buildSemanticHits:mr,classifyImplicitSemanticFallbackReason:nt,collectErrorCauseCodes:rt,collectExactPhraseFields:Jt,collectLinkedPaths:wr,combineHybridHits:it,computeBuiltInBm25Hits:hr,computeSemanticOrHybridHits:gr,resolveBuiltInBm25Mode:fr,countOccurrences:Ze,dependencyEntries:ve,documentContainsExactPhrase:Zt,emptySearchResult:Rr,highlightFieldSnippet:nr,loadDocuments:Er,markTokenRuns:rr,parseInlineQueryFilters:Sr,maybeEmitVectorIndexStaleWarning:cr,loadLinkedCorpus:vr,mergeVectorHitsById:pr,normalizeExtensionProviderHits:ur,normalizeScoreMap:Ee,parseProjectionConfig:Xe,parseTimestampWindow:K,parseTokens:Je,projectSearchHits:Ar,readSearchFieldValue:xr,requireSemanticDependencies:ot,resolveExtensionSearchProvider:dr,resolveExtensionSearchProviderByName:Se,resolveExtensionVectorAdapter:lr,resolveLinkedCorpusRoots:br,scoreDocument:or,sortHits:ir,stringArray:se,textEntries:q,validateSearchProjectionFields:Gt};async function hc(e,t){let r=k(process.cwd(),t.path);await H(r);let n=await P(r),o=An(n).settings,i=O(o.schema),s=Z(o.schema);Gt(e.projection,s,e.query);let a=Rn(e.options,s,"search"),c=N(o,I()),l=Nn(o),d=$n(o,r),u=dr(o),m=lr(o),p=ri(e.options.semanticWeight),g=pi(o,l.active?.name??null),_=yi(o,l.active?.model??T(o.search?.embedding_model)??"text-embedding-3-small");return{pmRoot:r,settings:o,statusRegistry:i,runtimeFieldRegistry:s,runtimeFieldFilters:a,typeRegistry:c,maxResults:$t(o),scoreThreshold:e.minScoreOverride??Bt(o),semanticWeightProvided:e.options.semanticWeight!==void 0,semanticWeightOverride:p,hybridSemanticWeight:p??zt(o),tuning:Vt(o),providerResolution:l,vectorResolution:d,extensionSearchProvider:u,extensionVectorAdapter:m,bm25Mode:fr({configuredProvider:T(o.search?.provider),hasEmbeddingProvider:l.active!==null,hasExtensionSearchProvider:u!==null}),queryExpansion:g,queryExpansionExtension:Ii(g),rerank:_,rerankExtension:ki(o),...pc({requested:e.options.mode,settings:o,configuredProvider:n.search?.provider??null,providerResolution:l,vectorResolution:d,extensionSearchProvider:u,extensionVectorAdapter:m})}}function pc(e){let t=qn(e.providerResolution.active?.name,e.configuredProvider)==="configured"&&(e.vectorResolution.active!==null||e.extensionVectorAdapter!==null),r=e.extensionSearchProvider!==null||t,n=Wt({requested:e.requested,settings:e.settings,semanticRunnable:r});return{effectiveMode:n.mode,modeSource:n.source}}async function yc(e,t){let r=await Er(t.pmRoot,t.settings.item_format??"toon",t.typeRegistry.type_to_folder,t.settings.schema),n=Le(typeof e.options.status=="string"?e.options.status:void 0,t.statusRegistry,{strict:!0}),o=Be(t.statusRegistry),i=tr(r.documents,e.options,t.typeRegistry,t.runtimeFieldFilters,n,o);return{warnings:r.warnings,allDocuments:r.documents,filteredDocuments:er(i,e.normalizedQuery,{titleExact:e.titleExact,phraseExact:e.phraseExact||e.matchMode==="exact"})}}async function gc(e,t,r){let n=await xi(e.includeLinked,t.effectiveMode,r),o=e.matchMode==="or";return r.map(i=>sr(i,e.tokens,e.normalizedQuery,e.includeLinked,n,t.tuning,t.settings.id_prefix,o)).filter(i=>i!==null).filter(i=>e.matchMode!=="and"||i.matched_all_terms===!0)}async function _c(e,t,r,n,o){if(t.bm25Mode===null||t.effectiveMode==="keyword")return null;let i=hr({requestedMode:t.effectiveMode,query:e.query,filteredDocuments:r,keywordHits:n,corpusFields:Un(t.settings),bm25Params:ui(t.settings),hybridSemanticWeight:t.hybridSemanticWeight});return t.bm25Mode==="auto-fallback"&&o.push(`search_${t.effectiveMode}_offline_bm25:no_embedding_provider:using_lexical_bm25`),i}async function wc(e,t,r,n){if(!t.extensionSearchProvider)return null;let o=t.providerResolution.active!==null&&(t.vectorResolution.active!==null||t.extensionVectorAdapter!==null);try{let i=await Promise.resolve(t.extensionSearchProvider.query({query:e.query,mode:t.effectiveMode,tokens:e.tokens,options:e.options,settings:t.settings,documents:r}));return ur(t.extensionSearchProvider.providerName,i,n)}catch(i){if(!o)throw new h(`Extension search provider "${t.extensionSearchProvider.providerName}" failed: ${i instanceof Error?i.message:String(i)}`,f.GENERIC_FAILURE);return null}}function bc(e,t,r,n){return t.vectorMatchCount>0?t.hits:(n.push(`search_${e}_degraded:no_vector_matches:results_are_lexical`),e==="semantic"?r:t.hits)}async function vc(e,t,r,n,o){let i=!e.extensionSearchProvider&&e.providerResolution.active!==null&&(e.vectorResolution.active!==null||e.extensionVectorAdapter!==null);o&&i&&await cr(e.pmRoot,r,n),e.extensionSearchProvider||ot(t,e.providerResolution,e.vectorResolution,e.extensionVectorAdapter!==null)}async function Ec(e){let{prepared:t,runtime:r,filteredDocuments:n,keywordHits:o,warnings:i,modeWasExplicit:s}=e,a=o,c=await _c(t,r,n,o,i),l=r.effectiveMode;if(c!==null||l==="keyword")return{effectiveMode:r.effectiveMode,hits:c??a};try{if(await vc(r,l,n,i,s),n.length===0||t.limit===0)return{effectiveMode:r.effectiveMode,hits:[]};let d=new Map(n.map(u=>[u.metadata.id,u]));if(a=await wc(t,r,n,d)??a,a===o){let{provider:u,vectorStore:m}=ot(l,r.providerResolution,r.vectorResolution,r.extensionVectorAdapter!==null),p=await gr({requestedMode:l,query:t.query,filteredDocuments:n,keywordHits:o,hybridSemanticWeight:r.hybridSemanticWeight,limit:t.limit,maxResults:r.maxResults,provider:u,vectorStore:m,extensionVectorAdapter:r.extensionVectorAdapter,queryExpansion:r.queryExpansion,queryExpansionExtension:r.queryExpansionExtension,rerank:r.rerank,rerankExtension:r.rerankExtension,warnings:i,settings:r.settings});a=bc(l,p,o,i)}return{effectiveMode:r.effectiveMode,hits:a}}catch(d){return i.push(ar(r.effectiveMode,d)),{effectiveMode:"keyword",hits:o}}}function Pi(e){e.searchOptions.after!==void 0&&cn(e.searchOptions.after,Kt(e))}async function Hi(e,t,r){Ti(t);let n=Ci(e,t),o=await hc(n,r),i=await yc(n,o),s=i.warnings;s.push(...n.inlineWarnings);let a=await bo(i.allDocuments.map(E=>E.metadata),{pmRoot:o.pmRoot,statusRegistry:o.statusRegistry,now:S()});s.push(...a.warnings);let c=vo(a,n.query);o.effectiveMode==="hybrid"&&o.semanticWeightProvided&&o.semanticWeightOverride===void 0&&s.push("search_hybrid_semantic_weight_override_invalid:using_settings_default");let l={query:n.query,modeSource:o.modeSource,matchMode:n.matchMode,options:n.options,includeLinked:n.includeLinked,titleExact:n.titleExact,phraseExact:n.phraseExact,scoreThreshold:o.scoreThreshold,hybridSemanticWeight:o.hybridSemanticWeight,queryExpansion:o.queryExpansion,rerank:o.rerank,projection:n.projection,warnings:s,runtimeFieldFilters:o.runtimeFieldFilters};if(o.effectiveMode==="keyword"&&(i.filteredDocuments.length===0||n.limit===0&&!n.countOnly))return Pi({query:n.query,mode:o.effectiveMode,searchOptions:n.options,pmRoot:o.pmRoot}),Ie(Cr({...l,effectiveMode:o.effectiveMode},n.countOnly),c);let d=await gc(n,o,i.filteredDocuments),u=await Ec({prepared:n,runtime:o,filteredDocuments:i.filteredDocuments,keywordHits:d,warnings:s,modeWasExplicit:n.modeWasExplicit});if(u.effectiveMode!=="keyword"&&u.hits.length===0&&(i.filteredDocuments.length===0||n.limit===0&&!n.countOnly))return Pi({query:n.query,mode:u.effectiveMode,searchOptions:n.options,pmRoot:o.pmRoot}),Ie(Cr({...l,effectiveMode:u.effectiveMode},n.countOnly),c);let m=u.hits.filter(E=>E.exact_id_match===!0||E.score>=o.scoreThreshold),p=ir(m,o.statusRegistry),g=p.length,_=ii({pmRoot:o.pmRoot,sorted:p,query:n.query,mode:u.effectiveMode,searchOptions:n.options,limit:n.limit??o.maxResults}),y={...l,effectiveMode:u.effectiveMode};if(n.countOnly)return Ie(Mi(y,g),c);let{hits:w,projection:b}=Fi(n,i.filteredDocuments,_.limited),v=Ar(w,b);return Ie(Di(y,v,g,_.limited.length,b,_.pageExtras),c)}(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]="f303192a-cac2-588b-b988-e3a8132f4199")}catch{}})();var Li=["ndcg","mrr","precision","recall"];function Mr(e){if(typeof e!="object"||e===null||Array.isArray(e))throw new TypeError("Eval minimum must be an object of metric floors");let t={};for(let[r,n]of Object.entries(e)){if(!Li.some(o=>o===r))throw new TypeError(`Unknown eval minimum metric: ${r}`);if(typeof n!="number"||!Number.isFinite(n)||n<0||n>1)throw new TypeError(`Eval minimum.${r} must be a finite number in [0, 1]`);t[r]=n}return t}function Oi(e,t){let r=Mr(t),n=[];for(let o of Li){let i=r[o];if(i===void 0)continue;let s=e[o];!Number.isFinite(s)||s<0||s>1?n.push(`${o}:invalid`):s<i&&n.push(`${o}:${s}<${i}`)}return 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]="c34cc860-67c7-548b-99ff-f4155ef44bb0")}catch{}})();var qi=10,U="https://schema.unbrained.dev/pm/eval-query-set/v1",Sc={schema:U,accepted_top_level:["array","object"],required_query_fields:["query","relevant_ids"],optional_fields:["mode","description","minimum"],modes:["keyword","semantic","hybrid"]},at={schema:U,queries:[{query:"offline search",relevant_ids:["pm-75k9"],mode:"keyword"}]},M=class extends Error{constructor(t){super(t),this.name="EvalQuerySetError"}},Ic=new Set(["keyword","semantic","hybrid"]);function ji(e,t){let r=0,n=Math.min(t,e.length);for(let o=0;o<n;o+=1)r+=e[o]/Math.log2(o+2);return r}function kc(e,t,r){if(t.size===0)return 0;let n=e.map(a=>t.has(a)?1:0),o=ji(n,r),i=Array.from({length:t.size},()=>1),s=ji(i,r);return s===0?0:o/s}function Rc(e,t,r){let n=Math.min(r,e.length);for(let o=0;o<n;o+=1)if(t.has(e[o]))return 1/(o+1);return 0}function Fr(e,t,r){let n=Math.min(r,e.length),o=0;for(let i=0;i<n;i+=1)t.has(e[i])&&(o+=1);return o}function xc(e,t,r){return r<=0?0:Fr(e,t,r)/r}function Ac(e,t,r){return t.size===0?0:Fr(e,t,r)/t.size}function Ni(e,t,r){return{ndcg:kc(e,t,r),mrr:Rc(e,t,r),precision:xc(e,t,r),recall:Ac(e,t,r),relevant_total:t.size,retrieved_relevant:Fr(e,t,r)}}function Ui(e){let t=e.length;if(t===0)return{ndcg:0,mrr:0,precision:0,recall:0,query_count:0};let r=e.reduce((n,o)=>({ndcg:n.ndcg+o.ndcg,mrr:n.mrr+o.mrr,precision:n.precision+o.precision,recall:n.recall+o.recall}),{ndcg:0,mrr:0,precision:0,recall:0});return{ndcg:r.ndcg/t,mrr:r.mrr/t,precision:r.precision/t,recall:r.recall/t,query_count:t}}function Cc(e,t){if(typeof e!="object"||e===null)throw new M(`Eval query at index ${t} must be an object`);let r=e,n=typeof r.query=="string"?r.query.trim():"";if(n.length===0)throw new M(`Eval query at index ${t} must have a non-empty "query" string`);if(!Array.isArray(r.relevant_ids))throw new M(`Eval query at index ${t} must have a "relevant_ids" array`);if(r.relevant_ids.some(i=>typeof i!="string"))throw new M(`Eval query at index ${t} must have a "relevant_ids" array of strings`);let o=[...new Set(r.relevant_ids.map(i=>i.trim()).filter(i=>i.length>0))];if(o.length===0)throw new M(`Eval query at index ${t} must list at least one relevant id`);if(r.mode!==void 0&&(typeof r.mode!="string"||!Ic.has(r.mode)))throw new M(`Eval query at index ${t} has an invalid mode (expected keyword|semantic|hybrid)`);return{query:n,relevant_ids:o,...r.minimum===void 0?{}:{minimum:Mr(r.minimum)},...r.mode!==void 0?{mode:r.mode}:{},...typeof r.description=="string"&&r.description.trim().length>0?{description:r.description.trim()}:{}}}function Dr(e){let t=typeof e=="object"&&e!==null&&!Array.isArray(e)?e.schema:void 0;if(t!==void 0&&t!==U)throw new M(`Unsupported eval query set schema; expected "${U}"`);let r=Array.isArray(e)?e:typeof e=="object"&&e!==null?e.queries:void 0;if(!Array.isArray(r))throw new M('Eval query set must be an array of queries or an object with a "queries" array');if(r.length===0)throw new M("Eval query set must contain at least one query");return{schema:U,queries:r.map((n,o)=>Cc(n,o))}}import Tc from"node:fs/promises";import Pr 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]="5d26721c-719a-5c7e-8baf-72cbf1088988")}catch{}})();var Mc=Pr.join("search","eval-queries.json"),Hr={schema:U,examples:[JSON.stringify(at)],nextSteps:["Create a git-tracked golden-query JSON file that follows the schema, then re-run pm eval."]},Fc=new Set(["keyword","semantic","hybrid"]),Dc=e=>{if(e===void 0)return"keyword";let t=e.trim().toLowerCase();if(!Fc.has(t))throw new h("Eval --mode must be one of keyword|semantic|hybrid",f.USAGE);return t},Pc=e=>{if(e===void 0||e==="")return qi;let t=Ae(e);if(t===null)throw new h("Eval --k must be a positive integer",f.USAGE);return t},Hc=e=>{if(e===void 0||e==="")return;let t=String(e).trim(),r=Number(t);if([t.length===0,!Number.isFinite(r),r<0,r>1].includes(!0))throw new h("Eval --fail-under must be a number in the range [0, 1]",f.USAGE);return r},G=e=>Math.round(e*1e4)/1e4,Lc=async e=>{try{return await Tc.readFile(e,"utf8")}catch{throw new h(`Eval query set not found at ${e}`,f.NOT_FOUND,{...Hr,examples:[`echo '${JSON.stringify(at)}' > ${e}`,"pm eval --queries ./my-eval.json"]})}},Oc=(e,t)=>{try{return JSON.parse(e)}catch(r){throw new h(`Eval query set at ${t} is not valid JSON: ${r instanceof Error?r.message:String(r)}`,f.USAGE,Hr)}},jc=e=>{try{return Dr(e)}catch(t){throw new h(t instanceof Error?t.message:String(t),f.USAGE,Hr)}},qc=async e=>jc(Oc(await Lc(e),e)),Nc=async(e,t,r,n)=>{let o=e.mode??t,i=(await Hi(e.query,{mode:o,limit:String(r),fields:"id"},n)).items.map(a=>a.id).filter(a=>typeof a=="string"),s=Ni(i,new Set(e.relevant_ids),r);return{metrics:s,report:{query:e.query,...e.minimum===void 0?{}:{violations:Oi(s,e.minimum)},mode:o,relevant_total:s.relevant_total,retrieved_relevant:s.retrieved_relevant,ndcg:G(s.ndcg),mrr:G(s.mrr),precision:G(s.precision),recall:G(s.recall)}}},Uc=(e,t,r,n)=>{let o=Ui(r);return{k:e,query_count:t.length,aggregate:{ndcg:G(o.ndcg),mrr:G(o.mrr),precision:G(o.precision),recall:G(o.recall)},queries:t,...n!==void 0?{fail_under:n}:{},passed:(n===void 0||o.ndcg>=n)&&t.every(i=>(i.violations?.length??0)===0)}},xf=async(e,t)=>{let r=k(process.cwd(),t.path);await H(r);let n=Pc(e.k),o=Dc(e.mode),i=Hc(e.failUnder),s=e.queries?Pr.resolve(process.cwd(),e.queries):Pr.join(r,Mc),a=await qc(s),c=[],l=[];for(let d of a.queries){let{report:u,metrics:m}=await Nc(d,o,n,t);l.push(m),c.push(u)}return Uc(n,c,l,i)};export{es as a,rs as b,cd as c,dd as d,Ad as e,Cd as f,Tt as g,Do as h,Po as i,Ho as j,el as k,bl as l,_l as m,Rl as n,xl as o,Xo as p,Jo as q,Zo as r,Ks as s,Ot as t,tu as u,ru as v,mu as w,$t as x,Wt as y,Bt as z,zt as A,Vt as B,Kt as C,ii as D,oe as E,ie as F,rt as G,nt as H,Ei as I,Si as J,uf as K,Hi as L,Li as M,Mr as N,Oi as O,U as P,Sc as Q,at as R,Dr as S,Mc as T,xf as U};
6
- //# sourceMappingURL=chunk-5KW4WUAK.js.map
6
+ //# sourceMappingURL=chunk-K46GDAKX.js.map
@@ -1,2 +1,2 @@
1
- import{a as f,b as I,f as T,i as _,j as M,l as y}from"./chunk-TYERATXH.js";import{Mi as g,Vd as l,Wd as p}from"./chunk-5WVE7XBS.js";import{A as c,C as u}from"./chunk-WX25MU4N.js";(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]="4175f7f5-a689-5d05-982a-f92e21bc83e7")}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]="3041c268-69c8-58e5-8a68-eaaa3c0dbd3b")}catch{}})();async function ce(e){let{plan:t}=e,r=await y({pmRoot:e.pmRoot,author:e.author,transactionId:t.transaction_id,mutations:t.mutations}),o=new Map(r.warnings.map(i=>[i.index,i.warnings])),s=t.rows.map(i=>{let n={...i};delete n.warnings;let a=o.get(i.index);return a!==void 0&&(n.warnings=a),n});return{validation:r,rows:s}}async function ue(e){let t=e.upsertKey?.trim();if(t!==void 0&&t.length===0)throw new u("Upsert key must be a non-empty field name.",c.USAGE);let r=e.settings??await g(e.pmRoot),o=e.transactionId?.trim()??"",s=o.length>0?o:I(e.input),i=await _(e.pmRoot,r),n=l(i.schema).definitions,a=(n.find(m=>m.metadata_key===t)??n.find(m=>m.key===t||p(m)===t))?.metadata_key??f(t),d=a===void 0?void 0:{key:a,existing:await M(e.pmRoot,r,i,a)};return{...T(e.input,{transactionId:s,idPrefix:r.id_prefix,runtimeFields:n,...d===void 0?{}:{upsert:d}}),transaction_id:s,transaction_id_source:o.length>0?"explicit":"derived",...d===void 0?{}:{upsert_key:d.key}}}export{ce as a,ue as b};
2
- //# sourceMappingURL=chunk-N45IXPCA.js.map
1
+ import{a as f,b as I,f as T,i as _,j as M,l as y}from"./chunk-4HW253W2.js";import{Pi as g,Vd as l,Wd as p}from"./chunk-BFZUJ5QP.js";import{A as c,C as u}from"./chunk-J3JM36EH.js";(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]="4175f7f5-a689-5d05-982a-f92e21bc83e7")}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]="3041c268-69c8-58e5-8a68-eaaa3c0dbd3b")}catch{}})();async function ce(e){let{plan:t}=e,r=await y({pmRoot:e.pmRoot,author:e.author,transactionId:t.transaction_id,mutations:t.mutations}),o=new Map(r.warnings.map(i=>[i.index,i.warnings])),s=t.rows.map(i=>{let n={...i};delete n.warnings;let a=o.get(i.index);return a!==void 0&&(n.warnings=a),n});return{validation:r,rows:s}}async function ue(e){let t=e.upsertKey?.trim();if(t!==void 0&&t.length===0)throw new u("Upsert key must be a non-empty field name.",c.USAGE);let r=e.settings??await g(e.pmRoot),o=e.transactionId?.trim()??"",s=o.length>0?o:I(e.input),i=await _(e.pmRoot,r),n=l(i.schema).definitions,a=(n.find(m=>m.metadata_key===t)??n.find(m=>m.key===t||p(m)===t))?.metadata_key??f(t),d=a===void 0?void 0:{key:a,existing:await M(e.pmRoot,r,i,a)};return{...T(e.input,{transactionId:s,idPrefix:r.id_prefix,runtimeFields:n,...d===void 0?{}:{upsert:d}}),transaction_id:s,transaction_id_source:o.length>0?"explicit":"derived",...d===void 0?{}:{upsert_key:d.key}}}export{ce as a,ue as b};
2
+ //# sourceMappingURL=chunk-KJLGBLR3.js.map
@@ -1,2 +1,2 @@
1
- import{ga as p,ha as i,ia as v,ja as _}from"./chunk-Y7CKVU56.js";import{Oa as h}from"./chunk-5WVE7XBS.js";import u from"node:fs/promises";import c 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]="846100a9-4314-5f7c-b892-fa16e09bee5b")}catch{}})();function f(e){return typeof e=="object"&&e!==null&&"code"in e&&e.code==="ENOENT"}function y(e){return e!=="invalid"&&e!=="unreadable"}function j(e){let t=JSON.parse(e);if(typeof t!="object"||t===null||Array.isArray(t))throw new SyntaxError("Invalid settings object");let r=t.extensions;if(r===void 0)return{enabled:[],disabled:[]};if(typeof r!="object"||r===null||Array.isArray(r))throw new SyntaxError("Invalid extensions settings");let n=r;if(n.enabled!==void 0&&(!Array.isArray(n.enabled)||!n.enabled.every(a=>typeof a=="string"))||n.disabled!==void 0&&(!Array.isArray(n.disabled)||!n.disabled.every(a=>typeof a=="string")))throw new SyntaxError("Invalid extension enablement lists");return{enabled:n.enabled??[],disabled:n.disabled??[]}}async function S(e){let t;try{t=await u.readFile(e,"utf8")}catch(r){return f(r)?{status:"absent",enabled:[],disabled:[]}:{status:"unreadable",enabled:[],disabled:[],error:{code:"settings_unreadable",path:e}}}try{return{status:"ok",...j(t)}}catch{return{status:"invalid",enabled:[],disabled:[],error:{code:"settings_invalid",path:e}}}}async function A(e){let t;try{t=await u.readFile(e,"utf8")}catch(r){if(f(r))try{if((await u.stat(c.dirname(e))).isDirectory())return{status:"absent",entries:[]}}catch(n){if(f(n))return{status:"absent",entries:[]}}return{status:"unreadable",entries:[],error:{code:"managed_state_unreadable",path:e}}}try{let r=JSON.parse(t),n=_(r);if(!n||typeof r!="object"||r===null||!Array.isArray(r.entries)||n.entries.length!==r.entries.length)throw new SyntaxError("Invalid managed extension state");return{status:"ok",entries:n.entries}}catch{return{status:"invalid",entries:[],error:{code:"managed_state_invalid",path:e}}}}async function I(e){try{return{directories:(await u.readdir(e,{withFileTypes:!0})).filter(t=>t.isDirectory()).map(t=>t.name).sort((t,r)=>t.localeCompare(r))}}catch(t){return f(t)?{directories:[]}:{directories:[],error:{code:"extensions_unreadable",path:e}}}}async function D(e){let t;try{t=await u.readFile(e,"utf8")}catch(r){return f(r)?{manifest:null,error:{code:"manifest_invalid",path:e}}:{manifest:null,error:{code:"manifest_unreadable",path:e}}}try{let r=v(JSON.parse(t));return r?{manifest:r}:{manifest:null,error:{code:"manifest_invalid",path:e}}}catch{return{manifest:null,error:{code:"manifest_invalid",path:e}}}}function M(e){let t=e.manifest?.name??e.directory,r=new Set(p(e.settings.enabled)),n=new Set(p(e.settings.disabled)),a=!y(e.settings.status)||!e.manifest?null:!n.has(t)&&(r.size===0||r.has(t)),o=y(e.managed.status)?e.managed.entries.some(d=>i(d.name)===i(t)||i(d.directory)===i(e.directory)):null;return{name:t,directory:e.directory,scope:e.scope,installed:!0,status:e.manifest?a===!1?"inactive":"installed":"malformed_manifest",configured_enabled:a,managed:o,runtime_active:null,...e.manifest?{version:e.manifest.version}:{}}}async function R(e){let t=e.scope??"project",r=t==="global"?h(e.cwd??process.cwd()):e.pmRoot,n=c.join(r,"extensions"),a=await S(c.join(r,"settings.json")),o=await A(c.join(n,".managed-extensions.json")),d=await I(n),l=[];for(let s of[a,o,d])s.error&&l.push(s.error);let m=e.name?.trim(),b=[];for(let s of d.directories){let x=c.join(n,s,"manifest.json"),g=await D(x);g.error&&l.push(g.error);let w=M({directory:s,scope:t,manifest:g.manifest,settings:a,managed:o});m&&![w.name,s].some(E=>i(E)===i(m))||b.push(w)}return m&&b.length===0&&l.every(s=>s.code!=="extensions_unreadable")&&b.push({name:m,directory:null,scope:t,installed:!1,status:"absent",configured_enabled:y(a.status)?!1:null,managed:y(o.status)?!1:null,runtime_active:null}),{scope:t,complete:l.length===0,settings_status:a.status,managed_state_status:o.status,extensions:b,errors:l}}export{R as a};
2
- //# sourceMappingURL=chunk-UEEG47TU.js.map
1
+ import{ga as p,ha as i,ia as v,ja as _}from"./chunk-RGHLQGEX.js";import{Oa as h}from"./chunk-BFZUJ5QP.js";import u from"node:fs/promises";import c 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]="846100a9-4314-5f7c-b892-fa16e09bee5b")}catch{}})();function f(e){return typeof e=="object"&&e!==null&&"code"in e&&e.code==="ENOENT"}function y(e){return e!=="invalid"&&e!=="unreadable"}function j(e){let t=JSON.parse(e);if(typeof t!="object"||t===null||Array.isArray(t))throw new SyntaxError("Invalid settings object");let r=t.extensions;if(r===void 0)return{enabled:[],disabled:[]};if(typeof r!="object"||r===null||Array.isArray(r))throw new SyntaxError("Invalid extensions settings");let n=r;if(n.enabled!==void 0&&(!Array.isArray(n.enabled)||!n.enabled.every(a=>typeof a=="string"))||n.disabled!==void 0&&(!Array.isArray(n.disabled)||!n.disabled.every(a=>typeof a=="string")))throw new SyntaxError("Invalid extension enablement lists");return{enabled:n.enabled??[],disabled:n.disabled??[]}}async function S(e){let t;try{t=await u.readFile(e,"utf8")}catch(r){return f(r)?{status:"absent",enabled:[],disabled:[]}:{status:"unreadable",enabled:[],disabled:[],error:{code:"settings_unreadable",path:e}}}try{return{status:"ok",...j(t)}}catch{return{status:"invalid",enabled:[],disabled:[],error:{code:"settings_invalid",path:e}}}}async function A(e){let t;try{t=await u.readFile(e,"utf8")}catch(r){if(f(r))try{if((await u.stat(c.dirname(e))).isDirectory())return{status:"absent",entries:[]}}catch(n){if(f(n))return{status:"absent",entries:[]}}return{status:"unreadable",entries:[],error:{code:"managed_state_unreadable",path:e}}}try{let r=JSON.parse(t),n=_(r);if(!n||typeof r!="object"||r===null||!Array.isArray(r.entries)||n.entries.length!==r.entries.length)throw new SyntaxError("Invalid managed extension state");return{status:"ok",entries:n.entries}}catch{return{status:"invalid",entries:[],error:{code:"managed_state_invalid",path:e}}}}async function I(e){try{return{directories:(await u.readdir(e,{withFileTypes:!0})).filter(t=>t.isDirectory()).map(t=>t.name).sort((t,r)=>t.localeCompare(r))}}catch(t){return f(t)?{directories:[]}:{directories:[],error:{code:"extensions_unreadable",path:e}}}}async function D(e){let t;try{t=await u.readFile(e,"utf8")}catch(r){return f(r)?{manifest:null,error:{code:"manifest_invalid",path:e}}:{manifest:null,error:{code:"manifest_unreadable",path:e}}}try{let r=v(JSON.parse(t));return r?{manifest:r}:{manifest:null,error:{code:"manifest_invalid",path:e}}}catch{return{manifest:null,error:{code:"manifest_invalid",path:e}}}}function M(e){let t=e.manifest?.name??e.directory,r=new Set(p(e.settings.enabled)),n=new Set(p(e.settings.disabled)),a=!y(e.settings.status)||!e.manifest?null:!n.has(t)&&(r.size===0||r.has(t)),o=y(e.managed.status)?e.managed.entries.some(d=>i(d.name)===i(t)||i(d.directory)===i(e.directory)):null;return{name:t,directory:e.directory,scope:e.scope,installed:!0,status:e.manifest?a===!1?"inactive":"installed":"malformed_manifest",configured_enabled:a,managed:o,runtime_active:null,...e.manifest?{version:e.manifest.version}:{}}}async function R(e){let t=e.scope??"project",r=t==="global"?h(e.cwd??process.cwd()):e.pmRoot,n=c.join(r,"extensions"),a=await S(c.join(r,"settings.json")),o=await A(c.join(n,".managed-extensions.json")),d=await I(n),l=[];for(let s of[a,o,d])s.error&&l.push(s.error);let m=e.name?.trim(),b=[];for(let s of d.directories){let x=c.join(n,s,"manifest.json"),g=await D(x);g.error&&l.push(g.error);let w=M({directory:s,scope:t,manifest:g.manifest,settings:a,managed:o});m&&![w.name,s].some(E=>i(E)===i(m))||b.push(w)}return m&&b.length===0&&l.every(s=>s.code!=="extensions_unreadable")&&b.push({name:m,directory:null,scope:t,installed:!1,status:"absent",configured_enabled:y(a.status)?!1:null,managed:y(o.status)?!1:null,runtime_active:null}),{scope:t,complete:l.length===0,settings_status:a.status,managed_state_status:o.status,extensions:b,errors:l}}export{R as a};
2
+ //# sourceMappingURL=chunk-NGRPD3ZO.js.map