@unbrained/pm-cli 2026.8.14 → 2026.8.16

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 (160) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +51 -11
  3. package/dist/cli/commander-usage.js +17 -4
  4. package/dist/cli/error-guidance.d.ts +7 -0
  5. package/dist/cli/error-guidance.js +65 -25
  6. package/dist/cli/main.js +3 -2
  7. package/dist/cli/register-history-author.js +16 -11
  8. package/dist/cli/register-mutation.js +4 -2
  9. package/dist/cli/register-operations.js +5 -5
  10. package/dist/cli-bundle/bundle-manifest.json +148 -148
  11. package/dist/cli-bundle/chunks/chunk-47OQEOQB.js +2 -0
  12. package/dist/cli-bundle/chunks/{chunk-XAVMOK6B.js → chunk-73UGEBRS.js} +2 -2
  13. package/dist/cli-bundle/chunks/chunk-HCIYWD6M.js +35 -0
  14. package/dist/cli-bundle/chunks/{chunk-FIW4P64F.js → chunk-I2LUWWR5.js} +2 -2
  15. package/dist/cli-bundle/chunks/{chunk-SBRKH6OR.js → chunk-IC5W2T34.js} +2 -2
  16. package/dist/cli-bundle/chunks/{chunk-TMJ7URWS.js → chunk-PANOOBIS.js} +9 -9
  17. package/dist/cli-bundle/chunks/{chunk-BFALV3YP.js → chunk-RIS565OA.js} +2 -2
  18. package/dist/cli-bundle/chunks/{chunk-TXMEUUUY.js → chunk-TK6N7HGM.js} +2 -2
  19. package/dist/cli-bundle/chunks/chunk-TOFG2URD.js +197 -0
  20. package/dist/cli-bundle/chunks/{chunk-G5JUB66K.js → chunk-URW4QRMI.js} +65 -59
  21. package/dist/cli-bundle/chunks/{register-list-query-T3EHHNNV.js → register-list-query-EYCXHZAG.js} +2 -2
  22. package/dist/cli-bundle/chunks/register-mutation-7YVIG54J.js +20 -0
  23. package/dist/cli-bundle/chunks/register-operations-KGDNRMCL.js +2 -0
  24. package/dist/cli-bundle/chunks/{register-setup-3YXZ444E.js → register-setup-NVXBOD5I.js} +2 -2
  25. package/dist/cli-bundle/focused-chunks/{chunk-PPFGQDSI.js → chunk-4JPEBFFC.js} +2 -2
  26. package/dist/cli-bundle/focused-chunks/chunk-5NMFSX26.js +155 -0
  27. package/dist/cli-bundle/focused-chunks/{chunk-YOOI3UZX.js → chunk-6ROKKT4X.js} +2 -2
  28. package/dist/cli-bundle/focused-chunks/chunk-725JSCMP.js +2 -0
  29. package/dist/cli-bundle/focused-chunks/{chunk-XDNAW5OI.js → chunk-C7JUBRFP.js} +2 -2
  30. package/dist/cli-bundle/focused-chunks/{chunk-4DQ2YERC.js → chunk-CODV5LUT.js} +2 -2
  31. package/dist/cli-bundle/focused-chunks/chunk-DQ6SMTBF.js +2 -0
  32. package/dist/cli-bundle/focused-chunks/chunk-HAACPSUW.js +2 -0
  33. package/dist/cli-bundle/focused-chunks/{chunk-WCVE2NIG.js → chunk-J4UFYHOD.js} +2 -2
  34. package/dist/cli-bundle/focused-chunks/chunk-JX5Z344Q.js +2 -0
  35. package/dist/cli-bundle/focused-chunks/chunk-L4RDYBIQ.js +2 -0
  36. package/dist/cli-bundle/focused-chunks/{chunk-KSEDUWVZ.js → chunk-NJ5RLEFD.js} +2 -2
  37. package/dist/cli-bundle/focused-chunks/{chunk-K7RWWOAG.js → chunk-QYZERYR5.js} +2 -2
  38. package/dist/cli-bundle/focused-chunks/chunk-SSNDYZTM.js +8 -0
  39. package/dist/cli-bundle/focused-chunks/chunk-T46KLOIB.js +50 -0
  40. package/dist/cli-bundle/focused-chunks/{chunk-KFSZ3BP6.js → chunk-TZATVC4G.js} +6 -6
  41. package/dist/cli-bundle/focused-chunks/chunk-WY3WRPVN.js +2 -0
  42. package/dist/cli-bundle/main.js +13 -13
  43. package/dist/cli-bundle/sdk-authoring.js +1 -1
  44. package/dist/cli-bundle/sdk-contracts.js +1 -1
  45. package/dist/cli-bundle/sdk-core.js +32 -35
  46. package/dist/cli-bundle/sdk-governance.js +1 -1
  47. package/dist/cli-bundle/sdk-graph.js +1 -1
  48. package/dist/cli-bundle/sdk-merge.js +32 -31
  49. package/dist/cli-bundle/sdk-query.js +1 -1
  50. package/dist/cli-bundle/sdk-runtime.js +1 -1
  51. package/dist/cli-bundle/sdk-testing.js +1 -1
  52. package/dist/cli-bundle/sdk.js +2 -2
  53. package/dist/core/diagnostics/remediation.js +7 -2
  54. package/dist/core/extensions/reserved-host-flags.js +3 -2
  55. package/dist/core/history/replay.d.ts +14 -1
  56. package/dist/core/history/replay.js +45 -8
  57. package/dist/core/history/workspace-history.js +32 -10
  58. package/dist/core/output/output.d.ts +2 -0
  59. package/dist/core/output/output.js +7 -3
  60. package/dist/core/shared/command-types.d.ts +2 -0
  61. package/dist/core/shared/command-types.js +2 -2
  62. package/dist/core/shared/errors.d.ts +14 -0
  63. package/dist/core/shared/errors.js +2 -2
  64. package/dist/core/store/item-store.js +28 -2
  65. package/dist/mcp/tool-definitions.js +9 -5
  66. package/dist/sdk/agent/refusal-reachability.d.ts +69 -0
  67. package/dist/sdk/agent/refusal-reachability.js +159 -3
  68. package/dist/sdk/author-attribution.d.ts +56 -11
  69. package/dist/sdk/author-attribution.js +174 -50
  70. package/dist/sdk/cli-bootstrap.d.ts +2 -0
  71. package/dist/sdk/cli-bootstrap.js +7 -2
  72. package/dist/sdk/cli-contracts/completeness.js +3 -2
  73. package/dist/sdk/cli-contracts/flag-contracts.js +6 -2
  74. package/dist/sdk/cli-contracts/registration-helpers.js +3 -2
  75. package/dist/sdk/cli-contracts/runtime-contracts.d.ts +5 -0
  76. package/dist/sdk/cli-contracts/runtime-contracts.js +23 -7
  77. package/dist/sdk/cli-contracts/tool-parameter-tables.js +22 -5
  78. package/dist/sdk/cli-contracts/tool-schema.js +20 -5
  79. package/dist/sdk/cli-program.js +3 -2
  80. package/dist/sdk/completion.js +11 -4
  81. package/dist/sdk/core.d.ts +2 -2
  82. package/dist/sdk/core.js +3 -3
  83. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +50 -2
  84. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +74 -14
  85. package/dist/sdk/governance/assurance-action.d.ts +7 -1
  86. package/dist/sdk/governance/assurance-action.js +7 -6
  87. package/dist/sdk/governance/assurance-mutation-error.d.ts +42 -1
  88. package/dist/sdk/governance/assurance-mutation-error.js +27 -3
  89. package/dist/sdk/governance/assurance-runtime.js +12 -11
  90. package/dist/sdk/governance/assurance.d.ts +9 -0
  91. package/dist/sdk/governance/assurance.js +80 -14
  92. package/dist/sdk/governance/coverage-assurance.d.ts +24 -0
  93. package/dist/sdk/governance/coverage-assurance.js +61 -0
  94. package/dist/sdk/governance/extension-host-version.d.ts +25 -0
  95. package/dist/sdk/governance/extension-host-version.js +116 -0
  96. package/dist/sdk/governance/health.d.ts +32 -1
  97. package/dist/sdk/governance/health.js +119 -27
  98. package/dist/sdk/governance/provenance-health.d.ts +27 -0
  99. package/dist/sdk/governance/provenance-health.js +95 -3
  100. package/dist/sdk/governance/validate.js +7 -8
  101. package/dist/sdk/governance.d.ts +6 -0
  102. package/dist/sdk/governance.js +8 -2
  103. package/dist/sdk/history-repair.d.ts +13 -1
  104. package/dist/sdk/history-repair.js +62 -18
  105. package/dist/sdk/index.d.ts +2 -1
  106. package/dist/sdk/index.js +4 -3
  107. package/dist/sdk/linked-artifacts.js +16 -5
  108. package/dist/sdk/pagination.d.ts +15 -0
  109. package/dist/sdk/pagination.js +9 -5
  110. package/dist/sdk/query/context.d.ts +5 -1
  111. package/dist/sdk/query/context.js +14 -5
  112. package/dist/sdk/read-output/continuation.d.ts +11 -0
  113. package/dist/sdk/read-output/continuation.js +132 -0
  114. package/dist/sdk/read-output-budget.d.ts +1 -1
  115. package/dist/sdk/read-output-budget.js +14 -10
  116. package/dist/sdk/read-output-contracts.d.ts +66 -2
  117. package/dist/sdk/read-output-contracts.js +185 -19
  118. package/dist/sdk/read-output-rows.d.ts +2 -0
  119. package/dist/sdk/read-output-rows.js +15 -2
  120. package/dist/sdk/runtime-input.js +4 -2
  121. package/dist/sdk/runtime.d.ts +2 -5
  122. package/dist/sdk/runtime.js +3 -2
  123. package/docs/ASSURANCE.md +59 -2
  124. package/docs/COMMANDS.md +8 -2
  125. package/docs/READ_OUTPUT_CONTRACTS.md +55 -8
  126. package/docs/RELEASING.md +54 -11
  127. package/docs/SDK_CONTEXT_INTEGRITY.md +94 -4
  128. package/docs/SDK_CONTEXT_TRUTH_CONTRACTS.md +13 -5
  129. package/marketplace.json +2 -2
  130. package/package.json +3 -3
  131. package/packages/pm-beads/package.json +1 -1
  132. package/packages/pm-calendar/package.json +1 -1
  133. package/packages/pm-command-kit/package.json +1 -1
  134. package/packages/pm-digital-twin/package.json +1 -1
  135. package/packages/pm-governance-audit/package.json +1 -1
  136. package/packages/pm-guide-shell/package.json +1 -1
  137. package/packages/pm-kanban/package.json +1 -1
  138. package/packages/pm-lifecycle-hooks/package.json +1 -1
  139. package/packages/pm-linked-test-adapters/package.json +1 -1
  140. package/packages/pm-search-advanced/package.json +1 -1
  141. package/packages/pm-templates/package.json +1 -1
  142. package/packages/pm-todos/package.json +1 -1
  143. package/packages/pm-vcs/package.json +1 -1
  144. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  145. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  146. package/sdk/public-surface.json +1241 -180
  147. package/dist/cli-bundle/chunks/chunk-BBOFSVAK.js +0 -197
  148. package/dist/cli-bundle/chunks/chunk-YAMTJL6Y.js +0 -34
  149. package/dist/cli-bundle/chunks/chunk-YSVSMJ2B.js +0 -2
  150. package/dist/cli-bundle/chunks/register-mutation-E27WCLSZ.js +0 -20
  151. package/dist/cli-bundle/chunks/register-operations-4R6I7CPY.js +0 -2
  152. package/dist/cli-bundle/focused-chunks/chunk-F43TT2QQ.js +0 -8
  153. package/dist/cli-bundle/focused-chunks/chunk-KYUQGTSB.js +0 -2
  154. package/dist/cli-bundle/focused-chunks/chunk-LZ4MV3RH.js +0 -2
  155. package/dist/cli-bundle/focused-chunks/chunk-PGXJQLCT.js +0 -155
  156. package/dist/cli-bundle/focused-chunks/chunk-Q4YY3XNF.js +0 -2
  157. package/dist/cli-bundle/focused-chunks/chunk-QK753U3U.js +0 -46
  158. package/dist/cli-bundle/focused-chunks/chunk-QUMB2J27.js +0 -2
  159. package/dist/cli-bundle/focused-chunks/chunk-SM7MTG27.js +0 -2
  160. package/dist/cli-bundle/focused-chunks/chunk-ZM6TZVHC.js +0 -2
@@ -1,8 +0,0 @@
1
- import{d as kt,e as N,g as Fe,h as xt,j as $}from"./chunk-SM7MTG27.js";import{Z as de,Za as ce,ka as R,l as oe,ob as bt,pb as wt,rb as ae,ta as Pe,xb as vt}from"./chunk-PGXJQLCT.js";import{F as Q,L as Z,O as ee,Ra as ne,da as E,ia as te,p as Y,r as $e,s as q,t as B,v as gt}from"./chunk-K7RWWOAG.js";import{b as se,d as je,f as A,g as ie,h as ht,i as mt,j as yt,k as _t}from"./chunk-ZM6TZVHC.js";import{Ha as re,Y as w,Z as v,aa as U,la as Me}from"./chunk-Q4YY3XNF.js";import{constants as z}from"node:fs";import{lstat as Et,mkdir as qe,open as Tt}from"node:fs/promises";import C from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bb5dfa6f-b60f-55f2-ae17-3dbcaaff1b47")}catch{}})();function Ge(e,t){if(typeof e!="string"||e.trim().length===0)throw new TypeError(`Relationship event ${t} must be non-empty`);return e.trim()}function Be(e,t){let r=t.require(e.kind),n=r.direction==="undirected"?[e.source,e.target].sort().join("\0"):`${e.source}\0${e.target}`;return`${r.kind}\0${n}`}function Sn(e){return Object.freeze({...e,...e.payload===void 0?{}:{payload:Object.freeze(structuredClone(e.payload))}})}function Rn(e,t,r,n){let s=r.require(e.kind),i=n.outgoingOne.get(`${s.kind}\0${e.source}`);if(i!==void 0&&i!==t)throw new TypeError(`Relationship outgoing cardinality exceeded for ${s.kind}`);let o=n.incomingOne.get(`${s.kind}\0${e.target}`);if(o!==void 0&&o!==t)throw new TypeError(`Relationship incoming cardinality exceeded for ${s.kind}`);let d=Be(e,r),c=n.identities.get(d);if(c!==void 0&&c!==t)throw new TypeError(`Relationship edge already active: ${d}`)}function Dn(e){let t=new Map;for(let r of e)r.action==="remove"?t.delete(r.relationshipId):t.set(r.relationshipId,r.edge);return t}function On(e,t,r){if(e.expectedVersion!==void 0&&e.expectedVersion!==t)throw new TypeError(`Relationship event version conflict: expected ${e.expectedVersion}, current ${t}`);let n=Ge(e.eventId,"eventId");if(r.has(n))throw new TypeError(`Relationship event already exists: ${n}`);if(e.action!=="add"&&e.action!=="remove"&&e.action!=="supersede")throw new TypeError(`Unknown relationship event action: ${e.action}`);if(!Number.isFinite(Date.parse(e.timestamp)))throw new TypeError("Relationship event timestamp must be valid");return{eventId:n,relationshipId:Ge(e.relationshipId,"relationshipId"),author:Ge(e.author,"author"),timestamp:new Date(e.timestamp).toISOString()}}function Ln(e,t,r,n,s,i){let o=r.has(t);if(e.action==="add"&&o)throw new TypeError(`Relationship is already active: ${t}`);if(e.action!=="add"&&!o)throw new TypeError(`Relationship is not active: ${t}`);if(e.action==="remove")return;if(!e.edge)throw new TypeError(`Relationship ${e.action} event requires an edge`);let d=typeof e.edge.source=="string"?e.edge.source.trim():"",c=typeof e.edge.target=="string"?e.edge.target.trim():"";if(!n.has(d)||!n.has(c))throw new TypeError(`Relationship endpoint not found: ${d} -> ${c}`);let a=new te([d,c],[e.edge],s).edges()[0];return Rn(a,t,s,i),Sn(a)}var Ue=class{#e;#n;#r=[];#i=new Set;#t=new Map;#s={identities:new Map,outgoingOne:new Map,incomingOne:new Map};constructor(t,r={}){this.#e=new Set([...t].filter(n=>typeof n=="string").map(n=>n.trim()).filter(Boolean)),this.#n=r.registry??E()}get version(){return this.#r.length}events(){return Object.freeze([...this.#r])}*stream(t={}){let r=t.fromVersion??1,n=t.toVersion??this.version,s=t.batchSize??100;if(!Number.isInteger(r)||r<1)throw new TypeError("Relationship event stream fromVersion must be positive");if(!Number.isInteger(n)||n<0||n>this.version)throw new TypeError(`Relationship event stream toVersion out of range: ${n}`);if(!Number.isInteger(s)||s<1)throw new TypeError("Relationship event stream batchSize must be positive");if(r>n+1)throw new TypeError("Relationship event stream fromVersion exceeds the selected prefix");for(let i=r-1;i<n;i+=s)yield Object.freeze(this.#r.slice(i,Math.min(i+s,n)))}project(t,r,n={}){if(typeof r!="function")throw new TypeError("Relationship event projection requires a reducer");let s=t,i=0,o;for(let d of this.stream({...n,batchSize:256}))for(let c of d)s=r(s,c),i+=1,o=c;return Object.freeze({state:s,version:o?.sequence??Math.max(0,(n.fromVersion??1)-1),processed:i,...o===void 0?{}:{asOf:o.timestamp}})}#o(t,r){let n=this.#n.require(r.kind);this.#s.identities.set(Be(r,this.#n),t),n.outgoing==="one"&&this.#s.outgoingOne.set(`${n.kind}\0${r.source}`,t),n.incoming==="one"&&this.#s.incomingOne.set(`${n.kind}\0${r.target}`,t)}#d(t){let r=this.#n.require(t.kind);this.#s.identities.delete(Be(t,this.#n)),r.outgoing==="one"&&this.#s.outgoingOne.delete(`${r.kind}\0${t.source}`),r.incoming==="one"&&this.#s.incomingOne.delete(`${r.kind}\0${t.target}`)}append(t){let r=On(t,this.version,this.#i),n=this.#t.get(r.relationshipId),s=Ln(t,r.relationshipId,this.#t,this.#e,this.#n,this.#s),i=Object.freeze({eventId:r.eventId,relationshipId:r.relationshipId,action:t.action,...s===void 0?{}:{edge:s},author:r.author,timestamp:r.timestamp,...t.reason?.trim()?{reason:t.reason.trim()}:{},sequence:this.version+1});return this.#r.push(i),this.#i.add(r.eventId),n&&this.#d(n),t.action==="remove"?this.#t.delete(r.relationshipId):(this.#t.set(r.relationshipId,s),this.#o(r.relationshipId,s)),i}snapshot(t={}){if(t.atVersion!==void 0&&t.atTimestamp!==void 0)throw new TypeError("Relationship snapshot accepts one target");let r;if(t.atTimestamp!==void 0){let i=Date.parse(t.atTimestamp);if(!Number.isFinite(i))throw new TypeError("Relationship snapshot timestamp must be valid");r=this.#r.filter(o=>Date.parse(o.timestamp)<=i)}else{let i=t.atVersion??this.version;if(!Number.isInteger(i)||i<0||i>this.version)throw new TypeError(`Relationship snapshot version out of range: ${i}`);r=this.#r.slice(0,i)}let n=Dn(r),s=new te(this.#e,n.values(),this.#n);return Object.freeze({version:r.at(-1)?.sequence??0,...r.at(-1)?{asOf:r.at(-1).timestamp}:{},edges:s.edges(),graph:s})}page(t){if(!Number.isInteger(t.limit)||t.limit<1)throw new TypeError("Relationship event page limit must be positive");let r=A("relationship-events",{order:"append-sequence"}),n=t.cursor===void 0?this.version:Number(ht(t.cursor,r).snapshot);if(!Number.isSafeInteger(n)||n<0||n>this.version)throw new TypeError("Relationship event cursor snapshot version is invalid");let s=_t(this.#r.slice(0,n),{cursor:t.cursor,fingerprint:r,limit:t.limit,readId:i=>i.eventId,snapshot:String(n)});return{version:n,events:s.rows,hasMore:s.has_more,...s.next_cursor?{nextCursor:s.next_cursor}:{}}}},An="relationship-event-store",Ct=z.O_NOFOLLOW;function ue(e){return de(e,An,30,`relationship-store:${process.pid}`,!1,!1,3e3)}async function D(e,t="relationships/events.jsonl"){let r=C.resolve(e),n=C.resolve(r,t),s=C.relative(r,n);if(s.length===0)throw new TypeError("Relationship event path must name a file within the tracker root");if(s===".."||s.startsWith(`..${C.sep}`)||C.isAbsolute(s))throw new TypeError("Relationship event path must stay within the tracker root");if(await qe(r,{recursive:!0}),(await Et(r)).isSymbolicLink())throw new TypeError("Relationship event tracker root must not be a symbolic link");let o=r;for(let d of s.split(C.sep)){o=C.join(o,d);try{if((await Et(o)).isSymbolicLink())throw new TypeError("Relationship event path must not contain symbolic links")}catch(c){if($e(c))break;throw c}}return n}async function le(e,t,r){let n=new Ue(t,{registry:r}),s,i;try{i=await Tt(e,z.O_RDONLY|Ct),s=await i.readFile("utf8")}catch(d){if($e(d))return{log:n,raw:""};throw d}finally{await i?.close()}let o=s.split(`
2
- `);for(let d=0;d<o.length;d+=1){let c=o[d].trim();if(!c)continue;let a;try{a=JSON.parse(c)}catch{throw new TypeError(`Invalid relationship event JSONL at line ${d+1}`)}if(a.sequence!==n.version+1)throw new TypeError(`Invalid relationship event sequence at line ${d+1}`);n.append({eventId:a.eventId,relationshipId:a.relationshipId,action:a.action,...a.edge===void 0?{}:{edge:a.edge},author:a.author,timestamp:a.timestamp,...a.reason===void 0?{}:{reason:a.reason},expectedVersion:n.version})}return{log:n,raw:s}}function Nn(e,t,r,n){let s=Date.parse(t.timestamp),i;return t.action!=="remove"&&t.edge!==void 0&&(i=new te(r,[t.edge],n).edges()[0]),e.eventId===t.eventId.trim()&&e.relationshipId===t.relationshipId.trim()&&e.action===t.action&&e.author===t.author.trim()&&Number.isFinite(s)&&e.timestamp===new Date(s).toISOString()&&e.reason===(t.reason?.trim()||void 0)&&U(e.edge)===U(i)}var It=class e{#e;#n;#r;#i;#t;constructor(t,r,n,s){this.#e=t.pmRoot,this.#n=r,this.#r=t.registry,this.#i=n,this.#t=s}static async open(t){let r=Object.freeze([...t.nodes]),n=await D(t.pmRoot,t.relativePath),s=await ue(t.pmRoot);try{await D(t.pmRoot,n);let{log:i}=await le(n,r,t.registry);return new e(t,r,n,i)}finally{await s()}}get path(){return this.#i}async currentVersion(){return this.#t=await this.#s(),this.#t.version}async append(t){let r=await ue(this.#e);try{let n=await D(this.#e,this.#i),{log:s}=await le(n,this.#n,this.#r),i=s.append(t);await qe(C.dirname(n),{recursive:!0}),await D(this.#e,n);let o=await Tt(n,z.O_APPEND|z.O_CREAT|z.O_WRONLY|Ct);try{await o.appendFile(`${JSON.stringify(i)}
3
- `,"utf8")}finally{await o.close()}return this.#t=s,i}finally{await r()}}async appendBatch(t,r={}){let n=await ue(this.#e);try{let s=await D(this.#e,this.#i),{log:i,raw:o}=await le(s,this.#n,this.#r),d=i.version,c=new Map(i.events().map(f=>[f.eventId,f])),a=[],u=[];for(let f of t){let l=f.eventId.trim(),p=c.get(l);if(p!==void 0){if(r.existingEventPolicy==="skip_identical"&&Nn(p,f,this.#n,this.#r)){u.push(p.eventId);continue}if(r.existingEventPolicy==="skip_identical")throw new TypeError(`Relationship event id collision with different content: ${l}`)}let g=i.append(f);c.set(g.eventId,g),a.push(g)}if(a.length>0){let f=o.length===0||o.endsWith(`
4
- `)?o:`${o}
5
- `;await qe(C.dirname(s),{recursive:!0}),await D(this.#e,s),await B(s,`${f}${a.map(l=>JSON.stringify(l)).join(`
6
- `)}
7
- `)}return this.#t=i,Object.freeze({version_before:d,version_after:i.version,appended:Object.freeze(a),skipped_event_ids:Object.freeze(u)})}finally{await n()}}async snapshot(t={}){return this.#t=await this.#s(),this.#t.snapshot(t)}async page(t){return this.#t=await this.#s(),this.#t.page(t)}async*stream(t={}){this.#t=await this.#s(),yield*this.#t.stream(t)}async project(t,r,n={}){return this.#t=await this.#s(),this.#t.project(t,r,n)}async#s(){let t=await ue(this.#e);try{let r=await D(this.#e,this.#i);return(await le(r,this.#n,this.#r)).log}finally{await t()}}};(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3a33af50-3d2c-57bb-884a-4d5394599ba2")}catch{}})();function $n(e,t,r,n,s,i){if(e.seen.has(t))return"skip";if(e.cursorFound&&e.affected.length>=i)return"truncate";e.seen.add(t),e.parents.set(t,r.id);let o=r.depth+1;return e.queue.push({id:t,depth:o}),e.cursorFound?(e.affected.push({id:t,distance:o,path:Un(n,t,e.parents)}),"continue"):(e.cursorFound=t===s,"skip")}function Mn(e,t,r,n){let s=A("graph impact",{root:e,direction:r,kinds:[...t.kinds??[]].sort(),max_depth:Number.isFinite(n)?n:"unbounded"});return{fingerprint:s,after:t.after===void 0?void 0:mt(t.after,s)}}function K(e,t,r){e.get(t).add(r)}function pe(e){return new Map(e.map(t=>[t,new Set]))}function Rt(e){for(let t of e)t.sort();return e.sort((t,r)=>r.length-t.length||t[0].localeCompare(r[0]))}function fe(e){if(Array.isArray(e))return e.map(r=>fe(r));if(e===null||typeof e!="object")return e;let t=e.toJSON;return typeof t=="function"?fe(t.call(e)):Object.fromEntries(Object.entries(e).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>[r,fe(n)]))}function St(e){return JSON.stringify(fe(e))}function jn(e,t,r,n){let s=[{id:e,expanded:!1}];for(;s.length>0;){let i=s.pop();if(i.expanded){n.push(i.id);continue}if(r.has(i.id))continue;r.add(i.id),s.push({id:i.id,expanded:!0});let o=[...t.get(i.id)].sort().reverse();for(let d of o)r.has(d)||s.push({id:d,expanded:!1})}}function Pn(e,t){let r=new Set,n=[];for(let s of e)r.has(s)||jn(s,t,r,n);return n}function Fn(e,t){let r=new Set,n=[];for(let s of[...e].reverse()){if(r.has(s))continue;let i=[],o=[s];for(r.add(s);o.length>0;){let d=o.pop();i.push(d);for(let c of t.get(d))r.has(c)||(r.add(c),o.push(c))}n.push(i)}return Rt(n)}function Dt(e,t){let r=pe(e);for(let[n,s]of t)for(let i of s)K(r,i,n);return Fn(Pn(e,t),r)}function Gn(e,t){let r=pe(e.nodes());for(let n of e.edges()){let s=t.require(n.kind);if(!s.ordering)continue;let i=(s.precedence??"source_before_target")==="source_before_target";K(r,i?n.source:n.target,i?n.target:n.source)}return r}function qn(e,t){let r=new Map(e.map(i=>[i,0]));for(let i of t.values())for(let o of i)r.set(o,r.get(o)+1);let n=e.filter(i=>r.get(i)===0).sort(),s=[];for(;n.length>0;){s.push(n);let i=[];for(let o of n)for(let d of t.get(o)){let c=r.get(d)-1;r.set(d,c),c===0&&i.push(d)}n=i.sort()}return s}function Bn(e,t){let r=new Map(e.map(o=>[o,0])),n=new Map;for(let o of e)for(let d of t.get(o)){if(!r.has(d))continue;let c=r.get(o)+1,a=n.get(d);(c>r.get(d)||c===r.get(d)&&(a===void 0||o.localeCompare(a)<0))&&(r.set(d,c),n.set(d,o))}let s=[...e].sort((o,d)=>r.get(d)-r.get(o)||o.localeCompare(d))[0],i=s===void 0?[]:[s];for(;i[0]!==void 0&&n.has(i[0]);)i.unshift(n.get(i[0]));return{depth:Object.fromEntries(r),path:i}}function Un(e,t,r){let n=[t],s=t;for(;s!==e;)s=r.get(s),n.push(s);return n.reverse()}function ge(e,t={}){let r=t.registry??E(),n=[...e.nodes()],s=Gn(e,r),i=qn(n,s),o=i.flat(),d=o.length===n.length,c=d?[]:Dt(n,s).filter(u=>u.length>1||s.get(u[0]).has(u[0])),a=Bn(o,s);return{exact:!0,acyclic:d,order:o,layers:i,frontier:i[0]??[],depth:a.depth,criticalPath:a.path,criticalPathLength:Math.max(0,a.path.length-1),cycles:c,provenance:{algorithm:"kahn-longest-path",edgeFamily:"ordering"}}}function Ot(e,t,r={}){let n=r.direction??"outgoing",s=r.maxDepth??Number.POSITIVE_INFINITY,i=r.limit??Number.POSITIVE_INFINITY,{fingerprint:o,after:d}=Mn(t,r,n,s),c={queue:[{id:t,depth:0}],seen:new Set([t]),parents:new Map,affected:[],cursorFound:d===void 0||d===t},a=0,u=0,f=!1,l=!1;e:for(let p=0;p<c.queue.length;p+=1){r.signal?.throwIfAborted();let g=c.queue[p];a+=1;let h=e.adjacency(g.id,{direction:n,kinds:r.kinds,signal:r.signal});if(u+=h.meta.inspectedEdges,g.depth>=s){h.value.some(y=>!c.seen.has(y))&&(f=!0);continue}for(let y of h.value)if($n(c,y,g,t,d,i)==="truncate"){f=!0,l=!0;break e}}if(!c.cursorFound)throw new TypeError(`Unknown impact cursor item: ${d}`);return{root:t,affected:c.affected,exact:!0,truncated:f,...l?{nextCursor:ie(o,c.affected.at(-1)?.id??t)}:{},cost:{visitedNodes:a,inspectedEdges:u}}}function Lt(e){let t=[...e.nodes()],r=pe(t),n=pe(t);for(let c of e.edges())K(r,c.source,c.target),K(r,c.target,c.source),K(n,c.source,c.target);let s=[],i=new Set;for(let c of t){if(i.has(c))continue;let a=[],u=[c];for(i.add(c);u.length>0;){let f=u.pop();a.push(f);for(let l of r.get(f))i.has(l)||(i.add(l),u.push(l))}s.push(a)}let o=t.map(c=>({id:c,degree:r.get(c).size})),d=Math.max(0,...o.map(({degree:c})=>c));return{components:Rt(s),stronglyConnected:Dt(t,n),orphans:o.filter(({degree:c})=>c===0).map(({id:c})=>c),hubs:o.filter(({degree:c})=>c>0&&c===d),exact:!0,provenance:{algorithm:"component-degree",edgeFamily:"all"}}}function Ei(e,t){let r=new Map(e.edges.map(s=>[St(s),s])),n=new Map(t.edges.map(s=>[St(s),s]));return{fromVersion:e.version,toVersion:t.version,added:[...n].filter(([s])=>!r.has(s)).map(([,s])=>s),removed:[...r].filter(([s])=>!n.has(s)).map(([,s])=>s),unchangedCount:[...r.keys()].filter(s=>n.has(s)).length,exact:!0}}import{createHash as zn}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="dea35fb9-9f9f-56ce-afc0-f4dc993012c3")}catch{}})();var Kn=64,Wn=8;function Vn(e,t){let r=(e.dependencies??[]).map(n=>{if(typeof n!="object"||n===null)return"";let s=n;return`${typeof s.kind=="string"?s.kind:"related"}:${typeof s.id=="string"?s.id:""}`}).sort().join(",");return[e.id,e.title,e.status,t(e.status)?"1":"0",typeof e.type=="string"?e.type.trim():"",e.parent??"",e.blocked_by??"",r].join("\0")}function he(e,t=n=>n==="closed"||n==="canceled",r=E()){let n=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>Vn(i,t)).sort(),s=r.list().map(i=>U(i)).sort();return zn("sha256").update(n.join("")).update("").update(s.join("")).digest("hex")}function At(e,t,r){let n=t??r;if(!Number.isInteger(n)||n<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return n}var ze=class{#e=new Map;#n;#r;constructor(t={}){this.#n=At("maxResultsPerWorkspace",t.maxResultsPerWorkspace,Kn),this.#r=At("maxWorkspaces",t.maxWorkspaces,Wn)}lookup(t,r,n){let s=this.#e.get(t),i=!0;(s===void 0||s.fingerprint!==r)&&(s={fingerprint:r,assembly:n(),results:new Map},i=!1,!this.#e.has(t)&&this.#e.size>=this.#r&&this.#e.delete(this.#e.keys().next().value)),this.#e.delete(t),this.#e.set(t,s);let o=s,d=this.#n;return{assembly:o.assembly,assemblyReused:i,fingerprint:r,memoize(c,a){let u=o.results.get(c);if(u!==void 0||o.results.has(c))return o.results.delete(c),o.results.set(c,u),{value:structuredClone(u),reused:!0};let f=a();return o.results.size>=d&&o.results.delete(o.results.keys().next().value),o.results.set(c,structuredClone(f)),{value:f,reused:!1}}}}clear(){this.#e.clear()}},Nt=new ze;function me(){return Nt}function Ri(){Nt.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]="31a800f7-1374-5e7c-ad23-ae3d8ebcebe0")}catch{}})();var Hn=["prerequisite","dependent","ancestor","descendant","provenance","related"],Jn=new TextEncoder;function Ke(e,t,r){let n=e??t;if(!Number.isInteger(n)||n<1)throw new TypeError(`Relationship context ${r} must be positive`);return n}function ye(e){return Math.max(1,Math.ceil(Jn.encode(JSON.stringify(e)).byteLength/4))}function We(e,t,r){let n=r.resolve(e.kind);if(n?.ordering){let i=(n.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===i?"prerequisite":"dependent"}if(n?.hierarchy){let i=(n.hierarchyDirection??"source_parent")==="source_parent"?e.source:e.target;return t===i?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function Xn(e,t,r,n){let s=e.filter(i=>i.source===t&&i.target===r||i.target===t&&i.source===r).map(i=>We(i,r,n));return[...new Set(s)].sort()}function Yn(e){return Hn.find(t=>e.includes(t))}function Qn(e,t,r,n){let s=n.direction??"both",i=n.maxDepth??3;if(!Number.isInteger(i)||i<0)throw new TypeError("Relationship context maxDepth must be non-negative");let o=new Set([t]),d=[{id:t,distance:0}],c=[],a=0,u=!1;for(let f=0;f<d.length;f+=1){n.signal?.throwIfAborted();let l=d[f];if(l.distance>=i&&u)continue;let p=e.neighborEdges(l.id,{direction:s,kinds:n.kinds,signal:n.signal});if(a+=p.meta.inspectedEdges,l.distance>=i){p.value.some(g=>!o.has(g.id))&&(u=!0);continue}for(let{id:g,edge:h}of p.value){if(o.has(g))continue;o.add(g);let y={id:g,distance:l.distance+1,via:l.id,role:We(h,g,r)};c.push(y),d.push(y)}}return c.sort((f,l)=>f.distance-l.distance||f.id.localeCompare(l.id)),{rows:c,visitedNodes:d.length,inspectedEdges:a,depthTruncated:u}}function Zn(e,t,r,n){let s={prerequisite:0,dependent:0,ancestor:0,descendant:0,provenance:0,related:0},i=e.neighborEdges(t,{direction:n.direction??"both",kinds:n.kinds,signal:n.signal}).value;for(let{id:o,edge:d}of i)s[We(d,o,r)]+=1;return{directEdges:s,directTotal:i.length,rootEdges:i.map(({edge:o})=>o)}}function er(e){let t=[],r=e.initialTokens;for(let n of e.candidates){if(t.length>=e.nodeLimit)break;let s=n.distance===1?Xn(e.rootEdges,e.rootId,n.id,e.registry):[],i={...e.details.get(n.id)??{id:n.id},distance:n.distance,role:s.length>0?Yn(s):n.role,via:n.via,reasons:s.length>0?s:[`${n.role} via ${n.via} (depth ${n.distance})`]},o=ye(i);if(r+o>e.tokenBudget)break;t.push(i),r+=o}if(e.candidates.length>0&&t.length===0)throw new TypeError("Relationship context tokenBudget cannot fit one node");return{nodes:t,usedTokens:r}}function tr(e){let t=e.options.kinds?new Set(e.options.kinds.map(i=>e.registry.require(i).kind)):void 0,r=e.graph.edges().filter(i=>{if(!e.included.has(i.source)||!e.included.has(i.target))return!1;if(t===void 0||t.has(i.kind))return!0;let o=e.registry.resolve(i.kind)?.inverse;return o!==void 0&&t.has(o)}),n=[],s=e.initialTokens;for(let i of r){if(n.length>=e.edgeLimit)break;let o=ye(i);if(s+o>e.tokenBudget)break;n.push(i),s+=o}return{edges:n,usedTokens:s,candidateCount:r.length}}function $t(e,t,r,n={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let s=Ke(n.nodeLimit,20,"nodeLimit"),i=Ke(n.edgeLimit,40,"edgeLimit"),o=Ke(n.tokenBudget,1200,"tokenBudget"),d=n.registry??E(),c=new Map(r.map(L=>[L.id,L])),a=c.get(t)??{id:t},{evidence:u=[],...f}=a,l=[...u],p=Qn(e,t,d,n),{rootEdges:g,...h}=Zn(e,t,d,n),y=A("relationship-context",{rootId:t,direction:n.direction??"both",kinds:[...n.kinds??[]].sort(),maxDepth:n.maxDepth??3}),b=yt(p.rows,n.cursor,y,({id:L})=>L),m=p.rows.slice(b),_=ye(f)+ye(l);if(_>o)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let T=er({candidates:m,details:c,rootEdges:g,rootId:t,registry:d,nodeLimit:s,tokenBudget:o,initialTokens:_}),{nodes:k}=T,J=new Set([t,...k.map(({id:L})=>L)]),F=tr({graph:e,included:J,options:n,registry:d,edgeLimit:i,tokenBudget:o,initialTokens:T.usedTokens}),{edges:G,usedTokens:Tn}=F,X=b+k.length,Ae=X<p.rows.length,ft=k.at(-1),Ne=F.candidateCount-G.length,pt=p.depthTruncated||Ae||Ne>0,Cn={rootId:t,...f.status===void 0?{}:{rootStatus:f.status},...h,discoveredNodes:p.rows.length,returnedNodes:k.length,returnedEdges:G.length,omittedNodes:p.rows.length-X,omittedEdges:Ne,evidenceCount:l.length,hasMore:Ae};return{root:f,summary:Cn,nodes:k,edges:G,evidence:l,meta:{exact:!0,truncated:pt,completeness:pt?"truncated":"complete",nodeLimit:s,edgeLimit:i,tokenBudget:o,usedTokens:Tn,visitedNodes:p.visitedNodes,inspectedEdges:p.inspectedEdges,omittedNodes:p.rows.length-X,omittedEdges:Ne,...Ae&&ft?{nextCursor:ie(y,ft.id,X-1)}:{}}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c0fb747e-1f9f-55c4-808b-b77d3a881f87")}catch{}})();var nr=5,rr=1e4,sr=8;function Ve(e,t){if(!Number.isFinite(t)||!Number.isInteger(t)||t<0)throw new TypeError(`Invalid path ${e} bound: ${String(t)}`)}function _e(e,t){return t.hierarchyDirection==="target_parent"?e.target:e.source}function W(e,t){return(t.precedence??"source_before_target")==="target_before_source"?e.target:e.source}function be(e,t){let r=W(e,t);return{predecessor:r,successor:r===e.source?e.target:e.source}}function ir(e,t,r){if(t===void 0)return;let n=e.registry(),s=new Set;for(let i of t){let o=n.require(i);if(!o[r])throw new TypeError(`Relationship kind ${o.kind} is not a ${r} kind`);s.add(o.kind)}return s}function or(e,t,r,n,s){let i=e.registry(),o=e.neighborEdges(t,{direction:"both",...r===void 0?{}:{kinds:[...r]}}),d=[],c=new Set;for(let a of o.value){let u=i.require(a.edge.kind);u[n]&&s(a,u,t)&&(c.has(a.id)||(c.add(a.id),d.push(a.id)))}return{neighbors:d,inspectedEdges:o.meta.inspectedEdges}}function dr(e,t,r,n,s,i){if(t>=r)return e.neighbors.some(o=>!i.seen.has(o))&&(i.truncated=!0),!1;for(let o of e.neighbors)if(!i.seen.has(o)){if(i.seen.add(o),i.queue.push({id:o,depth:t+1}),!i.resumed){o===s&&(i.resumed=!0);continue}if(i.value.length>=n)return i.truncated=!0,!0;i.value.push(o)}return!1}function we(e,t,r,n,s){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`);let i=ir(e,r.kinds,n),o=r.limit??Number.POSITIVE_INFINITY,d=r.maxDepth??Number.POSITIVE_INFINITY,c=r.after,a={seen:new Set([t]),value:[],queue:[{id:t,depth:0}],resumed:c===void 0,truncated:!1},u=0,f=0;for(let l=0;l<a.queue.length;l+=1){r.signal?.throwIfAborted();let p=a.queue[l];u+=1;let g=or(e,p.id,i,n,s);if(f+=g.inspectedEdges,dr(g,p.depth,d,o,c,a))break}if(!a.resumed)throw new TypeError(`Traversal cursor not found in sequence: ${c}`);return{value:a.value,meta:{visitedNodes:u,inspectedEdges:f,truncated:a.truncated,nextCursor:a.value.at(-1)}}}function Mt(e,t){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`)}function jt(e,t,r,n,s){let i=e.neighborEdges(t.nodes.at(-1),{direction:n,...r.kinds===void 0?{}:{kinds:r.kinds}});return s.inspectedEdges+=i.meta.inspectedEdges,i.value.filter(o=>!t.nodeSet.has(o.id))}function cr(e,t,r,n,s,i,o){for(let d of jt(e,t,n,s,o)){let c=[...t.nodes,d.id],a=new Set(t.nodeSet).add(d.id),u=[...t.edges,d.edge];if(d.id===r){if(o.value.push({nodes:c,edges:u,length:u.length}),o.value.length>=i)return!0}else o.queue.push({nodes:c,nodeSet:a,edges:u})}return!1}function Pt(e,t,r={}){return we(e,t,r,"hierarchy",(n,s)=>_e(n.edge,s)===n.id)}function Ft(e,t,r={}){return we(e,t,r,"hierarchy",(n,s,i)=>_e(n.edge,s)===i)}function Gt(e,t,r={}){return we(e,t,r,"ordering",(n,s)=>W(n.edge,s)===n.id)}function qt(e,t,r={}){return we(e,t,r,"ordering",(n,s,i)=>W(n.edge,s)===i)}function ar(e,t,r,n,s,i,o,d){let c={value:[],queue:[{nodes:[t],nodeSet:new Set([t]),edges:[]}],inspectedEdges:0},a=0,u=!1,f=s+1;for(let l=0;l<c.queue.length;l+=1){if(n.signal?.throwIfAborted(),c.value.length>=f||a>=i){u=!0;break}let p=c.queue[l];if(a+=1,p.edges.length>=o){jt(e,p,n,d,c).length>0&&(u=!0);continue}if(cr(e,p,r,n,d,f,c)){u=!0;break}}return{value:c.value.slice(0,s),meta:{visitedNodes:a,inspectedEdges:c.inspectedEdges,truncated:u}}}function Bt(e,t,r,n={}){Mt(e,t),Mt(e,r);let s=n.maxPaths??nr,i=n.maxVisitedPaths??rr,o=n.maxDepth??sr;Ve("maxPaths",s),Ve("maxVisitedPaths",i),Ve("maxDepth",o);let d=n.direction??"outgoing";n.signal?.throwIfAborted();for(let c of n.kinds??[])e.registry().require(c);return t===r?s===0?{value:[],meta:{visitedNodes:1,inspectedEdges:0,truncated:!0}}:{value:[{nodes:[t],edges:[],length:0}],meta:{visitedNodes:1,inspectedEdges:0,truncated:!1}}:ar(e,t,r,n,s,i,o,d)}(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]="24898402-1568-5b05-9072-f89dd91f25a6")}catch{}})();var ur=16,lr=2,fr=8;function ve(e,t){if(!Number.isInteger(t)||t<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`)}function ke(e,t,r){let n=e.registry(),s=t===void 0?void 0:new Set(t.map(i=>n.require(i).kind));for(let i of e.edges()){if(i.source===i.target)continue;let o=n.require(i.kind);s!==void 0&&!(s.has(o.kind)||o.inverse!==void 0&&s.has(o.inverse))||r(i,o)}}function pr(e,t){let r=new Map;ke(e,t,n=>{Ut(r,n.source,n.target),Ut(r,n.target,n.source)});for(let n of r.values())n.sort();return r}function Ut(e,t,r){let n=e.get(t);n===void 0?e.set(t,[r]):n.push(r)}function gr(e,t){let r=new Map;for(let i of e){let o=t.get(i);r.set(o,(r.get(o)??0)+1)}let n,s=0;for(let[i,o]of r)(o>s||o===s&&i<n)&&(n=i,s=o);return n}function hr(e,t){let r=new Map;for(let[s,i]of e){let o=r.get(i);o===void 0?r.set(i,[s]):o.push(s)}let n=[];for(let s of r.values())s.length<t||(s.sort(),n.push({representative:s[0],size:s.length,members:s}));return n.sort((s,i)=>i.size-s.size||s.representative.localeCompare(i.representative))}function zt(e,t={}){let r=t.maxIterations??ur,n=t.minSize??lr;ve("maxIterations",r),ve("minSize",n);let s=pr(e,t.kinds),i=e.nodes(),o=new Map(i.map(f=>[f,f])),d=0,c=!1,a=0,u=0;for(;d<r&&!c;){t.signal?.throwIfAborted(),d+=1,c=!0;for(let f of i){a+=1;let l=s.get(f);if(l===void 0)continue;u+=l.length;let p=gr(l,o);p!==o.get(f)&&(o.set(f,p),c=!1)}}return{value:{communities:hr(o,n),iterations:d,converged:c},meta:{visitedNodes:a,inspectedEdges:u,truncated:!c}}}function xe(e){return e.direction==="directed"&&(e.ordering||e.hierarchy)}function Ee(e){return e.inverse!==void 0&&e.inverse<e.kind?e.inverse:e.kind}function Ie(e,t){return(t.hierarchy?_e(e,t):e.source===W(e,t)?e.target:e.source)===e.target?{from:e.source,to:e.target}:{from:e.target,to:e.source}}function mr(e,t){if(t===void 0)return;let r=e.registry(),n=new Set;for(let s of t){let i=r.require(s);if(!xe(i))throw new TypeError(`Relationship kind ${i.kind} is not a directed ordering or hierarchy kind`);n.add(Ee(i))}return n}function yr(e,t){let r=e.registry(),n=new Map;for(let s of e.edges()){let i=r.require(s.kind);if(!xe(i))continue;let o=Ee(i);if(t!==void 0&&!t.has(o))continue;let d=Ie(s,i);if(d.from===d.to)continue;let c=n.get(o);c===void 0&&(c={adjacency:new Map,records:[]},n.set(o,c));let a=c.adjacency.get(d.from);a===void 0?c.adjacency.set(d.from,new Set([d.to])):a.add(d.to),c.records.push({...d,edge:s})}return n}function _r(e){let t=new Map;for(let[r,n]of e.adjacency)t.set(r,[...n].sort());return t}function br(e,t,r,n){let s=[n];for(let i=r;i!==t;i=e.get(i))s.push(i);return s.push(t),s.reverse()}function wr(e,t,r,n,s,i){for(let o of e.get(r.id)??[])if(i.inspectedEdges+=1,!(r.depth===0&&o===t.to)&&!n.has(o)){if(n.set(o,r.id),o===t.to)return br(n,t.from,r.id,o);s.push({id:o,depth:r.depth+1})}}function vr(e,t,r,n){let s=new Map([[t.from,t.from]]),i=[{id:t.from,depth:0}];for(let o=0;o<i.length;o+=1){let d=i[o];if(n.visitedNodes+=1,d.depth>=r)continue;let c=wr(e,t,d,s,i,n);if(c!==void 0)return c}}function M(e,t={}){let r=t.maxDepth??fr;ve("maxDepth",r),t.limit!==void 0&&ve("limit",t.limit);let n=t.limit??Number.POSITIVE_INFINITY,s=mr(e,t.kinds),i=yr(e,s),o=[],d={visitedNodes:0,inspectedEdges:0},c=!1;e:for(let a of[...i.keys()].sort()){let u=i.get(a),f=_r(u);for(let l of u.records){t.signal?.throwIfAborted();let p=vr(f,l,r,d);if(p!==void 0){if(o.length>=n){c=!0;break e}o.push({edge:l.edge,witness:p})}}}return{value:o,meta:{visitedNodes:d.visitedNodes,inspectedEdges:d.inspectedEdges,truncated:c}}}function kr(e,t,r,n,s){let i=new Set,o=[];for(let d of r){if(d.id===e||i.has(d.id))continue;if(!s.seen.has(d.id)){if(t>=n){s.truncated=!0;continue}s.seen.add(d.id),s.queue.push({id:d.id,depth:t+1})}i.add(d.id),o.push(d.id);let c=s.predecessors.get(d.id);c===void 0&&(c=new Set,s.predecessors.set(d.id,c)),c.add(e)}return o}function xr(e,t,r){let n=r.direction??"outgoing",s=r.maxDepth??Number.POSITIVE_INFINITY,i=[],o=new Map,d={seen:new Set([t]),queue:[{id:t,depth:0}],predecessors:new Map,truncated:!1},c=0;for(let a=0;a<d.queue.length;a+=1){r.signal?.throwIfAborted();let{id:u,depth:f}=d.queue[a];i.push(u);let l=e.neighborEdges(u,{direction:n,...r.kinds===void 0?{}:{kinds:r.kinds}});c+=l.meta.inspectedEdges,o.set(u,kr(u,f,l.value,s,d))}return{order:i,successors:o,predecessors:d.predecessors,inspectedEdges:c,truncated:d.truncated}}function Er(e,t){let r=[],n=new Set([t]),s=[{id:t,index:0}];for(;s.length>0;){let i=s.at(-1),o=e.successors.get(i.id);if(i.index<o.length){let d=o[i.index];i.index+=1,n.has(d)||(n.add(d),s.push({id:d,index:0}))}else r.push(i.id),s.pop()}return r.reverse()}function Ir(e,t,r,n){let s=e,i=t;for(;s!==i;){for(;n.get(s)>n.get(i);)s=r.get(s);for(;n.get(i)>n.get(s);)i=r.get(i)}return s}function Tr(e,t,r){let n;for(let s of[...e].sort())t.has(s)&&(n=n===void 0?s:Ir(n,s,t,r));return n}function Cr(e,t,r,n,s){let i=new Map([[t,t]]),o=!0;for(;o;){o=!1;for(let d of r){if(s?.throwIfAborted(),d===t)continue;let c=Tr(e.predecessors.get(d),i,n);c!==void 0&&i.get(d)!==c&&(i.set(d,c),o=!0)}}return i}function Kt(e,t,r={}){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`);if(r.maxDepth!==void 0&&(!Number.isInteger(r.maxDepth)||r.maxDepth<0))throw new TypeError(`Invalid maxDepth bound: ${String(r.maxDepth)}`);let n=xr(e,t,r),s=Er(n,t),i=new Map(s.map((a,u)=>[a,u])),o=Cr(n,t,s,i,r.signal),d=new Map(s.map(a=>[a,1]));for(let a=s.length-1;a>=0;a-=1){let u=s[a];if(u===t)continue;let f=o.get(u);d.set(f,d.get(f)+d.get(u))}let c=s.filter(a=>a!==t).map(a=>({id:a,idom:o.get(a),dominatedCount:d.get(a)-1})).sort((a,u)=>u.dominatedCount-a.dominatedCount||a.id.localeCompare(u.id));return{value:{root:t,reachableCount:n.order.length,rows:c},meta:{visitedNodes:n.order.length,inspectedEdges:n.inspectedEdges,truncated:n.truncated}}}(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]="348c9246-2fb9-529e-b627-f60c901a6cf2")}catch{}})();function Wt(e){return Math.round(e*1e6)/1e6}function Vt(e,t,r){let n=e.get(t);n===void 0?e.set(t,new Set([r])):n.add(r)}function Ht(e,t){let r=new Map(e.nodes().map(s=>[s,new Set]));ke(e,t,s=>{r.get(s.source).add(s.target),r.get(s.target).add(s.source)});let n=new Map;for(let[s,i]of r)n.set(s,[...i].sort());return n}function Sr(e,t){let r=new Map,n=new Map;return ke(e,t,(s,i)=>{if(!i.ordering)return;let{predecessor:o,successor:d}=be(s,i);Vt(n,o,d),Vt(r,d,o)}),{incoming:r,outgoing:n}}function Rr(e,t,r){let n=new Map([[e,0]]),s=new Map([[e,1]]),i=new Map,o=[],d=[e],c=0,a=0;for(let u=0;u<d.length;u+=1){let f=d[u];r.visitedNodes+=1,o.push(f);let l=n.get(f);f!==e&&(c+=1,a+=l);for(let p of t.get(f))if(r.inspectedEdges+=1,n.has(p)||(n.set(p,l+1),d.push(p)),n.get(p)===l+1){s.set(p,(s.get(p)??0)+s.get(f));let g=i.get(p);g===void 0?i.set(p,[f]):g.push(f)}}return{stack:o,sigma:s,predecessors:i,reachableCount:c,distanceSum:a}}function Dr(e,t,r){let n=new Map;for(let s=e.stack.length-1;s>=0;s-=1){let i=e.stack[s],o=(1+(n.get(i)??0))/e.sigma.get(i);for(let d of e.predecessors.get(i)??[])n.set(d,(n.get(d)??0)+e.sigma.get(d)*o);i!==t&&r.set(i,(r.get(i)??0)+(n.get(i)??0))}}function Or(e,t){return t<=1||e.reachableCount===0?0:e.reachableCount/(t-1)*(e.reachableCount/e.distanceSum)}function Lr(e,t,r,n,s){return{id:e,degree:t.get(e).length,inDegree:r.incoming.get(e)?.size??0,outDegree:r.outgoing.get(e)?.size??0,betweenness:Wt((n.get(e)??0)/2),closeness:Wt(s.get(e))}}function Jt(e,t={}){let r=Ht(e,t.kinds),n=Sr(e,t.kinds),s=e.nodes(),i=new Map,o=new Map,d={visitedNodes:0,inspectedEdges:0};for(let u of s){t.signal?.throwIfAborted();let f=Rr(u,r,d);o.set(u,Or(f,s.length)),Dr(f,u,i)}let c=0;for(let u of r.values())c+=u.length;let a=s.map(u=>Lr(u,r,n,i,o)).sort((u,f)=>f.betweenness-u.betweenness||f.degree-u.degree||u.id.localeCompare(f.id));return{value:{nodeCount:s.length,edgeCount:c/2,rows:a},meta:{visitedNodes:d.visitedNodes,inspectedEdges:d.inspectedEdges,truncated:!1}}}function Ar(e,t){return e<=t?{source:e,target:t}:{source:t,target:e}}function Nr(e,t,r){let s=t.get(e.node)[e.neighborIndex];if(e.neighborIndex+=1,r.inspectedEdges+=1,s!==e.parent){if(r.discovery.has(s)){r.low.set(e.node,Math.min(r.low.get(e.node),r.discovery.get(s)));return}return e.children+=1,r.discovery.set(s,r.timer),r.low.set(s,r.timer),r.timer+=1,{node:s,parent:e.node,neighborIndex:0,children:0}}}function $r(e,t,r){if(e.parent===null){e.children>1&&r.articulation.add(e.node);return}let n=e.parent,s=r.low.get(e.node);r.low.set(n,Math.min(r.low.get(n),s)),n!==t&&s>=r.discovery.get(n)&&r.articulation.add(n),s>r.discovery.get(n)&&r.bridges.push(Ar(n,e.node))}function Mr(e,t,r,n){r.discovery.set(e,r.timer),r.low.set(e,r.timer),r.timer+=1;let s=[{node:e,parent:null,neighborIndex:0,children:0}];for(;s.length>0;){n?.throwIfAborted();let i=s.at(-1);if(i.neighborIndex<t.get(i.node).length){let o=Nr(i,t,r);o!==void 0&&s.push(o)}else $r(i,e,r),s.pop()}}function Te(e,t={}){let r=Ht(e,t.kinds),n={discovery:new Map,low:new Map,timer:0,articulation:new Set,bridges:[],inspectedEdges:0};for(let s of e.nodes())n.discovery.has(s)||Mr(s,r,n,t.signal);return{value:{articulationPoints:[...n.articulation].sort(),bridges:n.bridges.sort((s,i)=>s.source.localeCompare(i.source)||s.target.localeCompare(i.target))},meta:{visitedNodes:n.discovery.size,inspectedEdges:n.inspectedEdges,truncated:!1}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f155ac72-64eb-5316-b016-954abd48c0e7")}catch{}})();function jr(e){let t=e.registry(),r=new Map,n=new Set;for(let s of e.edges()){let i=t.require(s.kind);if(!i.ordering)continue;let{predecessor:o,successor:d}=be(s,i);if(n.add(o),n.add(d),o===d)continue;let c=r.get(o);c===void 0?r.set(o,new Set([d])):c.add(d)}return{forward:r,participants:n}}function Pr(e,t,r,n){if(e===void 0)return n;let s=n;for(let i of e)t.has(i)&&(s=Math.min(s,r.get(i)));return s}function Fr(e,t,r){let n=r-t;return{id:e,earliestStart:t,earliestFinish:t+1,latestStart:r,latestFinish:r+1,slack:n,critical:n===0}}function Gr(e,t,r,n,s){let i=new Map;for(let o=e.length-1;o>=0;o-=1){let d=e[o],c=Pr(t.forward.get(d),n,i,s);i.set(d,c-1)}return e.map(o=>Fr(o,r[o],i.get(o))).sort((o,d)=>o.slack-d.slack||o.earliestStart-d.earliestStart||o.id.localeCompare(d.id))}function Xt(e,t={}){t.signal?.throwIfAborted();let r=ge(e,{registry:e.registry()}),n=jr(e),s=new Set(r.order),i=r.order.filter(a=>n.participants.has(a)),o=i.reduce((a,u)=>Math.max(a,r.depth[u]+1),0),d=Gr(i,n,r.depth,s,o),c=d.length>0;return{exact:!0,acyclic:r.acyclic,makespan:o,scheduledCount:d.length,criticalPath:c?r.criticalPath:[],criticalPathLength:c?r.criticalPathLength:0,cycles:r.cycles,rows:d,provenance:{algorithm:"critical-path-method",edgeFamily:"ordering",weighting:"unit"}}}(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]="bc561e73-75b8-5ea7-a18c-da70fb991b69")}catch{}})();var Ce=["missing_reference_active","missing_reference_terminal","legacy_no_blocker_sentinel","ordering_cycle","legacy_ordering_cycle","ordering_storage_contradiction","legacy_ordering_storage_contradiction","duplicate_edge","legacy_duplicate_edge","duplicate_dependency_row","legacy_duplicate_dependency_row","stale_lifecycle_block","isolated_active_node","sparse_active_node"];(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]="1955b7a4-385d-5a5d-8856-6db9f94814aa")}catch{}})();var qr=25,Br="milestone",Ur="outcome milestone:",zr=new Set(["discovered_from","incident_from","supersedes","verifies"]);function Qe(e){return zr.has(e)}var Yt={error:0,warning:1,info:2};function Qt(e){return new Set((e??[]).filter(t=>typeof t=="string").map(t=>t.trim().toLowerCase()))}function Xe(e,t,r,n,s,i,o,d){let c=[...s].sort((a,u)=>a.localeCompare(u));return{code:e,severity:t,policy:r,message:n(c.length),count:c.length,sample:c.slice(0,i),sample_truncated:c.length>i,remediation:o,...d===void 0?{}:{evidence:[...d].sort((a,u)=>a.localeCompare(u)).slice(0,i)}}}function Kr(e){let t=e.graph.registry(),r=new Map;for(let n of e.graph.edges()){let s=t.require(n.kind);if(!s.ordering)continue;let[i,o]=(s.precedence??"source_before_target")==="target_before_source"?[n.target,n.source]:[n.source,n.target],d=r.get(i);d?d.push(o):r.set(i,[o])}for(let n of r.values())n.sort((s,i)=>s.localeCompare(i));return r}function en(e,t){t.indexes.set(e,t.nextIndex),t.lowLinks.set(e,t.nextIndex),t.nextIndex+=1,t.stack.push(e),t.onStack.add(e)}function Wr(e,t,r,n){let s=r.get(e.node)??[];if(e.neighborIndex>=s.length)return!1;let i=s[e.neighborIndex];return e.neighborIndex+=1,n.indexes.has(i)?n.onStack.has(i)&&n.lowLinks.set(e.node,Math.min(n.lowLinks.get(e.node),n.indexes.get(i))):(en(i,n),t.push({node:i,neighborIndex:0})),!0}function Vr(e,t,r,n){t.pop();let s=t.at(-1);if(s&&n.lowLinks.set(s.node,Math.min(n.lowLinks.get(s.node),n.lowLinks.get(e.node))),n.lowLinks.get(e.node)!==n.indexes.get(e.node))return;let i=[];for(;;){let o=n.stack.pop();if(n.onStack.delete(o),i.push(o),o===e.node)break}(i.length>1||i.length===1&&r.get(i[0])?.includes(i[0]))&&n.components.push(i.sort((o,d)=>o.localeCompare(d)))}function Ze(e){let t={indexes:new Map,lowLinks:new Map,onStack:new Set,stack:[],components:[],nextIndex:0},r=[...e.keys()].sort((n,s)=>n.localeCompare(s));for(let n of r){if(t.indexes.has(n))continue;let s=[{node:n,neighborIndex:0}];for(en(n,t);s.length>0;){let i=s.at(-1);Wr(i,s,e,t)||Vr(i,s,e,t)}}return t.components.sort((n,s)=>n[0].localeCompare(s[0]))}function He(e){return`${e.holder_id} -> ${e.target_id} (${e.kind})`}function x(e,t,r,n,s,i,o,d){t.length!==0&&e.push(Xe(n,s,i,o,t,r,d))}function Hr(e,t,r){let n=[],s=[...e.dangling.active,...e.dangling.legacy_terminal].filter(i=>!i.no_active_blocker_sentinel);return x(n,s.filter(i=>!t(i.holder_status)).map(He),r,"missing_reference_active","error","Active items must not reference absent targets; missing prerequisites distort scheduling.",i=>`${i} active dangling reference(s) to absent items`,"Restore or re-create the referenced item, or remove/retype the reference on the holder."),x(n,s.filter(i=>t(i.holder_status)).map(He),r,"missing_reference_terminal","info","Terminal items may retain historical references, but absent targets remain unexplainable context.",i=>`${i} terminal dangling reference(s) to absent items`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),x(n,e.dangling.no_active_blocker_sentinels.map(He),r,"legacy_no_blocker_sentinel","info","The pre-structured-dependency no-active-blocker sentinel is retired; real edges carry blocker state.",i=>`${i} legacy no-active-blocker sentinel reference(s)`,"Delete the sentinel reference; blocker state is derived from blocked_by edges."),n}function Ye(e,t){let r=t.get(e);return r?!r.terminal:!0}function Se(e){return`${e.holder_id} -> ${e.target_id} (blocked_by scalar + ${e.dependency_kind} dependency)`}function Jr(e,t){let r=[],n=[];for(let i of e.orderingContradictions??[])(i.legacy_terminal?n:r).push(Se(i));let s=[];return x(s,r,t,"ordering_storage_contradiction","error","A scalar blocker and same-target structured ordering row must not assert opposite precedence.",i=>`${i} active scalar-versus-structured ordering contradiction(s)`,"Remove the structured dependency row that points the holder before its scalar blocker, or replace both representations with one unambiguous ordering edge."),x(s,n,t,"legacy_ordering_storage_contradiction","info","Terminal scalar-versus-structured ordering contradictions are exact historical storage defects with no live scheduling effect.",i=>`${i} terminal scalar-versus-structured ordering contradiction(s)`,"Remove the contradictory blocks dependency row in a dedicated changelog-safe closed-item batch; preserve the scalar blocker as the historical precedence record."),s}function Xr(e,t,r,n){let s=[],i=Kr(e);for(let c of Ze(i)){let a=c.some(l=>Ye(l,t)),u=new Set(c.map(l=>l.toLowerCase())),f=(e.orderingContradictions??[]).filter(l=>u.has(l.holder_id.toLowerCase())&&u.has(l.target_id.toLowerCase())).map(Se);s.push(a?Xe("ordering_cycle","error","Order-bearing relationship kinds must stay acyclic; a cycle makes every member unschedulable.",l=>`execution-order cycle across ${l} item(s)`,c,n,"Remove or retype one ordering edge inside the cycle, or split the work so precedence is linear.",f.length===0?void 0:f):Xe("legacy_ordering_cycle","info","Ordering cycles between exclusively terminal items are historical contradictions with no scheduling effect.",l=>`terminal-only execution-order cycle across ${l} item(s)`,c,n,"Leave as history debt, or clean up in a dedicated changelog-safe closed-item batch; never repair closed items ad hoc.",f.length===0?void 0:f))}let o=new Map;for(let[c,a]of i)for(let u of a){let f=o.get(u);f?f.push(c):o.set(u,[c])}let d=[...t.values()].filter(c=>!c.missing&&!c.terminal&&r(c.status)&&!(o.get(c.id)??[]).some(a=>{let u=t.get(a);return u===void 0||!u.terminal})).map(c=>c.id);return x(s,d,n,"stale_lifecycle_block","warning","A blocked lifecycle status must be backed by at least one open ordering predecessor.",c=>`${c} status-blocked item(s) with no open blocker edge`,'Add a local blocker edge, declare an external blocker with --dep "id=<external-ref>,kind=blocked_by,source_kind=external", or move the item back to an active status.'),s}function Re(e){let t=e.edges.map(r=>r.kind).sort((r,n)=>r.localeCompare(n));return`${e.from} -> ${e.to} (${t.join(" + ")})`}function et(e){let t=e.graph.registry(),r=new Map;for(let s of e.graph.edges()){let i=t.require(s.kind);if(!xe(i))continue;let o=Ie(s,i);if(o.from===o.to)continue;let d=`${Ee(i)}::${o.from}::${o.to}`,c=r.get(d);c?c.edges.push(s):r.set(d,{...o,edges:[s]})}let n=[...r.values()].filter(s=>s.edges.length>=2);for(let s of n)s.edges.sort((i,o)=>i.kind.localeCompare(o.kind));return n.sort((s,i)=>s.from.localeCompare(i.from)||s.to.localeCompare(i.to))}function Yr(e,t,r){let n=[],s=[];for(let o of et(e))(Ye(o.from,t)||Ye(o.to,t)?n:s).push(Re(o));let i=[];return x(i,n,r,"duplicate_edge","info","One semantic relationship should be stored once; parallel same-family spellings (reciprocal inverse pairs included) add no information and skew degree metrics.",o=>`${o} duplicated relationship(s) between active endpoints`,"Remove all but one stored spelling of the relationship; keep the canonical direction the holder declared first."),x(i,s,r,"legacy_duplicate_edge","info","Duplicated spellings between exclusively terminal items are historical noise with no scheduling effect.",o=>`${o} duplicated relationship(s) between terminal endpoints`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),i}function Qr(e,t){let r=[],n=[];for(let i of e.duplicateRows??[])(i.legacy_terminal?n:r).push(`${i.holder_id} -> ${i.target_id} (${i.kind} x${i.occurrences})`);let s=[];return x(s,r,t,"duplicate_dependency_row","warning","One dependency row must be stored once per holder; identical repeated rows are a storage-layer defect invisible to the assembled graph.",i=>`${i} exactly duplicated stored dependency row(s) on active holder(s)`,"Remove the repeated rows so the dependency is stored exactly once; graph semantics are unchanged."),x(s,n,t,"legacy_duplicate_dependency_row","info","Identical repeated dependency rows on terminal holders are historical storage noise with no scheduling effect.",i=>`${i} exactly duplicated stored dependency row(s) on terminal holder(s)`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),s}function Zr(e,t){let r=new Map;for(let n of e.graph.edges()){t?.throwIfAborted();let s=e.graph.registry().require(n.kind),i;if(s.hierarchy?i=Ie(n,s):s.kind==="implements"&&(i={from:n.source,to:n.target}),i===void 0)continue;let o=r.get(i.to)??new Set;o.add(i.from),r.set(i.to,o)}return r}function es(e,t,r){let n=new Set(e),s=[...e].sort();for(let i=0;i<s.length;i+=1){r?.throwIfAborted();for(let o of[...t.get(s[i])??[]].sort())n.has(o)||(n.add(o),s.push(o))}return n}function ts(e,t,r,n){let s=0,i=0,o=0,d=0;for(let p of e.values())if(n?.throwIfAborted(),!t.has(p.id)&&!(p.missing||p.status==="external")){if(p.terminal){o+=1,r.has(p.id)&&(d+=1);continue}r.has(p.id)?s+=1:i+=1}let c=s+i,a=o-d,u=s+d,f=i+a,l=u+f;return{active_outcome_reachable_nodes:s,active_outcome_unreachable_nodes:i,active_outcome_reachability_basis_points:c===0?0:Math.floor(s*1e4/c),terminal_nodes:o,terminal_outcome_reachable_nodes:d,terminal_outcome_unreachable_nodes:a,terminal_outcome_reachability_basis_points:o===0?0:Math.floor(d*1e4/o),outcome_reachable_nodes:u,outcome_unreachable_nodes:f,outcome_reachability_basis_points:l===0?0:Math.floor(u*1e4/l)}}function ns(e,t,r){let n=new Set(e.details.filter(i=>i.type?.toLowerCase()===Br&&i.title.trim().toLowerCase().startsWith(Ur)).map(i=>i.id)),s=es(n,Zr(e,r),r);return{outcome_nodes:n.size,...ts(t,n,s,r)}}function rs(e,t,r,n,s){e.active+=1;let i=t.type??"(untyped)",o=e.byType.get(i);o||(o={active:0,isolated:0,degree_leq_one:0},e.byType.set(i,o)),o.active+=1,!(r>1)&&(e.degreeLeqOne+=1,o.degree_leq_one+=1,r===0&&(e.isolated+=1,o.isolated+=1),!(n.has(t.id.toLowerCase())||s.has(i.toLowerCase()))&&(r===0?e.isolates.push(t.id):e.sparse.push(t.id)))}function ss(e,t,r,n,s,i,o){let d={active:0,missing:0,isolated:0,degreeLeqOne:0,isolates:[],sparse:[],byType:new Map};for(let m of e.graph.nodes()){o?.throwIfAborted();let _=t.get(m);if(_){if(_.missing){d.missing+=1;continue}_.terminal||rs(d,_,e.graph.incidentEdges(m).length,r,n)}}let{isolates:c,sparse:a}=d,u=[];x(u,c,s,"isolated_active_node","warning","Active work should be reachable from the graph unless explicitly declared a valid isolate.",m=>`${m} active item(s) with no relationships`,"Link the item to its parent, prerequisite, or origin \u2014 or register it as an exempt isolate."),x(u,a,s,"sparse_active_node","info","Active items with a single edge often miss an honest semantic partner; sparse is not automatically defective.",m=>`${m} active item(s) with exactly one relationship`,"Investigate for an honest second edge (story->task, defect family, cross-epic complement); do not fabricate one.");let f=e.graph.edges().length,l=M(e.graph,{signal:o}).value,p=new Set(l.map(({edge:m})=>`${m.source.toLowerCase()}\0${m.target.toLowerCase()}\0${m.kind}`));for(let m of e.orderingContradictions??[])p.add(`${m.holder_id.toLowerCase()}\0${m.target_id.toLowerCase()}\0${m.dependency_kind}`);let g=Object.fromEntries(Object.entries(i).sort(([m],[_])=>m.localeCompare(_))),h=Object.entries(g).reduce((m,[_,T])=>m+(Qe(_)?T:0),0),y=Te(e.graph,{signal:o}).value,b=ns(e,t,o);return{findings:u,profile:{nodes:e.graph.nodes().length,recorded_nodes:e.details.filter(m=>m.status!=="missing"&&m.status!=="external").length,edges:f,informative_edges:f-p.size,redundant_edges:l.length,ordering_contradiction_edges:e.orderingContradictions?.length??0,edge_basis:"deduplicated_directed",edges_by_kind:g,edge_share_by_kind:Object.fromEntries(Object.entries(g).map(([m,_])=>[m,_/f])),semantic_edges:h,semantic_edge_share:f===0?0:h/f,active_nodes:d.active,missing_nodes:d.missing,isolated_active_nodes:d.isolated,degree_leq_one_active_nodes:d.degreeLeqOne,coverage_by_type:Object.fromEntries([...d.byType.entries()].sort(([m],[_])=>m<_?-1:1)),articulation_points:y.articulationPoints.length,bridge_edges:y.bridges.length,...b,finding_subjects_by_code:Object.fromEntries(Ce.map(m=>[m,0]))}}}function De(e,t={}){let r=t.isTerminal??(l=>l==="closed"||l==="canceled"),n=t.isBlocked??(l=>l==="blocked"),s=t.maxSampleSize??qr;if(!Number.isInteger(s)||s<1)throw new TypeError(`Invalid audit sample bound: ${String(t.maxSampleSize)}`);let i=Qt(t.exemptIsolates),o=Qt(t.isolateExemptTypes),d=new Map(e.details.map(l=>[l.id,{id:l.id,status:l.status,missing:e.missingIdSet.has(l.id.toLowerCase()),terminal:r(l.status),...l.type===void 0?{}:{type:l.type}}]));t.signal?.throwIfAborted();let c={};for(let l of e.graph.edges())c[l.kind]=(c[l.kind]??0)+1;let a=Hr(e,r,s);t.signal?.throwIfAborted(),a.push(...Jr(e,s)),t.signal?.throwIfAborted(),a.push(...Xr(e,d,n,s)),t.signal?.throwIfAborted(),a.push(...Yr(e,d,s),...Qr(e,s)),t.signal?.throwIfAborted();let u=ss(e,d,i,o,s,c,t.signal);a.push(...u.findings),a.sort((l,p)=>Yt[l.severity]-Yt[p.severity]||l.code.localeCompare(p.code)||l.sample[0].localeCompare(p.sample[0]));let f=u.profile.finding_subjects_by_code;for(let l of a)f[l.code]+=l.count;return{findings:a,profile:{...u.profile,finding_subjects_by_code:f}}}function Je(e,t){let r=[...new Set([...Object.keys(e),...Object.keys(t)])].sort(),n={};for(let s of r){let i=(t[s]??0)-(e[s]??0);i!==0&&(n[s]=i)}return n}function Zt(e){return e.profile.coverage_by_type??{}}function is(e,t){let r={},n=Zt(e),s=Zt(t),i=[...new Set([...Object.keys(n),...Object.keys(s)])].sort();for(let o of i){let d=Object.assign({active:0,isolated:0,degree_leq_one:0},n[o]),c=Object.assign({active:0,isolated:0,degree_leq_one:0},s[o]),a={active:c.active-d.active,isolated:c.isolated-d.isolated,degree_leq_one:c.degree_leq_one-d.degree_leq_one};Object.values(a).some(u=>u!==0)&&(r[o]=a)}return r}function tn(e,t){let r=is(e,t),{edge_share_by_kind:n={},semantic_edges:s=0,semantic_edge_share:i=0}=e.profile,{edge_share_by_kind:o={},semantic_edges:d=0,semantic_edge_share:c=0}=t.profile,a=e.profile.recorded_nodes??e.profile.nodes,u=t.profile.recorded_nodes??t.profile.nodes,f=e.profile.informative_edges??e.profile.edges,l=t.profile.informative_edges??t.profile.edges,p=e.profile.redundant_edges??0,g=t.profile.redundant_edges??0,h=e.profile.ordering_contradiction_edges??0,y=t.profile.ordering_contradiction_edges??0;return{baseline_saved_at:e.saved_at,same_snapshot:e.fingerprint===t.fingerprint,affected_subjects_by_code:Je(e.affected_subjects_by_code,t.affected_subjects_by_code),profile:{nodes:t.profile.nodes-e.profile.nodes,recorded_nodes:u-a,edges:t.profile.edges-e.profile.edges,informative_edges:l-f,redundant_edges:g-p,ordering_contradiction_edges:y-h,active_nodes:t.profile.active_nodes-e.profile.active_nodes,missing_nodes:t.profile.missing_nodes-e.profile.missing_nodes,isolated_active_nodes:t.profile.isolated_active_nodes-e.profile.isolated_active_nodes,degree_leq_one_active_nodes:t.profile.degree_leq_one_active_nodes-e.profile.degree_leq_one_active_nodes,edges_by_kind:Je(e.profile.edges_by_kind,t.profile.edges_by_kind),edge_share_by_kind:Je(n,o),semantic_edges:d-s,semantic_edge_share:c-i,coverage_by_type:r}}}import nn 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]="9e4aa41d-fca4-5e55-ab2b-d99f06d90ae2")}catch{}})();var rn=1,tt=500,os=64,ds="graph-durable-cache";function sn(e){return de(e,ds,30,`graph-cache:${process.pid}`,!1,!1,3e3)}function H(e){return nn.join(e,"runtime","graph-cache.json")}function on(e){return nn.join(e,"runtime","graph-audit-baseline.json")}function nt(e){if(e!==null)try{let t=JSON.parse(e);return typeof t!="object"||t===null||t.version!==rn||typeof t.fingerprint!="string"||typeof t.saved_at!="string"||typeof t.results!="object"||t.results===null||Array.isArray(t.results)?void 0:t}catch{return}}async function rt(e,t){let r=await q(H(e)),n=nt(r),s=n?.fingerprint===t;return{exists:r!==null,fresh:s,results:s?n.results:{}}}async function st(e,t,r,n,s){let i=await sn(e);try{let o=nt(await q(H(e))),d=o?.fingerprint===t?o.results:{};delete d[n],d[n]=s;let c=Object.keys(d);for(let a of c.slice(0,Math.max(0,c.length-os)))delete d[a];await B(H(e),JSON.stringify({version:rn,fingerprint:t,saved_at:new Date().toISOString(),results:d})),r.results=d}finally{await i()}}async function it(e){let t=await sn(e);try{await gt(H(e))}finally{await t()}}async function dn(e,t){let r=H(e),n=await q(r),s=nt(n);return s===void 0?{exists:n!==null,fresh:!1,entry_count:0}:{exists:!0,fresh:s.fingerprint===t,entry_count:Object.keys(s.results).length,fingerprint:s.fingerprint.slice(0,12),saved_at:s.saved_at,bytes:Buffer.byteLength(n,"utf8")}}function ot(e,t){return t||e>=tt}function Oe(e){return j(e)&&Object.values(e).every(O)}function j(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function O(e){return Number.isInteger(e)&&Number(e)>=0}function cn(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function V(e,t){return e===void 0||t(e)}function cs(e){return j(e)&&Object.values(e).every(cn)}function as(e){return j(e)?Object.values(e).every(t=>j(t)&&[t.active,t.isolated,t.degree_leq_one].every(O)):!1}function us(e,t,r){let n=["recorded_nodes","informative_edges","redundant_edges","ordering_contradiction_edges"],s=n.filter(o=>e[o]!==void 0).length;if(s!==0&&s!==n.length||!n.every(o=>V(e[o],O)))return;let i={recorded_nodes:e.recorded_nodes??t,informative_edges:e.informative_edges??r,redundant_edges:e.redundant_edges??0,ordering_contradiction_edges:e.ordering_contradiction_edges??0};return i.recorded_nodes<=t&&i.informative_edges<=r&&i.redundant_edges<=r&&i.ordering_contradiction_edges<=r?i:void 0}function ls(e,t,r){let n=[...t,...r,"finding_subjects_by_code"],s=n.filter(i=>e[i]!==void 0).length;return s!==0&&s!==n.length?!1:t.every(i=>V(e[i],O))&&r.every(i=>V(e[i],O)&&(e[i]===void 0||Number(e[i])<=1e4))&&V(e.finding_subjects_by_code,Oe)}function fs(e,t,r,n){let s=us(e,r,n);if(s===void 0)return;let i=["articulation_points","bridge_edges","outcome_nodes","active_outcome_reachable_nodes","active_outcome_unreachable_nodes","terminal_nodes","terminal_outcome_reachable_nodes","terminal_outcome_unreachable_nodes","outcome_reachable_nodes","outcome_unreachable_nodes"],o=["active_outcome_reachability_basis_points","terminal_outcome_reachability_basis_points","outcome_reachability_basis_points"];if(!ls(e,i,o)||e.edge_basis!==void 0&&e.edge_basis!=="deduplicated_directed")return;let d=Oe(e.finding_subjects_by_code)?e.finding_subjects_by_code:{};return{edge_basis:"deduplicated_directed",...s,...Object.fromEntries(i.map(c=>[c,e[c]??0])),...Object.fromEntries(o.map(c=>[c,e[c]??0])),finding_subjects_by_code:Object.fromEntries(Ce.map(c=>[c,d[c]??t[c]??0]))}}function ps(e,t,r,n,s){let i=[r,n,s],o=i.filter(a=>a!==void 0).length;if(o===0)return{edge_share_by_kind:{},semantic_edges:0,semantic_edge_share:0};if(o!==i.length||!cs(r)||!O(n)||!cn(s))return;let d=Object.entries(t);if(d.reduce((a,[,u])=>a+u,0)!==e||Object.keys(r).length!==d.length||d.some(([a,u])=>r[a]!==(e===0?0:u/e)))return;let c=d.reduce((a,[u,f])=>a+(Qe(u)?f:0),0);if(!(n!==c||s!==(e===0?0:c/e)))return{edge_share_by_kind:r,semantic_edges:n,semantic_edge_share:s}}function gs(e){if(e!==null)try{let t=JSON.parse(e);if(!j(t))return;let r=t,n=r.profile;if(typeof r.saved_at!="string"||typeof r.fingerprint!="string")return;let s=r.affected_subjects_by_code;if(!Oe(s)||!j(n)||![n.nodes,n.edges,n.active_nodes,n.missing_nodes,n.isolated_active_nodes,n.degree_leq_one_active_nodes].every(O)||!Oe(n.edges_by_kind)||!V(n.coverage_by_type,as))return;let i=ps(n.edges,n.edges_by_kind,n.edge_share_by_kind,n.semantic_edges,n.semantic_edge_share);if(i===void 0)return;let o=fs(n,s,n.nodes,n.edges);if(o===void 0)return;let{coverage_by_type:d={}}=n;return{...r,profile:{...n,...i,...o,coverage_by_type:d}}}catch{return}}async function an(e){return gs(await q(on(e)))}async function un(e,t){await B(on(e),JSON.stringify(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]="1eb0e2cb-084a-5a54-b41c-29dfdd6d2f34")}catch{}})();var hs={missing_reference_active:{op:"investigate",confidence:"medium",rationale:"Restore or re-create the referenced item, or remove/retype the reference on the active holder; the correct fix depends on why the target is absent."},missing_reference_terminal:{op:"waive",confidence:"high",rationale:"Terminal-holder reference to an absent item is historical debt; waive it or clean it up only in a dedicated changelog-safe closed-item batch."},legacy_no_blocker_sentinel:{op:"remove",confidence:"high",rationale:"The pre-structured-dependency no-active-blocker sentinel is retired and carries no information; blocker state derives from blocked_by edges."},ordering_cycle:{op:"investigate",confidence:"low",rationale:"Every cycle member is unschedulable until one ordering edge is removed or retyped; the planner never chooses which edge to cut."},legacy_ordering_cycle:{op:"waive",confidence:"high",rationale:"Terminal-only ordering cycles have no scheduling effect; repairing them would mutate closed history (changelog drag)."},ordering_storage_contradiction:{op:"remove",confidence:"high",rationale:"The structured ordering row asserts the opposite precedence from the same-target scalar blocker; remove that exact dependency row or replace both representations with one unambiguous edge."},legacy_ordering_storage_contradiction:{op:"remove",confidence:"high",rationale:"The terminal holder contains a proven contradictory structured ordering row; remove it in a dedicated changelog-safe batch while preserving the scalar blocker as history."},duplicate_edge:{op:"remove",confidence:"high",rationale:"Parallel same-family spellings state one relationship twice; remove all but one stored spelling, keeping the holder's canonical direction."},legacy_duplicate_edge:{op:"waive",confidence:"high",rationale:"Duplicated spellings between terminal items are historical noise; waive or batch changelog-safe cleanup."},duplicate_dependency_row:{op:"remove",confidence:"high",rationale:"The identical dependency row is stored more than once on the holder; drop the repeats so the row exists exactly once \u2014 graph semantics are unchanged."},legacy_duplicate_dependency_row:{op:"waive",confidence:"high",rationale:"Repeated identical rows on terminal holders are storage noise; waive or clean up only in a changelog-safe closed-item batch."},stale_lifecycle_block:{op:"investigate",confidence:"medium",rationale:`Add a local ordering edge, declare an external blocker with --dep "id=<external-ref>,kind=blocked_by,source_kind=external", or move the item back to an active status; only the holder's owner knows which is true.`},isolated_active_node:{op:"investigate",confidence:"medium",rationale:"Link the item to its parent, prerequisite, or origin \u2014 or register it as an explicitly exempt isolate; the audit never fabricates an edge."},sparse_active_node:{op:"investigate",confidence:"low",rationale:"Investigate for an honest second edge (story-to-task, defect family, cross-epic complement); sparse is not automatically defective."}};function ln(e){return`${e.source} -${e.kind}-> ${e.target}`}function ms(e){let[t,...r]=e.edges;return r.map(n=>({op:"remove",code:"duplicate_edge",subject:ln(n),rationale:"This stored spelling restates the kept canonical edge of the same semantic family; removing it leaves the relationship stated exactly once.",evidence:[`keep: ${ln(t)}`,`group: ${Re(e)}`],confidence:"high"}))}function ys(e,t){if(e.code==="duplicate_edge")return e.sample.flatMap(n=>ms(t.get(n)));let r=hs[e.code];return e.sample.map(n=>({op:r.op,code:e.code,subject:n,rationale:r.rationale,evidence:[e.policy],confidence:r.confidence}))}function fn(e,t={}){let{redundancyLimit:r,...n}=t,s=De(e,n),i=new Map(et(e).map(a=>[Re(a),a])),o=s.findings.flatMap(a=>ys(a,i)),d=s.findings.some(a=>a.sample_truncated);t.signal?.throwIfAborted();let c=M(e.graph,{limit:r??t.maxSampleSize??25,...t.signal===void 0?{}:{signal:t.signal}});for(let a of c.value)o.push({op:"remove",code:"redundant_edge",subject:`${a.edge.source} -> ${a.edge.target} (${a.edge.kind})`,rationale:"The stored edge is implied by a longer same-family witness path; shortcut edges are sometimes deliberate emphasis, so confirm intent before removing.",evidence:[`witness: ${a.witness.join(" -> ")}`],confidence:"medium"});return d=d||c.meta.truncated,{steps:o,report:s,truncated:d,cost:{visitedNodes:c.meta.visitedNodes,inspectedEdges:c.meta.inspectedEdges}}}(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]="ee0547d9-ae0f-5762-8bff-e25f0a3cd4d5")}catch{}})();var _s=["tree","graph","context"],bs=["none","repeated"],ws=["outgoing","incoming","both"],vs=32,ks=200,xs=400,Es=16e3;function Is(e){let t=e?.trim().toLowerCase()??"tree";if(_s.includes(t))return t;throw new v(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,w.USAGE)}function I(e,t){if(e===void 0)return;let r=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(r)||r<1)throw new v(`Invalid --${t} value "${e}". Use a positive integer.`,w.USAGE);return r}function Le(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new v(`Invalid --max-depth value "${e}". Use a non-negative integer.`,w.USAGE);return t}function Ts(e){let t=e?.trim().toLowerCase()??"none";if(bs.includes(t))return t;throw new v(`Invalid --collapse value "${e}". Use "none" or "repeated".`,w.USAGE)}function ct(e){let t=e?.trim().toLowerCase()??"both";if(ws.includes(t))return t;throw new v(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,w.USAGE)}function at(e,t=E()){if(e===void 0)return;let r=(Array.isArray(e)?e:[e]).flatMap(s=>s.split(",")).map(s=>s.trim()).filter(s=>s.length>0);if(r.length===0)return;let n=new Set;for(let s of r){let i=t.resolve(s);if(!i){let o=t.list().map(d=>d.kind).join(", ");throw new v(`Invalid --kind value "${s}". Registered kinds: ${o}.`,w.USAGE)}n.add(i.kind)}return[...n].sort()}function Cs(e){if(!e||e.length===0)return[];let t=e.map(({id:n,kind:s})=>({id:n.trim(),kind:s.trim().toLowerCase()})).sort((n,s)=>{let i=n.kind.localeCompare(s.kind);return i!==0?i:n.id.localeCompare(s.id)}),r=new Map;for(let n of t){let s=`${n.kind.toLowerCase()}::${n.id.toLowerCase()}`;r.has(s)||r.set(s,{id:n.id,kind:n.kind})}return[...r.values()]}function Ss(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:Cs(e.dependencies)}}function Rs(e){return re(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function Ds(e,t,r,n,s,i,o,d,c){for(let a of t.dependencies){let u=Math.max(1,Math.ceil(JSON.stringify({from:e.id,to:a.id,kind:a.kind}).length/3));if(d.nodes>=d.nodeLimit){e.truncated=!0,d.reasons.add("node_limit");break}if(d.edges>=d.edgeLimit){e.truncated=!0,d.reasons.add("edge_limit");break}if(d.estimatedTokens+u>=d.tokenBudget){e.truncated=!0,d.reasons.add("token_budget");break}d.edges+=1,d.estimatedTokens+=u,e.dependencies.push(gn(a.id,r,n,s,i,o,d,c+1,a.kind))}}function Os(e,t,r,n,s,i,o,d){return o.estimatedTokens>=o.tokenBudget&&t?.dependencies.length?(e.truncated=!0,o.reasons.add("token_budget"),!0):!t||e.cycle?!0:n!==void 0&&d>=n?(t.dependencies.length>0&&(e.truncated=!0,o.reasons.add("max_depth")),!0):s==="repeated"&&i.has(r)?(e.collapsed=!0,!0):!1}function gn(e,t,r,n,s,i,o,d=0,c){let a=e.trim().toLowerCase(),u=t.get(a),f={id:u?.id??e,title:u?.title,type:u?.type,status:u?.status,via:c,missing:!u,cycle:r.has(a),dependencies:[]};if(o.nodes+=1,o.estimatedTokens+=Rs(f),Os(f,u,a,n,s,i,o,d))return f;s==="repeated"&&i.add(a);let l=new Set(r);return l.add(a),Ds(f,u,t,l,n,s,i,o,d),f}function pn(e,t){return!e||e.missing&&!t.missing?t:{...e,title:e.title??t.title,type:e.type??t.type,status:e.status??t.status}}function Ls(e){let t=new Map,r=new Map,n=[e];for(;n.length>0;){let d=n.pop();t.set(d.id,pn(t.get(d.id),{id:d.id,title:d.title,type:d.type,status:d.status,missing:d.missing}));for(let c of d.dependencies){t.set(c.id,pn(t.get(c.id),{id:c.id,title:c.title,type:c.type,status:c.status,missing:c.missing}));let a=c.via??"related",u=`${d.id}::${c.id}::${a}`;r.has(u)||r.set(u,{from:d.id,to:c.id,kind:a}),c.cycle||n.push(c)}}let s=[...t.values()].sort((d,c)=>d.id.localeCompare(c.id)),i=[...r.values()].sort((d,c)=>{let a=d.from.localeCompare(c.from);if(a!==0)return a;let u=d.to.localeCompare(c.to);return u!==0?u:d.kind.localeCompare(c.kind)}),o=s.filter(d=>d.missing).map(d=>d.id);return{root_id:e.id,nodes:s,edges:i,missing_ids:o}}function hn(e,t,r){let n=new Set,s=new Set,i=new Set,o=new Set,d=[{id:e,depth:0}],c=0;for(;c<d.length;){let a=d[c++],u=a.id.trim().toLowerCase();n.add(u);let f=t.get(u);if(!f){i.add(u);continue}if(!(r!==void 0&&a.depth>=r)&&!o.has(u)){o.add(u);for(let l of f.dependencies)s.add(`${u}::${l.id.trim().toLowerCase()}::${l.kind}`),d.push({id:l.id,depth:a.depth+1})}}return{node_count:n.size,edge_count:s.size,edge_basis:"deduplicated_directed",missing_count:i.size}}function As(e,t=E()){let r=Le(e.maxDepth),n=I(e.nodeLimit,"node-limit"),s=I(e.edgeLimit,"edge-limit"),i=I(e.tokenBudget,"token-budget"),o=at(e.kind,t);return{direction:ct(e.direction),...o===void 0?{}:{kinds:o},...r===void 0?{}:{maxDepth:r},...n===void 0?{}:{nodeLimit:n},...s===void 0?{}:{edgeLimit:s},...i===void 0?{}:{tokenBudget:i},...e.cursor?.trim()?{cursor:e.cursor.trim()}:{}}}function Ns(e,t,r,n){return $t(e.graph,t,e.details.map(s=>s.id===t&&n.length>0?{...s,evidence:n}:s),r)}function dt(e,t,r,n){for(let s of r.slice(0,n)){let i=s?.trim();i&&e.push(`${t}:${i}`)}}async function $s(e,t,r,n){let s=await bt(e,t,r.id_prefix,r.item_format,n);if(!s)return[];let{document:i}=await wt(s,{schema:r.schema}),o=i.metadata,d=o.files??[],c=o.tests??[],a=o.docs??[],u=[["files",d.length],["tests",c.length],["docs",a.length],["comments",(o.comments??[]).length],["notes",(o.notes??[]).length],["learnings",(o.learnings??[]).length]];if(u.every(([,l])=>l===0))return[];let f=[`linked:${u.map(([l,p])=>`${l}=${p}`).join(",")}`];return dt(f,"file",d.map(l=>l.path),3),dt(f,"test",c.map(l=>l.command??l.path),2),dt(f,"doc",a.map(l=>l.path),2),f}function Ms(e){let{canonicalId:t,context:r,missingCount:n,missingReferences:s,referenceLimit:i,summaryOnly:o}=e;return{id:t,format:"context",node_count:r.nodes.length+1,edge_count:r.edges.length,edge_basis:"deduplicated_directed",missing_count:n,missing_scope:"traversal",missing_reference_count:s.length,...o?{}:{missing_references:s.slice(0,i),context:r}}}function js(e){let{row:t,missingReachableSet:r,packetIds:n,filteredKinds:s,registry:i}=e;if(t.no_active_blocker_sentinel||!r.has(t.target_id.trim().toLowerCase())||!n.has(t.holder_id))return!1;if(s===void 0)return!0;let o=i.resolve(t.kind);return o!==void 0&&(s.has(o.kind)||o.inverse!==void 0&&s.has(o.inverse))}function mn(e,t,r){let n;for(;;){let s=re(new TextEncoder().encode(Pe(je("deps",e),t)).byteLength);if(s===n)return s;r(s),n=s}}function Ps(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function Fs(e){try{return Ns(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&Ps(t))return e.smallestResult;throw t}}function Gs(e){let{assembly:t,canonicalId:r,contextOptions:n,rootEvidence:s,summaryOnly:i,outputFormat:o,missingCount:d,missingReferences:c}=e,u=n.edgeLimit??40,f=n.tokenBudget,l,p;for(;;){let g=Fs({assembly:t,canonicalId:r,contextOptions:n,internalTokenBudget:f,rootEvidence:s,smallestResult:p});if("format"in g)return g;let h=g;l??=h.meta.tokenBudget,f??=l;let y=Ms({canonicalId:r,context:h,missingCount:d,missingReferences:c,referenceLimit:u,summaryOnly:i});if(p=y,i||(h.meta.tokenBudget=l,h.meta.usedTokens=mn(P(y,!1),o,_=>{h.meta.usedTokens=_}),h.meta.usedTokens<=l))return y;if(u>0){u-=1;continue}let b=f,m=b*l/h.meta.usedTokens;f=Math.min(b-1,Math.max(1,Math.floor(m*.9)))}}function qs(e){let{assembly:t,canonicalId:r,options:n,rootEvidence:s,summaryOnly:i,outputFormat:o}=e,d=As(n,t.graph.registry()),c=t.graph.closure(r,{direction:d.direction,...d.kinds===void 0?{}:{kinds:d.kinds},maxDepth:d.maxDepth??3}),a=c.value.filter(h=>t.missingIdSet.has(h.toLowerCase())),u=new Set(a.map(h=>h.toLowerCase())),f=t.graph.registry(),l=d.kinds?new Set(d.kinds.map(h=>f.require(h).kind)):void 0,p=new Set([r,...c.value]),g=[...t.dangling.active,...t.dangling.legacy_terminal].filter(h=>js({row:h,missingReachableSet:u,packetIds:p,filteredKinds:l,registry:f}));return Gs({assembly:t,canonicalId:r,contextOptions:d,rootEvidence:s,summaryOnly:i,outputFormat:o,missingCount:a.length,missingReferences:g})}function Bs(e){let t=[e],r;for(;t.length>0;){let n=t.pop();n.dependencies.length>0&&(r=n,t.push(...n.dependencies))}return r?(r.dependencies.pop(),r.truncated=!0,!0):!1}function Us(e,t,r,n,s,i,o){let d=s??vs,c=I(r.nodeLimit,"node-limit")??ks,a=I(r.edgeLimit,"edge-limit")??xs,u=I(r.tokenBudget,"token-budget")??Es,f={nodeLimit:c,edgeLimit:a,tokenBudget:u,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},l=gn(e,n,new Set,d,t==="graph"?"repeated":i,new Set,f),p=hn(e,n,void 0),g;for(;;){let h=Ls(l),y=f.reasons.size===0?void 0:{reasons:[...f.reasons].sort(),limits:{max_depth:d,node_limit:c,edge_limit:a,token_budget:u},estimated_tokens:0,total_node_count:p.node_count,total_edge_count:p.edge_count,omitted_node_count:Math.max(0,p.node_count-h.nodes.length),omitted_edge_count:Math.max(0,p.edge_count-h.edges.length)},b={id:e,format:t,node_count:h.nodes.length,edge_count:h.edges.length,edge_basis:"deduplicated_directed",missing_count:h.missing_ids.length,...y?{truncation:y}:{}};if(g=t==="tree"?{...b,tree:l}:{...b,graph:h},(g.truncation===void 0?re(new TextEncoder().encode(Pe(je("deps",P(g,!1)),o)).byteLength):mn(P(g,!1),o,_=>{g.truncation.estimated_tokens=_}))<=u)return g;if(!Bs(l))return f.reasons.add("token_budget"),g;f.reasons.add("token_budget")}}function P(e,t,r={}){let n={name:e.format==="tree"?"dependency_tree":e.format==="graph"?"dependency_graph":"relationship_context",restore_with:"--full"};return{...e,legacy_alias_counts:r,projection:{mode:t?"summary":"full",declared_field_groups:[n],included_field_groups:t?[]:[n.name]}}}async function vo(e,t,r){let n=Z(process.cwd(),r.path);if(!await Y(ee(n)))throw new v(`Tracker is not initialized at ${n}. Run pm init first.`,w.NOT_FOUND);let s=Is(t.format),i=Le(t.maxDepth),o=Ts(t.collapse);se(t.summary===!0,t.full===!0,"--summary");let d=t.summary===!0,c=await ce(n),a=Q(c,oe()),u=await ae(n,c.item_format,a.type_to_folder,void 0,c.schema),f=ne(c.schema),l=new Map(u.map(g=>[g.id.trim().toLowerCase(),Ss(g)])),p=xt(u,g=>R(g,f));for(let g of[...p.active,...p.legacy_terminal]){let h=l.get(g.holder_id.trim().toLowerCase()),y=g.kind.trim().toLowerCase();h&&!h.dependencies.some(b=>b.id.trim().toLowerCase()===g.target_id.trim().toLowerCase()&&b.kind===y)&&h.dependencies.push({id:g.target_id,kind:y})}if(!l.has(e.trim().toLowerCase()))throw new v(`Item ${e} not found`,w.NOT_FOUND);if(s==="context"){let g=l.get(e.trim().toLowerCase()).id,h=d?[]:await $s(n,g,c,a.type_to_folder),y=_=>R(_,f),b=N(),m=me().lookup(n,he(u,y,b),()=>$(u,y,b));return P(qs({assembly:m.assembly,canonicalId:g,options:t,rootEvidence:h,summaryOnly:d,outputFormat:r.json===!0?"json":"toon"}),d,m.assembly.legacyAliasCounts)}return d?P({id:e,format:s,...hn(e,l,i)},!0,Object.fromEntries(Object.entries($(u,g=>R(g,f)).legacyAliasCounts))):P(Us(e,s,t,l,i,o,r.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries($(u,g=>R(g,f)).legacyAliasCounts)))}(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]="6c8bfb7a-687a-5fbb-b408-ffdbab1187a9")}catch{}})();var wn=new Set(["ancestors","descendants","predecessors","successors","paths","impact","dominators"]),S=10;function yn(e,t,r){return{...e,projection:{mode:t?"summary":"full",declared_field_groups:r===void 0?[]:[{name:r,restore_with:"--full"}],included_field_groups:r===void 0||t?[]:[r]}}}function _n(e){return e===void 0?[]:(Array.isArray(e)?e:[e]).flatMap(t=>t.split(",")).map(t=>t.trim()).filter(t=>t.length>0)}function zs(e,t,r){let n=e.trim().toLowerCase();if(!Me.includes(n))throw vt({command_path:"graph",token:n||"<empty>",allowed:Me});let s=n;if(wn.has(s)&&!t?.trim())throw new v(`graph ${s} requires an item id.`,w.USAGE);if(s==="paths"&&!r?.trim())throw new v("graph paths requires a source and a target item id.",w.USAGE);return s}function ut(e){throw e instanceof TypeError?new v(e.message,w.USAGE):e}function lt(e){return{truncated:e.truncated,cost:{visited_nodes:e.visitedNodes,inspected_edges:e.inspectedEdges}}}function bn(e,t){let r=t.trim().toLowerCase();for(let n of e.details)if(n.id.trim().toLowerCase()===r&&!e.missingIdSet.has(n.id.toLowerCase()))return n.id;throw new v(`Item ${t} not found`,w.NOT_FOUND)}function Ks(e,t,r){let n={ancestors:Pt,descendants:Ft,predecessors:Gt,successors:qt}[e],s;try{s=n(r.assembly.graph,t,{...r.kinds===void 0?{}:{kinds:r.kinds},...r.maxDepth===void 0?{}:{maxDepth:r.maxDepth},...r.limit===void 0?{}:{limit:r.limit},...r.after===void 0?{}:{after:r.after}})}catch(o){ut(o)}let i=lt(s.meta);return{subcommand:e,root:t,count:s.value.length,...i,...s.meta.nextCursor===void 0?{}:{next_cursor:s.meta.nextCursor},...r.summary?{}:{ids:s.value}}}function Ws(e,t,r){let n=Bt(r.assembly.graph,e,t,{direction:r.direction,...r.kinds===void 0?{}:{kinds:r.kinds},...r.maxDepth===void 0?{}:{maxDepth:r.maxDepth},...r.maxPaths===void 0?{}:{maxPaths:r.maxPaths}});return{subcommand:"paths",root:e,target:t,direction:r.direction,count:n.value.length,...lt(n.meta),...r.summary?{}:{paths:n.value.map(s=>({nodes:s.nodes,kinds:s.edges.map(i=>i.kind),length:s.length}))}}}function Vs(e,t){let r;try{r=Ot(t.assembly.graph,e,{direction:t.direction,...t.kinds===void 0?{}:{kinds:t.kinds},...t.maxDepth===void 0?{}:{maxDepth:t.maxDepth},...t.unbounded?{}:{limit:t.limit??S},...t.after===void 0?{}:{after:t.after}})}catch(n){ut(n)}return{subcommand:"impact",root:e,direction:t.direction,count:r.affected.length,truncated:r.truncated,...r.nextCursor===void 0?{}:{next_cursor:r.nextCursor},cost:{visited_nodes:r.cost.visitedNodes,inspected_edges:r.cost.inspectedEdges},...t.summary?{}:{affected:r.affected}}}function Hs(e){let t=e.assembly.graph,r=e.limit??S,n=ge(t,{registry:t.registry()}),s=Lt(t);return{subcommand:"analyze",node_count:t.nodes().length,edge_count:t.edges().length,edge_basis:"deduplicated_directed",sample_limit:r,execution:{acyclic:n.acyclic,ordered_node_count:n.order.length,layer_count:n.layers.length,frontier_count:n.frontier.length,critical_path_length:n.criticalPathLength,cycle_count:n.cycles.length,...e.summary?{}:{frontier:n.frontier.slice(0,r),critical_path:n.criticalPath.slice(0,r),cycles:n.cycles.slice(0,r)}},knowledge:{component_count:s.components.length,largest_component_size:s.components[0]?.length??0,orphan_count:s.orphans.length,...e.summary?{}:{orphans:s.orphans.slice(0,r),hubs:s.hubs.slice(0,r)}}}}function Js(e,t){let r=De(e.assembly,{isTerminal:t,...e.sample===void 0?{}:{maxSampleSize:e.sample},...e.exemptIsolates.length===0?{}:{exemptIsolates:e.exemptIsolates},...e.exemptIsolateTypes.length===0?{}:{isolateExemptTypes:e.exemptIsolateTypes}}),n={},s={},i={},o={};for(let d of r.findings)n[d.severity]=(n[d.severity]??0)+1,s[d.code]=(s[d.code]??0)+1,i[d.severity]=(i[d.severity]??0)+d.count,o[d.code]=(o[d.code]??0)+d.count;return{subcommand:"audit",finding_count:r.findings.length,findings_by_severity:n,findings_by_code:s,affected_subjects_by_severity:i,affected_subjects_by_code:o,profile:r.profile,legacy_alias_counts:e.assembly.legacyAliasCounts,...e.summary?{}:{findings:r.findings}}}function Xs(e){let t=e.limit??S,r={};e.kinds!==void 0&&(r.kinds=e.kinds);let n=zt(e.assembly.graph,r),s=n.value;return{subcommand:"communities",community_count:s.communities.length,largest_community_size:s.communities[0]?.size??0,iterations:s.iterations,converged:s.converged,truncated:!s.converged||s.communities.length>t,cost:{visited_nodes:n.meta.visitedNodes,inspected_edges:n.meta.inspectedEdges},...e.summary?{}:{communities:s.communities.slice(0,t).map(i=>({representative:i.representative,size:i.size,members:i.members.slice(0,t)}))}}}function Ys(e){let t;try{t=M(e.assembly.graph,{...e.kinds===void 0?{}:{kinds:e.kinds},...e.maxDepth===void 0?{}:{maxDepth:e.maxDepth},...e.limit===void 0?{}:{limit:e.limit}})}catch(r){ut(r)}return{subcommand:"redundancy",redundant_count:t.value.length,...lt(t.meta),...e.summary?{}:{redundant:t.value.map(r=>({source:r.edge.source,target:r.edge.target,kind:r.edge.kind,witness:r.witness}))}}}function Qs(e,t){let r=t.limit??S,n=Kt(t.assembly.graph,e,{direction:t.direction,...t.kinds===void 0?{}:{kinds:t.kinds},...t.maxDepth===void 0?{}:{maxDepth:t.maxDepth}}),s=n.value.rows.filter(i=>i.dominatedCount>0);return{subcommand:"dominators",root:e,direction:t.direction,reachable_count:n.value.reachableCount,bottleneck_count:s.length,truncated:n.meta.truncated||s.length>r,cost:{visited_nodes:n.meta.visitedNodes,inspected_edges:n.meta.inspectedEdges},...t.summary?{}:{bottlenecks:s.slice(0,r).map(i=>({id:i.id,idom:i.idom,dominated_count:i.dominatedCount}))}}}function Zs(e){let t=e.limit??S,r=Xt(e.assembly.graph),n=r.rows.filter(s=>s.critical).length;return{subcommand:"slack",acyclic:r.acyclic,makespan:r.makespan,scheduled_count:r.scheduledCount,critical_count:n,critical_path_length:r.criticalPathLength,cycle_count:r.cycles.length,truncated:r.rows.length>t,...e.summary?{}:{critical_path:r.criticalPath,rows:r.rows.slice(0,t).map(s=>({id:s.id,earliest_start:s.earliestStart,latest_start:s.latestStart,slack:s.slack,critical:s.critical}))}}}function ei(e){let t=e.limit??S,r=Jt(e.assembly.graph,e.kinds===void 0?{}:{kinds:e.kinds}),n=r.value;return{subcommand:"centrality",node_count:n.nodeCount,edge_count:n.edgeCount,edge_basis:"simple_undirected",truncated:n.rows.length>t,cost:{visited_nodes:r.meta.visitedNodes,inspected_edges:r.meta.inspectedEdges},...e.summary?{}:{rows:n.rows.slice(0,t).map(s=>({id:s.id,degree:s.degree,in_degree:s.inDegree,out_degree:s.outDegree,betweenness:s.betweenness,closeness:s.closeness}))}}}function ti(e){let t=e.limit??S,r=Te(e.assembly.graph,e.kinds===void 0?{}:{kinds:e.kinds}),{articulationPoints:n,bridges:s}=r.value;return{subcommand:"articulation",articulation_count:n.length,bridge_count:s.length,truncated:n.length>t||s.length>t,cost:{visited_nodes:r.meta.visitedNodes,inspected_edges:r.meta.inspectedEdges},...e.summary?{}:{articulation_points:n.slice(0,t),bridges:s.slice(0,t)}}}function ni(e,t){let r=e.limit??S,n=fn(e.assembly,{isTerminal:t,redundancyLimit:r,...e.sample===void 0?{}:{maxSampleSize:e.sample},...e.exemptIsolates.length===0?{}:{exemptIsolates:e.exemptIsolates},...e.exemptIsolateTypes.length===0?{}:{isolateExemptTypes:e.exemptIsolateTypes}}),s={},i={};for(let o of n.steps)s[o.op]=(s[o.op]??0)+1,i[o.code]=(i[o.code]??0)+1;return{subcommand:"plan",step_count:n.steps.length,steps_by_op:s,steps_by_code:i,finding_count:n.report.findings.length,truncated:n.truncated||n.steps.length>r,cost:{visited_nodes:n.cost.visitedNodes,inspected_edges:n.cost.inspectedEdges},...e.summary?{}:{steps:n.steps.slice(0,r)}}}function vn(e,t,r,n){return JSON.stringify({subcommand:e,root:t??null,target:r??null,kinds:n.kinds??null,maxDepth:n.maxDepth??null,limit:n.limit??null,after:n.after??null,direction:n.direction,maxPaths:n.maxPaths??null,sample:n.sample??null,exemptIsolates:[...new Set(n.exemptIsolates.map(s=>s.toLowerCase()))].sort(),exemptIsolateTypes:[...new Set(n.exemptIsolateTypes.map(s=>s.toLowerCase()))].sort(),summary:n.summary,unbounded:n.unbounded})}function kn(e,t,r,n,s){return e==="analyze"?Hs(n):e==="audit"?Js(n,s):e==="plan"?ni(n,s):e==="communities"?Xs(n):e==="redundancy"?Ys(n):e==="dominators"?Qs(t,n):e==="slack"?Zs(n):e==="centrality"?ei(n):e==="articulation"?ti(n):e==="paths"?Ws(t,r,n):e==="impact"?Vs(t,n):Ks(e,t,n)}function ri(e,t){if(e!=="index"&&(t.rebuild===!0||t.clear===!0))throw new v("--rebuild and --clear apply only to graph index.",w.USAGE);if(e!=="audit"&&t.saveBaseline===!0)throw new v("--save-baseline applies only to graph audit.",w.USAGE);if(e==="slack"&&t.kind!==void 0)throw new v("graph slack analyzes every ordering kind; --kind is not supported.",w.USAGE);if(t.rebuild===!0&&t.clear===!0)throw new v("graph index accepts either --rebuild or --clear, not both.",w.USAGE);if(e==="impact"&&t.full===!0&&t.limit!==void 0)throw new v("graph impact accepts either --full or --limit, not both.",w.USAGE)}async function si(e,t,r,n,s,i){let o="status";if(i.clear===!0&&(await it(e),o="cleared"),i.rebuild===!0){await it(e);let c=await rt(e,t),a={assembly:r.assembly,direction:"both",exemptIsolates:[],exemptIsolateTypes:[],saveBaseline:!1,summary:!0,unbounded:!1};for(let u of["analyze","audit"])await st(e,t,c,vn(u,void 0,void 0,a),kn(u,void 0,void 0,a,s));o="rebuilt"}let d=await dn(e,t);return{subcommand:"index",action:o,state:d.exists?d.fresh?"fresh":"stale":"absent",entry_count:d.entry_count,item_count:n,min_items_threshold:tt,persist_enabled:ot(n,d.exists),current_fingerprint:t.slice(0,12),...d.saved_at===void 0?{}:{saved_at:d.saved_at},...d.bytes===void 0?{}:{bytes:d.bytes}}}async function ii(e,t,r,n){let s={saved_at:new Date().toISOString(),fingerprint:t,affected_subjects_by_code:r.affected_subjects_by_code,profile:r.profile},i=await an(e);return n&&await un(e,s),i===void 0?r:{...r,baseline:tn(i,s)}}async function oi(e,t,r,n,s){try{await st(e,t,r,n,s)}catch{}}async function Vo(e,t,r,n,s){let i=zs(e,t,r);se(n.summary===!0,n.full===!0,"--summary");let o=Z(process.cwd(),s.path);if(!await Y(ee(o)))throw new v(`Tracker is not initialized at ${o}. Run pm init first.`,w.NOT_FOUND);let d=await ce(o),c=Q(d,oe()),a=await ae(o,d.item_format,c.type_to_folder,void 0,d.schema),u=ne(d.schema),f=G=>R(G,u);ri(i,n);let l=N(),p=at(n.kind,l),g=me().lookup(o,he(a,f,l),()=>$(a,f,l)),h={assembly:g.assembly,...p===void 0?{}:{kinds:p},maxDepth:Le(n.maxDepth),limit:I(n.limit,"limit"),after:n.after?.trim()||void 0,direction:ct(n.direction),maxPaths:I(n.maxPaths,"max-paths"),sample:I(n.sample,"sample"),exemptIsolates:_n(n.exemptIsolate),exemptIsolateTypes:_n(n.exemptIsolateType),saveBaseline:n.saveBaseline===!0,summary:n.summary===!0,unbounded:n.full===!0};if(i==="index")return yn(await si(o,g.fingerprint,h,a.length,f,n),!1);let y=wn.has(i)?bn(h.assembly,t):void 0,b=i==="paths"?bn(h.assembly,r):void 0,m=vn(i,y,b,h),_=await rt(o,g.fingerprint),T=_.results[m],k=g.memoize(m,()=>T!==void 0?structuredClone(T):kn(i,y,b,h,f)),J=ot(a.length,_.exists);!k.reused&&T===void 0&&J&&await oi(o,g.fingerprint,_,m,k.value);let F=k.value.subcommand==="audit"?await ii(o,g.fingerprint,k.value,h.saveBaseline):k.value;return F.cache={fingerprint:g.fingerprint.slice(0,12),assembly:g.assemblyReused?"hit":"miss",result:k.reused?"hit":"miss",durable:T!==void 0?"hit":J?"miss":"off"},yn(F,h.summary,"result_rows")}(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]="94e8b95b-35fa-5fc7-843a-481497e09b54")}catch{}})();function xn(e){return[...e].sort().join("\0")}function di(e,t,r){let n=e.successors.get(t);n?n.push(r):e.successors.set(t,[r]);let s=e.predecessors.get(r);s?s.push(t):e.predecessors.set(r,[t])}function En(e,t,r,n,s){let i=t.resolve(s);if(i?.ordering!==!0)return;let o=kt(n),d=o===void 0?void 0:e.canonicalIds.get(o.toLowerCase());if(d===void 0)return;let c=(i.precedence??"source_before_target")==="source_before_target";di(e,c?r:d,c?d:r)}function ci(e,t){let r={successors:new Map,predecessors:new Map,canonicalIds:new Map},n=e.filter(s=>typeof s?.id=="string"&&s.id.trim().length>0);for(let s of n){let i=s.id.trim();r.canonicalIds.set(i.toLowerCase(),i)}for(let s of n){let i=s.id.trim();En(r,t,i,s.blocked_by,"blocked_by");for(let o of s.dependencies??[])typeof o!="object"||o===null||En(r,t,i,o.id,typeof o.kind=="string"?o.kind:"related")}for(let s of[r.successors,r.predecessors])for(let i of s.values())i.sort();return r}function ai(e,t){let r=new Set([t]),n=[t];for(;n.length>0;){let s=n.pop();for(let i of[e.successors,e.predecessors])for(let o of i.get(s)??[])r.has(o)||(r.add(o),n.push(o))}return r}function ui(e,t){let r=new Map;for(let n of t){let s=(e.successors.get(n)??[]).filter(i=>t.has(i));s.length>0&&r.set(n,s)}return r}function In(e,t,r){let n=ci(e,t),s=n.canonicalIds.get(r.trim().toLowerCase());if(s===void 0)return{cycles:[],successors:new Map,canonical:r};let i=ui(n,ai(n,s));return{cycles:Ze(i).filter(o=>o.includes(s)),successors:i,canonical:s}}function li(e,t,r){let n=new Set(t),s=n.has(r)?r:t[0];if(e.get(s)?.includes(s))return[s,s];for(let i of e.get(s)??[]){if(!n.has(i))continue;let o=fi(e,n,s,i);if(o)return o}return[...t,t[0]]}function fi(e,t,r,n){let s=[[n]],i=new Set([r,n]);for(;s.length>0;){let o=s.shift(),d=o.at(-1);for(let c of e.get(d)??[]){if(c===r)return[r,...o,r];!t.has(c)||i.has(c)||(i.add(c),s.push([...o,c]))}}}function Yo(e,t,r){let n=N(),s=In(e,n,r),i=In(t,n,r),o=new Set(s.cycles.map(xn)),d=new Set(Fe(e,void 0,n).map(a=>`${a.holder_id.toLowerCase()}\0${a.target_id.toLowerCase()}\0${a.dependency_kind}`));return[...Fe(t,void 0,n).filter(a=>a.holder_id.toLowerCase()===r.trim().toLowerCase()&&!d.has(`${a.holder_id.toLowerCase()}\0${a.target_id.toLowerCase()}\0${a.dependency_kind}`)).map(a=>`ordering_storage_contradiction_created:${Se(a)}:remove_contradicting_dependency_row:run_pm_graph_audit`),...i.cycles.filter(a=>!o.has(xn(a))).map(a=>`ordering_cycle_created:${li(i.successors,a,i.canonical).join(" -> ")}:items_will_not_be_ready:run_pm_graph_audit`)]}export{Ue as a,It as b,ge as c,Ot as d,Lt as e,Ei as f,he as g,ze as h,me as i,Ri as j,$t as k,vo as l,Pt as m,Ft as n,Gt as o,qt as p,Bt as q,ke as r,zt as s,M as t,Kt as u,Jt as v,Te as w,Xt as x,Ze as y,Se as z,Re as A,et as B,De as C,tn as D,rn as E,tt as F,H as G,on as H,rt as I,st as J,it as K,dn as L,ot as M,an as N,un as O,fn as P,zs as Q,Vo as R,Yo as S};
8
- //# sourceMappingURL=chunk-F43TT2QQ.js.map
@@ -1,2 +0,0 @@
1
- import{Ia as S,a as C,b as w}from"./chunk-QUMB2J27.js";import{F as _,G as A,H as R,I as E,Na as I,oa as h,va as P}from"./chunk-Q4YY3XNF.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]="3b9b9ebe-8d98-5983-8257-b7b77c7e6194")}catch{}})();var Be=[{target:"status",keys:["status"]},{target:"type",keys:["type"]},{target:"tag",keys:["tag","tags"]},{target:"priority",keys:["priority"]},{target:"deadlineBefore",keys:["deadlineBefore"]},{target:"deadlineAfter",keys:["deadlineAfter"]},{target:"updatedAfter",keys:["updatedAfter"]},{target:"updatedBefore",keys:["updatedBefore"]},{target:"createdAfter",keys:["createdAfter"]},{target:"createdBefore",keys:["createdBefore"]},{target:"ids",keys:["ids"]},{target:"assignee",keys:["assignee"]},{target:"assigneeFilter",keys:["assigneeFilter","assignee_filter"]},{target:"parent",keys:["parent"]},{target:"sprint",keys:["sprint"]},{target:"release",keys:["release"]},{target:"limit",keys:["limit"]},{target:"offset",keys:["offset"]},{target:"after",keys:["after"]},{target:"fields",keys:["fields"]},{target:"sort",keys:["sort"]},{target:"order",keys:["order"]},{target:"treeDepth",keys:["treeDepth","tree_depth"]}],We=[{target:"mode",keys:["mode"]},{target:"matchMode",keys:["matchMode","match_mode"]},{target:"minScore",keys:["minScore","min_score"]},{target:"semanticWeight",keys:["semanticWeight","semantic_weight"]},{target:"status",keys:["status"]},{target:"type",keys:["type"]},{target:"tag",keys:["tag","tags"]},{target:"priority",keys:["priority"]},{target:"deadlineBefore",keys:["deadlineBefore"]},{target:"deadlineAfter",keys:["deadlineAfter"]},{target:"updatedAfter",keys:["updatedAfter"]},{target:"updatedBefore",keys:["updatedBefore"]},{target:"createdAfter",keys:["createdAfter"]},{target:"createdBefore",keys:["createdBefore"]},{target:"assignee",keys:["assignee"]},{target:"sprint",keys:["sprint"]},{target:"release",keys:["release"]},{target:"parent",keys:["parent"]},{target:"fields",keys:["fields"]},{target:"limit",keys:["limit"]},{target:"after",keys:["after"]}],Ue=[{target:"view",keys:["view"]},{target:"date",keys:["date"]},{target:"from",keys:["from"]},{target:"to",keys:["to"]},{target:"limit",keys:["limit"]},{target:"type",keys:["type"]},{target:"tag",keys:["tag"]},{target:"priority",keys:["priority"]},{target:"status",keys:["status"]},{target:"assignee",keys:["assignee"]},{target:"assigneeFilter",keys:["assigneeFilter","assignee_filter"]},{target:"sprint",keys:["sprint"]},{target:"release",keys:["release"]},{target:"include",keys:["include"]},{target:"recurrenceLookaheadDays",keys:["recurrenceLookaheadDays","recurrence_lookahead_days"]},{target:"recurrenceLookbackDays",keys:["recurrenceLookbackDays","recurrence_lookback_days"]},{target:"occurrenceLimit",keys:["occurrenceLimit","occurrence_limit"]},{target:"format",keys:["format"]}],He=[{target:"date",keys:["date"]},{target:"from",keys:["from"]},{target:"to",keys:["to"]},{target:"type",keys:["type"]},{target:"tag",keys:["tag"]},{target:"priority",keys:["priority"]},{target:"assignee",keys:["assignee"]},{target:"assigneeFilter",keys:["assigneeFilter","assignee_filter"]},{target:"sprint",keys:["sprint"]},{target:"release",keys:["release"]},{target:"parent",keys:["parent"]},{target:"limit",keys:["limit","maxItems","max_items"]},{target:"after",keys:["after"]},{target:"format",keys:["format"]},{target:"depth",keys:["depth"]},{target:"fields",keys:["fields"]},{target:"activityLimit",keys:["activityLimit","activity_limit"]},{target:"staleThreshold",keys:["staleThreshold","stale_threshold"]},{target:"tokenBudget",keys:["tokenBudget","token_budget"]}],Ge=[{target:"type",keys:["type"]},{target:"tag",keys:["tag"]},{target:"priority",keys:["priority"]},{target:"assignee",keys:["assignee"]},{target:"assigneeFilter",keys:["assigneeFilter","assignee_filter"]},{target:"sprint",keys:["sprint"]},{target:"release",keys:["release"]},{target:"parent",keys:["parent"]},{target:"limit",keys:["limit"]},{target:"blockedLimit",keys:["blockedLimit","blocked_limit"]},{target:"format",keys:["format"]},{target:"tokenBudget",keys:["tokenBudget","token_budget"]}],ze=[{target:"id",keys:["id"]},{target:"op",keys:["op"]},{target:"author",keys:["author"]},{target:"from",keys:["from"]},{target:"to",keys:["to"]},{target:"limit",keys:["limit"]}];function Ke(e,t){for(let a of t.keys){let r=e[a];if(typeof r=="string")return r}}function Ve(e,t){for(let a of t.keys)if(Object.hasOwn(e,a))return e[a]}function Ye(e,t){for(let a of t.keys){let r=e[a];if(Array.isArray(r))return r}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e2028eff-b29e-5850-87b1-4a3e06f28964")}catch{}})();function o(e){return e.map(t=>({...t}))}var v=[{param:"status",flag:"--status"},{param:"type",flag:"--type"},{param:"tag",flag:"--tag"},{param:"priority",flag:"--priority"},{param:"deadlineBefore",flag:"--deadline-before"},{param:"deadlineAfter",flag:"--deadline-after"}],N=[{param:"updatedAfter",flag:"--updated-after"},{param:"updatedBefore",flag:"--updated-before"},{param:"createdAfter",flag:"--created-after"},{param:"createdBefore",flag:"--created-before"}],de=[{param:"today",flag:"--today",booleanish:!0},{param:"recent",flag:"--recent",booleanish:!0},...N],L=[{param:"assignee",flag:"--assignee"},{param:"assigneeFilter",flag:"--assignee-filter"},{param:"parent",flag:"--parent"},{param:"sprint",flag:"--sprint"},{param:"release",flag:"--release"}],ce=[{param:"assignee",flag:"--assignee"},{param:"sprint",flag:"--sprint"},{param:"release",flag:"--release"},{param:"parent",flag:"--parent"}],me=[...v,...L],M=[{param:"filterReviewerMissing",flag:"--filter-reviewer-missing"},{param:"filterRiskMissing",flag:"--filter-risk-missing"},{param:"filterConfidenceMissing",flag:"--filter-confidence-missing"},{param:"filterSprintMissing",flag:"--filter-sprint-missing"},{param:"filterReleaseMissing",flag:"--filter-release-missing"}],ue=[{param:"filterAcMissing",flag:"--filter-ac-missing"},{param:"filterEstimatesMissing",flag:"--filter-estimates-missing"},{param:"filterResolutionMissing",flag:"--filter-resolution-missing"},{param:"filterMetadataMissing",flag:"--filter-metadata-missing"}],q=[{param:"hasNotes",flag:"--has-notes"},{param:"noNotes",flag:"--no-notes"},{param:"hasLearnings",flag:"--has-learnings"},{param:"noLearnings",flag:"--no-learnings"},{param:"hasFiles",flag:"--has-files"},{param:"noFiles",flag:"--no-files"},{param:"filterFilesMissing",flag:"--filter-files-missing"},{param:"hasDocs",flag:"--has-docs"},{param:"noDocs",flag:"--no-docs"},{param:"filterDocsMissing",flag:"--filter-docs-missing"},{param:"hasTests",flag:"--has-tests"},{param:"noTests",flag:"--no-tests"},{param:"hasComments",flag:"--has-comments"},{param:"noComments",flag:"--no-comments"},{param:"hasDeps",flag:"--has-deps"},{param:"noDeps",flag:"--no-deps"},{param:"hasBody",flag:"--has-body"},{param:"emptyBody",flag:"--empty-body"},{param:"hasLinkedCommand",flag:"--has-linked-command"},{param:"noLinkedCommand",flag:"--no-linked-command"}],D=[{param:"for",flag:"--for"},{param:"tokenBudget",flag:"--token-budget"},...o(v),...o(de),{param:"ids",flag:"--ids"},...o(L),...o(ue),...o(M),...o(q),{param:"limit",flag:"--limit"},{param:"offset",flag:"--offset"},{param:"after",flag:"--after"},{param:"fields",flag:"--fields"},{param:"sort",flag:"--sort"},{param:"order",flag:"--order"},{param:"tree",flag:"--tree"},{param:"treeDepth",flag:"--tree-depth"}],F=[{param:"groupBy",flag:"--group-by"},{param:"sum",flag:"--sum"},{param:"avg",flag:"--avg"},...o(me)],j=[{param:"for",flag:"--for"},{param:"tokenBudget",flag:"--token-budget"},{param:"matchMode",flag:"--match-mode"},{param:"minScore",flag:"--min-score"},{param:"count",flag:"--count",booleanish:!0},{param:"semanticWeight",flag:"--semantic-weight"},...o(v),...o(N),...o(ce),...o(M),...o(q),{param:"fields",flag:"--fields"},{param:"limit",flag:"--limit"},{param:"after",flag:"--after"}],ye=[{param:"parent",flag:"--parent"},{param:"reviewer",flag:"--reviewer"},{param:"risk",flag:"--risk"},{param:"confidence",flag:"--confidence"},{param:"sprint",flag:"--sprint"},{param:"release",flag:"--release"},{param:"blockedBy",flag:"--blocked-by"},{param:"blockedReason",flag:"--blocked-reason"},{param:"unblockNote",flag:"--unblock-note"},{param:"reporter",flag:"--reporter"},{param:"severity",flag:"--severity"},{param:"environment",flag:"--environment"},{param:"reproSteps",flag:"--repro-steps"},{param:"resolution",flag:"--resolution"},{param:"expectedResult",flag:"--expected-result"},{param:"actualResult",flag:"--actual-result"},{param:"affectedVersion",flag:"--affected-version"},{param:"fixedVersion",flag:"--fixed-version"},{param:"component",flag:"--component"},{param:"regression",flag:"--regression",booleanish:!0},{param:"customerImpact",flag:"--customer-impact"},{param:"definitionOfReady",flag:"--definition-of-ready",allowEmpty:!0},{param:"order",flag:"--order"},{param:"rank",flag:"--rank"},{param:"goal",flag:"--goal"},{param:"objective",flag:"--objective"},{param:"value",flag:"--value"},{param:"impact",flag:"--impact"},{param:"outcome",flag:"--outcome"},{param:"whyNow",flag:"--why-now"}],x=o(ye),ge=[{param:"id",flag:"--id"},{param:"title",flag:"--title"},{param:"description",flag:"--description",allowEmpty:!0},{param:"type",flag:"--type"},{param:"template",flag:"--template"},{param:"createMode",flag:"--create-mode"},{param:"schedulePreset",flag:"--schedule-preset"},{param:"status",flag:"--status"},{param:"priority",flag:"--priority"},{param:"tags",flag:"--tags",allowEmpty:!0},{param:"addTags",flag:"--add-tags",repeatable:!0},{param:"body",flag:"--body",allowEmpty:!0},{param:"deadline",flag:"--deadline"},{param:"estimate",flag:"--estimate"},{param:"acceptanceCriteria",flag:"--acceptance-criteria",allowEmpty:!0},{param:"author",flag:"--author"},{param:"message",flag:"--message",allowEmpty:!0},{param:"assignee",flag:"--assignee"},{param:"allowMissingParent",flag:"--allow-missing-parent"},{param:"allowUnresolvedDeps",flag:"--allow-unresolved-deps"},{param:"allowDuplicate",flag:"--allow-duplicate",booleanish:!0},{param:"reminder",flag:"--reminder",repeatable:!0},{param:"event",flag:"--event",repeatable:!0},{param:"typeOption",flag:"--type-option",repeatable:!0},{param:"field",flag:"--field",repeatable:!0},{param:"dep",flag:"--dep",repeatable:!0},{param:"comment",flag:"--comment",repeatable:!0},{param:"note",flag:"--note",repeatable:!0},{param:"learning",flag:"--learning",repeatable:!0},{param:"linkedFile",flag:"--file",repeatable:!0},{param:"linkedTest",flag:"--test",repeatable:!0},{param:"doc",flag:"--doc",repeatable:!0},{param:"unset",flag:"--unset",repeatable:!0},{param:"clearDeps",flag:"--clear-deps"},{param:"clearComments",flag:"--clear-comments"},{param:"clearNotes",flag:"--clear-notes"},{param:"clearLearnings",flag:"--clear-learnings"},{param:"clearFiles",flag:"--clear-files"},{param:"clearTests",flag:"--clear-tests"},{param:"clearDocs",flag:"--clear-docs"},{param:"clearReminders",flag:"--clear-reminders"},{param:"clearEvents",flag:"--clear-events"},{param:"clearTypeOptions",flag:"--clear-type-options"}],B=o(ge),fe=[{param:"title",flag:"--title"},{param:"description",flag:"--description",allowEmpty:!0},{param:"body",flag:"--body",allowEmpty:!0},{param:"status",flag:"--status"},{param:"closeReason",flag:"--close-reason"},{param:"completedAt",flag:"--completed-at"},{param:"priority",flag:"--priority"},{param:"type",flag:"--type"},{param:"tags",flag:"--tags",allowEmpty:!0},{param:"addTags",flag:"--add-tags",repeatable:!0},{param:"removeTags",flag:"--remove-tags",repeatable:!0},{param:"deadline",flag:"--deadline"},{param:"estimate",flag:"--estimate"},{param:"acceptanceCriteria",flag:"--acceptance-criteria",allowEmpty:!0},{param:"addAc",flag:"--add-ac",repeatable:!0},{param:"removeAc",flag:"--remove-ac",repeatable:!0},{param:"author",flag:"--author"},{param:"message",flag:"--message",allowEmpty:!0},{param:"assignee",flag:"--assignee"},{param:"allowMissingParent",flag:"--allow-missing-parent"},{param:"allowUnresolvedDeps",flag:"--allow-unresolved-deps"},{param:"dep",flag:"--dep",repeatable:!0},{param:"depRemove",flag:"--dep-remove",repeatable:!0},{param:"replaceDeps",flag:"--replace-deps"},{param:"replaceTests",flag:"--replace-tests"},{param:"replaceFiles",flag:"--replace-files"},{param:"replaceDocs",flag:"--replace-docs"},{param:"comment",flag:"--comment",repeatable:!0},{param:"note",flag:"--note",repeatable:!0},{param:"learning",flag:"--learning",repeatable:!0},{param:"linkedFile",flag:"--file",repeatable:!0},{param:"linkedTest",flag:"--test",repeatable:!0},{param:"doc",flag:"--doc",repeatable:!0},{param:"reminder",flag:"--reminder",repeatable:!0},{param:"event",flag:"--event",repeatable:!0},{param:"typeOption",flag:"--type-option",repeatable:!0},{param:"field",flag:"--field",repeatable:!0},{param:"unset",flag:"--unset",repeatable:!0},{param:"clearDeps",flag:"--clear-deps"},{param:"clearComments",flag:"--clear-comments"},{param:"clearNotes",flag:"--clear-notes"},{param:"clearLearnings",flag:"--clear-learnings"},{param:"clearFiles",flag:"--clear-files"},{param:"clearTests",flag:"--clear-tests"},{param:"clearDocs",flag:"--clear-docs"},{param:"clearReminders",flag:"--clear-reminders"},{param:"clearEvents",flag:"--clear-events"},{param:"clearTypeOptions",flag:"--clear-type-options"}],W=o(fe),U=[{param:"filterStatus",flag:"--filter-status"},{param:"filterType",flag:"--filter-type"},{param:"filterTag",flag:"--filter-tag"},{param:"filterPriority",flag:"--filter-priority"},{param:"filterDeadlineBefore",flag:"--filter-deadline-before"},{param:"filterDeadlineAfter",flag:"--filter-deadline-after"},{param:"filterUpdatedAfter",flag:"--filter-updated-after"},{param:"filterUpdatedBefore",flag:"--filter-updated-before"},{param:"filterCreatedAfter",flag:"--filter-created-after"},{param:"filterCreatedBefore",flag:"--filter-created-before"},{param:"filterAssignee",flag:"--filter-assignee"},{param:"filterAssigneeFilter",flag:"--filter-assignee-filter"},{param:"filterParent",flag:"--filter-parent"},{param:"filterSprint",flag:"--filter-sprint"},{param:"filterRelease",flag:"--filter-release"},{param:"filterAcMissing",flag:"--filter-ac-missing"},{param:"filterEstimatesMissing",flag:"--filter-estimates-missing"},{param:"filterResolutionMissing",flag:"--filter-resolution-missing"},{param:"filterMetadataMissing",flag:"--filter-metadata-missing"},{param:"filterReviewerMissing",flag:"--filter-reviewer-missing"},{param:"filterRiskMissing",flag:"--filter-risk-missing"},{param:"filterConfidenceMissing",flag:"--filter-confidence-missing"},{param:"filterSprintMissing",flag:"--filter-sprint-missing"},{param:"filterReleaseMissing",flag:"--filter-release-missing"},{param:"filterHasNotes",flag:"--filter-has-notes"},{param:"filterNoNotes",flag:"--filter-no-notes"},{param:"filterHasLearnings",flag:"--filter-has-learnings"},{param:"filterNoLearnings",flag:"--filter-no-learnings"},{param:"filterHasFiles",flag:"--filter-has-files"},{param:"filterNoFiles",flag:"--filter-no-files"},{param:"filterHasDocs",flag:"--filter-has-docs"},{param:"filterNoDocs",flag:"--filter-no-docs"},{param:"filterHasTests",flag:"--filter-has-tests"},{param:"filterNoTests",flag:"--filter-no-tests"},{param:"filterHasComments",flag:"--filter-has-comments"},{param:"filterNoComments",flag:"--filter-no-comments"},{param:"filterHasDeps",flag:"--filter-has-deps"},{param:"filterNoDeps",flag:"--filter-no-deps"},{param:"filterHasBody",flag:"--filter-has-body"},{param:"filterEmptyBody",flag:"--filter-empty-body"},{param:"filterHasLinkedCommand",flag:"--filter-has-linked-command"},{param:"filterNoLinkedCommand",flag:"--filter-no-linked-command"},{param:"ids",flag:"--ids"},{param:"limit",flag:"--limit"},{param:"offset",flag:"--offset"}],H=o(U),G=o(U),Je=[{param:"view",flag:"--view"},{param:"date",flag:"--date"},{param:"from",flag:"--from"},{param:"to",flag:"--to"},{param:"type",flag:"--type"},{param:"tag",flag:"--tag"},{param:"priority",flag:"--priority"},{param:"status",flag:"--status"},{param:"assignee",flag:"--assignee"},{param:"assigneeFilter",flag:"--assignee-filter"},{param:"sprint",flag:"--sprint"},{param:"release",flag:"--release"},{param:"include",flag:"--include"},{param:"recurrenceLookaheadDays",flag:"--recurrence-lookahead-days"},{param:"recurrenceLookbackDays",flag:"--recurrence-lookback-days"},{param:"occurrenceLimit",flag:"--occurrence-limit"},{param:"limit",flag:"--limit"},{param:"after",flag:"--after"},{param:"format",flag:"--format"}],z=[{param:"id",flag:"--id"},{param:"op",flag:"--op"},{param:"author",flag:"--author"},{param:"from",flag:"--from"},{param:"to",flag:"--to"},{param:"limit",flag:"--limit"},{param:"unbounded",flag:"--unbounded"},{param:"compact",flag:"--compact"},{param:"raw",flag:"--raw"},{param:"full",flag:"--full"},{param:"provenance",flag:"--provenance"},{param:"provenanceSummary",flag:"--provenance-summary"},{param:"harness",flag:"--harness",repeatable:!0},{param:"agentInstance",flag:"--agent-instance",repeatable:!0},{param:"provenanceFilter",flag:"--provenance-filter",repeatable:!0}],K=[{param:"for",flag:"--for"},{param:"date",flag:"--date"},{param:"from",flag:"--from"},{param:"to",flag:"--to"},{param:"type",flag:"--type"},{param:"tag",flag:"--tag"},{param:"priority",flag:"--priority"},{param:"assignee",flag:"--assignee"},{param:"assigneeFilter",flag:"--assignee-filter"},{param:"sprint",flag:"--sprint"},{param:"release",flag:"--release"},{param:"parent",flag:"--parent"},{param:"limit",flag:"--limit"},{param:"after",flag:"--after"},{param:"format",flag:"--format"},{param:"depth",flag:"--depth"},{param:"fields",flag:"--fields"},{param:"section",flag:"--section",repeatable:!0},{param:"activityLimit",flag:"--activity-limit"},{param:"staleThreshold",flag:"--stale-threshold"},{param:"tokenBudget",flag:"--token-budget"},{param:"explainRanking",flag:"--explain-ranking"},{param:"noTags",flag:"--no-tags"},{param:"noExtensionHealth",flag:"--no-extension-health"}],Ze=[{param:"format",flag:"--format"},{param:"maxDepth",flag:"--max-depth"},{param:"collapse",flag:"--collapse"},{param:"summary",flag:"--summary"},{param:"nodeLimit",flag:"--node-limit"},{param:"edgeLimit",flag:"--edge-limit"},{param:"tokenBudget",flag:"--token-budget"},{param:"cursor",flag:"--cursor"},{param:"direction",flag:"--direction"},{param:"kind",flag:"--kind",repeatable:!0}],Xe=[{param:"kind",flag:"--kind",repeatable:!0},{param:"maxDepth",flag:"--max-depth"},{param:"limit",flag:"--limit"},{param:"after",flag:"--after"},{param:"direction",flag:"--direction"},{param:"maxPaths",flag:"--max-paths"},{param:"sample",flag:"--sample"},{param:"exemptIsolate",flag:"--exempt-isolate",repeatable:!0},{param:"exemptIsolateType",flag:"--exempt-isolate-type",repeatable:!0},{param:"saveBaseline",flag:"--save-baseline"},{param:"rebuild",flag:"--rebuild"},{param:"clear",flag:"--clear"},{param:"summary",flag:"--summary"}];(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]="19a97f60-3b6e-5653-a652-02aebaf5afdd")}catch{}})();var V={oneOf:[{type:"number"},{type:"array",items:{type:"string"}}]},Y={if:{required:["field"]}};Reflect.set(Y,"then",{oneOf:[{required:["equals"]},{required:["state"]}]});var $={oneOf:[{type:"object",additionalProperties:!1,required:["id","source"],properties:{id:{type:"string",minLength:1},description:{type:"string"},max_cost:{type:"number",minimum:0},source:{oneOf:[{type:"object",additionalProperties:!1,required:["kind"],allOf:[Y],properties:{kind:{const:"items"},statuses:{type:"array",items:{type:"string"}},types:{type:"array",items:{type:"string"}},tags:{type:"array",items:{type:"string"}},field:{type:"string"},equals:{type:["string","number","boolean","null"]},state:{enum:["present","missing"]}}},{type:"object",additionalProperties:!1,required:["kind","dependency_kind"],properties:{kind:{const:"dependency_kind"},dependency_kind:{type:"string",minLength:1}}},{type:"object",required:["kind","operation","field"],properties:{kind:{const:"graph"},operation:{type:"string",minLength:1},field:{type:"string",minLength:1},parameters:{type:"object"}},additionalProperties:!1},...["validate","health"].map(e=>({type:"object",required:["kind","check","field"],properties:{kind:{const:e},check:{type:"string",minLength:1},field:{type:"string",minLength:1}},additionalProperties:!1})),{type:"object",additionalProperties:!1,required:["kind"],properties:{kind:{const:"history"},op:{type:"string"},author:{type:"string"},harness:{type:"string"},model:{type:"string"}}},{type:"object",additionalProperties:!1,required:["kind","link","state"],properties:{kind:{const:"links"},link:{enum:["files","tests","docs"]},state:{enum:["present","missing"]}}},{type:"object",additionalProperties:!1,required:["kind","provider","key"],properties:{kind:{const:"provider"},provider:{type:"string",minLength:1},key:{type:"string",minLength:1},parameters:{type:"object"}}},{type:"object",additionalProperties:!1,required:["kind","expression"],properties:{kind:{const:"derived"},expression:{type:"object",minProperties:1}}}]}}},{type:"object",additionalProperties:!1,required:["id","measurement_id","owner_item_id","scope","enforcement","negative_control"],oneOf:[{required:["ceiling"]},{required:["floor"]},{required:["equals"]},{required:["zero"]},{required:["monotone_nondecreasing"]},{required:["monotone_nonincreasing"]},{required:["subset_of"]}],allOf:[{oneOf:[{not:{required:["lifetime"],properties:{lifetime:{const:"retire"}}}},{required:["lifetime","retire_reason"],properties:{lifetime:{const:"retire"},retire_reason:{type:"string",minLength:1}}}]}],properties:{id:{type:"string",minLength:1},measurement_id:{type:"string",minLength:1},owner_item_id:{type:"string",minLength:1},scope:{oneOf:[{type:"object",additionalProperties:!1,required:["kind"],properties:{kind:{enum:["all","active"]}}},{type:"object",additionalProperties:!1,required:["kind","measurement_id"],properties:{kind:{const:"filter"},measurement_id:{type:"string",minLength:1}}}]},ceiling:{type:"number"},floor:{type:"number"},equals:V,zero:{const:!0},monotone_nondecreasing:{type:"number"},monotone_nonincreasing:{type:"number"},subset_of:{type:"array",items:{type:"string"}},lifetime:{enum:["hold","retire"]},retire_reason:{type:"string",minLength:1},enforcement:{enum:["block","warn","observe"]},authorization_decision:{type:"string",minLength:1},negative_control:{type:"object",additionalProperties:!1,required:["cases"],properties:{cases:{type:"array",minItems:2,items:{type:"object",additionalProperties:!1,required:["observed","expected"],properties:{observed:V,expected:{enum:["pass","fail"]}}}}}}}},{type:"object",additionalProperties:!1,required:["id","assertion_ids","triggers"],properties:{id:{type:"string",minLength:1},description:{type:"string"},assertion_ids:{type:"array",minItems:1,items:{type:"string",minLength:1}},triggers:{type:"array",minItems:1,items:{enum:["pre-commit","pre-push","pre-merge","ci","pre-release","post-release","scheduled","on-claim","on-close"]}},provider_policy:{type:"object",additionalProperties:!1,required:["allowed_providers","triggers"],properties:{allowed_providers:{type:"array",items:{type:"string",minLength:1}},triggers:{type:"object",additionalProperties:{type:"object",additionalProperties:!1,required:["max_cost_class","allow_network"],properties:{max_cost_class:{enum:["low","medium","high"]},allow_network:{type:"boolean"}}}}}}}}]};(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]="9a679120-6f16-5588-b4d4-91c90a2fe385")}catch{}})();var y={json:{type:"boolean",default:!0},quiet:{type:"boolean"},profile:{type:"boolean"},noExtensions:{type:"boolean"},noPager:{type:"boolean"},tokenAccounting:{type:"boolean"},outputInclude:{type:"string",minLength:1},outputLimit:{anyOf:[{type:"integer",minimum:1},{const:"unbounded"}]},outputBudget:{type:"integer",minimum:1},outputFormat:{type:"string",enum:["json","toon"]},outputSession:{anyOf:[{type:"string",minLength:1},{type:"object",additionalProperties:!1,required:["version","id","token_budget","spent_tokens","seen_item_ids"],properties:{version:{const:1},id:{type:"string",pattern:"^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$"},token_budget:{type:"integer",minimum:256},spent_tokens:{type:"integer",minimum:0},seen_item_ids:{type:"array",maxItems:P,items:{type:"string",pattern:"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"}}}}]},outputRowContract:{type:"boolean"},path:{type:"string"},pmExecutable:{type:"string"},timeoutMs:{type:"number"},id:{type:"string"},target:{type:"string"},snapshotAction:{type:"string",enum:["create","list","inspect","restore","delete"]},artifact:{type:"string",enum:["item","history","relationship","json"]},basePath:{type:"string"},oursPath:{type:"string"},theirsPath:{type:"string"},outputPath:{type:"string"},itemPath:{type:"string"},prefer:{type:"string",enum:["ours","theirs"]},includeReconciled:{type:"boolean"},lockTtlSeconds:{type:"number"},lockWaitMs:{type:"number"},capability:{type:"string",minLength:1},declarative:{type:"boolean"},output:{type:"string",minLength:1},markdown:{type:"boolean"},init:{type:"boolean"},install:{type:"boolean"},uninstall:{type:"boolean"},explore:{type:"boolean"},manage:{type:"boolean"},describe:{type:"boolean"},doctor:{type:"boolean"},catalog:{type:"boolean"},adopt:{type:"boolean"},adoptAll:{type:"boolean"},activate:{type:"boolean"},deactivate:{type:"boolean"},filterFilesMissing:{type:"boolean"},filterDocsMissing:{type:"boolean"},matchMode:{type:"string",enum:["all","any","phrase"]},minScore:{anyOf:[{type:"number"},{type:"string",pattern:"^\\d+(\\.\\d+)?$"}]},rank:{anyOf:[{type:"number"},{type:"string",pattern:"^-?\\d+$"}]},exemptIsolateType:{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]},saveBaseline:{type:"boolean"},rebuild:{type:"boolean"},github:{type:"string"},ref:{type:"string"},query:{type:"string"},queries:{type:"string"},k:{anyOf:[{type:"number"},{type:"string"}]},failUnder:{anyOf:[{type:"number"},{type:"string"}]},for:{type:"string",minLength:1},keywords:{type:"string"},fields:{type:"string"},sort:{type:"string",enum:["priority","deadline","updated_at","created_at","title","parent"]},prefix:{type:"string"},idPrefix:{type:"string"},workspace:{type:"string"},preset:{type:"string",enum:["minimal","default","strict","custom"]},typePreset:{type:"string",enum:["agile","ops","research"]},defaults:{type:"boolean"},verbose:{type:"boolean"},agentGuidance:{type:"string",enum:["ask","add","skip","status"]},withPackages:{type:"boolean"},mergeFence:{type:"boolean"},scope:{type:"string",enum:["project","global"]},allOver:{type:"number"},minEntries:{type:"number"},closed:{type:"boolean"},allStreams:{type:"boolean"},contractAction:{type:"string"},command:{type:"string"},summary:{type:"boolean"},schemaOnly:{type:"boolean"},flagsOnly:{type:"boolean"},availabilityOnly:{type:"boolean"},runtimeOnly:{type:"boolean"},activeOnly:{type:"boolean"},eagerTags:{type:"boolean"},fullChangedFields:{type:"boolean"},provenance:{type:"boolean"},provenanceSummary:{type:"boolean"},agentInstance:{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]},provenanceFilter:{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]},idOnly:{type:"boolean"},allowMissingParent:{type:"boolean"},allowUnresolvedDeps:{type:"boolean"},allowDuplicate:{type:"boolean"},duplicateOf:{type:"string"},configAction:{type:"string",enum:["get","set","list","export"]},key:{type:"string"},title:{type:"string"},item:{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]},start:{type:"string"},duration:{type:"string"},end:{type:"string"},location:{type:"string"},timezone:{type:"string"},allDay:{type:"boolean"},description:{type:"string"},type:{type:"string"},template:{type:"string"},createMode:{type:"string",enum:["strict","progressive"]},schedulePreset:{type:"string",enum:["lightweight"]},status:{type:"string"},since:{type:"string",format:"date-time"},threshold:{type:"number",minimum:0,maximum:1},filterStatus:{type:"string"},filterType:{type:"string"},filterTag:{type:"string"},filterPriority:{anyOf:[{type:"string"},{type:"number"}]},filterDeadlineBefore:{type:"string"},filterDeadlineAfter:{type:"string"},filterUpdatedAfter:{type:"string"},filterUpdatedBefore:{type:"string"},filterCreatedAfter:{type:"string"},filterCreatedBefore:{type:"string"},filterAssignee:{type:"string"},filterAssigneeFilter:{type:"string",enum:["assigned","unassigned"]},filterParent:{type:"string"},filterSprint:{type:"string"},filterRelease:{type:"string"},closeReason:{type:"string"},completedAt:{type:"string",format:"date-time"},reason:{type:"string"},priority:{anyOf:[{type:"string"},{type:"number"}]},tags:{type:"string"},addTags:{type:"array",items:{type:"string"}},removeTags:{type:"array",items:{type:"string"}},addAc:{type:"array",items:{type:"string"}},removeAc:{type:"array",items:{type:"string"}},body:{type:"string"},deadline:{type:"string"},estimate:{anyOf:[{type:"string"},{type:"number"}]},acceptanceCriteria:{type:"string"},author:{type:"string"},message:{type:"string"},owner:{type:"string"},enforcement:{type:"string"},assignee:{type:"string"},assigneeFilter:{type:"string",enum:["assigned","unassigned"]},parent:{type:"string"},reviewer:{type:"string"},attributedAuthor:{type:"string"},historyEvent:{type:"array",items:{type:"string"}},risk:{type:"string"},confidence:{anyOf:[{type:"string"},{type:"number"}]},sprint:{type:"string"},release:{type:"string"},blockedBy:{type:"string"},blockedReason:{type:"string"},unblockNote:{type:"string"},reporter:{type:"string"},severity:{type:"string"},environment:{type:"string"},reproSteps:{type:"string"},resolution:{type:"string"},expectedResult:{type:"string"},actualResult:{type:"string"},affectedVersion:{type:"string"},fixedVersion:{type:"string"},component:{type:"string"},regression:{anyOf:[{type:"boolean"},{type:"string"},{type:"number"}]},customerImpact:{type:"string"},definitionOfReady:{type:"string"},order:{anyOf:[{type:"string"},{type:"number"}]},goal:{type:"string"},objective:{type:"string"},value:{type:"string"},impact:{type:"string"},outcome:{type:"string"},whyNow:{type:"string"},mode:{type:"string",enum:["keyword","semantic","hybrid"]},semanticWeight:{anyOf:[{type:"string"},{type:"number"}]},op:{type:"string"},compact:{type:"boolean"},raw:{type:"boolean"},brief:{type:"boolean"},full:{type:"boolean"},includeEmpty:{type:"boolean"},view:{type:"string",enum:["agenda","day","week","month"]},date:{type:"string"},from:{type:"string"},before:{type:"string"},at:{type:"string"},to:{type:"string"},migrationId:{type:"string"},fieldTypeScope:{type:"string"},past:{type:"boolean"},fullPeriod:{type:"boolean"},include:{type:"string"},recurrenceLookaheadDays:{anyOf:[{type:"string"},{type:"number"}]},recurrenceLookbackDays:{anyOf:[{type:"string"},{type:"number"}]},occurrenceLimit:{anyOf:[{type:"string"},{type:"number"}]},includeLinked:{type:"boolean"},semantic:{type:"boolean"},hybrid:{type:"boolean"},titleExact:{type:"boolean"},phraseExact:{type:"boolean"},highlight:{type:"boolean"},includeBody:{type:"boolean"},noTruncate:{type:"boolean"},strictRead:{type:"boolean"},tag:{type:"string"},deadlineBefore:{type:"string"},deadlineAfter:{type:"string"},today:{type:"boolean"},recent:{type:"boolean"},updatedAfter:{type:"string"},updatedBefore:{type:"string"},createdAfter:{type:"string"},createdBefore:{type:"string"},filterAcMissing:{type:"boolean"},filterEstimatesMissing:{type:"boolean"},filterResolutionMissing:{type:"boolean"},filterMetadataMissing:{type:"boolean"},filterReviewerMissing:{type:"boolean"},filterRiskMissing:{type:"boolean"},filterConfidenceMissing:{type:"boolean"},filterSprintMissing:{type:"boolean"},filterReleaseMissing:{type:"boolean"},hasNotes:{type:"boolean"},noNotes:{type:"boolean"},hasLearnings:{type:"boolean"},noLearnings:{type:"boolean"},hasFiles:{type:"boolean"},noFiles:{type:"boolean"},hasDocs:{type:"boolean"},noDocs:{type:"boolean"},hasTests:{type:"boolean"},noTests:{type:"boolean"},hasComments:{type:"boolean"},noComments:{type:"boolean"},hasDeps:{type:"boolean"},noDeps:{type:"boolean"},hasBody:{type:"boolean"},emptyBody:{type:"boolean"},hasLinkedCommand:{type:"boolean"},noLinkedCommand:{type:"boolean"},filterHasNotes:{type:"boolean"},filterNoNotes:{type:"boolean"},filterHasLearnings:{type:"boolean"},filterNoLearnings:{type:"boolean"},filterHasFiles:{type:"boolean"},filterNoFiles:{type:"boolean"},filterHasDocs:{type:"boolean"},filterNoDocs:{type:"boolean"},filterHasTests:{type:"boolean"},filterNoTests:{type:"boolean"},filterHasComments:{type:"boolean"},filterNoComments:{type:"boolean"},filterHasDeps:{type:"boolean"},filterNoDeps:{type:"boolean"},filterHasBody:{type:"boolean"},filterEmptyBody:{type:"boolean"},filterHasLinkedCommand:{type:"boolean"},filterNoLinkedCommand:{type:"boolean"},ids:{type:"string"},limit:{anyOf:[{type:"string"},{type:"number"}]},blockedLimit:{anyOf:[{type:"string"},{type:"number"}]},readyOnly:{type:"boolean"},offset:{anyOf:[{type:"string"},{type:"number"}]},progress:{type:"boolean"},background:{type:"boolean"},runId:{type:"string"},stream:{anyOf:[{type:"boolean"},{type:"string",enum:["stdout","stderr","both","rows","ndjson","jsonl"]}]},tail:{anyOf:[{type:"string"},{type:"number"}]},addJson:{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]},eventType:{type:"string"},includeMeta:{type:"boolean"},allActionable:{type:"boolean"},verboseAuthorEvents:{type:"boolean"},match:{type:"string"},onlyIndex:{anyOf:[{type:"string"},{type:"number"}]},removeIndex:{type:"array",items:{anyOf:[{type:"string"},{type:"number"}]}},onlyLast:{type:"boolean"},envSet:{type:"array",items:{type:"string"}},envClear:{type:"array",items:{type:"string"}},sharedHostSafe:{type:"boolean"},detail:{type:"string",enum:["summary","deep"]},trace:{type:"boolean"},reload:{type:"boolean"},watch:{type:"boolean"},runtimeProbe:{type:"boolean"},fixManagedState:{type:"boolean"},isolated:{type:"boolean"},ignoreGlobal:{type:"boolean"},pmContext:{type:"string",enum:["schema","tracker","auto"]},overrideLinkedPmContext:{type:"boolean"},failOnContextMismatch:{type:"boolean"},failOnSkipped:{type:"boolean"},failOnEmptyTestRun:{type:"boolean"},requireAssertionsForPm:{type:"boolean"},checkContext:{type:"boolean"},autoPmContext:{type:"boolean"},measure:{type:"array",items:{type:"string"}},metricBelow:{type:"string"},metricDiff:{type:"string"},diff:{type:"boolean"},storage:{type:"boolean"},metadataCoverage:{type:"boolean"},fieldUtilization:{type:"boolean"},byAssignee:{type:"boolean"},byTag:{type:"boolean"},byPriority:{type:"boolean"},tagPrefix:{type:"string"},measurements:{type:"boolean"},metric:{type:"string"},measurementLimit:{type:"integer",minimum:0,maximum:1e3},observe:{type:"array",items:{type:"string"}},improvementDirection:{type:"string",enum:["higher","lower","target"]},measurementSource:{type:"string"},measurementItem:{type:"string"},measurementRevision:{type:"string"},provenanceCoverage:{type:"boolean"},fleetAttribution:{type:"boolean"},eventLimit:{type:"integer",minimum:1,maximum:1e5},minimumSample:{type:"integer",minimum:1,maximum:1e4},verify:{type:"boolean"},literal:{type:"array",items:{type:"string"}},regex:{type:"array",items:{type:"string"}},replacement:{type:"string"},timeout:{anyOf:[{type:"string"},{type:"number"}]},validateClose:{type:"string",enum:["off","warn","strict"]},checkMetadata:{type:"boolean"},metadataProfile:{type:"string",enum:["core","strict","custom"]},checkResolution:{type:"boolean"},checkLifecycle:{type:"boolean"},checkStaleBlockers:{type:"boolean"},dependencyCycleSeverity:{type:"string",enum:["off","warn","error"]},parentCycleSeverity:{type:"string",enum:["off","warn","error"]},checkFiles:{type:"boolean"},checkStorageIntegrity:{type:"boolean"},strictDirectories:{type:"boolean"},requireMergeDrivers:{type:"boolean"},checkOnly:{type:"boolean"},checkTelemetry:{type:"boolean"},noRefresh:{type:"boolean"},refreshVectors:{type:"boolean"},verboseStaleItems:{type:"boolean"},skipVectors:{type:"boolean"},skipIntegrity:{type:"boolean"},skipDrift:{type:"boolean"},verboseDiagnostics:{type:"boolean"},allAffectedIds:{type:"boolean"},scanMode:{type:"string",enum:["default","tracked-all","tracked-all-strict"]},includePmInternals:{type:"boolean"},verboseFileLists:{type:"boolean"},strictExit:{type:"boolean"},failOnWarn:{type:"boolean"},fixHints:{type:"boolean"},autoFix:{type:"boolean"},fixScope:{type:"array",items:{type:"string",enum:["metadata","resolution","estimates","lifecycle"]}},pruneMissing:{type:"boolean"},checkHistoryDrift:{type:"boolean"},checkCommandReferences:{type:"boolean"},counts:{type:"boolean"},edit:{type:"integer",minimum:1},delete:{type:"integer",minimum:1},dryRun:{type:"boolean"},all:{type:"boolean"},clear:{type:"boolean"},cliOnly:{type:"boolean"},packagesOnly:{type:"boolean"},repair:{type:"boolean"},packageName:{type:"string"},rollback:{type:"string"},noCheckpoint:{type:"boolean"},force:{type:"boolean"},ifAvailable:{type:"boolean"},next:{type:"boolean"},maxAttempts:{anyOf:[{type:"integer",minimum:1,maximum:100},{type:"string",pattern:"^(?:[1-9]|[1-9][0-9]|100)$"}]},includeDecisions:{type:"boolean"},explainRanking:{type:"boolean"},noTags:{type:"boolean"},noExtensionHealth:{type:"boolean"},run:{type:"boolean"},count:{type:"boolean"},sum:{type:"string"},avg:{type:"string"},tree:{type:"boolean"},treeId:{type:"string",minLength:1},definition:{type:"object"},trigger:{type:"string",enum:["pre-commit","pre-push","pre-merge","ci","pre-release","post-release","scheduled","on-claim","on-close"]},gate:{type:"string",minLength:1},treeDepth:{anyOf:[{type:"string"},{type:"number"}]},includeUnparented:{type:"boolean"},gcScope:{type:"array",items:{type:"string",enum:["index","embeddings","runtime","locks"]}},maxDepth:{anyOf:[{type:"string"},{type:"number"}]},nodeLimit:{anyOf:[{type:"string"},{type:"integer",minimum:1}]},edgeLimit:{anyOf:[{type:"string"},{type:"integer",minimum:1}]},tokenBudget:{anyOf:[{type:"string"},{type:"integer",minimum:1}]},cursor:{type:"string"},direction:{type:"string",enum:["outgoing","incoming","both"]},kind:{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]},after:{type:"string"},maxPaths:{anyOf:[{type:"string"},{type:"integer",minimum:1}]},sample:{anyOf:[{type:"string"},{type:"integer",minimum:1}]},exemptIsolate:{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]},collapse:{type:"string",enum:["none","repeated"]},shell:{type:"string",enum:["bash","zsh","fish"]},stdin:{type:"boolean"},file:{type:"string"},preserveSourceIds:{type:"boolean"},folder:{type:"string"},subcommand:{type:"string"},name:{type:"string"},defaultStatus:{type:"string"},alias:{type:"array",items:{type:"string"}},role:{type:"array",items:{type:"string"}},fieldType:{type:"string",enum:["string","number","boolean","string_array"]},commands:{type:"array",items:{type:"string"}},cliFlag:{type:"string"},required:{type:"boolean"},requiredOnCreate:{type:"boolean"},allowUnset:{type:"boolean"},requiredTypes:{type:"array",items:{type:"string"}},infer:{type:"boolean"},minCount:{type:"number"},text:{type:"string"},add:{type:"array",items:{type:"string"}},addGlob:{type:"array",items:{type:"string"}},remove:{type:"array",items:{type:"string"}},migrate:{type:"array",items:{type:"string"}},discover:{type:"boolean"},apply:{type:"boolean"},discoveryNote:{type:"string"},lookupPath:{type:"array",items:{type:"string"}},explain:{type:"boolean"},lines:{type:"string",pattern:"^[1-9]\\d*:[1-9]\\d*$"},decisionDepth:{type:"integer",minimum:1,maximum:32},addNote:{type:"string"},list:{type:"boolean"},appendStable:{type:"boolean"},validatePaths:{type:"boolean"},dep:{type:"array",items:{type:"string"}},depRemove:{type:"array",items:{type:"string"}},replaceDeps:{type:"boolean"},replaceTests:{type:"boolean"},replaceFiles:{type:"boolean"},replaceDocs:{type:"boolean"},comment:{type:"array",items:{type:"string"}},note:{type:"array",items:{type:"string"}},learning:{type:"array",items:{type:"string"}},linkedFile:{type:"array",items:{type:"string"}},linkedTest:{type:"array",items:{type:"string"}},doc:{type:"array",items:{type:"string"}},reminder:{type:"array",items:{type:"string"}},event:{type:"array",items:{type:"string"}},typeOption:{type:"array",items:{type:"string"}},field:{type:"array",items:{type:"string"}},unset:{type:"array",items:{type:"string"}},clearDeps:{type:"boolean"},clearComments:{type:"boolean"},clearNotes:{type:"boolean"},clearLearnings:{type:"boolean"},clearFiles:{type:"boolean"},clearTests:{type:"boolean"},clearDocs:{type:"boolean"},clearReminders:{type:"boolean"},clearEvents:{type:"boolean"},clearTypeOptions:{type:"boolean"},criterion:{type:"array",items:{type:"string"}},clearCriteria:{type:"boolean"},groupBy:{type:"string"},completion:{type:"boolean"},format:{type:"string"},unbounded:{type:"boolean"},depth:{type:"string",enum:["brief","standard","deep","full"]},section:{type:"array",items:{type:"string",enum:["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]}},activityLimit:{anyOf:[{type:"string"},{type:"number"}]},staleThreshold:{type:"string"},policy:{type:"string"}},J={assurance:{definition:$,kind:{type:"string",enum:["measurement","assertion","gate"]},subcommand:{type:"string",enum:["list","show","put","remove","run","verdicts","presets","apply","derive","promote"]},preset:{type:"string",enum:["software-delivery","research","agent-evaluation","operations"]},enforcement:{type:"string",enum:["warn","block"]},limit:{type:"integer",minimum:1,maximum:1e3}},activity:{harness:{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]}},events:{since:{type:"string",minLength:1},type:{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]},author:{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]},item:{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]},limit:{type:"integer",minimum:0,maximum:1e3},harness:{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]}},history:{harness:{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]}},remind:{at:{type:"string",minLength:1}}},he=["create","show","add-step","update-step","complete-step","block-step","reorder-step","remove-step","link","unlink","decision","discovery","validation","resume","approve","materialize"],O={subcommand:{type:"string",enum:[...he]},stepRef:{type:"string"},reorderTo:{anyOf:[{type:"string"},{type:"number"}]},scope:{type:"string"},harness:{type:"string",enum:[...R]},mode:{type:"string",enum:[..._]},resumeContext:{type:"string"},related:{type:"string"},blocks:{type:"string"},claim:{type:"boolean"},fromSearch:{type:"string"},stepTitle:{type:"string"},step:{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]},stepBody:{type:"string"},stepOwner:{type:"string"},stepStatus:{type:"string",enum:[...A]},stepEvidence:{type:"string"},stepBlockedReason:{type:"string"},stepReplacement:{type:"string"},dependsOn:{type:"string"},link:{type:"string"},linkKind:{type:"string",enum:[...E]},linkNote:{type:"string"},promoteToItemDep:{type:"boolean"},allowMultipleActive:{type:"boolean"},file:{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]},test:{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]},doc:{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]},decisionText:{type:"string"},decision:{type:"string"},decisionRationale:{type:"string"},decisionEvidence:{type:"string"},discoveryText:{type:"string"},discovery:{type:"string"},validationText:{type:"string"},validation:{type:"string"},validationCommand:{type:"string"},validationExpected:{type:"string"},steps:{type:"array",items:{type:"string"}},materializeType:{type:"string"},materializeParent:{type:"string"},materializeTags:{type:"string"},field:{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}]}},k={subcommand:{description:"Plan workflow operation to run.",examples:["create","show","add-step","approve"]},stepRef:{description:"Plan step id or order for step lifecycle subcommands.",examples:["plan-step-001","1"]},reorderTo:{description:"New integer order for reorder-step.",examples:[1,"2"]},scope:{description:"Short free-text scope statement describing what the Plan covers.",examples:["Release readiness audit","Search package migration"]},mode:{description:"Plan lifecycle mode.",examples:["draft","research","approved"]},step:{description:"Ordered initial step titles for create (string or array, never comma-split; stepTitle, when also set, becomes the first step). For step subcommands a single value aliases stepTitle.",examples:[["Read the code","Write the fix","Run the tests"]]},file:{description:"File link to attach while creating or materializing a Plan.",examples:["path=src/cli.ts,note=implementation surface"]},test:{description:"Test command link to attach while creating or materializing a Plan.",examples:["command=pnpm build,timeout_seconds=300"]},doc:{description:"Documentation link to attach while creating or materializing a Plan.",examples:["path=docs/SDK.md,note=public API reference"]}},m={action:{description:"Tool action to execute."},pmExecutable:{description:"Override the pm executable used by actions that invoke or verify an external CLI process.",examples:["pm","node dist/cli.js"]},force:{description:"Allow the selected action to override its supported ownership, terminal-state, or destructive-operation guard."},limit:{description:"Maximum number of rows returned by the selected action.",examples:[10,"25"]},text:{description:"Text payload used by append, comment, note, or learning mutations."},path:{description:"Optional PM data root override for this invocation.",examples:[".agents/pm"]},scope:{description:"Scope selector for commands that operate on project or global state. Linked files, docs, and tests default to project scope when omitted.",examples:["project","global"]},detail:{description:"Detail mode for commands that support concise and deep diagnostics.",examples:["summary","deep"]},trace:{description:"When true for extension-doctor, include actionable registration traces in deep diagnostics."},reload:{description:"When true for extension action payloads, trigger cache-busted extension module reload."},watch:{description:"When true for extension-reload/extension action payloads, enable watch mode semantics."},runtimeProbe:{description:"When true for extension-manage, run a doctor-like runtime activation probe for parity fields."},fixManagedState:{description:"When true for extension-manage/extension-doctor, adopt unmanaged extensions before diagnostics/update checks."},isolated:{description:"When true for extension-doctor/package-doctor, ignore global registrations for hermetic project diagnostics."},ignoreGlobal:{description:"Alias for isolated on extension-doctor/package-doctor action payloads."},target:{description:"Positional target argument for the selected action (ID, source, package source, or extension name).",examples:["pm-a1b2",".agents/pm/extensions/sample","sample-extension"]},capability:{description:"Starter capability selected by extension-init or package-init scaffolding.",examples:["commands","hooks","search","schema"]},declarative:{description:"Generate the package composeExtension declarative blueprint starter."},output:{description:"File path for commands that write generated output, such as package/extension describe Markdown references.",examples:["docs/pm-package-reference.md"]},markdown:{description:"Render the package or extension description as Markdown instead of structured output.",examples:[!0]},github:{description:"GitHub shorthand owner/repo[/path] source for package/extension install actions.",examples:["org/repo/extensions/sample"]},ref:{description:"Git ref/branch/tag used when installing from GitHub shorthand/URL sources.",examples:["main","v1.0.0"]},cliOnly:{description:"Restrict upgrade to the pm CLI/SDK npm package."},packagesOnly:{description:"Restrict upgrade to managed installable pm packages."},repair:{description:"Force npm global reinstall semantics when upgrading the pm CLI/SDK."},tag:{description:"npm version or dist-tag used for CLI and registry package upgrades.",examples:["latest","next","2026.5.11"]},today:{description:"When true for list actions, include only items updated since local midnight today."},recent:{description:"When true for list actions, include only items updated in the last seven days."},packageName:{description:"Override the pm CLI package name for self-upgrade automation and tests.",examples:["@unbrained/pm-cli"]},json:{description:"Emit machine-readable JSON output."},quiet:{description:"Suppress stdout payload output."},noExtensions:{description:"Disable extension loading for this invocation."},noPager:{description:"Disable pager integration for help and long output."},tokenAccounting:{description:"Request a bounded transport-level receipt for output emitted by a compatible CLI or MCP host."},outputInclude:{description:"Comma-separated fields or sections retained by any built-in read action.",examples:["id,title,status","summary,counts"]},outputLimit:{description:"Universal read row ceiling, or unbounded to disable the shared ceiling.",examples:[10,"unbounded"]},outputBudget:{description:"Universal estimated-token ceiling for a read result.",examples:[600,1200]},outputFormat:{description:"Universal read-result encoding selector.",examples:["toon","json"]},outputSession:{description:"Caller-carried JSON session state that enforces a token ceiling across read calls and replaces repeated item facts with resolvable context references.",examples:[{version:1,id:"orientation",token_budget:4e3,spent_tokens:0,seen_item_ids:[]}]},outputRowContract:{description:"Include the row selector and TOON row-encoding contract on a read result."},profile:{description:"Emit deterministic timing diagnostics to stderr."},timeoutMs:{description:"Tool execution timeout in milliseconds.",examples:[12e4]},id:{description:"Item identifier for read or mutation actions.",examples:["pm-a1b2"]},treeId:{description:"Commit, tree, snapshot, or immutable workspace identity judged by an assurance gate.",examples:["0123456789abcdef","release-candidate-3"]},definition:{description:"Structured measurement, assertion, or gate declaration used by assurance put."},trigger:{description:"Lifecycle trigger used to evaluate an assurance gate.",examples:["ci","pre-release"]},gate:{description:"Stable assurance gate id used to filter durable verdict history.",examples:["release-readiness"]},owner:{description:"pm item that owns preset or observation-derived assurance assertions.",examples:["pm-a1b2"]},enforcement:{description:"Explicit next assurance enforcement level.",examples:["warn","block"]},runId:{description:"Background test run identifier.",examples:["tr-kq9x3f-93acde"]},title:{description:"Item title text."},description:{description:"Item description text."},type:{description:"Item type name from the active runtime type registry.",examples:["Task","Feature"]},subcommand:{description:"Subcommand selector for schema, profile, telemetry, and graph actions."},name:{description:"Custom definition name, schema migration source name, or profile name.",examples:["Spike","review","component"]},defaultStatus:{description:"Default status hint recorded for a custom item type.",examples:["open"]},alias:{description:"Aliases for the custom item type or status (repeatable).",examples:[["spike","research"]]},role:{description:"Lifecycle roles for a custom status (schema add-status): draft, active, blocked, terminal, terminal_done, terminal_canceled, default_open, default_close, default_cancel.",examples:[["active"],["terminal","terminal_done"]]},fieldType:{description:"Value type for a custom field (schema add-field): string, number, boolean, or string_array.",examples:["string","number","string_array"]},fieldTypeScope:{description:"Optional item type restricting which records participate in schema rename-field.",examples:["Issue","Feature"]},migrationId:{description:"Optional stable idempotency override used to persist and resume a schema migration plan; omitted values are derived from the workspace and normalized request.",examples:["severity-to-impact-v2"]},commands:{description:"Commands a custom field is wired onto (schema add-field): create, update, update_many, list, search, calendar, context.",examples:[["create","update"],["create","update","list"]]},cliFlag:{description:"Override the auto-derived CLI flag for a custom field (schema add-field).",examples:["--owner"]},required:{description:"Mark a custom field as always required (schema add-field)."},requiredOnCreate:{description:"Mark a custom field as required at create time (schema add-field)."},allowUnset:{description:"Whether a custom field may be cleared via --unset (schema add-field); defaults to true."},allowDuplicate:{description:"Explicitly proceed when strict similarity governance finds likely duplicate items."},allowUnresolvedDeps:{description:"Permit unresolved local dependency targets while returning dependency_target_unresolved warning receipts. Cross-workspace references should use source_kind=external instead.",examples:[!0]},requiredTypes:{description:"Restrict a custom field's requirement to specific item types (schema add-field).",examples:[["Bug"],["Story","Spike"]]},infer:{description:"Infer custom item types from title-prefix conventions (schema add-type); previews unless apply is true."},minCount:{description:"Minimum number of items sharing a title prefix for schema add-type inference (default 10).",examples:[10,25]},preset:{description:"Governance preset for initialization flows.",examples:["minimal","default","strict"]},idPrefix:{description:"Tracker item identifier prefix used by initialization; overrides the positional compatibility prefix.",examples:["pm","work"]},workspace:{description:"Workspace directory where initialization resolves or creates the tracker.",examples:[".","packages/app"]},typePreset:{description:"Domain item-type preset registered during initialization.",examples:["agile","ops","research"]},defaults:{description:"Use non-interactive setup defaults during initialization."},verbose:{description:"Include the full resolved settings tree in init output."},agentGuidance:{description:"Control AGENTS.md/CLAUDE.md guidance behavior during init: ask, add, skip, or status.",examples:["ask","add","skip","status"]},withPackages:{description:"Install all bundled first-party pm packages during initialization."},mergeFence:{description:"Install the repository merge-driver fence for a fresh Git-backed tracker; set false to opt out."},createMode:{description:"Create required-option policy mode.",examples:["strict","progressive"]},schedulePreset:{description:"Schedule-centric create preset for Reminder, Meeting, and Event types.",examples:["lightweight"]},status:{description:"Item status value. Statuses are project-configurable via .agents/pm/settings.json (schema block); the built-in defaults are draft, open, in_progress, blocked, closed, canceled. Custom statuses defined for the project are accepted \u2014 discover the active set with the pm_contracts tool (workspace.statuses) or `pm contracts`. Unknown statuses are rejected at runtime with a did-you-mean hint rather than blocked by a fixed schema enum.",examples:["open","in_progress"]},since:{description:"Inclusive ISO 8601 creation timestamp lower bound for duplicate discovery.",examples:["2026-01-01T00:00:00.000Z"]},threshold:{description:"Minimum duplicate similarity score from zero through one.",examples:[.85]},priority:{description:"Priority value in range 0..4.",examples:[0,1,"2"]},order:{description:"Planning order/rank value for create/update, or sort direction (asc|desc) for list-family sorting.",examples:[0,1,"2","asc","desc"]},sort:{description:"List-family sort field selector.",examples:["priority","deadline","updated_at","created_at","title","parent"]},tags:{description:"Comma-delimited tag list.",examples:["pm-cli,agent-ux"]},addTags:{description:"Tags to add to the existing list without replacing it. Each entry may be CSV or a JSON array.",examples:[["agent-ux"],["fix","security"]]},addAc:{description:"Acceptance criteria appended individually without replacing the existing list (one criterion per entry).",examples:[["error path covered by a regression test"]]},removeAc:{description:"Acceptance criteria removed individually by exact text match; the mutation fails atomically if any selector is unmatched (one criterion per entry).",examples:[["superseded manual QA step"]]},removeTags:{description:"Tags to remove from the existing list. Each entry may be CSV or a JSON array.",examples:[["stale"],["legacy","wontfix"]]},deadline:{description:"ISO/date timestamp or relative offset (+6h/+1d/+2w/+6m).",examples:["2026-04-01T00:00:00.000Z","+1d"]},reminder:{description:"Repeatable reminder seed entries at=<iso|relative>,text=<text>.",examples:[["at=+2d,text=Review PR"]]},event:{description:"Repeatable event seed entries start=<iso|relative> with end=<iso|relative> or duration=<relative|30min|PT30M>. Bare `m` remains months for backward compatibility.",examples:[["start=2026-07-01T10:00:00Z,duration=2h,title=planning"],["start=2026-07-01T10:00:00Z,duration=30min,title=standup"],["start=2026-07-01T10:00:00Z,duration=PT30M,title=window"]]},historyEvent:{description:"Unknown-author history target in <item-id>:<one-based-line> form.",examples:[["pm-example:4","pm-example:5"]]},estimate:{description:"Estimated effort in minutes.",examples:[60,"120"]},acceptanceCriteria:{description:"Complete acceptance-criteria text supplied while creating or replacing an item field."},author:{description:"Intentional mutation-author override. Agent harness identity is automatic when omitted."},attributedAuthor:{description:"Principal attributed to the immutable unknown-author history events after review.",examples:["reviewed-principal"]},message:{description:"History message for mutation audit trail."},assignee:{description:"Assignee identity."},assigneeFilter:{description:"Assignee presence selector for list, calendar, and context filters.",examples:["assigned","unassigned"]},parent:{description:"Parent item ID filter for hierarchical list queries.",examples:["pm-epic01"]},blockedLimit:{description:"Cap blocked rows returned by the next action (defaults to the ready --limit).",examples:["3"]},readyOnly:{description:"When true, the next action omits the blocked companion list."},unset:{description:"Repeatable list of item-metadata fields to clear explicitly during create/update mutations.",examples:[["deadline","assignee"],["close-reason"]]},clearDeps:{description:"When true, clear linked dependencies."},replaceDeps:{description:"When true for update, atomically replace dependencies with the supplied --dep values."},replaceTests:{description:"When true for update, atomically replace linked tests with the supplied --test values."},replaceFiles:{description:"When true for update, atomically replace linked files with the supplied --file values."},replaceDocs:{description:"When true for update, atomically replace linked docs with the supplied --doc values."},lookupPath:{description:"One or more source paths whose referencing pm items should be returned by files lookup.",examples:[["src/sdk/files.ts"],["README.md","docs/SDK.md"]]},explain:{description:"Include ranked linked-file, rationale, and governing-decision evidence for a files lookup."},lines:{description:"Inclusive start:end source-line range for Git contribution attribution; requires one lookup path.",examples:["10:24"]},decisionDepth:{description:"Maximum typed relationship depth searched for a governing Decision during files lookup.",examples:[8]},clearComments:{description:"When true, clear item comments."},clearNotes:{description:"When true, clear item notes."},clearLearnings:{description:"When true, clear item learnings."},clearFiles:{description:"When true, clear linked files."},clearTests:{description:"When true, clear linked tests."},clearDocs:{description:"When true, clear linked docs."},clearReminders:{description:"When true, clear reminders."},clearEvents:{description:"When true, clear events."},clearTypeOptions:{description:"When true, clear type option metadata."},clearCriteria:{description:"When true for config set criteria-list keys (definition-of-done, metadata-required-fields, lifecycle pattern lists), clear the criteria list."},mode:{description:"Mode selector for search and reindex (keyword|semantic|hybrid).",examples:["keyword","hybrid"]},semanticWeight:{description:"Per-query hybrid semantic weight override in [0,1] for search action; invalid values fall back to settings.",examples:[.2,"0.7"]},op:{description:"History operation filter for activity output.",examples:["create","update","close","update_ownership_bypass"]},fullPeriod:{description:"For day/week/month calendar views, include the full anchored period instead of clipping the start to now."},progress:{description:"Emit progress diagnostics to stderr for long-running operations."},background:{description:"Run linked tests in managed background mode."},addJson:{description:"JSON input: one structured context event for notes, or repeatable linked-test entries for test.",examples:[['{"command":"node scripts/run-tests.mjs test -- tests/unit/output.spec.ts","timeout_seconds":240}']]},eventType:{description:"For notes action, return structured context events whose top-level type matches this value."},includeMeta:{description:"Include structured-event counts for notes reads; filtered reads also include total, returned, limit, and has-more metadata."},allActionable:{description:"For history-author-acknowledge, select every currently actionable undispositioned event."},match:{description:"Run only linked tests whose command or path contains this case-insensitive substring.",examples:["output.spec.ts","coverage"]},onlyIndex:{description:"Run only the 1-based linked-test index from pm test <id> --list order.",examples:[1,"2"]},removeIndex:{description:"Remove linked tests by their 1-based positions from pm test <id> --list order; repeatable and lossless for commands containing commas or equals signs.",examples:[[1],["2","4"]]},onlyLast:{description:"Run only the most recently added linked-test entry."},envSet:{description:"Repeatable runtime environment KEY=VALUE overrides for linked-test execution.",examples:[["PORT=0","PLAYWRIGHT_HTML_OPEN=never"]]},envClear:{description:"Repeatable runtime environment variable names to clear before linked-test execution.",examples:[["PLAYWRIGHT_BASE_URL"]]},sharedHostSafe:{description:"Apply additive shared-host-safe runtime defaults during linked-test execution."},pmContext:{description:"PM linked-test context mode (schema keeps isolated tracker data; tracker seeds source tracker data; auto uses tracker for PM tracker-read linked commands).",examples:["schema","tracker","auto"]},overrideLinkedPmContext:{description:"Force run-level --pm-context to override per-linked-test pm_context_mode metadata for all linked-test entries."},failOnContextMismatch:{description:"Fail linked PM command runs when source and sandbox tracker item counts differ."},failOnSkipped:{description:"Treat skipped linked tests as dependency-failed policy violations."},failOnEmptyTestRun:{description:"Treat successful linked-test commands that report zero executed tests as failures."},requireAssertionsForPm:{description:"Require assertion metadata for linked PM command test entries during run execution."},checkContext:{description:"Run linked PM command context preflight diagnostics before command execution."},autoPmContext:{description:"Auto-remediate PM tracker-read linked commands by routing those entries through tracker context regardless of linked-test pm_context_mode overrides."},measure:{description:"Repeatable numeric run evidence in name=value[,unit=...][,threshold=...] form.",examples:[["coverage=100,unit=percent,threshold=100"]]},metricBelow:{description:"Return recorded evidence below a name=value threshold.",examples:["coverage=100"]},metricDiff:{description:"Compare the latest and previous values for one metric.",examples:["coverage"]},dryRun:{description:"Preview command effects without mutating storage artifacts."},all:{description:"For history-repair action: scan every stream for drift and repair each drifted stream in one audited pass (mutually exclusive with id)."},clear:{description:"For focus action: clear the session focused item instead of setting it (mutually exclusive with id)."},gcScope:{description:"Repeatable gc scope selector values (index, embeddings, runtime, locks, checkpoints, transactions).",examples:[["index","embeddings"],["runtime"],["locks"],["checkpoints"]]},storage:{description:"For stats action: include aggregate history-stream storage metrics (total streams/lines/bytes, largest + deepest streams, oldest/newest entries) for compaction and storage planning."},fieldUtilization:{description:"For stats action: include a field_utilization block reporting present/total/percent for content fields (notes, learnings, files, docs, tests, comments, deps, body, linked_command) across all items so under-documented dimensions are visible at a glance."},measurements:{description:"For stats action: include the audited append-only improvement ledger and baseline-to-latest trends."},metric:{description:"Exact improvement metric name used to filter ledger reads.",examples:["quality.coverage.lines"]},measurementLimit:{description:"Maximum newest improvement observations returned by stats.",examples:[50]},observe:{description:"Repeatable audited observation in name=value[,unit=...][,threshold=...] form.",examples:[["quality.coverage.lines=100,unit=percent,threshold=100"]]},improvementDirection:{description:"Improvement direction for newly recorded observations.",examples:["higher","lower","target"]},measurementSource:{description:"Producing gate or instrument for a new observation.",examples:["pnpm coverage"]},measurementItem:{description:"Tracked item that owns an improvement observation.",examples:["pm-123abc"]},measurementRevision:{description:"Explicit source revision for a new observation.",examples:["0123456789abcdef"]},provenanceCoverage:{description:"For stats action: compare configured provenance descriptors with bounded immutable-history observations."},fleetAttribution:{description:"For stats action: derive observational throughput, rework, and defect-escape rates by harness, model, and author source."},eventLimit:{description:"Maximum immutable history events consumed by an analytics projection.",examples:[1e4]},minimumSample:{description:"Minimum denominator before analytics rates are reported.",examples:[5]},offset:{description:"Number of matching rows to skip before limit is applied.",examples:[0,50,"100"]},provenance:{description:"Return patch-free immutable author, harness, instance, and extensible provenance rows."},provenanceSummary:{description:"Include bounded observed, unavailable, legacy-missing, and unresolved-author counts."},agentInstance:{description:"Privacy-safe agent invocation fingerprint filter, supplied once or as a list.",examples:["a1b2c3d4",["a1b2c3d4","e5f6g7h8"]]},provenanceFilter:{description:"Exact extensible provenance predicate in dimension=value form, supplied once or as a list.",examples:["model=gpt-5.6-sol",["effort=xhigh","role=reviewer"]]},before:{description:"For history-compact, compact entries strictly before this boundary (version number or ISO timestamp). Single-id mode only.",examples:["5","2026-06-01T00:00:00.000Z"]},at:{description:"Read-only historical projection boundary as an item version or ISO timestamp.",examples:["3","2026-07-01T12:00:00.000Z"]},allOver:{description:"For history-compact bulk mode, compact every stream with more than N entries. When history.compact_policy is enabled and this is omitted, the policy's max_entries is used.",examples:[200,"500"]},minEntries:{description:"For history-compact bulk mode, skip streams with at most N entries as already-compact (default 3).",examples:[3,"10"]},closed:{description:"For history-compact bulk mode, compact only closed (terminal) items' history streams."},allStreams:{description:"For history-compact bulk mode, compact every history stream regardless of lifecycle state."},literal:{description:"Repeatable literal matcher used by history-redact to scrub exact string values.",examples:["[redacted_path_prefix]/private/path"]},regex:{description:"Repeatable regex matcher used by history-redact. Accepts either /pattern/flags or a raw pattern (global mode is auto-enabled).",examples:["/192\\\\.168\\\\.[0-9.]+/g","token=[A-Za-z0-9_-]+"]},replacement:{description:'Replacement text used by history-redact (defaults to "[redacted]").',examples:["[scrubbed_path]"]},validateClose:{description:'Close-time metadata validation mode ("off", "warn", or "strict").',examples:["off","warn","strict"]},checkMetadata:{description:"Run metadata completeness checks."},metadataProfile:{description:"Select metadata validation profile for --check-metadata.",examples:["core","strict","custom"]},checkResolution:{description:"Run closed-item resolution metadata checks."},checkLifecycle:{description:"Run active-item lifecycle governance drift checks."},checkStaleBlockers:{description:"Include stale blocker-pattern diagnostics in lifecycle checks."},dependencyCycleSeverity:{description:"Set dependency-cycle warning policy for lifecycle checks.",examples:["off","warn","error"]},parentCycleSeverity:{description:"Set parent-cycle warning policy for lifecycle checks.",examples:["off","warn","error"]},checkFiles:{description:"Run linked-file and orphaned-file checks."},checkStorageIntegrity:{description:"Run deep item, history, index, and vector storage integrity checks."},strictDirectories:{description:"Treat optional item-type directories as required health failures."},requireMergeDrivers:{description:"Treat never-installed clone-local semantic merge drivers as required health failures."},checkOnly:{description:"For health action, run read-only diagnostics without refreshing vectors."},checkTelemetry:{description:"For health action, probe telemetry endpoint health and include network diagnostics."},noRefresh:{description:"For health action, skip vector refresh while still running checks."},refreshVectors:{description:"For health action, explicitly refresh stale vectors."},verboseStaleItems:{description:"For health action, include full stale-item arrays in vectorization details."},verboseAuthorEvents:{description:"For health action, include every actionable unknown-author event coordinate."},skipVectors:{description:"For health action, skip vectorization checks for a faster diagnostic run."},skipIntegrity:{description:"For health action, skip item/history file integrity checks for a faster diagnostic run."},skipDrift:{description:"For health action, skip history drift hash checks for a faster diagnostic run."},scanMode:{description:"Select file candidate scan mode for --check-files.",examples:["default","tracked-all","tracked-all-strict"]},includePmInternals:{description:"Include PM storage internals in tracked-all candidate scans."},verboseFileLists:{description:"For validate action, include full file-path lists for --check-files details."},verboseDiagnostics:{description:"For validate action, include full diagnostic ID lists instead of compact summaries."},strictExit:{description:"Return non-zero exit when health/validate/extension-doctor warnings are present."},failOnWarn:{description:"Alias for strictExit in health/validate/extension-doctor action payloads."},fixHints:{description:"For validate action, add a machine-executable fix_hints[] of pm commands to each failing check's details."},autoFix:{description:"For validate action, apply the safe, deterministic subset of fix-hint remediations (field backfills) automatically; combine with dryRun to preview and fixScope to grant gated scopes."},fixScope:{description:"For validate action, grant --auto-fix scopes (metadata, resolution, estimates, lifecycle). Defaults to the safe scopes metadata and resolution; estimates (per-type default estimated_minutes backfill) and lifecycle must be named explicitly.",examples:[["estimates"],["lifecycle"],["metadata","resolution"]]},pruneMissing:{description:"For validate action, remove stale linked-file/doc LINKS whose paths classified as deleted (link removal only \u2014 never touches real files); honors dryRun."},checkHistoryDrift:{description:"Run item/history hash drift checks."},checkCommandReferences:{description:"Run linked-command PM-ID reference checks."},edit:{description:"For comments, notes, and learnings actions, replace the annotation at this 1-based index with supplied replacement text."},delete:{description:"For comments, notes, and learnings actions, delete the annotation at this 1-based index."},stdin:{description:"For comments, notes, and learnings actions, read annotation text from piped stdin (supports multiline markdown)."},file:{description:"CLI-only path to an input file for commands that read payload text; tool actions exclude host file access.",examples:["notes/comment.md"]},preserveSourceIds:{description:"Preserve explicit source IDs during Beads imports instead of normalizing to tracker prefix.",examples:[!0]},appendStable:{description:"When true for files action, preserve existing linked-file order and append new links without full-array resorting."},discover:{description:"When true for files action, use `pm files discover <id>` to scan item text for referenced file paths."},apply:{description:"Persist changes instead of returning a dry-run preview: for files discovery, add the missing discovered file links; for schema add-type --infer, register the inferred custom item types."},discoveryNote:{description:"Note attached to file links added by files discovery.",examples:["discovered from item text"]},addNote:{description:"Note attached to every link added by add/addGlob in this call (per-entry embedded note= wins; requires add or addGlob). Maps to the CLI --note flag on pm files/pm docs.",examples:["command wiring"]},list:{description:"When true, list command-specific entries without mutating state (for example linked paths for files/docs or topics for guide).",examples:[!0]},stream:{description:"Stream selector: test-runs logs accepts stdout|stderr|both; activity accepts boolean/rows|ndjson|jsonl for line-delimited output.",examples:["stderr","stdout","both","rows","ndjson","jsonl",!0]},tail:{description:"Number of lines to tail for background run logs.",examples:[100]},query:{description:"Search query text for search action."},for:{description:"Named context intent projection declared for the selected read action.",examples:["orient","inspect","triage","execute","discover"]},keywords:{description:"Alias for query in search action payloads."},includeLinked:{description:"Include readable linked docs/files/tests content in keyword and hybrid lexical scoring."},titleExact:{description:"For search action, require exact normalized title match for the full query string."},phraseExact:{description:"For search action, require exact normalized query phrase match in item text fields."},highlight:{description:"For search action, emit per-field matched-text snippets (wrapped in \xAB\u2026\xBB) on each hit. Off by default."},includeBody:{description:"When true for list-family actions, include item body text in projected rows."},noTruncate:{description:"When true for list-family actions, return every matched row, overriding any limit (surfaces total when rows were dropped)."},strictRead:{description:"When true for list-family actions, fail if any source item or item directory cannot be read."},compact:{description:"Render compact projection output for search and list-family actions."},raw:{description:"For activity, restore the compact per-event stream instead of the default item digest."},brief:{description:"Emit compact low-token output for commands that support terse projections or health details.",examples:[!0]},full:{description:"Enable command-specific full/detail output mode when supported, such as deep item reads for get or full payload mode for search/history."},includeEmpty:{description:"For stats, restore zero-count registered type and lifecycle-status buckets."},fields:{description:"Comma-separated projection fields for get, search, list-family, or context outputs. Valid field names are command-specific (e.g. score/matched_fields apply to search; context projects focus-row fields such as priority/deadline/completion_pct).",examples:["id,title,status,parent,type","id,title,score,matched_fields","id,title,priority,deadline"]},groupBy:{description:"Comma-separated aggregate grouping fields (supported: parent,type,priority,status,assignee,tags,sprint,release).",examples:["parent,type","type,status","priority,assignee","tags","sprint,release"]},count:{description:"Enable grouped count output for aggregate action."},completion:{description:"For aggregate action, add open/in_progress/closed/other counts and completion_pct per group."},sum:{description:"Numeric field to sum per aggregate group (count and null_count are still returned).",examples:["estimated_minutes","priority"]},avg:{description:"Numeric field to average per aggregate group (count and null_count are still returned).",examples:["estimated_minutes","priority"]},tree:{description:"When true for list/get actions, render recursive parent/child tree ordering."},treeDepth:{description:"Maximum recursion depth for tree output (0 keeps root rows only).",examples:[0,1,"2"]},includeUnparented:{description:"Include unparented rows when aggregate grouping includes parent."},maxDepth:{description:"Maximum dependency traversal depth for deps action (0 keeps only the root node).",examples:[0,1,"2"]},nodeLimit:{description:"Maximum related nodes returned by deps --format context.",examples:[10,"20"]},edgeLimit:{description:"Maximum related edges returned by deps --format context.",examples:[20,"40"]},tokenBudget:{description:"Maximum estimated output tokens for the command output.",examples:[600,"1200"]},cursor:{description:"Opaque continuation cursor returned by deps --format context."},direction:{description:'Graph-context traversal direction for deps action ("outgoing", "incoming", or "both").',examples:["both","incoming"]},kind:{description:"Registered relationship kinds narrowing deps --format context traversal (string, comma-separated, or array).",examples:["blocked_by",["parent","related"]]},after:{description:"Continuation cursor resuming a bounded listing or traversal after this previously returned id.",examples:["pm-x1y2"]},maxPaths:{description:"Maximum enumerated paths for graph paths queries.",examples:[5,"10"]},sample:{description:"Maximum evidence sample entries per graph audit finding.",examples:[10,"25"]},exemptIsolate:{description:"Item ids the graph audit treats as explicitly valid isolates (string, comma-separated, or array).",examples:["pm-x1y2",["pm-x1y2","pm-a3b4"]]},exemptIsolateType:{description:"Item types whose active isolates the graph audit treats as policy-valid (string, comma-separated, or array).",examples:["Reminder",["Reminder","Event"]]},saveBaseline:{description:"When true, persist the graph audit census as the change-since-baseline comparison point (audit only)."},rebuild:{description:"When true, rebuild and warm the durable graph index (graph index only)."},collapse:{description:'Dependency tree collapse mode for deps action ("none" or "repeated").',examples:["none","repeated"]},summary:{description:"When true, return the command's compact summary projection (deps counts, health rollup, or contracts command intents)."},shell:{description:"Shell target for completion generation.",examples:["bash"]},eagerTags:{description:"When true for completion, eagerly embed current tracker tags into generated scripts (legacy mode)."},contractAction:{description:"Filter contracts schema to one tool action.",examples:["create","update"]},command:{description:"Scope contracts output to one CLI command name; action/schema surfaces narrow by default.",examples:["create","search","list"]},schemaOnly:{description:"When true, contracts action returns schema-focused payloads (mutually exclusive with flagsOnly/availabilityOnly)."},flagsOnly:{description:"When true, contracts action returns only command flag surface payloads (mutually exclusive projection mode)."},availabilityOnly:{description:"When true, contracts action returns only action availability payloads (mutually exclusive projection mode)."},runtimeOnly:{description:"When true, contracts action only includes actions invocable in the current runtime."},activeOnly:{description:"Alias for runtimeOnly in contracts action payloads."},depth:{description:"Context depth level controlling how many sections are included (brief=focus+agenda, standard=+hierarchy/activity/progress/workload, deep=all sections, full=every section with no per-section row cap).",examples:["brief","standard","deep","full"]},section:{description:"Repeatable section selector for context; overrides --depth when provided.",examples:[["hierarchy","activity"],["blockers","files","staleness"]]},activityLimit:{description:"Maximum number of recent activity entries to include in context output.",examples:[5,10,"20"]},staleThreshold:{description:"Staleness cutoff in days for context staleness section (e.g. 7 or 7d).",examples:["7","14d","30"]}},Z={assurance:{subcommand:{description:"Assurance operation: list, show, put, remove, run, verdicts, presets, apply, derive, or promote.",examples:["list","run","derive","promote"]},kind:{description:"Assurance declaration kind for registry operations: measurement, assertion, or gate.",examples:["measurement","assertion","gate"]},id:{description:"Stable assurance declaration id or gate id, depending on subcommand.",examples:["active-issues","release-readiness"]},limit:{description:"Maximum number of newest assurance verdicts returned.",examples:[10,25]},preset:{description:"Built-in assurance project shape to preview or apply.",examples:["software-delivery","agent-evaluation"]}},update:{acceptanceCriteria:{description:"Complete acceptance-criteria replacement text. Use removeAc plus addAc together for an atomic one-entry repair that preserves unrelated criteria."}},"update-many":{acceptanceCriteria:{description:"Complete acceptance-criteria replacement text. Use removeAc plus addAc together for an atomic one-entry repair that preserves unrelated criteria."}},stats:{since:{description:"Inclusive ISO 8601 timestamp or negative duration lower bound for provenance and fleet analytics.",examples:["2026-08-01T00:00:00.000Z","-30d"]}},events:{since:{description:"Durable event cursor returned as next_cursor, or an inclusive event timestamp.",examples:["eyJmaW5nZXJwcmludCI6Ii4uLiJ9","2026-08-01T00:00:00.000Z"]},type:{description:"Mutation event type filter, supplied once or as a list.",examples:["create",["create","update"]]},author:{description:"Mutation author filter, supplied once or as a list.",examples:["agent-a",["agent-a","agent-b"]]},item:{description:"Tracked item id filter, supplied once or as a list.",examples:["pm-a1b2",["pm-a1b2","pm-c3d4"]]},limit:{description:"Maximum mutation events returned, from 0 through 1000.",examples:[0,100]}},remind:{at:{description:"Reminder time as an ISO 8601 timestamp or supported relative expression.",examples:["2026-08-02T09:00:00+02:00","tomorrow 09:00"]}},deps:{tokenBudget:{description:"Maximum estimated output tokens for deps --format context.",examples:[600,"1200"]}},comments:{full:{description:"Return the complete post-mutation comment history instead of the bounded mutation receipt projection."}},notes:{full:{description:"Return the complete post-mutation note history instead of the bounded mutation receipt projection."},since:{description:"Inclusive ISO 8601 creation timestamp lower bound for structured note event filtering.",examples:["2026-01-01T00:00:00.000Z"]}},learnings:{full:{description:"Return the complete post-mutation learning history instead of the bounded mutation receipt projection."}},next:{tag:{description:"Only recommend items carrying this exact tag.",examples:["sdk","release"]},tokenBudget:{description:"Maximum estimated output tokens for the recommendation context.",examples:[600,"1200"]}},claim:{tag:{description:"When claiming the next item, only consider work carrying this exact tag.",examples:["sdk","release"]},tokenBudget:{description:"Maximum estimated output tokens for the next-item context returned with the claim.",examples:[600,"1200"]}},close:{text:{description:"Backward-compatible alias for the item close reason when reason is not provided."}},"close-task":{text:{description:"Close reason used before releasing the item's active assignment."}},schema:{name:{description:"Custom item type name (add-type/remove-type/show), custom status id (show-status/add-status/remove-status), or custom field key (add-field/remove-field/show-field). Required for those subcommands.",examples:["Spike","review","component"]}},profile:{name:{description:"Profile name for show/apply/lint. Built-in profiles are agile, ops, and research; an active extension can contribute additional archetype names that resolve here too.",examples:["agile","ops","research"]}},graph:{subcommand:{description:"Graph query selector: ancestors|descendants|predecessors|successors|paths|impact|analyze|audit|communities|redundancy|dominators|slack|centrality|articulation|plan|index. Traversals, paths, impact, and dominators require id; paths also requires target; slack reports critical-path float, centrality ranks betweenness/closeness/degree, articulation reports cut points and bridges; plan derives dry-run remediation proposals from the governance audit; index reports, rebuilds, or clears the durable cross-process graph index.",examples:["successors","audit"]},clear:{description:"When true, delete the durable graph index (graph index only)."},id:{description:"Root item id for traversal, paths, impact, and dominators graph queries.",examples:["pm-x1y2"]},target:{description:"Target item id for graph paths queries.",examples:["pm-a3b4"]},direction:{description:'Edge orientation for graph paths/impact/dominators queries ("outgoing", "incoming", or "both"; default "both").',examples:["incoming"]},kind:{description:"Registered relationship kinds narrowing the graph query (string, comma-separated, or array).",examples:["blocked_by",["parent","related"]]},maxDepth:{description:"Maximum graph traversal depth (non-negative integer).",examples:[2,"4"]},after:{description:"Resume a hierarchy/ordering graph traversal after this previously returned node id.",examples:["pm-x1y2"]},limit:{description:"Maximum returned rows per bounded graph collection (traversal ids, impact rows, analyze/communities samples, redundancy rows, dominator bottlenecks).",examples:[10,"25"]},summary:{description:"When true, return counts-first graph envelopes without row collections."}}};(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]="d4550d60-3907-528e-b984-c8ca90b7a4e8")}catch{}})();var be=["json","quiet","profile","noExtensions","noPager","tokenAccounting","path","pmExecutable","timeoutMs"],ve=["outputInclude","outputLimit","outputBudget","outputFormat","outputSession","outputRowContract"],xe=new Set(["action","cwd","options",...Object.keys(y).filter(e=>e!=="severity")]);function ct(e){let t=e.trim().toLowerCase(),a="";for(let r=0;r<t.length;r+=1){let i=t[r];if(i!=="-"&&i!=="_"){a+=i;continue}let n=r+1;for(;t[n]==="-"||t[n]==="_";)n+=1;let s=t[n];if(s!==void 0&&(s>="a"&&s<="z"||s>="0"&&s<="9")){a+=s.toUpperCase(),r=n;continue}a+=t.slice(r,n),r=n-1}return xe.has(a)?{field:e,property:a,owner:"mcp_tool_input",nested_path:`options.${a}`}:void 0}var Oe={create:["fullChangedFields","idOnly"],copy:["fullChangedFields","idOnly"],update:["fullChangedFields","idOnly"],close:["fullChangedFields","idOnly"],restore:["fullChangedFields","idOnly"],append:["fullChangedFields"],"update-many":["fullChangedFields"],"close-many":["fullChangedFields"],assurance:["fullChangedFields","idOnly"]},ke=["createMode","status","deadline","estimate","acceptanceCriteria","definitionOfReady","order","rank","goal","objective","value","impact","outcome","whyNow","assignee","reviewer","risk","confidence","sprint","release","blockedReason","unblockNote","reporter","severity","environment","reproSteps","resolution","expectedResult","actualResult","affectedVersion","fixedVersion","component","regression","customerImpact","comment","note","learning","reminder","event","typeOption"],mt=Object.freeze({"close-many":["list","expected_result","expected","actual_result","actual","validate_close","dry_run","checkpoint","no_checkpoint","filterAssignee_filter"],"update-many":["list","update","dry_run","checkpoint","no_checkpoint","filterAssignee_filter"],...Object.fromEntries(h.filter(e=>e==="install"||e==="extension"||e==="package"||e.startsWith("extension-")||e.startsWith("package-")).map(e=>[e,["project","local","global"]]))});function p(e){return C(e)}var Te=p([...B.map(e=>e.param),...x.map(e=>e.param),"assignee","closeReason","completedAt"]),ae=p([...W.map(e=>e.param),...x.map(e=>e.param),"force"]),_e=p([...H.map(e=>e.param),...ae.filter(e=>e!=="allowMissingParent"&&e!=="completedAt"),"dryRun","rollback","noCheckpoint"]),Ae=p([...G.map(e=>e.param),"reason","completedAt","resolution","expectedResult","actualResult","validateClose","dryRun","rollback","noCheckpoint","author","message","force"]),X=p([...K.map(e=>e.param),"past","section"]),Re=p([...z.map(e=>e.param),"stream"]),d=p([...D.map(e=>e.param),"includeBody","noTruncate","strictRead","compact","brief","full"]),c=[[{property:"today",schema:{const:!0}},{property:"recent",schema:{const:!0}}],[{property:"today",schema:{const:!0}},{property:"updatedAfter",schema:{type:"string",pattern:"\\S"}}],[{property:"recent",schema:{const:!0}},{property:"updatedAfter",schema:{type:"string",pattern:"\\S"}}]],Ee=[[{property:"summary",schema:{const:!0}},{property:"schemaOnly",schema:{const:!0}}],[{property:"summary",schema:{const:!0}},{property:"flagsOnly",schema:{const:!0}}],[{property:"summary",schema:{const:!0}},{property:"availabilityOnly",schema:{const:!0}}],[{property:"schemaOnly",schema:{const:!0}},{property:"flagsOnly",schema:{const:!0}}],[{property:"schemaOnly",schema:{const:!0}},{property:"availabilityOnly",schema:{const:!0}}],[{property:"flagsOnly",schema:{const:!0}},{property:"availabilityOnly",schema:{const:!0}}]],Ce=p([...F.map(e=>e.param),"count","completion","includeUnparented"]),we=p(["query","keywords","mode","semantic","hybrid","includeLinked","titleExact","phraseExact","highlight","compact","full",...j.map(e=>e.param)]),Q=p(["type","tag","priority","assignee","assigneeFilter","sprint","release","parent","limit","blockedLimit","readyOnly","format","includeDecisions","tokenBudget","explainRanking"]),l=["author","message","force"],Se=["text","reason","closeReason","completedAt","duplicateOf","validateClose","resolution","expectedResult","actualResult"],g=["author","assignee","message","force"],Pe=["target","scope","capability","declarative","github","ref","init","install","uninstall","explore","manage","describe","markdown","output","reload","doctor","catalog","list","adopt","adoptAll","activate","deactivate","runtimeProbe","fixManagedState","isolated","ignoreGlobal","detail","trace","watch","strictExit","failOnWarn"];function ee(e){return{[`${e}-init`]:{required:["target"],optional:["scope","capability",...e==="package"?["declarative"]:[]]},[`${e}-install`]:{optional:["target","github","scope","ref"],anyOfRequired:[["target"],["github"]]},[`${e}-uninstall`]:{required:["target"],optional:["scope"]},[`${e}-explore`]:{optional:["scope"]},[`${e}-manage`]:{optional:["scope","runtimeProbe","fixManagedState"]},[`${e}-describe`]:{optional:["target","scope","markdown","output"]},[`${e}-reload`]:{optional:["scope","watch"]},[`${e}-doctor`]:{optional:["scope","detail","trace","fixManagedState","isolated","ignoreGlobal","strictExit","failOnWarn"]},[`${e}-catalog`]:{optional:["scope","fields"]},[`${e}-adopt`]:{required:["target"],optional:["scope","github","ref"]},[`${e}-adopt-all`]:{optional:["scope"]},[`${e}-activate`]:{required:["target"],optional:["scope"]},[`${e}-deactivate`]:{required:["target"],optional:["scope"]},[e]:{optional:Pe}}}var te={required:["title"],optional:["start","duration","end","location","timezone","allDay","parent","allowMissingParent","tags","priority","body","description","author","message"]},f={init:{optional:["prefix","idPrefix","workspace","preset","typePreset","defaults","author","agentGuidance","withPackages","mergeFence","force","verbose"]},config:{required:["scope","configAction"],optional:["key","value","criterion","clearCriteria","format","policy"]},...ee("extension"),...ee("package"),install:{optional:["target","github","scope","ref"],anyOfRequired:[["target"],["github"]]},upgrade:{optional:["target","scope","dryRun","cliOnly","packagesOnly","repair","tag","packageName"]},create:{required:["title","description","type","status","priority","message"],optional:Te},copy:{required:["id"],optional:["title","author","message","allowDuplicate"]},focus:{optional:["id","clear"],mutuallyExclusive:[["id","clear"]]},list:{optional:d,mutuallyExclusiveWhen:c},"list-all":{optional:d,mutuallyExclusiveWhen:c},"list-draft":{optional:d,mutuallyExclusiveWhen:c},"list-open":{optional:d,mutuallyExclusiveWhen:c},"list-in-progress":{optional:d,mutuallyExclusiveWhen:c},"list-blocked":{optional:d,mutuallyExclusiveWhen:c},"list-closed":{optional:d,mutuallyExclusiveWhen:c},"list-canceled":{optional:d,mutuallyExclusiveWhen:c},aggregate:{optional:Ce},guide:{optional:["list","format","depth"]},context:{optional:X},ctx:{optional:X},get:{required:["id"],optional:["for","tokenBudget","at","depth","full","fields","tree","treeDepth","format"]},search:{optional:we,anyOfRequired:[["query"],["keywords"]]},eval:{optional:["mode","k","failUnder","queries","format"]},events:{optional:["since","type","author","item","limit","full","provenance","provenanceSummary","harness","agentInstance","provenanceFilter"]},merge:{required:["subcommand"],optional:["dryRun","author","message","force","includeReconciled","artifact","basePath","oursPath","theirsPath","output","outputPath","itemPath","prefer"]},workspace:{required:["subcommand","snapshotAction"],optional:["name","target","dryRun","force","author","message","lockTtlSeconds","lockWaitMs"]},meet:te,event:te,remind:{required:["title"],optional:["at","text","parent","allowMissingParent","tags","priority","body","description","author","message"]},next:{optional:[...Q,"for"]},reindex:{optional:["mode","progress"]},history:{required:["id"],optional:["limit","compact","full","provenance","provenanceSummary","harness","agentInstance","provenanceFilter","diff","verify","field","strictExit","failOnWarn","format"]},"history-redact":{required:["id"],optional:["literal","regex","replacement","dryRun",...l],anyOfRequired:[["literal"],["regex"]]},"history-repair":{optional:["id","all","dryRun",...l],oneOfRequired:[["id"],["all"]]},"history-author-acknowledge":{required:["attributedAuthor","reviewer","reason"],optional:["historyEvent","allActionable"],oneOfRequired:[["historyEvent"],["allActionable"]]},"history-compact":{optional:["id","before","ids","allOver","closed","allStreams","minEntries","dryRun",...l]},schema:{required:["subcommand"],optional:["name","description","defaultStatus","folder","alias","role","order","fieldType","commands","cliFlag","required","requiredOnCreate","allowUnset","requiredTypes","typePreset","infer","minCount","apply","to","migrationId","fieldTypeScope","dryRun","author","force"],conditionalRequired:[{property:"subcommand",value:"show",required:["name"]},{property:"subcommand",value:"show-status",required:["name"]},{property:"subcommand",value:"add-type",required:["name"]},{property:"subcommand",value:"remove-type",required:["name"]},{property:"subcommand",value:"add-status",required:["name"]},{property:"subcommand",value:"remove-status",required:["name"]},{property:"subcommand",value:"add-field",required:["name"]},{property:"subcommand",value:"remove-field",required:["name"]},{property:"subcommand",value:"show-field",required:["name"]},{property:"subcommand",value:"rename-type",required:["name","to"]},{property:"subcommand",value:"rename-field",required:["name","to"]},{property:"subcommand",value:"remap-status",required:["name","to"]},{property:"subcommand",value:"apply-preset",required:["typePreset"]}]},profile:{required:["subcommand"],optional:["name","dryRun","author","force"],conditionalRequired:[{property:"subcommand",value:"show",required:["name"]},{property:"subcommand",value:"apply",required:["name"]},{property:"subcommand",value:"lint",required:["name"]}]},plan:{required:["subcommand"],optional:["id","stepRef","reorderTo","title","description","template","scope","parent","related","blocks","blockedBy","harness","mode","resumeContext","tags","priority",...ke,"body","claim","fromSearch","stepTitle","step","stepBody","stepOwner","stepStatus","stepEvidence","stepBlockedReason","stepReplacement","dependsOn","link","linkKind","linkNote","promoteToItemDep","allowMultipleActive","file","test","doc","decisionText","decision","decisionRationale","decisionEvidence","discoveryText","discovery","validationText","validation","validationCommand","validationExpected","depth","fields","steps","materializeType","materializeParent","materializeTags","field",...l]},activity:{optional:Re},restore:{required:["id","target"],optional:l},update:{required:["id"],optional:ae,mutuallyExclusive:[["acceptanceCriteria","addAc"],["acceptanceCriteria","removeAc"]]},"update-many":{optional:_e,mutuallyExclusive:[["acceptanceCriteria","addAc"],["acceptanceCriteria","removeAc"]]},close:{required:["id"],optional:[...Se,...l]},"close-many":{optional:Ae},delete:{required:["id"],optional:["dryRun",...l]},append:{required:["id","body"],optional:l},comments:{required:["id"],optional:["text","add","stdin","edit","delete","limit","full",...l]},notes:{required:["id"],optional:["text","add","addJson","stdin","edit","delete","limit","since","eventType","includeMeta","full",...l],mutuallyExclusive:[["addJson","add"],["addJson","stdin"],["addJson","file"],["addJson","edit"],["addJson","delete"]]},learnings:{required:["id"],optional:["text","add","stdin","edit","delete","limit","full",...l]},files:{required:[],optional:["id","add","addGlob","remove","migrate","list","addNote","discover","apply","discoveryNote","appendStable","validatePaths","lookupPath","scope","limit","offset","noTruncate","strictRead","explain","lines","decisionDepth",...l],anyOfRequired:[["id"],["lookupPath"]],dependentAnyOfRequired:[{property:"addNote",anyOfRequired:[["add"],["addGlob"]]}]},docs:{required:["id"],optional:["add","addGlob","remove","migrate","addNote","list","validatePaths",...l],dependentAnyOfRequired:[{property:"addNote",anyOfRequired:[["add"],["addGlob"]]}]},deps:{required:["id"],optional:["format","maxDepth","collapse","summary","full","nodeLimit","edgeLimit","tokenBudget","cursor","direction","kind"]},graph:{required:["subcommand"],optional:["id","target","kind","maxDepth","limit","after","direction","maxPaths","sample","exemptIsolate","exemptIsolateType","saveBaseline","rebuild","clear","summary","full"]},test:{required:["id"],optional:["add","addJson","remove","removeIndex","run","match","onlyIndex","onlyLast","background","timeout","progress","envSet","envClear","sharedHostSafe","pmContext","overrideLinkedPmContext","failOnContextMismatch","failOnSkipped","failOnEmptyTestRun","requireAssertionsForPm","checkContext","autoPmContext","measure","metricBelow","metricDiff",...l]},"test-all":{optional:["status","limit","offset","background","timeout","progress","envSet","envClear","sharedHostSafe","pmContext","overrideLinkedPmContext","failOnContextMismatch","failOnSkipped","failOnEmptyTestRun","requireAssertionsForPm","checkContext","autoPmContext"]},telemetry:{optional:["subcommand","limit"]},"test-runs-list":{optional:["status","limit"]},"test-runs-status":{required:["runId"]},"test-runs-logs":{required:["runId"],optional:["stream","tail"]},"test-runs-stop":{required:["runId"],optional:["force"]},"test-runs-resume":{required:["runId"],optional:["author"]},stats:{optional:["includeEmpty","storage","metadataCoverage","fieldUtilization","byAssignee","byTag","byPriority","tagPrefix","measurements","metric","measurementLimit","observe","improvementDirection","measurementSource","measurementItem","measurementRevision","author","message","provenanceCoverage","fleetAttribution","since","eventLimit","minimumSample"]},duplicates:{optional:["status","since","threshold","limit"]},health:{optional:["strictDirectories","requireMergeDrivers","strictExit","failOnWarn","checkOnly","checkTelemetry","noRefresh","refreshVectors","verboseStaleItems","verboseAuthorEvents","brief","summary","skipVectors","skipIntegrity","skipDrift","full"]},validate:{optional:["checkStorageIntegrity","checkMetadata","metadataProfile","checkResolution","checkLifecycle","checkStaleBlockers","dependencyCycleSeverity","parentCycleSeverity","checkFiles","scanMode","includePmInternals","verboseFileLists","verboseDiagnostics","allAffectedIds","strictExit","failOnWarn","fixHints","autoFix","dryRun","fixScope","pruneMissing","checkHistoryDrift","checkCommandReferences","counts","full"]},assurance:{required:["subcommand"],optional:["kind","id","definition","trigger","treeId","gate","limit","dryRun","author","message","preset","owner","apply","enforcement"],conditionalRequired:[{property:"subcommand",value:"list",required:["kind"]},{property:"subcommand",value:"show",required:["kind","id"]},{property:"subcommand",value:"put",required:["kind","id","definition"]},{property:"subcommand",value:"remove",required:["kind","id"]},{property:"subcommand",value:"run",required:["id","trigger"]},{property:"subcommand",value:"apply",required:["preset","owner"]},{property:"subcommand",value:"derive",required:["owner"]},{property:"subcommand",value:"promote",required:["id","enforcement"]}]},gc:{optional:["dryRun","gcScope"]},contracts:{optional:["contractAction","command","summary","schemaOnly","flagsOnly","availabilityOnly","runtimeOnly","activeOnly","full"],mutuallyExclusiveWhen:Ee},completion:{required:["shell"],optional:["eagerTags"]},claim:{optional:["id","next","ifAvailable","maxAttempts","includeDecisions",...Q,...g],oneOfRequired:[["id"],["next"]]},release:{required:["id"],optional:g},"start-task":{required:["id"],optional:g},"pause-task":{required:["id"],optional:g},"close-task":{required:["id"],optional:["text","validateClose",...g]}},ut=Object.freeze(Object.fromEntries(h.map(e=>[e,f[e]])));function re(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[_-]/g," ").trim().replace(/^./,t=>t.toUpperCase()).concat(".")}function ie(e,t){let a=typeof t=="object"&&t!==null?{...t}:{},r=m[e];return{...a,description:r?.description??re(e),...r?.examples?{examples:r.examples}:{}}}function Ie(e,t){if(e==="plan"&&Object.prototype.hasOwnProperty.call(k,t))return k[t];let a=Z[e];return a&&Object.prototype.hasOwnProperty.call(a,t)?a[t]:m[t]}function ne(e,t,a){let r=typeof a=="object"&&a!==null?{...a}:{},i=Ie(e,t);return{...r,description:i?.description??re(t),...i?.examples?{examples:i.examples}:{}}}function Ne(e,t){let a=J[e];return a&&Object.prototype.hasOwnProperty.call(a,t)?a[t]:e==="plan"&&Object.prototype.hasOwnProperty.call(O,t)?O[t]:(e==="get"||e==="history"||e==="search")&&t==="format"?{type:"string",enum:["json","toon"]}:y[t]}function Le(e,t){let a={action:{const:e,description:m.action?.description??"Tool action to execute."}};for(let r of t){if(r==="action")continue;let i=Ne(e,r);i&&(a[r]=ne(e,r,i))}return a}function Me(e,t){let a=t.flat();return t.map(r=>{let i=a.filter(n=>!r.includes(n));return{required:[...r],...i.length>0?{not:{anyOf:i.map(n=>({required:[n]}))}}:{},...e==="history-repair"&&r.includes("all")?{properties:{all:{const:!0}}}:e==="claim"&&r.includes("next")?{properties:{next:{const:!0}}}:{}}})}function qe(e){let t=[];if(e.conditionalRequired&&e.conditionalRequired.length>0)for(let a of e.conditionalRequired)t.push({if:{properties:{[a.property]:{const:a.value}},required:[a.property]},then:{required:a.required}});if(e.dependentAnyOfRequired&&e.dependentAnyOfRequired.length>0)for(let a of e.dependentAnyOfRequired)t.push({if:{required:[a.property]},then:{anyOf:a.anyOfRequired.map(r=>({required:[...r]}))}});if(e.mutuallyExclusive&&e.mutuallyExclusive.length>0)for(let a of e.mutuallyExclusive)t.push({not:{required:p(a)}});if(e.mutuallyExclusiveWhen&&e.mutuallyExclusiveWhen.length>0)for(let a of e.mutuallyExclusiveWhen)t.push({not:{allOf:a.map(r=>({properties:{[r.property]:r.schema},required:[r.property]}))}});return t}function De(e){if(!Object.prototype.hasOwnProperty.call(f,e))return;let t=f[e],a=Oe[e]??[];return p(["action",...be,...I(e)!==void 0?ve:[],...a,...t.required??[],...t.optional??[]])}function T(e){let t=f[e],a=p(t.required??[]),r=De(e),i={type:"object",additionalProperties:!1,required:["action",...a],title:`pm action "${e}" parameters`,properties:Le(e,r)};t.anyOfRequired&&t.anyOfRequired.length>0&&(i.anyOf=t.anyOfRequired.map(s=>({required:[...s]}))),t.oneOfRequired&&t.oneOfRequired.length>0&&(i.oneOf=Me(e,t.oneOfRequired));let n=qe(t);return n.length>0&&(i.allOf=n),i}function yt(e,t={}){let a=T(e),r={...a.properties};delete r.action;let i=[...a.anyOf??[],...a.oneOf??[]],n=(t.required??a.required.map(String)).filter(u=>u==="action"?!1:t.required===void 0?!0:!i.some(b=>b.required?.map(String).includes(u))),s={type:"object",additionalProperties:t.additionalProperties??!0,properties:{...r,options:{type:"object",additionalProperties:!0,description:"Advanced command options forwarded to the selected pm action."},...t.properties},required:n};return a.anyOf!==void 0&&(s.anyOf=a.anyOf),a.oneOf!==void 0&&(s.oneOf=a.oneOf),a.allOf!==void 0&&(s.allOf=a.allOf),s}function oe(e){let t,a=()=>t??=e();return new Proxy({},{get:(r,i)=>a()[i],has:(r,i)=>i in a(),ownKeys:()=>Reflect.ownKeys(a()),getOwnPropertyDescriptor:(r,i)=>{let n=Reflect.getOwnPropertyDescriptor(a(),i);return n&&(n.configurable=!0),n}})}var se="4.7.0",Fe=se.split(".")[0],je="1.3.0",gt=oe(()=>({$schema:"https://json-schema.org/draft/2020-12/schema",$id:`https://schema.unbrained.dev/pm-cli/tool-parameters-v${Fe}.schema.json`,title:"pm-cli tool parameters (action-scoped strict schema)","x-schema-version":se,type:"object",oneOf:h.map(e=>T(e))}));function le(e,t){let a=ie(e,t);if(typeof a.type=="string")return a;let i=(Array.isArray(a.anyOf)?a.anyOf:[]).find(u=>typeof u.type=="string");if(i){let{anyOf:u,...b}=a;return{...i,...b}}let{anyOf:n,...s}=a;return{...s,type:"string"}}function pe(){let e={action:{type:"string",description:m.action?.description??"Tool action to execute."},options:{type:"object",additionalProperties:!0,description:"Advanced command options object forwarded to the selected pm action."}};for(let t of Object.keys(y).sort())e[t]=le(t,y[t]);return{title:"pm-cli tool parameters (provider-compatible flat schema)","x-schema-version":je,type:"object",additionalProperties:!1,required:["action"],properties:e}}var ft=oe(pe),ht={buildActionScopedToolSchema:T,buildProviderCompatibleToolSchema:pe,decorateActionScopedToolParameterDefinition:ne,decorateToolParameterDefinition:ie,toolActionSchemaContracts:f,toolParameterMetadata:m,toProviderCompatibleParameterDefinition:le,toUniqueFlagContracts:S,withFlagAliasMetadata:w};export{Be as a,We as b,Ue as c,He as d,Ge as e,ze as f,Ke as g,Ve as h,Ye as i,D as j,F as k,j as l,ye as m,x as n,ge as o,B as p,fe as q,W as r,U as s,H as t,G as u,Je as v,z as w,K as x,Ze as y,Xe as z,xe as A,ct as B,ke as C,Se as D,ut as E,De as F,yt as G,se as H,Fe as I,je as J,gt as K,ft as L,ht as M};
2
- //# sourceMappingURL=chunk-KYUQGTSB.js.map