@unbrained/pm-cli 2026.9.18 → 2026.9.19

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 (107) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +20 -0
  3. package/dist/cli/invocation-profile.d.ts +26 -0
  4. package/dist/cli/invocation-profile.js +3 -0
  5. package/dist/cli-bundle/bundle-manifest.json +148 -148
  6. package/dist/cli-bundle/chunks/{chunk-GRFRKHFC.js → chunk-7CN53F4S.js} +2 -2
  7. package/dist/cli-bundle/chunks/{chunk-X2EVS624.js → chunk-AACGU5IA.js} +2 -2
  8. package/dist/cli-bundle/chunks/{chunk-AOD5WE6U.js → chunk-CCLWCESZ.js} +2 -2
  9. package/dist/cli-bundle/chunks/{chunk-WD7BQXA7.js → chunk-J7NP7QLW.js} +2 -2
  10. package/dist/cli-bundle/chunks/{chunk-T4J2X3RK.js → chunk-K4VAU4HU.js} +2 -2
  11. package/dist/cli-bundle/chunks/chunk-KHN4NMKT.js +238 -0
  12. package/dist/cli-bundle/chunks/{chunk-CA5DRNGA.js → chunk-KYG2QKNY.js} +28 -28
  13. package/dist/cli-bundle/chunks/{chunk-WUDF7HWM.js → chunk-OQS2Y6VN.js} +2 -2
  14. package/dist/cli-bundle/chunks/{chunk-XFGWFVR3.js → chunk-QA4GUEKJ.js} +20 -20
  15. package/dist/cli-bundle/chunks/chunk-QTHR3LXF.js +20 -0
  16. package/dist/cli-bundle/chunks/{chunk-FZZVWWQP.js → chunk-RVMDPIGD.js} +2 -2
  17. package/dist/cli-bundle/chunks/{chunk-Y2OK7IAD.js → chunk-WASMH647.js} +2 -2
  18. package/dist/cli-bundle/chunks/{register-list-query-43EQISX7.js → register-list-query-RMZNHSII.js} +2 -2
  19. package/dist/cli-bundle/chunks/{register-mutation-TSZNAKEU.js → register-mutation-HJGSGX3H.js} +2 -2
  20. package/dist/cli-bundle/chunks/{register-operations-KFZIKATY.js → register-operations-LBEMFUMM.js} +2 -2
  21. package/dist/cli-bundle/chunks/{register-setup-KTJ4ZE65.js → register-setup-MU557JAA.js} +2 -2
  22. package/dist/cli-bundle/focused-chunks/{chunk-QVVOXVYI.js → chunk-5SZ4JSPZ.js} +2 -2
  23. package/dist/cli-bundle/focused-chunks/{chunk-PNCUNPSA.js → chunk-7Y7PAC56.js} +2 -2
  24. package/dist/cli-bundle/focused-chunks/{chunk-YJYSFWSW.js → chunk-ARK4FIO4.js} +2 -2
  25. package/dist/cli-bundle/focused-chunks/{chunk-C6SH62BX.js → chunk-CJ4QA4RW.js} +2 -2
  26. package/dist/cli-bundle/focused-chunks/{chunk-ZDX2BCOT.js → chunk-I32L3FWW.js} +2 -2
  27. package/dist/cli-bundle/focused-chunks/{chunk-GEFWBVPQ.js → chunk-I4WDON3K.js} +2 -2
  28. package/dist/cli-bundle/focused-chunks/{chunk-246P5AK7.js → chunk-IKPR4VVN.js} +2 -2
  29. package/dist/cli-bundle/focused-chunks/chunk-J3GN4SQT.js +2 -0
  30. package/dist/cli-bundle/focused-chunks/{chunk-LG3SYXBX.js → chunk-OOZHQFBF.js} +9 -9
  31. package/dist/cli-bundle/focused-chunks/{chunk-BVOQRMHF.js → chunk-P4BA7OX7.js} +27 -26
  32. package/dist/cli-bundle/focused-chunks/{chunk-7D6M45AN.js → chunk-QL4MO5M2.js} +9 -9
  33. package/dist/cli-bundle/focused-chunks/chunk-TDHVROGL.js +3 -0
  34. package/dist/cli-bundle/focused-chunks/chunk-V3YMNAO7.js +2 -0
  35. package/dist/cli-bundle/focused-chunks/chunk-YDFEWXXZ.js +59 -0
  36. package/dist/cli-bundle/focused-chunks/{chunk-MMX7BQLH.js → chunk-ZDBKYZFE.js} +2 -2
  37. package/dist/cli-bundle/focused-chunks/{chunk-7UZHYT5B.js → chunk-ZI2YBJFH.js} +2 -2
  38. package/dist/cli-bundle/main.js +2 -2
  39. package/dist/cli-bundle/sdk-authoring.js +1 -1
  40. package/dist/cli-bundle/sdk-contracts.js +2 -2
  41. package/dist/cli-bundle/sdk-core.js +2 -2
  42. package/dist/cli-bundle/sdk-governance.js +1 -1
  43. package/dist/cli-bundle/sdk-graph.js +1 -1
  44. package/dist/cli-bundle/sdk-merge.js +41 -41
  45. package/dist/cli-bundle/sdk-query.js +1 -1
  46. package/dist/cli-bundle/sdk-runtime.js +1 -1
  47. package/dist/cli-bundle/sdk-testing.js +1 -1
  48. package/dist/cli-bundle/sdk.js +8 -8
  49. package/dist/cli.js +1 -1
  50. package/dist/core/checkpoint/mutation-checkpoint.d.ts +1 -1
  51. package/dist/core/checkpoint/mutation-checkpoint.js +2 -2
  52. package/dist/core/fs/atomic-create.d.ts +7 -0
  53. package/dist/core/fs/atomic-create.js +2 -0
  54. package/dist/core/history/history.js +1 -1
  55. package/dist/core/schema/runtime-schema.d.ts +1 -1
  56. package/dist/core/schema/runtime-schema.js +2 -2
  57. package/dist/core/session/session-state.js +1 -1
  58. package/dist/core/store/settings-concurrency.d.ts +7 -0
  59. package/dist/core/store/settings-concurrency.js +2 -0
  60. package/dist/core/store/settings.d.ts +8 -1
  61. package/dist/core/store/settings.js +3 -2
  62. package/dist/sdk/cli-contracts/flag-contracts.js +1 -1
  63. package/dist/sdk/contracts.d.ts +1 -0
  64. package/dist/sdk/contracts.js +1 -1
  65. package/dist/sdk/extension/install-runtime.d.ts +1 -1
  66. package/dist/sdk/extension/install-runtime.js +2 -2
  67. package/dist/sdk/governance/health.js +1 -1
  68. package/dist/sdk/governance/provenance-health.d.ts +27 -0
  69. package/dist/sdk/governance/provenance-health.js +1 -1
  70. package/dist/sdk/graph/index.d.ts +1 -0
  71. package/dist/sdk/graph/index.js +1 -1
  72. package/dist/sdk/graph/query-contracts.d.ts +18 -0
  73. package/dist/sdk/graph/query-contracts.js +2 -0
  74. package/dist/sdk/graph/run.d.ts +2 -0
  75. package/dist/sdk/graph/run.js +1 -1
  76. package/dist/sdk/graph/traversal.js +1 -1
  77. package/dist/sdk/lifecycle-policy.js +1 -1
  78. package/dist/sdk/public-surface.json +1 -1
  79. package/docs/MCP_OPTION_CONFORMANCE.md +41 -0
  80. package/docs/OUTPUT_PROJECTION_CONTRACTS.md +18 -2
  81. package/docs/PERFORMANCE.md +37 -0
  82. package/docs/SDK_AGENT_SESSION_CONTEXT.md +28 -4
  83. package/docs/SDK_LIFECYCLE.md +16 -2
  84. package/docs/WORKSPACE_CONCURRENCY.md +67 -0
  85. package/marketplace.json +2 -2
  86. package/package.json +2 -2
  87. package/packages/pm-beads/package.json +1 -1
  88. package/packages/pm-calendar/package.json +1 -1
  89. package/packages/pm-command-kit/package.json +1 -1
  90. package/packages/pm-digital-twin/package.json +1 -1
  91. package/packages/pm-governance-audit/package.json +1 -1
  92. package/packages/pm-guide-shell/package.json +1 -1
  93. package/packages/pm-kanban/package.json +1 -1
  94. package/packages/pm-lifecycle-hooks/package.json +1 -1
  95. package/packages/pm-linked-test-adapters/package.json +1 -1
  96. package/packages/pm-search-advanced/package.json +1 -1
  97. package/packages/pm-templates/package.json +1 -1
  98. package/packages/pm-todos/package.json +1 -1
  99. package/packages/pm-vcs/package.json +1 -1
  100. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  101. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  102. package/dist/cli-bundle/chunks/chunk-CI2JCBN2.js +0 -237
  103. package/dist/cli-bundle/chunks/chunk-IPR2ICDO.js +0 -20
  104. package/dist/cli-bundle/focused-chunks/chunk-HRANNGHM.js +0 -2
  105. package/dist/cli-bundle/focused-chunks/chunk-LI6IGGB3.js +0 -2
  106. package/dist/cli-bundle/focused-chunks/chunk-QKG7JD34.js +0 -3
  107. package/dist/cli-bundle/focused-chunks/chunk-QYQFBJXD.js +0 -59
@@ -1,7 +1,7 @@
1
- import{n as cu,o as Ko,p as pu,q as fu,r as ga,s as Ho,t as _u,u as ya,v as Vo,y as qu,z as Ku}from"./focused-chunks/chunk-YJYSFWSW.js";import{a as Vu,f as Wu,h as Zt,m as Yu,o as ur,r as ei,s as Ju,t as Xu,x as Qu}from"./focused-chunks/chunk-246P5AK7.js";import{$ as _f,$a as Wf,Aa as Cf,Ab as rc,Ba as If,Bb as oc,Ca as Rf,Cb as Ri,Da as Of,Db as ic,Ea as xf,Eb as c_,Fa as Pf,Fb as sc,Ga as Lf,Gb as Oi,H as Gt,Ha as Nf,Hb as Un,I as w,Ia as $f,Ib as ac,J as cf,Ja as Mf,Jb as cc,K as lf,Ka as Ff,Kb as l_,L as qe,La as Dn,Lb as d_,M as df,Mb as m_,N as Ya,Nb as Gn,O as mf,Ob as lc,P as Ja,Pa as Df,Pb as u_,Q as Si,Qa as Uf,R as Xa,Ra as Gf,S as Fn,Sa as jf,Sb as xi,T as uf,Ta as qf,U as Qa,Ua as Kf,V as Te,Va as zf,W as Za,Wa as tn,X as be,Xa as Bf,Y as pf,Ya as Hf,Z as ff,Za as Ai,Zb as h_,_ as ec,_a as Vf,a as Na,aa as tc,ab as Yf,b as Gp,bb as Jf,bc as y_,cb as Xf,cc as v_,db as Ti,dc as w_,eb as jt,ec as b_,fb as Qf,gb as Ci,i as rf,ia as hf,j as of,jb as Er,ka as Sr,la as gf,ma as Ei,na as yf,nb as Zf,oa as vf,ob as Ii,pb as Xb,qb as e_,rb as t_,sb as nc,ta as wf,tb as n_,ua as bf,ub as r_,va as kf,vb as o_,wa as Sf,wb as i_,xa as Ef,xb as s_,ya as Af,yb as a_,za as Tf,zb as Ar}from"./focused-chunks/chunk-QYQFBJXD.js";import{e as iu,g as su,h as au,k as lu,q as uu}from"./focused-chunks/chunk-C6SH62BX.js";import{b as zu,c as Zo,e as Bu,f as Hu,g as Nb}from"./focused-chunks/chunk-QVVOXVYI.js";import{R as La,V as ju,a as Jd,b as Xd,c as Qd,d as Zd,f as em}from"./focused-chunks/chunk-MMX7BQLH.js";import{a as Fp,b as Dp,c as Ni}from"./focused-chunks/chunk-7UZHYT5B.js";import{K as af,b as Up}from"./focused-chunks/chunk-LI6IGGB3.js";import{$ as ek,Ca as fc,Sa as Rr,Ta as _c,W as Qb,X as mc,Y as uc,Z as Li,_ as Zb,c as Ka,e as za,g as Mp,h as Xp,i as Qp,j as Zp,k as ef,l as tf,m as nf,n as Cr,o as dc,ra as pc,wa as Ir,ya as g_}from"./focused-chunks/chunk-ZDX2BCOT.js";import{A as Dt,B as _e,C as Nn,D as fi,E as _i,H as hi,I as gi,J as Kp,Ja as Mn,K as yi,Ka as Vp,L as vi,La as Wa,M as $n,Ma as Wp,N as Va,O as wi,P as zp,Pa as Yp,Q as Bp,Qa as Jp,R as wr,Za as Pi,a as vr,ab as f_,b as en,bb as Tr,c as ii,d as si,e as ai,eb as __,f as ci,j as li,k as Ft,l as Pn,m as di,mb as gt,n as Ln,o as mi,ob as $i,p as le,q as ui,r as Ba,s as He,t as Ha,ta as Hp,tb as jn,u as jp,v as Ae,x as ht,y as qp,z as pi}from"./focused-chunks/chunk-LG3SYXBX.js";import{c as nu,f as ru,g as ou,i as qo,j as xt,k as hu,l as gu,m as yu}from"./focused-chunks/chunk-PNCUNPSA.js";import{a as ep,b as tp,c as np}from"./focused-chunks/chunk-GEFWBVPQ.js";import{$ as Im,A as yo,Aa as Wm,B as cm,Ba as Ym,C as lm,Ca as Io,D as dm,Da as Jm,E as vo,Ea as Xm,F as mm,Fa as Qm,G as um,Ga as Ro,H as pm,Ha as Oo,I as fm,Ia as xo,J as wo,Ja as Po,K as bo,Ka as lr,L as _m,La as Zm,M as ko,Ma as Lo,Na as dr,O as hm,Oa as No,P as ar,Pa as $o,Q as gm,Qa as Mo,R as ym,Ra as Fo,S as vm,Sa as eu,T as wm,Ta as Rt,U as bm,Ua as Do,V as km,Va as Uo,W as Sm,Wa as Go,X as Em,Xa as jo,Y as Am,Z as Tm,_ as Cm,_a as tu,aa as Rm,ab as Ot,ba as Om,bb as N,ca as xm,d as fa,da as cr,e as tm,ea as Pm,fa as Lm,ga as So,h as fo,ha as Eo,i as _a,ia as Nm,j as Xt,ja as $m,ka as Mm,l as nm,la as Fm,ma as Dm,na as Um,oa as Gm,pa as jm,q as ha,ra as qm,s as _o,sa as Km,t as ho,ta as zm,u as go,ua as Bm,v as rm,va as Hm,w as om,wa as Vm,x as im,xa as Ao,y as sm,ya as To,z as am,za as Co}from"./focused-chunks/chunk-HRANNGHM.js";import{$ as pp,$a as qa,A as Jb,Ab as Lp,B as Rn,Bb as oi,C,Cb as _t,Db as Np,Eb as se,Fb as $p,G as ft,Ga as kp,Gb as Ne,Hb as br,Ia as ja,Ib as kr,Jb as bi,K as ip,Kb as Ut,L as ri,La as Sp,M as sp,Ma as Ep,N as ap,Na as nt,O as cp,P as lp,Pb as ki,Q as dp,Qa as Ap,Ra as Tp,S as ee,Sa as A,T as $a,Ta as Le,U as ne,Ua as Nt,W as Ma,Wa as je,X as mp,Xa as gr,Y as Be,Ya as On,Z as et,Za as Cp,_ as up,_a as xn,a as $b,ab as Ip,b as Mb,ba as fp,c as Fb,ca as _p,d as Db,da as Fa,ec as sf,ga as Da,gb as yr,ia as hp,ib as Rp,ic as p_,j as ti,ja as gp,jb as Op,k as rp,ka as yp,l as op,la as vp,m as In,ma as wp,n as pr,o as Ub,p as Gb,pb as $t,q as jb,qa as Pe,r as qb,ra as Lt,rb as Mt,s as Kb,t as zb,ta as Ua,tb as xp,u as Bb,ua as fr,ub as I,v as Hb,va as _r,vb as q,w as Vb,wa as Ga,wb as ie,x as ni,xa as tt,xb as Pp,y as Wb,ya as bp,z as Yb,za as hr,zb as fe}from"./focused-chunks/chunk-BVOQRMHF.js";import{b as Ct,c as co,d as lo,f as ut,h as zo,i as pt,j as Pt,k as du,m as F,n as Bo,o as Ze,q as mu}from"./focused-chunks/chunk-QKG7JD34.js";import{e as Zu}from"./focused-chunks/chunk-HFAW3FJQ.js";import{$ as l,$a as Gd,$b as bu,Aa as x,Ab as ir,Ad as kb,B as Rd,Ba as we,Bc as ka,Bd as Sb,Be as Ob,C as Od,Ca as mo,Cc as Sa,Ce as xb,D as xd,Da as kn,Dc as Ea,Dd as Eb,De as Pb,E as Pd,Ea as nr,Ec as Aa,Ed as Ab,Ee as Lb,F as Ld,Fa as Md,Fb as Ge,Fc as Ta,Fd as Oa,Fe as Qo,G as Nd,Ga as E,Gc as Ca,Gd as xa,Ge as Gu,H as oa,Ha as Fd,Hb as H,Hc as Ia,Hd as Pa,I as ia,Ia as lt,Ic as O,Id as Lu,J as sa,Ja as pe,Jb as sr,Jc as An,K as aa,Ka as dt,Kc as Qt,Kd as Nu,L as ca,Lc as J,Ld as Tb,M as la,Ma as Qe,Mc as Wo,Na as uo,Nc as Tn,Nd as Cb,Ob as En,Od as Ib,P as ao,Pd as Rb,Qc as Yo,Rd as S,Sc as Se,Ta as Sn,Tc as Jo,U as da,Va as Dd,Vd as Xo,W as $d,Xa as ua,Xc as mr,Xd as oe,Ya as rr,Z as Tt,Za as Ud,Zb as vu,_b as wu,_d as Ee,aa as d,ac as ku,bb as po,bc as Su,cc as Eu,db as jd,dc as va,eb as qd,ec as Au,ee as $u,gb as Kd,gc as Tu,hb as zd,hc as Cu,ib as Bd,ja as L,jb as Hd,jd as xu,ka as Yt,kb as Vd,kc as wa,la as It,lb as Wd,lc as Iu,le as Mu,ma as Z,mb as Yd,mc as ba,me as Fu,na as te,nd as Pu,o as oo,p as Id,pa as bn,pb as Jt,pe as Cn,q as io,qb as mt,r as ra,sd as Ra,tc as Ru,te as Du,v as Wt,va as ma,w as ct,wa as tr,x as vn,xa as ke,xe as Uu,y as wn,yb as or,z as so,zb as pa,zc as Ou,zd as bb}from"./focused-chunks/chunk-7D6M45AN.js";import{AsyncLocalStorage as Y$}from"node:async_hooks";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="176b4ac2-2c47-50d6-beee-62e1d3dc9281")}catch{}})();function k_(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function tk(e){return e.brief===!0?"brief":typeof e.fields=="string"&&e.fields.trim().length>0||Array.isArray(e.fields)&&e.fields.length>0?"fields":e.compact===!0?"compact":"full"}function hc(e,t){let n=tk(t),r=n==="brief"?n:k_(e.projection)&&typeof e.projection.mode=="string"?e.projection.mode:n;return{...e,query_summary:{filters:k_(e.filters)?e.filters:{},projection: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]="3046466c-614c-5e2b-a156-df96fba8c483")}catch{}})();async function S_(e,t){let n=E(t??process.cwd(),e),r=await A(n);return fe(n,r.item_format,x(r,null).type_to_folder,void 0,r.schema)}(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]="0c84b11c-502f-5c33-a757-5757402357b4")}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]="e8137f8b-745a-5ef5-9e7e-14b7d032c1ea")}catch{}})();var nk=new Map;function gc(){nk.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b841f903-6276-5067-842f-6a6bff114cec")}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]="0c7a926a-46a2-560c-ae95-33b92b8c820e")}catch{}})();var rk={"list-all":{action:"list",options:{excludeTerminal:!1}},"list-draft":{action:"list",options:{status:"draft",excludeTerminal:!1}},"list-open":{action:"list",options:{status:"open",excludeTerminal:!1}},"list-in-progress":{action:"list",options:{status:"in_progress",excludeTerminal:!1}},"list-blocked":{action:"list",options:{status:"blocked",excludeTerminal:!1}},"list-closed":{action:"list",options:{status:"closed",excludeTerminal:!1}},"list-canceled":{action:"list",options:{status:"canceled",excludeTerminal:!1}}};function E_(e){return Object.fromEntries(Tu.map(t=>[`${e}-${t}`,{action:e,options:{[t==="adopt-all"?"adoptAll":t]:!0,...e==="package"?{vocabulary:"package"}:{}}}]))}var A_={ctx:{action:"context"},...rk,...E_("extension"),...E_("package"),...Object.fromEntries(Cu.map(e=>[`package-${e}`,{action: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]="9133d39d-b2fb-5f99-8fd3-87a7d2f8df6d")}catch{}})();var yc="PmCliError";function ok(e){if(!Number.isFinite(e))throw new TypeError("createPmCliExpectedError options.exitCode must be a finite number");let t=Math.trunc(e);if(t<=l.SUCCESS)throw new TypeError("createPmCliExpectedError options.exitCode must be a positive exit code");return t}function T_(e,t={}){if(typeof e!="string"||e.trim().length===0)throw new TypeError("createPmCliExpectedError message must be a non-empty string");let n=new d(e,ok(t.exitCode??l.USAGE),t.context??{});return"cause"in t&&Object.defineProperty(n,"cause",{value:t.cause,enumerable:!1,configurable:!0,writable:!0}),n}function Mi(e){if(!(e instanceof Error)||e.name!==yc)return!1;let t=e;return typeof t.exitCode=="number"&&Number.isFinite(t.exitCode)}(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]="3113ad4b-282a-50af-a836-8e9abfde7d7e")}catch{}})();function vc(e){let t=Gd();for(let n of e)t.register(n);return t}function C_(e,t){return{client:t,isItemNotFoundError:n=>Mi(n)&&n.exitCode===l.NOT_FOUND,getItemAt:(n,r)=>Mp(n,r,{pmRoot:e}),openRelationshipEventStore:n=>Dp.open({pmRoot:e,nodes:n.nodes,registry:vc(n.definitions),...n.relativePath===void 0?{}:{relativePath:n.relativePath}}),createRelationshipGraph:n=>new qd(n.nodes,n.edges,vc(n.definitions)),analyzeRelationshipImpact:(n,r,o)=>Up(n,r,o),validateRelationshipEvents:n=>{let r=new Fp(n.nodes,{registry:vc(n.definitions)});return n.events.map(o=>r.append({...o,expectedVersion:r.version}))},commitWorkspaceTransaction:n=>Gp({...n,pmRoot: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]="c2766f4e-6354-55bb-9e40-676273ee901f")}catch{}})();async function I_(e,t,n=$u){try{await n({pmRoot:e,result:t})}catch{if(typeof t=="object"&&t!==null&&!Array.isArray(t)){let r=t,o=Array.isArray(r.warnings)?r.warnings.filter(i=>typeof i=="string"):[];r.warnings=[...new Set([...o,"context_usage_feedback_write_failed"])].sort()}}}import{readFile as ik}from"node:fs/promises";import sk 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]="c64f304d-9081-5bad-8187-7bf6b65e4a07")}catch{}})();var wc="context-intents.json";function Fi(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ak(e,t,n){if(!Fi(e))throw new TypeError(`${t} context intent at index ${String(n)} must be an object`);let r=e.included_field_groups;if(typeof e.command!="string"||typeof e.intent!="string"||typeof e.description!="string"||!Array.isArray(r)||!r.every(o=>typeof o=="string")||typeof e.token_budget!="number")throw new TypeError(`${t} context intent at index ${String(n)} has an invalid contract shape`);return{command:e.command,intent:e.intent,description:e.description,included_field_groups:r,token_budget:e.token_budget}}function R_(e,t){let n=Array.isArray(e)?e:Fi(e)&&Array.isArray(e.intents)?e.intents:void 0;if(!n)throw new TypeError(`${t} context intents must be an array or an object with an intents array`);return n.map((r,o)=>ak(r,t,o))}async function ck(e){let t=sk.join(e,wc),n;try{n=await ik(t,"utf8")}catch(o){if(Yt(o))return[];throw await xp(e),o}let r;try{r=JSON.parse(n)}catch(o){let i=o instanceof Error?o.message:String(o);throw new TypeError(`Invalid ${wc}: ${i}`,{cause:o})}return R_(r,wc)}function lk(e){if(!Fi(e))return;let t=e.contextIntents??e.context_intents;if(t!==void 0)return t;let n=e.default;return Fi(n)?n.contextIntents??n.context_intents:void 0}function dk(e){return e.flatMap(t=>{let n=lk(t.module);return n===void 0?[]:R_(n,`package ${t.name}`)})}async function mk(e){let t=await ck(e.pmRoot),n=dk(e.packages??[]);return{workspaceContracts:t,packageContracts:n}}async function bc(e,t){let n=await mk(e);return await Fu(n,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]="663579ae-aebb-524c-81c9-9aed44e40f35")}catch{}})();async function O_(e,t,n){if(t.body===void 0)throw new d("Missing required --body text",l.USAGE);let r=Dt(),o=E(process.cwd(),n.path);await I(o);let i=await A(o),s=C(t.author,i.author_default),c=(await r.resolveValue(t.body,"--body",qp(t,"body"))).trim();if(c.length===0)throw new d("--body text cannot be empty; append requires non-blank content and empty appends would only rewrite updated_at.",l.USAGE,{code:"append_empty_body",required:"Provide non-empty body text positionally, via --body, or with - for stdin.",examples:['pm append pm-a1b2 --body "Progress note"',"pm append pm-a1b2 --body -"]});let m=await se({pmRoot:o,settings:i,id:e,op:"append",author:s,message:t.message,force:t.force,mutate(u){let p=u.body.trim().length>0?`
1
+ import{n as cu,o as Ko,p as pu,q as fu,r as ga,s as Ho,t as _u,u as ya,v as Vo,y as qu,z as Ku}from"./focused-chunks/chunk-ARK4FIO4.js";import{a as Vu,f as Wu,h as Zt,m as Yu,o as ur,r as ei,s as Ju,t as Xu,x as Qu}from"./focused-chunks/chunk-IKPR4VVN.js";import{$ as _f,$a as Wf,Aa as Cf,Ab as rc,Ba as If,Bb as oc,Ca as Rf,Cb as Ri,Da as Of,Db as ic,Ea as xf,Eb as c_,Fa as Pf,Fb as sc,Ga as Lf,Gb as Oi,H as Gt,Ha as Nf,Hb as Un,I as w,Ia as $f,Ib as ac,J as cf,Ja as Mf,Jb as cc,K as lf,Ka as Ff,Kb as l_,L as qe,La as Dn,Lb as d_,M as df,Mb as m_,N as Ya,Nb as Gn,O as mf,Ob as lc,P as Ja,Pa as Df,Pb as u_,Q as Si,Qa as Uf,R as Xa,Ra as Gf,S as Fn,Sa as jf,Sb as xi,T as uf,Ta as qf,U as Qa,Ua as Kf,V as Te,Va as zf,W as Za,Wa as tn,X as be,Xa as Bf,Y as pf,Ya as Hf,Z as ff,Za as Ai,Zb as h_,_ as ec,_a as Vf,a as Na,aa as tc,ab as Yf,b as Gp,bb as Jf,bc as y_,cb as Xf,cc as v_,db as Ti,dc as w_,eb as jt,ec as b_,fb as Qf,gb as Ci,i as rf,ia as hf,j as of,jb as Er,ka as Sr,la as gf,ma as Ei,na as yf,nb as Zf,oa as vf,ob as Ii,pb as Xb,qb as e_,rb as t_,sb as nc,ta as wf,tb as n_,ua as bf,ub as r_,va as kf,vb as o_,wa as Sf,wb as i_,xa as Ef,xb as s_,ya as Af,yb as a_,za as Tf,zb as Ar}from"./focused-chunks/chunk-YDFEWXXZ.js";import{e as iu,g as su,h as au,k as lu,q as uu}from"./focused-chunks/chunk-CJ4QA4RW.js";import{b as zu,c as Zo,e as Bu,f as Hu,g as Nb}from"./focused-chunks/chunk-5SZ4JSPZ.js";import{R as La,V as ju,a as Jd,b as Xd,c as Qd,d as Zd,f as em}from"./focused-chunks/chunk-ZDBKYZFE.js";import{a as Fp,b as Dp,c as Ni}from"./focused-chunks/chunk-ZI2YBJFH.js";import{K as af,b as Up}from"./focused-chunks/chunk-V3YMNAO7.js";import{$ as ek,Ca as fc,Sa as Rr,Ta as _c,W as Qb,X as mc,Y as uc,Z as Li,_ as Zb,c as Ka,e as za,g as Mp,h as Xp,i as Qp,j as Zp,k as ef,l as tf,m as nf,n as Cr,o as dc,ra as pc,wa as Ir,ya as g_}from"./focused-chunks/chunk-I32L3FWW.js";import{A as Dt,B as _e,C as Nn,D as fi,E as _i,H as hi,I as gi,J as Kp,Ja as Mn,K as yi,Ka as Vp,L as vi,La as Wa,M as $n,Ma as Wp,N as Va,O as wi,P as zp,Pa as Yp,Q as Bp,Qa as Jp,R as wr,Za as Pi,a as vr,ab as f_,b as en,bb as Tr,c as ii,d as si,e as ai,eb as __,f as ci,j as li,k as Ft,l as Pn,m as di,mb as gt,n as Ln,o as mi,ob as $i,p as le,q as ui,r as Ba,s as He,t as Ha,ta as Hp,tb as jn,u as jp,v as Ae,x as ht,y as qp,z as pi}from"./focused-chunks/chunk-OOZHQFBF.js";import{c as nu,f as ru,g as ou,i as qo,j as xt,k as hu,l as gu,m as yu}from"./focused-chunks/chunk-7Y7PAC56.js";import{a as ep,b as tp,c as np}from"./focused-chunks/chunk-I4WDON3K.js";import{$ as Im,A as yo,Aa as Wm,B as cm,Ba as Ym,C as lm,Ca as Io,D as dm,Da as Jm,E as vo,Ea as Xm,F as mm,Fa as Qm,G as um,Ga as Ro,H as pm,Ha as Oo,I as fm,Ia as xo,J as wo,Ja as Po,K as bo,Ka as lr,L as _m,La as Zm,M as ko,Ma as Lo,Na as dr,O as hm,Oa as No,P as ar,Pa as $o,Q as gm,Qa as Mo,R as ym,Ra as Fo,S as vm,Sa as eu,T as wm,Ta as Rt,U as bm,Ua as Do,V as km,Va as Uo,W as Sm,Wa as Go,X as Em,Xa as jo,Y as Am,Z as Tm,_ as Cm,_a as tu,aa as Rm,ab as Ot,ba as Om,bb as N,ca as xm,d as fa,da as cr,e as tm,ea as Pm,fa as Lm,ga as So,h as fo,ha as Eo,i as _a,ia as Nm,j as Xt,ja as $m,ka as Mm,l as nm,la as Fm,ma as Dm,na as Um,oa as Gm,pa as jm,q as ha,ra as qm,s as _o,sa as Km,t as ho,ta as zm,u as go,ua as Bm,v as rm,va as Hm,w as om,wa as Vm,x as im,xa as Ao,y as sm,ya as To,z as am,za as Co}from"./focused-chunks/chunk-J3GN4SQT.js";import{$ as pp,$a as qa,A as Jb,Ab as Lp,B as Rn,Bb as oi,C,Cb as _t,Db as Np,Eb as se,Fb as $p,G as ft,Ga as kp,Gb as Ne,Hb as br,Ia as ja,Ib as kr,Jb as bi,K as ip,Kb as Ut,L as ri,La as Sp,M as sp,Ma as Ep,N as ap,Na as nt,O as cp,P as lp,Pb as ki,Q as dp,Qa as Ap,Ra as Tp,S as ee,Sa as A,T as $a,Ta as Le,U as ne,Ua as Nt,W as Ma,Wa as je,X as mp,Xa as gr,Y as Be,Ya as On,Z as et,Za as Cp,_ as up,_a as xn,a as $b,ab as Ip,b as Mb,ba as fp,c as Fb,ca as _p,d as Db,da as Fa,ec as sf,ga as Da,gb as yr,ia as hp,ib as Rp,ic as p_,j as ti,ja as gp,jb as Op,k as rp,ka as yp,l as op,la as vp,m as In,ma as wp,n as pr,o as Ub,p as Gb,pb as $t,q as jb,qa as Pe,r as qb,ra as Lt,rb as Mt,s as Kb,t as zb,ta as Ua,tb as xp,u as Bb,ua as fr,ub as I,v as Hb,va as _r,vb as q,w as Vb,wa as Ga,wb as ie,x as ni,xa as tt,xb as Pp,y as Wb,ya as bp,z as Yb,za as hr,zb as fe}from"./focused-chunks/chunk-P4BA7OX7.js";import{b as Ct,c as co,d as lo,g as ut,i as zo,j as pt,k as Pt,l as du,n as F,o as Bo,p as Ze,r as mu}from"./focused-chunks/chunk-TDHVROGL.js";import{e as Zu}from"./focused-chunks/chunk-HFAW3FJQ.js";import{$ as l,$a as Gd,$b as wu,$d as Ee,Aa as x,Ab as ir,Ac as Ou,Ad as bb,B as Rd,Ba as we,Bd as kb,C as Od,Ca as mo,Cc as ka,Cd as Sb,Ce as Ob,D as xd,Da as kn,Dc as Sa,De as xb,E as Pd,Ea as nr,Ec as Ea,Ed as Eb,Ee as Pb,F as Ld,Fa as Md,Fb as Ge,Fc as Aa,Fd as Ab,Fe as Lb,G as Nd,Ga as E,Gc as Ta,Gd as Oa,Ge as Qo,H as oa,Ha as Fd,Hb as H,Hc as Ca,Hd as xa,He as Gu,I as ia,Ia as lt,Ic as Ia,Id as Pa,J as sa,Ja as pe,Jb as sr,Jc as O,Jd as Lu,K as aa,Ka as dt,Kc as An,L as ca,Lc as Qt,Ld as Nu,M as la,Ma as Qe,Mc as J,Md as Tb,Na as uo,Nc as Wo,Oc as Tn,Od as Cb,P as ao,Pb as En,Pd as Ib,Qd as Rb,Rc as Yo,Sd as S,Ta as Sn,Tc as Se,U as da,Uc as Jo,Va as Dd,W as $d,Wd as Xo,Xa as ua,Ya as rr,Yc as mr,Yd as oe,Z as Tt,Za as Ud,_b as vu,aa as d,ac as bu,bb as po,bc as ku,cc as Su,db as jd,dc as Eu,eb as qd,ec as va,fc as Au,fe as $u,gb as Kd,hb as zd,hc as Tu,ib as Bd,ic as Cu,ja as L,jb as Hd,ka as Yt,kb as Vd,kd as xu,la as It,lb as Wd,lc as wa,ma as Z,mb as Yd,mc as Iu,me as Mu,na as te,nc as ba,ne as Fu,o as oo,od as Pu,p as Id,pa as bn,pb as Jt,q as io,qb as mt,qe as Cn,r as ra,td as Ra,uc as Ru,ue as Du,v as Wt,va as ma,w as ct,wa as tr,x as vn,xa as ke,y as wn,yb as or,ye as Uu,z as so,zb as pa}from"./focused-chunks/chunk-QL4MO5M2.js";import{AsyncLocalStorage as Y$}from"node:async_hooks";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="176b4ac2-2c47-50d6-beee-62e1d3dc9281")}catch{}})();function k_(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function tk(e){return e.brief===!0?"brief":typeof e.fields=="string"&&e.fields.trim().length>0||Array.isArray(e.fields)&&e.fields.length>0?"fields":e.compact===!0?"compact":"full"}function hc(e,t){let n=tk(t),r=n==="brief"?n:k_(e.projection)&&typeof e.projection.mode=="string"?e.projection.mode:n;return{...e,query_summary:{filters:k_(e.filters)?e.filters:{},projection: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]="3046466c-614c-5e2b-a156-df96fba8c483")}catch{}})();async function S_(e,t){let n=E(t??process.cwd(),e),r=await A(n);return fe(n,r.item_format,x(r,null).type_to_folder,void 0,r.schema)}(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]="0c84b11c-502f-5c33-a757-5757402357b4")}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]="e8137f8b-745a-5ef5-9e7e-14b7d032c1ea")}catch{}})();var nk=new Map;function gc(){nk.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b841f903-6276-5067-842f-6a6bff114cec")}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]="0c7a926a-46a2-560c-ae95-33b92b8c820e")}catch{}})();var rk={"list-all":{action:"list",options:{excludeTerminal:!1}},"list-draft":{action:"list",options:{status:"draft",excludeTerminal:!1}},"list-open":{action:"list",options:{status:"open",excludeTerminal:!1}},"list-in-progress":{action:"list",options:{status:"in_progress",excludeTerminal:!1}},"list-blocked":{action:"list",options:{status:"blocked",excludeTerminal:!1}},"list-closed":{action:"list",options:{status:"closed",excludeTerminal:!1}},"list-canceled":{action:"list",options:{status:"canceled",excludeTerminal:!1}}};function E_(e){return Object.fromEntries(Tu.map(t=>[`${e}-${t}`,{action:e,options:{[t==="adopt-all"?"adoptAll":t]:!0,...e==="package"?{vocabulary:"package"}:{}}}]))}var A_={ctx:{action:"context"},...rk,...E_("extension"),...E_("package"),...Object.fromEntries(Cu.map(e=>[`package-${e}`,{action: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]="9133d39d-b2fb-5f99-8fd3-87a7d2f8df6d")}catch{}})();var yc="PmCliError";function ok(e){if(!Number.isFinite(e))throw new TypeError("createPmCliExpectedError options.exitCode must be a finite number");let t=Math.trunc(e);if(t<=l.SUCCESS)throw new TypeError("createPmCliExpectedError options.exitCode must be a positive exit code");return t}function T_(e,t={}){if(typeof e!="string"||e.trim().length===0)throw new TypeError("createPmCliExpectedError message must be a non-empty string");let n=new d(e,ok(t.exitCode??l.USAGE),t.context??{});return"cause"in t&&Object.defineProperty(n,"cause",{value:t.cause,enumerable:!1,configurable:!0,writable:!0}),n}function Mi(e){if(!(e instanceof Error)||e.name!==yc)return!1;let t=e;return typeof t.exitCode=="number"&&Number.isFinite(t.exitCode)}(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]="3113ad4b-282a-50af-a836-8e9abfde7d7e")}catch{}})();function vc(e){let t=Gd();for(let n of e)t.register(n);return t}function C_(e,t){return{client:t,isItemNotFoundError:n=>Mi(n)&&n.exitCode===l.NOT_FOUND,getItemAt:(n,r)=>Mp(n,r,{pmRoot:e}),openRelationshipEventStore:n=>Dp.open({pmRoot:e,nodes:n.nodes,registry:vc(n.definitions),...n.relativePath===void 0?{}:{relativePath:n.relativePath}}),createRelationshipGraph:n=>new qd(n.nodes,n.edges,vc(n.definitions)),analyzeRelationshipImpact:(n,r,o)=>Up(n,r,o),validateRelationshipEvents:n=>{let r=new Fp(n.nodes,{registry:vc(n.definitions)});return n.events.map(o=>r.append({...o,expectedVersion:r.version}))},commitWorkspaceTransaction:n=>Gp({...n,pmRoot: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]="c2766f4e-6354-55bb-9e40-676273ee901f")}catch{}})();async function I_(e,t,n=$u){try{await n({pmRoot:e,result:t})}catch{if(typeof t=="object"&&t!==null&&!Array.isArray(t)){let r=t,o=Array.isArray(r.warnings)?r.warnings.filter(i=>typeof i=="string"):[];r.warnings=[...new Set([...o,"context_usage_feedback_write_failed"])].sort()}}}import{readFile as ik}from"node:fs/promises";import sk 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]="c64f304d-9081-5bad-8187-7bf6b65e4a07")}catch{}})();var wc="context-intents.json";function Fi(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ak(e,t,n){if(!Fi(e))throw new TypeError(`${t} context intent at index ${String(n)} must be an object`);let r=e.included_field_groups;if(typeof e.command!="string"||typeof e.intent!="string"||typeof e.description!="string"||!Array.isArray(r)||!r.every(o=>typeof o=="string")||typeof e.token_budget!="number")throw new TypeError(`${t} context intent at index ${String(n)} has an invalid contract shape`);return{command:e.command,intent:e.intent,description:e.description,included_field_groups:r,token_budget:e.token_budget}}function R_(e,t){let n=Array.isArray(e)?e:Fi(e)&&Array.isArray(e.intents)?e.intents:void 0;if(!n)throw new TypeError(`${t} context intents must be an array or an object with an intents array`);return n.map((r,o)=>ak(r,t,o))}async function ck(e){let t=sk.join(e,wc),n;try{n=await ik(t,"utf8")}catch(o){if(Yt(o))return[];throw await xp(e),o}let r;try{r=JSON.parse(n)}catch(o){let i=o instanceof Error?o.message:String(o);throw new TypeError(`Invalid ${wc}: ${i}`,{cause:o})}return R_(r,wc)}function lk(e){if(!Fi(e))return;let t=e.contextIntents??e.context_intents;if(t!==void 0)return t;let n=e.default;return Fi(n)?n.contextIntents??n.context_intents:void 0}function dk(e){return e.flatMap(t=>{let n=lk(t.module);return n===void 0?[]:R_(n,`package ${t.name}`)})}async function mk(e){let t=await ck(e.pmRoot),n=dk(e.packages??[]);return{workspaceContracts:t,packageContracts:n}}async function bc(e,t){let n=await mk(e);return await Fu(n,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]="663579ae-aebb-524c-81c9-9aed44e40f35")}catch{}})();async function O_(e,t,n){if(t.body===void 0)throw new d("Missing required --body text",l.USAGE);let r=Dt(),o=E(process.cwd(),n.path);await I(o);let i=await A(o),s=C(t.author,i.author_default),c=(await r.resolveValue(t.body,"--body",qp(t,"body"))).trim();if(c.length===0)throw new d("--body text cannot be empty; append requires non-blank content and empty appends would only rewrite updated_at.",l.USAGE,{code:"append_empty_body",required:"Provide non-empty body text positionally, via --body, or with - for stdin.",examples:['pm append pm-a1b2 --body "Progress note"',"pm append pm-a1b2 --body -"]});let m=await se({pmRoot:o,settings:i,id:e,op:"append",author:s,message:t.message,force:t.force,mutate(u){let p=u.body.trim().length>0?`
2
2
 
3
3
  `:"";return u.body=`${u.body.trimEnd()}${p}${c}
4
- `,{changedFields:["body"]}}});return{item:m.item,appended:c,changed_fields:m.changedFields}}import{readFile as uk}from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0a5fc27e-3f5a-59e0-998e-be5da72913dd")}catch{}})();function Ui(e){let t={...e,...e.full===!0?{fullHistory:!0}:{}};return delete t.full,Ae(e,t)}function x_(e,t){if(typeof e=="object"&&e!==null&&"format"in e&&e.format==="json")throw new d(`Structured context events are append-only and cannot be ${t}.`,l.USAGE,{code:"structured_event_immutable"})}function kc(e,t){return t===void 0?e:t===0?[]:e.slice(Math.max(0,e.length-t))}function nn(e,t){let n=e[t];return Array.isArray(n)?n:[]}function qn(e,t={}){let n=e.trim();if(!n)return"";let r=/^(?:[-*+]\s*)?text\s*[:=]/i.exec(n);if(t.stripPlainTextPrefix===!0&&r&&!n.startsWith("```"))return n.slice(r[0].length).trim()||n;if(!(/^(?:[-*+]\s*)?text\s*[:=]/im.test(n)||n.startsWith("```")))return n;try{let i=le(n,"--add");return Object.keys(i).map(c=>c.trim().toLowerCase()).some(c=>c!=="text")?n:i.text?.trim()||n}catch{return n}}function Sc(e){return typeof e=="object"&&e!==null&&"code"in e}function Pr(e,t){if(!ht(e))throw new d(`${t} cannot read process stdin through the MCP JSON-RPC transport. Pass annotation text in options.add instead.`,l.USAGE,{code:"mcp_stdin_unavailable",required:"Pass annotation text as JSON data; the MCP protocol already owns process stdin."})}async function pk(e,t){if(+(e.add!==void 0)+ +(e.stdin===!0)+ +(typeof e.file=="string")>1)throw new d(`Specify ${t} text using only one input source: --add, --stdin, or --file`,l.USAGE);let r=Dt(),o=ht(e);if(e.add!==void 0)return{value:await r.resolveValue(e.add,"--add",o)??"",rawValue:e.add,emptyFlag:"--add"};if(e.stdin===!0)return Pr(e,"--stdin"),{value:await r.resolveValue("-","--stdin")??"",emptyFlag:"--stdin"};if(typeof e.file!="string")return;let i=e.file.trim();if(!i)throw new d("--file path cannot be empty",l.USAGE);if(i==="-")return Pr(e,"--file -"),{value:await r.resolveValue("-","--file")??"",emptyFlag:"--file"};try{return{value:await uk(i,"utf8"),emptyFlag:"--file"}}catch(s){if(Sc(s)&&Yt(s))throw new d(`--file path not found: ${i}. Use --file - to read stdin.`,l.USAGE);let a=s instanceof Error?s.message:String(s);throw new d(`Failed to read --file path "${i}": ${a}. Use --file - to read stdin.`,l.USAGE)}}async function Gi(e,t){if(e.edit!==void 0&&e.delete!==void 0)throw new d("Specify only one of --edit or --delete",l.USAGE);if(e.delete!==void 0){if(e.add!==void 0||e.stdin===!0||typeof e.file=="string")throw new d("--delete cannot be combined with replacement text",l.USAGE);if(!Number.isInteger(e.delete)||e.delete<1)throw new d("--delete must be a positive integer",l.USAGE);return{mode:"delete",index:e.delete}}if(e.edit!==void 0&&(!Number.isInteger(e.edit)||e.edit<1))throw new d("--edit must be a positive integer",l.USAGE);let n=await pk(e,t);if(e.edit!==void 0){if(!n)throw new d("--edit requires replacement text from --add, --stdin, or --file",l.USAGE);return{mode:"edit",index:e.edit,...n}}return n?{mode:"add",...n}:{mode:"list"}}function xr(e,t){throw e instanceof d&&e.exitCode===l.CONFLICT&&e.message.includes("is assigned to")&&e.message.includes("Use --force to override")?new d(e.message,e.exitCode,{code:"ownership_conflict",required:t.required,examples:t.examples,nextSteps:t.nextSteps}):e}function L_(e){return e==="comments"?"--stdin":"--add -"}function fk(e,t){if((t.input.emptyFlag??"--add")!=="--add")return;let r=e.trim();if(!/^-{1,2}[A-Za-z][\w-]*(?:=.*)?$/.test(r))return;let o=L_(t.collectionKey),i=t.input.mode==="edit"?`pm ${t.collectionKey} <id> --edit <index>`:`pm ${t.collectionKey} <id>`;throw new d(`--add value "${r}" looks like an option, not annotation text. Use ${o} to read stdin, or use text=${r} for literal dash-leading text.`,l.USAGE,{code:"annotation_flag_like_value",required:`Use ${o} for stdin input, pass plain text, or use text=${r} when the text really starts with "-".`,examples:[`${i} ${o}`,`${i} --add text=${r}`]})}function _k(e,t){if(t.ifAbsent===!0&&!["add","stdin","file"].includes(e.input.mode))throw new d(`--if-absent requires a ${e.collectionKey.replace(/s$/,"")} append`,l.USAGE,{code:"annotation_if_absent_without_append",required:"Combine --if-absent with one append text source; omit it for list, edit, and delete operations."});if(e.input.mode!=="list"||t.message===void 0)return;let n=e.collectionKey.replace(/s$/,"");throw new d(`--message labels a ${n} mutation but does not provide ${n} text. Pass text positionally or with --add, --stdin, or --file.`,l.USAGE,{code:"annotation_message_without_text",required:`Provide ${n} text through a content source; --message only annotates the history entry of a mutation.`,examples:[`pm ${e.collectionKey} <id> --add "text" --message "why"`,`pm ${e.collectionKey} <id> ${L_(e.collectionKey)}`]})}function hk(e,t,n,r,o,i){let s=nn(e.metadata,t),a=o?s.findIndex(c=>c.author===n&&c.text===r):-1;return a>=0?{changedFields:[],entryIndex:a+1}:(s.push(i({created_at:S(),author:n,text:r})),e.metadata[t]=s,{changedFields:[t],entryIndex:s.length})}async function Kn(e,t,n,r){_k(r,t);let o=E(process.cwd(),n.path);await I(o);let i=await A(o),s=x(i,O()),a=wr(t.limit);if(r.input.mode==="list"){let h=await q(o,e,i.id_prefix,i.item_format,s.type_to_folder);if(!h)throw new d(`Item ${e} not found`,l.NOT_FOUND);let y=await ie(h,{schema:i.schema}),g=nn(y.document.metadata,r.collectionKey);return Di(h.id,r.collectionKey,g,a,t.includeMeta===!0)}let c=C(t.author,i.author_default);if(r.input.mode==="delete"){let h=r.deleteOp??r.op,y;try{y=await se({pmRoot:o,settings:i,id:e,op:h,author:c,message:t.message,force:t.force,bypassAssigneeConflict:r.bypassOwnershipConflict,mutate(v){let b=nn(v.metadata,r.collectionKey),k=P_(r.input.index,b.length,r.collectionKey);return x_(b[k],"deleted"),b.splice(k,1),v.metadata[r.collectionKey]=b,{changedFields:[r.collectionKey]}}})}catch(v){xr(v,r.conflictGuidance)}let g=nn(y.item,r.collectionKey);return Di(y.item.id,r.collectionKey,g,a,t.includeMeta===!0,{action:"delete",entryIndex:r.input.index},t.fullHistory===!0)}let m=r.input.rawValue??r.input.value??"";fk(m,r);let u=r.parseText(r.input.value??"");if(!u.trim())throw new d(`${r.input.emptyFlag??"--add"} text cannot be empty`,l.USAGE);if(r.input.mode==="edit"){let h=r.editOp??r.op,y;try{y=await se({pmRoot:o,settings:i,id:e,op:h,author:c,message:t.message,force:t.force,bypassAssigneeConflict:r.bypassOwnershipConflict,mutate(v){let b=nn(v.metadata,r.collectionKey),k=P_(r.input.index,b.length,r.collectionKey),T=b[k];return x_(T,"edited"),b[k]={...T,text:u,edited_at:S()},v.metadata[r.collectionKey]=b,{changedFields:[r.collectionKey]}}})}catch(v){xr(v,r.conflictGuidance)}let g=nn(y.item,r.collectionKey);return Di(y.item.id,r.collectionKey,g,a,t.includeMeta===!0,{action:"edit",entryIndex:r.input.index,entry:g[r.input.index-1]},t.fullHistory===!0)}let p,f=0;try{p=await se({pmRoot:o,settings:i,id:e,op:r.op,author:c,message:t.message,force:t.force,bypassAssigneeConflict:r.bypassOwnershipConflict,skipNoop:t.ifAbsent===!0,mutate(h){let y=hk(h,r.collectionKey,c,u,t.ifAbsent===!0,r.createEntry);return f=y.entryIndex,{changedFields:y.changedFields}}})}catch(h){xr(h,r.conflictGuidance)}let _=nn(p.item,r.collectionKey);return Di(p.item.id,r.collectionKey,_,a,t.includeMeta===!0,{action:"add",entryIndex:f,entry:_[f-1],changedCount:t.ifAbsent===!0?Math.min(p.changedFields.length,1):void 0},t.fullHistory===!0)}function P_(e,t,n){if(e===void 0||!Number.isInteger(e)||e<1||e>t){let r=n.replace(/s$/,""),o=`${r.charAt(0).toUpperCase()}${r.slice(1)}`,i=t===1?`1 ${r}`:`${t} ${n}`;throw new d(`${o} index ${e??"(missing)"} out of range (item has ${i})`,l.USAGE)}return e-1}function gk(e,t,n){return t===void 0?{}:{mutation_receipt:{action:t.action,entry_index:t.entryIndex,changed_count:t.changedCount??1,full_history_included:!n},omission_receipt:{has_omissions:n,omitted_field_group_count:n?1:0,omitted_field_groups:n?[{name:`${e}_history`,restore_with:{selector:"full_history",cli_flag:"--full-history",sdk_option:"fullHistory",mcp_option:"full"}}]:[]}}}function Di(e,t,n,r,o,i,s=!1){let a=i===void 0||s?kc(n,i!==void 0&&s?void 0:r):i.entry===void 0?[]:[i.entry],c=i!==void 0&&a.length<n.length;return{id:e,[t]:a,count:a.length,...i?.changedCount===void 0?{}:{changed:i.changedCount===1},...[o,i!==void 0].includes(!0)?{total_count:n.length,returned_count:a.length,has_more:c||a.length<n.length,...r!==void 0?{limit:r}:{}}:{},...gk(t,i,c)}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f366dd76-73b4-55c4-8c63-2913d0a0c380")}catch{}})();async function N_(e,t,n){return[...await Promise.resolve().then(()=>pp(Qe(e,t),t)).catch(()=>[])].reverse().find(i=>i.patch.some(s=>s.path==="/metadata/assignee"))?.op==="claim"?`claimed by ${n}`:`assigned to ${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]="f2901314-4044-5a91-ad72-6b4bebde16c2")}catch{}})();var $_="no_available_next_item";function M_(e){if(!(e instanceof Error)||e.name!=="PmCliError")return!1;let t=e.context;return typeof t=="object"&&t!==null&&"code"in t&&t.code==="already_claimed_by"}async function Lr(e,t,n,r={}){let o=E(process.cwd(),n.path);await I(o);let i=await A(o),s=F(i.schema),a=C(r.author,i.author_default),c=Rn(a),m=null,u=!1,p=[],f=await se({pmRoot:o,settings:i,id:e,op:"claim",author:a,message:r.message,force:t,skipNoop:!0,async mutate(_){let y=_.metadata.assignee??"",g=_.metadata.claim_principal?.trim()||y;if(m=y.trim().length>0?y:null,mu(_.metadata.status,s)&&!t)throw new d(`Cannot claim terminal item ${_.metadata.id} without --force`,l.CONFLICT);if(m!==null&&g!==c){if(r.ifAvailable===!0)return u=!0,p.push(`claim_skipped_held_by:${m}`),{changedFields:[]};if(!t){let T=await N_(o,_.metadata.id,y);throw new d(`Item ${_.metadata.id} is already ${T}. Use --force to take over, or --if-available to skip without failing.`,l.CONFLICT,{code:"already_claimed_by",why:"Claim is an atomic test-and-set so parallel agents never proceed believing they own the same item.",nextSteps:["Run pm next to pick a different unclaimed item.","Re-run with --if-available to treat a held item as a no-op skip.","Re-run with --force only when taking over the item is coordinated."]})}p.push(`claim_takeover:${m}->${a}`)}let b={assignee:a,claim_principal:c},k=["assignee","claim_principal"].filter(T=>_.metadata[T]!==b[T]);return Object.assign(_.metadata,b),{changedFields:k,warnings:p}}});return u||await mc({pmRoot:o,settings:i,principal:c,itemId:f.item.id}),{item:f.item,changed_fields:f.changedFields,claimed_by:u&&m!==null?m:a,previous_assignee:m,forced:t,...u?{skipped:!0}:{},...p.length>0?{warnings:p}:{}}}async function F_(e,t,n={},r={}){let o=yk(n.maxAttempts),i=await A(E(process.cwd(),t.path)),s={...n,author:C(n.author,i.author_default)},a=await Ir({...r,callerAuthor:s.author,limit:String(o)},t),c=[a.recommended,...a.ready].filter(m=>m!==null).map(m=>({...m,reasons:"reasons"in m?m.reasons:["ranked ready candidate"]}));return vk(c.slice(0,o),e,t,s)}function yk(e){if(e===void 0)return 10;let t=Number(e);if(!Number.isSafeInteger(t)||t<1||t>100)throw new d("--max-attempts must be an integer from 1 to 100",l.USAGE);return t}async function vk(e,t,n,r={},o=Lr){let i=0;for(let a of e){i+=1;try{let c=await o(a.id,t,n,r),m={...c,recommendation:a,attempts:i,available:!0};if(!c.skipped)return m}catch(c){if(!M_(c))throw c}}if(r.ifAvailable===!0)return{available:!1,item:null,claimed_by:C(r.author,""),previous_assignee:null,forced:t,skipped:!0,recommendation:null,attempts:i,warnings:[$_]};let s=i===0;throw new d(s?"No actionable items matched the selection filters":"No actionable item remained available to claim",s?l.NOT_FOUND:l.CONFLICT,{code:$_,why:s?"No ready items matched the specified filters or selection criteria.":"Every ranked candidate was claimed by another agent before this atomic selection completed.",nextSteps:[s?"Verify the filters or run pm next to inspect all ready work.":"Run pm claim --next again to refresh the ranked candidate set."]})}async function Nr(e,t,n,r={}){let o=E(process.cwd(),n.path);await I(o);let i=await A(o),s=C(r.author,i.author_default),a=Rn(s),c=r.ownershipReleaseBypass===!0,m=null,u;try{u=await se({pmRoot:o,settings:i,id:e,op:"release",author:s,message:r.message,force:t,bypassAssigneeConflict:c,mutate(_){return m=_.metadata.assignee??null,!m&&!_.metadata.claim_principal?{changedFields:[]}:(delete _.metadata.assignee,delete _.metadata.claim_principal,{changedFields:["assignee","claim_principal"]})}})}catch(_){xr(_,{required:"For approved non-owner handoffs, prefer the ownership-release bypass before considering --force.",examples:['pm release pm-a1b2 --author "reviewer" --force'],nextSteps:["Use the package-provided ownership-release bypass for handoffs that only clear assignee metadata.","Use --force only when an explicit override is approved for broader ownership conflicts."]})}await uc({pmRoot:o,principal:a,itemId:u.item.id});let p=F(i.schema),f=$a(u.item.status,p)===$a(p.in_progress_status,p);return{item:u.item,released_by:s,changed_fields:u.changedFields,previous_assignee:m,forced:t,...f?{warnings:["released_unclaimed_in_progress"],suggestions:[`${u.item.id} remains ${u.item.status} and unclaimed. If work is paused, run pm release ${u.item.id} --pause to move it to ${p.open_status}.`]}:{}}}(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]="e63a8049-309b-57f2-ba48-cd0a550c11ab")}catch{}})();var wk=Object.freeze({requireCloseReason:!0,orderingEdges:"preserve"});function D_(e){let t=[{source:"explicit",value:e.explicit},{source:"duplicate",value:e.duplicateOf===void 0?void 0:`Duplicate of ${e.duplicateOf}`},{source:"resolution",value:e.resolution},{source:"message",value:e.message}];for(let n of t){let r=n.value?.trim();if(r)return{closeReason:r,source:n.source}}return{source:"none"}}function Ec(e,t){return Ac(e,t,{operation:"close"})}function Ac(e,t,n){let r=D_(e);if(!t||r.closeReason!==void 0)return r;let o=n.operation==="create"?[`pm create --title "<title>" --type <type> --status ${n.status??"closed"} --close-reason "<closing summary>"`,`pm create --title "<title>" --type <type> --status ${n.status??"closed"} --resolution "<resolution summary>"`,"pm create --stdin-json < item.json"]:['pm close <id> "Done: <what changed and why>"','pm close <id> --reason "<closing summary>"','pm close <id> -m "<closing summary>"',"pm close <id> --duplicate-of <canonical-id>"];throw new d("Close reason text is required because governance.require_close_reason is enabled",l.USAGE,{code:"close_reason_required",required:"Provide an author-controlled closing summary as the reason, message, resolution, or duplicate target.",why:"governance.require_close_reason is enabled, so tools must not invent immutable closure evidence.",examples:o,nextSteps:[`Re-run the ${n.operation} operation with a closing summary.`,"To stop requiring reasons, run: pm config set governance-require-close-reason --policy disabled"]})}function Tc(e,t){let n=typeof e.blocked_by=="string"?e.blocked_by.trim():"",r=e.blocked_by!==void 0,o=e.dependencies??[],i=o.filter(m=>m.kind==="blocked_by"),s=e.blocked_reason!==void 0,a=[];if(r&&(delete e.blocked_by,a.push("blocked_by")),s&&(delete e.blocked_reason,a.push("blocked_reason")),t.orderingEdges==="remove"&&i.length>0){let m=o.filter(u=>u.kind!=="blocked_by");m.length>0?e.dependencies=m:delete e.dependencies,a.push("dependencies")}let c=[...new Set([...n?[n]:[],...i.map(m=>m.id)])];return c.length===0?{changedFields:a,warnings:[]}:{changedFields:a,warnings:[t.orderingEdges==="preserve"?`closed_preserved_predecessors:${e.id}:${c.join(",")}`:`closed_removed_predecessors:${e.id}:${c.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]="49e375b7-49a8-5b6f-89c8-be70d334b78f")}catch{}})();var bk=[{key:"resolution",label:"resolution (--resolution)"},{key:"expected_result",label:"expected_result (--expected-result)"},{key:"actual_result",label:"actual_result (--actual-result)"}];function kk(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t.length===0||t==="warn")return"warn";if(t==="off"||t==="none"||t==="disabled")return"off";if(t==="strict")return"strict";throw new d(`Invalid --validate-close mode "${e}" (expected "off", "warn", or "strict")`,l.USAGE)}function U_(e){let t=[];for(let n of bk){let r=e[n.key];(typeof r!="string"||r.trim().length===0)&&t.push(n)}return t}function G_(e,t,n={}){let r=U_(e);if(r.length===0)return;let o={resolution:n.resolution,expected_result:n.expectedResult,actual_result:n.actualResult},i=r.map(a=>`--${a.key.replaceAll("_","-")}`),s=["--pm-path",t,"update",e.id,...r.flatMap((a,c)=>[i[c],o[a.key]?.trim()||"<value>"])];return{missing:i,suggested_retry:mr(s),suggested_retry_args:s}}async function Sk(e,t,n){let r=new Set,o=t;for(;typeof o=="string"&&o.trim().length>0;){let i=o.trim();if(i===n)return!0;if(r.has(i))return!1;r.add(i),o=(await e(i))?.duplicate_of}return!1}function Ek(e){return typeof e!="string"||e.trim().length===0}async function Ak(e,t,n,r){let o=n?.trim();if(!o)return;if(o===r)throw new d("An item cannot be closed as a duplicate of itself.",l.USAGE,{code:"duplicate_target_self",why:"--duplicate-of must identify the canonical item that should remain open or already represent the work."});let i=x(t,O()),s=new Map,a=async m=>{if(s.has(m))return s.get(m)??null;let u=await q(e,m,t.id_prefix,t.item_format,i.type_to_folder);if(!u)return s.set(m,null),null;let{document:p}=await ie(u,{schema:t.schema});return s.set(m,p.metadata),p.metadata},c=await a(o);if(!c)throw new d(`Duplicate target "${o}" was not found. Create or locate the canonical item first.`,l.USAGE,{code:"duplicate_target_missing",why:"Duplicate closure should point at a real canonical pm item so future dedupe and changelog tooling can trace the relationship.",examples:[`pm close ${r} "Duplicate of ${o}" --duplicate-of ${o}`],nextSteps:["Run pm search/list to find the canonical item, then retry with --duplicate-of <id>."]});if(await Sk(a,c.duplicate_of,r))throw new d(`Circular duplicate reference detected. Target "${o}" points back to "${r}".`,l.USAGE,{code:"duplicate_target_circular",why:"Circular duplicate relationships create loops for dedupe and status propagation tooling.",nextSteps:["Choose the existing canonical item, or clear the target duplicate_of metadata before closing this item as a duplicate."]});if(typeof c.duplicate_of=="string"&&c.duplicate_of.trim().length>0)throw new d(`Duplicate target "${o}" is already marked as a duplicate of "${c.duplicate_of.trim()}".`,l.USAGE,{code:"duplicate_target_is_duplicate",why:"Duplicate closure should point directly at the canonical item, not another duplicate.",examples:[`pm close ${r} "Duplicate of ${c.duplicate_of.trim()}" --duplicate-of ${c.duplicate_of.trim()}`],nextSteps:["Use the canonical item referenced by duplicate_of as the --duplicate-of target."]});return c.id}function Tk(e,t,n){return e.filter(r=>r.parent===t&&!ne(r.status,n)).map(r=>r.id).sort((r,o)=>r.localeCompare(o))}function Ck(e,t,n){let r=new Map(e.map(a=>[a.id.trim().toLowerCase(),a])),o=p_(e),i=t.trim().toLowerCase(),s=n.blocked_statuses;return e.filter(a=>s.has(a.status)).map(a=>({item:a,blockerIds:o.get(a.id.trim().toLowerCase())})).filter(({blockerIds:a})=>a.includes(i)).filter(({blockerIds:a})=>a.every(c=>{if(c===i)return!0;let m=r.get(c);return m!==void 0&&ne(m.status,n)})).map(({item:a,blockerIds:c})=>({id:a.id,blocker_ids:c})).sort((a,c)=>a.id.localeCompare(c.id))}async function Ik(e,t,n,r,o,i){let s=Ck(n,r,i),a=[];for(let c of s)try{let m=await se({pmRoot:e,settings:t,id:c.id,op:"update",author:o,message:`Auto-unblocked after blocker ${r} closed`,mutate(u){let p=u.metadata.dependencies??[],f=p.filter(h=>{let y=h.id.trim().toLowerCase();return h.kind!=="blocked_by"||!c.blocker_ids.includes(y)});u.metadata.status=i.open_status,delete u.metadata.blocked_by,delete u.metadata.blocked_reason,u.metadata.unblock_note=`Auto-unblocked after blocker ${r} closed; all blockers resolved (${c.blocker_ids.join(", ")}).`,f.length>0?u.metadata.dependencies=f:delete u.metadata.dependencies;let _=["status","blocked_by","blocked_reason","unblock_note"];return f.length!==p.length&&_.push("dependencies"),{changedFields:_}}});a.push(`auto_unblocked:${m.item.id}:resolved_blockers=${c.blocker_ids.join(",")}`)}catch(m){let u=m instanceof Error?m.message.replace(/\s+/g," ").trim():"unknown";a.push(`auto_unblock_failed:${c.id}:${u}`)}return a}function Rk(e,t){let n=[],r=[{option:t.resolution,key:"resolution"},{option:t.expectedResult,key:"expected_result"},{option:t.actualResult,key:"actual_result"}];for(let{option:o,key:i}of r){if(typeof o!="string")continue;let s=o.trim();s.length!==0&&(e[i]=s,n.push(i))}return n}function Ok(e,t){if(t===void 0)return[];e.duplicate_of=t;let n=[],r=[{key:"resolution",value:`Duplicate of ${t}`},{key:"expected_result",value:`Canonical item ${t} tracks the work.`},{key:"actual_result",value:`Closed as duplicate of ${t}.`}];for(let{key:o,value:i}of r)Ek(e[o])&&(e[o]=i,n.push(o));return n}function xk(e,t,n,r){let o=[];if(t!=="off"){let i=U_(e);if(i.length>0){let s=i.map(a=>a.label);if(t==="strict"){let a=i.map(m=>`--${m.key.replaceAll("_","-")}`),c=["--pm-path",r,"update",e.id,...a.flatMap(m=>[m,"<value>"])];throw new d(`Cannot close item ${e.id}: missing ${s.join(", ")}. Populate fields or use --validate-close warn.`,l.USAGE,{code:"close_validation_missing_fields",recovery:{missing:a,suggested_retry:mr(c)},nextSteps:["Run the suggested pm update, then retry the original pm close invocation.","Use --validate-close warn only when governance permits an evidenced exception."]})}o.push(`close_validation_missing_fields:${e.id}:${s.join(",")}`)}if(n.length>0){if(t==="strict")throw new d(`Cannot close item ${e.id}: active child items remain open (${n.join(", ")}). Close, cancel, or re-parent them first, or use --validate-close warn.`,l.USAGE);o.push(`close_validation_active_children:${e.id}:${n.join(",")}`)}return o}return n.length>0&&o.push(`closed_with_active_children:${e.id}:${n.join(",")}`),o}function Pk(e,t){return t!==void 0?(e.close_reason=t,["close_reason"]):[]}function Lk(e){return e.assignee===void 0?[]:(delete e.assignee,["assignee"])}function Nk(e,t){if(ne(e.status,t.statusRegistry)&&!t.force)throw new d(`Item ${e.id} is already terminal; use pm update to append acceptance evidence, or --force only for an intentional repeat closure.`,l.CONFLICT,{recovery:G_(e,t.pmRoot,t.options)});let n=Rk(e,t.options),r=Ok(e,t.duplicateOf),o=xk(e,t.validateCloseMode,t.activeChildIds,t.pmRoot);e.status=t.statusRegistry.close_status,e.closed_at=t.closedAt;let i=t.options.completedAt!==void 0||e.completed_at===void 0;i&&(e.completed_at=t.completedAt);let s=["status","closed_at",...i?["completed_at"]:[],...Pk(e,t.closeReason),...n];if(Wp(e)&&(e.plan_mode="completed",s.push("plan_mode")),t.duplicateOf!==void 0){s.push("duplicate_of");for(let c of r)s.includes(c)||s.push(c)}s.push(...Lk(e));let a=Tc(e,t.lifecyclePolicy);return s.push(...a.changedFields),o.push(...a.warnings),{changedFields:s,...o.length>0?{warnings:o}:{}}}async function j_(e,t,n,r){let o=E(process.cwd(),r.path);await I(o);let i=await A(o),s=F(i.schema),a=C(n.author,i.author_default),c=x(i,O()).type_to_folder,m=await q(o,e,i.id_prefix,i.item_format,c);if(!m)throw await _t(o,e,i.id_prefix,c);let u=await Ak(o,i,n.duplicateOf,m.id),p={requireCloseReason:n.lifecyclePolicy?.requireCloseReason??i.governance.require_close_reason,orderingEdges:n.lifecyclePolicy?.orderingEdges??"preserve"},f=Ec({explicit:t,duplicateOf:u,resolution:n.resolution,message:n.message},p.requireCloseReason).closeReason,_=kk(n.validateClose)??i.governance.close_validation_default,h=await fe(o,i.item_format,c,void 0,i.schema),y=Tk(h,m.id,s),g=S(),v=n.completedAt===void 0?g:oe(n.completedAt,new Date(g),"completed-at"),b=await se({pmRoot:o,settings:i,id:m.id,op:"close",author:a,message:n.message,force:n.force,mutate(T){return Nk(T.metadata,{pmRoot:o,statusRegistry:s,force:n.force,options:n,duplicateOf:u,validateCloseMode:_,activeChildIds:y,closeReason:f,closedAt:g,completedAt:v,lifecyclePolicy:p})}}),k=_==="warn"?G_(b.item,o):void 0;return{item:b.item,changed_fields:b.changedFields,...k?{recovery:k}:{},warnings:[...b.warnings,...await Ik(o,i,h,m.id,a,s)]}}function yt(e,t,n,r){return j_(e,t,n,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]="c45ead8e-c9ed-5b59-84e5-b8e077e84010")}catch{}})();function ji(e){let t=e.trim();return t.toLowerCase()==="med"?"medium":t}function qi(e){let t=e.trim();return t.toLowerCase()==="med"?"medium":t}function Ki(e){let t=e.trim().toLowerCase();if(t==="med")return"medium";if(so.includes(t))return t;let n=_e(e,"confidence");if(!Number.isInteger(n)||n<0||n>100)throw new d("Confidence must be an integer 0..100 or one of low|med|medium|high",l.USAGE);return n}function zi(e){let t=e.trim().toLowerCase();if(t==="true"||t==="1")return!0;if(t==="false"||t==="0")return!1;throw new d("Regression must be one of true|false|1|0",l.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]="add1928e-08d1-5ead-9a4e-0f1a9b6580fc")}catch{}})();var $k=new Set(["none","null"]);function Bi(e={}){return[{optionKey:"dep",clearFlagKey:"clearDeps",valueFlag:"--dep",clearFlag:"--clear-deps",...e.depDisableFlagKey===void 0?{}:{disableFlagKey:e.depDisableFlagKey}},{optionKey:"comment",clearFlagKey:"clearComments",valueFlag:"--comment",clearFlag:"--clear-comments"},{optionKey:"note",clearFlagKey:"clearNotes",valueFlag:"--note",clearFlag:"--clear-notes"},{optionKey:"learning",clearFlagKey:"clearLearnings",valueFlag:"--learning",clearFlag:"--clear-learnings"},{optionKey:"file",clearFlagKey:"clearFiles",valueFlag:"--file",clearFlag:"--clear-files",...e.fileDisableFlagKey===void 0?{}:{disableFlagKey:e.fileDisableFlagKey}},{optionKey:"test",clearFlagKey:"clearTests",valueFlag:"--test",clearFlag:"--clear-tests",...e.testDisableFlagKey===void 0?{}:{disableFlagKey:e.testDisableFlagKey}},{optionKey:"doc",clearFlagKey:"clearDocs",valueFlag:"--doc",clearFlag:"--clear-docs",...e.docDisableFlagKey===void 0?{}:{disableFlagKey:e.docDisableFlagKey}},{optionKey:"reminder",clearFlagKey:"clearReminders",valueFlag:"--reminder",clearFlag:"--clear-reminders"},{optionKey:"event",clearFlagKey:"clearEvents",valueFlag:"--event",clearFlag:"--clear-events"},{optionKey:"typeOption",clearFlagKey:"clearTypeOptions",valueFlag:"--type-option",clearFlag:"--clear-type-options"}]}function Ve(e){return e===void 0?!1:$k.has(e.trim().toLowerCase())}function Hi(e,t,n){if(!Ve(e))return;let r=n?` ${n}`:"";throw new d(`${t} no longer accepts "none" or "null".${r}`.trim(),l.USAGE)}function Ce(e,t,n){if(!e||e.length===0||!e.some(i=>Ve(i)))return;let o=n?` ${n}`:"";throw new d(`${t} no longer accepts "none" or "null".${o}`.trim(),l.USAGE)}function Vi(e,t){for(let n of t){let r=e[n.optionKey];if(!Array.isArray(r)||r.length===0)continue;if(!r.every(a=>typeof a=="string"))throw new d(`${n.valueFlag} entries must be strings.`,l.USAGE);let o=r;if(!o.some(a=>Ve(a)))continue;if(o.filter(a=>!Ve(a)).length>0)throw new d(`Cannot mix legacy clear token "none"/"null" with concrete ${n.valueFlag} entries. Use ${n.clearFlag} to clear or provide explicit entries.`,l.USAGE);e[n.optionKey]=void 0,e[n.clearFlagKey]=!0,n.disableFlagKey&&(e[n.disableFlagKey]=!1)}return e}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="49f970c3-e408-52d5-bb4d-8cea0c7f8ef4")}catch{}})();function K_(e,t){let n=e.trim().toLowerCase();if(n==="true"||n==="1"||n==="yes")return!0;if(n==="false"||n==="0"||n==="no")return!1;throw new d(`${t} must be one of true|false|1|0|yes|no`,l.USAGE)}function Cc(e){return e?e.split("|").map(t=>t.trim()).filter(t=>t.length>0):[]}function Ie(e,t,n,r=n){if(!t.includes(e))throw new d(`Invalid ${n} value "${e}". Allowed: ${t.join(", ")}`,l.USAGE,{field:r,required:`${n} must be one of: ${t.join(", ")}.`,nextSteps:[`Choose an allowed ${n} and retry the mutation.`]});return e}var z_=["recur_freq","recur_interval","recur_count","recur_until","recur_by_weekday","recur_by_month_day","recur_exdates"];function Mk(e,t){return t==="defined"?e!==void 0:!!e}function q_(e,t,n){if(!Mk(e,n))return;let r=_e(e,`event ${t}`);if(!Number.isInteger(r)||r<1)throw new d(`--event ${t} must be an integer >= 1`,l.USAGE);return r}function Fk(e,t,n){let r=e?oe(e,n,"event.recur_until"):void 0;if(r&&r<t)throw new d("--event recur_until must be at or after start",l.USAGE);return r}function Dk(e){return Array.from(new Set(Cc(e).map(t=>Ie(t.toLowerCase(),Nd,"event weekday")))).sort((t,n)=>oa(t)-oa(n))}function Uk(e){return Array.from(new Set(Cc(e).map(t=>{let n=_e(t,"event recur_by_month_day");if(!Number.isInteger(n)||n<1||n>31)throw new d("--event recur_by_month_day values must be integers 1..31",l.USAGE);return n}))).sort((t,n)=>t-n)}function Gk(e,t){return Array.from(new Set(Cc(e).map(n=>oe(n,t,"event.recur_exdates")))).sort((n,r)=>n.localeCompare(r))}function B_(e,t,n,r){let o=e.recur_freq?.trim(),i=e.recur_interval?.trim(),s=e.recur_count?.trim(),a=e.recur_until?.trim(),c=e.recur_by_weekday?.trim(),m=e.recur_by_month_day?.trim(),u=e.recur_exdates?.trim();if(![o,i,s,a,c,m,u].some(k=>k!==void 0))return;if(!o)throw new d("--event recurrence fields require recur_freq=<daily|weekly|monthly|yearly>",l.USAGE);let f=Ie(o.toLowerCase(),Ld,"event recurrence frequency"),_=q_(i,"recur_interval",r),h=q_(s,"recur_count",r),y=Fk(a,t,n),g=Dk(c),v=Uk(m),b=Gk(u,n);return{freq:f,interval:_,count:h,until:y,by_weekday:g.length>0?g:void 0,by_month_day:v.length>0?v:void 0,exdates:b.length>0?b:void 0}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7bbd7a9a-052b-506d-8d63-6ae512556bde")}catch{}})();var H_="--event end must be strictly after start. Equal start/end timestamps are treated as an instant event (end is dropped); an end earlier than start is rejected. Omit end for an instant event or set end later than start.",jk="--event end and duration are mutually exclusive; provide only one (use duration=<relative> like duration=2h, duration=30min, or duration=PT30M, or set an explicit end).",qk=/^([+-]?)(\d+)(min|mins|minute|minutes)$/i,Kk=/^([+-]?)[Pp][Tt](?:(\d+)[Hh])?(?:(\d+)[Mm])?(?:(\d+)[Ss])?$/,W_=1e3,Ic=60*W_,zk=60*Ic;function V_(e,t){let n=new Date(e);if(!Number.isFinite(n.getTime()))throw new d(`Invalid event.duration value "${t}". Duration is out of supported timestamp range.`,l.USAGE);return n.toISOString()}function Bk(e,t){let n=new Date(e),r=t.trim();if(/^[+-]?\d+m$/i.test(r))throw new d(`Event duration "${r}" is ambiguous. Use min for minutes or mo for months (for example 5min or 5mo).`,l.USAGE);let o=r.replace(/^([+-]?\d+)mo$/i,"$1m"),i=qk.exec(r);if(i){let c=i[1]==="-"?-1:1,m=Number.parseInt(i[2],10)*c;return V_(n.getTime()+m*Ic,r)}let s=Kk.exec(r);if(s){let[,c,m,u,p]=s;if(m||u||p){let _=c==="-"?-1:1,h=Number.parseInt(m??"0",10),y=Number.parseInt(u??"0",10),g=Number.parseInt(p??"0",10),v=h*zk+y*Ic+g*W_;return V_(n.getTime()+_*v,r)}}let a=o.startsWith("+")||o.startsWith("-")?o:`+${o}`;return oe(a,n,"event.duration")}function Y_(e,t,n,r){if(t&&n)throw new d(jk,l.USAGE);if(n){let i=Bk(e,n);if(i<e)throw new d(H_,l.USAGE);return i===e?void 0:i}if(!t)return;let o=oe(t,r,"event.end");if(o<e)throw new d(H_,l.USAGE);if(o!==e)return o}(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]="dfce9924-8453-5ded-a5df-47477caa9fe7")}catch{}})();var Hk=["at","date","text","title"],Vk=["start","date","end","duration","title","description","location","timezone","all_day",...z_],Wk=["key","value"];function J_(e,t){return t==="trimmed"?e?.trim():e}function Yk(e,t){return t==="defined"?e!==void 0:!!e}function Wi(e,t,n){return e.map(r=>{let o=le(r,"--reminder");He(o,"--reminder",Hk);let i=J_(o.at??o.date,n.valueMode),s=J_(o.text??o.title,n.valueMode);if(!i||!s)throw new d("--reminder requires at=<iso|relative> or date=<iso|relative>, plus text=<value> or title=<value>",l.USAGE);let a=s.trim();if(!a)throw new d("--reminder text must not be empty",l.USAGE);return{at:oe(i,t,"reminder.at"),text:a}})}function Yi(e,t,n){return e.map(r=>{let o=le(r,"--event");He(o,"--event",Vk);let i=(o.start??o.date)?.trim();if(!i)throw new d("--event requires start=<iso|relative> or date=<iso|relative>",l.USAGE);let s=oe(i,t,"event.start"),a=o.end?.trim(),c=o.duration?.trim(),m=Y_(s,a,c,t),u=o.title,p=o.description,f=o.location,_=o.timezone,h=u?.trim(),y=p?.trim(),g=f?.trim(),v=_?.trim(),b=[["title",u,h],["description",p,y],["location",f,g],["timezone",_,v]];for(let[$,M,K]of b)if(M!==void 0&&!K)throw new d(`--event ${$} must not be empty`,l.USAGE);let k=o.all_day?.trim(),T=B_(o,s,t,n.recurrenceEmptyNumericGuard),R=Yk(k,n.allDayEmptyGuard)?K_(k,"--event all_day"):void 0;return{start_at:s,end_at:m,title:h,description:y,location:g,all_day:R,timezone:v,recurrence:T}})}function Ji(e){let t={};for(let n of e){let r=n.trim();if(r.length===0)throw new d("--type-option values must not be empty",l.USAGE);let o,i;if(r.includes(",")||r.includes(`
4
+ `,{changedFields:["body"]}}});return{item:m.item,appended:c,changed_fields:m.changedFields}}import{readFile as uk}from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0a5fc27e-3f5a-59e0-998e-be5da72913dd")}catch{}})();function Ui(e){let t={...e,...e.full===!0?{fullHistory:!0}:{}};return delete t.full,Ae(e,t)}function x_(e,t){if(typeof e=="object"&&e!==null&&"format"in e&&e.format==="json")throw new d(`Structured context events are append-only and cannot be ${t}.`,l.USAGE,{code:"structured_event_immutable"})}function kc(e,t){return t===void 0?e:t===0?[]:e.slice(Math.max(0,e.length-t))}function nn(e,t){let n=e[t];return Array.isArray(n)?n:[]}function qn(e,t={}){let n=e.trim();if(!n)return"";let r=/^(?:[-*+]\s*)?text\s*[:=]/i.exec(n);if(t.stripPlainTextPrefix===!0&&r&&!n.startsWith("```"))return n.slice(r[0].length).trim()||n;if(!(/^(?:[-*+]\s*)?text\s*[:=]/im.test(n)||n.startsWith("```")))return n;try{let i=le(n,"--add");return Object.keys(i).map(c=>c.trim().toLowerCase()).some(c=>c!=="text")?n:i.text?.trim()||n}catch{return n}}function Sc(e){return typeof e=="object"&&e!==null&&"code"in e}function Pr(e,t){if(!ht(e))throw new d(`${t} cannot read process stdin through the MCP JSON-RPC transport. Pass annotation text in options.add instead.`,l.USAGE,{code:"mcp_stdin_unavailable",required:"Pass annotation text as JSON data; the MCP protocol already owns process stdin."})}async function pk(e,t){if(+(e.add!==void 0)+ +(e.stdin===!0)+ +(typeof e.file=="string")>1)throw new d(`Specify ${t} text using only one input source: --add, --stdin, or --file`,l.USAGE);let r=Dt(),o=ht(e);if(e.add!==void 0)return{value:await r.resolveValue(e.add,"--add",o)??"",rawValue:e.add,emptyFlag:"--add"};if(e.stdin===!0)return Pr(e,"--stdin"),{value:await r.resolveValue("-","--stdin")??"",emptyFlag:"--stdin"};if(typeof e.file!="string")return;let i=e.file.trim();if(!i)throw new d("--file path cannot be empty",l.USAGE);if(i==="-")return Pr(e,"--file -"),{value:await r.resolveValue("-","--file")??"",emptyFlag:"--file"};try{return{value:await uk(i,"utf8"),emptyFlag:"--file"}}catch(s){if(Sc(s)&&Yt(s))throw new d(`--file path not found: ${i}. Use --file - to read stdin.`,l.USAGE);let a=s instanceof Error?s.message:String(s);throw new d(`Failed to read --file path "${i}": ${a}. Use --file - to read stdin.`,l.USAGE)}}async function Gi(e,t){if(e.edit!==void 0&&e.delete!==void 0)throw new d("Specify only one of --edit or --delete",l.USAGE);if(e.delete!==void 0){if(e.add!==void 0||e.stdin===!0||typeof e.file=="string")throw new d("--delete cannot be combined with replacement text",l.USAGE);if(!Number.isInteger(e.delete)||e.delete<1)throw new d("--delete must be a positive integer",l.USAGE);return{mode:"delete",index:e.delete}}if(e.edit!==void 0&&(!Number.isInteger(e.edit)||e.edit<1))throw new d("--edit must be a positive integer",l.USAGE);let n=await pk(e,t);if(e.edit!==void 0){if(!n)throw new d("--edit requires replacement text from --add, --stdin, or --file",l.USAGE);return{mode:"edit",index:e.edit,...n}}return n?{mode:"add",...n}:{mode:"list"}}function xr(e,t){throw e instanceof d&&e.exitCode===l.CONFLICT&&e.message.includes("is assigned to")&&e.message.includes("Use --force to override")?new d(e.message,e.exitCode,{code:"ownership_conflict",required:t.required,examples:t.examples,nextSteps:t.nextSteps}):e}function L_(e){return e==="comments"?"--stdin":"--add -"}function fk(e,t){if((t.input.emptyFlag??"--add")!=="--add")return;let r=e.trim();if(!/^-{1,2}[A-Za-z][\w-]*(?:=.*)?$/.test(r))return;let o=L_(t.collectionKey),i=t.input.mode==="edit"?`pm ${t.collectionKey} <id> --edit <index>`:`pm ${t.collectionKey} <id>`;throw new d(`--add value "${r}" looks like an option, not annotation text. Use ${o} to read stdin, or use text=${r} for literal dash-leading text.`,l.USAGE,{code:"annotation_flag_like_value",required:`Use ${o} for stdin input, pass plain text, or use text=${r} when the text really starts with "-".`,examples:[`${i} ${o}`,`${i} --add text=${r}`]})}function _k(e,t){if(t.ifAbsent===!0&&!["add","stdin","file"].includes(e.input.mode))throw new d(`--if-absent requires a ${e.collectionKey.replace(/s$/,"")} append`,l.USAGE,{code:"annotation_if_absent_without_append",required:"Combine --if-absent with one append text source; omit it for list, edit, and delete operations."});if(e.input.mode!=="list"||t.message===void 0)return;let n=e.collectionKey.replace(/s$/,"");throw new d(`--message labels a ${n} mutation but does not provide ${n} text. Pass text positionally or with --add, --stdin, or --file.`,l.USAGE,{code:"annotation_message_without_text",required:`Provide ${n} text through a content source; --message only annotates the history entry of a mutation.`,examples:[`pm ${e.collectionKey} <id> --add "text" --message "why"`,`pm ${e.collectionKey} <id> ${L_(e.collectionKey)}`]})}function hk(e,t,n,r,o,i){let s=nn(e.metadata,t),a=o?s.findIndex(c=>c.author===n&&c.text===r):-1;return a>=0?{changedFields:[],entryIndex:a+1}:(s.push(i({created_at:S(),author:n,text:r})),e.metadata[t]=s,{changedFields:[t],entryIndex:s.length})}async function Kn(e,t,n,r){_k(r,t);let o=E(process.cwd(),n.path);await I(o);let i=await A(o),s=x(i,O()),a=wr(t.limit);if(r.input.mode==="list"){let h=await q(o,e,i.id_prefix,i.item_format,s.type_to_folder);if(!h)throw new d(`Item ${e} not found`,l.NOT_FOUND);let y=await ie(h,{schema:i.schema}),g=nn(y.document.metadata,r.collectionKey);return Di(h.id,r.collectionKey,g,a,t.includeMeta===!0)}let c=C(t.author,i.author_default);if(r.input.mode==="delete"){let h=r.deleteOp??r.op,y;try{y=await se({pmRoot:o,settings:i,id:e,op:h,author:c,message:t.message,force:t.force,bypassAssigneeConflict:r.bypassOwnershipConflict,mutate(v){let b=nn(v.metadata,r.collectionKey),k=P_(r.input.index,b.length,r.collectionKey);return x_(b[k],"deleted"),b.splice(k,1),v.metadata[r.collectionKey]=b,{changedFields:[r.collectionKey]}}})}catch(v){xr(v,r.conflictGuidance)}let g=nn(y.item,r.collectionKey);return Di(y.item.id,r.collectionKey,g,a,t.includeMeta===!0,{action:"delete",entryIndex:r.input.index},t.fullHistory===!0)}let m=r.input.rawValue??r.input.value??"";fk(m,r);let u=r.parseText(r.input.value??"");if(!u.trim())throw new d(`${r.input.emptyFlag??"--add"} text cannot be empty`,l.USAGE);if(r.input.mode==="edit"){let h=r.editOp??r.op,y;try{y=await se({pmRoot:o,settings:i,id:e,op:h,author:c,message:t.message,force:t.force,bypassAssigneeConflict:r.bypassOwnershipConflict,mutate(v){let b=nn(v.metadata,r.collectionKey),k=P_(r.input.index,b.length,r.collectionKey),T=b[k];return x_(T,"edited"),b[k]={...T,text:u,edited_at:S()},v.metadata[r.collectionKey]=b,{changedFields:[r.collectionKey]}}})}catch(v){xr(v,r.conflictGuidance)}let g=nn(y.item,r.collectionKey);return Di(y.item.id,r.collectionKey,g,a,t.includeMeta===!0,{action:"edit",entryIndex:r.input.index,entry:g[r.input.index-1]},t.fullHistory===!0)}let p,f=0;try{p=await se({pmRoot:o,settings:i,id:e,op:r.op,author:c,message:t.message,force:t.force,bypassAssigneeConflict:r.bypassOwnershipConflict,skipNoop:t.ifAbsent===!0,mutate(h){let y=hk(h,r.collectionKey,c,u,t.ifAbsent===!0,r.createEntry);return f=y.entryIndex,{changedFields:y.changedFields}}})}catch(h){xr(h,r.conflictGuidance)}let _=nn(p.item,r.collectionKey);return Di(p.item.id,r.collectionKey,_,a,t.includeMeta===!0,{action:"add",entryIndex:f,entry:_[f-1],changedCount:t.ifAbsent===!0?Math.min(p.changedFields.length,1):void 0},t.fullHistory===!0)}function P_(e,t,n){if(e===void 0||!Number.isInteger(e)||e<1||e>t){let r=n.replace(/s$/,""),o=`${r.charAt(0).toUpperCase()}${r.slice(1)}`,i=t===1?`1 ${r}`:`${t} ${n}`;throw new d(`${o} index ${e??"(missing)"} out of range (item has ${i})`,l.USAGE)}return e-1}function gk(e,t,n){return t===void 0?{}:{mutation_receipt:{action:t.action,entry_index:t.entryIndex,changed_count:t.changedCount??1,full_history_included:!n},omission_receipt:{has_omissions:n,omitted_field_group_count:n?1:0,omitted_field_groups:n?[{name:`${e}_history`,restore_with:{selector:"full_history",cli_flag:"--full-history",sdk_option:"fullHistory",mcp_option:"full"}}]:[]}}}function Di(e,t,n,r,o,i,s=!1){let a=i===void 0||s?kc(n,i!==void 0&&s?void 0:r):i.entry===void 0?[]:[i.entry],c=i!==void 0&&a.length<n.length;return{id:e,[t]:a,count:a.length,...i?.changedCount===void 0?{}:{changed:i.changedCount===1},...[o,i!==void 0].includes(!0)?{total_count:n.length,returned_count:a.length,has_more:c||a.length<n.length,...r!==void 0?{limit:r}:{}}:{},...gk(t,i,c)}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f366dd76-73b4-55c4-8c63-2913d0a0c380")}catch{}})();async function N_(e,t,n){return[...await Promise.resolve().then(()=>pp(Qe(e,t),t)).catch(()=>[])].reverse().find(i=>i.patch.some(s=>s.path==="/metadata/assignee"))?.op==="claim"?`claimed by ${n}`:`assigned to ${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]="f2901314-4044-5a91-ad72-6b4bebde16c2")}catch{}})();var $_="no_available_next_item";function M_(e){if(!(e instanceof Error)||e.name!=="PmCliError")return!1;let t=e.context;return typeof t=="object"&&t!==null&&"code"in t&&t.code==="already_claimed_by"}async function Lr(e,t,n,r={}){let o=E(process.cwd(),n.path);await I(o);let i=await A(o),s=F(i.schema),a=C(r.author,i.author_default),c=Rn(a),m=null,u=!1,p=[],f=await se({pmRoot:o,settings:i,id:e,op:"claim",author:a,message:r.message,force:t,skipNoop:!0,async mutate(_){let y=_.metadata.assignee??"",g=_.metadata.claim_principal?.trim()||y;if(m=y.trim().length>0?y:null,mu(_.metadata.status,s)&&!t)throw new d(`Cannot claim terminal item ${_.metadata.id} without --force`,l.CONFLICT);if(m!==null&&g!==c){if(r.ifAvailable===!0)return u=!0,p.push(`claim_skipped_held_by:${m}`),{changedFields:[]};if(!t){let T=await N_(o,_.metadata.id,y);throw new d(`Item ${_.metadata.id} is already ${T}. Use --force to take over, or --if-available to skip without failing.`,l.CONFLICT,{code:"already_claimed_by",why:"Claim is an atomic test-and-set so parallel agents never proceed believing they own the same item.",nextSteps:["Run pm next to pick a different unclaimed item.","Re-run with --if-available to treat a held item as a no-op skip.","Re-run with --force only when taking over the item is coordinated."]})}p.push(`claim_takeover:${m}->${a}`)}let b={assignee:a,claim_principal:c},k=["assignee","claim_principal"].filter(T=>_.metadata[T]!==b[T]);return Object.assign(_.metadata,b),{changedFields:k,warnings:p}}});return u||await mc({pmRoot:o,settings:i,principal:c,itemId:f.item.id}),{item:f.item,changed_fields:f.changedFields,claimed_by:u&&m!==null?m:a,previous_assignee:m,forced:t,...u?{skipped:!0}:{},...p.length>0?{warnings:p}:{}}}async function F_(e,t,n={},r={}){let o=yk(n.maxAttempts),i=await A(E(process.cwd(),t.path)),s={...n,author:C(n.author,i.author_default)},a=await Ir({...r,callerAuthor:s.author,limit:String(o)},t),c=[a.recommended,...a.ready].filter(m=>m!==null).map(m=>({...m,reasons:"reasons"in m?m.reasons:["ranked ready candidate"]}));return vk(c.slice(0,o),e,t,s)}function yk(e){if(e===void 0)return 10;let t=Number(e);if(!Number.isSafeInteger(t)||t<1||t>100)throw new d("--max-attempts must be an integer from 1 to 100",l.USAGE);return t}async function vk(e,t,n,r={},o=Lr){let i=0;for(let a of e){i+=1;try{let c=await o(a.id,t,n,r),m={...c,recommendation:a,attempts:i,available:!0};if(!c.skipped)return m}catch(c){if(!M_(c))throw c}}if(r.ifAvailable===!0)return{available:!1,item:null,claimed_by:C(r.author,""),previous_assignee:null,forced:t,skipped:!0,recommendation:null,attempts:i,warnings:[$_]};let s=i===0;throw new d(s?"No actionable items matched the selection filters":"No actionable item remained available to claim",s?l.NOT_FOUND:l.CONFLICT,{code:$_,why:s?"No ready items matched the specified filters or selection criteria.":"Every ranked candidate was claimed by another agent before this atomic selection completed.",nextSteps:[s?"Verify the filters or run pm next to inspect all ready work.":"Run pm claim --next again to refresh the ranked candidate set."]})}async function Nr(e,t,n,r={}){let o=E(process.cwd(),n.path);await I(o);let i=await A(o),s=C(r.author,i.author_default),a=Rn(s),c=r.ownershipReleaseBypass===!0,m=null,u;try{u=await se({pmRoot:o,settings:i,id:e,op:"release",author:s,message:r.message,force:t,bypassAssigneeConflict:c,mutate(_){return m=_.metadata.assignee??null,!m&&!_.metadata.claim_principal?{changedFields:[]}:(delete _.metadata.assignee,delete _.metadata.claim_principal,{changedFields:["assignee","claim_principal"]})}})}catch(_){xr(_,{required:"For approved non-owner handoffs, prefer the ownership-release bypass before considering --force.",examples:['pm release pm-a1b2 --author "reviewer" --force'],nextSteps:["Use the package-provided ownership-release bypass for handoffs that only clear assignee metadata.","Use --force only when an explicit override is approved for broader ownership conflicts."]})}await uc({pmRoot:o,principal:a,itemId:u.item.id});let p=F(i.schema),f=$a(u.item.status,p)===$a(p.in_progress_status,p);return{item:u.item,released_by:s,changed_fields:u.changedFields,previous_assignee:m,forced:t,...f?{warnings:["released_unclaimed_in_progress"],suggestions:[`${u.item.id} remains ${u.item.status} and unclaimed. If work is paused, run pm release ${u.item.id} --pause to move it to ${p.open_status}.`]}:{}}}(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]="86c929a6-644f-5b8e-a12b-04a73b4f4b60")}catch{}})();var wk=Object.freeze({requireCloseReason:!0,orderingEdges:"preserve"});function D_(e){let t=[{source:"explicit",value:e.explicit},{source:"duplicate",value:e.duplicateOf===void 0?void 0:`Duplicate of ${e.duplicateOf}`},{source:"resolution",value:e.resolution},{source:"message",value:e.message}];for(let n of t){let r=n.value?.trim();if(r)return{closeReason:r,source:n.source}}return{source:"none"}}function Ec(e,t){return Ac(e,t,{operation:"close"})}function Ac(e,t,n){let r=D_(e);if(!t||r.closeReason!==void 0)return r;let o=n.operation==="create"?[`pm create --title "<title>" --type <type> --status ${n.status??"closed"} --close-reason "<closing summary>"`,`pm create --title "<title>" --type <type> --status ${n.status??"closed"} --resolution "<resolution summary>"`,"pm create --stdin-json < item.json"]:['pm close <id> "Done: <what changed and why>"','pm close <id> --reason "<closing summary>"','pm close <id> -m "<closing summary>"',"pm close <id> --duplicate-of <canonical-id>"];throw new d("Close reason text is required because governance.require_close_reason is enabled",l.USAGE,{code:"close_reason_required",required:"Provide an author-controlled closing summary as the reason, message, resolution, or duplicate target.",why:"governance.require_close_reason is enabled, so tools must not invent immutable closure evidence.",examples:o,nextSteps:[`Re-run the ${n.operation} operation with a closing summary.`,"To stop requiring reasons, run: pm config set governance-require-close-reason --policy disabled"]})}function Tc(e,t){let n=typeof e.blocked_by=="string"?e.blocked_by.trim():"",r=e.blocked_by!==void 0,o=e.dependencies??[],i=o.filter(m=>m.kind==="blocked_by"),s=e.blocked_reason!==void 0,a=[];if(r&&(delete e.blocked_by,a.push("blocked_by")),s&&(delete e.blocked_reason,a.push("blocked_reason")),t.orderingEdges==="remove"&&i.length>0){let m=new Set(i),u=o.filter(p=>!m.has(p));u.length>0?e.dependencies=u:delete e.dependencies,a.push("dependencies")}if(t.orderingEdges==="remove")return{changedFields:a,warnings:[...n?[`closed_cleared_blocked_by:${e.id}:${n}`]:[],...i.length>0?[`closed_removed_predecessors:${e.id}:${i.map(m=>m.id).join(",")}`,`closed_removed_predecessors_count:${e.id}:${i.length}`]:[]]};let c=[...new Set([...n?[n]:[],...i.map(m=>m.id)])];return c.length===0?{changedFields:a,warnings:[]}:{changedFields:a,warnings:[`closed_preserved_predecessors:${e.id}:${c.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]="49e375b7-49a8-5b6f-89c8-be70d334b78f")}catch{}})();var bk=[{key:"resolution",label:"resolution (--resolution)"},{key:"expected_result",label:"expected_result (--expected-result)"},{key:"actual_result",label:"actual_result (--actual-result)"}];function kk(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t.length===0||t==="warn")return"warn";if(t==="off"||t==="none"||t==="disabled")return"off";if(t==="strict")return"strict";throw new d(`Invalid --validate-close mode "${e}" (expected "off", "warn", or "strict")`,l.USAGE)}function U_(e){let t=[];for(let n of bk){let r=e[n.key];(typeof r!="string"||r.trim().length===0)&&t.push(n)}return t}function G_(e,t,n={}){let r=U_(e);if(r.length===0)return;let o={resolution:n.resolution,expected_result:n.expectedResult,actual_result:n.actualResult},i=r.map(a=>`--${a.key.replaceAll("_","-")}`),s=["--pm-path",t,"update",e.id,...r.flatMap((a,c)=>[i[c],o[a.key]?.trim()||"<value>"])];return{missing:i,suggested_retry:mr(s),suggested_retry_args:s}}async function Sk(e,t,n){let r=new Set,o=t;for(;typeof o=="string"&&o.trim().length>0;){let i=o.trim();if(i===n)return!0;if(r.has(i))return!1;r.add(i),o=(await e(i))?.duplicate_of}return!1}function Ek(e){return typeof e!="string"||e.trim().length===0}async function Ak(e,t,n,r){let o=n?.trim();if(!o)return;if(o===r)throw new d("An item cannot be closed as a duplicate of itself.",l.USAGE,{code:"duplicate_target_self",why:"--duplicate-of must identify the canonical item that should remain open or already represent the work."});let i=x(t,O()),s=new Map,a=async m=>{if(s.has(m))return s.get(m)??null;let u=await q(e,m,t.id_prefix,t.item_format,i.type_to_folder);if(!u)return s.set(m,null),null;let{document:p}=await ie(u,{schema:t.schema});return s.set(m,p.metadata),p.metadata},c=await a(o);if(!c)throw new d(`Duplicate target "${o}" was not found. Create or locate the canonical item first.`,l.USAGE,{code:"duplicate_target_missing",why:"Duplicate closure should point at a real canonical pm item so future dedupe and changelog tooling can trace the relationship.",examples:[`pm close ${r} "Duplicate of ${o}" --duplicate-of ${o}`],nextSteps:["Run pm search/list to find the canonical item, then retry with --duplicate-of <id>."]});if(await Sk(a,c.duplicate_of,r))throw new d(`Circular duplicate reference detected. Target "${o}" points back to "${r}".`,l.USAGE,{code:"duplicate_target_circular",why:"Circular duplicate relationships create loops for dedupe and status propagation tooling.",nextSteps:["Choose the existing canonical item, or clear the target duplicate_of metadata before closing this item as a duplicate."]});if(typeof c.duplicate_of=="string"&&c.duplicate_of.trim().length>0)throw new d(`Duplicate target "${o}" is already marked as a duplicate of "${c.duplicate_of.trim()}".`,l.USAGE,{code:"duplicate_target_is_duplicate",why:"Duplicate closure should point directly at the canonical item, not another duplicate.",examples:[`pm close ${r} "Duplicate of ${c.duplicate_of.trim()}" --duplicate-of ${c.duplicate_of.trim()}`],nextSteps:["Use the canonical item referenced by duplicate_of as the --duplicate-of target."]});return c.id}function Tk(e,t,n){return e.filter(r=>r.parent===t&&!ne(r.status,n)).map(r=>r.id).sort((r,o)=>r.localeCompare(o))}function Ck(e,t,n){let r=new Map(e.map(a=>[a.id.trim().toLowerCase(),a])),o=p_(e),i=t.trim().toLowerCase(),s=n.blocked_statuses;return e.filter(a=>s.has(a.status)).map(a=>({item:a,blockerIds:o.get(a.id.trim().toLowerCase())})).filter(({blockerIds:a})=>a.includes(i)).filter(({blockerIds:a})=>a.every(c=>{if(c===i)return!0;let m=r.get(c);return m!==void 0&&ne(m.status,n)})).map(({item:a,blockerIds:c})=>({id:a.id,blocker_ids:c})).sort((a,c)=>a.id.localeCompare(c.id))}async function Ik(e,t,n,r,o,i){let s=Ck(n,r,i),a=[];for(let c of s)try{let m=await se({pmRoot:e,settings:t,id:c.id,op:"update",author:o,message:`Auto-unblocked after blocker ${r} closed`,mutate(u){let p=u.metadata.dependencies??[],f=p.filter(h=>{let y=h.id.trim().toLowerCase();return h.kind!=="blocked_by"||!c.blocker_ids.includes(y)});u.metadata.status=i.open_status,delete u.metadata.blocked_by,delete u.metadata.blocked_reason,u.metadata.unblock_note=`Auto-unblocked after blocker ${r} closed; all blockers resolved (${c.blocker_ids.join(", ")}).`,f.length>0?u.metadata.dependencies=f:delete u.metadata.dependencies;let _=["status","blocked_by","blocked_reason","unblock_note"];return f.length!==p.length&&_.push("dependencies"),{changedFields:_}}});a.push(`auto_unblocked:${m.item.id}:resolved_blockers=${c.blocker_ids.join(",")}`)}catch(m){let u=m instanceof Error?m.message.replace(/\s+/g," ").trim():"unknown";a.push(`auto_unblock_failed:${c.id}:${u}`)}return a}function Rk(e,t){let n=[],r=[{option:t.resolution,key:"resolution"},{option:t.expectedResult,key:"expected_result"},{option:t.actualResult,key:"actual_result"}];for(let{option:o,key:i}of r){if(typeof o!="string")continue;let s=o.trim();s.length!==0&&(e[i]=s,n.push(i))}return n}function Ok(e,t){if(t===void 0)return[];e.duplicate_of=t;let n=[],r=[{key:"resolution",value:`Duplicate of ${t}`},{key:"expected_result",value:`Canonical item ${t} tracks the work.`},{key:"actual_result",value:`Closed as duplicate of ${t}.`}];for(let{key:o,value:i}of r)Ek(e[o])&&(e[o]=i,n.push(o));return n}function xk(e,t,n,r){let o=[];if(t!=="off"){let i=U_(e);if(i.length>0){let s=i.map(a=>a.label);if(t==="strict"){let a=i.map(m=>`--${m.key.replaceAll("_","-")}`),c=["--pm-path",r,"update",e.id,...a.flatMap(m=>[m,"<value>"])];throw new d(`Cannot close item ${e.id}: missing ${s.join(", ")}. Populate fields or use --validate-close warn.`,l.USAGE,{code:"close_validation_missing_fields",recovery:{missing:a,suggested_retry:mr(c)},nextSteps:["Run the suggested pm update, then retry the original pm close invocation.","Use --validate-close warn only when governance permits an evidenced exception."]})}o.push(`close_validation_missing_fields:${e.id}:${s.join(",")}`)}if(n.length>0){if(t==="strict")throw new d(`Cannot close item ${e.id}: active child items remain open (${n.join(", ")}). Close, cancel, or re-parent them first, or use --validate-close warn.`,l.USAGE);o.push(`close_validation_active_children:${e.id}:${n.join(",")}`)}return o}return n.length>0&&o.push(`closed_with_active_children:${e.id}:${n.join(",")}`),o}function Pk(e,t){return t!==void 0?(e.close_reason=t,["close_reason"]):[]}function Lk(e){return e.assignee===void 0?[]:(delete e.assignee,["assignee"])}function Nk(e,t){if(ne(e.status,t.statusRegistry)&&!t.force)throw new d(`Item ${e.id} is already terminal; use pm update to append acceptance evidence, or --force only for an intentional repeat closure.`,l.CONFLICT,{recovery:G_(e,t.pmRoot,t.options)});let n=Rk(e,t.options),r=Ok(e,t.duplicateOf),o=xk(e,t.validateCloseMode,t.activeChildIds,t.pmRoot);e.status=t.statusRegistry.close_status,e.closed_at=t.closedAt;let i=t.options.completedAt!==void 0||e.completed_at===void 0;i&&(e.completed_at=t.completedAt);let s=["status","closed_at",...i?["completed_at"]:[],...Pk(e,t.closeReason),...n];if(Wp(e)&&(e.plan_mode="completed",s.push("plan_mode")),t.duplicateOf!==void 0){s.push("duplicate_of");for(let c of r)s.includes(c)||s.push(c)}s.push(...Lk(e));let a=Tc(e,t.lifecyclePolicy);return s.push(...a.changedFields),o.push(...a.warnings),{changedFields:s,...o.length>0?{warnings:o}:{}}}async function j_(e,t,n,r){let o=E(process.cwd(),r.path);await I(o);let i=await A(o),s=F(i.schema),a=C(n.author,i.author_default),c=x(i,O()).type_to_folder,m=await q(o,e,i.id_prefix,i.item_format,c);if(!m)throw await _t(o,e,i.id_prefix,c);let u=await Ak(o,i,n.duplicateOf,m.id),p={requireCloseReason:n.lifecyclePolicy?.requireCloseReason??i.governance.require_close_reason,orderingEdges:n.lifecyclePolicy?.orderingEdges??"preserve"},f=Ec({explicit:t,duplicateOf:u,resolution:n.resolution,message:n.message},p.requireCloseReason).closeReason,_=kk(n.validateClose)??i.governance.close_validation_default,h=await fe(o,i.item_format,c,void 0,i.schema),y=Tk(h,m.id,s),g=S(),v=n.completedAt===void 0?g:oe(n.completedAt,new Date(g),"completed-at"),b=await se({pmRoot:o,settings:i,id:m.id,op:"close",author:a,message:n.message,force:n.force,mutate(T){return Nk(T.metadata,{pmRoot:o,statusRegistry:s,force:n.force,options:n,duplicateOf:u,validateCloseMode:_,activeChildIds:y,closeReason:f,closedAt:g,completedAt:v,lifecyclePolicy:p})}}),k=_==="warn"?G_(b.item,o):void 0;return{item:b.item,changed_fields:b.changedFields,...k?{recovery:k}:{},warnings:[...b.warnings,...await Ik(o,i,h,m.id,a,s)]}}function yt(e,t,n,r){return j_(e,t,n,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]="c45ead8e-c9ed-5b59-84e5-b8e077e84010")}catch{}})();function ji(e){let t=e.trim();return t.toLowerCase()==="med"?"medium":t}function qi(e){let t=e.trim();return t.toLowerCase()==="med"?"medium":t}function Ki(e){let t=e.trim().toLowerCase();if(t==="med")return"medium";if(so.includes(t))return t;let n=_e(e,"confidence");if(!Number.isInteger(n)||n<0||n>100)throw new d("Confidence must be an integer 0..100 or one of low|med|medium|high",l.USAGE);return n}function zi(e){let t=e.trim().toLowerCase();if(t==="true"||t==="1")return!0;if(t==="false"||t==="0")return!1;throw new d("Regression must be one of true|false|1|0",l.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]="add1928e-08d1-5ead-9a4e-0f1a9b6580fc")}catch{}})();var $k=new Set(["none","null"]);function Bi(e={}){return[{optionKey:"dep",clearFlagKey:"clearDeps",valueFlag:"--dep",clearFlag:"--clear-deps",...e.depDisableFlagKey===void 0?{}:{disableFlagKey:e.depDisableFlagKey}},{optionKey:"comment",clearFlagKey:"clearComments",valueFlag:"--comment",clearFlag:"--clear-comments"},{optionKey:"note",clearFlagKey:"clearNotes",valueFlag:"--note",clearFlag:"--clear-notes"},{optionKey:"learning",clearFlagKey:"clearLearnings",valueFlag:"--learning",clearFlag:"--clear-learnings"},{optionKey:"file",clearFlagKey:"clearFiles",valueFlag:"--file",clearFlag:"--clear-files",...e.fileDisableFlagKey===void 0?{}:{disableFlagKey:e.fileDisableFlagKey}},{optionKey:"test",clearFlagKey:"clearTests",valueFlag:"--test",clearFlag:"--clear-tests",...e.testDisableFlagKey===void 0?{}:{disableFlagKey:e.testDisableFlagKey}},{optionKey:"doc",clearFlagKey:"clearDocs",valueFlag:"--doc",clearFlag:"--clear-docs",...e.docDisableFlagKey===void 0?{}:{disableFlagKey:e.docDisableFlagKey}},{optionKey:"reminder",clearFlagKey:"clearReminders",valueFlag:"--reminder",clearFlag:"--clear-reminders"},{optionKey:"event",clearFlagKey:"clearEvents",valueFlag:"--event",clearFlag:"--clear-events"},{optionKey:"typeOption",clearFlagKey:"clearTypeOptions",valueFlag:"--type-option",clearFlag:"--clear-type-options"}]}function Ve(e){return e===void 0?!1:$k.has(e.trim().toLowerCase())}function Hi(e,t,n){if(!Ve(e))return;let r=n?` ${n}`:"";throw new d(`${t} no longer accepts "none" or "null".${r}`.trim(),l.USAGE)}function Ce(e,t,n){if(!e||e.length===0||!e.some(i=>Ve(i)))return;let o=n?` ${n}`:"";throw new d(`${t} no longer accepts "none" or "null".${o}`.trim(),l.USAGE)}function Vi(e,t){for(let n of t){let r=e[n.optionKey];if(!Array.isArray(r)||r.length===0)continue;if(!r.every(a=>typeof a=="string"))throw new d(`${n.valueFlag} entries must be strings.`,l.USAGE);let o=r;if(!o.some(a=>Ve(a)))continue;if(o.filter(a=>!Ve(a)).length>0)throw new d(`Cannot mix legacy clear token "none"/"null" with concrete ${n.valueFlag} entries. Use ${n.clearFlag} to clear or provide explicit entries.`,l.USAGE);e[n.optionKey]=void 0,e[n.clearFlagKey]=!0,n.disableFlagKey&&(e[n.disableFlagKey]=!1)}return e}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="49f970c3-e408-52d5-bb4d-8cea0c7f8ef4")}catch{}})();function K_(e,t){let n=e.trim().toLowerCase();if(n==="true"||n==="1"||n==="yes")return!0;if(n==="false"||n==="0"||n==="no")return!1;throw new d(`${t} must be one of true|false|1|0|yes|no`,l.USAGE)}function Cc(e){return e?e.split("|").map(t=>t.trim()).filter(t=>t.length>0):[]}function Ie(e,t,n,r=n){if(!t.includes(e))throw new d(`Invalid ${n} value "${e}". Allowed: ${t.join(", ")}`,l.USAGE,{field:r,required:`${n} must be one of: ${t.join(", ")}.`,nextSteps:[`Choose an allowed ${n} and retry the mutation.`]});return e}var z_=["recur_freq","recur_interval","recur_count","recur_until","recur_by_weekday","recur_by_month_day","recur_exdates"];function Mk(e,t){return t==="defined"?e!==void 0:!!e}function q_(e,t,n){if(!Mk(e,n))return;let r=_e(e,`event ${t}`);if(!Number.isInteger(r)||r<1)throw new d(`--event ${t} must be an integer >= 1`,l.USAGE);return r}function Fk(e,t,n){let r=e?oe(e,n,"event.recur_until"):void 0;if(r&&r<t)throw new d("--event recur_until must be at or after start",l.USAGE);return r}function Dk(e){return Array.from(new Set(Cc(e).map(t=>Ie(t.toLowerCase(),Nd,"event weekday")))).sort((t,n)=>oa(t)-oa(n))}function Uk(e){return Array.from(new Set(Cc(e).map(t=>{let n=_e(t,"event recur_by_month_day");if(!Number.isInteger(n)||n<1||n>31)throw new d("--event recur_by_month_day values must be integers 1..31",l.USAGE);return n}))).sort((t,n)=>t-n)}function Gk(e,t){return Array.from(new Set(Cc(e).map(n=>oe(n,t,"event.recur_exdates")))).sort((n,r)=>n.localeCompare(r))}function B_(e,t,n,r){let o=e.recur_freq?.trim(),i=e.recur_interval?.trim(),s=e.recur_count?.trim(),a=e.recur_until?.trim(),c=e.recur_by_weekday?.trim(),m=e.recur_by_month_day?.trim(),u=e.recur_exdates?.trim();if(![o,i,s,a,c,m,u].some(k=>k!==void 0))return;if(!o)throw new d("--event recurrence fields require recur_freq=<daily|weekly|monthly|yearly>",l.USAGE);let f=Ie(o.toLowerCase(),Ld,"event recurrence frequency"),_=q_(i,"recur_interval",r),h=q_(s,"recur_count",r),y=Fk(a,t,n),g=Dk(c),v=Uk(m),b=Gk(u,n);return{freq:f,interval:_,count:h,until:y,by_weekday:g.length>0?g:void 0,by_month_day:v.length>0?v:void 0,exdates:b.length>0?b:void 0}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7bbd7a9a-052b-506d-8d63-6ae512556bde")}catch{}})();var H_="--event end must be strictly after start. Equal start/end timestamps are treated as an instant event (end is dropped); an end earlier than start is rejected. Omit end for an instant event or set end later than start.",jk="--event end and duration are mutually exclusive; provide only one (use duration=<relative> like duration=2h, duration=30min, or duration=PT30M, or set an explicit end).",qk=/^([+-]?)(\d+)(min|mins|minute|minutes)$/i,Kk=/^([+-]?)[Pp][Tt](?:(\d+)[Hh])?(?:(\d+)[Mm])?(?:(\d+)[Ss])?$/,W_=1e3,Ic=60*W_,zk=60*Ic;function V_(e,t){let n=new Date(e);if(!Number.isFinite(n.getTime()))throw new d(`Invalid event.duration value "${t}". Duration is out of supported timestamp range.`,l.USAGE);return n.toISOString()}function Bk(e,t){let n=new Date(e),r=t.trim();if(/^[+-]?\d+m$/i.test(r))throw new d(`Event duration "${r}" is ambiguous. Use min for minutes or mo for months (for example 5min or 5mo).`,l.USAGE);let o=r.replace(/^([+-]?\d+)mo$/i,"$1m"),i=qk.exec(r);if(i){let c=i[1]==="-"?-1:1,m=Number.parseInt(i[2],10)*c;return V_(n.getTime()+m*Ic,r)}let s=Kk.exec(r);if(s){let[,c,m,u,p]=s;if(m||u||p){let _=c==="-"?-1:1,h=Number.parseInt(m??"0",10),y=Number.parseInt(u??"0",10),g=Number.parseInt(p??"0",10),v=h*zk+y*Ic+g*W_;return V_(n.getTime()+_*v,r)}}let a=o.startsWith("+")||o.startsWith("-")?o:`+${o}`;return oe(a,n,"event.duration")}function Y_(e,t,n,r){if(t&&n)throw new d(jk,l.USAGE);if(n){let i=Bk(e,n);if(i<e)throw new d(H_,l.USAGE);return i===e?void 0:i}if(!t)return;let o=oe(t,r,"event.end");if(o<e)throw new d(H_,l.USAGE);if(o!==e)return o}(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]="dfce9924-8453-5ded-a5df-47477caa9fe7")}catch{}})();var Hk=["at","date","text","title"],Vk=["start","date","end","duration","title","description","location","timezone","all_day",...z_],Wk=["key","value"];function J_(e,t){return t==="trimmed"?e?.trim():e}function Yk(e,t){return t==="defined"?e!==void 0:!!e}function Wi(e,t,n){return e.map(r=>{let o=le(r,"--reminder");He(o,"--reminder",Hk);let i=J_(o.at??o.date,n.valueMode),s=J_(o.text??o.title,n.valueMode);if(!i||!s)throw new d("--reminder requires at=<iso|relative> or date=<iso|relative>, plus text=<value> or title=<value>",l.USAGE);let a=s.trim();if(!a)throw new d("--reminder text must not be empty",l.USAGE);return{at:oe(i,t,"reminder.at"),text:a}})}function Yi(e,t,n){return e.map(r=>{let o=le(r,"--event");He(o,"--event",Vk);let i=(o.start??o.date)?.trim();if(!i)throw new d("--event requires start=<iso|relative> or date=<iso|relative>",l.USAGE);let s=oe(i,t,"event.start"),a=o.end?.trim(),c=o.duration?.trim(),m=Y_(s,a,c,t),u=o.title,p=o.description,f=o.location,_=o.timezone,h=u?.trim(),y=p?.trim(),g=f?.trim(),v=_?.trim(),b=[["title",u,h],["description",p,y],["location",f,g],["timezone",_,v]];for(let[$,M,K]of b)if(M!==void 0&&!K)throw new d(`--event ${$} must not be empty`,l.USAGE);let k=o.all_day?.trim(),T=B_(o,s,t,n.recurrenceEmptyNumericGuard),R=Yk(k,n.allDayEmptyGuard)?K_(k,"--event all_day"):void 0;return{start_at:s,end_at:m,title:h,description:y,location:g,all_day:R,timezone:v,recurrence:T}})}function Ji(e){let t={};for(let n of e){let r=n.trim();if(r.length===0)throw new d("--type-option values must not be empty",l.USAGE);let o,i;if(r.includes(",")||r.includes(`
5
5
  `)||r.startsWith("```")||/^(?:[-*+]\s+)?(?:key|value)\s*[:=]/i.test(r)){let a=le(r,"--type-option");He(a,"--type-option",Wk),o=a.key?.trim(),i=a.value?.trim()}else{let a=r.indexOf("="),c=r.indexOf(":"),m=a;if(a<=0&&c>0&&(m=c),m<=0||m===r.length-1)throw new d("--type-option requires key=value or key=<name>,value=<value> entries",l.USAGE);o=r.slice(0,m).trim(),i=r.slice(m+1).trim()}if(!o||!i)throw new d("--type-option requires key and value",l.USAGE);t[o]=i}return Object.fromEntries(Object.entries(t).sort((n,r)=>n[0].localeCompare(r[0])))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e2e87672-508a-5aef-b728-42e40544cf3c")}catch{}})();function $r(e,t,n="--dep"){if(!t&&/[:,=]/.test(e))throw new d(`Invalid ${n} value "${e}". Use a bare item id or id=<id>,kind=<kind>.`,l.USAGE,{code:"dependency_flag_value_invalid",reason:"malformed_dependency_shorthand",flag:n,value:e,required:"Use a bare item id or an explicit id=<id>,kind=<kind> entry."})}function Mr(e,t,n=Ut()){for(let r of t??[])try{jd(e,r.id,r.kind,n)}catch(o){throw new d(Sn(o),l.USAGE,{code:"dependency_edge_not_allowed",why:`${e} -> ${r.id} (${r.kind}) violates the active relationship-kind policy`})}}async function X_(e,t){return(await ie(e,{schema:t})).document.metadata.created_at}async function Jk(e,t){if(e.createdAt!==void 0)return e.createdAt;let n=await q(t.pmRoot,e.id,t.idPrefix,t.itemFormat,t.typeToFolder);return n===null?void 0:X_(n,t.schema)}function Xk(e){let t=e.registry.require(e.dependency.kind);return new d(`${t.kind} requires source ${e.holder.id} to be created after target ${e.dependency.id}`,l.USAGE,{code:"dependency_temporal_order_invalid",reason:"source_not_after_target",required:`${e.holder.id}.created_at must be later than ${e.dependency.id}.created_at for ${t.kind}.`,why:"Chronological recurrence direction must be validated before the relationship is persisted.",source_id:e.holder.id,source_created_at:e.sourceCreatedAt,target_id:e.dependency.id,target_created_at:e.targetCreatedAt,temporal_order:t.temporalOrder})}async function Qk(e){let t=e.dependencies.filter(o=>e.registry.resolve(o.kind)?.temporalOrder==="source_after_target"&&!e.missingTargets.includes(o.id));if(t.length===0||e.holders.length===0)return;let n=new Map(e.resolutions.flatMap(({target:o,located:i})=>i===null?[]:[[o,i]])),r=new Map(await Promise.all([...new Set(t.map(({id:o})=>o))].map(async o=>[o,await X_(n.get(o),e.context.schema)])));for(let o of e.holders){let i=await Jk(o,e.context);if(i!==void 0)for(let s of t){let a=r.get(s.id),c=Date.parse(i),m=Date.parse(a);if(!(Number.isFinite(c)&&Number.isFinite(m)&&c>m))throw Xk({holder:o,dependency:s,sourceCreatedAt:i,targetCreatedAt:a,registry:e.registry})}}}async function rn(e){let t=e.registry??Ut(),n=(e.dependencies??[]).filter(s=>!Gu(s.source_kind)),r=[...new Set(n.map(s=>s.id))],o=await Promise.all(r.map(async s=>({target:s,located:await q(e.pmRoot,s,e.idPrefix,e.itemFormat,e.typeToFolder)}))),i=o.filter(({located:s})=>s===null).map(({target:s})=>s).sort((s,a)=>s<a?-1:1);if(i.length>0&&e.allowUnresolved!==!0)throw new d(`Dependency target${i.length===1?"":"s"} not found: ${i.join(", ")}`,l.NOT_FOUND,{code:"dependency_target_not_found",reason:"unresolved_local_dependency",required:"Every local dependency target must exist before the edge is committed.",why:"Fail-fast target resolution prevents dangling graph nodes and preserves reliable traversal semantics.",unresolved_targets:i,examples:["--dep id=<existing-item-id>,kind=related","--dep id=<external-id>,kind=related,source_kind=external","--allow-unresolved-deps --dep id=<future-item-id>,kind=related"],nextSteps:[`Create or correct ${i.length===1?"the target":"the targets"}, then retry the mutation.`,"Use source_kind=external for a cross-workspace reference.","Use --allow-unresolved-deps only when the dangling local edge is intentional."],recovery:{recovery_mode:"compact",missing:i,suggested_flags:["--allow-unresolved-deps"],suggested_retry:`pm search "${i[0]}" --limit 10`}});return await Qk({dependencies:n,missingTargets:i,resolutions:o,holders:e.holders??[],registry:t,context:e}),i.map(s=>`dependency_target_unresolved:${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]="4db3d1b3-68f3-5f74-b6f0-9847b3b00fc0")}catch{}})();var Zk="hierarchy-integrity";async function Xi(e){let t=e.required?await Ee(e.pmRoot,Zk,e.ttlSeconds,e.author,!1,!1,e.waitMs):async()=>{},n=!1;return async()=>{n||(n=!0,await t())}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ca230957-d5a6-5f20-94b5-e1eeca8ca714")}catch{}})();var eS=new Set(["event","meeting","reminder","milestone","decision","adr"]);function Q_(e,t,n,r){if(eS.has(t.trim().toLowerCase())||n!==r.open_status)return;let o=Bo("in_progress",r);if(!(o===void 0||o===r.open_status))return{command:`pm claim ${e} --start`,to_status:o}}(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]="70971b2a-c025-50a8-918f-871fc8adfd2a")}catch{}})();var vt=["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"],tS=new Set(vt);function Z_(e){return li(e,vt)}function Qi(e,t){let n={},r=[];for(let[o,i]of Object.entries(e)){let s=o.toLowerCase();if(!tS.has(s)){r.push(o);continue}if(Object.hasOwn(n,s))throw new d(`${t} provides key "${o}" more than once after case normalization`,l.USAGE);n[s]=i}if(r.length>0)throw new d(`${t} does not recognize key${r.length>1?"s":""} ${r.map(o=>`"${o}"`).join(", ")}. Allowed keys: ${vt.join(", ")}.`,l.USAGE);if(n.cmd!==void 0){if(n.command!==void 0&&n.command.trim()!==n.cmd.trim())throw new d(`${t} command and cmd must match when both are provided`,l.USAGE);let{cmd:o,...i}=n;return{...i,command:i.command??o}}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]="800bdce7-d4d2-5702-9ceb-d83ac4a95fb0")}catch{}})();var an=new Set(["PM_PATH","PM_GLOBAL_PATH","PM_SOURCE_PM_PATH","PM_SOURCE_WORKSPACE_ROOT",Sr,gf,"FORCE_COLOR"]),ts=/^[A-Za-z_][A-Za-z0-9_]*$/,sn=["schema","tracker","auto"],eh=["source","isolated","snapshot"];function Fr(e,t){if(!e)return;let n=e.split(/[;\n]/).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)throw new d(`${t} env_set must include at least one KEY=VALUE assignment`,l.USAGE);let r=Object.create(null);for(let o of n){let i=o.indexOf("=");if(i<=0)throw new d(`${t} env_set entries must use KEY=VALUE and be separated by semicolons. Example: env_set=PORT=0;PLAYWRIGHT_BASE_URL=http://127.0.0.1:4173`,l.USAGE);let s=o.slice(0,i).trim(),a=o.slice(i+1);if(!ts.test(s))throw new d(`${t} env_set key "${s}" is invalid`,l.USAGE);if(an.has(s.toUpperCase()))throw new d(`${t} env_set key "${s}" is reserved for sandbox safety`,l.USAGE);r[s]=a}return Object.keys(r).length>0?r:void 0}function Dr(e,t){if(!e)return;let n=Mn(e,{separators:/[;,\n]/});if(n.length===0)throw new d(`${t} env_clear must include at least one environment variable name`,l.USAGE);for(let r of n){if(!ts.test(r))throw new d(`${t} env_clear key "${r}" is invalid`,l.USAGE);if(an.has(r.toUpperCase()))throw new d(`${t} env_clear key "${r}" is reserved for sandbox safety`,l.USAGE)}return n}function ns(e,t,n){if(!e)return;let r=e.trim().toLowerCase();if(r==="true"||r==="1"||r==="yes")return!0;if(r==="false"||r==="0"||r==="no")return!1;throw new d(`${t} ${n} must be one of true|false|1|0|yes|no`,l.USAGE)}function rs(e,t){if(!e)return;let n=e.trim().toLowerCase();if(sn.includes(n))return n;throw new d(`${t} pm_context_mode must be one of: ${sn.join(", ")}`,l.USAGE)}function cn(e,t){if(!e)return;let n=e.trim().toLowerCase();if(eh.includes(n))return n;throw new d(`${t} workspace_context_mode must be one of: ${eh.join(", ")}`,l.USAGE)}function ln(e){if(!e)return;let t=Mn(e,{separators:/[;\n]/});return t.length>0?t:void 0}function zn(e,t,n){let r=ln(e);if(!(!r||r.length===0)){for(let o of r)try{new RegExp(o,"m")}catch(i){throw new d(`${t} ${n} includes invalid regex "${o}": ${i instanceof Error?i.message:String(i)}`,l.USAGE)}return r}}function os(e,t){if(!e)return;let n=_e(e,"assert_stdout_min_lines");if(!Number.isInteger(n)||n<0)throw new d(`${t} assert_stdout_min_lines must be an integer >= 0`,l.USAGE);return n}function is(e,t){if(!e)return;let n=e.split(/[;\n]/).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)throw new d(`${t} assert_json_field_equals must include at least one path=value assignment`,l.USAGE);let r=Object.create(null);for(let o of n){let i=o.indexOf("=");if(i<=0)throw new d(`${t} assert_json_field_equals entries must use path=value and be separated by semicolons`,l.USAGE);let s=o.slice(0,i).trim(),a=o.slice(i+1).trim();if(s.length===0||a.length===0)throw new d(`${t} assert_json_field_equals entries must include non-empty path and value`,l.USAGE);r[s]=a}return Object.keys(r).length>0?r:void 0}function ss(e,t){if(!e)return;let n=e.split(/[;\n]/).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)throw new d(`${t} assert_json_field_gte must include at least one path=value assignment`,l.USAGE);let r=Object.create(null);for(let o of n){let i=o.indexOf("=");if(i<=0)throw new d(`${t} assert_json_field_gte entries must use path=value and be separated by semicolons`,l.USAGE);let s=o.slice(0,i).trim(),a=o.slice(i+1).trim();if(s.length===0||a.length===0)throw new d(`${t} assert_json_field_gte entries must include non-empty path and value`,l.USAGE);let c=Number(a);if(!Number.isFinite(c))throw new d(`${t} assert_json_field_gte value for "${s}" must be numeric`,l.USAGE);r[s]=c}return Object.keys(r).length>0?r:void 0}var nS=new Set(vt);function as(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function rS(e,t){let n={},r=[];for(let[o,i]of Object.entries(e)){let s=o.toLowerCase();if(!nS.has(s)){r.push(o);continue}if(Object.hasOwn(n,s))throw t(`provides key "${o}" more than once after case normalization`);n[s]=i}if(r.length>0)throw t(`does not recognize key${r.length>1?"s":""} ${r.map(o=>`"${o}"`).join(", ")}. Allowed keys: ${vt.join(", ")}.`);return n}function on(e,t,n){if(!Object.hasOwn(e,t))return;let r=e[t];if(r!==void 0){if(typeof r!="string")throw n(`field "${t}" must be a JSON string`);return r}}function Zi(e,t,n){if(!Object.hasOwn(e,t))return;let r=e[t];if(r===void 0)return;let o=typeof r=="string"?[r]:r;if(!Array.isArray(o)||o.some(s=>typeof s!="string"))throw n(`field "${t}" must be a string or an array of strings`);let i=o.filter(s=>s.length>0);return i.length>0?i:void 0}function th(e,t,n){let r=Zi(e,t,n);if(r){for(let o of r)try{new RegExp(o,"m")}catch(i){throw n(`field "${t}" includes invalid regex "${o}": ${i instanceof Error?i.message:String(i)}`)}return r}}function es(e,t,n){let r=typeof e=="number"?e:typeof e=="string"&&e.trim().length>0?Number(e.trim()):Number.NaN;if(typeof e=="boolean"||!Number.isFinite(r))throw n(`field "${t}" must be a finite number (or numeric string)`);return r}function oS(e,t){let n=e.timeout_seconds,r=e.timeout;if(n===void 0&&r===void 0)return;let o=n===void 0?void 0:es(n,"timeout_seconds",t),i=r===void 0?void 0:es(r,"timeout",t);if(o!==void 0&&i!==void 0&&o!==i)throw t("timeout and timeout_seconds must match when both are provided");let s=o??i;if(!Number.isInteger(s)||s<=0)throw t("timeout_seconds must be a positive integer");return s}function iS(e,t){let n=on(e,"scope",t);if(n===void 0)return"project";if(!ct.includes(n))throw t(`field "scope" must be one of: ${ct.join(", ")}`);return n}function sS(e,t){if(!Object.hasOwn(e,"env_set"))return;let n=e.env_set;if(n===void 0)return;if(!as(n))throw t('field "env_set" must be a JSON object mapping environment names to string values');let r=Object.create(null);for(let[o,i]of Object.entries(n)){if(typeof i!="string")throw t(`field "env_set" value for "${o}" must be a string`);if(!ts.test(o))throw t(`field "env_set" key "${o}" is invalid`);if(an.has(o.toUpperCase()))throw t(`field "env_set" key "${o}" is reserved for sandbox safety`);r[o]=i}return Object.keys(r).length>0?r:void 0}function aS(e,t){let n=Zi(e,"env_clear",t);if(n){for(let r of n){if(!ts.test(r))throw t(`field "env_clear" key "${r}" is invalid`);if(an.has(r.toUpperCase()))throw t(`field "env_clear" key "${r}" is reserved for sandbox safety`)}return n}}function cS(e,t,n){if(!Object.hasOwn(e,t))return;let r=e[t];if(r!==void 0){if(typeof r!="boolean")throw n(`field "${t}" must be a JSON boolean (true or false)`);return r}}function lS(e,t){if(!Object.hasOwn(e,"assert_stdout_min_lines"))return;let n=e.assert_stdout_min_lines;if(n===void 0)return;let r=es(n,"assert_stdout_min_lines",t);if(!Number.isInteger(r)||r<0)throw t('field "assert_stdout_min_lines" must be an integer >= 0');return r}function dS(e,t){if(!Object.hasOwn(e,"assert_json_field_equals"))return;let n=e.assert_json_field_equals;if(n===void 0)return;if(!as(n))throw t('field "assert_json_field_equals" must be a JSON object mapping field paths to expected values');let r=Object.create(null);for(let[o,i]of Object.entries(n)){if(o.trim().length===0)throw t('field "assert_json_field_equals" keys must be non-empty field paths');if(typeof i!="string"&&typeof i!="number"&&typeof i!="boolean")throw t(`field "assert_json_field_equals" value for "${o}" must be a string, number, or boolean`);r[o]=String(i)}return Object.keys(r).length>0?r:void 0}function mS(e,t){if(!Object.hasOwn(e,"assert_json_field_gte"))return;let n=e.assert_json_field_gte;if(n===void 0)return;if(!as(n))throw t('field "assert_json_field_gte" must be a JSON object mapping field paths to numeric minimums');let r=Object.create(null);for(let[o,i]of Object.entries(n)){if(o.trim().length===0)throw t('field "assert_json_field_gte" keys must be non-empty field paths');r[o]=es(i,`assert_json_field_gte.${o}`,t)}return Object.keys(r).length>0?r:void 0}function uS(e,t,n){let r=f=>new d(`${n} ${t} ${f}`,l.USAGE);if(!as(e))throw r(`must be a JSON object with linked-test fields. Allowed keys: ${vt.join(", ")}.`);let o=rS(e,r),i=on(o,"command",r),s=on(o,"cmd",r);if(i!==void 0&&s!==void 0&&i!==s)throw r("command and cmd must match when both are provided");let a=i??s;if(a===void 0||a.trim().length===0)throw r('requires a non-empty "command" string');let c=on(o,"path",r),m=on(o,"pm_context_mode",r);if(m!==void 0&&!sn.includes(m))throw r(`field "pm_context_mode" must be one of: ${sn.join(", ")}`);let u=cn(on(o,"workspace_context_mode",r),`${n} ${t}`),p=on(o,"note",r);return{command:a,path:c!==void 0&&c.length>0?c:void 0,scope:iS(o,r),timeout_seconds:oS(o,r),pm_context_mode:m,workspace_context_mode:u,env_set:sS(o,r),env_clear:aS(o,r),shared_host_safe:cS(o,"shared_host_safe",r),assert_stdout_contains:Zi(o,"assert_stdout_contains",r),assert_stdout_regex:th(o,"assert_stdout_regex",r),assert_stderr_contains:Zi(o,"assert_stderr_contains",r),assert_stderr_regex:th(o,"assert_stderr_regex",r),assert_stdout_min_lines:lS(o,r),assert_json_field_equals:dS(o,r),assert_json_field_gte:mS(o,r),note:p!==void 0&&p.trim().length>0?p.trim():void 0}}function nh(e,t){let n=e.trim();if(n.length===0)throw new d(`${t} requires a JSON object or array of objects describing linked-test entries`,l.USAGE);let r;try{r=JSON.parse(n)}catch(i){throw new d(`${t} value is not valid JSON: ${i instanceof Error?i.message:String(i)}. Provide a JSON object or array of objects, e.g. '{"command":"node scripts/check.js --flag value, with commas","timeout_seconds":120}'.`,l.USAGE)}let o=Array.isArray(r)?r:[r];if(o.length===0)throw new d(`${t} array must include at least one linked-test entry object`,l.USAGE);return o.map((i,s)=>uS(i,o.length>1?`entry ${s+1}`:"entry",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]="0562fd00-217b-5e1f-8004-df4574f8b796")}catch{}})();var Rc=[{canonical:"tags",aliases:["tags"],optionKey:"tags",metadataKey:"tags"}],Oc=[{canonical:"deadline",aliases:["deadline"],optionKey:"deadline",metadataKey:"deadline"},{canonical:"estimate",aliases:["estimate","estimated_minutes","estimated-minutes"],optionKey:"estimatedMinutes",metadataKey:"estimated_minutes"},{canonical:"acceptance-criteria",aliases:["acceptance_criteria","acceptance-criteria","ac"],optionKey:"acceptanceCriteria",metadataKey:"acceptance_criteria"},{canonical:"definition-of-ready",aliases:["definition_of_ready","definition-of-ready"],optionKey:"definitionOfReady",metadataKey:"definition_of_ready"},{canonical:"order",aliases:["order","rank"],optionKey:"order",metadataKey:"order"},{canonical:"goal",aliases:["goal"],optionKey:"goal",metadataKey:"goal"},{canonical:"objective",aliases:["objective"],optionKey:"objective",metadataKey:"objective"},{canonical:"value",aliases:["value"],optionKey:"value",metadataKey:"value"},{canonical:"impact",aliases:["impact"],optionKey:"impact",metadataKey:"impact"},{canonical:"outcome",aliases:["outcome"],optionKey:"outcome",metadataKey:"outcome"},{canonical:"why-now",aliases:["why_now","why-now"],optionKey:"whyNow",metadataKey:"why_now"}],rh=[...Rc,...Oc],cs=[{canonical:"assignee",aliases:["assignee"],optionKey:"assignee",metadataKey:"assignee"},{canonical:"parent",aliases:["parent"],optionKey:"parent",metadataKey:"parent"},{canonical:"reviewer",aliases:["reviewer"],optionKey:"reviewer",metadataKey:"reviewer"},{canonical:"risk",aliases:["risk"],optionKey:"risk",metadataKey:"risk"},{canonical:"confidence",aliases:["confidence"],optionKey:"confidence",metadataKey:"confidence"},{canonical:"sprint",aliases:["sprint"],optionKey:"sprint",metadataKey:"sprint"},{canonical:"release",aliases:["release"],optionKey:"release",metadataKey:"release"},{canonical:"blocked-by",aliases:["blocked_by","blocked-by"],optionKey:"blockedBy",metadataKey:"blocked_by"},{canonical:"blocked-reason",aliases:["blocked_reason","blocked-reason"],optionKey:"blockedReason",metadataKey:"blocked_reason"},{canonical:"unblock-note",aliases:["unblock_note","unblock-note"],optionKey:"unblockNote",metadataKey:"unblock_note"},{canonical:"reporter",aliases:["reporter"],optionKey:"reporter",metadataKey:"reporter"},{canonical:"severity",aliases:["severity"],optionKey:"severity",metadataKey:"severity"},{canonical:"environment",aliases:["environment"],optionKey:"environment",metadataKey:"environment"},{canonical:"repro-steps",aliases:["repro_steps","repro-steps"],optionKey:"reproSteps",metadataKey:"repro_steps"},{canonical:"resolution",aliases:["resolution"],optionKey:"resolution",metadataKey:"resolution"},{canonical:"expected-result",aliases:["expected_result","expected-result"],optionKey:"expectedResult",metadataKey:"expected_result"},{canonical:"actual-result",aliases:["actual_result","actual-result"],optionKey:"actualResult",metadataKey:"actual_result"},{canonical:"affected-version",aliases:["affected_version","affected-version"],optionKey:"affectedVersion",metadataKey:"affected_version"},{canonical:"fixed-version",aliases:["fixed_version","fixed-version"],optionKey:"fixedVersion",metadataKey:"fixed_version"},{canonical:"component",aliases:["component"],optionKey:"component",metadataKey:"component"},{canonical:"regression",aliases:["regression"],optionKey:"regression",metadataKey:"regression"},{canonical:"customer-impact",aliases:["customer_impact","customer-impact"],optionKey:"customerImpact",metadataKey:"customer_impact"}];function ls(e){let t=new Set,n=new Set;if(!e.raw||e.raw.length===0)return{metadataKeys:t,optionKeys:n};for(let r of e.raw){let o=r.trim().toLowerCase();if(!o)throw new d("--unset values must not be empty",l.USAGE);if(Ve(o))throw new d('--unset no longer accepts "none" or "null". Specify concrete field names such as --unset deadline',l.USAGE);let i=e.resolveDefinition(o);if(!i)throw new d(`Unsupported --unset field "${r}". Supported fields: ${e.supportedFields}`,l.USAGE);t.add(i.metadataKey),n.add(i.optionKey)}return{metadataKeys:t,optionKeys:n}}function ds(e,t,n){let r=e.trim().toLowerCase();if(!n)return;let o=n.command_to_fields?.get(t)??[];for(let i of o){if(i.allow_unset===!1)continue;let s=new Set;if(typeof i.key=="string"&&i.key.length>0&&s.add(i.key.toLowerCase()),typeof i.metadata_key=="string"&&i.metadata_key.length>0&&s.add(i.metadata_key.toLowerCase()),typeof i.cli_flag=="string"&&i.cli_flag.length>0&&(s.add(i.cli_flag.replaceAll("-","_").toLowerCase()),s.add(i.cli_flag.toLowerCase())),Array.isArray(i.cli_aliases))for(let a of i.cli_aliases)typeof a!="string"||a.length===0||(s.add(a.replaceAll("-","_").toLowerCase()),s.add(a.toLowerCase()));if(s.has(r))return{optionKey:i.key,metadataKey:i.metadata_key}}}(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]="a9b9f4df-2129-5230-af20-16bef3754d39")}catch{}})();var pS={comment:"--clear-comments",dep:"--clear-deps",doc:"--clear-docs",event:"--clear-events",file:"--clear-files",learning:"--clear-learnings",note:"--clear-notes",reminder:"--clear-reminders",test:"--clear-tests",typeOption:"--clear-type-options"};function fS(e){return pS[e]}function xc(e){return fS(e)!==void 0}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ad3f992c-db2e-5276-a8ae-5d5d4ec8ae68")}catch{}})();var _S=["strict","progressive"],hS=["lightweight"],ah=new Set(["Reminder","Meeting","Event"]),gS=new Set(["author","created_at","text"]),Lc=[...rh,{canonical:"author",aliases:["author"],optionKey:"author",metadataKey:"author"},...cs],yS=(()=>{let e=new Map;for(let t of Lc)for(let n of t.aliases)e.set(n,{optionKey:t.optionKey,metadataKey:t.metadataKey});return e})(),ms=new Map(Lc.map(e=>[e.optionKey,e.canonical])),vS=Lc.map(e=>e.canonical).sort((e,t)=>e.localeCompare(t)).join(", ");function wS(e,t){let n=ee(e,t);if(!n){let r=t.definitions.map(o=>o.id);throw new d(`Invalid status value "${e}". Allowed: ${r.join(", ")}`,l.USAGE)}return n}function bS(e,t){let n=e.default_status;if(n!==void 0){let r=ee(n,t);if(r)return r}return t.open_status}function Pc(e,t){if(!e||e.trim()===""||e.trim().toLowerCase()==="now")return t;let n=Date.parse(e);if(!Number.isFinite(n))throw new d(`Invalid created_at timestamp "${e}"`,l.USAGE);return new Date(n).toISOString()}var kS=Bi();function ch(e){let t={...e,unset:e.unset?[...e.unset]:void 0},n=o=>{let i=t.unset?[...t.unset]:[];i.includes(o)||i.push(o),t.unset=i};Ve(t.template)&&(t.template=void 0);let r=new Set([...ms.keys(),"rank"]);for(let o of r){let i=t[o];if(typeof i!="string"||!Ve(i))continue;let s=o==="rank"?"order":ms.get(o)??o;n(s),t[o]=void 0}return Ae(e,Vi(t,kS))}function ge(e){if(e!==void 0)return e}function SS(e,t){return ls({raw:e,supportedFields:vS,resolveDefinition:n=>yS.get(n)??ds(n,"create",t)})}var oh=["id","kind","type","author","created_at","source_kind"],us=["path","scope","note"];function ES(e,t,n,r){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(Ce(e,"--dep","Use --clear-deps to clear dependencies."),{values:e.map(i=>{let s=i.trim(),a=ps(s,oh);$r(s,a);let c=a?le(i,"--dep"):{id:s,kind:"related"};a&&He(c,"--dep",oh);let m=ge(c.id),u=AS(ge(c.kind??c.type));if(!m||!u)throw new d("--dep requires id and kind, or a bare item id to create a related dependency",l.USAGE);if(m.trim().toLowerCase()==="undefined")throw new d(`--dep id must not use placeholder token "${m}". Use --clear-deps to clear dependencies.`,l.USAGE);let p=br(ge(c.source_kind)),f=ge(c.author);return{id:kr(m,n,p),kind:Ie(u,Wt,"dependency kind","kind"),created_at:Pc(c.created_at,t),author:f??r,source_kind:p??"cli:create:dep",author_source:f?"asserted":"detected"}}),explicitEmpty:!1})}function AS(e){return typeof e=="string"?po(e)??e.trim():e}function ps(e,t){return li(e,t)?!0:ui(e)}function mn(e,t,n,r){return!t||t.length===0?{values:void 0,explicitEmpty:!1}:(Ce(t,e,e==="--comment"?"Use --clear-comments to clear comments.":e==="--note"?"Use --clear-notes to clear notes.":"Use --clear-learnings to clear learnings."),{values:t.map(s=>{let a=s.trim(),c=()=>{if(a.length===0)throw new d(`${e} requires text=<value>`,l.USAGE);return{created_at:n,author:r,text:a}},m;try{m=le(s,e)}catch(f){if(e==="--comment"||e==="--note"||e==="--learning")return c();throw f}if(Object.keys(m).filter(f=>!gS.has(f)).length>0)return{created_at:Pc(m.created_at,n),author:ge(m.author)??r,text:a};let p=m.text??"";if(p==="")throw new d(`${e} requires text=<value>`,l.USAGE);return{created_at:Pc(m.created_at,n),author:ge(m.author)??r,text:p}}),explicitEmpty:!1})}function Nc(e){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(Ce(e,"--file","Use --clear-files to clear linked files."),{values:e.map(n=>{let r=n.trim(),o=ps(r,us);Ba(r,"--file","file path",o);let i=o?le(n,"--file"):{path:r};if(o&&He(i,"--file",us),!i.path)throw new d("--file requires path=<value> or a bare file path",l.USAGE);return{path:i.path,scope:Ie(i.scope??"project",ct,"file scope"),note:ge(i.note)}}),explicitEmpty:!1})}function $c(e){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(Ce(e,"--test","Use --clear-tests to clear linked tests."),{values:e.map(n=>{let r=n.trim(),o=ps(r,vt);Ba(r,"--test","test command",o);let i=o?Qi(le(n,"--test"),"--test"):{command:r},s=ge(i.command),a=ge(i.path);if(!s)throw new d("--test requires command=<value> or a bare command (path=<value> is optional metadata)",l.USAGE);let c=ge(i.timeout_seconds),m=ge(i.timeout);if(c&&m&&c!==m)throw new d("--test timeout and timeout_seconds must match when both are provided",l.USAGE);let u=c??m;return{command:s,path:a,scope:Ie(i.scope??"project",ct,"test scope"),timeout_seconds:u?_e(u,"timeout_seconds"):void 0,pm_context_mode:rs(i.pm_context_mode,"--test"),workspace_context_mode:cn(i.workspace_context_mode,"--test"),env_set:Fr(i.env_set,"--test"),env_clear:Dr(i.env_clear,"--test"),shared_host_safe:ns(i.shared_host_safe,"--test","shared_host_safe"),assert_stdout_contains:ln(i.assert_stdout_contains),assert_stdout_regex:zn(i.assert_stdout_regex,"--test","assert_stdout_regex"),assert_stderr_contains:ln(i.assert_stderr_contains),assert_stderr_regex:zn(i.assert_stderr_regex,"--test","assert_stderr_regex"),assert_stdout_min_lines:os(i.assert_stdout_min_lines,"--test"),assert_json_field_equals:is(i.assert_json_field_equals,"--test"),assert_json_field_gte:ss(i.assert_json_field_gte,"--test"),note:ge(i.note)}}),explicitEmpty:!1})}function Mc(e){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(Ce(e,"--doc","Use --clear-docs to clear linked docs."),{values:e.map(n=>{let r=n.trim(),o=ps(r,us),i=o?le(n,"--doc"):{path:r};if(o&&He(i,"--doc",us),!i.path)throw new d("--doc requires path=<value> or a bare doc path",l.USAGE);return{path:i.path,scope:Ie(i.scope??"project",ct,"doc scope"),note:ge(i.note)}}),explicitEmpty:!1})}function TS(e,t){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(Ce(e,"--reminder","Use --clear-reminders to clear reminders."),{values:Wi(e,new Date(t),{valueMode:"raw"}),explicitEmpty:!1})}function CS(e,t){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(Ce(e,"--event","Use --clear-events to clear linked events."),{values:Yi(e,new Date(t),{allDayEmptyGuard:"defined",recurrenceEmptyNumericGuard:"defined"}),explicitEmpty:!1})}function IS(e,t,n,r=[]){let o=[...ao.filter(i=>e[i]!==void 0),...r.filter(i=>e[i]!==void 0),...t.length>0?["body"]:[],...n.map(i=>`unset:${i}`)];return Array.from(new Set(o))}function RS(e,t){let n=e??"";if(t.length===0)return n;let r=`explicit_unset=${t.join(",")}`;return n?`${n} | ${r}`:r}function ih(e,t,n){let r=tr("create",e);if(!r)throw new d(`Unsupported ${n} entry "${e}" for type "${t}"`,l.CONFLICT);return r}function OS(e){return{scalarValues:{title:e.title,description:e.description,type:e.type,status:e.status,priority:e.priority,tags:e.tags,body:e.body,deadline:e.deadline,estimatedMinutes:e.estimatedMinutes,acceptanceCriteria:e.acceptanceCriteria,definitionOfReady:e.definitionOfReady,order:e.order??e.rank,goal:e.goal,objective:e.objective,value:e.value,impact:e.impact,outcome:e.outcome,whyNow:e.whyNow,author:e.author,message:e.message,assignee:e.assignee,parent:e.parent,reviewer:e.reviewer,risk:e.risk,confidence:e.confidence,sprint:e.sprint,release:e.release,blockedBy:e.blockedBy,blockedReason:e.blockedReason,unblockNote:e.unblockNote,reporter:e.reporter,severity:e.severity,environment:e.environment,reproSteps:e.reproSteps,resolution:e.resolution,expectedResult:e.expectedResult,actualResult:e.actualResult,affectedVersion:e.affectedVersion,fixedVersion:e.fixedVersion,component:e.component,regression:e.regression,customerImpact:e.customerImpact},repeatableValues:{dep:e.dep,comment:e.comment,note:e.note,learning:e.learning,file:e.file,test:e.test,doc:e.doc,reminder:e.reminder,event:e.event,typeOption:e.typeOption,field:e.field},addTags:e.addTags}}function lh(e,t){if(t==="tags")return e.scalarValues.tags!==void 0||Array.isArray(e.addTags)&&e.addTags.length>0;if(Object.prototype.hasOwnProperty.call(e.scalarValues,t))return e.scalarValues[t]!==void 0;if(Object.prototype.hasOwnProperty.call(e.repeatableValues,t)){let n=e.repeatableValues[t];return Array.isArray(n)&&n.length>0}return!1}function xS(e,t){let n=new Set(["title","type"]);if(t!=="strict")return n;for(let r of e.required_create_fields)n.add(ih(r,e.name,"required_create_fields"));for(let r of e.required_create_repeatables)n.add(ih(r,e.name,"required_create_repeatables"));return n}function PS(e,t,n,r){for(let o of e)if(!(!lh(t,o)&&!n.has(o)))throw new d(`Option ${ke("create",o)} is disabled for type "${r}" by command_option_policies`,l.USAGE)}function LS(e,t,n){if(t!=="strict")return;let r=e.filter(i=>n.has(i)&&!xc(i));if(r.length===0)return;let o=[...new Set(r.map(i=>ke("create",i)))].sort((i,s)=>i.localeCompare(s));throw new d(`Strict create mode requires concrete values for ${o.join(", ")}; --unset/--clear-* directives cannot satisfy required options`,l.USAGE)}function NS(e){return!e||e.length===0?{values:void 0,explicitEmpty:!1}:(Ce(e,"--type-option","Use --clear-type-options to clear existing type options."),{values:Ji(e),explicitEmpty:!1})}async function $S(e){return await pi(e,[["body","--body"],["description","--description"]],[["dep","--dep"],["comment","--comment"],["note","--note"],["learning","--learning"],["file","--file"],["test","--test"],["doc","--doc"],["reminder","--reminder"],["event","--event"],["typeOption","--type-option"],["field","--field"]])}async function MS(e){return ht(e)?await $S(e):e}function FS(e,t){if(e===void 0)return t;let n=e.trim().toLowerCase();if(n.length===0)return t;if(n==="strict"||n==="progressive")return n;throw new d(`Invalid --create-mode value "${e}". Allowed: ${_S.join(", ")}`,l.USAGE)}function DS(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t.length===0)throw new d("--schedule-preset must not be empty",l.USAGE);if(t==="lightweight"||t==="lite"||t==="schedule-lite")return"lightweight";throw new d(`Invalid --schedule-preset value "${e}". Allowed: ${hS.join(", ")}`,l.USAGE)}function US(e,t,n){let r=FS(e,n);if(t===void 0)return r;if(typeof e=="string"&&e.trim().length>0&&r==="strict")throw new d("--schedule-preset lightweight cannot be combined with --create-mode strict. Use --create-mode progressive or omit --create-mode.",l.USAGE);return"progressive"}function GS(e,t,n,r){let o=e.name,i=OS(t),s=xS(e,n),a=kn(e,"create",s);if(a.errors.length>0)throw new d(a.errors.join("; "),l.CONFLICT);PS(a.disabled,i,r,o),LS(a.required,n,r);let c=u=>u==="status"&&e.default_status!==void 0||r.has(u)&&xc(u)?!0:lh(i,u),m=a.required.filter(u=>!c(u));return[...new Set(m.map(u=>ke("create",u)))].sort((u,p)=>u.localeCompare(p))}var dh=/^Missing required type option "([^"]+)" for type "([^"]+)"$/;function jS(e,t){let n=[];for(let r of e){let o=r.match(dh);o&&o[2]===t&&n.push(o[1])}return[...new Set(n)].sort((r,o)=>r.localeCompare(o))}function qS(e,t){return e.filter(n=>{let r=n.match(dh);return!r||r[2]!==t})}function KS(e,t,n,r){let o=qS(e,t);if(o.length===0)return;let i=mh(n,[],[],r.open_status);throw new d(o.join("; "),l.USAGE,{code:"invalid_argument_value",required:`Provide valid --type-option key/value pairs for type "${t}".`,examples:[i],nextSteps:[`Run "pm create --help --type ${t}" to review allowed type-option keys and values.`]})}function zS(e,t){let r=e.options.find(o=>o.key===t)?.values[0];return typeof r=="string"&&r.trim().length>0?r:"<value>"}function BS(e,t,n){switch(e){case"--title":return["--title",`"${t} example title"`];case"--description":return["--description",`"${t} example description"`];case"--type":return["--type",t];case"--status":return["--status",n];case"--priority":return["--priority","1"];case"--message":return["--message",`"Create ${t} item"`];case"--dep":return["--dep",'"id=pm-xxxx,kind=related,author=maintainer,created_at=now"'];case"--comment":return["--comment",'"author=maintainer,created_at=now,text=Implementation context"'];case"--note":return["--note",'"author=maintainer,created_at=now,text=Design note"'];case"--learning":return["--learning",'"author=maintainer,created_at=now,text=Durable lesson"'];case"--file":return["--file",'"path=src/example.ts,note=implementation file"'];case"--test":return["--test",'"command=node scripts/run-tests.mjs test,timeout_seconds=240"'];case"--doc":return["--doc",'"path=README.md,note=reference doc"'];default:return[e,'"<value>"']}}function mh(e,t,n,r){let o=["pm","create","--title",`"${e.name} example title"`,"--description",`"${e.name} example description"`,"--type",e.name],i=["--status","--priority","--message"],s=[...new Set([...i,...t])],a=new Set(["--title","--description","--type"]);for(let c of s)a.has(c)||(o.push(...BS(c,e.name,r)),a.add(c));for(let c of n){let m=zS(e,c);o.push("--type-option",`${c}=${m}`)}return o.join(" ")}function Fc(e,t){let n=e?.trim();if(!n)throw t==="--title"?e!==void 0?new d("Title cannot be empty or whitespace-only. Retry: pass a non-empty title with --title.",l.USAGE):new d('Missing required option --title. Why required: every item needs a human-readable title for lookup, search, and reporting. Retry: pass the title as the first positional argument (example: pm create "Fix login bug" --type Issue) or with --title.',l.USAGE):new d(`Missing required option ${t}`,l.USAGE);return n}function HS(e,t){let n={};for(let[r,o]of Object.entries(e))n[r]=Array.isArray(o)?[...o]:o;for(let[r,o]of Object.entries(t))o!==void 0&&(n[r]=Array.isArray(o)?[...o]:o);return n}function VS(e){return e.trim().toLowerCase().split(/\s+/).filter(t=>t.length>0).join(" ")}function WS(){let e=O();return e?e.commands.some(t=>t.action==="templates-show"||VS(t.command)==="templates show"):!1}function YS(e,t){if(typeof e!="object"||e===null||!("options"in e))throw new d(`Templates package returned invalid payload for template "${t}". Expected an options object.`,l.GENERIC_FAILURE);let n=e.options;if(typeof n!="object"||n===null||Array.isArray(n))throw new d(`Templates package returned invalid options for template "${t}".`,l.GENERIC_FAILURE);let r={};for(let[o,i]of Object.entries(n)){if(typeof i=="string"||typeof i=="number"||typeof i=="boolean"){r[o]=i;continue}if(Array.isArray(i)&&i.every(s=>typeof s=="string")){r[o]=[...i];continue}throw new d(`Templates package returned unsupported option value for "${o}" in template "${t}".`,l.GENERIC_FAILURE)}return r}async function JS(e,t,n){if(!WS())throw new d("--template requires the templates package. Install it first (for example: pm install templates --project).",l.USAGE);let r=await Yo({command:"templates show",args:[e],options:{},global:t,pm_root:n});if(!r.handled){let o=r.warnings.length>0?` (${r.warnings.join(", ")})`:"";throw new d(`Unable to resolve template "${e}" via templates package. Run "pm templates show ${e}" for details.${o}`,l.USAGE)}return YS(r.result,e)}function V(e,t,n){return e.has(t)||n===void 0?void 0:ge(n)}function dn(e,t,n,r){return e.has(t)||n===void 0?void 0:r(n)}var XS=new Set(["milestone","meeting","reminder","event"]);function uh(e,t,n,r){let o=t!==void 0,i=n!==void 0&&n.length>0,s=r!==void 0&&r.length>0;return XS.has(e.toLowerCase())&&!o&&!i&&!s}function QS(e,t,n,r,o){let i=[];return e.toLowerCase()==="event"&&(o===void 0||o.length===0)&&i.push(`event_without_schedule:${t}:no_time_set`),uh(e,n,r,o)&&i.push(`calendar_item_without_schedule:${t}:no_deadline_or_reminder_or_event (hint: set --deadline <ISO> or --reminder "<when>", or link an Event via --event "start=<ISO>,end=<ISO>"; otherwise this item never appears on pm calendar)`),i}async function ZS(e,t,n,r){if(e!==void 0||n.has("parent")||t.parent!==void 0)return{parent:e,parentSource:void 0};let o=await ti(r);return o===void 0?{parent:e,parentSource:void 0}:{parent:o,parentSource:"focus"}}async function eE(e,t,n,r,o,i){let s=bi(gi(o),t.id_prefix);if(Qo(s))return{parent:s,warnings:[]};if(vi(r,s,t.id_prefix),await q(e,s,t.id_prefix,t.item_format,n.type_to_folder))return{parent:s,warnings:[]};let c=je(s,t.id_prefix);return{parent:s,warnings:yi(c,i).warnings}}async function tE(e){return e.parent===void 0?{parent:void 0,warnings:[]}:await eE(e.pmRoot,e.settings,e.typeRegistry,e.itemId,e.parent,e.policy)}async function nE(e){if(e.explicitId===void 0)return gr(e.pmRoot,e.settings.id_prefix,{tokenLength:e.settings.ids.token_length,typeToFolder:e.typeRegistry.type_to_folder,probeExisting:!1});if(typeof e.explicitId!="string")throw new d("--id must be a string",l.USAGE);let t=e.explicitId.trim();if(t.length===0||Kp(t))throw new d("--id must not be empty or use a placeholder token",l.USAGE);let n=je(t,e.settings.id_prefix);if(!/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/.test(n))throw new d("--id must contain only letters, numbers, and dashes after normalization",l.USAGE);return n}function sh(e,t,n,r,o){let i=V(e,t,n);if(i===void 0)return{value:void 0,warnings:[]};let s=wi(r,i,o);return{value:s.value,warnings:s.warnings}}async function rE(e){let{pmRoot:t,settings:n,typeRegistry:r,statusRegistry:o,blockedBy:i,status:s,statusExplicit:a,nowValue:c,author:m}=e,u=e.dependencyValues;if(i===void 0)return{dependencyValues:u,status:s};let p=je(i,n.id_prefix),f=await q(t,p,n.id_prefix,n.item_format,r.type_to_folder);if(!f)return{dependencyValues:u,status:s};if((u??[]).some(y=>y.id===f.id&&y.kind==="blocked_by")||(u=[...u??[],{id:f.id,kind:"blocked_by",created_at:c,author:m,source_kind:"cli:create:blocked_by",author_source:"detected"}]),a)return{dependencyValues:u,status:s};let h=o.blocked_statuses.has("blocked")?"blocked":[...o.blocked_statuses].sort((y,g)=>y.localeCompare(g))[0]??o.open_status;return{dependencyValues:u,status:h}}function oE(e,t,n){if(typeof e.createMode=="string"&&e.createMode.trim().toLowerCase()==="strict")return;let o=t.governance.create_default_type?.trim();if(o&&o.length>0&&we(o,n)){e.type=o;return}we("Task",n)&&(e.type="Task")}function iE(e,t){return e.options.filter(n=>tr("create",n.key)===void 0).flatMap(n=>{let r=t[n.key];if(r===void 0)return[];if(typeof r=="string"||typeof r=="number"||typeof r=="boolean")return[n];throw new d(`Template custom type option "${n.key}" must be a string, number, or boolean value`,l.USAGE)})}async function sE(e,t,n,r,o){let i=e,s=[];if(i.template!==void 0){let h=i.template.trim();if(h.length===0)throw new d("--template must not be empty. Omit --template to disable template usage.",l.USAGE);let y=await JS(h,t,n);i=ch(HS(y,i))}if(i.type===void 0&&oE(i,r,o),i.type===void 0)throw new d("Missing required option --type <value>",l.USAGE);let a=we(i.type,o);if(!a){let h=Bp(i.type),y=h?we(h,o):void 0;if(y)s.push(`type_coercion:${i.type.trim()}:${y}`),i.type=y,a=y;else throw new d(xt(i.type,o.types,Pt(n,r.schema)),l.USAGE)}let c=mo(a,o);if(!c)throw new d(`Invalid type value "${i.type}"`,l.USAGE);let m=c.name,u=iE(c,i),p=u.map(h=>`${h.key}=${String(i[h.key])}`);if(p.length>0){i.typeOption=[...p,...i.typeOption??[]];for(let h of u)delete i[h.key]}let f=DS(i.schedulePreset);if(f!==void 0&&!ah.has(m))throw new d(`--schedule-preset ${f} is only supported for Reminder, Meeting, or Event types`,l.USAGE);let _=US(i.createMode,f,r.governance.create_mode_default);return{resolvedOptions:i,typeDefinition:c,type:m,schedulePreset:f,createMode:_,warnings:s}}function aE(e,t){let n=new Set(t.metadataKeys),r=new Set(t.optionKeys),o=[{enabled:e.clearDeps,optionKey:"dep",clearFlag:"--clear-deps",valueFlag:"--dep",values:e.dep,metadataKey:"dependencies"},{enabled:e.clearComments,optionKey:"comment",clearFlag:"--clear-comments",valueFlag:"--comment",values:e.comment,metadataKey:"comments"},{enabled:e.clearNotes,optionKey:"note",clearFlag:"--clear-notes",valueFlag:"--note",values:e.note,metadataKey:"notes"},{enabled:e.clearLearnings,optionKey:"learning",clearFlag:"--clear-learnings",valueFlag:"--learning",values:e.learning,metadataKey:"learnings"},{enabled:e.clearFiles,optionKey:"file",clearFlag:"--clear-files",valueFlag:"--file",values:e.file,metadataKey:"files"},{enabled:e.clearTests,optionKey:"test",clearFlag:"--clear-tests",valueFlag:"--test",values:e.test,metadataKey:"tests"},{enabled:e.clearDocs,optionKey:"doc",clearFlag:"--clear-docs",valueFlag:"--doc",values:e.doc,metadataKey:"docs"},{enabled:e.clearReminders,optionKey:"reminder",clearFlag:"--clear-reminders",valueFlag:"--reminder",values:e.reminder,metadataKey:"reminders"},{enabled:e.clearEvents,optionKey:"event",clearFlag:"--clear-events",valueFlag:"--event",values:e.event,metadataKey:"events"},{enabled:e.clearTypeOptions,optionKey:"typeOption",clearFlag:"--clear-type-options",valueFlag:"--type-option",values:e.typeOption,metadataKey:"type_options"}];for(let i of o)if(i.enabled){if(i.values&&i.values.length>0)throw new d(`Cannot combine ${i.clearFlag} with ${i.valueFlag}`,l.USAGE);n.add(i.metadataKey),r.add(i.optionKey)}return{explicitUnsets:n,clearOptionKeys:r}}function cE(e,t){let n={tags:e.tags!==void 0,deadline:e.deadline!==void 0,estimatedMinutes:e.estimatedMinutes!==void 0,acceptanceCriteria:e.acceptanceCriteria!==void 0,definitionOfReady:e.definitionOfReady!==void 0,order:e.order!==void 0||e.rank!==void 0,goal:e.goal!==void 0,objective:e.objective!==void 0,value:e.value!==void 0,impact:e.impact!==void 0,outcome:e.outcome!==void 0,whyNow:e.whyNow!==void 0,author:e.author!==void 0,assignee:e.assignee!==void 0,parent:e.parent!==void 0,reviewer:e.reviewer!==void 0,risk:e.risk!==void 0,confidence:e.confidence!==void 0,sprint:e.sprint!==void 0,release:e.release!==void 0,blockedBy:e.blockedBy!==void 0,blockedReason:e.blockedReason!==void 0,unblockNote:e.unblockNote!==void 0,reporter:e.reporter!==void 0,severity:e.severity!==void 0,environment:e.environment!==void 0,reproSteps:e.reproSteps!==void 0,resolution:e.resolution!==void 0,expectedResult:e.expectedResult!==void 0,actualResult:e.actualResult!==void 0,affectedVersion:e.affectedVersion!==void 0,fixedVersion:e.fixedVersion!==void 0,component:e.component!==void 0,regression:e.regression!==void 0,customerImpact:e.customerImpact!==void 0};for(let[r,o]of Object.entries(n)){if(!o||!t.optionKeys.has(r))continue;let i=ms.get(r)??r;throw new d(`Cannot combine --unset ${i} with ${ke("create",r)}`,l.USAGE)}}function lE(e){let t=(n,r)=>{let o=ms.get(r),i=o?`Use --unset ${o} to clear this field.`:void 0;Hi(n,ke("create",r),i)};t(e.tags,"tags"),t(e.deadline,"deadline"),t(e.estimatedMinutes,"estimatedMinutes"),t(e.acceptanceCriteria,"acceptanceCriteria"),t(e.definitionOfReady,"definitionOfReady"),t(e.order??e.rank,"order"),t(e.goal,"goal"),t(e.objective,"objective"),t(e.value,"value"),t(e.impact,"impact"),t(e.outcome,"outcome"),t(e.whyNow,"whyNow"),t(e.author,"author"),t(e.assignee,"assignee"),t(e.parent,"parent"),t(e.reviewer,"reviewer"),t(e.risk,"risk"),t(e.confidence,"confidence"),t(e.sprint,"sprint"),t(e.release,"release"),t(e.blockedBy,"blockedBy"),t(e.blockedReason,"blockedReason"),t(e.unblockNote,"unblockNote"),t(e.reporter,"reporter"),t(e.severity,"severity"),t(e.environment,"environment"),t(e.reproSteps,"reproSteps"),t(e.resolution,"resolution"),t(e.expectedResult,"expectedResult"),t(e.actualResult,"actualResult"),t(e.affectedVersion,"affectedVersion"),t(e.fixedVersion,"fixedVersion"),t(e.component,"component"),t(e.regression,"regression"),t(e.customerImpact,"customerImpact")}function dE(e,t,n){for(let r of Object.keys(e))if(n.metadataKeys.has(r))throw new d(`Cannot combine --unset ${r.replaceAll("_","-")} with --field ${r}=...`,l.USAGE);for(let r of Object.keys(t.values??{}))if(n.metadataKeys.has(r))throw new d(`Cannot combine --unset ${r.replaceAll("_","-")} with its value flag`,l.USAGE)}var mE={"--comment":"--clear-comments","--dep":"--clear-deps","--doc":"--clear-docs","--event":"--clear-events","--file":"--clear-files","--learning":"--clear-learnings","--note":"--clear-notes","--reminder":"--clear-reminders","--test":"--clear-tests","--type-option":"--clear-type-options"};function uE(e){let{combinedMissingFlags:t,typeDefinition:n,missingRequiredCreateFlags:r,missingRequiredTypeOptionKeys:o,openStatus:i,type:s,createMode:a,missingRequiredRuntimeFields:c}=e;if(t.length===0)return;let m=c.map(h=>{let y=h.type==="boolean"?"<true|false>":h.type==="array"?"<json-array>":h.type==="object"?"<json-object>":h.type==="number"?"<number>":h.type==="string_array"||h.repeatable?"<value>":"<string>";return{example:`--${h.cli_flag} ${y}`,description:`--${h.cli_flag} maps to ${h.metadata_key} (${h.type}${h.repeatable?", repeatable":""})`}}),u=[mh(n,r,o,i),...m.map(h=>h.example)].join(" "),p=[`Run "pm create --help --type ${s}" for type-aware required option guidance.`,...t.filter(h=>h==="--title").map(()=>'Title can also be passed as the first positional argument (example: pm create "Your title" --type '+s+").")];a==="strict"&&(p.push('For staged onboarding, retry with "--create-mode progressive".'),ah.has(s)&&p.push('For minimal scheduling inputs, try "--schedule-preset lightweight".')),m.length>0&&p.push(`Required custom field formats: ${m.map(h=>h.description).join("; ")}.`);let f=[...new Set(t.flatMap(h=>{let y=h.split(" ",1)[0],g=mE[y];return g?[g]:[]}))];f.length>0&&p.push(`If the truthful value is an empty collection, use ${f.join(", ")} instead of inventing metadata.`);let _=t.length===1?`Missing required option ${t[0]} for type "${s}"`:`Missing required options ${t.join(", ")} for type "${s}"`;throw new d(_,l.USAGE,{code:"missing_required_option",required:`Provide all required create options and type options for type "${s}" in one invocation.`,examples:[...f.map(h=>`pm create --type ${s} ${h} ...`),u],nextSteps:p,recovery:a==="strict"?{recovery_mode:"compact",missing_required_fields:t,suggested_flags:[...f,...t,"--create-mode progressive"]}:void 0})}function pE(e,t){if(e.has("tags")&&Array.isArray(t.addTags)&&t.addTags.length>0)throw new d("Cannot combine --unset tags with --add-tags",l.USAGE);let n=e.has("tags")?[]:t.tags!==void 0?Ft(t.tags):[];return Ln(n,t.addTags)}function fE(e,t){if(t.order!==void 0&&t.rank!==void 0&&t.order!==t.rank)throw new d("--order and --rank must match when both are provided",l.USAGE);let n=t.order??t.rank,r=dn(e,"order",n,o=>_e(o,"order"));if(r!==void 0&&!Number.isInteger(r))throw new d("Order must be an integer",l.USAGE);return r}function _E(e,t,n,r,o,i){if(r.completedAt!==void 0&&e!==t.close_status)throw new d("--completed-at requires a terminal create status.",l.USAGE);let s=e!==t.close_status?void 0:r.completedAt===void 0?i:oe(r.completedAt,new Date(i),"completed-at");if(e!==t.close_status)return{closeReason:void 0,completedAt:s,warnings:[]};let a=n.governance.require_close_reason?{explicit:r.closeReason??r.message,resolution:o}:{explicit:r.closeReason};return{closeReason:Ac(a,n.governance.require_close_reason,{operation:"create",status:e}).closeReason,completedAt:s,warnings:[]}}async function hE(e){let{pmRoot:t,type:n,id:r,settings:o,typeRegistry:i,author:s,extensionFieldNames:a,afterDocument:c,beforeDocument:m,historyMessage:u,changedFields:p,nowValue:f,similarityCandidate:_,allowDuplicate:h}=e,y=dt(t,n,r,o.item_format,i.type_to_folder),g=Qe(t,r),v=Ut(),b=c.metadata.parent!==void 0||(c.metadata.dependencies??[]).some($=>v.resolve($.kind)?.hierarchy),k=await Xi({pmRoot:t,author:s,ttlSeconds:o.locks.ttl_seconds,waitMs:o.locks.wait_ms,required:b}),T=b,R=[];try{let $=await Ee(t,r,o.locks.ttl_seconds,s,!1,o.governance.force_required_for_stale_lock,o.locks.wait_ms);try{let M=c.metadata.parent!==void 0||c.metadata.dependencies!==void 0&&c.metadata.dependencies.length>0?await fe(t,o.item_format,i.type_to_folder,void 0,o.schema):void 0;if(await q(t,r,o.id_prefix,o.item_format,i.type_to_folder))throw new d(`Item "${r}" already exists`,l.CONFLICT);if(M){let re=F(o.schema);ki(M,[...M,c.metadata],r,ze=>ne(ze,re),v)}let z=await yr({pmRoot:t,settings:o,operation:"create",author:s,before:null,after:c});await Wo({pm_root:t,operation:"create",before:null,after:c,changed_fields:p,sdk:oi({pmRoot:t,settings:o,typeToFolder:i.type_to_folder})});let B=await $t(t,s,{required:o.governance.duplicate_detection_mode==="strict"&&h!==!0}),ue=[];try{o.governance.duplicate_detection_mode==="strict"&&h!==!0&&await jn(_,{pmRoot:t,mode:"strict",threshold:o.governance.duplicate_detection_threshold,limit:o.governance.duplicate_detection_limit,allowDuplicate:!1}),await te(y,Be(c,{format:o.item_format,schema:o.schema,extensionFieldNames:a}));try{let re=Pe({nowIso:f,author:s,op:"create",before:m,after:c,message:u,context:z.decisions.length===0?void 0:{workflow_policies:z.decisions}});await Lt(g,re)}catch(re){throw await bn(y),re}T&&(await k(),T=!1),ue=await Mt({pmRoot:t,preferredFormat:o.item_format,typeToFolder:i.type_to_folder,schema:o.schema,itemPath:y,document:c})}finally{await B()}R=[...z.warnings,...M?Ni(M,[...M,c.metadata],r):[],...ue,...await J({path:y,scope:"project",op:"create",item_id:c.metadata.id,item_type:c.metadata.type,before:m,after:c,changed_fields:p}),...await J({path:g,scope:"project",op:"create:history",item_id:c.metadata.id,item_type:c.metadata.type,before:m,after:c,changed_fields:p})],An({id:c.metadata.id,op:"create",item_type:c.metadata.type,status:c.metadata.status,current:Qt(c.metadata,p),changed_fields:p})}finally{await $()}}finally{T&&await k()}return R}async function qt(e,t){let n=ch(await MS(e)),r=E(process.cwd(),t.path);await I(r);let o=await A(r),i=F(o.schema),s=Ze(o.schema),a=x(o,O()),c=await sE(n,t,r,o,a);n=c.resolvedOptions;let{typeDefinition:m,type:u,createMode:p}=c,f=SS(n.unset,s),{explicitUnsets:_,clearOptionKeys:h}=aE(n,f);cE(n,f),lE(n);let y=GS(m,n,p,h),g=S(),v=C(ge(n.author),o.author_default),b=ES(n.dep,g,o.id_prefix,v),k=mn("--comment",n.comment,g,v),T=mn("--note",n.note,g,v),R=mn("--learning",n.learning,g,v),$=Nc(n.file),M=$c(n.test);M.values=await Gn(M.values,v,g);let K=Mc(n.doc),z=TS(n.reminder,g),B=CS(n.event,g),ue=NS(n.typeOption),re=nr(u,ue.values,a),ze=O(),j=Ct(ze),ce=co(n.field,ze),Je=ip(n,s,u),Zn=new Set(Je.missing_required_flags),Vs=s.definitions.filter(Y=>Zn.has(`--${Y.cli_flag}`));dE(ce,Je,f);let er=jS(re.errors,u),Ht=er.map(Y=>`--type-option ${Y}=<value>`),_d=[...new Set([...y,...Ht,...Je.missing_required_flags])].sort((Y,na)=>Y.localeCompare(na));uE({combinedMissingFlags:_d,typeDefinition:m,missingRequiredCreateFlags:y,missingRequiredTypeOptionKeys:er,openStatus:i.open_status,type:u,createMode:p,missingRequiredRuntimeFields:Vs}),KS(re.errors,u,m,i);let xe=await nE({pmRoot:r,settings:o,typeRegistry:a,explicitId:n.id}),Et=n.status!==void 0?wS(n.status,i):bS(m,i),Ws=n.priority!==void 0?$n(n.priority):2,P=f.metadataKeys,Ue=pE(P,n),at=dn(P,"deadline",n.deadline,Y=>oe(Y,new Date(g),"deadline")),eo=dn(P,"estimated_minutes",n.estimatedMinutes,Y=>Nn(Y,"estimated-minutes")),At=V(P,"acceptance_criteria",n.acceptanceCriteria),Ys=V(P,"definition_of_ready",n.definitionOfReady),Xe=fE(P,n),Js=V(P,"goal",n.goal),to=V(P,"objective",n.objective),Gw=V(P,"value",n.value),jw=V(P,"impact",n.impact),qw=V(P,"outcome",n.outcome),Kw=V(P,"why_now",n.whyNow),zw=V(P,"assignee",n.assignee),Bw=P.has("author")?void 0:ge(n.author)??v,Hw=V(P,"parent",n.parent),hd=await ZS(Hw,n,P,r),Xs=hd.parent,Vw=hd.parentSource,Ww=V(P,"reviewer",n.reviewer),Yw=dn(P,"risk",n.risk,Y=>Ie(ji(Y),vn,"risk")),Jw=dn(P,"confidence",n.confidence,Y=>Ki(Y)),Xw=n.allowMissingParent===!0&&o.validation.parent_reference==="strict_error"?"warn":o.validation.parent_reference,gd=o.validation.sprint_release_format,Vt=[...c.warnings,...QS(u,xe,at,z.values,B.values)],yd=await tE({itemId:xe,parent:Xs,pmRoot:r,settings:o,typeRegistry:a,policy:Xw});Xs=yd.parent,Vt.push(...yd.warnings);let vd=sh(P,"sprint",n.sprint,"sprint",gd),Qw=vd.value;Vt.push(...vd.warnings);let wd=sh(P,"release",n.release,"release",gd),Zw=wd.value;Vt.push(...wd.warnings);let bd=V(P,"blocked_by",n.blockedBy),kd=await rE({pmRoot:r,settings:o,typeRegistry:a,statusRegistry:i,blockedBy:bd,dependencyValues:b.values,status:Et,statusExplicit:n.status!==void 0,nowValue:g,author:v}),Qs=kd.dependencyValues;Mr(xe,Qs),Vt.push(...await rn({pmRoot:r,dependencies:Qs,idPrefix:o.id_prefix,itemFormat:o.item_format,typeToFolder:a.type_to_folder,allowUnresolved:n.allowUnresolvedDeps,holders:[{id:xe,createdAt:g}],schema:o.schema})),Et=kd.status;let eb=V(P,"blocked_reason",n.blockedReason),tb=V(P,"unblock_note",n.unblockNote),nb=V(P,"reporter",n.reporter),rb=dn(P,"severity",n.severity,Y=>Ie(qi(Y),wn,"severity")),ob=V(P,"environment",n.environment),ib=V(P,"repro_steps",n.reproSteps),Sd=V(P,"resolution",n.resolution),sb=V(P,"expected_result",n.expectedResult),ab=V(P,"actual_result",n.actualResult),cb=V(P,"affected_version",n.affectedVersion),lb=V(P,"fixed_version",n.fixedVersion),db=V(P,"component",n.component),mb=dn(P,"regression",n.regression,Y=>zi(Y)),ub=V(P,"customer_impact",n.customerImpact),Zs=Fc(n.title,"--title"),ea=n.description??"",no=n.body??"",Ed=await jn({title:Zs,description:ea,body:no},{pmRoot:r,mode:o.governance.duplicate_detection_mode,threshold:o.governance.duplicate_detection_threshold,limit:o.governance.duplicate_detection_limit,allowDuplicate:n.allowDuplicate});Vt.push(...$i(Ed));let ta=_E(Et,i,o,n,Sd,g),pb=ta.closeReason,fb=Et===i.close_status?g:void 0,_b=ta.completedAt;Vt.push(...ta.warnings);let ro=Ma({id:xe,title:Zs,description:ea,type:u,type_options:re.normalized,status:Et,closed_at:fb,completed_at:_b,close_reason:pb,priority:Ws,tags:Ue,created_at:g,updated_at:g,deadline:at,assignee:zw,author:Bw,estimated_minutes:eo,acceptance_criteria:At,definition_of_ready:Ys,order:Xe,goal:Js,objective:to,value:Gw,impact:jw,outcome:qw,why_now:Kw,parent:Xs,reviewer:Ww,risk:Yw,confidence:Jw,sprint:Qw,release:Zw,blocked_by:bd,blocked_reason:eb,unblock_note:tb,reporter:nb,severity:rb,environment:ob,repro_steps:ib,resolution:Sd,expected_result:sb,actual_result:ab,affected_version:cb,fixed_version:lb,component:db,regression:mb,customer_impact:ub,dependencies:Qs,comments:k.values,notes:T.values,learnings:R.values,files:$.values,tests:M.values,docs:K.values,reminders:z.values,events:B.values,...ce,...Je.values});try{lo(ro,ze)}catch(Y){throw new d(Y instanceof Error?Y.message:"Invalid extension item field values",l.USAGE)}let hb=et({metadata:ro,body:no},{schema:o.schema,extensionFieldNames:j}),gb={metadata:{},body:""},Ad=[..._].sort((Y,na)=>Y.localeCompare(na)),yb=RS(n.message,Ad),Td=IS(ro,no,Ad,[...Object.keys(ce),...Object.keys(Je.values??{})]),vb=await hE({pmRoot:r,type:u,id:xe,settings:o,typeRegistry:a,author:v,extensionFieldNames:j,afterDocument:hb,beforeDocument:gb,historyMessage:yb,changedFields:Td,nowValue:g,similarityCandidate:{title:Zs,description:ea,body:no},allowDuplicate:n.allowDuplicate}),Cd=structuredClone(ro);p==="strict"&&_.has("dependencies")&&(Cd.dependencies=[]);let wb=Q_(xe,u,Et,i);return uh(u,at,z.values,B.values)&&Uu(`[pm] warning: ${u} '${xe}' has no deadline/reminder/event \u2014 it will not appear on the calendar. Add one via 'pm update ${xe} --deadline <ISO>' or 'pm update ${xe} --event "start=<ISO>,end=<ISO>"'.`),{item:Cd,changed_fields:Td,warnings:[...Vt,...vb],...Object.fromEntries([["parent_source",Vw],["next_transition",wb],["similarity_advisory",Ed]].filter(Y=>Y[1]!==void 0))}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="80ec599f-7198-5b07-bca2-253f85c137b7")}catch{}})();var jc=[...Rc,{canonical:"close-reason",aliases:["close_reason","close-reason"],optionKey:"closeReason",metadataKey:"close_reason"},...Oc,...cs],gE=(()=>{let e=new Map;for(let t of jc)for(let n of t.aliases)e.set(n,{optionKey:t.optionKey,metadataKey:t.metadataKey});return e})(),fs=new Map(jc.map(e=>[e.optionKey,e.canonical])),yE=jc.map(e=>e.canonical).sort((e,t)=>e.localeCompare(t)).join(", "),vE=new Set(["close_reason","assignee","parent","blocked_by","blocked_reason","unblock_note","dependencies","comments","notes","learnings","files","tests","docs","reminders","events"]),wE=Bi({depDisableFlagKey:"replaceDeps",fileDisableFlagKey:"replaceFiles",testDisableFlagKey:"replaceTests",docDisableFlagKey:"replaceDocs"});function wh(e){let t={...e,unset:e.unset?[...e.unset]:void 0},n=o=>{let i=t.unset?[...t.unset]:[];i.includes(o)||i.push(o),t.unset=i},r=new Set([...fs.keys(),"rank"]);for(let o of r){let i=t[o];if(typeof i!="string"||!Ve(i))continue;let s=o==="rank"?"order":fs.get(o)??o;n(s),t[o]=void 0}return Ae(e,Vi(t,wE))}function bh(e,t,n=[]){return ls({raw:e,supportedFields:yE,resolveDefinition:r=>{let o=n.find(s=>{let a=s.toLowerCase();return a===r||a.replaceAll("_","-")===r||a.replaceAll("-","_")===r});return gE.get(r)??ds(r,"update",t)??(o?{optionKey:"field",metadataKey:o}:void 0)}})}var ph=new Map([["--comment",e=>`pm comments ${e} --add "<text>" --force`],["--file",e=>`pm files ${e} --add "path=<path>,scope=<scope>,note=<note>" --force`],["--doc",e=>`pm docs ${e} --add "path=<path>,scope=<scope>,note=<note>" --force`]]);function fh(e){let t=e.disallowedFlags.flatMap(r=>{let o=ph.get(r);return o?[o(e.id)]:[]}),n=e.disallowedFlags.flatMap(r=>{let o=ph.get(r);return o?[`Replace ${r} with: ${o(e.id)}`]:[]});return new d(e.message,l.USAGE,{code:e.code,required:e.required,why:e.why,...t.length>0?{examples:t}:{},nextSteps:[`Re-run without: ${e.disallowedFlags.join(", ")}`,...n]})}function bE(e,t,n){let r=t.ownershipMetadataBypass===!0,o=t.ownershipDependencyBypass===!0;if(!r&&!o)return;if(r&&o)throw new d("Choose only one package-provided ownership bypass mode.",l.USAGE);let i=(c,m,u)=>{c&&u.push(m)};if(o){let c=[];if(i(t.title!==void 0,"--title",c),i(t.description!==void 0,"--description",c),i(t.body!==void 0,"--body",c),i(t.status!==void 0,"--status",c),i(t.closeReason!==void 0,"--close-reason",c),i(t.priority!==void 0,"--priority",c),i(t.type!==void 0,"--type",c),i(t.tags!==void 0,"--tags",c),i(Array.isArray(t.addTags)&&t.addTags.length>0,"--add-tags",c),i(Array.isArray(t.removeTags)&&t.removeTags.length>0,"--remove-tags",c),i(t.deadline!==void 0,"--deadline",c),i(t.estimatedMinutes!==void 0,"--estimate",c),i(t.acceptanceCriteria!==void 0,"--acceptance-criteria",c),i(Array.isArray(t.addAc)&&t.addAc.length>0,"--add-ac",c),i(Array.isArray(t.removeAc)&&t.removeAc.length>0,"--remove-ac",c),i(t.definitionOfReady!==void 0,"--definition-of-ready",c),i(t.order!==void 0||t.rank!==void 0,"--order/--rank",c),i(t.goal!==void 0,"--goal",c),i(t.objective!==void 0,"--objective",c),i(t.value!==void 0,"--value",c),i(t.impact!==void 0,"--impact",c),i(t.outcome!==void 0,"--outcome",c),i(t.whyNow!==void 0,"--why-now",c),i(t.assignee!==void 0,"--assignee",c),i(t.parent!==void 0,"--parent",c),i(t.reviewer!==void 0,"--reviewer",c),i(t.risk!==void 0,"--risk",c),i(t.confidence!==void 0,"--confidence",c),i(t.sprint!==void 0,"--sprint",c),i(t.release!==void 0,"--release",c),i(t.blockedBy!==void 0,"--blocked-by",c),i(t.blockedReason!==void 0,"--blocked-reason",c),i(t.unblockNote!==void 0,"--unblock-note",c),i(t.reporter!==void 0,"--reporter",c),i(t.severity!==void 0,"--severity",c),i(t.environment!==void 0,"--environment",c),i(t.reproSteps!==void 0,"--repro-steps",c),i(t.resolution!==void 0,"--resolution",c),i(t.expectedResult!==void 0,"--expected-result",c),i(t.actualResult!==void 0,"--actual-result",c),i(t.affectedVersion!==void 0,"--affected-version",c),i(t.fixedVersion!==void 0,"--fixed-version",c),i(t.component!==void 0,"--component",c),i(t.regression!==void 0,"--regression",c),i(t.customerImpact!==void 0,"--customer-impact",c),i(t.depRemove!==void 0,"--dep-remove",c),i(t.replaceDeps===!0,"--replace-deps",c),i(t.replaceTests===!0,"--replace-tests",c),i(t.replaceFiles===!0,"--replace-files",c),i(t.replaceDocs===!0,"--replace-docs",c),i(t.comment!==void 0,"--comment",c),i(t.note!==void 0,"--note",c),i(t.learning!==void 0,"--learning",c),i(t.file!==void 0,"--file",c),i(t.test!==void 0,"--test",c),i(t.doc!==void 0,"--doc",c),i(t.reminder!==void 0,"--reminder",c),i(t.event!==void 0,"--event",c),i(t.typeOption!==void 0,"--type-option",c),i(t.clearDeps===!0,"--clear-deps",c),i(t.clearComments===!0,"--clear-comments",c),i(t.clearNotes===!0,"--clear-notes",c),i(t.clearLearnings===!0,"--clear-learnings",c),i(t.clearFiles===!0,"--clear-files",c),i(t.clearTests===!0,"--clear-tests",c),i(t.clearDocs===!0,"--clear-docs",c),i(t.clearReminders===!0,"--clear-reminders",c),i(t.clearEvents===!0,"--clear-events",c),i(t.clearTypeOptions===!0,"--clear-type-options",c),i(t.force===!0,"--force",c),i(n.size>0,"--unset",c),t.dep===void 0||t.dep.length===0)throw new d("The dependency ownership bypass requires at least one --dep value",l.USAGE);if(c.length>0)throw fh({id:e,code:"ownership_dependency_bypass_restricted_options",message:`The dependency ownership bypass supports append-only dependency additions via --dep. Remove restricted options: ${c.join(", ")}`,required:"Pass only --dep additions (plus --message/--author) with the dependency ownership bypass.",why:"the dependency ownership bypass is a narrow non-owner override scoped to append-only dependency additions; every other mutation keeps its normal ownership rules.",disallowedFlags:c});return}let s=[];i(t.status!==void 0,"--status",s),i(t.closeReason!==void 0,"--close-reason",s),i(t.assignee!==void 0,"--assignee",s),i(t.parent!==void 0,"--parent",s),i(t.blockedBy!==void 0,"--blocked-by",s),i(t.blockedReason!==void 0,"--blocked-reason",s),i(t.unblockNote!==void 0,"--unblock-note",s),i(t.dep!==void 0,"--dep",s),i(t.depRemove!==void 0,"--dep-remove",s),i(t.replaceDeps===!0,"--replace-deps",s),i(t.replaceTests===!0,"--replace-tests",s),i(t.replaceFiles===!0,"--replace-files",s),i(t.replaceDocs===!0,"--replace-docs",s),i(t.note!==void 0,"--note",s),i(t.learning!==void 0,"--learning",s),i(t.test!==void 0,"--test",s),i(t.reminder!==void 0,"--reminder",s),i(t.event!==void 0,"--event",s),i(t.clearDeps===!0,"--clear-deps",s),i(t.clearComments===!0,"--clear-comments",s),i(t.clearNotes===!0,"--clear-notes",s),i(t.clearLearnings===!0,"--clear-learnings",s),i(t.clearFiles===!0,"--clear-files",s),i(t.clearTests===!0,"--clear-tests",s),i(t.clearDocs===!0,"--clear-docs",s),i(t.clearReminders===!0,"--clear-reminders",s),i(t.clearEvents===!0,"--clear-events",s);let a=[...n].filter(c=>vE.has(c)).sort((c,m)=>c.localeCompare(m)).map(c=>`--unset ${c.replaceAll("_","-")}`);if(s.push(...a),s.length>0)throw fh({id:e,code:"ownership_metadata_bypass_restricted_options",message:`The metadata ownership bypass only supports non-lifecycle metadata fields and evidence appends. Remove restricted options: ${s.join(", ")}`,required:"Limit the metadata ownership bypass to non-lifecycle metadata fields plus append-only --comment/--file/--doc evidence; route restricted appends and lifecycle changes through their dedicated commands.",why:"the metadata ownership bypass is a non-owner override scoped to metadata maintenance and append-only evidence; lifecycle, ownership, dependency mutations, restricted append fields, and clear/replace operations keep their normal ownership rules.",disallowedFlags:s})}function kE(e,t){let n=ee(e,t);if(!n){let r=t.definitions.map(o=>o.id);throw new d(`Invalid --status value "${e}". Allowed: ${r.join(", ")}`,l.USAGE)}return n}function SE(e){if(e.enforcement==="off"||e.typeWorkflows.length===0)return;let t=gu({typeName:e.typeName,fromStatus:e.fromStatus,toStatus:e.toStatus,typeWorkflows:e.typeWorkflows,statusRegistry:e.statusRegistry});if(!t.hasRule||t.allowed)return;let n=ee(e.fromStatus,e.statusRegistry)??e.fromStatus,r=ee(e.toStatus,e.statusRegistry)??e.toStatus,o=`Disallowed transition for type "${e.typeName}": ${n} -> ${r}. Allowed transitions: ${yu(t.allowedTransitions)}.`;if(e.enforcement==="strict")throw new d(o,l.USAGE);return`workflow_transition_not_allowed: ${o}`}function EE(e,t){return!e||e.trim()===""||e.trim().toLowerCase()==="now"?t:kh(e)}function kh(e){let t=Date.parse(e);if(!Number.isFinite(t))throw new d(`Invalid dependency created_at timestamp "${e}"`,l.USAGE);return new Date(t).toISOString()}function Bn(e){if(e===void 0)return;let t=e.trim();return t.length>0?t:void 0}var AE=["id","kind","type","author","created_at","source_kind"],TE=["id","kind","type","author","created_at","source_kind"];function Sh(e){return e.startsWith("```")||e.includes(`
6
6
  `)||/^(?:[-*+]\s+)?(?:id|kind|type|author|created_at|source_kind)\s*[:=]/i.test(e)?!0:ui(e)}function Eh(e){return typeof e=="string"?po(e)??e.trim():e}function hs(e,t,n,r){return e?(Ce(e,"--dep","Use --clear-deps to clear dependencies."),{additions:e.map(i=>{let s=i.trim(),a=Sh(s);$r(s,a);let c=a?le(i,"--dep"):{id:s,kind:"related"};a&&He(c,"--dep",AE);let m=c.id?.trim(),u=Eh((c.kind??c.type)?.trim());if(!m||!u)throw new d("--dep requires id and kind, or a bare item id to add a related dependency",l.USAGE);if(m.toLowerCase()==="undefined")throw new d(`--dep id must not use placeholder token "${m}". Use --clear-deps to clear dependencies.`,l.USAGE);let p=br(Bn(c.source_kind)),f=Bn(c.author);return{id:kr(m,t,p),kind:Ie(u,Wt,"dependency kind","kind"),created_at:EE(c.created_at,n),author:f??r,source_kind:p??"cli:update:dep",author_source:f?"asserted":"detected"}})}):{additions:[]}}function CE(e,t){return e?(Ce(e,"--dep-remove"),e.map(n=>{let r=n.trim();if(!r)throw new d("--dep-remove requires id or key/value selectors",l.USAGE);let o=Sh(r);if($r(r,o,"--dep-remove"),o){let i=le(r,"--dep-remove");He(i,"--dep-remove",TE);let s=i.id?.trim();if(!s)throw new d("--dep-remove key/value form requires id=<value>",l.USAGE);if(s.toLowerCase()==="undefined")throw new d(`--dep-remove id must not use placeholder token "${s}"`,l.USAGE);let a=Eh(Bn(i.kind??i.type)),c=br(Bn(i.source_kind)),m=Bn(i.author),u=Bn(i.created_at);return{id:kr(s,t,c),kind:a?Ie(a,Wt,"dependency kind","kind"):void 0,source_kind:c,author:m,created_at:u?kh(u):void 0}}if(r.toLowerCase()==="undefined")throw new d(`--dep-remove id must not use placeholder token "${r}"`,l.USAGE);return{id:je(r,t)}})):[]}function _s(e){let t=e.source_kind?.trim().toLowerCase()??"";return[e.id.trim().toLowerCase(),e.kind,t].join("\0")}function IE(e){let t=e.source_kind?.trim().toLowerCase()??"",n=e.author?.trim().toLowerCase()??"",r=e.created_at?.trim()??"",o=Date.parse(r),i=Number.isFinite(o)?new Date(o).toISOString():r;return[e.id.trim().toLowerCase(),e.kind,t,n,i].join("\0")}function RE(e,t,n,r){let o=[...e??[]],i=!1;if(t===void 0){let s=o.filter(a=>a.kind!=="blocked_by");return s.length!==o.length&&(o=s,i=!0),i?{dependencies:o.length>0?o:void 0,changed:!0}:{dependencies:e,changed:!1}}return o.some(s=>s.kind==="blocked_by"&&s.id===t)||(o.push({id:t,kind:"blocked_by",created_at:n,author:r,source_kind:"cli:update:blocked_by",author_source:"detected"}),i=!0),i?{dependencies:o.length>0?o:void 0,changed:!0}:{dependencies:e,changed:!1}}async function OE(e,t,n,r,o,i){if(e===void 0||t)return{};let s=e.trim();if(s.length===0)return{};let a=await q(n,je(s,r),r,o,i);return a?{id:a.id}:{unresolved:s}}function xE(e,t,n,r,o){let i=RE(e.dependencies,t,n,r);i.changed&&(i.dependencies===void 0?delete e.dependencies:e.dependencies=i.dependencies,o.includes("dependencies")||o.push("dependencies"))}function PE(e){return`${e.path}::${e.scope}`}function LE(e){return`${e.path}::${e.scope}`}function NE(e){return`${e.command}::${e.path??""}::${e.scope}::${e.pm_context_mode??""}::${e.workspace_context_mode??""}`}function Ah(e,t){return!(e.id.trim().toLowerCase()!==t.id.trim().toLowerCase()||t.kind&&e.kind!==t.kind||t.source_kind!==void 0&&e.source_kind?.trim().toLowerCase()!==t.source_kind.trim().toLowerCase()||t.author!==void 0&&e.author?.trim().toLowerCase()!==t.author.trim().toLowerCase()||t.created_at!==void 0&&(e.created_at===void 0||!Number.isFinite(Date.parse(e.created_at))||new Date(Date.parse(e.created_at)).toISOString()!==t.created_at))}function _h(e,t){let n=tr("update",e);if(!n)throw new d(`Unsupported command_option_policies option "${e}" for update command on type "${t}"`,l.CONFLICT);return n}function $E(e,t,n){let r=new Set,o=(i,s)=>{s&&r.add(i)};if(o("title",e.title!==void 0),o("description",e.description!==void 0),o("body",e.body!==void 0),o("status",e.status!==void 0),o("closeReason",e.closeReason!==void 0),o("priority",e.priority!==void 0),o("type",e.type!==void 0),o("tags",e.tags!==void 0||Array.isArray(e.addTags)&&e.addTags.length>0||Array.isArray(e.removeTags)&&e.removeTags.length>0),o("deadline",e.deadline!==void 0),o("estimatedMinutes",e.estimatedMinutes!==void 0),o("acceptanceCriteria",e.acceptanceCriteria!==void 0||Array.isArray(e.addAc)&&e.addAc.length>0||Array.isArray(e.removeAc)&&e.removeAc.length>0),o("definitionOfReady",e.definitionOfReady!==void 0),o("order",e.order!==void 0||e.rank!==void 0),o("goal",e.goal!==void 0),o("objective",e.objective!==void 0),o("value",e.value!==void 0),o("impact",e.impact!==void 0),o("outcome",e.outcome!==void 0),o("whyNow",e.whyNow!==void 0),o("author",e.author!==void 0),o("message",e.message!==void 0),o("assignee",e.assignee!==void 0),o("parent",e.parent!==void 0),o("reviewer",e.reviewer!==void 0),o("risk",e.risk!==void 0),o("confidence",e.confidence!==void 0),o("sprint",e.sprint!==void 0),o("release",e.release!==void 0),o("blockedBy",e.blockedBy!==void 0),o("blockedReason",e.blockedReason!==void 0),o("unblockNote",e.unblockNote!==void 0),o("reporter",e.reporter!==void 0),o("severity",e.severity!==void 0),o("environment",e.environment!==void 0),o("reproSteps",e.reproSteps!==void 0),o("resolution",e.resolution!==void 0),o("expectedResult",e.expectedResult!==void 0),o("actualResult",e.actualResult!==void 0),o("affectedVersion",e.affectedVersion!==void 0),o("fixedVersion",e.fixedVersion!==void 0),o("component",e.component!==void 0),o("regression",e.regression!==void 0),o("customerImpact",e.customerImpact!==void 0),o("dep",e.dep!==void 0),o("depRemove",e.depRemove!==void 0),o("dep",e.replaceDeps===!0),o("comment",e.comment!==void 0),o("note",e.note!==void 0),o("learning",e.learning!==void 0),o("file",e.file!==void 0),o("test",e.test!==void 0),o("test",e.replaceTests===!0),o("file",e.replaceFiles===!0),o("doc",e.replaceDocs===!0),o("doc",e.doc!==void 0),o("reminder",e.reminder!==void 0),o("event",e.event!==void 0),o("typeOption",e.typeOption!==void 0),o("field",e.field!==void 0),o("force",e.force===!0),o("ownershipMetadataBypass",e.ownershipMetadataBypass===!0),o("ownershipDependencyBypass",e.ownershipDependencyBypass===!0),o("dep",e.clearDeps===!0),o("comment",e.clearComments===!0),o("note",e.clearNotes===!0),o("learning",e.clearLearnings===!0),o("file",e.clearFiles===!0),o("test",e.clearTests===!0),o("doc",e.clearDocs===!0),o("reminder",e.clearReminders===!0),o("event",e.clearEvents===!0),o("typeOption",e.clearTypeOptions===!0),e.unset&&e.unset.length>0){let i=bh(e.unset,t,n);for(let s of i.optionKeys)o(s,!0)}return r}function ME(e,t,n,r,o){let i=mo(e,n);if(!i)throw new d(`Invalid type value "${e}"`,l.USAGE);let s=kn(i,"update",[]);if(s.errors.length>0)throw new d(s.errors.join("; "),l.CONFLICT);let a=$E(t,r,o);for(let c of s.disabled)if(a.has(_h(c,e)))throw new d(`Option ${ke("update",c)} is disabled for type "${e}" by command_option_policies`,l.USAGE);for(let c of s.required)if(!a.has(_h(c,e)))throw new d(`Missing required option ${ke("update",c)} for type "${e}"`,l.USAGE)}var FE=new Set(["order","rank"]),DE=ma.filter(e=>!FE.has(e)),Th=["tags","closeReason",...DE],UE=["title","description","body","status","closeReason","completedAt","priority","type",...ma,"dep","depRemove","comment","note","learning","file","test","doc","reminder","event","typeOption","field"],GE=[{optionKey:"deadline",metadataKey:"deadline",transform:(e,t)=>oe(e,t.nowValue,"deadline")},{optionKey:"estimatedMinutes",metadataKey:"estimated_minutes",transform:e=>Nn(e,"estimated-minutes")},{optionKey:"acceptanceCriteria",metadataKey:"acceptance_criteria",transform:e=>e},{optionKey:"definitionOfReady",metadataKey:"definition_of_ready"},{optionKey:"goal",metadataKey:"goal"},{optionKey:"objective",metadataKey:"objective"},{optionKey:"value",metadataKey:"value"},{optionKey:"impact",metadataKey:"impact"},{optionKey:"outcome",metadataKey:"outcome"},{optionKey:"whyNow",metadataKey:"why_now"}],jE=[{optionKey:"reviewer",metadataKey:"reviewer"},{optionKey:"risk",metadataKey:"risk",transform:e=>Ie(ji(e),vn,"risk")},{optionKey:"confidence",metadataKey:"confidence",transform:e=>Ki(e)}],qE=[{optionKey:"blockedReason",metadataKey:"blocked_reason"},{optionKey:"unblockNote",metadataKey:"unblock_note"},{optionKey:"reporter",metadataKey:"reporter"},{optionKey:"severity",metadataKey:"severity",transform:e=>Ie(qi(e),wn,"severity")},{optionKey:"environment",metadataKey:"environment"},{optionKey:"reproSteps",metadataKey:"repro_steps"},{optionKey:"resolution",metadataKey:"resolution"},{optionKey:"expectedResult",metadataKey:"expected_result"},{optionKey:"actualResult",metadataKey:"actual_result"},{optionKey:"affectedVersion",metadataKey:"affected_version"},{optionKey:"fixedVersion",metadataKey:"fixed_version"},{optionKey:"component",metadataKey:"component"},{optionKey:"regression",metadataKey:"regression",transform:e=>zi(e)},{optionKey:"customerImpact",metadataKey:"customer_impact"}];function Gc(e,t,n){for(let r of e){let o=t[r.optionKey],i=n.clearItemMetadataKeys.has(r.metadataKey);if(!(o===void 0&&!i)){if(i){delete n.metadataRecord[r.metadataKey],n.changedFields.push(r.metadataKey);continue}if(typeof o!="string")throw new d(`${ke("update",String(r.optionKey))} must be a string value`,l.USAGE);n.metadataRecord[r.metadataKey]=r.transform?r.transform(o,n):o.trim(),n.changedFields.push(r.metadataKey)}}}async function KE(e){return wh(await pi(e,[["body","--body"],["description","--description"]],[["dep","--dep"],["depRemove","--dep-remove"],["comment","--comment"],["note","--note"],["learning","--learning"],["file","--file"],["test","--test"],["doc","--doc"],["reminder","--reminder"],["event","--event"],["typeOption","--type-option"],["field","--field"]]))}async function qc(e){return ht(e)?await KE(e):wh(e)}function zE(e){return[{enabled:e.clearDeps||e.replaceDeps,optionKey:"dep",clearFlag:"--clear-deps",valueFlag:"--dep",values:e.dep,metadataKey:"dependencies"},{enabled:e.clearComments,optionKey:"comment",clearFlag:"--clear-comments",valueFlag:"--comment",values:e.comment,metadataKey:"comments"},{enabled:e.clearNotes,optionKey:"note",clearFlag:"--clear-notes",valueFlag:"--note",values:e.note,metadataKey:"notes"},{enabled:e.clearLearnings,optionKey:"learning",clearFlag:"--clear-learnings",valueFlag:"--learning",values:e.learning,metadataKey:"learnings"},{enabled:e.clearFiles||e.replaceFiles,optionKey:"file",clearFlag:"--clear-files",valueFlag:"--file",values:e.file,metadataKey:"files"},{enabled:e.clearTests||e.replaceTests,optionKey:"test",clearFlag:"--clear-tests",valueFlag:"--test",values:e.test,metadataKey:"tests"},{enabled:e.clearDocs||e.replaceDocs,optionKey:"doc",clearFlag:"--clear-docs",valueFlag:"--doc",values:e.doc,metadataKey:"docs"},{enabled:e.clearReminders,optionKey:"reminder",clearFlag:"--clear-reminders",valueFlag:"--reminder",values:e.reminder,metadataKey:"reminders"},{enabled:e.clearEvents,optionKey:"event",clearFlag:"--clear-events",valueFlag:"--event",values:e.event,metadataKey:"events"},{enabled:e.clearTypeOptions,optionKey:"typeOption",clearFlag:"--clear-type-options",valueFlag:"--type-option",values:e.typeOption,metadataKey:"type_options"}]}function Dc(e){if(e.enabled&&(!e.values||e.values.length===0))throw new d(`${e.replaceFlag} requires at least one ${e.valueFlag} entry`,l.USAGE);if(e.enabled&&e.clearEnabled)throw new d(`${e.replaceFlag} cannot be combined with ${e.clearFlag}`,l.USAGE)}function Kc(e){let t=(e.addAc?.length??0)>0||(e.removeAc?.length??0)>0;if(e.acceptanceCriteria!==void 0&&t)throw new d("Cannot combine --acceptance-criteria replacement with --add-ac or --remove-ac. Use --remove-ac and --add-ac together for an atomic one-entry repair.",l.USAGE,{code:"acceptance_criteria_mutation_conflict",reason:"replacement_and_additive_mutation_combined",nextSteps:["Use --acceptance-criteria alone to replace the complete list.","Use --remove-ac <old> --add-ac <new> to repair one criterion without replacing unrelated entries."]});if(e.replaceDeps===!0&&(e.dep===void 0||e.dep.length===0))throw new d("--replace-deps requires at least one --dep entry",l.USAGE);if(e.replaceDeps===!0&&e.depRemove!==void 0&&e.depRemove.length>0)throw new d("--replace-deps cannot be combined with --dep-remove",l.USAGE);Dc({enabled:e.replaceTests===!0,values:e.test,replaceFlag:"--replace-tests",clearEnabled:e.clearTests===!0,clearFlag:"--clear-tests",valueFlag:"--test"}),Dc({enabled:e.replaceFiles===!0,values:e.file,replaceFlag:"--replace-files",clearEnabled:e.clearFiles===!0,clearFlag:"--clear-files",valueFlag:"--file"}),Dc({enabled:e.replaceDocs===!0,values:e.doc,replaceFlag:"--replace-docs",clearEnabled:e.clearDocs===!0,clearFlag:"--clear-docs",valueFlag:"--doc"})}function BE(e){for(let t of e.definitions){if(!t.enabled)continue;let n=t.optionKey==="dep"&&e.options.replaceDeps===!0||t.optionKey==="test"&&e.options.replaceTests===!0||t.optionKey==="file"&&e.options.replaceFiles===!0||t.optionKey==="doc"&&e.options.replaceDocs===!0;if(t.values&&t.values.length>0&&!n)throw new d(`Cannot combine ${t.clearFlag} with ${t.valueFlag}`,l.USAGE);e.clearOptionKeys.add(t.optionKey),e.clearItemMetadataKeys.add(t.metadataKey)}}function HE(e){let t={};for(let n of Th)t[String(n)]=e[n]!==void 0;return t.order=e.order!==void 0||e.rank!==void 0,t}function VE(e,t){let n=HE(e);for(let[r,o]of Object.entries(n)){if(!o||!t.optionKeys.has(r))continue;let i=fs.get(r)??r;throw new d(`Cannot combine --unset ${i} with ${ke("update",r)}`,l.USAGE)}if(t.metadataKeys.has("acceptance_criteria")){if(Array.isArray(e.addAc)&&e.addAc.length>0)throw new d("Cannot combine --unset acceptance-criteria with --add-ac",l.USAGE);if(Array.isArray(e.removeAc)&&e.removeAc.length>0)throw new d("Cannot combine --unset acceptance-criteria with --remove-ac",l.USAGE)}if(t.metadataKeys.has("tags")){if(Array.isArray(e.addTags)&&e.addTags.length>0)throw new d("Cannot combine --unset tags with --add-tags",l.USAGE);if(Array.isArray(e.removeTags)&&e.removeTags.length>0)throw new d("Cannot combine --unset tags with --remove-tags",l.USAGE)}}function WE(e){let t=(n,r)=>{let o=fs.get(r),i=o?`Use --unset ${o} to clear this field.`:void 0;Hi(n,ke("update",r),i)};for(let n of Th)t(e[n],String(n));t(e.order??e.rank,"order"),Ce(e.reminder,"--reminder","Use --clear-reminders to clear reminders."),Ce(e.event,"--event","Use --clear-events to clear linked events.")}function YE(e,t){let n={};for(let r of UE)n[String(r)]=e[r]!==void 0;return n.tags=e.tags!==void 0,n.addTags=Array.isArray(e.addTags)&&e.addTags.length>0,n.removeTags=Array.isArray(e.removeTags)&&e.removeTags.length>0,n.addAc=Array.isArray(e.addAc)&&e.addAc.length>0,n.removeAc=Array.isArray(e.removeAc)&&e.removeAc.length>0,n.order=e.order!==void 0,n.rank=e.rank!==void 0,n.replaceDeps=e.replaceDeps===!0,n.replaceTests=e.replaceTests===!0,n.replaceFiles=e.replaceFiles===!0,n.replaceDocs=e.replaceDocs===!0,n.unset=e.unset!==void 0&&e.unset.length>0,n.clearDeps=e.clearDeps===!0,n.clearComments=e.clearComments===!0,n.clearNotes=e.clearNotes===!0,n.clearLearnings=e.clearLearnings===!0,n.clearFiles=e.clearFiles===!0,n.clearTests=e.clearTests===!0,n.clearDocs=e.clearDocs===!0,n.clearReminders=e.clearReminders===!0,n.clearEvents=e.clearEvents===!0,n.clearTypeOptions=e.clearTypeOptions===!0,n.runtimeFields=Object.keys(t).length>0,n}async function JE(e){let t=await q(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,e.typeRegistry.type_to_folder);if(!t)throw await _t(e.pmRoot,e.id,e.settings.id_prefix,e.typeRegistry.type_to_folder);let{document:n}=await ie(t,{schema:e.settings.schema});return{item:n.metadata,changed_fields:[],warnings:["noop_no_update_fields"]}}async function XE(e){if(!(!e.fieldFlags.dep&&!e.fieldFlags.blockedBy&&!e.fieldFlags.parent&&!e.clearedMetadataKeys.has("parent")))return fe(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}function QE(e){e.before&&ki(e.before,e.before.map(t=>t.id===e.document.metadata.id?e.document.metadata:t),e.document.metadata.id,t=>ne(t,e.statusRegistry),Ut())}function ZE(e){if(e.order!==void 0&&e.rank!==void 0&&e.order!==e.rank)throw new d("--order and --rank must match when both are provided",l.USAGE)}async function eA(e){if(e.options.parent===void 0||e.unsetTargets.metadataKeys.has("parent"))return{resolvedParentValue:void 0,warnings:[]};let t=bi(gi(e.options.parent),e.settings.id_prefix);if(Qo(t))return{resolvedParentValue:t,warnings:[]};if(vi(e.id,t,e.settings.id_prefix),await q(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeRegistry.type_to_folder))return{resolvedParentValue:t,warnings:[]};let r=je(t,e.settings.id_prefix);return{resolvedParentValue:t,warnings:yi(r,e.parentReferencePolicy).warnings}}function tA(e){return e.unresolved===void 0?[]:[`blocked_by_unresolved:${e.unresolved}`]}async function nA(e){if(e.workflowEnforcement==="off"||e.typeWorkflows.length===0||!e.fieldFlags.status||e.options.status===void 0)return[];let t=await q(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,e.typeRegistry.type_to_folder);if(!t)throw await _t(e.pmRoot,e.id,e.settings.id_prefix,e.typeRegistry.type_to_folder);let{document:n}=await ie(t,{schema:e.settings.schema}),r=e.options.type!==void 0?we(e.options.type,e.typeRegistry)??e.options.type:n.metadata?.type??"",o=SE({enforcement:e.workflowEnforcement,typeWorkflows:e.typeWorkflows,statusRegistry:e.statusRegistry,typeName:r,fromStatus:n.metadata?.status??"",toStatus:e.options.status});return o?[o]:[]}async function rA(e){if(!e.fieldFlags.status||ee(e.options.status,e.statusRegistry)!==e.statusRegistry.close_status)return;let n=Object.entries(e.fieldFlags).filter(([a,c])=>c&&a!=="status"&&a!=="closeReason"&&a!=="completedAt").map(([a])=>a),r=[],o=[];if(n.length>0){let a=Ae(e.options,{...e.options,status:void 0,closeReason:void 0,message:void 0}),c=await rt(e.id,a,e.global);o=c.changed_fields,r.push(...c.warnings)}let i=await yt(e.id,e.options.closeReason,{author:e.options.author,message:e.options.message,force:e.options.force,completedAt:e.options.completedAt},e.global),s=[...e.workflowTransitionWarnings,...r,...i.warnings,"auto_routed_from_update_to_close"];return{item:i.item,changed_fields:[...o,...i.changed_fields],warnings:s}}function oA(e,t,n,r){return t.title!==void 0&&(e.metadata.title=Fc(t.title,"--title"),r.push("title")),t.description!==void 0&&(e.metadata.description=t.description,r.push("description")),t.body!==void 0&&(e.body=t.body,r.push("body")),ee(e.metadata.status,n)??e.metadata.status}var iA=["closed_at","completed_at","close_reason","resolution","expected_result","actual_result","fixed_version"];function sA(e,t){for(let n of iA)e[n]!==void 0&&(delete e[n],t.push(n))}function aA(e,t,n,r,o){let i=kE(n,t.statusRegistry);if(e.metadata.status=i,o.push("status"),i===t.statusRegistry.close_status&&(e.metadata.closed_at===void 0||e.metadata.closed_at===null)){e.metadata.closed_at=t.nowIso,e.metadata.completed_at=t.nowIso,o.push("closed_at","completed_at");return}!ne(i,t.statusRegistry)&&ne(r,t.statusRegistry)&&sA(e.metadata,o)}function cA(e,t,n,r){if(t.options.status!==void 0&&aA(e,t,t.options.status,n,r),t.options.completedAt!==void 0){if(!ne(e.metadata.status,t.statusRegistry))throw new d("--completed-at can only be set on a terminal item",l.USAGE);e.metadata.completed_at=oe(t.options.completedAt,new Date(t.nowIso),"completed-at"),r.push("completed_at")}}function lA(e,t,n,r){if(t.options.closeReason!==void 0||t.clearItemMetadataKeys.has("close_reason")){if(t.clearItemMetadataKeys.has("close_reason"))delete e.metadata.close_reason;else{let o=t.options.closeReason?.trim()??"";if(o.length===0)throw new d("--close-reason must not be empty",l.USAGE);e.metadata.close_reason=o}r.push("close_reason");return}t.options.status!==void 0&&ne(n,t.statusRegistry)&&!ne(e.metadata.status,t.statusRegistry)&&e.metadata.close_reason!==void 0&&(delete e.metadata.close_reason,r.push("close_reason"))}function dA(e,t,n,r){cA(e,t,n,r),lA(e,t,n,r)}function mA(e,t,n){let r=we(e.metadata.type,t.typeRegistry)??e.metadata.type;if(t.options.priority!==void 0&&(e.metadata.priority=$n(t.options.priority),n.push("priority")),t.options.type!==void 0){let o=we(t.options.type,t.typeRegistry);if(!o)throw new d(xt(t.options.type,t.typeRegistry.types,Pt(t.pmRoot,t.settings.schema)),l.USAGE);e.metadata.type=o,r=o,n.push("type")}return ME(r,t.options,t.typeRegistry,t.runtimeFieldRegistry,t.extensionFieldNames),uA(e,t,r,n),r}function uA(e,t,n,r){if(t.options.typeOption!==void 0||t.clearItemMetadataKeys.has("type_options")){if(t.clearItemMetadataKeys.has("type_options"))delete e.metadata.type_options;else{let i=Ji(t.options.typeOption??[]),s=nr(n,i,t.typeRegistry);if(s.errors.length>0)throw new d(s.errors.join("; "),l.USAGE);e.metadata.type_options=s.normalized}r.push("type_options");return}if(t.options.type===void 0||e.metadata.type_options===void 0)return;let o=nr(n,e.metadata.type_options,t.typeRegistry);if(o.errors.length>0)throw new d(`Current type options are incompatible with type "${n}". ${o.errors.join("; ")}. Use --clear-type-options to clear them.`,l.USAGE);e.metadata.type_options=o.normalized}function pA(e,t){let n=new Set(t.map(o=>_s(o))),r=new Set;return e.filter(o=>{if(!n.has(_s(o)))return!0;let i=IE(o);return r.has(i)?!1:(r.add(i),!0)})}function fA(e,t,n){let r=t.filter(o=>!e.some(i=>Ah(i,o)));if(r.length!==0)throw new d(`Dependency removal did not match ${r.length===1?"a stored edge":"stored edges"}.`,l.NOT_FOUND,{code:"dependency_remove_no_match",reason:"selector_not_found",unmatched_selectors:r,available_dependencies:e.map(o=>({id:o.id,kind:o.kind,source_kind:o.source_kind,author:o.author,created_at:o.created_at})),why:"Failing on a zero-match selector prevents a mistyped dependency removal from being reported as successful.",nextSteps:[`Inspect the current item with: pm get ${n} --full`,"Retry --dep-remove with the exact id plus any kind, source_kind, author, or created_at selectors needed to identify one stored row."]})}function _A(e,t,n){if(t.options.dep===void 0&&t.options.depRemove===void 0&&!t.clearItemMetadataKeys.has("dependencies"))return;let r=t.clearItemMetadataKeys.has("dependencies")?[]:[...e.metadata.dependencies??[]];if(t.dependencyUpdates.additions.length>0){r=pA(r,t.dependencyUpdates.additions);let o=new Set(r.map(i=>_s(i)));for(let i of t.dependencyUpdates.additions){let s=_s(i);o.has(s)||(r.push(i),o.add(s))}}t.dependencyRemovals.length>0&&(fA(r,t.dependencyRemovals,e.metadata.id),r=r.filter(o=>!t.dependencyRemovals.some(i=>Ah(o,i)))),r.length===0?delete e.metadata.dependencies:e.metadata.dependencies=r,n.push("dependencies")}function hA(e,t,n){Uc(e,"comments",t.options.comment,t.commentUpdates.values,t.clearItemMetadataKeys,n),Uc(e,"notes",t.options.note,t.noteUpdates.values,t.clearItemMetadataKeys,n),Uc(e,"learnings",t.options.learning,t.learningUpdates.values,t.clearItemMetadataKeys,n)}function Uc(e,t,n,r,o,i){n===void 0&&!o.has(t)||(o.has(t)||!r||r.length===0?delete e.metadata[t]:e.metadata[t]=[...e.metadata[t]??[],...r],i.push(t))}function gA(e,t,n){hh(e,"files",t.options.file,t.fileUpdates.values,PE,t.options.replaceFiles===!0,t.clearItemMetadataKeys,n),yA(e,t,n),hh(e,"docs",t.options.doc,t.docUpdates.values,LE,t.options.replaceDocs===!0,t.clearItemMetadataKeys,n)}function hh(e,t,n,r,o,i,s,a){if(!(n===void 0&&!s.has(t))){if(i)e.metadata[t]=r;else if(s.has(t)||!r||r.length===0)delete e.metadata[t];else{let c=[...e.metadata[t]??[]],m=new Set(c.map(u=>o(u)));for(let u of r){let p=o(u);m.has(p)||(c.push(u),m.add(p))}e.metadata[t]=c}a.push(t)}}function yA(e,t,n){t.options.test===void 0&&!t.clearItemMetadataKeys.has("tests")||(t.clearItemMetadataKeys.has("tests")&&t.options.replaceTests===!0?e.metadata.tests=gh(t.testUpdates.values)??[]:t.clearItemMetadataKeys.has("tests")||!t.testUpdates.values||t.testUpdates.values.length===0?delete e.metadata.tests:e.metadata.tests=gh([...e.metadata.tests??[],...t.testUpdates.values]),e.metadata.tests!==void 0&&e.metadata.tests.length===0&&delete e.metadata.tests,n.push("tests"))}function gh(e){if(!e||e.length===0)return;let t=[],n=new Set;for(let r of e){let o=NE(r);n.has(o)||(t.push(r),n.add(o))}return t}function vA(e,t,n){let r=t.options.addTags,o=t.options.removeTags,i=Array.isArray(r)&&r.length>0||Array.isArray(o)&&o.length>0;if(t.options.tags!==void 0||t.clearItemMetadataKeys.has("tags")||i){let s=t.clearItemMetadataKeys.has("tags")?[]:t.options.tags!==void 0?Ft(t.options.tags):Array.isArray(e.metadata.tags)?[...e.metadata.tags]:[];e.metadata.tags=mi(Ln(s,r),o),n.changedFields.push("tags")}Gc(GE,t.options,n),bA(e,t,n.changedFields)}function wA(e,t,n){let r=t.options.addAc,o=t.options.removeAc;if(!(Array.isArray(r)&&r.length>0)&&!(Array.isArray(o)&&o.length>0))return;let i=di(Pn(e.metadata.acceptance_criteria),r,o);if(i.unmatchedRemovals.length>0)throw new d(`Acceptance criteria removal did not match: ${i.unmatchedRemovals.join(", ")}`,l.NOT_FOUND,{code:"acceptance_criteria_remove_unmatched",reason:"exact_match_not_found",field:"acceptance_criteria",unmatched:i.unmatchedRemovals,why:"Lossless removal fails instead of silently applying the remaining mutations when an exact selector is wrong.",nextSteps:["Read the current acceptance_criteria value and retry with the exact criterion text.","Use --acceptance-criteria alone only when replacing the complete list is intentional."]});let s=i.criteria.join("; ");e.metadata.acceptance_criteria!==s&&(s===""&&e.metadata.acceptance_criteria===void 0||(e.metadata.acceptance_criteria=s,n.changedFields.includes("acceptance_criteria")||n.changedFields.push("acceptance_criteria")))}function bA(e,t,n){let r=t.options.order??t.options.rank;if(!(r===void 0&&!t.clearItemMetadataKeys.has("order"))){if(t.clearItemMetadataKeys.has("order"))delete e.metadata.order;else{let o=_e(r??"","order");if(!Number.isInteger(o))throw new d("Order must be an integer",l.USAGE);e.metadata.order=o}n.push("order")}}function kA(e,t,n,r){SA(e,t,n.changedFields),EA(e,t,n.changedFields),Gc(jE,t.options,n),yh(e,t,"sprint",r,n.changedFields),yh(e,t,"release",r,n.changedFields),AA(e,t,n.changedFields),Gc(qE,t.options,n)}function SA(e,t,n){if(!(t.options.assignee===void 0&&!t.clearItemMetadataKeys.has("assignee"))){if(t.clearItemMetadataKeys.has("assignee"))delete e.metadata.assignee;else{let r=t.options.assignee?.trim()??"";if(r==="")throw new d("--assignee must not be empty. Use --unset assignee to clear it.",l.USAGE);e.metadata.assignee=r}n.push("assignee")}}function EA(e,t,n){t.options.parent===void 0&&!t.clearItemMetadataKeys.has("parent")||(t.clearItemMetadataKeys.has("parent")?delete e.metadata.parent:e.metadata.parent=t.resolvedParentValue??"",n.push("parent"))}function yh(e,t,n,r,o){if(!(t.options[n]===void 0&&!t.clearItemMetadataKeys.has(n))){if(t.clearItemMetadataKeys.has(n))delete e.metadata[n];else{let i=wi(n,t.options[n]??"",t.settings.validation.sprint_release_format);e.metadata[n]=i.value,r.push(...i.warnings)}o.push(n)}}function AA(e,t,n){t.options.blockedBy===void 0&&!t.clearItemMetadataKeys.has("blocked_by")||(t.clearItemMetadataKeys.has("blocked_by")?delete e.metadata.blocked_by:e.metadata.blocked_by=t.options.blockedBy?.trim()??"",n.push("blocked_by"),(t.clearItemMetadataKeys.has("blocked_by")||t.resolvedBlockedByDependencyId!==void 0)&&xE(e.metadata,t.resolvedBlockedByDependencyId,t.nowIso,t.author,n))}function TA(e,t,n){(t.options.reminder!==void 0||t.clearItemMetadataKeys.has("reminders"))&&(t.clearItemMetadataKeys.has("reminders")?delete e.metadata.reminders:e.metadata.reminders=Wi(t.options.reminder??[],t.nowValue,{valueMode:"trimmed"}),n.push("reminders")),(t.options.event!==void 0||t.clearItemMetadataKeys.has("events"))&&(t.clearItemMetadataKeys.has("events")?delete e.metadata.events:e.metadata.events=Yi(t.options.event??[],t.nowValue,{allDayEmptyGuard:"truthy",recurrenceEmptyNumericGuard:"truthy"}),n.push("events"))}function CA(e,t,n){vh(e,t.runtimeFieldRegistry.definitions.map(o=>o.metadata_key),t.clearItemMetadataKeys,n),vh(e,t.extensionFieldNames,t.clearItemMetadataKeys,n);for(let[o,i]of Object.entries(t.runtimeFieldUpdates)){if(t.clearItemMetadataKeys.has(o)){let s=o.replaceAll("_","-"),c=t.runtimeFieldRegistry.definitions.find(m=>m.metadata_key===o)?.cli_flag??s;throw new d(`Cannot combine --unset ${s} with --${c}`,l.USAGE)}mt(e[o],i)||(e[o]=i,n.push(o))}let r=co(t.options.field,t.extensionRegistrations);for(let o of Object.keys(r))if(t.clearItemMetadataKeys.has(o))throw new d(`Cannot combine --unset ${o.replaceAll("_","-")} with --field ${o}=...`,l.USAGE);for(let[o,i]of Object.entries(r))mt(e[o],i)||(e[o]=i,n.push(o))}function vh(e,t,n,r){for(let o of t)!n.has(o)||e[o]===void 0||(delete e[o],r.push(o))}function IA(e,t){let n=structuredClone(e.metadata),r=e.body,o=[],i=[],s=oA(e,t.options,t.statusRegistry,o),a=e.metadata,c={metadataRecord:a,clearItemMetadataKeys:t.clearItemMetadataKeys,changedFields:o,nowValue:t.nowValue};dA(e,t,s,o),mA(e,t,o),_A(e,t,o),hA(e,t,o),gA(e,t,o),vA(e,t,c),wA(e,t,c),kA(e,t,c,i),(t.options.dep!==void 0||t.options.depRemove!==void 0||t.options.blockedBy!==void 0||t.clearItemMetadataKeys.has("dependencies")||t.clearItemMetadataKeys.has("blocked_by"))&&Mr(e.metadata.id,e.metadata.dependencies),ee(e.metadata.status,t.statusRegistry)===t.statusRegistry.canceled_status&&e.metadata.assignee!==void 0&&(delete e.metadata.assignee,o.includes("assignee")||o.push("assignee")),TA(e,t,o),CA(a,t,o);try{lo(a,t.extensionRegistrations,{skipDefaultFields:t.clearItemMetadataKeys})}catch(p){throw new d(p instanceof Error?p.message:"Invalid extension item field values",l.USAGE)}let m=e.metadata,u=[...new Set(o)].filter(p=>p==="body"?e.body!==r:!mt(n[p],m[p]));return t.options.acceptanceCriteria!==void 0&&u.includes("acceptance_criteria")&&i.push(`acceptance_criteria_replaced:${Pn(n.acceptance_criteria).length}:${Pn(m.acceptance_criteria).length}`),{changedFields:u,warnings:i}}async function Ch(e,t,n,r={}){t=await qc(t);let o=E(process.cwd(),n.path);await I(o);let i=await A(o),s=F(i.schema),a=Ze(i.schema),c=O(),m=Ct(c),u=x(i,c),p=i.governance.workflow_enforcement??"off",f=p==="off"?[]:hu(i.schema),_=[{strict_error:"strict_error",warn:"warn",off:"off"},{strict_error:"warn",warn:"warn",off:"off"}][+(t.allowMissingParent===!0)][i.validation.parent_reference],h=bh(t.unset,a,m),y=new Set(h.optionKeys),g=new Set(h.metadataKeys);Kc(t),BE({definitions:zE(t),options:t,clearOptionKeys:y,clearItemMetadataKeys:g}),bE(e,t,g),VE(t,h),WE(t);let v=C(t.author,i.author_default),b=new Date,k=b.toISOString(),T=hs(t.dep,i.id_prefix,k,v);Mr(e,T.additions);let R=await rn({pmRoot:o,dependencies:T.additions,idPrefix:i.id_prefix,itemFormat:i.item_format,typeToFolder:u.type_to_folder,allowUnresolved:t.allowUnresolvedDeps,holders:[{id:e}],schema:i.schema}),$=CE(t.depRemove,i.id_prefix),M=mn("--comment",t.comment,k,v),K=t.ownershipMetadataBypass===!0&&M.values?{...M,values:M.values.map(Ue=>({...Ue,author:v}))}:M,z=mn("--note",t.note,k,v),B=mn("--learning",t.learning,k,v),ue=Nc(t.file),re=$c(t.test);re.values=await Gn(re.values,v,k);let ze=Mc(t.doc),j=[],ce=await eA({id:e,options:t,unsetTargets:h,pmRoot:o,settings:i,typeRegistry:u,parentReferencePolicy:_}),Je=await OE(t.blockedBy,g.has("blocked_by"),o,i.id_prefix,i.item_format,u.type_to_folder),Zn=Je.id,Vs=[...ce.warnings,...tA(Je)],er=ri(t,a,t.runtimeFieldCommands),Ht=YE(t,er);if(!Object.values(Ht).some(Boolean))return JE({pmRoot:o,id:e,settings:i,typeRegistry:u});j.push(...await nA({options:t,fieldFlags:Ht,workflowEnforcement:p,typeWorkflows:f,statusRegistry:s,typeRegistry:u,pmRoot:o,id:e,settings:i}));let xe=await rA({options:t,fieldFlags:Ht,statusRegistry:s,workflowTransitionWarnings:j,global:n,id:e});if(xe)return xe;ZE(t);let Et=Ut(),Ws=Ht.parent&&!g.has("parent")||T.additions.some(Ue=>Et.resolve(Ue.kind)?.hierarchy),P=await Xi({pmRoot:o,author:v,ttlSeconds:i.locks.ttl_seconds,waitMs:i.locks.wait_ms,required:Ws});try{let Ue=await XE({fieldFlags:Ht,clearedMetadataKeys:g,pmRoot:o,settings:i,typeToFolder:u.type_to_folder}),at,eo,At=await Np({pmRoot:o,settings:i,typeToFolder:u.type_to_folder,id:e,op:RA(t,r),author:v,message:t.message,resolveHistoryContext:()=>eo,force:t.force,bypassAssigneeConflict:t.ownershipMetadataBypass===!0||t.ownershipDependencyBypass===!0,extensionFieldNames:m,skipNoop:!0,mutate(Xe){at=OA({document:Xe,recurrenceReason:r.recurrenceReason,requestedStatus:t.status,statusRegistry:s}),eo=at?{recurrence:at}:void 0,Ue=Ue?.map(to=>to.id===Xe.metadata.id?structuredClone(Xe.metadata):to);let Js=IA(Xe,{options:t,settings:i,typeRegistry:u,statusRegistry:s,runtimeFieldRegistry:a,extensionRegistrations:c,extensionFieldNames:m,clearItemMetadataKeys:g,dependencyUpdates:T,dependencyRemovals:$,commentUpdates:K,noteUpdates:z,learningUpdates:B,fileUpdates:ue,testUpdates:re,docUpdates:ze,resolvedParentValue:ce.resolvedParentValue,resolvedBlockedByDependencyId:Zn,runtimeFieldUpdates:er,nowValue:b,nowIso:k,author:v,pmRoot:o});return QE({before:Ue,document:Xe,statusRegistry:s}),Js}});await P();let Ys=Ue?Ni(Ue,Ue.map(Xe=>Xe.id===At.item.id?At.item:Xe),At.item.id):[];return{item:At.item,changed_fields:At.changedFields,warnings:[...j,...Vs,...R,...Ys,...At.warnings],...at===void 0?{}:{lifecycle_transition:at}}}finally{await P()}}function RA(e,t){return e.ownershipMetadataBypass===!0||e.ownershipDependencyBypass===!0?"update_ownership_bypass":t.recurrenceReason===void 0?"update":"reopen"}function OA(e){if(e.recurrenceReason===void 0)return;let t=ee(e.document.metadata.status,e.statusRegistry)??e.document.metadata.status;if(!ne(t,e.statusRegistry))throw new d(`Item ${e.document.metadata.id} is already active with status ${t}; recurrence transitions require a terminal item.`,l.CONFLICT,{code:"item_already_active",reason:"recurrence_requires_terminal_item",required:"Use item reopen only for a terminal item whose work has recurred.",why:"Appending a recurrence event to active work would corrupt lifecycle history.",recovery:{suggested_retry:`pm get ${e.document.metadata.id} --full`,suggested_retry_args:["get",e.document.metadata.id,"--full"]},nextSteps:[`Inspect the active item with: pm get ${e.document.metadata.id} --full`,`Continue the existing work with: pm update ${e.document.metadata.id} ...`]});let n=e.requestedStatus??e.statusRegistry.open_status,r=ee(n,e.statusRegistry)??n,o=e.document.metadata,i=Object.fromEntries(["close_reason","resolution","expected_result","actual_result","fixed_version"].flatMap(s=>{let a=o[s];return typeof a=="string"?[[s,a]]:[]}));return{reason:e.recurrenceReason,from_status:t,to_status:r,previous_terminal:i}}async function rt(e,t,n){return Ch(e,t,n)}async function Ih(e,t,n,r){let o=await Ch(e,t,n,{recurrenceReason:r});if(o.lifecycle_transition===void 0)throw new d(`Item ${e} did not produce the required recurrence receipt.`,l.GENERIC_FAILURE,{code:"reopen_receipt_missing",reason:"recurrence_transition_not_recorded",required:"A successful reopen must return the terminal-to-active lifecycle transition recorded in immutable history."});return{...o,lifecycle_transition:o.lifecycle_transition}}(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]="961c1918-75f9-5e5d-bbae-b333ca29534f")}catch{}})();function gs(e){return Bo("in_progress",e)??e.open_status}(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]="7f0e8f0f-bef3-5d61-b851-7582a03430b6")}catch{}})();async function zc(e,t,n){try{return await n()}catch(r){let o=r instanceof d?r.context:{},i=new d(r instanceof Error?r.message:String(r),r instanceof d?r.exitCode:l.GENERIC_FAILURE,{...o,item_id:e,why:`${t} completed for ${e} before the following step failed. No rollback was performed.${o.why?` ${o.why}`:""}`,nextSteps:[`Inspect the persisted state with pm get ${e} and pm history ${e} before retrying the failed step.`,...o.nextSteps??[]]});throw i.cause=r,i}}async function Bc(e,t,n){if(t.next===!0||t.ifAvailable===!0)throw new d("--start requires an explicit item id and cannot be combined with --next or --if-available",l.USAGE);let r=await A(E(process.cwd(),n.path)),o=gs(F(r.schema)),i=await Lr(e,t.force===!0,n,t),s=await zc(e,"claim",()=>rt(e,Gt(t,{status:o},["assignee","start","next","ifAvailable","maxAttempts"]),n));return{id:e,action:"start_task",claim:i,update:s}}async function Hc(e,t,n){let r=await A(E(process.cwd(),n.path)),o=F(r.schema).open_status,i=await rt(e,Gt(t,{status:o},["assignee","pause"]),n),s=await zc(e,"update",()=>Nr(e,t.force===!0,n,t));return{id:e,action:"pause_task",update:i,release:s}}async function Vc(e,t,n,r){let o=await yt(e,t,n,r),i=await zc(e,"close",()=>Nr(e,n.force===!0,r,n));return{id:e,action:"close_task",close:o,release:i}}import xA from"fast-json-patch";import Wc from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="85aa928d-92b8-5f67-8482-0fe5715fef45")}catch{}})();async function Rh(e,t,n){let r=await Pp(e,{schema:t.schema});return r.error===null?{raw:r.raw,document:r.document}:{raw:r.raw,document:Oh(n),recovered:!0}}function PA(e,t){return Cp(e,t,{errorSubject:"restore",allowFutureTimestamp:!0})}function Oh(e){let t=qa(e,e.length-1);return Object.keys(t.metadata).length===0?{metadata:{},body:t.body}:et(tt(t))}async function LA(e,t,n,r){let o=await en(e,t,n,r),i=o.located?await Rp({pmRoot:e,settings:n,itemId:o.id,commandLabel:"restore"}):{warnings:[]};return{...o,historyPolicyWarnings:i.warnings}}function NA(e,t){let n=hr(e),r=hr(t),o=xA.compare(n,r),i=new Set;for(let s of o){if(s.path==="/body"||s.path.startsWith("/body/")){i.add("body");continue}let a=s.path.replace(/^\/(?:metadata|front_matter)\/?/,"").split("/")[0];i.add(a.replaceAll("~1","/").replaceAll("~0","~"))}return Array.from(i).sort((s,a)=>s.localeCompare(a))}async function $A(e){let t=await Xf({pmRoot:e.pmRoot,subject:e.subject,settings:e.settings,typeRegistry:e.typeRegistry,historyRawBeforeLock:e.historyRawBeforeLock,currentItemRawBeforeLock:e.currentItemRawBeforeLock,operation:"restore",readItem:n=>Rh(n,e.settings,e.history)});return{loadedItemUnderLock:t.loadedItemUnderLock,existingItemPath:t.locatedUnderLock?.itemPath??null}}function MA(e,t){return e?{document:e.document,originalRaw:e.raw}:{document:Oh(t),originalRaw:null}}function FA(e){let t=e.document.metadata.assignee?.trim();if(!(t&&t!==e.author&&!e.force))return[];if(e.enforcement==="strict")throw new d(`Item ${e.resolvedId} is assigned to ${t}. Use --force to override.`,l.CONFLICT);return e.enforcement==="warn"?[`ownership_warning:assignee_conflict:${e.resolvedId}:${t}`]:[]}async function DA(e){if(e.existingItemPath&&e.resolvedOriginalRaw!==null&&e.restoredItemPath!==e.existingItemPath){await te(e.existingItemPath,e.resolvedOriginalRaw),await Wc.rm(e.restoredItemPath,{force:!0});return}if(e.existingItemPath&&e.resolvedOriginalRaw!==null){await te(e.existingItemPath,e.resolvedOriginalRaw);return}await Wc.rm(e.restoredItemPath,{force:!0})}async function UA(e){return[...await J({path:e.restoredItemPath,scope:"project",op:"restore",item_id:e.after.metadata.id,item_type:e.after.metadata.type,before:e.before,after:e.after,changed_fields:["restored"]}),...await J({path:e.historyPath,scope:"project",op:"restore:history",item_id:e.after.metadata.id,item_type:e.after.metadata.type,before:e.before,after:e.after,changed_fields:["restored"]})]}async function un(e,t,n,r){let o=E(process.cwd(),r.path);await I(o);let i=await A(o),s=x(i,O()),a=await LA(o,e,i,s.type_to_folder),c=a.id,{raw:m,entries:u}=await up(a.historyPath,c);if(u.length===0)throw new d(`No history exists for ${c}; restore is unavailable.`,l.NOT_FOUND);let p=PA(t,u),f=Ip(qa(u,p.historyIndex),p),_=bp(f,{schema:i.schema});if(_.metadata.id!==c)throw new d(`Restore target resolved to item ${_.metadata.id}, expected ${c}.`,l.GENERIC_FAILURE);let y=(a.located?await Rh(a.located,i,u):null)?.raw??null,g=C(n.author,i.author_default),v=await Ee(o,c,i.locks.ttl_seconds,g,!!n.force,i.governance.force_required_for_stale_lock,i.locks.wait_ms);try{let{loadedItemUnderLock:b,existingItemPath:k}=await $A({pmRoot:o,subject:a,settings:i,typeRegistry:s,historyRawBeforeLock:m,currentItemRawBeforeLock:y,history:u}),T="toon",R=MA(b,u),$=FA({document:R.document,author:g,force:n.force,enforcement:i.governance.ownership_enforcement,resolvedId:c}),M=NA(R.document,_),K=await yr({pmRoot:o,settings:i,operation:"restore",author:g,before:R.document,after:_});await Wo({pm_root:o,operation:"restore",before:R.document,after:_,changed_fields:M,sdk:oi({pmRoot:o,settings:i,typeToFolder:s.type_to_folder})});let z=Be(_,{format:T,schema:i.schema}),B=dt(o,_.metadata.type,c,T,s.type_to_folder),ue=await $t(o,g),re=[];try{await te(B,z),k&&B!==k&&await Wc.rm(k);let Je=Pe({nowIso:S(),author:g,op:"restore",before:R.document,after:_,message:n.message,context:K.decisions.length===0?void 0:{workflow_policies:K.decisions}});try{await Lt(a.historyPath,Je)}catch(Zn){throw await DA({existingItemPath:k,resolvedOriginalRaw:R.originalRaw,restoredItemPath:B}),Zn}re=await Mt({pmRoot:o,preferredFormat:i.item_format,typeToFolder:s.type_to_folder,schema:i.schema,itemPath:B,previousItemPath:k??void 0,document:_})}finally{await ue()}let ze=await UA({restoredItemPath:B,historyPath:a.historyPath,before:R.document,after:_});An({id:_.metadata.id,op:"restore",item_type:_.metadata.type,previous_status:R.document.metadata.status,status:_.metadata.status,previous:Qt(R.document.metadata,M),current:Qt(_.metadata,M),changed_fields:M});let j=u[p.historyIndex],ce=On(u,!0);return{item:_.metadata,restored_from:{kind:p.kind,target:p.raw,history_index:p.historyIndex+1,version:ce===null?null:ce+p.historyIndex+1,entry_ts:j.ts,entry_op:j.op},changed_fields:M,warnings:[...K.warnings,...b?.recovered?["restore_unreadable_item_recovered"]:[],...a.historyPolicyWarnings,...$,...re,...ze]}}finally{await v()}}(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]="aec6f8e2-5fd0-53f3-8262-c6b49741ff96")}catch{}})();var Ph=1,Yc="close-many",GA=["--filter-status","--filter-type","--filter-tag","--filter-priority","--filter-sprint","--filter-release","--filter-parent","--filter-assignee","--filter-updated-before","--ids"].join(", ");function jA(e,t){return Cr(e,t,{includePagination:!1})}function qA(e,t){return Cr(e,t)}function KA(e){if(e?.ids!=null&&String(e.ids).trim().length===0)throw new d("--ids requires at least one non-empty item ID",l.USAGE)}function zA(e){let t={};if(!e)return t;for(let[n,r]of Object.entries(e))r==null||typeof r=="string"&&!r.split(",").some(o=>o.trim().length>0)||(t[n]=r);return t}function BA(e,t){let n=String(e??"").trim();if(n.length>0)return n;if(t)throw new d("pm close-many requires a shared close reason via --reason because governance.require_close_reason is enabled.",l.USAGE,{code:"close_reason_required",required:"Provide a shared closing summary via --reason for the whole batch.",why:"governance.require_close_reason is enabled, so every close must record why the items are done.",examples:['pm close-many --filter-sprint S-12 --reason "Sprint S-12 acceptance criteria met"','pm close-many --ids pm-a,pm-b --reason "Superseded by redesign"'],nextSteps:["Re-run with --reason describing the shared outcome.","To stop requiring reasons, run: pm config set governance-require-close-reason --policy disabled"]})}async function HA(e,t){let n=F(t.schema),r=x(t,O()),o=await fe(e,t.item_format,r.type_to_folder,void 0,t.schema),i=new Map,s=new Map;for(let a of o){if(typeof a.parent!="string"||a.parent.length===0||(s.set(a.id,a.parent),ne(a.status,n)))continue;let c=i.get(a.parent);c?c.push(a.id):i.set(a.parent,[a.id])}for(let a of i.values())a.sort((c,m)=>c.localeCompare(m));return{childrenByParent:i,parentByChild:s}}function xh(e,t,n){let r=n?.get(e);if(r!==void 0)return r;let o=0,i=t.get(e),s=[],a=new Set,c=!1;for(;i!==void 0&&!a.has(i);){let m=n?.get(i);if(m!==void 0){o+=m+1;break}a.add(i),s.push(i),o+=1,i=t.get(i)}if(i!==void 0&&a.has(i)&&(c=!0),!c){n?.set(e,o);for(let[m,u]of s.entries())n?.set(u,o-m-1)}return o}async function VA(e){let t=await ai(e.pmRoot,Yc,e.rollbackId,Ph),n=e.options.message??`Rollback close-many checkpoint ${t.id}`,r=await ci(t.items,(o,i)=>un(o,i,{author:e.options.author,message:n,force:!0},e.global));return{...Zt({applied:r.restored_ids.length,skipped:0,failed:r.failed_count,unmatched:0}),mode:"rollback",matched_count:t.items.length,dry_run:!1,rollback_checkpoint_id:t.id,checkpoint:{id:t.id,created_at:t.created_at,path:t.path,rollback_command:`pm close-many --rollback ${t.id}`},restored_count:r.restored_ids.length,failed_count:r.failed_count,rows:r.rows,ids:r.restored_ids}}function WA(e,t,n,r,o){return e.map(i=>{let s=(t.get(i.id)??[]).filter(c=>!n.has(c)),a=!Lh(i,r,o);return{id:i.id,title:typeof i.title=="string"?i.title:"",status:i.status,action:a?"skip":"close",...a?{skip_reason:"already_terminal"}:{},...s.length>0?{active_child_ids:s}:{}}})}async function YA(e){let t=await si(e.pmRoot,Yc,e.checkpointId,{schema_version:Ph,id:e.checkpointId,created_at:e.nowValue,author:C(e.options.author,"unknown"),...e.reason!==void 0?{reason:e.reason}:{},filters:e.filters,items:e.checkpointItems});return{id:e.checkpointId,created_at:e.nowValue,path:t,rollback_command:`pm close-many --rollback ${e.checkpointId}`}}async function JA(e){let t=[],n=[];for(let r of e.matched){if(!e.closableIds.has(r.id)){t.push({id:r.id,status:"skipped",skip_reason:"already_terminal"});continue}try{let o=await yt(r.id,e.reason,e.closeOptions,e.global);t.push({id:r.id,status:"closed",changed_fields:o.changed_fields,...o.warnings&&o.warnings.length>0?{warnings:o.warnings}:{}}),n.push(r.id)}catch(o){t.push({id:r.id,status:"failed",error:Sn(o)})}}return{rows:t,closedIds:n}}function XA(e){return typeof e.rollback=="string"?e.rollback:void 0}function QA(e,t){if(t.trim().length===0)throw new d("--rollback requires a checkpoint id",l.USAGE);if(e.dryRun===!0)throw new d("--dry-run cannot be combined with --rollback",l.USAGE);if(qA(e.list,e.status))throw new d("Rollback mode does not accept filter options",l.USAGE)}function ZA(e){if(!jA(e.list,e.status))throw new d(`close-many requires at least one filter to scope the close (for example: ${GA}). Refusing to match every item.`,l.USAGE)}function eT(e,t){let n=new Map;return[...e].sort((r,o)=>{let i=xh(o.id,t,n)-xh(r.id,t,n);return i!==0?i:r.id.localeCompare(o.id)})}function Lh(e,t,n){return n||!ne(e.status,t)}function tT(e,t,n){return new Set(e.filter(r=>Lh(r,t,n)).map(r=>r.id))}async function nT(e){ZA(e.options);let t=F(e.settings.schema),n=BA(e.options.reason,e.settings.governance.require_close_reason),r=e.options.force===!0,o=await gt(e.options.status,zA(e.options.list),e.global),{childrenByParent:i,parentByChild:s}=await HA(e.pmRoot,e.settings),a=eT(o.items,s),c=[...new Set(String(e.options.list?.ids??"").split(",").map(f=>f.trim()).filter(f=>f.length>0))],m=c.length===0?[]:(await gt(void 0,{ids:c.join(","),noTruncate:!0,full:!0},e.global)).items,u=new Set(m.map(f=>f.id)),p=tT(a,t,r);return{pmRoot:e.pmRoot,settings:e.settings,statusRegistry:t,reason:n,validateCloseMode:e.options.validateClose,force:r,listed:o,matched:a,unmatchedIds:c.length===0?void 0:c.filter(f=>!u.has(f)),planRows:WA(a,i,p,t,r)}}function rT(e){return{outcome:"effect",exit_code:l.SUCCESS,mode:"dry_run",matched_count:e.matched.length,dry_run:!0,...e.reason!==void 0?{reason:e.reason}:{},filters:e.listed.filters,...e.validateCloseMode?{validate_close:e.validateCloseMode}:{},item_plans:e.planRows,ids:[],...e.unmatchedIds!==void 0?{unmatched_ids:e.unmatchedIds,unmatched_count:e.unmatchedIds.length}:{}}}async function oT(e){if(e.options.checkpoint===!1||e.closableIds.size===0)return;let t=e.context.matched.filter(n=>e.closableIds.has(n.id)).map(n=>({id:n.id,target_updated_at:n.updated_at}));return YA({pmRoot:e.context.pmRoot,checkpointId:e.checkpointId,nowValue:e.nowValue,options:e.options,reason:e.context.reason,filters:e.context.listed.filters,checkpointItems:t})}async function Nh(e,t){let n=E(process.cwd(),t.path);await I(n);let r=await A(n),o=e.dryRun===!0,i=XA(e);if(KA(e.list),i!==void 0)return QA(e,i),VA({pmRoot:n,rollbackId:i,options:e,global:t});let s=await nT({pmRoot:n,settings:r,options:e,global:t});if(o)return rT(s);let a=new Set(s.planRows.filter(v=>v.action==="close").map(v=>v.id)),c=S(),m=ii(Yc,c),u=await oT({context:s,options:e,closableIds:a,checkpointId:m,nowValue:c}),p={author:e.author,message:e.message??`close-many apply ${m}`,completedAt:e.completedAt,validateClose:s.validateCloseMode,force:s.force,resolution:e.resolution,expectedResult:e.expectedResult,actualResult:e.actualResult},{rows:f,closedIds:_}=await JA({matched:s.matched,closableIds:a,reason:s.reason,closeOptions:p,global:t}),h=f.filter(v=>v.status==="closed").length,y=f.filter(v=>v.status==="skipped").length,g=f.filter(v=>v.status==="failed").length;return{...Zt({applied:h,skipped:y,failed:g,unmatched:s.unmatchedIds?.length??0}),mode:"apply",matched_count:s.matched.length,dry_run:!1,...s.reason!==void 0?{reason:s.reason}:{},filters:s.listed.filters,...s.validateCloseMode?{validate_close:s.validateCloseMode}:{},...u?{checkpoint:u}:{},closed_count:h,skipped_count:y,failed_count:g,rows:f,ids:_,...s.unmatchedIds!==void 0?{unmatched_ids:s.unmatchedIds,unmatched_count:s.unmatchedIds.length}:{}}}import{readFile as iT}from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="147e3cfb-45ad-5600-b27c-18e6f80ffb80")}catch{}})();async function Jc(e,t){let n=e.add!==void 0,r=e.stdin===!0,o=typeof e.file=="string",i=Number(n)+Number(r)+Number(o);if(i===0)return;if(i>1)throw new d("Specify comment text using only one input source: --add, --stdin, or --file",l.USAGE);if(n)return{value:await t.resolveValue(e.add,"--add",ht(e))??"",emptyFlag:"--add"};if(r)return Pr(e,"--stdin"),{value:await t.resolveValue("-","--stdin")??"",emptyFlag:"--stdin"};let s=e.file.trim();if(!s)throw new d("--file path cannot be empty",l.USAGE);if(s==="-")return Pr(e,"--file -"),{value:await t.resolveValue("-","--file")??"",emptyFlag:"--file"};try{return{value:await iT(s,"utf8"),emptyFlag:"--file"}}catch(a){if(Sc(a)&&Yt(a))throw new d(`--file path not found: ${s}. Use --file - to read stdin.`,l.USAGE);let c=a instanceof Error?a.message:String(a);throw new d(`Failed to read --file path "${s}": ${c}. Use --file - to read stdin.`,l.USAGE)}}async function sT(e,t){let n=e.edit,r=e.delete,o=n!==void 0,i=r!==void 0;if(o&&i)throw new d("Specify only one of --edit or --delete",l.USAGE);if(n!==void 0&&(!Number.isInteger(n)||n<1))throw new d("--edit must be a positive integer",l.USAGE);if(r!==void 0&&(!Number.isInteger(r)||r<1))throw new d("--delete must be a positive integer",l.USAGE);if(i){if(await Jc(e,t)!==void 0)throw new d("--delete does not take comment text",l.USAGE);return{mode:"delete",index:r}}if(o){let c=await Jc(e,t);if(c===void 0)throw new d("--edit requires replacement text via positional [text], --add, --stdin, or --file",l.USAGE);return{mode:"edit",index:n,value:c.value,emptyFlag:c.emptyFlag}}let s=await Jc(e,t);return s===void 0?{mode:"list"}:{mode:s.emptyFlag==="--add"?"add":s.emptyFlag==="--stdin"?"stdin":"file",value:s.value,emptyFlag:s.emptyFlag}}async function $h(e,t,n){let r=Dt(),o=await sT(t,r),i=o.mode==="add"||o.mode==="edit",s=o.value??"";return Kn(e,t,n,{input:{...o,rawValue:t.add??s,value:i?qn(s,{stripPlainTextPrefix:!0}):s},collectionKey:"comments",op:"comment_add",editOp:"comment_edit",deleteOp:"comment_delete",parseText:a=>a,createEntry:a=>a,bypassOwnershipConflict:!!(o.mode==="add"&&t.ownershipAppendBypass),conflictGuidance:{required:"Strict ownership also protects annotations. Ask the current owner to run pm release <id>, then run pm claim <id>; use --force only for an explicitly approved override.",examples:["pm claim <id>"],nextSteps:["For an approved append without reassignment: pm package install governance-audit --project; then pm comments --help lists the package-owned append bypass. Edit/delete still require ownership.","For a non-terminal handoff, the current owner runs pm release <id>; then you run pm claim <id> before retrying. Claim refuses work still held by another owner; --force requires an explicitly approved 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]="039acb6e-090c-554f-9323-29e44496552d")}catch{}})();async function Mh(e,t,n){return Kn(e,t,n,{input:await Gi(t,"learning"),collectionKey:"learnings",op:"learning_add",editOp:"learning_edit",deleteOp:"learning_delete",parseText:r=>qn(r),createEntry:r=>r,bypassOwnershipConflict:!!(t.edit===void 0&&t.delete===void 0&&t.ownershipAppendBypass),conflictGuidance:{required:"Strict ownership also protects annotations. Ask the current owner to run pm release <id>, then run pm claim <id>; use --force only for an explicitly approved override.",examples:["pm claim <id>"],nextSteps:["For an approved append without reassignment: pm package install governance-audit --project; then pm learnings --help lists the package-owned append bypass. Edit/delete still require ownership.","For a non-terminal handoff, the current owner runs pm release <id>; then you run pm claim <id> before retrying. Claim refuses work still held by another owner; --force requires an explicitly approved 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]="4e85b9bc-3387-5fb8-ac8b-c8f115c82b60")}catch{}})();function aT(e){if(e===void 0)return;if(e.trim().length===0)throw new d("--add-json must contain a JSON value",l.USAGE,{code:"structured_event_json_empty"});let t;try{t=JSON.parse(e)}catch{throw new d("--add-json must be valid JSON",l.USAGE,{code:"structured_event_json_invalid"})}return t}function cT(e){if(typeof e!="object"||e===null||Array.isArray(e))return;let t=e.type;return typeof t=="string"&&t.trim().length>0?t.trim():void 0}function lT(e){if(e===void 0)return;let t=Date.parse(e);if(!Number.isFinite(t))throw new d("--since must be a valid ISO timestamp",l.USAGE,{code:"structured_event_since_invalid"});return t}async function Fh(e,t,n){let r=aT(t.addJson),o=[t.add!==void 0,t.stdin===!0,t.file!==void 0,t.edit!==void 0,t.delete!==void 0].includes(!0);if(r!==void 0&&o)throw new d("--add-json cannot be combined with text, edit, delete, stdin, or file inputs",l.USAGE,{code:"structured_event_input_conflict"});let i=r===void 0?void 0:Jt(r),s=[t.since,t.eventType].some(h=>h!==void 0),a=lT(t.since),c=wr(t.limit),m=await Kn(e,{...t,...s?{limit:void 0}:{},includeMeta:[t.includeMeta===!0,s].includes(!0)},n,{input:await Gi(i===void 0?t:{add:i},"note"),collectionKey:"notes",op:"note_add",editOp:"note_edit",deleteOp:"note_delete",parseText:h=>qn(h),createEntry:h=>r===void 0?h:{...h,format:"json",data:r,event_type:cT(r)},bypassOwnershipConflict:!![t.edit===void 0,t.delete===void 0,t.ownershipAppendBypass===!0].every(Boolean),conflictGuidance:{required:"Strict ownership also protects annotations. Ask the current owner to run pm release <id>, then run pm claim <id>; use --force only for an explicitly approved override.",examples:["pm claim <id>"],nextSteps:["For an approved append without reassignment: pm package install governance-audit --project; then pm notes --help lists the package-owned append bypass. Edit/delete still require ownership.","For a non-terminal handoff, the current owner runs pm release <id>; then you run pm claim <id> before retrying. Claim refuses work still held by another owner; --force requires an explicitly approved override."]}}),u=t.eventType?.trim(),p=m.notes.filter(h=>{let y=[h.format==="json",h.data!==void 0].every(Boolean),g=[a===void 0,Date.parse(h.created_at)>=(a??Number.POSITIVE_INFINITY)].includes(!0),v=[!u,h.event_type===u].includes(!0);return[!s,[y,g,v].every(Boolean)].includes(!0)}),f=s?kc(p,c):p,_=f.filter(h=>h.format==="json").length;return{...m,notes:f,count:f.length,...s?{total_count:p.length,returned_count:f.length,has_more:f.length<p.length,...c===void 0?{}:{limit:c},structured_event_count:_}:t.includeMeta===!0?{structured_event_count:_}:{}}}(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]="3ef785ae-bb1e-59dd-993c-3be56ddc26c2")}catch{}})();var Uh=1,Qc="update-many",dT=new Set(["author","message","force","ownershipMetadataBypass","ownershipDependencyBypass","allowUnresolvedDeps"]),mT=["--status","--priority","--type","--tags","--description","--body","--deadline","--estimate","--assignee","--dep","--dep-remove","--comment","--note","--learning","--file","--test","--doc","--replace-deps","--replace-tests","--replace-files","--replace-docs","--unset","--clear-*"].join(", "),uT={title:"title",description:"description",body:"body",status:"status",closeReason:"close_reason",priority:"priority",type:"type",deadline:"deadline",estimatedMinutes:"estimated_minutes",acceptanceCriteria:"acceptance_criteria",definitionOfReady:"definition_of_ready",order:"order",goal:"goal",objective:"objective",value:"value",impact:"impact",outcome:"outcome",whyNow:"why_now",assignee:"assignee",parent:"parent",reviewer:"reviewer",risk:"risk",confidence:"confidence",sprint:"sprint",release:"release",blockedBy:"blocked_by",blockedReason:"blocked_reason",unblockNote:"unblock_note",reporter:"reporter",severity:"severity",environment:"environment",reproSteps:"repro_steps",resolution:"resolution",expectedResult:"expected_result",actualResult:"actual_result",affectedVersion:"affected_version",fixedVersion:"fixed_version",component:"component",regression:"regression",customerImpact:"customer_impact"},pT=[{field:"dependencies",addKey:"dep",removeKey:"depRemove",clearKey:"clearDeps",replaceKey:"replaceDeps"},{field:"comments",addKey:"comment",clearKey:"clearComments"},{field:"notes",addKey:"note",clearKey:"clearNotes"},{field:"learnings",addKey:"learning",clearKey:"clearLearnings"},{field:"files",addKey:"file",clearKey:"clearFiles",replaceKey:"replaceFiles"},{field:"tests",addKey:"test",clearKey:"clearTests",replaceKey:"replaceTests"},{field:"docs",addKey:"doc",clearKey:"clearDocs",replaceKey:"replaceDocs"},{field:"reminders",addKey:"reminder",clearKey:"clearReminders"},{field:"events",addKey:"event",clearKey:"clearEvents"},{field:"type_options",addKey:"typeOption",clearKey:"clearTypeOptions"}],fT={close_reason:"close_reason","close-reason":"close_reason",deadline:"deadline",estimate:"estimated_minutes",estimated_minutes:"estimated_minutes","estimated-minutes":"estimated_minutes",acceptance_criteria:"acceptance_criteria","acceptance-criteria":"acceptance_criteria",ac:"acceptance_criteria",definition_of_ready:"definition_of_ready","definition-of-ready":"definition_of_ready",order:"order",rank:"order",goal:"goal",objective:"objective",value:"value",impact:"impact",outcome:"outcome",why_now:"why_now","why-now":"why_now",assignee:"assignee",parent:"parent",reviewer:"reviewer",risk:"risk",confidence:"confidence",sprint:"sprint",release:"release",blocked_by:"blocked_by","blocked-by":"blocked_by",blocked_reason:"blocked_reason","blocked-reason":"blocked_reason",unblock_note:"unblock_note","unblock-note":"unblock_note",reporter:"reporter",severity:"severity",environment:"environment",repro_steps:"repro_steps","repro-steps":"repro_steps",resolution:"resolution",expected_result:"expected_result","expected-result":"expected_result",actual_result:"actual_result","actual-result":"actual_result",affected_version:"affected_version","affected-version":"affected_version",fixed_version:"fixed_version","fixed-version":"fixed_version",component:"component",regression:"regression",customer_impact:"customer_impact","customer-impact":"customer_impact",type_options:"type_options","type-options":"type_options",tags:"tags"},Gh=e=>{let t={};for(let[n,r]of Object.entries(e))dT.has(n)||r!==void 0&&(t[n]=r);return t},_T=e=>Object.keys(Gh(e)).length>0,jh=e=>typeof e=="string"?e.trim():e,hT=e=>{let t=String(e).trim(),n=Number(t);return Number.isInteger(n)?n:t},Xc=e=>{let t=String(e).trim(),n=Number(t);return Number.isFinite(n)?n:t},gT=e=>{let t=String(e).trim().toLowerCase();return new Map([["true",!0],["1",!0],["false",!1],["0",!1]]).get(t)??jh(e)},yT={priority:hT,estimatedMinutes:Xc,order:Xc,rank:Xc,regression:gT},vT=(e,t)=>{if(t!==void 0)return(yT[e]??jh)(t)},wT=e=>{let t=e.trim().toLowerCase().replaceAll("-","_");return fT[t]??t},ys=(e,t)=>mt(e,t),bT=(e,t)=>t!==void 0?t:e==="type_options"?{}:[],kT=(e,t)=>Array.isArray(t)?t.length:e==="type_options"&&t&&typeof t=="object"?Object.keys(t).length:0,ST=e=>e.replace?"replace":e.clear?"clear_or_reset":e.removeCount>0?"merge_remove":"append",Dh=(e,t)=>t===void 0?void 0:e[t],Hn=e=>Array.isArray(e)?e.length:0,ET=(e,t,n)=>{let r=n[e.addKey],o=Dh(n,e.removeKey),i=Hn(r),s=Hn(o),a=n[e.clearKey]===!0,c=Dh(n,e.replaceKey)===!0;if(![a,c,i>0,s>0].includes(!0))return;let m=bT(e.field,t[e.field]);return{field:e.field,before:m,after:{operation:ST({replace:c,clear:a,removeCount:s}),clear:a,replace:c,add_count:i,remove_count:s,before_count:kT(e.field,m)}}},AT=(e,t)=>{let n=[];for(let r of pT){let o=ET(r,e,t);o!==void 0&&n.push(o)}return n},TT=e=>Array.isArray(e)?e.filter(t=>typeof t=="string"):[],CT=(e,t)=>{if(![t.tags!==void 0,Hn(t.addTags)>0,Hn(t.removeTags)>0].includes(!0))return;let n=TT(e.tags),r=t.tags===void 0?n:Ft(t.tags),o=Ln(r,t.addTags),i=mi(o,t.removeTags).slice().sort((a,c)=>a.localeCompare(c)),s=n.slice().sort((a,c)=>a.localeCompare(c));if(!ys(s,i))return{field:"tags",before:n,after:i}},IT=(e,t)=>{let n=e.acceptance_criteria,r=di(Pn(n),t.addAc,t.removeAc);if(r.unmatchedRemovals.length>0)throw new d(`Acceptance criteria removal did not match: ${r.unmatchedRemovals.join(", ")}`,l.NOT_FOUND,{code:"acceptance_criteria_remove_unmatched",reason:"exact_match_not_found",field:"acceptance_criteria",unmatched:r.unmatchedRemovals});let o=r.criteria.join("; ");if(!ys(typeof n=="string"?n:"",o))return{field:"acceptance_criteria",before:n,after:o}},RT=(e,t,n)=>{for(let[r,o]of Object.entries(uT)){let i=n[r];if(i===void 0)continue;let s=t[o],a=vT(r,i);ys(s,a)||e.push({field:o,before:s,after:a})}},OT=(e,t,n,r)=>{let o=ri(n,r,["update_many"]);for(let[i,s]of Object.entries(o)){let a=t[i];ys(a,s)||e.push({field:i,before:a,after:s})}},xT=(e,t,n)=>{for(let r of n??[]){let o=wT(r),i=t[o];i!==void 0&&e.push({field:o,before:i,after:null})}},PT=(e,t,n={})=>{let r=e,o=[],i=CT(r,n);if(i&&o.push(i),RT(o,r,n),Hn(n.addAc)>0||Hn(n.removeAc)>0){let s=IT(r,n);s!==void 0&&o.push(s)}return o.push(...AT(r,n)),OT(o,r,n,t),xT(o,r,n.unset),{id:e.id,changes:o}},LT=(e,t)=>zp(e,t,{strict:!0,flagLabel:"--filter-status"}),NT=e=>{if(e?.ids!=null&&String(e.ids).trim().length===0)throw new d("--ids requires at least one non-empty item ID",l.USAGE)},$T=[({update:e})=>{e.priority!==void 0&&$n(e.priority)},({update:e,settings:t,pmRoot:n})=>{if(e.type===void 0)return;let r=x(t,O());if(!we(e.type,r))throw new d(xt(e.type,r.types,Pt(n,t.schema)),l.USAGE)},({update:e,statusRegistry:t})=>{if(e.status!==void 0&&!ee(e.status,t)){let n=t.definitions.map(r=>r.id);throw new d(`Invalid --status value "${e.status}". Allowed: ${n.join(", ")}`,l.USAGE)}},({update:e})=>{e.deadline!==void 0&&oe(e.deadline,new Date,"deadline")},({update:e})=>{e.estimatedMinutes!==void 0&&Nn(e.estimatedMinutes,"estimated-minutes")}],MT=(e,t,n,r)=>{let o={update:e,settings:t,statusRegistry:n,pmRoot:r};for(let i of $T)i(o)},FT=async e=>{let t=await ai(e.pmRoot,Qc,e.rollbackId,Uh),n=e.options.update?.message??`Rollback update-many checkpoint ${t.id}`,r=await ci(t.items,(o,i)=>un(o,i,{author:e.options.update?.author,message:n,force:e.options.update?.force??!0},e.global));return{...Zt({applied:r.restored_ids.length,skipped:0,failed:r.failed_count,unmatched:0}),mode:"rollback",matched_count:t.items.length,dry_run:!1,rollback_checkpoint_id:t.id,checkpoint:{id:t.id,created_at:t.created_at,path:t.path,rollback_command:`pm update-many --rollback ${t.id}`},restored_count:r.restored_ids.length,failed_count:r.failed_count,rows:r.rows,ids:r.restored_ids}},DT=async e=>{let t={schema_version:Uh,id:e.checkpointId,created_at:e.nowValue,author:C(e.options.update?.author,"unknown"),status_filter:e.statusFilter??null,list_filters:e.filters,update_options:e.updateSummary,items:e.checkpointItems},n=await si(e.pmRoot,Qc,e.checkpointId,t);return{id:e.checkpointId,created_at:e.nowValue,path:n,rollback_command:`pm update-many --rollback ${e.checkpointId}`}},UT=(e,t)=>{if(e==null)return;let n=[...new Set(String(e).split(",").map(o=>o.trim()).filter(o=>o.length>0))],r=new Set(t.map(o=>o.id));return n.filter(o=>!r.has(o))},Zc=e=>e.unmatchedIds===void 0?{}:{unmatched_ids:e.unmatchedIds,unmatched_count:e.unmatchedIds.length},GT=async e=>{let t=E(process.cwd(),e.path);await I(t);let n=await A(t);return{pmRoot:t,settings:n,statusRegistry:F(n.schema),runtimeFieldRegistry:Ze(n.schema)}},jT=e=>{if(e.options.dryRun===!0)throw new d("--dry-run cannot be combined with --rollback",l.USAGE);if(Cr(e.options.list,e.options.status))throw new d("Rollback mode does not accept filter options",l.USAGE);if(Object.keys(e.updateSummary).length>0)throw new d("Rollback mode does not accept update mutation flags",l.USAGE);return FT({pmRoot:e.runtime.pmRoot,rollbackId:e.rollbackId,options:e.options,global:e.global})},qT=async e=>{LT(e.options.status,e.runtime.statusRegistry);let t=await gt(void 0,{...e.options.list,status:e.options.status,compact:void 0,brief:void 0,fields:void 0,includeBody:!0,full:!0},e.global),n=t.items.map(o=>{let i=PT(o,e.runtime.runtimeFieldRegistry,e.options.update);return e.dependencyWarnings.length===0?i:{...i,warnings:[...e.dependencyWarnings]}}),r=e.options.list?.ids==null?[]:(await gt(void 0,{ids:e.options.list.ids,noTruncate:!0,full:!0},e.global)).items;return{listed:t,planned:n,actionable:n.filter(o=>o.changes.length>0),updateSummary:e.updateSummary,unmatchedIds:UT(e.options.list?.ids,r)}},KT=e=>({outcome:"effect",exit_code:l.SUCCESS,mode:"dry_run",matched_count:e.listed.items.length,dry_run:!0,filters:e.listed.filters,planned_update_options:e.updateSummary,item_plans:e.planned,ids:[],...Zc(e)}),zT=e=>({...Zt({applied:0,skipped:e.listed.items.length,failed:0,unmatched:e.unmatchedIds?.length??0}),mode:"apply",matched_count:e.listed.items.length,dry_run:!1,filters:e.listed.filters,planned_update_options:e.updateSummary,updated_count:0,skipped_count:e.listed.items.length,failed_count:0,rows:e.planned.map(t=>({id:t.id,status:"skipped"})),ids:[],...Zc(e)}),BT=async e=>{let t=[],n=[],r=e.options.update.message??`update-many apply ${e.checkpointId}`,o=new Set(e.plans.filter(i=>i.changes.length>0).map(i=>i.id));for(let i of e.items){if(!o.has(i.id)){t.push({id:i.id,status:"skipped"});continue}try{let s=Ha({...e.options.update,message:r,runtimeFieldCommands:["update_many"]}),a=await rt(i.id,s,e.global);t.push({id:i.id,status:"updated",changed_fields:a.changed_fields,warnings:a.warnings}),n.push(i.id)}catch(s){t.push({id:i.id,status:"failed",error:Sn(s)})}}return{rows:t,updatedIds:n}},HT=async e=>{if(e.plan.actionable.length===0)return zT(e.plan);let t=S(),n=ii(Qc,t),r=new Set(e.plan.actionable.map(p=>p.id)),o=e.plan.listed.items.filter(p=>r.has(p.id)).map(p=>({id:p.id,target_updated_at:p.updated_at})),i=e.options.checkpoint===!1?void 0:await DT({pmRoot:e.runtime.pmRoot,checkpointId:n,nowValue:t,options:e.options,statusFilter:e.options.status,filters:e.plan.listed.filters,updateSummary:e.plan.updateSummary,checkpointItems:o}),s=await BT({items:e.plan.listed.items,plans:e.plan.planned,options:e.options,global:e.global,checkpointId:n}),a=p=>s.rows.filter(f=>f.status===p).length,c=a("updated"),m=a("skipped"),u=a("failed");return{...Zt({applied:c,skipped:m,failed:u,unmatched:e.plan.unmatchedIds?.length??0}),mode:"apply",matched_count:e.plan.listed.items.length,dry_run:!1,filters:e.plan.listed.filters,planned_update_options:e.plan.updateSummary,...i?{checkpoint:i}:{},updated_count:c,skipped_count:m,failed_count:u,rows:s.rows,ids:s.updatedIds,...Zc(e.plan)}},qh=async(e,t)=>{let n=await GT(t),r=typeof e.rollback=="string"?e.rollback:void 0;r===void 0&&(e={...e,update:Ha(await qc(e.update))});let o=Gh(e.update);if(NT(e.list),r!==void 0)return jT({runtime:n,rollbackId:r,options:e,global:t,updateSummary:o});if(!_T(e.update)&&e.dryRun!==!0)throw new d(`No update-many mutation flags provided. Add at least one mutation flag (for example: ${mT}), or pass --dry-run for a filter-only preview.`,l.USAGE);MT(e.update,n.settings,n.statusRegistry,n.pmRoot),Kc(e.update);let i=await rn({pmRoot:n.pmRoot,dependencies:hs(e.update.dep,n.settings.id_prefix,S(),C(e.update.author,n.settings.author_default)).additions,idPrefix:n.settings.id_prefix,itemFormat:n.settings.item_format,typeToFolder:x(n.settings,O()).type_to_folder,allowUnresolved:e.update.allowUnresolvedDeps}),s=await qT({options:e,global:t,runtime:n,updateSummary:o,dependencyWarnings:i});return await rn({pmRoot:n.pmRoot,dependencies:hs(e.update.dep,n.settings.id_prefix,S(),C(e.update.author,n.settings.author_default)).additions,idPrefix:n.settings.id_prefix,itemFormat:n.settings.item_format,typeToFolder:x(n.settings,O()).type_to_folder,allowUnresolved:e.update.allowUnresolvedDeps,holders:s.listed.items.map(a=>({id:a.id,createdAt:a.created_at})),schema:n.settings.schema}),e.dryRun===!0?KT(s):HT({runtime:n,options:e,global:t,plan: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]="374c7cb8-9fd0-5a2d-8aaf-9d09b63abaf0")}catch{}})();var VT=["create","show","add-step","update-step","complete-step","block-step","reorder-step","remove-step","link","unlink","decision","discovery","validation","resume","approve","materialize"],Kh=["brief","standard","deep"],Hh="plan-step-",il="draft",ol=["bug-investigation","feature-implementation","refactoring-sprint"],zh={"bug-investigation":[{title:"Reproduce the bug",body:"Capture exact steps, inputs, and the observed vs expected behavior."},{title:"Locate the root cause",body:"Trace the failure to the responsible code path with evidence."},{title:"Write a failing test",body:"Add a regression test that fails for the current bug."},{title:"Implement the fix",body:"Apply the minimal change that makes the failing test pass."},{title:"Verify and document",body:"Run the full suite and record the resolution and verification."}],"feature-implementation":[{title:"Clarify requirements & acceptance criteria",body:"Confirm scope, edge cases, and done-conditions."},{title:"Design the approach",body:"Decide the data model, interfaces, and integration points."},{title:"Implement the change",body:"Build the feature behind the agreed design."},{title:"Add tests",body:"Cover the new behavior and its edge cases."},{title:"Update docs & changelog",body:"Document the feature and surface it to users."}],"refactoring-sprint":[{title:"Map the current structure & risks",body:"Inventory the code to change and its blast radius."},{title:"Add characterization tests",body:"Lock in current behavior before refactoring."},{title:"Refactor incrementally",body:"Apply small, reversible steps keeping tests green."},{title:"Verify behavior is unchanged",body:"Run the full suite and compare against the baseline."},{title:"Clean up & document",body:"Remove dead code and record the new structure."}]};function WT(e){let t=e.trim().toLowerCase(),n=Object.prototype.hasOwnProperty.call(zh,t)?zh[t]:void 0;if(!n)throw new d(`Unknown plan template "${e}". Allowed: ${ol.join(", ")}`,l.USAGE,{code:"unknown_plan_template",examples:[`pm plan create --title "Fix login crash" --template ${ol[0]}`]});return n.map(r=>({...r}))}function YT(e,t){return t>0?Math.round(e/t*100):0}function Vh(e){return(Array.isArray(e)?e:e==null?[]:[e]).filter(n=>n!=null).map(n=>(typeof n=="string"?n:String(n)).trim()).filter(n=>n.length>0)}function Ke(e){return Array.isArray(e)?e.flatMap(t=>Mn(t,{unique:!1})):typeof e=="string"&&e.trim().length>0?Mn(e,{unique:!1}):[]}function Re(e){return Array.isArray(e)?e.map(t=>t.trim()).filter(Boolean):typeof e=="string"&&e.trim().length>0?[e.trim()]:[]}function Wh(e,t=il){if(e===void 0)return t;let n=e.trim().toLowerCase(),r=ia.find(o=>o===n);if(!r)throw new d(`Invalid plan mode "${e}". Allowed: ${ia.join(", ")}`,l.USAGE);return r}function sl(e,t="pending"){if(e===void 0)return t;let n=e.trim().toLowerCase(),r=sa.find(o=>o===n);if(!r)throw new d(`Invalid step status "${e}". Allowed: ${sa.join(", ")}`,l.USAGE);return r}function Yh(e,t="related"){if(e===void 0)return t;let n=e.trim().toLowerCase(),r=ca.find(o=>o===n);if(!r)throw new d(`Invalid step link kind "${e}". Allowed: ${ca.join(", ")}`,l.USAGE);return r}function JT(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t.length===0)return;let n=aa.find(r=>r===t);if(!n)throw new d(`Invalid plan harness "${e}". Allowed: ${aa.join(", ")}`,l.USAGE);return n}function XT(e){if(e===void 0)return"brief";let t=e.trim().toLowerCase(),n=Kh.find(r=>r===t);if(!n)throw new d(`Invalid --depth "${e}". Allowed: ${Kh.join(", ")}`,l.USAGE);return n}function QT(e){if(e===void 0)return null;let t=e.split(",").map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)throw new d("Plan --fields requires a comma-separated list of plan field names",l.USAGE);return t}var el=new Set(["id","title","status","mode","scope","harness","parent","resume_context","steps_summary","current_step","blocked_steps","steps","decisions","discoveries","validation","linked_items"]);function ZT(e,t){let n=e,r={},o=[];for(let i of t){let s=i.startsWith("plan.")?i.slice(5):i;if(s.length!==0){if(!el.has(s)){o.push(i);continue}Object.prototype.hasOwnProperty.call(n,s)&&(r[s]=n[s])}}if(o.length>0)throw new d(`Unknown Plan --fields value(s): ${o.join(", ")}`,l.USAGE,{nextSteps:[`Use --fields ${[...el].join(",")}`,"Run pm plan show <id> --depth brief for compact default fields."],recovery:{provided_fields:o,suggested_retry:`pm plan show <id> --fields ${[...el].join(",")}`}});return r}function al(e,t){let n={};for(let r of e.split(",")){let o=r.trim();if(o.length===0)continue;let i=o.indexOf("=");if(i<=0)throw new d(`Invalid ${t} entry "${o}"; expected key=value`,l.USAGE,{code:"malformed_plan_step_evidence",required:`${t} entries must use comma-separated key=value fields.`,why:"Structured Plan evidence must be validated before it is persisted.",examples:['--file "path=src/index.ts,scope=project,note=implementation"','--test "command=pnpm test,note=regression"','--doc "path=docs/PLAN.md,scope=project"']});n[o.slice(0,i).trim().toLowerCase()]=o.slice(i+1).trim()}return n}function cl(e){let t=al(e,"--file");if(!t.path)throw new d("--file requires path=<value>",l.USAGE,{code:"malformed_plan_step_evidence",required:"--file requires a non-empty path field.",why:"Plan file evidence needs a stable path for later verification."});let n={path:t.path};return(t.scope==="global"||t.scope==="project")&&(n.scope=t.scope),t.note&&(n.note=t.note),n}function ll(e){let t=al(e,"--test");if(!t.command&&!t.path)throw new d("--test requires at least command=<value> or path=<value>",l.USAGE,{code:"malformed_plan_step_evidence",required:"--test requires a command or path field.",why:"Plan test evidence must identify something runnable or inspectable."});let n={};return t.command&&(n.command=t.command),t.path&&(n.path=t.path),t.note&&(n.note=t.note),n}function dl(e){let t=al(e,"--doc");if(!t.path)throw new d("--doc requires path=<value>",l.USAGE,{code:"malformed_plan_step_evidence",required:"--doc requires a non-empty path field.",why:"Plan documentation evidence needs a stable path for later verification."});let n={path:t.path};return(t.scope==="global"||t.scope==="project")&&(n.scope=t.scope),t.note&&(n.note=t.note),n}function eC(e){let t={total:e.length,pending:0,in_progress:0,blocked:0,completed:0,skipped:0,superseded:0,completion_pct:0};for(let n of e)t[n.status]+=1;return t.completion_pct=YT(t.completed,t.total),t}function tC(e){let t=new Set(e.map(n=>n.id));for(let n=e.length+1;n<e.length+1024;n+=1){let r=`${Hh}${String(n).padStart(3,"0")}`;if(!t.has(r))return r}throw new d("Could not allocate step id (limit reached)",l.GENERIC_FAILURE)}function Vn(e,t){let n=t.trim();if(n.length===0)throw new d("Step reference cannot be empty",l.USAGE);let r=e.find(o=>o.id===n);if(r)return r;if(/^\d+$/.test(n)){let o=Number.parseInt(n,10),i=e.find(s=>s.order===o);if(i)return i}throw new d(`Step "${t}" not found in plan`,l.NOT_FOUND)}function Bh(e){if(e.status==="completed")return{reason:"already_completed"};let t=(e.linked_items??[]).find(n=>n.kind==="implements");if(t)return{reason:"already_materialized",existing_id:t.id}}function nC(e,t){let n=t.filter(s=>s.trim().toLowerCase()==="all"),r=[],o=[];if(n.length>0){if(t.length>n.length)throw new d("pm plan materialize --steps all cannot be combined with other step refs",l.USAGE);for(let s of e.slice().sort((a,c)=>a.order-c.order)){let a=Bh(s);if(a){o.push({from_step:s.id,...a});continue}r.push(s)}return{targets:r,skipped:o}}let i=new Set;for(let s of t){let a=Vn(e,s);if(i.has(a.id))continue;i.add(a.id);let c=Bh(a);if(c){o.push({from_step:a.id,...c});continue}r.push(a)}return{targets:r,skipped:o}}function rC(e,t){let n=e==="decision"?t.decisionText:e==="discovery"?t.discoveryText:t.validationText,r=e==="decision"?t.decision:e==="discovery"?t.discovery:t.validation;return n?.trim()||r?.trim()||void 0}function oC(e){return e.find(t=>t.status==="in_progress")??e.find(t=>t.status==="pending")}function iC(e){return e.filter(t=>t.status==="blocked").map(t=>({id:t.id,order:t.order,title:t.title,blocked_reason:t.blocked_reason}))}function $e(e,t="brief"){let n=(e.plan_steps??[]).slice().sort((s,a)=>s.order-a.order),r=eC(n),o=oC(n),i={id:e.id,title:e.title,status:e.status,mode:e.plan_mode??il,scope:e.plan_scope,harness:e.plan_harness,parent:e.parent,resume_context:e.plan_resume_context,steps_summary:r,current_step:o?{id:o.id,order:o.order,title:o.title,status:o.status}:void 0,blocked_steps:iC(n),linked_items:(e.dependencies??[]).map(s=>({id:s.id,kind:s.kind}))};return(t==="standard"||t==="deep")&&(i.steps=n),t==="deep"&&(i.decisions=e.plan_decisions??[],i.discoveries=e.plan_discoveries??[],i.validation=e.plan_validation??[]),i}function Me(e,t){let n=[];return t.steps_summary.total===0&&n.push(`pm plan add-step ${e} --step-title "First step"`),t.current_step&&n.push(`pm plan update-step ${e} ${t.current_step.id} --step-status in_progress`,`pm plan complete-step ${e} ${t.current_step.id} --step-evidence "..."`),t.steps_summary.blocked>0&&n.push(`pm plan show ${e} --depth standard`),(t.mode==="draft"||t.mode==="research")&&n.push(`pm plan approve ${e} --message "ready to execute"`),t.steps_summary.completed===t.steps_summary.total&&t.steps_summary.total>0&&!Wa(t.mode)&&t.status!=="closed"&&t.status!=="canceled"&&n.push(`pm close ${e} "plan complete"`),n}function Jh(e){if((e.type??"").trim().toLowerCase()!=="plan")throw new d(`Item ${e.id} is type ${e.type}; pm plan commands require type=Plan. Use pm plan create or pm create --type Plan first.`,l.USAGE,{code:"wrong_item_type",required:"Use pm plan commands only with items whose type is Plan.",why:"Plan commands read and mutate Plan-specific step, decision, discovery, and validation fields.",examples:[`pm get ${e.id} --depth brief`,'pm plan create --title "Execution plan" --scope "<goal>"']})}async function sC(e){let t=E(process.cwd(),e.path);await I(t);let n=await A(t);return{pmRoot:t,settings:n}}async function Xh(e,t){let n=x(e.settings,O()),r=await q(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,n.type_to_folder);if(!r)throw new d(`Plan ${t} not found`,l.NOT_FOUND);let o=await ie(r,{schema:e.settings.schema});return Jh(o.document.metadata),{document:o.document,itemId:r.id}}function aC(e){let t=[];e.parent&&t.push(`id=${e.parent.trim()},kind=parent`);for(let n of Ke(e.related))t.push(`id=${n},kind=related`);for(let n of Ke(e.blocks))t.push(`id=${n},kind=blocks`);for(let n of Ke(e.blockedBy))t.push(`id=${n},kind=blocked_by`);return t.length>0?t:void 0}function cC(e){let t=e.validationText?.trim(),n=e.validationCommand?.trim(),r=e.validationExpected?.trim();if(!(!t&&!n&&!r))return{text:t||n||"Validation check",command:n||void 0,expected:r||void 0}}function lC(e){return!!e.stepBody?.trim()||!!e.stepOwner?.trim()||!!e.stepStatus?.trim()||!!e.stepEvidence?.trim()||!!e.stepBlockedReason?.trim()||!!e.stepReplacement?.trim()||Ke(e.dependsOn).length>0||Ke(e.link).length>0}function dC(e){let t=e.stepTitle?.trim()||void 0,n=Vh(e.step),r=e.template?.trim()?WT(e.template):[];return{repeatedStepTitles:n,stepTitleFlag:t,stepTitles:[...t?[t]:[],...n,...r.map(o=>o.title)],templateSteps:r}}function mC(e,t){if((e.stepTitleFlag||e.repeatedStepTitles.length>0)&&e.templateSteps.length>0)throw new d("pm plan create --template cannot be combined with --step-title or --step; choose one step seeding source",l.USAGE,{code:"ambiguous_option_combination",examples:[`pm plan create --title "Fix login crash" --template ${ol[0]}`,'pm plan create --title "Custom plan" --step "Read the code" --step "Write the fix"']});if(e.stepTitles.length>1&&t)throw new d("pm plan create per-step options apply to a single initial step; with multiple --step values create the plan first, then refine steps individually",l.USAGE,{code:"ambiguous_option_combination",examples:['pm plan create --title "Execution plan" --step "Read the code" --step "Write the fix"','pm plan update-step <plan-id> plan-step-001 --step-body "Inspect retry path"']})}function uC(e,t){let n=sl(e.stepStatus,"pending"),r=ml(e,"depends_on"),o=Re(e.file).map(cl),i=Re(e.test).map(ll),s=Re(e.doc).map(dl),a=S();return{id:"plan-step-001",order:1,title:t,body:e.stepBody?.trim()||void 0,status:n,owner:e.stepOwner?.trim()||void 0,evidence:e.stepEvidence?.trim()||void 0,blocked_reason:n==="blocked"?e.stepBlockedReason?.trim()||"":void 0,linked_items:r.length>0?r:void 0,files:o.length>0?o:void 0,tests:i.length>0?i:void 0,docs:s.length>0?s:void 0,created_at:a,updated_at:a,completed_at:n==="completed"?a:void 0}}function pC(e){let t=dC(e),n=lC(e);if(mC(t,n),t.stepTitles.length===0)return{steps:[],hasPerStepDetailOptions:n};if(t.stepTitles.length===1)return{steps:[uC(e,t.stepTitles[0])],hasPerStepDetailOptions:n};let r=S();return{steps:t.stepTitles.map((o,i)=>({id:`${Hh}${String(i+1).padStart(3,"0")}`,order:i+1,title:o,body:t.templateSteps[i]?.body,status:"pending",created_at:r,updated_at:r})),hasPerStepDetailOptions:n}}function Qh(e,t,n=[]){Ae(e,t),n.length>0&&jp(t,n)}async function fC(e,t,n){let r=e.title?.trim();if(!r)throw new d("pm plan create requires --title",l.USAGE,{code:"missing_required_option",examples:['pm plan create --title "Refactor lock retry" --scope pm-a1b2']});let o=Wh(e.mode,il),i=JT(e.harness),s=e.fromSearch?.trim(),a=cC(e),{steps:c,hasPerStepDetailOptions:m}=pC(e);if(c.length===0&&m)throw new d("pm plan create step options require --step-title (or a single --step)",l.USAGE,{code:"missing_required_option",examples:['pm plan create --title "Execution plan" --step-title "Read the code"']});let u=e.description?.trim()??e.scope?.trim()??r,p=e.claim?C(e.author,n.settings.author_default):e.assignee?.trim()||void 0,f={...e,title:r,description:u,type:"Plan",template:void 0,file:Re(e.file),test:Re(e.test),doc:Re(e.doc),field:Re(e.field),assignee:C(e.author,n.settings.author_default),blockedBy:void 0,dep:aC(e),message:e.message??(s?`plan create (search: ${s})`:"plan create")};Qh(e,f);let _=await qt(f,t),h=await se({pmRoot:n.pmRoot,settings:n.settings,id:_.item.id,op:"plan_create_metadata",author:C(e.author,n.settings.author_default),message:"seed plan metadata",mutate(g){let v=["plan_mode"];g.metadata.plan_mode=o,i&&(g.metadata.plan_harness=i,v.push("plan_harness"));let b=e.scope?.trim();b&&(g.metadata.plan_scope=b,v.push("plan_scope"));let k=e.resumeContext?.trim();return k&&(g.metadata.plan_resume_context=k,v.push("plan_resume_context")),g.metadata.plan_steps=c,v.push("plan_steps"),a&&(g.metadata.plan_validation=[...g.metadata.plan_validation??[],a],v.push("plan_validation")),p&&(g.metadata.assignee=p,v.push("assignee")),{changedFields:v}}}),y=$e(h.item,"brief");return{action:"create",plan:y,step:c[0],next_actions:Me(_.item.id,y),warnings:[..._.warnings],generated_at:S()}}async function _C(e,t,n){let r=XT(t.depth),o=QT(t.fields),{document:i,itemId:s}=await Xh(n,e),a=$e(i.metadata,o===null?r:"deep");return{action:"show",plan:o===null?a:ZT(a,o),next_actions:Me(s,a),warnings:[],generated_at:S()}}function hC(e,t){let n=new Map(Object.entries(t).filter(([r])=>r.startsWith("plan_")).map(([r,o])=>[r,JSON.stringify(o)]));return[...new Set([...e.keys(),...n.keys()])].filter(r=>e.get(r)!==n.get(r))}async function ot(e){let t=C(e.options.author,e.ctx.settings.author_default),n,r=await se({pmRoot:e.ctx.pmRoot,settings:e.ctx.settings,id:e.id,op:e.op,author:t,message:e.options.message??e.message,force:e.options.force,mutate(o){Jh(o.metadata);let i=F(e.ctx.settings.schema);if(ne(o.metadata.status,i)||Wa(o.metadata.plan_mode))throw new d(`Plan ${o.metadata.id} is terminal (status=${o.metadata.status}, plan_mode=${o.metadata.plan_mode??"unset"}) and cannot be mutated.`,l.CONFLICT,{code:"terminal_plan_mutation",required:"Create or reopen a non-terminal Plan before changing its execution context or steps.",why:"Terminal Plan history is immutable execution evidence."});let s=(o.metadata.plan_steps??[]).slice(),a=new Map(Object.entries(o.metadata).filter(([p])=>p.startsWith("plan_")).map(([p,f])=>[p,JSON.stringify(f)])),c=e.mutator(s,o);n=c.resultStep;let m=s.slice().sort((p,f)=>p.order-f.order).map((p,f)=>({...p,order:f+1}));o.metadata.plan_steps=m;let u=hC(a,o.metadata);return u.length===0&&c.changedSteps.length===0?{changedFields:[]}:{changedFields:u.length>0?u:["plan_steps"]}}});return{document:{metadata:r.item,body:r.body},resultStep:n,itemId:r.item.id}}async function gC(e,t,n){let r=t.stepTitle?.trim();if(!r)throw new d("pm plan add-step requires --step-title",l.USAGE);let o=sl(t.stepStatus,"pending"),i=t.allowMultipleActive===!0,{document:s,resultStep:a,itemId:c}=await ot({id:e,options:t,ctx:n,op:"plan_add_step",message:`plan add-step "${r}"`,mutator(u){let p=u.length+1;Zh(u,void 0,o,i);let f=yC(u,t,{order:p,title:r,status:o});return u.push(f),{changedSteps:[f.id],resultStep:f}}}),m=$e(s.metadata,"standard");return{action:"add-step",plan:m,step:a,next_actions:Me(c,m),warnings:[],generated_at:S()}}function Zh(e,t,n,r){if(n!=="in_progress"||r)return;let o=e.find(i=>i.id!==t&&i.status==="in_progress");if(o)throw new d(`Plan already has step ${o.id} in_progress. Pass --allow-multiple-active or update that step first.`,l.CONFLICT)}function yC(e,t,n){let r=ml(t,"depends_on"),o=Re(t.file).map(cl),i=Re(t.test).map(ll),s=Re(t.doc).map(dl),a=S();return{id:tC(e),order:n.order,title:n.title,body:t.stepBody?.trim()||void 0,status:n.status,owner:t.stepOwner?.trim()||void 0,evidence:t.stepEvidence?.trim()||void 0,blocked_reason:n.status==="blocked"?t.stepBlockedReason?.trim()||"":void 0,linked_items:r.length>0?r:void 0,files:o.length>0?o:void 0,tests:i.length>0?i:void 0,docs:s.length>0?s:void 0,created_at:a,updated_at:a,completed_at:n.status==="completed"?a:void 0}}function ml(e,t){let n=Ke(e.dependsOn).map(u=>({id:u,kind:t})),r=Ke(e.related).map(u=>({id:u,kind:"related"})),o=Ke(e.blocks).map(u=>({id:u,kind:"blocks"})),i=Ke(e.blockedBy).map(u=>({id:u,kind:"blocked_by"})),s=Ke(e.link),a=Yh(e.linkKind,t),c=e.linkNote?.trim(),m=s.map(u=>{let p={id:u,kind:a};return c&&(p.note=c),p});return[...n,...r,...o,...i,...m]}async function tl(e,t,n,r){let{document:o,resultStep:i,itemId:s}=await ot({id:e,options:t,ctx:n,op:r.op,message:t.message??`${r.op} ${r.stepRef}`,mutator(c,m){let u=Vn(c,r.stepRef),p=S(),f=r.finalStatus??sl(t.stepStatus,u.status),_=t.allowMultipleActive===!0||r.allowMultipleActive===!0;return Zh(c,u.status==="in_progress"?u.id:void 0,f,_),vC(u,t,f,p),m.metadata.updated_at=p,{changedSteps:[u.id],resultStep:u}}}),a=$e(o.metadata,"standard");return{action:r.op==="plan_complete_step"?"complete-step":r.op==="plan_block_step"?"block-step":"update-step",plan:a,step:i,next_actions:Me(s,a),warnings:[],generated_at:S()}}function vC(e,t,n,r){wC(e,t,n),bC(e,t),e.status=n,e.updated_at=r,kC(e,n,r)}function wC(e,t,n){if(!(n!=="blocked"||t.stepBlockedReason?.trim()||e.blocked_reason))throw new d("Blocking a step requires --step-blocked-reason or an already-recorded blocked_reason.",l.USAGE)}function bC(e,t){let n=t.stepTitle?.trim();n&&(e.title=n),t.stepBody!==void 0&&(e.body=t.stepBody.trim()||void 0),t.stepOwner!==void 0&&(e.owner=t.stepOwner.trim()||void 0),t.stepEvidence!==void 0&&(e.evidence=t.stepEvidence.trim()||void 0),t.stepBlockedReason!==void 0&&(e.blocked_reason=t.stepBlockedReason.trim()||void 0),t.stepReplacement!==void 0&&(e.superseded_by=t.stepReplacement.trim()||void 0);let r=Re(t.file).map(cl),o=Re(t.test).map(ll),i=Re(t.doc).map(dl);r.length>0&&(e.files=nl(e.files,r)),o.length>0&&(e.tests=nl(e.tests,o)),i.length>0&&(e.docs=nl(e.docs,i))}function nl(e,t){let n=[...e??[]],r=new Set(n.map(o=>JSON.stringify(o)));for(let o of t){let i=JSON.stringify(o);r.has(i)||(r.add(i),n.push(o))}return n}function kC(e,t,n){if(t==="completed"&&!e.completed_at){e.completed_at=n;return}t!=="completed"&&(e.completed_at=void 0)}async function SC(e,t,n,r,o){let{document:i,itemId:s}=await ot({id:e,options:t,ctx:n,op:"plan_reorder_step",message:t.message??`plan reorder-step ${r} -> ${o}`,mutator(c){let m=Vn(c,r),u=c.filter(f=>f.id!==m.id),p=Math.max(1,Math.min(o,u.length+1));return u.splice(p-1,0,m),u.forEach((f,_)=>{f.order=_+1,f.updated_at=S()}),c.length=0,c.push(...u),{changedSteps:[m.id],resultStep:m}}}),a=$e(i.metadata,"standard");return{action:"reorder-step",plan:a,next_actions:Me(s,a),warnings:[],generated_at:S()}}async function EC(e,t,n,r){let{document:o,itemId:i}=await ot({id:e,options:t,ctx:n,op:"plan_remove_step",message:t.message??`plan remove-step ${r}`,mutator(a){let c=Vn(a,r),m=a.filter(u=>u.id!==c.id);return m.forEach((u,p)=>{u.order=p+1}),a.length=0,a.push(...m),{changedSteps:[c.id]}}}),s=$e(o.metadata,"standard");return{action:"remove-step",plan:s,next_actions:Me(i,s),warnings:[],generated_at:S()}}async function AC(e,t,n,r){let o=ml(t,Yh(t.linkKind,"related"));if(o.length===0)throw new d("pm plan link requires at least one --link/--related/--blocks/--blocked-by/--depends-on id",l.USAGE);let i=t.promoteToItemDep===!0,{document:s,itemId:a,resultStep:c}=await ot({id:e,options:t,ctx:n,op:"plan_link_step",message:t.message??`plan link ${r}`,mutator(u,p){let f=Vn(u,r),_=f.linked_items??[],h=g=>`${g.kind}:${g.id}`,y=new Set(_.map(h));for(let g of o){let v=h(g);y.has(v)||(_.push(g),y.add(v))}if(f.linked_items=_,f.updated_at=S(),i){let g=p.metadata.dependencies??[],v=k=>`${k.kind}:${k.id}`,b=new Set(g.map(v));for(let k of o){let T=k.kind==="depends_on"?"blocked_by":k.kind,R={id:k.id,kind:T,created_at:S(),author:C(t.author,n.settings.author_default)};b.has(v(R))||(g.push(R),b.add(v(R)))}p.metadata.dependencies=g}return{changedSteps:[f.id],resultStep:f}}}),m=$e(s.metadata,"standard");return{action:"link",plan:m,step:c,next_actions:Me(a,m),warnings:[],generated_at:S()}}async function TC(e,t,n,r){let o=Ke(t.link);if(o.length===0)throw new d("pm plan unlink requires --link <id> to remove",l.USAGE);let{document:i,itemId:s,resultStep:a}=await ot({id:e,options:t,ctx:n,op:"plan_unlink_step",message:t.message??`plan unlink ${r}`,mutator(m){let u=Vn(m,r),p=(u.linked_items??[]).filter(f=>!o.includes(f.id));return u.linked_items=p.length>0?p:void 0,u.updated_at=S(),{changedSteps:[u.id],resultStep:u}}}),c=$e(i.metadata,"standard");return{action:"unlink",plan:c,step:a,next_actions:Me(s,c),warnings:[],generated_at:S()}}async function rl(e,t,n,r){let o=rC(r,t);if(!o){let m=`--${r}-text`,u=`--${r}`;throw new d(`pm plan ${r} requires ${m}`,l.USAGE,{code:"missing_required_option",examples:[`pm plan ${r} <plan-id> ${m} "..."`,`pm plan ${r} <plan-id> ${u} "..."`],recovery:{suggested_retry:`pm plan ${r} <plan-id> ${m} <value>`}})}let i=C(t.author,n.settings.author_default),{document:s,itemId:a}=await ot({id:e,options:t,ctx:n,op:`plan_append_${r}`,message:t.message??`plan ${r} append`,mutator(m,u){let p=S();if(r==="decision"){let _=u.metadata.plan_decisions??[];return _.push({ts:p,author:i,decision:o,rationale:t.decisionRationale?.trim()||void 0,evidence:t.decisionEvidence?.trim()||void 0}),u.metadata.plan_decisions=_,{changedSteps:[]}}if(r==="discovery"){let _=u.metadata.plan_discoveries??[];return _.push({ts:p,author:i,text:o}),u.metadata.plan_discoveries=_,{changedSteps:[]}}let f=u.metadata.plan_validation??[];return f.push({text:o,command:t.validationCommand?.trim()||void 0,expected:t.validationExpected?.trim()||void 0}),u.metadata.plan_validation=f,{changedSteps:[]}}}),c=$e(s.metadata,"deep");return{action:r,plan:c,next_actions:Me(a,c),warnings:[],generated_at:S()}}async function CC(e,t,n){let r=t.resumeContext?.trim();if(!r)throw new d("pm plan resume requires --resume-context <text>",l.USAGE);let{document:o,itemId:i}=await ot({id:e,options:t,ctx:n,op:"plan_resume",message:t.message??"plan resume context update",mutator(a,c){c.metadata.plan_resume_context=r;let m=t.scope?.trim();return m&&(c.metadata.plan_scope=m),{changedSteps:[]}}}),s=$e(o.metadata,"brief");return{action:"resume",plan:s,next_actions:Me(i,s),warnings:[],generated_at:S()}}async function IC(e,t,n){let r=Wh(t.mode??"approved","approved"),{document:o,itemId:i}=await ot({id:e,options:t,ctx:n,op:"plan_approve",message:t.message??`plan approve mode=${r}`,mutator(a,c){c.metadata.plan_mode=r;let m=t.scope?.trim();return m&&(c.metadata.plan_scope=m),{changedSteps:[]}}}),s=$e(o.metadata,"brief");return{action:"approve",plan:s,next_actions:Me(i,s),warnings:[],generated_at:S()}}function eg(e){return e.map(t=>`plan_materialize_skipped:${t.from_step}:${t.reason}${t.existing_id?`:${t.existing_id}`:""}`)}function RC(e,t){let n=$e(e.document.metadata,"standard");return{action:"materialize",plan:n,materialized:[],materialize_skipped:t,next_actions:Me(e.itemId,n),warnings:eg(t),generated_at:S()}}function OC(e,t,n){let r=[`id=${e},kind=parent`,`id=${t},kind=discovered_from`];for(let o of n.linked_items??[]){let i=o.kind==="blocked_by"||o.kind==="blocks"||o.kind==="related"||o.kind==="discovered_from"?o.kind:"related";r.push(`id=${o.id},kind=${i}`)}return r}async function xC(e){let t=[],n={},r=new Set(["title","description","type","parent","tags","author","message","dep"]);for(let o of Re(e.options.field)){let i=o.indexOf("=");if(i<=0)throw new d(`Invalid --field entry "${o}"; expected name=value`,l.USAGE);let s=o.slice(0,i).trim(),a=o.slice(i+1).trim();if(s.length===0)throw new d(`Invalid --field entry "${o}"; expected name=value`,l.USAGE);let c=s.trim().replaceAll(/([a-z0-9])([A-Z])/g,"$1 $2").replaceAll(/[^A-Za-z0-9]+/g," ").split(/\s+/).filter(Boolean).map(f=>f.toLowerCase());if(c.length===0)throw new d(`Invalid --field entry "${o}"; expected name=value`,l.USAGE);let[m,...u]=c,p=`${m}${u.map(f=>`${f.slice(0,1).toUpperCase()}${f.slice(1)}`).join("")}`;if(r.has(p))throw new d(`Invalid --field entry "${o}"; "${p}" is reserved by materialize and cannot be overridden`,l.USAGE);n[p]=a}for(let o of e.targets){let i={...n,title:o.title,description:o.body?.trim()||o.title,type:e.resolvedTypeName,parent:e.parent,tags:e.tags,author:e.options.author,message:e.options.message??`materialized from plan ${e.planItemId} step ${o.id}`,dep:OC(e.parent,e.planItemId,o)};Qh(e.options,i,["description",...Object.keys(n)]);let s=await qt(i,{path:e.pmRoot});t.push({id:s.item.id,title:s.item.title,type:e.resolvedTypeName,parent:s.item.parent,tags:s.item.tags??[],from_step:o.id})}return t}function PC(e,t,n){for(let r of t){let o=n.find(a=>a.from_step===r.id);if(!o)continue;let i=e.find(a=>a.id===r.id);if(!i)continue;let s=i.linked_items??[];s.push({id:o.id,kind:"implements",note:`materialized as ${o.type}`}),i.linked_items=s,i.updated_at=S()}}async function LC(e,t,n){let r=Ke(t.steps);if(r.length===0)throw new d("pm plan materialize requires --steps <ids|orders|all>",l.USAGE);let o=t.materializeType?.trim()||"Task",i=x(n.settings,O()),s=we(o,i);if(!s)throw new d(`Invalid --materialize-type "${o}"`,l.USAGE);let a=t.materializeParent?.trim()||e,c=t.materializeTags,m=await Xh(n,e),u=(m.document.metadata.plan_steps??[]).slice(),{targets:p,skipped:f}=nC(u,r);if(p.length===0){if(f.length>0)return RC(m,f);throw new d("No matching plan steps found for --steps",l.NOT_FOUND)}let _=await xC({targets:p,parent:a,planItemId:m.itemId,resolvedTypeName:s,tags:c,options:t,pmRoot:n.pmRoot}),{document:h,itemId:y}=await ot({id:e,options:t,ctx:n,op:"plan_materialize",message:t.message??`plan materialize ${r.join(",")}`,mutator(v){return PC(v,p,_),{changedSteps:p.map(b=>b.id)}}}),g=$e(h.metadata,"standard");return{action:"materialize",plan:g,materialized:_,...f.length>0?{materialize_skipped:f}:{},next_actions:Me(y,g),warnings:eg(f),generated_at:S()}}function NC(e){if(e.subcommand==="create")return e;let t=Vh(e.options.step);if(t.length>1)throw new d(`pm plan ${e.subcommand} accepts a single --step/--step-title value (repeated --step seeds ordered steps only on pm plan create)`,l.USAGE);return t.length===1&&!e.options.stepTitle?.trim()?{...e,options:Ae(e.options,{...e.options,stepTitle:t[0]})}:e}function wt(e,t){if(!e.id)throw new d(`pm plan ${t} requires a plan id`,l.USAGE);return e.id}function pn(e,t){let n=wt(e,t);if(!e.stepRef)throw new d(`pm plan ${t} requires <plan-id> <step>`,l.USAGE);return{id:n,stepRef:e.stepRef}}function $C(e){let t=pn(e,"reorder-step");if(e.reorderTo===void 0)throw new d("pm plan reorder-step requires <plan-id> <step> <new-order>",l.USAGE);return{...t,reorderTo:e.reorderTo}}var MC={create:(e,t)=>fC(e.options,e.global,t),show:(e,t)=>_C(wt(e,"show"),e.options,t),"add-step":(e,t)=>gC(wt(e,"add-step"),e.options,t),"update-step":(e,t)=>{let n=pn(e,"update-step");return tl(n.id,e.options,t,{stepRef:n.stepRef,op:"plan_update_step"})},"complete-step":(e,t)=>{let n=pn(e,"complete-step");return tl(n.id,e.options,t,{stepRef:n.stepRef,finalStatus:"completed",op:"plan_complete_step"})},"block-step":(e,t)=>{let n=pn(e,"block-step");return tl(n.id,e.options,t,{stepRef:n.stepRef,finalStatus:"blocked",op:"plan_block_step"})},"reorder-step":(e,t)=>{let n=$C(e);return SC(n.id,e.options,t,n.stepRef,n.reorderTo)},"remove-step":(e,t)=>{let n=pn(e,"remove-step");return EC(n.id,e.options,t,n.stepRef)},link:(e,t)=>{let n=pn(e,"link");return AC(n.id,e.options,t,n.stepRef)},unlink:(e,t)=>{let n=pn(e,"unlink");return TC(n.id,e.options,t,n.stepRef)},decision:(e,t)=>rl(wt(e,"decision"),e.options,t,"decision"),discovery:(e,t)=>rl(wt(e,"discovery"),e.options,t,"discovery"),validation:(e,t)=>rl(wt(e,"validation"),e.options,t,"validation"),resume:(e,t)=>CC(wt(e,"resume"),e.options,t),approve:(e,t)=>IC(wt(e,"approve"),e.options,t),materialize:(e,t)=>LC(wt(e,"materialize"),e.options,t)};function FC(e){let t=MC[e];if(!t)throw Ne({command_path:"plan",token:e,allowed:VT});return t}async function tg(e){let t=await sC(e.global),n=NC(e);return FC(n.subcommand)(n,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]="64b269aa-d285-53bb-8949-b75bed767479")}catch{}})();function DC(e,t){return[...new Set([...ao.filter(r=>e[r]!==void 0),...Object.keys(e).filter(r=>e[r]!==void 0),...t.length>0?["body"]:[]])].sort((r,o)=>r.localeCompare(o))}function UC(e,t){let n=`copied_from=${e}`;if(!t)return n;let r=t.trim();return r.length>0?`${r} | ${n}`:n}async function ul(e,t,n){let r=E(process.cwd(),n.path);await I(r);let o=await A(r),i=x(o,O()),s=await q(r,e,o.id_prefix,o.item_format,i.type_to_folder);if(!s)throw await _t(r,e,o.id_prefix,i.type_to_folder);let a=await ie(s,{schema:o.schema}),c=a.document.metadata,m=S(),u=C(t.author,o.author_default),p=await gr(r,o.id_prefix,{tokenLength:o.ids.token_length,typeToFolder:i.type_to_folder,probeExisting:!1}),f=F(o.schema),_=t.title?.trim();if(_!==void 0&&_.length===0)throw new d("Copy --title must not be empty",l.USAGE);let h={...c,id:p,title:_??c.title,status:f.open_status,created_at:m,updated_at:m};delete h.closed_at,delete h.completed_at,delete h.close_reason,delete h.test_runs;let y=Ct(O()),g=et({metadata:h,body:a.document.body},{schema:o.schema,extensionFieldNames:y}),v=await jn({title:g.metadata.title,description:g.metadata.description,body:g.body,excludeIds:[s.id]},{pmRoot:r,mode:o.governance.duplicate_detection_mode==="strict"&&t.allowDuplicate!==!0?"off":o.governance.duplicate_detection_mode,threshold:o.governance.duplicate_detection_threshold,limit:o.governance.duplicate_detection_limit,allowDuplicate:t.allowDuplicate}),b=DC(g.metadata,g.body),k=dt(r,g.metadata.type,p,o.item_format,i.type_to_folder),T=Qe(r,p),R=await Ee(r,p,o.locks.ttl_seconds,u,!1,o.governance.force_required_for_stale_lock,o.locks.wait_ms),$={metadata:{},body:""},M,K;try{let z=await $t(r,u,{required:o.governance.duplicate_detection_mode==="strict"&&t.allowDuplicate!==!0});try{o.governance.duplicate_detection_mode==="strict"&&t.allowDuplicate!==!0&&await jn({title:g.metadata.title,description:g.metadata.description,body:g.body,excludeIds:[s.id]},{pmRoot:r,mode:"strict",threshold:o.governance.duplicate_detection_threshold,limit:o.governance.duplicate_detection_limit,allowDuplicate:!1});let B=await q(r,p,o.id_prefix,o.item_format,i.type_to_folder);if(B)throw new d(`Cannot copy to ${p}: an item with that id already exists at ${B.itemPath}. Retry the copy to allocate a new id.`,l.CONFLICT,{code:"item_id_collision",why:`Allocated id ${p} already exists at ${B.itemPath}.`,recovery:{suggested_retry:`pm copy ${s.id}`}});await te(k,Be(g,{format:o.item_format,schema:o.schema,extensionFieldNames:y}));try{let ue=Pe({nowIso:m,author:u,op:"create",before:$,after:g,message:UC(s.id,t.message)});await Lt(T,ue)}catch(ue){throw await bn(k),ue}K=await Mt({pmRoot:r,preferredFormat:o.item_format,typeToFolder:i.type_to_folder,schema:o.schema,itemPath:k,document:g})}finally{await z()}M=[...await J({path:k,scope:"project",op:"create",item_id:g.metadata.id,item_type:g.metadata.type,before:$,after:g,changed_fields:b}),...await J({path:T,scope:"project",op:"create:history",item_id:g.metadata.id,item_type:g.metadata.type,before:$,after:g,changed_fields:b})],An({id:g.metadata.id,op:"create",item_type:g.metadata.type,status:g.metadata.status,current:Qt(g.metadata,b),changed_fields:b})}finally{await R()}return{source_id:s.id,item:structuredClone(g.metadata),changed_fields:b,warnings:[...$i(v),...K,...M],...v===void 0?{}:{similarity_advisory:v}}}import vs 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]="eef2ba25-bbdb-5c06-9f90-1cf485e98497")}catch{}})();async function pl(e,t,n){let r=E(process.cwd(),n.path);await I(r);let o=await A(r),i=C(t.author,o.author_default),s=await $p({pmRoot:r,settings:o,id:e,author:i,message:t.message,force:t.force,dryRun:t.dryRun}),a=s.targetPath?vs.relative(r,s.targetPath).split(vs.sep).join("/"):void 0;return{item:s.item,changed_fields:s.changedFields,dry_run:t.dryRun===!0,deleted:t.dryRun!==!0,outcome:t.dryRun===!0?"would_delete":"deleted",previous_status:s.item.status,...a?{target_path:a}:{},history_retained:vs.relative(r,Qe(r,s.item.id)).split(vs.sep).join("/"),tombstone_retention:"retain_append_only",warnings:s.warnings}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8023e71b-f733-572c-bdc0-e9b8f481232c")}catch{}})();async function GC(e){await I(e)}async function fl(e,t,n){let r=E(process.cwd(),n.path);if(await GC(r),t.clear===!0){if(e!==void 0)throw new d("pm focus --clear does not take an item id. Use 'pm focus --clear' to clear focus or 'pm focus <id>' to set it.",l.USAGE);let p=await A(r),f=Rn(C(void 0,p.author_default));return await op(r),await Li({pmRoot:r,settings:p,principal:f}),{action:"clear",focused_item:null,title:null,message:"Focus cleared. New items will not inherit a default parent."}}if(e===void 0){let p=await ti(r);if(p===void 0)return{action:"show",focused_item:null,title:null,message:"No focus set. Use 'pm focus <id>' to set a default parent for new items."};let f=await jC(r,p);return{action:"show",focused_item:p,title:f,message:`Focused on ${p}${f?` (${f})`:""}. New items default --parent to it.`}}let i=await A(r),s=x(i,O()),a=await q(r,e,i.id_prefix,i.item_format,s.type_to_folder);if(!a)throw await _t(r,e,i.id_prefix,s.type_to_folder);let c=je(a.id,i.id_prefix),m=await ie(a,{schema:i.schema}),u=ng(m.document.metadata.title);return await rp(r,c),await Li({pmRoot:r,settings:i,principal:Rn(C(void 0,i.author_default)),itemId:c}),{action:"set",focused_item:c,title:u,message:`Focused on ${c}${u?` (${u})`:""}. New items default --parent to it (override with --parent or clear via 'pm focus --clear').`}}async function jC(e,t){let n=await A(e),r=x(n,O()),o=await q(e,t,n.id_prefix,n.item_format,r.type_to_folder);if(!o)return null;let i=await ie(o,{schema:n.schema});return ng(i.document.metadata.title)}function ng(e){return e.trim().length>0?e: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]="d0f97e1d-37de-5512-806c-833ec249ff52")}catch{}})();var rg=new Set(["item_format"]),og=new Set(["definition_of_done","metadata_required_fields","lifecycle_stale_blocker_reason_patterns","lifecycle_closure_like_blocked_reason_patterns","lifecycle_closure_like_resolution_patterns","lifecycle_closure_like_actual_result_patterns"]),qC=new Set(["history_missing_stream_policy","sprint_release_format_policy","parent_reference_policy","metadata_validation_profile","governance_preset","governance_ownership_enforcement","governance_create_mode_default","governance_close_validation_default","governance_require_close_reason","governance_create_default_type","governance_workflow_enforcement","governance_parent_reference_policy","governance_metadata_validation_profile","governance_force_required_for_stale_lock","test_result_tracking","untrusted_linked_test_execution","telemetry_tracking","agent_identity_vocabulary"]),KC=new Set(["governance_require_close_reason","governance_force_required_for_stale_lock","test_result_tracking","untrusted_linked_test_execution","telemetry_tracking"]),zC={off:"disabled",on:"enabled",true:"enabled",false:"disabled",enabled:"enabled",disabled:"disabled"};function BC(e){let t=e.trim().toLowerCase().replaceAll("-","_");if(rg.has(t)||og.has(t)||qC.has(t)||t==="context")return t}function HC(e){let t=e.trim().toLowerCase();return zC[t]??e}function ig(e,t){let n=BC(e);return n===void 0?{routable:!1,reason:`Unknown config key "${e}" cannot route a positional value.`}:n==="context"?{routable:!1,reason:"Config set context does not accept a positional value. Use --default-depth, --activity-limit, --stale-threshold-days, or --section-<name> flags."}:rg.has(n)?{routable:!0,flag:"format",value:t}:og.has(n)?{routable:!0,flag:"criterion",values:[t]}:{routable:!0,flag:"policy",value:KC.has(n)?HC(t):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]="326e677a-c427-55e0-aad9-5204ea59661b")}catch{}})();var VC=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u,_l=128,WC=1e4;function sg(e){let t=e?.trim();if(!t||t==="__proto__"||t.length>_l)throw new Error(`A legacy author must contain 1-${_l} characters.`);return t}function YC(e){let t=e?.trim().toLowerCase();if(!t||!VC.test(t))throw new Error("A canonical harness must be a lowercase dash-separated namespace.");return t}function JC(e){return Object.fromEntries(Object.entries(e).sort(([t],[n])=>t.localeCompare(n)))}function XC(e,t){let n=new Set;for(let r of(e??[]).slice(0,WC)){let o=r.trim().slice(0,_l);o.length===0||o.startsWith("harness:")||Object.hasOwn(t,o)||n.add(o)}return n.size}function QC(e,t){let n=sg(t.legacy_author),r=YC(t.canonical_harness);if(n===r||n===`harness:${r}`||n.startsWith("harness:"))throw new Error(`The legacy author "${n}" is already canonical and must not be aliased.`);return e[n]===r?!1:(e[n]=r,!0)}function ZC(e,t){if(t.operation==="add")return QC(e,t);if(t.operation==="remove"){let r=sg(t.legacy_author);return Object.hasOwn(e,r)?(delete e[r],!0):!1}if(t.operation==="clear"){let r=Object.keys(e).length>0;for(let o of Object.keys(e))delete e[o];return r}let n=t.operation;throw new Error(`Unsupported vocabulary operation: ${String(n)}`)}function hl(e){return{version:e?.version??1,alias_count:Object.keys(e?.aliases??{}).length}}function ag(e,t){let n=e?.version??1,r={...e?.aliases},o=ZC(r,t),i={version:o?n+1:n,aliases:JC(r)};return{vocabulary:i,preview:{operation:t.operation,changed:o,version_before:n,version_after:i.version,alias_count:Object.keys(i.aliases).length,residual_author_count:XC(t.observed_authors,i.aliases)}}}(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]="a6fdd2eb-5447-5b10-af5b-33765e341bd2")}catch{}})();var cg=["project","global"],bt={definition_of_done:["definition-of-done","definition_of_done"],item_format:["item-format","item_format"],history_missing_stream_policy:["history-missing-stream-policy","history_missing_stream_policy"],sprint_release_format_policy:["sprint-release-format-policy","sprint_release_format_policy"],parent_reference_policy:["parent-reference-policy","parent_reference_policy"],metadata_validation_profile:["metadata-validation-profile","metadata_validation_profile"],metadata_required_fields:["metadata-required-fields","metadata_required_fields"],lifecycle_stale_blocker_reason_patterns:["lifecycle-stale-blocker-reason-patterns","lifecycle_stale_blocker_reason_patterns"],lifecycle_closure_like_blocked_reason_patterns:["lifecycle-closure-like-blocked-reason-patterns","lifecycle_closure_like_blocked_reason_patterns"],lifecycle_closure_like_resolution_patterns:["lifecycle-closure-like-resolution-patterns","lifecycle_closure_like_resolution_patterns"],lifecycle_closure_like_actual_result_patterns:["lifecycle-closure-like-actual-result-patterns","lifecycle_closure_like_actual_result_patterns"],governance_preset:["governance-preset","governance_preset"],governance_ownership_enforcement:["governance-ownership-enforcement","governance_ownership_enforcement"],governance_create_mode_default:["governance-create-mode-default","governance_create_mode_default"],governance_close_validation_default:["governance-close-validation-default","governance_close_validation_default"],governance_require_close_reason:["governance-require-close-reason","governance_require_close_reason"],governance_create_default_type:["governance-create-default-type","governance_create_default_type"],governance_workflow_enforcement:["governance-workflow-enforcement","governance_workflow_enforcement"],governance_parent_reference_policy:["governance-parent-reference-policy","governance_parent_reference_policy"],governance_metadata_validation_profile:["governance-metadata-validation-profile","governance_metadata_validation_profile"],governance_force_required_for_stale_lock:["governance-force-required-for-stale-lock","governance_force_required_for_stale_lock"],test_result_tracking:["test-result-tracking","test_result_tracking"],untrusted_linked_test_execution:["untrusted-linked-test-execution","untrusted_linked_test_execution"],telemetry_tracking:["telemetry-tracking","telemetry_tracking"],agent_identity_vocabulary:["agent-identity-vocabulary","agent_identity_vocabulary"],context:["context"]},eI=Object.keys(bt).map(e=>bt[e][0]),tI=Object.fromEntries(Object.keys(bt).flatMap(e=>bt[e].map(t=>[t,e]))),nI={definition_of_done:"Definition of Done criteria list.",item_format:"Default item file format.",history_missing_stream_policy:"Missing history stream handling policy.",sprint_release_format_policy:"Sprint/release format validation policy.",parent_reference_policy:"Parent reference validation policy.",metadata_validation_profile:"Validate metadata profile policy (core|strict|custom).",metadata_required_fields:"Validate custom metadata required-fields list.",lifecycle_stale_blocker_reason_patterns:"Validate lifecycle stale-blocker reason substring patterns (criteria list).",lifecycle_closure_like_blocked_reason_patterns:"Validate lifecycle closure-like blocked_reason substring patterns (criteria list).",lifecycle_closure_like_resolution_patterns:"Validate lifecycle closure-like resolution substring patterns (criteria list).",lifecycle_closure_like_actual_result_patterns:"Validate lifecycle closure-like actual_result substring patterns (criteria list).",governance_preset:"Governance preset policy (minimal|default|strict|custom).",governance_ownership_enforcement:"Governance ownership enforcement policy (none|warn|strict).",governance_create_mode_default:"Governance default create mode (progressive|strict).",governance_close_validation_default:"Governance default close validation mode (off|warn|strict).",governance_require_close_reason:"Governance close-reason requirement policy (enabled|disabled).",governance_create_default_type:"Governance default item type for `pm create` when --type is omitted.",governance_workflow_enforcement:"Governance per-type transition enforcement mode (off|warn|strict).",governance_parent_reference_policy:"Governance parent reference policy (warn|strict_error).",governance_metadata_validation_profile:"Governance metadata validation profile (core|strict|custom).",governance_force_required_for_stale_lock:"Governance stale-lock force policy (enabled|disabled).",test_result_tracking:"Item-level linked test result persistence policy.",untrusted_linked_test_execution:"Permit an explicit per-run override for commands not trusted by this clone.",telemetry_tracking:"Telemetry usage reporting policy.",agent_identity_vocabulary:"Versioned exact legacy-author interpretation vocabulary (summary only).",context:"Context command settings (depth, section toggles, limits)."},rI=["lifecycle_stale_blocker_reason_patterns","lifecycle_closure_like_blocked_reason_patterns","lifecycle_closure_like_resolution_patterns","lifecycle_closure_like_actual_result_patterns"],oI=new Set(["metadata_required_fields",...rI]),iI=new Set(["test_result_tracking","untrusted_linked_test_execution","telemetry_tracking"]),sI=new Set(["governance_require_close_reason","governance_force_required_for_stale_lock"]),aI=new Set(["governance_ownership_enforcement","governance_create_mode_default","governance_close_validation_default"]),cI=new Set(["governance_parent_reference_policy","governance_metadata_validation_profile","governance_workflow_enforcement"]),lI=new Set(["governance_preset","governance_create_default_type"]),pg=e=>oI.has(e),dI=e=>aI.has(e),mI=e=>cI.has(e),uI=e=>lI.has(e);function gl(e){return e==="definition_of_done"||pg(e)}function pI(e){if(cg.includes(e))return e;throw new d(`Invalid config scope "${e}". Allowed: ${cg.join(", ")}`,l.USAGE)}function fI(e){if(e==="get"||e==="set"||e==="list"||e==="export")return e;throw Ne({command_path:"config",token:e.trim()||"<empty>",allowed:["export","get","list","set"],token_kind:"action"})}function _I(e){let t=tI[e];if(t)return t;let n=ga.map(r=>r.key).join(", ");throw new d(`Invalid config key "${e}". Supported: ${eI.join(", ")} (underscore variants also accepted). Nested leaf settings: ${n}.`,l.USAGE)}function hI(e,t){let n=[...new Set((e??[]).map(r=>r.trim()).filter(r=>r.length>0))].sort((r,o)=>r.localeCompare(o));if(t){if(n.length>0)throw new d("Config set definition-of-done cannot combine --clear-criteria with --criterion values",l.USAGE);return[]}if(n.length===0)throw new d("Config set definition-of-done requires at least one non-empty --criterion value (or --clear-criteria to clear)",l.USAGE);return n}function gI(e){let t=e?.trim().toLowerCase();if(t==="toon")return"toon";throw t==="json_markdown"?new d("Config set item-format no longer accepts json_markdown. Markdown item files are legacy read/migration input only.",l.USAGE):new d("Config set item-format requires --format toon",l.USAGE)}function fg(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="auto_create"||t==="strict_error")return t;throw new d("Config set history-missing-stream-policy requires --policy with one of: auto_create, strict_error",l.USAGE)}function yI(e){return vl(e,"test-result-tracking")}function vl(e,t){let n=e?.trim().toLowerCase().replaceAll("-","_");if(n==="enabled"||n==="disabled")return n;throw new d(`Config set ${t} requires --policy with one of: enabled, disabled`,l.USAGE)}function _g(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="enabled"||t==="disabled")return t;throw new d("Config set telemetry-tracking requires --policy with one of: enabled, disabled",l.USAGE)}function wl(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="core"||t==="strict"||t==="custom")return t;throw new d("Config set metadata-validation-profile requires --policy with one of: core, strict, custom",l.USAGE)}function hg(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="minimal"||t==="default"||t==="strict"||t==="custom")return t;throw new d("Config set governance-preset requires --policy with one of: minimal, default, strict, custom",l.USAGE)}function gg(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="none"||t==="warn"||t==="strict")return t;throw new d("Config set governance-ownership-enforcement requires --policy with one of: none, warn, strict",l.USAGE)}function yg(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="progressive"||t==="strict")return t;throw new d("Config set governance-create-mode-default requires --policy with one of: progressive, strict",l.USAGE)}function vg(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="off"||t==="warn"||t==="strict")return t;if(t==="none"||t==="disabled")return"off";throw new d("Config set governance-close-validation-default requires --policy with one of: off, warn, strict",l.USAGE)}function wg(e){let t=typeof e=="string"?e.trim().toLowerCase().replaceAll("-","_"):void 0;if(t==="off"||t==="warn"||t==="strict")return t;if(t==="none"||t==="disabled")return"off";throw new d("Config set governance-workflow-enforcement requires one of: off, warn, strict",l.USAGE)}function bg(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="enabled"||t==="disabled")return t;throw new d("Config set governance-force-required-for-stale-lock requires --policy with one of: enabled, disabled",l.USAGE)}function kg(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="enabled"||t==="disabled")return t;throw new d("Config set governance-require-close-reason requires --policy with one of: enabled, disabled",l.USAGE)}var vI={test_result_tracking:"test-result-tracking",untrusted_linked_test_execution:"untrusted-linked-test-execution"};function lg(e,t){let n=vI[e];if(n)return vl(t,n);switch(e){case"history_missing_stream_policy":return fg(t);case"sprint_release_format_policy":return Va(t);case"parent_reference_policy":case"governance_parent_reference_policy":return hi(t);case"metadata_validation_profile":case"governance_metadata_validation_profile":return wl(t);case"governance_preset":return hg(t);case"governance_ownership_enforcement":return gg(t);case"governance_create_mode_default":return yg(t);case"governance_close_validation_default":return vg(t);case"governance_require_close_reason":return kg(t);case"governance_workflow_enforcement":return wg(t);case"governance_force_required_for_stale_lock":return bg(t);case"telemetry_tracking":return _g(t);default:return t.trim().toLowerCase().replaceAll("-","_")}}var dg={author:"author",acceptance_criteria:"acceptance_criteria","acceptance-criteria":"acceptance_criteria",estimated_minutes:"estimated_minutes","estimated-minutes":"estimated_minutes",estimate:"estimated_minutes",close_reason:"close_reason","close-reason":"close_reason",reviewer:"reviewer",risk:"risk",confidence:"confidence",sprint:"sprint",release:"release"},wI=["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"];function bI(e,t){let n=[...new Set((e??[]).map(i=>i.trim()).filter(i=>i.length>0))];if(t){if(n.length>0)throw new d("Config set metadata-required-fields cannot combine --clear-criteria with --criterion values",l.USAGE);return[]}if(n.length===0)throw new d("Config set metadata-required-fields requires at least one --criterion value (or --clear-criteria to clear)",l.USAGE);let r=n.map(i=>i.toLowerCase().replaceAll("-","_")),o=r.filter(i=>dg[i]===void 0);if(o.length>0)throw new d(`Config set metadata-required-fields received unsupported values: ${o.join(", ")}. Supported values: ${wI.join(", ")}`,l.USAGE);return[...new Set(r.map(i=>dg[i]))].sort((i,s)=>i.localeCompare(s))}function kI(e,t,n){let r=[...new Set((t??[]).map(o=>o.trim().toLowerCase()).filter(o=>o.length>0))].sort((o,i)=>o.localeCompare(i));if(n){if(r.length>0)throw new d(`Config set ${bt[e][0]} cannot combine --clear-criteria with --criterion values`,l.USAGE);return[]}if(r.length===0)throw new d(`Config set ${bt[e][0]} requires at least one --criterion value (or --clear-criteria to clear)`,l.USAGE);return r}function SI(e){return[...new Set(e)].sort((t,n)=>t.localeCompare(n))}function EI(e,t){if(e==="list"||e==="export"){if(typeof t=="string"&&t.trim().length>0)throw new d(`Config action "${e}" does not accept <key>`,l.USAGE);return}if(typeof t!="string"||t.trim().length===0)throw new d(`Config action "${e}" requires <key>`,l.USAGE);return _I(t)}function Sg(e){if(!e)throw new d("Config action requires <key>",l.USAGE)}var AI={definition_of_done:e=>[...e.workflow.definition_of_done],item_format:e=>e.item_format,history_missing_stream_policy:e=>e.history.missing_stream,sprint_release_format_policy:e=>e.validation.sprint_release_format,parent_reference_policy:e=>e.validation.parent_reference,metadata_validation_profile:e=>e.validation.metadata_profile,metadata_required_fields:e=>[...e.validation.metadata_required_fields],lifecycle_stale_blocker_reason_patterns:e=>[...e.validation.lifecycle_stale_blocker_reason_patterns],lifecycle_closure_like_blocked_reason_patterns:e=>[...e.validation.lifecycle_closure_like_blocked_reason_patterns],lifecycle_closure_like_resolution_patterns:e=>[...e.validation.lifecycle_closure_like_resolution_patterns],lifecycle_closure_like_actual_result_patterns:e=>[...e.validation.lifecycle_closure_like_actual_result_patterns],governance_preset:e=>e.governance.preset,governance_ownership_enforcement:e=>e.governance.ownership_enforcement,governance_create_mode_default:e=>e.governance.create_mode_default,governance_close_validation_default:e=>e.governance.close_validation_default,governance_require_close_reason:e=>e.governance.require_close_reason?"enabled":"disabled",governance_create_default_type:e=>e.governance.create_default_type??"",governance_workflow_enforcement:e=>e.governance.workflow_enforcement??"off",governance_parent_reference_policy:e=>e.governance.parent_reference,governance_metadata_validation_profile:e=>e.governance.metadata_profile,governance_force_required_for_stale_lock:e=>e.governance.force_required_for_stale_lock?"enabled":"disabled",test_result_tracking:e=>e.testing.record_results_to_items?"enabled":"disabled",untrusted_linked_test_execution:e=>e.testing.allow_untrusted_linked_tests?"enabled":"disabled",telemetry_tracking:e=>e.telemetry.enabled?"enabled":"disabled",agent_identity_vocabulary:e=>hl(e.agent_identity?.identity_vocabulary),context:e=>({default_depth:e.context.default_depth,activity_limit:e.context.activity_limit,stale_threshold_days:e.context.stale_threshold_days,sections:{...e.context.sections}})};function bl(e,t){return AI[t](e)}function Oe(e,t){return t.length===0?e:{...e,warnings:t}}async function TI(e,t){let n=process.cwd(),r=e==="project"?E(n,t.path):lt(n),o=pe(r);return e==="project"&&await I(r),{pmRoot:r,settingsPath:o}}function CI(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="true"||t==="enabled"||t==="on"||t==="1")return!0;if(t==="false"||t==="disabled"||t==="off"||t==="0")return!1;throw new d(`Context section toggle must be true|false|enabled|disabled, got "${e}"`,l.USAGE)}function mg(e,t){let n=e.trim(),r=Number(n);if(/^\d+$/u.test(n)&&Number.isSafeInteger(r)&&r>0)return r;throw new d(`Context ${t} must be a positive integer`,l.USAGE)}async function II(e,t,n,r,o){let i=!1,s=e.context;if(t.defaultDepth!==void 0){let c=t.defaultDepth.trim().toLowerCase();if(!la.includes(c))throw new d(`Context --default-depth must be one of ${la.join("|")}`,l.USAGE);s.default_depth!==c&&(s.default_depth=c,i=!0)}if(t.activityLimit!==void 0){let c=mg(t.activityLimit,"--activity-limit");s.activity_limit!==c&&(s.activity_limit=c,i=!0)}if(t.staleThresholdDays!==void 0){let c=mg(t.staleThresholdDays,"--stale-threshold-days");s.stale_threshold_days!==c&&(s.stale_threshold_days=c,i=!0)}let a=[["hierarchy",t.sectionHierarchy],["activity",t.sectionActivity],["progress",t.sectionProgress],["blockers",t.sectionBlockers],["files",t.sectionFiles],["workload",t.sectionWorkload],["staleness",t.sectionStaleness],["tests",t.sectionTests]];for(let[c,m]of a){let u=CI(m);if(u!==void 0){let p=c;s.sections[p]!==u&&(s.sections[p]=u,i=!0)}}return i&&await Le(n.pmRoot,e,"config:set:context"),Oe({scope:r,key:"context",context_settings:{default_depth:s.default_depth,activity_limit:s.activity_limit,stale_threshold_days:s.stale_threshold_days,sections:{...s.sections}},settings_path:n.settingsPath,changed:i},o)}function RI(e,t,n){if(n.value!==void 0&&n.value!==t)throw new d(`Config set ${e} received both positional value "${t}" and --value "${n.value}". Pass only one.`,l.USAGE);return{...n,value:t}}function OI(e,t,n,r,o,i){if(o===void 0)return i;if(e!=="set")throw new d(`Config action "${e}" does not accept a positional value. Only "set" takes <value>.`,l.USAGE);if(typeof t!="string"||t.trim().length===0)throw new d('Config action "set" requires <key> before a positional <value>.',l.USAGE);if(r)return RI(t,o,i);Sg(n);let s=ig(n,o);if(!s.routable)throw new d(s.reason,l.USAGE);if(s.flag==="criterion"){if(i.criterion!==void 0&&i.criterion.length>0)throw new d(`Config set ${t} received both positional value "${o}" and --criterion. Pass criteria via --criterion only when supplying more than one value.`,l.USAGE);return{...i,criterion:s.values}}if(s.flag==="format")return{...i,format:s.value};if(i.policy!==void 0&&lg(n,i.policy)!==lg(n,s.value))throw new d(`Config set ${t} received both positional value "${o}" and --policy "${i.policy}". Pass only one.`,l.USAGE);return{...i,policy:s.value}}function xI(e){let t=Object.keys(bt).map(r=>({key:r,aliases:bt[r],value_kind:r==="context"||r==="agent_identity_vocabulary"?"object":gl(r)?"string_array":"enum",set_flags:r==="context"?["--default-depth","--activity-limit","--stale-threshold-days","--section-<name>"]:r==="agent_identity_vocabulary"?["--policy","--value","--criterion"]:gl(r)?["--criterion","--clear-criteria"]:r==="item_format"?["--format"]:["--policy"],summary:nI[r],value:bl(e.settings,r)})),n=ga.map(r=>({key:r.key,canonical_key:r.key.replaceAll("_","-"),path:r.path,kind:r.kind,value:ya(e.settings,r),summary:r.summary,...r.choices?{choices:[...r.choices]}:{},...r.min===void 0?{}:{min:r.min},...r.max===void 0?{}:{max:r.max}}));return Oe({scope:e.scope,keys:t,nested_settings:n,count:t.length,settings_path:e.target.settingsPath,changed:!1},e.warnings)}function PI(e){let t=Object.fromEntries(Object.keys(bt).map(n=>[n,bl(e.settings,n)]));return Oe({scope:e.scope,values:t,settings_path:e.target.settingsPath,changed:!1},e.warnings)}function LI(e,t){let n=bl(e.settings,t),r={scope:e.scope,key:t,settings_path:e.target.settingsPath,changed:!1};return t==="item_format"?Oe({...r,format:e.settings.item_format,has_explicit_item_format:e.metadata.has_explicit_item_format},e.warnings):t==="context"?Oe({...r,context_settings:n},e.warnings):t==="agent_identity_vocabulary"?Oe({...r,identity_vocabulary:n},e.warnings):Array.isArray(n)?Oe({...r,criteria:n},e.warnings):Oe({...r,policy:n},e.warnings)}async function NI(e,t,n,r){if(t==="get"){let a=ya(e.settings,n);return Oe({scope:e.scope,key:n.key,nested_setting:{key:n.key,path:n.path,kind:n.kind,value:a},settings_path:e.target.settingsPath,changed:!1},e.warnings)}let o=r.value;if(typeof o!="string")throw new d(`Config set ${n.key} requires a value. Pass it positionally (\`pm config ${e.scope} set ${n.key} <value>\`) or via --value.`,l.USAGE);let i=_u(n,o);if(!i.ok)throw new d(i.error.message,l.USAGE);let s=Vo(e.settings,n,i.parsed.value);return s&&await Le(e.target.pmRoot,e.settings,`config:set:${n.path}`),Oe({scope:e.scope,key:n.key,nested_setting:{key:n.key,path:n.path,kind:n.kind,value:i.parsed.value},settings_path:e.target.settingsPath,changed:s},e.warnings)}async function X(e,t,n){t&&await Le(e.target.pmRoot,e.settings,n)}function ug(e,t,n){return e!==n||t!==n}function de(e,t,n,r){return Oe({scope:e.scope,key:t,policy:n,settings_path:e.target.settingsPath,changed:r},e.warnings)}function yl(e,t,n,r){return Oe({scope:e.scope,key:t,criteria:n,settings_path:e.target.settingsPath,changed:r},e.warnings)}async function $I(e,t){let n=gI(t.format),r=e.settings.item_format!==n||!e.metadata.has_explicit_item_format,o;if(r){let i=x(e.settings,O()),s=await Vp(e.target.pmRoot,n,"config:set:item_format:migrate",i.type_to_folder,e.settings.schema);o={target_format:s.target_format,scanned:s.scanned,migrated:s.migrated,removed:s.removed,warnings:s.warnings},e.settings.item_format=n,await Le(e.target.pmRoot,e.settings,"config:set:item_format")}return Oe({scope:e.scope,key:"item_format",format:e.settings.item_format,has_explicit_item_format:!0,migration:o,settings_path:e.target.settingsPath,changed:r},e.warnings)}async function MI(e,t,n){if(t==="history_missing_stream_policy"){let i=fg(n.policy),s=e.settings.history.missing_stream!==i;return e.settings.history.missing_stream=i,await X(e,s,"config:set:history_missing_stream_policy"),de(e,t,e.settings.history.missing_stream,s)}if(t==="sprint_release_format_policy"){let i=Va(n.policy),s=e.settings.validation.sprint_release_format!==i;return e.settings.validation.sprint_release_format=i,await X(e,s,"config:set:sprint_release_format_policy"),de(e,t,e.settings.validation.sprint_release_format,s)}if(t==="parent_reference_policy"){let i=hi(n.policy),s=e.settings.validation.parent_reference!==i||e.settings.governance.preset!=="custom"||e.settings.governance.parent_reference!==i;return e.settings.validation.parent_reference=i,e.settings.governance.preset="custom",e.settings.governance.parent_reference=i,await X(e,s,"config:set:parent_reference_policy"),de(e,t,e.settings.validation.parent_reference,s)}let r=wl(n.policy),o=e.settings.validation.metadata_profile!==r||e.settings.governance.preset!=="custom"||e.settings.governance.metadata_profile!==r;return e.settings.validation.metadata_profile=r,e.settings.governance.preset="custom",e.settings.governance.metadata_profile=r,await X(e,o,"config:set:metadata_validation_profile"),de(e,t,e.settings.validation.metadata_profile,o)}async function FI(e,t,n){if(t==="metadata_required_fields"){let a=bI(n.criterion,n.clearCriteria),c=a.length!==e.settings.validation.metadata_required_fields.length||a.some((m,u)=>m!==e.settings.validation.metadata_required_fields[u]);return e.settings.validation.metadata_required_fields=a,await X(e,c,"config:set:metadata_required_fields"),yl(e,t,[...e.settings.validation.metadata_required_fields],c)}let o={lifecycle_stale_blocker_reason_patterns:e.settings.validation.lifecycle_stale_blocker_reason_patterns,lifecycle_closure_like_blocked_reason_patterns:e.settings.validation.lifecycle_closure_like_blocked_reason_patterns,lifecycle_closure_like_resolution_patterns:e.settings.validation.lifecycle_closure_like_resolution_patterns,lifecycle_closure_like_actual_result_patterns:e.settings.validation.lifecycle_closure_like_actual_result_patterns}[t],i=kI(t,n.criterion,n.clearCriteria),s=i.length!==o.length||i.some((a,c)=>a!==o[c]);return o.splice(0,o.length,...i),await X(e,s,`config:set:${t}`),yl(e,t,[...o],s)}async function DI(e,t,n){if(t==="governance_preset"){let c=hg(n.policy),m=e.settings.governance.preset!==c;return e.settings.governance.preset=c,await X(e,m,"config:set:governance_preset"),de(e,t,e.settings.governance.preset,m)}let r=typeof n.policy=="string",o=r?n.policy.trim():"";if(r&&o.length===0){let c=e.settings.governance.create_default_type!==void 0;return delete e.settings.governance.create_default_type,await X(e,c,"config:set:governance_create_default_type"),de(e,t,e.settings.governance.create_default_type??"",c)}if(o.length===0)throw new d('Config set governance-create-default-type requires an item type value (or an empty value "" to clear it)',l.USAGE);let i=x(e.settings,O()),s=we(o,i);if(!s)throw new d(xt(o,i.types,Pt(e.target.pmRoot,e.settings.schema)),l.USAGE);let a=e.settings.governance.create_default_type!==s;return e.settings.governance.create_default_type=s,await X(e,a,"config:set:governance_create_default_type"),de(e,t,e.settings.governance.create_default_type,a)}async function UI(e,t,n){if(t==="governance_ownership_enforcement"){let i=gg(n.policy),s=e.settings.governance.preset!=="custom"||e.settings.governance.ownership_enforcement!==i;return e.settings.governance.preset="custom",e.settings.governance.ownership_enforcement=i,await X(e,s,"config:set:governance_ownership_enforcement"),de(e,t,e.settings.governance.ownership_enforcement,s)}if(t==="governance_create_mode_default"){let i=yg(n.policy),s=e.settings.governance.preset!=="custom"||e.settings.governance.create_mode_default!==i;return e.settings.governance.preset="custom",e.settings.governance.create_mode_default=i,await X(e,s,"config:set:governance_create_mode_default"),de(e,t,e.settings.governance.create_mode_default,s)}let r=vg(n.policy),o=e.settings.governance.preset!=="custom"||e.settings.governance.close_validation_default!==r;return e.settings.governance.preset="custom",e.settings.governance.close_validation_default=r,await X(e,o,"config:set:governance_close_validation_default"),de(e,t,e.settings.governance.close_validation_default,o)}async function GI(e,t,n){if(t==="governance_parent_reference_policy"){let i=hi(n.policy),s=e.settings.governance.preset!=="custom"||ug(e.settings.governance.parent_reference,e.settings.validation.parent_reference,i);return e.settings.governance.preset="custom",e.settings.governance.parent_reference=i,e.settings.validation.parent_reference=i,await X(e,s,"config:set:governance_parent_reference_policy"),de(e,t,e.settings.governance.parent_reference,s)}if(t==="governance_metadata_validation_profile"){let i=wl(n.policy),s=e.settings.governance.preset!=="custom"||ug(e.settings.governance.metadata_profile,e.settings.validation.metadata_profile,i);return e.settings.governance.preset="custom",e.settings.governance.metadata_profile=i,e.settings.validation.metadata_profile=i,await X(e,s,"config:set:governance_metadata_validation_profile"),de(e,t,e.settings.governance.metadata_profile,s)}let r=wg(n.policy),o=(e.settings.governance.workflow_enforcement??"off")!==r;return e.settings.governance.workflow_enforcement=r,await X(e,o,"config:set:governance_workflow_enforcement"),de(e,t,e.settings.governance.workflow_enforcement,o)}async function jI(e,t,n){if(t==="governance_require_close_reason"){let a=kg(n.policy)==="enabled",c=e.settings.governance.require_close_reason!==a;return e.settings.governance.require_close_reason=a,await X(e,c,"config:set:governance_require_close_reason"),de(e,t,e.settings.governance.require_close_reason?"enabled":"disabled",c)}let o=bg(n.policy)==="enabled",i=e.settings.governance.preset!=="custom"||e.settings.governance.force_required_for_stale_lock!==o;return e.settings.governance.preset="custom",e.settings.governance.force_required_for_stale_lock=o,await X(e,i,"config:set:governance_force_required_for_stale_lock"),de(e,t,e.settings.governance.force_required_for_stale_lock?"enabled":"disabled",i)}async function qI(e,t,n){if(t==="test_result_tracking"){let a=yI(n.policy)==="enabled",c=e.settings.testing.record_results_to_items!==a;return e.settings.testing.record_results_to_items=a,await X(e,c,"config:set:test_result_tracking"),de(e,t,e.settings.testing.record_results_to_items?"enabled":"disabled",c)}if(t==="untrusted_linked_test_execution"){let a=vl(n.policy,"untrusted-linked-test-execution")==="enabled",c=e.settings.testing.allow_untrusted_linked_tests!==a;return e.settings.testing.allow_untrusted_linked_tests=a,await X(e,c,"config:set:untrusted_linked_test_execution"),de(e,t,e.settings.testing.allow_untrusted_linked_tests?"enabled":"disabled",c)}let o=_g(n.policy)==="enabled",i=e.settings.telemetry.enabled!==o||!e.settings.telemetry.first_run_prompt_completed;return e.settings.telemetry.enabled=o,e.settings.telemetry.first_run_prompt_completed=!0,await X(e,i,"config:set:telemetry_tracking"),de(e,t,e.settings.telemetry.enabled?"enabled":"disabled",i)}async function KI(e,t,n){let r=hI(n.criterion,n.clearCriteria),o=r.length!==e.settings.workflow.definition_of_done.length||r.some((i,s)=>i!==e.settings.workflow.definition_of_done[s]);return e.settings.workflow.definition_of_done=r,await X(e,o,"config:set:definition_of_done"),yl(e,t,[...e.settings.workflow.definition_of_done],o)}function zI(e){let t=e?.trim().toLowerCase().replaceAll("_","-"),n=t?.startsWith("preview-")===!0,r=n?t.slice(8):t;if(r==="add"||r==="remove"||r==="clear")return{operation:r,dryRun:n};throw new d("Config set agent-identity-vocabulary requires --policy add|remove|clear|preview-add|preview-remove|preview-clear",l.USAGE)}function BI(e,t){if(e==="add"){let n=t?.lastIndexOf("=")??-1;if(n<=0||n===t.length-1)throw new d('Config set agent-identity-vocabulary --policy add requires --value "<legacy-author>=<canonical-harness>"',l.USAGE);return{legacy_author:t.slice(0,n),canonical_harness:t.slice(n+1)}}if(e==="remove"){if(t===void 0)throw new d("Config set agent-identity-vocabulary --policy remove requires --value <legacy-author>",l.USAGE);return{legacy_author:t}}if(t!==void 0)throw new d("Config set agent-identity-vocabulary --policy clear does not accept --value",l.USAGE);return{}}async function HI(e,t){let{operation:n,dryRun:r}=zI(t.policy),o=BI(n,t.value),i;try{i=ag(e.settings.agent_identity?.identity_vocabulary,{operation:n,...o,observed_authors:t.criterion})}catch(s){throw new d(s.message,l.USAGE)}return i.preview.changed&&!r&&(e.settings.agent_identity={...e.settings.agent_identity,identity_vocabulary:i.vocabulary},await X(e,!0,`config:set:agent_identity.identity_vocabulary:${n}:v${i.preview.version_after}`)),Oe({scope:e.scope,key:"agent_identity_vocabulary",identity_vocabulary:hl(r?e.settings.agent_identity?.identity_vocabulary:i.vocabulary),vocabulary_mutation:i.preview,settings_path:e.target.settingsPath,changed:i.preview.changed&&!r},e.warnings)}async function VI(e,t,n){if(n.clearCriteria===!0&&!gl(t))throw new d("--clear-criteria is only supported with config set criteria-list keys",l.USAGE);return t==="item_format"?$I(e,n):t==="context"?II(e.settings,n,e.target,e.scope,e.warnings):t==="agent_identity_vocabulary"?HI(e,n):t==="definition_of_done"?KI(e,t,n):pg(t)?FI(e,t,n):iI.has(t)?qI(e,t,n):sI.has(t)?jI(e,t,n):dI(t)?UI(e,t,n):mI(t)?GI(e,t,n):uI(t)?DI(e,t,n):MI(e,t,n)}async function Eg(e,t,n,r,o,i){let s=pI(e),a=fI(t),c=a==="get"||a==="set"?Ho(n):void 0,m=c?void 0:EI(a,n),u=OI(a,n,m,c,i,r),p=await TI(s,o),{settings:f,metadata:_,warnings:h}=await Tp(p.pmRoot),y={scope:s,target:p,settings:f,metadata:_,warnings:SI(h)};return c?NI(y,a,c,u):a==="list"?xI(y):a==="export"?PI(y):(Sg(m),a==="get"?LI(y,m):VI(y,m,u))}import ER from"node:fs/promises";import Q from"node:path";import AR from"node:readline/promises";import{stdin as TR,stdout as Fe}from"node:process";import Sl from"node:fs/promises";import me from"node:path";import WI from"node:readline/promises";import{stdin as YI,stdout as ws}from"node: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]="e5ae3e66-4a45-5c62-9144-46f8f5bff7cf")}catch{}})();var Tg=["ask","add","skip","status"],JI=["AGENTS.md","CLAUDE.md"],XI=["pm init","pm context","pm search","pm create","pm claim","pm files","pm docs","pm test --run","pm close","pm release","pm_author"],QI=8,El=1,ZI="<!-- pm-cli:agent-guidance:start:",eR=`<!-- pm-cli:agent-guidance:start:v${El} -->`,kl="<!-- pm-cli:agent-guidance:end -->",jr="Add workflow guidance later: pm init --agent-guidance add";var tR=()=>WI.createInterface({input:YI,output:ws});function Ur(e,t){let n=me.relative(e,t);return n.length===0?me.basename(t):n.split(me.sep).join("/")}function Ag(e){return e.endsWith(`
7
7
  `)?e:`${e}