@unbrained/pm-cli 2026.9.1 → 2026.9.3

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 (133) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +27 -0
  3. package/dist/cli/after-command-context-usage.js +16 -3
  4. package/dist/cli-bundle/bundle-manifest.json +153 -153
  5. package/dist/cli-bundle/chunks/{chunk-6XIIGE7U.js → chunk-34HASX3S.js} +2 -2
  6. package/dist/cli-bundle/chunks/chunk-AY324UJ5.js +9 -0
  7. package/dist/cli-bundle/chunks/{chunk-TAG4VC22.js → chunk-DKGP3QLE.js} +27 -27
  8. package/dist/cli-bundle/chunks/chunk-E5RBBCXO.js +230 -0
  9. package/dist/cli-bundle/chunks/{chunk-DTGWEL23.js → chunk-EDPIS7EB.js} +2 -2
  10. package/dist/cli-bundle/chunks/{chunk-X4RCGLTX.js → chunk-IEHHE6GA.js} +5 -5
  11. package/dist/cli-bundle/chunks/{chunk-U45JXJCC.js → chunk-L7B7343B.js} +2 -2
  12. package/dist/cli-bundle/chunks/{chunk-2MC2LCXZ.js → chunk-LENC656S.js} +41 -41
  13. package/dist/cli-bundle/chunks/chunk-LISESA7W.js +35 -0
  14. package/dist/cli-bundle/chunks/{chunk-3WICXLVT.js → chunk-UPPM2FOZ.js} +2 -2
  15. package/dist/cli-bundle/chunks/{chunk-Y7VOMSZT.js → chunk-Y4PJ6HPK.js} +2 -2
  16. package/dist/cli-bundle/chunks/{register-list-query-XYNX4ASQ.js → register-list-query-W2ZTOMKP.js} +2 -2
  17. package/dist/cli-bundle/chunks/{register-mutation-2MVLRS3J.js → register-mutation-RVND5NCG.js} +2 -2
  18. package/dist/cli-bundle/chunks/{register-operations-WCIDXBU3.js → register-operations-TTROIVC4.js} +2 -2
  19. package/dist/cli-bundle/chunks/{register-setup-KVNC5KPL.js → register-setup-D3ZFHY3L.js} +2 -2
  20. package/dist/cli-bundle/focused-chunks/chunk-3ZBI35HU.js +176 -0
  21. package/dist/cli-bundle/focused-chunks/{chunk-SVXJYD6G.js → chunk-4HJFY4MB.js} +2 -2
  22. package/dist/cli-bundle/focused-chunks/chunk-4RRHC3S4.js +6 -0
  23. package/dist/cli-bundle/focused-chunks/chunk-4WR46RMG.js +9 -0
  24. package/dist/cli-bundle/focused-chunks/chunk-5RFXUPN5.js +3 -0
  25. package/dist/cli-bundle/focused-chunks/chunk-BWKHEIVF.js +2 -0
  26. package/dist/cli-bundle/focused-chunks/{chunk-4O4CJAR6.js → chunk-D7KXFBXV.js} +2 -2
  27. package/dist/cli-bundle/focused-chunks/{chunk-MKHG3T76.js → chunk-GHCZ3YFR.js} +3 -3
  28. package/dist/cli-bundle/focused-chunks/{chunk-KB5OFSFD.js → chunk-GT7MXDLW.js} +2 -2
  29. package/dist/cli-bundle/focused-chunks/chunk-KBLZRU62.js +2 -0
  30. package/dist/cli-bundle/focused-chunks/chunk-KZ2NB3ET.js +2 -0
  31. package/dist/cli-bundle/focused-chunks/chunk-M5M6SVHS.js +3 -0
  32. package/dist/cli-bundle/focused-chunks/{chunk-BEVHCEWG.js → chunk-OL5EH6I3.js} +2 -2
  33. package/dist/cli-bundle/focused-chunks/{chunk-MEASX544.js → chunk-Q45NHPF2.js} +2 -2
  34. package/dist/cli-bundle/focused-chunks/{chunk-Y6JJIX6I.js → chunk-QKHCSUGJ.js} +48 -48
  35. package/dist/cli-bundle/focused-chunks/chunk-S27XMBIN.js +8 -0
  36. package/dist/cli-bundle/focused-chunks/chunk-TXE4TSHM.js +12 -0
  37. package/dist/cli-bundle/focused-chunks/chunk-UCLO3XDU.js +2 -0
  38. package/dist/cli-bundle/main.js +15 -15
  39. package/dist/cli-bundle/sdk-authoring.js +1 -1
  40. package/dist/cli-bundle/sdk-contracts.js +1 -1
  41. package/dist/cli-bundle/sdk-core.js +28 -28
  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 +35 -33
  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 +9 -9
  49. package/dist/core/diagnostics/remediation.js +9 -4
  50. package/dist/core/history/event-classification.d.ts +21 -0
  51. package/dist/core/history/event-classification.js +109 -0
  52. package/dist/core/history/event-index.d.ts +14 -3
  53. package/dist/core/history/event-index.js +543 -88
  54. package/dist/core/history/history.js +47 -18
  55. package/dist/core/history/workspace-history.js +7 -6
  56. package/dist/core/lock/lock.d.ts +22 -2
  57. package/dist/core/lock/lock.js +121 -19
  58. package/dist/core/output/output.js +31 -7
  59. package/dist/core/shared/time.d.ts +2 -0
  60. package/dist/core/shared/time.js +8 -2
  61. package/dist/core/store/item-metadata-query-index.js +5 -5
  62. package/dist/sdk/context/recency.d.ts +9 -0
  63. package/dist/sdk/context/recency.js +34 -0
  64. package/dist/sdk/context/usage-egress.d.ts +9 -0
  65. package/dist/sdk/context/usage-egress.js +30 -0
  66. package/dist/sdk/context-intent-contracts.js +7 -3
  67. package/dist/sdk/context-relevance.d.ts +23 -0
  68. package/dist/sdk/context-relevance.js +94 -23
  69. package/dist/sdk/context-signal-store.d.ts +7 -3
  70. package/dist/sdk/context-signal-store.js +155 -42
  71. package/dist/sdk/context-usage.d.ts +54 -0
  72. package/dist/sdk/context-usage.js +245 -16
  73. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +26 -14
  74. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +14 -2
  75. package/dist/sdk/governance/health.js +77 -11
  76. package/dist/sdk/governance/validate.js +4 -2
  77. package/dist/sdk/index.d.ts +2 -0
  78. package/dist/sdk/index.js +4 -2
  79. package/dist/sdk/init.d.ts +2 -0
  80. package/dist/sdk/init.js +18 -9
  81. package/dist/sdk/merge/index.d.ts +1 -1
  82. package/dist/sdk/merge/index.js +2 -2
  83. package/dist/sdk/merge/receipts.d.ts +24 -0
  84. package/dist/sdk/merge/receipts.js +122 -30
  85. package/dist/sdk/query/context.d.ts +3 -1
  86. package/dist/sdk/query/context.js +21 -9
  87. package/dist/sdk/query/next.js +18 -9
  88. package/dist/sdk/runtime-input.d.ts +2 -0
  89. package/dist/sdk/runtime-input.js +25 -2
  90. package/dist/sdk/runtime.d.ts +1 -0
  91. package/dist/sdk/runtime.js +17 -26
  92. package/dist/types.d.ts +2 -0
  93. package/dist/types.js +2 -2
  94. package/docs/CONTEXT_RECOVERY_PRIMITIVES.md +11 -2
  95. package/docs/CONTEXT_RELEVANCE.md +44 -1
  96. package/docs/MERGE_SAFETY.md +16 -2
  97. package/docs/PERFORMANCE.md +6 -3
  98. package/docs/READ_OUTPUT_CONTRACTS.md +9 -1
  99. package/docs/SDK.md +11 -8
  100. package/docs/SDK_CONTEXT.md +7 -0
  101. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +5 -3
  102. package/marketplace.json +2 -2
  103. package/package.json +4 -4
  104. package/packages/pm-beads/package.json +1 -1
  105. package/packages/pm-calendar/package.json +1 -1
  106. package/packages/pm-command-kit/package.json +1 -1
  107. package/packages/pm-digital-twin/package.json +1 -1
  108. package/packages/pm-governance-audit/package.json +1 -1
  109. package/packages/pm-guide-shell/package.json +1 -1
  110. package/packages/pm-kanban/package.json +1 -1
  111. package/packages/pm-lifecycle-hooks/package.json +1 -1
  112. package/packages/pm-linked-test-adapters/package.json +1 -1
  113. package/packages/pm-search-advanced/package.json +1 -1
  114. package/packages/pm-templates/package.json +1 -1
  115. package/packages/pm-todos/package.json +1 -1
  116. package/packages/pm-vcs/package.json +1 -1
  117. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  118. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  119. package/sdk/public-surface.json +268 -28
  120. package/dist/cli-bundle/chunks/chunk-ALKKAUFN.js +0 -35
  121. package/dist/cli-bundle/chunks/chunk-GOACULJW.js +0 -13
  122. package/dist/cli-bundle/chunks/chunk-NOPL37X4.js +0 -205
  123. package/dist/cli-bundle/focused-chunks/chunk-2FEZ5SKM.js +0 -3
  124. package/dist/cli-bundle/focused-chunks/chunk-6GCRSLPG.js +0 -2
  125. package/dist/cli-bundle/focused-chunks/chunk-7VATS5QY.js +0 -16
  126. package/dist/cli-bundle/focused-chunks/chunk-FWPLDEXF.js +0 -2
  127. package/dist/cli-bundle/focused-chunks/chunk-JEFKLWMM.js +0 -2
  128. package/dist/cli-bundle/focused-chunks/chunk-PF3E6Q36.js +0 -8
  129. package/dist/cli-bundle/focused-chunks/chunk-QDFJIRKN.js +0 -4
  130. package/dist/cli-bundle/focused-chunks/chunk-RMRCQPWU.js +0 -2
  131. package/dist/cli-bundle/focused-chunks/chunk-S4U5CN5Q.js +0 -2
  132. package/dist/cli-bundle/focused-chunks/chunk-T2LXXSOD.js +0 -158
  133. package/dist/cli-bundle/focused-chunks/chunk-Z2USIBR2.js +0 -5
@@ -0,0 +1,9 @@
1
+ import{$ as w,Fc as ye,Kb as ge,Ma as ae,Sa as ce,Xc as he,Yc as we,aa as b,la as q,rb as de,sb as ue,tb as le,ub as fe,vb as me,vc as $,wb as pe,xb as _e}from"./chunk-4RRHC3S4.js";import wt from"node:crypto";import{AsyncLocalStorage as bt}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]="aacc48ae-e9b2-5c8e-945f-89d05aff48e8")}catch{}})();var ke=new bt,be=1024;function xe(){let e=ke.getStore();if(e===void 0)return;let t=new Date(Date.parse(e.clock)+e.clockReads*e.tickMs).toISOString();return e.clockReads+=1,t}function hr(e){let t=ke.getStore();if(t===void 0)return;if(!Number.isSafeInteger(e)||e<0||e>be)throw new Error(`Reproducible token length must be an integer between 0 and ${be}`);let n="";for(;n.length<e;){let r=wt.createHash("sha256").update(`${t.seed}\0${t.tokenReads}`).digest();t.tokenReads+=1;for(let o of r)if(n+=(o%36).toString(36),n.length===e)break}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]="fb1102d4-1beb-5de8-87e6-af2efebafe39")}catch{}})();var kt=/^([+-]?)(\d+)([hdwm])$/i,xt=/^[+-]?\d+[hdwm](?:[+-]\d+[hdwm])+$/i,vt=/^(\d{4})(\d{2})(\d{2})$/,Et=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,It=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})-(\d{2})(?:-(\d{2}))?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,At=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,Ct=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/i;function Ee(){return xe()??new Date().toISOString()}function Er(e){return Number.isFinite(Date.parse(e))}function St(e){let t=Ct.exec(e);if(!t||!Number.isFinite(Date.parse(e)))return!1;let[,n,r,o,i,s,a,c,d]=t,[f,m,l,u,p,_]=[n,r,o,i,s,a].map(Number);return m>=1&&m<=12&&l>=1&&l<=z(f,m-1)&&u<=23&&p<=59&&_<=59&&(c===void 0||Number(c)<=23)&&(d===void 0||Number(d)<=59)}function Ir(e){let t=/\.(\d+)(?:Z|[+-]\d{2}:\d{2})$/iu.exec(e)?.[1];return St(e)&&(t===void 0||/^\d{0,3}0*$/u.test(t))}var Tt=1e4,L=new Map;function ve(e){let t=L.get(e);if(t!==void 0)return t;let n=Date.parse(e);return L.size>=Tt&&ge(L),L.set(e,n),n}function R(e,t){let n=ve(e),r=ve(t);return Number.isFinite(n)&&Number.isFinite(r)&&n!==r?n-r:e.localeCompare(t)}function Ar(e,t){return!(t.deadlineBefore&&(!e.deadline||R(e.deadline,t.deadlineBefore)>0)||t.deadlineAfter&&(!e.deadline||R(e.deadline,t.deadlineAfter)<0)||t.updatedAfter&&R(e.updated_at,t.updatedAfter)<0||t.updatedBefore&&R(e.updated_at,t.updatedBefore)>0||t.createdAfter&&R(e.created_at,t.createdAfter)<0||t.createdBefore&&R(e.created_at,t.createdBefore)>0)}function H(e){return e?`.${e.slice(1).padEnd(3,"0").slice(0,3)}`:""}function j(e){if(!e)return"";if(e.toUpperCase()==="Z")return"Z";let t=/^([+-]\d{2})(\d{2})$/.exec(e);return t?`${t[1]}:${t[2]}`:e}function Rt(e,t,n){n&&n!==t&&(e.includes(n)||e.push(n))}function Ot(e){let t=[],n=d=>Rt(t,e,d),r=vt.exec(e);if(r){let[,d,f,m]=r;n(`${d}-${f}-${m}`)}let o=Et.exec(e);if(o){let[,d,f,m,l,u,p,_,h]=o,k=p?`:${p}`:"";n(`${d}-${f}-${m}T${l}:${u}${k}${H(_)}${j(h)}`)}let i=It.exec(e);if(i){let[,d,f,m,l,u,p]=i,_=l?`:${l}`:"";n(`${d}T${f}:${m}${_}${H(u)}${j(p)}`)}let s=At.exec(e);if(s){let[,d,f,m,l,u,p]=s,_=l?`:${l}`:"";n(`${d}T${f}:${m}${_}${H(u)}${j(p)}`)}let a=10,c=e.slice(0,a);if(Nt(c)){let d=a;for(;d<e.length&&Mt(e[d]);)d+=1;d<e.length&&n(`${c}T${e.slice(d)}`)}return t}function Dt(e){let t=Date.parse(e);if(Number.isFinite(t))return t;for(let n of Ot(e)){let r=Date.parse(n);if(Number.isFinite(r))return r}return Number.NaN}function Nt(e){if(e.length!==10)return!1;for(let t=0;t<e.length;t+=1){let n=e[t];if(t===4||t===7){if(n!=="-")return!1;continue}let r=n.charCodeAt(0);if(r<48||r>57)return!1}return!0}function Mt(e){return e?e===" "||e===" "||e===`
2
+ `||e==="\r"||e==="\f"||e==="\v":!1}function z(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}var $t=["January","February","March","April","May","June","July","August","September","October","November","December"],Lt=/^(\d{4})-(\d{2})-(\d{2})/,Pt=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/;function Ut(e,t,n){let r=Lt.exec(t)??Pt.exec(t);if(!r)return;let o=Number.parseInt(r[1],10),i=Number.parseInt(r[2],10),s=Number.parseInt(r[3],10),a=n?.trim()||"deadline";if(i<1||i>12)throw new b(`Invalid ${a} value "${e}". Month "${r[2]}" is out of range \u2014 use a month between 01 and 12.`,w.USAGE);let c=z(o,i-1);if(s<1||s>c)throw new b(`Invalid ${a} value "${e}". ${$t[i-1]} ${o} has ${c} days, so day "${r[3]}" does not exist. Use a real YYYY-MM-DD calendar date.`,w.USAGE)}function Bt(e,t){let n=new Date(e.getTime()),r=n.getUTCDate(),o=n.getUTCMonth()+t,i=n.getUTCFullYear()+Math.floor(o/12),s=(o%12+12)%12,a=Math.min(r,z(i,s));return n.setUTCFullYear(i,s,a),n}function Cr(e,t=new Date,n="deadline"){let r=e.trim();if(r.toLowerCase()==="now")return t.toISOString();let o=kt.exec(r);if(o){let s=o[1]==="-"?-1:1,a=Number.parseInt(o[2],10)*s,c=o[3].toLowerCase();if(c==="m")return Bt(t,a).toISOString();let d=c==="h"?3600*1e3:c==="d"?1440*60*1e3:10080*60*1e3;return new Date(t.getTime()+a*d).toISOString()}Ut(e,r,n);let i=Dt(r);if(!Number.isFinite(i)){let s=n.trim().length>0?n.trim():"deadline",a=xt.test(r)?"Compound relative expressions like +3d+1h are not supported; use a single relative token (for example +3d) or an ISO/date string.":'Use ISO/date string input, "now", or relative +6h/-6h/+1d/-1d/+2w/-2w/+6m/-6m.';throw new b(`Invalid ${s} value "${e}". ${a}`,w.USAGE)}return new Date(i).toISOString()}import{randomUUID as Je}from"node:crypto";import{appendFile as gn,mkdir as yn,readFile as hn,rename as wn,stat as bn,writeFile as kn}from"node:fs/promises";import Ze from"node:path";import E from"node:fs/promises";import Y from"node:path";import{randomUUID as K}from"node:crypto";import{existsSync as Gt}from"node:fs";import{AsyncLocalStorage as Wt}from"node:async_hooks";import A from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bd9832a9-f6a2-5351-a929-0a0d2766df88")}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]="3239b2c7-3ae3-5d4e-9005-b61000362304")}catch{}})();function Dr(){let e=Promise.resolve(),t=new Set;return{async read(n){let r=e,o,i=new Promise(s=>{o=s});t.add(i),await r;try{return await n()}finally{t.delete(i),o()}},write(n){let o=Promise.all([e,...t]).then(()=>n());return e=o.then(()=>{},()=>{}),o}}}function Ft(){let e=Promise.resolve(),t=0,n=[],r=()=>{if(t!==0)return;let o=n.splice(0);for(let i of o)i()};return{enqueue(o){t++;let i=e.then(()=>o());return e=i.then(()=>{},()=>{}).finally(()=>{t--,r()}),i},idle(){return t===0?Promise.resolve():new Promise(o=>n.push(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]="38024e6c-c1ef-5c15-8421-ac18d317e330")}catch{}})();var O=null,Ae=null,qt=null,Ht=null,X=null,jt=null,Ce=null,zt=null;var Xt=[],Se=new Wt;function g(){return Se.getStore()}function jr(e){return Se.run({hooks:null,commands:null,parsers:null,preflight:null,services:null,renderers:null,registrations:null,commandContext:null,commandResult:void 0,affectedItems:[]},e)}var Yt=new Set(["body","comments","dependencies","docs","events","files","learnings","notes","reminders","test_runs","tests"]);function Ie(e){let t=A.resolve(e);for(;;){if(Gt(A.join(t,".git")))return t;let n=A.dirname(t);if(n===t)return;t=n}}function Kt(e){let t=process.env.PM_SOURCE_WORKSPACE_ROOT?.trim()||process.cwd(),n=Ie(t)??A.resolve(t),r=Ie(n);if(!e)return{source_workspace_root:n,...r?{repo_root:r}:{}};let o=A.relative(n,A.resolve(e)),i=o.length>0&&!o.startsWith(`..${A.sep}`)&&o!==".."&&!A.isAbsolute(o);return{source_workspace_root:n,...r?{repo_root:r}:{},...i?{pm_root_rel:o.split(A.sep).join("/")}:{}}}function zr(e){let t=g();if(t){t.hooks=e;return}O=e}function Xr(e){let t=g();if(t){t.commands=e;return}Ae=e}function Yr(e){let t=g();if(t){t.parsers=e;return}qt=e}function Kr(e){let t=g();if(t){t.preflight=e;return}Ht=e}function Jr(e){let t=g();if(t){t.services=e;return}X=e}function Zr(e){let t=g();if(t){t.renderers=e;return}jt=e}function Vr(e){let t=g();if(t){t.registrations=e;return}Ce=e}function Qr(){let e=g();return e?e.registrations:Ce}function eo(e){if(!e)return;let t=g();t?t.affectedItems.push(e):Xt.push(e)}function to(e,t){if(!e||!e.id)return{};let n={id:e.id,type:e.type,status:e.status};if(!Array.isArray(t))return n;let r=e;for(let o of t){if(typeof o!="string")continue;let i=o.startsWith("unset:")?o.slice(6):o;i==="id"||i==="type"||i==="status"||Yt.has(i)||Object.hasOwn(r,i)&&r[i]!==void 0&&(n[i]=r[i])}return n}async function Te(e){let t=g(),n=t?t.hooks:O;return n?ue(n,e):[]}async function no(e){let t=g(),n=t?t.hooks:O;n&&await de(n,e)}async function Re(e){let t=g(),n=t?t.hooks:O;return n?le(n,e):[]}function ro(){let e=g();return((e?e.hooks:O)?.onRead?.length??0)>0}async function oo(e){let t=g(),n=t?t.hooks:O;return n?fe(n,e):[]}async function io(e){let t=g(),n=t?t.commands:Ae;return n?me(n,{...e,...Kt(e.pm_root)}):{handled:!1,result:null,warnings:[]}}function Oe(e,t){let n=g(),r=n?n.commandContext:zt;return{service:e,command:r?.command,args:r?[...r.args]:[],options:r?.options?{...r.options}:{},global:r?.global?{...r.global}:void 0,pm_root:r?.pm_root,source_workspace_root:r?.source_workspace_root,repo_root:r?.repo_root,pm_root_rel:r?.pm_root_rel,payload:t}}async function P(e,t){let n=g(),r=n?n.services:X;return r?_e(r,Oe(e,t)):{handled:!1,result:t,warnings:[]}}function so(e,t){let n=g(),r=n?n.services:X;return r?pe(r,Oe(e,t)):{handled:!1,result:t,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]="7352375d-55f2-5751-934e-ba0cd5c358d5")}catch{}})();function Jt(e){let t;try{t=JSON.parse(e)}catch{return{info:null,warnings:["lock_info_invalid_json"]}}if(typeof t!="object"||t===null||Array.isArray(t))return{info:null,warnings:["lock_info_invalid_shape"]};let n=t,r=n.id,o=n.pid,i=n.owner,s=n.token,a=n.created_at,c=n.ttl_seconds;return typeof r!="string"||typeof o!="number"||!Number.isFinite(o)||typeof i!="string"||s!==void 0&&(typeof s!="string"||s.trim().length===0)||typeof a!="string"||typeof c!="number"||!Number.isFinite(c)?{info:null,warnings:["lock_info_invalid_shape"]}:{info:{id:r,pid:o,owner:i,...typeof s=="string"?{token:s}:{},created_at:a,ttl_seconds:c},warnings:[]}}async function U(e,t=!0){try{let n=await E.readFile(e,"utf8");return t&&await Re({path:e,scope:"project"}),Jt(n)}catch(n){return q(n)?{info:null,warnings:[]}:{info:null,warnings:["lock_info_read_failed"]}}}function J(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}async function Pe(e,t){await Te({path:e,scope:"project",op:t})}function Zt(e,t,n,r=K()){return{id:e,pid:process.pid,owner:t,token:r,created_at:Ee(),ttl_seconds:n}}async function Vt(e,t,n,r,o){await E.mkdir(Y.dirname(e),{recursive:!0});let i=await E.open(e,"wx");try{await i.writeFile(`${JSON.stringify(Zt(t,n,r,o),null,2)}
3
+ `,"utf8")}finally{await i.close()}await Pe(e,"lock:create")}async function Ue(e,t){try{return await E.unlink(e),await Pe(e,t),!0}catch{return!1}}async function Qt(e,t,n,r){let o=Date.now(),i=Fe;for(;;){let s=await Xe(e,t);if(s!==null){try{let d=await U(e,!1);De(d.info,t,n,r)&&await Ue(e,"lock:release")}finally{await s()}return}let a=await U(e,!1);if(!De(a.info,t,n,r))return;let c=Date.now()-o;if(c>=Ne)return;await qe(Math.min(i,Ne-c)),i=Math.min(i*2,Z)}}function De(e,t,n,r){return e?.id===t&&e.pid===process.pid&&e.owner===n&&e.token===r}function Be(e,t){let n=e?.created_at?Date.parse(e.created_at):Number.NaN;return(Number.isFinite(n)?Date.now()-n:Number.POSITIVE_INFINITY)>t*1e3}function en(e){return e?.owner?` (owner ${e.owner})`:""}var Fe=25,Z=200,tn=250,nn=3,rn=".stale-cleanup",Ge="owner.json",We=1e4,Ne=We+Z,on=60*6e4;function Me(e){if(typeof e=="string"){let t=e.trim();if(!/^\d+$/.test(t))return;let n=Number(t);return Number.isSafeInteger(n)?n:void 0}if(typeof e=="number"&&Number.isFinite(e)&&e>=0)return Math.trunc(e)}function sn(e){let t=process.env.PM_LOCK_WAIT_MS,n=Me(t);if(n!==void 0)return n;let r=Me(e);return r!==void 0?r:0}function qe(e){let t=Math.max(1,Math.round(e*(.5+Math.random())));return new Promise(n=>setTimeout(n,t))}function He(e,t,n){let r=n>0?` after waiting ${n}ms`:"";return new b(`Item ${e} is locked${en(t)}${r}`,w.CONFLICT,{code:"lock_conflict",recovery:{retry_after_ms:tn}})}function an(e){if(typeof e=="function")return e;if(typeof e=="object"&&e!==null&&"release"in e){let t=e.release;return typeof t=="function"?t:null}return null}function cn(e,t,n,r){if(!n&&r){let o=t.warnings.length>0?` (${t.warnings.join(",")})`:"";throw new b(`Item ${e} lock is stale${o}; rerun with --force when supported for this command`,w.CONFLICT)}}function dn(e){let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!="object"||t===null||Array.isArray(t))return null;let n=t,r=n.pid,o=n.token,i=n.process_start_identity;return typeof r!="number"||!Number.isInteger(r)||r<=0||typeof o!="string"||o.length===0||i!==void 0&&(typeof i!="string"||!/^\d+$/u.test(i))?null:{pid:r,token:o,...typeof i=="string"?{process_start_identity:i}:{}}}async function je(e){try{return dn(await E.readFile(Y.join(e,Ge),"utf8"))}catch{return null}}function un(e){if(!Number.isSafeInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return!J(t,"ESRCH")}}function ln(e){let t=e.lastIndexOf(")");if(t<0)return null;let n=e.slice(t+2).trim().split(/\s+/u)[19];return n!==void 0&&/^\d+$/u.test(n)?n:null}async function ze(e){try{return ln(await E.readFile(`/proc/${e}/stat`,"utf8"))}catch{return null}}async function fn(e=process.pid){let t=await ze(e);return{pid:e,...t===null?{}:{process_start_identity:t}}}async function mn(e,t,n){if(!un(e.pid))return!1;let r=await ze(e.pid);return e.process_start_identity!==void 0&&r!==null?r===e.process_start_identity:t<=n}async function V(e){try{return await E.rm(e,{recursive:!0,force:!0}),!0}catch{return!1}}async function $e(e,t){let n=await je(e);n===null||n.token!==t||await V(e)}async function Le(e){try{await E.mkdir(e)}catch(n){return J(n,"EEXIST"),null}let t={...await fn(),token:K()};try{await E.writeFile(Y.join(e,Ge),`${JSON.stringify(t)}
4
+ `,"utf8")}catch{return await V(e),null}return t}async function pn(e){let t;try{let r=await E.stat(e);if(t=Date.now()-r.mtimeMs,t<=We)return!1}catch(r){return q(r)}let n=await je(e);return n!==null&&await mn(n,t,on)?!1:V(e)}async function Xe(e,t){let n=`${e}${rn}`,r=await Le(n);if(r!==null)return async()=>$e(n,r.token);if(!await pn(n))return null;let o=await Le(n);return o===null?null:async()=>$e(n,o.token)}async function _n(e){let t=await Xe(e.lockPath,e.id);if(t===null)return{lockInfo:e.fallbackLockInfo,shouldRetryCreate:!1,staleRemovalCounted:!1};try{let n=await U(e.lockPath);if(n.info===null&&n.warnings.length===0)return{lockInfo:n,shouldRetryCreate:!0,staleRemovalCounted:!1};if(!Be(n.info,e.ttlSeconds))return{lockInfo:n,shouldRetryCreate:!1,staleRemovalCounted:!1};if(cn(e.id,n,e.force,e.forceRequiredForStaleLock),e.staleRemovals>=nn)throw He(e.id,n.info,Date.now()-e.startedAtMs);return{lockInfo:n,shouldRetryCreate:await Ue(e.lockPath,"lock:stale_remove"),staleRemovalCounted:!0}}finally{await t()}}async function Ye(e,t,n,r,o=!1,i=!0,s){let a=await P("lock_acquire",{pm_root:e,id:t,ttl_seconds:n,owner:r,force:o,force_required_for_stale_lock:i});if(a.handled){let p=an(a.result);if(p)return async()=>{await Promise.resolve(p()),await P("lock_release",{pm_root:e,id:t,owner:r})}}let c=ae(e,t),d=sn(s),f=Date.now(),m=0,l=Fe,u=K();for(;;)try{return await Vt(c,t,r,n,u),async()=>{await Qt(c,t,r,u),await P("lock_release",{pm_root:e,id:t,owner:r})}}catch(p){if(!J(p,"EEXIST"))throw new b(`Failed to acquire lock for ${t}: ${ce(p)}`,w.GENERIC_FAILURE);let _=await U(c);if(Be(_.info,n)){let k=await _n({lockPath:c,id:t,ttlSeconds:n,force:o,forceRequiredForStaleLock:i,staleRemovals:m,waitBudgetMs:d,startedAtMs:f,fallbackLockInfo:_});if(_=k.lockInfo,k.staleRemovalCounted&&(m+=1),k.shouldRetryCreate)continue}let h=Date.now()-f;if(d===0||h>=d)throw He(t,_.info,d===0?0:h);await qe(Math.min(l,d-h)),l=Math.min(l*2,Z)}}(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]="997a09a2-cf0c-5384-b457-d9627d465b71")}catch{}})();var Ve=2048,Qe=30,et=864e5,xn=262144,vn="context-usage-ledger",B=Symbol.for("@unbrained/pm-cli/context-usage-serving-receipt");function y(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function So(e,t){let n=y(e);n!==null&&t!==null&&(n[B]=t)}function ee(e,t){let n=y(e),r=y(t),o=n?.[B];r!==null&&o!==void 0&&(r[B]=o)}function En(e){return y(e)?.[B]??null}function tt(e){let t=y(e);for(let n of["read_output","context_intent"])if(y(t?.[n])?.result_omitted===!0)return!0;return!1}function C(e,t){typeof t=="string"&&t.trim().length>0&&e.add(t.trim())}function nt(e,t){if(Array.isArray(t))for(let n of t)C(e,y(n)?.id)}function Ke(e,t){if(Array.isArray(t))for(let n of t)C(e,n)}function In(e,t){let n=[...y(e.recommended)===null?[]:[e.recommended],...Array.isArray(e.ready)?e.ready:[],...Array.isArray(e.decision_needed)?e.decision_needed:[],...Array.isArray(e.blocked)?e.blocked:[],...Array.isArray(e.held_by_others)?e.held_by_others:[]];for(let r of n){let o=y(r);C(t,o?.id);for(let i of Array.isArray(o?.blockers)?o.blockers:[])C(t,y(i)?.id);for(let i of Array.isArray(o?.unblocks)?o.unblocks:[])C(t,i)}}function An(e,t){for(let n of["high_level","low_level","blocked_fallback","recently_created","unparented","activity","progress","blockers","staleness"])nt(t,e[n]);for(let n of Array.isArray(e.blockers)?e.blockers:[])C(t,y(n)?.blocked_by);Cn(e,t)}function Cn(e,t){for(let o of Array.isArray(e.hierarchy)?e.hierarchy:[]){let i=y(o);C(t,i?.id),nt(t,i?.children)}for(let o of["files","workload"])for(let i of Array.isArray(e[o])?e[o]:[])Ke(t,y(i)?.items);let n=y(e.agenda);for(let o of Array.isArray(n?.events)?n.events:[])C(t,y(o)?.item_id);let r=y(e.tests);Ke(t,r?.items_failing)}function Sn(e,t){let n=y(e);if(n===null||tt(e))return[];let r=new Set;return t==="next"?In(n,r):An(n,r),[...r]}async function To(e){let t=En(e.result);if(t===null)return!1;let n=tt(e.result);return await Tn({pmRoot:e.pmRoot,receipt:t,deliveredItemIds:Sn(e.result,t.surface),resultOmitted:n}),!0}var x=class extends TypeError{code="context_usage_validation_failed";constructor(t){super(t),this.name="ContextUsageValidationError"}};function rt(e){return Ze.join(e,"runtime","context-usage.jsonl")}function D(e){let t=e.now??new Date().toISOString(),n=Date.parse(t);if(!Number.isFinite(n))throw new x("Context usage now must be a valid timestamp");return{iso:new Date(n).toISOString(),ms:n}}async function Q(e){try{let n=(await hn(rt(e.pmRoot),"utf8")).split(`
5
+ `).filter(Boolean).flatMap(s=>{try{return[JSON.parse(s)]}catch{return[]}}),r=e.maxEvents??Ve,o=e.retentionDays??Qe,i=D(e).ms-o*et;return n.filter(s=>Date.parse(s.at)>=i).slice(-r)}catch{return[]}}async function te(e,t,n){let r=e.maxEvents??Ve,o=e.retentionDays??Qe;if(!Number.isInteger(r)||r<1||!Number.isFinite(o)||o<=0)throw new x("Context usage retention requires positive maxEvents and retentionDays");let i=rt(e.pmRoot),s=Ze.dirname(i),a=await Ye(e.pmRoot,vn,30,`context-usage:${process.pid}`,!1,!1,3e3);try{if(await yn(s,{recursive:!0}),n!==void 0&&(await Q(e)).some(m=>m.kind==="delivery"&&m.serve_id===n)||(await gn(i,t.map(m=>`${JSON.stringify(m)}
6
+ `).join(""),"utf8"),!(e.maxEvents!==void 0||e.retentionDays!==void 0)&&(await bn(i)).size<=xn))return;let d=await Q(e),f=`${i}.${process.pid}.${Je()}.tmp`;await kn(f,`${d.map(m=>JSON.stringify(m)).join(`
7
+ `)}
8
+ `,"utf8"),await wn(f,i)}finally{await a()}}async function ot(e,t){await te(e,[t])}async function Ro(e){if([process.env.PM_CONTEXT_USAGE_DISABLED==="1",e.enabled===!1].includes(!0))return null;if(!e.author.trim()||e.rows.some(r=>!r.id.trim()||!Number.isInteger(r.rank)||r.rank<1))throw new x("Context usage serving requires an author and valid ranked rows");let t=e.rows.map(r=>({...r,id:r.id.trim()}));if(new Set(t.map(r=>r.id)).size!==t.length)throw new x("Context usage serving requires unique normalized row ids");let n={serve_id:Je(),author:e.author.trim(),surface:e.surface,rows:t};return await ot(e,{kind:"serve",schema_version:2,serve_id:n.serve_id,at:D(e).iso,author:e.author.trim(),surface:e.surface,profile:e.profile.trim()||"balanced",rows:n.rows.map(r=>({...r})),result_omitted:!1,packed_item_ids:n.rows.filter(r=>r.included).map(r=>r.id)}),n}async function Tn(e){if(e.receipt===null||process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)return;let t=new Set(e.receipt.rows.map(o=>o.id)),n=[...new Set(e.deliveredItemIds.map(o=>o.trim()))];if(n.some(o=>o.length===0||!t.has(o))||e.resultOmitted&&n.length>0)throw new x("Context usage delivery requires emitted ranked ids and zero ids for an omitted result");let r={kind:"delivery",schema_version:2,serve_id:e.receipt.serve_id,at:D(e).iso,author:e.receipt.author,surface:e.receipt.surface,result_omitted:e.resultOmitted,delivered_item_ids:n};await te(e,[r],r.serve_id)}async function Oo(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||!e.itemId.trim()||!e.intent.trim())throw new x("Context usage touch requires author, itemId, and intent");await ot(e,{kind:"touch",at:D(e).iso,author:e.author.trim(),item_id:e.itemId.trim(),intent:e.intent.trim()})}}async function Do(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1||e.itemIds.length===0)return;let t=e.author.trim(),n=e.intent.trim();if(!t||!n)throw new x("Context usage touch requires author and intent");let r=new Set;for(let s of e.itemIds){if(typeof s!="string")throw new x("Context usage touch requires string itemIds");let a=s.trim();if(!a)throw new x("Context usage touch requires non-empty itemId");r.add(a)}let o=D(e).iso,i=[...r].map(s=>({kind:"touch",at:o,author:t,item_id:s,intent:n}));await te(e,i)}function Rn(e,t,n,r){return e.find(({entry:o,time:i})=>o.item_id===t&&i>=n&&i-n<=r)?.time}function On(e,t){let n=new Map;for(let r of e)r.kind==="delivery"&&r.schema_version===2&&r.author===t&&!n.has(r.serve_id)&&n.set(r.serve_id,r);return n}async function No(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)return{affinity:{},positive_judgments:0,serving_events:0,untrusted_serving_events:0};let t=await Q(e),n=D(e).ms,r=(e.horizonHours??24)*36e5;if(![Number.isFinite(r),r>0].every(Boolean))throw new x("Context usage horizonHours must be positive");let o=e.author.trim(),i=t.filter(u=>u.kind==="touch").filter(u=>u.author===o).map(u=>({entry:u,time:Date.parse(u.at)})),s=new Map,a=0,c=0,d=0,f=On(t,o);t.filter(u=>u.kind==="serve").filter(u=>u.author===o).forEach(u=>{if(![u.schema_version===2,!!u.serve_id].every(Boolean)){c+=1;return}a+=1;let p=Date.parse(u.at),_=f.get(u.serve_id),h=new Set(_?.delivered_item_ids??[]);for(let k of u.rows){if(!h.has(k.id))continue;let se=Rn(i,k.id,p,r);if(se===void 0)continue;d+=1;let ht=Math.max(0,(n-se)/et);s.set(k.id,(s.get(k.id)??0)+Math.exp(-ht/14))}});let m=Math.max(0,...s.values());return{affinity:Object.fromEntries([...s.entries()].map(([u,p])=>[u,m===0?.05:.05+.95*p/m])),positive_judgments:d,serving_events:a,untrusted_serving_events:c}}import{AsyncLocalStorage as Jn}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]="288a7da9-888b-527d-88fb-4711917cec5b")}catch{}})();var Dn=e=>{let t='"',n=0;for(let r of e){if(r==="\\"){n+=1;continue}t+="\\".repeat(r==='"'?n*2+1:n),t+=r,n=0}return`${t}${"\\".repeat(n*2)}"`},Nn=(e,t=process.platform)=>(t==="win32"?/^[A-Za-z0-9._:/\\@=-]+$/:/^[A-Za-z0-9._:/@=-]+$/).test(e)?e:t==="win32"?Dn(e):`"${e.replace(/(["\\$`])/g,"\\$1")}"`,ne=(e,t=process.platform)=>{let n=e.map(r=>Nn(r,t)).join(" ");return n.length>0?`pm ${n}`:"pm"};(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]="8ffd2cd5-8b7e-5ae1-a0c6-aab488edb73c")}catch{}})();var ct=new WeakMap;function Uo(e,t){ct.set(e,new Set(t))}var it='.row_contract.row_keys[] as $key | getpath($key | split(".")) | if type == "array" then .[] else if type == "object" then to_entries[] else empty end end',Mn={context:{row_keys:["high_level","low_level"],fields:"supported"},get:{row_keys:["children"],fields:"supported"},list:{row_keys:["items"],fields:"supported"},next:{row_keys:["recommended","ready","decision_needed","blocked","held_by_others"],fields:"unsupported"},search:{row_keys:["items"],fields:"supported"},activity:{row_keys:["activity_digest","compact_activity","provenance_activity","activity"],fields:"unsupported"},history:{row_keys:["compact_history","provenance_history","history"],fields:"unsupported"},deps:{row_keys:["graph.nodes","graph.edges","context.nodes","context.edges"],fields:"unsupported"},health:{row_keys:["checks"],fields:"unsupported"},aggregate:{row_keys:["groups"],fields:"unsupported"},duplicates:{row_keys:["clusters"],fields:"unsupported"},stats:{row_keys:["by_type","by_status"],fields:"unsupported"},comments:{row_keys:["comments"],fields:"unsupported"},notes:{row_keys:["notes"],fields:"unsupported"},learnings:{row_keys:["learnings"],fields:"unsupported"},files:{row_keys:["files"],fields:"unsupported"},docs:{row_keys:["docs"],fields:"unsupported"},validate:{row_keys:["checks","warnings"],fields:"unsupported"},contracts:{row_keys:["command_summaries","commands"],fields:"unsupported"}},$n=[{command:"activity",complete_mode:"full",omissions_by_mode:{digest:[{name:"event_rows",restore_with:"--raw"}],compact:[{name:"provenance",restore_with:"--full"}],provenance:[{name:"patch_and_hashes",restore_with:"--full"}]}},{command:"history",complete_mode:"full",omissions_by_mode:{compact:[{name:"raw_history",restore_with:"--full"}],provenance:[{name:"patch_and_hashes",restore_with:"--full"}]}}];function Bo(e,t,n){if(e&&t)throw new b(`${n} cannot be combined with --full`,w.USAGE)}function I(e,t=new Set){let n=e.filter(r=>!t.has(r.name)).map(r=>({...r}));return{has_omissions:n.length>0,omitted_field_group_count:n.length,omitted_field_groups:n}}function Fo(e,t){let n=$n.find(o=>o.command===e);if(n===void 0)throw new TypeError(`Unknown mode-paired output command: ${e}`);if(t===n.complete_mode)return I([]);let r=n.omissions_by_mode[t];if(r===void 0)throw new TypeError(`Unknown ${e} output mode: ${t}`);return I(r)}var Ln=[{name:"hierarchy",restore_with:"--depth standard"},{name:"activity",restore_with:"--depth standard"},{name:"progress",restore_with:"--depth standard"},{name:"blockers",restore_with:"--depth standard"},{name:"recently_created",restore_with:"--depth standard"},{name:"unparented",restore_with:"--depth standard"},{name:"files",restore_with:"--depth deep"},{name:"workload",restore_with:"--depth standard"},{name:"staleness",restore_with:"--depth deep"},{name:"tests",restore_with:"--depth deep"},{name:"workspace_memory",restore_with:"--depth deep"}];function v(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Pn=new Set([void 0,"tabular_when_uniform"]),Un=new Set(["collection","none"]),Bn=new Set(["supported","unsupported"]);function st(e,t){return Array.isArray(e)&&(t||e.length>0)&&e.every(n=>typeof n=="string"&&n.length>0)&&new Set(e).size===e.length}function Fn(e){return v(e)&&typeof e.command=="string"&&e.command.trim().length>0&&Un.has(e.row_kind)&&st(e.row_keys,!0)&&(e.continuation_row_keys===void 0||st(e.continuation_row_keys,!1))&&Bn.has(e.fields)&&Pn.has(e.toon_encoding)&&(e.row_kind==="collection"?e.row_keys.length>0&&typeof e.jq_selector=="string"&&e.jq_selector.trim().length>0:e.row_keys.length===0&&e.jq_selector===void 0)}var Gn={ancestors:["ids"],descendants:["ids"],predecessors:["ids"],successors:["ids"],paths:["paths"],impact:["affected"],audit:["findings"],communities:["communities"],redundancy:["redundant"],dominators:["bottlenecks"],slack:["rows"],centrality:["rows"],articulation:["articulation_points","bridges"],plan:["steps"]},Wn={context:["sections_included","high_level","low_level"],get:["item"],list:["items","projection"],next:["recommended","ready","decision_needed","blocked","held_by_others"],search:["items","projection"],activity:["activity_digest","compact_activity","provenance_activity","activity"],history:["compact_history","provenance_history","history"],deps:["tree","graph","projection"],health:["checks"],aggregate:["groups"],duplicates:["clusters"],stats:["totals","by_type","by_status"],comments:["comments"],notes:["notes"],learnings:["learnings"],files:["files"],docs:["docs"],validate:["checks","warnings"],contracts:["command_summaries","commands","selected"]};function qn(e,t){let n=e.trim().toLowerCase().split(/\s+/u,1)[0],r=n?.startsWith("list-")?"list":n;if(r==="graph"){let s=typeof t.subcommand=="string"?t.subcommand:"";if(s.length===0)return;let a=Gn[s];if(a===void 0)return;let c=a.filter(d=>Array.isArray(t[d])||v(t[d]));return{command:"graph",row_kind:c.length>0?"collection":"none",row_keys:c,fields:"unsupported",...c.length>0?{jq_selector:it}:{},toon_encoding:"tabular_when_uniform"}}let o=Mn[r],i=Wn[r];return o===void 0||i===void 0||!i.some(s=>Object.hasOwn(t,s))?void 0:(()=>{let s=o.row_keys.filter(a=>{let c=a.split(".").reduce((d,f)=>v(d)?d[f]:void 0,t);return Array.isArray(c)||v(c)});return{command:r,row_kind:s.length>0?"collection":"none",row_keys:s,fields:o.fields,...s.length>0?{jq_selector:it}:{},toon_encoding:"tabular_when_uniform"}})()}function Hn(e){if(!v(e.projection)||typeof e.projection.mode!="string"||e.projection.mode.trim().length===0)return;let t=e.projection.declared_field_groups,n=e.projection.included_field_groups;if(!Array.isArray(t)||!Array.isArray(n))return;let r=t.filter(s=>v(s)&&typeof s.name=="string"&&s.name.trim().length>0&&typeof s.restore_with=="string"&&s.restore_with.trim().length>0),o=n.filter(s=>typeof s=="string");if(r.length!==t.length||o.length!==n.length)return;let i=new Set(r.map(s=>s.name));if(!(i.size!==r.length||new Set(o).size!==o.length||o.some(s=>!i.has(s))))return I(r,new Set(o))}function jn(e){if(Array.isArray(e.sections_included))return I(Ln,new Set(e.sections_included.filter(t=>typeof t=="string")))}function zn(e){if(!v(e.item))return;let t=e.item,n=["comments","notes","learnings","files","tests","docs","reminders","events"],r=["body","children","claim_state","linked","schedule"],o=ct.get(e),i=a=>n.includes(a)||a==="body"?t:e,s=["body",...n,...r.slice(1)].filter(a=>o===void 0||o.has(a)||Object.hasOwn(i(a),a)).map(a=>({name:a,restore_with:`--fields ${a}`}));return I(s,new Set(s.flatMap(({name:a})=>Object.hasOwn(i(a),a)?[a]:[])))}function at(e){if(v(e.projection))return I([{name:"full_item_fields",restore_with:"--full"}],new Set(e.projection.mode==="full"?["full_item_fields"]:[]))}function Xn(e){if(!v(e.projection))return I([]);if(typeof e.projection.mode=="string")return I([{name:"full_check_details",restore_with:"--full"}],new Set(e.projection.mode==="full"?["full_check_details"]:[]))}function Yn(e){if(!(!v(e.selected)||typeof e.selected.summary!="boolean"))return I([{name:"full_contract_catalog",restore_with:"--full"}],new Set(e.selected.summary?[]:["full_contract_catalog"]))}function Kn(e,t){let n=Hn(t);if(n!==void 0)return n;let[r]=e.split(/\s+/u,1);if(r==="context")return jn(t);if(r==="get")return zn(t);if(r==="list"||r.startsWith("list-"))return at(t);if(r==="search")return at(t)??I([{name:"projection_metadata",restore_with:"--full"}]);if(r==="health")return Xn(t);if(r==="contracts")return Yn(t)}function dt(e,t){if(e===void 0||!v(t))return t;let n=Kn(e,t),r=t.row_contract,o=Fn(r)?r:qn(e,t),i=o!==void 0?{...t,row_contract:o}:Object.hasOwn(t,"row_contract")?Object.fromEntries(Object.entries(t).filter(([s])=>s!=="row_contract")):t;return v(i.omission_receipt)||n===void 0?i:{...i,omission_receipt: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]="5dc9c6e4-6db8-560f-a87f-368132e2ffb3")}catch{}})();var lt=Object.freeze([{command:"context",intent:"orient",description:"Bounded active hierarchy, ownership, blockers, and recent progress.",included_field_groups:["summary","focus","hierarchy","blockers","activity"],token_budget:3e3,source:"core"},{command:"context",intent:"handoff",description:"Active ownership, evidence, decisions, and immediate continuation context.",included_field_groups:["summary","focus","in_progress","decisions","activity"],token_budget:2200,source:"core"},{command:"get",intent:"inspect",description:"Standard-depth item metadata, relationships, evidence, and lifecycle state.",included_field_groups:["item","children","claim_state","linked"],token_budget:3200,source:"core"},{command:"list",intent:"triage",description:"A budget-derived page of compact governance, ownership, priority, and blocker rows for triage.",included_field_groups:["identity","governance","ownership","dependencies"],token_budget:3200,source:"core"},{command:"next",intent:"execute",description:"The highest-ranked actionable work with concise ranking evidence.",included_field_groups:["recommended"],token_budget:1200,source:"core"},{command:"search",intent:"discover",description:"A budget-derived page of ranked canonical lineage candidates with compact match evidence.",included_field_groups:["identity","status","lineage","match"],token_budget:1800,source:"core"}]),ft=new Jn;function Zn(){return ft.getStore()??lt}function Jo(e,t){return ft.run(Qn(e.workspaceContracts,e.packageContracts),t)}function Vn(e,t){let n=e.command.trim().toLowerCase(),r=e.intent.trim().toLowerCase(),o=`${n}:${r}`;if(!/^[a-z0-9][a-z0-9-]*$/.test(n)||!/^[a-z0-9][a-z0-9-]*$/.test(r))throw new TypeError(`Invalid context intent command or name: ${o}`);if(e.description.trim().length===0)throw new TypeError(`Context intent ${o} requires a non-empty description`);if(!Number.isSafeInteger(e.token_budget)||e.token_budget<=0)throw new TypeError(`Context intent ${o} requires a positive integer token_budget`);let i=[...new Set(e.included_field_groups.map(s=>s.trim()).filter(Boolean))];if(i.length===0)throw new TypeError(`Context intent ${o} requires included_field_groups`);return{command:n,intent:r,description:e.description.trim(),included_field_groups:i,token_budget:e.token_budget,source:t}}function Qn(e=[],t=[]){let n=[{source:"core",contracts:lt,allowOverride:!1},{source:"package",contracts:t,allowOverride:!1},{source:"workspace",contracts:e,allowOverride:!0}],r=new Map,o=new Set;for(let i of n){o.clear();for(let s of i.contracts){let a=Vn(s,i.source),c=`${a.command}:${a.intent}`;if(o.has(c))throw new TypeError(`Duplicate context intent declaration: ${c}`);if(o.add(c),!i.allowOverride&&r.has(c))throw new TypeError(`Duplicate context intent declaration: ${c}`);r.set(c,a)}}return[...r.values()].sort((i,s)=>i.command.localeCompare(s.command)||i.intent.localeCompare(s.intent))}function mt(e,t,n=Zn(),r=[]){let o=e.trim().toLowerCase(),i=t.trim().toLowerCase(),s=n.find(l=>l.command===o&&l.intent===i);if(s)return{...s,source:s.source??"core"};let a=n.filter(l=>l.command===o).map(l=>l.intent);if(a.length===0)return;let c=a.map(l=>{let u=Array.from({length:i.length+1},(p,_)=>_);for(let p=1;p<=l.length;p+=1){let _=u[0];u[0]=p;for(let h=1;h<=i.length;h+=1){let k=u[h];u[h]=Math.min(u[h]+1,u[h-1]+1,_+(l[p-1]===i[h-1]?0:1)),_=k}}return{candidate:l,distance:u[i.length]}}).sort((l,u)=>l.distance-u.distance||l.candidate.localeCompare(u.candidate))[0].candidate,d=[o,...r,"--for",i],f=[o,...r,"--for",c],m=ne(f);throw new b(`Unknown context intent "${i}" for ${o}. Did you mean "${c}"?`,w.USAGE,{code:"unknown_context_intent",reason:"unknown_intent",field:"for",flag:"--for",value:i,required:`Use a declared ${o} intent.`,why:"Intent names are command-local contracts and cannot be inferred from output section names.",nextSteps:[m],recovery:{recovery_mode:"compact",attempted_command:ne(d),allowed_values:[...a].sort(),suggested_retry:m,suggested_retry_args:f}})}var pt={context:(e,t,n)=>{e.depth===void 0&&(e.depth=t.intent==="handoff"?"deep":"standard"),e.section===void 0&&(e.section=t.intent==="handoff"?["activity","progress","blockers"]:["hierarchy","blockers","activity"]);let r=G(e.tokenBudget,t.token_budget),o=W("context",t.intent,r,n),i=T(e.limit),s=String(i===void 0?o:Math.min(i,o));(e.limit===void 0||i!==void 0)&&(e.limit=s),e.activityLimit===void 0&&(e.activityLimit=s)},get:e=>{e.depth===void 0&&e.fields===void 0&&(e.depth="standard")},list:(e,t,n)=>{e.brief===void 0&&e.compact===void 0&&e.full===void 0&&e.fields===void 0&&(e.fields="id,title,status,type,priority,parent,assignee,risk,blocked_by");let r=G(e.tokenBudget,t.token_budget),o=W("list",t.intent,r,n),i=T(e.limit);(e.limit===void 0||i!==void 0)&&(e.limit=String(i===void 0?o:Math.min(i,o)))},next:e=>{e.readyOnly===void 0&&(e.readyOnly=!0)},search:(e,t,n)=>{e.compact===void 0&&e.full===void 0&&e.fields===void 0&&(e.compact=!0);let r=G(e.tokenBudget,t.token_budget),o=W("search",t.intent,r,n),i=T(e.limit);(e.limit===void 0||i!==void 0)&&(e.limit=String(i===void 0?o:Math.min(i,o)))}};function Zo(e,t,n=[]){let r=t.tokenBudget??t.token_budget;if(typeof t.for!="string"){if(r!==void 0&&(e==="get"||e==="list"||e==="search"))throw new b("--token-budget requires a declared context intent selected with --for",w.USAGE,{code:"missing_required_option",field:"for",required:"Select a context intent with --for when setting --token-budget.",why:"A token-budget override has no projection contract to constrain without a selected intent.",nextSteps:["Retry with --for <intent> --token-budget <n>, or omit --token-budget."]});if(t.tokenBudget!==void 0||t.token_budget===void 0)return t;let a={...t,tokenBudget:r};return delete a.token_budget,a}let o=mt(e,t.for,void 0,n),i=T(r)!==void 0,s={...t};return s.tokenBudget===void 0&&r!==void 0&&(s.tokenBudget=r),delete s.token_budget,s.tokenBudget===void 0&&(s.tokenBudget=String(o.token_budget)),pt[e](s,o,i),s}var er={context:"bounded_sections",get:"standard_item",list:"bounded_fields_and_rows",next:"bounded_ranked_rows",search:"bounded_ranked_rows"},F=256;function re(e){return Array.isArray(e)?e.map(re):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,n])=>[t,re(n)])):typeof e=="string"&&e.length>240?`${e.slice(0,240)}\u2026`:e}function T(e){let t=typeof e=="number"?e:typeof e=="string"&&/^\d+$/u.test(e.trim())?Number(e):Number.NaN;return Number.isSafeInteger(t)&&t>0?t:void 0}function G(e,t){let n=T(e);if(n===void 0)return t;if(n<F)throw new b(`Context intent token budget must be at least ${F}`,w.USAGE,{code:"invalid_argument_value",reason:"below_minimum",field:"tokenBudget",required:`Use an integer token budget of at least ${F}.`,why:"Smaller ceilings cannot contain the minimum machine-readable intent receipt.",nextSteps:[`Retry with --token-budget ${F} or omit the override.`]});return n}function W(e,t,n,r){if(e==="get"||e==="next")return;let o=e==="context"&&t==="orient",i=e==="context"?o?1200:800:e==="list"?520:480,s=e==="context"?o?600:500:16,a=Math.max(e==="context"?1:2,Math.floor((n-i)/s));return r?a:Math.min(e==="context"?20:100,a)}function S(e,t){let n=t.estimated_tokens;for(;;){t.estimated_tokens=n;let r=Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4);if(r===n)return;n=r}}var ut={context:["high_level","low_level","blocked_fallback","recently_created","unparented","hierarchy","activity","blockers"],get:["children"],list:["items"],next:["ready","decision_needed","blocked","held_by_others"],search:["items"]};function _t(e){try{let t=JSON.parse(Buffer.from(e,"base64url").toString("utf8"));return typeof t.fingerprint!="string"||!Number.isSafeInteger(t.after_index)?void 0:{fingerprint:t.fingerprint,after_index:t.after_index,...typeof t.snapshot=="string"?{snapshot:t.snapshot}:{}}}catch{return}}function tr(e){if(e===null||typeof e!="object")return;if(typeof e.id=="string")return e.id;let t=e.item?.id;return typeof t=="string"?t:void 0}function nr(e,t,n){let r=!1;for(;;){if(S(e,t),t.estimated_tokens<=t.token_budget||n.length<=1)return r;let o=Buffer.byteLength(JSON.stringify(n),"utf8"),i=(t.estimated_tokens-t.token_budget)*4;n.splice(-Math.min(n.length-1,Math.max(1,Math.ceil(i/Math.max(1,Math.ceil(o/n.length)))))),r=!0}}function rr(e,t,n){let r=e.items,o=typeof e.next_cursor=="string",i=o?e.next_cursor:n.after;if(!Array.isArray(r)||typeof i!="string")return!1;let s=_t(i);if(s===void 0)return!1;let a=r.length,c=[...r],d=!1;for(;;){if(d=nr(e,t,r)||d,!d)return!1;let f=tr(r.at(-1));if(f===void 0)return r.splice(0,r.length,...c),S(e,t),!1;if(e.next_cursor=ye(s.fingerprint,f,o?s.after_index-(a-r.length):s.after_index+r.length,s.snapshot),S(e,t),t.estimated_tokens<=t.token_budget||r.length<=1)break}return typeof e.count=="number"&&(e.count=r.length),typeof e.applied_limit=="number"&&(e.applied_limit=r.length),!0}function or(e,t,n,r){if(e==="list"||e==="search")return rr(t,n,r);if(e!=="next"||typeof t.next_cursor=="string")return!1;let o=!1;for(;;){if(S(t,n),n.estimated_tokens<=n.token_budget)return o;let i=ut[e].map(l=>({key:l,rows:Array.isArray(t[l])?t[l]:[]})).filter(({rows:l})=>l.length>0).sort((l,u)=>u.rows.length-l.rows.length||l.key.localeCompare(u.key))[0];if(i===void 0)return o;let s=ut[e].reduce((l,u)=>l+(Array.isArray(t[u])?t[u].length:0),0);if(s<=1)return o;let a=Math.min(i.rows.length,s-1),c=Buffer.byteLength(JSON.stringify(i.rows),"utf8"),d=Math.max(1,Math.ceil(c/i.rows.length)),f=(n.estimated_tokens-n.token_budget)*4,m=Math.min(a,Math.max(1,Math.ceil(f/d)));i.rows.splice(-m,m),o=!0}}function ir(e,t,n){if(typeof t.for!="string")return n;let r=e.startsWith("list-")?"list":e;if(!(r in pt))return n;let o=r,i=mt(o,t.for),s=G(t.tokenBudget??t.token_budget,i.token_budget),a={command:o,intent:i.intent,source:i.source,included_field_groups:[...i.included_field_groups],token_budget:s,declared_token_budget:i.token_budget,token_budget_override:s-i.token_budget,estimated_tokens:0,within_budget:!0,degradation:er[o],declaration_feasible:!0,result_omitted:!1},c={...n},d=W(o,i.intent,a.token_budget,T(t.tokenBudget??t.token_budget)!==void 0);if(d!==void 0){let m=T(t.limit),l=m!==void 0&&m<d;a.budget_derived_limit=d,a.binding_constraint=l?"explicit_limit":"token_budget",a.limit_reason=l?"The caller supplied a smaller row limit than the budget-derived ceiling.":"The selected intent token budget constrains the effective row ceiling.",c.budget_derived_limit=d}let f={...c,context_intent:a};return S(f,a),a.estimated_tokens>a.token_budget&&(a.degradation="recursive_budget_compaction",f={...re(c),context_intent:a},S(f,a)),a.estimated_tokens>a.token_budget&&or(o,f,a,t)&&(a.degradation="budget_row_compaction",S(f,a)),a.declaration_feasible=a.estimated_tokens<=a.declared_token_budget,a.estimated_tokens>a.token_budget&&(a.degradation="budget_receipt_only",a.result_omitted=!0,a.within_budget=!1,f={budget_exceeded:{omitted_result:!0,reason:a.token_budget_override===0?"declared_budget_infeasible":"effective_budget_infeasible",restore_with:ar(e,o,i.intent,a,c)},context_intent:a}),f}function sr(e,t){if(typeof e.after!="string"||e.after.length===0)return t;let n=_t(e.after)?.fingerprint??"opaque_cursor",r={...t};for(let o of["applied_limit","completeness","context_intent","count","filters","has_more","now","omission_receipt","projection","row_contract","sorting","total","truncated"])delete r[o];return r.continuation_contract={fingerprint:n,metadata:"reference",restore_with:"omit --after"},r}function oe(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function ar(e,t,n,r,o){let i=t==="get"&&oe(o.item)&&typeof o.item.id=="string"?o.item.id:t==="search"&&typeof o.query=="string"?o.query:void 0,s=i===void 0?"":` '${i.replaceAll("'",`'"'"'`)}'`,a=t==="get"?"":` --limit ${r.budget_derived_limit??1}`;return`pm ${e}${s} --for ${n} --token-budget ${Math.ceil(r.estimated_tokens/100)*100}${a}`}function N(e,t){if(oe(e))return typeof e[t]=="number"?e[t]:void 0}function cr(e,t){let n=e;for(let r=0;r<8;r+=1){let o=N(n.context_intent,"estimated_tokens"),i=N(n.read_output,"estimated_tokens"),s=N(n.read_session,"spent_this_call_tokens");if(oe(n.context_intent)&&S(n,n.context_intent),n=he(n,t),N(n.context_intent,"estimated_tokens")===o&&N(n.read_output,"estimated_tokens")===i&&N(n.read_session,"spent_this_call_tokens")===s)break}return n}function Vo(e,t,n){let r=dt(e,n),o=typeof r=="object"&&r!==null&&!Array.isArray(r)?we(e??"",t,sr(t,ir(e??"",t,r))):r;if(ee(n,o),t.outputRowContract===!0||t.output_row_contract===!0||typeof o!="object"||o===null||Array.isArray(o)||!Object.hasOwn(o,"row_contract"))return o;let i=cr(Object.fromEntries(Object.entries(o).filter(([s])=>s!=="row_contract")),t);return ee(o,i),i}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="02baf966-46eb-5e19-b7eb-2f9fe05bb263")}catch{}})();var M=["result_rows","envelope","diagnostics","hints"],dr=/^(?:items|results|rows|ready|blocked|recommended|decision_needed|children|dependencies|events|matches|commands|tools)$/u,ur=/^(?:diagnostics|errors?|warnings?|findings|violations|failures?)$/u,lr=/^(?:hints?|suggestions?|next_steps?|recovery|remediation|examples?)$/u,fr=8;function ie(e){return Buffer.byteLength(e,"utf8")}function gt(e){return ie(JSON.stringify(e)??"null")}function mr(e,t){return ur.test(e)?"diagnostics":lr.test(e)?"hints":dr.test(e)||Array.isArray(t)?"result_rows":"envelope"}function pr(e){let t={result_rows:0,envelope:0,diagnostics:0,hints:0};if(typeof e!="object"||e===null||Array.isArray(e))return t[Array.isArray(e)?"result_rows":"envelope"]=gt(e),t;for(let[n,r]of Object.entries(e))t[mr(n,r)]+=gt({[n]:r});return Object.values(t).every(n=>n===0)&&(t.envelope=1),t}function _r(e,t){let n=M.reduce((s,a)=>s+t[a],0),r=M.map(s=>({section:s,value:e*t[s]/n})),o={result_rows:0,envelope:0,diagnostics:0,hints:0};for(let s of r)o[s.section]=Math.floor(s.value);let i=e-M.reduce((s,a)=>s+o[a],0);for(let s of[...r].sort((a,c)=>c.value-Math.floor(c.value)-(a.value-Math.floor(a.value))||M.indexOf(a.section)-M.indexOf(c.section))){if(i===0)break;o[s.section]+=1,i-=1}return o}function yt(e,t){return typeof e=="object"&&e!==null&&!Array.isArray(e)?{...e,token_accounting:t}:{result:e,token_accounting:t}}function ti(e,t){let n=ie(t(e)),r=_r(n,pr(e)),o=Object.fromEntries(M.map(a=>[a,{bytes:r[a],estimated_tokens:$(r[a])}])),i={version:1,measurement_scope:"output_before_token_accounting",estimator:"ceil(utf8_bytes / 4)",total_bytes:n,total_estimated_tokens:$(n),sections:o,accounting_receipt_bytes:0,accounting_receipt_estimated_tokens:0,excluded_fields:["token_accounting"],section_allocation:"proportional_canonical_json"},s=yt(e,i);for(let a=0;a<fr;a+=1){let c=ie(t(s))-n;if(c===i.accounting_receipt_bytes)return s;i={...i,accounting_receipt_bytes:c,accounting_receipt_estimated_tokens:$(c)},s=yt(e,i)}return s}export{Nn as a,ne as b,Uo as c,Bo as d,Fo as e,dt as f,Dr as g,Ft as h,jr as i,Kt as j,zr as k,Xr as l,Yr as m,Kr as n,Jr as o,Zr as p,Vr as q,Qr as r,eo as s,to as t,Te as u,no as v,Re as w,ro as x,oo as y,io as z,P as A,so as B,hr as C,Ee as D,Er as E,St as F,Ir as G,R as H,Ar as I,Cr as J,fn as K,mn as L,Ye as M,So as N,ee as O,Sn as P,To as Q,x as R,Ro as S,Tn as T,Oo as U,Do as V,No as W,lt as X,Zn as Y,Jo as Z,Qn as _,mt as $,Zo as aa,_t as ba,tr as ca,ir as da,Vo as ea,ti as fa};
9
+ //# sourceMappingURL=chunk-4WR46RMG.js.map
@@ -0,0 +1,3 @@
1
+ import{$ as p,Kb as B,O as V,P as W,Q as K,R as G,aa as _,ja as J,ma as H,na as Y,q as C,r as v,s as $,t as P,u as q}from"./chunk-4RRHC3S4.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ce320988-b999-57c9-a786-a94ac66c5628")}catch{}})();var F=new Set(W),D=Object.freeze({get size(){return F.size},has(e){return F.has(e)},entries(){return F.entries()},keys(){return F.keys()},values(){return F.values()},forEach(e,t){F.forEach(n=>e.call(t,n,n,D))},[Symbol.iterator](){return F.values()}});function X(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function Z(e){return typeof e!="string"?null:V(e)}function de(e){try{return structuredClone(e)}catch{return e}}function ue(e){let t=e.trim(),n=t.indexOf("=");if(n<=0)throw new _(`--field entries must use name=value syntax, received: ${e}`,p.USAGE);let r=t.slice(0,n).trim(),s=t.slice(n+1);return{key:r,value:s}}function fe(e){return`--${e.replaceAll("_","-")}`}function ce(e,t,n){try{let r=JSON.parse(e);if(n==="array"&&Array.isArray(r)||n==="object"&&typeof r=="object"&&r!==null&&!Array.isArray(r))return r}catch{}throw new _(`--field ${t}=... must be valid JSON ${n}`,p.USAGE)}function me(e,t,n){if(t==="string")return n;if(t==="number"){let r=n.trim();if(r.length===0)throw new _(`--field ${e}=... must be a number`,p.USAGE);let s=Number(r);if(!Number.isFinite(s))throw new _(`--field ${e}=... must be a number`,p.USAGE);return s}if(t==="boolean"){let r=n.trim().toLowerCase();if(r==="true"||r==="1"||r==="yes")return!0;if(r==="false"||r==="0"||r==="no")return!1;throw new _(`--field ${e}=... must be one of true|false|1|0|yes|no`,p.USAGE)}return t==="string_array"?n.split(/[\n,|]/u).map(r=>r.trim()).filter(r=>r.length>0):ce(n,e,t)}function M(e){let t=new Map;if(!e)return t;for(let n of e.item_fields)for(let r of n.fields){let s=X(r.name),i=Z(r.type);if(!s||!i)continue;let l=t.get(s);if(l&&l.type!==i)throw new _(`Extension item field "${s}" is declared with conflicting types: ${l.type}, ${i}`,p.USAGE,{code:"extension_item_field_type_conflict",nextSteps:["Make every active extension declaration for this field use the same type."]});t.set(s,{name:s,type:i})}return t}function Q(e){if(D.has(e))throw new _(`Extension item field "${e}" collides with built-in item metadata "${e}"; rename the extension field with an extension-specific prefix. Reserved fields: ${[...D].sort((t,n)=>t.localeCompare(n)).join(", ")}.`,p.USAGE,{code:"extension_item_field_reserved",nextSteps:["Rename the extension item field, preferably with an extension-specific prefix."]})}function Ze(e){return[...M(e).keys()].sort((t,n)=>t.localeCompare(n))}function Qe(e,t){if(!e||e.length===0)return{};let n=M(t),r={};for(let s of e){let{key:i,value:l}=ue(s),a=n.get(i);if(!a){if(D.has(i)){let d=fe(i);throw new _(`--field ${i} is a core item field, not an extension field`,p.USAGE,{code:"core_item_field_requires_dedicated_flag",field:i,recovery:{provided_fields:[i],suggested_flags:[d]},nextSteps:[`Set the core field with its dedicated flag: pm update <id> ${d} <value>`,`When closing an item, pm close <id> also accepts ${d} <value>.`]})}let o=[...n.keys()].sort((d,f)=>d.localeCompare(f));throw new _(`--field ${i} is not declared by an active extension item-field registration`,p.USAGE,{code:"extension_item_field_unknown",recovery:{provided_fields:o},nextSteps:o.length>0?[`Use one of the declared fields: ${o.join(", ")}`]:["Activate an extension that calls registerItemFields before setting extension fields."]})}Q(a.name),r[a.name]=me(a.name,a.type,l)}return r}function pe(e,t){return t==="string"?typeof e=="string":t==="number"?typeof e=="number"&&Number.isFinite(e):t==="boolean"?typeof e=="boolean":t==="array"?Array.isArray(e):t==="string_array"?Array.isArray(e)&&e.every(n=>typeof n=="string"):typeof e=="object"&&e!==null&&!Array.isArray(e)}function _e(e,t){return!t||t.length===0?!0:t.some(n=>Object.is(n,e))}function et(e,t,n={}){if(t){M(t);for(let r of t.item_fields)for(let s of r.fields){let i=X(s.name);if(!i)continue;Q(i),!(i in e)&&!n.skipDefaultFields?.has(i)&&Object.prototype.hasOwnProperty.call(s,"default")&&(e[i]=de(s.default));let l=e[i];if(l===void 0)continue;let a=Z(s.type);if(a&&!pe(l,a))throw new TypeError(`Item field "${i}" must be of type ${a}`);let o=Array.isArray(s.values)?s.values:void 0;if(!_e(l,o))throw new TypeError(`Item field "${i}" must match one of the configured allowed values`)}}}(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]="d6056922-237d-525a-b354-687493a4e123")}catch{}})();var ye=2e3,R=new Map;function A(e){if(typeof e!="string")return"";let t=R.get(e);if(t!==void 0)return t;let n=e.trim().toLowerCase().replaceAll(/[\s-]+/g,"_");return R.size>=ye&&B(R),R.set(e,n),n}import ee 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]="633ef301-42a3-5b73-a4ed-7af0e0e40371")}catch{}})();var y=Object.freeze({types:"schema/types.json",statuses:"schema/statuses.json",fields:"schema/fields.json",workflows:"schema/workflows.json"}),re=G,L=K,we=["create","update"],he=new Set(v),Se=new Set($),ge=new Set(P),Ae=new Set(q),be=new Set(["string","number","boolean","array","object"]),Ee=16;function se(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var ke=[e=>e.type===void 0||typeof e.type=="string"&&be.has(e.type),e=>!Object.hasOwn(e,"const")||O(e.const),e=>e.enum===void 0||Array.isArray(e.enum)&&e.enum.every(t=>O(t)),e=>e.min_length===void 0||Number.isInteger(e.min_length)&&e.min_length>=0,e=>e.min_items===void 0||Number.isInteger(e.min_items)&&e.min_items>=0,e=>e.format===void 0||e.format==="date-time",e=>e.required===void 0||Array.isArray(e.required)&&e.required.every(t=>typeof t=="string"&&t.length>0),e=>e.additional_properties===void 0||typeof e.additional_properties=="boolean",e=>e.properties===void 0||se(e.properties),e=>e.one_of===void 0||Array.isArray(e.one_of)&&e.one_of.length>0];function O(e,t=new Set){if(e===null||typeof e=="string"||typeof e=="boolean")return!0;if(typeof e=="number")return Number.isFinite(e);if(typeof e!="object"||t.has(e))return!1;t.add(e);let n=Array.isArray(e)?e.every(r=>O(r,t)):Object.values(e).every(r=>O(r,t));return t.delete(e),n}function N(e,t=0,n=new Set){if(!se(e)||t>Ee||n.has(e))return;n.add(e);let r=e,s=r.type,i=r.enum,l=r.one_of,a=r.properties,o=r.items,d=r.required,f=r.min_length,u=r.min_items,w=r.format,S=r.additional_properties;if(!ke.every(m=>m(r))){n.delete(e);return}let b=a===void 0?void 0:Object.fromEntries(Object.entries(a).map(([m,U])=>[m,N(U,t+1,n)])),E=o===void 0?void 0:N(o,t+1,n),k=l===void 0?void 0:l.map(m=>N(m,t+1,n));if([...Object.values(b??{}),...o===void 0?[]:[E],...k??[]].some(m=>m===void 0)){n.delete(e);return}return n.delete(e),Object.fromEntries(Object.entries({type:s,const:Object.hasOwn(r,"const")?r.const:void 0,enum:i,min_length:f,min_items:u,format:w,properties:b,required:d===void 0?void 0:[...new Set(d)],additional_properties:S,items:E,one_of:k}).filter(([,m])=>m!==void 0))}function I(e){let t=Array.isArray(e)?e:[];return[...new Set(t.map(n=>typeof n=="string"?n.trim():"").filter(n=>n.length>0))].sort((n,r)=>n.localeCompare(r))}function c(e){if(typeof e!="string"||e.length===0)return;let t=A(e);return t.length>0?t:void 0}function Fe(e){return e.startsWith("--")?e.slice(2):e}function te(e){return typeof e=="string"?Fe(e.trim().toLowerCase().replaceAll(/[\s_]+/g,"-")):""}function ie(e){return e.replaceAll("_","-")}function Te(e){let t=e.replaceAll(/[^A-Za-z0-9]+/g," ").trim().split(/\s+/).filter(s=>s.length>0).map(s=>s.toLowerCase());if(t.length===0)return e;let[n,...r]=t;return`${n}${r.map(s=>`${s.slice(0,1).toUpperCase()}${s.slice(1)}`).join("")}`}function x(e,t){let n=c(e.id);if(!n)return null;let r=[...new Set(I(e.aliases).map(A).filter(a=>a.length>0))].sort((a,o)=>a.localeCompare(o)),s=I(e.roles).filter(a=>he.has(a)),i=e.description?.trim(),l=typeof e.order=="number"&&Number.isFinite(e.order)?e.order:t;return{id:n,aliases:r,roles:s,description:i&&i.length>0?i:void 0,order:l}}function Ie(e){return{draft_status:c(e?.draft_status),open_status:c(e?.open_status),in_progress_status:c(e?.in_progress_status),blocked_status:c(e?.blocked_status),close_status:c(e?.close_status),canceled_status:c(e?.canceled_status)}}function oe(e,t){if(!Array.isArray(t)||t.length!==2)return;let n=A(t[0]),r=A(t[1]);n.length===0||r.length===0||e.pairs.some(s=>s[0]===n&&s[1]===r)||e.pairs.push([n,r])}function ze(e){let t=typeof e?.type=="string"?e.type.trim():"";if(t.length===0||!Array.isArray(e?.allowed_transitions))return null;let n={type:t,pairs:[],denyAll:e.allowed_transitions.length===0};for(let r of e.allowed_transitions)oe(n,r);return{typeKey:t.toLowerCase(),record:n}}function De(e){if(!Array.isArray(e)||e.length===0)return;let t=new Map;for(let r of e){let s=ze(r);if(s===null)continue;let i=t.get(s.typeKey)??s.record;i.denyAll||=s.record.denyAll;for(let l of s.record.pairs)oe(i,l);t.set(s.typeKey,i)}let n=[];for(let r of t.values())(r.pairs.length>0||r.denyAll)&&n.push({type:r.type,allowed_transitions:r.pairs});return n.sort((r,s)=>r.type.localeCompare(s.type)),n.length>0?n:void 0}function ae(e){let t=A(e.key??"");if(!t)return null;let n=A(e.metadata_key??e.front_matter_key??t),r=te(e.cli_flag??ie(t));if(!r)return null;let s=I(e.cli_aliases).map(u=>te(u)).filter(u=>u.length>0&&u!==r),i=typeof e.type=="string"?e.type.trim().toLowerCase():"string",l=Se.has(i)?i:"string",a=(()=>{let u=I(e.commands).filter(w=>ge.has(w));return u.length>0?u:[...we]})(),o=e.description?.trim(),d=I(e.required_types),f=e.value_schema===void 0?void 0:N(e.value_schema);return e.value_schema!==void 0&&f===void 0?null:{key:t,metadata_key:n,cli_flag:r,cli_aliases:s,description:o&&o.length>0?o:void 0,type:l,commands:a,repeatable:[e.repeatable===!0,l==="string_array"].includes(!0),required:e.required===!0,required_on_create:e.required_on_create===!0,required_types:d,allow_unset:e.allow_unset!==!1,value_schema:f}}function Re(e){let t=new Map;for(let[r,s]of e.entries()){let i=x(s,r);i&&t.set(i.id,i)}let n=ne([...t.values()]);return n.length>0?n:ne(L.map((r,s)=>x(r,s)).filter(r=>r!==null))}function ne(e){return e.sort((t,n)=>t.order===n.order?t.id.localeCompare(n.id):t.order-n.order)}function Ne(e){let t=new Map;for(let n of e??[]){let r=ae(n);r&&t.set(r.key,r)}return[...t.values()].sort((n,r)=>n.key.localeCompare(r.key))}function Oe(e){return{id:e.id,aliases:e.aliases.length>0?[...e.aliases]:void 0,roles:e.roles.length>0?[...e.roles]:void 0,description:e.description,order:e.order}}function Ue(e){return{key:e.key,metadata_key:e.metadata_key!==e.key?e.metadata_key:void 0,cli_flag:e.cli_flag!==ie(e.key)?e.cli_flag:void 0,cli_aliases:e.cli_aliases.length>0?[...e.cli_aliases]:void 0,description:e.description,type:e.type,commands:[...e.commands],repeatable:e.repeatable===!0?!0:void 0,required:e.required===!0?!0:void 0,required_on_create:e.required_on_create===!0?!0:void 0,required_types:e.required_types.length>0?[...e.required_types]:void 0,allow_unset:e.allow_unset===!1?!1:void 0,value_schema:e.value_schema}}function Me(e){let t=typeof e=="string"?e.trim().toLowerCase():"allow";return Ae.has(t)?t:"allow"}function z(e){let t={...y,...e?.files},n=e?.statuses&&e.statuses.length>0?e.statuses:L,r=Re(n),s=Ne(e?.fields);return{version:typeof e?.version=="number"&&Number.isFinite(e.version)?Math.floor(e.version):1,files:t,statuses:r.map(Oe),fields:s.map(Ue),workflow:{...re,...Ie(e?.workflow)},type_workflows:De(e?.type_workflows),unknown_field_policy:Me(e?.unknown_field_policy)}}function xe(e){return`${JSON.stringify(e,null,2)}
2
+ `}function Le(){return{definitions:[]}}function je(){return{statuses:L}}function Ce(){return{fields:[]}}function ve(){return{workflow:re}}function $e(e,t,n){try{return JSON.parse(e)}catch{n.push(t);return}}function Pe(e){if(Array.isArray(e))return e;if(typeof e!="object"||e===null)return;let t=e;if(Array.isArray(t.definitions))return t.definitions;if(typeof t.item_types=="object"&&t.item_types!==null){let n=t.item_types;if(Array.isArray(n.definitions))return n.definitions}}function qe(e){if(Array.isArray(e))return e;if(typeof e!="object"||e===null)return;let t=e;if(Array.isArray(t.statuses))return t.statuses;if(Array.isArray(t.definitions))return t.definitions}function Ve(e){if(Array.isArray(e))return e;if(typeof e!="object"||e===null)return;let t=e;if(Array.isArray(t.fields))return t.fields;if(Array.isArray(t.definitions))return t.definitions}function We(e){if(typeof e!="object"||e===null||Array.isArray(e))return;let t=e;return typeof t.workflow=="object"&&t.workflow!==null&&!Array.isArray(t.workflow)?t.workflow:typeof t.workflows=="object"&&t.workflows!==null&&!Array.isArray(t.workflows)?t.workflows:t}function Ke(e){if(typeof e!="object"||e===null||Array.isArray(e))return;let t=e;if(Array.isArray(t.type_workflows))return t.type_workflows}function h(e,t,n){let r=t?.trim()||n;return ee.isAbsolute(r)?r:ee.join(e,r)}function dt(e,t){return h(e,t.files.types,y.types)}async function ut(e,t){let n=z(t),r=[{path:h(e,n.files.types,y.types),seed:Le()},{path:h(e,n.files.statuses,y.statuses),seed:je()},{path:h(e,n.files.fields,y.fields),seed:Ce()},{path:h(e,n.files.workflows,y.workflows),seed:ve()}],s=[];for(let i of r)await J(i.path)||(await Y(i.path,xe(i.seed)),s.push(i.path));return{created_paths:s}}async function ft(e,t){let n=z(t),r=[],s=h(e,n.files.types,y.types),i=h(e,n.files.statuses,y.statuses),l=h(e,n.files.fields,y.fields),a=h(e,n.files.workflows,y.workflows),o,d,f,u,w,S=async(U,le)=>{let j=await H(U);if(j!==null)return $e(j,le,r)},b=await S(s,"runtime_schema_types_invalid_json");b!==void 0&&(o=Pe(b),o===void 0&&r.push("runtime_schema_types_invalid_shape"));let E=await S(i,"runtime_schema_statuses_invalid_json");E!==void 0&&(d=qe(E),d===void 0&&r.push("runtime_schema_statuses_invalid_shape"));let k=await S(l,"runtime_schema_fields_invalid_json");k!==void 0&&(f=Ve(k),f===void 0&&r.push("runtime_schema_fields_invalid_shape"));let g=await S(a,"runtime_schema_workflows_invalid_json");return g!==void 0&&(u=We(g),u===void 0&&r.push("runtime_schema_workflows_invalid_shape"),w=Ke(g)),{schema:z({...n,statuses:[...n.statuses,...d??[]],fields:[...n.fields,...f??[]],workflow:{...n.workflow,...u},type_workflows:[...n.type_workflows??[],...w??[]]}),type_definitions_from_file:o,warnings:r,created_paths:[]}}function T(e,t,n,r=!1){let i=n.map(a=>c(a)).filter(a=>typeof a=="string").find(a=>e.some(o=>o.id===a));if(r&&i!==void 0)return i;let l=e.find(a=>a.roles.includes(t));return l!==void 0?l.id:i??e[0]?.id}function Ge(e){let t=new Map,n=new Map;for(let r of e){n.set(r.id,r),t.set(r.id,r.id),t.set(r.id.replaceAll("_","-"),r.id),t.set(r.id.replaceAll("_"," "),r.id);for(let s of r.aliases)t.set(s,r.id),t.set(s.replaceAll("_","-"),r.id),t.set(s.replaceAll("_"," "),r.id)}return{aliasToId:t,byId:n}}function Je(e){let t={activeStatuses:new Set,blockedStatuses:new Set,draftStatuses:new Set,terminalCanceledStatuses:new Set,terminalDoneStatuses:new Set,terminalStatuses:new Set};for(let n of e){let r=new Set(n.roles);(r.has("terminal")||r.has("terminal_done")||r.has("terminal_canceled"))&&t.terminalStatuses.add(n.id),r.has("terminal_done")&&t.terminalDoneStatuses.add(n.id),r.has("terminal_canceled")&&t.terminalCanceledStatuses.add(n.id),r.has("active")&&t.activeStatuses.add(n.id),r.has("blocked")&&t.blockedStatuses.add(n.id),r.has("draft")&&t.draftStatuses.add(n.id)}return t}function ct(e){let t=z(e),n=t.statuses.map((g,m)=>x(g,m)).filter(g=>g!==null),{aliasToId:r,byId:s}=Ge(n),{activeStatuses:i,blockedStatuses:l,draftStatuses:a,terminalCanceledStatuses:o,terminalDoneStatuses:d,terminalStatuses:f}=Je(n),u=t.workflow,w=c(u.open_status)??T(n,"default_open",["open","in_progress",C[0]]),S=c(u.in_progress_status)??T(n,"active",["in_progress","in-progress",w],!0),b=c(u.blocked_status)??T(n,"blocked",["blocked"]),E=c(u.close_status)??T(n,"default_close",["closed","done","complete"]),k=c(u.canceled_status)??T(n,"default_cancel",["canceled","cancelled"]);return{definitions:n,by_id:s,alias_to_id:r,terminal_statuses:f,terminal_done_statuses:d,terminal_canceled_statuses:o,active_statuses:i,blocked_statuses:l,draft_statuses:a,open_status:w,in_progress_status:S,blocked_status:b,close_status:E,canceled_status:k}}function He(e,t){let n=A(e);if(n)return t.alias_to_id.get(n)}function mt(e){let t=z(e),n=new Map,r=t.fields.map(o=>ae(o)).filter(o=>o!==null);for(let o of r)n.set(o.key,o);let s=[...n.values()].sort((o,d)=>o.key.localeCompare(d.key)),i=new Map,l=new Map,a=new Map;for(let o of s){i.set(o.key,o),l.set(o.cli_flag,o);for(let d of o.cli_aliases)l.set(d,o);for(let d of o.commands){let f=a.get(d)??[];f.push(o),a.set(d,f)}}for(let[o,d]of a.entries())d.sort((f,u)=>f.key.localeCompare(u.key)),a.set(o,d);return{definitions:s,by_key:i,by_cli_token:l,command_to_fields:a}}function pt(e){return Te(e.key)}function _t(e,t){let n=He(e,t);return n?t.terminal_statuses.has(n):!1}export{D as a,Ze as b,Qe as c,et as d,A as e,y as f,L as g,z as h,h as i,dt as j,ut as k,ft as l,ct as m,He as n,mt as o,pt as p,_t as q};
3
+ //# sourceMappingURL=chunk-5RFXUPN5.js.map