@unbrained/pm-cli 2026.10.28 → 2026.10.30

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 (166) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +18 -0
  3. package/dist/cli/commands/lifecycle/append.d.ts +4 -0
  4. package/dist/cli/commands/lifecycle/append.js +1 -1
  5. package/dist/cli/commands/lifecycle/create.d.ts +4 -0
  6. package/dist/cli/commands/lifecycle/create.js +1 -1
  7. package/dist/cli/commands/lifecycle/plan.d.ts +3 -0
  8. package/dist/cli/commands/lifecycle/plan.js +1 -1
  9. package/dist/cli/commands/lifecycle/update-many.d.ts +4 -0
  10. package/dist/cli/commands/lifecycle/update-many.js +1 -1
  11. package/dist/cli/commands/lifecycle/update.d.ts +4 -0
  12. package/dist/cli/commands/lifecycle/update.js +1 -1
  13. package/dist/cli/help-content.js +2 -2
  14. package/dist/cli/register-list-query.js +3 -3
  15. package/dist/cli-bundle/bundle-manifest.json +1 -1
  16. package/dist/cli-bundle/chunks/{chunk-XHONSCLJ.js → chunk-34MP7WKK.js} +3 -3
  17. package/dist/cli-bundle/chunks/chunk-42BHHNTL.js +128 -0
  18. package/dist/cli-bundle/chunks/{chunk-D6P6IBPN.js → chunk-4BQD5SW2.js} +46 -46
  19. package/dist/cli-bundle/chunks/{chunk-YYD5MNAV.js → chunk-EHBGHX55.js} +2 -2
  20. package/dist/cli-bundle/chunks/{chunk-DM3PICGU.js → chunk-GRABKNFL.js} +2 -2
  21. package/dist/cli-bundle/chunks/chunk-I5O3XZOA.js +2 -0
  22. package/dist/cli-bundle/chunks/{chunk-CXUQEZDX.js → chunk-LEIVUGDH.js} +2 -2
  23. package/dist/cli-bundle/chunks/chunk-MVL27TAH.js +2 -0
  24. package/dist/cli-bundle/chunks/{chunk-7V37RC2L.js → chunk-OH7WPD42.js} +35 -35
  25. package/dist/cli-bundle/chunks/chunk-OOD2A7AF.js +20 -0
  26. package/dist/cli-bundle/chunks/chunk-Q5V7P6NM.js +2 -0
  27. package/dist/cli-bundle/chunks/{chunk-2J7I54MQ.js → chunk-QLPFYBXN.js} +2 -2
  28. package/dist/cli-bundle/chunks/chunk-S2U7ECUJ.js +2 -0
  29. package/dist/cli-bundle/chunks/{chunk-E5QBZ4HI.js → chunk-SA5NYLPE.js} +2 -2
  30. package/dist/cli-bundle/chunks/{chunk-YUBUNECD.js → chunk-UUQX3PFD.js} +57 -57
  31. package/dist/cli-bundle/chunks/chunk-VHLAVTJN.js +31 -0
  32. package/dist/cli-bundle/chunks/{chunk-DKLEDWVW.js → chunk-XAOVJG52.js} +2 -2
  33. package/dist/cli-bundle/chunks/chunk-XPQ4RTSF.js +2 -0
  34. package/dist/cli-bundle/chunks/{chunk-D3AIQZXF.js → chunk-Y6NC3X3E.js} +2 -2
  35. package/dist/cli-bundle/chunks/item-transaction-WIOBZW4E.js +2 -0
  36. package/dist/cli-bundle/chunks/{mutation-admission-GKDKHRTZ.js → mutation-admission-TRGAVS7N.js} +2 -2
  37. package/dist/cli-bundle/chunks/{register-list-query-MHJJUM6M.js → register-list-query-BH4F6M7Z.js} +6 -6
  38. package/dist/cli-bundle/chunks/register-mutation-5V2NANIS.js +20 -0
  39. package/dist/cli-bundle/chunks/register-operations-XSFRMUFX.js +2 -0
  40. package/dist/cli-bundle/chunks/{register-setup-WUZ2ZSMY.js → register-setup-QPWSVHFZ.js} +2 -2
  41. package/dist/cli-bundle/chunks/{stage-2FYJGGG3.js → stage-RTB6RAAO.js} +2 -2
  42. package/dist/cli-bundle/focused-chunks/chunk-2V6NMNYN.js +26 -0
  43. package/dist/cli-bundle/focused-chunks/{chunk-ML5JIUM6.js → chunk-3SRX77ES.js} +2 -2
  44. package/dist/cli-bundle/focused-chunks/{chunk-YLVHHWHN.js → chunk-4PW5XWVI.js} +2 -2
  45. package/dist/cli-bundle/focused-chunks/{chunk-Z26ZPQH6.js → chunk-ASHGXMX4.js} +3 -3
  46. package/dist/cli-bundle/focused-chunks/{chunk-JTCGDODH.js → chunk-BCIUAEWX.js} +2 -2
  47. package/dist/cli-bundle/focused-chunks/{chunk-7SZPZOIC.js → chunk-BPE6JTKL.js} +2 -2
  48. package/dist/cli-bundle/focused-chunks/{chunk-LPWZERVD.js → chunk-CKBN2D42.js} +3 -3
  49. package/dist/cli-bundle/focused-chunks/chunk-FRFNGMAK.js +2 -0
  50. package/dist/cli-bundle/focused-chunks/chunk-I642DXOT.js +22 -0
  51. package/dist/cli-bundle/focused-chunks/chunk-K7DKG5HM.js +91 -0
  52. package/dist/cli-bundle/focused-chunks/chunk-NMQBXU7N.js +44 -0
  53. package/dist/cli-bundle/focused-chunks/{chunk-6VDRAJYX.js → chunk-PGM3ENGZ.js} +2 -2
  54. package/dist/cli-bundle/focused-chunks/{chunk-DRN4W3YJ.js → chunk-POJPJX64.js} +2 -2
  55. package/dist/cli-bundle/focused-chunks/{chunk-B4ZQJEMT.js → chunk-QFNV4JTA.js} +2 -2
  56. package/dist/cli-bundle/focused-chunks/{chunk-QUPGBO2L.js → chunk-QVJCQMZY.js} +2 -2
  57. package/dist/cli-bundle/focused-chunks/chunk-R2TPPPVU.js +2 -0
  58. package/dist/cli-bundle/focused-chunks/{chunk-TUN4M757.js → chunk-RGQEJFXO.js} +2 -2
  59. package/dist/cli-bundle/focused-chunks/{chunk-ON5WFDCG.js → chunk-RKPUQDWF.js} +2 -2
  60. package/dist/cli-bundle/focused-chunks/chunk-RYEZSZJ7.js +2 -0
  61. package/dist/cli-bundle/focused-chunks/{chunk-4GN2ZPT5.js → chunk-S23ZUASN.js} +2 -2
  62. package/dist/cli-bundle/focused-chunks/{chunk-R3EA3SDW.js → chunk-SAT7IAEB.js} +3 -3
  63. package/dist/cli-bundle/focused-chunks/{chunk-I4X6AKOO.js → chunk-VFWCSQAG.js} +2 -2
  64. package/dist/cli-bundle/focused-chunks/chunk-VJVJ2ZX2.js +2 -0
  65. package/dist/cli-bundle/focused-chunks/{chunk-C2GLO7HU.js → chunk-YQUZL2CK.js} +54 -54
  66. package/dist/cli-bundle/focused-chunks/{chunk-IQKLJFJE.js → chunk-YU7QOYYV.js} +18 -18
  67. package/dist/cli-bundle/focused-chunks/{indexed-receipt-blobs-5H6RMRTK.js → indexed-receipt-blobs-VK2363JB.js} +2 -2
  68. package/dist/cli-bundle/focused-chunks/item-transaction-ZFDKJIP7.js +2 -0
  69. package/dist/cli-bundle/focused-chunks/{mutation-admission-TM3SVU2O.js → mutation-admission-7VUODEPJ.js} +2 -2
  70. package/dist/cli-bundle/focused-chunks/{settlement-hook-LBVWWSCF.js → settlement-hook-OK6A7PG2.js} +2 -2
  71. package/dist/cli-bundle/focused-chunks/{stage-7ZBRX2Q2.js → stage-S5RP5SZH.js} +2 -2
  72. package/dist/cli-bundle/main.js +3 -3
  73. package/dist/cli-bundle/sdk-authoring.js +1 -1
  74. package/dist/cli-bundle/sdk-contracts.js +2 -2
  75. package/dist/cli-bundle/sdk-core.js +1 -43
  76. package/dist/cli-bundle/sdk-governance.js +1 -1
  77. package/dist/cli-bundle/sdk-graph.js +1 -1
  78. package/dist/cli-bundle/sdk-merge.js +61 -61
  79. package/dist/cli-bundle/sdk-query.js +1 -1
  80. package/dist/cli-bundle/sdk-runtime.js +1 -1
  81. package/dist/cli-bundle/sdk-testing.js +1 -1
  82. package/dist/cli-bundle/sdk.js +9 -9
  83. package/dist/core/history/operation-contract.d.ts +2 -2
  84. package/dist/core/history/operation-contract.js +1 -1
  85. package/dist/core/item/literal-mutation-input.d.ts +12 -0
  86. package/dist/core/item/literal-mutation-input.js +2 -0
  87. package/dist/core/item/parse.d.ts +2 -0
  88. package/dist/core/item/parse.js +2 -2
  89. package/dist/core/output/output.js +2 -2
  90. package/dist/core/store/item-store.js +1 -1
  91. package/dist/sdk/cli-contracts/flag-contracts.js +1 -1
  92. package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +1 -1
  93. package/dist/sdk/cli-contracts/registration-helpers.js +1 -1
  94. package/dist/sdk/cli-contracts/tool-parameter-tables.js +1 -1
  95. package/dist/sdk/cli-contracts/tool-schema.js +1 -1
  96. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
  97. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
  98. package/dist/sdk/item-transaction.d.ts +33 -2
  99. package/dist/sdk/item-transaction.js +1 -1
  100. package/dist/sdk/lifecycle/append.js +1 -1
  101. package/dist/sdk/lifecycle/cli-input.d.ts +4 -0
  102. package/dist/sdk/lifecycle/cli-input.js +2 -0
  103. package/dist/sdk/lifecycle/create.js +1 -1
  104. package/dist/sdk/lifecycle/legacy-none-tokens.js +1 -1
  105. package/dist/sdk/lifecycle/reopen.js +1 -1
  106. package/dist/sdk/lifecycle/update-many.js +1 -1
  107. package/dist/sdk/lifecycle/update.js +2 -2
  108. package/dist/sdk/output/table-rows.d.ts +9 -1
  109. package/dist/sdk/output/table-rows.js +1 -1
  110. package/dist/sdk/public-surface.json +1 -1
  111. package/dist/sdk/query/history.d.ts +2 -0
  112. package/dist/sdk/query/history.js +1 -1
  113. package/dist/sdk/runtime/mutation-value-validation.d.ts +16 -0
  114. package/dist/sdk/runtime/mutation-value-validation.js +2 -0
  115. package/dist/sdk/runtime-input.js +1 -1
  116. package/dist/sdk/runtime-primitives.d.ts +1 -0
  117. package/dist/sdk/runtime-primitives.js +1 -1
  118. package/dist/sdk/runtime.d.ts +14 -0
  119. package/dist/sdk/runtime.js +1 -1
  120. package/dist/sdk/structured-mutations.js +1 -1
  121. package/dist/sdk/workspace-transaction-gc.js +1 -1
  122. package/dist/sdk/workspace-transaction.d.ts +54 -0
  123. package/dist/sdk/workspace-transaction.js +2 -2
  124. package/docs/COMMANDS.md +15 -10
  125. package/docs/OUTPUT_PROJECTION_CONTRACTS.md +24 -2
  126. package/docs/SDK.md +134 -9
  127. package/docs/TESTING.md +8 -0
  128. package/docs/generated/FLAG_LEXICON_BUDGETS.md +1 -1
  129. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +6 -3
  130. package/marketplace.json +1 -1
  131. package/package.json +1 -1
  132. package/packages/pm-beads/package.json +1 -1
  133. package/packages/pm-calendar/package.json +1 -1
  134. package/packages/pm-command-kit/package.json +1 -1
  135. package/packages/pm-digital-twin/package.json +1 -1
  136. package/packages/pm-governance-audit/package.json +1 -1
  137. package/packages/pm-guide-shell/package.json +1 -1
  138. package/packages/pm-kanban/package.json +1 -1
  139. package/packages/pm-lifecycle-hooks/package.json +1 -1
  140. package/packages/pm-linked-test-adapters/package.json +1 -1
  141. package/packages/pm-search-advanced/package.json +1 -1
  142. package/packages/pm-templates/package.json +1 -1
  143. package/packages/pm-todos/package.json +1 -1
  144. package/packages/pm-vcs/package.json +1 -1
  145. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  146. package/plugins/pm-claude/package.json +1 -1
  147. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  148. package/plugins/pm-codex/package.json +1 -1
  149. package/plugins/pm-codex/plugin.json +1 -1
  150. package/runtime-dependencies.json +1 -1
  151. package/dist/cli-bundle/chunks/chunk-4D25HF3V.js +0 -2
  152. package/dist/cli-bundle/chunks/chunk-AHVN4GHF.js +0 -31
  153. package/dist/cli-bundle/chunks/chunk-CS7QDSUX.js +0 -128
  154. package/dist/cli-bundle/chunks/chunk-JESLOJD7.js +0 -2
  155. package/dist/cli-bundle/chunks/chunk-PQLRKFPZ.js +0 -20
  156. package/dist/cli-bundle/chunks/chunk-SGFQQXFD.js +0 -2
  157. package/dist/cli-bundle/chunks/chunk-ZX3XMTZG.js +0 -2
  158. package/dist/cli-bundle/chunks/register-mutation-SN425O3R.js +0 -20
  159. package/dist/cli-bundle/chunks/register-operations-EYUIUGPW.js +0 -2
  160. package/dist/cli-bundle/focused-chunks/chunk-3EHVI673.js +0 -2
  161. package/dist/cli-bundle/focused-chunks/chunk-46WLWK73.js +0 -2
  162. package/dist/cli-bundle/focused-chunks/chunk-6L4KKRK7.js +0 -26
  163. package/dist/cli-bundle/focused-chunks/chunk-BZSACRVX.js +0 -91
  164. package/dist/cli-bundle/focused-chunks/chunk-F6UQJJYB.js +0 -2
  165. package/dist/cli-bundle/focused-chunks/chunk-L5GX2FGZ.js +0 -2
  166. package/dist/cli-bundle/focused-chunks/chunk-OASYSUOH.js +0 -22
@@ -0,0 +1,2 @@
1
+ import{M as C,N as L,O as x,P as M,Q as B,R as U,S as E,X as Z,a as Q,g as P,i as q,o as R,q as D,s as F}from"./chunk-ASHGXMX4.js";import{C as ne,O as $,a as j,f as k,r as ee,s as te,u as S,v as re}from"./chunk-I642DXOT.js";import{ia as O}from"./chunk-2V6NMNYN.js";import{A as g,z as y}from"./chunk-BPE6JTKL.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]="39aa8f48-11f9-528b-b5a2-ff4272a6b644")}catch{}})();var Oe={create:'client.create({ type: "Task", title: "Example", createMode: "progressive" })',update:'client.update(id, { estimatedMinutes: "45", force: false })',append:'client.append(id, "Body text")',reopen:'client.reopen(id, "The work recurred", { expectedResult: "Verified recovery" })'};function b(e,t,r){let n=`${e} ${t} must be ${r}.`;throw new g(n,y.USAGE,{code:"invalid_argument_value",reason:"invalid_mutation_option_value",field:t,changed:!1,required:n,examples:[Oe[e]]})}function w(e,t,r){typeof e!="string"&&b(t,r,"a string")}function Y(e,t){(e===null||typeof e!="object"||Array.isArray(e))&&b(t,"options","an object")}function ie(e,t){(e==="append"||e==="update")&&t.id!==void 0&&w(t.id,e,"id"),e==="item-reopen"&&(t.id!==void 0&&w(t.id,"reopen","id"),t.reason!==void 0&&w(t.reason,"reopen","reason"),t.options!==void 0&&Te(t.options))}function et(e){Y(e,"append");for(let t of["body","author","message"])e[t]!==void 0&&w(e[t],"append",t);e.force!==void 0&&typeof e.force!="boolean"&&b("append","force","a boolean")}function Te(e){Y(e,"reopen");for(let t of Z["item-reopen"].optional){let r=e[t];r!==void 0&&(O(Reflect.get(C,t)).type==="boolean"?typeof r!="boolean"&&b("reopen",t,"a boolean"):w(r,"reopen",t))}}function _e(e,t){return e?t?"a string or string array":"a string array":"a string"}function Re(e,t,r,n,s,a){r===void 0||typeof r=="string"&&(!s||a)||n==="priority"&&typeof r=="number"&&Number.isFinite(r)||s&&Array.isArray(r)&&Array.from(r).every(i=>typeof i=="string")||b(e,t,_e(s,a))}function Ce(e,t,r){let n=e==="create"?D:F;for(let{param:s}of[...n,...R,{param:"force"}]){if(O(Reflect.get(C,s)).type!=="boolean")continue;let a=r.find(i=>i.keys.includes(s))?.keys??[s];for(let i of a)t[i]!==void 0&&typeof t[i]!="boolean"&&b(e,i,"a boolean")}}function J(e,t,r=!0,n=!1){let s=e==="create"?L:B;for(let{target:a,keys:i,repeatable:l}of s)if(O(Reflect.get(C,a)).type!=="boolean")for(let f of i){let m=n&&f!==a,ve=l===!0&&(a!=="acceptanceCriteria"||m);Re(e,f,t[f],a,ve,r||m)}Ce(e,t,s)}function tt(e,t){Y(t,e);let r=ee(t);return J(e,r,!1,k(r)),r}import{Option as Rt}from"commander";(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]="201134b5-01e8-55ae-a099-137b9b6fae92")}catch{}})();function A(e,t,r){if(typeof r!="string")return;let n=r.trim();n.length!==0&&e.push(t,n)}function p(e,t,r){r===!0&&e.push(t)}function T(e,t,r){if(Array.isArray(r))for(let n of r){if(typeof n!="string")continue;let s=n.trim();s.length!==0&&e.push(t,s)}}function Se(e,t){let r=["test",e,"--run","--json","--progress"];return T(r,"--add",t.add),T(r,"--add-json",t.addJson),T(r,"--remove",t.remove),T(r,"--remove-index",Array.isArray(t.removeIndex)?t.removeIndex.map(n=>typeof n=="number"?String(n):n):t.removeIndex),A(r,"--match",t.match),A(r,"--only-index",typeof t.onlyIndex=="number"?String(t.onlyIndex):t.onlyIndex),p(r,"--only-last",t.onlyLast),T(r,"--measure",t.measure),A(r,"--metric-below",t.metricBelow),A(r,"--metric-diff",t.metricDiff),be(r,t),A(r,"--author",t.author),A(r,"--message",t.message),p(r,"--force",t.force),r}function be(e,t){A(e,"--timeout",t.timeout),T(e,"--env-set",t.envSet),T(e,"--env-clear",t.envClear),p(e,"--shared-host-safe",t.sharedHostSafe),A(e,"--pm-context",t.pmContext),p(e,"--override-linked-pm-context",t.overrideLinkedPmContext),A(e,"--workspace-context",t.workspaceContext),p(e,"--override-linked-workspace-context",t.overrideLinkedWorkspaceContext),p(e,"--allow-untrusted-linked-tests",t.allowUntrustedLinkedTests),p(e,"--fail-on-context-mismatch",t.failOnContextMismatch),p(e,"--fail-on-skipped",t.failOnSkipped),p(e,"--fail-on-empty-test-run",t.failOnEmptyTestRun),p(e,"--require-assertions-for-pm",t.requireAssertionsForPm),p(e,"--check-context",t.checkContext),p(e,"--auto-pm-context",t.autoPmContext)}(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]="744840e4-d430-54d3-b681-7244a58d86cb")}catch{}})();function ae(e,t){let r=[],n=new Set;for(let s of t.keys){if(!Object.hasOwn(e,s))continue;let a=e[s];if(a!=null){if(typeof a=="string"){r.push(a);continue}if(!Array.isArray(a)||!a.every(i=>typeof i=="string"))return;n.has(a)||(n.add(a),r.push(...a))}}return r.length>0?r.join("; "):void 0}function _(e,t){return e.find(r=>r.target===t)??{target:t,keys:[t]}}function o(e,t){return e[t]===!0?!0:void 0}function h(e,t){return e[t]===!1?!0:void 0}function z(e,t){return t.some(r=>e[r]===!0)?!0:void 0}function W(e,t){for(let[r,n]of Object.entries(t))r==="__proto__"||r==="constructor"||r==="prototype"||Object.hasOwn(e,r)||(e[r]=n)}function oe(e,t={}){let r=i=>P(e,_(x,i)),n=i=>q(e,_(M,i)),s=r("type");if(t.requireType!==!1&&s===void 0)throw new g("Missing required option --type <value>. Why required: create resolves runtime schema fields/workflow from item type. Retry: add --type <built-in or configured custom type> (example: --type Task).",y.USAGE);let a={title:r("title"),description:r("description"),type:s,template:r("template"),createMode:r("createMode"),schedulePreset:r("schedulePreset"),status:r("status"),closeReason:r("closeReason"),completedAt:r("completedAt"),priority:r("priority"),tags:r("tags"),addTags:n("addTags"),body:r("body"),deadline:r("deadline"),estimatedMinutes:r("estimatedMinutes"),acceptanceCriteria:ae(e,_(M,"acceptanceCriteria")),definitionOfReady:r("definitionOfReady"),order:r("order"),rank:r("rank"),goal:r("goal"),objective:r("objective"),value:r("value"),impact:r("impact"),outcome:r("outcome"),whyNow:r("whyNow"),author:r("author"),message:r("message"),assignee:r("assignee"),parent:r("parent"),inheritFocus:e.inheritFocus,allowMissingParent:z(e,["allowMissingParent","allow_missing_parent"])===!0,allowUnresolvedDeps:z(e,["allowUnresolvedDeps","allow_unresolved_deps"])===!0,allowDuplicate:o(e,"allowDuplicate")===!0,reviewer:r("reviewer"),risk:r("risk"),confidence:r("confidence"),sprint:r("sprint"),release:r("release"),blockedBy:r("blockedBy"),blockedReason:r("blockedReason"),unblockNote:r("unblockNote"),reporter:r("reporter"),severity:r("severity"),environment:r("environment"),reproSteps:r("reproSteps"),resolution:r("resolution"),expectedResult:r("expectedResult"),actualResult:r("actualResult"),affectedVersion:r("affectedVersion"),fixedVersion:r("fixedVersion"),component:r("component"),regression:e.regression===!0?"true":r("regression"),customerImpact:r("customerImpact"),dep:n("dep"),comment:n("comment"),note:n("note"),learning:n("learning"),file:n("file"),test:n("test"),doc:n("doc"),reminder:n("reminder"),event:n("event"),typeOption:n("typeOption"),field:n("field"),unset:n("unset"),clearDeps:o(e,"clearDeps"),clearComments:o(e,"clearComments"),clearNotes:o(e,"clearNotes"),clearLearnings:o(e,"clearLearnings"),clearFiles:o(e,"clearFiles"),clearTests:o(e,"clearTests"),clearDocs:o(e,"clearDocs"),clearReminders:o(e,"clearReminders"),clearEvents:o(e,"clearEvents"),clearTypeOptions:o(e,"clearTypeOptions")};return W(a,e),S(e,a)}function se(e){let t=s=>P(e,_(U,s)),r=s=>q(e,_(E,s)),n={title:t("title"),description:t("description"),body:t("body"),status:t("status"),closeReason:t("closeReason"),priority:t("priority"),type:t("type"),tags:t("tags"),addTags:r("addTags"),removeTags:r("removeTags"),deadline:t("deadline"),estimatedMinutes:t("estimatedMinutes"),acceptanceCriteria:ae(e,_(E,"acceptanceCriteria")),addAc:r("addAc"),removeAc:r("removeAc"),definitionOfReady:t("definitionOfReady"),order:t("order"),rank:t("rank"),goal:t("goal"),objective:t("objective"),value:t("value"),impact:t("impact"),outcome:t("outcome"),whyNow:t("whyNow"),author:t("author"),message:t("message"),force:!!e.force,ownershipMetadataBypass:e.ownershipMetadataBypass===!0?!0:void 0,ownershipDependencyBypass:e.ownershipDependencyBypass===!0?!0:void 0,assignee:t("assignee"),parent:t("parent"),allowUnresolvedDeps:z(e,["allowUnresolvedDeps","allow_unresolved_deps"])===!0,reviewer:t("reviewer"),risk:t("risk"),confidence:t("confidence"),sprint:t("sprint"),release:t("release"),blockedBy:t("blockedBy"),blockedReason:t("blockedReason"),unblockNote:t("unblockNote"),reporter:t("reporter"),severity:t("severity"),environment:t("environment"),reproSteps:t("reproSteps"),resolution:t("resolution"),expectedResult:t("expectedResult"),actualResult:t("actualResult"),affectedVersion:t("affectedVersion"),fixedVersion:t("fixedVersion"),component:t("component"),regression:e.regression===!0?"true":t("regression"),customerImpact:t("customerImpact"),dep:r("dep"),depRemove:r("depRemove"),replaceDeps:o(e,"replaceDeps"),replaceTests:o(e,"replaceTests"),replaceFiles:o(e,"replaceFiles"),replaceDocs:o(e,"replaceDocs"),comment:r("comment"),note:r("note"),learning:r("learning"),file:r("file"),test:r("test"),doc:r("doc"),reminder:r("reminder"),event:r("event"),typeOption:r("typeOption"),field:r("field"),unset:r("unset"),clearDeps:o(e,"clearDeps"),clearComments:o(e,"clearComments"),clearNotes:o(e,"clearNotes"),clearLearnings:o(e,"clearLearnings"),clearFiles:o(e,"clearFiles"),clearTests:o(e,"clearTests"),clearDocs:o(e,"clearDocs"),clearReminders:o(e,"clearReminders"),clearEvents:o(e,"clearEvents"),clearTypeOptions:o(e,"clearTypeOptions")};return W(n,e),S(e,n)}function c(e,t){let r=_(Q,t),n=P(e,r);if(n!==void 0)return n;for(let s of r.keys){let a=e[s];if(Array.isArray(a)){let i=a.filter(l=>typeof l=="string");if(i.length>0)return i.join(",")}if(t==="ids"&&typeof a=="string")return a;if(typeof a=="number"&&Number.isFinite(a))return String(a)}}function Ne(e){let t=o(e,"filterFilesMissing"),r=o(e,"filterDocsMissing");return{filterReviewerMissing:o(e,"filterReviewerMissing"),filterRiskMissing:o(e,"filterRiskMissing"),filterConfidenceMissing:o(e,"filterConfidenceMissing"),filterSprintMissing:o(e,"filterSprintMissing"),filterReleaseMissing:o(e,"filterReleaseMissing"),hasNotes:o(e,"hasNotes"),hasLearnings:o(e,"hasLearnings"),hasFiles:o(e,"hasFiles"),hasDocs:o(e,"hasDocs"),hasTests:o(e,"hasTests"),hasComments:o(e,"hasComments"),hasDeps:o(e,"hasDeps"),hasBody:o(e,"hasBody"),hasLinkedCommand:o(e,"hasLinkedCommand"),noNotes:h(e,"notes"),noLearnings:h(e,"learnings"),noFiles:h(e,"files")??t,filterFilesMissing:t,noDocs:h(e,"docs")??r,filterDocsMissing:r,noTests:h(e,"tests"),noComments:h(e,"comments"),noDeps:h(e,"deps"),emptyBody:o(e,"emptyBody"),noLinkedCommand:h(e,"linkedCommand")}}function le(e){let t={status:c(e,"status"),type:c(e,"type"),tag:c(e,"tag"),priority:c(e,"priority"),deadlineBefore:c(e,"deadlineBefore"),deadlineAfter:c(e,"deadlineAfter"),updatedAfter:c(e,"updatedAfter"),updatedBefore:c(e,"updatedBefore"),createdAfter:c(e,"createdAfter"),createdBefore:c(e,"createdBefore"),today:o(e,"today"),recent:o(e,"recent"),ids:c(e,"ids"),assignee:c(e,"assignee"),assigneeFilter:c(e,"assigneeFilter"),parent:c(e,"parent"),sprint:c(e,"sprint"),release:c(e,"release"),limit:c(e,"limit"),offset:c(e,"offset"),noTruncate:h(e,"truncate"),includeBody:o(e,"includeBody"),strictRead:o(e,"strictRead"),compact:o(e,"compact"),brief:o(e,"brief"),full:o(e,"full"),fields:c(e,"fields"),sort:c(e,"sort"),order:c(e,"order"),tree:o(e,"tree"),treeDepth:c(e,"treeDepth"),filterAcMissing:o(e,"filterAcMissing"),filterEstimatesMissing:z(e,["filterEstimatesMissing","filterEstimateMissing"]),filterResolutionMissing:o(e,"filterResolutionMissing"),filterMetadataMissing:o(e,"filterMetadataMissing"),...Ne(e)};return W(t,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]="c360e866-97c3-588b-89b8-683b40783178")}catch{}})();var Me=Symbol("pm.mcp-mutation-transport"),Ee=new Set(["create","update","append"]),H={create:{parameters:D,aliases:L,strings:x,repeatables:M},update:{parameters:F,aliases:B,strings:U,repeatables:E}},ke=new Set(["activity","aggregate","context","contracts","deps","files-discover","files-lookup","get","graph","health","history","history-attest","list","next","search","stats","telemetry","validate"]);function I(e){return Me in e}function G(e,t){return I(e)?te(t):S(e,t)}function Vt(e,t,r=[]){let n=S(e,{...e,...t});for(let s of r)Reflect.deleteProperty(n,s);return n}function d(e,t){let r=e[t];return typeof r=="string"&&r.trim().length>0?r:void 0}function u(e,t){let r=e[t];return typeof r=="string"?r.trim().length>0?r:void 0:typeof r=="number"&&Number.isFinite(r)?String(r):void 0}function Gt(e,t){let r=e[t];return typeof r=="string"?r:typeof r=="number"&&Number.isFinite(r)?String(r):void 0}function v(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Ht(e,t){if(typeof e=="number"){if(!Number.isInteger(e))throw new g(`${t} must be a finite integer.`,y.USAGE);return e}if(typeof e=="string"&&e.trim().length>0){let r=Number(e);if(!Number.isInteger(r))throw new g(`${t} must be a finite integer.`,y.USAGE);return r}}function qt(e,t){return typeof e.limit=="number"&&Number.isFinite(e.limit)?e.limit:typeof t.limit=="number"&&Number.isFinite(t.limit)?t.limit:d(e,"limit")??d(t,"limit")}function $t(e){let t=d(e,"outputFormat");return{json:!0,quiet:!0,author:d(e,"author"),path:d(e,"path"),noExtensions:e.noExtensions===!0||e.no_extensions===!0,noPager:!0,outputInclude:d(e,"outputInclude"),outputLimit:u(e,"outputLimit"),outputBudget:u(e,"outputBudget"),outputSession:d(e,"outputSession"),outputCursor:d(e,"outputCursor"),outputFormat:t==="json"||t==="toon"?t:void 0}}var ce=new Set(["tags","blockedBy","blocked_by","skills","fields"]),ue=new Set(["comment","note","learning","reminder","event","dep","depRemove","dep_remove","file","doc","test","unset","addGlob","add_glob","migrate","envSet","env_set","envClear","env_clear"]),we=new Set([...ue].filter(e=>e!=="file")),Ie=new Set(["files","files-discover","docs","test","test-all"]),fe=new Set(["comments","notes","learnings"]);function Pe(e,t){if(!(!fe.has(e)||!Object.prototype.hasOwnProperty.call(t,"file")))throw new g(`MCP ${e} does not accept options.file. Pass annotation text in options.add instead.`,y.USAGE,{code:"mcp_annotation_file_unavailable",required:"Pass annotation text as JSON data; MCP annotation actions cannot read server-local files."})}var De=new Set(["claim","release","start-task","pause-task","close-task"]),pe={history:["order"],"history-attest":["verify","output","hashAlgorithm"],list:["status","type","tag","priority","limit","offset"],search:["mode","status","type","tag","priority","limit"],create:["title","type","status","description","body","priority","tags","parent","createMode","create_mode","allowMissingParent","allowDuplicate","inheritFocus"],update:["parent","allowMissingParent","completedAt"],copy:["allowDuplicate"],close:["duplicateOf","completedAt","releaseAssignment"],claim:["start","next","ifAvailable"],release:["pause","handoff"],comments:["ifAbsent"],notes:["ifAbsent"],learnings:["ifAbsent"],extension:["dryRun","offline"],package:["dryRun","offline"],install:["dryRun"],upgrade:["scope","dryRun","cliOnly","packagesOnly","repair","tag","packageName"],append:["body"]},me=["outputInclude","outputLimit","outputBudget","outputFormat","outputSession","outputCursor"];function ye(e,t=""){let r={},n=Ie.has(t),s=t==="files"||t==="files-discover"||t==="docs",a=fe.has(t)?we:ue;for(let[i,l]of Object.entries(e)){if(Array.isArray(l)&&ce.has(i)){r[i]=l.join(",");continue}if(i==="note"&&s){r[i]=l;continue}if(typeof l=="string"&&a.has(i)){r[i]=[l];continue}if(typeof l=="string"&&n&&(i==="add"||i==="remove")){r[i]=[l];continue}r[i]=l}return Object.assign(r,Object.fromEntries(Object.getOwnPropertySymbols(e).map(i=>[i,Reflect.get(e,i)]))),r}function Fe(e,t,r){let n=d(e,"author");return n!==void 0?n:r!==void 0&&De.has(r)?d(e,"assignee")??d(t,"assignee"):void 0}function Le(e,t){return t!==void 0&&e.author===void 0?{...e,author:t}:e}function xe(e,t,r){let n={},s=H[e],a=new Set([...s.parameters.map(({param:i})=>i),...R.map(({param:i})=>i),...pe[e],...me,"force"]);for(let i of a){let l=s.aliases.find(f=>f.keys.includes(i))?.keys??[i];t[i]===void 0||l.some(f=>r[f]!==void 0)||(n[i]=t[i])}return n}function N(e,t){throw new g(`Invalid MCP ${e} value for "${t}". No changes were made.`,y.USAGE,{code:"invalid_argument_value",reason:"invalid_mutation_option_value",changed:!1,field:t,required:`Provide valid ${e} field values and an options object; inspect the pm_${e} input schema for supported types.`})}function Be(e,t,r){let n=H[e],s=[...n.parameters,...R,{param:"force"}];for(let{param:a}of s){if(O(C[a]).type!=="boolean")continue;let i=(n.aliases.find(l=>l.keys.includes(a))?.keys??[a]).find(l=>r[l]!==void 0&&typeof r[l]!="boolean");i!==void 0&&N(e,i)}for(let a of["idOnly","fullChangedFields"])t[a]!==void 0&&typeof t[a]!="boolean"&&N(e,a)}function Ue(e,t,r){t.options!==void 0&&!v(t.options)&&N(e,"options"),Be(e,t,r);for(let i of ce){let l=r[i];Array.isArray(l)&&l.some(f=>typeof f!="string")&&N(e,i)}let n=he(r,e),s=H[e];for(let{keys:i,target:l}of s.strings)i.some(f=>r[f]!==void 0)&&n[l]===void 0&&N(e,l);let a=s.repeatables.flatMap(({keys:i})=>i).find(i=>{let l=r[i];return l!==void 0&&typeof l!="string"&&(!Array.isArray(l)||l.some(f=>typeof f!="string"))});return a!==void 0&&N(e,a),n}function je(e,t,r,n){let s=(t==="create"||t==="update")&&I(e),a={...s?xe(t,e,n):r,...n};return(t==="create"||t==="update")&&!s&&J(t,a,!0,v(e.options)&&k(e.options)),s?Ue(t,e,a):ye(a,t)}function ze(e,t){return!Ee.has(e??"")||k(t)?t:ne(t)}function Yt(e,t){ie(t,e);let r=v(e.options)?e.options:void 0,n=O(e.options),s={},a=m=>{n[m]!==void 0||e[m]===void 0||(s[m]=e[m])};for(let m of pe[t??""]??[])a(m);for(let m of me)a(m);t!==void 0&&I(e)&&Pe(t,n);let i=je(e,t,s,n);if(t==="history-attest"&&I(e)&&(i.output!==void 0||typeof i.verify=="string"))throw new g("MCP history attest does not accept server-local proof paths. Export the returned JSON bundle and pass that JSON object as verify.",y.USAGE);let l=I(e)?e:r??e,f=G(l,Le(i,Fe(e,i,t)));return ze(t,f)}function Jt(e){if(e.addNote===void 0)return e;let t={...e};return t.note===void 0&&typeof t.addNote=="string"&&(t.note=t.addNote),delete t.addNote,t}function Wt(e){let t={...e};return t.discoveryNote!==void 0&&t.note===void 0&&typeof t.discoveryNote=="string"&&(t.note=t.discoveryNote),delete t.discover,delete t.discoveryNote,t}function Ve(e){let t=[],r=!0;for(let n of e.trim().toLowerCase()){if(n>="a"&&n<="z"||n>="0"&&n<="9"){t.push(n),r=!1;continue}r||(t.push("-"),r=!0)}return t.at(-1)==="-"&&t.pop(),t.join("")}function Kt(e){return!ke.has(Ve(e))}function Xt(e){return e.trim().toLowerCase().split(/\s+/).filter(Boolean).join(" ")}function Ge(e){return Array.isArray(e)?e.map(t=>String(t)).filter(t=>t.length>0):[]}function Qt(e,t){let r=new Set(["action","args","author","cwd","fullChangedFields","id","options","path","query","reason","target"]),n={};for(let[a,i]of Object.entries(e))r.has(a)||(n[a]=i);let s={...n,...t};return delete s.args,delete s.author,s}function Zt(e,t){let r=G(t??{},{...t});return{changedFields:e.fullChangedFields===!0?"full":"compact",idOnly:e.idOnly===!0,runnerOptions:r}}function X(e){return{type:u(e,"filterType"),tag:u(e,"filterTag"),priority:u(e,"filterPriority"),deadlineBefore:u(e,"filterDeadlineBefore"),deadlineAfter:u(e,"filterDeadlineAfter"),updatedAfter:u(e,"filterUpdatedAfter"),updatedBefore:u(e,"filterUpdatedBefore"),createdAfter:u(e,"filterCreatedAfter"),createdBefore:u(e,"filterCreatedBefore"),ids:$(e.ids),assignee:u(e,"filterAssignee"),assigneeFilter:u(e,"filterAssigneeFilter")??u(e,"filterAssignee_filter"),parent:u(e,"filterParent"),sprint:u(e,"filterSprint"),release:u(e,"filterRelease"),limit:u(e,"limit"),offset:u(e,"offset")}}function K(e){if(typeof e=="string"&&e.trim().length>0)return e;if(Array.isArray(e))return Ge(e)}function V(e){if(typeof e=="number"&&Number.isFinite(e)||typeof e=="string"&&e.trim().length>0)return e}function er(e){let t=K(e.kind),r=K(e.exemptIsolate),n=K(e.exemptIsolateType);return{...t===void 0?{}:{kind:t},maxDepth:V(e.maxDepth),limit:V(e.limit),after:d(e,"after"),direction:d(e,"direction"),maxPaths:V(e.maxPaths),sample:V(e.sample),...r===void 0?{}:{exemptIsolate:r},...n===void 0?{}:{exemptIsolateType:n},saveBaseline:e.saveBaseline===!0,rebuild:e.rebuild===!0,clear:e.clear===!0,summary:e.summary===!0,...e.full===!0?{full:!0}:{}}}function ge(e){let t=le(e);return e.ids!==void 0&&(t.ids=$(e.ids)),t}function tr(e){return{status:d(e,"filterStatus"),list:v(e.list)?ge(e.list):X(e),reason:d(e,"reason"),completedAt:d(e,"completedAt")??d(e,"completed_at"),resolution:d(e,"resolution"),expectedResult:d(e,"expectedResult")??d(e,"expected_result")??d(e,"expected"),actualResult:d(e,"actualResult")??d(e,"actual_result")??d(e,"actual"),validateClose:d(e,"validateClose")??d(e,"validate_close"),author:d(e,"author"),message:d(e,"message"),force:e.force===!0?!0:void 0,dryRun:e.dryRun===!0||e.dry_run===!0?!0:void 0,rollback:j(e.rollback),checkpoint:e.checkpoint===!1||e.noCheckpoint===!0||e.no_checkpoint===!0?!1:void 0}}var He=new Set(["filterStatus","filterType","filterTag","filterPriority","filterDeadlineBefore","filterDeadlineAfter","filterUpdatedAfter","filterUpdatedBefore","filterCreatedAfter","filterCreatedBefore","filterAssignee","filterAssigneeFilter","filterAssignee_filter","filterParent","filterSprint","filterRelease","ids","list","update","limit","offset","dryRun","dry_run","rollback","checkpoint","noCheckpoint","no_checkpoint"]);function de(e){let t={};for(let[r,n]of Object.entries(e))He.has(r)||(t[r]=n);return Ae(t)}function Ae(e){return he(e,"update")}function he(e,t){let r=ye(e,t),n=H[t],s=new Set([...n.parameters,...R].filter(({booleanish:a})=>a===!0).map(({param:a})=>a));for(let{keys:a}of n.repeatables)for(let i of a)typeof r[i]=="string"&&(r[i]=[r[i]]);for(let a of n.strings)for(let i of a.keys){let l=r[i];(typeof l=="number"&&Number.isFinite(l)||l===!1&&s.has(i))&&(r[i]=String(l))}return t==="create"?{...oe(r,{requireType:!1})}:se(r)}function rr(e){if(v(e.list)||v(e.update)){let t=v(e.update)?e.update:de(e),r=G(e,Ae(t));return{status:u(e,"filterStatus"),list:v(e.list)?ge(e.list):X(e),update:re(t,r),dryRun:e.dryRun===!0||e.dry_run===!0?!0:void 0,rollback:j(e.rollback),checkpoint:e.checkpoint===!1||e.noCheckpoint===!0||e.no_checkpoint===!0?!1:void 0}}return{status:u(e,"filterStatus"),list:X(e),update:G(e,de(e)),dryRun:e.dryRun===!0||e.dry_run===!0?!0:void 0,rollback:j(e.rollback),checkpoint:e.checkpoint===!1||e.noCheckpoint===!0||e.no_checkpoint===!0?!1:void 0}}export{w as a,Y as b,et as c,Te as d,tt as e,Se as f,I as g,Vt as h,d as i,u as j,Gt as k,v as l,Ht as m,qt as n,$t as o,pe as p,ye as q,Yt as r,Jt as s,Wt as t,Ve as u,Kt as v,Xt as w,Ge as x,Qt as y,Zt as z,X as A,er as B,tr as C,Ae as D,rr as E};
2
+ //# sourceMappingURL=chunk-FRFNGMAK.js.map
@@ -0,0 +1,22 @@
1
+ import{F as nt,G as ot,f as he}from"./chunk-K7DKG5HM.js";import{$a as te,Fa as Qt,Ua as Zt,Va as rt,Wa as er,_a as ge,ab as ye,da as tt,g as Qe,h as Xt,r as Ze,x as _e,y as et,ya as Jt}from"./chunk-YU7QOYYV.js";import{b as Wt}from"./chunk-RGQEJFXO.js";import{$ as E,$b as Gt,Aa as Ke,Ba as Yt,Dc as Kt,Ga as Xe,Ja as Bt,Md as pe,a as Ye,ba as Z,ca as K,da as b,fa as Ht,ic as Je,mc as me,qa as We,uc as fe,ya as ee,yd as D,za as Ge}from"./chunk-2V6NMNYN.js";import{A as m,C as W,E as G,F as T,I as v,K as ue,t as Be,z as u}from"./chunk-BPE6JTKL.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]="cef883fa-81be-5092-a07b-7a5ca961fbc7")}catch{}})();var Ee=new WeakSet,it=new WeakMap,tr=new WeakSet;function rr(e){return tr.add(e),e}function st(e){return tr.has(e)}function re(e){Ee.add(e);for(let[t,r]of Object.entries(e)){if(!Array.isArray(r))continue;let n=[...r];Reflect.set(e,t,n),Ee.add(n)}return e}function Dn(e,t){return Ee.has(e)||t!==void 0&&it.get(e)?.has(t)===!0}function Nn(e,t){let r=new Set(t);it.set(e,r);for(let n of r){let o=Reflect.get(e,n);if(!Array.isArray(o))continue;let i=[...o];Reflect.set(e,n,i),Ee.add(i)}return e}function nr(e,t){if(st(e)&&rr(t),Dn(e))return re(t);let r=it.get(e);return r?Nn(t,r):t}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b2ae2a38-678e-5f49-9f86-6e1ea4210b34")}catch{}})();var M="-",ir=new Set(["actual_result","body","cmd","command","customer_impact","description","environment","expected_result","impact","location","message","note","outcome","repro_steps","resolution","text","title","unblock_note","value","why_now"]);function sr(e,t){if(e.startsWith("```")||e.includes(`
2
+ `))return!0;let r=t.map(n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|");return new RegExp(`^(?:[-*+]\\s+)?(?:${r})\\s*[:=]`,"i").test(e)}function ar(e){let t=e.trim();if(t==="")return[];let r=(Un(t)??t.split(",")).map(n=>n.trim()).filter(Boolean).map(n=>n.toLowerCase());return Array.from(new Set(r)).sort((n,o)=>n.localeCompare(o))}function cr(e){if(!Array.isArray(e)||e.length===0)return[];let t=[];for(let r of e)if(typeof r=="string")for(let n of ar(r))t.push(n);return Array.from(new Set(t)).sort((r,n)=>r.localeCompare(n))}function dr(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim().toLowerCase()).filter(Boolean):[]}function Pn(e){return typeof e!="string"?[]:e.split(";").map(t=>t.trim()).filter(Boolean)}function $n(e,t,r){let n=e.map(s=>s.trim()).filter(Boolean);for(let s of t??[]){let a=s.trim();if(a.includes(";"))throw new m('Acceptance criteria added with --add-ac cannot contain ";" because semicolons delimit stored criteria',u.USAGE,{code:"acceptance_criteria_semicolon_forbidden",required:"Pass one semicolon-free criterion per --add-ac value",why:"A semicolon inside one criterion would be re-read as multiple criteria",nextSteps:["Split the text into repeated --add-ac values, or replace the semicolon with punctuation that is not the storage delimiter"]});a.length>0&&!n.includes(a)&&n.push(a)}let o=[],i=n;for(let s of r??[]){let a=s.trim();if(a.length!==0){if(!i.includes(a)){o.push(a);continue}i=i.filter(c=>c!==a)}}return{criteria:i,unmatchedRemovals:o}}function zn(e,t){let r=dr(e);if(!t||t.length===0)return Array.from(new Set(r)).sort((o,i)=>o.localeCompare(i));let n=new Set(r);for(let o of cr(t))n.add(o);return Array.from(n).sort((o,i)=>o.localeCompare(i))}function Fn(e,t){let r=Array.from(new Set(dr(e))).sort((o,i)=>o.localeCompare(i));if(!t||t.length===0)return r;let n=new Set(cr(t));return n.size===0?r:r.filter(o=>!n.has(o))}function Un(e){if(!e.startsWith("["))return null;let t;try{t=JSON.parse(e)}catch{return null}return t.map(r=>typeof r=="string"||typeof r=="number"||typeof r=="boolean"?String(r):"").filter(r=>r.length>0)}function at(e){return e.replace(/\r\n/g,`
3
+ `)}function lr(e){let t=at(e).trim();if(!t.startsWith("```"))return e;let r=t.split(`
4
+ `);return r.length<2||r.at(-1)?.trim()!=="```"?e:r.slice(1,-1).join(`
5
+ `)}function Vn(e){let t=[],r="",n=!1;for(let o=0;o<e.length;o+=1){let i=e[o];if(i==="\\"&&e[o+1]===","){r+=",",o+=1;continue}if(i==="\\"&&e[o+1]!==void 0){r+=`${i}${e[o+1]}`,o+=1;continue}if(i==='"'){n=!n,r+=i;continue}if(i===","&&!n){t.push(r),r="";continue}r+=i}return r.trim()&&t.push(r),t}function ur(e){let t=e.trim();if(t.startsWith('"')&&t.endsWith('"')){try{let r=JSON.parse(t);if(typeof r=="string")return r}catch{}return t.slice(1,-1).replace(/\\"/g,'"')}return e}function jn(e){let t=e.indexOf("="),r=e.indexOf(":"),n=t>=0,o=r>=0;return n&&o?Math.min(t,r):n?t:o?r:-1}function qn(e,t){if((t==="--add"||t==="--add-glob")&&(/[./\\]/.test(e)||/\.[a-z]{1,6}$/i.test(e.trim())))return"For file/doc paths use: path=<file-path>[,scope=project|global]. The scope field is optional and defaults to project (example: path=src/api.ts or path=README.md,scope=project). ";if(t!=="--event")return"";let r=e.toLowerCase(),n=r.includes("recur_")||r.includes("recurrence")?' Recurrence list values must stay in one field and use "|" delimiters (for example recur_by_weekday=mon|wed or recur_by_month_day=1|15).':"",o=r.includes("recur_byweekday")?" Use recur_by_weekday (with underscores) for weekday recurrence filters.":"";return`${n}${o}`}function or(e,t){let r=e.replaceAll(/\s+/g," ").trim(),n=r.length>160?`${r.slice(0,157)}...`:r,o=qn(e,t);return`Invalid ${t} value "${n}". Expected key=value entries separated by commas. `+o+`Also accepts markdown-style key/value lines (for example "- path: README.md"). Use ${t} ${M} to read piped stdin input.`}function Hn(e){let t=lr(e).trim();if(t.length===0||!t.includes(`
6
+ `)&&!t.startsWith("-")&&!t.startsWith("*")&&!t.startsWith("+"))return null;let r={},n,o=at(t).split(`
7
+ `).map(i=>i.trim()).filter(i=>i.length>0);for(let i of o){let s=i.match(/^(?:[-*+]\s+)?([a-zA-Z0-9_.-]+)\s*(=|:)\s*(.*)$/);if(s){let a=s[1].trim();r[a]=ur(s[3].trim()),n=a;continue}if(n&&ir.has(n.toLowerCase())){r[n]=`${r[n]}
8
+ ${i}`;continue}return null}return r}function mr(e,t){let r=lr(e).trim();if(!r)throw new m(`${t} cannot be empty`,u.USAGE);let n=Hn(r);if(n)return n;let o={},i,s=Vn(r);for(let a of s){let c=jn(a);if(c>=0){let d=a.slice(0,c).trim();if(!d)throw new m(or(e,t),u.USAGE);let l=ur(a.slice(c+1).trim());o[d]=l,i=d;continue}if(i&&ir.has(i.toLowerCase())){o[i]=`${o[i]},${a}`;continue}throw new m(or(e,t),u.USAGE)}return o}var Yn=/^[A-Za-z]:[\\/]/,Bn=/^(?:[-*+]\s+)?[A-Za-z_][A-Za-z0-9_.-]*\s*=/;function Wn(e){let t=e.trim();return Yn.test(t)?!1:Bn.test(t)}function nc(e,t,r,n){if(!(n||!e.includes(",")))throw new m(`${t} received an ambiguous comma-bearing bare ${r}. Repeat ${t} for multiple values, or quote or escape literal commas in a structured key=<value> entry.`,u.USAGE,{code:"bare_comma_entry_ambiguous",required:`Use one ${t} per bare ${r}, or quote or escape literal commas in a structured key=<value> entry.`})}function Gn(e,t,r){let n=new Set(r.map(i=>i.toLowerCase())),o=Object.keys(e).filter(i=>!n.has(i.toLowerCase()));if(o.length>0)throw new m(`${t} does not recognize key${o.length>1?"s":""} ${o.map(i=>`"${i}"`).join(", ")}. Allowed keys: ${r.join(", ")}.`,u.USAGE);for(let i of Object.keys(e)){let s=i.toLowerCase();if(s!==i){if(Object.hasOwn(e,s))throw new m(`${t} provides key "${i}" more than once after case normalization.`,u.USAGE);e[s]=e[i],delete e[i]}}}async function Kn(e){if(process.stdin.isTTY===!0)throw new m(`${e} value "${M}" requires piped stdin input. Pipe content into the command, or end manual stdin with Ctrl+D (Unix/macOS) or Ctrl+Z then Enter (Windows).`,u.USAGE);return process.stdin.setEncoding("utf8"),await new Promise((t,r)=>{let n="";process.stdin.on("data",o=>{n+=o}),process.stdin.on("end",()=>{t(at(n))}),process.stdin.on("error",o=>{r(o)})})}var P=Symbol("all-mutation-stdin-fields"),I=new WeakMap;function oc(e){return st(e)?e:re(ne({...e}))}function ne(e){return I.set(e,P),e}function Xn(e,t){let r=I.get(e);return r===P||I.set(e,new Set([...r??[],...t])),e}function be(e,t){nr(e,t);let r=I.get(e);return r===void 0||I.set(t,r===P?r:new Set(r)),t}function ic(e,t){let r=I.get(e),n=I.get(t);return r===void 0||n===P?t:r===P?(I.set(t,r),t):(I.set(t,new Set([...n??[],...r])),t)}function Jn(e){return I.get(e)!==P}function we(e,t){let r=I.get(e);return r!==P&&!r?.has(t)}function Qn(e){let t;for(let r of e){if(r.resolveToken===!1||r.value===void 0)continue;let n=(Array.isArray(r.value)?r.value:[r.value]).filter(o=>o.trim()===M).length;if(n>1)throw new m(`${r.optionName} accepts "${M}" stdin token at most once per command invocation`,u.USAGE);if(n!==0){if(t!==void 0&&t!==r.optionName)throw new m(`Only one option may use "${M}" stdin token per command invocation. Already used by ${t}.`,u.USAGE);t=r.optionName}}}async function sc(e,t,r){let n=e,o=[...t,...r];Qn(o.map(([a,c])=>({value:n[a],optionName:c,resolveToken:we(e,a)})));let i=Se(),s={...n};for(let[a,c]of t)s[a]=await i.resolveValue(n[a],c,we(e,a));for(let[a,c]of r)s[a]=await i.resolveList(n[a],c,we(e,a));return ne(be(e,s))}function Se(){let e,t,r=async n=>{if(t&&t!==n)throw new m(`Only one option may use "${M}" stdin token per command invocation. Already used by ${t}.`,u.USAGE);return t=n,e||(e=Kn(n)),await e};return{resolveValue:async(n,o,i=!0)=>{if(!i)return n;if(n!==void 0)return n.trim()!==M?n:await r(o)},resolveList:async(n,o,i=!0)=>{if(!i)return n;if(!n)return;let s=n.map((d,l)=>d.trim()===M?l:-1).filter(d=>d>=0);if(s.length===0)return n;if(s.length>1)throw new m(`${o} accepts "${M}" stdin token at most once per command invocation`,u.USAGE);let a=await r(o),c=[...n];return c[s[0]]=a,c}}}function Zn(e,t){let r=Number(e);if(!Number.isFinite(r))throw new m(`Invalid ${t} value "${e}"`,u.USAGE);return r}function eo(e,t){let r=e.trim(),n=Number(r);if(r===""||!Number.isInteger(n)||n<0)throw new m(`Invalid ${t} value "${e}". Expected a non-negative integer.`,u.USAGE);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]="b84fee06-5bbd-57f9-9643-f283d6c87afa")}catch{}})();function to(e,t="--limit"){if(e===void 0)return;let r=Number(e);if(!Number.isFinite(r)||r<0)throw new m(`${t} must be a non-negative number`,u.USAGE);return Math.floor(r)}(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]="9b58b44d-819c-5115-b011-f9dfa8e2ab41")}catch{}})();var ro=3e4,oe=class extends Error{status;constructor(t,r){super(t),this.name="SearchHttpError",this.status=r}};function $(e,t,r=ro){let n=e??r;if(!Number.isFinite(n)||n<=0)throw new Error(`${t} timeout must be a positive finite number`);return Math.floor(n)}function z(e,t){if(e)return e;if(typeof globalThis.fetch=="function")return globalThis.fetch.bind(globalThis);throw new Error(`${t} execution requires a fetch implementation`)}async function no(e){try{return(await e.text()).replaceAll(/\s+/g," ").trim()}catch(t){return`(failed to read response body: ${b(t)})`}}async function Te(e){let t=new AbortController,r=setTimeout(()=>{t.abort()},e.timeoutMs);try{let n;try{n=await e.fetcher(e.endpoint,{method:e.method,headers:e.headers,body:JSON.stringify(e.body),signal:t.signal})}catch(o){throw o instanceof Error&&o.name==="AbortError"?new Error(`${e.requestLabel} timed out after ${e.timeoutMs}ms`):new Error(`${e.requestLabel} execution failed: ${b(o)}`)}if(!n.ok){let o=await no(n),i=o.length>0?`: ${o}`:"";throw new oe(`${e.requestLabel} failed with status ${n.status} ${n.statusText}${i}`,n.status)}try{return await n.json()}catch(o){throw new Error(`${e.responseLabel} JSON parse failed: ${b(o)}`)}}finally{clearTimeout(r)}}(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]="8e3bb919-c8f9-50b5-8e41-b6719d17bd21")}catch{}})();function _c(e,t){let r=E(e);if(!r)return"unconfigured";let n=E(t);return n&&n.toLowerCase()===r.toLowerCase()?"configured":"auto-detected"}function oo(e){let t=Z(e),r=t.toLowerCase();return r.endsWith("/embeddings")?t:r.endsWith("/v1")?`${t}/embeddings`:`${t}/v1/embeddings`}function pr(e){let t=e.search?.embedding_model;return E(t)||null}function io(e){let t=E(e.providers?.openai?.base_url),r=E(e.providers?.openai?.model);if(!t||!r)return null;let n=pr(e),o=E(e.providers?.openai?.api_key);return{name:"openai",base_url:t,model:n??r,...o?{api_key:o}:{}}}function so(e){let t=E(e.providers?.ollama?.base_url),r=E(e.providers?.ollama?.model);if(!t||!r)return null;let n=pr(e);return{name:"ollama",base_url:t,model:n??r}}function _r(e){let t=(Array.isArray(e)?e:[e]).map(r=>r.trim()).filter(r=>r.length>0);if(t.length===0)throw new Error("Embedding input must include at least one non-empty string");return t}function ao(e){let t=[],r=[],n=new Map;for(let o of e){let i=n.get(o);if(i===void 0){let s=t.length;t.push(o),n.set(o,s),r.push(s);continue}r.push(i)}return{uniqueInputs:t,originalToUniqueIndex:r}}function co(e){let t=e.map((r,n)=>({embedding:r.embedding,index:r.index,position:n}));if(t.some(r=>r.index!==void 0)){for(let r of t)if(!Number.isInteger(r.index))throw new TypeError(`OpenAI embedding response entry at position ${r.position} is missing a valid integer index`);return[...t].sort((r,n)=>{let o=r.index-n.index;return o!==0?o:r.position-n.position})}return t}function ct(e){let t=io(e),r=so(e),n=[t,r].filter(s=>s!==null),o=E(e.search?.provider),i=o?o.toLowerCase():null;return{active:(i?n.find(s=>s.name===i):void 0)??n[0]??null,available:n}}function fr(e){let t=Z(e.base_url);return e.name==="openai"?{provider:"openai",endpoint:oo(t),model:e.model}:{provider:"ollama",endpoint:`${t}/api/embed`,model:e.model}}function lo(e,t){let r=_r(t);return e.name==="openai"?{target:fr(e),method:"POST",headers:{"content-type":"application/json",...e.api_key?{authorization:`Bearer ${e.api_key}`}:{}},body:{model:e.model,input:r.length===1?r[0]:r}}:{target:fr(e),method:"POST",headers:{"content-type":"application/json"},body:{model:e.model,input:r}}}function uo(e,t){if(e.name==="openai"){let o=t.data;if(!Array.isArray(o)||o.length===0)throw new Error("OpenAI embedding response must include a non-empty data array");return co(o).map((i,s)=>{let a=i.embedding;if(!K(a))throw new Error(`OpenAI embedding response entry at index ${s} is missing a numeric embedding vector`);return[...a]})}let r=t.embedding;if(K(r))return[[...r]];let n=t.embeddings;if(Array.isArray(n)&&n.length>0)return n.map((o,i)=>{if(!K(o))throw new Error(`Ollama embedding response entry at index ${i} is missing a numeric embedding vector`);return[...o]});throw new Error("Ollama embedding response must include embedding or embeddings vectors")}async function hr(e,t,r={}){let n=$(r.timeout_ms,"Embedding request"),o=z(r.fetcher,"Embedding request"),i=_r(t),s=ao(i),a=lo(e,s.uniqueInputs),c=await Te({endpoint:a.target.endpoint,method:a.method,headers:a.headers,body:a.body,timeoutMs:n,fetcher:o,requestLabel:"Embedding request",responseLabel:"Embedding response"}),d=uo(e,c);if(d.length!==s.uniqueInputs.length)throw new Error(`Embedding response cardinality mismatch: expected ${s.uniqueInputs.length} vector(s), received ${d.length}`);return s.originalToUniqueIndex.map(l=>[...d[l]])}(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]="5c86afdf-6d8d-5851-82c1-ae5bcc9f0196")}catch{}})();var ve=["title","description","tags","status","type","priority","assignee","parent","goal","value","why_now","risk","confidence","estimated_minutes","acceptance_criteria","resolution","expected_result","actual_result","body","comments","notes","learnings","reminders","events","dependencies","plan"];function dt(e){let t=e?.search?.corpus_fields;if(!Array.isArray(t))return[...ve];let r=new Set(ve),n=Array.from(new Set(t.filter(o=>typeof o=="string").map(o=>o.trim()).filter(o=>o.length>0&&r.has(o))));return n.length>0?n:[...ve]}var mo=8e3,fo=3200,F="...[semantic corpus truncated]",po="search_embedding_corpus_max_characters_invalid:using_provider_default";function x(e){return e.map(t=>t==null?"":String(t).trim()).filter(t=>t.length>0).join(" ")}function _o(e){return(e.reminders??[]).map(t=>x([t.at,t.text]))}function ho(e){return(e.events??[]).map(t=>x([t.start_at,t.end_at,t.title,t.description,t.location,t.all_day===!0?"all day":void 0,t.timezone,t.recurrence?.freq,t.recurrence?.interval,t.recurrence?.count,t.recurrence?.until,t.recurrence?.by_weekday?.join(" "),t.recurrence?.by_month_day?.join(" "),t.recurrence?.exdates?.join(" ")]))}function go(e,t){e.push(t.title,t.body,t.status,t.owner,t.evidence,t.blocked_reason,t.superseded_by);for(let r of t.linked_items??[])e.push(`${r.kind} ${r.id}`,r.note);for(let r of t.files??[])e.push(r.path,r.note);for(let r of t.tests??[])e.push(r.command,r.path,r.note);for(let r of t.docs??[])e.push(r.path,r.note)}function yo(e,t){for(let r of t.plan_decisions??[])e.push(r.decision,r.rationale,r.evidence);for(let r of t.plan_discoveries??[])e.push(r.text);for(let r of t.plan_validation??[])e.push(r.text,r.command,r.expected)}function yc(e){let t=[];t.push(e.plan_mode,e.plan_scope,e.plan_harness,e.plan_resume_context);for(let r of e.plan_steps??[])go(t,r);return yo(t,e),t.filter(r=>typeof r=="string"&&r.length>0).join(" ")}function Eo(e){let t=(e.plan_steps??[]).map(i=>x([i.order,i.id,i.title,i.body,i.status,i.owner,i.evidence,i.blocked_reason,i.superseded_by,(i.linked_items??[]).map(s=>x([s.kind,s.id,s.note])).join(" "),(i.files??[]).map(s=>x([s.path,s.note])).join(" "),(i.tests??[]).map(s=>x([s.command,s.path,s.note])).join(" "),(i.docs??[]).map(s=>x([s.path,s.note])).join(" ")])),r=(e.plan_decisions??[]).map(i=>x([i.decision,i.rationale,i.evidence,i.step_id])),n=(e.plan_discoveries??[]).map(i=>x([i.text,i.step_id])),o=(e.plan_validation??[]).map(i=>x([i.text,i.command,i.expected]));if([e.plan_mode,e.plan_scope,e.plan_harness,e.plan_resume_context,...t,...r,...n,...o].some(i=>i!==void 0))return{mode:e.plan_mode,scope:e.plan_scope,harness:e.plan_harness,resume_context:e.plan_resume_context,steps:t,decisions:r,discoveries:n,validation:o}}function C(e){return typeof e=="string"&&e.trim().length>0}var wo={title:e=>e.metadata.title,description:e=>e.metadata.description,tags:e=>e.metadata.tags,status:e=>e.metadata.status,type:e=>e.metadata.type,priority:e=>typeof e.metadata.priority=="number"?e.metadata.priority:void 0,assignee:e=>C(e.metadata.assignee)?e.metadata.assignee:void 0,parent:e=>C(e.metadata.parent)?e.metadata.parent:void 0,goal:e=>C(e.metadata.goal)?e.metadata.goal:void 0,value:e=>C(e.metadata.value)?e.metadata.value:void 0,why_now:e=>C(e.metadata.why_now)?e.metadata.why_now:void 0,risk:e=>C(e.metadata.risk)?e.metadata.risk:void 0,confidence:e=>e.metadata.confidence!==void 0&&e.metadata.confidence!==null?e.metadata.confidence:void 0,estimated_minutes:e=>typeof e.metadata.estimated_minutes=="number"?e.metadata.estimated_minutes:void 0,acceptance_criteria:e=>C(e.metadata.acceptance_criteria)?e.metadata.acceptance_criteria:void 0,resolution:e=>C(e.metadata.resolution)?e.metadata.resolution:void 0,expected_result:e=>C(e.metadata.expected_result)?e.metadata.expected_result:void 0,actual_result:e=>C(e.metadata.actual_result)?e.metadata.actual_result:void 0,body:e=>e.body,comments:e=>(e.metadata.comments??[]).map(t=>t.text),notes:e=>(e.metadata.notes??[]).map(t=>t.text),learnings:e=>(e.metadata.learnings??[]).map(t=>t.text),reminders:e=>_o(e.metadata),events:e=>ho(e.metadata),dependencies:e=>(e.metadata.dependencies??[]).map(t=>({id:t.id,kind:t.kind})),plan:e=>Eo(e.metadata)};function gr(e,t={}){let r=t.fields??ve,n={};for(let o of r){let i=wo[o];if(!i)continue;let s=i(e);s!==void 0&&(n[o]=s)}return n}function bo(e){return e?.trim().toLowerCase()==="ollama"?fo:mo}function X(e,t){let r=bo(e),n=Ht(t);return n!==null?{maxCharacters:n,warning:null}:{maxCharacters:r,warning:t==null?null:po}}function lt(e,t={}){let r=JSON.stringify(gr(e,{fields:t.fields})),n=X(t.providerName,t.maxCharacters).maxCharacters;if(r.length<=n)return r;if(n<=F.length)return F.slice(0,n);let o=Math.max(0,n-F.length);return`${r.slice(0,o)}${F}`}(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]="67bae1a1-19d1-50ea-816f-4b68e6bb69d9")}catch{}})();function So(e,t,r){let n=e.search.embedding_batch_size,o=e.search.embedding_timeout_ms,i=e.search.scanner_max_batch_retries,s=Number.isFinite(n)&&n>0?Math.max(1,Math.floor(n)):1,a=Number.isFinite(o)&&o>0?Math.max(1,Math.floor(o)):3e4,c=Number.isFinite(i)&&i>=0?Math.floor(i):0;return{batchSize:s,timeoutMs:a,maxRetries:c,maxRequestBytes:r,maxInputCharacters:t}}function To(e,t,r,n){let o=[],i=[],s=Buffer.byteLength(JSON.stringify({model:e.model,input:[]})),a=s;for(let c of t){let d=Buffer.byteLength(JSON.stringify(c.trim()));if(s+d>n)throw new RangeError(`Embedding input exceeds request byte ceiling ${n}; lower search.embedding_corpus_max_characters or raise maxRequestBytes`);let l=i.length>0?1:0;(i.length>=r||a+l+d>n)&&(o.push(i),i=[],a=s),a+=d+(i.length>0?1:0),i.push(c)}return o.push(i),o}function vo(e,t){if(!Number.isFinite(t)||t<=0||e.length<=t)return e;let r=Math.max(0,t-F.length);return`${e.slice(0,r)}${F}`.slice(0,t)}function yr(e){let t=b(e).toLowerCase();return t.includes("timed out")||t.includes("timeout")}function Io(e,t,r,n,o,i){let s=`Embedding batch ${t} failed after ${o} attempt(s): ${b(i)}`,a=`provider=${e.name} model=${e.model} batch_size=${r} timeout_ms=${n}`;return yr(i)?`${s} (${a}; guidance=check provider availability or lower search.embedding_batch_size, raise search.embedding_timeout_ms, or run keyword search while semantic indexing catches up)`:`${s} (${a})`}function Ao(e){return e instanceof oe?e.status===413?"payload_too_large":null:yr(e)?"timeout":null}async function ut(e,t,r,n,o,i,s){let a=null;for(let c=0;c<=o;c+=1)try{s.requests+=1;let d=await hr(e,t,{timeout_ms:n});return c>0&&i.push(`search_embedding_batch_retry_succeeded:batch=${r}:attempt=${c+1}:size=${t.length}`),s.successful_batches+=1,s.batch_size_histogram[t.length]=(s.batch_size_histogram[t.length]??0)+1,d}catch(d){a=d;let l=Ao(d);if(l!==null&&t.length>1){s.split_batches+=1;let p=Math.ceil(t.length/2),_=t.slice(0,p),f=t.slice(p);return i.push(`search_embedding_batch_split_after_${l}:batch=${r}:size=${t.length}:parts=${_.length}|${f.length}`),[...await ut(e,_,`${r}.1`,n,o,i,s),...await ut(e,f,`${r}.2`,n,o,i,s)]}if(c<o){s.retries+=1;let p=Math.min(1e3*2**c,8e3);await new Promise(_=>setTimeout(_,p))}}throw new Error(Io(e,r,t.length,n,o+1,a))}async function mt(e,t,r,n={}){if(r.length===0)return{vectors:[],warnings:[]};let o=performance.now(),i=n.maxRequestBytes??262144;if(!Number.isSafeInteger(i)||i<=0)throw new RangeError("maxRequestBytes must be a positive safe integer");let s={provider:e.name,model:e.model,max_request_bytes:i,limit_source:n.maxRequestBytes===void 0?"default":"caller",planned_batches:0,requests:0,successful_batches:0,split_batches:0,retries:0,batch_size_histogram:{},elapsed_ms:0,inputs_per_second:0},a=[],c=X(e.name,t.search.embedding_corpus_max_characters);c.warning&&a.push(c.warning);let d=So(t,c.maxCharacters,i),l=0,p=r.map(h=>{if(h.trim().length===0)throw new TypeError("Embedding inputs must be non-empty strings");let y=vo(h,d.maxInputCharacters);return y.length<h.length&&(l+=1),y});l>0&&a.push(`search_embedding_input_truncated:count=${l}:max_characters=${d.maxInputCharacters}`);let _=To(e,p,d.batchSize,d.maxRequestBytes);s.planned_batches=_.length;let f=[],g=0;for(let h=0;h<_.length;h+=1){let y=_[h];n.onProgress?.({batch_index:h+1,batch_total:_.length,batch_size:y.length,completed_inputs:g,total_inputs:p.length,phase:"start"}),f.push(...await ut(e,y,String(h+1),d.timeoutMs,d.maxRetries,a,s)),g+=y.length,n.onProgress?.({batch_index:h+1,batch_total:_.length,batch_size:y.length,completed_inputs:g,total_inputs:p.length,phase:"complete"})}return s.elapsed_ms=Math.max(1,performance.now()-o),s.inputs_per_second=r.length*1e3/s.elapsed_ms,{vectors:f,warnings:a,receipt:s}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="88eb8555-e098-5279-801e-3b76d0dd0eae")}catch{}})();var U=`[^\\s/\\\\<>"'\\x60()\\[\\]{},;?=:#*]+`,S="[/\\\\]+",Co="[\\p{L}\\p{N}._@-]+",V=Co+"(?:"+S+U+")*",Ie="(?:(?:home|users)"+S+V+"|root"+S+V+")",xo="[/\\\\]"+Ie,ko="[/\\\\]{2,}"+Ie,Ro="/?[a-z]:"+S+"users"+S+V,Lo=U+"(?: +"+U+")*",ft="(?:"+Lo+S+")?users"+S+V,Mo="[/\\\\]{2,}"+U+S+ft,Oo="(?:[a-z]:|volume\\{[a-f0-9-]+\\}|"+U+")",wr="[/\\\\]{2}[?.]"+S+"(?:unc"+S+U+S+ft+"|"+Oo+S+"users"+S+V+")",Do="file:(?:"+wr+"|(?:[/\\\\](?![/\\\\])|[/\\\\]{3,}|[/\\\\]{2}localhost"+S+")(?:"+Ie+"|[a-z]:"+S+"users"+S+V+")|[/\\\\]{2}(?:[a-z]:"+S+"users"+S+V+"|"+U+S+"(?:"+Ie+"|"+ft+")))",No=new RegExp("(?:^|[^\\p{L}\\p{N}_./\\\\~])(?:"+xo+"|"+Ro+"|"+Do+")|(?:^|[^\\p{L}\\p{N}_:./\\\\~])(?:"+ko+"|"+Mo+"|"+wr+")","giu"),Er=4,Po=/%[a-f0-9]{2}|\\(?:u[a-f0-9]{4}|x[a-f0-9]{2}|\/)/iu,$o=new TextDecoder("utf-8");function zo(e){return e.replace(/(?:%[a-f0-9]{2})+/giu,t=>$o.decode(Uint8Array.from(t.matchAll(/%([a-f0-9]{2})/giu),r=>Number.parseInt(r[1],16)))).replace(/%(?![a-f0-9]{2})[a-z0-9]{0,2}/giu,"\uFFFD")}function Fo(e){return e.replace(/\\+(?:u([a-f0-9]{4})|x([a-f0-9]{2})|(\/))?/giu,(t,r,n,o)=>{let i=r??n;return i===void 0?o??t:String.fromCharCode(Number.parseInt(i,16))})}function Uo(e){return e.normalize("NFKC").replace(/[\p{Bidi_Control}\u200b-\u200f\u2060-\u206f\ufeff]/gu,"").replace(/[\u2215\u2044]/gu,"/").replace(/[\u043e\u041e]/gu,"o").replace(/[\u0455\u0405]/gu,"s")}function Vo(e,t){for(let[r,n]of[["percent_decode",zo],["json_unescape",Fo],["unicode_fold",Uo]]){let o=n(e);o!==e&&!t.includes(r)&&t.push(r),e=o}return e}function*jo(e,t,r){let n=e,o=[];for(let i=0;i<Er;i+=1){let s=n;if(n=Vo(n,o),!r){t.lastIndex=0;for(let a of n.matchAll(t))r=!0,yield{index:0,normalizations:[...o]}}if(n===s)break;i===Er-1&&Po.test(n)&&(yield{index:0,normalizations:[...o],normalization_incomplete:!0})}}function*qo(e,t){let r=0;for(let n of e.split(`
9
+ `)){t.lastIndex=0;let o=!1;for(let i of n.matchAll(t))o=!0,yield{index:r+i.index};for(let i of jo(n,t,o))yield{...i,index:r};r+=n.length+1}}var br=[{name:"private-key",mutationRule:"private_key",regex:/-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----/g},{name:"github-token",mutationRule:"github_token",regex:/\b(?:gh[opsru]_[A-Za-z0-9]{20,}|github_pat_[A-Za-z0-9_]{20,})\b/g},{name:"npm-token",mutationRule:"npm_token",regex:/\bnpm_[A-Za-z0-9]{20,}\b/g},{name:"aws-access-key",mutationRule:"aws_access_key",regex:/\b(?:AKIA|ASIA)[0-9A-Z]{16}\b/g},{name:"google-api-key",mutationRule:"google_api_key",regex:/\bAIza[0-9A-Za-z_-]{35}\b/g},{name:"slack-token",mutationRule:"slack_token",regex:/\bxox[baprs]-[A-Za-z0-9-]{10,}\b/g},{name:"anthropic-api-key",mutationRule:"anthropic_api_key",regex:/\bsk-ant-[A-Za-z0-9_-]{20,}\b/g},{name:"openai-api-key",mutationRule:"openai_api_key",regex:/\bsk-(?!ant-)[A-Za-z0-9_-]{20,}\b/g},{name:"gitlab-token",mutationRule:"gitlab_token",regex:/\bglpat-[A-Za-z0-9_.-]{20,}\b/g},{name:"jwt-like-token",mutationRule:"jwt_like_token",regex:/\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\b/g},{name:"npm-auth-token-assignment",mutationRule:"npm_auth_token_assignment",regex:/_authToken\s*=\s*\S+/g},{name:"sentry-user-token",mutationRule:"sentry_user_token",regex:/\bsntryu_[A-Za-z0-9]{20,}\b/g},{name:"sentry-org-token",mutationRule:"sentry_org_token",regex:/\bsntrys_[A-Za-z0-9_-]{20,}\b/g},{name:"private-ip",mutationRule:"private_ip",regex:/\b(?:10\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d))\b/g},{name:"private-ssh-target",mutationRule:"private_ssh_target",regex:/\b(?:ssh|scp|rsync)\s+[A-Za-z0-9._-]+@(?:10\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d))\b/g},{name:"sshpass-inline-password",mutationRule:"sshpass_inline_password",regex:/\bsshpass\s+-p\s+["'][^"']{6,}["']/g},{name:"password-assignment",mutationRule:"password_assignment",regex:/\b(?:password|passphrase)\s*[:=]\s*(?:(?!<|\$\{|\$\(|config\.auth\.password\s*(?:\|\|\s*(?:''|"")|\?\s*unescape\(encodeURIComponent\(config\.auth\.password\)\)\s*:\s*(?:''|""))(?=[ \t]*(?:\/\*(?:[^*]|\*(?!\/))*\*\/[ \t]*)*(?:;|$|\/\/[^\r\n\u2028\u2029]*(?:\r\n)?$)))[A-Za-z0-9!@#$%^&*._+\-=]{8,}|"(?!<|\$\{|\$\()[^"]{8,}"|'(?!<|\$\{|\$\()[^']{8,}')/gi},{name:"absolute-home-path",mutationRule:"absolute_home_path",regex:No,excludeFiles:/^(?:tests\/|examples\/)/},{name:"user-at-private-host",mutationRule:"user_at_private_host",regex:/\b[A-Za-z0-9._-]+@(?:10\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d))\b/g,excludeFiles:/^(?:tests\/|examples\/)/},{name:"high-entropy-assignment",mutationRule:"high_entropy_assignment",regex:/\b(?:token|secret|password|passwd|api[_-]?key)\s*[:=]\s*["']?([A-Za-z0-9+/=_-]{24,})/gi,mutationOnlyReason:"Generic assignments in source code are not credentials; preserve the existing mutation heuristic without treating source identifiers as secrets.",minimumEntropy:3.5}];function*Sr(e,t){if(e.mutationRule==="absolute_home_path"){yield*qo(t,e.regex);return}e.regex.lastIndex=0;for(let r of t.matchAll(e.regex))Ho(e,r)&&(yield{index:r.index})}function Ho(e,t){if(e.minimumEntropy===void 0)return!0;let r=t[1],n=new Map;for(let i of r)n.set(i,(n.get(i)??0)+1);let o=0;for(let i of n.values()){let s=i/r.length;o-=s*Math.log2(s)}return o>=e.minimumEntropy}(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]="d6059407-bf03-5ae8-8b01-e3e7c5b28030")}catch{}})();var Yo=[{action:"append",history_scope:"item"},{action:"claim",history_scope:"item"},{action:"close",history_scope:"item"},{action:"close-many",history_scope:"item"},{action:"close-task",history_scope:"item"},{action:"comments",history_scope:"conditional"},{action:"config",history_scope:"conditional"},{action:"copy",history_scope:"item"},{action:"create",history_scope:"item"},{action:"delete",history_scope:"item"},{action:"deps",history_scope:"conditional"},{action:"discover",history_scope:"item"},{action:"docs",history_scope:"conditional"},{action:"files",history_scope:"conditional"},{action:"focus",history_scope:"conditional"},{action:"gc",history_scope:"conditional"},{action:"history-compact",history_scope:"history"},{action:"history-author-acknowledge",history_scope:"workspace"},{action:"history-redact",history_scope:"history"},{action:"history-repair",history_scope:"history"},{action:"init",history_scope:"workspace"},{action:"install",history_scope:"conditional"},{action:"learnings",history_scope:"conditional"},{action:"notes",history_scope:"conditional"},{action:"package",history_scope:"conditional"},{action:"pause-task",history_scope:"item"},{action:"plan",history_scope:"conditional"},{action:"profile",history_scope:"conditional"},{action:"release",history_scope:"item"},{action:"restore",history_scope:"item"},{action:"schema",history_scope:"conditional"},{action:"start-task",history_scope:"item"},{action:"templates",history_scope:"conditional"},{action:"test",history_scope:"conditional"},{action:"test-all",history_scope:"conditional"},{action:"update",history_scope:"item"},{action:"update-many",history_scope:"item"},{action:"upgrade",history_scope:"conditional"}],_t=new Map(Yo.map(e=>[e.action,e]));function pt(e,t="$",r=new WeakSet){return typeof e=="string"?[{path:t,value:e}]:typeof e!="object"||e===null?[]:r.has(e)?[]:(r.add(e),Array.isArray(e)?e.flatMap((n,o)=>pt(n,`${t}[${o}]`,r)):Object.entries(e).flatMap(([n,o])=>pt(o,`${t}.${n}`,r)))}function Bo(e,t){let r=Sr(e,t),n=r.next().value;if(!n||e.mutationRule!=="absolute_home_path"||n.normalization_incomplete)return n;for(let o of r)if(o.normalization_incomplete)return{...n,normalizations:[...new Set([n.normalizations,o.normalizations].flatMap(i=>i??[]))],normalization_incomplete:!0};return n}function Tr(e){let t=[];for(let r of pt(e))for(let n of br){let o=Bo(n,r.value);if(o){let i={rule:n.mutationRule,path:r.path};o.normalizations&&(i.normalizations=o.normalizations),o.normalization_incomplete&&(i.normalization_incomplete=!0),t.push(i)}}return t.filter((r,n,o)=>o.findIndex(i=>i.rule===r.rule&&i.path===r.path)===n)}function Wo(e){let t=e.author.trim()||"unknown";if(e.settings.require_attributed_author&&t.toLowerCase()==="unknown")throw new m("Mutation author is required by workspace policy.",u.USAGE,{code:"mutation_author_required",required:"Pass --author <id>, set PM_AUTHOR, or configure author_default.",nextSteps:["Retry with --author <stable-agent-id>.","Set PM_AUTHOR for this agent session."]});if(e.settings.secret_guard==="off")return{author:t,findings:[],warnings:[],override_applied:!1};let r;try{r=Tr(e.payload)}catch{return{author:t,findings:[],warnings:["secret_guard_scan_failed_open"],override_applied:!1}}if(r.length===0)return{author:t,findings:r,warnings:[],override_applied:!1};let n=[...new Set(r.map(o=>o.rule))].sort().join(",");if(e.settings.secret_guard==="block"&&e.force!==!0)throw new m(`Mutation blocked by secret guard (${n}). No detected value was logged.`,u.CONFLICT,{code:"mutation_secret_guard_blocked",required:"Remove the credential-shaped content or retry with --force after explicit review.",nextSteps:["Replace the value with a secret-manager reference.","Use pm history-redact if equivalent content already entered history."],recovery:{recovery_mode:"compact",attempted_command:"pm <mutation> [REDACTED]",normalized_args:["[REDACTED]"],suggested_retry:"Remove credential-shaped content, then retry the mutation."}});return{author:t,findings:r,warnings:[`secret_guard_detected:${r.length}:rules=${n}`,...e.settings.secret_guard==="block"&&e.force===!0?["secret_guard_force_override"]:[]],override_applied:e.settings.secret_guard==="block"&&e.force===!0}}function Go(e){return _t.has(e.trim().toLowerCase())}function Ko(){return[..._t.keys()].sort((e,t)=>e.localeCompare(t))}function kc(e){return _t.get(e.trim().toLowerCase())}(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]="5767332d-8094-55cd-96e9-47c5d20cd7df")}catch{}})();var Xo=/\b([a-z][a-z0-9]*)-(\d+)(?:-[a-z0-9]+)*\b/giu,Jo=/^(?:utf|iso|sha|tls|http|covid|match)$/iu;function ht(e){return e.trim().toLowerCase().replace(/\s+/g," ")}function Ir(e){return[...new Set(ht(e).match(/[\p{L}\p{N}]+/gu)??[])]}function vr(e){let t=ht(e);return{normalized:t,tokens:Ir(t),issueCodes:[...new Set([...e.matchAll(Xo)].filter(r=>{let n=r[1],o=r.index,i=e.slice(o+r[0].length);return!Jo.test(n)&&(n===n.toUpperCase()||n.length<=2||o===0&&/^\s*(?::|—|–|\])/u.test(i))}).map(r=>r[0].toLowerCase()))]}}function Qo(e,t){return Zo(vr(e),vr(t))}function Zo(e,t){if(e.normalized===t.normalized)return{score:1,reason:"exact_title"};let r=new Set(e.issueCodes);return t.issueCodes.some(n=>r.has(n))?{score:.99,reason:"issue_code"}:{score:fe(e.tokens,t.tokens),reason:"title_token_jaccard"}}import ei 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]="a7cd1d62-16fe-5e5b-b382-64335fc5e403")}catch{}})();function Ae(e){return(e??"in_progress").trim().toLowerCase().replaceAll("-","_")}function ti(e,t){return[e.updated_at,t].map(r=>({value:r,time:Date.parse(r??"")})).filter(r=>typeof r.value=="string"&&Number.isFinite(r.time)).sort((r,n)=>n.time-r.time)[0]?.value??e.updated_at}function Ar(e,t){let r=Math.max(1,Math.trunc(t.threshold_hours)),n=(t.now??new Date).getTime(),o=Ae(t.in_progress_status),i=[];for(let s of e){if(Ae(String(s.status))!==o||(s.assignee?.trim().length??0)>0)continue;let a=ti(s,t.last_history_activity?.(s)),c=Date.parse(a);if(!Number.isFinite(c))continue;let d=Math.max(0,Math.floor((n-c)/36e5));d>=r&&i.push({id:s.id,last_activity_at:a,age_hours:d})}return i.sort((s,a)=>a.age_hours-s.age_hours||s.id.localeCompare(a.id)),{threshold_hours:r,count:i.length,items:i,remediation:"Claim active work with `pm claim <id>` or return abandoned work to open with `pm update <id> --status open`."}}async function ri(e,t,r){let n=new Map;return await Promise.all(t.filter(o=>Ae(String(o.status))===Ae(r.in_progress_status)&&(o.assignee?.trim().length??0)===0).map(async o=>{let i;try{i=await tt(ei.join(e,"history",`${o.id}.jsonl`),o.id)}catch{return}let s=i.map(a=>a.ts).filter(a=>Number.isFinite(Date.parse(a))).sort((a,c)=>Date.parse(c)-Date.parse(a))[0];s&&n.set(o.id,s)})),Ar(t,{...r,last_history_activity:o=>n.get(o.id)})}(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]="42b217a3-31c0-561a-b7cb-b1a584b2edd5")}catch{}})();var ni=new Set(["rename-type","rename-field","remap-status",...Bt]);function oi(e,t){if(t&&!ni.has(e))throw new m(`schema ${e} does not support --dry-run. Preview is supported for rename-type, rename-field, remap-status and workflow-policy actions. Remove --dry-run only when you intend to apply changes.`,u.USAGE,{code:"invalid_argument_value",examples:["pm schema rename-type Spike --to Experiment --dry-run"]})}(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]="8d14cb04-d740-5fb7-ad97-f9a39490eb87")}catch{}})();function Yc(e){try{return e()}catch(t){throw!(t instanceof m)||t.exitCode!==u.USAGE?t:new m(`${t.message} No changes were made.`,u.USAGE,{...t.context,code:t.code==="linked_test_command_not_executable"?t.code:"invalid_argument_value",reason:"test_option_invalid",changed:!1,required:t.context.required??t.message})}}function ii(e,t){if(e[t]==="'"){let r=e.indexOf("'",t+1);return r<0?void 0:r+1}for(let r=t+1;r<e.length;r+=1){if(e[r]==='"')return r+1;if(e[r]==="\\"){r+=1;continue}if(e[r]==="`"||e.startsWith("$(",r))return}}function si(e,t){let r=t;for(;r<e.length;){let n=e[r];if(/\s/u.test(n)||";&|".includes(n))return r;if(n==="\\"){r+=2;continue}if(n==="'"||n==='"'){let o=ii(e,r);if(o===void 0)return;r=o;continue}if("<>()`".includes(n))return;r+=1}return r===e.length?r:void 0}function gt(e,t){let r=t;for(;r<e.length;){if(/\s/u.test(e[r])){r+=1;continue}if(e[r]!=="#")return r;let n=e.indexOf(`
10
+ `,r);if(n<0)return e.length;r=n+1}return r}function ai(e,t){let r=gt(e,t),n=e[r];return n===void 0||!";&|".includes(n)?r:(r+=1,n!==";"&&e[r]===n&&(r+=1),gt(e,r))}function ci(e){let t=e.trim(),r=gt(t,0);if(t.length===0)return!1;for(;r<t.length;){if(!/[A-Za-z_]/u.test(t[r]))return!1;let n=r+1;for(;n<t.length&&/[A-Za-z0-9_]/u.test(t[n]);)n+=1;if(t[n]!=="=")return!1;let o=si(t,n+1);if(o===void 0)return!1;r=ai(t,o)}return!0}function Cr(e){if(!(e===void 0||!ci(e)))throw new m("Linked-test command contains only variable assignments or comments and has no executable command.",u.USAGE,{code:"linked_test_command_not_executable",required:'Supply an actual test command with --add "command=<actual command>" or --add-json. Environment assignments may precede that command.',examples:['pm test <id> --add "command=node --version"'],nextSteps:["Remove any already-stored assignment-only entry with --remove-index, then register the actual test command."]})}function Bc(e){if(Cr(e.command),!(e.pm_context_mode!=="none"||e.workspace_context_mode==="isolated"||e.workspace_context_mode==="snapshot"))throw new m("pm_context_mode=none requires workspace_context_mode=isolated or snapshot so implicit tracker discovery cannot reach the source workspace.",u.USAGE,{code:"linked_test_context_invalid",required:"Set workspace_context_mode to isolated or snapshot when pm_context_mode is none.",examples:[Kt(["test","<id>","--add-json",JSON.stringify({command:e.command,pm_context_mode:"none",workspace_context_mode:"isolated"})])]})}var Ce=["command","cmd","path","scope","timeout","timeout_seconds","pm_context_mode","workspace_context_mode","env_set","env_clear","shared_host_safe","assert_stdout_contains","assert_stdout_regex","assert_stderr_contains","assert_stderr_regex","assert_stdout_min_lines","assert_json_field_equals","assert_json_field_gte","note"],di=new Set(Ce);function Wc(e){return sr(e,Ce)}function li(e,t){let r={},n=[];for(let[o,i]of Object.entries(e)){let s=o.toLowerCase();if(!di.has(s)){n.push(o);continue}if(Object.hasOwn(r,s))throw new m(`${t} provides key "${o}" more than once after case normalization`,u.USAGE);r[s]=i}if(n.length>0)throw new m(`${t} does not recognize key${n.length>1?"s":""} ${n.map(o=>`"${o}"`).join(", ")}. Allowed keys: ${Ce.join(", ")}.`,u.USAGE);if(r.cmd!==void 0){if(r.command!==void 0&&r.command.trim()!==r.cmd.trim())throw new m(`${t} command and cmd must match when both are provided`,u.USAGE);let{cmd:o,...i}=r;return{...i,command:i.command??o}}return r}(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]="b58016fa-9817-5421-a4a3-78d1b1d22937")}catch{}})();import{readFile as ui}from"node:fs/promises";import xr 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]="7cc00705-c03e-5a18-9bec-af2585939ed8")}catch{}})();function md(e){if(e!==void 0){if(typeof e!="string")throw new m("--rollback requires a non-empty checkpoint ID string",u.USAGE);return kr(e)}}function kr(e){let t=e.trim();if(!t)throw new m("--rollback requires a non-empty checkpoint ID",u.USAGE);if(!/^[a-zA-Z0-9._-]+$/.test(t))throw new m("--rollback checkpoint ID must match [a-zA-Z0-9._-]+",u.USAGE);return t}function mi(e,t){let r=t.replace(/[-:.TZ]/g,"").slice(0,14),n=Math.random().toString(36).slice(2,8);return`${e}-${r}-${n}`}function fi(e,t){return xr.join(e,"checkpoints",t)}function Rr(e,t,r){return xr.join(fi(e,t),`${r}.json`)}async function pi(e,t,r,n){let o=Rr(e,t,r),i=`${JSON.stringify(n,null,2)}
11
+ `;if(!await Wt(o,i)&&await T(o)!==i)throw new m(`Checkpoint ${r} already exists with different contents; use a new checkpoint ID.`,u.CONFLICT);return o}function _i(e,t){if(!Array.isArray(e.items))throw new m(`Checkpoint ${t} is missing items`,u.GENERIC_FAILURE);return e.items.map(r=>{if(!r||typeof r!="object")throw new m(`Checkpoint ${t} contains an invalid item entry`,u.GENERIC_FAILURE);let n=r;if(typeof n.id!="string"||n.id.trim().length===0)throw new m(`Checkpoint ${t} contains an item entry without ID`,u.GENERIC_FAILURE);if(typeof n.target_updated_at!="string"||n.target_updated_at.trim().length===0)throw new m(`Checkpoint ${t} contains an item entry without target_updated_at`,u.GENERIC_FAILURE);return{id:n.id.trim(),target_updated_at:n.target_updated_at.trim()}})}async function hi(e,t,r,n){let o=kr(r),i=Rr(e,t,o);if(!await W(i))throw new m(`Checkpoint ${o} not found`,u.NOT_FOUND);let s=await ui(i,"utf8"),a;try{a=JSON.parse(s)}catch(l){throw new m(`Checkpoint ${o} contains invalid JSON: ${b(l)}`,u.GENERIC_FAILURE)}if(!a||typeof a!="object")throw new m(`Checkpoint ${o} is invalid`,u.GENERIC_FAILURE);let c=a;if(c.schema_version!==n)throw new m(`Checkpoint ${o} has unsupported schema version. Inspect pm history and use an explicit pm restore only after reviewing later edits.`,u.GENERIC_FAILURE);let d=_i(c,o);return{record:c,items:d,path:i,id:typeof c.id=="string"?c.id:o,created_at:typeof c.created_at=="string"?c.created_at:D(),author:typeof c.author=="string"?c.author:"unknown"}}async function gi(e,t){let r=[],n=[];for(let o of e)try{let i=await t(o.id,o.target_updated_at);r.push({id:o.id,status:i.skipped?"skipped":"restored",changed_fields:i.changed_fields,warnings:i.warnings}),i.skipped||n.push(o.id)}catch(i){r.push({id:o.id,status:"failed",error:b(i)})}return{rows:r,restored_ids:n,failed_count:r.filter(o=>o.status==="failed").length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cb883ffc-c431-5bf9-a973-931a8a0a940c")}catch{}})();function N(e){if(typeof e!="string")return null;let t=e.trim().toLowerCase();return t.length>0?t:null}function pd(e,t){let r=N(t);return!e||!r?null:[...e.assurance_providers??[]].reverse().find(n=>N(n.definition.id)===r)??null}function yi(e,t){let r=N(t);return!e||!r?null:[...e.search_providers].reverse().find(n=>(N(n.runtime_definition?.name)??N(n.definition?.name))===r)??null}function Ei(e,t){let r=N(t);return!e||!r?null:[...e.vector_store_adapters].reverse().find(n=>(N(n.runtime_definition?.name)??N(n.definition?.name))===r)??null}(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]="4441095d-0acd-5780-8758-7df94396cb8e")}catch{}})();function yt(e){return[...new Set(e.split(/[,\r\n]+/).map(t=>t.trim()).filter(t=>t.length>0))]}function wi(e){let t=[];for(let n of e)if(typeof n=="string")t.push(n);else if(typeof n=="number"&&Number.isFinite(n))t.push(String(n));else return"";let r=yt(t.join(`
12
+ `));return r.length>0?r.join(","):""}function bi(e){if(e===void 0)return;if(typeof e=="number")return Number.isFinite(e)?String(e):"";if(Array.isArray(e))return wi(e);if(typeof e!="string")return"";let t=yt(e);return t.length>0?t.join(","):""}(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]="1dcf0d72-10da-51b6-b9f6-ab47bebcbf64")}catch{}})();function Lr(e){return e.replaceAll("~1","/").replaceAll("~0","~")}function Et(e){if(e==="/body"||e.startsWith("/body/"))return"body";if(e==="/metadata"||e.startsWith("/metadata/")||e==="/front_matter"||e.startsWith("/front_matter/")){let r=e.replace(/^\/(?:metadata|front_matter)\/?/,"").split("/")[0];return r?Lr(r):"metadata"}let t=e.replace(/^\//,"").split("/")[0];return t?Lr(t):"root"}function xe(e,t){return t==="body"?e.body:t==="metadata"?e.metadata:t==="root"?e:e.metadata[t]}function Si(e,t){let r=t?.windowStartIndex??0,n=t?.field;if(e.length===0||r>=e.length)return[];let o=Jt(),i=[];for(let s=0;s<e.length;s+=1){let a=e[s],c=o,d=Qt(o,a.patch),l;d.ok?(l=d.document,o=l):l=c;let p=new Set;for(let f of a.patch)p.add(Et(f.path)),f.from!==void 0&&p.add(Et(f.from));let _=[...p].sort((f,g)=>f.localeCompare(g));if(s>=r)if(n!==void 0){if(!p.has(n))continue;let f={field:n,before:xe(c,n),after:xe(l,n)};i.push({index:s+1,ts:a.ts,op:a.op,author:a.author,patch_ops:a.patch.length,changed_fields:[n],changes:[f]})}else{let f=_.map(g=>({field:g,before:xe(c,g),after:xe(l,g)}));i.push({index:s+1,ts:a.ts,op:a.op,author:a.author,patch_ops:a.patch.length,changed_fields:_,changes:f})}}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]="80805c6b-9b9a-5dad-b94b-d7dbd365fe5e")}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]="2fd342e6-06cc-56d4-aa0e-2af269234b59")}catch{}})();var Ti=new Set(["none","null","undefined"]);function kd(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="warn"||t==="strict_error")return t;if(t==="strict")return"strict_error";throw new m("Config set parent-reference-policy requires --policy with one of: warn, strict_error (alias: strict)",u.USAGE)}function vi(e){if(typeof e!="string")throw new m("--parent must be a string. Use --unset parent to clear this field.",u.USAGE);let t=e.trim();if(t.length===0)throw new m("--parent must not be empty. Use --parent none to unset.",u.USAGE);if(Mr(t))throw new m(`--parent must not use placeholder token "${t}". Use --unset parent to clear this field.`,u.USAGE);return t}function Mr(e){return Ti.has(e.trim().toLowerCase())}function Ii(e,t){if(t==="strict_error")throw new m(`Parent item "${e}" was not found. Create it first or use --parent none.`,u.USAGE);return{warnings:[`validation_warning:parent_reference_missing:${e}`]}}function Ai(e,t,r){let n=he(e,r),o=he(t,r);if(n!==o)return;let i=t!==o||e!==n?` (normalized from parent "${t}" and item "${e}")`:"";throw new m(`Parent item "${o}" cannot be the same as item "${n}"${i}. Use --unset parent to clear this field.`,u.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]="a59d5b7f-9764-53c5-a014-1119868be8ea")}catch{}})();var wt={critical:0,high:1,medium:2,low:3,minimal:4},Or=Object.keys(wt),Ci=`numbers 0..4 (0=critical, 1=high, 2=medium, 3=low, 4=minimal) or names (${Or.join(", ")}), case-insensitive`;function ke(e){return new m(`Invalid priority "${e}". Accepted values: ${Ci}.`,u.USAGE,{code:"invalid_argument_value",field:"priority",value:e,allowed:["0","1","2","3","4",...Or]})}function xi(e){if(typeof e=="number"){if(Number.isInteger(e)&&e>=0&&e<=4)return e;throw ke(String(e))}if(typeof e!="string")throw ke(String(e));let t=e.trim();if(t.length===0)throw ke(e);let r=t.toLowerCase();if(Object.prototype.hasOwnProperty.call(wt,r))return wt[r];if(/^[0-4]$/.test(t))return Number(t);throw ke(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]="e363ee89-b438-5c8e-bb06-f4d05cc814cc")}catch{}})();function ki(e){return re(ne(be(e,{...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]="b6206b0e-0cd8-5827-acbd-6ac064dbcad7")}catch{}})();var Ri=/^[A-Za-z0-9][A-Za-z0-9._/-]*$/,Li=64;function Fd(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="warn"||t==="strict_error")return t;if(t==="strict")return"strict_error";throw new m("Config set sprint-release-format-policy requires --policy with one of: warn, strict_error (alias: strict)",u.USAGE)}function Mi(e,t,r){let n=t.trim();if(n.length===0)throw new m(`--${e} must not be empty. Use --${e} none to unset.`,u.USAGE);if(n.length<=Li&&Ri.test(n))return{value:n,warnings:[]};let o="Expected 1-64 characters matching [A-Za-z0-9][A-Za-z0-9._/-]* (no spaces).";if(r==="strict_error")throw new m(`Invalid --${e} value "${n}". ${o}`,u.USAGE);return{value:n,warnings:[`validation_warning:${e}_format:${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]="14e6c7b4-3161-5f82-b797-f06a879d1370")}catch{}})();var Dr={open:"open_status",closed:"close_status",canceled:"canceled_status",cancelled:"canceled_status"},Nr="all";function Yd(e){if(typeof e!="string")return!1;let t=e.split(",").map(r=>r.trim().toLowerCase()).filter(r=>r.length>0);return t.length===1&&t[0]===Nr}function Oi(e,t){let r=e.trim().toLowerCase();if(r.length===0)return;let n=Dr[r];return n?t[n]:Ze(e,t)}function Di(e){let t=new Set(Object.keys(Dr));for(let r of e.definitions){t.add(r.id);for(let n of r.aliases)t.add(n)}return[...t]}function Ni(e,t){let r=e.trim().toLowerCase(),n,o=Number.POSITIVE_INFINITY;for(let i of Di(t)){let s=Ye(r,i.toLowerCase(),2);s!==null&&s<o&&(n=i,o=s)}return n}function Pi(e,t,r){if(typeof e!="string")return;let n=r?.strict===!0,o=r?.flagLabel??"--status",i=e.split(",").map(a=>a.trim()).filter(a=>a.length>0);if(i.length===0)return;if(i.filter(a=>a.trim().toLowerCase()===Nr).length>0){if(i.length===1)return;throw new m(`Invalid ${o} value "all". Use it by itself, or omit ${o} to search every status.`,u.USAGE)}let s=[];for(let a of i){let c=Oi(a,t);if(c===void 0){if(n){let d=Ni(a,t);throw new m(`Invalid ${o} value "${a}". Use open|closed|canceled or a configured status id${d?`. Did you mean "${d}"?`:"."}`,u.USAGE)}s.push(a);continue}s.push(c)}return[...new Set(s)]}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="50f77f3f-b2b0-5ae2-b669-6ed50bbdd530")}catch{}})();var $i={bug:"Issue",bugfix:"Issue",defect:"Issue",incident:"Issue",enhancement:"Feature",story:"Feature",userstory:"Feature","user-story":"Feature","user story":"Feature",change:"Chore",ticket:"Task",todo:"Task"};function zi(e){if(e!==void 0)return $i[e.trim().toLowerCase()]}(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]="c628dcf9-d98f-566e-9f93-cc81e737691c")}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]="4b79bd02-51ae-5c46-be4c-2f41dd8c9486")}catch{}})();function Pr(e,t){return Xe(e,t)}function Fi(e,t,r){let n={};for(let o of t.command_to_fields.get(r)??[]){let i=Qe(e,o);i!==void 0&&(n[o.metadata_key]=Xt(o,i))}return n}function Ui(e,t){for(let[r,n]of Object.entries(t)){let o=e[r];if(Array.isArray(n)){if(Array.isArray(o)){let i=o.map(s=>String(s));if(!n.map(s=>String(s)).every(s=>i.includes(s)))return!1;continue}if(!Pr(o,n[n.length-1]))return!1;continue}if(!Pr(o,n))return!1}return!0}import{spawnSync as zr}from"node:child_process";(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]="7889f11f-36f9-5384-8429-58d951c342da")}catch{}})();var Vi="PM_DISABLE_OLLAMA_AUTO_DEFAULTS",ji="PM_OLLAMA_MODEL",qi="http://localhost:11434",Hi="qwen3-embedding:0.6b",Yi=".agents/pm/search/lancedb/",Bi=1500,Wi=2500,Gi=/qwen.*(?:embed|embedding)|(?:embed|embedding).*qwen/i,Ki=/embed|embedding/i,k=E;function Xi(){let e=k(process.env[Vi]);if(!e)return!1;let t=e.toLowerCase();return t==="1"||t==="true"||t==="yes"}function $r(e){return e.some(t=>k(t)!==null)}function Ji(e){let t=k(e);return!!(t&&t.toLowerCase()!=="ollama")}function Qi(e){let t=k(e);return!!(t&&t.toLowerCase()!=="lancedb")}function Zi(e){return Ji(e.search?.provider)||Qi(e.vector_store?.adapter)||$r([e.providers?.openai?.base_url,e.providers?.openai?.model,e.providers?.openai?.api_key])?!0:$r([e.vector_store?.qdrant?.url,e.vector_store?.qdrant?.api_key])}function es(){let e=zr("ollama",["--version"],{encoding:"utf8",timeout:Bi});return e.error?!1:e.status===0}function ts(e){let t=e.split(/\r?\n/).map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)return null;let r=t.map(n=>n.split(/\s+/)[0]?.trim()).filter(n=>!!(n&&n.length>0)).filter(n=>n.toUpperCase()!=="NAME");return r.length===0?null:r.find(n=>Gi.test(n))||(r.find(n=>Ki.test(n))??null)}function rs(e){let t=k(e.providers?.ollama?.model);if(t)return t;let r=k(process.env[ji]);if(r)return r;let n=zr("ollama",["list"],{encoding:"utf8",timeout:Wi});if(!n.error&&n.status===0){let o=ts(typeof n.stdout=="string"?n.stdout:"");if(o)return o}return null}function ns(e){return{baseUrl:k(e.providers?.ollama?.base_url)===null,model:k(e.providers?.ollama?.model)===null,lancedbPath:k(e.vector_store?.lancedb?.path)===null,embeddingModel:k(e.search?.embedding_model)===null}}function os(e){return e.baseUrl||e.model||e.lancedbPath||e.embeddingModel}function is(e,t,r){if(!t.baseUrl&&!t.model)return;let n=e.providers??={},o=n.ollama??={};t.baseUrl&&(o.base_url=qi),t.model&&(o.model=r)}function ss(e,t){if(!t.lancedbPath)return;let r=e.vector_store??={},n=r.lancedb??={};n.path=Yi}function as(e,t,r){if(!t.embeddingModel)return;let n=e.search??={};n.embedding_model=r}function Re(e){let t={settings:e,auto_ollama_defaults_applied:!1};if(Xi()||Zi(e))return t;let r=ns(e);if(!os(r)||r.model&&!es())return t;let n=structuredClone(e),o=rs(n);return o?(is(n,r,o),ss(n,r),as(n,r,o),{settings:n,auto_ollama_defaults_applied:!0}):{...t,auto_ollama_defaults_skipped_reason:"no_installed_embedding_model",auto_ollama_defaults_remediation:`Run ollama pull ${Hi} or configure providers.ollama.model explicitly (and search.embedding_model if you need an override).`}}(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]="9ecff496-8afa-5cfc-9178-2be8bd403978")}catch{}})();var ds="reindex";import Wr from"node:path";import{mkdir as ls,readFile as us,stat as Tt,unlink as ms}from"node:fs/promises";import{basename as Ur,dirname as bt,isAbsolute as fs,join as ps,resolve as vt}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]="b5f2e49a-fb72-554b-b0a8-dca0adee71f4")}catch{}})();var It="pm_items",_s=/[^a-zA-Z0-9_-]/g,hs=128,gs=".pm-cli-local-vectors",St=1,j=new Map;function se(e){return(E(e.collection_name)??It).replaceAll(_s,"_").slice(0,hs)}function Le(e){if(!K(e)||e.length===0)throw new Error("Vector values must be a non-empty numeric array");return[...e]}function jr(e){if(!Number.isFinite(e)||e<=0)throw new Error("Vector query limit must be a positive number");return Math.floor(e)}function ys(e){let t=e.result;if(!Array.isArray(t))throw new TypeError("Qdrant query response must include a result array");let r=t.map((n,o)=>{let i=n.id,s=typeof i=="number"?String(i):i,a=E(s);if(!a)throw new Error(`Qdrant query response entry at index ${o} is missing a non-empty id`);let c=n.score;if(typeof c!="number"||!Number.isFinite(c))throw new TypeError(`Qdrant query response entry at index ${o} is missing a finite numeric score`);let d=n.payload;if(d!==void 0&&(typeof d!="object"||d===null||Array.isArray(d)))throw new Error(`Qdrant query response entry at index ${o} must provide payload as an object when set`);return{id:a,score:c,...d?{payload:d}:{}}});return r.sort((n,o)=>n.score!==o.score?o.score-n.score:n.id.localeCompare(o.id)),r}function At(e){let t=E(e.result?.status);if(t)return{status:t};let r=E(e.status);if(r)return{status:r};throw new Error("Qdrant upsert response must include status metadata")}async function ie(e,t,r,n,o){return await Te({endpoint:e,method:t.method,headers:t.headers,body:t.body,timeoutMs:r,fetcher:n,requestLabel:`Vector ${o} request`,responseLabel:`Vector ${o} response`})}function Es(e){let t=E(e.vector_store?.qdrant?.url);if(!t)return null;let r=E(e.vector_store?.collection_name),n=E(e.vector_store?.qdrant?.api_key);return{name:"qdrant",url:t,...r&&r!==It?{collection_name:r}:{},...n?{api_key:n}:{}}}function ws(e){let t=vt(e),r=bt(t);return Ur(t)==="pm"&&Ur(r)===".agents"?bt(r):t}function bs(e,t){return!t||fs(e)?e:vt(ws(t),e)}function Ss(e,t){let r=E(e.vector_store?.lancedb?.path);if(!r)return null;let n=E(e.vector_store?.collection_name);return{name:"lancedb",path:bs(r,t),...n&&n!==It?{collection_name:n}:{}}}function Ts(e){if(!Array.isArray(e)||e.length===0)throw new Error("Vector upsert records must include at least one entry");return e.map((t,r)=>{let n=E(t.id);if(!n)throw new Error(`Vector upsert record at index ${r} is missing a non-empty id`);let o=Le(t.vector),i=t.payload;if(i!==void 0&&(typeof i!="object"||i===null||Array.isArray(i)))throw new Error(`Vector upsert record at index ${r} must provide payload as an object when set`);return{id:n,vector:o,...i?{payload:i}:{}}})}function vs(e){if(!Array.isArray(e)||e.length===0)throw new Error("Vector delete ids must include at least one entry");let t=e.map((n,o)=>{let i=E(n);if(!i)throw new Error(`Vector delete id at index ${o} is missing a non-empty value`);return i}).sort((n,o)=>n.localeCompare(o)),r=[];for(let n of t)r.at(-1)!==n&&r.push(n);return r}function Is(e){return e.replace(/\/points\?wait=true$/,"/points/delete?wait=true")}function As(e){return e.replace(/\/points\?wait=true$/,"")}function Me(e){return{"content-type":"application/json",...e.api_key?{"api-key":e.api_key}:{}}}function Oe(e,t){return J(e,t)}function J(e,t){return ps(vt(e),gs,`${t}.json`)}function Cs(e,t,r){let n=E(e.id);if(!n)throw new Error(`LanceDB local snapshot '${r}' record at index ${t} is missing a non-empty id`);let o=Le(e.vector),i=e.payload;if(i!==void 0&&(typeof i!="object"||i===null||Array.isArray(i)))throw new Error(`LanceDB local snapshot '${r}' record '${n}' must provide payload as an object when set`);return{id:n,vector:o,...i?{payload:i}:{}}}function xs(e,t,r){let n;try{n=JSON.parse(r)}catch(a){throw new Error(`LanceDB local snapshot at '${e}' is not valid JSON: ${b(a)}`)}if(typeof n!="object"||n===null||Array.isArray(n))throw new Error(`LanceDB local snapshot at '${e}' must be a JSON object`);if(n.version!==St)throw new Error(`LanceDB local snapshot at '${e}' must include version=${St}`);let o=E(n.table);if(!o)throw new Error(`LanceDB local snapshot at '${e}' must include a non-empty table value`);if(o!==t)throw new Error(`LanceDB local snapshot at '${e}' table mismatch: expected '${t}', received '${o}'`);let i=n.records;if(!Array.isArray(i))throw new TypeError(`LanceDB local snapshot at '${e}' must include a records array`);let s=new Map;for(let a=0;a<i.length;a+=1){let c=Cs(i[a],a,e);s.set(c.id,c)}return s}async function ks(e){try{let t=await Tt(e);return{mtimeMs:t.mtimeMs,size:t.size}}catch(t){if(!G(t))throw t;return null}}function Rs(e,t){if(!t)return null;if(t.mtimeMs===null&&t.size===null&&t.records.size===0)return t.records;let r=new Map;return j.set(e,{records:r,mtimeMs:null,size:null}),r}function Ls(e,t){return e!==void 0&&t!==null&&e.mtimeMs===t.mtimeMs&&e.size===t.size}async function Ct(e,t){let r=Oe(e,t),n=J(e,t),o=await ks(n),i=j.get(r);if(!o){let a=Rs(r,i);if(a)return a}if(Ls(i,o))return i.records;let s=new Map;try{let a=await us(n,"utf8");s=xs(n,t,a)}catch(a){if(!G(a))throw a}return j.set(r,{records:s,mtimeMs:o?.mtimeMs??null,size:o?.size??null}),s}function Ms(e){let t=[...e.values()];return t.sort((r,n)=>r.id.localeCompare(n.id)),t.map(r=>({id:r.id,vector:[...r.vector],...r.payload?{payload:r.payload}:{}}))}async function qr(e){try{await ms(e)}catch(t){if(!G(t))throw new Error(`LanceDB local snapshot delete failed at '${e}': ${b(t)}`)}}async function Hr(e,t,r){let n=J(e,t);if(r.size===0){await qr(n);return}let o=bt(n);try{await ls(o,{recursive:!0})}catch(s){throw new Error(`LanceDB local snapshot directory create failed at '${o}': ${b(s)}`)}let i=`${JSON.stringify({version:St,table:t,records:Ms(r)})}
13
+ `;try{await v(n,i)}catch(s){throw new Error(`LanceDB local snapshot write failed at '${n}': ${b(s)}`)}}async function Os(e,t){let r=Oe(e,t),n=J(e,t);await qr(n),j.delete(r)}function Vr(e){let t=0;for(let r=0;r<e.length;r+=1)t+=e[r]*e[r];return Math.sqrt(t)}function Ds(e,t){let r=0;for(let i=0;i<e.length;i+=1)r+=e[i]*t[i];let n=Vr(e),o=Vr(t);return n===0||o===0?0:r/(n*o)}function xt(e,t){let r=Es(e),n=Ss(e,t),o=[r,n].filter(a=>a!==null),i=E(e.vector_store?.adapter),s=i?i.toLowerCase():null;return{active:(s?o.find(a=>a.name===s):void 0)??o[0]??null,available:o}}function De(e){let t=se(e);if(e.name==="qdrant"){let o=Z(e.url),i=encodeURIComponent(t);return{store:"qdrant",query_target:`${o}/collections/${i}/points/search`,upsert_target:`${o}/collections/${i}/points?wait=true`}}let r=encodeURIComponent(e.path),n=encodeURIComponent(t);return{store:"lancedb",query_target:`lancedb://${r}#${n}`,upsert_target:`lancedb://${r}#${n}`}}function Ns(e,t,r){let n=De(e),o=Le(t),i=jr(r);return e.name==="qdrant"?{target:n,method:"POST",headers:Me(e),body:{vector:o,limit:i,with_payload:!0}}:{target:n,method:"LOCAL",headers:{},body:{table:se(e),vector:o,limit:i}}}function Ps(e,t){let r=De(e),n=Ts(t);return e.name==="qdrant"?{target:r,method:"POST",headers:Me(e),body:{points:n}}:{target:r,method:"LOCAL",headers:{},body:{table:se(e),records:n}}}function $s(e,t){let r=De(e),n=vs(t);return e.name==="qdrant"?{target:r,method:"POST",headers:Me(e),body:{points:n}}:{target:r,method:"LOCAL",headers:{},body:{table:se(e),ids:n}}}async function pl(e,t,r,n={}){let o=Ns(e,t,r);if(o.method==="LOCAL"){let c=e,d=o.body,l=await Ct(c.path,d.table);if(l.size===0)return[];let p=Le(d.vector),_=jr(d.limit),f=[],g=0;for(let h of l.values()){if(h.vector.length!==p.length){g++;continue}f.push({id:h.id,score:Ds(p,h.vector),...h.payload?{payload:h.payload}:{}})}return g>0&&n.warnings&&n.warnings.push(`vector_dimension_mismatch:${g} records skipped (expected ${p.length} dimensions)`),f.sort((h,y)=>h.score!==y.score?y.score-h.score:h.id.localeCompare(y.id)),f.slice(0,_)}let i=$(n.timeout_ms,"Vector request"),s=z(n.fetcher,"Vector request"),a=await ie(o.target.query_target,{method:"POST",headers:o.headers,body:o.body},i,s,"query");return ys(a)}async function kt(e,t,r={}){let n=Ps(e,t);if(n.method==="LOCAL"){let a=e,c=n.body,d=Oe(a.path,c.table),l=await Ct(a.path,c.table);for(let f of c.records)l.set(f.id,f);await Hr(a.path,c.table,l);let p=J(a.path,c.table),_=await Tt(p);return j.set(d,{records:l,mtimeMs:_.mtimeMs,size:_.size}),{status:"ok"}}let o=$(r.timeout_ms,"Vector request"),i=z(r.fetcher,"Vector request"),s=await ie(n.target.upsert_target,{method:"POST",headers:n.headers,body:n.body},o,i,"upsert");return At(s)}async function Ne(e,t,r={}){let n=$s(e,t);if(n.method==="LOCAL"){let a=e,c=n.body,d=Oe(a.path,c.table),l=await Ct(a.path,c.table);if(l.size===0)return{status:"ok"};for(let p of c.ids)l.delete(p);if(await Hr(a.path,c.table,l),l.size===0)j.delete(d);else{let p=J(a.path,c.table),_=await Tt(p);j.set(d,{records:l,mtimeMs:_.mtimeMs,size:_.size})}return{status:"ok"}}let o=$(r.timeout_ms,"Vector request"),i=z(r.fetcher,"Vector request"),s=await ie(Is(n.target.upsert_target),{method:"POST",headers:n.headers,body:n.body},o,i,"delete");return At(s)}async function Yr(e,t=[],r={},n){if(e.name==="lancedb")return await Os(e.path,se(e)),{status:"ok"};if(n!==void 0){if(!Number.isInteger(n)||n<=0)throw new Error("Vector reset dimension must be a positive integer when provided");let i=De(e),s=As(i.upsert_target),a=$(r.timeout_ms,"Vector request"),c=z(r.fetcher,"Vector request"),d=Me(e);try{await ie(s,{method:"DELETE",headers:d,body:{}},a,c,"delete")}catch(p){if(!b(p).includes("failed with status 404"))throw p}let l=await ie(s,{method:"PUT",headers:d,body:{vectors:{size:n,distance:"Cosine"}}},a,c,"upsert");return At(l)}let o=t.map(i=>i.trim()).filter(i=>i.length>0);return o.length===0?{status:"ok"}:await Ne(e,o,r)}(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]="f8acaac5-64f7-5e22-987e-4eb12a1aa1cf")}catch{}})();function Pe(e,t){let r=E(e),n=E(t);return!r||!n?null:{provider:r,model:n}}function Br(e){if(e==null)return null;if(typeof e!="object"||Array.isArray(e))throw new Error("Vectorization embedding metadata must be an object when set");let t=Pe(e.provider,e.model),r=e.vector_dimension;if(!t||typeof r!="number"||!Number.isInteger(r)||r<=0)throw new Error("Vectorization embedding metadata must include provider, model, and positive vector_dimension");return{...t,vector_dimension:r}}function Rt(e,t){if(!Number.isInteger(t)||t<=0)throw new Error("Vectorization embedding metadata requires a positive vector dimension");return{provider:e.provider,model:e.model,vector_dimension:t}}function Lt(e,t){return!e||e.provider!==t.provider||e.model!==t.model}function Mt(e,t){return!!(e&&e.vector_dimension!==t)}function Ot(e,t){if(e.length===0)throw new Error(`${t} returned no vectors`);let r=e[0].length;if(!Number.isInteger(r)||r<=0)throw new Error(`${t} returned an empty vector`);for(let n=1;n<e.length;n+=1)if(e[n]?.length!==r)throw new Error(`${t} returned mixed vector dimensions`);return r}(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]="7113dff5-c8e0-5ba6-b0ae-2ff849ed94df")}catch{}})();var Gr="search/vectorization-status.json";function ce(e){return[...new Set([...e].map(t=>t.trim()).filter(t=>t.length>0))].sort((t,r)=>t.localeCompare(r))}function Kr(e){return typeof e=="string"&&e.trim().length>0&&Number.isFinite(Date.parse(e))}function Xr(e){let t=new Map;for(let[r,n]of Object.entries(e)){let o=r.trim();o.length===0||!Kr(n)||t.set(o,n)}return Object.fromEntries([...t.entries()].sort((r,n)=>r[0].localeCompare(n[0])))}async function Jr(e){let t=Wr.join(e,Gr),r=await T(t);if(r===null||r.trim().length===0)return{entries:{},embedding:null,warnings:[]};let n;try{n=JSON.parse(r)}catch{return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]}}if(typeof n!="object"||n===null||n.version!==1||!Array.isArray(n.items))return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]};let o=new Map;for(let s of n.items){if(typeof s!="object"||s===null)return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]};let a=s.id,c=s.updated_at;if(typeof a!="string"||a.trim().length===0||!Kr(c))return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]};o.set(a.trim(),c)}let i=null;try{i=Br(n.embedding)}catch{return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]}}return{entries:Object.fromEntries([...o.entries()].sort((s,a)=>s[0].localeCompare(a[0]))),embedding:i,warnings:[]}}async function Qr(e,t,r){let n=Xr(t),o=Wr.join(e,Gr),i=`${JSON.stringify({version:1,generated_at:D(),...r?{embedding:r}:{},items:Object.entries(n).map(([s,a])=>({id:s,updated_at:a}))},null,2)}
14
+ `;await v(o,i)}function zs(e){return{id:e.id,type:e.type,status:e.status,priority:e.priority,updated_at:e.updated_at}}function Fs(e){let t=Pe(e.name,e.model);if(!t)throw new Error("Embedding provider must include a provider name and model");return t}function ae(e,t){return{refreshed:[],skipped:e,warnings:[t]}}async function Us(e,t,r){if(!r.settings&&!await W(Ge(e)))return ae(t,"search_semantic_refresh_skipped:settings_not_initialized");let n;try{if(r.settings)n=r.settings;else{let a=await ge(e),c=a.warnings.find(d=>d.startsWith("settings_read_"));if(c)return ae(t,`search_semantic_refresh_skipped:settings_read_failed:${c}`);n=a.settings}}catch(a){return ae(t,`search_semantic_refresh_skipped:settings_read_failed:${b(a)}`)}let o=r.apply_runtime_defaults?Re(n).settings:n,i=ct(o).active;if(!i)return ae(t,"search_semantic_refresh_skipped:provider_unconfigured");let s=xt(o,e).active;return s?{settings:o,provider:i,vectorStore:s}:ae(t,"search_semantic_refresh_skipped:vector_store_unconfigured")}async function Vs(e,t,r,n,o,i){let s=[],a=new Set,c=new Set,d=[];for(let l of n){let p=await nt(e,l,t,r,o);if(!p){c.add(l);continue}try{let _=await ot(p,{schema:i});d.push({id:_.document.metadata.id,document:_.document})}catch(_){a.add(p.id),s.push(`search_semantic_refresh_item_read_failed:${p.id}:${b(_)}`)}}return d.sort((l,p)=>l.id.localeCompare(p.id)),{documents:d,missingIds:ce(c),skippedIds:ce(a),warnings:s}}async function js(e,t,r){let n=X(t.name,e.search.embedding_corpus_max_characters).maxCharacters,o=dt(e),i=r.map(a=>lt(a.document,{providerName:t.name,maxCharacters:n,fields:o})),s=await mt(t,e,i);return{vectors:s.vectors,vector_dimension:Ot(s.vectors,"Semantic refresh embedding"),warnings:s.warnings}}async function qs(e,t,r){return await kt(e,t.map((n,o)=>({id:n.id,vector:r[o],payload:zs(n.document.metadata)}))),{refreshed:t.map(n=>n.id),skipped:[],warnings:[]}}async function Hs(e,t){if(t.length===0)return{refreshed:[],skipped:[],warnings:[]};try{return await Ne(e,t),{refreshed:[],skipped:[],warnings:[]}}catch(r){return{refreshed:[],skipped:t,warnings:[`search_semantic_refresh_delete_failed:${b(r)}`]}}}async function Nl(e,t,r={}){let n=ce(t);if(n.length===0)return{refreshed:[],skipped:[],warnings:[]};let o=await Us(e,n,r);if(!("settings"in o))return o;let i=We(o.settings,Je()),s=await Vs(e,o.settings.id_prefix,o.settings.item_format,n,i.type_to_folder,o.settings.schema),a=s.documents.length>0||s.missingIds.length>0?await Jr(e):{entries:{},embedding:null,warnings:[]},c=Fs(o.provider),d=a.entries,l={refreshed:[],skipped:[],warnings:[]},p=a.embedding;if(s.documents.length>0)if(a.embedding&&Lt(a.embedding,c))l={refreshed:[],skipped:s.documents.map(y=>y.id),warnings:["search_semantic_refresh_requires_reindex:embedding_identity_changed"]};else try{let y=await js(o.settings,o.provider,s.documents);if(Mt(a.embedding,y.vector_dimension))l={refreshed:[],skipped:s.documents.map(w=>w.id),warnings:[...y.warnings,"search_semantic_refresh_requires_reindex:vector_dimension_changed"]};else{p=Rt(c,y.vector_dimension);let w=await qs(o.vectorStore,s.documents,y.vectors);l={refreshed:w.refreshed,skipped:w.skipped,warnings:[...y.warnings,...w.warnings]}}}catch(y){l={refreshed:[],skipped:s.documents.map(w=>w.id),warnings:[`search_semantic_refresh_failed:${b(y)}`]}}let _=await Hs(o.vectorStore,s.missingIds),f=new Set(l.refreshed),g=Object.fromEntries(s.documents.filter(y=>f.has(y.id)).map(y=>[y.id,y.document.metadata.updated_at])),h=[];if(Object.keys(g).length>0||s.missingIds.length>0){let y={...d,...Xr(g)};for(let w of s.missingIds)delete y[w];try{await Qr(e,y,p)}catch(w){h.push(`search_vectorization_status_ledger_write_failed:${b(w)}`)}h.push(...a.warnings)}return{refreshed:ce([...l.refreshed,..._.refreshed]),skipped:ce([...s.skippedIds,...l.skipped,..._.skipped]),warnings:[...s.warnings,...l.warnings,..._.warnings,...h]}}import{createRequire as Gs}from"node:module";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="eae1b641-d6ed-5c32-899e-fe534a17aafd")}catch{}})();var Ys=new Set(["1","true","yes","on"]),ze=["user","automation","test","dogfood"],Bs=new Set(ze);function Zr(e=process.env){return typeof e.VITEST=="string"||typeof e.VITEST_WORKER_ID=="string"||typeof e.NODE_TEST_CONTEXT=="string"||(e.NODE_ENV??"").trim().toLowerCase()==="test"}function $e(e,t){return Ys.has((t[e]??"").trim().toLowerCase())}function de(e=process.env){let t=$e("DO_NOT_TRACK",e),r=(e.PM_TELEMETRY_SOURCE_CONTEXT??"").trim().toLowerCase(),n=Zr(e)&&!Bs.has(r)&&!$e("PM_TELEMETRY_SEND_TEST_EVENTS",e);return{telemetry_disabled:t||n||$e("PM_TELEMETRY_DISABLED",e)||$e("PM_NO_TELEMETRY",e),do_not_track:t,test_suppressed: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]="64589e00-25ef-5d74-a94a-7d40455e1929")}catch{}})();var tn=/(?:token|secret|password|passwd|api[_-]?key|apikey|authorization|cookie|credentials|bearer|dsn)/i,zl=new RegExp(`(?:\\b|(?<=_))(${tn.source})\\s*[:=]\\s*([^\\s,;]+)`,"giu");var en="(?:\\s|\\\\+u(?:0009|000a|000d|0020))*",Fl=new RegExp("^"+en+"(?::|=|\\\\+u(?:003a|003d))"+en,"iu");(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]="07b08f80-aa60-5ffa-b969-2859839f3f2d")}catch{}})();var Bl=Gs(import.meta.url);(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]="bd65294f-dfa5-53d2-9691-c630884f2a5f")}catch{}})();var Kl=new Map([[u.USAGE,"invalid_command_usage"],[u.NOT_FOUND,"item_not_found"],[u.CONFLICT,"lock_conflict"],[u.DEPENDENCY_FAILED,"dependency_failed"]]);(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]="0d9d54cd-bd42-5958-83df-15316ea520c7")}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]="ab644545-f072-53c0-9ebf-72a62c237a2f")}catch{}})();var nu=Object.freeze({"&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'","&amp;":"&"});(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]="e7deff0d-d9c9-5250-b172-ab752ddd64a4")}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]="bc9e1b59-21cb-5dda-91c0-36e123734cd3")}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]="4b566486-120f-5aed-8d92-9e62ed996210")}catch{}})();function Xs(e,t){if(e==null)return[];let r=t?.separators??/,/,n=e.split(r).map(i=>i.trim()).filter(i=>i.length>0),o=t?.unique!==!1?Array.from(new Set(n)):n;return t?.sort===!0?[...o].sort():o}import Dt from"node:fs/promises";import Fe 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]="12ee7de1-dff4-53f1-8d0d-d8b1c1ebea42")}catch{}})();function Js(e){return"json_markdown"}function nn(e,t){return Fe.relative(e,t).replaceAll("\\","/")}function Qs(e){return String(e).replaceAll(/[^a-zA-Z0-9._-]+/g,"_").slice(0,120)}async function Zs(e,t,r){e!==t&&_e(await Dt.readFile(t,"utf8"),{format:"json_markdown",requireSupportedFormat:!0,schema:r})}async function ea(e,t,r="item_format:migrate",n=Be,o){if(t!=="toon")throw new Error("Only toon item-format migration targets are supported. Markdown item files are legacy read-only input.");let i=new Set,s=new Set,a=[],c=0,d=Js(t),l=Object.entries(n);for(let[p,_]of l){let f=Fe.join(e,_),g=[];try{g=await Dt.readdir(f)}catch{continue}let h=new Map;for(let w of g){let O=Fe.join(f,w),L=Yt(O);if(!L)continue;let Y=Fe.extname(w),Q=w.slice(0,w.length-Y.length).trim();if(Q.length===0)continue;let B=h.get(Q)??{};B[L]=O,h.set(Q,B)}let y=[...h.keys()].sort((w,O)=>w.localeCompare(O));for(let w of y){let O=h.get(w);c+=1;let L=O[d];if(!L)continue;let Y=O[t]??L,Q=Y===O[t]?t:d;try{let B=await Dt.readFile(Y,"utf8"),Mn=_e(B,{format:Q,requireSupportedFormat:!0,schema:o,onWarning:On=>a.push(`item_format_migration_parse_warning:${w}:${On}`)});await Zs(Y,L,o);let He=Ke(e,p,w,t,n),qt=et(Mn,{format:t,schema:o});await T(He)!==qt&&(await v(He,qt),a.push(...await me({path:He,scope:"project",op:r})),i.add(w)),await ue(L),s.add(nn(e,L)),a.push(...await me({path:L,scope:"project",op:`${r}:remove`})),i.add(w)}catch(B){a.push(`item_format_migration_skipped:${nn(e,Y)}:${Qs(B)}`)}}}return{target_format:t,scanned:c,migrated:[...i].sort((p,_)=>p.localeCompare(_)),removed:[...s].sort((p,_)=>p.localeCompare(_)),warnings: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]="12c59406-7e00-5fe1-bd93-c1f9d8537f01")}catch{}})();var ta=new Set(["completed","superseded"]);function ra(e){return e!==void 0&&ta.has(e)}function na(e){if(e.type.trim().toLowerCase()!=="plan")return!1;let t=e.plan_steps??[];return t.length>0&&t.every(r=>r.status==="completed")}import yu from"node:readline/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]="7c005413-4db4-58ce-a8ec-96ebc91a54f9")}catch{}})();import zt from"node:crypto";import{mkdirSync as Nu,rmSync as sa,statSync as Pu}from"node:fs";import{mkdir as Nt,readdir as aa,rm as Ft,stat as un}from"node:fs/promises";import{request as ca}from"node:http";import{request as da}from"node:https";import A 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]="4f455b67-536a-59be-8f25-1dc9c9c0b917")}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]="1496ef0f-a192-5491-b84b-ea7da6cce65e")}catch{}})();var la=A.join("runtime","telemetry","events.jsonl"),ua=A.join("runtime","telemetry","state.json"),ma=A.join("runtime","telemetry","otel-spans.jsonl"),fa=8,on=500,pa=1;var _a=100,ha=36e5,ga=3e4,sn=2e4,ya=1e3,Ea=25e3;var wa=864e5,mn=65536;var fn=15;var pn=[25,50,100,200],ba=3600*1e3,Sa=6e4;var q="PM_TELEMETRY_FLUSH_CHILD";var Ta="PM_TELEMETRY_HTTP_TIMEOUT_MS",va=globalThis.fetch;var tm=Promise.resolve(),an=Promise.resolve();var rm=new Set(ze),Ia=new Set(["1","true","yes","on"]);var nm=zt.randomUUID();var _n="(?:token|secret|password|passwd|api[_-]?key|apikey|authorization|cookie|session|credentials|bearer|literals?|regex(?:es)?|replacements?)",Aa=new RegExp(`\\b(${_n})\\s*([:=])\\s*([^\\s,;]+)`,"giu"),Ca=new RegExp(`(--${_n})(=|\\s+)([^\\s,;]+)`,"giu"),xa=/(^|[\s"'`(=])\/(?:[^\s"'`),;]+)/g,ka=/bearer\s+[a-z0-9._=-]+/giu,Ra=/\b(?:10\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d))\b/g;function Ue(e){return A.join(e,la)}function Ve(e){return A.join(e,ma)}function La(e){return A.dirname(Ue(e))}function hn(e){return A.join(e,ua)}function gn(e){return A.join(e,"runtime","telemetry","flush.lock")}function Ma(e){return A.join(e,"runtime","telemetry","flush.spawn.lock")}async function Oa(e){let t=await T(hn(e));if(!t||t.trim().length===0)return{};try{let r=JSON.parse(t);return typeof r!="object"||r===null||Array.isArray(r)?{}:r}catch{return{}}}async function R(e,t){try{await le(async()=>{let r={...await Oa(e),...t},n=Object.fromEntries(Object.entries(r).filter(([,o])=>o!==void 0).sort((o,i)=>o[0].localeCompare(i[0])));await v(hn(e),`${JSON.stringify(n,null,2)}
15
+ `,{createParentDirectories:!H(process.env[q])})},e)}catch{}}function yn(e){return e.replaceAll(Aa,(t,r,n)=>`${r}${n}[redacted]`).replaceAll(Ca,(t,r,n)=>`${r}${n}[redacted]`)}function En(e){return e.replaceAll(xa,(t,r)=>`${r}[redacted_path]`)}function wn(e){let t=e>=65&&e<=90,r=e>=97&&e<=122,n=e>=48&&e<=57;return t||r||n}function bn(e){if(!e)return!1;let t=e.charCodeAt(0);return wn(t)?!0:e==="."||e==="_"||e==="%"||e==="+"||e==="-"}function Sn(e){if(!e)return!1;let t=e.charCodeAt(0);return wn(t)?!0:e==="."||e==="-"}function Da(e){let t=e.indexOf("@");if(t<=0||t!==e.lastIndexOf("@")||t===e.length-1)return!1;let r=e.slice(0,t),n=e.slice(t+1),o=n.lastIndexOf(".");if(o<=0||o===n.length-1||n.length-(o+1)<2)return!1;for(let i of r)if(!bn(i))return!1;for(let i of n)if(!Sn(i))return!1;return!0}function Na(e){let t="",r=0;for(;r<e.length;){let n=e.indexOf("@",r);if(n<0){t+=e.slice(r);break}let o=n-1;for(;o>=r&&bn(e[o]);)o-=1;o+=1;let i=n+1;for(;i<e.length&&Sn(e[i]);)i+=1;let s=e.slice(o,i);if(Da(s)){t+=e.slice(r,o),t+="[redacted_email]",r=i;continue}t+=e.slice(r,n+1),r=n+1}return t}function Tn(e){return Na(e).replaceAll(ka,"bearer [redacted_token]").replaceAll(Ra,"[redacted_ip]")}function Pa(e){let t=Tn(e),r=yn(t),n=En(r),o=n.trim();return o.startsWith("/")&&o.length>1?"[redacted_path]":n.length>512?`${n.slice(0,509)}...`:n}function $a(e){let t=Tn(e),r=yn(t),n=En(r),o=n.trim();return o.startsWith("/")&&o.length>1?"[redacted_path]":n.length>2048?`${n.slice(0,2045)}...`:n}function $t(e,t="redacted"){return t==="max"?$a(e):Pa(e)}function za(e){let t=e?.trim().toLowerCase();return t==="minimal"||t==="redacted"||t==="max"?t:"redacted"}function H(e){return Ia.has((e??"").trim().toLowerCase())}function cn(){let e=process.env[Ta]?.trim();if(!e)return sn;let t=Number(e);return Number.isFinite(t)?Math.min(Ea,Math.max(ya,Math.trunc(t))):sn}async function vn(e,t,r){let n=new URL(e);if(globalThis.fetch!==va){let i=new AbortController,s,a=new Promise((c,d)=>{s=setTimeout(()=>{i.abort(),d(new Error("telemetry_http_timeout"))},cn())});try{return(await Promise.race([globalThis.fetch(e,{method:"POST",headers:t,body:r,signal:i.signal}),a])).status}finally{clearTimeout(s)}}let o=n.protocol==="https:"?da:n.protocol==="http:"?ca:void 0;if(!o)throw new Error(`telemetry_http_protocol_unsupported_${n.protocol}`);return new Promise((i,s)=>{let a=cn(),c={method:"POST",headers:{...t,"content-length":Buffer.byteLength(r)},signal:AbortSignal.timeout(a),autoSelectFamilyAttemptTimeout:Math.min(5e3,a)},d=o(n,c,l=>{l.once("error",s),l.once("end",()=>i(l.statusCode)),l.resume()});d.once("error",s),d.end(r)})}async function Fa(e){let t=await te(e);if(!t.telemetry.enabled||de().telemetry_disabled)return null;if(t.telemetry.installation_id.trim().length===0){if(er(e))return null;t.telemetry.installation_id=zt.randomUUID(),await ye(e,t,"telemetry:install_id")}return{installationId:t.telemetry.installation_id,endpoint:t.telemetry.endpoint,retentionDays:Math.max(1,Math.trunc(t.telemetry.retention_days)),captureLevel:za(t.telemetry.capture_level)}}function In(e){let t=[];for(let r of e.split(`
16
+ `)){let n=r.trim();if(n.length!==0)try{let o=JSON.parse(n);o&&typeof o=="object"&&o.event&&typeof o.event=="object"&&typeof o.attempts=="number"&&(o.client_schema_version===void 0||typeof o.client_schema_version=="number"&&Number.isFinite(o.client_schema_version))&&t.push(o)}catch{}}return t}function An(e){let t=Math.min(ga*2**Math.max(e-1,0),ha);return new Date(Date.now()+t).toISOString()}function Ut(e){if(typeof e!="string"||e.trim().length===0)return!0;let t=Date.parse(e);return Number.isNaN(t)?!0:t<=Date.now()}function Cn(e){return Ut(e.next_attempt_after)}function xn(e){let t=Number.isFinite(e)?Math.max(1,Math.trunc(e)):1;return Date.now()-t*wa}function Ua(e,t){let r=e.event?.occurred_at;if(typeof r!="string"||r.trim().length===0)return!1;let n=Date.parse(r);return Number.isNaN(n)?!1:n<t}function je(e,t){let r=xn(t),n=[],o=0;for(let i of e){if(JSON.stringify(i).length>mn||Ua(i,r)||i.attempts>=fn){o+=1;continue}n.push(i)}return{entries:n,prunedCount:o}}async function kn(e,t){let r=t.map(o=>JSON.stringify(o)).join(`
17
+ `),n=r.length>0?`${r}
18
+ `:"";for(let o=0;;o+=1)try{await v(Ue(e),n,{createParentDirectories:!H(process.env[q])});return}catch(i){let s=pn[o];if(s===void 0||!Rn(i))throw i;await Ln(s)}}function Rn(e){if(typeof e!="object"||e===null||!("code"in e))return!1;let t=e.code;return t==="EACCES"||t==="EBUSY"||t==="EPERM"}function Ln(e){return new Promise(t=>{setTimeout(t,e)})}function Va(e){let t=JSON.stringify([e.endpoint,e.enqueued_at,e.payload]);return zt.createHash("sha256").update(t).digest("hex").slice(0,32)}function Vt(e){let t=[];for(let r of e.split(`
19
+ `)){let n=r.trim();if(n.length!==0)try{let o=JSON.parse(n);o&&typeof o=="object"&&typeof o.endpoint=="string"&&o.endpoint.trim().length>0&&"payload"in o&&typeof o.attempts=="number"&&Number.isFinite(o.attempts)&&((typeof o.id!="string"||o.id.length===0)&&(o.id=Va(o)),t.push(o))}catch{}}return t}function ja(e,t){if(typeof e.enqueued_at!="string"||e.enqueued_at.trim().length===0)return!1;let r=Date.parse(e.enqueued_at);return Number.isNaN(r)?!1:r<t}function jt(e,t){let r=xn(t),n=[],o=0;for(let i of e){if(JSON.stringify(i).length>mn||ja(i,r)||i.attempts>=fn){o+=1;continue}n.push(i)}if(n.length>on){let i=n.length-on;return o+=i,{entries:n.slice(i),prunedCount:o}}return{entries:n,prunedCount:o}}async function qa(e,t){let r=t.map(o=>JSON.stringify(o)).join(`
20
+ `),n=r.length>0?`${r}
21
+ `:"";for(let o=0;;o+=1)try{await v(Ve(e),n,{createParentDirectories:!H(process.env[q])});return}catch(i){let s=pn[o];if(s===void 0||!Rn(i))throw i;await Ln(s)}}async function dn(e,t,r,n){return le(async()=>{let o=await T(Ve(e)),i=o===null?[]:Vt(o),s=[];for(let c of i){if(r.has(c.id))continue;let d=n.get(c.id);s.push(d?{...c,attempts:d.attempts,next_attempt_after:d.next_attempt_after}:c)}let{entries:a}=jt(s,t);return await qa(e,a),a.length},e)}async function Ha(e,t){let r=await T(Ve(e));if(r===null||r.trim().length===0){await R(e,{pending_otel_spans:0});return}let n=Vt(r),{entries:o,prunedCount:i}=jt(n,t),s=o.filter(g=>Ut(g.next_attempt_after)).slice(0,fa);if(s.length===0){let g=i>0?await dn(e,t,new Set,new Map):o.length;await R(e,{pending_otel_spans:g});return}let a=D(),c=new Set,d=new Map,l=0,p;await Promise.all(s.map(async g=>{try{let h=await vn(g.endpoint,{"content-type":"application/json"},JSON.stringify(g.payload));if(h<200||h>=300)throw new Error(`local_otel_export_http_${h}`);c.add(g.id),l+=1}catch(h){p=h instanceof Error?$t(h.message,"redacted"):"local_otel_export_failed";let y=g.attempts+1;d.set(g.id,{attempts:y,next_attempt_after:An(y)})}}));let _=await dn(e,t,c,d),f={pending_otel_spans:_,last_otel_attempt_at:a};l>0&&(f.last_otel_success_at=a),p!==void 0?(f.last_otel_failure_at=a,f.last_otel_failure_error=p):_===0&&(f.last_otel_failure_at=void 0,f.last_otel_failure_error=void 0),await R(e,f)}async function Ya(e,t,r){try{await Ga(e,t,r)}catch{}try{await Ha(e,r)}catch{}}async function Ba(e,t=ba){try{let r=La(e),n=await aa(r,{withFileTypes:!0}),o=Date.now()-Math.max(0,t);await Promise.all(n.filter(i=>i.isFile()&&/^\.events\.jsonl\.\d+\.\d+\.[a-f0-9]+\.tmp$/.test(i.name)).map(async i=>{let s=A.join(r,i.name);(await un(s)).mtimeMs<o&&await Ft(s,{force:!0})}))}catch{}}async function le(e,t=ee(process.cwd()),r=5e3){let n=an.catch(()=>{}).then(()=>Gt(async()=>{let o=await pe(t,"telemetry-queue",60,"telemetry",!1,!1,r,{createParentDirectories:!H(process.env[q])});try{return Zt(t),await e()}finally{await o()}}));return an=n.catch(()=>{}),n}async function qe(e){let t=await T(Ue(e));return t===null||t.trim().length===0?[]:In(t)}async function Pt(e,t,r){return le(async()=>{let n=await qe(e),{entries:o}=je(n,r),i=o.filter(s=>!t.has(s.event.event_id));return await kn(e,i),i},e)}async function Wa(e,t,r,n){return le(async()=>{let o=await qe(e),{entries:i}=je(o,n),s=i.map(a=>{if(!t.has(a.event.event_id))return a;let c=a.attempts+1;return{...a,attempts:c,last_attempt_at:r,next_attempt_after:An(c)}});return await kn(e,s),s},e)}async function Ga(e,t,r){await Ba(e);let n=t.trim();if(n.length===0)return;let o=await T(Ue(e));if(o===null||o.trim().length===0){await R(e,{endpoint:n,queue_entries:0});return}let i=In(o);if(i.length===0){await R(e,{endpoint:n,queue_entries:0});return}let{entries:s,prunedCount:a}=je(i,r);if(s.length===0){let f=await Pt(e,new Set,r);await R(e,{endpoint:n,queue_entries:f.length});return}let c=s.filter(f=>Cn(f)).slice(0,_a);if(c.length===0){let f=a>0?await Pt(e,new Set,r):s;await R(e,{endpoint:n,queue_entries:f.length});return}let d=new Set(c.map(f=>f.event.event_id)),l=D(),p={"content-type":"application/json"},_=process.env.PM_TELEMETRY_INGEST_KEY?.trim();_&&(p["x-pm-telemetry-key"]=_);try{let f=await vn(n,p,JSON.stringify({schema_version:pa,events:c.map(g=>g.event)}));if(f<200||f>=300)throw new Error(`telemetry_flush_http_${f}`)}catch(f){let g=await Wa(e,d,l,r),h=f instanceof Error?$t(f.message,"redacted"):"telemetry_flush_failed";await R(e,{endpoint:n,queue_entries:g.length,last_attempted_flush_at:l,last_failed_flush_at:l,last_failed_flush_error:h});return}try{let f=await Pt(e,d,r);await R(e,{endpoint:n,queue_entries:f.length,last_attempted_flush_at:l,last_successful_flush_at:l,last_failed_flush_at:void 0,last_failed_flush_error:void 0})}catch(f){let g=f instanceof Error?$t(f.message,"redacted"):"telemetry_flush_failed",h=await qe(e).catch(()=>s);await R(e,{endpoint:n,queue_entries:h.length,last_attempted_flush_at:l,last_failed_flush_at:l,last_failed_flush_error:g})}}async function Ka(e){let t=gn(e);H(process.env[q])||await Nt(A.dirname(t),{recursive:!0});try{return await Nt(t),!0}catch(r){if(typeof r!="object"||r===null||!("code"in r)||r.code!=="EEXIST")throw r}try{let r=await un(t);return Date.now()-r.mtimeMs<Sa?!1:(await Ft(t,{recursive:!0,force:!0}),await Nt(t),!0)}catch{return!1}}function Xa(e){try{sa(e,{recursive:!0,force:!0})}catch{}}function Ja(e){Xa(Ma(e))}async function Qa(e,t,r){let n=await Ka(e);if(Ja(e),!n)return!1;try{await Ya(e,t,r)}finally{try{await Ft(gn(e),{recursive:!0,force:!0})}catch{}}return!0}async function ln(e,t){let r=new Set;try{let{entries:n}=je(await qe(e),t);for(let o of n.filter(Cn))r.add(`event:${o.event.event_id}`)}catch{}try{let n=await T(Ve(e));if(n!==null)for(let o of jt(Vt(n),t).entries)Ut(o.next_attempt_after)&&r.add(`span:${o.id}`)}catch{}return r}async function om(e=ee(process.cwd())){if(!de().telemetry_disabled)try{await rt(e,async()=>{let t=H(process.env[q]),r=!0;for(;r;){if(!(await te(e)).telemetry.enabled)return;let n=await le(()=>Fa(e),e);if(!n)return;let o=t?await ln(e,n.retentionDays):new Set;if(!await Qa(e,n.endpoint,n.retentionDays)||!t)return;let i=await ln(e,n.retentionDays);r=i.size>0&&(i.size!==o.size||[...i].some(s=>!o.has(s)))}},()=>H(process.env[q]))}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]="01b99f26-9b64-57a4-ade7-21c4eb2181ab")}catch{}})();export{md as a,mi as b,pi as c,hi as d,gi as e,st as f,Dn as g,sr as h,ar as i,Pn as j,$n as k,zn as l,Fn as m,mr as n,Wn as o,nc as p,Gn as q,oc as r,ne as s,Xn as t,be as u,ic as v,Jn as w,we as x,sc as y,Se as z,Zn as A,eo as B,ki as C,oi as D,Yc as E,Cr as F,Bc as G,Ce as H,Wc as I,li as J,pd as K,yi as L,Ei as M,yt as N,bi as O,Et as P,Si as Q,kd as R,vi as S,Mr as T,Ii as U,Ai as V,xi as W,Fd as X,Mi as Y,Yd as Z,Pi as _,zi as $,to as aa,Fi as ba,Ui as ca,Re as da,ds as ea,_c as fa,ct as ga,hr as ha,dt as ia,_o as ja,ho as ka,yc as la,gr as ma,X as na,lt as oa,mt as pa,xt as qa,pl as ra,kt as sa,Ne as ta,Yr as ua,Pe as va,Rt as wa,Lt as xa,Mt as ya,Ot as za,Jr as Aa,Qr as Ba,Nl as Ca,ze as Da,de as Ea,Yo as Fa,Tr as Ga,Wo as Ha,Go as Ia,Ko as Ja,kc as Ka,ht as La,Ir as Ma,vr as Na,Qo as Oa,Zo as Pa,Ar as Qa,ri as Ra,Xs as Sa,ea as Ta,ra as Ua,na as Va,pa as Wa,fn as Xa,le as Ya,om as Za};
22
+ //# sourceMappingURL=chunk-I642DXOT.js.map
@@ -0,0 +1,91 @@
1
+ import{Fa as He,Ha as fe,Pa as Ct,Xa as Tt,aa as Et,cb as St,da as vt,db as pe,fa as It,m as Pe,n as wt,va as je,wa as $e,x as me,xa as K,y as bt,z as q}from"./chunk-YU7QOYYV.js";import{b as ce}from"./chunk-3SRX77ES.js";import{h as gt}from"./chunk-4PW5XWVI.js";import{Aa as Ne,Ba as Me,Ca as R,Dc as G,Md as ht,Na as ut,Nd as _t,Ra as mt,Sa as ft,Ub as pt,a as se,ic as Y,kc as Oe,lc as le,ma as st,mc as L,na as ct,nc as De,oc as ue,pc as Fe,qa as dt,sc as Ae,va as de,xa as lt,xd as yt,yd as Le}from"./chunk-2V6NMNYN.js";import{A as y,B as at,C as X,E as A,I as M,t as F,y as rt,z as h}from"./chunk-BPE6JTKL.js";import fi from"node:crypto";import ye from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="664124e5-715d-5f86-ae69-89f203db76c3")}catch{}})();function Rt(e){let i=[],t=!1;for(let o of(e??"").toLowerCase()){let n=o.charCodeAt(0),r=n>=48&&n<=57,a=n>=97&&n<=122;if(!r&&!a){t=i.length>0;continue}t&&(i.push("-"),t=!1),i.push(o)}return i.length===0?"pm-":`${i.join("")}-`}function V(e){let i=e.trim().toLowerCase();return i.startsWith("#")&&(i=i.slice(1)),i}function J(e,i){let t=Rt(i),o=V(e);return o.startsWith(t)?o:`${t}${o}`}function pi(e){let i=yt(e);if(i!==void 0)return i;let t="";for(let o=0;o<e;o+=1)t+=fi.randomInt(0,36).toString(36);return t}async function yi(e,i,t){let o=[...new Set(Object.values(t))].flatMap(n=>[ye.join(e,n,`${i}.md`),ye.join(e,n,`${i}.toon`)]);return o.push(ye.join(e,"history",`${i}.jsonl`)),(await Promise.all(o.map(n=>X(n)))).some(Boolean)}var xt=4,kt=12;function hi(e){return typeof e!="number"||!Number.isFinite(e)?xt:Math.min(kt,Math.max(xt,Math.trunc(e)))}async function Ko(e,i,t={}){let o=hi(t.tokenLength),n=Math.min(o+6,kt),r=0;for(;o<=n;){for(let a=0;a<32;a+=1){let s=`${Rt(i)}${pi(o)}`;if(!await(t.probeExisting===!1?X(ye.join(e,"history",`${s}.jsonl`)):yi(e,s,t.typeToFolder??F)))return s;r+=1}o+=1}throw new Error(`Unable to generate unique id after ${r} attempts`)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="5db05e2f-4742-526b-b1c8-b97ff302b40e")}catch{}})();function Q(e,i=!1){let t=e[0];if(t?.op!=="history_compact_baseline")return 0;let o=t.context?.history_compaction,n=typeof o=="object"&&o!==null&&"version_offset"in o?o.version_offset:void 0;if(typeof n=="number"&&Number.isSafeInteger(n)&&n>=0&&Number.isSafeInteger(n+e.length))return n;if(i)return null;throw new y("This compacted stream has no trustworthy version offset; numeric history addresses are unavailable.",h.USAGE,{code:"history_version_mapping_unavailable",required:"Use a retained timestamp or recover the pre-compaction stream from version control.",nextSteps:["Run pm history <id> --full to inspect the retained timestamps and checkpoint evidence."]})}import Nt from"node:fs/promises";import Z from"node:path";import{isUtf8 as _i}from"node:buffer";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="697f1dbe-8315-5901-ab11-e0c5211dbdbf")}catch{}})();var gi=1048576,wi=4194304;async function Mt(e,i){let t=Z.dirname(e);for(;t!==Z.parse(e).root;){let n=await Nt.stat(t).catch(r=>{if(A(r))return null;throw r});if(n!==null){if(!n.isDirectory())throw new y("Workflow policy storage ancestor must be a directory.",h.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Restore the policy or approval history directory before retrying."]});break}t=Z.dirname(t)}let o=await Nt.open(e,"r").catch(n=>{if(A(n))return null;throw n});if(o===null)return null;try{let n=(await o.stat()).size,r=Buffer.alloc(Math.min(i,n)+1),a=0;for(;a<r.length;){let s=await o.read(r,a,r.length-a,a);if(s.bytesRead===0)break;a+=s.bytesRead}if(a===r.length||!_i(r.subarray(0,a)))throw new y("Workflow policy input exceeds its byte bound or is not valid UTF-8.",h.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Inspect the policy and approval history; reduce the declaration or use verified history compaction before retrying."]});return r.toString("utf8",0,a)}finally{await o.close()}}function bi(e){if(e===null)return{version:1,enforcement:"advise",policies:[]};let i;try{i=JSON.parse(e)}catch{throw new y("schema/policies.json must contain valid JSON.",h.CONFLICT,{code:"workflow_policy_registry_invalid",nextSteps:["Restore valid policy JSON before retrying the mutation."]})}return ut(i)}async function Ei(e){return bi(await Mt(Z.join(e,"schema","policies.json"),gi))}async function vi(e,i){let t=await Mt(R(e,i),wi);if(t===null)return[];let o;try{if(o=t.split(/\r?\n/).filter(n=>n.trim()).map(n=>JSON.parse(n)),!fe(o).ok)throw new Error("invalid chain")}catch{throw new y("Approval evidence requires a valid item history chain.",h.CONFLICT,{code:"workflow_policy_approval_history_invalid",nextSteps:[`Run pm history ${i} --verify before recording or using an approval.`]})}return o.flatMap(n=>{let r=n.context?.workflow_approval;if(n.op!=="policy_approve"||n.record_hash_version!==1||typeof n.record_hash!="string"||typeof r!="object"||r===null)return[];let a=r;return typeof a.policy_fingerprint!="string"||typeof a.content_fingerprint!="string"?[]:[{policy_fingerprint:a.policy_fingerprint,content_fingerprint:a.content_fingerprint,author:n.author}]})}async function Ii(e,i,t){let o=t.before?.status!==t.after?.status&&i.policies.some(a=>a.rule.kind==="approval"&&mt(a,t)),n=t.before?.id??t.after?.id,r=o&&typeof n=="string"?await vi(e,n):[];return ft(i,{...t,approvals:r})}async function We(e){let i=await Ei(e.pmRoot),t=await Ii(e.pmRoot,i,{operation:e.operation,author:e.author,before:e.before?{...e.before.metadata,body:e.before.body}:null,after:e.after?{...e.after.metadata,body:e.after.body}:null});if(t.allowed)return t;let o=t.decisions.filter(l=>!l.satisfied&&l.effect==="refuse"),n=[],r="";if(!e.dryRun)try{let l=await Ct({pmRoot:e.pmRoot,op:"policy_refused",author:e.author,context:{item_id:e.after?.metadata.id??e.before?.metadata.id,operation:e.operation,workflow_policies:t.decisions},message:"Workflow policy refused a proposed item mutation.",lockTtlSeconds:e.settings.locks.ttl_seconds,lockWaitMs:e.settings.locks.wait_ms});n.push({path:"history/_workspace.jsonl",op:"policy_refused",record_hash:l.entry.record_hash}),r=" Audit appended to tracker-relative history/_workspace.jsonl; retain it with the workspace changes. Each refused attempt records its own audit event."}catch(l){let p=new y("Workflow policy refusal could not be recorded in workspace history.",h.CONFLICT,{code:"workflow_policy_audit_failed",nextSteps:["Resolve workspace-history lock or storage failures, then retry the refused mutation; no item changes were written."]});throw p.cause=l,p}let a=o.slice(0,3).map(l=>({policy_id:l.policy_id,rule:l.rule,description:i.policies.find(p=>p.id===l.policy_id).description,missing_fields:l.missing_fields})),s=[...new Set(a.flatMap(l=>l.missing_fields))],d=a.map(l=>`${l.policy_id} (${l.rule})`).join(", "),c=o.length>3?` and ${o.length-3} more`:"",m=e.after?.metadata.id??e.before.metadata.id,u=s.map(l=>{if(e.before===null)return`Supply ${l} in the original ${e.operation} request, then retry; the item was not created.`;let p=st("update",l);return p===void 0?`Supply ${l} using its declared SDK or package mutation contract, then retry.`:G(["update",m,ct("update",p),`<${l}>`,"--pm-path",Z.resolve(e.pmRoot)])});throw new y(`Workflow policy refused ${e.operation}: ${d}${c}.${s.length?` Missing: ${s.join(", ")}.`:""}${r}`,h.CONFLICT,{code:"workflow_policy_refused",side_effects:n,reason:a.map(l=>l.policy_id).join(","),policy_violations:a,policy_violation_count:o.length,required:s.length?`Supply missing fields: ${s.join(", ")}, then retry the refused mutation.`:"Satisfy the declared workflow policy before retrying.",why:a.map(l=>l.description).filter(Boolean).join(" ")||void 0,recovery:{missing_required_fields:s},nextSteps:[...u,...new Set(o.slice(0,3).filter(l=>l.missing_fields.length===0).map(l=>l.remediation)),...o.length>3?[`Inspect all policies with pm schema policies before retrying ${e.operation}.`]:[]]})}import{AsyncLocalStorage as Ci}from"node:async_hooks";import{channel as Ti}from"node:diagnostics_channel";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="b2b2d49a-bb8c-54d7-89d2-1dbe76879129")}catch{}})();var Ue=new Ci,Be=Ti("@unbrained/pm-cli/item-metadata-enumeration/v1");function he(e){Be.publish(e)}async function hn(e){let i={enumeration_calls:0,metadata_rows:0},t=o=>{Ue.getStore()?.includes(i)&&(i.enumeration_calls+=1,i.metadata_rows+=o)};Be.subscribe(t);try{return{result:await Ue.run([...Ue.getStore()??[],i],e),work:{...i}}}finally{Be.unsubscribe(t)}}import{AsyncLocalStorage as Si}from"node:async_hooks";import _e from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="39bf765c-1374-5ba5-b8a9-44137f80c976")}catch{}})();var ee=new Si;function bn(e,i){return ee.run([...ee.getStore()??[],{...e,pmRoot:_e.resolve(e.pmRoot)}],i)}function ze(e,i){for(let t of ee.getStore()??[])t.pmRoot===_e.resolve(e)&&t.id===i.metadata.id&&t.validate(i)}function Ot(e,i){for(let t of ee.getStore()??[])t.pmRoot===_e.resolve(e)&&t.id===i.metadata.id&&t.committed?.(i)}function Dt(e,i){return Object.assign({},...(ee.getStore()??[]).filter(t=>t.pmRoot===_e.resolve(e)&&t.id===i.metadata.id).map(t=>t.historyContext))}import P from"node:fs/promises";import At from"node:path";import{randomUUID as xi}from"node:crypto";import{createRequire as Ri}from"node:module";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="84a3dae8-69b6-589d-a8ec-11f77c1d103a")}catch{}})();var ki="metadata-query-index.sqlite",te="5",Xe;function ie(){return Xe!==void 0||(Xe=It(process.versions.node,Ri(import.meta.url))),Xe}function Ft(e,i){return Math.max(0,Math.floor(e===void 0?i:e))}function W(e){return At.join(e,"runtime",ki)}function Ni(e){e.exec(`
2
+ PRAGMA foreign_keys = ON;
3
+ PRAGMA journal_mode = OFF;
4
+ PRAGMA synchronous = OFF;
5
+ CREATE TABLE metadata (
6
+ key TEXT PRIMARY KEY,
7
+ value TEXT NOT NULL
8
+ ) STRICT;
9
+ CREATE TABLE items (
10
+ id TEXT PRIMARY KEY,
11
+ relative_path TEXT NOT NULL UNIQUE,
12
+ metadata_json TEXT NOT NULL,
13
+ status TEXT NOT NULL,
14
+ type TEXT NOT NULL,
15
+ priority INTEGER NOT NULL,
16
+ updated_at TEXT NOT NULL,
17
+ created_at TEXT NOT NULL,
18
+ parent TEXT,
19
+ assignee TEXT,
20
+ sprint TEXT,
21
+ release TEXT
22
+ ) STRICT;
23
+ CREATE INDEX items_default_order
24
+ ON items(priority, updated_at DESC, id);
25
+ CREATE INDEX items_status_default_order
26
+ ON items(status, priority, updated_at DESC, id);
27
+ CREATE INDEX items_type_default_order
28
+ ON items(type, priority, updated_at DESC, id);
29
+ CREATE INDEX items_parent_default_order
30
+ ON items(parent, priority, updated_at DESC, id);
31
+ CREATE TABLE item_metadata_keys (
32
+ item_id TEXT NOT NULL,
33
+ key TEXT NOT NULL,
34
+ PRIMARY KEY(item_id, key),
35
+ FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
36
+ ) STRICT;
37
+ CREATE INDEX item_metadata_keys_key_item
38
+ ON item_metadata_keys(key, item_id);
39
+ CREATE TABLE item_linked_files (
40
+ item_id TEXT NOT NULL,
41
+ path TEXT NOT NULL,
42
+ scope TEXT NOT NULL,
43
+ note TEXT,
44
+ PRIMARY KEY(item_id, path, scope),
45
+ FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
46
+ ) STRICT;
47
+ CREATE INDEX item_linked_files_path_scope_item
48
+ ON item_linked_files(path, scope, item_id);
49
+ CREATE VIRTUAL TABLE item_search USING fts5(
50
+ id UNINDEXED,
51
+ title,
52
+ description,
53
+ tags,
54
+ tokenize = 'unicode61'
55
+ );
56
+ `)}function we(e,i,t){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(i,t)}function Lt(e,i){let t=i.metadata;e.prepare(`INSERT INTO items(
57
+ id, relative_path, metadata_json, status, type, priority,
58
+ updated_at, created_at, parent, assignee, sprint, release
59
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
60
+ ON CONFLICT(id) DO UPDATE SET
61
+ relative_path = excluded.relative_path,
62
+ metadata_json = excluded.metadata_json,
63
+ status = excluded.status,
64
+ type = excluded.type,
65
+ priority = excluded.priority,
66
+ updated_at = excluded.updated_at,
67
+ created_at = excluded.created_at,
68
+ parent = excluded.parent,
69
+ assignee = excluded.assignee,
70
+ sprint = excluded.sprint,
71
+ release = excluded.release`).run(t.id,i.relativePath,JSON.stringify(t),t.status,t.type,t.priority,t.updated_at,t.created_at,t.parent??null,t.assignee??null,t.sprint??null,t.release??null),e.prepare("DELETE FROM item_metadata_keys WHERE item_id = ?").run(t.id),e.prepare("DELETE FROM item_linked_files WHERE item_id = ?").run(t.id),e.prepare("DELETE FROM item_search WHERE rowid = (SELECT rowid FROM items WHERE id = ?)").run(t.id),e.prepare("INSERT INTO item_search(rowid, id, title, description, tags) SELECT rowid, ?, ?, ?, ? FROM items WHERE id = ?").run(t.id,t.title,t.description,t.tags.join(" "),t.id);let o=e.prepare("INSERT INTO item_metadata_keys(item_id, key) VALUES (?, ?)");for(let r of Object.keys(t))o.run(t.id,r);let n=e.prepare("INSERT INTO item_linked_files(item_id, path, scope, note) VALUES (?, ?, ?, ?)");for(let r of i.linkedFiles??[])n.run(t.id,r.path,r.scope,r.note??null)}async function Pt(e){let i=W(e.pmRoot),t=ie();if(!t){await P.rm(i,{force:!0});return}await P.mkdir(At.dirname(i),{recursive:!0});let o=`${i}.${xi()}.tmp`,n;try{n=new t(o),Ni(n),n.exec("BEGIN IMMEDIATE"),we(n,"version",te),we(n,"context_fingerprint",e.contextFingerprint),we(n,"source_cursor",e.sourceCursor);for(let r of e.rows)Lt(n,r);n.exec("COMMIT"),n.close(),n=void 0,await P.rm(i,{force:!0}),await P.rename(o,i)}catch(r){throw n?.close(),await Promise.allSettled([P.rm(o,{force:!0})]),r}}function be(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(i=>[String(i.key),String(i.value)]))}async function jt(e){let i=ie();if(!i)return!1;let t=W(e.pmRoot),o;try{await P.access(t),o=new i(t),o.exec("PRAGMA foreign_keys = ON");let n=be(o);if(n.version!==te||n.context_fingerprint!==e.contextFingerprint||n.source_cursor!==e.expectedSourceCursor)return o.close(),!1;o.exec("BEGIN IMMEDIATE");let r=o.prepare("DELETE FROM items WHERE relative_path = ?"),a=o.prepare("SELECT rowid FROM items WHERE relative_path = ?"),s=o.prepare("DELETE FROM item_search WHERE rowid = ?");for(let d of e.deletedRelativePaths??[]){let c=a.get(d);r.run(d),c&&s.run(c.rowid)}return e.row&&Lt(o,e.row),we(o,"source_cursor",e.sourceCursor),o.exec("COMMIT"),o.close(),!0}catch{try{o?.exec("ROLLBACK")}catch{}return o?.close(),!1}}function ge(e,i,t,o,n){!o||o.length===0||(e.push(`${t} ${n} (${o.map(()=>"?").join(", ")})`),i.push(...o))}function Mi(e){let i=[],t=[];ge(i,t,"status",e.statuses,"IN"),ge(i,t,"status",e.excludeStatuses,"NOT IN"),ge(i,t,"type",e.types,"IN"),ge(i,t,"id",e.ids,"IN");for(let o of e.metadataKeys??[])i.push("EXISTS (SELECT 1 FROM item_metadata_keys AS indexed_key WHERE indexed_key.item_id = items.id AND indexed_key.key = ?)"),t.push(o);for(let[o,n]of[["parent",e.parent],["assignee",e.assignee],["sprint",e.sprint],["release",e.release]])n!==void 0&&(i.push(`${o} = ?`),t.push(n));return e.priority!==void 0&&(i.push("priority = ?"),t.push(e.priority)),{where:i.length===0?"":` WHERE ${i.join(" AND ")}`,parameters:t}}async function Rn(e){let i=ie();if(!i)return null;let t=e.query??{},{where:o,parameters:n}=Mi(t),r;try{r=new i(W(e.pmRoot),{readOnly:!0});let a=be(r);if(a.version!==te||a.source_cursor!==e.expectedSourceCursor)return r.close(),null;let s=r.prepare(`SELECT COUNT(*) AS count FROM items${o}`).get(...n),d=[],c="";t.limit!==void 0?(c+=" LIMIT ?",d.push(Math.max(0,Math.floor(t.limit))),t.offset!==void 0&&(c+=" OFFSET ?",d.push(Math.max(0,Math.floor(t.offset))))):t.offset!==void 0&&(c+=" LIMIT -1 OFFSET ?",d.push(Math.max(0,Math.floor(t.offset))));let m=r.prepare(`SELECT metadata_json FROM items${o}
72
+ ORDER BY ${t.terminalStatuses&&t.terminalStatuses.length>0?`CASE WHEN status IN (${t.terminalStatuses.map(()=>"?").join(", ")}) THEN 1 ELSE 0 END ASC, `:""}priority ASC, updated_at DESC, id ASC${c}`).all(...n,...t.terminalStatuses??[],...d).map(u=>{let l=JSON.parse(String(u.metadata_json));if(!l.id)throw new TypeError("Indexed metadata row has no id");return l});return r.close(),{source_cursor:a.source_cursor,total:Number(s.count),items:m}}catch{return r?.close(),null}}async function kn(e){let i=ie();if(!i||e.paths.length===0)return null;let t;try{t=new i(W(e.pmRoot),{readOnly:!0});let o=be(t);if(o.version!==te||o.source_cursor!==e.expectedSourceCursor)return t.close(),null;let n=e.paths.map(()=>"?").join(", "),r=e.scope===void 0?"":" AND scope = ?",a=[...e.paths,...e.scope===void 0?[]:[e.scope]],s=`path IN (${n})${r}`,d=t.prepare(`SELECT COUNT(DISTINCT item_id) AS count
73
+ FROM item_linked_files
74
+ WHERE ${s}`).get(...a),c=Ft(e.limit,50),m=Ft(e.offset,0),u=t.prepare(`SELECT items.id, items.metadata_json
75
+ FROM items
76
+ WHERE EXISTS (
77
+ SELECT 1 FROM item_linked_files
78
+ WHERE item_linked_files.item_id = items.id AND ${s}
79
+ )
80
+ ORDER BY items.priority ASC, items.updated_at DESC, items.id ASC
81
+ LIMIT ? OFFSET ?`).all(...a,c,m),l=[];if(u.length>0){let p=u.map(_=>String(_.id)),f=t.prepare(`SELECT item_id, path, scope, note
82
+ FROM item_linked_files
83
+ WHERE item_id IN (${p.map(()=>"?").join(", ")})
84
+ AND ${s}
85
+ ORDER BY path ASC, scope ASC`).all(...p,...a),g=new Map(p.map(_=>[_,[]]));for(let _ of f){let b=String(_.item_id),T=g.get(b);T.push({path:String(_.path),scope:String(_.scope),..._.note===null?{}:{note:String(_.note)}}),g.set(b,T)}for(let _ of u){let b=JSON.parse(String(_.metadata_json));l.push({item:b,files:g.get(String(_.id))})}}return t.close(),{source_cursor:o.source_cursor,total:Number(d.count),matches:l}}catch{return t?.close(),null}}async function Nn(e){let i=ie();if(!i)return null;let t;try{t=new i(W(e.pmRoot),{readOnly:!0});let o=be(t);if(o.version!==te||o.source_cursor!==e.expectedSourceCursor)return t.close(),null;let n=t.prepare(`SELECT items.metadata_json
86
+ FROM item_search
87
+ JOIN items ON items.id = item_search.id
88
+ WHERE item_search MATCH ?
89
+ ORDER BY bm25(item_search), items.priority, items.updated_at DESC, items.id
90
+ LIMIT ?`).all(e.query,Math.max(0,Math.floor(e.limit))).map(r=>JSON.parse(String(r.metadata_json)));return t.close(),{source_cursor:o.source_cursor,items:n}}catch{return t?.close(),null}}async function Ee(e){await P.rm(W(e),{force:!0})}import E from"node:fs/promises";import w from"node:path";import{createHash as Oi,randomUUID as Bt}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="846c1c5d-8a5c-56ee-832a-bfc780283e70")}catch{}})();var x=8,zt=500,Di="metadata-derived-index",Fi="metadata-cache.json",Ai="metadata-cache-bodies.json",Li="metadata-cache-collections.json",Pi="metadata-cache-delta.json",ji="metadata-cache-manifest.json",$t=4,$i=["comments","notes","learnings","files","tests","test_runs","docs"];function Xt(){return ce(Y())}function Ie(e){let i={...e},t={};for(let o of $i)o in i&&(t[o]=i[o],delete i[o]);return{light:i,heavy:t}}function Yt(e,i){return!i||Object.keys(i).length===0?e:{...e,...i}}function Gt(e,i,t,o){let n=Oi("sha256");n.update(`format:${e??"default"}`);let r=Object.entries(i).sort(([a],[s])=>a.localeCompare(s)).map(([a,s])=>`${a}=${s}`).join(",");return n.update(`|types:${r}`),t&&n.update(`|schema:${JSON.stringify(t)}`),o.length>0&&n.update(`|extension_fields:${o.join(",")}`),n.digest("hex").slice(0,16)}function Ce(e){return w.join(e,"runtime",Fi)}function Te(e){return w.join(e,"runtime",Ai)}function Se(e){return w.join(e,"runtime",Li)}function Ge(e){return w.join(e,"runtime",Pi)}function qe(e){return w.join(e,"runtime",ji)}function xe(e,i){let t=w.extname(e);return`${e.slice(0,-t.length)}.${i}${t}`}var Hi=24,I=new Map,Re=new WeakMap;function Ke(e){return Re.get(e)??e.source_cursor}function Wi(e,i){let t=Ke(e);if(!(i.base_source_cursor!==t||e.source_cursor===i.source_cursor)){Re.set(e,t);for(let[o,n]of Object.entries(i.changes))n.entry?e.entries[o]=n.entry:delete e.entries[o];e.directory_signatures=i.directory_signatures,e.source_cursor=i.source_cursor}}function Ui(e,i){if(!e)return;let t=Ke(e);if(!(i.base_source_cursor!==t||e.source_cursor===i.source_cursor)){Re.set(e,t);for(let[o,n]of Object.entries(i.changes))n.body?e.bodies[o]=n.body:delete e.bodies[o];e.source_cursor=i.source_cursor}}function Bi(e,i){if(!e)return;let t=Ke(e);if(!(i.base_source_cursor!==t||e.source_cursor===i.source_cursor)){Re.set(e,t);for(let[o,n]of Object.entries(i.changes))n.collections?e.collections[o]=n.collections:delete e.collections[o];e.source_cursor=i.source_cursor}}function zi(e,i,t,o){!e||!o||e.context_fingerprint!==o.context_fingerprint||(Wi(e,o),Ui(i,o),Bi(t,o))}function Ye(e,i){I.size>=Hi&&!I.has(e)&&pt(I),I.set(e,i)}async function O(e,i){let t;try{t=await E.stat(e)}catch{return I.delete(e),null}let o=I.get(e);if(o&&oe(o.signature,t.mtimeMs,t.ctimeMs,t.size))return I.delete(e),I.set(e,o),o.envelope;let n;try{n=i(await E.readFile(e,"utf8"))}catch{n=null}return Ye(e,{signature:{mtime_ms:t.mtimeMs,ctime_ms:t.ctimeMs,size:t.size},envelope:n}),n}async function Xi(e,i,t){let o=s=>{let d=JSON.parse(s);return d.version!==x||typeof d.source_cursor!="string"||typeof d.entries!="object"||d.entries===null?null:d},n=Ce(e),r=await O(n,o);if(!i||r===null||r.context_fingerprint===i)return r;let a=await O(xe(n,i),o);return a===null&&ae(t,`metadata_cache_context_changed:${r.context_fingerprint}->${i}`),a}async function Yi(e,i){let t=r=>{let a=JSON.parse(r);return a.version!==x||typeof a.source_cursor!="string"||typeof a.bodies!="object"||a.bodies===null?null:a},o=Te(e),n=await O(o,t);return i&&n?.context_fingerprint!==i?await O(xe(o,i),t):n}async function Gi(e,i){let t=r=>{let a=JSON.parse(r);return a.version!==x||typeof a.source_cursor!="string"||typeof a.collections!="object"||a.collections===null?null:a},o=Se(e),n=await O(o,t);return i&&n?.context_fingerprint!==i?await O(xe(o,i),t):n}async function Ve(e){let i=Ge(e),t=await O(i,o=>{let n=JSON.parse(o);return n.version!==x||typeof n.base_source_cursor!="string"||typeof n.source_cursor!="string"||typeof n.changes!="object"||n.changes===null?null:n});if(t)return{envelope:t,invalid:!1};try{return await E.stat(i),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function Je(e){let i=qe(e),t=await O(i,o=>{let n=JSON.parse(o);return n.version!==x||typeof n.context_fingerprint!="string"||typeof n.source_cursor!="string"||!Number.isInteger(n.entry_count)||n.entry_count<0||typeof n.directory_signatures!="object"||n.directory_signatures===null?null:n});if(t)return t;try{await E.stat(i),await U(e)}catch{}return null}async function ne(e,i){await E.mkdir(w.dirname(e),{recursive:!0}),await M(e,JSON.stringify(i));try{let o=await E.stat(e);Ye(e,{signature:{mtime_ms:o.mtimeMs,ctime_ms:o.ctimeMs,size:o.size},envelope:i})}catch{I.delete(e)}let t=w.dirname(w.dirname(e));if(e===Ce(t)||e===Te(t)||e===Se(t)){let o=xe(e,i.context_fingerprint);await M(o,JSON.stringify(i));try{let d=await E.stat(o);Ye(o,{signature:{mtime_ms:d.mtimeMs,ctime_ms:d.ctimeMs,size:d.size},envelope:i})}catch{I.delete(o)}let n=w.dirname(e),r=w.extname(e),a=w.basename(e,r),s=(await E.readdir(n,{withFileTypes:!0}).catch(()=>[])).filter(d=>d.isFile()&&d.name!==w.basename(e)&&d.name.startsWith(`${a}.`)&&d.name.endsWith(r)).map(d=>w.join(n,d.name));if(s.length>$t){let d=(await Promise.all(s.map(async c=>{try{return{path:c,mtime:(await E.stat(c)).mtimeMs}}catch{return null}}))).filter(c=>c!==null);for(let c of d.sort((m,u)=>m.mtime-u.mtime).slice(0,Math.max(0,d.length-$t)))await E.rm(c.path,{force:!0}),I.delete(c.path)}}}function qi(e,i,t){return t?i===t&&e!==t:i==="toon"&&e!=="toon"}function qt(e,i,t){return e===void 0||qi(e,i,t)}function ae(e,i){e&&!e.includes(i)&&e.push(i)}function oe(e,i,t,o){return e.mtime_ms===i&&e.ctime_ms===t&&e.size===o}async function Ki(e,i,t){let o=w.join(e,i);try{let n=await E.readdir(o);return{folder:i,dirPath:o,files:n}}catch(n){return typeof n=="object"&&n!==null&&"code"in n&&!A(n)&&ae(t,`item_list_directory_read_failed:${i}`),{folder:i,dirPath:o,files:[]}}}async function Vi(e,i){try{let t=await E.stat(w.join(e,i));return[i,{exists:!0,mtime_ms:t.mtimeMs,ctime_ms:t.ctimeMs,size:t.size}]}catch{return[i,{exists:!1,mtime_ms:0,ctime_ms:0,size:0}]}}async function ve(e,i){return Object.fromEntries(await Promise.all(i.map(async t=>await Vi(e,t))))}function re(e,i){return!e||Object.keys(e).length!==Object.keys(i).length?!1:Object.entries(i).every(([t,o])=>{let n=e[t];return n!==void 0&&n.exists===o.exists&&oe(n,o.mtime_ms,o.ctime_ms,o.size)})}function Ji(e){return de.some(i=>e.toLowerCase().endsWith(i))}function Qi(e,i,t,o,n,r){o||(e.metadata=!0),i&&!n&&(e.body=!0),t&&!r&&(e.collections=!0)}async function Zi(e,i,t){if(t)for(let o of await ue({path:e,scope:"project"}))ae(i,o)}function Ht(e,i,t,o){if(e)return i&&t?t.collections:o}async function eo(e,i,t){let o=await E.stat(e),n=o.mtimeMs,r=o.ctimeMs,{size:a}=o,s=Me(e);await Zi(e,t.warnings,t.dispatchReadHooks);let d=t.previousEntries[i],c=!t.forceSourceRead&&d!==void 0&&oe(d,n,r,a),m=t.previousBodies[i],u=!t.forceSourceRead&&m!==void 0&&oe(m,n,r,a),l=t.previousCollections[i],p=!t.forceSourceRead&&l!==void 0&&oe(l,n,r,a);if(!(!c||t.includeBody&&!u||t.includeCollections&&!p))return{mtimeMs:n,ctimeMs:r,size:a,itemFormat:s,lightMetadata:d.metadata,heavyMetadata:Ht(t.includeCollections,p,l,void 0),bodyLength:d.body_length,body:t.includeBody?m.body:void 0};let f=await E.readFile(e,"utf8"),g=me(f,{format:s,schema:t.schema,extensionFieldNames:t.extensionFieldNames,onWarning:b=>ae(t.warnings,b)}),_=Ie(g.metadata);return Qi(t.state.misses,t.includeBody,t.includeCollections,c,u,p),{mtimeMs:n,ctimeMs:r,size:a,itemFormat:s,lightMetadata:c?d.metadata:_.light,heavyMetadata:Ht(t.includeCollections,p,l,_.heavy),bodyLength:c?d.body_length:g.body.length,body:t.includeBody?g.body:void 0}}function to(e,i,t,o){t.state.newEntries[i]={mtime_ms:o.mtimeMs,ctime_ms:o.ctimeMs,size:o.size,metadata:o.lightMetadata,body_length:o.bodyLength},t.includeBody&&o.body!==void 0&&(t.state.newBodies[i]={mtime_ms:o.mtimeMs,ctime_ms:o.ctimeMs,size:o.size,body:o.body}),t.includeCollections&&o.heavyMetadata!==void 0&&(t.state.newCollections[i]={mtime_ms:o.mtimeMs,ctime_ms:o.ctimeMs,size:o.size,collections:o.heavyMetadata});let n=t.includeCollections?Yt(o.lightMetadata,o.heavyMetadata):o.lightMetadata,r=t.state.documentsById.get(n.id),a={metadata:n,body:o.body,item_format:o.itemFormat,item_path:e};qt(r?.itemFormat,o.itemFormat,t.preferredFormat)&&t.state.documentsById.set(n.id,{candidate:a,itemFormat:o.itemFormat})}async function io(e,i,t,o){try{let n=await eo(i,t,o);to(i,t,o,n)}catch{ae(o.warnings,`item_list_item_read_failed:${e}/${w.basename(i)}`)}}function oo(e,i){return e&&e.context_fingerprint===i?e.entries:{}}function no(e,i){return e&&e.context_fingerprint===i?e.bodies:{}}function ro(e,i){return e&&e.context_fingerprint===i?e.collections:{}}function ao(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}async function so(e,i){let t=[];for(let{folder:o,dirPath:n,files:r}of e)for(let a of r){if(!Ji(a))continue;let s=w.join(n,a),d=w.relative(i.pmRoot,s);t.push(io(o,s,d,i)),t.length===32&&(await Promise.all(t),t.length=0)}await Promise.all(t)}async function co(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!re(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await ne(Ce(e.pmRoot),{version:x,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await ne(qe(e.pmRoot),{version:x,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,entry_count:Object.keys(e.state.newEntries).length,directory_signatures:e.directorySignatures});let i=[...e.state.documentsById.values()].map(({candidate:t})=>({relativePath:w.relative(e.pmRoot,t.item_path),metadata:Ie(t.metadata).light,linkedFiles:t.metadata.files??[]}));i.length>=e.minimumIndexedItems?await Pt({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:i}):await Ee(e.pmRoot)}catch{}}async function lo(e){!(e.state.misses.body||Object.keys(e.previousBodies).length!==Object.keys(e.state.newBodies).length)&&e.existingBodyCache!==null&&e.existingBodyCache.context_fingerprint===e.contextFingerprint||await ne(Te(e.pmRoot),{version:x,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function uo(e){!(e.state.misses.collections||Object.keys(e.previousCollections).length!==Object.keys(e.state.newCollections).length)&&e.existingCollectionsCache!==null&&e.existingCollectionsCache.context_fingerprint===e.contextFingerprint||await ne(Se(e.pmRoot),{version:x,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function Qe(e,i,t={}){let o=await Je(e);return t.required!==!0&&(o===null||o.entry_count<zt)?async()=>{}:ht(e,Di,30,i,!1,!1,3e3)}async function Bn(e,i){let t=await Je(e);if(t===null)return null;let o=await Ve(e);if(o.invalid)return await U(e),null;let n=o.envelope?.context_fingerprint===t.context_fingerprint&&o.envelope.base_source_cursor===t.source_cursor?o.envelope.source_cursor:t.source_cursor,r=o.envelope?.context_fingerprint===t.context_fingerprint&&o.envelope.base_source_cursor===t.source_cursor?o.envelope.directory_signatures:t.directory_signatures;return i&&!re(r,await ve(e,i))?null:{source_cursor:n,entry_count:t.entry_count}}function Wt(e,i){let t=w.relative(e,i);return t===""||t===".."||t.startsWith(`..${w.sep}`)||w.isAbsolute(t)?null:t}async function U(e){await Promise.all([Ce(e),Te(e),Se(e),Ge(e),qe(e)].map(async i=>{await E.rm(i,{force:!0}),I.delete(i)})),await Ee(e)}async function mo(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let i=await E.stat(e.mutation.itemPath),t=Ie(e.mutation.document.metadata),o={mtime_ms:i.mtimeMs,ctime_ms:i.ctimeMs,size:i.size};return{entry:{...o,metadata:t.light,body_length:e.mutation.document.body.length},body:{...o,body:e.mutation.document.body},collections:{...o,collections:t.heavy}}}function fo(e,i,t){return e?.context_fingerprint===i&&e.base_source_cursor===t?structuredClone(e.changes):{}}async function Ze(e){let i=Wt(e.pmRoot,e.itemPath),t=e.previousItemPath?Wt(e.pmRoot,e.previousItemPath):void 0;if(i===null||t===null)return await U(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let o=Gt(e.preferredFormat,e.typeToFolder,e.schema,Xt()),n=await Je(e.pmRoot);if(n===null||n.context_fingerprint!==o)return[];let r=n.source_cursor,a=await Ve(e.pmRoot);if(a.invalid)return await U(e.pmRoot),["metadata_derived_index_refresh_failed"];let s=fo(a.envelope,o,r),d=a.envelope?.context_fingerprint===o&&a.envelope.base_source_cursor===r?a.envelope.source_cursor:r;t!==void 0&&(s[t]={entry:null,body:null,collections:null}),s[i]=await mo({mutation:e});let c=Bt();return await ne(Ge(e.pmRoot),{version:x,context_fingerprint:o,base_source_cursor:r,source_cursor:c,directory_signatures:await ve(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:s}),await jt({pmRoot:e.pmRoot,contextFingerprint:o,expectedSourceCursor:d,sourceCursor:c,row:e.document===null?null:{relativePath:i,metadata:Ie(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...t===void 0?[]:[t],...e.document===null?[i]:[]]})||await Ee(e.pmRoot),[]}catch{return await U(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function po(e){return[...e.documentsById.values()].sort((i,t)=>i.candidate.metadata.id.localeCompare(t.candidate.metadata.id)).map(i=>i.candidate)}function Ut(e,i,t){return e?.context_fingerprint===i&&e.source_cursor===t}function yo(e,i,t,o,n){return e.every(r=>(!i||o[r]!==void 0)&&(!t||n[r]!==void 0))}function ho(e){let i=new Map;for(let[t,o]of Object.entries(e.previousEntries)){let n=Me(t);if(!n)continue;let r=e.includeCollections?Yt(o.metadata,e.previousCollections[t]?.collections):o.metadata,a=i.get(r.id);qt(a?.itemFormat,n,e.preferredFormat)&&i.set(r.id,{itemFormat:n,candidate:{metadata:r,body:e.includeBody?e.previousBodies[t]?.body:void 0,item_format:n,item_path:w.join(e.pmRoot,t)}})}return[...i.values()].sort((t,o)=>t.candidate.metadata.id.localeCompare(o.candidate.metadata.id)).map(t=>t.candidate)}function _o(e){return e.forceSourceScan||Fe()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!re(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||Ut(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||Ut(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&yo(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function ke(e,i,t,o,n,r={}){let a=r.includeBody!==!1,s=r.includeCollections!==!1,d=Xt(),c=Gt(i,t,n,d),m=await Ve(e);m.invalid&&await U(e);let u=await Xi(e,c,r.cacheDiagnostics),l=a?await Yi(e,c):null,p=s?await Gi(e,c):null;zi(u,l,p,m.envelope);let f=oo(u,c),g=no(l,c),_=ro(p,c),b=[...new Set(Object.values(t))],T=await ve(e,b),$=Object.keys(f),k=Math.max(1,Math.floor(r.derivedIndexMinimumItems??zt));if(_o({forceSourceScan:r.forceSourceScan===!0,contextFingerprint:c,existingCache:u,existingBodyCache:l,existingCollectionsCache:p,directorySignatures:T,entryKeys:$,minimumIndexedItems:k,includeBody:a,includeCollections:s,previousBodies:g,previousCollections:_}))return ho({pmRoot:e,preferredFormat:i,includeBody:a,includeCollections:s,previousEntries:f,previousBodies:g,previousCollections:_});let v=await Promise.all(b.map(H=>Ki(e,H,o))),D=Fe(),C=ao(),B={pmRoot:e,preferredFormat:i,warnings:o,schema:n,extensionFieldNames:d,includeBody:a,includeCollections:s,forceSourceRead:r.forceSourceScan===!0,dispatchReadHooks:D,previousEntries:f,previousBodies:g,previousCollections:_,state:C};await so(v,B);let N=await ve(e,b),S=re(T,N)?N:{},z=C.misses.metadata||Object.keys(f).length!==Object.keys(C.newEntries).length||!re(u?.directory_signatures,S)||u===null?Bt():u.source_cursor;return await co({pmRoot:e,contextFingerprint:c,sourceCursor:z,existingCache:u,previousEntries:f,directorySignatures:S,state:C,minimumIndexedItems:k}),a&&await lo({pmRoot:e,contextFingerprint:c,sourceCursor:z,existingBodyCache:l,previousBodies:g,state:C}),s&&await uo({pmRoot:e,contextFingerprint:c,sourceCursor:z,existingCollectionsCache:p,previousCollections:_,state:C}),po(C)}async function Kt(e,i,t,o,n){return(await ke(e,i,t,o,n,{includeBody:!1})).map(r=>({metadata:r.metadata,body:r.body??""}))}async function Vt(e,i,t,o,n){return(await ke(e,i,t,o,n,{includeBody:!1,includeCollections:!1})).map(r=>({metadata:r.metadata,body:r.body??""}))}import j from"node:fs/promises";import{statSync as Eo}from"node:fs";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="ddc5bb8f-83bc-5121-a628-a501e7ed5a73")}catch{}})();function go(e,i){let t=-1;return e.forEach((o,n)=>{let r=Date.parse(o.ts);if(!Number.isFinite(r))throw new y(`History for this item contains invalid timestamp at entry ${n+1}.`,h.GENERIC_FAILURE);r<=i&&(t=n)}),t}function wo(e,i){let t=e[0]?.ts??null,o=e.at(-1)?.ts??null,n={code:"history_target_out_of_range",required:"Choose a target within the available item history.",why:"Point-in-time reads and restores can only reconstruct recorded versions.",examples:[],nextSteps:["Run pm history <id> to inspect available versions and timestamps."],valid_range:{first_version:null,last_version:null,first_timestamp:t,last_timestamp:o}};return o!==null&&(n.examples=[o],i!==null&&(n.examples.unshift(String(i+1),String(i+e.length)),n.valid_range.first_version=i+1,n.valid_range.last_version=i+e.length)),{guidance:n,lastTimestamp:o}}function bo(e,i){let t={};if(i instanceof Error&&i.message.trim().length>0&&(t.reason=i.message.trim()),typeof i!="object"||i===null)return t;let o=i;if(typeof o.index=="number"&&Number.isInteger(o.index)&&o.index>=0&&(t.patchIndex=o.index),typeof o.operation=="object"&&o.operation!==null){let n=o.operation;Object.assign(t,Object.fromEntries(["op","path","from"].flatMap(r=>{let a=n[r];return typeof a=="string"?[[r,a]]:[]})))}if(t.patchIndex!==void 0){let n=e[t.patchIndex];n&&(t.op??=n.op,t.path??=n.path,t.from??=n.from)}return t}function Jt(e,i,t={}){let o=e.trim(),n=t.errorSubject??"history",r=n==="restore"?"Restore":"History",{guidance:a,lastTimestamp:s}=wo(i,Q(i,!0));if(!o)throw new y(`Missing ${n} target. Use a timestamp or version number.`,h.USAGE,a);if(/^\d+$/.test(o)){let m=Q(i),u=Number(o);if(u>=1&&u<=m)throw new y(`History version ${u} was pruned by compaction.`,h.USAGE,{...a,code:"history_version_pruned"});if(!Number.isSafeInteger(u)||u<1||u>m+i.length)throw new y(`${r} version must be between ${m+1} and ${m+i.length} for this item.`,h.USAGE,a);return{kind:"version",raw:o,historyIndex:u-m-1}}let d=Date.parse(o);if(!Number.isFinite(d))throw new y(`Invalid ${n} target "${e}". Use a positive version number or ISO timestamp.`,h.USAGE,a);let c=go(i,d);if(c<0||t.allowFutureTimestamp!==!0&&d>Date.parse(s))throw new y(n==="restore"?`No history entries exist at or before timestamp ${o}.`:`No history entry exists at timestamp ${o}.`,h.USAGE,a);return{kind:"timestamp",raw:o,historyIndex:c}}function et(e,i,t,o){let n=He(e,i);if(n.ok)return n.document;let r=bo(i,n.error),a=[`history_op=${o}`,r.patchIndex===void 0?null:`patch_index=${r.patchIndex}`,r.op?`op=${r.op}`:null,r.path?`path=${r.path}`:null,r.from?`from=${r.from}`:null].filter(s=>s!==null);throw new y(`Failed to apply history patch at entry ${t} (${a.join(", ")}). ${r.reason??String(n.error)}`,h.GENERIC_FAILURE)}function Qt(e,i){let t=e[0];if(t&&t.op!=="create"&&t.op!=="history_compact_baseline"){let a=He(K,t.patch);if(!a.ok||typeof a.document.metadata.id!="string")throw new y("History starts without a reconstructable item baseline.",h.GENERIC_FAILURE,{code:"history_baseline_unavailable",required:"Recover the original create entry or a complete checkpoint from version control.",nextSteps:["Run pm history <id> --full to inspect the missing baseline."]})}let o=e.slice(0,i+1),n=fe([...o]),r=structuredClone(K);for(let a=0;a<=i;a+=1){let s=e[a];if(!s)throw new y(`History target entry ${a+1} does not exist.`,h.USAGE);r=et(r,s.patch,a+1,s.op)}if(!n.ok)throw new y(`History cannot be replayed: ${n.errors.join(", ")}.`,h.GENERIC_FAILURE,{code:"history_replay_invalid",verification_errors:n.errors,required:"Inspect the history integrity findings before attempting recovery.",nextSteps:["Run pm history <id> --verify --full."]});return r}function Kn(e,i){if(Object.keys(e.metadata).length>0){if(typeof e.metadata.id!="string"||!Array.isArray(e.metadata.tags))throw new y("History has no complete item baseline for this target.",h.GENERIC_FAILURE,{code:"history_baseline_unavailable",required:"Recover the original create entry or a complete checkpoint from version control.",nextSteps:["Run pm history <id> --full to inspect the first recorded state."]});return e}throw new y(`History target ${i.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,h.USAGE)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="be69f1e8-4543-5cf5-abb0-9d38ca1d0cc6")}catch{}})();function vo(e,i){let t=-1,o=structuredClone(K);for(let[s,d]of e.entries()){if(o=et(o,d.patch,s+1,d.op),o.metadata.id!==void 0&&o.metadata.id!==i)throw new y(`History belongs to item ${String(o.metadata.id)}, expected ${i}.`,h.GENERIC_FAILURE,{code:"history_replay_invalid",required:"Recover the correct history stream for this item before attempting restoration."});o.metadata.id===i&&Array.isArray(o.metadata.tags)&&(t=s)}let n=Q(e,!0),r=t<0||n===null?null:n+t+1,a=r===null?void 0:String(r);if(t>=0&&a===void 0){let s=e[t].ts;Jt(s,e).historyIndex===t&&(a=s)}return{version:r,target:a}}async function Zt(e,i,t){let o=new Set([J(i,t),V(i)]);for(let n of o){let r=R(e,n);if(!Eo(r,{throwIfNoEntry:!1})?.isFile())continue;let a=await vt(r,n),s=-1;if(a.forEach((p,f)=>{p.op==="delete"&&(s=f)}),s<0)continue;let d=Qt(a,a.length-1);if(Object.keys(d.metadata).length!==0)continue;let{version:c,target:m}=vo(a,n),u=m===void 0?["history",n,"--verify"]:["get",n,"--at",m],l=G(u);return new y(`Item ${n} was deleted at ${a[s].ts}; its history is retained.`,h.NOT_FOUND,{code:"item_deleted",required:"Read a retained materialized version, then restore it if the item should exist again.",item_id:n,tombstone:{deleted:!0,deleted_at:a[s].ts,recoverable:m!==void 0,last_materialized_version:c},nextSteps:[l,...m===void 0?["Recover the pre-compaction history from version control."]:[G(["restore",n,m])]],recovery:{suggested_retry:l,suggested_retry_args:u}})}}import{AsyncLocalStorage as Io}from"node:async_hooks";import ei from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="c343ed33-0135-5d3a-94a4-67314b295168")}catch{}})();var ti=new Io;function lr(e,i){return ti.run({...e,pmRoot:ei.resolve(e.pmRoot)},i)}function ii(e,i){let t=ti.getStore();return t?.pmRoot===ei.resolve(e)&&t.itemId===i?{bulk_checkpoint:t.checkpointId}:void 0}import it from"node:path";import Co from"node:fs/promises";import To from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="1d746e4d-ff6c-54ec-a94f-4ec4cb8f77b5")}catch{}})();function So(e){return[...new Set(e.filter(i=>i.trim().length>0))].sort((i,t)=>i.localeCompare(t))}function xo(e,i){return new y(`Missing history stream for ${e}. ${i} requires history streams when settings.history.missing_stream is strict_error.`,h.NOT_FOUND)}async function Ro(e,i){return await at(To.dirname(e)),await(await Co.open(e,"a")).close(),L({path:e,scope:"project",op:`${i}:history:auto_create`})}async function tt(e){return ko({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function ko(e){let i=So(e.itemIds),t=[],o=[];for(let n of i){let r=R(e.pmRoot,n);if(!await X(r)){if(e.settings.history.missing_stream==="strict_error")throw xo(n,e.commandLabel);o.push(...await Ro(r,e.commandLabel)),o.push(`history_stream_auto_created:${n}`),t.push(n)}}return{auto_created_ids:t,warnings:o}}import{isUtf8 as No}from"node:buffer";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="8266acd6-5564-5d56-8025-82608136296d")}catch{}})();async function Mo(e){try{return await j.access(e),!0}catch{return!1}}function Oo(e,i){e&&(e.includes(i)||e.push(i))}function oi(e){return e??ce(Y())}function Do(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}async function ni(e,i,t="pm-",o,n=F){let r=i.trim(),a=r.startsWith("#")?r.slice(1):r;if(a.length===0)return null;let s=J(i,t),d=V(i),c=[...new Set([a,s,d])].filter(l=>l.length>0),m=Object.entries(n),u=Do(o);for(let l of c){let p=new Map;for(let[f]of m)for(let g of u){let _=Ne(e,f,l,g,n);await Mo(_)&&p.set(_,p.get(_)??{id:l,type:f,itemPath:_,item_format:g})}if(p.size>1){let f=[...p.keys()].map(g=>it.relative(e,g).split(it.sep).join("/")).sort();throw new y(`Item ${l} has ambiguous identity across ${f.join(", ")}. Preserve both documents and inspect pm ops validate --check-storage-integrity before resolving the collision.`,h.CONFLICT,{code:"item_identity_ambiguous",item_id:l,paths:f})}for(let f of p.values())return f}return null}async function ri(e,i={}){let t=await Fo(e,i);if(t.error!==null)throw t.error;return{raw:t.raw,document:t.document}}async function Fo(e,i={}){let t=await j.readFile(e.itemPath);if(!No(t))throw new y("Item contains invalid UTF-8; preserve a binary backup before recovering it.",h.CONFLICT,{code:"item_document_encoding_invalid",item_id:e.id,item_path:e.itemPath,byte_length:t.length,empty:!1});let o=t.toString("utf8");await ue({path:e.itemPath,scope:"project"});let n;try{n=me(o,{format:e.item_format,requireSupportedFormat:!0,schema:i.schema,extensionFieldNames:oi(i.extensionFieldNames),onWarning:r=>Oo(i.warnings,r)})}catch(r){if(r instanceof y&&r.code==="item_format_version_unsupported")throw new y(`Item ${e.id}: ${r.message}`,r.exitCode,{...r.context,item_id:e.id,item_path:e.itemPath});if(r instanceof y&&r.code==="item_document_invalid")return{raw:o,document:null,error:new y(`Cannot read ${e.id} at ${e.itemPath}${t.length===0?" (zero-length file)":""}: ${r.message}`,r.exitCode,{...r.context,item_id:e.id,item_path:e.itemPath,byte_length:t.length,empty:t.length===0,nextSteps:[`Run pm history ${e.id} --full, then pm restore ${e.id} <version> to recover a recorded state.`]})};throw r}return{raw:o,document:n,error:null}}async function Ao(e,i,t=F,o,n){await pe(e);let r=await Kt(e,i,t,o,n);return he(r.length),r.map(a=>a.metadata)}async function Kr(e,i,t=F,o,n){await pe(e);let r=await Vt(e,i,t,o,n);return he(r.length),r.map(a=>a.metadata)}async function Vr(e,i,t=F,o,n,r={}){await pe(e);let a=await ke(e,i,t,o,n,{includeBody:!0,forceSourceScan:r.forceSourceScan});return he(a.length),a.map(s=>({...s.metadata,body:s.body}))}function ai(e){return{async get(i){let t=await ni(e.pmRoot,i,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!t)return null;let{document:o}=await ri(t,{schema:e.settings.schema});return{item:o.metadata,body:o.body}},list:()=>Ao(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function Lo(e,i){let t=new Set(Object.values(i)),o=[];return await Promise.all([...t].map(async n=>{try{let r=await j.readdir(it.join(e,n));for(let a of r)for(let s of de)if(a.toLowerCase().endsWith(s)){o.push(a.slice(0,-s.length));break}}catch{}})),o}async function Po(e,i,t,o){let n=J(i,t),r=await Lo(e,o);if(r.length===0)return[];let a=Math.max(3,Math.floor(n.length/2));return r.map(s=>({id:s,distance:se(s,n,a)})).filter(s=>s.distance!==null).sort((s,d)=>s.distance-d.distance).slice(0,3).map(s=>s.id)}async function jo(e,i,t,o){let n=await Zt(e,i,t);if(n)return n;let r=await Po(e,i,t,o),a=["Confirm the active --path/PM_PATH scope, then retry with a valid id."];return r.length>0&&a.unshift(`Did you mean one of: ${r.join(", ")}?`),new y(`Item ${i} not found`,h.NOT_FOUND,{code:"item_not_found",id:i,nextSteps:a})}function $o(e,i){return e==="claim"||i===!0&&(e==="comment_add"||e==="comment_edit"||e==="comment_delete"||e==="note_add"||e==="learning_add"||e==="release"||e==="update"||e==="update_ownership_bypass"||e==="update_audit")}async function si(e){let i=e.typeToFolder??dt(e.settings,Y()).type_to_folder,t=await ni(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,i);if(!t)throw await jo(e.pmRoot,e.id,e.settings.id_prefix,i);let o=await _t(e.pmRoot,t.id,e.settings.locks.ttl_seconds,e.author,!!e.force,e.settings.governance.force_required_for_stale_lock,e.settings.locks.wait_ms,{waitPolicy:"progress"}),n=o.release;try{let r=[],{raw:a,document:s}=await ri(t,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:r}),d=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||d,m=Et(e.author),u=Tt(e.settings);if(d&&c!==m&&!e.force&&!$o(e.op,e.bypassAssigneeConflict)){if(u.ownership_enforcement==="strict")throw new y(`Item ${t.id} is assigned to ${d}. Use --force to override.`,h.CONFLICT);u.ownership_enforcement==="warn"&&r.push(`ownership_warning:assignee_conflict:${t.id}:${d}`)}return{typeToFolder:i,located:t,originalRaw:a,document:s,warnings:r,releaseLock:n,lease:o}}catch(r){throw await n(),r}}async function ci(e,i,t,o){return e.fence(async()=>{let n;try{n=await j.readFile(i.itemPath,"utf8")}catch(r){if(!A(r))throw r;n=null}if(n!==t)throw new y(`Item ${i.id} changed after this mutation read it; refusing to overwrite the newer revision. Nothing was written.`,h.CONFLICT,{code:"stale_revision",item_id:i.id,reason:n===null?"item_removed":"item_revision_changed",required:"Re-read the item and apply the mutation again; the newer stored revision was kept."});return o()})}function Ho(e,i,t){if(!e.handled||typeof e.result!="object"||e.result===null)return{effectiveTargetItemPath:i,effectiveSerializedAfter:t,skipItemWrite:!1};let o=e.result;return{effectiveTargetItemPath:typeof o.target_item_path=="string"&&o.target_item_path.trim().length>0?o.target_item_path:i,effectiveSerializedAfter:typeof o.contents=="string"?o.contents:t,skipItemWrite:o.skip_write===!0}}async function Wo(e){let i=await Ae("item_store_delete",e),t=i.handled&&typeof i.result=="object"&&i.result!==null?i.result:{};return{effectiveItemPath:typeof t.item_path=="string"&&t.item_path.trim().length>0?t.item_path:e.item_path,skipDelete:t.skip_delete===!0,warnings:i.warnings}}async function Uo(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await M(e.originalItemPath,e.originalRaw),await j.rm(e.effectiveTargetItemPath,{force:!0});return}await M(e.originalItemPath,e.originalRaw)}}async function ot(e){gt(e.op);let i=await si({pmRoot:e.pmRoot,settings:e.settings,id:e.id,op:e.op,author:e.author,force:e.force,bypassAssigneeConflict:e.bypassAssigneeConflict,extensionFieldNames:e.extensionFieldNames,typeToFolder:e.typeToFolder}),{typeToFolder:t,located:o,originalRaw:n,document:r,warnings:a,releaseLock:s,lease:d}=i;try{ze(e.pmRoot,r);let c=q(r,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),m=q(structuredClone(r),{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),u=await e.mutate(m);if(e.skipNoop===!0&&u.changedFields.length===0)return{item:c.metadata,body:c.body,changedFields:[],warnings:[...a,...u.warnings??[]]};let l={...e.resolveHistoryContext?.(),...ii(e.pmRoot,o.id),...Dt(e.pmRoot,r)},p=Math.max(Pe(c.metadata),Pe(m.metadata));St(lt(e.pmRoot),p),p>wt(m.metadata)&&(m.metadata.pm_format_version=p,u.changedFields.push("pm_format_version")),m.metadata.updated_at=Le();let f=q(m,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),g=await We({pmRoot:e.pmRoot,settings:e.settings,operation:e.op,author:e.author,before:c,after:f});await De({pm_root:e.pmRoot,operation:e.op,before:c,after:f,changed_fields:u.changedFields,sdk:ai({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t})});let _=await tt({pmRoot:e.pmRoot,settings:e.settings,itemId:o.id,commandLabel:e.op}),b="toon",T=bt(f,{format:b,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),$=Ne(e.pmRoot,f.metadata.type,o.id,b,t),k=R(e.pmRoot,o.id),v=await ci(d,o,n,async()=>{let N=await Ae("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:o.id,source_item_path:o.itemPath,target_item_path:$,history_path:k,item_format:b,before:c,after:f,contents:T}),{effectiveTargetItemPath:S,effectiveSerializedAfter:z,skipItemWrite:H}=Ho(N,$,T),li=await Qe(e.pmRoot,e.author),nt=[];try{H||await M(S,z),!H&&S!==o.itemPath&&await j.rm(o.itemPath);let ui=je({nowIso:f.metadata.updated_at,author:e.author,op:e.op,before:c,after:f,message:e.message,context:g.decisions.length===0?Object.keys(l).length===0?void 0:l:{...l,workflow_policies:g.decisions}});try{await $e(k,ui)}catch(mi){throw await Uo({skipItemWrite:H,effectiveTargetItemPath:S,originalItemPath:o.itemPath,originalRaw:n}),mi}H||(nt=await Ze({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t,schema:e.settings.schema,itemPath:S,previousItemPath:o.itemPath,document:f}))}finally{await li()}return{derivedIndexWarnings:nt,effectiveTargetItemPath:S,overrideWarnings:N.warnings}}),{derivedIndexWarnings:D,effectiveTargetItemPath:C}=v;Ot(e.pmRoot,f);let B=[...await L({path:C,scope:"project",op:e.op,item_id:f.metadata.id,item_type:f.metadata.type,before:c,after:f,changed_fields:u.changedFields}),...await L({path:k,scope:"project",op:`${e.op}:history`,item_id:f.metadata.id,item_type:f.metadata.type,before:c,after:f,changed_fields:u.changedFields})];return Oe({id:f.metadata.id,op:e.op,item_type:f.metadata.type,previous_status:c.metadata.status,status:f.metadata.status,previous:le(c.metadata,u.changedFields),current:le(f.metadata,u.changedFields),changed_fields:u.changedFields}),{item:f.metadata,body:f.body,changedFields:u.changedFields,warnings:[...a,...u.warnings??[],...g.warnings,..._.warnings,...v.overrideWarnings,...D,...B]}}finally{await s()}}async function Jr(e){let{historyContext:i,...t}=e;return ot({...t,resolveHistoryContext:()=>i})}async function Qr(e){return ot(e)}async function Zr(e){return ot(e)}async function ea(e){let i=await si({pmRoot:e.pmRoot,settings:e.settings,id:e.id,op:"delete",author:e.author,force:e.force}),{located:t,originalRaw:o,document:n,warnings:r,releaseLock:a,lease:s}=i;try{ze(e.pmRoot,n);let d=oi(void 0),c=q(n,{schema:e.settings.schema,extensionFieldNames:d}),m=await We({pmRoot:e.pmRoot,settings:e.settings,operation:"delete",author:e.author,before:c,after:null,dryRun:e.dryRun});await De({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:ai({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:i.typeToFolder})});let u=await tt({pmRoot:e.pmRoot,settings:e.settings,itemId:t.id,commandLabel:"delete"}),l=Le(),p=rt,f=je({nowIso:l,author:e.author,op:"delete",before:c,after:p,message:e.message,context:m.decisions.length===0?void 0:{workflow_policies:m.decisions}}),g=R(e.pmRoot,t.id),_=()=>Wo({op:"delete",pm_root:e.pmRoot,item_id:t.id,item_path:t.itemPath,history_path:g,before:c});if(e.dryRun===!0){let v=await _();return{item:c.metadata,changedFields:["deleted"],targetPath:v.effectiveItemPath,warnings:[...r,...m.warnings,...u.warnings,...v.warnings]}}let b=await ci(s,t,o,async()=>{let{effectiveItemPath:v,skipDelete:D,warnings:C}=await _(),B=await Qe(e.pmRoot,e.author),N=[];try{D||await j.rm(v);try{await $e(g,f)}catch(S){throw D||await M(v,o),S}D||(N=await Ze({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:i.typeToFolder,schema:e.settings.schema,itemPath:v,document:null}))}finally{await B()}return{derivedIndexWarnings:N,effectiveItemPath:v,overrideWarnings:C}}),{derivedIndexWarnings:T,effectiveItemPath:$}=b,k=[...await L({path:$,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:p,changed_fields:["deleted"]}),...await L({path:g,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:p,changed_fields:["deleted"]})];return Oe({id:c.metadata.id,op:"delete",item_type:c.metadata.type,previous_status:c.metadata.status,previous:le(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...r,...m.warnings,...u.warnings,...b.overrideWarnings,...T,...k]}}finally{await a()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="e23f9ca6-9fa6-566b-9bfb-7cbe6d449a59")}catch{}})();function Bo(e,i){let t=e.trim().toLowerCase();if(t.length===0)return;let o=Math.floor(t.length/3);return i.map(n=>({candidate:n,distance:se(t,n.toLowerCase(),o)??Number.POSITIVE_INFINITY})).filter(({distance:n})=>Number.isFinite(n)).sort((n,r)=>n.distance!==r.distance?n.distance-r.distance:n.candidate.localeCompare(r.candidate))[0]?.candidate}function di(e){return["pm",...e].map(i=>/^[A-Za-z0-9_./:@=-]+$/u.test(i)?i:JSON.stringify(i)).join(" ")}function ra(e){let i=e.command_path.trim().replaceAll(/\s+/gu," "),t=e.token.trim(),o=t.length===0?"<empty>":t,n=[...new Set(e.allowed.map(l=>l.trim()))].filter(Boolean).sort((l,p)=>l.localeCompare(p));if(i.length===0||o.length===0||n.length===0)throw new TypeError("Unknown-subcommand contracts require a path, token, and allowed set");let r=i.split(" "),a=e.trailing_args??[],s=e.display_name??`pm ${i}`,d=e.token_kind??"subcommand",c=e.retry_command?void 0:Bo(o,n),m=di([...r,o,...a]),u=e.retry_command??(c?di([...r,c,...a]):void 0);return new y(`Unknown ${s} ${d} "${o}". Allowed: ${n.join(", ")}${e.message_suffix??""}`,e.exit_code??h.USAGE,{code:"unknown_subcommand",reason:"unknown_positional_token",value:o,examples:[...u?[u]:[],...e.examples??[],`pm ${i} --help`],nextSteps:u?[`Retry with the suggested command: ${u}`]:["Choose one value from recovery.allowed_values."],recovery:{attempted_command:m,allowed_values:n,suggested_retry:u,fallback_candidates:e.fallback_candidates}})}export{ra as a,tt as b,ko as c,Rt as d,V as e,J as f,Ko as g,Q as h,Jt as i,et as j,Qt as k,Kn as l,gi as m,bi as n,Ei as o,vi as p,Ii as q,We as r,hn as s,bn as t,ze as u,lr as v,Rn as w,kn as x,Nn as y,zt as z,$i as A,Qe as B,Bn as C,Ze as D,ke as E,ni as F,ri as G,Fo as H,Ao as I,Kr as J,Vr as K,ai as L,jo as M,Jr as N,Qr as O,Zr as P,ea as Q};
91
+ //# sourceMappingURL=chunk-K7DKG5HM.js.map