@unbrained/pm-cli 2026.11.4 → 2026.11.5
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/.agents/skills/HARNESS_COMPATIBILITY.md +1 -1
- package/.agents/skills/README.md +14 -14
- package/.agents/skills/pm-developer/SKILL.md +16 -16
- package/.agents/skills/pm-developer/references/GRAPH_AND_RELATIONSHIPS.md +14 -14
- package/.agents/skills/pm-developer/references/SCRIPTING_COMPOSITION.md +10 -10
- package/.agents/skills/pm-extensions/SKILL.md +13 -13
- package/.agents/skills/pm-extensions/references/AUTHORING.md +12 -12
- package/.agents/skills/pm-sdk/SKILL.md +27 -27
- package/.agents/skills/pm-sdk/references/SURFACE_MAP.md +32 -32
- package/.agents/skills/pm-test-audit/references/AUDIT.md +1 -1
- package/.agents/skills/pm-user/SKILL.md +35 -35
- package/.claude-plugin/marketplace.json +1 -1
- package/AGENTS.md +9 -9
- package/CHANGELOG.md +9 -0
- package/README.md +13 -13
- package/dist/cli/register-setup.js +1 -1
- package/dist/cli-bundle/bundle-manifest.json +1 -1
- package/dist/cli-bundle/chunks/chunk-2RPORE7M.js +31 -0
- package/dist/cli-bundle/chunks/{chunk-NPEDFOVQ.js → chunk-335BZ75D.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-5GWEY4P6.js +122 -0
- package/dist/cli-bundle/chunks/chunk-6VRX2CM7.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-7PGNAHNW.js → chunk-7DEKAXVA.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3OXQGGRD.js → chunk-7ZRCYESH.js} +42 -41
- package/dist/cli-bundle/chunks/{chunk-BWAXA6S4.js → chunk-AUEKTX7V.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-SRDO2NJU.js → chunk-D7KYPRK4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ODMJ3HIB.js → chunk-DAX3AOFI.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-L4BKTPJ6.js → chunk-F6NDMKZ4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-T56MB6SF.js → chunk-FRNMQM45.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-5S6RT5LX.js → chunk-HNGLDMSZ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-QN7VCOUU.js → chunk-HRCMORE7.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-BK2XAQVC.js → chunk-HRFGFIYU.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-CERNIZLB.js → chunk-JI2GDE4I.js} +42 -42
- package/dist/cli-bundle/chunks/{chunk-6T2V3UIK.js → chunk-LS3GI3H4.js} +53 -53
- package/dist/cli-bundle/chunks/chunk-OH6WQ7VT.js +3 -0
- package/dist/cli-bundle/chunks/{chunk-BRIPGUAO.js → chunk-OJDMJT7Y.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-7RCI7AAA.js → chunk-S4LPZ4TN.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-AQ5UHHQS.js → chunk-UEGXWXUZ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-5BVZ32G7.js → chunk-XLSHFYXZ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2GW662DP.js → chunk-YKXATU2G.js} +2 -2
- package/dist/cli-bundle/chunks/{item-revision-UAZOBP2Q.js → item-revision-OJJVPQY7.js} +2 -2
- package/dist/cli-bundle/chunks/item-transaction-QEPBUCMY.js +2 -0
- package/dist/cli-bundle/chunks/{mutation-admission-QZQI2NN5.js → mutation-admission-INMM3HHG.js} +2 -2
- package/dist/cli-bundle/chunks/{register-list-query-P3NOKQUA.js → register-list-query-5Y5JKWU5.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-A6I5K5N6.js → register-mutation-WC7OSQID.js} +2 -2
- package/dist/cli-bundle/chunks/{register-operations-SPKB3TNM.js → register-operations-PO63DBZH.js} +2 -2
- package/dist/cli-bundle/chunks/register-setup-RRFOS7IT.js +2 -0
- package/dist/cli-bundle/chunks/{stage-L3T725DS.js → stage-E3MMV4TV.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-5PMJOJCZ.js +44 -0
- package/dist/cli-bundle/focused-chunks/{chunk-TFYTTDAK.js → chunk-7KK66ISG.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-Y5GOUUYJ.js → chunk-AHWJPZSJ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-C7UX2ZI3.js → chunk-C6P6HPCX.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-Q4OIRSKL.js → chunk-CPMSL4HS.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-CZM75DE3.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-CO2DNPH7.js → chunk-D2TBEBNW.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-E56OXRYH.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-FXFDVM5O.js → chunk-F62XGAAY.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-G4QP365K.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-J7M52SCZ.js → chunk-G5PJCR7R.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-GS3JC5UU.js +23 -0
- package/dist/cli-bundle/focused-chunks/{chunk-W3CSX6GI.js → chunk-LW64TINU.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-MEJKELWC.js → chunk-M6V7UMWL.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{chunk-CXTDEQ3N.js → chunk-MC7IE7D7.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-MG7C3JUY.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-QEVJ3Y67.js → chunk-MK4HV4JO.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-A2246ZM7.js → chunk-NQ7GYFOX.js} +54 -54
- package/dist/cli-bundle/focused-chunks/chunk-O7EI33NP.js +91 -0
- package/dist/cli-bundle/focused-chunks/{chunk-FFO7RBLN.js → chunk-RFTJZ5VB.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-PNPYQDHU.js → chunk-SNOXXRSJ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-JQS7TYQ6.js → chunk-UPJUTP2V.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-SDLIUZEL.js → chunk-VWWTIX5L.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-J6FDCAMH.js → chunk-XHOBYCVE.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-J3YOATXR.js → chunk-YMGB2O4E.js} +25 -24
- package/dist/cli-bundle/focused-chunks/{item-revision-L6GVT42D.js → item-revision-CTDO4H3I.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{item-transaction-GYGP264N.js → item-transaction-AEAYVVHA.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{mutation-admission-UWTH56OD.js → mutation-admission-4WM7TNHZ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{stage-WRSNJ7VI.js → stage-WV7QXR4C.js} +2 -2
- package/dist/cli-bundle/main.js +2 -2
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +1 -1
- 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 +9 -9
- package/dist/core/config/positional-value.d.ts +6 -0
- package/dist/core/config/positional-value.js +1 -1
- package/dist/core/item/literal-mutation-input.d.ts +17 -0
- package/dist/core/item/literal-mutation-input.js +1 -1
- package/dist/core/item/parent-reference-policy.d.ts +8 -4
- package/dist/core/item/parent-reference-policy.js +1 -1
- package/dist/core/item/sprint-release-format.d.ts +2 -1
- package/dist/core/item/sprint-release-format.js +1 -1
- package/dist/core/output/mutation-projection.js +1 -1
- package/dist/core/store/item-mutation-precondition.d.ts +3 -1
- package/dist/core/store/item-mutation-precondition.js +1 -1
- package/dist/core/store/item-store.js +1 -1
- package/dist/core/store/settings.d.ts +14 -0
- package/dist/core/store/settings.js +5 -4
- package/dist/core/telemetry/policy.d.ts +27 -1
- package/dist/core/telemetry/policy.js +1 -1
- package/dist/core/telemetry/runtime.d.ts +18 -7
- package/dist/core/telemetry/runtime.js +4 -4
- package/dist/sdk/cli-contracts/typed-action-inputs.d.ts +8 -5
- package/dist/sdk/cli-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts.js +1 -1
- package/dist/sdk/config.d.ts +2 -2
- package/dist/sdk/config.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
- package/dist/sdk/governance/health.d.ts +2 -2
- package/dist/sdk/governance/health.js +2 -2
- package/dist/sdk/index.d.ts +4 -2
- package/dist/sdk/index.js +1 -1
- package/dist/sdk/init.d.ts +4 -4
- package/dist/sdk/init.js +8 -8
- package/dist/sdk/lifecycle/claim.d.ts +4 -0
- package/dist/sdk/lifecycle/claim.js +1 -1
- package/dist/sdk/lifecycle/close.d.ts +10 -0
- package/dist/sdk/lifecycle/close.js +1 -1
- package/dist/sdk/lifecycle/create.d.ts +7 -5
- package/dist/sdk/lifecycle/create.js +1 -1
- package/dist/sdk/lifecycle/shared-unset-fields.d.ts +628 -4
- package/dist/sdk/lifecycle/shared-unset-fields.js +1 -1
- package/dist/sdk/lifecycle/update.d.ts +5 -4
- package/dist/sdk/lifecycle/update.js +2 -2
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/runtime/actions.js +1 -1
- package/dist/sdk/runtime/mutation-value-validation.js +1 -1
- package/dist/sdk/runtime-input.js +1 -1
- package/dist/sdk/runtime-primitives.d.ts +1 -0
- package/dist/sdk/runtime-primitives.js +1 -1
- package/dist/sdk/telemetry.d.ts +1 -1
- package/dist/sdk/telemetry.js +2 -2
- package/docs/AGENT_GUIDE.md +48 -48
- package/docs/AGENT_OUTPUT_ENCODINGS.md +20 -20
- package/docs/ASSURANCE.md +10 -10
- package/docs/BOUNDED_CONTEXT_READS.md +3 -3
- package/docs/CLAUDE_CODE_PLUGIN.md +1 -1
- package/docs/CLI_GRAMMAR.md +2 -2
- package/docs/COMMANDS.md +56 -35
- package/docs/COMMAND_NAMESPACES.md +1 -1
- package/docs/CONFIGURATION.md +82 -71
- package/docs/CONTEXT_ALGORITHM_PORTFOLIO.md +2 -2
- package/docs/CONTEXT_INTEGRITY_CONTRACTS.md +5 -5
- package/docs/CORPUS_SHAPES.md +1 -1
- package/docs/DEPENDENCY_KIND_CONTRACT.md +6 -6
- package/docs/DIAGNOSTIC_OUTPUT_CONTRACTS.md +5 -5
- package/docs/ECOSYSTEM_PLANNING_REVIEW.md +3 -3
- package/docs/EXTENSION_AUTHOR_CONTRACTS.md +4 -4
- package/docs/HISTORY_ATTESTATION.md +1 -1
- package/docs/HISTORY_MAINTENANCE.md +1 -1
- package/docs/LIFECYCLE_COMMANDS.md +1 -1
- package/docs/MCP_2026_07_28.md +16 -16
- package/docs/MCP_2026_07_28_CONFORMANCE.md +19 -19
- package/docs/MCP_REMOTE_TRANSPORT_SECURITY.md +22 -22
- package/docs/MCP_SKILLS_AND_APPS.md +1 -1
- package/docs/MERGE_SAFETY.md +6 -6
- package/docs/MUTATION_INTEGRITY.md +5 -5
- package/docs/OUTPUT_PROJECTION_CONTRACTS.md +14 -14
- package/docs/PACKED_FIRST_RUN.md +1 -1
- package/docs/QUICKSTART.md +10 -10
- package/docs/README.md +21 -21
- package/docs/READ_OUTPUT_CONTRACTS.md +9 -9
- package/docs/RECURRENCE_RECOVERY_CONTRACTS.md +1 -1
- package/docs/RELEASING.md +19 -10
- package/docs/SCRIPTING.md +10 -10
- package/docs/SDK.md +74 -38
- package/docs/SDK_ARTIFACT_OUTPUT.md +1 -1
- package/docs/SDK_PRIMITIVE_INVENTORY.md +2 -2
- package/docs/SELF_DESCRIBING_CONTEXT_CONTRACTS.md +7 -7
- package/docs/TESTING.md +1 -1
- package/docs/WORKFLOW_POLICIES.md +2 -2
- package/docs/WORKSPACE_POSITION_AND_LIFECYCLE.md +8 -8
- package/docs/generated/AGENT_CAPABILITY_ROUTING.md +1 -1
- package/docs/generated/AGENT_COMMAND_SURFACE.md +1 -1
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +1 -1
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +1 -1
- package/docs/performance/cli-transport-overhead.md +7 -7
- 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/README.md +5 -5
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/GAP_REPORT.md +16 -16
- 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/README.md +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/GAP_REPORT.md +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-claude/README.md +6 -6
- 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-5Z6LWFDL.js +0 -31
- package/dist/cli-bundle/chunks/chunk-DSCFJTHB.js +0 -122
- package/dist/cli-bundle/chunks/chunk-QQHMNUZT.js +0 -2
- package/dist/cli-bundle/chunks/chunk-TX2W6G37.js +0 -3
- package/dist/cli-bundle/chunks/item-transaction-N5F4LXYV.js +0 -2
- package/dist/cli-bundle/chunks/register-setup-ZZRHJ4IS.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-5NGNO54M.js +0 -44
- package/dist/cli-bundle/focused-chunks/chunk-B6U44WPW.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-BAW3DGQO.js +0 -91
- package/dist/cli-bundle/focused-chunks/chunk-BHNY3KPJ.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-CBG67HUP.js +0 -23
- package/dist/cli-bundle/focused-chunks/chunk-FEPE2CE4.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-PMKR4MJI.js +0 -2
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import{$ as bi,$i as Fi,Ad as U,Ba as cr,Bb as Ii,Bd as Kt,Ca as dr,Cc as Ai,Cd as Ee,Da as Si,Dd as fr,Ea as lr,Ei as br,Fa as ot,Fb as Ci,Fi as Er,Gb as $,Hc as Yt,He as Di,Id as Xt,Ji as Pi,Ka as Wt,Mi as en,Ni as Sr,Oa as ur,Oi as vr,Pa as ue,Pd as dt,Pi as $i,Qa as ge,Ra as $e,Rb as be,Re as Se,Ri as ht,Sa as it,Se as yr,Ta as ee,Ui as ze,Vi as W,Wi as yt,X as gi,Y as wi,b as tt,ba as rt,c as mi,cc as at,d as fi,dc as mr,ee as pr,ej as tn,fe as ki,gb as we,gd as xi,gi as Jt,h as pi,jf as Ni,ke as _r,ki as Qt,l as _i,le as Oi,lf as gr,li as Zt,m as hi,mi as ft,ni as Li,pb as vi,pd as me,pe as hr,pf as wr,qb as E,qf as ut,sb as st,sf as mt,t as yi,tb as Fe,td as Ri,ub as S,ui as pt,vb as Ti,wd as Gt,we as ae,wi as _t,xd as ct,xe as lt,xf as Mi,ye as je}from"./chunk-7ZRCYESH.js";import{A as m,B as Bt,C as p,D as Ei,E as j,G as P,H as C,K as T,L as ar,M as nt,m as ir,u as Z,z as sr}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 kd=new Set(["rename-type","rename-field","remap-status",...fi]);function Od(e,t){if(t&&!kd.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]="8dd367eb-617e-5645-8f8a-57862f8385f7")}catch{}})();var nn=new WeakSet,Tr=new WeakMap,zi=new WeakSet;function Ir(e){return zi.add(e),e}function Cr(e){return zi.has(e)}function gt(e){nn.add(e);for(let[t,n]of Object.entries(e)){if(!Array.isArray(n))continue;let r=[...n];Reflect.set(e,t,r),nn.add(r)}return e}function Ui(e,t){return nn.has(e)||t!==void 0&&Tr.get(e)?.has(t)===!0}function Dd(e,t){let n=new Set(t);Tr.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),nn.add(i)}return e}function Vi(e,t){if(Cr(e)&&Ir(t),Ui(e))return gt(t);let n=Tr.get(e);return n?Dd(t,n):t}function ew(e){return Ui(e)?"sdk":"cli"}function ji(e,t){return e==="cli"?`--${t}`:t.replace(/-([a-z])/gu,(n,r)=>r.toUpperCase())}function wt(e){return`Pass unset: ["${e}"] to clear it`}function rn(e,t,n=""){return e==="cli"?`--${t} must not be empty${n}`:`${ji("sdk",t)} must not be empty. ${wt(t)}, or omit ${ji("sdk",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 ce="-",Nd=/^[A-Za-z0-9_.-]+$/u,Ar=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 qi(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 Bi(e){let t=e.trim();if(t==="")return[];let n=(Fd(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 Wi(e){if(!Array.isArray(e)||e.length===0)return[];let t=[];for(let n of e)if(typeof n=="string")for(let r of Bi(n))t.push(r);return Array.from(new Set(t)).sort((n,r)=>n.localeCompare(r))}function Yi(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim().toLowerCase()).filter(Boolean):[]}function Md(e){return typeof e!="string"?[]:e.split(";").map(t=>t.trim()).filter(Boolean)}function Ld(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 Pd(e,t){let n=Yi(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 Wi(t))r.add(o);return Array.from(r).sort((o,i)=>o.localeCompare(i))}function $d(e,t){let n=Array.from(new Set(Yi(e))).sort((o,i)=>o.localeCompare(i));if(!t||t.length===0)return n;let r=new Set(Wi(t));return r.size===0?n:n.filter(o=>!r.has(o))}function Fd(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 xr(e){return e.replace(/\r\n/g,`
|
|
3
|
+
`)}function Gi(e){let t=xr(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 jd(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 Ki(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 zd(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 Ud(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 Hi(e,t){let n=e.replaceAll(/\s+/g," ").trim(),r=n.length>160?`${n.slice(0,157)}...`:n,o=Ud(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} ${ce} to read piped stdin input.`}function Vd(e){let t=Gi(e).trim();if(t.length===0||!t.includes(`
|
|
6
|
+
`)&&!t.startsWith("-")&&!t.startsWith("*")&&!t.startsWith("+"))return null;let n={},r,o=xr(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]=Ki(s[3].trim()),r=a;continue}if(r&&Ar.has(r.toLowerCase())){n[r]=`${n[r]}
|
|
8
|
+
${i}`;continue}return null}return n}function Rr(e,t){let n=Gi(e).trim();if(!n)throw new p(`${t} cannot be empty`,m.USAGE);let r=Vd(n);if(r)return r;let o={},i,s=jd(n);for(let a of s){let c=zd(a),d=a.slice(0,Math.max(c,0)).trim();if(d!==""&&i!==void 0&&Ar.has(i.toLowerCase())&&!Nd.test(d)){o[i]=`${o[i]},${a}`;continue}if(c>=0){let l=a.slice(0,c).trim();if(!l)throw new p(Hi(e,t),m.USAGE);let u=Ki(a.slice(c+1).trim());o[l]=u,i=l;continue}if(i&&Ar.has(i.toLowerCase())){o[i]=`${o[i]},${a}`;continue}throw new p(Hi(e,t),m.USAGE)}return o}var Hd=/^[A-Za-z]:[\\/]/,qd=/^(?:[-*+]\s+)?[A-Za-z_][A-Za-z0-9_.-]*\s*=/;function Bd(e){let t=e.trim();return Hd.test(t)?!1:qd.test(t)}function iw(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 Wd(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 Yd(e){if(process.stdin.isTTY===!0)throw new p(`${e} value "${ce}" 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(xr(r))}),process.stdin.on("error",o=>{n(o)})})}var ve=Symbol("all-mutation-stdin-fields"),Y=new WeakMap;function sw(e){return Cr(e)?e:gt(bt({...e}))}function bt(e){return Y.set(e,ve),e}function Gd(e,t){let n=Y.get(e);return n===ve||Y.set(e,new Set([...n??[],...t])),e}function Et(e,t){Vi(e,t);let n=Y.get(e);return n===void 0||Y.set(t,n===ve?n:new Set(n)),t}function aw(e,t){let n=Y.get(e),r=Y.get(t);return n===void 0||r===ve?t:n===ve?(Y.set(t,n),t):(Y.set(t,new Set([...r??[],...n])),t)}function Kd(e){return Y.get(e)!==ve}function on(e,t){let n=Y.get(e);return n!==ve&&!n?.has(t)}function Xd(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()===ce).length;if(r>1)throw new p(`${n.optionName} accepts "${ce}" 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 "${ce}" stdin token per command invocation. Already used by ${t}.`,m.USAGE);t=n.optionName}}}async function cw(e,t,n){let r=e,o=[...t,...n];Xd(o.map(([a,c])=>({value:r[a],optionName:c,resolveToken:on(e,a)})));let i=Ue(),s={...r};for(let[a,c]of t)s[a]=await i.resolveValue(r[a],c,on(e,a));for(let[a,c]of n)s[a]=await i.resolveList(r[a],c,on(e,a));return bt(Et(e,s))}function Ue(){let e,t,n=async r=>{if(t&&t!==r)throw new p(`Only one option may use "${ce}" stdin token per command invocation. Already used by ${t}.`,m.USAGE);return t=r,e||(e=Yd(r)),await e};return{resolveValue:async(r,o,i=!0)=>{if(!i)return r;if(r!==void 0)return r.trim()!==ce?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()===ce?l:-1).filter(d=>d>=0);if(s.length===0)return r;if(s.length>1)throw new p(`${o} accepts "${ce}" stdin token at most once per command invocation`,m.USAGE);let a=await n(o),c=[...r];return c[s[0]]=a,c}}}function Jd(e,t){let n=Number(e);if(!Number.isFinite(n))throw new p(`Invalid ${t} value "${e}"`,m.USAGE);return n}function Qd(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 pw(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 el(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 kr(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 tl(e,t){let n=kr(e,t),r=e[n];return r===void 0||!";&|".includes(r)?n:(n+=1,r!==";"&&e[n]===r&&(n+=1),kr(e,n))}function nl(e){let t=e.trim(),n=kr(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=el(t,r+1);if(o===void 0)return!1;n=tl(t,o)}return!0}function Or(e){if(!(e===void 0||!nl(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 _w(e){if(Or(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:[we(["test","<id>","--add-json",JSON.stringify({command:e.command,pm_context_mode:"none",workspace_context_mode:"isolated"})])]})}function hw(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 St=["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"],rl=new Set(St);function yw(e){return qi(e,St)}function Xi(e,t){let n={},r=[];for(let[o,i]of Object.entries(e)){let s=o.toLowerCase();if(!rl.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: ${St.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 Ji(e){if(!e?.trim())return!1;try{return Or(e.trim()),!0}catch{return!1}}function ol(e){try{let{command:t,...n}=Xi(Rr(e,"--add"),"--add");return Ji(t)?["--add",e]:["command=<actual command>",...Object.entries(n).map(([r,o])=>`${r}=${JSON.stringify(o)}`)].join(",")}catch{return}}function il(e){for(let t=0;t<e.length;t+=1){let n=e[t];if(wi.has(n)&&n!=="--all")continue;let r=n.split("=",1)[0];if(!gi.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 sl(e,t){let n=bi(t);if(n===void 0)return;let r=yi(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("-"))&&il(t.slice(o+2)))return{idIndex:o,value:s}}function al(e,t){let n=/^[A-Za-z_][A-Za-z0-9_]*=/u.exec(t)?.[0];if(e==="test")return n?["command=","cmd="].includes(n)?ol(t):St.includes(n.slice(0,-1))?`command=<actual command>,${t}`:void 0:Ji(t)?["--add-json",JSON.stringify({command:t})]:"command=<actual command>";if(!(n&&n!=="path="))return["--add",n?t:`path=${JSON.stringify(t)}`]}function cl(e,t){if(e===void 0||!["files","docs","test"].includes(e))return;let n=sl(e,t);if(!n)return;let{idIndex:r,value:o}=n,i=t[r],s=al(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 dl}from"node:fs/promises";import Qi 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 Dw(e){if(e!==void 0){if(typeof e!="string")throw new p("--rollback requires a non-empty checkpoint ID string",m.USAGE);return Zi(e)}}function Zi(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 ll(e,t){let n=t.replace(/[-:.TZ]/g,"").slice(0,14),r=Math.random().toString(36).slice(2,8);return`${e}-${n}-${r}`}function ul(e,t){return Qi.join(e,"checkpoints",t)}function es(e,t,n){return Qi.join(ul(e,t),`${n}.json`)}async function ml(e,t,n,r){let o=es(e,t,n),i=`${JSON.stringify(r,null,2)}
|
|
10
|
+
`;if(!await vi(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 fl(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 pl(e,t,n,r){let o=Zi(n),i=es(e,t,o);if(!await j(i))throw new p(`Checkpoint ${o} not found`,m.NOT_FOUND);let s=await dl(i,"utf8"),a;try{a=JSON.parse(s)}catch(l){throw new p(`Checkpoint ${o} contains invalid JSON: ${S(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=fl(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:$(),author:typeof c.author=="string"?c.author:"unknown"}}async function _l(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:S(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 $w=[{code:"unknown_lifecycle_action"}];function hl(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:be(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 ts(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function yl(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:hl(r,o),l=ts([...i,r,...s]),u=e.retry_command??(d?ts([...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 Te=new Set(ir),sn=Object.freeze({get size(){return Te.size},has(e){return Te.has(e)},entries(){return Te.entries()},keys(){return Te.keys()},values(){return Te.values()},forEach(e,t){Te.forEach(n=>e.call(t,n,n,sn))},[Symbol.iterator](){return Te.values()}});function ns(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function rs(e){return typeof e!="string"?null:Ai(e)}function gl(e){try{return structuredClone(e)}catch{return e}}function wl(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 bl(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 El(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):bl(n,e,t)}function Dr(e){let t=new Map;if(!e)return t;for(let n of e.item_fields)for(let r of n.fields){let o=ns(r.name),i=rs(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 os(e){if(sn.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: ${[...sn].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 vt(e){return[...Dr(e).keys()].sort((t,n)=>t.localeCompare(n))}function Sl(e,t,n,r){if(!e||e.length===0)return{};let o=Dr(t),i={};for(let s of e){let{key:a,value:c}=wl(s),d=o.get(a);if(!d)throw vl(a,o,n,r);os(d.name),i[d.name]=El(d.name,d.type,c)}return i}function vl(e,t,n,r){if(sn.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 Tl(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 Il(e,t){return!t||t.length===0?!0:t.some(n=>Object.is(n,e))}function Cl(e,t,n={}){if(t){Dr(t);for(let r of t.item_fields)for(let o of r.fields){let i=ns(o.name);if(!i)continue;os(i),!(i in e)&&!n.skipDefaultFields?.has(i)&&Object.prototype.hasOwnProperty.call(o,"default")&&(e[i]=gl(o.default));let s=e[i];if(s===void 0)continue;let a=rs(o.type);if(a&&!Tl(s,a))throw new TypeError(`Item field "${i}" must be of type ${a}`);let c=Array.isArray(o.values)?o.values:void 0;if(!Il(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]="7a401405-3370-53a5-811d-5e52287f1d2a")}catch{}})();var is=new Set(["item_format"]),ss=new Set(["definition_of_done","metadata_required_fields","lifecycle_stale_blocker_reason_patterns","lifecycle_closure_like_blocked_reason_patterns","lifecycle_closure_like_resolution_patterns","lifecycle_closure_like_actual_result_patterns"]),Al=new Set(["history_missing_stream_policy","sprint_release_format_policy","parent_reference_policy","metadata_validation_profile","governance_preset","governance_ownership_enforcement","governance_create_mode_default","governance_close_validation_default","governance_require_close_reason","governance_create_default_type","governance_workflow_enforcement","governance_start_blocker_enforcement","governance_parent_reference_policy","governance_metadata_validation_profile","governance_force_required_for_stale_lock","test_result_tracking","untrusted_linked_test_execution","telemetry_tracking","agent_identity_vocabulary"]),xl=new Set(["governance_require_close_reason","governance_force_required_for_stale_lock","test_result_tracking","untrusted_linked_test_execution","telemetry_tracking"]),Rl={off:"disabled",on:"enabled",true:"enabled",false:"disabled",enabled:"enabled",disabled:"disabled"};function kl(e){let t=e.trim().toLowerCase().replaceAll("-","_");if(is.has(t)||ss.has(t)||Al.has(t)||t==="context")return t}function Ol(e){let t=e.trim().toLowerCase();return Rl[t]??e}function Hw(e,t){let n=kl(e);return n===void 0?{routable:!1,reason:`Unknown config key "${e}" cannot route a positional value.`}:n==="context"?{routable:!1,reason:"Config set context does not accept a positional value. Use --default-depth, --activity-limit, --stale-threshold-days, or --section-<name> flags."}:is.has(n)?{routable:!0,flag:"format",value:t}:ss.has(n)?{routable:!0,flag:"criterion",values:[t]}:{routable:!0,flag:"policy",value:xl.has(n)?Ol(t):t}}function Dl(e){return/^telemetry[-_]tracking$/u.test(e??"")?"global":"project"}(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 fe(e){if(typeof e!="string")return null;let t=e.trim().toLowerCase();return t.length>0?t:null}function Bw(e,t){let n=fe(t);return!e||!n?null:[...e.assurance_providers??[]].reverse().find(r=>fe(r.definition.id)===n)??null}function Nl(e,t){let n=fe(t);return!e||!n?null:[...e.search_providers].reverse().find(r=>(fe(r.runtime_definition?.name)??fe(r.definition?.name))===n)??null}function Ml(e,t){let n=fe(t);return!e||!n?null:[...e.vector_store_adapters].reverse().find(r=>(fe(r.runtime_definition?.name)??fe(r.definition?.name))===n)??null}function Ww(e){return e.runtime_definition??e.definition}import{readFile as Ll}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 Pl=e=>Ll(e,"utf8"),$l=async e=>await Ue().resolveValue("-",e);function Nr(e){return[...new Set(e.split(/[,\r\n]+/).map(t=>t.trim()).filter(t=>t.length>0))]}function Fl(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=Nr(t.join(`
|
|
11
|
+
`));return n.length>0?n.join(","):""}function as(e){if(e===void 0)return;if(typeof e=="number")return Number.isFinite(e)?String(e):"";if(Array.isArray(e))return Fl(e);if(typeof e!="string")return"";let t=Nr(e);return t.length>0?t.join(","):""}async function jl(e,t="--ids",n={}){if(e===void 0)return;let r=e.trim(),o=e;try{if(r==="-")o=await(n.readStdin??$l)(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??Pl)(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=as(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 cs(e){return e.replaceAll("~1","/").replaceAll("~0","~")}function Mr(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?cs(n):"metadata"}let t=e.replace(/^\//,"").split("/")[0];return t?cs(t):"root"}function an(e,t){return t==="body"?e.body:t==="metadata"?e.metadata:t==="root"?e:e.metadata[t]}function zl(e,t){let n=t?.windowStartIndex??0,r=t?.field;if(e.length===0||n>=e.length)return[];let o=Li(),i=[];for(let s=0;s<e.length;s+=1){let a=e[s],c=o,d=pt(o,a.patch),l;d.ok?(l=d.document,o=l):l=c;let u=new Set;for(let _ of a.patch)u.add(Mr(_.path)),_.from!==void 0&&u.add(Mr(_.from));let f=[...u].sort((_,y)=>_.localeCompare(y));if(s>=n)if(r!==void 0){if(!u.has(r))continue;let _={field:r,before:an(c,r),after:an(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(y=>({field:y,before:an(c,y),after:an(l,y)}));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 Ul from"node:fs/promises";import Vl 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 Hl(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function ql(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 Bl(e,t){return await Ei(Vl.dirname(e)),await(await Ul.open(e,"a")).close(),U({path:e,scope:"project",op:`${t}:history:auto_create`})}async function cn(e){return ds({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function ds(e){let t=Hl(e.itemIds),n=[],r=[];for(let o of t){let i=ee(e.pmRoot,o);if(!await j(i)){if(e.settings.history.missing_stream==="strict_error")throw ql(o,e.commandLabel);r.push(...await Bl(i,e.commandLabel)),r.push(`history_stream_auto_created:${o}`),n.push(o)}}return{auto_created_ids:n,warnings:r}}import{readFile as Wl}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 Yl=e=>Wl(e,"utf8");async function Gl(e,t,n=Yl){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 dn 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 us(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 de(e,t){let n=us(t),r=Ve(e);return r.startsWith(n)?r:`${n}${r}`}function Xl(e){let t=Ci(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 Jl(e,t,n){let r=[...new Set(Object.values(n))].flatMap(o=>[dn.join(e,o,`${t}.md`),dn.join(e,o,`${t}.toon`)]);return r.push(dn.join(e,"history",`${t}.jsonl`)),(await Promise.all(r.map(o=>j(o)))).some(Boolean)}var ls=4,ms=12;function Ql(e){return typeof e!="number"||!Number.isFinite(e)?ls:Math.min(ms,Math.max(ls,Math.trunc(e)))}async function Zl(e,t,n={}){let r=Ql(n.tokenLength),o=Math.min(r+6,ms),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${us(t)}${Xl(r)}`;if(!await(n.probeExisting===!1?j(dn.join(e,"history",`${a}.jsonl`)):Jl(e,a,n.typeToFolder??Z)))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]="0394e0c1-ff68-5553-b022-1e8b6fff04f0")}catch{}})();var eu=new Set(["none","null","undefined"]);function Tb(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 tu(e,t="cli"){let n=t==="sdk";if(typeof e!="string")throw new p(n?`parent must be a string. ${wt("parent")}.`:"--parent must be a string. Use --unset parent to clear this field.",m.USAGE);let r=e.trim();if(r.length===0)throw new p(rn(t,"parent",". Use --parent none to unset."),m.USAGE);if(fs(r))throw new p(n?`parent must not be the placeholder "${r}". ${wt("parent")}, or omit parent.`:`--parent must not use placeholder token "${r}". Use --unset parent to clear this field.`,m.USAGE);return r}function fs(e){return eu.has(e.trim().toLowerCase())}function nu(e,t,n="cli"){if(t==="strict_error")throw new p(`Parent item "${e}" was not found. Create it first or ${n==="sdk"?"omit parent":"use --parent none"}.`,m.USAGE);return{warnings:[`validation_warning:parent_reference_missing:${e}`]}}function ru(e,t,n,r="cli"){let o=de(e,n),i=de(t,n);if(o!==i)return;let s=t!==i||e!==o?` (normalized from parent "${t}" and item "${e}")`:"";throw new p(`Parent item "${i}" cannot be the same as item "${o}"${s}. ${r==="sdk"?`${wt("parent")}.`:"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 Lr={critical:0,high:1,medium:2,low:3,minimal:4},ps=Object.keys(Lr),ou=`numbers 0..4 (0=critical, 1=high, 2=medium, 3=low, 4=minimal) or names (${ps.join(", ")}), case-insensitive`;function ln(e){return new p(`Invalid priority "${e}". Accepted values: ${ou}.`,m.USAGE,{code:"invalid_argument_value",field:"priority",value:e,allowed:["0","1","2","3","4",...ps]})}function iu(e){if(typeof e=="number"){if(Number.isInteger(e)&&e>=0&&e<=4)return e;throw ln(String(e))}if(typeof e!="string")throw ln(String(e));let t=e.trim();if(t.length===0)throw ln(e);let n=t.toLowerCase();if(Object.prototype.hasOwnProperty.call(Lr,n))return Lr[n];if(/^[0-4]$/.test(t))return Number(t);throw ln(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 su(e){let t={...e};for(let[n,r]of Object.entries(t))Array.isArray(r)&&Reflect.set(t,n,[...r]);return Ir(Et(e,t))}function au(e){return gt(bt(Et(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]="6012e77b-7cdd-5496-a668-c9240a811b1a")}catch{}})();var cu=/^[A-Za-z0-9][A-Za-z0-9._/-]*$/,du=64;function Lb(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 lu(e,t,n,r="cli"){let o=t.trim();if(o.length===0)throw new p(rn(r,e,`. Use --${e} none to unset.`),m.USAGE);if(o.length<=du&&cu.test(o))return{value:o,warnings:[]};let i="Expected 1-64 characters matching [A-Za-z0-9][A-Za-z0-9._/-]* (no spaces).";if(n==="strict_error")throw new p(`Invalid ${r==="sdk"?e:`--${e}`} value "${o}". ${i}`,m.USAGE);return{value:o,warnings:[`validation_warning:${e}_format:${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]="14e6c7b4-3161-5f82-b797-f06a879d1370")}catch{}})();var _s={open:"open_status",closed:"close_status",canceled:"canceled_status",cancelled:"canceled_status"},hs="all";function Ub(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]===hs}function uu(e,t){let n=e.trim().toLowerCase();if(n.length===0)return;let r=_s[n];return r?t[r]:hr(e,t)}function mu(e){let t=new Set(Object.keys(_s));for(let n of e.definitions){t.add(n.id);for(let r of n.aliases)t.add(r)}return[...t]}function fu(e,t){let n=e.trim().toLowerCase(),r,o=Number.POSITIVE_INFINITY;for(let i of mu(t)){let s=be(n,i.toLowerCase(),2);s!==null&&s<o&&(r=i,o=s)}return r}function pu(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()===hs).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=uu(a,t);if(c===void 0){if(r){let d=fu(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 _u={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 hu(e){if(e!==void 0)return _u[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 gs(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 Pr(e){return e==null?"":Array.isArray(e)?e.map(t=>Pr(t)).join(";"):typeof e=="object"?JSON.stringify(e):String(e)}function ys(e){return/[",\r\n]/.test(e)?`"${e.replace(/"/g,'""')}"`:e}function yu(e){if(e.length===0)return"";let t=gs(e),n=[t.map(r=>ys(r)).join(",")];for(let r of e)n.push(t.map(o=>ys(Pr(r[o]))).join(","));return n.join(`
|
|
12
|
+
`)}function gu(e){if(e.length===0)return"";let t=gs(e),n=e.map(s=>t.map(a=>Pr(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 wu(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 bu=new Map(rt.map(e=>[e.toLowerCase(),e])),Eu=/^[A-Za-z][A-Za-z0-9_-]*$/;function ws(e,t){if(!Eu.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 $r(e){return bu.get(e.trim().toLowerCase())}function Ss(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function Su(e){return e.replace(/[\\"`$]/g,t=>`\\${t}`)}function vs(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 Xb(e){let t=(e.name??"").trim();if(t.length===0)throw new Error("Type name must not be empty.");ws(t,"Type name");let n=$r(t);if(n)throw new Error(`Cannot redefine built-in item type "${n}". Built-in types are reserved: ${rt.join(", ")}.`);let r=e.description?.trim(),o=e.defaultStatus?.trim(),i=e.folder?.trim(),s=i&&i.length>0?lr(i):void 0,a=vs(e.aliases??[]);for(let c of a){ws(c,"Alias");let d=$r(c);if(d)throw new Error(`Alias "${c}" collides with built-in item type "${d}". Built-in types are reserved: ${rt.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 Jb(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 Ss(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 bs(e,t){return typeof t=="string"&&t.trim().length>0?lr(t).toLowerCase():Si(e).toLowerCase()}function Qb(e,t,n){let r=e.name.toLowerCase(),o=bs(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||bs(c,a.folder)===o&&i(c)}let s=n?.get(o);s!==void 0&&s.toLowerCase()!==r&&i(s)}function Zb(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:vu(t)}}function vu(e){let t=Tu(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 Tu(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 eE(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=vs([...Ss(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,Es(a,"description",t.description),Es(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 tE(e,t){let n=(t??"").trim();if(n.length===0)throw new Error("Type name must not be empty.");let r=$r(n);if(r)throw new Error(`Cannot remove built-in item type "${r}". Built-in types are reserved: ${rt.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 Es(e,t,n){let r=e;n!==void 0&&(r[t]=n)}function nE(e){return`${JSON.stringify({definitions:e.definitions},null,2)}
|
|
14
|
+
`}function Iu(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 "${Su(n)}" (writes ${r}).`}function Cu(e,t,n){return`Invalid type value "${e}". Allowed: ${t.join(", ")}. ${Iu(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 Ts(e,t){return tt(e,t)}function Au(e,t,n){let r={};for(let o of t.command_to_fields.get(n)??[]){let i=pr(e,o);i!==void 0&&(r[o.metadata_key]=ki(o,i))}return r}function xu(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(!Ts(o,r[r.length-1]))return!1;continue}if(!Ts(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 Is(e){return typeof e=="string"?e.trim().toLowerCase():""}function un(e,t){let n=dt(e);return n.length===0?"":t?.alias_to_id?.get(n)??n}function Ru(e){let t=Array.isArray(e?.type_workflows)?e.type_workflows:[],n=new Map;for(let r of t){let o=Is(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=dt(a[0]),d=dt(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 ku(e){let t=Is(e.typeName),n=e.typeWorkflows.find(i=>i.type===t);if(!n)return{allowed:!0,hasRule:!1,allowedTransitions:[]};let r=un(e.fromStatus,e.statusRegistry),o=un(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=un(i[0],e.statusRegistry),a=un(i[1],e.statusRegistry);return s===r&&a===o}),hasRule:!0,allowedTransitions:n.allowed_transitions}}function Ou(e){return e.length===0?"(no transitions allowed)":e.map(t=>`${t[0]} -> ${t[1]}`).join(", ")}import{spawnSync as As}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 Du="PM_DISABLE_OLLAMA_AUTO_DEFAULTS",Nu="PM_OLLAMA_MODEL",Mu="http://localhost:11434",Lu="qwen3-embedding:0.6b",Pu=".agents/pm/search/lancedb/",$u=1500,Fu=2500,ju=/qwen.*(?:embed|embedding)|(?:embed|embedding).*qwen/i,zu=/embed|embedding/i,te=E;function Uu(){let e=te(process.env[Du]);if(!e)return!1;let t=e.toLowerCase();return t==="1"||t==="true"||t==="yes"}function Cs(e){return e.some(t=>te(t)!==null)}function Vu(e){let t=te(e);return!!(t&&t.toLowerCase()!=="ollama")}function Hu(e){let t=te(e);return!!(t&&t.toLowerCase()!=="lancedb")}function qu(e){return Vu(e.search?.provider)||Hu(e.vector_store?.adapter)||Cs([e.providers?.openai?.base_url,e.providers?.openai?.model,e.providers?.openai?.api_key])?!0:Cs([e.vector_store?.qdrant?.url,e.vector_store?.qdrant?.api_key])}function Bu(){let e=As("ollama",["--version"],{encoding:"utf8",timeout:$u});return e.error?!1:e.status===0}function Wu(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=>ju.test(r))||(n.find(r=>zu.test(r))??null)}function Yu(e){let t=te(e.providers?.ollama?.model);if(t)return t;let n=te(process.env[Nu]);if(n)return n;let r=As("ollama",["list"],{encoding:"utf8",timeout:Fu});if(!r.error&&r.status===0){let o=Wu(typeof r.stdout=="string"?r.stdout:"");if(o)return o}return null}function Gu(e){return{baseUrl:te(e.providers?.ollama?.base_url)===null,model:te(e.providers?.ollama?.model)===null,lancedbPath:te(e.vector_store?.lancedb?.path)===null,embeddingModel:te(e.search?.embedding_model)===null}}function Ku(e){return e.baseUrl||e.model||e.lancedbPath||e.embeddingModel}function Xu(e,t,n){if(!t.baseUrl&&!t.model)return;let r=e.providers??={},o=r.ollama??={};t.baseUrl&&(o.base_url=Mu),t.model&&(o.model=n)}function Ju(e,t){if(!t.lancedbPath)return;let n=e.vector_store??={},r=n.lancedb??={};r.path=Pu}function Qu(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(Uu()||qu(e))return t;let n=Gu(e);if(!Ku(n)||n.model&&!Bu())return t;let r=structuredClone(e),o=Yu(r);return o?(Xu(r,n,o),Ju(r,n),Qu(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 ${Lu} or configure providers.ollama.model explicitly (and search.embedding_model if you need an override).`}}import{spawn as Zu}from"node:child_process";import{mkdirSync as xs,rmSync as ks,statSync as em}from"node:fs";import mn 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 Os="reindex",tm="search/pending-refresh.json",nm="search/pending-refresh.gate.lock",rm=3e4,om="PM_SEARCH_REFRESH_INLINE",Ds="PM_SEARCH_REFRESH_CHILD",im=3e4;function Rs(e){if(typeof e!="string")return!1;let t=e.trim().toLowerCase();return t==="1"||t==="true"||t==="yes"||t==="on"}function sm(){if(Rs(process.env[om])||Rs(process.env[Ds]))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 Ns(e){return mn.join(e,tm)}function Ms(e){return mn.join(e,nm)}function am(e){let t=Ms(e);try{if(Date.now()-em(t).mtimeMs<rm)return!1;ks(t,{recursive:!0,force:!0})}catch{}try{return xs(mn.dirname(t),{recursive:!0}),xs(t),!0}catch{return!1}}function cm(e){try{ks(Ms(e),{recursive:!0,force:!0})}catch{}}async function Ls(e,t,n){for(let r=0;r<50;r+=1){if(am(e))try{return await t()}finally{cm(e)}await dm(20)}return n}function dm(e){return new Promise(t=>{setTimeout(t,e)})}async function jr(e){let t=await C(Ns(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 Ps(e,t){await T(Ns(e),`${JSON.stringify({ids:t})}
|
|
15
|
+
`)}async function Fr(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 jr(e),i=[...new Set([...o,...n])].sort((s,a)=>s.localeCompare(a));await Ps(e,i)};await Ls(e,async()=>(await r(),!0),!1)||await r()}async function lm(e){return Ls(e,async()=>{let t=await jr(e);return t.length>0&&await Ps(e,[]),t},[])}function um(){return mn.join(at(import.meta.url,["../../.."]),"dist","cli","search-refresh.js")}function zr(e){try{let t=Zu(process.execPath,[um()],{detached:!0,stdio:"ignore",env:{...process.env,PM_PATH:e,[Ds]:"1"}});t.on("error",()=>{}),t.unref()}catch{}}function mm(e){setTimeout(()=>zr(e),im)}async function $s(e,t){await Fr(e,t),zr(e)}async function vE(e,t,n=mm){let r=[],o=[];if(!await j(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:${S(l)}`]}}let s=null;try{s=await Se(e,Os,i.locks.ttl_seconds,ut(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 lm(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 Fr(e,l),c=!0,d=!0;break}o.push(...u.refreshed)}catch(u){r.push(`search_background_refresh_failed:${S(u)}`),await Fr(e,l),c=!0;break}}}finally{await s?.()}return d&&n(e),(c?[]:await jr(e)).length>0&&zr(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 Tt(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 fm(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 pm(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 _m(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 Fs(e,t,n={}){let r=e.trim(),o=n.errorSubject??"history",i=o==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=pm(t,Tt(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=Tt(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=fm(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 Ur(e,t,n,r){let o=pt(e,t);if(o.ok)return o.document;let i=_m(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 js(e,t){let n=e[0];if(n&&n.op!=="create"&&n.op!=="history_compact_baseline"){let s=pt(ft,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=_t([...r]),i=structuredClone(ft);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=Ur(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 DE(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 zs from"node:fs/promises";import It from"node:path";import{isUtf8 as hm}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 ym=1048576,gm=4194304;async function Us(e,t){let n=It.dirname(e);for(;n!==It.parse(e).root;){let o=await zs.stat(n).catch(i=>{if(P(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=It.dirname(n)}let r=await zs.open(e,"r").catch(o=>{if(P(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||!hm(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 wm(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 pi(t)}async function bm(e){return wm(await Us(It.join(e,"schema","policies.json"),ym))}async function Em(e,t){let n=await Us(ee(e,t),gm);if(n===null)return[];let r;try{if(r=n.split(/\r?\n/).filter(o=>o.trim()).map(o=>JSON.parse(o)),!_t(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 Sm(e,t,n){let r=n.before?.status!==n.after?.status&&t.policies.some(s=>s.rule.kind==="approval"&&_i(s,n)),o=n.before?.id??n.after?.id,i=r&&typeof o=="string"?await Em(e,o):[];return hi(t,{...n,approvals:i})}async function Vr(e){let t=await bm(e.pmRoot),n=await Sm(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 br({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 _=cr("update",f);return _===void 0?`Supply ${f} using its declared SDK or package mutation contract, then retry.`:we(["update",l,dr("update",_),`<${f}>`,"--pm-path",It.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 vm}from"node:async_hooks";import{channel as Tm}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 Hr=new vm,qr=Tm("@unbrained/pm-cli/item-metadata-enumeration/v1");function fn(e){qr.publish(e)}async function KE(e){let t={enumeration_calls:0,metadata_rows:0},n=r=>{Hr.getStore()?.includes(t)&&(t.enumeration_calls+=1,t.metadata_rows+=r)};qr.subscribe(n);try{return{result:await Hr.run([...Hr.getStore()??[],t],e),work:{...t}}}finally{qr.unsubscribe(n)}}import{AsyncLocalStorage as Vs}from"node:async_hooks";import{realpathSync as Im}from"node:fs";import Wr 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]="82ccccc7-c505-51c2-b207-93afa945f718")}catch{}})();var Br=new Vs;function oS(e,t){return Br.run([...Br.getStore()??[],{...e,pmRoot:Wr.resolve(e.pmRoot)}],t)}var Cm=Symbol.for("@unbrained/pm-cli/item-revision-scopes"),Am=globalThis,pn=Am[Cm]??=new Vs;function Yr(e){let t=Wr.resolve(e);try{return Im.native(t)}catch{return t}}function iS(){return{entries:new Map}}function sS(e,t){return pn.run([...pn.getStore()??[],e],t)}function aS(e,t,n){let r=Yr(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 cS(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 Gr(e,t){let n=pn.getStore()??[];if(n.length===0)return[];let r=Yr(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 dS(e){let t=Yr(e);return(pn.getStore()??[]).some(n=>n.pmRoot===t&&n.entries.size>0)}function xm(e,t,n){let r=Gr(e,[n,t.metadata.id]);r.length>0&&Hs(r,n,Jt(t),!1)}function lS(e,t,n){let r=Gr(e,[t]);r.length>0&&Hs(r,t,mi(n),!0)}function Hs(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 Kr(e,t,n=t.metadata.id){xm(e,t,n);for(let r of Xr(e,[n,t.metadata.id]))r.validate(t)}function Xr(e,t){let n=Wr.resolve(e);return(Br.getStore()??[]).filter(r=>r.pmRoot===n&&t.includes(r.id))}function Jr(e,t,n=t.metadata.id,r=[],o){let i=Gr(e,[n,t.metadata.id,...r]);if(i.length>0){let s=o??Jt(t);for(let a of i)a.expected=s,a.committed=!0}for(let s of Xr(e,[n,t.metadata.id,...r]))s.committed?.(t)}function qs(e,t){return Object.assign({},...Xr(e,t).map(n=>n.historyContext))}import Ie from"node:fs/promises";import Ws from"node:path";import{randomUUID as Rm}from"node:crypto";import{createRequire as km}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 Om="metadata-query-index.sqlite",Ct="5",Qr;function At(){return Qr!==void 0||(Qr=Mi(process.versions.node,km(import.meta.url))),Qr}function Bs(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function qe(e){return Ws.join(e,"runtime",Om)}function Dm(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 hn(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function Ys(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 Gs(e){let t=qe(e.pmRoot),n=At();if(!n){await Ie.rm(t,{force:!0});return}await Ie.mkdir(Ws.dirname(t),{recursive:!0});let r=`${t}.${Rm()}.tmp`,o;try{o=new n(r),Dm(o),o.exec("BEGIN IMMEDIATE"),hn(o,"version",Ct),hn(o,"context_fingerprint",e.contextFingerprint),hn(o,"source_cursor",e.sourceCursor);for(let i of e.rows)Ys(o,i);o.exec("COMMIT"),o.close(),o=void 0,await Ie.rm(t,{force:!0}),await Ie.rename(r,t)}catch(i){throw o?.close(),await Promise.allSettled([Ie.rm(r,{force:!0})]),i}}function yn(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function Ks(e){let t=At();if(!t)return!1;let n=qe(e.pmRoot),r;try{await Ie.access(n),r=new t(n),r.exec("PRAGMA foreign_keys = ON");let o=yn(r);if(o.version!==Ct||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&&Ys(r,e.row),hn(r,"source_cursor",e.sourceCursor),r.exec("COMMIT"),r.close(),!0}catch{try{r?.exec("ROLLBACK")}catch{}return r?.close(),!1}}function _n(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function Nm(e){let t=[],n=[];_n(t,n,"status",e.statuses,"IN"),_n(t,n,"status",e.excludeStatuses,"NOT IN"),_n(t,n,"type",e.types,"IN"),_n(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 gS(e){let t=At();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=Nm(n),i;try{i=new t(qe(e.pmRoot),{readOnly:!0});let s=yn(i);if(s.version!==Ct||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 wS(e){let t=At();if(!t||e.paths.length===0)return null;let n;try{n=new t(qe(e.pmRoot),{readOnly:!0});let r=yn(n);if(r.version!==Ct||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=Bs(e.limit,50),l=Bs(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(h=>String(h.id)),y=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(h=>[h,[]]));for(let h of y){let w=String(h.item_id),b=g.get(w);b.push({path:String(h.path),scope:String(h.scope),...h.note===null?{}:{note:String(h.note)}}),g.set(w,b)}for(let h of u){let w=JSON.parse(String(h.metadata_json));f.push({item:w,files:g.get(String(h.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:f}}catch{return n?.close(),null}}async function bS(e){let t=At();if(!t)return null;let n;try{n=new t(qe(e.pmRoot),{readOnly:!0});let r=yn(n);if(r.version!==Ct||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 gn(e){await Ie.rm(qe(e),{force:!0})}import N from"node:fs/promises";import v from"node:path";import{createHash as Mm,randomUUID as ea}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 ne=8,ta=500,Lm="metadata-derived-index",Pm="metadata-cache.json",$m="metadata-cache-bodies.json",Fm="metadata-cache-collections.json",jm="metadata-cache-delta.json",zm="metadata-cache-manifest.json",Xs=4,Um=["comments","notes","learnings","files","tests","test_runs","docs"];function na(){return vt(me())}function bn(e){let t={...e},n={};for(let r of Um)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function ra(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function oa(e,t,n,r){let o=Mm("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 En(e){return v.join(e,"runtime",Pm)}function Sn(e){return v.join(e,"runtime",$m)}function vn(e){return v.join(e,"runtime",Fm)}function eo(e){return v.join(e,"runtime",jm)}function to(e){return v.join(e,"runtime",zm)}function Tn(e,t){let n=v.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var Vm=24,q=new Map,In=new WeakMap;function no(e){return In.get(e)??e.source_cursor}function Hm(e,t){let n=no(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){In.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 qm(e,t){if(!e)return;let n=no(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){In.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 Bm(e,t){if(!e)return;let n=no(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){In.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 Wm(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(Hm(e,r),qm(t,r),Bm(n,r))}function Zr(e,t){q.size>=Vm&&!q.has(e)&&Ii(q),q.set(e,t)}async function pe(e,t){let n;try{n=await N.stat(e)}catch{return q.delete(e),null}let r=q.get(e);if(r&&xt(r.signature,n.mtimeMs,n.ctimeMs,n.size))return q.delete(e),q.set(e,r),r.envelope;let o;try{o=t(await N.readFile(e,"utf8"))}catch{o=null}return Zr(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function Ym(e,t,n){let r=a=>{let c=JSON.parse(a);return c.version!==ne||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=En(e),i=await pe(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await pe(Tn(o,t),r);return s===null&&Ot(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function Gm(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ne||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=Sn(e),o=await pe(r,n);return t&&o?.context_fingerprint!==t?await pe(Tn(r,t),n):o}async function Km(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ne||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=vn(e),o=await pe(r,n);return t&&o?.context_fingerprint!==t?await pe(Tn(r,t),n):o}async function ro(e){let t=eo(e),n=await pe(t,r=>{let o=JSON.parse(r);return o.version!==ne||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 N.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function oo(e){let t=to(e),n=await pe(t,r=>{let o=JSON.parse(r);return o.version!==ne||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 N.stat(t),await Be(e)}catch{}return null}async function Rt(e,t){await N.mkdir(v.dirname(e),{recursive:!0}),await T(e,JSON.stringify(t));try{let r=await N.stat(e);Zr(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{q.delete(e)}let n=v.dirname(v.dirname(e));if(e===En(n)||e===Sn(n)||e===vn(n)){let r=Tn(e,t.context_fingerprint);await T(r,JSON.stringify(t));try{let c=await N.stat(r);Zr(r,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{q.delete(r)}let o=v.dirname(e),i=v.extname(e),s=v.basename(e,i),a=(await N.readdir(o,{withFileTypes:!0}).catch(()=>[])).filter(c=>c.isFile()&&c.name!==v.basename(e)&&c.name.startsWith(`${s}.`)&&c.name.endsWith(i)).map(c=>v.join(o,c.name));if(a.length>Xs){let c=(await Promise.all(a.map(async d=>{try{return{path:d,mtime:(await N.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-Xs)))await N.rm(d.path,{force:!0}),q.delete(d.path)}}}function Xm(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function ia(e,t,n){return e===void 0||Xm(e,t,n)}function Ot(e,t){e&&!e.includes(t)&&e.push(t)}function xt(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function Jm(e,t,n){let r=v.join(e,t);try{let o=await N.readdir(r);return{folder:t,dirPath:r,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&!P(o)&&Ot(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function Qm(e,t){try{let n=await N.stat(v.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 wn(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await Qm(e,n))))}function kt(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&&xt(o,r.mtime_ms,r.ctime_ms,r.size)})}function Zm(e){return Wt.some(t=>e.toLowerCase().endsWith(t))}function ef(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function tf(e,t,n){if(n)for(let r of await Ee({path:e,scope:"project"}))Ot(t,r)}function Js(e,t,n,r){if(e)return t&&n?n.collections:r}async function nf(e,t,n){let r=await N.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=it(e);await tf(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],d=!n.forceSourceRead&&c!==void 0&&xt(c,o,i,s),l=n.previousBodies[t],u=!n.forceSourceRead&&l!==void 0&&xt(l,o,i,s),f=n.previousCollections[t],_=!n.forceSourceRead&&f!==void 0&&xt(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 y=await N.readFile(e,"utf8"),g=ae(y,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:w=>Ot(n.warnings,w)}),h=bn(g.metadata);return ef(n.state.misses,n.includeBody,n.includeCollections,d,u,_),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:d?c.metadata:h.light,heavyMetadata:Js(n.includeCollections,_,f,h.heavy),bodyLength:d?c.body_length:g.body.length,body:n.includeBody?g.body:void 0}}function rf(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?ra(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};ia(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function of(e,t,n,r){try{let o=await nf(t,n,r);rf(t,n,r,o)}catch{Ot(r.warnings,`item_list_item_read_failed:${e}/${v.basename(t)}`)}}function sf(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function af(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function cf(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function df(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}async function lf(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!Zm(s))continue;let a=v.join(o,s),c=v.relative(t.pmRoot,a);n.push(of(r,a,c,t)),n.length===32&&(await Promise.all(n),n.length=0)}await Promise.all(n)}async function uf(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!kt(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await Rt(En(e.pmRoot),{version:ne,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await Rt(to(e.pmRoot),{version:ne,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:v.relative(e.pmRoot,n.item_path),metadata:bn(n.metadata).light,linkedFiles:n.metadata.files??[]}));t.length>=e.minimumIndexedItems?await Gs({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:t}):await gn(e.pmRoot)}catch{}}async function mf(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 Rt(Sn(e.pmRoot),{version:ne,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function ff(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 Rt(vn(e.pmRoot),{version:ne,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function io(e,t,n={}){let r=await oo(e);return n.required!==!0&&(r===null||r.entry_count<ta)?async()=>{}:Se(e,Lm,30,t,!1,!1,3e3)}async function NS(e,t){let n=await oo(e);if(n===null)return null;let r=await ro(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&&!kt(i,await wn(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function Qs(e,t){let n=v.relative(e,t);return n===""||n===".."||n.startsWith(`..${v.sep}`)||v.isAbsolute(n)?null:n}async function Be(e){await Promise.all([En(e),Sn(e),vn(e),eo(e),to(e)].map(async t=>{await N.rm(t,{force:!0}),q.delete(t)})),await gn(e)}async function pf(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await N.stat(e.mutation.itemPath),n=bn(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 _f(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function so(e){let t=Qs(e.pmRoot,e.itemPath),n=e.previousItemPath?Qs(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await Be(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=oa(e.preferredFormat,e.typeToFolder,e.schema,na()),o=await oo(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await ro(e.pmRoot);if(s.invalid)return await Be(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=_f(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 pf({mutation:e});let d=ea();return await Rt(eo(e.pmRoot),{version:ne,context_fingerprint:r,base_source_cursor:i,source_cursor:d,directory_signatures:await wn(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await Ks({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:d,row:e.document===null?null:{relativePath:t,metadata:bn(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await gn(e.pmRoot),[]}catch{return await Be(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function hf(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function Zs(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function yf(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function gf(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=it(n);if(!o)continue;let i=e.includeCollections?ra(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);ia(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:v.join(e.pmRoot,n)}})}return[...t.values()].sort((n,r)=>n.candidate.metadata.id.localeCompare(r.candidate.metadata.id)).map(n=>n.candidate)}function wf(e){return e.forceSourceScan||fr()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!kt(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||Zs(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||Zs(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&yf(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function Dt(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=na(),d=oa(t,n,o,c),l=await ro(e);l.invalid&&await Be(e);let u=await Ym(e,d,i.cacheDiagnostics),f=s?await Gm(e,d):null,_=a?await Km(e,d):null;Wm(u,f,_,l.envelope);let y=sf(u,d),g=af(f,d),h=cf(_,d),w=[...new Set(Object.values(n))],b=await wn(e,w),I=Object.keys(y),A=Math.max(1,Math.floor(i.derivedIndexMinimumItems??ta));if(wf({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:d,existingCache:u,existingBodyCache:f,existingCollectionsCache:_,directorySignatures:b,entryKeys:I,minimumIndexedItems:A,includeBody:s,includeCollections:a,previousBodies:g,previousCollections:h}))return gf({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:y,previousBodies:g,previousCollections:h});let L=await Promise.all(w.map(qt=>Jm(e,qt,r))),x=fr(),D=df(),J={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,forceSourceRead:i.forceSourceScan===!0,dispatchReadHooks:x,previousEntries:y,previousBodies:g,previousCollections:h,state:D};await lf(L,J);let se=await wn(e,w),Q=kt(b,se)?se:{},H=D.misses.metadata||Object.keys(y).length!==Object.keys(D.newEntries).length||!kt(u?.directory_signatures,Q)||u===null?ea():u.source_cursor;return await uf({pmRoot:e,contextFingerprint:d,sourceCursor:H,existingCache:u,previousEntries:y,directorySignatures:Q,state:D,minimumIndexedItems:A}),s&&await mf({pmRoot:e,contextFingerprint:d,sourceCursor:H,existingBodyCache:f,previousBodies:g,state:D}),a&&await ff({pmRoot:e,contextFingerprint:d,sourceCursor:H,existingCollectionsCache:_,previousCollections:h,state:D}),hf(D)}async function sa(e,t,n,r,o){return(await Dt(e,t,n,r,o,{includeBody:!1})).map(i=>({metadata:i.metadata,body:i.body??""}))}async function aa(e,t,n,r,o){return(await Dt(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(i=>({metadata:i.metadata,body:i.body??""}))}import _e from"node:fs/promises";import{statSync as bf}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 Ef(e,t){let n=-1,r=structuredClone(ft);for(let[a,c]of e.entries()){if(r=Ur(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=Tt(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;Fs(a,e).historyIndex===n&&(s=a)}return{version:i,target:s}}async function ca(e,t,n){let r=new Set([de(t,n),Ve(t)]);for(let o of r){let i=ee(e,o);if(!bf(i,{throwIfNoEntry:!1})?.isFile())continue;let s=await mt(i,o),a=-1;if(s.forEach((_,y)=>{_.op==="delete"&&(a=y)}),a<0)continue;let c=js(s,s.length-1);if(Object.keys(c.metadata).length!==0)continue;let{version:d,target:l}=Ef(s,o),u=l===void 0?["history",o,"--verify"]:["get",o,"--at",l],f=we(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."]:[we(["restore",o,l])]],recovery:{suggested_retry:f,suggested_retry_args:u}})}}import{AsyncLocalStorage as Sf}from"node:async_hooks";import da 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 la=new Sf;function GS(e,t){return la.run({...e,pmRoot:da.resolve(e.pmRoot)},t)}function ua(e,t){let n=la.getStore();return n?.pmRoot===da.resolve(e)&&n.itemId===t?{bulk_checkpoint:n.checkpointId}:void 0}import ao from"node:path";import{isUtf8 as vf}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]="2bc3df8a-c200-52a0-8227-0deda053a955")}catch{}})();async function Tf(e){try{return await _e.access(e),!0}catch{return!1}}function If(e,t){e&&(e.includes(t)||e.push(t))}function co(e){return e??vt(me())}function Cf(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}async function We(e,t,n="pm-",r,o=Z){let i=t.trim(),s=i.startsWith("#")?i.slice(1):i;if(s.length===0)return null;let a=de(t,n),c=Ve(t),d=[...new Set([s,a,c])].filter(f=>f.length>0),l=Object.entries(o),u=Cf(r);for(let f of d){let _=new Map;for(let[y]of l)for(let g of u){let h=$e(e,y,f,g,o);await Tf(h)&&_.set(h,_.get(h)??{id:f,type:y,itemPath:h,item_format:g})}if(_.size>1){let y=[..._.keys()].map(g=>ao.relative(e,g).split(ao.sep).join("/")).sort();throw new p(`Item ${f} has ambiguous identity across ${y.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:y})}for(let y of _.values())return y}return null}async function Nt(e,t={}){let n=await Af(e,t);if(n.error!==null)throw n.error;return{raw:n.raw,document:n.document}}async function Af(e,t={}){let n=await _e.readFile(e.itemPath);if(!vf(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 Ee({path:e.itemPath,scope:"project"});let o;try{o=ae(r,{format:e.item_format,requireSupportedFormat:!0,schema:t.schema,extensionFieldNames:co(t.extensionFieldNames),onWarning:i=>If(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 fa(e,t,n=Z,r,o){await tn(e);let i=await sa(e,t,n,r,o);return fn(i.length),i.map(s=>s.metadata)}async function xf(e,t,n=Z,r,o){await tn(e);let i=await aa(e,t,n,r,o);return fn(i.length),i.map(s=>s.metadata)}async function Iv(e,t,n=Z,r,o,i={}){await tn(e);let s=await Dt(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan});return fn(s.length),s.map(a=>({...a.metadata,body:a.body}))}function lo(e){return{async get(t){let n=await We(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await Nt(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>fa(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function Rf(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await _e.readdir(ao.join(e,o));for(let s of i)for(let a of Wt)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function kf(e,t,n,r){let o=de(t,n),i=await Rf(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(a=>({id:a,distance:be(a,o,s)})).filter(a=>a.distance!==null).sort((a,c)=>a.distance-c.distance).slice(0,3).map(a=>a.id)}async function pa(e,t,n,r){let o=await ca(e,t,n);if(o)return o;let i=await kf(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 Of(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 _a(e){let t=e.typeToFolder??ot(e.settings,me()).type_to_folder,n=await We(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await pa(e.pmRoot,e.id,e.settings.id_prefix,t);let r=await yr(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 Nt(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:i}),c=a.metadata.assignee?.trim(),d=a.metadata.claim_principal?.trim()||c,l=wr(e.author),u=$i(e.settings);if(c&&d!==l&&!e.force&&!Of(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 ha(e,t,n,r){return e.fence(async()=>{let o;try{o=await _e.readFile(t.itemPath,"utf8")}catch(i){if(!P(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 Df(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 ya(e){try{let t=await We(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!t)return{document:sr};let n=ae(await _e.readFile(t.itemPath,"utf8"),{format:t.item_format,requireSupportedFormat:!0,schema:e.settings.schema,extensionFieldNames:co(e.extensionFieldNames)});return n.metadata.id===e.embeddedId?{document:n}:{document:e.fallback,revision:ma}}catch{return{document:e.fallback,revision:ma}}}var ma="unreadable-after-storage-override";async function Nf(e){let t=await Xt("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 Mf(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await T(e.originalItemPath,e.originalRaw),await _e.rm(e.effectiveTargetItemPath,{force:!0});return}await T(e.originalItemPath,e.originalRaw)}}async function uo(e){Di(e.op);let t=await _a({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{Kr(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?.(),...ua(e.pmRoot,r.id),...qs(e.pmRoot,[r.id,i.metadata.id])},_=Math.max(_r(d.metadata),_r(l.metadata));Fi(ur(e.pmRoot),_),_>Oi(l.metadata)&&(l.metadata.pm_format_version=_,u.changedFields.push("pm_format_version")),l.metadata.updated_at=$();let y=je(l,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),g=await Vr({pmRoot:e.pmRoot,settings:e.settings,operation:e.op,author:e.author,before:d,after:y});await Kt({pm_root:e.pmRoot,operation:e.op,before:d,after:y,changed_fields:u.changedFields,sdk:lo({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let h=await cn({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),w="toon",b=lt(y,{format:w,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),I=$e(e.pmRoot,y.metadata.type,r.id,w,n),A=ee(e.pmRoot,r.id),L=await ha(c,r,o,async()=>{let Q=await Xt("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:I,history_path:A,item_format:w,before:d,after:y,contents:b}),{effectiveTargetItemPath:H,effectiveSerializedAfter:qt,skipItemWrite:et}=Df(Q,I,b),Cd=await io(e.pmRoot,e.author),ui=[];try{et||await T(H,qt),!et&&H!==r.itemPath&&await _e.rm(r.itemPath);let xd=Qt({nowIso:y.metadata.updated_at,author:e.author,op:e.op,before:d,after:y,message:e.message,context:g.decisions.length===0?Object.keys(f).length===0?void 0:f:{...f,workflow_policies:g.decisions}});try{await Zt(A,xd)}catch(Rd){throw await Mf({skipItemWrite:et,effectiveTargetItemPath:H,originalItemPath:r.itemPath,originalRaw:o}),Rd}et||(ui=await so({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:H,previousItemPath:r.itemPath,document:y}))}finally{await Cd()}let Ad=et||H!==I||qt!==b;return{derivedIndexWarnings:ui,effectiveTargetItemPath:H,overrideWarnings:Q.warnings,stored:Ad?await ya({pmRoot:e.pmRoot,settings:e.settings,id:r.id,typeToFolder:n,extensionFieldNames:e.extensionFieldNames,fallback:y,embeddedId:y.metadata.id}):{document:y}}}),{derivedIndexWarnings:x,effectiveTargetItemPath:D,stored:J}=L;Jr(e.pmRoot,J.document,r.id,[y.metadata.id],J.revision);let se=[...await U({path:D,scope:"project",op:e.op,item_id:y.metadata.id,item_type:y.metadata.type,before:d,after:y,changed_fields:u.changedFields}),...await U({path:A,scope:"project",op:`${e.op}:history`,item_id:y.metadata.id,item_type:y.metadata.type,before:d,after:y,changed_fields:u.changedFields})];return Gt({id:y.metadata.id,op:e.op,item_type:y.metadata.type,previous_status:d.metadata.status,status:y.metadata.status,previous:ct(d.metadata,u.changedFields),current:ct(y.metadata,u.changedFields),changed_fields:u.changedFields}),{item:y.metadata,body:y.body,changedFields:u.changedFields,warnings:[...s,...u.warnings??[],...g.warnings,...h.warnings,...L.overrideWarnings,...x,...se]}}finally{await a()}}async function Lf(e){let{historyContext:t,...n}=e;return uo({...n,resolveHistoryContext:()=>t})}async function Cv(e){return uo(e)}async function Pf(e){return uo(e)}async function $f(e){let t=await _a({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{Kr(e.pmRoot,o,n.id);let c=co(void 0),d=je(o,{schema:e.settings.schema,extensionFieldNames:c}),l=await Vr({pmRoot:e.pmRoot,settings:e.settings,operation:"delete",author:e.author,before:d,after:null,dryRun:e.dryRun});await Kt({pm_root:e.pmRoot,operation:"delete",before:d,after:null,changed_fields:["deleted"],sdk:lo({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let u=await cn({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),f=$(),_=sr,y=Qt({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=ee(e.pmRoot,n.id),h=()=>Nf({op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:g,before:d});if(e.dryRun===!0){let x=await h();return{item:d.metadata,changedFields:["deleted"],targetPath:x.effectiveItemPath,warnings:[...i,...l.warnings,...u.warnings,...x.warnings]}}let w=await ha(a,n,r,async()=>{let{effectiveItemPath:x,skipDelete:D,warnings:J}=await h(),se=await io(e.pmRoot,e.author),Q=[];try{D||await _e.rm(x);try{await Zt(g,y)}catch(H){throw D||await T(x,r),H}D||(Q=await so({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:x,document:null}))}finally{await se()}return{derivedIndexWarnings:Q,effectiveItemPath:x,overrideWarnings:J,stored:D||x!==n.itemPath?await ya({pmRoot:e.pmRoot,settings:e.settings,id:n.id,typeToFolder:t.typeToFolder,fallback:_,embeddedId:o.metadata.id}):{document:_}}}),{derivedIndexWarnings:b,effectiveItemPath:I,stored:A}=w;Jr(e.pmRoot,A.document,n.id,[o.metadata.id],A.revision);let L=[...await U({path:I,scope:"project",op:"delete",item_id:d.metadata.id,item_type:d.metadata.type,before:d,after:_,changed_fields:["deleted"]}),...await U({path:g,scope:"project",op:"delete:history",item_id:d.metadata.id,item_type:d.metadata.type,before:d,after:_,changed_fields:["deleted"]})];return Gt({id:d.metadata.id,op:"delete",item_type:d.metadata.type,previous_status:d.metadata.status,previous:ct(d.metadata,Object.keys(d.metadata)),changed_fields:["deleted"]}),{item:d.metadata,changedFields:["deleted"],warnings:[...i,...l.warnings,...u.warnings,...w.overrideWarnings,...b,...L]}}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 Ff=3e4,Mt=class extends Error{status;constructor(t,n){super(t),this.name="SearchHttpError",this.status=n}};function Ce(e,t,n=Ff){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 Ae(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 jf(e){try{return(await e.text()).replaceAll(/\s+/g," ").trim()}catch(t){return`(failed to read response body: ${S(t)})`}}async function Cn(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: ${S(o)}`)}if(!r.ok){let o=await jf(r),i=o.length>0?`: ${o}`:"";throw new Mt(`${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: ${S(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 Dv(e,t){let n=E(e);if(!n)return"unconfigured";let r=E(t);return r&&r.toLowerCase()===n.toLowerCase()?"configured":"auto-detected"}function zf(e){let t=st(e),n=t.toLowerCase();return n.endsWith("/embeddings")?t:n.endsWith("/v1")?`${t}/embeddings`:`${t}/v1/embeddings`}function wa(e){let t=e.search?.embedding_model;return E(t)||null}function Uf(e){let t=E(e.providers?.openai?.base_url),n=E(e.providers?.openai?.model);if(!t||!n)return null;let r=wa(e),o=E(e.providers?.openai?.api_key);return{name:"openai",base_url:t,model:r??n,...o?{api_key:o}:{}}}function Vf(e){let t=E(e.providers?.ollama?.base_url),n=E(e.providers?.ollama?.model);if(!t||!n)return null;let r=wa(e);return{name:"ollama",base_url:t,model:r??n}}function ba(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 Hf(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 qf(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 An(e){let t=Uf(e),n=Vf(e),r=[t,n].filter(s=>s!==null),o=E(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 ga(e){let t=st(e.base_url);return e.name==="openai"?{provider:"openai",endpoint:zf(t),model:e.model}:{provider:"ollama",endpoint:`${t}/api/embed`,model:e.model}}function Bf(e,t){let n=ba(t);return e.name==="openai"?{target:ga(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:ga(e),method:"POST",headers:{"content-type":"application/json"},body:{model:e.model,input:n}}}function Wf(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 qf(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 Ea(e,t,n={}){let r=Ce(n.timeout_ms,"Embedding request"),o=Ae(n.fetcher,"Embedding request"),i=ba(t),s=Hf(i),a=Bf(e,s.uniqueInputs),c=await Cn({endpoint:a.target.endpoint,method:a.method,headers:a.headers,body:a.body,timeoutMs:r,fetcher:o,requestLabel:"Embedding request",responseLabel:"Embedding response"}),d=Wf(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 xn=["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 mo(e){let t=e?.search?.corpus_fields;if(!Array.isArray(t))return[...xn];let n=new Set(xn),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:[...xn]}var Yf=8e3,Gf=3200,xe="...[semantic corpus truncated]",Kf="search_embedding_corpus_max_characters_invalid:using_provider_default";function oe(e){return e.map(t=>t==null?"":String(t).trim()).filter(t=>t.length>0).join(" ")}function Xf(e){return(e.reminders??[]).map(t=>oe([t.at,t.text]))}function Jf(e){return(e.events??[]).map(t=>oe([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 Qf(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 Zf(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 Lv(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??[])Qf(t,n);return Zf(t,e),t.filter(n=>typeof n=="string"&&n.length>0).join(" ")}function ep(e){let t=(e.plan_steps??[]).map(i=>oe([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=>oe([s.kind,s.id,s.note])).join(" "),(i.files??[]).map(s=>oe([s.path,s.note])).join(" "),(i.tests??[]).map(s=>oe([s.command,s.path,s.note])).join(" "),(i.docs??[]).map(s=>oe([s.path,s.note])).join(" ")])),n=(e.plan_decisions??[]).map(i=>oe([i.decision,i.rationale,i.evidence,i.step_id])),r=(e.plan_discoveries??[]).map(i=>oe([i.text,i.step_id])),o=(e.plan_validation??[]).map(i=>oe([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 re(e){return typeof e=="string"&&e.trim().length>0}var tp={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=>re(e.metadata.assignee)?e.metadata.assignee:void 0,parent:e=>re(e.metadata.parent)?e.metadata.parent:void 0,goal:e=>re(e.metadata.goal)?e.metadata.goal:void 0,value:e=>re(e.metadata.value)?e.metadata.value:void 0,why_now:e=>re(e.metadata.why_now)?e.metadata.why_now:void 0,risk:e=>re(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=>re(e.metadata.acceptance_criteria)?e.metadata.acceptance_criteria:void 0,resolution:e=>re(e.metadata.resolution)?e.metadata.resolution:void 0,expected_result:e=>re(e.metadata.expected_result)?e.metadata.expected_result:void 0,actual_result:e=>re(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=>Xf(e.metadata),events:e=>Jf(e.metadata),dependencies:e=>(e.metadata.dependencies??[]).map(t=>({id:t.id,kind:t.kind})),plan:e=>ep(e.metadata)};function Sa(e,t={}){let n=t.fields??xn,r={};for(let o of n){let i=tp[o];if(!i)continue;let s=i(e);s!==void 0&&(r[o]=s)}return r}function np(e){return e?.trim().toLowerCase()==="ollama"?Gf:Yf}function Ye(e,t){let n=np(e),r=Ti(t);return r!==null?{maxCharacters:r,warning:null}:{maxCharacters:n,warning:t==null?null:Kf}}function fo(e,t={}){let n=JSON.stringify(Sa(e,{fields:t.fields})),r=Ye(t.providerName,t.maxCharacters).maxCharacters;if(n.length<=r)return n;if(r<=xe.length)return xe.slice(0,r);let o=Math.max(0,r-xe.length);return`${n.slice(0,o)}${xe}`}(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 rp(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 op(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 ip(e,t){if(!Number.isFinite(t)||t<=0||e.length<=t)return e;let n=Math.max(0,t-xe.length);return`${e.slice(0,n)}${xe}`.slice(0,t)}function va(e){let t=S(e).toLowerCase();return t.includes("timed out")||t.includes("timeout")}function sp(e,t,n,r,o,i){let s=`Embedding batch ${t} failed after ${o} attempt(s): ${S(i)}`,a=`provider=${e.name} model=${e.model} batch_size=${n} timeout_ms=${r}`;return va(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 ap(e){return e instanceof Mt?e.status===413?"payload_too_large":null:va(e)?"timeout":null}async function po(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 Ea(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=ap(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 po(e,f,`${n}.1`,r,o,i,s),...await po(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(sp(e,n,t.length,r,o+1,a))}async function _o(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=Ye(e.name,t.search.embedding_corpus_max_characters);c.warning&&a.push(c.warning);let d=rp(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 h=ip(g,d.maxInputCharacters);return h.length<g.length&&(l+=1),h});l>0&&a.push(`search_embedding_input_truncated:count=${l}:max_characters=${d.maxInputCharacters}`);let f=op(e,u,d.batchSize,d.maxRequestBytes);s.planned_batches=f.length;let _=[],y=0;for(let g=0;g<f.length;g+=1){let h=f[g];r.onProgress?.({batch_index:g+1,batch_total:f.length,batch_size:h.length,completed_inputs:y,total_inputs:u.length,phase:"start"}),_.push(...await po(e,h,String(g+1),d.timeoutMs,d.maxRetries,a,s)),y+=h.length,r.onProgress?.({batch_index:g+1,batch_total:f.length,batch_size:h.length,completed_inputs:y,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 cp,readFile as dp,stat as go,unlink as lp}from"node:fs/promises";import{basename as Ta,dirname as ho,isAbsolute as up,join as mp,resolve as 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]="b5f2e49a-fb72-554b-b0a8-dca0adee71f4")}catch{}})();var bo="pm_items",fp=/[^a-zA-Z0-9_-]/g,pp=128,_p=".pm-cli-local-vectors",yo=1,Re=new Map;function Pt(e){return(E(e.collection_name)??bo).replaceAll(fp,"_").slice(0,pp)}function Rn(e){if(!Fe(e)||e.length===0)throw new Error("Vector values must be a non-empty numeric array");return[...e]}function Ca(e){if(!Number.isFinite(e)||e<=0)throw new Error("Vector query limit must be a positive number");return Math.floor(e)}function hp(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=E(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 Eo(e){let t=E(e.result?.status);if(t)return{status:t};let n=E(e.status);if(n)return{status:n};throw new Error("Qdrant upsert response must include status metadata")}async function Lt(e,t,n,r,o){return await Cn({endpoint:e,method:t.method,headers:t.headers,body:t.body,timeoutMs:n,fetcher:r,requestLabel:`Vector ${o} request`,responseLabel:`Vector ${o} response`})}function yp(e){let t=E(e.vector_store?.qdrant?.url);if(!t)return null;let n=E(e.vector_store?.collection_name),r=E(e.vector_store?.qdrant?.api_key);return{name:"qdrant",url:t,...n&&n!==bo?{collection_name:n}:{},...r?{api_key:r}:{}}}function gp(e){let t=wo(e),n=ho(t);return Ta(t)==="pm"&&Ta(n)===".agents"?ho(n):t}function wp(e,t){return!t||up(e)?e:wo(gp(t),e)}function bp(e,t){let n=E(e.vector_store?.lancedb?.path);if(!n)return null;let r=E(e.vector_store?.collection_name);return{name:"lancedb",path:wp(n,t),...r&&r!==bo?{collection_name:r}:{}}}function Ep(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=E(t.id);if(!r)throw new Error(`Vector upsert record at index ${n} is missing a non-empty id`);let o=Rn(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 Sp(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=E(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 vp(e){return e.replace(/\/points\?wait=true$/,"/points/delete?wait=true")}function Tp(e){return e.replace(/\/points\?wait=true$/,"")}function kn(e){return{"content-type":"application/json",...e.api_key?{"api-key":e.api_key}:{}}}function On(e,t){return Ge(e,t)}function Ge(e,t){return mp(wo(e),_p,`${t}.json`)}function Ip(e,t,n){let r=E(e.id);if(!r)throw new Error(`LanceDB local snapshot '${n}' record at index ${t} is missing a non-empty id`);let o=Rn(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 Cp(e,t,n){let r;try{r=JSON.parse(n)}catch(a){throw new Error(`LanceDB local snapshot at '${e}' is not valid JSON: ${S(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!==yo)throw new Error(`LanceDB local snapshot at '${e}' must include version=${yo}`);let o=E(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=Ip(i[a],a,e);s.set(c.id,c)}return s}async function Ap(e){try{let t=await go(e);return{mtimeMs:t.mtimeMs,size:t.size}}catch(t){if(!P(t))throw t;return null}}function xp(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 Re.set(e,{records:n,mtimeMs:null,size:null}),n}function Rp(e,t){return e!==void 0&&t!==null&&e.mtimeMs===t.mtimeMs&&e.size===t.size}async function So(e,t){let n=On(e,t),r=Ge(e,t),o=await Ap(r),i=Re.get(n);if(!o){let a=xp(n,i);if(a)return a}if(Rp(i,o))return i.records;let s=new Map;try{let a=await dp(r,"utf8");s=Cp(r,t,a)}catch(a){if(!P(a))throw a}return Re.set(n,{records:s,mtimeMs:o?.mtimeMs??null,size:o?.size??null}),s}function kp(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 Aa(e){try{await lp(e)}catch(t){if(!P(t))throw new Error(`LanceDB local snapshot delete failed at '${e}': ${S(t)}`)}}async function xa(e,t,n){let r=Ge(e,t);if(n.size===0){await Aa(r);return}let o=ho(r);try{await cp(o,{recursive:!0})}catch(s){throw new Error(`LanceDB local snapshot directory create failed at '${o}': ${S(s)}`)}let i=`${JSON.stringify({version:yo,table:t,records:kp(n)})}
|
|
105
|
+
`;try{await T(r,i)}catch(s){throw new Error(`LanceDB local snapshot write failed at '${r}': ${S(s)}`)}}async function Op(e,t){let n=On(e,t),r=Ge(e,t);await Aa(r),Re.delete(n)}function Ia(e){let t=0;for(let n=0;n<e.length;n+=1)t+=e[n]*e[n];return Math.sqrt(t)}function Dp(e,t){let n=0;for(let i=0;i<e.length;i+=1)n+=e[i]*t[i];let r=Ia(e),o=Ia(t);return r===0||o===0?0:n/(r*o)}function Dn(e,t){let n=yp(e),r=bp(e,t),o=[n,r].filter(a=>a!==null),i=E(e.vector_store?.adapter),s=i?i.toLowerCase():null;return{active:(s?o.find(a=>a.name===s):void 0)??o[0]??null,available:o}}function Nn(e){let t=Pt(e);if(e.name==="qdrant"){let o=st(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 Np(e,t,n){let r=Nn(e),o=Rn(t),i=Ca(n);return e.name==="qdrant"?{target:r,method:"POST",headers:kn(e),body:{vector:o,limit:i,with_payload:!0}}:{target:r,method:"LOCAL",headers:{},body:{table:Pt(e),vector:o,limit:i}}}function Mp(e,t){let n=Nn(e),r=Ep(t);return e.name==="qdrant"?{target:n,method:"POST",headers:kn(e),body:{points:r}}:{target:n,method:"LOCAL",headers:{},body:{table:Pt(e),records:r}}}function Lp(e,t){let n=Nn(e),r=Sp(t);return e.name==="qdrant"?{target:n,method:"POST",headers:kn(e),body:{points:r}}:{target:n,method:"LOCAL",headers:{},body:{table:Pt(e),ids:r}}}async function Yv(e,t,n,r={}){let o=Np(e,t,n);if(o.method==="LOCAL"){let c=e,d=o.body,l=await So(c.path,d.table);if(l.size===0)return[];let u=Rn(d.vector),f=Ca(d.limit),_=[],y=0;for(let g of l.values()){if(g.vector.length!==u.length){y++;continue}_.push({id:g.id,score:Dp(u,g.vector),...g.payload?{payload:g.payload}:{}})}return y>0&&r.warnings&&r.warnings.push(`vector_dimension_mismatch:${y} records skipped (expected ${u.length} dimensions)`),_.sort((g,h)=>g.score!==h.score?h.score-g.score:g.id.localeCompare(h.id)),_.slice(0,f)}let i=Ce(r.timeout_ms,"Vector request"),s=Ae(r.fetcher,"Vector request"),a=await Lt(o.target.query_target,{method:"POST",headers:o.headers,body:o.body},i,s,"query");return hp(a)}async function vo(e,t,n={}){let r=Mp(e,t);if(r.method==="LOCAL"){let a=e,c=r.body,d=On(a.path,c.table),l=await So(a.path,c.table);for(let _ of c.records)l.set(_.id,_);await xa(a.path,c.table,l);let u=Ge(a.path,c.table),f=await go(u);return Re.set(d,{records:l,mtimeMs:f.mtimeMs,size:f.size}),{status:"ok"}}let o=Ce(n.timeout_ms,"Vector request"),i=Ae(n.fetcher,"Vector request"),s=await Lt(r.target.upsert_target,{method:"POST",headers:r.headers,body:r.body},o,i,"upsert");return Eo(s)}async function Mn(e,t,n={}){let r=Lp(e,t);if(r.method==="LOCAL"){let a=e,c=r.body,d=On(a.path,c.table),l=await So(a.path,c.table);if(l.size===0)return{status:"ok"};for(let u of c.ids)l.delete(u);if(await xa(a.path,c.table,l),l.size===0)Re.delete(d);else{let u=Ge(a.path,c.table),f=await go(u);Re.set(d,{records:l,mtimeMs:f.mtimeMs,size:f.size})}return{status:"ok"}}let o=Ce(n.timeout_ms,"Vector request"),i=Ae(n.fetcher,"Vector request"),s=await Lt(vp(r.target.upsert_target),{method:"POST",headers:r.headers,body:r.body},o,i,"delete");return Eo(s)}async function Ra(e,t=[],n={},r){if(e.name==="lancedb")return await Op(e.path,Pt(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=Nn(e),s=Tp(i.upsert_target),a=Ce(n.timeout_ms,"Vector request"),c=Ae(n.fetcher,"Vector request"),d=kn(e);try{await Lt(s,{method:"DELETE",headers:d,body:{}},a,c,"delete")}catch(u){if(!S(u).includes("failed with status 404"))throw u}let l=await Lt(s,{method:"PUT",headers:d,body:{vectors:{size:r,distance:"Cosine"}}},a,c,"upsert");return Eo(l)}let o=t.map(i=>i.trim()).filter(i=>i.length>0);return o.length===0?{status:"ok"}:await Mn(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 Ln(e,t){let n=E(e),r=E(t);return!n||!r?null:{provider:n,model:r}}function ka(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=Ln(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 To(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 Io(e,t){return!e||e.provider!==t.provider||e.model!==t.model}function Co(e,t){return!!(e&&e.vector_dimension!==t)}function Ao(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 xo 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 Pp=["index/manifest.json","search/embeddings.jsonl"],Da="search/vectorization-status.json";function $p(e,t){return`search_cache_invalidation_failed:${e}:${String(t)}`}function Ke(e){return[...new Set([...e].map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function Na(e){return typeof e=="string"&&e.trim().length>0&&Number.isFinite(Date.parse(e))}function Ma(e){let t=new Map;for(let[n,r]of Object.entries(e)){let o=n.trim();o.length===0||!Na(r)||t.set(o,r)}return Object.fromEntries([...t.entries()].sort((n,r)=>n[0].localeCompare(r[0])))}async function La(e){let t=xo.join(e,Da),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||!Na(c))return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]};o.set(a.trim(),c)}let i=null;try{i=ka(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 Pa(e,t,n){let r=Ma(t),o=xo.join(e,Da),i=`${JSON.stringify({version:1,generated_at:$(),...n?{embedding:n}:{},items:Object.entries(r).map(([s,a])=>({id:s,updated_at:a}))},null,2)}
|
|
106
|
+
`;await T(o,i)}function Fp(e){return{id:e.id,type:e.type,status:e.status,priority:e.priority,updated_at:e.updated_at}}function jp(e){let t=Ln(e.name,e.model);if(!t)throw new Error("Embedding provider must include a provider name and model");return t}function $t(e,t){return{refreshed:[],skipped:e,warnings:[t]}}async function zp(e,t,n){if(!n.settings&&!await j(ge(e)))return $t(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 $t(t,`search_semantic_refresh_skipped:settings_read_failed:${c}`);r=a.settings}}catch(a){return $t(t,`search_semantic_refresh_skipped:settings_read_failed:${S(a)}`)}let o=n.apply_runtime_defaults?He(r).settings:r,i=An(o).active;if(!i)return $t(t,"search_semantic_refresh_skipped:provider_unconfigured");let s=Dn(o,e).active;return s?{settings:o,provider:i,vectorStore:s}:$t(t,"search_semantic_refresh_skipped:vector_store_unconfigured")}async function Up(e,t,n,r,o,i){let s=[],a=new Set,c=new Set,d=[];for(let l of r){let u=await We(e,l,t,n,o);if(!u){c.add(l);continue}try{let f=await Nt(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}:${S(f)}`)}}return d.sort((l,u)=>l.id.localeCompare(u.id)),{documents:d,missingIds:Ke(c),skippedIds:Ke(a),warnings:s}}async function Vp(e,t,n){let r=Ye(t.name,e.search.embedding_corpus_max_characters).maxCharacters,o=mo(e),i=n.map(a=>fo(a.document,{providerName:t.name,maxCharacters:r,fields:o})),s=await _o(t,e,i);return{vectors:s.vectors,vector_dimension:Ao(s.vectors,"Semantic refresh embedding"),warnings:s.warnings}}async function Hp(e,t,n){return await vo(e,t.map((r,o)=>({id:r.id,vector:n[o],payload:Fp(r.document.metadata)}))),{refreshed:t.map(r=>r.id),skipped:[],warnings:[]}}async function qp(e,t){if(t.length===0)return{refreshed:[],skipped:[],warnings:[]};try{return await Mn(e,t),{refreshed:[],skipped:[],warnings:[]}}catch(n){return{refreshed:[],skipped:t,warnings:[`search_semantic_refresh_delete_failed:${S(n)}`]}}}async function Bp(e){let t=[],n=[];for(let r of Pp){let o=xo.join(e,r);try{if(!await j(o))continue;await nt(o),t.push(r)}catch(i){n.push($p(r,i))}}return{invalidated:t,warnings:n}}async function Oa(e,t,n={}){let r=Ke(t);if(r.length===0)return{refreshed:[],skipped:[],warnings:[]};let o=await zp(e,r,n);if(!("settings"in o))return o;let i=ot(o.settings,me()),s=await Up(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 La(e):{entries:{},embedding:null,warnings:[]},c=jp(o.provider),d=a.entries,l={refreshed:[],skipped:[],warnings:[]},u=a.embedding;if(s.documents.length>0)if(a.embedding&&Io(a.embedding,c))l={refreshed:[],skipped:s.documents.map(h=>h.id),warnings:["search_semantic_refresh_requires_reindex:embedding_identity_changed"]};else try{let h=await Vp(o.settings,o.provider,s.documents);if(Co(a.embedding,h.vector_dimension))l={refreshed:[],skipped:s.documents.map(w=>w.id),warnings:[...h.warnings,"search_semantic_refresh_requires_reindex:vector_dimension_changed"]};else{u=To(c,h.vector_dimension);let w=await Hp(o.vectorStore,s.documents,h.vectors);l={refreshed:w.refreshed,skipped:w.skipped,warnings:[...h.warnings,...w.warnings]}}}catch(h){l={refreshed:[],skipped:s.documents.map(w=>w.id),warnings:[`search_semantic_refresh_failed:${S(h)}`]}}let f=await qp(o.vectorStore,s.missingIds),_=new Set(l.refreshed),y=Object.fromEntries(s.documents.filter(h=>_.has(h.id)).map(h=>[h.id,h.document.metadata.updated_at])),g=[];if(Object.keys(y).length>0||s.missingIds.length>0){let h={...d,...Ma(y)};for(let w of s.missingIds)delete h[w];try{await Pa(e,h,u)}catch(w){g.push(`search_vectorization_status_ledger_write_failed:${S(w)}`)}g.push(...a.warnings)}return{refreshed:Ke([...l.refreshed,...f.refreshed]),skipped:Ke([...s.skippedIds,...l.skipped,...f.skipped]),warnings:[...s.warnings,...l.warnings,...f.warnings,...g]}}function Wp(e,t){let n=t?He(e).settings:e;return!!(An(n).active&&Dn(n).active)}async function Yp(e,t,n={}){let r=await Bp(e),o=Ke(t);if(o.length===0)return{invalidated:r.invalidated,refreshed:[],skipped:[],warnings:r.warnings};if(!await j(ge(e))){let c=await Oa(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:${S(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&&Wp(i,s))return await $s(e,o),{invalidated:r.invalidated,refreshed:[],skipped:[],warnings:[...r.warnings,"search_semantic_refresh_scheduled_background"],scheduled:!0};let a=await Oa(e,o,{settings:i,apply_runtime_defaults:s});return{invalidated:r.invalidated,refreshed:a.refreshed,skipped:a.skipped,warnings:[...r.warnings,...a.warnings]}}import{createHash as Gp}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]="225abd7e-ddd7-5597-818d-efadc974b7e3")}catch{}})();var Kp=new Set(["1","true","yes","on"]),Pn=["user","automation","test","dogfood"],$a=new Set(Pn);function Xe(e={},t=process.env,n=process.stdin.isTTY===!0&&process.stdout.isTTY===!0){let r=(t.PM_TELEMETRY_SOURCE_CONTEXT??"").trim().toLowerCase();if($a.has(r))return{source_context:r,source_context_source:"env_override"};let o=r?"env_override_rejected":"inferred";return $n(t)?{source_context:"test",source_context_source:o}:{source_context:!n||Ft("CI",t)||e.json===!0||e.quiet===!0?"automation":"user",source_context_source:o}}function $n(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 Fn=new Set(["stats","ops stats","list","get","next","context","activity","aggregate"]);function Fa(e,t,n=process.env){let r=n.PM_TELEMETRY_READ_SAMPLE_RATE?.trim();if(!r||!t||!Fn.has(e))return 1;let o=Number(r);return Number.isFinite(o)&&o>0&&o<=1?o:1}function Ft(e,t){return Kp.has((t[e]??"").trim().toLowerCase())}function z(e=process.env){let t=(e.PM_TELEMETRY_ENDPOINT??"").trim(),n=URL.canParse(t)?new URL(t).protocol:"";return n==="http:"||n==="https:"?{endpoint:t,invalid:!1}:{endpoint:null,invalid:t.length>0}}function jt(e,t=z().endpoint){if(t===null)return e;let n=Gp("sha256").update(t).digest("hex").slice(0,16);return e.replace(/\.(jsonl|json)$/u,`.${n}.$1`)}function Xp(e){return e.replaceAll(/(\/\/)[^/?#\s]*@/gu,"$1")}function jn(e){let t=e.trim();if(!URL.canParse(t))return Xp(t).replace(/[?#].*$/su,"");let n=new URL(t);return n.username="",n.password="",n.search="",n.hash="",n.toString()}function zn(e){return e.replaceAll(/\b[a-z][a-z\d+.-]*:\/\/[^\s"'<>]+/giu,t=>jn(t))}function _T(e,t=process.env){return z(t).endpoint??e}function G(e=process.env){let t=Ft("DO_NOT_TRACK",e),n=z(e),r=(e.PM_TELEMETRY_SOURCE_CONTEXT??"").trim().toLowerCase(),o=$n(e)&&!$a.has(r)&&!Ft("PM_TELEMETRY_SEND_TEST_EVENTS",e);return{telemetry_disabled:t||o||n.invalid||Ft("PM_TELEMETRY_DISABLED",e)||Ft("PM_NO_TELEMETRY",e),do_not_track:t,test_suppressed:o,endpoint_override:n.endpoint===null?null:jn(n.endpoint),endpoint_override_invalid:n.invalid}}(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 ke=Object.freeze({max_bytes:4096,max_depth:8}),ja=160,Jp=new Set(["not_plain_object","unsupported_value","non_finite_number","malformed_unicode","reserved_key","depth_limit","byte_limit","diagnostic_budget"]),Ua=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/u,Qp=new Set(["__proto__"]),M=class extends Error{reason;path;constructor(t,n){super(t),this.reason=t,this.path=n}};function ko(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Zp(e,t){return/^[A-Za-z_$][\w$]*$/u.test(t)?`${e}.${t}`:`${e}[${JSON.stringify(t)}]`}function Va(e){if(Buffer.byteLength(e,"utf8")<=ja)return e;let t="",n=Buffer.byteLength("\u2026","utf8");for(let r of e){if(n+=Buffer.byteLength(r,"utf8"),n>ja)break;t+=r}return`${t}\u2026`}function Un(e,t,n){if(e.bytes+=t,!(e.bytes<=ke.max_bytes))throw new M("byte_limit",n)}function Ha(e,t,n){if(e.bytes+t>ke.max_bytes)throw new M("byte_limit",n)}function Ro(e,t,n){let r=Object.getOwnPropertyDescriptor(e,t);if(r===void 0||!("value"in r))throw new M("unsupported_value",n);return r.value}function e_(e,t,n){if(typeof e=="number"&&!Number.isFinite(e))throw new M("non_finite_number",t);if(typeof e=="string"&&(Ha(n,e.length+2,t),Ua.test(e)))throw new M("malformed_unicode",t);if(e!==null&&!["boolean","number","string"].includes(typeof e))throw new M("unsupported_value",t);return Un(n,Buffer.byteLength(JSON.stringify(e),"utf8"),t),e}function qa(e,t,n,r){if(typeof e!="object"||e===null)return e_(e,t,r);if(n>=ke.max_depth)throw new M("depth_limit",t);if(Array.isArray(e)){let o=Ro(e,"length",t);if(typeof o!="number"||!Number.isSafeInteger(o)||o<0)throw new M("unsupported_value",t);Un(r,o>0?o+1:2,t);let i=[];for(let s=0;s<o;s+=1){let a=`${t}[${s}]`;i.push(qa(Ro(e,String(s),a),a,n+1,r))}return i}if(!ko(e))throw new M("unsupported_value",t);return Ba(e,t,n+1,r)}function Ba(e,t,n,r){let o=Object.keys(e);Un(r,o.length>0?o.length+1:2,t);let i={};for(let s of o){Ha(r,s.length+3,t);let a=Zp(t,s);if(Qp.has(s))throw new M("reserved_key",a);if(Ua.test(s))throw new M("malformed_unicode",a);Un(r,Buffer.byteLength(JSON.stringify(s),"utf8")+1,a),i[s]=qa(Ro(e,s,a),a,n,r)}return i}function t_(e){try{if(e instanceof M)return e}catch{}return new M("unsupported_value","details")}function Hn(e){let t=ke.max_bytes,n={bytes:0};try{if(!ko(e))throw new M("not_plain_object","details");return{ok:!0,details:Ba(e,"details",0,n),byte_length:n.bytes}}catch(r){let o=t_(r);return{ok:!1,omission:o.reason==="byte_limit"?{reason:"byte_limit",byte_limit:t}:{reason:o.reason,path:Va(o.path),byte_limit:t}}}}function n_(e){return Hn(e).ok}function Wa(e){if(e===void 0)return;let t=Hn(e);return t.ok?{details:t.details}:{details_omitted:t.omission}}function Vn(){return{reason:"unsupported_value",path:"details",byte_limit:ke.max_bytes}}function za(e,t){let n=Object.getOwnPropertyDescriptor(e,t);return n!==void 0&&"value"in n?n.value:void 0}function r_(e){if(!ko(e))return;let t=za(e,"reason");if(typeof t!="string"||!Jp.has(t))return;let n=za(e,"path"),r=typeof n=="string"?Va(n):void 0;return{reason:t,...r===void 0?{}:{path:r},byte_limit:ke.max_bytes}}function Ya(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=Vn()));return t}catch{return{}}}function Ga(e){if(!(typeof e!="object"||e===null))try{let t=Object.getOwnPropertyDescriptor(e,"details");if(t!==void 0&&!("value"in t))return{details_omitted:Vn()};if(t!==void 0&&t.value!==void 0)return Wa(t.value);let n=Object.getOwnPropertyDescriptor(e,"details_omitted"),r=n!==void 0&&"value"in n?r_(n.value):void 0;return r===void 0?void 0:{details_omitted:r}}catch{return{details_omitted:Vn()}}}var Ka=new Set(["details","details_omitted"]);function o_(e){let t={};for(let n of Object.keys(e)){if(Ka.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 i_(e){if(typeof e!="object"||e===null)return e;try{return Array.isArray(e)?e:{...o_(e),...Ga(e)}}catch{return{details_omitted:Vn()}}}function Je(e){let t={};for(let[n,r]of Object.entries(Ya(e)))Ka.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 s_=12,a_=new Set(["context","error_context"]),c_=new Set(["arguments"]);function Xa(e){let t=new WeakSet,n=(r,o)=>{if(typeof r!="object"||r===null||o>s_||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=a_.has(a)?{}:c_.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 Oo(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0}function ST(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e;if(!Oo(t.requested_tokens)||t.basis!=="canonical_retry")return!1;switch(t.minimum_status){case"exact":return Oo(t.minimum_feasible_tokens)&&t.feasible_tokens===t.minimum_feasible_tokens&&t.reason===void 0;case"feasible_only":return t.minimum_feasible_tokens===null&&Oo(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 d_="PmCliError";function vT(e){if(!zt(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 l_(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 u_(e){if(e==null)return{};if(!Object.hasOwn(e,"details"))return e;let t=Object.getOwnPropertyDescriptor(e,"details");if(!("value"in t))throw Ja("unsupported_value","details");if(t.value===void 0)return e;let n=Hn(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 Ja(n.omission.reason,n.omission.path)}function Ja(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 TT(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,l_(t.exitCode??m.USAGE),u_(t.context));return"cause"in t&&Object.defineProperty(n,"cause",{value:t.cause,enumerable:!1,configurable:!0,writable:!0}),n}function zt(e){try{if(!(e instanceof Error)||e.name!==d_)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 b_}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 qn=/(?:token|secret|password|passwd|api[_-]?key|apikey|authorization|cookie|credentials|bearer|dsn)/i,m_=new RegExp(`(?:\\b|(?<=_))(${qn.source})\\s*[:=]\\s*([^\\s,;]+)`,"giu");function Bn(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=Bn(e,r.index,r[0]);if(o?.identity===t.identity)return o.end}return e.length}function f_(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 p_(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=Bn(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=f_(n,i,i.end,e.length);if(a!==void 0)return a;continue}r.lastIndex=Za(e,i)}return e.length}function __(e,t,n){let r=/^(\\*)(["'{[]|u(?:0022|0027|007b|005b))/i.exec(e.slice(t)),o=r?Bn(e,t+r[1].length,r[2]):void 0;return o?.character==="{"||o?.character==="["?p_(e,o):o?Za(e,o):n}function h_(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 Qa="(?:\\s|\\\\+u(?:0009|000a|000d|0020))*",y_=new RegExp("^"+Qa+"(?::|=|\\\\+u(?:003a|003d))"+Qa,"iu");function g_(e,t,n){let r=h_(t);if(!qn.test(r)&&!/\\u/iu.test(r))return;let o=e.slice(n),i=y_.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 w_(e){let t=new Map,n=[];for(let r of e.matchAll(/["']|u(?:0022|0027)/gi)){let o=Bn(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=g_(e,e.slice(i,o.index),s);a&&n.push(a)}return n}function ec(e){let t=w_(e);for(let o of e.matchAll(m_)){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=__(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 ic=new Set(["1","true","yes","on"]);function sc(){return!!(ic.has((process.env.PM_SENTRY_DISABLED??"").trim().toLowerCase())||G().telemetry_disabled||typeof process.env.VITEST=="string"||typeof process.env.VITEST_WORKER_ID=="string")}var E_=/(^|[\s"'`(=])\/(?:[^\s"'`),;]+)/g,S_=/file:\/\/\/?[^\s"'`),;]+/giu,v_=/\b[A-Za-z]:\\[^\s"'`),;]+/g,T_=/\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,I_=/(?:^|[_-])(path|filename|file|module|cwd|dir|directory|location|source|script)s?$/i;var C_=["[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 tc(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 B(e,t){if(t&&I_.test(t)&&tc(e))return"[scrubbed_path]";let n=ec(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(T_,"[scrubbed_ip]").replaceAll(S_,"[scrubbed_path]").replaceAll(v_,"[scrubbed_path]").replaceAll(E_,(r,o)=>`${o}[scrubbed_path]`);return tc(n)?"[scrubbed_path]":n}function K(e){let t={};for(let[n,r]of Object.entries(e))qn.test(n)||n.startsWith("sentry.message.parameter.")?t[n]="[scrubbed]":typeof r=="string"?t[n]=B(r,n):Array.isArray(r)?t[n]=r.map(o=>typeof o=="string"?B(o,n):o&&typeof o=="object"?K(o):o):r&&typeof r=="object"?t[n]=K(r):t[n]=r;return t}function A_(e){for(let n of["filename","absPath","abs_path","module"]){let r=e[n];typeof r=="string"&&(e[n]=B(r,n))}let t=e.context_line;typeof t=="string"&&(e.context_line=B(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"?B(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 x_=b_(import.meta.url),R_=()=>x_("@sentry/node"),Wn,nc=!1,k_=R_,O_="https://bf7ad2ec76c0051c2ee94e48e8bd6868@o4510603477712896.ingest.de.sentry.io/4511316775338064";function Do(e){return/^\s*PmCliError:/.test(e)}function No(e){let t=e.trim().toLowerCase();return t.length===0?!1:C_.some(n=>t.includes(n))}function D_(e){return e.logger!=="console"?!1:typeof e.message=="string"&&No(e.message)?!0:Array.isArray(e.exception?.values)&&e.exception.values.some(t=>typeof t.value=="string"&&No(t.value))}function N_(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 M_(e,t){return t instanceof Error?zt(t):!!(e.exception?.values?.some(n=>n.type==="PmCliError")||e.exception?.values?.some(n=>typeof n.value=="string"&&Do(n.value))||e.logger==="console"&&typeof e.message=="string"&&Do(e.message))}function ac(e){return e.category==="console"&&typeof e.message=="string"&&Do(e.message)}function cc(e){return e.category==="console"&&typeof e.message=="string"&&No(e.message)}function L_(){return mr(import.meta.url,["../../.."])??"0.0.0"}function P_(){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=Xe().source_context;return t==="user"?"production":t}var rc=.2;function dc(){let e=process.env.SENTRY_TRACES_SAMPLE_RATE?.trim();if(!e)return rc;let t=Number(e);return!Number.isFinite(t)||t<0||t>1?rc:t}function $_(e){if(e.exception?.values){for(let t of e.exception.values)if(t.value&&(t.value=B(t.value,"value")),t.stacktrace?.frames)for(let n of t.stacktrace.frames)A_(n)}}function lc(e){if(e.breadcrumbs)for(let t of e.breadcrumbs)t.message&&(t.message=B(t.message)),t.data&&typeof t.data=="object"&&(t.data=K(t.data))}function uc(e){if(e.contexts)for(let[t,n]of Object.entries(e.contexts))n&&typeof n=="object"&&(e.contexts[t]=K(n))}function oc(e,t){let n=e,r=n[t];r&&typeof r=="object"&&(n[t]=K(r))}function Mo(e){if(!process.env.SENTRY_ENVIRONMENT?.trim()&&(e==="automation"||e==="test"||e==="dogfood"||e==="user"))return e==="user"?"production":e}function mc(e){let t=Mo(e.tags?.["pm.source_context"]);t&&(e.environment=t)}function fc(e,t){let n=F_(e.extra);Xa([e.contexts,e.extra,e.breadcrumbs]),j_(e.contexts,t),n!==void 0&&(e.extra.error_context=Je(n))}function F_(e){if(!(typeof e!="object"||e===null||!Object.hasOwn(e,"error_context")))return e.error_context}function j_(e,t){if(typeof e!="object"||e===null||typeof t!="object"||t===null)return;let n=e,r=new Set(z_(t)),o=U_(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 z_(e){try{return[e.name,e.constructor?.name].filter(t=>typeof t=="string"&&t.length>0)}catch{return[]}}function U_(e){try{let t=Je(e),n=Object.getOwnPropertyDescriptor(e,"context");return n!==void 0&&"value"in n&&(t.context=Je(n.value)),t}catch{return}}var V_=(e,t)=>{if(M_(e,t?.originalException)||D_(e))return null;fc(e,t?.originalException),mc(e),N_(e)&&(e.level="warning",e.tags={...e.tags,"pm.diagnostic_class":"node_runtime_warning"}),e.message&&(e.message=B(e.message,"message")),e.transaction&&(e.transaction=B(e.transaction,"transaction")),$_(e),lc(e),oc(e,"extra"),uc(e);for(let n of["request","user","tags"])oc(e,n);return e},H_=e=>(fc(e),mc(e),e.breadcrumbs&&(e.breadcrumbs=e.breadcrumbs.filter(t=>!ac(t)&&!cc(t)),lc(e)),uc(e),e),q_=e=>K(e),B_=e=>{if(e.message=B(e.message),e.attributes){let t=Mo(e.attributes["pm.source_context"]);t&&(e.attributes["sentry.environment"]=t),e.attributes=K(e.attributes)}return e};function W_(e){let t=Mo(e["pm.source_context"]?.value);t&&(e["sentry.environment"]={type:"string",value:t})}function Y_(e){for(let t of e[1])if(t[0].type==="log")for(let n of t[1].items){n.body=B(n.body);let r=n.attributes;if(r){W_(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 G_=e=>ac(e)||cc(e)?null:(e.message&&(e.message=B(e.message,"message")),e.data&&typeof e.data=="object"&&(e.data=K(e.data)),e);async function pc(){if(nc)return Wn;if(nc=!0,sc())return;let e=k_(),t=process.env.SENTRY_DSN?.trim()||O_,n=L_();e.init({dsn:t,release:`pm-cli@${n}`,environment:P_(),tracesSampleRate:dc(),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:V_,beforeSendTransaction:H_,beforeSendSpan:e.withStreamedSpan(q_),beforeSendLog:B_,beforeBreadcrumb:G_});let r=e.getClient();if(!r)return;let o=Xe();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",Y_),Wn=e,e}async function K_(e){if(e!==!0||!ic.has((process.env.PM_SENTRY_TRACE_COMMANDS??"").trim().toLowerCase())||dc()===0||sc())return!1;try{return await pc()!==void 0}catch{return Wn=void 0,!1}}function Oe(){return Wn}(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 Ut=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 PT(e,t){let n=t.warnings[0]??"extension_command_handler_failed",r=t.errorMessage?.trim();return new Ut(`Command "${e}" failed in extension handler (${n}).${r?` ${r}`:""}`,{code:t.errorCode??"command_failed",nextSteps:t.remediation?[t.remediation]:void 0},t.cause)}function $T(e){return e instanceof p||e instanceof Error?e.message:"Unknown failure"}function X_(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 J_(e){let t=Math.trunc(e);return t>m.SUCCESS?t:m.GENERIC_FAILURE}function FT(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"&&e.code.startsWith("commander.")}function jT(e,t){if(e instanceof Error)return e;let n=new Error(t),r=X_(e);return r!==void 0&&(n.exitCode=J_(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 Q_=new Set(["init","config","completion","completion-statuses","completion-tags","completion-types"]),Z_=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"]),eh=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"]),th=new Set(["test","test-all","test-runs","test-verify","trace-test","test-ping"]),nh=new Set(["health","validate","normalize","reindex","gc","telemetry","extension-doctor"]);function rh(e){return e.trim().replaceAll(/\s+/g," ").toLowerCase()}function _c(e){let t=e?.trim().toLowerCase();return t&&t.length>0?t:void 0}var oh=[{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")}],ih=new Map([[m.USAGE,"invalid_command_usage"],[m.NOT_FOUND,"item_not_found"],[m.CONFLICT,"lock_conflict"],[m.DEPENDENCY_FAILED,"dependency_failed"]]);function De(e){let t=rh(e),n=t.length>0?t.split(" "):["<unknown>"],r=n[0],o=n[n.length-1],i="other";return Q_.has(r)?i="setup":Z_.has(r)?i="query":eh.has(r)?i="mutation":th.has(r)?i="testing":r==="extension"?i="extension":nh.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 Lo(e){if(e.ok)return;let t=_c(e.errorCode);if(t)return t;let n=(e.errorMessage??"").trim().toLowerCase();for(let o of oh)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?ih.get(r)??"command_failed":"command_failed"}function Qe(e){if(e.ok)return"success";let t=_c(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 Ne;function he(e,t,n){if(n===void 0)return;let r=e;typeof r.setAttribute=="function"&&r.setAttribute(t,n)}function Ze(e,t,n){typeof n=="string"&&n.trim().length>0&&e.setTag(t,n)}function sh(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))),Ze(e,"pm.error_code",n?.error_code),Ze(e,"pm.error_category",n?.error_category),Ze(e,"pm.command_resolution",n?.command_resolution),Ze(e,"pm.resolution_stage",n?.resolution_stage)}function ah(e,t,n,r){he(e,"pm.ok",t),he(e,"pm.command_ok",t),he(e,"pm.exit_code",n),he(e,"pm.command_exit_code",n),he(e,"pm.error_code",r?.error_code),he(e,"pm.error_category",r?.error_category),he(e,"pm.command_resolution",r?.command_resolution),he(e,"pm.resolution_stage",r?.resolution_stage)}function ch(e,t,n,r){let o=Oe();if(!o)return;let i=De(e);o.setTag("pm.command",e),o.setTag("pm.command_root",i.command_root),o.setTag("pm.command_family",i.command_family),Ze(o,"pm.version",r?.pm_version),Ze(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 dh(e){let t=Oe();if(!t)return;let n=De(e);Ne=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 lh(){Ne=void 0}function uh(e,t,n){if(!Ne)return;let r=e?"true":"false",o=typeof n?.exit_code=="number"?String(n.exit_code):void 0,i=Oe();i&&sh(i,r,n),ah(Ne,r,o,n),Ne.setStatus(e?{code:1}:{code:2,message:t??"command_failed"}),Ne.end(),Ne=void 0}var mh="unclassified_runtime_error";function fh(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:mh,exit_code:r}}function ph(e){let t=fh(e);return{"pm.error_code":t.error_code,"pm.exit_code":String(t.exit_code)}}function _h(e){if(!yh(e))return;let t=Oe();if(!t)return;let n=ph(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=Je(e.context)),t.captureException(e,{extra:r,tags:n})}else t.captureException(new Error(String(e)),{tags:n})}function hh(e){let t=Oe();if(!t)return;let n=e.command_resolution??Qe({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 yh(e){if(e instanceof Ut)return!0;if(e instanceof p||zt(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 gh(e=3e3){let t=Oe();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 Me=`[^\\s/\\\\<>"'\\x60()\\[\\]{},;?=:#*]+`,R="[/\\\\]+",wh="[\\p{L}\\p{N}._@-]+",Le=wh+"(?:"+R+Me+")*",Yn="(?:(?:home|users)"+R+Le+"|root"+R+Le+")",bh="[/\\\\]"+Yn,Eh="[/\\\\]{2,}"+Yn,Sh="/?[a-z]:"+R+"users"+R+Le,vh=Me+"(?: +"+Me+")*",Po="(?:"+vh+R+")?users"+R+Le,Th="[/\\\\]{2,}"+Me+R+Po,Ih="(?:[a-z]:|volume\\{[a-f0-9-]+\\}|"+Me+")",yc="[/\\\\]{2}[?.]"+R+"(?:unc"+R+Me+R+Po+"|"+Ih+R+"users"+R+Le+")",Ch="file:(?:"+yc+"|(?:[/\\\\](?![/\\\\])|[/\\\\]{3,}|[/\\\\]{2}localhost"+R+")(?:"+Yn+"|[a-z]:"+R+"users"+R+Le+")|[/\\\\]{2}(?:[a-z]:"+R+"users"+R+Le+"|"+Me+R+"(?:"+Yn+"|"+Po+")))",Ah=new RegExp("(?:^|[^\\p{L}\\p{N}_./\\\\~])(?:"+bh+"|"+Sh+"|"+Ch+")|(?:^|[^\\p{L}\\p{N}_:./\\\\~])(?:"+Eh+"|"+Th+"|"+yc+")","giu"),hc=4,xh=/%[a-f0-9]{2}|\\(?:u[a-f0-9]{4}|x[a-f0-9]{2}|\/)/iu,Rh=new TextDecoder("utf-8");function kh(e){return e.replace(/(?:%[a-f0-9]{2})+/giu,t=>Rh.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 Oh(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 Dh(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 Nh(e,t){for(let[n,r]of[["percent_decode",kh],["json_unescape",Oh],["unicode_fold",Dh]]){let o=r(e);o!==e&&!t.includes(n)&&t.push(n),e=o}return e}function*Mh(e,t,n){let r=e,o=[];for(let i=0;i<hc;i+=1){let s=r;if(r=Nh(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===hc-1&&xh.test(r)&&(yield{index:0,normalizations:[...o],normalization_incomplete:!0})}}function*Lh(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 Mh(r,t,o))yield{...i,index:n};n+=r.length+1}}var gc=[{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:Ah,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*wc(e,t){if(e.mutationRule==="absolute_home_path"){yield*Lh(t,e.regex);return}e.regex.lastIndex=0;for(let n of t.matchAll(e.regex))Ph(e,n)&&(yield{index:n.index})}function Ph(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 $h=[{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"}],Fo=new Map($h.map(e=>[e.action,e]));function $o(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)=>$o(r,`${t}[${o}]`,n)):Object.entries(e).flatMap(([r,o])=>$o(o,`${t}.${r}`,n)))}function Fh(e,t){let n=wc(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 bc(e){let t=[];for(let n of $o(e))for(let r of gc){let o=Fh(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 jh(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=bc(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 zh(e){return Fo.has(e.trim().toLowerCase())}function Uh(){return[...Fo.keys()].sort((e,t)=>e.localeCompare(t))}function t0(e){return Fo.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 Vh=/\b([a-z][a-z0-9]*)-(\d+)(?:-[a-z0-9]+)*\b/giu,Hh=/^(?:utf|iso|sha|tls|http|covid|match)$/iu;function jo(e){return e.trim().toLowerCase().replace(/\s+/g," ")}function Sc(e){return[...new Set(jo(e).match(/[\p{L}\p{N}]+/gu)??[])]}function Ec(e){let t=jo(e);return{normalized:t,tokens:Sc(t),issueCodes:[...new Set([...e.matchAll(Vh)].filter(n=>{let r=n[1],o=n.index,i=e.slice(o+n[0].length);return!Hh.test(r)&&(r===r.toUpperCase()||r.length<=2||o===0&&/^\s*(?::|—|–|\])/u.test(i))}).map(n=>n[0].toLowerCase()))]}}function qh(e,t){return Bh(Ec(e),Ec(t))}function Bh(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:Yt(e.tokens,t.tokens),reason:"title_token_jaccard"}}import Wh 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 Gn(e){return(e??"in_progress").trim().toLowerCase().replaceAll("-","_")}function Yh(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 vc(e,t){let n=Math.max(1,Math.trunc(t.threshold_hours)),r=(t.now??new Date).getTime(),o=Gn(t.in_progress_status),i=[];for(let s of e){if(Gn(String(s.status))!==o||(s.assignee?.trim().length??0)>0)continue;let a=Yh(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 Gh(e,t,n){let r=new Map;return await Promise.all(t.filter(o=>Gn(String(o.status))===Gn(n.in_progress_status)&&(o.assignee?.trim().length??0)===0).map(async o=>{let i;try{i=await mt(Wh.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)})),vc(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 Kh=Object.freeze({"<":"<",">":">",""":'"',"'":"'","&":"&"}),Xh=/&(?:lt|gt|quot|#39|amp);/g;function Jh(e){return typeof e!="string"||!e.includes("<")&&!e.includes(">")?e:e.replace(Xh,t=>Kh[t])}function Qh(e){return zo(e,new WeakMap)}function zo(e,t){if(typeof e=="string")return Jh(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(zo(r,t));return n}if(e!==null&&typeof e=="object"){if(!Zh(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:zo(i,t),enumerable:!0,writable:!0,configurable:!0});return r}return e}function Zh(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 ey(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 Tc(e){return e.split(/[\s,|]+/).map(t=>t.trim()).filter(t=>t.startsWith("--"))}function ty(e){return Tc(e)[0]??null}function ny(e,t){let n=ty(t);if(n===null)return!1;let r=o=>o.slice(2).replaceAll("-","_");return Tc(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 ry(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 Uo from"node:fs/promises";import Kn 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 oy(e){return"json_markdown"}function Ic(e,t){return Kn.relative(e,t).replaceAll("\\","/")}function iy(e){return String(e).replaceAll(/[^a-zA-Z0-9._-]+/g,"_").slice(0,120)}async function sy(e,t,n){e!==t&&ae(await Uo.readFile(t,"utf8"),{format:"json_markdown",requireSupportedFormat:!0,schema:n})}async function ay(e,t,n="item_format:migrate",r=Z,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=oy(t),l=Object.entries(r);for(let[u,f]of l){let _=Kn.join(e,f),y=[];try{y=await Uo.readdir(_)}catch{continue}let g=new Map;for(let w of y){let b=Kn.join(_,w),I=it(b);if(!I)continue;let A=Kn.extname(w),L=w.slice(0,w.length-A.length).trim();if(L.length===0)continue;let x=g.get(L)??{};x[I]=b,g.set(L,x)}let h=[...g.keys()].sort((w,b)=>w.localeCompare(b));for(let w of h){let b=g.get(w);c+=1;let I=b[d];if(!I)continue;let A=b[t]??I,L=A===b[t]?t:d;try{let x=await Uo.readFile(A,"utf8"),D=ae(x,{format:L,requireSupportedFormat:!0,schema:o,onWarning:Q=>a.push(`item_format_migration_parse_warning:${w}:${Q}`)});await sy(A,I,o);let J=$e(e,u,w,t,r),se=lt(D,{format:t,schema:o});await C(J)!==se&&(await T(J,se),a.push(...await U({path:J,scope:"project",op:n})),i.add(w)),await nt(I),s.add(Ic(e,I)),a.push(...await U({path:I,scope:"project",op:`${n}:remove`})),i.add(w)}catch(x){a.push(`item_format_migration_skipped:${Ic(e,A)}:${iy(x)}`)}}}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 cy=new Set(["completed","superseded"]);function dy(e){return e!==void 0&&cy.has(e)}function ly(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 uy}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 my=/^[a-z][a-z0-9_-]{0,63}$/u,fy=new Set(["constructor","prototype"]),Cc="settings:section:write",py=240;function Xn(e){return`sha256:${uy("sha256").update(Vo(e)).digest("hex")}`}function Vo(e){return Array.isArray(e)?`[${e.map(t=>Vo(t)).join(",")}]`:typeof e=="object"&&e!==null?`{${Object.keys(e).sort().map(t=>`${JSON.stringify(t)}:${Vo(Object.getOwnPropertyDescriptor(e,t)?.value)}`).join(",")}}`:String(JSON.stringify(e))}function xc(e){if(!my.test(e)||fy.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(Pi.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 Rc(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 Ho(e,t,n){let r;try{r=n===void 0?t:n(t)}catch(o){throw new p(`Settings section "${e}" is invalid: ${S(o).slice(0,py)}`,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 kc(e){return typeof Reflect.get(e,"toJSON")=="function"}function qo(e){return e.length===0?"the value":e.join(".")}function Oc(e,t){return Object.values(Object.getOwnPropertyDescriptors(e)).every(n=>"value"in n&&(!t||n.enumerable===!0))}function _y(e){if(Object.getPrototypeOf(e)!==Array.prototype||!Oc(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&&!kc(e)}function hy(e){let t=Object.getPrototypeOf(e);return(t===Object.prototype||t===null)&&Oc(e,!0)&&Object.getOwnPropertySymbols(e).length===0&&!kc(e)}function yy(e,t){if(e===null||typeof e=="string"||typeof e=="boolean")return null;let n=qo(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 Dc(e,t=[],n=new Set){if(typeof e!="object"||e===null)return yy(e,t);let r=qo(t);if(n.has(e))return{detail:`${r} is a circular reference`,representable:!1};if(!(Array.isArray(e)?_y(e):hy(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=Dc(i,[...t,o],n);if(s!==null)return s}return n.delete(e),null}function Nc(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 qo(o);let i=Nc(r,o);if(i!==null)return i}return null}function Ac(e,t,n){return Ho(e,t,()=>{throw new Error(n)})}function gy(e,t){let n=Dc(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 Ac(e,t,o)}let r=Nc(t);return r!==null?Ac(e,t,`${r} is a reserved key that settings history cannot record`):JSON.parse(JSON.stringify(t))}function Mc(e,t){return Object.hasOwn(e,t)?e[t]:void 0}async function wy(e,t,n={}){xc(t);let r=ge(e);await Ee({path:r,scope:"project"});let o=await C(r),i=o===null?void 0:Mc(Rc(o),t);if(i===void 0)return{section:t,source:"default",value:n.defaultValue,revision:null};let s=Xn(i);return{section:t,source:"stored",value:Ho(t,structuredClone(i),n.validate),revision:s}}async function by(e,t,n,r={}){xc(t);let o=n===void 0?void 0:gy(t,Ho(t,n,r.validate)),i=ge(e),s=await W(e);try{let a=await Er({pmRoot:e,filePath:i,op:Cc,author:ut(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=Rc(c),l=Mc(d,t),u=l===void 0?null:Xn(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:Xn(o)};return tt(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 U({path:i,scope:"project",op:Cc}),a.result}finally{en(e)}}import Ey from"node:readline/promises";import{stdin as Sy,stdout as Lc}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 vy="PM_TELEMETRY_PROMPT",Pc=new Set(["0","false","no","off"]),Ty=new Set(["init","completion","completion-statuses","completion-tags","completion-types"]);function Iy(e){return typeof e!="string"?!1:Pc.has(e.trim().toLowerCase())}function Cy(e){if(typeof e!="string")return!1;let t=e.trim().toLowerCase();return t.length===0?!1:!Pc.has(t)}function Ay(e,t){if(t.json===!0||t.quiet===!0||process.stdin.isTTY!==!0||process.stdout.isTTY!==!0||Iy(process.env[vy])||Cy(process.env.CI))return!0;let n=e.trim().toLowerCase();return n.length===0?!0:Ty.has(n)}function xy(e){let t=e.trim().toLowerCase();return!(t==="n"||t==="no")}async function Ry(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:Sy,output:Lc});try{let r=await n.question(t);return r.trim().length===0?e:xy(r)}finally{n.close()}}async function ky(e,t){if(!(G().telemetry_disabled||Ay(e,t)))try{let n=ue(process.cwd()),r=await W(n);if(r.telemetry.first_run_prompt_completed||ht(r))return;let o=await Ry(r.telemetry.enabled);r.telemetry.enabled=o,r.telemetry.first_run_prompt_completed=!0,await yt(n,r,"telemetry:first_run_prompt"),Lc.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 Ny}from"node:child_process";import{mkdirSync as Bo,rmSync as My,statSync as Gc}from"node:fs";import{mkdir as Wo,readdir as Ly,rm as Zo,stat as Kc}from"node:fs/promises";import{request as Py}from"node:http";import{request as $y}from"node:https";import ei from"node:os";import O from"node:path";import Oy 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 $c(e,t,n,r=process.env,o=Date.now()){if(!n||!Fn.has(t))return 1;if(r.PM_TELEMETRY_READ_SAMPLE_RATE!==void 0)return Fa(t,!0,r);try{let i=Oy.join(e,"runtime","telemetry","read-sampling.json"),s=Math.floor(o/6e4),a=Dy(await C(i),s),c=Math.min(Number.MAX_SAFE_INTEGER,(a[t]??0)+1);return a[t]=c,await T(i,`${JSON.stringify({minute:s,counts:a})}
|
|
113
|
+
`),Math.min(1,(10/c)**2)}catch{return 1}}function Dy(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))Fn.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]="e8df9616-905b-5acf-a3a2-6837d52e23bf")}catch{}})();var Fy=O.join("runtime","telemetry","events.jsonl"),jy=O.join("runtime","telemetry","state.json"),zy=O.join("runtime","telemetry","otel-spans.jsonl"),Uy=8,Fc=500,er=1,jc=1,Vy=100,Hy=36e5,qy=3e4,zc=2e4,By=1e3,Wy=25e3,ti=250,Yy=864e5,tr=65536,Xc=6,Jc=20,Qc=15,Gy=8192,Zc=[25,50,100,200],Ky=3600*1e3,Xy=1440*60*1e3,ed=6e4,Jy=6e4,Qy="OTEL_EXPORTER_OTLP_TRACES_ENDPOINT",Zy="OTEL_EXPORTER_OTLP_ENDPOINT",eg="OTEL_SERVICE_NAME",tg="PM_TELEMETRY_OTEL_DISABLED",ng=new Set(["1","true","yes","on"]),rg="PM_TELEMETRY_INLINE_FLUSH",le="PM_TELEMETRY_FLUSH_CHILD",og="PM_TELEMETRY_HTTP_TIMEOUT_MS",ig=globalThis.fetch,Uc=!1,Yo=Promise.resolve(),Vc=Promise.resolve(),Jn=new WeakMap;var sg=new Set(["1","true","yes","on"]),ag=new Set(["claude-code","codex","pi","opencode","cursor","aider","gemini-cli","ci"]),nr=X.randomUUID(),cg=["token","secret","password","passwd","api_key","apikey","authorization","cookie","session","credentials","bearer"],dg=new Set(["literal","literals","regex","regexes","replacement","replacements","setjson","set_json","update"]),td="(?:token|secret|password|passwd|api[_-]?key|apikey|authorization|cookie|session|credentials|bearer|literals?|regex(?:es)?|replacements?)",lg=new RegExp(`\\b(${td})\\s*([:=])\\s*([^\\s,;]+)`,"giu"),ug=new RegExp(`(--${td})(=|\\s+)([^\\s,;]+)`,"giu"),mg=/(^|[\s"'`(=])\/(?:[^\s"'`),;]+)/g,fg=/bearer\s+[a-z0-9._=-]+/giu,pg=/\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 Vt(e,t=z().endpoint){return O.join(O.dirname(O.join(e,Fy)),jt("events.jsonl",t))}function Ht(e){return O.join(e,zy)}function _g(e){return O.dirname(Vt(e,null))}function nd(e,t=z().endpoint){return O.join(O.dirname(O.join(e,jy)),jt("state.json",t))}function ni(e){return O.join(e,"runtime","telemetry","flush.lock")}function rd(e){return O.join(e,"runtime","telemetry","flush.spawn.lock")}function hg(){return O.join(at(import.meta.url,["../../.."]),"dist","cli","telemetry-flush.js")}function yg(){return ie(process.env[rg])||ie(process.env[le])?!0:$n()}async function gg(e,t=z().endpoint){let n=await C(nd(e,t));if(!n||n.trim().length===0)return{};try{let r=JSON.parse(n);return typeof r!="object"||r===null||Array.isArray(r)?{}:r}catch{return{}}}async function Qn(e,t,n=z().endpoint){try{await ye(async()=>{let r={...await gg(e,n),...t},o=Object.fromEntries(Object.entries(r).filter(([,i])=>i!==void 0).sort((i,s)=>i[0].localeCompare(s[0])));await T(nd(e,n),`${JSON.stringify(o,null,2)}
|
|
114
|
+
`,{createParentDirectories:!ie(process.env[le])})},e)}catch{}}function Ko(e){let t=e.trim().toLowerCase().replaceAll("-","_").replaceAll(/[^a-z0-9_]+/g,"_"),n=t.split("_").filter(r=>r.length>0);return dg.has(t)||cg.some(r=>t===r||t.endsWith(`_${r}`)||n.includes(r))}function od(e){return e.replaceAll(lg,(t,n,r)=>`${n}${r}[redacted]`).replaceAll(ug,(t,n,r)=>`${n}${r}[redacted]`)}function id(e){return e.replaceAll(mg,(t,n)=>`${n}[redacted_path]`)}function sd(e){let t=e>=65&&e<=90,n=e>=97&&e<=122,r=e>=48&&e<=57;return t||n||r}function ad(e){if(!e)return!1;let t=e.charCodeAt(0);return sd(t)?!0:e==="."||e==="_"||e==="%"||e==="+"||e==="-"}function cd(e){if(!e)return!1;let t=e.charCodeAt(0);return sd(t)?!0:e==="."||e==="-"}function wg(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(!ad(i))return!1;for(let i of r)if(!cd(i))return!1;return!0}function bg(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&&ad(e[o]);)o-=1;o+=1;let i=r+1;for(;i<e.length&&cd(e[i]);)i+=1;let s=e.slice(o,i);if(wg(s)){t+=e.slice(n,o),t+="[redacted_email]",n=i;continue}t+=e.slice(n,r+1),n=r+1}return t}function dd(e){return bg(e).replaceAll(fg,"bearer [redacted_token]").replaceAll(pg,"[redacted_ip]")}function Eg(e){let t=dd(e),n=od(t),r=id(n),o=r.trim();return o.startsWith("/")&&o.length>1?"[redacted_path]":r.length>512?`${r.slice(0,509)}...`:r}function Sg(e){let t=dd(e),n=od(t),r=id(n),o=r.trim();return o.startsWith("/")&&o.length>1?"[redacted_path]":r.length>2048?`${r.slice(0,2045)}...`:r}function k(e,t="redacted"){return t==="max"?Sg(e):Eg(e)}function Pe(e,t,n="redacted",r=0){if(t&&Ko(t))return"[redacted]";if(e==null)return e;if(typeof e=="string")return k(e,n);if(typeof e=="number"||typeof e=="boolean")return e;if(r>=Xc)return"[depth_truncated]";if(Array.isArray(e))return e.slice(0,Jc).map(o=>Pe(o,void 0,n,r+1));if(typeof e=="object"){let o=e,i={};for(let[s,a]of Object.entries(o))i[s]=Pe(a,s,n,r+1);return i}return String(e)}function ld(e,t="redacted"){let n=[],r=!1;for(let o of e){let i=k(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);Ko(c)?n.push(`--${c}=[redacted]`):n.push(`--${c}=${k(d,t)}`);continue}if(Ko(s)){n.push(`--${s}`),r=!0;continue}}n.push(i)}return n}function vg(e){let t=e?.trim().toLowerCase();return t==="minimal"||t==="redacted"||t==="max"?t:"redacted"}function ie(e){return sg.has((e??"").trim().toLowerCase())}function Hc(){let e=process.env[og]?.trim();if(!e)return zc;let t=Number(e);return Number.isFinite(t)?Math.min(Wy,Math.max(By,Math.trunc(t))):zc}async function ud(e,t,n){let r=new URL(e);if(globalThis.fetch!==ig){let i=new AbortController,s,a=new Promise((c,d)=>{s=setTimeout(()=>{i.abort(),d(new Error("telemetry_http_timeout"))},Hc())});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:"?$y:r.protocol==="http:"?Py:void 0;if(!o)throw new Error(`telemetry_http_protocol_unsupported_${r.protocol}`);return new Promise((i,s)=>{let a=Hc(),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 md(e){let t=typeof e=="string"?e.trim():"";return t.length>0?t:"0.0.0"}function ri(e){let t=e?.trim();return t&&t.length>0?t:void 0}function oi(e,t){return Number.isFinite(e)?Math.max(0,Math.trunc(e)):t?0:1}function fd(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?Bt(e.errorCode):"unknown"}function pd(e){let t=Xe(e);return t.source_context_source==="env_override_rejected"&&!Uc&&!e.quiet&&(Uc=!0,process.stderr.write(`[pm] warning: PM_TELEMETRY_SOURCE_CONTEXT is not one of ${Pn.join("|")}; ignoring override.
|
|
115
|
+
`)),t}function F(e,t){return X.createHash("sha256").update(`${e}:${t}`).digest("hex")}function ii(e,t){let n=(gr()??"").trim(),r=Ni({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?ag.has(r.harness)?r.harness:"other":"none",ci:ie(process.env.CI),...n.length>0?{author_context_hash:F(t,n)}:{},...r.harness?{agent_harness_hash:F(t,r.harness)}:{},...r.model?{agent_model_hash:F(t,r.model)}:{},...r.model_source?{agent_model_source:r.model_source}:{}}}function Xo(e,t=0){if(e==null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;if(t>=Xc)return"[depth_truncated]";if(Array.isArray(e))return e.slice(0,Jc).map(n=>Xo(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]=Xo(n[i],t+1);return r}return String(e)}function Jo(e,t){return F(e,JSON.stringify(Xo(t)))}function _d(e,t){return{hashes:t.map(n=>F(e,n)),digest:F(e,t.join("\0"))}}function hd(e,t,n,r){let o=k(typeof r=="string"?r:"","redacted"),i=typeof n=="string"&&n.length>0?n:"unknown_error",s=`${t}\0${i}\0${o}`;return F(e,s)}function Tg(){if(ng.has((process.env[tg]??"").trim().toLowerCase()))return null;let e=(process.env[Qy]??"").trim();if(e.length>0)try{return new URL(e).toString()}catch{return null}let t=(process.env[Zy]??"").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 qc(e){let t=Date.parse(e),n=Number.isNaN(t)?Date.now():t;return`${BigInt(n)*1000000n}`}function V(e,t){return{key:e,value:{stringValue:t}}}function Ig(e,t){return{key:e,value:{boolValue:t}}}function Bc(e,t){return{key:e,value:{intValue:String(Math.max(0,Math.trunc(t)))}}}function Cg(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=k((process.env[eg]??"").trim()),a=s.length>0?s:"pm-cli",c=oi(t.exit_code,t.ok),d=ri(t.error_code),l=fd({ok:t.ok,errorCode:d,errorCategory:t.error_category}),u=[V("pm.command",k(e.command)),V("pm.version",e.pm_version),V("pm.source_context",e.source_context),V("pm.source_context_source",e.source_context_source),V("pm.installation_id",e.installation_id),V("pm.session_id",nr),V("pm.pm_root_hash",e.pm_root_hash),V("pm.cwd_hash",e.cwd_hash),Ig("pm.ok",t.ok),Bc("pm.exit_code",c),Bc("pm.duration_ms",r),V("pm.sample_rate",String(o))];typeof d=="string"&&u.push(V("pm.error_code",d)),typeof l=="string"&&u.push(V("pm.error_category",l)),typeof t.error=="string"&&t.error.trim().length>0&&u.push(V("pm.error",k(t.error)));let f={resourceSpans:[{resource:{attributes:[V("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.${k(e.command)}`,kind:1,startTimeUnixNano:qc(e.started_at),endTimeUnixNano:qc(n),attributes:u,status:{code:t.ok?1:2,message:t.ok?"":k(typeof t.error=="string"?t.error:"command_failed")}}]}]}]};return{endpoint:i,payload:f}}function Ag(e,t="redacted"){if(e==null)return{type:"nullish"};if(typeof e=="string")return{type:"string",value:k(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=>Pe(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=Pe(n[s],s,t);if(a===void 0)continue;let c=JSON.stringify(a).length;if(i+c>Gy){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 xg(e){let{captureLevel:t,context:n,pmVersion:r,sourceContext:o,pmRootHash:i,cwdHash:s,installationId:a}=e,c=De(n.command),d=_d(a,n.args),l=F(a,`${n.command}\0${n.args.join("\0")}`),u=Jo(a,n.options),f=Jo(a,n.global),_=ii(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:ld(n.args,t),command_args_hashes:d.hashes,command_args_digest:d.digest,command_invocation_digest:l,command_options:Pe(n.options,void 0,t),command_options_digest:u,global_options:Pe(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:F(a,ei.hostname()),stdin_tty:process.stdin.isTTY===!0,stdout_tty:process.stdout.isTTY===!0}}}function Rg(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:y}=e,g=o.ok===!1?hd(c,a,u,o.error):void 0,h=ii(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:y,ok:o.ok,exit_code:l,error_code:u,error_category:f,error:o.error?k(o.error,"redacted"):void 0,error_fingerprint:g,duration_ms:i,...h}:{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:y,...h,ok:o.ok,exit_code:l,error_code:u,error_category:f,error:o.error?k(o.error,t):void 0,error_fingerprint:g,duration_ms:i,started_at:s,result_summary:Ag(o.result,t)}}function kg(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:y,errorCategory:g,exitCode:h}=e,w=_d(f,c),b=F(f,o),I=Jo(f,d),A=hd(f,o,_,y),L=ii(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:b,attempted_args_digest:w.digest,attempted_options_digest:I,error_code:_,error_category:g,exit_code:h,error:k(y,"redacted"),error_fingerprint:A,...L}:{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,...L,attempted_command:k(o,t),attempted_command_digest:b,attempted_args:ld(c,t),attempted_args_hashes:w.hashes,attempted_args_digest:w.digest,attempted_options:Pe(d,void 0,t),attempted_options_digest:I,error_code:_,error_category:g,exit_code:h,error:k(y,t),error_fingerprint:A,pm_root_hash:l,cwd_hash:u,runtime:{node:process.version,platform:process.platform,arch:process.arch,hostname_hash:F(f,ei.hostname()),stdin_tty:process.stdin.isTTY===!0,stdout_tty:process.stdout.isTTY===!0}}}async function si(e){let t=await W(e);if(!t.telemetry.enabled||G().telemetry_disabled)return null;if(t.telemetry.installation_id.trim().length===0){if(vr(e)||ht(t))return null;t.telemetry.installation_id=X.randomUUID(),await yt(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:vg(t.telemetry.capture_level)}}async function Zn(e,t){let n=JSON.stringify({client_schema_version:jc,event:t,attempts:0});if(n.length>tr){let r={...t,payload:{...t.payload,result_summary:{truncated:!0,reason:"payload_size_exceeded",original_bytes:n.length}}};n=JSON.stringify({client_schema_version:jc,event:r,attempts:0})}await ar(Vt(e),n)}function yd(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 gd(e){let t=Math.min(qy*2**Math.max(e-1,0),Hy);return new Date(Date.now()+t).toISOString()}function ai(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 wd(e){return ai(e.next_attempt_after)}function bd(e){let t=Number.isFinite(e)?Math.max(1,Math.trunc(e)):1;return Date.now()-t*Yy}function Og(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 rr(e,t){let n=bd(t),r=[],o=0;for(let i of e){if(JSON.stringify(i).length>tr||Og(i,n)||i.attempts>=Qc){o+=1;continue}r.push(i)}return{entries:r,prunedCount:o}}async function Ed(e,t,n=z().endpoint){let r=t.map(i=>JSON.stringify(i)).join(`
|
|
117
|
+
`),o=r.length>0?`${r}
|
|
118
|
+
`:"";for(let i=0;;i+=1)try{await T(Vt(e,n),o,{createParentDirectories:!ie(process.env[le])});return}catch(s){let a=Zc[i];if(a===void 0||!Sd(s))throw s;await vd(a)}}function Sd(e){if(typeof e!="object"||e===null||!("code"in e))return!1;let t=e.code;return t==="EACCES"||t==="EBUSY"||t==="EPERM"}function vd(e){return new Promise(t=>{setTimeout(t,e)})}async function Dg(e,t){let n={id:X.randomUUID(),endpoint:t.endpoint,payload:t.payload,enqueued_at:$(),attempts:0},r=JSON.stringify(n);r.length>tr||await ar(Ht(e),r)}function Ng(e){let t=JSON.stringify([e.endpoint,e.enqueued_at,e.payload]);return X.createHash("sha256").update(t).digest("hex").slice(0,32)}function ci(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=Ng(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 di(e,t){let n=bd(t),r=[],o=0;for(let i of e){if(JSON.stringify(i).length>tr||Mg(i,n)||i.attempts>=Qc){o+=1;continue}r.push(i)}if(r.length>Fc){let i=r.length-Fc;return o+=i,{entries:r.slice(i),prunedCount:o}}return{entries:r,prunedCount:o}}async function Lg(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 T(Ht(e),r,{createParentDirectories:!ie(process.env[le])});return}catch(i){let s=Zc[o];if(s===void 0||!Sd(i))throw i;await vd(s)}}async function Wc(e,t,n,r){return ye(async()=>{let o=await C(Ht(e)),i=o===null?[]:ci(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}=di(s,t);return await Lg(e,a),a.length},e)}async function Pg(e,t){let n=await C(Ht(e));if(n===null||n.trim().length===0){await Qn(e,{pending_otel_spans:0},null);return}let r=ci(n),{entries:o,prunedCount:i}=di(r,t),s=o.filter(y=>ai(y.next_attempt_after)).slice(0,Uy);if(s.length===0){let y=i>0?await Wc(e,t,new Set,new Map):o.length;await Qn(e,{pending_otel_spans:y},null);return}let a=$(),c=new Set,d=new Map,l=0,u;await Promise.all(s.map(async y=>{try{let g=await ud(y.endpoint,{"content-type":"application/json"},JSON.stringify(y.payload));if(g<200||g>=300)throw new Error(`local_otel_export_http_${g}`);c.add(y.id),l+=1}catch(g){u=g instanceof Error?k(zn(g.message),"redacted"):"local_otel_export_failed";let h=y.attempts+1;d.set(y.id,{attempts:h,next_attempt_after:gd(h)})}}));let f=await Wc(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 Qn(e,_,null)}async function Td(e,t,n){try{await zg(e,t,n)}catch{}try{await Pg(e,n)}catch{}}async function $g(e,t=Ky,n=z().endpoint){try{let r=_g(e),o=await Ly(r,{withFileTypes:!0}),i=Date.now(),s=new Set([jt("events.jsonl",n),jt("state.json",n)]),a=c=>{if(!s.has(c))return/^\.events(?:\.[a-f0-9]{16})?\.jsonl\.\d+\.\d+\.[a-f0-9]+\.tmp$/.test(c)?i-Math.max(0,t):/^(?:events\.[a-f0-9]{16}\.jsonl|state\.[a-f0-9]{16}\.json)$/.test(c)?i-Xy:void 0};await Promise.all(o.map(async c=>{let d=c.isFile()?a(c.name):void 0;if(d===void 0)return;let l=O.join(r,c.name);(await Kc(l)).mtimeMs<d&&await Zo(l,{force:!0})}))}catch{}}async function ye(e,t=ue(process.cwd()),n=5e3){let r=Vc.catch(()=>{}).then(()=>xi(async()=>{let o=await Se(t,"telemetry-queue",60,"telemetry",!1,!1,n,{createParentDirectories:!ie(process.env[le])});try{return en(t),await e()}finally{await o()}}));return Vc=r.catch(()=>{}),r}async function or(e,t=z().endpoint){let n=await C(Vt(e,t));return n===null||n.trim().length===0?[]:yd(n)}async function Go(e,t,n,r=z().endpoint){return ye(async()=>{let o=await or(e,r),{entries:i}=rr(o,n),s=i.filter(a=>!t.has(a.event.event_id));return await Ed(e,s,r),s},e)}async function Fg(e,t,n,r,o=z().endpoint){return ye(async()=>{let i=await or(e,o),{entries:s}=rr(i,r),a=s.map(c=>{if(!t.has(c.event.event_id))return c;let d=c.attempts+1;return{...c,attempts:d,last_attempt_at:n,next_attempt_after:gd(d)}});return await Ed(e,a,o),a},e)}function jg(e,t){return t===null?e:jn(e)}async function zg(e,t,n){let r=z().endpoint;await $g(e,void 0,r);let o=(r??t).trim(),i=jg(o,r),s=h=>Qn(e,h,r);if(o.length===0)return;let a=await C(Vt(e,r));if(a===null||a.trim().length===0){await s({endpoint:i,queue_entries:0});return}let c=yd(a);if(c.length===0){await s({endpoint:i,queue_entries:0});return}let{entries:d,prunedCount:l}=rr(c,n);if(d.length===0){let h=await Go(e,new Set,n,r);await s({endpoint:i,queue_entries:h.length});return}let u=d.filter(h=>wd(h)).slice(0,Vy);if(u.length===0){let h=l>0?await Go(e,new Set,n,r):d;await s({endpoint:i,queue_entries:h.length});return}let f=new Set(u.map(h=>h.event.event_id)),_=$(),y={"content-type":"application/json"},g=process.env.PM_TELEMETRY_INGEST_KEY?.trim();g&&(y["x-pm-telemetry-key"]=g);try{let h=await ud(o,y,JSON.stringify({schema_version:er,events:u.map(w=>w.event)}));if(h<200||h>=300)throw new Error(`telemetry_flush_http_${h}`)}catch(h){let w=await Fg(e,f,_,n,r),b=h instanceof Error?k(zn(h.message),"redacted"):"telemetry_flush_failed";await s({endpoint:i,queue_entries:w.length,last_attempted_flush_at:_,last_failed_flush_at:_,last_failed_flush_error:b});return}try{let h=await Go(e,f,n,r);await s({endpoint:i,queue_entries:h.length,last_attempted_flush_at:_,last_successful_flush_at:_,last_failed_flush_at:void 0,last_failed_flush_error:void 0})}catch(h){let w=h instanceof Error?k(zn(h.message),"redacted"):"telemetry_flush_failed",b=await or(e,r).catch(()=>d);await s({endpoint:i,queue_entries:b.length,last_attempted_flush_at:_,last_failed_flush_at:_,last_failed_flush_error:w})}}async function Ug(e){let t=ni(e);ie(process.env[le])||await Wo(O.dirname(t),{recursive:!0});try{return await Wo(t),!0}catch(n){if(typeof n!="object"||n===null||!("code"in n)||n.code!=="EEXIST")throw n}try{let n=await Kc(t);return Date.now()-n.mtimeMs<ed?!1:(await Zo(t,{recursive:!0,force:!0}),await Wo(t),!0)}catch{return!1}}function Vg(e,t){try{return Date.now()-Gc(e).mtimeMs<t}catch{return!1}}function Id(e){try{My(e,{recursive:!0,force:!0})}catch{}}function Hg(e){if(typeof e!="object"||e===null||!("code"in e))return;let t=e.code;return typeof t=="string"?t:void 0}function qg(e){try{return Bo(e),!0}catch(t){if(Hg(t)==="EEXIST"||!P(t))return!1}try{return Bo(O.dirname(e),{recursive:!0}),Bo(e),!0}catch{return!1}}function Bg(e){if(Vg(ni(e),ed))return!1;let t=rd(e);try{if(Date.now()-Gc(t).mtimeMs<Jy)return!1;Id(t)}catch(n){if(!P(n))return!1}return qg(t)}function Qo(e){Id(rd(e))}async function Wg(e,t,n){let r=await Ug(e);if(Qo(e),!r)return!1;try{await Td(e,t,n)}finally{try{await Zo(ni(e),{recursive:!0,force:!0})}catch{}}return!0}async function Yc(e,t){let n=new Set;try{let{entries:r}=rr(await or(e),t);for(let o of r.filter(wd))n.add(`event:${o.event.event_id}`)}catch{}try{let r=await C(Ht(e));if(r!==null)for(let o of di(ci(r),t).entries)ai(o.next_attempt_after)&&n.add(`span:${o.id}`)}catch{}return n}function li(e,t,n){if(!vr(e)){if(yg())return Yo=Yo.then(()=>Td(e,t,n)),Yo;try{if(!Bg(e))return;let r=Ny(process.execPath,[hg()],{detached:!0,stdio:"ignore",cwd:ei.tmpdir(),env:{...process.env,PM_GLOBAL_PATH:e,[le]:"1"}});r.on("error",()=>{Qo(e)}),r.unref()}catch{Qo(e)}}}async function pI(e=ue(process.cwd())){if(!G().telemetry_disabled)try{await Sr(e,async()=>{let t=ie(process.env[le]),n=!0;for(;n;){if(!(await W(e)).telemetry.enabled)return;let r=await ye(()=>si(e),e);if(!r)return;let o=t?await Yc(e,r.retentionDays):new Set;if(!await Wg(e,r.endpoint,r.retentionDays)||!t)return;let i=await Yc(e,r.retentionDays);n=i.size>0&&(i.size!==o.size||[...i].some(s=>!o.has(s)))}},()=>ie(process.env[le]))}catch{}}async function Yg(e){if(G().telemetry_disabled||e.command==="telemetry"&&e.args.some(t=>t.trim().toLowerCase()==="clear"))return null;try{let t=ue(process.cwd());if(!(await W(t)).telemetry.enabled)return null;let n=e.global.noExtensions===!0||Ri(e.command),r=await ye(async()=>{let o=await si(t);if(!o)return null;let{installationId:i,endpoint:s,retentionDays:a,captureLevel:c}=o,d=md(e.pm_version),l=pd(e.global),u=F(i,e.pm_root),f=F(i,process.cwd()),_=Tg(),y=$(),g={schema_version:er,event_id:X.randomUUID(),event_type:"command_start",occurred_at:y,installation_id:i,session_id:nr,command:e.command,payload:xg({captureLevel:c,context:e,pmVersion:d,sourceContext:l,pmRootHash:u,cwdHash:f,installationId:i})},h=await $c(t,e.command,n);h===1&&await Zn(t,g);let w=De(e.command),b={...h<1?{sample_rate:h}:{},started_at:y,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 h<1&&Jn.set(b,g),b},t,ti);return r&&r.sample_rate===void 0&&li(t,r.endpoint,r.retention_days),r}catch{return null}}async function Gg(e,t){if(!(!e||G().telemetry_disabled))try{if(!await ye(async()=>{let n=await W(e.global_pm_root);if(G().telemetry_disabled||!n.telemetry.enabled||n.telemetry.installation_id!==e.installation_id)return Jn.delete(e),!1;let r=Jn.get(e),o=t.ok?e.sample_rate??1:1;if(r){if(Jn.delete(e),X.randomBytes(6).readUIntBE(0,6)/281474976710656>=o)return!1;r.payload.sample_rate=o,await Zn(e.global_pm_root,r)}let i=$(),s=Math.max(0,Date.now()-e.started_at_ms),a=ri(Lo({ok:t.ok,errorCode:t.error_code,errorMessage:t.error,exitCode:t.exit_code})),c=fd({ok:t.ok,errorCode:a,errorCategory:t.error_category}),d=oi(t.exit_code,t.ok),l=t.command_resolution??Qe({ok:t.ok,errorCode:a,errorCategory:c}),u=t.resolution_stage??"execute",f={schema_version:er,event_id:X.randomUUID(),event_type:"command_finish",occurred_at:i,installation_id:e.installation_id,session_id:nr,command:e.command,payload:{...r?{sample_rate:o}:{},...Rg({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 Zn(e.global_pm_root,f);let _=Cg(e,{...t,exit_code:d,error_code:a,error_category:c},i,s,o);return _&&await Dg(e.global_pm_root,_),!0},e.global_pm_root,ti))return;await li(e.global_pm_root,e.endpoint,e.retention_days)}catch{}}async function Kg(e){if(!G().telemetry_disabled)try{let t=ue(process.cwd());if(!(await W(t)).telemetry.enabled)return;let n=await ye(async()=>{let r=await si(t);if(!r)return null;let{installationId:o,captureLevel:i}=r,s=md(e.pm_version),a=pd(e.global),c=F(o,e.pm_root),d=F(o,process.cwd()),l=$(),u=ri(Lo({ok:!1,errorCode:e.error_code,errorMessage:e.error_message,exitCode:e.exit_code})),f=e.error_category??Bt(u),_=oi(e.exit_code,!1),y=e.command.trim().length>0?e.command:"<unknown>",g=De(y),h=e.command_resolution??Qe({ok:!1,errorCode:u,errorCategory:f}),w=e.resolution_stage??"unknown",b={schema_version:er,event_id:X.randomUUID(),event_type:"command_error",occurred_at:l,installation_id:o,session_id:nr,command:k(y,"redacted"),payload:kg({captureLevel:i,pmVersion:s,sourceContext:a,command:y,commandTaxonomy:g,commandResolution:h,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 Zn(t,b),r},t,ti);n&&await li(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]="79bb744c-f468-5333-b39a-552bf8639096")}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 Ux(e){let t=e?.trim()??"";return/^[A-Za-z][A-Za-z0-9+.-]*:\/\//u.test(t)||/^(?:github|gitlab|jira|linear):/iu.test(t)}function Vx(e){let t=e?.trim().toLowerCase();return t==="global"||t==="external"}export{Od as a,Cr as b,Ui as c,Dd as d,ew as e,ji as f,rn as g,qi as h,Bi as i,Md as j,Ld as k,Pd as l,$d as m,Rr as n,Bd as o,iw as p,Wd as q,sw as r,bt as s,Gd as t,Et as u,aw as v,Kd as w,on as x,cw as y,Ue as z,Jd as A,Qd as B,pw as C,Or as D,_w as E,hw as F,St as G,yw as H,Xi as I,cl as J,Dw as K,ll as L,ml as M,pl as N,_l as O,$w as P,yl as Q,sn as R,vt as S,Sl as T,Cl as U,Hw as V,Dl as W,Bw as X,Nl as Y,Ml as Z,Ww as _,Nr as $,as as aa,jl as ba,Mr as ca,zl as da,cn as ea,ds as fa,Gl as ga,us as ha,Ve as ia,de as ja,Zl as ka,Tb as la,tu as ma,fs as na,nu as oa,ru as pa,iu as qa,su as ra,au as sa,Lb as ta,lu as ua,Ub as va,pu as wa,hu as xa,yu as ya,gu as za,wu as Aa,$r as Ba,Su as Ca,Xb as Da,Jb as Ea,Qb as Fa,Zb as Ga,eE as Ha,tE as Ia,nE as Ja,Cu as Ka,Au as La,xu as Ma,Ru as Na,ku as Oa,Ou as Pa,He as Qa,Os as Ra,sm as Sa,vE as Ta,Tt as Ua,_m as Va,Fs as Wa,Ur as Xa,js as Ya,DE as Za,ym as _a,wm as $a,bm as ab,Em as bb,Sm as cb,Vr as db,KE as eb,oS as fb,iS as gb,sS as hb,aS as ib,cS as jb,dS as kb,lS as lb,Kr as mb,Jr as nb,GS as ob,gS as pb,wS as qb,bS as rb,ta as sb,Um as tb,io as ub,NS as vb,so as wb,Dt as xb,We as yb,Nt as zb,Af as Ab,fa as Bb,xf as Cb,Iv as Db,lo as Eb,pa as Fb,Lf as Gb,Cv as Hb,Pf as Ib,$f as Jb,Dv as Kb,An as Lb,Ea as Mb,mo as Nb,Xf as Ob,Jf as Pb,Lv as Qb,Sa as Rb,Ye as Sb,fo as Tb,_o as Ub,Dn as Vb,Yv as Wb,vo as Xb,Mn as Yb,Ra as Zb,Ln as _b,To as $b,Io as ac,Co as bc,Ao as cc,La as dc,Pa as ec,Oa as fc,Yp as gc,Pn as hc,Xe as ic,jt as jc,Xp as kc,jn as lc,_T as mc,G as nc,ke as oc,n_ as pc,Wa as qc,Ya as rc,Ga as sc,i_ as tc,ST as uc,d_ as vc,vT as wc,TT as xc,zt as yc,pc as zc,K_ as Ac,Ut as Bc,PT as Cc,$T as Dc,X_ as Ec,J_ as Fc,FT as Gc,jT as Hc,Qe as Ic,ch as Jc,dh as Kc,lh as Lc,uh as Mc,_h as Nc,hh as Oc,gh as Pc,$h as Qc,bc as Rc,jh as Sc,zh as Tc,Uh as Uc,t0 as Vc,jo as Wc,Sc as Xc,Ec as Yc,qh as Zc,Bh as _c,vc as $c,Gh as ad,Qh as bd,ey as cd,ny as dd,ry as ed,ay as fd,dy as gd,ly as hd,Xn as id,wy as jd,by as kd,ky as ld,er as md,Qc as nd,ye as od,pI as pd,Yg as qd,Gg as rd,Kg as sd,Ux as td,Vx as ud};
|
|
122
|
+
//# sourceMappingURL=chunk-5GWEY4P6.js.map
|