@unbrained/pm-cli 2026.11.3 → 2026.11.4
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.
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +10 -0
- package/dist/cli/error-guidance.d.ts +14 -35
- package/dist/cli/error-guidance.js +2 -2
- package/dist/cli/expected-revisions.d.ts +55 -0
- package/dist/cli/expected-revisions.js +2 -0
- package/dist/cli/main.js +2 -2
- package/dist/cli/runtime/invocation-options.js +1 -1
- package/dist/cli-bundle/bundle-manifest.json +1 -1
- package/dist/cli-bundle/chunks/{chunk-UYNMKUGA.js → chunk-2GW662DP.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-32BCU6HN.js → chunk-3OXQGGRD.js} +46 -46
- package/dist/cli-bundle/chunks/chunk-5BVZ32G7.js +2 -0
- package/dist/cli-bundle/chunks/chunk-5S6RT5LX.js +9 -0
- package/dist/cli-bundle/chunks/chunk-5Z6LWFDL.js +31 -0
- package/dist/cli-bundle/chunks/{chunk-MQJXZX3Q.js → chunk-6T2V3UIK.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-5JZMF4M5.js → chunk-7PGNAHNW.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-7RCI7AAA.js +20 -0
- package/dist/cli-bundle/chunks/chunk-AQ5UHHQS.js +2 -0
- package/dist/cli-bundle/chunks/chunk-BK2XAQVC.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-TZ3D3DPQ.js → chunk-BRIPGUAO.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-BWAXA6S4.js +6 -0
- package/dist/cli-bundle/chunks/{chunk-5IPXDZKU.js → chunk-CERNIZLB.js} +66 -66
- package/dist/cli-bundle/chunks/chunk-DSCFJTHB.js +122 -0
- package/dist/cli-bundle/chunks/{chunk-JPKIUWLG.js → chunk-L4BKTPJ6.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-Y7H55PCY.js → chunk-NPEDFOVQ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2CBHQXYJ.js → chunk-ODMJ3HIB.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-DEJHTFEF.js → chunk-QN7VCOUU.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-QQHMNUZT.js +2 -0
- package/dist/cli-bundle/chunks/chunk-SRDO2NJU.js +2 -0
- package/dist/cli-bundle/chunks/chunk-T56MB6SF.js +2 -0
- package/dist/cli-bundle/chunks/chunk-TX2W6G37.js +3 -0
- package/dist/cli-bundle/chunks/item-revision-UAZOBP2Q.js +2 -0
- package/dist/cli-bundle/chunks/item-transaction-N5F4LXYV.js +2 -0
- package/dist/cli-bundle/chunks/mutation-admission-QZQI2NN5.js +2 -0
- package/dist/cli-bundle/chunks/{register-list-query-I6AZA3IX.js → register-list-query-P3NOKQUA.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-3DAXCLXR.js → register-mutation-A6I5K5N6.js} +2 -2
- package/dist/cli-bundle/chunks/register-operations-SPKB3TNM.js +2 -0
- package/dist/cli-bundle/chunks/register-setup-ZZRHJ4IS.js +2 -0
- package/dist/cli-bundle/chunks/{stage-7H36OTDJ.js → stage-L3T725DS.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-5NGNO54M.js +44 -0
- package/dist/cli-bundle/focused-chunks/{chunk-ZQRCVRGS.js → chunk-A2246ZM7.js} +54 -54
- package/dist/cli-bundle/focused-chunks/chunk-B6U44WPW.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-BAW3DGQO.js +91 -0
- package/dist/cli-bundle/focused-chunks/chunk-BHNY3KPJ.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-C3O6JJPO.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-LKN2WGGB.js → chunk-C7UX2ZI3.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-YVLAP3BL.js → chunk-CBG67HUP.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-TYHDZUL4.js → chunk-CO2DNPH7.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-CXTDEQ3N.js +8 -0
- package/dist/cli-bundle/focused-chunks/chunk-FEPE2CE4.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-RY4QEMAE.js → chunk-FFO7RBLN.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-I5FODKYB.js → chunk-FXFDVM5O.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-I5LGPUWH.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-J3YOATXR.js +80 -0
- package/dist/cli-bundle/focused-chunks/{chunk-HOXIIZEO.js → chunk-J6FDCAMH.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-J7M52SCZ.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-JQS7TYQ6.js +12 -0
- package/dist/cli-bundle/focused-chunks/chunk-MEJKELWC.js +26 -0
- package/dist/cli-bundle/focused-chunks/chunk-PMKR4MJI.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-PNPYQDHU.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-Q4OIRSKL.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-F3X6UWMI.js → chunk-QEVJ3Y67.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-HJ27QLZV.js → chunk-SDLIUZEL.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-TFYTTDAK.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-W3CSX6GI.js +3 -0
- package/dist/cli-bundle/focused-chunks/{chunk-D4XQOMG4.js → chunk-Y5GOUUYJ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/item-revision-L6GVT42D.js +2 -0
- package/dist/cli-bundle/focused-chunks/item-transaction-GYGP264N.js +2 -0
- package/dist/cli-bundle/focused-chunks/mutation-admission-UWTH56OD.js +2 -0
- package/dist/cli-bundle/focused-chunks/{stage-4SQHVI3O.js → stage-WRSNJ7VI.js} +2 -2
- package/dist/cli-bundle/main.js +25 -25
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +5 -5
- package/dist/cli-bundle/sdk-core.js +1 -1
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +57 -57
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +11 -11
- package/dist/core/config/positional-value.d.ts +1 -1
- package/dist/core/config/positional-value.js +1 -1
- package/dist/core/extensions/reserved-host-flags.js +1 -1
- package/dist/core/history/history-rewrite.js +1 -1
- package/dist/core/shared/command-types.d.ts +7 -0
- package/dist/core/store/item-mutation-precondition.d.ts +70 -6
- package/dist/core/store/item-mutation-precondition.js +1 -1
- package/dist/core/store/item-store.js +1 -1
- package/dist/core/store/settings-validator.js +1 -1
- package/dist/core/store/settings.js +1 -1
- package/dist/sdk/cli-contracts/bootstrap-command-scanner.js +1 -1
- package/dist/sdk/cli-contracts/completeness.js +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +11 -0
- package/dist/sdk/cli-contracts/enum-contracts.js +1 -1
- package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +1 -1
- package/dist/sdk/cli-contracts/registration-helpers.js +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +1 -1
- package/dist/sdk/cli-contracts/tool-schema.js +1 -1
- package/dist/sdk/cli-program.js +1 -1
- package/dist/sdk/config.d.ts +1 -1
- package/dist/sdk/config.js +1 -1
- package/dist/sdk/environment/project-runtime-compatibility.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
- package/dist/sdk/governance/validate.js +1 -1
- package/dist/sdk/history/salvage.js +3 -3
- package/dist/sdk/history-compact.d.ts +7 -1
- package/dist/sdk/history-compact.js +1 -1
- package/dist/sdk/history-repair.d.ts +2 -1
- package/dist/sdk/history-repair.js +1 -1
- package/dist/sdk/index.d.ts +3 -0
- package/dist/sdk/index.js +1 -1
- package/dist/sdk/lifecycle/checkpoint-rollback.d.ts +10 -2
- package/dist/sdk/lifecycle/checkpoint-rollback.js +1 -1
- package/dist/sdk/lifecycle/claim.js +1 -1
- package/dist/sdk/lifecycle/close-many.d.ts +11 -2
- package/dist/sdk/lifecycle/close-many.js +1 -1
- package/dist/sdk/lifecycle/close.d.ts +15 -0
- package/dist/sdk/lifecycle/close.js +1 -1
- package/dist/sdk/lifecycle/item-revision.d.ts +162 -0
- package/dist/sdk/lifecycle/item-revision.js +2 -0
- package/dist/sdk/lifecycle/restore.js +1 -1
- package/dist/sdk/lifecycle/start-blockers.d.ts +52 -0
- package/dist/sdk/lifecycle/start-blockers.js +2 -0
- package/dist/sdk/lifecycle/task-composition.d.ts +11 -0
- package/dist/sdk/lifecycle/task-composition.js +1 -1
- package/dist/sdk/lifecycle/update-many.d.ts +11 -2
- package/dist/sdk/lifecycle/update-many.js +1 -1
- package/dist/sdk/lifecycle/update.js +2 -2
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/query/declared-blockers.d.ts +16 -0
- package/dist/sdk/query/declared-blockers.js +2 -0
- package/dist/sdk/query/get.d.ts +7 -0
- package/dist/sdk/query/get.js +1 -1
- package/dist/sdk/query/projection-contracts.js +1 -1
- package/dist/sdk/runtime-input.d.ts +12 -0
- package/dist/sdk/runtime-input.js +1 -1
- package/dist/sdk/runtime.d.ts +10 -0
- package/dist/sdk/runtime.js +1 -1
- package/dist/sdk/structured-mutations.js +1 -1
- package/dist/sdk/test/batch.js +2 -2
- package/dist/sdk/test/execution.js +2 -2
- package/dist/sdk/test/linked-command-detection.js +1 -1
- package/dist/sdk/workspace-transaction.d.ts +17 -6
- package/dist/sdk/workspace-transaction.js +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/types.js +1 -1
- package/docs/COMMANDS.md +91 -0
- package/docs/CONFIGURATION.md +1 -0
- package/docs/SDK.md +110 -1
- package/docs/agent-task-token-baseline.json +1 -1
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +111 -111
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +12 -3
- package/marketplace.json +1 -1
- package/package.json +1 -1
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-claude/package.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/pm-codex/package.json +1 -1
- package/plugins/pm-codex/plugin.json +1 -1
- package/runtime-dependencies.json +1 -1
- package/dist/cli-bundle/chunks/chunk-7ZEFHFAU.js +0 -2
- package/dist/cli-bundle/chunks/chunk-B6UTLYLM.js +0 -3
- package/dist/cli-bundle/chunks/chunk-HBKD5HZB.js +0 -2
- package/dist/cli-bundle/chunks/chunk-L6LCLC37.js +0 -2
- package/dist/cli-bundle/chunks/chunk-NR4KABHC.js +0 -31
- package/dist/cli-bundle/chunks/chunk-PWD5RY2D.js +0 -2
- package/dist/cli-bundle/chunks/chunk-XRMYA4R7.js +0 -20
- package/dist/cli-bundle/chunks/chunk-YWS4XV4I.js +0 -6
- package/dist/cli-bundle/chunks/chunk-ZOAJNPBL.js +0 -129
- package/dist/cli-bundle/chunks/item-transaction-ZHLJTBD7.js +0 -2
- package/dist/cli-bundle/chunks/mutation-admission-ZQMRMGIB.js +0 -2
- package/dist/cli-bundle/chunks/register-operations-G3QGGQ5Z.js +0 -2
- package/dist/cli-bundle/chunks/register-setup-LDXHMNOT.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-3XGKBVJ3.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-4HY6EGPB.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-AK2CI2GI.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-HUXZCPWT.js +0 -26
- package/dist/cli-bundle/focused-chunks/chunk-IKXJ57XA.js +0 -8
- package/dist/cli-bundle/focused-chunks/chunk-MOY6KZGJ.js +0 -44
- package/dist/cli-bundle/focused-chunks/chunk-PWUTFKSI.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-PZRB7IXH.js +0 -91
- package/dist/cli-bundle/focused-chunks/chunk-WSYPVBKS.js +0 -80
- package/dist/cli-bundle/focused-chunks/chunk-WXLG7HZ5.js +0 -3
- package/dist/cli-bundle/focused-chunks/chunk-WZDFCVLX.js +0 -12
- package/dist/cli-bundle/focused-chunks/chunk-YGO3FWA2.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-ZYXQACPB.js +0 -2
- package/dist/cli-bundle/focused-chunks/item-transaction-PZ2FQ6B2.js +0 -2
- package/dist/cli-bundle/focused-chunks/mutation-admission-XOOK6XFH.js +0 -2
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import{$ as mi,Ad as Wt,Ba as er,Bb as yi,Bd as we,Ca as tr,Cc as wi,Cd as ir,Da as pi,Di as mr,Ea as nr,Ei as fr,Fa as rt,Fb as gi,Gb as M,Gc as qt,Ge as vi,Hd as Gt,Ii as xi,Ka as Ht,Li as Jt,Mi as pr,Ni as _r,Oa as rr,Od as ct,Oi as Ri,Pa as de,Qa as he,Qe as be,Qi as _t,Ra as $e,Rb as ge,Re as dr,Sa as ot,Ta as Q,Ti as ze,Ui as W,Vi as ht,X as li,Y as ui,_i as ki,b as et,ba as nt,c as oi,cc as st,d as ii,dc as or,de as sr,dj as Qt,ee as Si,fd as bi,fi as Yt,gb as ye,h as si,if as Ii,je as ar,ji as Kt,ke as Ti,kf as lr,ki as Xt,l as ai,li as mt,m as ci,mi as Ai,od as le,oe as cr,of as ur,pb as _i,pf as lt,qb as b,rf as ut,sb as it,sd as Ei,t as di,tb as Fe,ti as ft,ub as E,vb as hi,vd as Bt,ve as ue,vi as pt,wd as at,we as dt,wf as Ci,xe as je,zd as j}from"./chunk-3OXQGGRD.js";import{A as m,B as Vt,C as p,D as fi,E as $,G as N,H as C,K as v,L as Zn,M as tt,m as Qn,u as J,z as ri}from"./chunk-O4ZLEN4T.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]="42b217a3-31c0-561a-b7cb-b1a584b2edd5")}catch{}})();var hd=new Set(["rename-type","rename-field","remap-status",...ii]);function yd(e,t){if(t&&!hd.has(e))throw new p(`schema ${e} does not support --dry-run. Preview is supported for rename-type, rename-field, remap-status and workflow-policy actions. Remove --dry-run only when you intend to apply changes.`,m.USAGE,{code:"invalid_argument_value",examples:["pm schema rename-type Spike --to Experiment --dry-run"]})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cef883fa-81be-5092-a07b-7a5ca961fbc7")}catch{}})();var Zt=new WeakSet,hr=new WeakMap,Oi=new WeakSet;function yr(e){return Oi.add(e),e}function gr(e){return Oi.has(e)}function yt(e){Zt.add(e);for(let[t,n]of Object.entries(e)){if(!Array.isArray(n))continue;let r=[...n];Reflect.set(e,t,r),Zt.add(r)}return e}function gd(e,t){return Zt.has(e)||t!==void 0&&hr.get(e)?.has(t)===!0}function wd(e,t){let n=new Set(t);hr.set(e,n);for(let r of n){let o=Reflect.get(e,r);if(!Array.isArray(o))continue;let i=[...o];Reflect.set(e,r,i),Zt.add(i)}return e}function Di(e,t){if(gr(e)&&yr(t),gd(e))return yt(t);let n=hr.get(e);return n?wd(t,n):t}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e35626b8-0818-5b4b-8fc2-57426b51a2d1")}catch{}})();var se="-",bd=/^[A-Za-z0-9_.-]+$/u,wr=new Set(["actual_result","body","cmd","command","customer_impact","description","environment","expected_result","impact","location","message","note","outcome","repro_steps","resolution","text","title","unblock_note","value","why_now"]);function Mi(e,t){if(e.startsWith("```")||e.includes(`
|
|
2
|
+
`))return!0;let n=t.map(r=>r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|");return new RegExp(`^(?:[-*+]\\s+)?(?:${n})\\s*[:=]`,"i").test(e)}function Li(e){let t=e.trim();if(t==="")return[];let n=(Id(t)??t.split(",")).map(r=>r.trim()).filter(Boolean).map(r=>r.toLowerCase());return Array.from(new Set(n)).sort((r,o)=>r.localeCompare(o))}function Pi(e){if(!Array.isArray(e)||e.length===0)return[];let t=[];for(let n of e)if(typeof n=="string")for(let r of Li(n))t.push(r);return Array.from(new Set(t)).sort((n,r)=>n.localeCompare(r))}function $i(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim().toLowerCase()).filter(Boolean):[]}function Ed(e){return typeof e!="string"?[]:e.split(";").map(t=>t.trim()).filter(Boolean)}function Sd(e,t,n){let r=e.map(s=>s.trim()).filter(Boolean);for(let s of t??[]){let a=s.trim();if(a.includes(";"))throw new p('Acceptance criteria added with --add-ac cannot contain ";" because semicolons delimit stored criteria',m.USAGE,{code:"acceptance_criteria_semicolon_forbidden",required:"Pass one semicolon-free criterion per --add-ac value",why:"A semicolon inside one criterion would be re-read as multiple criteria",nextSteps:["Split the text into repeated --add-ac values, or replace the semicolon with punctuation that is not the storage delimiter"]});a.length>0&&!r.includes(a)&&r.push(a)}let o=[],i=r;for(let s of n??[]){let a=s.trim();if(a.length!==0){if(!i.includes(a)){o.push(a);continue}i=i.filter(c=>c!==a)}}return{criteria:i,unmatchedRemovals:o}}function Td(e,t){let n=$i(e);if(!t||t.length===0)return Array.from(new Set(n)).sort((o,i)=>o.localeCompare(i));let r=new Set(n);for(let o of Pi(t))r.add(o);return Array.from(r).sort((o,i)=>o.localeCompare(i))}function vd(e,t){let n=Array.from(new Set($i(e))).sort((o,i)=>o.localeCompare(i));if(!t||t.length===0)return n;let r=new Set(Pi(t));return r.size===0?n:n.filter(o=>!r.has(o))}function Id(e){if(!e.startsWith("["))return null;let t;try{t=JSON.parse(e)}catch{return null}return t.map(n=>typeof n=="string"||typeof n=="number"||typeof n=="boolean"?String(n):"").filter(n=>n.length>0)}function br(e){return e.replace(/\r\n/g,`
|
|
3
|
+
`)}function Fi(e){let t=br(e).trim();if(!t.startsWith("```"))return e;let n=t.split(`
|
|
4
|
+
`);return n.length<2||n.at(-1)?.trim()!=="```"?e:n.slice(1,-1).join(`
|
|
5
|
+
`)}function Cd(e){let t=[],n="",r=!1;for(let o=0;o<e.length;o+=1){let i=e[o];if(i==="\\"&&e[o+1]===","){n+=",",o+=1;continue}if(i==="\\"&&e[o+1]!==void 0){n+=`${i}${e[o+1]}`,o+=1;continue}if(i==='"'){r=!r,n+=i;continue}if(i===","&&!r){t.push(n),n="";continue}n+=i}return n.trim()&&t.push(n),t}function ji(e){let t=e.trim();if(t.startsWith('"')&&t.endsWith('"')){try{let n=JSON.parse(t);if(typeof n=="string")return n}catch{}return t.slice(1,-1).replace(/\\"/g,'"')}return e}function Ad(e){let t=e.indexOf("="),n=e.indexOf(":"),r=t>=0,o=n>=0;return r&&o?Math.min(t,n):r?t:o?n:-1}function xd(e,t){if((t==="--add"||t==="--add-glob")&&(/[./\\]/.test(e)||/\.[a-z]{1,6}$/i.test(e.trim())))return"For file/doc paths use: path=<file-path>[,scope=project|global]. The scope field is optional and defaults to project (example: path=src/api.ts or path=README.md,scope=project). ";if(t!=="--event")return"";let n=e.toLowerCase(),r=n.includes("recur_")||n.includes("recurrence")?' Recurrence list values must stay in one field and use "|" delimiters (for example recur_by_weekday=mon|wed or recur_by_month_day=1|15).':"",o=n.includes("recur_byweekday")?" Use recur_by_weekday (with underscores) for weekday recurrence filters.":"";return`${r}${o}`}function Ni(e,t){let n=e.replaceAll(/\s+/g," ").trim(),r=n.length>160?`${n.slice(0,157)}...`:n,o=xd(e,t);return`Invalid ${t} value "${r}". Expected key=value entries separated by commas. `+o+`Also accepts markdown-style key/value lines (for example "- path: README.md"). Use ${t} ${se} to read piped stdin input.`}function Rd(e){let t=Fi(e).trim();if(t.length===0||!t.includes(`
|
|
6
|
+
`)&&!t.startsWith("-")&&!t.startsWith("*")&&!t.startsWith("+"))return null;let n={},r,o=br(t).split(`
|
|
7
|
+
`).map(i=>i.trim()).filter(i=>i.length>0);for(let i of o){let s=i.match(/^(?:[-*+]\s+)?([a-zA-Z0-9_.-]+)\s*(=|:)\s*(.*)$/);if(s){let a=s[1].trim();n[a]=ji(s[3].trim()),r=a;continue}if(r&&wr.has(r.toLowerCase())){n[r]=`${n[r]}
|
|
8
|
+
${i}`;continue}return null}return n}function Er(e,t){let n=Fi(e).trim();if(!n)throw new p(`${t} cannot be empty`,m.USAGE);let r=Rd(n);if(r)return r;let o={},i,s=Cd(n);for(let a of s){let c=Ad(a),d=a.slice(0,Math.max(c,0)).trim();if(d!==""&&i!==void 0&&wr.has(i.toLowerCase())&&!bd.test(d)){o[i]=`${o[i]},${a}`;continue}if(c>=0){let l=a.slice(0,c).trim();if(!l)throw new p(Ni(e,t),m.USAGE);let u=ji(a.slice(c+1).trim());o[l]=u,i=l;continue}if(i&&wr.has(i.toLowerCase())){o[i]=`${o[i]},${a}`;continue}throw new p(Ni(e,t),m.USAGE)}return o}var kd=/^[A-Za-z]:[\\/]/,Od=/^(?:[-*+]\s+)?[A-Za-z_][A-Za-z0-9_.-]*\s*=/;function Dd(e){let t=e.trim();return kd.test(t)?!1:Od.test(t)}function Lg(e,t,n,r){if(!(r||!e.includes(",")))throw new p(`${t} received an ambiguous comma-bearing bare ${n}. Repeat ${t} for multiple values, or quote or escape literal commas in a structured key=<value> entry.`,m.USAGE,{code:"bare_comma_entry_ambiguous",required:`Use one ${t} per bare ${n}, or quote or escape literal commas in a structured key=<value> entry.`})}function Nd(e,t,n){let r=new Set(n.map(i=>i.toLowerCase())),o=Object.keys(e).filter(i=>!r.has(i.toLowerCase()));if(o.length>0)throw new p(`${t} does not recognize key${o.length>1?"s":""} ${o.map(i=>`"${i}"`).join(", ")}. Allowed keys: ${n.join(", ")}.`,m.USAGE);for(let i of Object.keys(e)){let s=i.toLowerCase();if(s!==i){if(Object.hasOwn(e,s))throw new p(`${t} provides key "${i}" more than once after case normalization.`,m.USAGE);e[s]=e[i],delete e[i]}}}async function Md(e){if(process.stdin.isTTY===!0)throw new p(`${e} value "${se}" requires piped stdin input. Pipe content into the command, or end manual stdin with Ctrl+D (Unix/macOS) or Ctrl+Z then Enter (Windows).`,m.USAGE);return process.stdin.setEncoding("utf8"),await new Promise((t,n)=>{let r="";process.stdin.on("data",o=>{r+=o}),process.stdin.on("end",()=>{t(br(r))}),process.stdin.on("error",o=>{n(o)})})}var Ee=Symbol("all-mutation-stdin-fields"),G=new WeakMap;function Pg(e){return gr(e)?e:yt(gt({...e}))}function gt(e){return G.set(e,Ee),e}function Ld(e,t){let n=G.get(e);return n===Ee||G.set(e,new Set([...n??[],...t])),e}function wt(e,t){Di(e,t);let n=G.get(e);return n===void 0||G.set(t,n===Ee?n:new Set(n)),t}function $g(e,t){let n=G.get(e),r=G.get(t);return n===void 0||r===Ee?t:n===Ee?(G.set(t,n),t):(G.set(t,new Set([...r??[],...n])),t)}function Pd(e){return G.get(e)!==Ee}function en(e,t){let n=G.get(e);return n!==Ee&&!n?.has(t)}function $d(e){let t;for(let n of e){if(n.resolveToken===!1||n.value===void 0)continue;let r=(Array.isArray(n.value)?n.value:[n.value]).filter(o=>o.trim()===se).length;if(r>1)throw new p(`${n.optionName} accepts "${se}" stdin token at most once per command invocation`,m.USAGE);if(r!==0){if(t!==void 0&&t!==n.optionName)throw new p(`Only one option may use "${se}" stdin token per command invocation. Already used by ${t}.`,m.USAGE);t=n.optionName}}}async function Fg(e,t,n){let r=e,o=[...t,...n];$d(o.map(([a,c])=>({value:r[a],optionName:c,resolveToken:en(e,a)})));let i=Ue(),s={...r};for(let[a,c]of t)s[a]=await i.resolveValue(r[a],c,en(e,a));for(let[a,c]of n)s[a]=await i.resolveList(r[a],c,en(e,a));return gt(wt(e,s))}function Ue(){let e,t,n=async r=>{if(t&&t!==r)throw new p(`Only one option may use "${se}" stdin token per command invocation. Already used by ${t}.`,m.USAGE);return t=r,e||(e=Md(r)),await e};return{resolveValue:async(r,o,i=!0)=>{if(!i)return r;if(r!==void 0)return r.trim()!==se?r:await n(o)},resolveList:async(r,o,i=!0)=>{if(!i)return r;if(!r)return;let s=r.map((d,l)=>d.trim()===se?l:-1).filter(d=>d>=0);if(s.length===0)return r;if(s.length>1)throw new p(`${o} accepts "${se}" stdin token at most once per command invocation`,m.USAGE);let a=await n(o),c=[...r];return c[s[0]]=a,c}}}function Fd(e,t){let n=Number(e);if(!Number.isFinite(n))throw new p(`Invalid ${t} value "${e}"`,m.USAGE);return n}function jd(e,t){let n=e.trim(),r=Number(n);if(n===""||!Number.isInteger(r)||r<0)throw new p(`Invalid ${t} value "${e}". Expected a non-negative integer.`,m.USAGE);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]="ccb1b39b-3dde-511b-8133-d4747bb6e55e")}catch{}})();function qg(e){try{return e()}catch(t){throw!(t instanceof p)||t.exitCode!==m.USAGE?t:new p(`${t.message} No changes were made.`,m.USAGE,{...t.context,code:t.code==="linked_test_command_not_executable"?t.code:"invalid_argument_value",reason:"test_option_invalid",changed:!1,required:t.context.required??t.message})}}function zd(e,t){if(e[t]==="'"){let n=e.indexOf("'",t+1);return n<0?void 0:n+1}for(let n=t+1;n<e.length;n+=1){if(e[n]==='"')return n+1;if(e[n]==="\\"){n+=1;continue}if(e[n]==="`"||e.startsWith("$(",n))return}}function Ud(e,t){let n=t;for(;n<e.length;){let r=e[n];if(/\s/u.test(r)||";&|".includes(r))return n;if(r==="\\"){n+=2;continue}if(r==="'"||r==='"'){let o=zd(e,n);if(o===void 0)return;n=o;continue}if("<>()`".includes(r))return;n+=1}return n===e.length?n:void 0}function Sr(e,t){let n=t;for(;n<e.length;){if(/\s/u.test(e[n])){n+=1;continue}if(e[n]!=="#")return n;let r=e.indexOf(`
|
|
9
|
+
`,n);if(r<0)return e.length;n=r+1}return n}function Vd(e,t){let n=Sr(e,t),r=e[n];return r===void 0||!";&|".includes(r)?n:(n+=1,r!==";"&&e[n]===r&&(n+=1),Sr(e,n))}function Hd(e){let t=e.trim(),n=Sr(t,0);if(t.length===0)return!1;for(;n<t.length;){if(!/[A-Za-z_]/u.test(t[n]))return!1;let r=n+1;for(;r<t.length&&/[A-Za-z0-9_]/u.test(t[r]);)r+=1;if(t[r]!=="=")return!1;let o=Ud(t,r+1);if(o===void 0)return!1;n=Vd(t,o)}return!0}function Tr(e){if(!(e===void 0||!Hd(e)))throw new p("Linked-test command contains only variable assignments or comments and has no executable command.",m.USAGE,{code:"linked_test_command_not_executable",required:'Supply an actual test command with --add "command=<actual command>" or --add-json. Environment assignments may precede that command.',examples:['pm test <id> --add "command=node --version"'],nextSteps:["Remove any already-stored assignment-only entry with --remove-index, then register the actual test command."]})}function Bg(e){if(Tr(e.command),!(e.pm_context_mode!=="none"||e.workspace_context_mode==="isolated"||e.workspace_context_mode==="snapshot"))throw new p("pm_context_mode=none requires workspace_context_mode=isolated or snapshot so implicit tracker discovery cannot reach the source workspace.",m.USAGE,{code:"linked_test_context_invalid",required:"Set workspace_context_mode to isolated or snapshot when pm_context_mode is none.",examples:[ye(["test","<id>","--add-json",JSON.stringify({command:e.command,pm_context_mode:"none",workspace_context_mode:"isolated"})])]})}function Wg(e,t){return e.command===t.command&&e.path===t.path&&e.scope===t.scope&&e.pm_context_mode===t.pm_context_mode&&e.workspace_context_mode===t.workspace_context_mode}var bt=["command","cmd","path","scope","timeout","timeout_seconds","pm_context_mode","workspace_context_mode","env_set","env_clear","shared_host_safe","assert_stdout_contains","assert_stdout_regex","assert_stderr_contains","assert_stderr_regex","assert_stdout_min_lines","assert_json_field_equals","assert_json_field_gte","note"],qd=new Set(bt);function Gg(e){return Mi(e,bt)}function zi(e,t){let n={},r=[];for(let[o,i]of Object.entries(e)){let s=o.toLowerCase();if(!qd.has(s)){r.push(o);continue}if(Object.hasOwn(n,s))throw new p(`${t} provides key "${o}" more than once after case normalization`,m.USAGE);n[s]=i}if(r.length>0)throw new p(`${t} does not recognize key${r.length>1?"s":""} ${r.map(o=>`"${o}"`).join(", ")}. Allowed keys: ${bt.join(", ")}.`,m.USAGE);if(n.cmd!==void 0){if(n.command!==void 0&&n.command.trim()!==n.cmd.trim())throw new p(`${t} command and cmd must match when both are provided`,m.USAGE);let{cmd:o,...i}=n;return{...i,command:i.command??o}}return n}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b58016fa-9817-5421-a4a3-78d1b1d22937")}catch{}})();function Ui(e){if(!e?.trim())return!1;try{return Tr(e.trim()),!0}catch{return!1}}function Bd(e){try{let{command:t,...n}=zi(Er(e,"--add"),"--add");return Ui(t)?["--add",e]:["command=<actual command>",...Object.entries(n).map(([r,o])=>`${r}=${JSON.stringify(o)}`)].join(",")}catch{return}}function Wd(e){for(let t=0;t<e.length;t+=1){let n=e[t];if(ui.has(n)&&n!=="--all")continue;let r=n.split("=",1)[0];if(!li.has(r)||["--author","--path","--pm-path"].includes(r))return!1;if(!n.includes("=")){let o=e[++t];if(o===void 0||o.startsWith("-"))return!1}}return!0}function Gd(e,t){let n=mi(t);if(n===void 0)return;let r=di(t.slice(n));if((r?.alias??t[n])!==e)return;let o=n+(r?.canonical_argv.length??1),i=t[o],s=t[o+1];if(!(!i||i==="add"||i.startsWith("-"))&&!(!s||s.startsWith("-"))&&Wd(t.slice(o+2)))return{idIndex:o,value:s}}function Yd(e,t){let n=/^[A-Za-z_][A-Za-z0-9_]*=/u.exec(t)?.[0];if(e==="test")return n?["command=","cmd="].includes(n)?Bd(t):bt.includes(n.slice(0,-1))?`command=<actual command>,${t}`:void 0:Ui(t)?["--add-json",JSON.stringify({command:t})]:"command=<actual command>";if(!(n&&n!=="path="))return["--add",n?t:`path=${JSON.stringify(t)}`]}function Kd(e,t){if(e===void 0||!["files","docs","test"].includes(e))return;let n=Gd(e,t);if(!n)return;let{idIndex:r,value:o}=n,i=t[r],s=Yd(e,o);if(s!==void 0)return typeof s=="string"?{itemId:i,value:o,templateArgs:[...t.slice(0,r+1),"--add",s,...t.slice(r+2)]}:{itemId:i,value:o,retryArgs:[...t.slice(0,r+1),...s,...t.slice(r+2)]}}import{readFile as Xd}from"node:fs/promises";import Vi from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7cc00705-c03e-5a18-9bec-af2585939ed8")}catch{}})();function cw(e){if(e!==void 0){if(typeof e!="string")throw new p("--rollback requires a non-empty checkpoint ID string",m.USAGE);return Hi(e)}}function Hi(e){let t=e.trim();if(!t)throw new p("--rollback requires a non-empty checkpoint ID",m.USAGE);if(!/^[a-zA-Z0-9._-]+$/.test(t))throw new p("--rollback checkpoint ID must match [a-zA-Z0-9._-]+",m.USAGE);return t}function Jd(e,t){let n=t.replace(/[-:.TZ]/g,"").slice(0,14),r=Math.random().toString(36).slice(2,8);return`${e}-${n}-${r}`}function Qd(e,t){return Vi.join(e,"checkpoints",t)}function qi(e,t,n){return Vi.join(Qd(e,t),`${n}.json`)}async function Zd(e,t,n,r){let o=qi(e,t,n),i=`${JSON.stringify(r,null,2)}
|
|
10
|
+
`;if(!await _i(o,i)&&await C(o)!==i)throw new p(`Checkpoint ${n} already exists with different contents; use a new checkpoint ID.`,m.CONFLICT);return o}function el(e,t){if(!Array.isArray(e.items))throw new p(`Checkpoint ${t} is missing items`,m.GENERIC_FAILURE);return e.items.map(n=>{if(!n||typeof n!="object")throw new p(`Checkpoint ${t} contains an invalid item entry`,m.GENERIC_FAILURE);let r=n;if(typeof r.id!="string"||r.id.trim().length===0)throw new p(`Checkpoint ${t} contains an item entry without ID`,m.GENERIC_FAILURE);if(typeof r.target_updated_at!="string"||r.target_updated_at.trim().length===0)throw new p(`Checkpoint ${t} contains an item entry without target_updated_at`,m.GENERIC_FAILURE);return{id:r.id.trim(),target_updated_at:r.target_updated_at.trim()}})}async function tl(e,t,n,r){let o=Hi(n),i=qi(e,t,o);if(!await $(i))throw new p(`Checkpoint ${o} not found`,m.NOT_FOUND);let s=await Xd(i,"utf8"),a;try{a=JSON.parse(s)}catch(l){throw new p(`Checkpoint ${o} contains invalid JSON: ${E(l)}`,m.GENERIC_FAILURE)}if(!a||typeof a!="object")throw new p(`Checkpoint ${o} is invalid`,m.GENERIC_FAILURE);let c=a;if(c.schema_version!==r)throw new p(`Checkpoint ${o} has unsupported schema version. Inspect pm history and use an explicit pm restore only after reviewing later edits.`,m.GENERIC_FAILURE);let d=el(c,o);return{record:c,items:d,path:i,id:typeof c.id=="string"?c.id:o,created_at:typeof c.created_at=="string"?c.created_at:M(),author:typeof c.author=="string"?c.author:"unknown"}}async function nl(e,t){let n=[],r=[];for(let o of e)try{let i=await t(o.id,o.target_updated_at);n.push({id:o.id,status:i.skipped?"skipped":"restored",changed_fields:i.changed_fields,warnings:i.warnings}),i.skipped||r.push(o.id)}catch(i){n.push({id:o.id,status:"failed",error:E(i)})}return{rows:n,restored_ids:r,failed_count:n.filter(o=>o.status==="failed").length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e23f9ca6-9fa6-566b-9bfb-7cbe6d449a59")}catch{}})();var fw=[{code:"unknown_lifecycle_action"}];function rl(e,t){let n=e.trim().toLowerCase();if(n.length===0)return;let r=Math.floor(n.length/3);return t.map(o=>({candidate:o,distance:ge(n,o.toLowerCase(),r)??Number.POSITIVE_INFINITY})).filter(({distance:o})=>Number.isFinite(o)).sort((o,i)=>o.distance!==i.distance?o.distance-i.distance:o.candidate.localeCompare(i.candidate))[0]?.candidate}function Bi(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function ol(e){let t=e.command_path.trim().replaceAll(/\s+/gu," "),n=e.token.trim(),r=n.length===0?"<empty>":n,o=[...new Set(e.allowed.map(f=>f.trim()))].filter(Boolean).sort((f,_)=>f.localeCompare(_));if(t.length===0||r.length===0||o.length===0)throw new TypeError("Unknown-subcommand contracts require a path, token, and allowed set");let i=t.split(" "),s=e.trailing_args??[],a=e.display_name??`pm ${t}`,c=e.token_kind??"subcommand",d=e.retry_command?void 0:rl(r,o),l=Bi([...i,r,...s]),u=e.retry_command??(d?Bi([...i,d,...s]):void 0);return new p(`Unknown ${a} ${c} "${r}". Allowed: ${o.join(", ")}${e.message_suffix??""}`,e.exit_code??m.USAGE,{code:"unknown_subcommand",reason:"unknown_positional_token",value:r,examples:[...u?[u]:[],...e.examples??[],`pm ${t} --help`],nextSteps:u?[`Retry with the suggested command: ${u}`]:["Choose one value from recovery.allowed_values."],recovery:{attempted_command:l,allowed_values:o,suggested_retry:u,fallback_candidates:e.fallback_candidates}})}(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]="4e02447f-3fb0-5f7c-9512-be2b348fd082")}catch{}})();var Se=new Set(Qn),tn=Object.freeze({get size(){return Se.size},has(e){return Se.has(e)},entries(){return Se.entries()},keys(){return Se.keys()},values(){return Se.values()},forEach(e,t){Se.forEach(n=>e.call(t,n,n,tn))},[Symbol.iterator](){return Se.values()}});function Wi(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function Gi(e){return typeof e!="string"?null:wi(e)}function il(e){try{return structuredClone(e)}catch{return e}}function sl(e){let t=e.trim(),n=t.indexOf("=");if(n<=0)throw new p(`--field entries must use name=value syntax, received: ${e}`,m.USAGE);let r=t.slice(0,n).trim(),o=t.slice(n+1);return{key:r,value:o}}function al(e,t,n){try{let r=JSON.parse(e);if(n==="array"&&Array.isArray(r)||n==="object"&&typeof r=="object"&&r!==null&&!Array.isArray(r))return r}catch{}throw new p(`--field ${t}=... must be valid JSON ${n}`,m.USAGE)}function cl(e,t,n){if(t==="string")return n;if(t==="number"){let r=n.trim();if(r.length===0)throw new p(`--field ${e}=... must be a number`,m.USAGE);let o=Number(r);if(!Number.isFinite(o))throw new p(`--field ${e}=... must be a number`,m.USAGE);return o}if(t==="boolean"){let r=n.trim().toLowerCase();if(r==="true"||r==="1"||r==="yes")return!0;if(r==="false"||r==="0"||r==="no")return!1;throw new p(`--field ${e}=... must be one of true|false|1|0|yes|no`,m.USAGE)}return t==="string_array"?n.split(/[\n,|]/u).map(r=>r.trim()).filter(r=>r.length>0):al(n,e,t)}function vr(e){let t=new Map;if(!e)return t;for(let n of e.item_fields)for(let r of n.fields){let o=Wi(r.name),i=Gi(r.type);if(!o||!i)continue;let s=t.get(o);if(s&&s.type!==i)throw new p(`Extension item field "${o}" is declared with conflicting types: ${s.type}, ${i}`,m.USAGE,{code:"extension_item_field_type_conflict",nextSteps:["Make every active extension declaration for this field use the same type."]});t.set(o,{name:o,type:i})}return t}function Yi(e){if(tn.has(e))throw new p(`Extension item field "${e}" collides with built-in item metadata "${e}"; rename the extension field with an extension-specific prefix. Reserved fields: ${[...tn].sort((t,n)=>t.localeCompare(n)).join(", ")}.`,m.USAGE,{code:"extension_item_field_reserved",nextSteps:["Rename the extension item field, preferably with an extension-specific prefix."]})}function Et(e){return[...vr(e).keys()].sort((t,n)=>t.localeCompare(n))}function dl(e,t,n,r){if(!e||e.length===0)return{};let o=vr(t),i={};for(let s of e){let{key:a,value:c}=sl(s),d=o.get(a);if(!d)throw ll(a,o,n,r);Yi(d.name),i[d.name]=cl(d.name,d.type,c)}return i}function ll(e,t,n,r){if(tn.has(e)){let s=n?.(e)??{recovery:{provided_fields:[e]},nextSteps:["Core metadata has no generic --field mutation path. Use the owning lifecycle, evidence, or importer API; inspect pm update <id> --help for declared mutation flags."]};return new p(`--field ${e} is a core item field, not an extension field`,m.USAGE,{code:"core_item_field_requires_dedicated_flag",field:e,...s})}let o=r?.(e);if(o!==void 0){let s=o.recovery?.suggested_flags?.[0];return new p(s===void 0?`--field ${e} is a project-schema field, not an extension field`:`--field ${e} is a project-schema field; set it with its declared flag ${s}`,m.USAGE,{code:"project_schema_field_requires_declared_flag",field:e,changed:!1,...o})}let i=[...t.keys()].sort((s,a)=>s.localeCompare(a));return new p(`--field ${e} is not declared by an active extension item-field registration`,m.USAGE,{code:"extension_item_field_unknown",field:e,recovery:{provided_fields:[e]},nextSteps:i.length>0?[`Use one of the declared fields: ${i.join(", ")}`]:["Activate an extension that calls registerItemFields before setting extension fields."]})}function ul(e,t){return t==="string"?typeof e=="string":t==="number"?typeof e=="number"&&Number.isFinite(e):t==="boolean"?typeof e=="boolean":t==="array"?Array.isArray(e):t==="string_array"?Array.isArray(e)&&e.every(n=>typeof n=="string"):typeof e=="object"&&e!==null&&!Array.isArray(e)}function ml(e,t){return!t||t.length===0?!0:t.some(n=>Object.is(n,e))}function fl(e,t,n={}){if(t){vr(t);for(let r of t.item_fields)for(let o of r.fields){let i=Wi(o.name);if(!i)continue;Yi(i),!(i in e)&&!n.skipDefaultFields?.has(i)&&Object.prototype.hasOwnProperty.call(o,"default")&&(e[i]=il(o.default));let s=e[i];if(s===void 0)continue;let a=Gi(o.type);if(a&&!ul(s,a))throw new TypeError(`Item field "${i}" must be of type ${a}`);let c=Array.isArray(o.values)?o.values:void 0;if(!ml(s,c))throw new TypeError(`Item field "${i}" must match one of the configured allowed values`)}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cb883ffc-c431-5bf9-a973-931a8a0a940c")}catch{}})();function me(e){if(typeof e!="string")return null;let t=e.trim().toLowerCase();return t.length>0?t:null}function ww(e,t){let n=me(t);return!e||!n?null:[...e.assurance_providers??[]].reverse().find(r=>me(r.definition.id)===n)??null}function pl(e,t){let n=me(t);return!e||!n?null:[...e.search_providers].reverse().find(r=>(me(r.runtime_definition?.name)??me(r.definition?.name))===n)??null}function _l(e,t){let n=me(t);return!e||!n?null:[...e.vector_store_adapters].reverse().find(r=>(me(r.runtime_definition?.name)??me(r.definition?.name))===n)??null}function bw(e){return e.runtime_definition??e.definition}import{readFile as hl}from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4441095d-0acd-5780-8758-7df94396cb8e")}catch{}})();var yl=e=>hl(e,"utf8"),gl=async e=>await Ue().resolveValue("-",e);function Ir(e){return[...new Set(e.split(/[,\r\n]+/).map(t=>t.trim()).filter(t=>t.length>0))]}function wl(e){let t=[];for(let r of e)if(typeof r=="string")t.push(r);else if(typeof r=="number"&&Number.isFinite(r))t.push(String(r));else return"";let n=Ir(t.join(`
|
|
11
|
+
`));return n.length>0?n.join(","):""}function Ki(e){if(e===void 0)return;if(typeof e=="number")return Number.isFinite(e)?String(e):"";if(Array.isArray(e))return wl(e);if(typeof e!="string")return"";let t=Ir(e);return t.length>0?t.join(","):""}async function bl(e,t="--ids",n={}){if(e===void 0)return;let r=e.trim(),o=e;try{if(r==="-")o=await(n.readStdin??gl)(t);else if(r.startsWith("@")){let s=r.slice(1).trim();if(s.length===0)throw new p(`${t} @path requires a non-empty file path.`,m.USAGE,{code:"bulk_ids_input_missing_path",required:`Pass ${t} @<path>, ${t} -, or inline IDs.`});o=await(n.readFile??yl)(s)}}catch(s){if(s instanceof p)throw s;let a=s instanceof Error?s.message:String(s);throw new p(`${t} could not read ${r==="-"?"stdin":`"${r.slice(1).trim()}"`}: ${a}`,m.NOT_FOUND,{code:"bulk_ids_input_unreadable",required:`Provide readable newline/comma-delimited IDs via ${t} -, ${t} @<path>, or inline argv text.`,nextSteps:[`Retry with inline IDs: ${t} pm-a1b2,pm-c3d4`,`Or pipe IDs: pm list --id-only | pm update-many ${t} - --dry-run`]})}let i=Ki(o);if(i!=="")return i;throw new p(`${t} requires at least one non-empty item ID.`,m.USAGE,{code:"bulk_ids_input_empty",required:"Provide one or more comma- or newline-delimited IDs through argv, stdin, or @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]="1dcf0d72-10da-51b6-b9f6-ab47bebcbf64")}catch{}})();function Xi(e){return e.replaceAll("~1","/").replaceAll("~0","~")}function Cr(e){if(e==="/body"||e.startsWith("/body/"))return"body";if(e==="/metadata"||e.startsWith("/metadata/")||e==="/front_matter"||e.startsWith("/front_matter/")){let n=e.replace(/^\/(?:metadata|front_matter)\/?/,"").split("/")[0];return n?Xi(n):"metadata"}let t=e.replace(/^\//,"").split("/")[0];return t?Xi(t):"root"}function nn(e,t){return t==="body"?e.body:t==="metadata"?e.metadata:t==="root"?e:e.metadata[t]}function El(e,t){let n=t?.windowStartIndex??0,r=t?.field;if(e.length===0||n>=e.length)return[];let o=Ai(),i=[];for(let s=0;s<e.length;s+=1){let a=e[s],c=o,d=ft(o,a.patch),l;d.ok?(l=d.document,o=l):l=c;let u=new Set;for(let _ of a.patch)u.add(Cr(_.path)),_.from!==void 0&&u.add(Cr(_.from));let f=[...u].sort((_,h)=>_.localeCompare(h));if(s>=n)if(r!==void 0){if(!u.has(r))continue;let _={field:r,before:nn(c,r),after:nn(l,r)};i.push({index:s+1,ts:a.ts,op:a.op,author:a.author,patch_ops:a.patch.length,changed_fields:[r],changes:[_]})}else{let _=f.map(h=>({field:h,before:nn(c,h),after:nn(l,h)}));i.push({index:s+1,ts:a.ts,op:a.op,author:a.author,patch_ops:a.patch.length,changed_fields:f,changes:_})}}return i}import Sl from"node:fs/promises";import Tl 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]="1d746e4d-ff6c-54ec-a94f-4ec4cb8f77b5")}catch{}})();function vl(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function Il(e,t){return new p(`Missing history stream for ${e}. ${t} requires history streams when settings.history.missing_stream is strict_error.`,m.NOT_FOUND)}async function Cl(e,t){return await fi(Tl.dirname(e)),await(await Sl.open(e,"a")).close(),j({path:e,scope:"project",op:`${t}:history:auto_create`})}async function rn(e){return Ji({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function Ji(e){let t=vl(e.itemIds),n=[],r=[];for(let o of t){let i=Q(e.pmRoot,o);if(!await $(i)){if(e.settings.history.missing_stream==="strict_error")throw Il(o,e.commandLabel);r.push(...await Cl(i,e.commandLabel)),r.push(`history_stream_auto_created:${o}`),n.push(o)}}return{auto_created_ids:n,warnings:r}}import{readFile as Al}from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="80805c6b-9b9a-5dad-b94b-d7dbd365fe5e")}catch{}})();var xl=e=>Al(e,"utf8");async function Rl(e,t,n=xl){if(t!==void 0)throw new p("--body and --body-file are mutually exclusive; provide the body inline with --body or from a file with --body-file, not both.",m.USAGE,{code:"body_file_conflicts_with_body",required:"Choose exactly one body source.",why:"Both --body and --body-file set the item body; allowing both would make the effective body ambiguous.",nextSteps:["Re-run with only --body <text> or only --body-file <path>."]});let r=e.trim();if(r.length===0)throw new p("--body-file requires a file path.",m.USAGE,{code:"body_file_missing_path",required:"Pass a readable file path: --body-file <path>.",why:"An empty --body-file value has no file to read the body from."});if(r==="-")return await Ue().resolveValue("-","--body-file");try{return await n(r)}catch(o){let i=o?.code,s=i==="EISDIR",a=i?` (${i})`:"";throw new p(s?`--body-file "${r}" is a directory, not a file. Point it at a readable file.`:`--body-file could not read "${r}"${a}. Check that the file exists and is readable.`,m.NOT_FOUND,{code:"body_file_unreadable",required:"Point --body-file at an existing, readable file.",why:`The body content is loaded from the file at the supplied path, so an unreadable path cannot produce a body${i?` (underlying error: ${i})`:""}.`,nextSteps:[`Verify the path: ls -l "${r}"`,"Or pipe the body with --body-file -.","Or pass the body inline with --body <text>."]})}}import kl from"node:crypto";import on 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]="664124e5-715d-5f86-ae69-89f203db76c3")}catch{}})();function Zi(e){let t=[],n=!1;for(let r of(e??"").toLowerCase()){let o=r.charCodeAt(0),i=o>=48&&o<=57,s=o>=97&&o<=122;if(!i&&!s){n=t.length>0;continue}n&&(t.push("-"),n=!1),t.push(r)}return t.length===0?"pm-":`${t.join("")}-`}function Ve(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function ae(e,t){let n=Zi(t),r=Ve(e);return r.startsWith(n)?r:`${n}${r}`}function Ol(e){let t=gi(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=kl.randomInt(0,36).toString(36);return n}async function Dl(e,t,n){let r=[...new Set(Object.values(n))].flatMap(o=>[on.join(e,o,`${t}.md`),on.join(e,o,`${t}.toon`)]);return r.push(on.join(e,"history",`${t}.jsonl`)),(await Promise.all(r.map(o=>$(o)))).some(Boolean)}var Qi=4,es=12;function Nl(e){return typeof e!="number"||!Number.isFinite(e)?Qi:Math.min(es,Math.max(Qi,Math.trunc(e)))}async function Ml(e,t,n={}){let r=Nl(n.tokenLength),o=Math.min(r+6,es),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${Zi(t)}${Ol(r)}`;if(!await(n.probeExisting===!1?$(on.join(e,"history",`${a}.jsonl`)):Dl(e,a,n.typeToFolder??J)))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2fd342e6-06cc-56d4-aa0e-2af269234b59")}catch{}})();var Ll=new Set(["none","null","undefined"]);function Jw(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="warn"||t==="strict_error")return t;if(t==="strict")return"strict_error";throw new p("Config set parent-reference-policy requires --policy with one of: warn, strict_error (alias: strict)",m.USAGE)}function Pl(e){if(typeof e!="string")throw new p("--parent must be a string. Use --unset parent to clear this field.",m.USAGE);let t=e.trim();if(t.length===0)throw new p("--parent must not be empty. Use --parent none to unset.",m.USAGE);if(ts(t))throw new p(`--parent must not use placeholder token "${t}". Use --unset parent to clear this field.`,m.USAGE);return t}function ts(e){return Ll.has(e.trim().toLowerCase())}function $l(e,t){if(t==="strict_error")throw new p(`Parent item "${e}" was not found. Create it first or use --parent none.`,m.USAGE);return{warnings:[`validation_warning:parent_reference_missing:${e}`]}}function Fl(e,t,n){let r=ae(e,n),o=ae(t,n);if(r!==o)return;let i=t!==o||e!==r?` (normalized from parent "${t}" and item "${e}")`:"";throw new p(`Parent item "${o}" cannot be the same as item "${r}"${i}. Use --unset parent to clear this field.`,m.USAGE)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a59d5b7f-9764-53c5-a014-1119868be8ea")}catch{}})();var Ar={critical:0,high:1,medium:2,low:3,minimal:4},ns=Object.keys(Ar),jl=`numbers 0..4 (0=critical, 1=high, 2=medium, 3=low, 4=minimal) or names (${ns.join(", ")}), case-insensitive`;function sn(e){return new p(`Invalid priority "${e}". Accepted values: ${jl}.`,m.USAGE,{code:"invalid_argument_value",field:"priority",value:e,allowed:["0","1","2","3","4",...ns]})}function zl(e){if(typeof e=="number"){if(Number.isInteger(e)&&e>=0&&e<=4)return e;throw sn(String(e))}if(typeof e!="string")throw sn(String(e));let t=e.trim();if(t.length===0)throw sn(e);let n=t.toLowerCase();if(Object.prototype.hasOwnProperty.call(Ar,n))return Ar[n];if(/^[0-4]$/.test(t))return Number(t);throw sn(e)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e363ee89-b438-5c8e-bb06-f4d05cc814cc")}catch{}})();function Ul(e){let t={...e};for(let[n,r]of Object.entries(t))Array.isArray(r)&&Reflect.set(t,n,[...r]);return yr(wt(e,t))}function Vl(e){return yt(gt(wt(e,{...e})))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b6206b0e-0cd8-5827-acbd-6ac064dbcad7")}catch{}})();var Hl=/^[A-Za-z0-9][A-Za-z0-9._/-]*$/,ql=64;function ab(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="warn"||t==="strict_error")return t;if(t==="strict")return"strict_error";throw new p("Config set sprint-release-format-policy requires --policy with one of: warn, strict_error (alias: strict)",m.USAGE)}function Bl(e,t,n){let r=t.trim();if(r.length===0)throw new p(`--${e} must not be empty. Use --${e} none to unset.`,m.USAGE);if(r.length<=ql&&Hl.test(r))return{value:r,warnings:[]};let o="Expected 1-64 characters matching [A-Za-z0-9][A-Za-z0-9._/-]* (no spaces).";if(n==="strict_error")throw new p(`Invalid --${e} value "${r}". ${o}`,m.USAGE);return{value:r,warnings:[`validation_warning:${e}_format:${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]="14e6c7b4-3161-5f82-b797-f06a879d1370")}catch{}})();var rs={open:"open_status",closed:"close_status",canceled:"canceled_status",cancelled:"canceled_status"},os="all";function fb(e){if(typeof e!="string")return!1;let t=e.split(",").map(n=>n.trim().toLowerCase()).filter(n=>n.length>0);return t.length===1&&t[0]===os}function Wl(e,t){let n=e.trim().toLowerCase();if(n.length===0)return;let r=rs[n];return r?t[r]:cr(e,t)}function Gl(e){let t=new Set(Object.keys(rs));for(let n of e.definitions){t.add(n.id);for(let r of n.aliases)t.add(r)}return[...t]}function Yl(e,t){let n=e.trim().toLowerCase(),r,o=Number.POSITIVE_INFINITY;for(let i of Gl(t)){let s=ge(n,i.toLowerCase(),2);s!==null&&s<o&&(r=i,o=s)}return r}function Kl(e,t,n){if(typeof e!="string")return;let r=n?.strict===!0,o=n?.flagLabel??"--status",i=e.split(",").map(a=>a.trim()).filter(a=>a.length>0);if(i.length===0)return;if(i.filter(a=>a.trim().toLowerCase()===os).length>0){if(i.length===1)return;throw new p(`Invalid ${o} value "all". Use it by itself, or omit ${o} to search every status.`,m.USAGE)}let s=[];for(let a of i){let c=Wl(a,t);if(c===void 0){if(r){let d=Yl(a,t);throw new p(`Invalid ${o} value "${a}". Use open|closed|canceled or a configured status id${d?`. Did you mean "${d}"?`:"."}`,m.USAGE)}s.push(a);continue}s.push(c)}return[...new Set(s)]}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="50f77f3f-b2b0-5ae2-b669-6ed50bbdd530")}catch{}})();var Xl={bug:"Issue",bugfix:"Issue",defect:"Issue",incident:"Issue",enhancement:"Feature",story:"Feature",userstory:"Feature","user-story":"Feature","user story":"Feature",change:"Chore",ticket:"Task",todo:"Task"};function Jl(e){if(e!==void 0)return Xl[e.trim().toLowerCase()]}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c628dcf9-d98f-566e-9f93-cc81e737691c")}catch{}})();function ss(e){let t=[],n=new Set;for(let r of e)for(let o of Object.keys(r))n.has(o)||(n.add(o),t.push(o));return t}function xr(e){return e==null?"":Array.isArray(e)?e.map(t=>xr(t)).join(";"):typeof e=="object"?JSON.stringify(e):String(e)}function is(e){return/[",\r\n]/.test(e)?`"${e.replace(/"/g,'""')}"`:e}function Ql(e){if(e.length===0)return"";let t=ss(e),n=[t.map(r=>is(r)).join(",")];for(let r of e)n.push(t.map(o=>is(xr(r[o]))).join(","));return n.join(`
|
|
12
|
+
`)}function Zl(e){if(e.length===0)return"";let t=ss(e),n=e.map(s=>t.map(a=>xr(s[a]))),r=t.map((s,a)=>Math.max(s.length,...n.map(c=>c[a].length))),o=(s,a)=>s.padEnd(r[a]),i=[t.map((s,a)=>o(s,a)).join(" | ")];i.push(r.map(s=>"-".repeat(s)).join("-+-"));for(let s of n)i.push(s.map((a,c)=>o(a,c)).join(" | "));return i.join(`
|
|
13
|
+
`)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b84fee06-5bbd-57f9-9643-f283d6c87afa")}catch{}})();function eu(e,t="--limit"){if(e===void 0)return;let n=Number(e);if(!Number.isFinite(n)||n<0)throw new p(`${t} must be a non-negative number`,m.USAGE);return Math.floor(n)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="158d5065-075c-5355-a65c-f3edc9c5f1f0")}catch{}})();var tu=new Map(nt.map(e=>[e.toLowerCase(),e])),nu=/^[A-Za-z][A-Za-z0-9_-]*$/;function as(e,t){if(!nu.test(e))throw new Error(`${t} "${e}" is not a valid identifier. Use a single letter-led token of letters, digits, hyphen, or underscore with no spaces or punctuation (e.g. "Spike" or "code-review").`)}function Rr(e){return tu.get(e.trim().toLowerCase())}function ls(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function ru(e){return e.replace(/[\\"`$]/g,t=>`\\${t}`)}function us(e){let t=new Map;for(let n of e){let r=n.trim();if(r.length===0)continue;let o=r.toLowerCase();t.has(o)||t.set(o,r)}return[...t.values()].sort((n,r)=>n.localeCompare(r))}function Sb(e){let t=(e.name??"").trim();if(t.length===0)throw new Error("Type name must not be empty.");as(t,"Type name");let n=Rr(t);if(n)throw new Error(`Cannot redefine built-in item type "${n}". Built-in types are reserved: ${nt.join(", ")}.`);let r=e.description?.trim(),o=e.defaultStatus?.trim(),i=e.folder?.trim(),s=i&&i.length>0?nr(i):void 0,a=us(e.aliases??[]);for(let c of a){as(c,"Alias");let d=Rr(c);if(d)throw new Error(`Alias "${c}" collides with built-in item type "${d}". Built-in types are reserved: ${nt.join(", ")}.`)}return{name:t,description:r&&r.length>0?r:void 0,defaultStatus:o&&o.length>0?o:void 0,folder:s,aliases:a}}function Tb(e,t){let n=e.name.toLowerCase(),r=new Map;for(let i of t.definitions){if(typeof i.name!="string")continue;let s=i.name.trim();if(!(s.length===0||s.toLowerCase()===n)){r.set(s.toLowerCase(),s);for(let a of ls(i.aliases))a.trim().length>0&&r.set(a.trim().toLowerCase(),s)}}let o=r.get(n);if(o)throw new Error(`Type name "${e.name}" collides with an alias of existing item type "${o}".`);for(let i of e.aliases){let s=r.get(i.toLowerCase());if(s)throw new Error(`Alias "${i}" already maps to existing item type "${s}".`)}}function cs(e,t){return typeof t=="string"&&t.trim().length>0?nr(t).toLowerCase():pi(e).toLowerCase()}function vb(e,t,n){let r=e.name.toLowerCase(),o=cs(e.name,e.folder),i=a=>{throw new Error(`Item type "${e.name}" would store items in folder "${o}", which already belongs to existing item type "${a}". Pass a distinct --folder to keep their storage separate.`)};for(let a of t.definitions){if(typeof a.name!="string")continue;let c=a.name.trim();c.length===0||c.toLowerCase()===r||cs(c,a.folder)===o&&i(c)}let s=n?.get(o);s!==void 0&&s.toLowerCase()!==r&&i(s)}function Ib(e){if(e==null||e.trim().length===0)return{definitions:[]};let t;try{t=JSON.parse(e)}catch{throw new Error("schema/types.json contains invalid JSON.")}return{definitions:ou(t)}}function ou(e){let t=iu(e);if(!t)return[];let n=[];for(let r of t){if(typeof r!="object"||r===null||Array.isArray(r))continue;let o=r;typeof o.name!="string"||o.name.trim().length===0||n.push(o)}return n}function iu(e){if(Array.isArray(e))return e;if(typeof e!="object"||e===null)return;let t=e;if(Array.isArray(t.definitions))return t.definitions;if(typeof t.item_types=="object"&&t.item_types!==null){let n=t.item_types;if(Array.isArray(n.definitions))return n.definitions}}function Cb(e,t){let n=t.name.toLowerCase(),r=e.definitions.slice(),o=r.findIndex(c=>typeof c.name=="string"&&c.name.trim().toLowerCase()===n),i=o>=0?r[o]:void 0,s=us([...ls(i?.aliases),...t.aliases]),a={...i,name:t.name};return t.folder!==void 0&&(a.folder=t.folder),s.length>0?a.aliases=s:a.aliases!==void 0&&delete a.aliases,ds(a,"description",t.description),ds(a,"default_status",t.defaultStatus),o>=0?r[o]=a:r.push(a),r.sort((c,d)=>c.name.localeCompare(d.name)),{file:{definitions:r},definition:a,replaced:o>=0,...i&&typeof i.name=="string"?{previousName:i.name}:{}}}function Ab(e,t){let n=(t??"").trim();if(n.length===0)throw new Error("Type name must not be empty.");let r=Rr(n);if(r)throw new Error(`Cannot remove built-in item type "${r}". Built-in types are reserved: ${nt.join(", ")}.`);let o=n.toLowerCase(),i=e.definitions.slice(),s=i.findIndex(c=>typeof c.name=="string"&&c.name.trim().toLowerCase()===o);if(s<0)return{file:{definitions:i},removed:!1};let[a]=i.splice(s,1);return{file:{definitions:i},removed:!0,definition:a}}function ds(e,t,n){let r=e;n!==void 0&&(r[t]=n)}function xb(e){return`${JSON.stringify({definitions:e.definitions},null,2)}
|
|
14
|
+
`}function su(e,t){let n=e.trim().length>0?e.trim():e,r=t?.trim()||".agents/pm/schema/types.json";return`To register a custom type, run: pm schema add-type "${ru(n)}" (writes ${r}).`}function au(e,t,n){return`Invalid type value "${e}". Allowed: ${t.join(", ")}. ${su(e,n)}`}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4b79bd02-51ae-5c46-be4c-2f41dd8c9486")}catch{}})();function ms(e,t){return et(e,t)}function cu(e,t,n){let r={};for(let o of t.command_to_fields.get(n)??[]){let i=sr(e,o);i!==void 0&&(r[o.metadata_key]=Si(o,i))}return r}function du(e,t){for(let[n,r]of Object.entries(t)){let o=e[n];if(Array.isArray(r)){if(Array.isArray(o)){let i=o.map(s=>String(s));if(!r.map(s=>String(s)).every(s=>i.includes(s)))return!1;continue}if(!ms(o,r[r.length-1]))return!1;continue}if(!ms(o,r))return!1}return!0}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="77a7b77a-907c-541d-ac55-e06174dbbf11")}catch{}})();function fs(e){return typeof e=="string"?e.trim().toLowerCase():""}function an(e,t){let n=ct(e);return n.length===0?"":t?.alias_to_id?.get(n)??n}function lu(e){let t=Array.isArray(e?.type_workflows)?e.type_workflows:[],n=new Map;for(let r of t){let o=fs(r?.type);if(o.length===0||!Array.isArray(r?.allowed_transitions))continue;let i=r.allowed_transitions,s=n.get(o)??{pairs:[],denyAll:!1};i.length===0&&(s.denyAll=!0);for(let a of i){if(!Array.isArray(a)||a.length!==2)continue;let c=ct(a[0]),d=ct(a[1]);c.length===0||d.length===0||s.pairs.some(l=>l[0]===c&&l[1]===d)||s.pairs.push([c,d])}n.set(o,s)}return[...n.entries()].filter(([,r])=>r.pairs.length>0||r.denyAll).map(([r,o])=>({type:r,allowed_transitions:o.pairs})).sort((r,o)=>r.type.localeCompare(o.type))}function uu(e){let t=fs(e.typeName),n=e.typeWorkflows.find(i=>i.type===t);if(!n)return{allowed:!0,hasRule:!1,allowedTransitions:[]};let r=an(e.fromStatus,e.statusRegistry),o=an(e.toStatus,e.statusRegistry);return r.length>0&&r===o?{allowed:!0,hasRule:!0,allowedTransitions:n.allowed_transitions}:{allowed:n.allowed_transitions.some(i=>{let s=an(i[0],e.statusRegistry),a=an(i[1],e.statusRegistry);return s===r&&a===o}),hasRule:!0,allowedTransitions:n.allowed_transitions}}function mu(e){return e.length===0?"(no transitions allowed)":e.map(t=>`${t[0]} -> ${t[1]}`).join(", ")}import{spawnSync as _s}from"node:child_process";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7889f11f-36f9-5384-8429-58d951c342da")}catch{}})();var fu="PM_DISABLE_OLLAMA_AUTO_DEFAULTS",pu="PM_OLLAMA_MODEL",_u="http://localhost:11434",hu="qwen3-embedding:0.6b",yu=".agents/pm/search/lancedb/",gu=1500,wu=2500,bu=/qwen.*(?:embed|embedding)|(?:embed|embedding).*qwen/i,Eu=/embed|embedding/i,Z=b;function Su(){let e=Z(process.env[fu]);if(!e)return!1;let t=e.toLowerCase();return t==="1"||t==="true"||t==="yes"}function ps(e){return e.some(t=>Z(t)!==null)}function Tu(e){let t=Z(e);return!!(t&&t.toLowerCase()!=="ollama")}function vu(e){let t=Z(e);return!!(t&&t.toLowerCase()!=="lancedb")}function Iu(e){return Tu(e.search?.provider)||vu(e.vector_store?.adapter)||ps([e.providers?.openai?.base_url,e.providers?.openai?.model,e.providers?.openai?.api_key])?!0:ps([e.vector_store?.qdrant?.url,e.vector_store?.qdrant?.api_key])}function Cu(){let e=_s("ollama",["--version"],{encoding:"utf8",timeout:gu});return e.error?!1:e.status===0}function Au(e){let t=e.split(/\r?\n/).map(r=>r.trim()).filter(r=>r.length>0);if(t.length===0)return null;let n=t.map(r=>r.split(/\s+/)[0]?.trim()).filter(r=>!!(r&&r.length>0)).filter(r=>r.toUpperCase()!=="NAME");return n.length===0?null:n.find(r=>bu.test(r))||(n.find(r=>Eu.test(r))??null)}function xu(e){let t=Z(e.providers?.ollama?.model);if(t)return t;let n=Z(process.env[pu]);if(n)return n;let r=_s("ollama",["list"],{encoding:"utf8",timeout:wu});if(!r.error&&r.status===0){let o=Au(typeof r.stdout=="string"?r.stdout:"");if(o)return o}return null}function Ru(e){return{baseUrl:Z(e.providers?.ollama?.base_url)===null,model:Z(e.providers?.ollama?.model)===null,lancedbPath:Z(e.vector_store?.lancedb?.path)===null,embeddingModel:Z(e.search?.embedding_model)===null}}function ku(e){return e.baseUrl||e.model||e.lancedbPath||e.embeddingModel}function Ou(e,t,n){if(!t.baseUrl&&!t.model)return;let r=e.providers??={},o=r.ollama??={};t.baseUrl&&(o.base_url=_u),t.model&&(o.model=n)}function Du(e,t){if(!t.lancedbPath)return;let n=e.vector_store??={},r=n.lancedb??={};r.path=yu}function Nu(e,t,n){if(!t.embeddingModel)return;let r=e.search??={};r.embedding_model=n}function He(e){let t={settings:e,auto_ollama_defaults_applied:!1};if(Su()||Iu(e))return t;let n=Ru(e);if(!ku(n)||n.model&&!Cu())return t;let r=structuredClone(e),o=xu(r);return o?(Ou(r,n,o),Du(r,n),Nu(r,n,o),{settings:r,auto_ollama_defaults_applied:!0}):{...t,auto_ollama_defaults_skipped_reason:"no_installed_embedding_model",auto_ollama_defaults_remediation:`Run ollama pull ${hu} or configure providers.ollama.model explicitly (and search.embedding_model if you need an override).`}}import{spawn as Mu}from"node:child_process";import{mkdirSync as hs,rmSync as gs,statSync as Lu}from"node:fs";import cn 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]="9ecff496-8afa-5cfc-9178-2be8bd403978")}catch{}})();var ws="reindex",Pu="search/pending-refresh.json",$u="search/pending-refresh.gate.lock",Fu=3e4,ju="PM_SEARCH_REFRESH_INLINE",bs="PM_SEARCH_REFRESH_CHILD",zu=3e4;function ys(e){if(typeof e!="string")return!1;let t=e.trim().toLowerCase();return t==="1"||t==="true"||t==="yes"||t==="on"}function Uu(){if(ys(process.env[ju])||ys(process.env[bs]))return!0;let e=(process.env.NODE_ENV??"").trim().toLowerCase();return typeof process.env.VITEST=="string"||typeof process.env.VITEST_WORKER_ID=="string"||e==="test"}function Es(e){return cn.join(e,Pu)}function Ss(e){return cn.join(e,$u)}function Vu(e){let t=Ss(e);try{if(Date.now()-Lu(t).mtimeMs<Fu)return!1;gs(t,{recursive:!0,force:!0})}catch{}try{return hs(cn.dirname(t),{recursive:!0}),hs(t),!0}catch{return!1}}function Hu(e){try{gs(Ss(e),{recursive:!0,force:!0})}catch{}}async function Ts(e,t,n){for(let r=0;r<50;r+=1){if(Vu(e))try{return await t()}finally{Hu(e)}await qu(20)}return n}function qu(e){return new Promise(t=>{setTimeout(t,e)})}async function Or(e){let t=await C(Es(e));if(!t||t.trim().length===0)return[];try{let n=JSON.parse(t);return Array.isArray(n.ids)?n.ids.filter(r=>typeof r=="string"&&r.length>0):[]}catch{return[]}}async function vs(e,t){await v(Es(e),`${JSON.stringify({ids:t})}
|
|
15
|
+
`)}async function kr(e,t){let n=t.filter(o=>typeof o=="string"&&o.trim().length>0);if(n.length===0)return;let r=async()=>{let o=await Or(e),i=[...new Set([...o,...n])].sort((s,a)=>s.localeCompare(a));await vs(e,i)};await Ts(e,async()=>(await r(),!0),!1)||await r()}async function Bu(e){return Ts(e,async()=>{let t=await Or(e);return t.length>0&&await vs(e,[]),t},[])}function Wu(){return cn.join(st(import.meta.url,["../../.."]),"dist","cli","search-refresh.js")}function Dr(e){try{let t=Mu(process.execPath,[Wu()],{detached:!0,stdio:"ignore",env:{...process.env,PM_PATH:e,[bs]:"1"}});t.on("error",()=>{}),t.unref()}catch{}}function Gu(e){setTimeout(()=>Dr(e),zu)}async function Is(e,t){await kr(e,t),Dr(e)}async function Kb(e,t,n=Gu){let r=[],o=[];if(!await $(e))return{processed:o,rounds:0,warnings:r};let i;try{let l=await ze(e),u=l.warnings.find(f=>f.startsWith("settings_read_"));if(u)return n(e),{processed:o,rounds:0,warnings:[`search_background_refresh_settings_read_failed:${u}`]};i=He(l.settings).settings}catch(l){return n(e),{processed:o,rounds:0,warnings:[`search_background_refresh_settings_read_failed:${E(l)}`]}}let s=null;try{s=await be(e,ws,i.locks.ttl_seconds,lt(void 0,"pm-search-refresh"),!1,i.governance.force_required_for_stale_lock,i.locks.wait_ms)}catch{}if(!s)return{processed:o,rounds:0,warnings:r};let a=0,c=!1,d=!1;try{for(;;){let l=await Bu(e);if(l.length===0)break;a+=1;try{let u=await t(e,l);if(r.push(...u.warnings),u.warnings.some(f=>f.startsWith("search_semantic_refresh_skipped:settings_read_failed:"))){await kr(e,l),c=!0,d=!0;break}o.push(...u.refreshed)}catch(u){r.push(`search_background_refresh_failed:${E(u)}`),await kr(e,l),c=!0;break}}}finally{await s?.()}return d&&n(e),(c?[]:await Or(e)).length>0&&Dr(e),{processed:[...new Set(o)].sort((l,u)=>l.localeCompare(u)),rounds:a,warnings: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]="5db05e2f-4742-526b-b1c8-b97ff302b40e")}catch{}})();function St(e,t=!1){let n=e[0];if(n?.op!=="history_compact_baseline")return 0;let r=n.context?.history_compaction,o=typeof r=="object"&&r!==null&&"version_offset"in r?r.version_offset:void 0;if(typeof o=="number"&&Number.isSafeInteger(o)&&o>=0&&Number.isSafeInteger(o+e.length))return o;if(t)return null;throw new p("This compacted stream has no trustworthy version offset; numeric history addresses are unavailable.",m.USAGE,{code:"history_version_mapping_unavailable",required:"Use a retained timestamp or recover the pre-compaction stream from version control.",nextSteps:["Run pm history <id> --full to inspect the retained timestamps and checkpoint evidence."]})}(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]="ddc5bb8f-83bc-5121-a628-a501e7ed5a73")}catch{}})();function Yu(e,t){let n=-1;return e.forEach((r,o)=>{let i=Date.parse(r.ts);if(!Number.isFinite(i))throw new p(`History for this item contains invalid timestamp at entry ${o+1}.`,m.GENERIC_FAILURE);i<=t&&(n=o)}),n}function Ku(e,t){let n=e[0]?.ts??null,r=e.at(-1)?.ts??null,o={code:"history_target_out_of_range",required:"Choose a target within the available item history.",why:"Point-in-time reads and restores can only reconstruct recorded versions.",examples:[],nextSteps:["Run pm history <id> to inspect available versions and timestamps."],valid_range:{first_version:null,last_version:null,first_timestamp:n,last_timestamp:r}};return r!==null&&(o.examples=[r],t!==null&&(o.examples.unshift(String(t+1),String(t+e.length)),o.valid_range.first_version=t+1,o.valid_range.last_version=t+e.length)),{guidance:o,lastTimestamp:r}}function Xu(e,t){let n={};if(t instanceof Error&&t.message.trim().length>0&&(n.reason=t.message.trim()),typeof t!="object"||t===null)return n;let r=t;if(typeof r.index=="number"&&Number.isInteger(r.index)&&r.index>=0&&(n.patchIndex=r.index),typeof r.operation=="object"&&r.operation!==null){let o=r.operation;Object.assign(n,Object.fromEntries(["op","path","from"].flatMap(i=>{let s=o[i];return typeof s=="string"?[[i,s]]:[]})))}if(n.patchIndex!==void 0){let o=e[n.patchIndex];o&&(n.op??=o.op,n.path??=o.path,n.from??=o.from)}return n}function Cs(e,t,n={}){let r=e.trim(),o=n.errorSubject??"history",i=o==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=Ku(t,St(t,!0));if(!r)throw new p(`Missing ${o} target. Use a timestamp or version number.`,m.USAGE,s);if(/^\d+$/.test(r)){let l=St(t),u=Number(r);if(u>=1&&u<=l)throw new p(`History version ${u} was pruned by compaction.`,m.USAGE,{...s,code:"history_version_pruned"});if(!Number.isSafeInteger(u)||u<1||u>l+t.length)throw new p(`${i} version must be between ${l+1} and ${l+t.length} for this item.`,m.USAGE,s);return{kind:"version",raw:r,historyIndex:u-l-1}}let c=Date.parse(r);if(!Number.isFinite(c))throw new p(`Invalid ${o} target "${e}". Use a positive version number or ISO timestamp.`,m.USAGE,s);let d=Yu(t,c);if(d<0||n.allowFutureTimestamp!==!0&&c>Date.parse(a))throw new p(o==="restore"?`No history entries exist at or before timestamp ${r}.`:`No history entry exists at timestamp ${r}.`,m.USAGE,s);return{kind:"timestamp",raw:r,historyIndex:d}}function Nr(e,t,n,r){let o=ft(e,t);if(o.ok)return o.document;let i=Xu(t,o.error),s=[`history_op=${r}`,i.patchIndex===void 0?null:`patch_index=${i.patchIndex}`,i.op?`op=${i.op}`:null,i.path?`path=${i.path}`:null,i.from?`from=${i.from}`:null].filter(a=>a!==null);throw new p(`Failed to apply history patch at entry ${n} (${s.join(", ")}). ${i.reason??String(o.error)}`,m.GENERIC_FAILURE)}function As(e,t){let n=e[0];if(n&&n.op!=="create"&&n.op!=="history_compact_baseline"){let s=ft(mt,n.patch);if(!s.ok||typeof s.document.metadata.id!="string")throw new p("History starts without a reconstructable item baseline.",m.GENERIC_FAILURE,{code:"history_baseline_unavailable",required:"Recover the original create entry or a complete checkpoint from version control.",nextSteps:["Run pm history <id> --full to inspect the missing baseline."]})}let r=e.slice(0,t+1),o=pt([...r]),i=structuredClone(mt);for(let s=0;s<=t;s+=1){let a=e[s];if(!a)throw new p(`History target entry ${s+1} does not exist.`,m.USAGE);i=Nr(i,a.patch,s+1,a.op)}if(!o.ok)throw new p(`History cannot be replayed: ${o.errors.join(", ")}.`,m.GENERIC_FAILURE,{code:"history_replay_invalid",verification_errors:o.errors,required:"Inspect the history integrity findings before attempting recovery.",nextSteps:["Run pm history <id> --verify --full."]});return i}function oE(e,t){if(Object.keys(e.metadata).length>0){if(typeof e.metadata.id!="string"||!Array.isArray(e.metadata.tags))throw new p("History has no complete item baseline for this target.",m.GENERIC_FAILURE,{code:"history_baseline_unavailable",required:"Recover the original create entry or a complete checkpoint from version control.",nextSteps:["Run pm history <id> --full to inspect the first recorded state."]});return e}throw new p(`History target ${t.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,m.USAGE)}import xs from"node:fs/promises";import Tt from"node:path";import{isUtf8 as Ju}from"node:buffer";(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]="697f1dbe-8315-5901-ab11-e0c5211dbdbf")}catch{}})();var Qu=1048576,Zu=4194304;async function Rs(e,t){let n=Tt.dirname(e);for(;n!==Tt.parse(e).root;){let o=await xs.stat(n).catch(i=>{if(N(i))return null;throw i});if(o!==null){if(!o.isDirectory())throw new p("Workflow policy storage ancestor must be a directory.",m.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Restore the policy or approval history directory before retrying."]});break}n=Tt.dirname(n)}let r=await xs.open(e,"r").catch(o=>{if(N(o))return null;throw o});if(r===null)return null;try{let o=(await r.stat()).size,i=Buffer.alloc(Math.min(t,o)+1),s=0;for(;s<i.length;){let a=await r.read(i,s,i.length-s,s);if(a.bytesRead===0)break;s+=a.bytesRead}if(s===i.length||!Ju(i.subarray(0,s)))throw new p("Workflow policy input exceeds its byte bound or is not valid UTF-8.",m.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Inspect the policy and approval history; reduce the declaration or use verified history compaction before retrying."]});return i.toString("utf8",0,s)}finally{await r.close()}}function em(e){if(e===null)return{version:1,enforcement:"advise",policies:[]};let t;try{t=JSON.parse(e)}catch{throw new p("schema/policies.json must contain valid JSON.",m.CONFLICT,{code:"workflow_policy_registry_invalid",nextSteps:["Restore valid policy JSON before retrying the mutation."]})}return si(t)}async function tm(e){return em(await Rs(Tt.join(e,"schema","policies.json"),Qu))}async function nm(e,t){let n=await Rs(Q(e,t),Zu);if(n===null)return[];let r;try{if(r=n.split(/\r?\n/).filter(o=>o.trim()).map(o=>JSON.parse(o)),!pt(r).ok)throw new Error("invalid chain")}catch{throw new p("Approval evidence requires a valid item history chain.",m.CONFLICT,{code:"workflow_policy_approval_history_invalid",nextSteps:[`Run pm history ${t} --verify before recording or using an approval.`]})}return r.flatMap(o=>{let i=o.context?.workflow_approval;if(o.op!=="policy_approve"||o.record_hash_version!==1||typeof o.record_hash!="string"||typeof i!="object"||i===null)return[];let s=i;return typeof s.policy_fingerprint!="string"||typeof s.content_fingerprint!="string"?[]:[{policy_fingerprint:s.policy_fingerprint,content_fingerprint:s.content_fingerprint,author:o.author}]})}async function rm(e,t,n){let r=n.before?.status!==n.after?.status&&t.policies.some(s=>s.rule.kind==="approval"&&ai(s,n)),o=n.before?.id??n.after?.id,i=r&&typeof o=="string"?await nm(e,o):[];return ci(t,{...n,approvals:i})}async function Mr(e){let t=await tm(e.pmRoot),n=await rm(e.pmRoot,t,{operation:e.operation,author:e.author,before:e.before?{...e.before.metadata,body:e.before.body}:null,after:e.after?{...e.after.metadata,body:e.after.body}:null});if(n.allowed)return n;let r=n.decisions.filter(f=>!f.satisfied&&f.effect==="refuse"),o=[],i="";if(!e.dryRun)try{let f=await mr({pmRoot:e.pmRoot,op:"policy_refused",author:e.author,context:{item_id:e.after?.metadata.id??e.before?.metadata.id,operation:e.operation,workflow_policies:n.decisions},message:"Workflow policy refused a proposed item mutation.",lockTtlSeconds:e.settings.locks.ttl_seconds,lockWaitMs:e.settings.locks.wait_ms});o.push({path:"history/_workspace.jsonl",op:"policy_refused",record_hash:f.entry.record_hash}),i=" Audit appended to tracker-relative history/_workspace.jsonl; retain it with the workspace changes. Each refused attempt records its own audit event."}catch(f){let _=new p("Workflow policy refusal could not be recorded in workspace history.",m.CONFLICT,{code:"workflow_policy_audit_failed",nextSteps:["Resolve workspace-history lock or storage failures, then retry the refused mutation; no item changes were written."]});throw _.cause=f,_}let s=r.slice(0,3).map(f=>({policy_id:f.policy_id,rule:f.rule,description:t.policies.find(_=>_.id===f.policy_id).description,missing_fields:f.missing_fields})),a=[...new Set(s.flatMap(f=>f.missing_fields))],c=s.map(f=>`${f.policy_id} (${f.rule})`).join(", "),d=r.length>3?` and ${r.length-3} more`:"",l=e.after?.metadata.id??e.before.metadata.id,u=a.map(f=>{if(e.before===null)return`Supply ${f} in the original ${e.operation} request, then retry; the item was not created.`;let _=er("update",f);return _===void 0?`Supply ${f} using its declared SDK or package mutation contract, then retry.`:ye(["update",l,tr("update",_),`<${f}>`,"--pm-path",Tt.resolve(e.pmRoot)])});throw new p(`Workflow policy refused ${e.operation}: ${c}${d}.${a.length?` Missing: ${a.join(", ")}.`:""}${i}`,m.CONFLICT,{code:"workflow_policy_refused",side_effects:o,reason:s.map(f=>f.policy_id).join(","),policy_violations:s,policy_violation_count:r.length,required:a.length?`Supply missing fields: ${a.join(", ")}, then retry the refused mutation.`:"Satisfy the declared workflow policy before retrying.",why:s.map(f=>f.description).filter(Boolean).join(" ")||void 0,recovery:{missing_required_fields:a},nextSteps:[...u,...new Set(r.slice(0,3).filter(f=>f.missing_fields.length===0).map(f=>f.remediation)),...r.length>3?[`Inspect all policies with pm schema policies before retrying ${e.operation}.`]:[]]})}import{AsyncLocalStorage as om}from"node:async_hooks";import{channel as im}from"node:diagnostics_channel";(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]="b2b2d49a-bb8c-54d7-89d2-1dbe76879129")}catch{}})();var Lr=new om,Pr=im("@unbrained/pm-cli/item-metadata-enumeration/v1");function dn(e){Pr.publish(e)}async function EE(e){let t={enumeration_calls:0,metadata_rows:0},n=r=>{Lr.getStore()?.includes(t)&&(t.enumeration_calls+=1,t.metadata_rows+=r)};Pr.subscribe(n);try{return{result:await Lr.run([...Lr.getStore()??[],t],e),work:{...t}}}finally{Pr.unsubscribe(n)}}import{AsyncLocalStorage as ks}from"node:async_hooks";import{realpathSync as sm}from"node:fs";import Fr 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]="0463fdc5-c219-53ba-bf61-9d9635367cb1")}catch{}})();var $r=new ks;function kE(e,t){return $r.run([...$r.getStore()??[],{...e,pmRoot:Fr.resolve(e.pmRoot)}],t)}var am=Symbol.for("@unbrained/pm-cli/item-revision-scopes"),cm=globalThis,ln=cm[am]??=new ks;function jr(e){let t=Fr.resolve(e);try{return sm.native(t)}catch{return t}}function OE(){return{entries:new Map}}function DE(e,t){return ln.run([...ln.getStore()??[],e],t)}function NE(e,t,n){let r=jr(t);if(e.pmRoot!==void 0&&e.pmRoot!==r)throw new p("An expected-revision scope is already bound to another tracker.",m.USAGE,{code:"expected_revision_scope_conflict",required:"Bind expected item revisions for one tracker per scope."});e.pmRoot=r;for(let{id:o,itemHash:i}of n){let s=e.entries.get(o);if(s!==void 0&&s.declared!==i)throw new p(`Item ${o} has two different expected revisions.`,m.USAGE,{code:"expected_revision_duplicate",item_id:o,required:"Declare at most one expected revision per item."});e.entries.set(o,s??{declared:i,expected:i,checked:!1,committed:!1})}}function ME(e){let t=[...e.entries.entries()];return{checked:t.filter(([,n])=>n.checked).map(([n])=>n),unchecked:t.filter(([,n])=>!n.checked).map(([n])=>n)}}function zr(e,t){let n=ln.getStore()??[];if(n.length===0)return[];let r=jr(e),o=new Set(t.filter(i=>typeof i=="string"));return[...new Set(n.flatMap(i=>i.pmRoot===r?[...o].flatMap(s=>i.entries.get(s)??[]):[]))]}function LE(e){let t=jr(e);return(ln.getStore()??[]).some(n=>n.pmRoot===t&&n.entries.size>0)}function dm(e,t,n){let r=zr(e,[n,t.metadata.id]);r.length>0&&Os(r,n,Yt(t),!1)}function PE(e,t,n){let r=zr(e,[t]);r.length>0&&Os(r,t,oi(n),!0)}function Os(e,t,n,r){for(let o of e)if(o.checked=!0,!(!r&&o.expected===n))throw new p(`Item ${t} is no longer at the expected revision ${o.expected.slice(0,12)}${r?" (its live document cannot be read)":""}; refusing to write over a revision this decision did not see.${o.committed?" Earlier writes by this same invocation already committed.":" Nothing was written to this item."}`,m.CONFLICT,{code:"item_revision_conflict",item_id:t,expected_revision:o.expected,current_revision:n,required:r?`Recover ${t} without --expect-hash (pm restore ${t} <version>), since no declared revision describes an unreadable document.`:`Re-read ${t} (pm get ${t} --json reports item_hash), decide again against the current revision, then retry with --expect-hash <item_hash>.`,why:"The caller declared the revision its decision was based on, and another write changed the item before this locked write.",examples:[`pm get ${t} --fields item_hash --json`,`pm history ${t} --limit 5`],nextSteps:[`pm get ${t} --json`,`pm history ${t} --limit 5`]})}function Ur(e,t,n=t.metadata.id){dm(e,t,n);for(let r of Vr(e,[n,t.metadata.id]))r.validate(t)}function Vr(e,t){let n=Fr.resolve(e);return($r.getStore()??[]).filter(r=>r.pmRoot===n&&t.includes(r.id))}function Hr(e,t,n=t.metadata.id,r=[]){let o=zr(e,[n,t.metadata.id,...r]);if(o.length>0){let i=Yt(t);for(let s of o)s.expected=i,s.committed=!0}for(let i of Vr(e,[n,t.metadata.id,...r]))i.committed?.(t)}function Ds(e,t){return Object.assign({},...Vr(e,t).map(n=>n.historyContext))}import Te from"node:fs/promises";import Ms from"node:path";import{randomUUID as lm}from"node:crypto";import{createRequire as um}from"node:module";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="84a3dae8-69b6-589d-a8ec-11f77c1d103a")}catch{}})();var mm="metadata-query-index.sqlite",vt="5",qr;function It(){return qr!==void 0||(qr=Ci(process.versions.node,um(import.meta.url))),qr}function Ns(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function qe(e){return Ms.join(e,"runtime",mm)}function fm(e){e.exec(`
|
|
16
|
+
PRAGMA foreign_keys = ON;
|
|
17
|
+
PRAGMA journal_mode = OFF;
|
|
18
|
+
PRAGMA synchronous = OFF;
|
|
19
|
+
CREATE TABLE metadata (
|
|
20
|
+
key TEXT PRIMARY KEY,
|
|
21
|
+
value TEXT NOT NULL
|
|
22
|
+
) STRICT;
|
|
23
|
+
CREATE TABLE items (
|
|
24
|
+
id TEXT PRIMARY KEY,
|
|
25
|
+
relative_path TEXT NOT NULL UNIQUE,
|
|
26
|
+
metadata_json TEXT NOT NULL,
|
|
27
|
+
status TEXT NOT NULL,
|
|
28
|
+
type TEXT NOT NULL,
|
|
29
|
+
priority INTEGER NOT NULL,
|
|
30
|
+
updated_at TEXT NOT NULL,
|
|
31
|
+
created_at TEXT NOT NULL,
|
|
32
|
+
parent TEXT,
|
|
33
|
+
assignee TEXT,
|
|
34
|
+
sprint TEXT,
|
|
35
|
+
release TEXT
|
|
36
|
+
) STRICT;
|
|
37
|
+
CREATE INDEX items_default_order
|
|
38
|
+
ON items(priority, updated_at DESC, id);
|
|
39
|
+
CREATE INDEX items_status_default_order
|
|
40
|
+
ON items(status, priority, updated_at DESC, id);
|
|
41
|
+
CREATE INDEX items_type_default_order
|
|
42
|
+
ON items(type, priority, updated_at DESC, id);
|
|
43
|
+
CREATE INDEX items_parent_default_order
|
|
44
|
+
ON items(parent, priority, updated_at DESC, id);
|
|
45
|
+
CREATE TABLE item_metadata_keys (
|
|
46
|
+
item_id TEXT NOT NULL,
|
|
47
|
+
key TEXT NOT NULL,
|
|
48
|
+
PRIMARY KEY(item_id, key),
|
|
49
|
+
FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
|
|
50
|
+
) STRICT;
|
|
51
|
+
CREATE INDEX item_metadata_keys_key_item
|
|
52
|
+
ON item_metadata_keys(key, item_id);
|
|
53
|
+
CREATE TABLE item_linked_files (
|
|
54
|
+
item_id TEXT NOT NULL,
|
|
55
|
+
path TEXT NOT NULL,
|
|
56
|
+
scope TEXT NOT NULL,
|
|
57
|
+
note TEXT,
|
|
58
|
+
PRIMARY KEY(item_id, path, scope),
|
|
59
|
+
FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
|
|
60
|
+
) STRICT;
|
|
61
|
+
CREATE INDEX item_linked_files_path_scope_item
|
|
62
|
+
ON item_linked_files(path, scope, item_id);
|
|
63
|
+
CREATE VIRTUAL TABLE item_search USING fts5(
|
|
64
|
+
id UNINDEXED,
|
|
65
|
+
title,
|
|
66
|
+
description,
|
|
67
|
+
tags,
|
|
68
|
+
tokenize = 'unicode61'
|
|
69
|
+
);
|
|
70
|
+
`)}function mn(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function Ls(e,t){let n=t.metadata;e.prepare(`INSERT INTO items(
|
|
71
|
+
id, relative_path, metadata_json, status, type, priority,
|
|
72
|
+
updated_at, created_at, parent, assignee, sprint, release
|
|
73
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
74
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
75
|
+
relative_path = excluded.relative_path,
|
|
76
|
+
metadata_json = excluded.metadata_json,
|
|
77
|
+
status = excluded.status,
|
|
78
|
+
type = excluded.type,
|
|
79
|
+
priority = excluded.priority,
|
|
80
|
+
updated_at = excluded.updated_at,
|
|
81
|
+
created_at = excluded.created_at,
|
|
82
|
+
parent = excluded.parent,
|
|
83
|
+
assignee = excluded.assignee,
|
|
84
|
+
sprint = excluded.sprint,
|
|
85
|
+
release = excluded.release`).run(n.id,t.relativePath,JSON.stringify(n),n.status,n.type,n.priority,n.updated_at,n.created_at,n.parent??null,n.assignee??null,n.sprint??null,n.release??null),e.prepare("DELETE FROM item_metadata_keys WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_linked_files WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_search WHERE rowid = (SELECT rowid FROM items WHERE id = ?)").run(n.id),e.prepare("INSERT INTO item_search(rowid, id, title, description, tags) SELECT rowid, ?, ?, ?, ? FROM items WHERE id = ?").run(n.id,n.title,n.description,n.tags.join(" "),n.id);let r=e.prepare("INSERT INTO item_metadata_keys(item_id, key) VALUES (?, ?)");for(let i of Object.keys(n))r.run(n.id,i);let o=e.prepare("INSERT INTO item_linked_files(item_id, path, scope, note) VALUES (?, ?, ?, ?)");for(let i of t.linkedFiles??[])o.run(n.id,i.path,i.scope,i.note??null)}async function Ps(e){let t=qe(e.pmRoot),n=It();if(!n){await Te.rm(t,{force:!0});return}await Te.mkdir(Ms.dirname(t),{recursive:!0});let r=`${t}.${lm()}.tmp`,o;try{o=new n(r),fm(o),o.exec("BEGIN IMMEDIATE"),mn(o,"version",vt),mn(o,"context_fingerprint",e.contextFingerprint),mn(o,"source_cursor",e.sourceCursor);for(let i of e.rows)Ls(o,i);o.exec("COMMIT"),o.close(),o=void 0,await Te.rm(t,{force:!0}),await Te.rename(r,t)}catch(i){throw o?.close(),await Promise.allSettled([Te.rm(r,{force:!0})]),i}}function fn(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function $s(e){let t=It();if(!t)return!1;let n=qe(e.pmRoot),r;try{await Te.access(n),r=new t(n),r.exec("PRAGMA foreign_keys = ON");let o=fn(r);if(o.version!==vt||o.context_fingerprint!==e.contextFingerprint||o.source_cursor!==e.expectedSourceCursor)return r.close(),!1;r.exec("BEGIN IMMEDIATE");let i=r.prepare("DELETE FROM items WHERE relative_path = ?"),s=r.prepare("SELECT rowid FROM items WHERE relative_path = ?"),a=r.prepare("DELETE FROM item_search WHERE rowid = ?");for(let c of e.deletedRelativePaths??[]){let d=s.get(c);i.run(c),d&&a.run(d.rowid)}return e.row&&Ls(r,e.row),mn(r,"source_cursor",e.sourceCursor),r.exec("COMMIT"),r.close(),!0}catch{try{r?.exec("ROLLBACK")}catch{}return r?.close(),!1}}function un(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function pm(e){let t=[],n=[];un(t,n,"status",e.statuses,"IN"),un(t,n,"status",e.excludeStatuses,"NOT IN"),un(t,n,"type",e.types,"IN"),un(t,n,"id",e.ids,"IN");for(let r of e.metadataKeys??[])t.push("EXISTS (SELECT 1 FROM item_metadata_keys AS indexed_key WHERE indexed_key.item_id = items.id AND indexed_key.key = ?)"),n.push(r);for(let[r,o]of[["parent",e.parent],["assignee",e.assignee],["sprint",e.sprint],["release",e.release]])o!==void 0&&(t.push(`${r} = ?`),n.push(o));return e.priority!==void 0&&(t.push("priority = ?"),n.push(e.priority)),{where:t.length===0?"":` WHERE ${t.join(" AND ")}`,parameters:n}}async function qE(e){let t=It();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=pm(n),i;try{i=new t(qe(e.pmRoot),{readOnly:!0});let s=fn(i);if(s.version!==vt||s.source_cursor!==e.expectedSourceCursor)return i.close(),null;let a=i.prepare(`SELECT COUNT(*) AS count FROM items${r}`).get(...o),c=[],d="";n.limit!==void 0?(d+=" LIMIT ?",c.push(Math.max(0,Math.floor(n.limit))),n.offset!==void 0&&(d+=" OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))))):n.offset!==void 0&&(d+=" LIMIT -1 OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))));let l=i.prepare(`SELECT metadata_json FROM items${r}
|
|
86
|
+
ORDER BY ${n.terminalStatuses&&n.terminalStatuses.length>0?`CASE WHEN status IN (${n.terminalStatuses.map(()=>"?").join(", ")}) THEN 1 ELSE 0 END ASC, `:""}priority ASC, updated_at DESC, id ASC${d}`).all(...o,...n.terminalStatuses??[],...c).map(u=>{let f=JSON.parse(String(u.metadata_json));if(!f.id)throw new TypeError("Indexed metadata row has no id");return f});return i.close(),{source_cursor:s.source_cursor,total:Number(a.count),items:l}}catch{return i?.close(),null}}async function BE(e){let t=It();if(!t||e.paths.length===0)return null;let n;try{n=new t(qe(e.pmRoot),{readOnly:!0});let r=fn(n);if(r.version!==vt||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let o=e.paths.map(()=>"?").join(", "),i=e.scope===void 0?"":" AND scope = ?",s=[...e.paths,...e.scope===void 0?[]:[e.scope]],a=`path IN (${o})${i}`,c=n.prepare(`SELECT COUNT(DISTINCT item_id) AS count
|
|
87
|
+
FROM item_linked_files
|
|
88
|
+
WHERE ${a}`).get(...s),d=Ns(e.limit,50),l=Ns(e.offset,0),u=n.prepare(`SELECT items.id, items.metadata_json
|
|
89
|
+
FROM items
|
|
90
|
+
WHERE EXISTS (
|
|
91
|
+
SELECT 1 FROM item_linked_files
|
|
92
|
+
WHERE item_linked_files.item_id = items.id AND ${a}
|
|
93
|
+
)
|
|
94
|
+
ORDER BY items.priority ASC, items.updated_at DESC, items.id ASC
|
|
95
|
+
LIMIT ? OFFSET ?`).all(...s,d,l),f=[];if(u.length>0){let _=u.map(y=>String(y.id)),h=n.prepare(`SELECT item_id, path, scope, note
|
|
96
|
+
FROM item_linked_files
|
|
97
|
+
WHERE item_id IN (${_.map(()=>"?").join(", ")})
|
|
98
|
+
AND ${a}
|
|
99
|
+
ORDER BY path ASC, scope ASC`).all(..._,...s),g=new Map(_.map(y=>[y,[]]));for(let y of h){let w=String(y.item_id),S=g.get(w);S.push({path:String(y.path),scope:String(y.scope),...y.note===null?{}:{note:String(y.note)}}),g.set(w,S)}for(let y of u){let w=JSON.parse(String(y.metadata_json));f.push({item:w,files:g.get(String(y.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:f}}catch{return n?.close(),null}}async function WE(e){let t=It();if(!t)return null;let n;try{n=new t(qe(e.pmRoot),{readOnly:!0});let r=fn(n);if(r.version!==vt||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let o=n.prepare(`SELECT items.metadata_json
|
|
100
|
+
FROM item_search
|
|
101
|
+
JOIN items ON items.id = item_search.id
|
|
102
|
+
WHERE item_search MATCH ?
|
|
103
|
+
ORDER BY bm25(item_search), items.priority, items.updated_at DESC, items.id
|
|
104
|
+
LIMIT ?`).all(e.query,Math.max(0,Math.floor(e.limit))).map(i=>JSON.parse(String(i.metadata_json)));return n.close(),{source_cursor:r.source_cursor,items:o}}catch{return n?.close(),null}}async function pn(e){await Te.rm(qe(e),{force:!0})}import O from"node:fs/promises";import T from"node:path";import{createHash as _m,randomUUID as Vs}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]="846c1c5d-8a5c-56ee-832a-bfc780283e70")}catch{}})();var ee=8,Hs=500,hm="metadata-derived-index",ym="metadata-cache.json",gm="metadata-cache-bodies.json",wm="metadata-cache-collections.json",bm="metadata-cache-delta.json",Em="metadata-cache-manifest.json",Fs=4,Sm=["comments","notes","learnings","files","tests","test_runs","docs"];function qs(){return Et(le())}function hn(e){let t={...e},n={};for(let r of Sm)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function Bs(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function Ws(e,t,n,r){let o=_m("sha256");o.update(`format:${e??"default"}`);let i=Object.entries(t).sort(([s],[a])=>s.localeCompare(a)).map(([s,a])=>`${s}=${a}`).join(",");return o.update(`|types:${i}`),n&&o.update(`|schema:${JSON.stringify(n)}`),r.length>0&&o.update(`|extension_fields:${r.join(",")}`),o.digest("hex").slice(0,16)}function yn(e){return T.join(e,"runtime",ym)}function gn(e){return T.join(e,"runtime",gm)}function wn(e){return T.join(e,"runtime",wm)}function Wr(e){return T.join(e,"runtime",bm)}function Gr(e){return T.join(e,"runtime",Em)}function bn(e,t){let n=T.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var Tm=24,H=new Map,En=new WeakMap;function Yr(e){return En.get(e)??e.source_cursor}function vm(e,t){let n=Yr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){En.set(e,n);for(let[r,o]of Object.entries(t.changes))o.entry?e.entries[r]=o.entry:delete e.entries[r];e.directory_signatures=t.directory_signatures,e.source_cursor=t.source_cursor}}function Im(e,t){if(!e)return;let n=Yr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){En.set(e,n);for(let[r,o]of Object.entries(t.changes))o.body?e.bodies[r]=o.body:delete e.bodies[r];e.source_cursor=t.source_cursor}}function Cm(e,t){if(!e)return;let n=Yr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){En.set(e,n);for(let[r,o]of Object.entries(t.changes))o.collections?e.collections[r]=o.collections:delete e.collections[r];e.source_cursor=t.source_cursor}}function Am(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(vm(e,r),Im(t,r),Cm(n,r))}function Br(e,t){H.size>=Tm&&!H.has(e)&&yi(H),H.set(e,t)}async function fe(e,t){let n;try{n=await O.stat(e)}catch{return H.delete(e),null}let r=H.get(e);if(r&&Ct(r.signature,n.mtimeMs,n.ctimeMs,n.size))return H.delete(e),H.set(e,r),r.envelope;let o;try{o=t(await O.readFile(e,"utf8"))}catch{o=null}return Br(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function xm(e,t,n){let r=a=>{let c=JSON.parse(a);return c.version!==ee||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=yn(e),i=await fe(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await fe(bn(o,t),r);return s===null&&Rt(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function Rm(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ee||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=gn(e),o=await fe(r,n);return t&&o?.context_fingerprint!==t?await fe(bn(r,t),n):o}async function km(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ee||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=wn(e),o=await fe(r,n);return t&&o?.context_fingerprint!==t?await fe(bn(r,t),n):o}async function Kr(e){let t=Wr(e),n=await fe(t,r=>{let o=JSON.parse(r);return o.version!==ee||typeof o.base_source_cursor!="string"||typeof o.source_cursor!="string"||typeof o.changes!="object"||o.changes===null?null:o});if(n)return{envelope:n,invalid:!1};try{return await O.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function Xr(e){let t=Gr(e),n=await fe(t,r=>{let o=JSON.parse(r);return o.version!==ee||typeof o.context_fingerprint!="string"||typeof o.source_cursor!="string"||!Number.isInteger(o.entry_count)||o.entry_count<0||typeof o.directory_signatures!="object"||o.directory_signatures===null?null:o});if(n)return n;try{await O.stat(t),await Be(e)}catch{}return null}async function At(e,t){await O.mkdir(T.dirname(e),{recursive:!0}),await v(e,JSON.stringify(t));try{let r=await O.stat(e);Br(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{H.delete(e)}let n=T.dirname(T.dirname(e));if(e===yn(n)||e===gn(n)||e===wn(n)){let r=bn(e,t.context_fingerprint);await v(r,JSON.stringify(t));try{let c=await O.stat(r);Br(r,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{H.delete(r)}let o=T.dirname(e),i=T.extname(e),s=T.basename(e,i),a=(await O.readdir(o,{withFileTypes:!0}).catch(()=>[])).filter(c=>c.isFile()&&c.name!==T.basename(e)&&c.name.startsWith(`${s}.`)&&c.name.endsWith(i)).map(c=>T.join(o,c.name));if(a.length>Fs){let c=(await Promise.all(a.map(async d=>{try{return{path:d,mtime:(await O.stat(d)).mtimeMs}}catch{return null}}))).filter(d=>d!==null);for(let d of c.sort((l,u)=>l.mtime-u.mtime).slice(0,Math.max(0,c.length-Fs)))await O.rm(d.path,{force:!0}),H.delete(d.path)}}}function Om(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function Gs(e,t,n){return e===void 0||Om(e,t,n)}function Rt(e,t){e&&!e.includes(t)&&e.push(t)}function Ct(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function Dm(e,t,n){let r=T.join(e,t);try{let o=await O.readdir(r);return{folder:t,dirPath:r,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&!N(o)&&Rt(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function Nm(e,t){try{let n=await O.stat(T.join(e,t));return[t,{exists:!0,mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size}]}catch{return[t,{exists:!1,mtime_ms:0,ctime_ms:0,size:0}]}}async function _n(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await Nm(e,n))))}function xt(e,t){return!e||Object.keys(e).length!==Object.keys(t).length?!1:Object.entries(t).every(([n,r])=>{let o=e[n];return o!==void 0&&o.exists===r.exists&&Ct(o,r.mtime_ms,r.ctime_ms,r.size)})}function Mm(e){return Ht.some(t=>e.toLowerCase().endsWith(t))}function Lm(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function Pm(e,t,n){if(n)for(let r of await we({path:e,scope:"project"}))Rt(t,r)}function js(e,t,n,r){if(e)return t&&n?n.collections:r}async function $m(e,t,n){let r=await O.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=ot(e);await Pm(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],d=!n.forceSourceRead&&c!==void 0&&Ct(c,o,i,s),l=n.previousBodies[t],u=!n.forceSourceRead&&l!==void 0&&Ct(l,o,i,s),f=n.previousCollections[t],_=!n.forceSourceRead&&f!==void 0&&Ct(f,o,i,s);if(!(!d||n.includeBody&&!u||n.includeCollections&&!_))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:c.metadata,heavyMetadata:js(n.includeCollections,_,f,void 0),bodyLength:c.body_length,body:n.includeBody?l.body:void 0};let h=await O.readFile(e,"utf8"),g=ue(h,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:w=>Rt(n.warnings,w)}),y=hn(g.metadata);return Lm(n.state.misses,n.includeBody,n.includeCollections,d,u,_),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:d?c.metadata:y.light,heavyMetadata:js(n.includeCollections,_,f,y.heavy),bodyLength:d?c.body_length:g.body.length,body:n.includeBody?g.body:void 0}}function Fm(e,t,n,r){n.state.newEntries[t]={mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size,metadata:r.lightMetadata,body_length:r.bodyLength},n.includeBody&&r.body!==void 0&&(n.state.newBodies[t]={mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size,body:r.body}),n.includeCollections&&r.heavyMetadata!==void 0&&(n.state.newCollections[t]={mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size,collections:r.heavyMetadata});let o=n.includeCollections?Bs(r.lightMetadata,r.heavyMetadata):r.lightMetadata,i=n.state.documentsById.get(o.id),s={metadata:o,body:r.body,item_format:r.itemFormat,item_path:e};Gs(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function jm(e,t,n,r){try{let o=await $m(t,n,r);Fm(t,n,r,o)}catch{Rt(r.warnings,`item_list_item_read_failed:${e}/${T.basename(t)}`)}}function zm(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function Um(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function Vm(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function Hm(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}async function qm(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!Mm(s))continue;let a=T.join(o,s),c=T.relative(t.pmRoot,a);n.push(jm(r,a,c,t)),n.length===32&&(await Promise.all(n),n.length=0)}await Promise.all(n)}async function Bm(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!xt(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await At(yn(e.pmRoot),{version:ee,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await At(Gr(e.pmRoot),{version:ee,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,entry_count:Object.keys(e.state.newEntries).length,directory_signatures:e.directorySignatures});let t=[...e.state.documentsById.values()].map(({candidate:n})=>({relativePath:T.relative(e.pmRoot,n.item_path),metadata:hn(n.metadata).light,linkedFiles:n.metadata.files??[]}));t.length>=e.minimumIndexedItems?await Ps({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:t}):await pn(e.pmRoot)}catch{}}async function Wm(e){!(e.state.misses.body||Object.keys(e.previousBodies).length!==Object.keys(e.state.newBodies).length)&&e.existingBodyCache!==null&&e.existingBodyCache.context_fingerprint===e.contextFingerprint||await At(gn(e.pmRoot),{version:ee,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function Gm(e){!(e.state.misses.collections||Object.keys(e.previousCollections).length!==Object.keys(e.state.newCollections).length)&&e.existingCollectionsCache!==null&&e.existingCollectionsCache.context_fingerprint===e.contextFingerprint||await At(wn(e.pmRoot),{version:ee,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function Jr(e,t,n={}){let r=await Xr(e);return n.required!==!0&&(r===null||r.entry_count<Hs)?async()=>{}:be(e,hm,30,t,!1,!1,3e3)}async function iS(e,t){let n=await Xr(e);if(n===null)return null;let r=await Kr(e);if(r.invalid)return await Be(e),null;let o=r.envelope?.context_fingerprint===n.context_fingerprint&&r.envelope.base_source_cursor===n.source_cursor?r.envelope.source_cursor:n.source_cursor,i=r.envelope?.context_fingerprint===n.context_fingerprint&&r.envelope.base_source_cursor===n.source_cursor?r.envelope.directory_signatures:n.directory_signatures;return t&&!xt(i,await _n(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function zs(e,t){let n=T.relative(e,t);return n===""||n===".."||n.startsWith(`..${T.sep}`)||T.isAbsolute(n)?null:n}async function Be(e){await Promise.all([yn(e),gn(e),wn(e),Wr(e),Gr(e)].map(async t=>{await O.rm(t,{force:!0}),H.delete(t)})),await pn(e)}async function Ym(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await O.stat(e.mutation.itemPath),n=hn(e.mutation.document.metadata),r={mtime_ms:t.mtimeMs,ctime_ms:t.ctimeMs,size:t.size};return{entry:{...r,metadata:n.light,body_length:e.mutation.document.body.length},body:{...r,body:e.mutation.document.body},collections:{...r,collections:n.heavy}}}function Km(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function Qr(e){let t=zs(e.pmRoot,e.itemPath),n=e.previousItemPath?zs(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await Be(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=Ws(e.preferredFormat,e.typeToFolder,e.schema,qs()),o=await Xr(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await Kr(e.pmRoot);if(s.invalid)return await Be(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=Km(s.envelope,r,i),c=s.envelope?.context_fingerprint===r&&s.envelope.base_source_cursor===i?s.envelope.source_cursor:i;n!==void 0&&(a[n]={entry:null,body:null,collections:null}),a[t]=await Ym({mutation:e});let d=Vs();return await At(Wr(e.pmRoot),{version:ee,context_fingerprint:r,base_source_cursor:i,source_cursor:d,directory_signatures:await _n(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await $s({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:d,row:e.document===null?null:{relativePath:t,metadata:hn(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await pn(e.pmRoot),[]}catch{return await Be(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function Xm(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function Us(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function Jm(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function Qm(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=ot(n);if(!o)continue;let i=e.includeCollections?Bs(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);Gs(s?.itemFormat,o,e.preferredFormat)&&t.set(i.id,{itemFormat:o,candidate:{metadata:i,body:e.includeBody?e.previousBodies[n]?.body:void 0,item_format:o,item_path:T.join(e.pmRoot,n)}})}return[...t.values()].sort((n,r)=>n.candidate.metadata.id.localeCompare(r.candidate.metadata.id)).map(n=>n.candidate)}function Zm(e){return e.forceSourceScan||ir()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!xt(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||Us(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||Us(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&Jm(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function kt(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=qs(),d=Ws(t,n,o,c),l=await Kr(e);l.invalid&&await Be(e);let u=await xm(e,d,i.cacheDiagnostics),f=s?await Rm(e,d):null,_=a?await km(e,d):null;Am(u,f,_,l.envelope);let h=zm(u,d),g=Um(f,d),y=Vm(_,d),w=[...new Set(Object.values(n))],S=await _n(e,w),A=Object.keys(h),k=Math.max(1,Math.floor(i.derivedIndexMinimumItems??Hs));if(Zm({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:d,existingCache:u,existingBodyCache:f,existingCollectionsCache:_,directorySignatures:S,entryKeys:A,minimumIndexedItems:k,includeBody:s,includeCollections:a,previousBodies:g,previousCollections:y}))return Qm({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:h,previousBodies:g,previousCollections:y});let I=await Promise.all(w.map(Pe=>Dm(e,Pe,r))),P=ir(),F=Hm(),ie={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,forceSourceRead:i.forceSourceScan===!0,dispatchReadHooks:P,previousEntries:h,previousBodies:g,previousCollections:y,state:F};await qm(I,ie);let B=await _n(e,w),V=xt(S,B)?B:{},Ze=F.misses.metadata||Object.keys(h).length!==Object.keys(F.newEntries).length||!xt(u?.directory_signatures,V)||u===null?Vs():u.source_cursor;return await Bm({pmRoot:e,contextFingerprint:d,sourceCursor:Ze,existingCache:u,previousEntries:h,directorySignatures:V,state:F,minimumIndexedItems:k}),s&&await Wm({pmRoot:e,contextFingerprint:d,sourceCursor:Ze,existingBodyCache:f,previousBodies:g,state:F}),a&&await Gm({pmRoot:e,contextFingerprint:d,sourceCursor:Ze,existingCollectionsCache:_,previousCollections:y,state:F}),Xm(F)}async function Ys(e,t,n,r,o){return(await kt(e,t,n,r,o,{includeBody:!1})).map(i=>({metadata:i.metadata,body:i.body??""}))}async function Ks(e,t,n,r,o){return(await kt(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(i=>({metadata:i.metadata,body:i.body??""}))}import ve from"node:fs/promises";import{statSync as ef}from"node:fs";(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]="be69f1e8-4543-5cf5-abb0-9d38ca1d0cc6")}catch{}})();function tf(e,t){let n=-1,r=structuredClone(mt);for(let[a,c]of e.entries()){if(r=Nr(r,c.patch,a+1,c.op),r.metadata.id!==void 0&&r.metadata.id!==t)throw new p(`History belongs to item ${String(r.metadata.id)}, expected ${t}.`,m.GENERIC_FAILURE,{code:"history_replay_invalid",required:"Recover the correct history stream for this item before attempting restoration."});r.metadata.id===t&&Array.isArray(r.metadata.tags)&&(n=a)}let o=St(e,!0),i=n<0||o===null?null:o+n+1,s=i===null?void 0:String(i);if(n>=0&&s===void 0){let a=e[n].ts;Cs(a,e).historyIndex===n&&(s=a)}return{version:i,target:s}}async function Xs(e,t,n){let r=new Set([ae(t,n),Ve(t)]);for(let o of r){let i=Q(e,o);if(!ef(i,{throwIfNoEntry:!1})?.isFile())continue;let s=await ut(i,o),a=-1;if(s.forEach((_,h)=>{_.op==="delete"&&(a=h)}),a<0)continue;let c=As(s,s.length-1);if(Object.keys(c.metadata).length!==0)continue;let{version:d,target:l}=tf(s,o),u=l===void 0?["history",o,"--verify"]:["get",o,"--at",l],f=ye(u);return new p(`Item ${o} was deleted at ${s[a].ts}; its history is retained.`,m.NOT_FOUND,{code:"item_deleted",required:"Read a retained materialized version, then restore it if the item should exist again.",item_id:o,tombstone:{deleted:!0,deleted_at:s[a].ts,recoverable:l!==void 0,last_materialized_version:d},nextSteps:[f,...l===void 0?["Recover the pre-compaction history from version control."]:[ye(["restore",o,l])]],recovery:{suggested_retry:f,suggested_retry_args:u}})}}import{AsyncLocalStorage as nf}from"node:async_hooks";import Js 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]="c343ed33-0135-5d3a-94a4-67314b295168")}catch{}})();var Qs=new nf;function bS(e,t){return Qs.run({...e,pmRoot:Js.resolve(e.pmRoot)},t)}function Zs(e,t){let n=Qs.getStore();return n?.pmRoot===Js.resolve(e)&&n.itemId===t?{bulk_checkpoint:n.checkpointId}:void 0}import Zr from"node:path";import{isUtf8 as rf}from"node:buffer";(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]="22232262-8057-5248-b462-1223d34a4570")}catch{}})();async function of(e){try{return await ve.access(e),!0}catch{return!1}}function sf(e,t){e&&(e.includes(t)||e.push(t))}function ea(e){return e??Et(le())}function af(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}async function Ot(e,t,n="pm-",r,o=J){let i=t.trim(),s=i.startsWith("#")?i.slice(1):i;if(s.length===0)return null;let a=ae(t,n),c=Ve(t),d=[...new Set([s,a,c])].filter(f=>f.length>0),l=Object.entries(o),u=af(r);for(let f of d){let _=new Map;for(let[h]of l)for(let g of u){let y=$e(e,h,f,g,o);await of(y)&&_.set(y,_.get(y)??{id:f,type:h,itemPath:y,item_format:g})}if(_.size>1){let h=[..._.keys()].map(g=>Zr.relative(e,g).split(Zr.sep).join("/")).sort();throw new p(`Item ${f} has ambiguous identity across ${h.join(", ")}. Preserve both documents and inspect pm ops validate --check-storage-integrity before resolving the collision.`,m.CONFLICT,{code:"item_identity_ambiguous",item_id:f,paths:h})}for(let h of _.values())return h}return null}async function Dt(e,t={}){let n=await cf(e,t);if(n.error!==null)throw n.error;return{raw:n.raw,document:n.document}}async function cf(e,t={}){let n=await ve.readFile(e.itemPath);if(!rf(n))throw new p("Item contains invalid UTF-8; preserve a binary backup before recovering it.",m.CONFLICT,{code:"item_document_encoding_invalid",item_id:e.id,item_path:e.itemPath,byte_length:n.length,empty:!1});let r=n.toString("utf8");await we({path:e.itemPath,scope:"project"});let o;try{o=ue(r,{format:e.item_format,requireSupportedFormat:!0,schema:t.schema,extensionFieldNames:ea(t.extensionFieldNames),onWarning:i=>sf(t.warnings,i)})}catch(i){if(i instanceof p&&i.code==="item_format_version_unsupported")throw new p(`Item ${e.id}: ${i.message}`,i.exitCode,{...i.context,item_id:e.id,item_path:e.itemPath});if(i instanceof p&&i.code==="item_document_invalid")return{raw:r,document:null,error:new p(`Cannot read ${e.id} at ${e.itemPath}${n.length===0?" (zero-length file)":""}: ${i.message}`,i.exitCode,{...i.context,item_id:e.id,item_path:e.itemPath,byte_length:n.length,empty:n.length===0,nextSteps:[`Run pm history ${e.id} --full, then pm restore ${e.id} <version> to recover a recorded state.`]})};throw i}return{raw:r,document:o,error:null}}async function ta(e,t,n=J,r,o){await Qt(e);let i=await Ys(e,t,n,r,o);return dn(i.length),i.map(s=>s.metadata)}async function df(e,t,n=J,r,o){await Qt(e);let i=await Ks(e,t,n,r,o);return dn(i.length),i.map(s=>s.metadata)}async function JS(e,t,n=J,r,o,i={}){await Qt(e);let s=await kt(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan});return dn(s.length),s.map(a=>({...a.metadata,body:a.body}))}function eo(e){return{async get(t){let n=await Ot(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await Dt(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>ta(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function lf(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await ve.readdir(Zr.join(e,o));for(let s of i)for(let a of Ht)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function uf(e,t,n,r){let o=ae(t,n),i=await lf(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(a=>({id:a,distance:ge(a,o,s)})).filter(a=>a.distance!==null).sort((a,c)=>a.distance-c.distance).slice(0,3).map(a=>a.id)}async function na(e,t,n,r){let o=await Xs(e,t,n);if(o)return o;let i=await uf(e,t,n,r),s=["Confirm the active --path/PM_PATH scope, then retry with a valid id."];return i.length>0&&s.unshift(`Did you mean one of: ${i.join(", ")}?`),new p(`Item ${t} not found`,m.NOT_FOUND,{code:"item_not_found",id:t,nextSteps:s})}function mf(e,t){return e==="claim"||t===!0&&(e==="comment_add"||e==="comment_edit"||e==="comment_delete"||e==="note_add"||e==="learning_add"||e==="release"||e==="update"||e==="update_ownership_bypass"||e==="update_audit")}async function ra(e){let t=e.typeToFolder??rt(e.settings,le()).type_to_folder,n=await Ot(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await na(e.pmRoot,e.id,e.settings.id_prefix,t);let r=await dr(e.pmRoot,n.id,e.settings.locks.ttl_seconds,e.author,!!e.force,e.settings.governance.force_required_for_stale_lock,e.settings.locks.wait_ms,{waitPolicy:"progress"}),o=r.release;try{let i=[],{raw:s,document:a}=await Dt(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:i}),c=a.metadata.assignee?.trim(),d=a.metadata.claim_principal?.trim()||c,l=ur(e.author),u=Ri(e.settings);if(c&&d!==l&&!e.force&&!mf(e.op,e.bypassAssigneeConflict)){if(u.ownership_enforcement==="strict")throw new p(`Item ${n.id} is assigned to ${c}. Use --force to override.`,m.CONFLICT);u.ownership_enforcement==="warn"&&i.push(`ownership_warning:assignee_conflict:${n.id}:${c}`)}return{typeToFolder:t,located:n,originalRaw:s,document:a,warnings:i,releaseLock:o,lease:r}}catch(i){throw await o(),i}}async function oa(e,t,n,r){return e.fence(async()=>{let o;try{o=await ve.readFile(t.itemPath,"utf8")}catch(i){if(!N(i))throw i;o=null}if(o!==n)throw new p(`Item ${t.id} changed after this mutation read it; refusing to overwrite the newer revision. Nothing was written.`,m.CONFLICT,{code:"stale_revision",item_id:t.id,reason:o===null?"item_removed":"item_revision_changed",required:"Re-read the item and apply the mutation again; the newer stored revision was kept."});return r()})}function ff(e,t,n){if(!e.handled||typeof e.result!="object"||e.result===null)return{effectiveTargetItemPath:t,effectiveSerializedAfter:n,skipItemWrite:!1};let r=e.result;return{effectiveTargetItemPath:typeof r.target_item_path=="string"&&r.target_item_path.trim().length>0?r.target_item_path:t,effectiveSerializedAfter:typeof r.contents=="string"?r.contents:n,skipItemWrite:r.skip_write===!0}}async function pf(e){let t=await Gt("item_store_delete",e),n=t.handled&&typeof t.result=="object"&&t.result!==null?t.result:{};return{effectiveItemPath:typeof n.item_path=="string"&&n.item_path.trim().length>0?n.item_path:e.item_path,skipDelete:n.skip_delete===!0,warnings:t.warnings}}async function _f(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await v(e.originalItemPath,e.originalRaw),await ve.rm(e.effectiveTargetItemPath,{force:!0});return}await v(e.originalItemPath,e.originalRaw)}}async function to(e){vi(e.op);let t=await ra({pmRoot:e.pmRoot,settings:e.settings,id:e.id,op:e.op,author:e.author,force:e.force,bypassAssigneeConflict:e.bypassAssigneeConflict,extensionFieldNames:e.extensionFieldNames,typeToFolder:e.typeToFolder}),{typeToFolder:n,located:r,originalRaw:o,document:i,warnings:s,releaseLock:a,lease:c}=t;try{Ur(e.pmRoot,i,r.id);let d=je(i,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),l=je(structuredClone(i),{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),u=await e.mutate(l);if(e.skipNoop===!0&&u.changedFields.length===0)return{item:d.metadata,body:d.body,changedFields:[],warnings:[...s,...u.warnings??[]]};let f={...e.resolveHistoryContext?.(),...Zs(e.pmRoot,r.id),...Ds(e.pmRoot,[r.id,i.metadata.id])},_=Math.max(ar(d.metadata),ar(l.metadata));ki(rr(e.pmRoot),_),_>Ti(l.metadata)&&(l.metadata.pm_format_version=_,u.changedFields.push("pm_format_version")),l.metadata.updated_at=M();let h=je(l,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),g=await Mr({pmRoot:e.pmRoot,settings:e.settings,operation:e.op,author:e.author,before:d,after:h});await Wt({pm_root:e.pmRoot,operation:e.op,before:d,after:h,changed_fields:u.changedFields,sdk:eo({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let y=await rn({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),w="toon",S=dt(h,{format:w,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),A=$e(e.pmRoot,h.metadata.type,r.id,w,n),k=Q(e.pmRoot,r.id),I=await oa(c,r,o,async()=>{let B=await Gt("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:A,history_path:k,item_format:w,before:d,after:h,contents:S}),{effectiveTargetItemPath:V,effectiveSerializedAfter:Ze,skipItemWrite:Pe}=ff(B,A,S),fd=await Jr(e.pmRoot,e.author),ni=[];try{Pe||await v(V,Ze),!Pe&&V!==r.itemPath&&await ve.rm(r.itemPath);let pd=Kt({nowIso:h.metadata.updated_at,author:e.author,op:e.op,before:d,after:h,message:e.message,context:g.decisions.length===0?Object.keys(f).length===0?void 0:f:{...f,workflow_policies:g.decisions}});try{await Xt(k,pd)}catch(_d){throw await _f({skipItemWrite:Pe,effectiveTargetItemPath:V,originalItemPath:r.itemPath,originalRaw:o}),_d}Pe||(ni=await Qr({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:V,previousItemPath:r.itemPath,document:h}))}finally{await fd()}return{derivedIndexWarnings:ni,effectiveTargetItemPath:V,overrideWarnings:B.warnings}}),{derivedIndexWarnings:P,effectiveTargetItemPath:F}=I;Hr(e.pmRoot,h,r.id);let ie=[...await j({path:F,scope:"project",op:e.op,item_id:h.metadata.id,item_type:h.metadata.type,before:d,after:h,changed_fields:u.changedFields}),...await j({path:k,scope:"project",op:`${e.op}:history`,item_id:h.metadata.id,item_type:h.metadata.type,before:d,after:h,changed_fields:u.changedFields})];return Bt({id:h.metadata.id,op:e.op,item_type:h.metadata.type,previous_status:d.metadata.status,status:h.metadata.status,previous:at(d.metadata,u.changedFields),current:at(h.metadata,u.changedFields),changed_fields:u.changedFields}),{item:h.metadata,body:h.body,changedFields:u.changedFields,warnings:[...s,...u.warnings??[],...g.warnings,...y.warnings,...I.overrideWarnings,...P,...ie]}}finally{await a()}}async function hf(e){let{historyContext:t,...n}=e;return to({...n,resolveHistoryContext:()=>t})}async function QS(e){return to(e)}async function yf(e){return to(e)}async function gf(e){let t=await ra({pmRoot:e.pmRoot,settings:e.settings,id:e.id,op:"delete",author:e.author,force:e.force}),{located:n,originalRaw:r,document:o,warnings:i,releaseLock:s,lease:a}=t;try{Ur(e.pmRoot,o,n.id);let c=ea(void 0),d=je(o,{schema:e.settings.schema,extensionFieldNames:c}),l=await Mr({pmRoot:e.pmRoot,settings:e.settings,operation:"delete",author:e.author,before:d,after:null,dryRun:e.dryRun});await Wt({pm_root:e.pmRoot,operation:"delete",before:d,after:null,changed_fields:["deleted"],sdk:eo({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let u=await rn({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),f=M(),_=ri,h=Kt({nowIso:f,author:e.author,op:"delete",before:d,after:_,message:e.message,context:l.decisions.length===0?void 0:{workflow_policies:l.decisions}}),g=Q(e.pmRoot,n.id),y=()=>pf({op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:g,before:d});if(e.dryRun===!0){let I=await y();return{item:d.metadata,changedFields:["deleted"],targetPath:I.effectiveItemPath,warnings:[...i,...l.warnings,...u.warnings,...I.warnings]}}let w=await oa(a,n,r,async()=>{let{effectiveItemPath:I,skipDelete:P,warnings:F}=await y(),ie=await Jr(e.pmRoot,e.author),B=[];try{P||await ve.rm(I);try{await Xt(g,h)}catch(V){throw P||await v(I,r),V}P||(B=await Qr({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:I,document:null}))}finally{await ie()}return{derivedIndexWarnings:B,effectiveItemPath:I,overrideWarnings:F}}),{derivedIndexWarnings:S,effectiveItemPath:A}=w;Hr(e.pmRoot,_,n.id,[o.metadata.id]);let k=[...await j({path:A,scope:"project",op:"delete",item_id:d.metadata.id,item_type:d.metadata.type,before:d,after:_,changed_fields:["deleted"]}),...await j({path:g,scope:"project",op:"delete:history",item_id:d.metadata.id,item_type:d.metadata.type,before:d,after:_,changed_fields:["deleted"]})];return Bt({id:d.metadata.id,op:"delete",item_type:d.metadata.type,previous_status:d.metadata.status,previous:at(d.metadata,Object.keys(d.metadata)),changed_fields:["deleted"]}),{item:d.metadata,changedFields:["deleted"],warnings:[...i,...l.warnings,...u.warnings,...w.overrideWarnings,...S,...k]}}finally{await s()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9b58b44d-819c-5115-b011-f9dfa8e2ab41")}catch{}})();var wf=3e4,Nt=class extends Error{status;constructor(t,n){super(t),this.name="SearchHttpError",this.status=n}};function Ie(e,t,n=wf){let r=e??n;if(!Number.isFinite(r)||r<=0)throw new Error(`${t} timeout must be a positive finite number`);return Math.floor(r)}function Ce(e,t){if(e)return e;if(typeof globalThis.fetch=="function")return globalThis.fetch.bind(globalThis);throw new Error(`${t} execution requires a fetch implementation`)}async function bf(e){try{return(await e.text()).replaceAll(/\s+/g," ").trim()}catch(t){return`(failed to read response body: ${E(t)})`}}async function Sn(e){let t=new AbortController,n=setTimeout(()=>{t.abort()},e.timeoutMs);try{let r;try{r=await e.fetcher(e.endpoint,{method:e.method,headers:e.headers,body:JSON.stringify(e.body),signal:t.signal})}catch(o){throw o instanceof Error&&o.name==="AbortError"?new Error(`${e.requestLabel} timed out after ${e.timeoutMs}ms`):new Error(`${e.requestLabel} execution failed: ${E(o)}`)}if(!r.ok){let o=await bf(r),i=o.length>0?`: ${o}`:"";throw new Nt(`${e.requestLabel} failed with status ${r.status} ${r.statusText}${i}`,r.status)}try{return await r.json()}catch(o){throw new Error(`${e.responseLabel} JSON parse failed: ${E(o)}`)}}finally{clearTimeout(n)}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8e3bb919-c8f9-50b5-8e41-b6719d17bd21")}catch{}})();function oT(e,t){let n=b(e);if(!n)return"unconfigured";let r=b(t);return r&&r.toLowerCase()===n.toLowerCase()?"configured":"auto-detected"}function Ef(e){let t=it(e),n=t.toLowerCase();return n.endsWith("/embeddings")?t:n.endsWith("/v1")?`${t}/embeddings`:`${t}/v1/embeddings`}function sa(e){let t=e.search?.embedding_model;return b(t)||null}function Sf(e){let t=b(e.providers?.openai?.base_url),n=b(e.providers?.openai?.model);if(!t||!n)return null;let r=sa(e),o=b(e.providers?.openai?.api_key);return{name:"openai",base_url:t,model:r??n,...o?{api_key:o}:{}}}function Tf(e){let t=b(e.providers?.ollama?.base_url),n=b(e.providers?.ollama?.model);if(!t||!n)return null;let r=sa(e);return{name:"ollama",base_url:t,model:r??n}}function aa(e){let t=(Array.isArray(e)?e:[e]).map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)throw new Error("Embedding input must include at least one non-empty string");return t}function vf(e){let t=[],n=[],r=new Map;for(let o of e){let i=r.get(o);if(i===void 0){let s=t.length;t.push(o),r.set(o,s),n.push(s);continue}n.push(i)}return{uniqueInputs:t,originalToUniqueIndex:n}}function If(e){let t=e.map((n,r)=>({embedding:n.embedding,index:n.index,position:r}));if(t.some(n=>n.index!==void 0)){for(let n of t)if(!Number.isInteger(n.index))throw new TypeError(`OpenAI embedding response entry at position ${n.position} is missing a valid integer index`);return[...t].sort((n,r)=>{let o=n.index-r.index;return o!==0?o:n.position-r.position})}return t}function Tn(e){let t=Sf(e),n=Tf(e),r=[t,n].filter(s=>s!==null),o=b(e.search?.provider),i=o?o.toLowerCase():null;return{active:(i?r.find(s=>s.name===i):void 0)??r[0]??null,available:r}}function ia(e){let t=it(e.base_url);return e.name==="openai"?{provider:"openai",endpoint:Ef(t),model:e.model}:{provider:"ollama",endpoint:`${t}/api/embed`,model:e.model}}function Cf(e,t){let n=aa(t);return e.name==="openai"?{target:ia(e),method:"POST",headers:{"content-type":"application/json",...e.api_key?{authorization:`Bearer ${e.api_key}`}:{}},body:{model:e.model,input:n.length===1?n[0]:n}}:{target:ia(e),method:"POST",headers:{"content-type":"application/json"},body:{model:e.model,input:n}}}function Af(e,t){if(e.name==="openai"){let o=t.data;if(!Array.isArray(o)||o.length===0)throw new Error("OpenAI embedding response must include a non-empty data array");return If(o).map((i,s)=>{let a=i.embedding;if(!Fe(a))throw new Error(`OpenAI embedding response entry at index ${s} is missing a numeric embedding vector`);return[...a]})}let n=t.embedding;if(Fe(n))return[[...n]];let r=t.embeddings;if(Array.isArray(r)&&r.length>0)return r.map((o,i)=>{if(!Fe(o))throw new Error(`Ollama embedding response entry at index ${i} is missing a numeric embedding vector`);return[...o]});throw new Error("Ollama embedding response must include embedding or embeddings vectors")}async function ca(e,t,n={}){let r=Ie(n.timeout_ms,"Embedding request"),o=Ce(n.fetcher,"Embedding request"),i=aa(t),s=vf(i),a=Cf(e,s.uniqueInputs),c=await Sn({endpoint:a.target.endpoint,method:a.method,headers:a.headers,body:a.body,timeoutMs:r,fetcher:o,requestLabel:"Embedding request",responseLabel:"Embedding response"}),d=Af(e,c);if(d.length!==s.uniqueInputs.length)throw new Error(`Embedding response cardinality mismatch: expected ${s.uniqueInputs.length} vector(s), received ${d.length}`);return s.originalToUniqueIndex.map(l=>[...d[l]])}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5c86afdf-6d8d-5851-82c1-ae5bcc9f0196")}catch{}})();var vn=["title","description","tags","status","type","priority","assignee","parent","goal","value","why_now","risk","confidence","estimated_minutes","acceptance_criteria","resolution","expected_result","actual_result","body","comments","notes","learnings","reminders","events","dependencies","plan"];function no(e){let t=e?.search?.corpus_fields;if(!Array.isArray(t))return[...vn];let n=new Set(vn),r=Array.from(new Set(t.filter(o=>typeof o=="string").map(o=>o.trim()).filter(o=>o.length>0&&n.has(o))));return r.length>0?r:[...vn]}var xf=8e3,Rf=3200,Ae="...[semantic corpus truncated]",kf="search_embedding_corpus_max_characters_invalid:using_provider_default";function ne(e){return e.map(t=>t==null?"":String(t).trim()).filter(t=>t.length>0).join(" ")}function Of(e){return(e.reminders??[]).map(t=>ne([t.at,t.text]))}function Df(e){return(e.events??[]).map(t=>ne([t.start_at,t.end_at,t.title,t.description,t.location,t.all_day===!0?"all day":void 0,t.timezone,t.recurrence?.freq,t.recurrence?.interval,t.recurrence?.count,t.recurrence?.until,t.recurrence?.by_weekday?.join(" "),t.recurrence?.by_month_day?.join(" "),t.recurrence?.exdates?.join(" ")]))}function Nf(e,t){e.push(t.title,t.body,t.status,t.owner,t.evidence,t.blocked_reason,t.superseded_by);for(let n of t.linked_items??[])e.push(`${n.kind} ${n.id}`,n.note);for(let n of t.files??[])e.push(n.path,n.note);for(let n of t.tests??[])e.push(n.command,n.path,n.note);for(let n of t.docs??[])e.push(n.path,n.note)}function Mf(e,t){for(let n of t.plan_decisions??[])e.push(n.decision,n.rationale,n.evidence);for(let n of t.plan_discoveries??[])e.push(n.text);for(let n of t.plan_validation??[])e.push(n.text,n.command,n.expected)}function aT(e){let t=[];t.push(e.plan_mode,e.plan_scope,e.plan_harness,e.plan_resume_context);for(let n of e.plan_steps??[])Nf(t,n);return Mf(t,e),t.filter(n=>typeof n=="string"&&n.length>0).join(" ")}function Lf(e){let t=(e.plan_steps??[]).map(i=>ne([i.order,i.id,i.title,i.body,i.status,i.owner,i.evidence,i.blocked_reason,i.superseded_by,(i.linked_items??[]).map(s=>ne([s.kind,s.id,s.note])).join(" "),(i.files??[]).map(s=>ne([s.path,s.note])).join(" "),(i.tests??[]).map(s=>ne([s.command,s.path,s.note])).join(" "),(i.docs??[]).map(s=>ne([s.path,s.note])).join(" ")])),n=(e.plan_decisions??[]).map(i=>ne([i.decision,i.rationale,i.evidence,i.step_id])),r=(e.plan_discoveries??[]).map(i=>ne([i.text,i.step_id])),o=(e.plan_validation??[]).map(i=>ne([i.text,i.command,i.expected]));if([e.plan_mode,e.plan_scope,e.plan_harness,e.plan_resume_context,...t,...n,...r,...o].some(i=>i!==void 0))return{mode:e.plan_mode,scope:e.plan_scope,harness:e.plan_harness,resume_context:e.plan_resume_context,steps:t,decisions:n,discoveries:r,validation:o}}function te(e){return typeof e=="string"&&e.trim().length>0}var Pf={title:e=>e.metadata.title,description:e=>e.metadata.description,tags:e=>e.metadata.tags,status:e=>e.metadata.status,type:e=>e.metadata.type,priority:e=>typeof e.metadata.priority=="number"?e.metadata.priority:void 0,assignee:e=>te(e.metadata.assignee)?e.metadata.assignee:void 0,parent:e=>te(e.metadata.parent)?e.metadata.parent:void 0,goal:e=>te(e.metadata.goal)?e.metadata.goal:void 0,value:e=>te(e.metadata.value)?e.metadata.value:void 0,why_now:e=>te(e.metadata.why_now)?e.metadata.why_now:void 0,risk:e=>te(e.metadata.risk)?e.metadata.risk:void 0,confidence:e=>e.metadata.confidence!==void 0&&e.metadata.confidence!==null?e.metadata.confidence:void 0,estimated_minutes:e=>typeof e.metadata.estimated_minutes=="number"?e.metadata.estimated_minutes:void 0,acceptance_criteria:e=>te(e.metadata.acceptance_criteria)?e.metadata.acceptance_criteria:void 0,resolution:e=>te(e.metadata.resolution)?e.metadata.resolution:void 0,expected_result:e=>te(e.metadata.expected_result)?e.metadata.expected_result:void 0,actual_result:e=>te(e.metadata.actual_result)?e.metadata.actual_result:void 0,body:e=>e.body,comments:e=>(e.metadata.comments??[]).map(t=>t.text),notes:e=>(e.metadata.notes??[]).map(t=>t.text),learnings:e=>(e.metadata.learnings??[]).map(t=>t.text),reminders:e=>Of(e.metadata),events:e=>Df(e.metadata),dependencies:e=>(e.metadata.dependencies??[]).map(t=>({id:t.id,kind:t.kind})),plan:e=>Lf(e.metadata)};function da(e,t={}){let n=t.fields??vn,r={};for(let o of n){let i=Pf[o];if(!i)continue;let s=i(e);s!==void 0&&(r[o]=s)}return r}function $f(e){return e?.trim().toLowerCase()==="ollama"?Rf:xf}function We(e,t){let n=$f(e),r=hi(t);return r!==null?{maxCharacters:r,warning:null}:{maxCharacters:n,warning:t==null?null:kf}}function ro(e,t={}){let n=JSON.stringify(da(e,{fields:t.fields})),r=We(t.providerName,t.maxCharacters).maxCharacters;if(n.length<=r)return n;if(r<=Ae.length)return Ae.slice(0,r);let o=Math.max(0,r-Ae.length);return`${n.slice(0,o)}${Ae}`}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="67bae1a1-19d1-50ea-816f-4b68e6bb69d9")}catch{}})();function Ff(e,t,n){let r=e.search.embedding_batch_size,o=e.search.embedding_timeout_ms,i=e.search.scanner_max_batch_retries,s=Number.isFinite(r)&&r>0?Math.max(1,Math.floor(r)):1,a=Number.isFinite(o)&&o>0?Math.max(1,Math.floor(o)):3e4,c=Number.isFinite(i)&&i>=0?Math.floor(i):0;return{batchSize:s,timeoutMs:a,maxRetries:c,maxRequestBytes:n,maxInputCharacters:t}}function jf(e,t,n,r){let o=[],i=[],s=Buffer.byteLength(JSON.stringify({model:e.model,input:[]})),a=s;for(let c of t){let d=Buffer.byteLength(JSON.stringify(c.trim()));if(s+d>r)throw new RangeError(`Embedding input exceeds request byte ceiling ${r}; lower search.embedding_corpus_max_characters or raise maxRequestBytes`);let l=i.length>0?1:0;(i.length>=n||a+l+d>r)&&(o.push(i),i=[],a=s),a+=d+(i.length>0?1:0),i.push(c)}return o.push(i),o}function zf(e,t){if(!Number.isFinite(t)||t<=0||e.length<=t)return e;let n=Math.max(0,t-Ae.length);return`${e.slice(0,n)}${Ae}`.slice(0,t)}function la(e){let t=E(e).toLowerCase();return t.includes("timed out")||t.includes("timeout")}function Uf(e,t,n,r,o,i){let s=`Embedding batch ${t} failed after ${o} attempt(s): ${E(i)}`,a=`provider=${e.name} model=${e.model} batch_size=${n} timeout_ms=${r}`;return la(i)?`${s} (${a}; guidance=check provider availability or lower search.embedding_batch_size, raise search.embedding_timeout_ms, or run keyword search while semantic indexing catches up)`:`${s} (${a})`}function Vf(e){return e instanceof Nt?e.status===413?"payload_too_large":null:la(e)?"timeout":null}async function oo(e,t,n,r,o,i,s){let a=null;for(let c=0;c<=o;c+=1)try{s.requests+=1;let d=await ca(e,t,{timeout_ms:r});return c>0&&i.push(`search_embedding_batch_retry_succeeded:batch=${n}:attempt=${c+1}:size=${t.length}`),s.successful_batches+=1,s.batch_size_histogram[t.length]=(s.batch_size_histogram[t.length]??0)+1,d}catch(d){a=d;let l=Vf(d);if(l!==null&&t.length>1){s.split_batches+=1;let u=Math.ceil(t.length/2),f=t.slice(0,u),_=t.slice(u);return i.push(`search_embedding_batch_split_after_${l}:batch=${n}:size=${t.length}:parts=${f.length}|${_.length}`),[...await oo(e,f,`${n}.1`,r,o,i,s),...await oo(e,_,`${n}.2`,r,o,i,s)]}if(c<o){s.retries+=1;let u=Math.min(1e3*2**c,8e3);await new Promise(f=>setTimeout(f,u))}}throw new Error(Uf(e,n,t.length,r,o+1,a))}async function io(e,t,n,r={}){if(n.length===0)return{vectors:[],warnings:[]};let o=performance.now(),i=r.maxRequestBytes??262144;if(!Number.isSafeInteger(i)||i<=0)throw new RangeError("maxRequestBytes must be a positive safe integer");let s={provider:e.name,model:e.model,max_request_bytes:i,limit_source:r.maxRequestBytes===void 0?"default":"caller",planned_batches:0,requests:0,successful_batches:0,split_batches:0,retries:0,batch_size_histogram:{},elapsed_ms:0,inputs_per_second:0},a=[],c=We(e.name,t.search.embedding_corpus_max_characters);c.warning&&a.push(c.warning);let d=Ff(t,c.maxCharacters,i),l=0,u=n.map(g=>{if(g.trim().length===0)throw new TypeError("Embedding inputs must be non-empty strings");let y=zf(g,d.maxInputCharacters);return y.length<g.length&&(l+=1),y});l>0&&a.push(`search_embedding_input_truncated:count=${l}:max_characters=${d.maxInputCharacters}`);let f=jf(e,u,d.batchSize,d.maxRequestBytes);s.planned_batches=f.length;let _=[],h=0;for(let g=0;g<f.length;g+=1){let y=f[g];r.onProgress?.({batch_index:g+1,batch_total:f.length,batch_size:y.length,completed_inputs:h,total_inputs:u.length,phase:"start"}),_.push(...await oo(e,y,String(g+1),d.timeoutMs,d.maxRetries,a,s)),h+=y.length,r.onProgress?.({batch_index:g+1,batch_total:f.length,batch_size:y.length,completed_inputs:h,total_inputs:u.length,phase:"complete"})}return s.elapsed_ms=Math.max(1,performance.now()-o),s.inputs_per_second=n.length*1e3/s.elapsed_ms,{vectors:_,warnings:a,receipt:s}}import{mkdir as Hf,readFile as qf,stat as co,unlink as Bf}from"node:fs/promises";import{basename as ua,dirname as so,isAbsolute as Wf,join as Gf,resolve as lo}from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b5f2e49a-fb72-554b-b0a8-dca0adee71f4")}catch{}})();var uo="pm_items",Yf=/[^a-zA-Z0-9_-]/g,Kf=128,Xf=".pm-cli-local-vectors",ao=1,xe=new Map;function Lt(e){return(b(e.collection_name)??uo).replaceAll(Yf,"_").slice(0,Kf)}function In(e){if(!Fe(e)||e.length===0)throw new Error("Vector values must be a non-empty numeric array");return[...e]}function fa(e){if(!Number.isFinite(e)||e<=0)throw new Error("Vector query limit must be a positive number");return Math.floor(e)}function Jf(e){let t=e.result;if(!Array.isArray(t))throw new TypeError("Qdrant query response must include a result array");let n=t.map((r,o)=>{let i=r.id,s=typeof i=="number"?String(i):i,a=b(s);if(!a)throw new Error(`Qdrant query response entry at index ${o} is missing a non-empty id`);let c=r.score;if(typeof c!="number"||!Number.isFinite(c))throw new TypeError(`Qdrant query response entry at index ${o} is missing a finite numeric score`);let d=r.payload;if(d!==void 0&&(typeof d!="object"||d===null||Array.isArray(d)))throw new Error(`Qdrant query response entry at index ${o} must provide payload as an object when set`);return{id:a,score:c,...d?{payload:d}:{}}});return n.sort((r,o)=>r.score!==o.score?o.score-r.score:r.id.localeCompare(o.id)),n}function mo(e){let t=b(e.result?.status);if(t)return{status:t};let n=b(e.status);if(n)return{status:n};throw new Error("Qdrant upsert response must include status metadata")}async function Mt(e,t,n,r,o){return await Sn({endpoint:e,method:t.method,headers:t.headers,body:t.body,timeoutMs:n,fetcher:r,requestLabel:`Vector ${o} request`,responseLabel:`Vector ${o} response`})}function Qf(e){let t=b(e.vector_store?.qdrant?.url);if(!t)return null;let n=b(e.vector_store?.collection_name),r=b(e.vector_store?.qdrant?.api_key);return{name:"qdrant",url:t,...n&&n!==uo?{collection_name:n}:{},...r?{api_key:r}:{}}}function Zf(e){let t=lo(e),n=so(t);return ua(t)==="pm"&&ua(n)===".agents"?so(n):t}function ep(e,t){return!t||Wf(e)?e:lo(Zf(t),e)}function tp(e,t){let n=b(e.vector_store?.lancedb?.path);if(!n)return null;let r=b(e.vector_store?.collection_name);return{name:"lancedb",path:ep(n,t),...r&&r!==uo?{collection_name:r}:{}}}function np(e){if(!Array.isArray(e)||e.length===0)throw new Error("Vector upsert records must include at least one entry");return e.map((t,n)=>{let r=b(t.id);if(!r)throw new Error(`Vector upsert record at index ${n} is missing a non-empty id`);let o=In(t.vector),i=t.payload;if(i!==void 0&&(typeof i!="object"||i===null||Array.isArray(i)))throw new Error(`Vector upsert record at index ${n} must provide payload as an object when set`);return{id:r,vector:o,...i?{payload:i}:{}}})}function rp(e){if(!Array.isArray(e)||e.length===0)throw new Error("Vector delete ids must include at least one entry");let t=e.map((r,o)=>{let i=b(r);if(!i)throw new Error(`Vector delete id at index ${o} is missing a non-empty value`);return i}).sort((r,o)=>r.localeCompare(o)),n=[];for(let r of t)n.at(-1)!==r&&n.push(r);return n}function op(e){return e.replace(/\/points\?wait=true$/,"/points/delete?wait=true")}function ip(e){return e.replace(/\/points\?wait=true$/,"")}function Cn(e){return{"content-type":"application/json",...e.api_key?{"api-key":e.api_key}:{}}}function An(e,t){return Ge(e,t)}function Ge(e,t){return Gf(lo(e),Xf,`${t}.json`)}function sp(e,t,n){let r=b(e.id);if(!r)throw new Error(`LanceDB local snapshot '${n}' record at index ${t} is missing a non-empty id`);let o=In(e.vector),i=e.payload;if(i!==void 0&&(typeof i!="object"||i===null||Array.isArray(i)))throw new Error(`LanceDB local snapshot '${n}' record '${r}' must provide payload as an object when set`);return{id:r,vector:o,...i?{payload:i}:{}}}function ap(e,t,n){let r;try{r=JSON.parse(n)}catch(a){throw new Error(`LanceDB local snapshot at '${e}' is not valid JSON: ${E(a)}`)}if(typeof r!="object"||r===null||Array.isArray(r))throw new Error(`LanceDB local snapshot at '${e}' must be a JSON object`);if(r.version!==ao)throw new Error(`LanceDB local snapshot at '${e}' must include version=${ao}`);let o=b(r.table);if(!o)throw new Error(`LanceDB local snapshot at '${e}' must include a non-empty table value`);if(o!==t)throw new Error(`LanceDB local snapshot at '${e}' table mismatch: expected '${t}', received '${o}'`);let i=r.records;if(!Array.isArray(i))throw new TypeError(`LanceDB local snapshot at '${e}' must include a records array`);let s=new Map;for(let a=0;a<i.length;a+=1){let c=sp(i[a],a,e);s.set(c.id,c)}return s}async function cp(e){try{let t=await co(e);return{mtimeMs:t.mtimeMs,size:t.size}}catch(t){if(!N(t))throw t;return null}}function dp(e,t){if(!t)return null;if(t.mtimeMs===null&&t.size===null&&t.records.size===0)return t.records;let n=new Map;return xe.set(e,{records:n,mtimeMs:null,size:null}),n}function lp(e,t){return e!==void 0&&t!==null&&e.mtimeMs===t.mtimeMs&&e.size===t.size}async function fo(e,t){let n=An(e,t),r=Ge(e,t),o=await cp(r),i=xe.get(n);if(!o){let a=dp(n,i);if(a)return a}if(lp(i,o))return i.records;let s=new Map;try{let a=await qf(r,"utf8");s=ap(r,t,a)}catch(a){if(!N(a))throw a}return xe.set(n,{records:s,mtimeMs:o?.mtimeMs??null,size:o?.size??null}),s}function up(e){let t=[...e.values()];return t.sort((n,r)=>n.id.localeCompare(r.id)),t.map(n=>({id:n.id,vector:[...n.vector],...n.payload?{payload:n.payload}:{}}))}async function pa(e){try{await Bf(e)}catch(t){if(!N(t))throw new Error(`LanceDB local snapshot delete failed at '${e}': ${E(t)}`)}}async function _a(e,t,n){let r=Ge(e,t);if(n.size===0){await pa(r);return}let o=so(r);try{await Hf(o,{recursive:!0})}catch(s){throw new Error(`LanceDB local snapshot directory create failed at '${o}': ${E(s)}`)}let i=`${JSON.stringify({version:ao,table:t,records:up(n)})}
|
|
105
|
+
`;try{await v(r,i)}catch(s){throw new Error(`LanceDB local snapshot write failed at '${r}': ${E(s)}`)}}async function mp(e,t){let n=An(e,t),r=Ge(e,t);await pa(r),xe.delete(n)}function ma(e){let t=0;for(let n=0;n<e.length;n+=1)t+=e[n]*e[n];return Math.sqrt(t)}function fp(e,t){let n=0;for(let i=0;i<e.length;i+=1)n+=e[i]*t[i];let r=ma(e),o=ma(t);return r===0||o===0?0:n/(r*o)}function xn(e,t){let n=Qf(e),r=tp(e,t),o=[n,r].filter(a=>a!==null),i=b(e.vector_store?.adapter),s=i?i.toLowerCase():null;return{active:(s?o.find(a=>a.name===s):void 0)??o[0]??null,available:o}}function Rn(e){let t=Lt(e);if(e.name==="qdrant"){let o=it(e.url),i=encodeURIComponent(t);return{store:"qdrant",query_target:`${o}/collections/${i}/points/search`,upsert_target:`${o}/collections/${i}/points?wait=true`}}let n=encodeURIComponent(e.path),r=encodeURIComponent(t);return{store:"lancedb",query_target:`lancedb://${n}#${r}`,upsert_target:`lancedb://${n}#${r}`}}function pp(e,t,n){let r=Rn(e),o=In(t),i=fa(n);return e.name==="qdrant"?{target:r,method:"POST",headers:Cn(e),body:{vector:o,limit:i,with_payload:!0}}:{target:r,method:"LOCAL",headers:{},body:{table:Lt(e),vector:o,limit:i}}}function _p(e,t){let n=Rn(e),r=np(t);return e.name==="qdrant"?{target:n,method:"POST",headers:Cn(e),body:{points:r}}:{target:n,method:"LOCAL",headers:{},body:{table:Lt(e),records:r}}}function hp(e,t){let n=Rn(e),r=rp(t);return e.name==="qdrant"?{target:n,method:"POST",headers:Cn(e),body:{points:r}}:{target:n,method:"LOCAL",headers:{},body:{table:Lt(e),ids:r}}}async function wT(e,t,n,r={}){let o=pp(e,t,n);if(o.method==="LOCAL"){let c=e,d=o.body,l=await fo(c.path,d.table);if(l.size===0)return[];let u=In(d.vector),f=fa(d.limit),_=[],h=0;for(let g of l.values()){if(g.vector.length!==u.length){h++;continue}_.push({id:g.id,score:fp(u,g.vector),...g.payload?{payload:g.payload}:{}})}return h>0&&r.warnings&&r.warnings.push(`vector_dimension_mismatch:${h} records skipped (expected ${u.length} dimensions)`),_.sort((g,y)=>g.score!==y.score?y.score-g.score:g.id.localeCompare(y.id)),_.slice(0,f)}let i=Ie(r.timeout_ms,"Vector request"),s=Ce(r.fetcher,"Vector request"),a=await Mt(o.target.query_target,{method:"POST",headers:o.headers,body:o.body},i,s,"query");return Jf(a)}async function po(e,t,n={}){let r=_p(e,t);if(r.method==="LOCAL"){let a=e,c=r.body,d=An(a.path,c.table),l=await fo(a.path,c.table);for(let _ of c.records)l.set(_.id,_);await _a(a.path,c.table,l);let u=Ge(a.path,c.table),f=await co(u);return xe.set(d,{records:l,mtimeMs:f.mtimeMs,size:f.size}),{status:"ok"}}let o=Ie(n.timeout_ms,"Vector request"),i=Ce(n.fetcher,"Vector request"),s=await Mt(r.target.upsert_target,{method:"POST",headers:r.headers,body:r.body},o,i,"upsert");return mo(s)}async function kn(e,t,n={}){let r=hp(e,t);if(r.method==="LOCAL"){let a=e,c=r.body,d=An(a.path,c.table),l=await fo(a.path,c.table);if(l.size===0)return{status:"ok"};for(let u of c.ids)l.delete(u);if(await _a(a.path,c.table,l),l.size===0)xe.delete(d);else{let u=Ge(a.path,c.table),f=await co(u);xe.set(d,{records:l,mtimeMs:f.mtimeMs,size:f.size})}return{status:"ok"}}let o=Ie(n.timeout_ms,"Vector request"),i=Ce(n.fetcher,"Vector request"),s=await Mt(op(r.target.upsert_target),{method:"POST",headers:r.headers,body:r.body},o,i,"delete");return mo(s)}async function ha(e,t=[],n={},r){if(e.name==="lancedb")return await mp(e.path,Lt(e)),{status:"ok"};if(r!==void 0){if(!Number.isInteger(r)||r<=0)throw new Error("Vector reset dimension must be a positive integer when provided");let i=Rn(e),s=ip(i.upsert_target),a=Ie(n.timeout_ms,"Vector request"),c=Ce(n.fetcher,"Vector request"),d=Cn(e);try{await Mt(s,{method:"DELETE",headers:d,body:{}},a,c,"delete")}catch(u){if(!E(u).includes("failed with status 404"))throw u}let l=await Mt(s,{method:"PUT",headers:d,body:{vectors:{size:r,distance:"Cosine"}}},a,c,"upsert");return mo(l)}let o=t.map(i=>i.trim()).filter(i=>i.length>0);return o.length===0?{status:"ok"}:await kn(e,o,n)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f8acaac5-64f7-5e22-987e-4eb12a1aa1cf")}catch{}})();function On(e,t){let n=b(e),r=b(t);return!n||!r?null:{provider:n,model:r}}function ya(e){if(e==null)return null;if(typeof e!="object"||Array.isArray(e))throw new Error("Vectorization embedding metadata must be an object when set");let t=On(e.provider,e.model),n=e.vector_dimension;if(!t||typeof n!="number"||!Number.isInteger(n)||n<=0)throw new Error("Vectorization embedding metadata must include provider, model, and positive vector_dimension");return{...t,vector_dimension:n}}function _o(e,t){if(!Number.isInteger(t)||t<=0)throw new Error("Vectorization embedding metadata requires a positive vector dimension");return{provider:e.provider,model:e.model,vector_dimension:t}}function ho(e,t){return!e||e.provider!==t.provider||e.model!==t.model}function yo(e,t){return!!(e&&e.vector_dimension!==t)}function go(e,t){if(e.length===0)throw new Error(`${t} returned no vectors`);let n=e[0].length;if(!Number.isInteger(n)||n<=0)throw new Error(`${t} returned an empty vector`);for(let r=1;r<e.length;r+=1)if(e[r]?.length!==n)throw new Error(`${t} returned mixed vector dimensions`);return n}import wo 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]="7113dff5-c8e0-5ba6-b0ae-2ff849ed94df")}catch{}})();var yp=["index/manifest.json","search/embeddings.jsonl"],wa="search/vectorization-status.json";function gp(e,t){return`search_cache_invalidation_failed:${e}:${String(t)}`}function Ye(e){return[...new Set([...e].map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function ba(e){return typeof e=="string"&&e.trim().length>0&&Number.isFinite(Date.parse(e))}function Ea(e){let t=new Map;for(let[n,r]of Object.entries(e)){let o=n.trim();o.length===0||!ba(r)||t.set(o,r)}return Object.fromEntries([...t.entries()].sort((n,r)=>n[0].localeCompare(r[0])))}async function Sa(e){let t=wo.join(e,wa),n=await C(t);if(n===null||n.trim().length===0)return{entries:{},embedding:null,warnings:[]};let r;try{r=JSON.parse(n)}catch{return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]}}if(typeof r!="object"||r===null||r.version!==1||!Array.isArray(r.items))return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]};let o=new Map;for(let s of r.items){if(typeof s!="object"||s===null)return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]};let a=s.id,c=s.updated_at;if(typeof a!="string"||a.trim().length===0||!ba(c))return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]};o.set(a.trim(),c)}let i=null;try{i=ya(r.embedding)}catch{return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]}}return{entries:Object.fromEntries([...o.entries()].sort((s,a)=>s[0].localeCompare(a[0]))),embedding:i,warnings:[]}}async function Ta(e,t,n){let r=Ea(t),o=wo.join(e,wa),i=`${JSON.stringify({version:1,generated_at:M(),...n?{embedding:n}:{},items:Object.entries(r).map(([s,a])=>({id:s,updated_at:a}))},null,2)}
|
|
106
|
+
`;await v(o,i)}function wp(e){return{id:e.id,type:e.type,status:e.status,priority:e.priority,updated_at:e.updated_at}}function bp(e){let t=On(e.name,e.model);if(!t)throw new Error("Embedding provider must include a provider name and model");return t}function Pt(e,t){return{refreshed:[],skipped:e,warnings:[t]}}async function Ep(e,t,n){if(!n.settings&&!await $(he(e)))return Pt(t,"search_semantic_refresh_skipped:settings_not_initialized");let r;try{if(n.settings)r=n.settings;else{let a=await ze(e),c=a.warnings.find(d=>d.startsWith("settings_read_"));if(c)return Pt(t,`search_semantic_refresh_skipped:settings_read_failed:${c}`);r=a.settings}}catch(a){return Pt(t,`search_semantic_refresh_skipped:settings_read_failed:${E(a)}`)}let o=n.apply_runtime_defaults?He(r).settings:r,i=Tn(o).active;if(!i)return Pt(t,"search_semantic_refresh_skipped:provider_unconfigured");let s=xn(o,e).active;return s?{settings:o,provider:i,vectorStore:s}:Pt(t,"search_semantic_refresh_skipped:vector_store_unconfigured")}async function Sp(e,t,n,r,o,i){let s=[],a=new Set,c=new Set,d=[];for(let l of r){let u=await Ot(e,l,t,n,o);if(!u){c.add(l);continue}try{let f=await Dt(u,{schema:i});d.push({id:f.document.metadata.id,document:f.document})}catch(f){a.add(u.id),s.push(`search_semantic_refresh_item_read_failed:${u.id}:${E(f)}`)}}return d.sort((l,u)=>l.id.localeCompare(u.id)),{documents:d,missingIds:Ye(c),skippedIds:Ye(a),warnings:s}}async function Tp(e,t,n){let r=We(t.name,e.search.embedding_corpus_max_characters).maxCharacters,o=no(e),i=n.map(a=>ro(a.document,{providerName:t.name,maxCharacters:r,fields:o})),s=await io(t,e,i);return{vectors:s.vectors,vector_dimension:go(s.vectors,"Semantic refresh embedding"),warnings:s.warnings}}async function vp(e,t,n){return await po(e,t.map((r,o)=>({id:r.id,vector:n[o],payload:wp(r.document.metadata)}))),{refreshed:t.map(r=>r.id),skipped:[],warnings:[]}}async function Ip(e,t){if(t.length===0)return{refreshed:[],skipped:[],warnings:[]};try{return await kn(e,t),{refreshed:[],skipped:[],warnings:[]}}catch(n){return{refreshed:[],skipped:t,warnings:[`search_semantic_refresh_delete_failed:${E(n)}`]}}}async function Cp(e){let t=[],n=[];for(let r of yp){let o=wo.join(e,r);try{if(!await $(o))continue;await tt(o),t.push(r)}catch(i){n.push(gp(r,i))}}return{invalidated:t,warnings:n}}async function ga(e,t,n={}){let r=Ye(t);if(r.length===0)return{refreshed:[],skipped:[],warnings:[]};let o=await Ep(e,r,n);if(!("settings"in o))return o;let i=rt(o.settings,le()),s=await Sp(e,o.settings.id_prefix,o.settings.item_format,r,i.type_to_folder,o.settings.schema),a=s.documents.length>0||s.missingIds.length>0?await Sa(e):{entries:{},embedding:null,warnings:[]},c=bp(o.provider),d=a.entries,l={refreshed:[],skipped:[],warnings:[]},u=a.embedding;if(s.documents.length>0)if(a.embedding&&ho(a.embedding,c))l={refreshed:[],skipped:s.documents.map(y=>y.id),warnings:["search_semantic_refresh_requires_reindex:embedding_identity_changed"]};else try{let y=await Tp(o.settings,o.provider,s.documents);if(yo(a.embedding,y.vector_dimension))l={refreshed:[],skipped:s.documents.map(w=>w.id),warnings:[...y.warnings,"search_semantic_refresh_requires_reindex:vector_dimension_changed"]};else{u=_o(c,y.vector_dimension);let w=await vp(o.vectorStore,s.documents,y.vectors);l={refreshed:w.refreshed,skipped:w.skipped,warnings:[...y.warnings,...w.warnings]}}}catch(y){l={refreshed:[],skipped:s.documents.map(w=>w.id),warnings:[`search_semantic_refresh_failed:${E(y)}`]}}let f=await Ip(o.vectorStore,s.missingIds),_=new Set(l.refreshed),h=Object.fromEntries(s.documents.filter(y=>_.has(y.id)).map(y=>[y.id,y.document.metadata.updated_at])),g=[];if(Object.keys(h).length>0||s.missingIds.length>0){let y={...d,...Ea(h)};for(let w of s.missingIds)delete y[w];try{await Ta(e,y,u)}catch(w){g.push(`search_vectorization_status_ledger_write_failed:${E(w)}`)}g.push(...a.warnings)}return{refreshed:Ye([...l.refreshed,...f.refreshed]),skipped:Ye([...s.skippedIds,...l.skipped,...f.skipped]),warnings:[...s.warnings,...l.warnings,...f.warnings,...g]}}function Ap(e,t){let n=t?He(e).settings:e;return!!(Tn(n).active&&xn(n).active)}async function xp(e,t,n={}){let r=await Cp(e),o=Ye(t);if(o.length===0)return{invalidated:r.invalidated,refreshed:[],skipped:[],warnings:r.warnings};if(!await $(he(e))){let c=await ga(e,o);return{invalidated:r.invalidated,refreshed:c.refreshed,skipped:c.skipped,warnings:[...r.warnings,...c.warnings]}}let i;try{let c=await ze(e),d=c.warnings.find(l=>l.startsWith("settings_read_"));if(d)return{invalidated:r.invalidated,refreshed:[],skipped:o,warnings:[...r.warnings,`search_semantic_refresh_skipped:settings_read_failed:${d}`]};i=c.settings}catch(c){return{invalidated:r.invalidated,refreshed:[],skipped:o,warnings:[...r.warnings,`search_semantic_refresh_skipped:settings_read_failed:${E(c)}`]}}if(i.search.mutation_refresh_policy==="cache_only")return{invalidated:r.invalidated,refreshed:[],skipped:o,warnings:r.warnings};let s=i.search.mutation_refresh_policy==="semantic_auto";if(n.background&&Ap(i,s))return await Is(e,o),{invalidated:r.invalidated,refreshed:[],skipped:[],warnings:[...r.warnings,"search_semantic_refresh_scheduled_background"],scheduled:!0};let a=await ga(e,o,{settings:i,apply_runtime_defaults:s});return{invalidated:r.invalidated,refreshed:a.refreshed,skipped:a.skipped,warnings:[...r.warnings,...a.warnings]}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ac3b0f55-7faf-5fa6-b01d-304e87acb9a2")}catch{}})();var Rp=new Set(["1","true","yes","on"]),Dn=["user","automation","test","dogfood"],va=new Set(Dn);function Ke(e={},t=process.env,n=process.stdin.isTTY===!0&&process.stdout.isTTY===!0){let r=(t.PM_TELEMETRY_SOURCE_CONTEXT??"").trim().toLowerCase();if(va.has(r))return{source_context:r,source_context_source:"env_override"};let o=r?"env_override_rejected":"inferred";return Nn(t)?{source_context:"test",source_context_source:o}:{source_context:!n||$t("CI",t)||e.json===!0||e.quiet===!0?"automation":"user",source_context_source:o}}function Nn(e=process.env){return typeof e.VITEST=="string"||typeof e.VITEST_WORKER_ID=="string"||typeof e.NODE_TEST_CONTEXT=="string"||(e.NODE_ENV??"").trim().toLowerCase()==="test"}var Mn=new Set(["stats","ops stats","list","get","next","context","activity","aggregate"]);function Ia(e,t,n=process.env){let r=n.PM_TELEMETRY_READ_SAMPLE_RATE?.trim();if(!r||!t||!Mn.has(e))return 1;let o=Number(r);return Number.isFinite(o)&&o>0&&o<=1?o:1}function $t(e,t){return Rp.has((t[e]??"").trim().toLowerCase())}function Y(e=process.env){let t=$t("DO_NOT_TRACK",e),n=(e.PM_TELEMETRY_SOURCE_CONTEXT??"").trim().toLowerCase(),r=Nn(e)&&!va.has(n)&&!$t("PM_TELEMETRY_SEND_TEST_EVENTS",e);return{telemetry_disabled:t||r||$t("PM_TELEMETRY_DISABLED",e)||$t("PM_NO_TELEMETRY",e),do_not_track:t,test_suppressed: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]="a483f454-e261-5232-bae0-da3cdb8c0518")}catch{}})();var Re=Object.freeze({max_bytes:4096,max_depth:8}),Ca=160,kp=new Set(["not_plain_object","unsupported_value","non_finite_number","malformed_unicode","reserved_key","depth_limit","byte_limit","diagnostic_budget"]),xa=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/u,Op=new Set(["__proto__"]),D=class extends Error{reason;path;constructor(t,n){super(t),this.reason=t,this.path=n}};function Eo(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Dp(e,t){return/^[A-Za-z_$][\w$]*$/u.test(t)?`${e}.${t}`:`${e}[${JSON.stringify(t)}]`}function Ra(e){if(Buffer.byteLength(e,"utf8")<=Ca)return e;let t="",n=Buffer.byteLength("\u2026","utf8");for(let r of e){if(n+=Buffer.byteLength(r,"utf8"),n>Ca)break;t+=r}return`${t}\u2026`}function Ln(e,t,n){if(e.bytes+=t,!(e.bytes<=Re.max_bytes))throw new D("byte_limit",n)}function ka(e,t,n){if(e.bytes+t>Re.max_bytes)throw new D("byte_limit",n)}function bo(e,t,n){let r=Object.getOwnPropertyDescriptor(e,t);if(r===void 0||!("value"in r))throw new D("unsupported_value",n);return r.value}function Np(e,t,n){if(typeof e=="number"&&!Number.isFinite(e))throw new D("non_finite_number",t);if(typeof e=="string"&&(ka(n,e.length+2,t),xa.test(e)))throw new D("malformed_unicode",t);if(e!==null&&!["boolean","number","string"].includes(typeof e))throw new D("unsupported_value",t);return Ln(n,Buffer.byteLength(JSON.stringify(e),"utf8"),t),e}function Oa(e,t,n,r){if(typeof e!="object"||e===null)return Np(e,t,r);if(n>=Re.max_depth)throw new D("depth_limit",t);if(Array.isArray(e)){let o=bo(e,"length",t);if(typeof o!="number"||!Number.isSafeInteger(o)||o<0)throw new D("unsupported_value",t);Ln(r,o>0?o+1:2,t);let i=[];for(let s=0;s<o;s+=1){let a=`${t}[${s}]`;i.push(Oa(bo(e,String(s),a),a,n+1,r))}return i}if(!Eo(e))throw new D("unsupported_value",t);return Da(e,t,n+1,r)}function Da(e,t,n,r){let o=Object.keys(e);Ln(r,o.length>0?o.length+1:2,t);let i={};for(let s of o){ka(r,s.length+3,t);let a=Dp(t,s);if(Op.has(s))throw new D("reserved_key",a);if(xa.test(s))throw new D("malformed_unicode",a);Ln(r,Buffer.byteLength(JSON.stringify(s),"utf8")+1,a),i[s]=Oa(bo(e,s,a),a,n,r)}return i}function Mp(e){try{if(e instanceof D)return e}catch{}return new D("unsupported_value","details")}function $n(e){let t=Re.max_bytes,n={bytes:0};try{if(!Eo(e))throw new D("not_plain_object","details");return{ok:!0,details:Da(e,"details",0,n),byte_length:n.bytes}}catch(r){let o=Mp(r);return{ok:!1,omission:o.reason==="byte_limit"?{reason:"byte_limit",byte_limit:t}:{reason:o.reason,path:Ra(o.path),byte_limit:t}}}}function Lp(e){return $n(e).ok}function Na(e){if(e===void 0)return;let t=$n(e);return t.ok?{details:t.details}:{details_omitted:t.omission}}function Pn(){return{reason:"unsupported_value",path:"details",byte_limit:Re.max_bytes}}function Aa(e,t){let n=Object.getOwnPropertyDescriptor(e,t);return n!==void 0&&"value"in n?n.value:void 0}function Pp(e){if(!Eo(e))return;let t=Aa(e,"reason");if(typeof t!="string"||!kp.has(t))return;let n=Aa(e,"path"),r=typeof n=="string"?Ra(n):void 0;return{reason:t,...r===void 0?{}:{path:r},byte_limit:Re.max_bytes}}function Ma(e){let t={};try{if(typeof e!="object"||e===null||Array.isArray(e))return t;for(let[n,r]of Object.entries(Object.getOwnPropertyDescriptors(e)))r.enumerable&&("value"in r?Object.defineProperty(t,n,{value:r.value,enumerable:!0,writable:!0,configurable:!0}):n==="details"&&(t.details_omitted=Pn()));return t}catch{return{}}}function La(e){if(!(typeof e!="object"||e===null))try{let t=Object.getOwnPropertyDescriptor(e,"details");if(t!==void 0&&!("value"in t))return{details_omitted:Pn()};if(t!==void 0&&t.value!==void 0)return Na(t.value);let n=Object.getOwnPropertyDescriptor(e,"details_omitted"),r=n!==void 0&&"value"in n?Pp(n.value):void 0;return r===void 0?void 0:{details_omitted:r}}catch{return{details_omitted:Pn()}}}var Pa=new Set(["details","details_omitted"]);function $p(e){let t={};for(let n of Object.keys(e)){if(Pa.has(n)||n==="toJSON")continue;let r=Object.getOwnPropertyDescriptor(e,n);r!==void 0&&"value"in r&&Object.defineProperty(t,n,{value:r.value,enumerable:!0,writable:!0,configurable:!0})}return t}function Fp(e){if(typeof e!="object"||e===null)return e;try{return Array.isArray(e)?e:{...$p(e),...La(e)}}catch{return{details_omitted:Pn()}}}function Xe(e){let t={};for(let[n,r]of Object.entries(Ma(e)))Pa.has(n)||n==="toJSON"||(r===null||typeof r=="string"||typeof r=="number"||typeof r=="boolean")&&Object.defineProperty(t,n,{value:r,enumerable:!0,writable:!0,configurable:!0});return t}var jp=12,zp=new Set(["context","error_context"]),Up=new Set(["arguments"]);function $a(e){let t=new WeakSet,n=(r,o)=>{if(typeof r!="object"||r===null||o>jp||t.has(r))return;t.add(r);let i=r,s;try{s=Object.keys(i)}catch{return}for(let a of s){let c=Object.getOwnPropertyDescriptor(i,a);if(c===void 0||!("value"in c))continue;let d=c.value,l=zp.has(a)?{}:Up.has(a)?[]:d;l!==d&&(i[a]=l),n(l,o+1)}};n(e,0)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e82bc812-181f-57ab-a29a-61703e8bec1b")}catch{}})();function So(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0}function WT(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e;if(!So(t.requested_tokens)||t.basis!=="canonical_retry")return!1;switch(t.minimum_status){case"exact":return So(t.minimum_feasible_tokens)&&t.feasible_tokens===t.minimum_feasible_tokens&&t.reason===void 0;case"feasible_only":return t.minimum_feasible_tokens===null&&So(t.feasible_tokens)&&t.reason===void 0;case"unavailable":return t.minimum_feasible_tokens===null&&t.feasible_tokens===null&&["query_cost_limit","search_limit","output_constraints"].includes(t.reason);default:return!1}}var Vp="PmCliError";function GT(e){if(!Ft(e)||e.code!=="item_already_exists"||e.exitCode!==m.CONFLICT)return!1;let t=e.context;return typeof t=="object"&&t!==null&&t.code==="item_already_exists"&&typeof t.id=="string"&&t.id.trim().length>0&&typeof t.path=="string"&&t.path.trim().length>0}function Hp(e){if(!Number.isFinite(e))throw new TypeError("createPmCliExpectedError options.exitCode must be a finite number");let t=Math.trunc(e);if(t<=m.SUCCESS)throw new TypeError("createPmCliExpectedError options.exitCode must be a positive exit code");return t}function qp(e){if(e==null)return{};if(!Object.hasOwn(e,"details"))return e;let t=Object.getOwnPropertyDescriptor(e,"details");if(!("value"in t))throw Fa("unsupported_value","details");if(t.value===void 0)return e;let n=$n(t.value);if(n.ok)return{...e,details:n.details};if(n.omission.reason==="byte_limit"){let{details:r,...o}=e;return{...o,details_omitted:n.omission}}throw Fa(n.omission.reason,n.omission.path)}function Fa(e,t){let n=new TypeError(`createPmCliExpectedError options.context.details must be plain JSON (${e})`);return Object.defineProperty(n,"path",{value:t,enumerable:!1}),n}function YT(e,t={}){if(typeof e!="string"||e.trim().length===0)throw new TypeError("createPmCliExpectedError message must be a non-empty string");let n=new p(e,Hp(t.exitCode??m.USAGE),qp(t.context));return"cause"in t&&Object.defineProperty(n,"cause",{value:t.cause,enumerable:!1,configurable:!0,writable:!0}),n}function Ft(e){try{if(!(e instanceof Error)||e.name!==Vp)return!1;let t=e;return typeof t.exitCode=="number"&&Number.isFinite(t.exitCode)&&typeof t.context=="object"&&t.context!==null&&!Array.isArray(t.context)}catch{return!1}}import{createRequire as Zp}from"node:module";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="64589e00-25ef-5d74-a94a-7d40455e1929")}catch{}})();var Fn=/(?:token|secret|password|passwd|api[_-]?key|apikey|authorization|cookie|credentials|bearer|dsn)/i,Bp=new RegExp(`(?:\\b|(?<=_))(${Fn.source})\\s*[:=]\\s*([^\\s,;]+)`,"giu");function jn(e,t,n){let r=t;for(;r>0&&e[r-1]==="\\";)r--;let o=n.length>1;if(o&&r===t)return;let i=o?(t-r)*2:t-r+1,s=1;for(;i%2===0;)s*=2,i/=2;let a=o?String.fromCharCode(Number.parseInt(n.slice(1),16)):n;return{index:r,end:t+n.length,identity:`${a}:${s}`,character:a,width:s}}function za(e,t){let n=/["']|u(?:0022|0027)/gi;n.lastIndex=t.end;for(let r of e.matchAll(n)){let o=jn(e,r.index,r[0]);if(o?.identity===t.identity)return o.end}return e.length}function Wp(e,t,n,r){let o=e.pop();return o.character!==t.character||o.width!==t.width?r:e.length===0?n:void 0}function Gp(e,t){let n=[{character:t.character==="{"?"}":"]",width:t.width}],r=/["'{}[\]]|u(?:0022|0027|007b|007d|005b|005d)/gi;r.lastIndex=t.end;let o;for(;(o=r.exec(e))!==null;){let i=jn(e,o.index,o[0]);if(!i)continue;let s=i.character;if(s==="{"||s==="["){n.push({character:s==="{"?"}":"]",width:i.width});continue}if(s==="}"||s==="]"){let a=Wp(n,i,i.end,e.length);if(a!==void 0)return a;continue}r.lastIndex=za(e,i)}return e.length}function Yp(e,t,n){let r=/^(\\*)(["'{[]|u(?:0022|0027|007b|005b))/i.exec(e.slice(t)),o=r?jn(e,t+r[1].length,r[2]):void 0;return o?.character==="{"||o?.character==="["?Gp(e,o):o?za(e,o):n}function Kp(e){let t=[],n=0;for(let r of e.matchAll(/u([\da-f]{4})/gi)){let o=r.index;for(;o>n&&e[o-1]==="\\";)o--;o!==r.index&&(t.push(e.slice(n,o),String.fromCharCode(Number.parseInt(r[1],16))),n=r.index+r[0].length)}return t.push(e.slice(n)),t.join("")}var ja="(?:\\s|\\\\+u(?:0009|000a|000d|0020))*",Xp=new RegExp("^"+ja+"(?::|=|\\\\+u(?:003a|003d))"+ja,"iu");function Jp(e,t,n){let r=Kp(t);if(!Fn.test(r)&&!/\\u/iu.test(r))return;let o=e.slice(n),i=Xp.exec(o);if(!i)return/^\s*\\+u/iu.test(o)?{index:n,start:n,unquotedEnd:e.length,replacement:"[scrubbed]"}:void 0;let s=n+i[0].length,a=/^[^\s,;]+/u.exec(e.slice(s));return a?{index:s,start:s,unquotedEnd:s+a[0].length,replacement:"[scrubbed]"}:void 0}function Qp(e){let t=new Map,n=[];for(let r of e.matchAll(/["']|u(?:0022|0027)/gi)){let o=jn(e,r.index,r[0]);if(!o)continue;let i=t.get(o.identity),s=o.end;if(t.set(o.identity,s),i===void 0)continue;let a=Jp(e,e.slice(i,o.index),s);a&&n.push(a)}return n}function Ua(e){let t=Qp(e);for(let o of e.matchAll(Bp)){let i=o.index+o[0].length;t.push({index:o.index,start:i-o[2].length,unquotedEnd:i,replacement:`${o[1]}=[scrubbed]`})}t.sort((o,i)=>o.index-i.index);let n=[],r=0;for(let o of t)o.index<r||(n.push(e.slice(r,o.index),o.replacement),r=Yp(e,o.start,o.unquotedEnd));return n.push(e.slice(r)),n.join("")}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="93725298-6091-543b-969d-bac38d70be89")}catch{}})();var Wa=new Set(["1","true","yes","on"]);function Ga(){return!!(Wa.has((process.env.PM_SENTRY_DISABLED??"").trim().toLowerCase())||Y().telemetry_disabled||typeof process.env.VITEST=="string"||typeof process.env.VITEST_WORKER_ID=="string")}var e_=/(^|[\s"'`(=])\/(?:[^\s"'`),;]+)/g,t_=/file:\/\/\/?[^\s"'`),;]+/giu,n_=/\b[A-Za-z]:\\[^\s"'`),;]+/g,r_=/\b(?:10\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d))\b/g,o_=/(?:^|[_-])(path|filename|file|module|cwd|dir|directory|location|source|script)s?$/i;var i_=["[starter-extension] activating","[starter-extension] all 8 capabilities registered.","[starter-extension] commands:","[starter] preflight check for workspace","[starter] output_format service override active","[pm-ext-ts-starter] activating","[pm-ext-ts-starter] all capabilities registered.","run `pm init` first to initialise a pm workspace"];function Va(e){let t=e.trim();return t.length===0?!1:t.startsWith("/")||t.startsWith("file://")||/^[A-Za-z]:\\/.test(t)||t.startsWith("\\\\")?!0:t.includes("/home/")}function q(e,t){if(t&&o_.test(t)&&Va(e))return"[scrubbed_path]";let n=Ua(e).replaceAll(/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}/giu,"[scrubbed_email]").replaceAll(/bearer\s+[a-z0-9._=-]+/giu,"bearer [scrubbed]").replaceAll(/sntr[ysu]_[A-Za-z0-9_-]+/g,"[scrubbed_sentry_token]").replaceAll(r_,"[scrubbed_ip]").replaceAll(t_,"[scrubbed_path]").replaceAll(n_,"[scrubbed_path]").replaceAll(e_,(r,o)=>`${o}[scrubbed_path]`);return Va(n)?"[scrubbed_path]":n}function K(e){let t={};for(let[n,r]of Object.entries(e))Fn.test(n)||n.startsWith("sentry.message.parameter.")?t[n]="[scrubbed]":typeof r=="string"?t[n]=q(r,n):Array.isArray(r)?t[n]=r.map(o=>typeof o=="string"?q(o,n):o&&typeof o=="object"?K(o):o):r&&typeof r=="object"?t[n]=K(r):t[n]=r;return t}function s_(e){for(let n of["filename","absPath","abs_path","module"]){let r=e[n];typeof r=="string"&&(e[n]=q(r,n))}let t=e.context_line;typeof t=="string"&&(e.context_line=q(t,"context_line"));for(let n of["pre_context","post_context"]){let r=e[n];Array.isArray(r)&&(e[n]=r.map(o=>typeof o=="string"?q(o,n):o))}e.vars&&typeof e.vars=="object"&&(e.vars=K(e.vars)),e.data&&typeof e.data=="object"&&(e.data=K(e.data))}var a_=Zp(import.meta.url),c_=()=>a_("@sentry/node"),zn,Ha=!1,d_=c_,l_="https://bf7ad2ec76c0051c2ee94e48e8bd6868@o4510603477712896.ingest.de.sentry.io/4511316775338064";function To(e){return/^\s*PmCliError:/.test(e)}function vo(e){let t=e.trim().toLowerCase();return t.length===0?!1:i_.some(n=>t.includes(n))}function u_(e){return e.logger!=="console"?!1:typeof e.message=="string"&&vo(e.message)?!0:Array.isArray(e.exception?.values)&&e.exception.values.some(t=>typeof t.value=="string"&&vo(t.value))}function m_(e){if(e.logger!=="console")return!1;let t=n=>typeof n=="string"&&/^\(node:\d+\) MaxListenersExceededWarning: Possible EventEmitter memory leak detected\./.test(n);return t(e.message)?!0:Array.isArray(e.exception?.values)&&e.exception.values.some(n=>t(n.value))}function f_(e,t){return t instanceof Error?Ft(t):!!(e.exception?.values?.some(n=>n.type==="PmCliError")||e.exception?.values?.some(n=>typeof n.value=="string"&&To(n.value))||e.logger==="console"&&typeof e.message=="string"&&To(e.message))}function Ya(e){return e.category==="console"&&typeof e.message=="string"&&To(e.message)}function Ka(e){return e.category==="console"&&typeof e.message=="string"&&vo(e.message)}function p_(){return or(import.meta.url,["../../.."])??"0.0.0"}function __(){let e=process.env.SENTRY_ENVIRONMENT?.trim();if(e&&e.length>0)return e;if(process.env.VITEST||process.env.VITEST_WORKER_ID||process.env.NODE_ENV==="test")return"test";if(process.env.CI)return"ci";let t=Ke().source_context;return t==="user"?"production":t}var qa=.2;function Xa(){let e=process.env.SENTRY_TRACES_SAMPLE_RATE?.trim();if(!e)return qa;let t=Number(e);return!Number.isFinite(t)||t<0||t>1?qa:t}function h_(e){if(e.exception?.values){for(let t of e.exception.values)if(t.value&&(t.value=q(t.value,"value")),t.stacktrace?.frames)for(let n of t.stacktrace.frames)s_(n)}}function Ja(e){if(e.breadcrumbs)for(let t of e.breadcrumbs)t.message&&(t.message=q(t.message)),t.data&&typeof t.data=="object"&&(t.data=K(t.data))}function Qa(e){if(e.contexts)for(let[t,n]of Object.entries(e.contexts))n&&typeof n=="object"&&(e.contexts[t]=K(n))}function Ba(e,t){let n=e,r=n[t];r&&typeof r=="object"&&(n[t]=K(r))}function Io(e){if(!process.env.SENTRY_ENVIRONMENT?.trim()&&(e==="automation"||e==="test"||e==="dogfood"||e==="user"))return e==="user"?"production":e}function Za(e){let t=Io(e.tags?.["pm.source_context"]);t&&(e.environment=t)}function ec(e,t){let n=y_(e.extra);$a([e.contexts,e.extra,e.breadcrumbs]),g_(e.contexts,t),n!==void 0&&(e.extra.error_context=Xe(n))}function y_(e){if(!(typeof e!="object"||e===null||!Object.hasOwn(e,"error_context")))return e.error_context}function g_(e,t){if(typeof e!="object"||e===null||typeof t!="object"||t===null)return;let n=e,r=new Set(w_(t)),o=b_(t);for(let[i,s]of Object.entries(n))(r.has(i)||typeof s=="object"&&s!==null&&Object.hasOwn(s,"context"))&&(n[i]=o??{})}function w_(e){try{return[e.name,e.constructor?.name].filter(t=>typeof t=="string"&&t.length>0)}catch{return[]}}function b_(e){try{let t=Xe(e),n=Object.getOwnPropertyDescriptor(e,"context");return n!==void 0&&"value"in n&&(t.context=Xe(n.value)),t}catch{return}}var E_=(e,t)=>{if(f_(e,t?.originalException)||u_(e))return null;ec(e,t?.originalException),Za(e),m_(e)&&(e.level="warning",e.tags={...e.tags,"pm.diagnostic_class":"node_runtime_warning"}),e.message&&(e.message=q(e.message,"message")),e.transaction&&(e.transaction=q(e.transaction,"transaction")),h_(e),Ja(e),Ba(e,"extra"),Qa(e);for(let n of["request","user","tags"])Ba(e,n);return e},S_=e=>(ec(e),Za(e),e.breadcrumbs&&(e.breadcrumbs=e.breadcrumbs.filter(t=>!Ya(t)&&!Ka(t)),Ja(e)),Qa(e),e),T_=e=>K(e),v_=e=>{if(e.message=q(e.message),e.attributes){let t=Io(e.attributes["pm.source_context"]);t&&(e.attributes["sentry.environment"]=t),e.attributes=K(e.attributes)}return e};function I_(e){let t=Io(e["pm.source_context"]?.value);t&&(e["sentry.environment"]={type:"string",value:t})}function C_(e){for(let t of e[1])if(t[0].type==="log")for(let n of t[1].items){n.body=q(n.body);let r=n.attributes;if(r){I_(r);for(let[o,i]of Object.entries(r)){let s=K({[o]:i.value})[o];typeof s=="string"&&(r[o]={type:"string",value:s})}}}}var A_=e=>Ya(e)||Ka(e)?null:(e.message&&(e.message=q(e.message,"message")),e.data&&typeof e.data=="object"&&(e.data=K(e.data)),e);async function tc(){if(Ha)return zn;if(Ha=!0,Ga())return;let e=d_(),t=process.env.SENTRY_DSN?.trim()||l_,n=p_();e.init({dsn:t,release:`pm-cli@${n}`,environment:__(),tracesSampleRate:Xa(),enableLogs:!0,attachStacktrace:!0,normalizeDepth:6,shutdownTimeout:3e3,traceLifecycle:"stream",dataCollection:{userInfo:!1,cookies:!1,httpHeaders:{request:!1,response:!1},httpBodies:[],urlQueryParams:!1,genAI:{inputs:!1,outputs:!1},databaseQueryData:!1,graphQL:{document:!1,variables:!1},stackFrameVariables:!1,frameContextLines:0},serverName:void 0,integrations:[e.extraErrorDataIntegration({depth:4,captureErrorCause:!1}),e.captureConsoleIntegration({levels:["warn","error"]})],initialScope:{tags:{"cli.name":"pm-cli","cli.version":n,"runtime.node":process.version,"runtime.platform":process.platform,"runtime.arch":process.arch}},beforeSend:E_,beforeSendTransaction:S_,beforeSendSpan:e.withStreamedSpan(T_),beforeSendLog:v_,beforeBreadcrumb:A_});let r=e.getClient();if(!r)return;let o=Ke();return e.setTags({"pm.version":n,"pm.source_context":o.source_context,"pm.source_context_source":o.source_context_source}),e.setAttribute("pm.source_context",o.source_context),r.on("beforeEnvelope",C_),zn=e,e}async function x_(e){if(e!==!0||!Wa.has((process.env.PM_SENTRY_TRACE_COMMANDS??"").trim().toLowerCase())||Xa()===0||Ga())return!1;try{return await tc()!==void 0}catch{return zn=void 0,!1}}function ke(){return zn}(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]="9e8ad404-2f8d-5d9b-9046-60178a70e5b2")}catch{}})();var jt=class extends p{constructor(t,n,r){super(t,m.GENERIC_FAILURE,n),this.name="ExtensionCommandError",Object.defineProperty(this,"cause",{value:r,configurable:!0,writable:!0})}};function s0(e,t){let n=t.warnings[0]??"extension_command_handler_failed",r=t.errorMessage?.trim();return new jt(`Command "${e}" failed in extension handler (${n}).${r?` ${r}`:""}`,{code:t.errorCode??"command_failed",nextSteps:t.remediation?[t.remediation]:void 0},t.cause)}function a0(e){return e instanceof p||e instanceof Error?e.message:"Unknown failure"}function R_(e){if(typeof e!="object"||e===null||!("exitCode"in e))return;let t=e.exitCode;return typeof t=="number"&&Number.isFinite(t)?t:void 0}function k_(e){let t=Math.trunc(e);return t>m.SUCCESS?t:m.GENERIC_FAILURE}function c0(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"&&e.code.startsWith("commander.")}function d0(e,t){if(e instanceof Error)return e;let n=new Error(t),r=R_(e);return r!==void 0&&(n.exitCode=k_(r)),n}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bd65294f-dfa5-53d2-9691-c630884f2a5f")}catch{}})();var O_=new Set(["init","config","completion","completion-statuses","completion-tags","completion-types"]),D_=new Set(["list","list-all","list-open","list-in-progress","list-blocked","list-closed","list-canceled","list-draft","search","get","context","calendar","history","activity","aggregate","deps","contracts","stats"]),N_=new Set(["create","update","update-many","close-many","append","close","delete","restore","claim","release","comments","notes","learnings","files","docs","start-task","pause-task","close-task"]),M_=new Set(["test","test-all","test-runs","test-verify","trace-test","test-ping"]),L_=new Set(["health","validate","normalize","reindex","gc","telemetry","extension-doctor"]);function P_(e){return e.trim().replaceAll(/\s+/g," ").toLowerCase()}function nc(e){let t=e?.trim().toLowerCase();return t&&t.length>0?t:void 0}var $_=[{code:"unknown_command",matches:e=>e.includes("unknown command")},{code:"unknown_option",matches:e=>e.includes("unknown option")},{code:"missing_required_option",matches:e=>e.includes("missing required options")||e.includes("missing required option")},{code:"missing_required_argument",matches:e=>e.includes("missing required argument")},{code:"no_update_fields",matches:e=>e.includes("no update flags provided")},{code:"ownership_conflict",matches:e=>e.includes("is assigned to")&&e.includes("use --force")},{code:"lock_conflict",matches:e=>e.includes("is locked")},{code:"terminal_state_conflict",matches:e=>e.includes("already terminal")&&e.includes("use --force")},{code:"tracker_not_initialized",matches:e=>e.includes("tracker is not initialized")},{code:"item_not_found",matches:e=>e.includes(" not found")},{code:"close_through_update",matches:e=>e.includes('use "pm close <id> <text>" to close an item')||e.includes("invalid --status value")&&e.includes('"closed"')},{code:"invalid_argument_value",matches:e=>e.startsWith("invalid ")||e.includes(" must be ")||e.includes(" requires ")},{code:"invalid_command_usage",matches:e=>e.includes("either as positional")&&e.includes("not both")}],F_=new Map([[m.USAGE,"invalid_command_usage"],[m.NOT_FOUND,"item_not_found"],[m.CONFLICT,"lock_conflict"],[m.DEPENDENCY_FAILED,"dependency_failed"]]);function Oe(e){let t=P_(e),n=t.length>0?t.split(" "):["<unknown>"],r=n[0],o=n[n.length-1],i="other";return O_.has(r)?i="setup":D_.has(r)?i="query":N_.has(r)?i="mutation":M_.has(r)?i="testing":r==="extension"?i="extension":L_.has(r)&&(i="diagnostics"),{command_path:t.length>0?t:"<unknown>",command_root:r,command_leaf:o,command_depth:n.length,command_family:i}}function Co(e){if(e.ok)return;let t=nc(e.errorCode);if(t)return t;let n=(e.errorMessage??"").trim().toLowerCase();for(let o of $_)if(o.matches(n))return o.code;let r=Number.isFinite(e.exitCode)?Math.max(0,Math.trunc(e.exitCode)):void 0;return r!==void 0?F_.get(r)??"command_failed":"command_failed"}function Je(e){if(e.ok)return"success";let t=nc(e.errorCode);return t==="unknown_command"?"nonexistent_command":t==="unknown_option"?"invalid_option":t==="missing_required_option"?"missing_required_option":t==="missing_required_argument"?"missing_required_argument":t==="health_findings"?"health_findings":t==="validation_findings"?"validation_findings":e.errorCategory==="usage"?"invalid_usage":e.errorCategory==="validation"?"validation_failed":e.errorCategory==="conflict"?"conflict":e.errorCategory==="runtime"?"runtime_failed":"unknown_failed"}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="10325dfb-128f-5d83-9163-061d8d8b29b6")}catch{}})();var De;function pe(e,t,n){if(n===void 0)return;let r=e;typeof r.setAttribute=="function"&&r.setAttribute(t,n)}function Qe(e,t,n){typeof n=="string"&&n.trim().length>0&&e.setTag(t,n)}function j_(e,t,n){e.setTag("pm.ok",t),e.setTag("pm.command_ok",t),typeof n?.exit_code=="number"&&(e.setTag("pm.exit_code",String(n.exit_code)),e.setTag("pm.command_exit_code",String(n.exit_code))),Qe(e,"pm.error_code",n?.error_code),Qe(e,"pm.error_category",n?.error_category),Qe(e,"pm.command_resolution",n?.command_resolution),Qe(e,"pm.resolution_stage",n?.resolution_stage)}function z_(e,t,n,r){pe(e,"pm.ok",t),pe(e,"pm.command_ok",t),pe(e,"pm.exit_code",n),pe(e,"pm.command_exit_code",n),pe(e,"pm.error_code",r?.error_code),pe(e,"pm.error_category",r?.error_category),pe(e,"pm.command_resolution",r?.command_resolution),pe(e,"pm.resolution_stage",r?.resolution_stage)}function U_(e,t,n,r){let o=ke();if(!o)return;let i=Oe(e);o.setTag("pm.command",e),o.setTag("pm.command_root",i.command_root),o.setTag("pm.command_family",i.command_family),Qe(o,"pm.version",r?.pm_version),Qe(o,"pm.source_context_source",r?.source_context_source),o.setTag("pm.extension.name",r?.extension?.name),o.setTag("pm.extension.version",r?.extension?.version),o.setTag("pm.extension.layer",r?.extension?.layer),typeof r?.source_context=="string"&&r.source_context.trim().length>0&&(o.setTag("pm.source_context",r.source_context),o.setAttribute("pm.source_context",r.source_context));let s=t.map(()=>"[redacted]");o.setContext("pm.command",{name:e,root:i.command_root,leaf:i.command_leaf,family:i.command_family,args:s,option_keys:Object.keys(n).sort(),source_context:r?.source_context,source_context_source:r?.source_context_source}),o.addBreadcrumb({category:"pm.command",message:`pm ${e}`,level:"info",data:{args:s,command_root:i.command_root,command_family:i.command_family,source_context:r?.source_context}})}function V_(e){let t=ke();if(!t)return;let n=Oe(e);De=t.startInactiveSpan({op:"pm.command",name:`pm ${e}`,forceTransaction:!0,attributes:{"pm.command":e,"pm.command_root":n.command_root,"pm.command_family":n.command_family}})}function H_(){De=void 0}function q_(e,t,n){if(!De)return;let r=e?"true":"false",o=typeof n?.exit_code=="number"?String(n.exit_code):void 0,i=ke();i&&j_(i,r,n),z_(De,r,o,n),De.setStatus(e?{code:1}:{code:2,message:t??"command_failed"}),De.end(),De=void 0}var B_="unclassified_runtime_error";function W_(e){let t=typeof e=="object"&&e!==null?e:void 0,n=typeof t?.exitCode=="number",r=n?Math.trunc(t?.exitCode):m.GENERIC_FAILURE;return{error_code:typeof t?.code=="string"&&t.code.length>0&&n?t?.code:B_,exit_code:r}}function G_(e){let t=W_(e);return{"pm.error_code":t.error_code,"pm.exit_code":String(t.exit_code)}}function Y_(e){if(!X_(e))return;let t=ke();if(!t)return;let n=G_(e);if(e instanceof Error){let r={};"exitCode"in e&&typeof e.exitCode=="number"&&(r.exit_code=e.exitCode),"context"in e&&typeof e.context=="object"&&(r.error_context=Xe(e.context)),t.captureException(e,{extra:r,tags:n})}else t.captureException(new Error(String(e)),{tags:n})}function K_(e){let t=ke();if(!t)return;let n=e.command_resolution??Je({ok:!1,errorCode:e.error_code,errorCategory:e.error_category}),r=e.resolution_stage??"unknown",o={"pm.command":e.command,"pm.error_code":e.error_code,"pm.error_category":e.error_category,"pm.exit_code":e.exit_code,"pm.error_message":e.error_message,"pm.command_resolution":n,"pm.resolution_stage":r,"pm.source_context":e.source_context??""},i=t.logger;if(i&&typeof i.warn=="function"){i.warn("pm_cli_usage_error",o);return}t.captureMessage(`pm_cli_usage_error:${e.error_code}`,{level:"warning",tags:{"pm.command":e.command,"pm.error_code":e.error_code,"pm.error_category":e.error_category,"pm.exit_code":String(e.exit_code),"pm.command_resolution":n,"pm.resolution_stage":r,"pm.source_context":e.source_context??"unknown"},extra:o})}function X_(e){if(e instanceof jt)return!0;if(e instanceof p||Ft(e)||e instanceof Error&&e.name==="AbortError"&&/(?:ctrl\+[cd]|sigint|user[- ]initiated)/i.test(e.message))return!1;if(typeof e=="object"&&e!==null&&"exitCode"in e&&typeof e.exitCode=="number"){if(e instanceof Error&&e.name==="CommandError")return!1;let t=Math.trunc(e.exitCode);return!new Set([m.SUCCESS,m.USAGE,m.NOT_FOUND,m.CONFLICT]).has(t)}return!0}async function J_(e=3e3){let t=ke();if(t)try{await t.flush(e)}catch{}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="88eb8555-e098-5279-801e-3b76d0dd0eae")}catch{}})();var Ne=`[^\\s/\\\\<>"'\\x60()\\[\\]{},;?=:#*]+`,x="[/\\\\]+",Q_="[\\p{L}\\p{N}._@-]+",Me=Q_+"(?:"+x+Ne+")*",Un="(?:(?:home|users)"+x+Me+"|root"+x+Me+")",Z_="[/\\\\]"+Un,eh="[/\\\\]{2,}"+Un,th="/?[a-z]:"+x+"users"+x+Me,nh=Ne+"(?: +"+Ne+")*",Ao="(?:"+nh+x+")?users"+x+Me,rh="[/\\\\]{2,}"+Ne+x+Ao,oh="(?:[a-z]:|volume\\{[a-f0-9-]+\\}|"+Ne+")",oc="[/\\\\]{2}[?.]"+x+"(?:unc"+x+Ne+x+Ao+"|"+oh+x+"users"+x+Me+")",ih="file:(?:"+oc+"|(?:[/\\\\](?![/\\\\])|[/\\\\]{3,}|[/\\\\]{2}localhost"+x+")(?:"+Un+"|[a-z]:"+x+"users"+x+Me+")|[/\\\\]{2}(?:[a-z]:"+x+"users"+x+Me+"|"+Ne+x+"(?:"+Un+"|"+Ao+")))",sh=new RegExp("(?:^|[^\\p{L}\\p{N}_./\\\\~])(?:"+Z_+"|"+th+"|"+ih+")|(?:^|[^\\p{L}\\p{N}_:./\\\\~])(?:"+eh+"|"+rh+"|"+oc+")","giu"),rc=4,ah=/%[a-f0-9]{2}|\\(?:u[a-f0-9]{4}|x[a-f0-9]{2}|\/)/iu,ch=new TextDecoder("utf-8");function dh(e){return e.replace(/(?:%[a-f0-9]{2})+/giu,t=>ch.decode(Uint8Array.from(t.matchAll(/%([a-f0-9]{2})/giu),n=>Number.parseInt(n[1],16)))).replace(/%(?![a-f0-9]{2})[a-z0-9]{0,2}/giu,"\uFFFD")}function lh(e){return e.replace(/\\+(?:u([a-f0-9]{4})|x([a-f0-9]{2})|(\/))?/giu,(t,n,r,o)=>{let i=n??r;return i===void 0?o??t:String.fromCharCode(Number.parseInt(i,16))})}function uh(e){return e.normalize("NFKC").replace(/[\p{Bidi_Control}\u200b-\u200f\u2060-\u206f\ufeff]/gu,"").replace(/[\u2215\u2044]/gu,"/").replace(/[\u043e\u041e]/gu,"o").replace(/[\u0455\u0405]/gu,"s")}function mh(e,t){for(let[n,r]of[["percent_decode",dh],["json_unescape",lh],["unicode_fold",uh]]){let o=r(e);o!==e&&!t.includes(n)&&t.push(n),e=o}return e}function*fh(e,t,n){let r=e,o=[];for(let i=0;i<rc;i+=1){let s=r;if(r=mh(r,o),!n){t.lastIndex=0;for(let a of r.matchAll(t))n=!0,yield{index:0,normalizations:[...o]}}if(r===s)break;i===rc-1&&ah.test(r)&&(yield{index:0,normalizations:[...o],normalization_incomplete:!0})}}function*ph(e,t){let n=0;for(let r of e.split(`
|
|
107
|
+
`)){t.lastIndex=0;let o=!1;for(let i of r.matchAll(t))o=!0,yield{index:n+i.index};for(let i of fh(r,t,o))yield{...i,index:n};n+=r.length+1}}var ic=[{name:"private-key",mutationRule:"private_key",regex:/-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----/g},{name:"github-token",mutationRule:"github_token",regex:/\b(?:gh[opsru]_[A-Za-z0-9]{20,}|github_pat_[A-Za-z0-9_]{20,})\b/g},{name:"npm-token",mutationRule:"npm_token",regex:/\bnpm_[A-Za-z0-9]{20,}\b/g},{name:"aws-access-key",mutationRule:"aws_access_key",regex:/\b(?:AKIA|ASIA)[0-9A-Z]{16}\b/g},{name:"google-api-key",mutationRule:"google_api_key",regex:/\bAIza[0-9A-Za-z_-]{35}\b/g},{name:"slack-token",mutationRule:"slack_token",regex:/\bxox[baprs]-[A-Za-z0-9-]{10,}\b/g},{name:"anthropic-api-key",mutationRule:"anthropic_api_key",regex:/\bsk-ant-[A-Za-z0-9_-]{20,}\b/g},{name:"openai-api-key",mutationRule:"openai_api_key",regex:/\bsk-(?!ant-)[A-Za-z0-9_-]{20,}\b/g},{name:"gitlab-token",mutationRule:"gitlab_token",regex:/\bglpat-[A-Za-z0-9_.-]{20,}\b/g},{name:"jwt-like-token",mutationRule:"jwt_like_token",regex:/\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\b/g},{name:"npm-auth-token-assignment",mutationRule:"npm_auth_token_assignment",regex:/_authToken\s*=\s*\S+/g},{name:"sentry-user-token",mutationRule:"sentry_user_token",regex:/\bsntryu_[A-Za-z0-9]{20,}\b/g},{name:"sentry-org-token",mutationRule:"sentry_org_token",regex:/\bsntrys_[A-Za-z0-9_-]{20,}\b/g},{name:"private-ip",mutationRule:"private_ip",regex:/\b(?:10\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d))\b/g},{name:"private-ssh-target",mutationRule:"private_ssh_target",regex:/\b(?:ssh|scp|rsync)\s+[A-Za-z0-9._-]+@(?:10\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d))\b/g},{name:"sshpass-inline-password",mutationRule:"sshpass_inline_password",regex:/\bsshpass\s+-p\s+["'][^"']{6,}["']/g},{name:"password-assignment",mutationRule:"password_assignment",regex:/\b(?:password|passphrase)\s*[:=]\s*(?:(?!<|\$\{|\$\(|config\.auth\.password\s*(?:\|\|\s*(?:''|"")|\?\s*unescape\(encodeURIComponent\(config\.auth\.password\)\)\s*:\s*(?:''|""))(?=[ \t]*(?:\/\*(?:[^*]|\*(?!\/))*\*\/[ \t]*)*(?:;|$|\/\/[^\r\n\u2028\u2029]*(?:\r\n)?$)))[A-Za-z0-9!@#$%^&*._+\-=]{8,}|"(?!<|\$\{|\$\()[^"]{8,}"|'(?!<|\$\{|\$\()[^']{8,}')/gi},{name:"absolute-home-path",mutationRule:"absolute_home_path",regex:sh,excludeFiles:/^(?:tests\/|examples\/)/},{name:"user-at-private-host",mutationRule:"user_at_private_host",regex:/\b[A-Za-z0-9._-]+@(?:10\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d))\b/g,excludeFiles:/^(?:tests\/|examples\/)/},{name:"high-entropy-assignment",mutationRule:"high_entropy_assignment",regex:/\b(?:token|secret|password|passwd|api[_-]?key)\s*[:=]\s*["']?([A-Za-z0-9+/=_-]{24,})/gi,mutationOnlyReason:"Generic assignments in source code are not credentials; preserve the existing mutation heuristic without treating source identifiers as secrets.",minimumEntropy:3.5}];function*sc(e,t){if(e.mutationRule==="absolute_home_path"){yield*ph(t,e.regex);return}e.regex.lastIndex=0;for(let n of t.matchAll(e.regex))_h(e,n)&&(yield{index:n.index})}function _h(e,t){if(e.minimumEntropy===void 0)return!0;let n=t[1],r=new Map;for(let i of n)r.set(i,(r.get(i)??0)+1);let o=0;for(let i of r.values()){let s=i/n.length;o-=s*Math.log2(s)}return o>=e.minimumEntropy}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="d6059407-bf03-5ae8-8b01-e3e7c5b28030")}catch{}})();var hh=[{action:"append",history_scope:"item"},{action:"claim",history_scope:"item"},{action:"close",history_scope:"item"},{action:"close-many",history_scope:"item"},{action:"close-task",history_scope:"item"},{action:"comments",history_scope:"conditional"},{action:"config",history_scope:"conditional"},{action:"copy",history_scope:"item"},{action:"create",history_scope:"item"},{action:"delete",history_scope:"item"},{action:"deps",history_scope:"conditional"},{action:"discover",history_scope:"item"},{action:"docs",history_scope:"conditional"},{action:"files",history_scope:"conditional"},{action:"focus",history_scope:"conditional"},{action:"gc",history_scope:"conditional"},{action:"history-compact",history_scope:"history"},{action:"history-author-acknowledge",history_scope:"workspace"},{action:"history-redact",history_scope:"history"},{action:"history-repair",history_scope:"history"},{action:"init",history_scope:"workspace"},{action:"install",history_scope:"conditional"},{action:"learnings",history_scope:"conditional"},{action:"notes",history_scope:"conditional"},{action:"package",history_scope:"conditional"},{action:"pause-task",history_scope:"item"},{action:"plan",history_scope:"conditional"},{action:"profile",history_scope:"conditional"},{action:"release",history_scope:"item"},{action:"restore",history_scope:"item"},{action:"schema",history_scope:"conditional"},{action:"start-task",history_scope:"item"},{action:"templates",history_scope:"conditional"},{action:"test",history_scope:"conditional"},{action:"test-all",history_scope:"conditional"},{action:"update",history_scope:"item"},{action:"update-many",history_scope:"item"},{action:"upgrade",history_scope:"conditional"}],Ro=new Map(hh.map(e=>[e.action,e]));function xo(e,t="$",n=new WeakSet){return typeof e=="string"?[{path:t,value:e}]:typeof e!="object"||e===null?[]:n.has(e)?[]:(n.add(e),Array.isArray(e)?e.flatMap((r,o)=>xo(r,`${t}[${o}]`,n)):Object.entries(e).flatMap(([r,o])=>xo(o,`${t}.${r}`,n)))}function yh(e,t){let n=sc(e,t),r=n.next().value;if(!r||e.mutationRule!=="absolute_home_path"||r.normalization_incomplete)return r;for(let o of n)if(o.normalization_incomplete)return{...r,normalizations:[...new Set([r.normalizations,o.normalizations].flatMap(i=>i??[]))],normalization_incomplete:!0};return r}function ac(e){let t=[];for(let n of xo(e))for(let r of ic){let o=yh(r,n.value);if(o){let i={rule:r.mutationRule,path:n.path};o.normalizations&&(i.normalizations=o.normalizations),o.normalization_incomplete&&(i.normalization_incomplete=!0),t.push(i)}}return t.filter((n,r,o)=>o.findIndex(i=>i.rule===n.rule&&i.path===n.path)===r)}function gh(e){let t=e.author.trim()||"unknown";if(e.settings.require_attributed_author&&t.toLowerCase()==="unknown")throw new p("Mutation author is required by workspace policy.",m.USAGE,{code:"mutation_author_required",required:"Pass --author <id>, set PM_AUTHOR, or configure author_default.",nextSteps:["Retry with --author <stable-agent-id>.","Set PM_AUTHOR for this agent session."]});if(e.settings.secret_guard==="off")return{author:t,findings:[],warnings:[],override_applied:!1};let n;try{n=ac(e.payload)}catch{return{author:t,findings:[],warnings:["secret_guard_scan_failed_open"],override_applied:!1}}if(n.length===0)return{author:t,findings:n,warnings:[],override_applied:!1};let r=[...new Set(n.map(o=>o.rule))].sort().join(",");if(e.settings.secret_guard==="block"&&e.force!==!0)throw new p(`Mutation blocked by secret guard (${r}). No detected value was logged.`,m.CONFLICT,{code:"mutation_secret_guard_blocked",required:"Remove the credential-shaped content or retry with --force after explicit review.",nextSteps:["Replace the value with a secret-manager reference.","Use pm history-redact if equivalent content already entered history."],recovery:{recovery_mode:"compact",attempted_command:"pm <mutation> [REDACTED]",normalized_args:["[REDACTED]"],suggested_retry:"Remove credential-shaped content, then retry the mutation."}});return{author:t,findings:n,warnings:[`secret_guard_detected:${n.length}:rules=${r}`,...e.settings.secret_guard==="block"&&e.force===!0?["secret_guard_force_override"]:[]],override_applied:e.settings.secret_guard==="block"&&e.force===!0}}function wh(e){return Ro.has(e.trim().toLowerCase())}function bh(){return[...Ro.keys()].sort((e,t)=>e.localeCompare(t))}function I0(e){return Ro.get(e.trim().toLowerCase())}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5767332d-8094-55cd-96e9-47c5d20cd7df")}catch{}})();var Eh=/\b([a-z][a-z0-9]*)-(\d+)(?:-[a-z0-9]+)*\b/giu,Sh=/^(?:utf|iso|sha|tls|http|covid|match)$/iu;function ko(e){return e.trim().toLowerCase().replace(/\s+/g," ")}function dc(e){return[...new Set(ko(e).match(/[\p{L}\p{N}]+/gu)??[])]}function cc(e){let t=ko(e);return{normalized:t,tokens:dc(t),issueCodes:[...new Set([...e.matchAll(Eh)].filter(n=>{let r=n[1],o=n.index,i=e.slice(o+n[0].length);return!Sh.test(r)&&(r===r.toUpperCase()||r.length<=2||o===0&&/^\s*(?::|—|–|\])/u.test(i))}).map(n=>n[0].toLowerCase()))]}}function Th(e,t){return vh(cc(e),cc(t))}function vh(e,t){if(e.normalized===t.normalized)return{score:1,reason:"exact_title"};let n=new Set(e.issueCodes);return t.issueCodes.some(r=>n.has(r))?{score:.99,reason:"issue_code"}:{score:qt(e.tokens,t.tokens),reason:"title_token_jaccard"}}import Ih from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a7cd1d62-16fe-5e5b-b382-64335fc5e403")}catch{}})();function Vn(e){return(e??"in_progress").trim().toLowerCase().replaceAll("-","_")}function Ch(e,t){return[e.updated_at,t].map(n=>({value:n,time:Date.parse(n??"")})).filter(n=>typeof n.value=="string"&&Number.isFinite(n.time)).sort((n,r)=>r.time-n.time)[0]?.value??e.updated_at}function lc(e,t){let n=Math.max(1,Math.trunc(t.threshold_hours)),r=(t.now??new Date).getTime(),o=Vn(t.in_progress_status),i=[];for(let s of e){if(Vn(String(s.status))!==o||(s.assignee?.trim().length??0)>0)continue;let a=Ch(s,t.last_history_activity?.(s)),c=Date.parse(a);if(!Number.isFinite(c))continue;let d=Math.max(0,Math.floor((r-c)/36e5));d>=n&&i.push({id:s.id,last_activity_at:a,age_hours:d})}return i.sort((s,a)=>a.age_hours-s.age_hours||s.id.localeCompare(a.id)),{threshold_hours:n,count:i.length,items:i,remediation:"Claim active work with `pm claim <id>` or return abandoned work to open with `pm update <id> --status open`."}}async function Ah(e,t,n){let r=new Map;return await Promise.all(t.filter(o=>Vn(String(o.status))===Vn(n.in_progress_status)&&(o.assignee?.trim().length??0)===0).map(async o=>{let i;try{i=await ut(Ih.join(e,"history",`${o.id}.jsonl`),o.id)}catch{return}let s=i.map(a=>a.ts).filter(a=>Number.isFinite(Date.parse(a))).sort((a,c)=>Date.parse(c)-Date.parse(a))[0];s&&r.set(o.id,s)})),lc(t,{...n,last_history_activity:o=>r.get(o.id)})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ab644545-f072-53c0-9ebf-72a62c237a2f")}catch{}})();var xh=Object.freeze({"<":"<",">":">",""":'"',"'":"'","&":"&"}),Rh=/&(?:lt|gt|quot|#39|amp);/g;function kh(e){return typeof e!="string"||!e.includes("<")&&!e.includes(">")?e:e.replace(Rh,t=>xh[t])}function Oh(e){return Oo(e,new WeakMap)}function Oo(e,t){if(typeof e=="string")return kh(e);if(Array.isArray(e)){if(t.has(e))return t.get(e);let n=[];t.set(e,n);for(let r of e)n.push(Oo(r,t));return n}if(e!==null&&typeof e=="object"){if(!Dh(e))return e;if(t.has(e))return t.get(e);let n=e,r=Object.create(Object.getPrototypeOf(e));t.set(e,r);for(let[o,i]of Object.entries(n))Object.defineProperty(r,o,{value:Oo(i,t),enumerable:!0,writable:!0,configurable:!0});return r}return e}function Dh(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e7deff0d-d9c9-5250-b172-ab752ddd64a4")}catch{}})();function Nh(e){let t=null;return()=>(t??=e(),t)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bc9e1b59-21cb-5dda-91c0-36e123734cd3")}catch{}})();function uc(e){return e.split(/[\s,|]+/).map(t=>t.trim()).filter(t=>t.startsWith("--"))}function Mh(e){return uc(e)[0]??null}function Lh(e,t){let n=Mh(t);if(n===null)return!1;let r=o=>o.slice(2).replaceAll("-","_");return uc(e).some(o=>!o.slice(2).includes("-")||n===o?!1:r(n)===r(o))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4b566486-120f-5aed-8d92-9e62ed996210")}catch{}})();function Ph(e,t){if(e==null)return[];let n=t?.separators??/,/,r=e.split(n).map(i=>i.trim()).filter(i=>i.length>0),o=t?.unique!==!1?Array.from(new Set(r)):r;return t?.sort===!0?[...o].sort():o}import Do from"node:fs/promises";import Hn from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="12ee7de1-dff4-53f1-8d0d-d8b1c1ebea42")}catch{}})();function $h(e){return"json_markdown"}function mc(e,t){return Hn.relative(e,t).replaceAll("\\","/")}function Fh(e){return String(e).replaceAll(/[^a-zA-Z0-9._-]+/g,"_").slice(0,120)}async function jh(e,t,n){e!==t&&ue(await Do.readFile(t,"utf8"),{format:"json_markdown",requireSupportedFormat:!0,schema:n})}async function zh(e,t,n="item_format:migrate",r=J,o){if(t!=="toon")throw new Error("Only toon item-format migration targets are supported. Markdown item files are legacy read-only input.");let i=new Set,s=new Set,a=[],c=0,d=$h(t),l=Object.entries(r);for(let[u,f]of l){let _=Hn.join(e,f),h=[];try{h=await Do.readdir(_)}catch{continue}let g=new Map;for(let w of h){let S=Hn.join(_,w),A=ot(S);if(!A)continue;let k=Hn.extname(w),I=w.slice(0,w.length-k.length).trim();if(I.length===0)continue;let P=g.get(I)??{};P[A]=S,g.set(I,P)}let y=[...g.keys()].sort((w,S)=>w.localeCompare(S));for(let w of y){let S=g.get(w);c+=1;let A=S[d];if(!A)continue;let k=S[t]??A,I=k===S[t]?t:d;try{let P=await Do.readFile(k,"utf8"),F=ue(P,{format:I,requireSupportedFormat:!0,schema:o,onWarning:V=>a.push(`item_format_migration_parse_warning:${w}:${V}`)});await jh(k,A,o);let ie=$e(e,u,w,t,r),B=dt(F,{format:t,schema:o});await C(ie)!==B&&(await v(ie,B),a.push(...await j({path:ie,scope:"project",op:n})),i.add(w)),await tt(A),s.add(mc(e,A)),a.push(...await j({path:A,scope:"project",op:`${n}:remove`})),i.add(w)}catch(P){a.push(`item_format_migration_skipped:${mc(e,k)}:${Fh(P)}`)}}}return{target_format:t,scanned:c,migrated:[...i].sort((u,f)=>u.localeCompare(f)),removed:[...s].sort((u,f)=>u.localeCompare(f)),warnings:a}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="12c59406-7e00-5fe1-bd93-c1f9d8537f01")}catch{}})();var Uh=new Set(["completed","superseded"]);function Vh(e){return e!==void 0&&Uh.has(e)}function Hh(e){if(e.type.trim().toLowerCase()!=="plan")return!1;let t=e.plan_steps??[];return t.length>0&&t.every(n=>n.status==="completed")}import{createHash as qh}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]="7cbbb50d-e9bc-5940-9ae6-6270e9c2fcbf")}catch{}})();var Bh=/^[a-z][a-z0-9_-]{0,63}$/u,Wh=new Set(["constructor","prototype"]),fc="settings:section:write",Gh=240;function qn(e){return`sha256:${qh("sha256").update(No(e)).digest("hex")}`}function No(e){return Array.isArray(e)?`[${e.map(t=>No(t)).join(",")}]`:typeof e=="object"&&e!==null?`{${Object.keys(e).sort().map(t=>`${JSON.stringify(t)}:${No(Object.getOwnPropertyDescriptor(e,t)?.value)}`).join(",")}}`:String(JSON.stringify(e))}function _c(e){if(!Bh.test(e)||Wh.has(e))throw new p(`Invalid settings section name "${e.slice(0,80)}". Use 1-64 lowercase letters, digits, underscores or hyphens, starting with a letter.`,m.USAGE,{code:"settings_section_name_invalid",field:"section",required:"Name the section after the package, for example lint or jev."});if(xi.includes(e))throw new p(`Settings section "${e}" is owned by core settings; extension sections must use another name.`,m.USAGE,{code:"settings_section_reserved",field:"section",value:e,required:"Read core settings with readSettings and change them with writeSettings or pm config."})}function hc(e){let t;try{t=JSON.parse(e)}catch{t=void 0}if(typeof t!="object"||t===null||Array.isArray(t))throw new p("settings.json is not a JSON object, so no settings section can be read or written.",m.USAGE,{code:"settings_section_document_malformed",reason:t===void 0?"settings_json_malformed":"settings_json_not_object",nextSteps:["Repair .agents/pm/settings.json so it is a JSON object, then retry.","Run pm health to confirm the settings warning has cleared."]});return t}function Mo(e,t,n){let r;try{r=n===void 0?t:n(t)}catch(o){throw new p(`Settings section "${e}" is invalid: ${E(o).slice(0,Gh)}`,m.USAGE,{code:"settings_section_invalid",field:e,required:`Fix the "${e}" section of .agents/pm/settings.json so the owning package accepts it, then retry.`})}return r}function yc(e){return typeof Reflect.get(e,"toJSON")=="function"}function Lo(e){return e.length===0?"the value":e.join(".")}function gc(e,t){return Object.values(Object.getOwnPropertyDescriptors(e)).every(n=>"value"in n&&(!t||n.enumerable===!0))}function Yh(e){if(Object.getPrototypeOf(e)!==Array.prototype||!gc(e,!1))return!1;let t=Object.keys(e);return t.length===e.length&&t.every((n,r)=>n===String(r))&&Object.getOwnPropertyNames(e).length===e.length+1&&Object.getOwnPropertySymbols(e).length===0&&!yc(e)}function Kh(e){let t=Object.getPrototypeOf(e);return(t===Object.prototype||t===null)&&gc(e,!0)&&Object.getOwnPropertySymbols(e).length===0&&!yc(e)}function Xh(e,t){if(e===null||typeof e=="string"||typeof e=="boolean")return null;let n=Lo(t);return typeof e=="number"?Number.isFinite(e)?null:{detail:`${n} is a non-finite number`,representable:!0}:{detail:`${n} is ${typeof e}`,representable:typeof e!="bigint"&&t.length>0}}function wc(e,t=[],n=new Set){if(typeof e!="object"||e===null)return Xh(e,t);let r=Lo(t);if(n.has(e))return{detail:`${r} is a circular reference`,representable:!1};if(!(Array.isArray(e)?Yh(e):Kh(e)))return{detail:`${r} is not a plain JSON ${Array.isArray(e)?"array":"object"}`,representable:!0};n.add(e);for(let[o,i]of Object.entries(e)){let s=wc(i,[...t,o],n);if(s!==null)return s}return n.delete(e),null}function bc(e,t=[]){if(typeof e!="object"||e===null)return null;for(let[n,r]of Object.entries(e)){let o=[...t,n];if(n==="__proto__"||n==="prototype"&&t.at(-1)==="constructor")return Lo(o);let i=bc(r,o);if(i!==null)return i}return null}function pc(e,t,n){return Mo(e,t,()=>{throw new Error(n)})}function Jh(e,t){let n=wc(t);if(n!==null){let o=n.representable?`the value would change when stored as JSON: ${n.detail}`:`the value is not representable as JSON: ${n.detail}`;return pc(e,t,o)}let r=bc(t);return r!==null?pc(e,t,`${r} is a reserved key that settings history cannot record`):JSON.parse(JSON.stringify(t))}function Ec(e,t){return Object.hasOwn(e,t)?e[t]:void 0}async function Qh(e,t,n={}){_c(t);let r=he(e);await we({path:r,scope:"project"});let o=await C(r),i=o===null?void 0:Ec(hc(o),t);if(i===void 0)return{section:t,source:"default",value:n.defaultValue,revision:null};let s=qn(i);return{section:t,source:"stored",value:Mo(t,structuredClone(i),n.validate),revision:s}}async function Zh(e,t,n,r={}){_c(t);let o=n===void 0?void 0:Jh(t,Mo(t,n,r.validate)),i=he(e),s=await W(e);try{let a=await fr({pmRoot:e,filePath:i,op:fc,author:lt(r.author,s.author_default),lockTtlSeconds:s.locks.ttl_seconds,lockWaitMs:s.locks.wait_ms,recordCreation:!1,mutate:c=>{if(c===null)throw new p("settings.json does not exist, so no settings section can be written.",m.NOT_FOUND,{code:"settings_section_document_missing",required:"Initialize the tracker with pm init, then retry."});let d=hc(c),l=Ec(d,t),u=l===void 0?null:qn(l);if(r.expectedRevision!==void 0&&r.expectedRevision!==u)throw new p(`Settings section "${t}" changed since it was read; read it again and reapply the change.`,m.CONFLICT,{code:"settings_section_revision_conflict",field:t,expected_revision:r.expectedRevision,current_revision:u,required:"Read the section again with readSettingsSection, then retry with its current revision."});let f={section:t,changed:!1,previous_revision:u,revision:o===void 0?null:qn(o)};return et(l,o)?{raw:c,result:f}:(o===void 0?delete d[t]:d[t]=o,{raw:`${JSON.stringify(d,null,2)}
|
|
108
|
+
`,result:{...f,changed:!0}})}});return a.changed&&await j({path:i,scope:"project",op:fc}),a.result}finally{Jt(e)}}import ey from"node:readline/promises";import{stdin as ty,stdout as Sc}from"node:process";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="88db9929-8e1d-56ad-9a5f-6cc0febadfb3")}catch{}})();var ny="PM_TELEMETRY_PROMPT",Tc=new Set(["0","false","no","off"]),ry=new Set(["init","completion","completion-statuses","completion-tags","completion-types"]);function oy(e){return typeof e!="string"?!1:Tc.has(e.trim().toLowerCase())}function iy(e){if(typeof e!="string")return!1;let t=e.trim().toLowerCase();return t.length===0?!1:!Tc.has(t)}function sy(e,t){if(t.json===!0||t.quiet===!0||process.stdin.isTTY!==!0||process.stdout.isTTY!==!0||oy(process.env[ny])||iy(process.env.CI))return!0;let n=e.trim().toLowerCase();return n.length===0?!0:ry.has(n)}function ay(e){let t=e.trim().toLowerCase();return!(t==="n"||t==="no")}async function cy(e){let t=`pm telemetry helps improve reliability and usage diagnostics.
|
|
109
|
+
It is enabled by default and can be changed anytime via:
|
|
110
|
+
pm config global set telemetry-tracking --policy disabled
|
|
111
|
+
Enable telemetry now? [${e?"Y/n":"y/N"}] `,n=ey.createInterface({input:ty,output:Sc});try{let r=await n.question(t);return r.trim().length===0?e:ay(r)}finally{n.close()}}async function dy(e,t){if(!(Y().telemetry_disabled||sy(e,t)))try{let n=de(process.cwd()),r=await W(n);if(r.telemetry.first_run_prompt_completed||_t(r))return;let o=await cy(r.telemetry.enabled);r.telemetry.enabled=o,r.telemetry.first_run_prompt_completed=!0,await ht(n,r,"telemetry:first_run_prompt"),Sc.write(`Telemetry ${o?"enabled":"disabled"} for this CLI install. Update any time with pm config global set telemetry-tracking --policy ${o?"disabled":"enabled"}.
|
|
112
|
+
`)}catch{}}import X from"node:crypto";import{spawn as my}from"node:child_process";import{mkdirSync as Po,rmSync as fy,statSync as Lc}from"node:fs";import{mkdir as $o,readdir as py,rm as qo,stat as Pc}from"node:fs/promises";import{request as _y}from"node:http";import{request as hy}from"node:https";import Bo from"node:os";import U from"node:path";import ly from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4f455b67-536a-59be-8f25-1dc9c9c0b917")}catch{}})();async function vc(e,t,n,r=process.env,o=Date.now()){if(!n||!Mn.has(t))return 1;if(r.PM_TELEMETRY_READ_SAMPLE_RATE!==void 0)return Ia(t,!0,r);try{let i=ly.join(e,"runtime","telemetry","read-sampling.json"),s=Math.floor(o/6e4),a=uy(await C(i),s),c=Math.min(Number.MAX_SAFE_INTEGER,(a[t]??0)+1);return a[t]=c,await v(i,`${JSON.stringify({minute:s,counts:a})}
|
|
113
|
+
`),Math.min(1,(10/c)**2)}catch{return 1}}function uy(e,t){let n={},r;try{r=JSON.parse(e??"null")}catch{return n}if(typeof r!="object"||r===null||!("minute"in r)||r.minute!==t||!("counts"in r)||typeof r.counts!="object"||r.counts===null)return n;for(let[o,i]of Object.entries(r.counts))Mn.has(o)&&typeof i=="number"&&Number.isSafeInteger(i)&&i>=0&&(n[o]=i);return n}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cbcb519e-1348-5974-bd16-ea5905c468a4")}catch{}})();var yy=U.join("runtime","telemetry","events.jsonl"),gy=U.join("runtime","telemetry","state.json"),wy=U.join("runtime","telemetry","otel-spans.jsonl"),by=8,Ic=500,Gn=1,Cc=1,Ey=100,Sy=36e5,Ty=3e4,Ac=2e4,vy=1e3,Iy=25e3,Wo=250,Cy=864e5,Yn=65536,$c=6,Fc=20,jc=15,Ay=8192,zc=[25,50,100,200],xy=3600*1e3,Uc=6e4,Ry=6e4,ky="OTEL_EXPORTER_OTLP_TRACES_ENDPOINT",Oy="OTEL_EXPORTER_OTLP_ENDPOINT",Dy="OTEL_SERVICE_NAME",Ny="PM_TELEMETRY_OTEL_DISABLED",My=new Set(["1","true","yes","on"]),Ly="PM_TELEMETRY_INLINE_FLUSH",ce="PM_TELEMETRY_FLUSH_CHILD",Py="PM_TELEMETRY_HTTP_TIMEOUT_MS",$y=globalThis.fetch,xc=!1,Fo=Promise.resolve(),Rc=Promise.resolve(),Bn=new WeakMap;var Fy=new Set(["1","true","yes","on"]),jy=new Set(["claude-code","codex","pi","opencode","cursor","aider","gemini-cli","ci"]),Kn=X.randomUUID(),zy=["token","secret","password","passwd","api_key","apikey","authorization","cookie","session","credentials","bearer"],Uy=new Set(["literal","literals","regex","regexes","replacement","replacements","setjson","set_json","update"]),Vc="(?:token|secret|password|passwd|api[_-]?key|apikey|authorization|cookie|session|credentials|bearer|literals?|regex(?:es)?|replacements?)",Vy=new RegExp(`\\b(${Vc})\\s*([:=])\\s*([^\\s,;]+)`,"giu"),Hy=new RegExp(`(--${Vc})(=|\\s+)([^\\s,;]+)`,"giu"),qy=/(^|[\s"'`(=])\/(?:[^\s"'`),;]+)/g,By=/bearer\s+[a-z0-9._=-]+/giu,Wy=/\b(?:10\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d))\b/g;function zt(e){return U.join(e,yy)}function Ut(e){return U.join(e,wy)}function Gy(e){return U.dirname(zt(e))}function Hc(e){return U.join(e,gy)}function Go(e){return U.join(e,"runtime","telemetry","flush.lock")}function qc(e){return U.join(e,"runtime","telemetry","flush.spawn.lock")}function Yy(){return U.join(st(import.meta.url,["../../.."]),"dist","cli","telemetry-flush.js")}function Ky(){return oe(process.env[Ly])||oe(process.env[ce])?!0:Nn()}async function Xy(e){let t=await C(Hc(e));if(!t||t.trim().length===0)return{};try{let n=JSON.parse(t);return typeof n!="object"||n===null||Array.isArray(n)?{}:n}catch{return{}}}async function re(e,t){try{await _e(async()=>{let n={...await Xy(e),...t},r=Object.fromEntries(Object.entries(n).filter(([,o])=>o!==void 0).sort((o,i)=>o[0].localeCompare(i[0])));await v(Hc(e),`${JSON.stringify(r,null,2)}
|
|
114
|
+
`,{createParentDirectories:!oe(process.env[ce])})},e)}catch{}}function zo(e){let t=e.trim().toLowerCase().replaceAll("-","_").replaceAll(/[^a-z0-9_]+/g,"_"),n=t.split("_").filter(r=>r.length>0);return Uy.has(t)||zy.some(r=>t===r||t.endsWith(`_${r}`)||n.includes(r))}function Bc(e){return e.replaceAll(Vy,(t,n,r)=>`${n}${r}[redacted]`).replaceAll(Hy,(t,n,r)=>`${n}${r}[redacted]`)}function Wc(e){return e.replaceAll(qy,(t,n)=>`${n}[redacted_path]`)}function Gc(e){let t=e>=65&&e<=90,n=e>=97&&e<=122,r=e>=48&&e<=57;return t||n||r}function Yc(e){if(!e)return!1;let t=e.charCodeAt(0);return Gc(t)?!0:e==="."||e==="_"||e==="%"||e==="+"||e==="-"}function Kc(e){if(!e)return!1;let t=e.charCodeAt(0);return Gc(t)?!0:e==="."||e==="-"}function Jy(e){let t=e.indexOf("@");if(t<=0||t!==e.lastIndexOf("@")||t===e.length-1)return!1;let n=e.slice(0,t),r=e.slice(t+1),o=r.lastIndexOf(".");if(o<=0||o===r.length-1||r.length-(o+1)<2)return!1;for(let i of n)if(!Yc(i))return!1;for(let i of r)if(!Kc(i))return!1;return!0}function Qy(e){let t="",n=0;for(;n<e.length;){let r=e.indexOf("@",n);if(r<0){t+=e.slice(n);break}let o=r-1;for(;o>=n&&Yc(e[o]);)o-=1;o+=1;let i=r+1;for(;i<e.length&&Kc(e[i]);)i+=1;let s=e.slice(o,i);if(Jy(s)){t+=e.slice(n,o),t+="[redacted_email]",n=i;continue}t+=e.slice(n,r+1),n=r+1}return t}function Xc(e){return Qy(e).replaceAll(By,"bearer [redacted_token]").replaceAll(Wy,"[redacted_ip]")}function Zy(e){let t=Xc(e),n=Bc(t),r=Wc(n),o=r.trim();return o.startsWith("/")&&o.length>1?"[redacted_path]":r.length>512?`${r.slice(0,509)}...`:r}function eg(e){let t=Xc(e),n=Bc(t),r=Wc(n),o=r.trim();return o.startsWith("/")&&o.length>1?"[redacted_path]":r.length>2048?`${r.slice(0,2045)}...`:r}function R(e,t="redacted"){return t==="max"?eg(e):Zy(e)}function Le(e,t,n="redacted",r=0){if(t&&zo(t))return"[redacted]";if(e==null)return e;if(typeof e=="string")return R(e,n);if(typeof e=="number"||typeof e=="boolean")return e;if(r>=$c)return"[depth_truncated]";if(Array.isArray(e))return e.slice(0,Fc).map(o=>Le(o,void 0,n,r+1));if(typeof e=="object"){let o=e,i={};for(let[s,a]of Object.entries(o))i[s]=Le(a,s,n,r+1);return i}return String(e)}function Jc(e,t="redacted"){let n=[],r=!1;for(let o of e){let i=R(o,t);if(r){n.push("[redacted]"),r=!1;continue}if(i.startsWith("--")){let s=i.slice(2),a=s.indexOf("=");if(a>=0){let c=s.slice(0,a),d=s.slice(a+1);zo(c)?n.push(`--${c}=[redacted]`):n.push(`--${c}=${R(d,t)}`);continue}if(zo(s)){n.push(`--${s}`),r=!0;continue}}n.push(i)}return n}function tg(e){let t=e?.trim().toLowerCase();return t==="minimal"||t==="redacted"||t==="max"?t:"redacted"}function oe(e){return Fy.has((e??"").trim().toLowerCase())}function kc(){let e=process.env[Py]?.trim();if(!e)return Ac;let t=Number(e);return Number.isFinite(t)?Math.min(Iy,Math.max(vy,Math.trunc(t))):Ac}async function Qc(e,t,n){let r=new URL(e);if(globalThis.fetch!==$y){let i=new AbortController,s,a=new Promise((c,d)=>{s=setTimeout(()=>{i.abort(),d(new Error("telemetry_http_timeout"))},kc())});try{return(await Promise.race([globalThis.fetch(e,{method:"POST",headers:t,body:n,signal:i.signal}),a])).status}finally{clearTimeout(s)}}let o=r.protocol==="https:"?hy:r.protocol==="http:"?_y:void 0;if(!o)throw new Error(`telemetry_http_protocol_unsupported_${r.protocol}`);return new Promise((i,s)=>{let a=kc(),c={method:"POST",headers:{...t,"content-length":Buffer.byteLength(n)},signal:AbortSignal.timeout(a),autoSelectFamilyAttemptTimeout:Math.min(5e3,a)},d=o(r,c,l=>{l.once("error",s),l.once("end",()=>i(l.statusCode)),l.resume()});d.once("error",s),d.end(n)})}function Zc(e){let t=typeof e=="string"?e.trim():"";return t.length>0?t:"0.0.0"}function Yo(e){let t=e?.trim();return t&&t.length>0?t:void 0}function Ko(e,t){return Number.isFinite(e)?Math.max(0,Math.trunc(e)):t?0:1}function ed(e){if(!e.ok)return typeof e.errorCategory=="string"&&e.errorCategory.trim().length>0?e.errorCategory:typeof e.errorCode=="string"&&e.errorCode.trim().length>0?Vt(e.errorCode):"unknown"}function td(e){let t=Ke(e);return t.source_context_source==="env_override_rejected"&&!xc&&!e.quiet&&(xc=!0,process.stderr.write(`[pm] warning: PM_TELEMETRY_SOURCE_CONTEXT is not one of ${Dn.join("|")}; ignoring override.
|
|
115
|
+
`)),t}function L(e,t){return X.createHash("sha256").update(`${e}:${t}`).digest("hex")}function Xo(e,t){let n=(lr()??"").trim(),r=Ii({env:process.env,argv:process.argv}),o=r.harness!==void 0||r.model!==void 0;return e==="minimal"?{has_author_context:n.length>0,has_agent_context:o}:{agent_harness:r.harness?jy.has(r.harness)?r.harness:"other":"none",ci:oe(process.env.CI),...n.length>0?{author_context_hash:L(t,n)}:{},...r.harness?{agent_harness_hash:L(t,r.harness)}:{},...r.model?{agent_model_hash:L(t,r.model)}:{},...r.model_source?{agent_model_source:r.model_source}:{}}}function Uo(e,t=0){if(e==null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;if(t>=$c)return"[depth_truncated]";if(Array.isArray(e))return e.slice(0,Fc).map(n=>Uo(n,t+1));if(typeof e=="object"){let n=e,r={},o=Object.keys(n).sort((i,s)=>i.localeCompare(s));for(let i of o)r[i]=Uo(n[i],t+1);return r}return String(e)}function Vo(e,t){return L(e,JSON.stringify(Uo(t)))}function nd(e,t){return{hashes:t.map(n=>L(e,n)),digest:L(e,t.join("\0"))}}function rd(e,t,n,r){let o=R(typeof r=="string"?r:"","redacted"),i=typeof n=="string"&&n.length>0?n:"unknown_error",s=`${t}\0${i}\0${o}`;return L(e,s)}function ng(){if(My.has((process.env[Ny]??"").trim().toLowerCase()))return null;let e=(process.env[ky]??"").trim();if(e.length>0)try{return new URL(e).toString()}catch{return null}let t=(process.env[Oy]??"").trim();if(t.length===0)return null;try{let n=new URL(t),r=n.pathname.replace(/\/+$/,"");return r.endsWith("/v1/traces")||(n.pathname=`${r.length===0?"":r}/v1/traces`),n.toString()}catch{return null}}function Oc(e){let t=Date.parse(e),n=Number.isNaN(t)?Date.now():t;return`${BigInt(n)*1000000n}`}function z(e,t){return{key:e,value:{stringValue:t}}}function rg(e,t){return{key:e,value:{boolValue:t}}}function Dc(e,t){return{key:e,value:{intValue:String(Math.max(0,Math.trunc(t)))}}}function og(e,t,n,r,o=1){let i=e.otel_traces_endpoint;if(typeof i!="string"||i.trim().length===0||[e.otel_trace_id,e.otel_span_id].some(_=>typeof _!="string"||_.length===0))return null;let s=R((process.env[Dy]??"").trim()),a=s.length>0?s:"pm-cli",c=Ko(t.exit_code,t.ok),d=Yo(t.error_code),l=ed({ok:t.ok,errorCode:d,errorCategory:t.error_category}),u=[z("pm.command",R(e.command)),z("pm.version",e.pm_version),z("pm.source_context",e.source_context),z("pm.source_context_source",e.source_context_source),z("pm.installation_id",e.installation_id),z("pm.session_id",Kn),z("pm.pm_root_hash",e.pm_root_hash),z("pm.cwd_hash",e.cwd_hash),rg("pm.ok",t.ok),Dc("pm.exit_code",c),Dc("pm.duration_ms",r),z("pm.sample_rate",String(o))];typeof d=="string"&&u.push(z("pm.error_code",d)),typeof l=="string"&&u.push(z("pm.error_category",l)),typeof t.error=="string"&&t.error.trim().length>0&&u.push(z("pm.error",R(t.error)));let f={resourceSpans:[{resource:{attributes:[z("service.name",a)]},scopeSpans:[{scope:{name:"pm-cli.telemetry",version:"1"},spans:[{traceId:e.otel_trace_id,spanId:e.otel_span_id,name:`pm.command.${R(e.command)}`,kind:1,startTimeUnixNano:Oc(e.started_at),endTimeUnixNano:Oc(n),attributes:u,status:{code:t.ok?1:2,message:t.ok?"":R(typeof t.error=="string"?t.error:"command_failed")}}]}]}]};return{endpoint:i,payload:f}}function ig(e,t="redacted"){if(e==null)return{type:"nullish"};if(typeof e=="string")return{type:"string",value:R(e,t)};if(typeof e=="number"||typeof e=="boolean")return{type:typeof e,value:e};if(Array.isArray(e))return{type:"array",length:e.length,sample:e.slice(0,5).map(n=>Le(n,void 0,t))};if(typeof e=="object"){let n=e,r=Object.keys(n).filter(s=>s!=="tests").sort((s,a)=>s.localeCompare(a)),o={},i=0;for(let s of r.slice(0,25)){let a=Le(n[s],s,t);if(a===void 0)continue;let c=JSON.stringify(a).length;if(i+c>Ay){o[s]="[preview_truncated]";break}i+=c,o[s]=a}return{type:"object",key_count:r.length,keys_preview:r.slice(0,50),preview:o}}return{type:typeof e,value:String(e)}}function sg(e){let{captureLevel:t,context:n,pmVersion:r,sourceContext:o,pmRootHash:i,cwdHash:s,installationId:a}=e,c=Oe(n.command),d=nd(a,n.args),l=L(a,`${n.command}\0${n.args.join("\0")}`),u=Vo(a,n.options),f=Vo(a,n.global),_=Xo(t,a);return t==="minimal"?{capture_level:t,pm_version:r,source_context:o.source_context,source_context_source:o.source_context_source,command_taxonomy:c,command_args_digest:d.digest,command_invocation_digest:l,command_options_digest:u,global_options_digest:f,..._}:{pm_version:r,source_context:o.source_context,source_context_source:o.source_context_source,command_taxonomy:c,..._,command_args:Jc(n.args,t),command_args_hashes:d.hashes,command_args_digest:d.digest,command_invocation_digest:l,command_options:Le(n.options,void 0,t),command_options_digest:u,global_options:Le(n.global,void 0,t),global_options_digest:f,pm_root_hash:i,cwd_hash:s,capture_level:t,runtime:{node:process.version,platform:process.platform,arch:process.arch,hostname_hash:L(a,Bo.hostname()),stdin_tty:process.stdin.isTTY===!0,stdout_tty:process.stdout.isTTY===!0}}}function ag(e){let{captureLevel:t,pmVersion:n,sourceContext:r,outcome:o,durationMs:i,startedAt:s,command:a,installationId:c,commandTaxonomy:d,exitCode:l,errorCode:u,errorCategory:f,commandResolution:_,resolutionStage:h}=e,g=o.ok===!1?rd(c,a,u,o.error):void 0,y=Xo(t,c);return t==="minimal"?{capture_level:t,pm_version:n,source_context:r.source_context,source_context_source:r.source_context_source,command_taxonomy:d,command_resolution:_,resolution_stage:h,ok:o.ok,exit_code:l,error_code:u,error_category:f,error:o.error?R(o.error,"redacted"):void 0,error_fingerprint:g,duration_ms:i,...y}:{capture_level:t,pm_version:n,source_context:r.source_context,source_context_source:r.source_context_source,command_taxonomy:d,command_resolution:_,resolution_stage:h,...y,ok:o.ok,exit_code:l,error_code:u,error_category:f,error:o.error?R(o.error,t):void 0,error_fingerprint:g,duration_ms:i,started_at:s,result_summary:ig(o.result,t)}}function cg(e){let{captureLevel:t,pmVersion:n,sourceContext:r,command:o,commandTaxonomy:i,commandResolution:s,resolutionStage:a,args:c,options:d,pmRootHash:l,cwdHash:u,installationId:f,errorCode:_,errorMessage:h,errorCategory:g,exitCode:y}=e,w=nd(f,c),S=L(f,o),A=Vo(f,d),k=rd(f,o,_,h),I=Xo(t,f);return t==="minimal"?{capture_level:t,pm_version:n,source_context:r.source_context,source_context_source:r.source_context_source,command_taxonomy:i,command_resolution:s,resolution_stage:a,attempted_command_digest:S,attempted_args_digest:w.digest,attempted_options_digest:A,error_code:_,error_category:g,exit_code:y,error:R(h,"redacted"),error_fingerprint:k,...I}:{capture_level:t,pm_version:n,source_context:r.source_context,source_context_source:r.source_context_source,command_taxonomy:i,command_resolution:s,resolution_stage:a,...I,attempted_command:R(o,t),attempted_command_digest:S,attempted_args:Jc(c,t),attempted_args_hashes:w.hashes,attempted_args_digest:w.digest,attempted_options:Le(d,void 0,t),attempted_options_digest:A,error_code:_,error_category:g,exit_code:y,error:R(h,t),error_fingerprint:k,pm_root_hash:l,cwd_hash:u,runtime:{node:process.version,platform:process.platform,arch:process.arch,hostname_hash:L(f,Bo.hostname()),stdin_tty:process.stdin.isTTY===!0,stdout_tty:process.stdout.isTTY===!0}}}async function Jo(e){let t=await W(e);if(!t.telemetry.enabled||Y().telemetry_disabled)return null;if(t.telemetry.installation_id.trim().length===0){if(_r(e)||_t(t))return null;t.telemetry.installation_id=X.randomUUID(),await ht(e,t,"telemetry:install_id")}return{installationId:t.telemetry.installation_id,endpoint:t.telemetry.endpoint,retentionDays:Math.max(1,Math.trunc(t.telemetry.retention_days)),captureLevel:tg(t.telemetry.capture_level)}}async function Wn(e,t){let n=JSON.stringify({client_schema_version:Cc,event:t,attempts:0});if(n.length>Yn){let r={...t,payload:{...t.payload,result_summary:{truncated:!0,reason:"payload_size_exceeded",original_bytes:n.length}}};n=JSON.stringify({client_schema_version:Cc,event:r,attempts:0})}await Zn(zt(e),n)}function od(e){let t=[];for(let n of e.split(`
|
|
116
|
+
`)){let r=n.trim();if(r.length!==0)try{let o=JSON.parse(r);o&&typeof o=="object"&&o.event&&typeof o.event=="object"&&typeof o.attempts=="number"&&(o.client_schema_version===void 0||typeof o.client_schema_version=="number"&&Number.isFinite(o.client_schema_version))&&t.push(o)}catch{}}return t}function id(e){let t=Math.min(Ty*2**Math.max(e-1,0),Sy);return new Date(Date.now()+t).toISOString()}function Qo(e){if(typeof e!="string"||e.trim().length===0)return!0;let t=Date.parse(e);return Number.isNaN(t)?!0:t<=Date.now()}function sd(e){return Qo(e.next_attempt_after)}function ad(e){let t=Number.isFinite(e)?Math.max(1,Math.trunc(e)):1;return Date.now()-t*Cy}function dg(e,t){let n=e.event?.occurred_at;if(typeof n!="string"||n.trim().length===0)return!1;let r=Date.parse(n);return Number.isNaN(r)?!1:r<t}function Xn(e,t){let n=ad(t),r=[],o=0;for(let i of e){if(JSON.stringify(i).length>Yn||dg(i,n)||i.attempts>=jc){o+=1;continue}r.push(i)}return{entries:r,prunedCount:o}}async function cd(e,t){let n=t.map(o=>JSON.stringify(o)).join(`
|
|
117
|
+
`),r=n.length>0?`${n}
|
|
118
|
+
`:"";for(let o=0;;o+=1)try{await v(zt(e),r,{createParentDirectories:!oe(process.env[ce])});return}catch(i){let s=zc[o];if(s===void 0||!dd(i))throw i;await ld(s)}}function dd(e){if(typeof e!="object"||e===null||!("code"in e))return!1;let t=e.code;return t==="EACCES"||t==="EBUSY"||t==="EPERM"}function ld(e){return new Promise(t=>{setTimeout(t,e)})}async function lg(e,t){let n={id:X.randomUUID(),endpoint:t.endpoint,payload:t.payload,enqueued_at:M(),attempts:0},r=JSON.stringify(n);r.length>Yn||await Zn(Ut(e),r)}function ug(e){let t=JSON.stringify([e.endpoint,e.enqueued_at,e.payload]);return X.createHash("sha256").update(t).digest("hex").slice(0,32)}function Zo(e){let t=[];for(let n of e.split(`
|
|
119
|
+
`)){let r=n.trim();if(r.length!==0)try{let o=JSON.parse(r);o&&typeof o=="object"&&typeof o.endpoint=="string"&&o.endpoint.trim().length>0&&"payload"in o&&typeof o.attempts=="number"&&Number.isFinite(o.attempts)&&((typeof o.id!="string"||o.id.length===0)&&(o.id=ug(o)),t.push(o))}catch{}}return t}function mg(e,t){if(typeof e.enqueued_at!="string"||e.enqueued_at.trim().length===0)return!1;let n=Date.parse(e.enqueued_at);return Number.isNaN(n)?!1:n<t}function ei(e,t){let n=ad(t),r=[],o=0;for(let i of e){if(JSON.stringify(i).length>Yn||mg(i,n)||i.attempts>=jc){o+=1;continue}r.push(i)}if(r.length>Ic){let i=r.length-Ic;return o+=i,{entries:r.slice(i),prunedCount:o}}return{entries:r,prunedCount:o}}async function fg(e,t){let n=t.map(o=>JSON.stringify(o)).join(`
|
|
120
|
+
`),r=n.length>0?`${n}
|
|
121
|
+
`:"";for(let o=0;;o+=1)try{await v(Ut(e),r,{createParentDirectories:!oe(process.env[ce])});return}catch(i){let s=zc[o];if(s===void 0||!dd(i))throw i;await ld(s)}}async function Nc(e,t,n,r){return _e(async()=>{let o=await C(Ut(e)),i=o===null?[]:Zo(o),s=[];for(let c of i){if(n.has(c.id))continue;let d=r.get(c.id);s.push(d?{...c,attempts:d.attempts,next_attempt_after:d.next_attempt_after}:c)}let{entries:a}=ei(s,t);return await fg(e,a),a.length},e)}async function pg(e,t){let n=await C(Ut(e));if(n===null||n.trim().length===0){await re(e,{pending_otel_spans:0});return}let r=Zo(n),{entries:o,prunedCount:i}=ei(r,t),s=o.filter(h=>Qo(h.next_attempt_after)).slice(0,by);if(s.length===0){let h=i>0?await Nc(e,t,new Set,new Map):o.length;await re(e,{pending_otel_spans:h});return}let a=M(),c=new Set,d=new Map,l=0,u;await Promise.all(s.map(async h=>{try{let g=await Qc(h.endpoint,{"content-type":"application/json"},JSON.stringify(h.payload));if(g<200||g>=300)throw new Error(`local_otel_export_http_${g}`);c.add(h.id),l+=1}catch(g){u=g instanceof Error?R(g.message,"redacted"):"local_otel_export_failed";let y=h.attempts+1;d.set(h.id,{attempts:y,next_attempt_after:id(y)})}}));let f=await Nc(e,t,c,d),_={pending_otel_spans:f,last_otel_attempt_at:a};l>0&&(_.last_otel_success_at=a),u!==void 0?(_.last_otel_failure_at=a,_.last_otel_failure_error=u):f===0&&(_.last_otel_failure_at=void 0,_.last_otel_failure_error=void 0),await re(e,_)}async function ud(e,t,n){try{await yg(e,t,n)}catch{}try{await pg(e,n)}catch{}}async function _g(e,t=xy){try{let n=Gy(e),r=await py(n,{withFileTypes:!0}),o=Date.now()-Math.max(0,t);await Promise.all(r.filter(i=>i.isFile()&&/^\.events\.jsonl\.\d+\.\d+\.[a-f0-9]+\.tmp$/.test(i.name)).map(async i=>{let s=U.join(n,i.name);(await Pc(s)).mtimeMs<o&&await qo(s,{force:!0})}))}catch{}}async function _e(e,t=de(process.cwd()),n=5e3){let r=Rc.catch(()=>{}).then(()=>bi(async()=>{let o=await be(t,"telemetry-queue",60,"telemetry",!1,!1,n,{createParentDirectories:!oe(process.env[ce])});try{return Jt(t),await e()}finally{await o()}}));return Rc=r.catch(()=>{}),r}async function Jn(e){let t=await C(zt(e));return t===null||t.trim().length===0?[]:od(t)}async function jo(e,t,n){return _e(async()=>{let r=await Jn(e),{entries:o}=Xn(r,n),i=o.filter(s=>!t.has(s.event.event_id));return await cd(e,i),i},e)}async function hg(e,t,n,r){return _e(async()=>{let o=await Jn(e),{entries:i}=Xn(o,r),s=i.map(a=>{if(!t.has(a.event.event_id))return a;let c=a.attempts+1;return{...a,attempts:c,last_attempt_at:n,next_attempt_after:id(c)}});return await cd(e,s),s},e)}async function yg(e,t,n){await _g(e);let r=t.trim();if(r.length===0)return;let o=await C(zt(e));if(o===null||o.trim().length===0){await re(e,{endpoint:r,queue_entries:0});return}let i=od(o);if(i.length===0){await re(e,{endpoint:r,queue_entries:0});return}let{entries:s,prunedCount:a}=Xn(i,n);if(s.length===0){let _=await jo(e,new Set,n);await re(e,{endpoint:r,queue_entries:_.length});return}let c=s.filter(_=>sd(_)).slice(0,Ey);if(c.length===0){let _=a>0?await jo(e,new Set,n):s;await re(e,{endpoint:r,queue_entries:_.length});return}let d=new Set(c.map(_=>_.event.event_id)),l=M(),u={"content-type":"application/json"},f=process.env.PM_TELEMETRY_INGEST_KEY?.trim();f&&(u["x-pm-telemetry-key"]=f);try{let _=await Qc(r,u,JSON.stringify({schema_version:Gn,events:c.map(h=>h.event)}));if(_<200||_>=300)throw new Error(`telemetry_flush_http_${_}`)}catch(_){let h=await hg(e,d,l,n),g=_ instanceof Error?R(_.message,"redacted"):"telemetry_flush_failed";await re(e,{endpoint:r,queue_entries:h.length,last_attempted_flush_at:l,last_failed_flush_at:l,last_failed_flush_error:g});return}try{let _=await jo(e,d,n);await re(e,{endpoint:r,queue_entries:_.length,last_attempted_flush_at:l,last_successful_flush_at:l,last_failed_flush_at:void 0,last_failed_flush_error:void 0})}catch(_){let h=_ instanceof Error?R(_.message,"redacted"):"telemetry_flush_failed",g=await Jn(e).catch(()=>s);await re(e,{endpoint:r,queue_entries:g.length,last_attempted_flush_at:l,last_failed_flush_at:l,last_failed_flush_error:h})}}async function gg(e){let t=Go(e);oe(process.env[ce])||await $o(U.dirname(t),{recursive:!0});try{return await $o(t),!0}catch(n){if(typeof n!="object"||n===null||!("code"in n)||n.code!=="EEXIST")throw n}try{let n=await Pc(t);return Date.now()-n.mtimeMs<Uc?!1:(await qo(t,{recursive:!0,force:!0}),await $o(t),!0)}catch{return!1}}function wg(e,t){try{return Date.now()-Lc(e).mtimeMs<t}catch{return!1}}function md(e){try{fy(e,{recursive:!0,force:!0})}catch{}}function bg(e){if(typeof e!="object"||e===null||!("code"in e))return;let t=e.code;return typeof t=="string"?t:void 0}function Eg(e){try{return Po(e),!0}catch(t){if(bg(t)==="EEXIST"||!N(t))return!1}try{return Po(U.dirname(e),{recursive:!0}),Po(e),!0}catch{return!1}}function Sg(e){if(wg(Go(e),Uc))return!1;let t=qc(e);try{if(Date.now()-Lc(t).mtimeMs<Ry)return!1;md(t)}catch(n){if(!N(n))return!1}return Eg(t)}function Ho(e){md(qc(e))}async function Tg(e,t,n){let r=await gg(e);if(Ho(e),!r)return!1;try{await ud(e,t,n)}finally{try{await qo(Go(e),{recursive:!0,force:!0})}catch{}}return!0}async function Mc(e,t){let n=new Set;try{let{entries:r}=Xn(await Jn(e),t);for(let o of r.filter(sd))n.add(`event:${o.event.event_id}`)}catch{}try{let r=await C(Ut(e));if(r!==null)for(let o of ei(Zo(r),t).entries)Qo(o.next_attempt_after)&&n.add(`span:${o.id}`)}catch{}return n}function ti(e,t,n){if(!_r(e)){if(Ky())return Fo=Fo.then(()=>ud(e,t,n)),Fo;try{if(!Sg(e))return;let r=my(process.execPath,[Yy()],{detached:!0,stdio:"ignore",cwd:Bo.tmpdir(),env:{...process.env,PM_GLOBAL_PATH:e,[ce]:"1"}});r.on("error",()=>{Ho(e)}),r.unref()}catch{Ho(e)}}}async function Fv(e=de(process.cwd())){if(!Y().telemetry_disabled)try{await pr(e,async()=>{let t=oe(process.env[ce]),n=!0;for(;n;){if(!(await W(e)).telemetry.enabled)return;let r=await _e(()=>Jo(e),e);if(!r)return;let o=t?await Mc(e,r.retentionDays):new Set;if(!await Tg(e,r.endpoint,r.retentionDays)||!t)return;let i=await Mc(e,r.retentionDays);n=i.size>0&&(i.size!==o.size||[...i].some(s=>!o.has(s)))}},()=>oe(process.env[ce]))}catch{}}async function vg(e){if(Y().telemetry_disabled||e.command==="telemetry"&&e.args.some(t=>t.trim().toLowerCase()==="clear"))return null;try{let t=de(process.cwd());if(!(await W(t)).telemetry.enabled)return null;let n=e.global.noExtensions===!0||Ei(e.command),r=await _e(async()=>{let o=await Jo(t);if(!o)return null;let{installationId:i,endpoint:s,retentionDays:a,captureLevel:c}=o,d=Zc(e.pm_version),l=td(e.global),u=L(i,e.pm_root),f=L(i,process.cwd()),_=ng(),h=M(),g={schema_version:Gn,event_id:X.randomUUID(),event_type:"command_start",occurred_at:h,installation_id:i,session_id:Kn,command:e.command,payload:sg({captureLevel:c,context:e,pmVersion:d,sourceContext:l,pmRootHash:u,cwdHash:f,installationId:i})},y=await vc(t,e.command,n);y===1&&await Wn(t,g);let w=Oe(e.command),S={...y<1?{sample_rate:y}:{},started_at:h,started_at_ms:Date.now(),command:e.command,command_taxonomy:w,pm_version:d,source_context:l.source_context,source_context_source:l.source_context_source,installation_id:i,pm_root_hash:u,cwd_hash:f,endpoint:s,retention_days:a,global_pm_root:t,capture_level:c,otel_traces_endpoint:_??void 0,otel_trace_id:_?X.randomBytes(16).toString("hex"):void 0,otel_span_id:_?X.randomBytes(8).toString("hex"):void 0};return y<1&&Bn.set(S,g),S},t,Wo);return r&&r.sample_rate===void 0&&ti(t,r.endpoint,r.retention_days),r}catch{return null}}async function Ig(e,t){if(!(!e||Y().telemetry_disabled))try{if(!await _e(async()=>{let n=await W(e.global_pm_root);if(Y().telemetry_disabled||!n.telemetry.enabled||n.telemetry.installation_id!==e.installation_id)return Bn.delete(e),!1;let r=Bn.get(e),o=t.ok?e.sample_rate??1:1;if(r){if(Bn.delete(e),X.randomBytes(6).readUIntBE(0,6)/281474976710656>=o)return!1;r.payload.sample_rate=o,await Wn(e.global_pm_root,r)}let i=M(),s=Math.max(0,Date.now()-e.started_at_ms),a=Yo(Co({ok:t.ok,errorCode:t.error_code,errorMessage:t.error,exitCode:t.exit_code})),c=ed({ok:t.ok,errorCode:a,errorCategory:t.error_category}),d=Ko(t.exit_code,t.ok),l=t.command_resolution??Je({ok:t.ok,errorCode:a,errorCategory:c}),u=t.resolution_stage??"execute",f={schema_version:Gn,event_id:X.randomUUID(),event_type:"command_finish",occurred_at:i,installation_id:e.installation_id,session_id:Kn,command:e.command,payload:{...r?{sample_rate:o}:{},...ag({captureLevel:e.capture_level,pmVersion:e.pm_version,sourceContext:{source_context:e.source_context,source_context_source:e.source_context_source},outcome:t,durationMs:s,startedAt:e.started_at,command:e.command,installationId:e.installation_id,commandTaxonomy:e.command_taxonomy,exitCode:d,errorCode:a,errorCategory:c,commandResolution:l,resolutionStage:u})}};await Wn(e.global_pm_root,f);let _=og(e,{...t,exit_code:d,error_code:a,error_category:c},i,s,o);return _&&await lg(e.global_pm_root,_),!0},e.global_pm_root,Wo))return;await ti(e.global_pm_root,e.endpoint,e.retention_days)}catch{}}async function Cg(e){if(!Y().telemetry_disabled)try{let t=de(process.cwd());if(!(await W(t)).telemetry.enabled)return;let n=await _e(async()=>{let r=await Jo(t);if(!r)return null;let{installationId:o,captureLevel:i}=r,s=Zc(e.pm_version),a=td(e.global),c=L(o,e.pm_root),d=L(o,process.cwd()),l=M(),u=Yo(Co({ok:!1,errorCode:e.error_code,errorMessage:e.error_message,exitCode:e.exit_code})),f=e.error_category??Vt(u),_=Ko(e.exit_code,!1),h=e.command.trim().length>0?e.command:"<unknown>",g=Oe(h),y=e.command_resolution??Je({ok:!1,errorCode:u,errorCategory:f}),w=e.resolution_stage??"unknown",S={schema_version:Gn,event_id:X.randomUUID(),event_type:"command_error",occurred_at:l,installation_id:o,session_id:Kn,command:R(h,"redacted"),payload:cg({captureLevel:i,pmVersion:s,sourceContext:a,command:h,commandTaxonomy:g,commandResolution:y,resolutionStage:w,args:e.args,options:e.options,pmRootHash:c,cwdHash:d,installationId:o,errorCode:u,errorCategory:f,exitCode:_,errorMessage:e.error_message})};return await Wn(t,S),r},t,Wo);n&&await ti(t,n.endpoint,n.retentionDays)}catch{}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1e571c5b-0ebf-578a-8a53-398eab70d71e")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e216fd39-09ee-5a04-b0b5-44f518db4f93")}catch{}})();function lx(e){let t=e?.trim()??"";return/^[A-Za-z][A-Za-z0-9+.-]*:\/\//u.test(t)||/^(?:github|gitlab|jira|linear):/iu.test(t)}function ux(e){let t=e?.trim().toLowerCase();return t==="global"||t==="external"}export{yd as a,gr as b,gd as c,wd as d,Mi as e,Li as f,Ed as g,Sd as h,Td as i,vd as j,Er as k,Dd as l,Lg as m,Nd as n,Pg as o,gt as p,Ld as q,wt as r,$g as s,Pd as t,en as u,Fg as v,Ue as w,Fd as x,jd as y,qg as z,Tr as A,Bg as B,Wg as C,bt as D,Gg as E,zi as F,Kd as G,cw as H,Jd as I,Zd as J,tl as K,nl as L,fw as M,ol as N,tn as O,Et as P,dl as Q,fl as R,ww as S,pl as T,_l as U,bw as V,Ir as W,Ki as X,bl as Y,Cr as Z,El as _,rn as $,Ji as aa,Rl as ba,Zi as ca,Ve as da,ae as ea,Ml as fa,Jw as ga,Pl as ha,ts as ia,$l as ja,Fl as ka,zl as la,Ul as ma,Vl as na,ab as oa,Bl as pa,fb as qa,Kl as ra,Jl as sa,Ql as ta,Zl as ua,eu as va,Rr as wa,ru as xa,Sb as ya,Tb as za,vb as Aa,Ib as Ba,Cb as Ca,Ab as Da,xb as Ea,au as Fa,cu as Ga,du as Ha,lu as Ia,uu as Ja,mu as Ka,He as La,ws as Ma,Uu as Na,Kb as Oa,St as Pa,Xu as Qa,Cs as Ra,Nr as Sa,As as Ta,oE as Ua,Qu as Va,em as Wa,tm as Xa,nm as Ya,rm as Za,Mr as _a,EE as $a,kE as ab,OE as bb,DE as cb,NE as db,ME as eb,LE as fb,PE as gb,Ur as hb,Hr as ib,bS as jb,qE as kb,BE as lb,WE as mb,Hs as nb,Sm as ob,Jr as pb,iS as qb,Qr as rb,kt as sb,Ot as tb,Dt as ub,cf as vb,ta as wb,df as xb,JS as yb,eo as zb,na as Ab,hf as Bb,QS as Cb,yf as Db,gf as Eb,oT as Fb,Tn as Gb,ca as Hb,no as Ib,Of as Jb,Df as Kb,aT as Lb,da as Mb,We as Nb,ro as Ob,io as Pb,xn as Qb,wT as Rb,po as Sb,kn as Tb,ha as Ub,On as Vb,_o as Wb,ho as Xb,yo as Yb,go as Zb,Sa as _b,Ta as $b,ga as ac,xp as bc,Dn as cc,Ke as dc,Y as ec,Re as fc,Lp as gc,Na as hc,Ma as ic,La as jc,Fp as kc,WT as lc,Vp as mc,GT as nc,YT as oc,Ft as pc,tc as qc,x_ as rc,jt as sc,s0 as tc,a0 as uc,R_ as vc,k_ as wc,c0 as xc,d0 as yc,Je as zc,U_ as Ac,V_ as Bc,H_ as Cc,q_ as Dc,Y_ as Ec,K_ as Fc,J_ as Gc,hh as Hc,ac as Ic,gh as Jc,wh as Kc,bh as Lc,I0 as Mc,ko as Nc,dc as Oc,cc as Pc,Th as Qc,vh as Rc,lc as Sc,Ah as Tc,Oh as Uc,Nh as Vc,Lh as Wc,Ph as Xc,zh as Yc,Vh as Zc,Hh as _c,qn as $c,Qh as ad,Zh as bd,dy as cd,Gn as dd,jc as ed,_e as fd,Fv as gd,vg as hd,Ig as id,Cg as jd,lx as kd,ux as ld};
|
|
122
|
+
//# sourceMappingURL=chunk-DSCFJTHB.js.map
|