@unbrained/pm-cli 2026.8.8 → 2026.8.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +19 -0
- package/dist/cli-bundle/bundle-manifest.json +154 -154
- package/dist/cli-bundle/chunks/chunk-2DTCZXSD.js +13 -0
- package/dist/cli-bundle/chunks/{chunk-ALDHXLPS.js → chunk-5JO6R4BS.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-5KN4DZYV.js +194 -0
- package/dist/cli-bundle/chunks/chunk-EF43KODO.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-NUXRRNAB.js → chunk-GMX5YOI3.js} +25 -25
- package/dist/cli-bundle/chunks/chunk-HUV2Z7IS.js +28 -0
- package/dist/cli-bundle/chunks/{chunk-SQ7QZFQ6.js → chunk-MHBVCUF2.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-PYO5GZU6.js +5 -0
- package/dist/cli-bundle/chunks/{chunk-CBLA33YK.js → chunk-RJC7TPF4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2ZMXX3Q6.js → chunk-YC3UF2IO.js} +64 -64
- package/dist/cli-bundle/chunks/{register-list-query-WFZAMJHZ.js → register-list-query-BUE7PTCU.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-SOKKOTHQ.js → register-mutation-FC3XLVIK.js} +2 -2
- package/dist/cli-bundle/chunks/{register-operations-5XQETS6E.js → register-operations-YH2WAOXU.js} +2 -2
- package/dist/cli-bundle/chunks/{register-setup-2HL5ZHMK.js → register-setup-UQDTNTLJ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-2VVP5RAA.js +153 -0
- package/dist/cli-bundle/focused-chunks/{chunk-IAS7PMLG.js → chunk-3GSFUDAI.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-3WVHTUAW.js +5 -0
- package/dist/cli-bundle/focused-chunks/chunk-4H6MVCK3.js +16 -0
- package/dist/cli-bundle/focused-chunks/{chunk-ZOLDTUU7.js → chunk-54TZJ4BM.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-YKPE4PPY.js → chunk-5NK5TJ5D.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-ANTMGYLI.js → chunk-6DO4YQWZ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-73FIJONU.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-PL2EYDJK.js → chunk-C3GCHDSQ.js} +29 -27
- package/dist/cli-bundle/focused-chunks/{chunk-U646T7Z6.js → chunk-JGRSQZJT.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{chunk-YSAHYUXX.js → chunk-KNEHLPBF.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-MRWVJ3ZG.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-NL57J7BZ.js +4 -0
- package/dist/cli-bundle/focused-chunks/{chunk-DMKOMTTY.js → chunk-P6BBIQRG.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-GWI6YIKJ.js → chunk-PZAGVQNN.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-QDAO3XEK.js +14 -0
- package/dist/cli-bundle/focused-chunks/{chunk-SM2PJGP3.js → chunk-T4IGQCSY.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-U46GQJNY.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-TCSAPH33.js → chunk-VRXJSGIT.js} +6 -6
- package/dist/cli-bundle/focused-chunks/{chunk-FI6DWU2M.js → chunk-XC2ZW3CJ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-ZG54B4XG.js +2 -0
- 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 +29 -29
- 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 +1 -1
- 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 +2 -2
- package/dist/core/diagnostics/remediation.js +12 -2
- package/dist/core/history/history.js +13 -4
- package/dist/core/item/actionability.d.ts +7 -1
- package/dist/core/item/actionability.js +71 -15
- package/dist/core/shared/author.d.ts +25 -0
- package/dist/core/shared/author.js +114 -9
- package/dist/sdk/actionability.d.ts +1 -1
- package/dist/sdk/actionability.js +3 -3
- package/dist/sdk/cli-contracts/runtime-contracts.d.ts +8 -0
- package/dist/sdk/cli-contracts/runtime-contracts.js +17 -2
- package/dist/sdk/core-governance.d.ts +1 -1
- package/dist/sdk/core-governance.js +3 -3
- package/dist/sdk/dependencies.d.ts +2 -0
- package/dist/sdk/dependencies.js +7 -6
- package/dist/sdk/extension/bundled-catalog.js +19 -6
- package/dist/sdk/generated-error-code-catalog.js +38 -2
- package/dist/sdk/governance/health.js +29 -10
- package/dist/sdk/governance/provenance-health.d.ts +26 -0
- package/dist/sdk/governance/provenance-health.js +139 -0
- package/dist/sdk/governance/validate.js +13 -8
- package/dist/sdk/governance.d.ts +1 -0
- package/dist/sdk/governance.js +3 -2
- package/dist/sdk/graph/assembly.d.ts +4 -0
- package/dist/sdk/graph/assembly.js +22 -2
- package/dist/sdk/graph/run.d.ts +2 -0
- package/dist/sdk/graph/run.js +3 -2
- package/dist/sdk/lifecycle/close.js +13 -8
- package/dist/sdk/lifecycle/create.js +6 -12
- package/dist/sdk/lifecycle/plan.js +6 -3
- package/dist/sdk/lifecycle/update.js +6 -20
- package/dist/sdk/merge/driver.d.ts +2 -1
- package/dist/sdk/merge/driver.js +7 -4
- package/dist/sdk/merge/install.js +3 -3
- package/dist/sdk/merge/receipts.d.ts +14 -1
- package/dist/sdk/merge/receipts.js +36 -8
- package/dist/sdk/merge/reconcile.js +21 -4
- package/dist/sdk/merge/three-way.d.ts +6 -2
- package/dist/sdk/merge/three-way.js +24 -10
- package/dist/sdk/query/get.d.ts +11 -0
- package/dist/sdk/query/get.js +37 -3
- package/dist/sdk/read-output-contracts.d.ts +1 -1
- package/dist/sdk/read-output-contracts.js +23 -4
- package/dist/sdk/relationship-kinds/contract.d.ts +48 -0
- package/dist/sdk/relationship-kinds/contract.js +22 -0
- package/dist/sdk/relationships.d.ts +6 -41
- package/dist/sdk/relationships.js +12 -126
- package/dist/sdk/runtime-primitives.d.ts +1 -1
- package/dist/sdk/runtime-primitives.js +3 -3
- package/dist/sdk/similarity.d.ts +5 -0
- package/dist/sdk/similarity.js +40 -10
- package/dist/sdk/structured-mutations.js +5 -2
- package/dist/sdk/test/linked-command-detection.d.ts +2 -7
- package/dist/sdk/test/linked-command-detection.js +22 -9
- package/docs/AGENT_GUIDE.md +2 -1
- package/docs/COMMANDS.md +19 -1
- package/docs/DEPENDENCY_KIND_CONTRACT.md +29 -0
- package/docs/ITEM_READ_PROJECTIONS.md +26 -0
- package/docs/MERGE_SAFETY.md +10 -3
- package/docs/RELATIONSHIP_GRAPH.md +1 -1
- package/docs/SDK_AGENT_SESSION_CONTEXT.md +35 -2
- package/docs/SDK_CONTEXT_INTEGRITY.md +16 -1
- package/docs/SENTRY_CONTRACT_EPOCHS.md +20 -0
- package/docs/agent-task-token-baseline.json +2 -2
- package/marketplace.json +2 -2
- package/package.json +1 -1
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/sdk/public-surface.json +231 -27
- package/dist/cli-bundle/chunks/chunk-GKA54IJM.js +0 -5
- package/dist/cli-bundle/chunks/chunk-KRY7SRUO.js +0 -2
- package/dist/cli-bundle/chunks/chunk-MNJ4NNSY.js +0 -26
- package/dist/cli-bundle/chunks/chunk-OJPCFDDY.js +0 -13
- package/dist/cli-bundle/chunks/chunk-PFSD3DAN.js +0 -194
- package/dist/cli-bundle/focused-chunks/chunk-54EU2UVO.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-5FLBTZJQ.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-5GJ57YKN.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-CMDS3KYT.js +0 -14
- package/dist/cli-bundle/focused-chunks/chunk-F5B3HBEZ.js +0 -5
- package/dist/cli-bundle/focused-chunks/chunk-FNOKJG6N.js +0 -16
- package/dist/cli-bundle/focused-chunks/chunk-FPDYXZBK.js +0 -4
- package/dist/cli-bundle/focused-chunks/chunk-HCUC62AB.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-HGNKPSCB.js +0 -153
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
import{D as Cr,Da as ze,Fa as Ue,Ga as He,I as yt,Ia as zr,Ja as Ur,Ka as Hr,La as Wr,M as mn,Ma as qr,N as _n,Na as Br,O as pn,P as $e,Pa as ht,Q as Ar,W as Nr,X as Rr,a as br,h as _t,o as Tr,oa as Dr,p as pt,pa as Mr,q as _e,qa as Lr,r as W,ra as Pr,s as Fe,sa as jr,ta as Fr,ua as $r,x as Or}from"./chunk-FPDYXZBK.js";import{C as ft,D as mt,E as fn,G as Ir,R as me,S as re,T as xr,W as b,X as je,Y as I,Z as T,aa as G,ba as ke,ca as pe,da as E,n as dt,o as wr,p as Er,q as kr,r as Sr,v as lt,w as ut,x as vr}from"./chunk-54EU2UVO.js";import{AsyncLocalStorage as ys}from"node:async_hooks";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="16109ee9-e684-5d25-a5f4-30a6c4f62bd5")}catch{}})();var yn=new ys,Vr=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function gt(e,t){let n=typeof e=="string"?e.trim():"";return n.length>0?n.slice(0,t):void 0}function ye(e,t){if(e===void 0)return;let n=typeof e=="object"&&e!==null?e:{},r=gt(n.id,128),o=gt(n.parent_id,128);if(r===void 0||!Vr.test(r)||o!==void 0&&!Vr.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=gt(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function Se(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=gt(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function hs(e,t,n){let r=yn.getStore(),o=Se({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=ye(t.PM_AGENT_EPISODE_ID===void 0?void 0:{id:t.PM_AGENT_EPISODE_ID,label:t.PM_AGENT_EPISODE_LABEL,parent_id:t.PM_AGENT_EPISODE_PARENT_ID},!1),s={...Se(r?.provenance),...o,...Se(e?.provenance)},a=ye(e?.episode,!1)??ye(n,!1)??i??ye(r?.episode,!1);return Object.keys(s).length===0&&a===void 0?void 0:{...Object.keys(s).length===0?{}:{provenance:s},...a===void 0?{}:{episode:a}}}function Gr(e,t){return hs(e.session_context,t,e.client_info?.episode)??{}}function zu(e,t){let n=yn.getStore(),r=ye(e.episode,!0),o=ye(n?.episode,!1),i=r!==void 0&&r.parent_id===void 0&&o!==void 0?{...r,parent_id:o.id}:r,s={...Se(n?.provenance),...Se(e.provenance)};return yn.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function Uu(e){let t=Se(e.provenance),n=ye(e.episode,!0);return{...n===void 0?{}:{PM_AGENT_EPISODE_ID:n.id,...n.label===void 0?{}:{PM_AGENT_EPISODE_LABEL:n.label},...n.parent_id===void 0?{}:{PM_AGENT_EPISODE_PARENT_ID:n.parent_id}},...t.role===void 0?{}:{PM_AGENT_SESSION_ROLE:t.role},...t.topic===void 0?{}:{PM_AGENT_SESSION_TOPIC:t.topic}}}import{AsyncLocalStorage as bn}from"node:async_hooks";import{createHash as gs}from"node:crypto";import bt from"node:fs";import bs from"node:os";import Xr 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]="0139d8ef-d286-571f-89f8-7de2f8422f22")}catch{}})();var Jr=["model","effort","role","topic","version"],wt=new bn,Yr=new bn,wn=new bn,ws=[{harness:"claude-code",environment_keys:["CLAUDE_CODE","CLAUDECODE"],model_environment_keys:["ANTHROPIC_MODEL","CLAUDE_MODEL"],session_environment_keys:["CLAUDE_CODE_SESSION_ID"],provenance_environment_keys:{effort:["CLAUDE_EFFORT"],role:["CLAUDE_CODE_CHILD_SESSION"]},provenance_resolvers:{model:"claude_session_file",version:"claude_session_file"},provenance_unavailable_dimensions:["topic"],argv_markers:["claude","claude-code"],client_names:["claude","claude-code","claude code"]},{harness:"codex",environment_keys:["CODEX_HOME","CODEX_CI","CODEX_THREAD_ID"],model_environment_keys:["CODEX_MODEL"],session_environment_keys:["CODEX_THREAD_ID"],provenance_environment_keys:{effort:["CODEX_REASONING_EFFORT","CODEX_EFFORT"],role:["CODEX_SESSION_ROLE"]},provenance_resolvers:{version:"ai_agent_version"},provenance_unavailable_dimensions:["topic"],argv_markers:["codex"],client_names:["codex"]},{harness:"pi",environment_keys:["PI_AGENT","PI_CODING_AGENT"],model_environment_keys:["PI_MODEL"],session_environment_keys:["PI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["pi"],client_names:["pi"]},{harness:"opencode",environment_keys:["OPENCODE","OPENCODE_SESSION_ID"],model_environment_keys:["OPENCODE_MODEL"],session_environment_keys:["OPENCODE_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["opencode"],client_names:["opencode"]},{harness:"cursor",environment_keys:["CURSOR_AGENT","CURSOR_TRACE_ID"],model_environment_keys:["CURSOR_MODEL"],session_environment_keys:["CURSOR_TRACE_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["cursor"],client_names:["cursor"]},{harness:"aider",environment_keys:["AIDER","AIDER_MODEL"],model_environment_keys:["AIDER_MODEL"],session_environment_keys:["AIDER_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["aider"],client_names:["aider"]},{harness:"gemini-cli",environment_keys:["GEMINI_CLI","GEMINI_CLI_HOME"],model_environment_keys:["GEMINI_MODEL"],session_environment_keys:["GEMINI_CLI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["gemini","gemini-cli"],client_names:["gemini","gemini-cli","gemini cli"]},{harness:"ci",environment_keys:["CI","GITHUB_ACTIONS","BUILDKITE","GITLAB_CI"],provenance_unavailable_dimensions:["model","effort","role","topic"],argv_markers:[],client_names:[]}],ve=new Map,hn=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function $(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function he(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function Et(e){let t=e.harness.trim().toLowerCase();if(!hn.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:he(e.environment_keys),model_environment_keys:he(e.model_environment_keys),session_environment_keys:he(e.session_environment_keys),provenance_environment_keys:Object.fromEntries(Object.entries(e.provenance_environment_keys??{}).slice(0,32).map(([n,r])=>[n.trim().toLowerCase().slice(0,64),he(r)]).filter(([n])=>hn.test(n))),provenance_resolvers:Object.fromEntries(Object.entries(e.provenance_resolvers??{}).slice(0,32).map(([n,r])=>[n.trim().toLowerCase().slice(0,64),r]).filter(n=>typeof n[0]=="string"&&hn.test(n[0])&&(n[1]==="ai_agent_version"||n[1]==="claude_session_file"))),provenance_unavailable_dimensions:he(e.provenance_unavailable_dimensions).map(n=>n.toLowerCase()),argv_markers:he(e.argv_markers).map(n=>n.toLowerCase()),client_names:he(e.client_names).map(n=>n.toLowerCase())}}var Qr=ws.map(Et);function Es(e,t){return JSON.stringify(e)===JSON.stringify(t)}function Kr(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function Zr(e=[]){let t=[...Qr,...[...ve.values()].map(r=>r.descriptor),...wn.getStore()?.descriptors??[],...e.map(Et)],n=new Set;for(let r of t){if(n.has(r.harness))throw new Error(`Harness signal descriptor collision for "${r.harness}"`);n.add(r.harness)}return t}function eo(e,t){for(let n of t??[]){let r=$(e[n]);if(r)return r.slice(0,256)}}function ks(e,t){let n=t==="model"?["--model","--agent-model"]:[`--agent-${t}`],r=e.slice(0,8);for(let o=0;o<r.length;o+=1){let i=r[o].slice(0,512);if(n.includes(i))return $(r[o+1])?.slice(0,256);let s=n.find(a=>i.startsWith(`${a}=`));if(s)return $(i.slice(s.length+1))?.slice(0,256)}}function gn(e,t){return $(e?.[t])?.slice(0,256)}var Ss=1048576;function vs(e,t){if(e.length===0||e.length>262144)return;let n;try{n=JSON.parse(e)}catch{return}if(typeof n!="object"||n===null)return;let r=n,o=typeof r.message=="object"&&r.message!==null?r.message:void 0,i=t==="model"?o?.model:r.version;return $(i)?.slice(0,256)}function Is(e,t,n){let r=$(n.CLAUDE_CODE_SESSION_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let i=Xr.resolve(t.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),s=Xr.join(t.home_dir??bs.homedir(),".claude","projects",i,`${r}.jsonl`);try{let a=bt.openSync(s,"r");try{let d=bt.fstatSync(a).size,l=Math.min(d,Ss),m=Buffer.alloc(l);bt.readSync(a,m,0,l,Math.max(0,d-l));let f=m.toString("utf8").split(`
|
|
2
|
-
`).reverse();for(let h of f.slice(0,4096)){let _=vs(h,e);if(_)return _}return}finally{bt.closeSync(a)}}catch{return}}function xs(e,t,n,r){let o=wn.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes($(n.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let s=r?.provenance_resolvers[e];if(s==="claude_session_file")return Is(e,t,n);if(s==="ai_agent_version"){let a=$(n.AI_AGENT);return a?/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(a)?.[1]?.slice(0,256):void 0}}function to(e){return e||(Yr.getStore()??{env:process.env,argv:process.argv})}function Ts(e,t,n,r){let o=e.environment_keys.some(a=>$(t[a])!==void 0),i=e.argv_markers.some(a=>n.some(d=>{let l=d.replaceAll("\\","/");return Kr(l.slice(l.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||Kr(r,a));return o||i||s}function Os(e,t,n,r,o){let i=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,s=new Set([...Jr,...Object.keys(r?.provenance_environment_keys??{})]),a,d;s.has(e)&&(a=$(n[i])?.slice(0,256),d=ks(t.argv??[],e));let l={...r?.provenance_environment_keys,model:r?.model_environment_keys},m={...t.client_info?.provenance,model:t.client_info?.model},f=[a,gn(o?.provenance,e),eo(n,l[e]),gn(m,e),gn(t.provenance,e),d,xs(e,t,n,r)];return["override","session","environment","mcp_client","host","argv","probe"].map((S,v)=>({value:f[v],source:S})).find(S=>S.value!==void 0)}function Cs(e,t,n,r){let o=Object.keys(n?.provenance_environment_keys??{}),i=new Set([...Jr,...o,...Object.keys(n?.provenance_resolvers??{}),...Object.keys(e.provenance??{}),...Object.keys(e.client_info?.provenance??{}),...Object.keys(r?.provenance??{})]),s={};for(let a of i){let d=Os(a,e,t,n,r);d?s[a]=d:n&&(a!=="version"||n.provenance_unavailable_dimensions.includes(a))&&(s[a]=null)}return s}function Ku(e){let t=e.map(Et),n=new Map(Qr.map(i=>[i.harness,i])),r=new Set;for(let i of t){if(r.has(i.harness)||n.has(i.harness))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);let s=ve.get(i.harness);if(s&&!Es(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=ve.get(i.harness);ve.set(i.harness,{descriptor:i,registrations:(s?.registrations??0)+1})}let o=!0;return()=>{if(o){o=!1;for(let i of t){let s=ve.get(i.harness);!s||s.registrations<=1?ve.delete(i.harness):s.registrations-=1}}}}function Ju(e,t){return Yr.run(e,t)}function Yu(e,t,n={}){let r=e.map(Et);return Zr(r),wn.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function no(e){let t=to(e),n=t.env??{},r=Zr(t.descriptors),o=[...(t.argv??[]).slice(0,3),...t.process_labels??[]].slice(0,64).map(_=>_.slice(0,512)),i=t.client_info?.name.trim().toLowerCase()??"",s=r.find(_=>Ts(_,n,o,i)),a=Gr(t,n),d=Cs(t,n,s,a),l=d.model,m=[eo(n,s?.session_environment_keys),$(t.client_info?.session)?.slice(0,256)].find(_=>_!==void 0),f=s?.harness&&m?gs("sha256").update(`pm-agent-instance:v1\0${s.harness}\0${m}`).digest("hex").slice(0,24):void 0,h=[["harness",s?.harness],["model",l?.value],["model_source",l?.source],["session",m],["instance",f],["provenance",Object.keys(d).length>0?d:void 0],["episode",a.episode]];return Object.fromEntries(h.filter(_=>_[1]!==void 0))}function Qu(){return process.env.PM_AUTHOR}function Zu(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function ef(e){return no(e).harness}function As(e,t,n){let r=to(n),o=no(r);if(e!==void 0){let s=$(e);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}if(r.env?.PM_AUTHOR!==void 0){let s=$(r.env.PM_AUTHOR);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}let i=$(t);return i?{author:i,source:"configured",...o}:o.harness?{author:`harness:${o.harness}`,source:"detected",...o}:{author:"unknown",source:"unknown",...o}}function ro(e){let t=wt.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function oo(e){let t=wt.getStore();return t?.author!==e?e.startsWith("harness:")?{harness:e.slice(8)}:{}:{...t.harness?{harness:t.harness}:{},...t.model?{model:t.model}:{},...t.model_source?{model_source:t.model_source}:{},...t.session?{session:t.session}:{},...t.instance?{instance:t.instance}:{},...t.provenance?{provenance:t.provenance}:{},...t.episode?{episode:t.episode}:{}}}function io(e){let t=wt.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function so(e,t){let n=As(e,t);return wt.enterWith(n),n.author}import Ns from"node:crypto";import{AsyncLocalStorage as Rs}from"node:async_hooks";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cc84ae55-6dc4-57d4-b7de-c43ae1fb4603")}catch{}})();var co=new Rs,ao=1024;function lo(){let e=co.getStore();if(e===void 0)return;let t=new Date(Date.parse(e.clock)+e.clockReads*e.tickMs).toISOString();return e.clockReads+=1,t}function uo(e){let t=co.getStore();if(t===void 0)return;if(!Number.isSafeInteger(e)||e<0||e>ao)throw new Error(`Reproducible token length must be an integer between 0 and ${ao}`);let n="";for(;n.length<e;){let r=Ns.createHash("sha256").update(`${t.seed}\0${t.tokenReads}`).digest();t.tokenReads+=1;for(let o of r)if(n+=(o%36).toString(36),n.length===e)break}return n}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="6be1497f-a0d5-518b-bf6a-e549b18fad8a")}catch{}})();var Ds=/^([+-]?)(\d+)([hdwm])$/i,Ms=/^[+-]?\d+[hdwm](?:[+-]\d+[hdwm])+$/i,Ls=/^(\d{4})(\d{2})(\d{2})$/,Ps=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,js=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})-(\d{2})(?:-(\d{2}))?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,Fs=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i;function ge(){return lo()??new Date().toISOString()}function oe(e){return Number.isFinite(Date.parse(e))}var $s=1e4,kt=new Map;function fo(e){let t=kt.get(e);if(t!==void 0)return t;let n=Date.parse(e);return kt.size>=$s&&ht(kt),kt.set(e,n),n}function j(e,t){let n=fo(e),r=fo(t);return Number.isFinite(n)&&Number.isFinite(r)&&n!==r?n-r:e.localeCompare(t)}function lf(e,t){return!(t.deadlineBefore&&(!e.deadline||j(e.deadline,t.deadlineBefore)>0)||t.deadlineAfter&&(!e.deadline||j(e.deadline,t.deadlineAfter)<0)||t.updatedAfter&&j(e.updated_at,t.updatedAfter)<0||t.updatedBefore&&j(e.updated_at,t.updatedBefore)>0||t.createdAfter&&j(e.created_at,t.createdAfter)<0||t.createdBefore&&j(e.created_at,t.createdBefore)>0)}function En(e){return e?`.${e.slice(1).padEnd(3,"0").slice(0,3)}`:""}function kn(e){if(!e)return"";if(e.toUpperCase()==="Z")return"Z";let t=/^([+-]\d{2})(\d{2})$/.exec(e);return t?`${t[1]}:${t[2]}`:e}function zs(e,t,n){n&&n!==t&&(e.includes(n)||e.push(n))}function Us(e){let t=[],n=l=>zs(t,e,l),r=Ls.exec(e);if(r){let[,l,m,f]=r;n(`${l}-${m}-${f}`)}let o=Ps.exec(e);if(o){let[,l,m,f,h,_,S,v,w]=o,N=S?`:${S}`:"";n(`${l}-${m}-${f}T${h}:${_}${N}${En(v)}${kn(w)}`)}let i=js.exec(e);if(i){let[,l,m,f,h,_,S]=i,v=h?`:${h}`:"";n(`${l}T${m}:${f}${v}${En(_)}${kn(S)}`)}let s=Fs.exec(e);if(s){let[,l,m,f,h,_,S]=s,v=h?`:${h}`:"";n(`${l}T${m}:${f}${v}${En(_)}${kn(S)}`)}let a=10,d=e.slice(0,a);if(Ws(d)){let l=a;for(;l<e.length&&qs(e[l]);)l+=1;l<e.length&&n(`${d}T${e.slice(l)}`)}return t}function Hs(e){let t=Date.parse(e);if(Number.isFinite(t))return t;for(let n of Us(e)){let r=Date.parse(n);if(Number.isFinite(r))return r}return Number.NaN}function Ws(e){if(e.length!==10)return!1;for(let t=0;t<e.length;t+=1){let n=e[t];if(t===4||t===7){if(n!=="-")return!1;continue}let r=n.charCodeAt(0);if(r<48||r>57)return!1}return!0}function qs(e){return e?e===" "||e===" "||e===`
|
|
3
|
-
`||e==="\r"||e==="\f"||e==="\v":!1}function mo(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}var Bs=["January","February","March","April","May","June","July","August","September","October","November","December"],Vs=/^(\d{4})-(\d{2})-(\d{2})/,Gs=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/;function Xs(e,t,n){let r=Vs.exec(t)??Gs.exec(t);if(!r)return;let o=Number.parseInt(r[1],10),i=Number.parseInt(r[2],10),s=Number.parseInt(r[3],10),a=n?.trim()||"deadline";if(i<1||i>12)throw new T(`Invalid ${a} value "${e}". Month "${r[2]}" is out of range \u2014 use a month between 01 and 12.`,I.USAGE);let d=mo(o,i-1);if(s<1||s>d)throw new T(`Invalid ${a} value "${e}". ${Bs[i-1]} ${o} has ${d} days, so day "${r[3]}" does not exist. Use a real YYYY-MM-DD calendar date.`,I.USAGE)}function Ks(e,t){let n=new Date(e.getTime()),r=n.getUTCDate(),o=n.getUTCMonth()+t,i=n.getUTCFullYear()+Math.floor(o/12),s=(o%12+12)%12,a=Math.min(r,mo(i,s));return n.setUTCFullYear(i,s,a),n}function uf(e,t=new Date,n="deadline"){let r=e.trim();if(r.toLowerCase()==="now")return t.toISOString();let o=Ds.exec(r);if(o){let s=o[1]==="-"?-1:1,a=Number.parseInt(o[2],10)*s,d=o[3].toLowerCase();if(d==="m")return Ks(t,a).toISOString();let l=d==="h"?3600*1e3:d==="d"?1440*60*1e3:10080*60*1e3;return new Date(t.getTime()+a*l).toISOString()}Xs(e,r,n);let i=Hs(r);if(!Number.isFinite(i)){let s=n.trim().length>0?n.trim():"deadline",a=Ms.test(r)?"Compound relative expressions like +3d+1h are not supported; use a single relative token (for example +3d) or an ISO/date string.":'Use ISO/date string input, "now", or relative +6h/-6h/+1d/-1d/+2w/-2w/+6m/-6m.';throw new T(`Invalid ${s} value "${e}". ${a}`,I.USAGE)}return new Date(i).toISOString()}(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]="77d3ebfa-789a-54cf-9d49-dbebab8d32ea")}catch{}})();var Ie=1,_o=1;function mf(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=Ie?t:Ie}function po(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=Ie))return e}function Js(e,t=_o){return e<t?"outdated":e>t?"ahead":"current"}function _f(e,t=_o){let n=[],r=[];for(let o of e){let i=Js(o.version,t);i==="outdated"?n.push(o.ref):i==="ahead"&&r.push(o.ref)}return{outdated:n.sort((o,i)=>o.localeCompare(i)),ahead:r.sort((o,i)=>o.localeCompare(i))}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="d7501aa2-d3d9-5fbe-a1c0-d4bc145f5563")}catch{}})();var Ys={"in-progress":"in_progress",cancelled:"canceled"};function St(e,t){if(t){let o=Wr(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=Ys[n]??n;if(dt.includes(r))return r}function Qs(e,t){return St(e,t)??e}function gf(e,t){return t.terminal_statuses.has(Qs(e,t))}import{encode as ia}from"@toon-format/toon";import{isDeepStrictEqual as wo}from"node:util";(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]="9bef4fe4-11a8-51ae-a42a-a93cc9c57384")}catch{}})();function Sn(e){let t=e.trim().replaceAll(/[^A-Za-z0-9]+/g," ").split(/\s+/).filter(o=>o.length>0).map(o=>o.toLowerCase());if(t.length===0)return e;let[n,...r]=t;return`${n}${r.map(o=>`${o.slice(0,1).toUpperCase()}${o.slice(1)}`).join("")}`}function Zs(e){return[...new Set([Br(e),Sn(e.key),Sn(e.cli_flag),...e.cli_aliases.map(t=>Sn(t))])]}function go(e,t){for(let n of Zs(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function bo(e){return Array.isArray(e)?e.flatMap(t=>bo(t)).map(t=>t.trim()).filter(t=>t.length>0):typeof e=="string"?e.split(/[,\n|]/).map(t=>t.trim()).filter(t=>t.length>0):e==null?[]:[String(e).trim()].filter(t=>t.length>0)}function yo(e,t){if(typeof e=="boolean")return e;if(typeof e=="number"){if(e===1)return!0;if(e===0)return!1}if(typeof e=="string"){let n=e.trim().toLowerCase();if(n==="true"||n==="1"||n==="yes")return!0;if(n==="false"||n==="0"||n==="no")return!1}throw new T(`${t} must be one of true|false|1|0|yes|no`,I.USAGE)}function ho(e,t){if(typeof e=="number"&&Number.isFinite(e))return e;let n=typeof e=="string"?e.trim():String(e),r=Number(n);if(!Number.isFinite(r))throw new T(`${t} must be a number`,I.USAGE);return r}function ea(e,t,n){let r=typeof e=="string"?(()=>{try{return JSON.parse(e)}catch{return}})():e;if(n==="array"&&Array.isArray(r)||n==="object"&&typeof r=="object"&&r!==null&&!Array.isArray(r))return r;throw new T(`${t} must be valid JSON ${n}`,I.USAGE)}function We(e,t,n){let r=n??`--${e.cli_flag}`;if(e.type==="array"||e.type==="object"){let i=Array.isArray(t)?t[t.length-1]:t;return i===void 0?void 0:ea(i,r,e.type)}if(e.repeatable||e.type==="string_array"){let i=bo(t);return e.type==="number"?i.map(s=>ho(s,r)):e.type==="boolean"?i.map(s=>yo(s,r)):i}let o=Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return e.type==="number"?ho(o,r):e.type==="boolean"?yo(o,r):typeof o=="string"?o:String(o)}function ta(e,t){return!e.required&&!e.required_on_create?!1:e.required_types.length===0?!0:t?e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function Sf(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=go(e,i);if(s===void 0){ta(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=We(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function vf(e,t,n=["update"]){let r={},o=(n??["update"]).flatMap(s=>t.command_to_fields.get(s)??[]),i=new Set;for(let s of o){let a=go(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=We(s,a)))}return r}import{decode as na}from"@toon-format/toon";(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]="2840e12e-7444-5d36-9f54-5a56267bbb75")}catch{}})();function vn(e){return{value:na(e),usedScalarBracketEscape:!1}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="fedb7b50-6946-589d-b240-9f074e09e467")}catch{}})();var ra=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function oa(e){if(e.length===0)return[];let t=e.split(/\r?\n/),n=[];for(let r=0;r<t.length;r+=1){let o=t[r]??"",i=o.match(ra);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function vt(e){return oa(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]="a4c22692-fe27-5178-bba2-190ac3f80628")}catch{}})();var sa=new Set(["schema","tracker","auto"]),aa=new Set(["passed","failed","stopped","canceled"]),ca=new Set(Ir);function Oe(e){return e.replaceAll("\\","/")}function Nn(e){for(let t of e)if(t!==0)return t;return 0}function xt(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var vo=["id","title","description","created_at","updated_at"],da=new Set(re);function Io(e){if(e?.schema)return{statusRegistry:Hr(e.schema),fieldRegistry:qr(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function la(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function se(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new T(`Invalid item metadata: ${e}`,I.GENERIC_FAILURE,{code:"item_document_invalid",reason:e.includes("required")?"missing_required_field":"schema_validation_error",...t?{field:t}:{},required:"Provide an item document whose metadata satisfies the active runtime schema.",why:e})}function Ve(e,t){throw new T(t,I.GENERIC_FAILURE,{code:"item_document_invalid",reason:"syntax_error",format:e,required:`Provide a syntactically valid ${e==="toon"?"TOON":"JSON Markdown"} item document.`,why:"The document could not be decoded far enough to validate item metadata."})}function xo(e){let t=new Set(da);for(let n of e.fieldRegistry?.definitions??[])t.add(n.metadata_key);for(let n of e.extensionFieldNames)t.add(n);return t}function g(e,t){e||se(t)}function Ge(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&se(t),e}function In(e,t){let n=e[t];g(typeof n=="string",`${t} must be a string`),g(oe(n),`${t} must be a valid ISO timestamp`)}function Eo(e,t,n){let r=e[t];r!==void 0&&g(typeof r=="number"&&Number.isInteger(r)&&r>=1,`${n} must be an integer >= 1`)}function On(e,t,n){let r=e[t];r!==void 0&&(g(typeof r=="string",`${n} must be a string`),g(oe(r),`${n} must be a valid ISO timestamp`))}function ua(e){if(e!==void 0){g(Array.isArray(e),"event.recurrence.by_weekday must be an array");for(let t of e){g(typeof t=="string","event.recurrence.by_weekday entries must be strings");let n=t.trim().toLowerCase();g(mt.includes(n),`event.recurrence.by_weekday entries must be one of: ${mt.join(", ")}`)}}}function fa(e){if(e!==void 0){g(Array.isArray(e),"event.recurrence.by_month_day must be an array");for(let t of e)g(typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=31,"event.recurrence.by_month_day entries must be integers 1..31")}}function ma(e){if(e!==void 0){g(Array.isArray(e),"event.recurrence.exdates must be an array");for(let t of e)g(typeof t=="string","event.recurrence.exdates entries must be strings"),g(oe(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function _a(e){let t=Ge(e,"event.recurrence must be an object");g(typeof t.freq=="string","event.recurrence.freq must be a string");let n=t.freq.trim().toLowerCase();g(ft.includes(n),`event.recurrence.freq must be one of: ${ft.join(", ")}`),Eo(t,"interval","event.recurrence.interval"),Eo(t,"count","event.recurrence.count"),On(t,"until","event.recurrence.until"),ua(t.by_weekday),fa(t.by_month_day),ma(t.exdates)}function pa(e){for(let r of vo)g(typeof e[r]=="string",`${r} is required and must be a string`);let t=e.type;g(typeof t=="string"&&t.trim().length>0,"type must be a non-empty string");let n=e.pm_format_version;return n!==void 0&&g(typeof n=="number"&&Number.isInteger(n)&&n>=Ie,`pm_format_version must be an integer >= ${Ie}`),t}function ya(e,t){let n=e.status;g(typeof n=="string"&&n.trim().length>0,"status must be a non-empty string");let r=t?.statusRegistry,o=St(n,r),i=r?r.definitions.map(s=>s.id):[...dt];g(o!==void 0,`status must be one of: ${i.join(", ")}`)}function ha(e){let t=e.priority;g(typeof t=="number"&&Number.isInteger(t)&&[0,1,2,3,4].includes(t),"priority must be an integer 0..4");let n=e.tags;g(Array.isArray(n),"tags must be an array");for(let r of n)g(typeof r=="string","tags entries must be strings")}function ga(e){let t=e.confidence;if(t!==void 0){if(typeof t=="number"){g(Number.isInteger(t)&&t>=0&&t<=100,"confidence number value must be an integer 0..100");return}if(typeof t=="string"){let n=t.trim().toLowerCase(),r=n==="med"||ut.includes(n);g(r,`confidence string value must be one of: ${[...ut,"med"].join(", ")}`);return}g(!1,"confidence must be a number or string")}}function ba(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&se("severity must be a string");let n=t.trim().toLowerCase(),r=n==="med"||lt.includes(n);g(r,`severity value must be one of: ${[...lt,"med"].join(", ")}`)}function wa(e){e.regression!==void 0&&typeof e.regression!="boolean"&&se("regression must be a boolean")}function Ea(e){let t=e.reminders;if(t!==void 0){g(Array.isArray(t),"reminders must be an array");for(let n of t){let r=Ge(n,"reminders entries must be objects");g(typeof r.at=="string","reminder.at must be a string"),g(oe(r.at),"reminder.at must be a valid ISO timestamp"),g(typeof r.text=="string","reminder.text must be a string"),g(r.text.trim().length>0,"reminder.text must not be empty")}}}function ka(e){for(let t of["title","description","location","timezone"])e[t]!==void 0&&(g(typeof e[t]=="string",`event.${t} must be a string`),g(e[t].trim().length>0,`event.${t} must not be empty`))}function Sa(e){e.recurrence!==void 0&&(_a(e.recurrence),e.recurrence.until!==void 0&&g(j(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function va(e){let t=Ge(e,"events entries must be objects");g(typeof t.start_at=="string","event.start_at must be a string"),g(oe(t.start_at),"event.start_at must be a valid ISO timestamp"),t.end_at!==void 0&&(g(typeof t.end_at=="string","event.end_at must be a string"),g(oe(t.end_at),"event.end_at must be a valid ISO timestamp"),g(j(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),ka(t),t.all_day!==void 0&&g(typeof t.all_day=="boolean","event.all_day must be a boolean"),Sa(t)}function Ia(e){let t=e.events;if(t!==void 0){g(Array.isArray(t),"events must be an array");for(let n of t)va(n)}}function xa(e){for(let t of["source_type","source_owner","design","external_ref"]){let n=e[t];n!==void 0&&g(typeof n=="string",`${t} must be a string`)}}function Ta(e){let t=e.type_options;if(t===void 0)return;let n=Ge(t,"type_options must be an object");for(let[r,o]of Object.entries(n))g(r.trim().length>0,"type_options keys must be non-empty"),g(typeof o=="string","type_options values must be strings"),g(o.trim().length>0,"type_options values must be non-empty strings")}function Oa(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){la(r,t)&&se(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=We(r,o,`metadata field "${r.metadata_key}"`)}catch(i){se(String(i?.message).replace(/^Invalid\s+/u,""))}}}function Ca(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=xo(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length!==0&&(t.unknownFieldPolicy==="reject"?se(`unknown schema fields are not allowed: ${r.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`))}function Cn(e,t){let n=Ge(e,"item metadata must be an object"),r=pa(n);ya(n,t),ha(n),ga(n),ba(n),wa(n),In(n,"created_at"),In(n,"updated_at"),n.deadline!==void 0&&In(n,"deadline"),Ea(n),Ia(n),On(n,"closed_at","closed_at"),On(n,"completed_at","completed_at"),xa(n),Ta(n),Oa(n,r,t),Ca(n,t)}function Aa(e){if(!(!e||e.length===0))return[...e].map(t=>({id:t.id.trim().toLowerCase(),kind:t.kind,created_at:t.created_at,author:t.author?.trim()||void 0,source_kind:t.source_kind?.trim()||void 0,author_source:t.author_source})).sort((t,n)=>{let r=j(t.created_at,n.created_at);if(r!==0)return r;let o=t.id.localeCompare(n.id);if(o!==0)return o;let i=t.kind.localeCompare(n.kind);return i!==0?i:(t.source_kind??"").localeCompare(n.source_kind??"")})}function xn(e){if(!(!e||e.length===0))return[...e].sort((t,n)=>{let r=j(t.created_at,n.created_at);if(r!==0)return r;let o=t.text.localeCompare(n.text);return o!==0?o:t.author.localeCompare(n.author)})}function Na(e){if(!e||e.length===0)return;let t=[...e].map(n=>({at:n.at,text:n.text.trim()})).filter(n=>n.text.length>0).sort((n,r)=>{let o=j(n.at,r.at);return o!==0?o:n.text.localeCompare(r.text)});return t.length===0?void 0:t}function Ra(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!ft.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>mt.includes(s)))).sort((s,a)=>fn(s)-fn(a)),r=Array.from(new Set((e.by_month_day??[]).filter(s=>Number.isInteger(s)&&s>=1&&s<=31).map(s=>s))).sort((s,a)=>s-a),o=Array.from(new Set((e.exdates??[]).map(s=>s.trim()).filter(s=>oe(s)))).sort((s,a)=>j(s,a)),i={freq:t,interval:e.interval!==void 0&&e.interval>1?e.interval:void 0,count:e.count,until:e.until?.trim()||void 0,by_weekday:n.length>0?n:void 0,by_month_day:r.length>0?r:void 0,exdates:o.length>0?o:void 0};for(let[s,a]of Object.entries(i))a===void 0&&delete i[s];return i}function Da(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(Ma).sort(La)}function Ma(e){let t={start_at:e.start_at,end_at:e.end_at||void 0,title:e.title?.trim()||void 0,description:e.description?.trim()||void 0,location:e.location?.trim()||void 0,all_day:e.all_day,timezone:e.timezone?.trim()||void 0,recurrence:Ra(e.recurrence)};return xt(t),t}function La(e,t){return Nn([j(e.start_at,t.start_at),(e.end_at??"").localeCompare(t.end_at??""),(e.title??"").localeCompare(t.title??""),+!!e.all_day-+!!t.all_day,(e.timezone??"").localeCompare(t.timezone??""),(e.location??"").localeCompare(t.location??""),(e.description??"").localeCompare(t.description??""),JSON.stringify(e.recurrence??{}).localeCompare(JSON.stringify(t.recurrence??{}))])}function Pa(e){if(!(!e||e.length===0))return e.map(t=>({path:Oe(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function ja(e){if(!e||e.length===0)return;let t=e.map(za).filter(n=>n.run_id.length>0&&n.started_at.length>0&&n.finished_at.length>0&&n.recorded_at.length>0).sort((n,r)=>Nn([j(n.recorded_at,r.recorded_at),n.run_id.localeCompare(r.run_id),n.kind.localeCompare(r.kind)]));return t.length>0?t:void 0}function xe(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function Fa(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function Tn(e){return typeof e=="string"?e:""}function $a(e){if(!Array.isArray(e))return;let t=e.filter(r=>r!==null&&typeof r=="object"&&typeof r.name=="string"&&r.name.trim().length>0&&typeof r.value=="number"&&Number.isFinite(r.value)&&typeof r.recorded_at=="string"&&r.recorded_at.trim().length>0).map(r=>({name:r.name.trim(),value:r.value,unit:typeof r.unit=="string"&&r.unit.trim()||void 0,threshold:typeof r.threshold=="number"&&Number.isFinite(r.threshold)?r.threshold:void 0,recorded_at:r.recorded_at.trim()})),n=[...new Map(t.map(r=>[r.name,r])).values()].sort((r,o)=>r.name.localeCompare(o.name)).slice(0,32);return n.length>0?n:void 0}function za(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=aa.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:Tn(e.started_at),finished_at:Tn(e.finished_at),recorded_at:Tn(e.recorded_at),attempt:Fa(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:xe(e.passed)??0,failed:xe(e.failed)??0,skipped:xe(e.skipped)??0,items:xe(e.items),linked_tests:xe(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:$a(e.measurements)};return xt(o),o}function Ua(e){if(!(!Array.isArray(e)||e.length===0))return[...e].map(qa).sort(Ba)}function qe(e){if(!Array.isArray(e))return;let t=[...new Set(e.filter(n=>typeof n=="string").map(n=>n.trim()).filter(n=>n.length>0))].sort((n,r)=>n.localeCompare(r));return t.length>0?t:void 0}function To(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Rn(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function ko(e){if(!To(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!Rn(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Ha(e){if(!To(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!Rn(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Wa(e){let t=e?.trim().toLowerCase();if(!(!t||!sa.has(t)))return t}function qa(e){let t={command:e.command?.trim()||void 0,path:e.path?Oe(e.path):void 0,scope:e.scope,timeout_seconds:typeof e.timeout_seconds=="number"&&Number.isFinite(e.timeout_seconds)&&e.timeout_seconds>0?e.timeout_seconds:void 0,pm_context_mode:Wa(e.pm_context_mode),env_set:ko(e.env_set),env_clear:qe(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:qe(e.assert_stdout_contains),assert_stdout_regex:qe(e.assert_stdout_regex),assert_stderr_contains:qe(e.assert_stderr_contains),assert_stderr_regex:qe(e.assert_stderr_regex),assert_stdout_min_lines:xe(e.assert_stdout_min_lines),assert_json_field_equals:ko(e.assert_json_field_equals),assert_json_field_gte:Ha(e.assert_json_field_gte),note:e.note?.trim()||void 0};return xt(t),t}function Ba(e,t){return Nn([e.scope.localeCompare(t.scope),It(e.path,t.path),It(e.command,t.command),So(e.timeout_seconds,t.timeout_seconds),It(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,ie(e.env_clear,t.env_clear,[]),ie(e.env_set,t.env_set,{}),ie(e.assert_stdout_contains,t.assert_stdout_contains,[]),ie(e.assert_stdout_regex,t.assert_stdout_regex,[]),ie(e.assert_stderr_contains,t.assert_stderr_contains,[]),ie(e.assert_stderr_regex,t.assert_stderr_regex,[]),So(e.assert_stdout_min_lines,t.assert_stdout_min_lines),ie(e.assert_json_field_equals,t.assert_json_field_equals,{}),ie(e.assert_json_field_gte,t.assert_json_field_gte,{}),It(e.note,t.note)])}function It(e,t){return(e??"").localeCompare(t??"")}function So(e,t){return(e??0)-(t??0)}function ie(e,t,n){return JSON.stringify(e??n).localeCompare(JSON.stringify(t??n))}function Va(e){if(!(!e||e.length===0))return[...e].map(t=>({path:Oe(t.path),scope:t.scope,note:t.note?.trim()||void 0})).sort((t,n)=>{let r=t.scope.localeCompare(n.scope);if(r!==0)return r;let o=t.path.localeCompare(n.path);return o!==0?o:(t.note??"").localeCompare(n.note??"")})}function y(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function Ga(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=y(r.id),i=y(r.kind);if(!o||!i)continue;let s={id:o,kind:i},a=y(r.note);a&&(s.note=a),r.required_before_step===!0&&(s.required_before_step=!0),t.push(s)}return t.length>0?t:void 0}function Xa(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=y(r.path);if(!o)continue;let i={path:Oe(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=y(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Ka(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=y(r.command),i=y(r.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=Oe(i));let a=y(r.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function Ja(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=y(r.path);if(!o)continue;let i={path:Oe(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=y(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Ya(e){if(e===null||typeof e!="object")return;let t=e,n=y(t.id),r=y(t.title),o=y(t.status),i=o&&ca.has(o)?o:void 0,s=Rr(t.order)??Number.NaN,a=typeof t.created_at=="string"?t.created_at:"",d=typeof t.updated_at=="string"?t.updated_at:"";if(!n||!r||!i||!Number.isFinite(s)||!a||!d)return;let l={id:n,order:s,title:r,status:i,created_at:a,updated_at:d};return Qa(l,t),l}function Qa(e,t){let n=[["body","body"],["owner","owner"],["evidence","evidence"],["blocked_reason","blocked_reason"],["superseded_by","superseded_by"]];for(let[i,s]of n){let a=y(t[s]);a&&(e[i]=a)}let r=typeof t.completed_at=="string"?t.completed_at:void 0;r&&r.length>0&&(e.completed_at=r);let o=[["linked_items","linked_items",Ga],["files","files",Xa],["tests","tests",Ka],["docs","docs",Ja]];for(let[i,s,a]of o){let d=a(t[s]);d&&(e[i]=d)}}function Za(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=Ya(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function ec(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=typeof r.ts=="string"?r.ts:"",i=typeof r.author=="string"?r.author:"",s=y(r.decision);if(!o||!i||!s)continue;let a={ts:o,author:i,decision:s},d=y(r.rationale);d&&(a.rationale=d);let l=y(r.evidence);l&&(a.evidence=l);let m=y(r.step_id);m&&(a.step_id=m),t.push(a)}return t.length>0?t:void 0}function tc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=typeof r.ts=="string"?r.ts:"",i=typeof r.author=="string"?r.author:"",s=y(r.text);if(!o||!i||!s)continue;let a={ts:o,author:i,text:s},d=y(r.step_id);d&&(a.step_id=d),t.push(a)}return t.length>0?t:void 0}function nc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=y(r.text);if(!o)continue;let i={text:o},s=y(r.command);s&&(i.command=s);let a=y(r.expected);a&&(i.expected=a),t.push(i)}return t.length>0?t:void 0}function rc(e){if(!e)return;let t=Object.entries(e).map(([n,r])=>[n.trim(),r.trim()]).filter(([n,r])=>n.length>0&&r.length>0).sort((n,r)=>n[0].localeCompare(r[0]));if(t.length!==0)return Object.fromEntries(t)}function Te(e){let t=0;for(;t<e.length&&e[t]===`
|
|
4
|
-
`;)t+=1;return e.slice(t).trimEnd()}function oc(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(ut.includes(t))return t}function ic(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(lt.includes(t))return t}function Be(e){return e||void 0}function sc(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))Rn(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function ac(e,t){if(!t?.fieldRegistry)return;let n=e;for(let r of t.fieldRegistry.definitions){let o=n[r.metadata_key];o!==void 0&&(n[r.metadata_key]=We(r,o,`metadata field "${r.metadata_key}"`))}}function cc(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=xo(t),o=Object.keys(e).filter(i=>!n.has(i)).sort((i,s)=>i.localeCompare(s));o.length>0&&t.unknownFieldPolicy==="reject"&&se(`unknown schema fields are not allowed: ${o.join(", ")}`),o.length>0&&t.onWarning?.(`item_unknown_schema_fields:${o.join(",")}`)}function Tt(e,t={}){let n=Io(t),r=St(e.status,n?.statusRegistry)??e.status,o=Array.from(new Set((Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string").map(s=>s.trim().toLowerCase()).filter(Boolean))).sort((s,a)=>s.localeCompare(a)),i={id:e.id,title:e.title,description:e.description,type:e.type,pm_format_version:po(e.pm_format_version),source_type:y(e.source_type),type_options:rc(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:Aa(e.dependencies),comments:xn(e.comments),notes:xn(e.notes),learnings:xn(e.learnings),files:Pa(e.files),tests:Ua(e.tests),test_runs:ja(e.test_runs),docs:Va(e.docs),deadline:Be(e.deadline),reminders:Na(e.reminders),events:Da(e.events),closed_at:Be(e.closed_at),completed_at:Be(e.completed_at),assignee:y(e.assignee),claim_principal:y(e.claim_principal),source_owner:y(e.source_owner),author:Be(e.author),estimated_minutes:e.estimated_minutes,acceptance_criteria:e.acceptance_criteria??void 0,design:e.design??void 0,external_ref:e.external_ref??void 0,definition_of_ready:y(e.definition_of_ready),order:e.order,goal:y(e.goal),objective:y(e.objective),value:y(e.value),impact:y(e.impact),outcome:y(e.outcome),why_now:y(e.why_now),parent:y(e.parent),reviewer:y(e.reviewer),risk:e.risk??void 0,confidence:oc(e.confidence),sprint:y(e.sprint),release:y(e.release),blocked_by:y(e.blocked_by),blocked_reason:y(e.blocked_reason),unblock_note:y(e.unblock_note),reporter:y(e.reporter),severity:ic(e.severity),environment:y(e.environment),repro_steps:y(e.repro_steps),resolution:y(e.resolution),expected_result:y(e.expected_result),actual_result:y(e.actual_result),affected_version:y(e.affected_version),fixed_version:y(e.fixed_version),component:y(e.component),regression:e.regression,customer_impact:y(e.customer_impact),close_reason:Be(e.close_reason),plan_mode:y(e.plan_mode),plan_scope:y(e.plan_scope),plan_harness:y(e.plan_harness),plan_resume_context:y(e.plan_resume_context),plan_steps:Za(e.plan_steps),plan_decisions:ec(e.plan_decisions),plan_discoveries:tc(e.plan_discoveries),plan_validation:nc(e.plan_validation)};return sc(i,e),ac(i,n),cc(i,n),xt(i),i}function Oo(e){return E(e,re)}function dc(e){let t=0,n=!1,r=!1;for(let o=0;o<e.length;o+=1){let i=e[o];if(n){if(r){r=!1;continue}if(i==="\\"){r=!0;continue}i==='"'&&(n=!1);continue}if(i==='"'){n=!0;continue}if(i==="{"){t+=1;continue}if(i==="}"&&(t-=1,t===0))return o}return-1}function lc(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=dc(e);if(t<0)return{frontMatter:"",body:e};let n=e.slice(0,t+1),r=e.slice(t+1).replace(/^\r?\n+/,"");return{frontMatter:n,body:r}}function uc(e){let t=e.charCodeAt(0)===65279?e.slice(1):e,n=t.match(/^[ \t]*---[ \t]*(?:\r?\n|$)/);if(!n)return{content:t,stripped:!1};let r=n[0].length;for(;r<t.length;){let o=t.indexOf(`
|
|
5
|
-
`,r),i=o===-1?t.length:o,s=t.slice(r,i).replace(/\r$/,""),a=o===-1?i:i+1;if(s.trim()==="---")return{content:t.slice(a).replace(/^\s+/,""),stripped:!0};r=a}return{content:t,stripped:!1}}function An(e,t){return Tt(e,{...t,onWarning:void 0})}function fc(e,t,n={}){let r=uc(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=lc(r.content);o||(e.trimStart().startsWith("{")&&Ve("json_markdown","JSON front matter is not valid JSON"),Ve("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{Ve("json_markdown","JSON front matter is not valid JSON")}return Cn(s,t),{metadata:An(s,n),body:Te(i)}}function mc(e,t,n={}){let r;try{r=vn(e).value}catch{Ve("toon","TOON item document is not valid TOON")}g(typeof r=="object"&&r!==null&&!Array.isArray(r),"TOON item document must be an object");let o=r;if(!vo.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&Ve("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return Cn(o.front_matter,t),g(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:An(o.front_matter,n),body:Te(typeof o.body=="string"?o.body:"")};let{body:i,...s}=o;return g(i===void 0||typeof i=="string","TOON item document body must be a string"),Cn(s,t),{metadata:An(s,n),body:Te(typeof i=="string"?i:"")}}function _c(e,t={}){let n=Tt(e.metadata,t),r=Oo(n),o=JSON.stringify(r,null,2),i=Te(e.body??"");return i?`${o}
|
|
6
|
-
|
|
7
|
-
${i}
|
|
8
|
-
`:`${o}
|
|
9
|
-
`}function pc(e,t={}){let n=Tt(e.metadata,t),r=Oo(n),o=Te(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i)),a=ia(s),d;try{d=vn(a).value}catch(l){throw new T("Refusing to persist a TOON item document that the configured decoder cannot read back.",I.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_error",format:"toon",required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:l instanceof Error?l.message:String(l)})}if(!wo(d,s)){let l=typeof d=="object"&&d!==null&&!Array.isArray(d)?d:{},m=Object.keys(s).find(f=>!wo(s[f],l[f]))??"document";throw new T(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${m}".`,I.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_mismatch",format:"toon",field:m,required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:"The encoded document decoded to a value different from the canonical item payload."})}return`${a}
|
|
10
|
-
`}function Ot(e,t={}){let n=vt(e);if(n)throw new T(`Merge conflict markers detected in item document at line ${n.line} (${n.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,I.GENERIC_FAILURE,{code:"merge_conflict_markers_detected",reason:"merge_conflict",required:"Resolve merge-conflict markers in the item file before parsing or mutation commands.",why:"Partially merged documents can corrupt item metadata and history integrity.",examples:["git status","git add <resolved-file> && git commit"],nextSteps:["Resolve conflicts, save the file, then rerun the pm command."]});let r=t.format??"toon",o=Io(t);return r==="toon"?mc(e,o,t):fc(e,o,t)}function Co(e,t={}){return(t.format??"toon")==="toon"?pc(e,t):_c(e,t)}function q(e,t={}){return{metadata:Tt(e.metadata,t),body:Te(e.body??"")}}import{existsSync as hc}from"node:fs";import{AsyncLocalStorage as gc}from"node:async_hooks";import Q from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bd9832a9-f6a2-5351-a929-0a0d2766df88")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3239b2c7-3ae3-5d4e-9005-b61000362304")}catch{}})();function Gf(){let e=Promise.resolve(),t=new Set;return{async read(n){let r=e,o,i=new Promise(s=>{o=s});t.add(i),await r;try{return await n()}finally{t.delete(i),o()}},write(n){let o=Promise.all([e,...t]).then(()=>n());return e=o.then(()=>{},()=>{}),o}}}function yc(){let e=Promise.resolve(),t=0,n=[],r=()=>{if(t!==0)return;let o=n.splice(0);for(let i of o)i()};return{enqueue(o){t++;let i=e.then(()=>o());return e=i.then(()=>{},()=>{}).finally(()=>{t--,r()}),i},idle(){return t===0?Promise.resolve():new Promise(o=>n.push(o))}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="38024e6c-c1ef-5c15-8421-ac18d317e330")}catch{}})();var Ce=null,No=null,bc=null,wc=null,Dn=null,Ec=null,Ro=null,kc=null;var Sc=[],Do=new gc;function M(){return Do.getStore()}function sm(e){return Do.run({hooks:null,commands:null,parsers:null,preflight:null,services:null,renderers:null,registrations:null,commandContext:null,commandResult:void 0,affectedItems:[]},e)}var vc=new Set(["body","comments","dependencies","docs","events","files","learnings","notes","reminders","test_runs","tests"]);function Ao(e){let t=Q.resolve(e);for(;;){if(hc(Q.join(t,".git")))return t;let n=Q.dirname(t);if(n===t)return;t=n}}function Ic(e){let t=process.env.PM_SOURCE_WORKSPACE_ROOT?.trim()||process.cwd(),n=Ao(t)??Q.resolve(t),r=Ao(n);if(!e)return{source_workspace_root:n,...r?{repo_root:r}:{}};let o=Q.relative(n,Q.resolve(e)),i=o.length>0&&!o.startsWith(`..${Q.sep}`)&&o!==".."&&!Q.isAbsolute(o);return{source_workspace_root:n,...r?{repo_root:r}:{},...i?{pm_root_rel:o.split(Q.sep).join("/")}:{}}}function am(e){let t=M();if(t){t.hooks=e;return}Ce=e}function cm(e){let t=M();if(t){t.commands=e;return}No=e}function dm(e){let t=M();if(t){t.parsers=e;return}bc=e}function lm(e){let t=M();if(t){t.preflight=e;return}wc=e}function um(e){let t=M();if(t){t.services=e;return}Dn=e}function fm(e){let t=M();if(t){t.renderers=e;return}Ec=e}function mm(e){let t=M();if(t){t.registrations=e;return}Ro=e}function Xe(){let e=M();return e?e.registrations:Ro}function Mn(e){if(!e)return;let t=M();t?t.affectedItems.push(e):Sc.push(e)}function Ct(e,t){if(!e||!e.id)return{};let n={id:e.id,type:e.type,status:e.status};if(!Array.isArray(t))return n;let r=e;for(let o of t){if(typeof o!="string")continue;let i=o.startsWith("unset:")?o.slice(6):o;i==="id"||i==="type"||i==="status"||vc.has(i)||Object.hasOwn(r,i)&&r[i]!==void 0&&(n[i]=r[i])}return n}async function B(e){let t=M(),n=t?t.hooks:Ce;return n?Mr(n,e):[]}async function Ln(e){let t=M(),n=t?t.hooks:Ce;n&&await Dr(n,e)}async function X(e){let t=M(),n=t?t.hooks:Ce;return n?Lr(n,e):[]}function Pn(){let e=M();return((e?e.hooks:Ce)?.onRead?.length??0)>0}async function _m(e){let t=M(),n=t?t.hooks:Ce;return n?Pr(n,e):[]}async function pm(e){let t=M(),n=t?t.commands:No;return n?jr(n,{...e,...Ic(e.pm_root)}):{handled:!1,result:null,warnings:[]}}function Mo(e,t){let n=M(),r=n?n.commandContext:kc;return{service:e,command:r?.command,args:r?[...r.args]:[],options:r?.options?{...r.options}:{},global:r?.global?{...r.global}:void 0,pm_root:r?.pm_root,source_workspace_root:r?.source_workspace_root,repo_root:r?.repo_root,pm_root_rel:r?.pm_root_rel,payload:t}}async function Z(e,t){let n=M(),r=n?n.services:Dn;return r?$r(r,Mo(e,t)):{handled:!1,result:t,warnings:[]}}function Lo(e,t){let n=M(),r=n?n.services:Dn;return r?Fr(r,Mo(e,t)):{handled:!1,result:t,warnings:[]}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="aa65b74d-ef5d-57ed-b613-3034da52a8ba")}catch{}})();async function Ke(e,t){let n=await _e(e);if(n===null)return[];if(await X({path:e,scope:"project"}),n.trim()==="")return[];let r=vt(n);if(r)throw new T(`History for ${t} contains merge conflict markers at line ${r.line} (${r.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,I.GENERIC_FAILURE,{code:"history_merge_conflict_markers_detected",required:"Repair the history stream by resolving merge-conflict markers.",why:"Conflict markers break JSONL parsing and invalidate deterministic audit history.",examples:[`pm history ${t}`,`pm restore ${t} <timestamp-or-version>`],nextSteps:["Resolve or restore the history file, then rerun the command."]});let o=[];for(let[i,s]of n.split(/\r?\n/).entries()){let a=s.trim();if(a)try{o.push(JSON.parse(a))}catch{throw new T(`History for ${t} contains invalid JSON at line ${i+1}. Repair or restore the history stream and retry.`,I.GENERIC_FAILURE)}}return o}import Gn from"fast-json-patch";(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]="4d71277c-e16c-56f4-a834-5200acfa6d7a")}catch{}})();import Go from"fast-json-patch";import ae from"node:fs/promises";import ee from"node:path";import{randomUUID as xc}from"node:crypto";import{createRequire as Tc}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]="f1205949-16d8-51ce-98e8-04abc4c78ee8")}catch{}})();var Oc="history-event-index.sqlite",jn="2";function Rt(e){return ee.join(e,"runtime",Oc)}function Cc(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}function Ac(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?Cc(t):null}var At;function Fn(){return At!==void 0||(At=Ac(process.versions.node,Tc(import.meta.url))),At}function Nc(e){e.exec(`
|
|
11
|
-
PRAGMA journal_mode = OFF;
|
|
12
|
-
PRAGMA synchronous = OFF;
|
|
13
|
-
CREATE TABLE metadata (
|
|
14
|
-
key TEXT PRIMARY KEY,
|
|
15
|
-
value TEXT NOT NULL
|
|
16
|
-
) STRICT;
|
|
17
|
-
CREATE TABLE events (
|
|
18
|
-
stream_id TEXT NOT NULL,
|
|
19
|
-
stream_offset INTEGER NOT NULL,
|
|
20
|
-
ts TEXT NOT NULL,
|
|
21
|
-
author TEXT NOT NULL,
|
|
22
|
-
agent_harness TEXT,
|
|
23
|
-
agent_instance TEXT,
|
|
24
|
-
op TEXT NOT NULL,
|
|
25
|
-
entry_json TEXT NOT NULL,
|
|
26
|
-
PRIMARY KEY(stream_id, stream_offset)
|
|
27
|
-
) STRICT;
|
|
28
|
-
CREATE INDEX events_order
|
|
29
|
-
ON events(ts, stream_id, stream_offset);
|
|
30
|
-
CREATE INDEX events_op_order
|
|
31
|
-
ON events(op, ts, stream_id, stream_offset);
|
|
32
|
-
CREATE INDEX events_author_order
|
|
33
|
-
ON events(author, ts, stream_id, stream_offset);
|
|
34
|
-
CREATE INDEX events_harness_order
|
|
35
|
-
ON events(agent_harness, ts, stream_id, stream_offset);
|
|
36
|
-
CREATE INDEX events_instance_order
|
|
37
|
-
ON events(agent_instance, ts, stream_id, stream_offset);
|
|
38
|
-
`),e.prepare("INSERT INTO metadata(key, value) VALUES ('version', ?)").run(jn)}function Po(e,t){e.prepare(`INSERT INTO events(
|
|
39
|
-
stream_id, stream_offset, ts, author, agent_harness,
|
|
40
|
-
agent_instance, op, entry_json
|
|
41
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?)`).run(t.stream_id,t.stream_offset,t.entry.ts,t.entry.author,t.entry.agent_harness??null,t.entry.agent_instance??null,t.entry.op,JSON.stringify(t.entry))}async function Dm(e){let t=Fn();if(!t)return!1;let n=ee.join(e,"history"),o=(await ae.readdir(n,{withFileTypes:!0}).catch(d=>{if(typeof d=="object"&&d!==null&&"code"in d&&d.code==="ENOENT")return[];throw d})).filter(d=>d.isFile()&&d.name.endsWith(".jsonl")).sort((d,l)=>d.name.localeCompare(l.name)),i=Rt(e);await ae.mkdir(ee.dirname(i),{recursive:!0});let s=`${i}.${xc()}.tmp`,a;try{a=new t(s),Nc(a),a.exec("BEGIN IMMEDIATE");for(let d of o){let l=d.name.slice(0,-6),m=await Ke(ee.join(n,d.name),l);for(let[f,h]of m.entries())Po(a,{stream_id:l,stream_offset:f,entry:h})}return a.exec("COMMIT"),a.close(),a=void 0,await ae.rm(i,{force:!0}),await ae.rename(s,i),!0}catch(d){throw a?.close(),await ae.rm(s,{force:!0}),d}}async function jo(e,t){let n=ee.dirname(ee.dirname(e)),r=Rt(n);try{await ae.access(r)}catch{return}let o=Fn();if(!o)return;let i;try{if(i=new o(r),i.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==jn)throw new TypeError("Unsupported history event index version");let a=ee.basename(e,".jsonl"),d=i.prepare("SELECT COALESCE(MAX(stream_offset), -1) + 1 AS value FROM events WHERE stream_id = ?").get(a);Po(i,{stream_id:a,stream_offset:Number(d.value),entry:t}),i.close()}catch{i?.close(),await ae.rm(r,{force:!0})}}async function Dt(e){await ae.rm(Rt(ee.dirname(ee.dirname(e))),{force:!0})}function Nt(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function Rc(e,t,n,r){if(!n||n.length===0)return;let o=n.map(()=>"?").join(", "),i=r??[];if(i.length>0){e.push(`(agent_harness IN (${o}) OR (agent_harness IS NULL AND author IN (${i.map(()=>"?").join(", ")})))`),t.push(...n,...i);return}e.push(`agent_harness IN (${o})`),t.push(...n)}async function Mm(e,t){let n=Fn();if(!n)return null;let r=[],o=[];t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0?(r.push("(ts > ? OR (ts = ? AND stream_id > ?) OR (ts = ? AND stream_id = ? AND stream_offset > ?))"),o.push(t.after_ts,t.after_ts,t.after_stream_id,t.after_ts,t.after_stream_id,t.after_stream_offset)):t.since_ts!==void 0&&(r.push("ts >= ?"),o.push(t.since_ts)),Nt(r,o,"op",t.ops),Nt(r,o,"author",t.authors),Rc(r,o,t.harnesses,t.harness_alias_authors),Nt(r,o,"agent_instance",t.agent_instances);for(let a of t.provenance??[])r.push(`json_extract(entry_json, '$.agent_provenance.${a.dimension}.value') IN (${a.values.map(()=>"?").join(", ")})`),o.push(...a.values);Nt(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s;try{if(s=new n(Rt(e),{readOnly:!0}),s.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==jn)return s.close(),null;let d=s.prepare(`SELECT stream_id, stream_offset, entry_json
|
|
42
|
-
FROM events${i}
|
|
43
|
-
ORDER BY ts, stream_id, stream_offset
|
|
44
|
-
LIMIT ?`).all(...o,Math.max(0,Math.floor(t.limit))+1),l=d.length>t.limit,m=d.slice(0,t.limit).map(f=>({stream_id:String(f.stream_id),stream_offset:Number(f.stream_offset),entry:JSON.parse(String(f.entry_json))}));return s.close(),{events:m,has_more:l}}catch{return s?.close(),null}}import Bn from"node:fs/promises";import Ae 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]="22af7808-6456-5889-b6e3-1abd73f35738")}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]="c873f95b-c435-5b0d-a631-565fb195b5cd")}catch{}})();var Mt="changed_fields",Dc="changed_field_count",$n="rows",Mc=new Set(["apply","rollback"]),Fo=new Set(["deleted","would_delete"]);function be(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function $o(e){let t=e[Mt];if(!Array.isArray(t))return null;let n=Object.getPrototypeOf(e)===null?Object.create(null):{};for(let[r,o]of Object.entries(e))r!==Mt&&(n[r]=o);return n[Dc]=t.length,n}function Lc(e){return"item"in e&&Array.isArray(e[Mt])}function Pc(e){return typeof e.mode=="string"&&Mc.has(e.mode)&&Array.isArray(e[$n])}function jc(e,t){let n=Object.getPrototypeOf(e)===null?Object.create(null):{};return Object.assign(n,e),n[$n]=t,n}function Fc(e){if(!be(e))return null;let t=be(e.item)?e.item:be(e.plan)?e.plan:null;if(t===null)return null;let n=typeof t.id=="string"?t.id:void 0,r=typeof e.outcome=="string"&&Fo.has(e.outcome)?e.outcome:typeof t.status=="string"?t.status:void 0;return n?r?{id:n,status:r,...typeof e.deleted=="boolean"?{deleted:e.deleted}:{}}:{id:n}:null}function $c(e){if(!be(e)||!be(e.item)||typeof e.item.id!="string")return null;let t=e[Mt];if(!Array.isArray(t))return null;let n={id:e.item.id,...typeof e.outcome=="string"&&Fo.has(e.outcome)?{status:e.outcome}:typeof e.item.status=="string"?{status:e.item.status}:{},...typeof e.deleted=="boolean"?{deleted:e.deleted}:{},...typeof e.previous_status=="string"?{previous_status:e.previous_status}:{},changed_field_count:t.length},r=typeof e.close_reason=="string"?e.close_reason:typeof e.item.close_reason=="string"?e.item.close_reason:void 0;return r!==void 0&&(n.close_reason=r),Array.isArray(e.warnings)&&e.warnings.length>0&&(n.warnings=e.warnings),n}function zc(e){let t=Pc(e)?e[$n]:void 0;if(!Array.isArray(t))return{projected:e,changed:!1};let n=!1,r=t.map(o=>{if(!be(o))return o;let i=$o(o);return i?(n=!0,i):o});return n?{projected:jc(e,r),changed:!0}:{projected:e,changed:!1}}function Uc(e,t={}){if(t.idOnly===!0){let a=Fc(e);if(a!==null)return a}if(t.compactEnvelope===!0){let a=$c(e);if(a!==null)return a}if((t.changedFields??"full")==="full"||!be(e))return e;let r=!1,o=e,i=Lc(e)?$o(e):null;i!==null&&(o=i,r=!0);let s=zc(o);return s.changed&&(o=s.projected,r=!0),r?o: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]="b52d2756-f640-5f53-981f-05fa23fa1718")}catch{}})();var Zm=new Set(Object.values(I));var zo=!1;function Je(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Un(e){return typeof e=="object"&&e!==null&&e.code==="EPIPE"}function Hc(){(process.exitCode===void 0||process.exitCode===I.SUCCESS)&&(process.exitCode=I.SUCCESS)}function Wc(){(process.exitCode===void 0||process.exitCode===I.SUCCESS)&&(process.exitCode=I.GENERIC_FAILURE)}function Hn(e){if(e==="stdout"){Hc();return}Wc()}function Uo(e){let t=e instanceof Error?e:new Error(String(e));setImmediate(()=>{throw t})}function qc(){zo||(zo=!0,process.stdout.on("error",e=>{if(Un(e)){Hn("stdout");return}Uo(e)}),process.stderr.on("error",e=>{if(Un(e)){Hn("stderr");return}Uo(e)}))}function Bc(e,t){qc();try{return e==="stdout"?process.stdout.write(t):process.stderr.write(t),!0}catch(n){if(Un(n))return Hn(e),!1;throw n}}function Lt(e){return Bc("stderr",e)}function zn(e){return typeof e=="string"?JSON.stringify(e):typeof e=="number"||typeof e=="boolean"?String(e):e===null?"null":JSON.stringify(e)}function Wn(e){if(e!=null){if(Array.isArray(e)){let t=e.map(n=>Wn(n)).filter(n=>n!==void 0);return t.length>0?t:void 0}if(Je(e)){let t={};for(let[n,r]of Object.entries(e)){if(n==="omitted_field_groups"&&Array.isArray(r)&&r.length===0){t[n]=[];continue}let o=Wn(r);o!==void 0&&(t[n]=o)}return Object.keys(t).length>0?t:void 0}return e}}function qn(e,t){let n=" ".repeat(t);if(Array.isArray(e))return e.length===0?"[]":e.map(r=>{if(!Je(r)&&!Array.isArray(r))return`${n}- ${zn(r)}`;let i=qn(r,t+1).split(`
|
|
45
|
-
`),[s,...a]=i;return a.length===0?`${n}- ${s.trimStart()}`:`${n}- ${s.trimStart()}
|
|
46
|
-
${a.join(`
|
|
47
|
-
`)}`}).join(`
|
|
48
|
-
`);if(Je(e)){let r=Object.entries(e);return r.length===0?"{}":r.map(([o,i])=>!Je(i)&&!Array.isArray(i)?`${n}${o}: ${zn(i)}`:Array.isArray(i)&&i.length===0?`${n}${o}: []`:Je(i)&&Object.keys(i).length===0?`${n}${o}: {}`:`${n}${o}:
|
|
49
|
-
${qn(i,t+1)}`).join(`
|
|
50
|
-
`)}return`${n}${zn(e)}`}function e_(e,t){if(t==="json")return`${JSON.stringify(e,null,2)}
|
|
51
|
-
`;let n=Wn(e);return n===void 0?`{}
|
|
52
|
-
`:`${qn(n,0)}
|
|
53
|
-
`}function t_(e){let t=Lo("error_format",{message:e}),n=t.handled&&typeof t.result=="string"?t.result:e;Lt(n.endsWith(`
|
|
54
|
-
`)?n:`${n}
|
|
55
|
-
`)}(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]="4db09d54-90c6-548b-baa8-c7ce419f70a2")}catch{}})();var Vc=Ae.join("runtime","history-drift-cache.json"),Ho={EINVAL:"invalid_cache_path",EISDIR:"cache_path_is_directory",ENOENT:"invalid_cache_path",ENOTDIR:"invalid_cache_path",ERR_FS_EISDIR:"cache_path_is_directory"};function Wo(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function Gc(e){let t=Ae.join(e,Vc),n=!1,r="invalid_cache_path";try{n=(await Bn.stat(await Bn.realpath(e))).isDirectory()}catch(o){let i=Wo(o);r=i===void 0?"unknown":Ho[i]??"filesystem_error"}if(!n){Lt(`[pm] warning: history_drift_cache_invalidation_failed:${r}
|
|
56
|
-
`);return}try{await Bn.rm(t,{force:!0})}catch(o){let i=Wo(o);if(i==="ENOENT")return;let s=i===void 0?"unknown":Ho[i]??"filesystem_error";Lt(`[pm] warning: history_drift_cache_invalidation_failed:${s}
|
|
57
|
-
`)}}async function Ye(e){let t=Ae.dirname(Ae.resolve(e));Ae.basename(t)==="history"&&await Gc(Ae.dirname(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]="5228a53a-603c-5c9f-870b-8ea8e0c5d27a")}catch{}})();var Kc={front_matter:{},body:""};function Jc(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function Yc(e,t){let n=Jc(t);if(n.length===0)return!0;let r=e;for(let o of n){if(Array.isArray(r)){if(o==="-"||!/^(0|[1-9]\d*)$/.test(o))return!1;let s=Number(o);if(!Number.isInteger(s)||s<0||s>=r.length)return!1;let a=r[s];if(a===void 0)return!1;r=a;continue}if(typeof r!="object"||r===null||!Object.prototype.hasOwnProperty.call(r,o))return!1;let i=r[o];if(i===void 0)return!1;r=i}return!0}function Qc(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!Yc(r,o.path)?{...o,op:"add"}:o;n.push(i),r=Go.applyPatch(r,[i],!0,!0).newDocument}return n}function Vn(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let n=q(e);return{front_matter:E(n.metadata,re),body:n.body}}function qo(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let n=q(e);return{metadata:E(n.metadata,re),body:n.body}}function Xo(e){return pe(G(Vn(e)))}function g_(){return pe(G(Kc))}function Ne(e){let t=Vn(e.before),n=Vn(e.after),r=qo(e.before),o=qo(e.after),i=Go.compare(r,o),s=Qc(r,i),a=oo(e.author);return{ts:e.nowIso,author:e.author,author_source:e.authorSource??ro(e.author),...a.harness?{agent_harness:a.harness}:{},...a.model?{agent_model:a.model}:{},...a.model_source?{agent_model_source:a.model_source}:{},...a.instance?{agent_instance:a.instance}:{},...a.provenance?{agent_provenance:a.provenance}:{},...a.episode?{agent_episode:a.episode}:{},op:e.op,patch:s,before_hash:pe(G(t)),after_hash:pe(G(n)),message:e.message===void 0?void 0:e.message,...e.context===void 0?{}:{context:e.context}}}function Bo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Zc(e){let t=e.ts.trim();return t.length>0?t:ge()}function Vo(e,t){let n=e.ts;return typeof n=="string"&&n.trim().length>0?e:{...e,ts:t}}function Pt(e,t){let n=Zc(t);if(typeof e=="string"){try{let r=JSON.parse(e);if(Bo(r))return JSON.stringify(Vo(r,n))}catch{}return e}return Bo(e)?JSON.stringify(Vo(e,n)):JSON.stringify(e)}async function Re(e,t){let n=await Z("history_append",{history_path:e,entry:t});if(n.handled){if(n.result===!1)return;if(typeof n.result=="string"){await Fe(e,Pt(n.result,t)),await Ye(e),await Dt(e);return}if(typeof n.result=="object"&&n.result!==null){let r=n.result;if(r.skip===!0)return;let o=typeof r.history_path=="string"?r.history_path:e;if(typeof r.line=="string"){await Fe(o,Pt(r.line,t)),await Ye(o),await Dt(o);return}await Fe(o,Pt(r.entry??t,t)),await Ye(o),await Dt(o);return}}await Fe(e,Pt(t,t)),await Ye(e),await jo(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]="c8668470-7e57-5dee-8e41-298e7c697b77")}catch{}})();var ed={metadata:{},body:""};function Ft(){return structuredClone(ed)}function jt(e){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return Xo($t(e))}catch{}return pe(G({replay_fallback:!0,metadata:e.metadata,body:e.body}))}function $t(e){return{metadata:e.metadata,body:e.body}}function x_(e,t={}){return q($t(e),t)}function T_(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=q(e);return{metadata:E(t.metadata,re),body:t.body}}function Ko(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function td(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function Yo(e){return Array.isArray(e)?e.filter(td).map(t=>({...t,path:Ko(t.path),from:typeof t.from=="string"?Ko(t.from):void 0})):[]}function nd(e){return typeof e=="object"&&e!==null&&"metadata"in e&&"body"in e&&typeof e.body=="string"&&typeof e.metadata=="object"&&e.metadata!==null}function zt(e,t){try{let n=Yo(t),r=Gn.applyPatch(structuredClone(e),n,!0,!1).newDocument;return nd(r)?{ok:!0,document:{metadata:r.metadata,body:r.body}}:{ok:!1,error:new Error("history_replay_invalid_document_shape")}}catch(n){return{ok:!1,error:n}}}function Xn(e){let t=Ft();for(let n=0;n<e.length;n+=1){let r=e[n];if(jt(t)!==r.before_hash)return{ok:!1,errors:[`verify_failed:before_hash_mismatch:entry_${n+1}`]};let o=zt(t,r.patch);if(!o.ok)return{ok:!1,errors:[`verify_failed:patch_apply_failed:entry_${n+1}`]};if(t=o.document,jt(t)!==r.after_hash)return{ok:!1,errors:[`verify_failed:after_hash_mismatch:entry_${n+1}`]}}return{ok:!0,errors:[]}}function Jo(e,t){try{return{ok:!0,document:Gn.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function rd(e,t){let n=structuredClone(e),r=0,o=0;for(let a of Yo(t)){let d=Jo(n,a);if(d.ok){n=d.document;continue}if(a.op==="replace"){let l=Jo(n,{...a,op:"add"});if(l.ok){n=l.document,r+=1;continue}}o+=1}let i=n;return{document:{metadata:typeof i.metadata=="object"&&i.metadata!==null?i.metadata:{},body:typeof i.body=="string"?i.body:e.body},convertedReplaceToAdd:r,skippedOps:o}}function O_(e){let t=Ft(),n=[],r=[],o=0,i=0,s=0,a=0;for(let d=0;d<e.length;d+=1){let l=e[d],m=jt(t),f=zt(t,l.patch),h,_,S=!1,v=0,w=0;if(f.ok)h=f.document,_=l.patch;else{let J=rd(t,l.patch);h=J.document,_=Gn.compare(t,h),S=!0,v=J.convertedReplaceToAdd,w=J.skippedOps,s+=v,a+=w,i+=1}let N=jt(h),R=m!==l.before_hash||N!==l.after_hash;R&&(o+=1),n.push({...l,patch:_,before_hash:m,after_hash:N}),r.push({index:d+1,rehashed:R,patch_repaired:S,converted_replace_to_add:v,skipped_ops:w}),t=h}return{entries:n,finalDocument:t,entriesRehashed:o,entriesPatchRepaired:i,convertedReplaceToAdd:s,skippedOps:a,details:r}}function C_(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
|
|
58
|
-
`)}
|
|
59
|
-
`}import od from"node:crypto";import Qo 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]="50a277b9-d530-5aa0-8bd0-8eb0d36911e5")}catch{}})();function ei(e){let t=(e??"").trim().toLowerCase();return t?t.endsWith("-")?t:`${t}-`:"pm-"}function Kn(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function Jn(e,t){let n=ei(t),r=Kn(e);return r.startsWith(n)?r:`${n}${r}`}function id(e){let t=uo(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=od.randomInt(0,36).toString(36);return n}async function sd(e,t,n){let r=[...new Set(Object.values(n))].flatMap(o=>[Qo.join(e,o,`${t}.md`),Qo.join(e,o,`${t}.toon`)]);return(await Promise.all(r.map(o=>pt(o)))).some(Boolean)}var Zo=4,ti=12;function ad(e){return typeof e!="number"||!Number.isFinite(e)?Zo:Math.min(ti,Math.max(Zo,Math.trunc(e)))}async function P_(e,t,n={}){let r=ad(n.tokenLength),o=Math.min(r+6,ti),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${ei(t)}${id(r)}`;if(n.probeExisting===!1||!await sd(e,a,n.typeToFolder??me))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import we from"node:fs/promises";import ri from"node:path";import{randomUUID as cd}from"node:crypto";import{createRequire as dd}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]="e94075b0-810d-506c-b6a2-ae322526c078")}catch{}})();var ld="metadata-query-index.sqlite",Qe="4";function ud(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}var Ut;function fd(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?ud(t):null}function Ze(){return Ut!==void 0||(Ut=fd(process.versions.node,dd(import.meta.url))),Ut}function ni(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function De(e){return ri.join(e,"runtime",ld)}function md(e){e.exec(`
|
|
60
|
-
PRAGMA foreign_keys = ON;
|
|
61
|
-
PRAGMA journal_mode = OFF;
|
|
62
|
-
PRAGMA synchronous = OFF;
|
|
63
|
-
CREATE TABLE metadata (
|
|
64
|
-
key TEXT PRIMARY KEY,
|
|
65
|
-
value TEXT NOT NULL
|
|
66
|
-
) STRICT;
|
|
67
|
-
CREATE TABLE items (
|
|
68
|
-
id TEXT PRIMARY KEY,
|
|
69
|
-
relative_path TEXT NOT NULL UNIQUE,
|
|
70
|
-
metadata_json TEXT NOT NULL,
|
|
71
|
-
status TEXT NOT NULL,
|
|
72
|
-
type TEXT NOT NULL,
|
|
73
|
-
priority INTEGER NOT NULL,
|
|
74
|
-
updated_at TEXT NOT NULL,
|
|
75
|
-
created_at TEXT NOT NULL,
|
|
76
|
-
parent TEXT,
|
|
77
|
-
assignee TEXT,
|
|
78
|
-
sprint TEXT,
|
|
79
|
-
release TEXT
|
|
80
|
-
) STRICT;
|
|
81
|
-
CREATE INDEX items_default_order
|
|
82
|
-
ON items(priority, updated_at DESC, id);
|
|
83
|
-
CREATE INDEX items_status_default_order
|
|
84
|
-
ON items(status, priority, updated_at DESC, id);
|
|
85
|
-
CREATE INDEX items_type_default_order
|
|
86
|
-
ON items(type, priority, updated_at DESC, id);
|
|
87
|
-
CREATE INDEX items_parent_default_order
|
|
88
|
-
ON items(parent, priority, updated_at DESC, id);
|
|
89
|
-
CREATE TABLE item_metadata_keys (
|
|
90
|
-
item_id TEXT NOT NULL,
|
|
91
|
-
key TEXT NOT NULL,
|
|
92
|
-
PRIMARY KEY(item_id, key),
|
|
93
|
-
FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
|
|
94
|
-
) STRICT;
|
|
95
|
-
CREATE INDEX item_metadata_keys_key_item
|
|
96
|
-
ON item_metadata_keys(key, item_id);
|
|
97
|
-
CREATE TABLE item_linked_files (
|
|
98
|
-
item_id TEXT NOT NULL,
|
|
99
|
-
path TEXT NOT NULL,
|
|
100
|
-
scope TEXT NOT NULL,
|
|
101
|
-
note TEXT,
|
|
102
|
-
PRIMARY KEY(item_id, path, scope),
|
|
103
|
-
FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
|
|
104
|
-
) STRICT;
|
|
105
|
-
CREATE INDEX item_linked_files_path_scope_item
|
|
106
|
-
ON item_linked_files(path, scope, item_id);
|
|
107
|
-
CREATE VIRTUAL TABLE item_search USING fts5(
|
|
108
|
-
id UNINDEXED,
|
|
109
|
-
title,
|
|
110
|
-
description,
|
|
111
|
-
tags,
|
|
112
|
-
tokenize = 'unicode61'
|
|
113
|
-
);
|
|
114
|
-
`)}function Wt(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function oi(e,t){let n=t.metadata;e.prepare(`INSERT INTO items(
|
|
115
|
-
id, relative_path, metadata_json, status, type, priority,
|
|
116
|
-
updated_at, created_at, parent, assignee, sprint, release
|
|
117
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
118
|
-
ON CONFLICT(id) DO UPDATE SET
|
|
119
|
-
relative_path = excluded.relative_path,
|
|
120
|
-
metadata_json = excluded.metadata_json,
|
|
121
|
-
status = excluded.status,
|
|
122
|
-
type = excluded.type,
|
|
123
|
-
priority = excluded.priority,
|
|
124
|
-
updated_at = excluded.updated_at,
|
|
125
|
-
created_at = excluded.created_at,
|
|
126
|
-
parent = excluded.parent,
|
|
127
|
-
assignee = excluded.assignee,
|
|
128
|
-
sprint = excluded.sprint,
|
|
129
|
-
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 id = ?").run(n.id),e.prepare("INSERT INTO item_search(id, title, description, tags) VALUES (?, ?, ?, ?)").run(n.id,n.title,n.description,n.tags.join(" "));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 ii(e){let t=De(e.pmRoot),n=Ze();if(!n){await we.rm(t,{force:!0});return}await we.mkdir(ri.dirname(t),{recursive:!0});let r=`${t}.${cd()}.tmp`,o;try{o=new n(r),md(o),o.exec("BEGIN IMMEDIATE"),Wt(o,"version",Qe),Wt(o,"context_fingerprint",e.contextFingerprint),Wt(o,"source_cursor",e.sourceCursor);for(let i of e.rows)oi(o,i);o.exec("COMMIT"),o.close(),o=void 0,await we.rm(t,{force:!0}),await we.rename(r,t)}catch(i){throw o?.close(),await Promise.allSettled([we.rm(r,{force:!0})]),i}}function qt(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function si(e){let t=De(e.pmRoot),n;try{await we.access(t);let r=Ze();if(!r)return!1;n=new r(t),n.exec("PRAGMA foreign_keys = ON");let o=qt(n);if(o.version!==Qe||o.context_fingerprint!==e.contextFingerprint||o.source_cursor!==e.expectedSourceCursor)return n.close(),!1;n.exec("BEGIN IMMEDIATE");let i=n.prepare("DELETE FROM items WHERE relative_path = ?"),s=n.prepare("SELECT id FROM items WHERE relative_path = ?"),a=n.prepare("DELETE FROM item_search WHERE id = ?");for(let d of e.deletedRelativePaths??[]){let l=s.get(d);i.run(d),l&&a.run(l.id)}return e.row&&oi(n,e.row),Wt(n,"source_cursor",e.sourceCursor),n.exec("COMMIT"),n.close(),!0}catch{try{n?.exec("ROLLBACK")}catch{}return n?.close(),!1}}function Ht(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function _d(e){let t=[],n=[];Ht(t,n,"status",e.statuses,"IN"),Ht(t,n,"status",e.excludeStatuses,"NOT IN"),Ht(t,n,"type",e.types,"IN"),Ht(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 H_(e){let t=Ze();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=_d(n),i;try{i=new t(De(e.pmRoot),{readOnly:!0});let s=qt(i);if(s.version!==Qe||s.source_cursor!==e.expectedSourceCursor)return i.close(),null;let a=i.prepare(`SELECT COUNT(*) AS count FROM items${r}`).get(...o),d=[],l="";n.limit!==void 0?(l+=" LIMIT ?",d.push(Math.max(0,Math.floor(n.limit))),n.offset!==void 0&&(l+=" OFFSET ?",d.push(Math.max(0,Math.floor(n.offset))))):n.offset!==void 0&&(l+=" LIMIT -1 OFFSET ?",d.push(Math.max(0,Math.floor(n.offset))));let f=i.prepare(`SELECT metadata_json FROM items${r}
|
|
130
|
-
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${l}`).all(...o,...n.terminalStatuses??[],...d).map(h=>{let _=JSON.parse(String(h.metadata_json));if(!_.id)throw new TypeError("Indexed metadata row has no id");return _});return i.close(),{source_cursor:s.source_cursor,total:Number(a.count),items:f}}catch{return i?.close(),null}}async function W_(e){let t=Ze();if(!t||e.paths.length===0)return null;let n;try{n=new t(De(e.pmRoot),{readOnly:!0});let r=qt(n);if(r.version!==Qe||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}`,d=n.prepare(`SELECT COUNT(DISTINCT item_id) AS count
|
|
131
|
-
FROM item_linked_files
|
|
132
|
-
WHERE ${a}`).get(...s),l=ni(e.limit,50),m=ni(e.offset,0),f=n.prepare(`SELECT items.id, items.metadata_json
|
|
133
|
-
FROM items
|
|
134
|
-
WHERE EXISTS (
|
|
135
|
-
SELECT 1 FROM item_linked_files
|
|
136
|
-
WHERE item_linked_files.item_id = items.id AND ${a}
|
|
137
|
-
)
|
|
138
|
-
ORDER BY items.priority ASC, items.updated_at DESC, items.id ASC
|
|
139
|
-
LIMIT ? OFFSET ?`).all(...s,l,m),h=[];if(f.length>0){let _=f.map(w=>String(w.id)),S=n.prepare(`SELECT item_id, path, scope, note
|
|
140
|
-
FROM item_linked_files
|
|
141
|
-
WHERE item_id IN (${_.map(()=>"?").join(", ")})
|
|
142
|
-
AND ${a}
|
|
143
|
-
ORDER BY path ASC, scope ASC`).all(..._,...s),v=new Map(_.map(w=>[w,[]]));for(let w of S){let N=String(w.item_id),R=v.get(N);R.push({path:String(w.path),scope:String(w.scope),...w.note===null?{}:{note:String(w.note)}}),v.set(N,R)}for(let w of f){let N=JSON.parse(String(w.metadata_json));h.push({item:N,files:v.get(String(w.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(d.count),matches:h}}catch{return n?.close(),null}}async function q_(e){let t=Ze();if(!t)return null;let n;try{n=new t(De(e.pmRoot),{readOnly:!0});let r=qt(n);if(r.version!==Qe||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let i=n.prepare(`SELECT items.metadata_json
|
|
144
|
-
FROM item_search
|
|
145
|
-
JOIN items ON items.id = item_search.id
|
|
146
|
-
WHERE item_search MATCH ?
|
|
147
|
-
ORDER BY bm25(item_search), items.priority, items.updated_at DESC, items.id
|
|
148
|
-
LIMIT ?`).all(e.query,Math.max(0,Math.floor(e.limit))).map(s=>JSON.parse(String(s.metadata_json)));return n.close(),{source_cursor:r.source_cursor,items:i}}catch{return n?.close(),null}}async function Bt(e){await we.rm(De(e),{force:!0})}import P from"node:fs/promises";import A from"node:path";import{createHash as Pd,randomUUID as Ei}from"node:crypto";import te from"node:fs/promises";import Yn from"node:path";import{randomUUID as pd}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]="c638b65d-148a-5b42-8f24-d6fa9d5ac7d3")}catch{}})();function yd(e){let t;try{t=JSON.parse(e)}catch{return{info:null,warnings:["lock_info_invalid_json"]}}if(typeof t!="object"||t===null||Array.isArray(t))return{info:null,warnings:["lock_info_invalid_shape"]};let n=t,r=n.id,o=n.pid,i=n.owner,s=n.created_at,a=n.ttl_seconds;return typeof r!="string"||typeof o!="number"||!Number.isFinite(o)||typeof i!="string"||typeof s!="string"||typeof a!="number"||!Number.isFinite(a)?{info:null,warnings:["lock_info_invalid_shape"]}:{info:{id:r,pid:o,owner:i,created_at:s,ttl_seconds:a},warnings:[]}}async function li(e){try{let t=await te.readFile(e,"utf8");return await X({path:e,scope:"project"}),yd(t)}catch(t){return et(t,"ENOENT")?{info:null,warnings:[]}:{info:null,warnings:["lock_info_read_failed"]}}}function et(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}async function ui(e,t){await B({path:e,scope:"project",op:t})}function hd(e,t,n){return{id:e,pid:process.pid,owner:t,created_at:ge(),ttl_seconds:n}}async function gd(e,t,n,r){await te.mkdir(Yn.dirname(e),{recursive:!0});let o=await te.open(e,"wx");try{await o.writeFile(`${JSON.stringify(hd(t,n,r),null,2)}
|
|
149
|
-
`,"utf8")}finally{await o.close()}await ui(e,"lock:create")}async function fi(e,t){try{return await te.unlink(e),await ui(e,t),!0}catch{return!1}}function mi(e,t){let n=e?.created_at?Date.parse(e.created_at):Number.NaN;return(Number.isFinite(n)?Date.now()-n:Number.POSITIVE_INFINITY)>t*1e3}function bd(e){return e?.owner?` (owner ${e.owner})`:""}var wd=25,Ed=200,kd=250,Sd=3,vd=".stale-cleanup",_i="owner.json",Id=1e4,xd=5*6e4;function ai(e){if(typeof e=="string"){let t=e.trim();if(!/^\d+$/.test(t))return;let n=Number(t);return Number.isSafeInteger(n)?n:void 0}if(typeof e=="number"&&Number.isFinite(e)&&e>=0)return Math.trunc(e)}function Td(e){let t=process.env.PM_LOCK_WAIT_MS,n=ai(t);if(n!==void 0)return n;let r=ai(e);return r!==void 0?r:0}function Od(e){let t=Math.max(1,Math.round(e*(.5+Math.random())));return new Promise(n=>setTimeout(n,t))}function pi(e,t,n){let r=n>0?` after waiting ${n}ms`:"";return new T(`Item ${e} is locked${bd(t)}${r}`,I.CONFLICT,{code:"lock_conflict",recovery:{retry_after_ms:kd}})}function Cd(e){if(typeof e=="function")return e;if(typeof e=="object"&&e!==null&&"release"in e){let t=e.release;return typeof t=="function"?t:null}return null}function Ad(e,t,n,r){if(!n&&r){let o=t.warnings.length>0?` (${t.warnings.join(",")})`:"";throw new T(`Item ${e} lock is stale${o}; rerun with --force when supported for this command`,I.CONFLICT)}}function Nd(e){let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!="object"||t===null||Array.isArray(t))return null;let n=t,r=n.pid,o=n.token;return typeof r!="number"||!Number.isInteger(r)||r<=0||typeof o!="string"||o.length===0?null:{pid:r,token:o}}async function yi(e){try{return Nd(await te.readFile(Yn.join(e,_i),"utf8"))}catch{return null}}function Rd(e){try{return process.kill(e,0),!0}catch(t){return!et(t,"ESRCH")}}async function Qn(e){try{return await te.rm(e,{recursive:!0,force:!0}),!0}catch{return!1}}async function ci(e,t){let n=await yi(e);n===null||n.token!==t||await Qn(e)}async function di(e){try{await te.mkdir(e)}catch(n){return et(n,"EEXIST"),null}let t={pid:process.pid,token:pd()};try{await te.writeFile(Yn.join(e,_i),`${JSON.stringify(t)}
|
|
150
|
-
`,"utf8")}catch{return await Qn(e),null}return t}async function Dd(e){let t;try{let r=await te.stat(e);if(t=Date.now()-r.mtimeMs,t<=Id)return!1}catch(r){return et(r,"ENOENT")}let n=await yi(e);return n!==null&&Rd(n.pid)&&t<=xd?!1:Qn(e)}async function Md(e,t){let n=`${e}${vd}`,r=await di(n);if(r!==null)return async()=>ci(n,r.token);if(!await Dd(n))return null;let o=await di(n);return o===null?null:async()=>ci(n,o.token)}async function Ld(e){let t=await Md(e.lockPath,e.id);if(t===null)return{lockInfo:e.fallbackLockInfo,shouldRetryCreate:!1,staleRemovalCounted:!1};try{let n=await li(e.lockPath);if(n.info===null&&n.warnings.length===0)return{lockInfo:n,shouldRetryCreate:!0,staleRemovalCounted:!1};if(!mi(n.info,e.ttlSeconds))return{lockInfo:n,shouldRetryCreate:!1,staleRemovalCounted:!1};if(Ad(e.id,n,e.force,e.forceRequiredForStaleLock),e.staleRemovals>=Sd)throw pi(e.id,n.info,Date.now()-e.startedAtMs);return{lockInfo:n,shouldRetryCreate:await fi(e.lockPath,"lock:stale_remove"),staleRemovalCounted:!0}}finally{await t()}}async function ne(e,t,n,r,o=!1,i=!0,s){let a=await Z("lock_acquire",{pm_root:e,id:t,ttl_seconds:n,owner:r,force:o,force_required_for_stale_lock:i});if(a.handled){let _=Cd(a.result);if(_)return async()=>{await Promise.resolve(_()),await Z("lock_release",{pm_root:e,id:t,owner:r})}}let d=Ar(e,t),l=Td(s),m=Date.now(),f=0,h=wd;for(;;)try{return await gd(d,t,r,n),async()=>{await fi(d,"lock:release"),await Z("lock_release",{pm_root:e,id:t,owner:r})}}catch(_){if(!et(_,"EEXIST"))throw new T(`Failed to acquire lock for ${t}: ${Nr(_)}`,I.GENERIC_FAILURE);let S=await li(d);if(mi(S.info,n)){let w=await Ld({lockPath:d,id:t,ttlSeconds:n,force:o,forceRequiredForStaleLock:i,staleRemovals:f,waitBudgetMs:l,startedAtMs:m,fallbackLockInfo:S});if(S=w.lockInfo,w.staleRemovalCounted&&(f+=1),w.shouldRetryCreate)continue}let v=Date.now()-m;if(l===0||v>=l)throw pi(t,S.info,l===0?0:v);await Od(Math.min(h,l-v)),h=Math.min(h*2,Ed)}}(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]="8ed70856-9cba-599d-8b53-21a981af1f40")}catch{}})();var K=8,ki=500,jd="metadata-derived-index",Fd="metadata-cache.json",$d="metadata-cache-bodies.json",zd="metadata-cache-collections.json",Ud="metadata-cache-delta.json",Hd="metadata-cache-manifest.json",hi=4,Wd=["comments","notes","learnings","files","tests","test_runs","docs"];function Si(){return _t(Xe())}function Gt(e){let t={...e},n={};for(let r of Wd)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function vi(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function Ii(e,t,n,r){let o=Pd("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 Xt(e){return A.join(e,"runtime",Fd)}function Kt(e){return A.join(e,"runtime",$d)}function Jt(e){return A.join(e,"runtime",zd)}function er(e){return A.join(e,"runtime",Ud)}function tr(e){return A.join(e,"runtime",Hd)}function Yt(e,t){let n=A.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var qd=24,H=new Map,Qt=new WeakMap;function nr(e){return Qt.get(e)??e.source_cursor}function Bd(e,t){let n=nr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){Qt.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 Vd(e,t){if(!e)return;let n=nr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){Qt.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 Gd(e,t){if(!e)return;let n=nr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){Qt.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 Xd(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(Bd(e,r),Vd(t,r),Gd(n,r))}function Zn(e,t){H.size>=qd&&!H.has(e)&&ht(H),H.set(e,t)}async function ce(e,t){let n;try{n=await P.stat(e)}catch{return H.delete(e),null}let r=H.get(e);if(r&&tt(r.signature,n.mtimeMs,n.ctimeMs,n.size))return H.delete(e),H.set(e,r),r.envelope;let o;try{o=t(await P.readFile(e,"utf8"))}catch{o=null}return Zn(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function Kd(e,t,n){let r=a=>{let d=JSON.parse(a);return d.version!==K||typeof d.source_cursor!="string"||typeof d.entries!="object"||d.entries===null?null:d},o=Xt(e),i=await ce(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await ce(Yt(o,t),r);return s===null&&ot(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function Jd(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==K||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=Kt(e),o=await ce(r,n);return t&&o?.context_fingerprint!==t?await ce(Yt(r,t),n):o}async function Yd(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==K||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=Jt(e),o=await ce(r,n);return t&&o?.context_fingerprint!==t?await ce(Yt(r,t),n):o}async function rr(e){let t=er(e),n=await ce(t,r=>{let o=JSON.parse(r);return o.version!==K||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 P.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function or(e){let t=tr(e),n=await ce(t,r=>{let o=JSON.parse(r);return o.version!==K||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 P.stat(t),await Me(e)}catch{}return null}async function nt(e,t){await P.mkdir(A.dirname(e),{recursive:!0}),await W(e,JSON.stringify(t));try{let r=await P.stat(e);Zn(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{H.delete(e)}let n=A.dirname(A.dirname(e));if(e===Xt(n)||e===Kt(n)||e===Jt(n)){let r=Yt(e,t.context_fingerprint);await W(r,JSON.stringify(t));try{let d=await P.stat(r);Zn(r,{signature:{mtime_ms:d.mtimeMs,ctime_ms:d.ctimeMs,size:d.size},envelope:t})}catch{H.delete(r)}let o=A.dirname(e),i=A.extname(e),s=A.basename(e,i),a=(await P.readdir(o,{withFileTypes:!0}).catch(()=>[])).filter(d=>d.isFile()&&d.name!==A.basename(e)&&d.name.startsWith(`${s}.`)&&d.name.endsWith(i)).map(d=>A.join(o,d.name));if(a.length>hi){let d=(await Promise.all(a.map(async l=>{try{return{path:l,mtime:(await P.stat(l)).mtimeMs}}catch{return null}}))).filter(l=>l!==null);for(let l of d.sort((m,f)=>m.mtime-f.mtime).slice(0,Math.max(0,d.length-hi)))await P.rm(l.path,{force:!0}),H.delete(l.path)}}}function Qd(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function xi(e,t,n){return e===void 0||Qd(e,t,n)}function ot(e,t){e&&!e.includes(t)&&e.push(t)}function tt(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function Zd(e,t,n){let r=A.join(e,t);try{let o=await P.readdir(r);return{folder:t,dirPath:r,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&o.code!=="ENOENT"&&ot(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function el(e,t){try{let n=await P.stat(A.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 Vt(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await el(e,n))))}function rt(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&&tt(o,r.mtime_ms,r.ctime_ms,r.size)})}function tl(e){return yt.some(t=>e.toLowerCase().endsWith(t))}function nl(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function rl(e,t,n){if(n)for(let r of await X({path:e,scope:"project"}))ot(t,r)}function gi(e,t,n,r){if(e)return t&&n?n.collections:r}async function ol(e,t,n){let r=await P.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=pn(e);await rl(e,n.warnings,n.dispatchReadHooks);let d=n.previousEntries[t],l=d!==void 0&&tt(d,o,i,s),m=n.previousBodies[t],f=m!==void 0&&tt(m,o,i,s),h=n.previousCollections[t],_=h!==void 0&&tt(h,o,i,s);if(!(!l||n.includeBody&&!f||n.includeCollections&&!_))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:d.metadata,heavyMetadata:gi(n.includeCollections,_,h,void 0),bodyLength:d.body_length,body:n.includeBody?m.body:void 0};let v=await P.readFile(e,"utf8"),w=Ot(v,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:R=>ot(n.warnings,R)}),N=Gt(w.metadata);return nl(n.state.misses,n.includeBody,n.includeCollections,l,f,_),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:l?d.metadata:N.light,heavyMetadata:gi(n.includeCollections,_,h,N.heavy),bodyLength:l?d.body_length:w.body.length,body:n.includeBody?w.body:void 0}}function il(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?vi(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};xi(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function sl(e,t,n,r){try{let o=await ol(t,n,r);il(t,n,r,o)}catch{ot(r.warnings,`item_list_item_read_failed:${e}/${A.basename(t)}`)}}function al(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function cl(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function dl(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function ll(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}function ul(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!tl(s))continue;let a=A.join(o,s),d=A.relative(t.pmRoot,a);n.push(sl(r,a,d,t))}return n}async function fl(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!rt(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await nt(Xt(e.pmRoot),{version:K,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await nt(tr(e.pmRoot),{version:K,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,entry_count:Object.keys(e.state.newEntries).length,directory_signatures:e.directorySignatures});let n=[...e.state.documentsById.values()].map(({candidate:r})=>({relativePath:A.relative(e.pmRoot,r.item_path),metadata:Gt(r.metadata).light,linkedFiles:r.metadata.files??[]}));n.length>=e.minimumIndexedItems?await ii({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:n}):await Bt(e.pmRoot)}catch{}}async function ml(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 nt(Kt(e.pmRoot),{version:K,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function _l(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 nt(Jt(e.pmRoot),{version:K,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function ir(e,t,n={}){let r=await or(e);return n.required!==!0&&(r===null||r.entry_count<ki)?async()=>{}:ne(e,jd,30,t,!1,!1,3e3)}async function mp(e,t){let n=await or(e);if(n===null)return null;let r=await rr(e);if(r.invalid)return await Me(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&&!rt(i,await Vt(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function bi(e,t){let n=A.relative(e,t);return n===""||n===".."||n.startsWith(`..${A.sep}`)||A.isAbsolute(n)?null:n}async function Me(e){await Promise.all([Xt(e),Kt(e),Jt(e),er(e),tr(e)].map(async t=>{await P.rm(t,{force:!0}),H.delete(t)})),await Bt(e)}async function pl(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await P.stat(e.mutation.itemPath),n=Gt(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 yl(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function sr(e){let t=bi(e.pmRoot,e.itemPath),n=e.previousItemPath?bi(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await Me(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=Ii(e.preferredFormat,e.typeToFolder,e.schema,Si()),o=await or(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await rr(e.pmRoot);if(s.invalid)return await Me(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=yl(s.envelope,r,i),d=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 pl({mutation:e});let l=Ei();return await nt(er(e.pmRoot),{version:K,context_fingerprint:r,base_source_cursor:i,source_cursor:l,directory_signatures:await Vt(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await si({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:d,sourceCursor:l,row:e.document===null?null:{relativePath:t,metadata:Gt(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await Bt(e.pmRoot),[]}catch{return await Me(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function hl(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function wi(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function gl(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function bl(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=pn(n);if(!o)continue;let i=e.includeCollections?vi(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);xi(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:A.join(e.pmRoot,n)}})}return[...t.values()].sort((n,r)=>n.candidate.metadata.id.localeCompare(r.candidate.metadata.id)).map(n=>n.candidate)}function wl(e){return e.forceSourceScan||Pn()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!rt(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||wi(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||wi(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&gl(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function Zt(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,d=Si(),l=Ii(t,n,o,d),m=await rr(e);m.invalid&&await Me(e);let f=await Kd(e,l,i.cacheDiagnostics),h=s?await Jd(e,l):null,_=a?await Yd(e,l):null;Xd(f,h,_,m.envelope);let S=al(f,l),v=cl(h,l),w=dl(_,l),N=[...new Set(Object.values(n))],R=await Vt(e,N),J=Object.keys(S),F=Math.max(1,Math.floor(i.derivedIndexMinimumItems??ki));if(wl({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:l,existingCache:f,existingBodyCache:h,existingCollectionsCache:_,directorySignatures:R,entryKeys:J,minimumIndexedItems:F,includeBody:s,includeCollections:a,previousBodies:v,previousCollections:w}))return bl({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:S,previousBodies:v,previousCollections:w});let dn=await Promise.all(N.map(ps=>Zd(e,ps,r))),at=Pn(),Y=ll(),ln={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:d,includeBody:s,includeCollections:a,dispatchReadHooks:at,previousEntries:S,previousBodies:v,previousCollections:w,state:Y};await Promise.all(ul(dn,ln));let ct=await Vt(e,N),gr=rt(R,ct)?ct:{},un=Y.misses.metadata||Object.keys(S).length!==Object.keys(Y.newEntries).length||!rt(f?.directory_signatures,gr)||f===null?Ei():f.source_cursor;return await fl({pmRoot:e,contextFingerprint:l,sourceCursor:un,existingCache:f,previousEntries:S,directorySignatures:gr,state:Y,minimumIndexedItems:F}),s&&await ml({pmRoot:e,contextFingerprint:l,sourceCursor:un,existingBodyCache:h,previousBodies:v,state:Y}),a&&await _l({pmRoot:e,contextFingerprint:l,sourceCursor:un,existingCollectionsCache:_,previousCollections:w,state:Y}),hl(Y)}async function Ti(e,t,n,r,o){return(await Zt(e,t,n,r,o,{includeBody:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}async function Oi(e,t,n,r,o){return(await Zt(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}import El from"node:fs/promises";import Ci 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]="86b45d6b-2192-5d31-8f73-94d6e6b17dfc")}catch{}})();var en="_workspace";function Ai(e){return Ci.join(e,"history",`${en}.jsonl`)}function kl(e,t){return{metadata:{id:en,title:"Workspace state",description:"Audited singleton workspace document state.",type:"Chore",status:"open",priority:2,tags:["workspace-history"],created_at:t,updated_at:t,documents:e},body:""}}function Ni(e){let t=Ft();for(let n of e)t=zt(t,n.patch).document;return $t(t)}async function Ri(e){let t=Ai(e.pmRoot),n=await Ke(t,en),r=Xn(n);if(!r.ok)throw new TypeError(`Workspace history verification failed: ${r.errors.join(", ")}`);let o=e.idempotencyKey===void 0?void 0:n.find(f=>f.op===`${e.op}:${e.idempotencyKey}`);if(o)return{entry:o,historyPath:t};let i=new Date().toISOString(),s=n.length===0?je:Ni(n),a="documents"in s.metadata&&typeof s.metadata.documents=="object"&&s.metadata.documents!==null&&!Array.isArray(s.metadata.documents)?s.metadata.documents:{},d=a[e.documentPath];if(d!==void 0&&G(d)!==G(e.before))throw new T(`Workspace history state for "${e.documentPath}" changed outside the audited mutation path.`,I.CONFLICT,{code:"workspace_history_state_conflict",reason:"out_of_band_workspace_state",required:"Reconcile the singleton document with its matching _workspace history state before retrying the mutation.",why:"Accepting the write would make the append-only audit stream describe a state that was not actually observed.",examples:["pm history _workspace --verify","pm validate --check-history-drift --fix-hints"],nextSteps:["Review the version-control change that altered the singleton and preserve the intended document plus its matching workspace history.","Rerun the original mutation only after the on-disk singleton agrees with the latest audited workspace state."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify"}});let l=kl({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),m=Ne({nowIso:i,author:e.author,op:e.idempotencyKey===void 0?e.op:`${e.op}:${e.idempotencyKey}`,before:s,after:l,message:e.message});return await Re(t,m),{entry:m,historyPath:t}}async function Ip(e){let t=await ne(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Ri(e)}finally{await t()}}async function xp(e){let t=await ne(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=Ai(e.pmRoot),r=await Ke(n,en),o=Xn(r);if(!o.ok)throw new TypeError(`Workspace history verification failed: ${o.errors.join(", ")}`);let i=r.length===0?je:Ni(r),s=Ne({nowIso:new Date().toISOString(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await Re(n,s),{entry:s,historyPath:n}}finally{await t()}}async function Di(e,t){if(t===e.raw)return!1;let n=t===null?null:JSON.parse(t),r=JSON.parse(e.raw);await W(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await Ri({pmRoot:e.pmRoot,documentPath:Ci.relative(e.pmRoot,e.filePath).replaceAll("\\","/"),before:n,after:r,op:e.op,author:e.author,lockTtlSeconds:e.lockTtlSeconds,lockWaitMs:e.lockWaitMs,message:e.message})}catch(o){throw t===null?await El.rm(e.filePath,{force:!0}):await W(e.filePath,t),o}return!0}async function Tp(e){let t=await ne(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=await _e(e.filePath),r=await e.mutate(n);return{changed:await Di({...e,raw:r.raw},n),result:r.result}}finally{await t()}}async function Mi(e){let t=await ne(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Di(e,await _e(e.filePath))}finally{await t()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="027f6acb-15cc-5707-85ed-b5298b6b6abe")}catch{}})();var L={ok:!1},u=e=>typeof e=="string"?{ok:!0,value:e}:L,x=e=>typeof e=="boolean"?{ok:!0,value:e}:L;function C(e={}){return t=>typeof t!="number"||!Number.isFinite(t)||e.int&&(!Number.isInteger(t)||!Number.isSafeInteger(t))||e.positive&&t<=0||typeof e.min=="number"&&t<e.min||typeof e.max=="number"&&t>e.max?L:{ok:!0,value:t}}function O(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:L}function p(e,t){return n=>{if(!Array.isArray(n)||t!==void 0&&n.length>t)return L;let r=[];for(let o of n){let i=e(o);if(!i.ok)return L;r.push(i.value)}return{ok:!0,value:r}}}function cr(e,t){return n=>typeof n=="string"&&n.length>0&&n.length<=e&&n===n.trim()&&(t===void 0||t.test(n))?{ok:!0,value:n}:L}function c(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function tn(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return L;let n={};for(let[r,o]of Object.entries(t)){let i=e(o);if(!i.ok)return L;n[r]=i.value}return{ok:!0,value:n}}}function k(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return L;let n=t,r={};for(let[o,i]of Object.entries(e)){let s=i(n[o]);if(!s.ok)return L;s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var Sl=k({key:u,values:p(u),required:c(x),aliases:c(p(u)),description:c(u)}),vl=k({command:O("create","update"),option:u,required:c(x),visible:c(x),enabled:c(x)}),Il=k({name:u,description:c(u),default_status:c(u),folder:c(u),aliases:c(p(u)),required_create_fields:c(p(u)),required_create_repeatables:c(p(u)),options:c(p(Sl)),command_option_policies:c(p(vl))}),xl=k({id:u,aliases:c(p(u)),roles:c(p(O(...wr))),description:c(u),order:c(C())}),Tl=k({key:u,metadata_key:c(u),front_matter_key:c(u),cli_flag:c(u),cli_aliases:c(p(u)),description:c(u),type:c(O(...Er)),commands:c(p(O(...kr))),repeatable:c(x),required:c(x),required_on_create:c(x),required_types:c(p(u)),allow_unset:c(x)}),Ol=e=>{if(!Array.isArray(e)||e.length!==2)return L;let[t,n]=e;return typeof t!="string"||typeof n!="string"?L:{ok:!0,value:[t,n]}},Cl=k({type:u,allowed_transitions:p(Ol)}),Al=c(k({version:c(C({int:!0})),files:c(k({types:c(u),statuses:c(u),fields:c(u),workflows:c(u)})),statuses:c(p(xl)),fields:c(p(Tl)),workflow:c(k({draft_status:c(u),open_status:c(u),in_progress_status:c(u),blocked_status:c(u),close_status:c(u),canceled_status:c(u)})),type_workflows:c(p(Cl)),unknown_field_policy:c(O(...Sr))})),Nl=c(k({preset:c(O(...vr)),ownership_enforcement:c(O("none","warn","strict")),create_mode_default:c(O("progressive","strict")),close_validation_default:c(O("off","warn","strict")),require_close_reason:c(x),parent_reference:c(O("warn","strict_error")),metadata_profile:c(O("core","strict","custom")),force_required_for_stale_lock:c(x),create_default_type:c(u),workflow_enforcement:c(O("off","warn","strict")),duplicate_detection_mode:c(O("off","advisory","strict")),duplicate_detection_threshold:c(C({min:0,max:1})),duplicate_detection_limit:c(C({int:!0,min:0,max:20}))})),Rl=k({name:u,disabled:c(x),require_trusted:c(x),require_provenance:c(x),sandbox_profile:c(O("none","restricted","strict")),allowed_capabilities:c(p(u)),blocked_capabilities:c(p(u)),allowed_surfaces:c(p(u)),blocked_surfaces:c(p(u)),allowed_commands:c(p(u)),blocked_commands:c(p(u)),allowed_actions:c(p(u)),blocked_actions:c(p(u)),allowed_services:c(p(u)),blocked_services:c(p(u))}),ar=O("block","warn"),Dl=e=>typeof e=="string"?ar(e):k({global:c(ar),project:c(ar)})(e),Ml=c(k({mode:c(O("off","warn","enforce")),trust_mode:c(O("off","warn","enforce")),pm_max_version_exceeded_mode:c(Dl),require_provenance:c(x),trusted_extensions:c(p(u)),default_sandbox_profile:c(O("none","restricted","strict")),allowed_extensions:c(p(u)),blocked_extensions:c(p(u)),allowed_capabilities:c(p(u)),blocked_capabilities:c(p(u)),allowed_surfaces:c(p(u)),blocked_surfaces:c(p(u)),allowed_commands:c(p(u)),blocked_commands:c(p(u)),allowed_actions:c(p(u)),blocked_actions:c(p(u)),allowed_services:c(p(u)),blocked_services:c(p(u)),extension_overrides:c(p(Rl))})),Ee=cr(128),Ll=k({harness:cr(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:c(p(Ee,64)),model_environment_keys:c(p(Ee,64)),session_environment_keys:c(p(Ee,64)),provenance_environment_keys:c(tn(p(Ee,64))),provenance_resolvers:c(tn(O("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:c(p(Ee,64)),argv_markers:c(p(Ee,64)),client_names:c(p(Ee,64))}),Pl=k({version:C({int:!0}),id_prefix:u,ids:c(k({token_length:c(C({int:!0,min:4,max:12}))})),author_default:u,agent_identity:c(k({probes_enabled:c(x),identity_vocabulary:c(k({version:C({int:!0,positive:!0}),aliases:tn(cr(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:p(Ll)})),mutation_guard:c(k({require_attributed_author:c(x),secret_guard:c(O("off","advise","block")),stale_in_progress_hours:c(C({int:!0,positive:!0}))})),item_format:c(O("toon","json_markdown")),locks:k({ttl_seconds:C({int:!0}),wait_ms:c(C({int:!0,min:0}))}),checkpoints:c(k({retention_days:c(C({int:!0,positive:!0}))})),output:k({default_format:O("toon","json")}),history:c(k({missing_stream:O("auto_create","strict_error"),compact_policy:c(k({enabled:c(x),max_entries:c(C({int:!0,positive:!0})),trigger:c(O("health_warn","auto"))}))})),validation:c(k({sprint_release_format:O("warn","strict_error"),parent_reference:c(O("warn","strict_error")),metadata_profile:c(O("core","strict","custom")),metadata_required_fields:c(p(u)),lifecycle_stale_blocker_reason_patterns:c(p(u)),lifecycle_closure_like_blocked_reason_patterns:c(p(u)),lifecycle_closure_like_resolution_patterns:c(p(u)),lifecycle_closure_like_actual_result_patterns:c(p(u)),estimate_defaults_by_type:c(tn(C({int:!0,positive:!0})))})),governance:Nl,workflow:c(k({definition_of_done:p(u)})),testing:c(k({record_results_to_items:x})),telemetry:c(k({enabled:x,first_run_prompt_completed:c(x),capture_level:c(O("minimal","redacted","max")),endpoint:c(u),installation_id:c(u),retention_days:c(C({int:!0,positive:!0}))})),agent_guidance:c(k({prompt_completed:c(x),declined:c(x),declined_at:c(u),template_version:c(C({int:!0,positive:!0})),last_checked_files:c(p(u))})),item_types:c(k({definitions:p(Il)})),schema:Al,context:c(k({default_depth:c(O("brief","standard","deep")),activity_limit:c(C({int:!0,positive:!0})),stale_threshold_days:c(C({int:!0,positive:!0})),sections:c(k({hierarchy:c(x),activity:c(x),progress:c(x),recently_created:c(x),unparented:c(x),blockers:c(x),files:c(x),workload:c(x),staleness:c(x),tests:c(x)}))})),extensions:k({enabled:p(u),disabled:p(u),policy:Ml}),search:k({score_threshold:C(),hybrid_semantic_weight:c(C()),max_results:C({int:!0}),embedding_model:u,embedding_corpus_max_characters:c(C()),embedding_batch_size:C({int:!0}),embedding_timeout_ms:c(C({int:!0})),scanner_max_batch_retries:C({int:!0}),provider:c(u),corpus_fields:c(p(u)),mutation_refresh_policy:c(O("cache_only","semantic_configured","semantic_auto")),query_expansion:c(k({enabled:c(x),provider:c(u)})),rerank:c(k({enabled:c(x),model:c(u),top_k:c(C({int:!0,positive:!0}))})),bm25:c(k({k1:c(C()),b:c(C())}))}),providers:k({openai:k({base_url:u,api_key:u,model:u}),ollama:k({base_url:u,model:u})}),vector_store:k({adapter:c(u),collection_name:c(u),qdrant:k({url:u,api_key:u}),lancedb:k({path:u})})});function Li(e){let t=Pl(e);return t.ok?{success:!0,data:t.value}:{success:!1}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2d377bc4-c624-561c-9856-405c82099070")}catch{}})();var jl={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},Pi=120;function dr(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function Fi(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var Fl=Fi(jl),ji=new WeakMap;function $l(e){let t=ji.get(e);if(t)return t;let n=Fi(e);return ji.set(e,n),n}function Np(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return Pi;if(t){let o=$l(t).get(n);if(dr(o))return Math.floor(o)}let r=Fl.get(n);return dr(r)?Math.floor(r):Pi}function lr(e){let t={};if(e===null||typeof e!="object"||Array.isArray(e))return t;for(let[n,r]of Object.entries(e)){let o=n.trim();o.length===0||!dr(r)||(t[o]=Math.floor(r))}return t}import{stat as zl}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]="60da76ea-0bd3-56a9-a2bc-d88ba76e1013")}catch{}})();var nn=new Map;function $i(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function Ul(e){try{let t=await zl(e);return{path:e,mtime_ms:t.mtimeMs,size:t.size}}catch{return{path:e,mtime_ms:null,size:null}}}async function de(e){let t=$i(e),n=await Promise.all(t.map(r=>Ul(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function it(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){let r=e[n],o=t[n];if(r.path!==o.path||r.mtime_ms!==o.mtime_ms||r.size!==o.size)return!1}return!0}function zi(e){return nn.get(e)}function rn(e,t){let n=$i(t.tracked_paths),r=[...t.signatures].map(o=>({path:o.path,mtime_ms:o.mtime_ms,size:o.size})).sort((o,i)=>o.path.localeCompare(i.path));nn.set(e,{tracked_paths:n,signatures:r,value:t.value})}function le(e){if(e){nn.delete(e);return}nn.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a434b9ea-4692-51c5-8761-0f1759fff394")}catch{}})();var Hl="settings:write",Bi=Symbol("pm.settings.persist_source"),Wl=128,ql=new Set(["off","advisory","strict"]);function Ui(e){return structuredClone(xr[e])}function Bl(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:b.governance.preset}function Hi(e,t){let n=typeof t.create_default_type=="string"?t.create_default_type.trim():void 0;return n&&n.length>0&&(e.create_default_type=n),(t.workflow_enforcement==="off"||t.workflow_enforcement==="warn"||t.workflow_enforcement==="strict")&&(e.workflow_enforcement=t.workflow_enforcement),t.require_close_reason===!1&&(e.require_close_reason=!1),e.duplicate_detection_mode=t.duplicate_detection_mode,e.duplicate_detection_threshold=t.duplicate_detection_threshold,e.duplicate_detection_limit=t.duplicate_detection_limit,e}function Vl(e){return e.preset==="custom"?Hi({preset:"custom",ownership_enforcement:e.ownership_enforcement,create_mode_default:e.create_mode_default,close_validation_default:e.close_validation_default,parent_reference:e.parent_reference,metadata_profile:e.metadata_profile,force_required_for_stale_lock:e.force_required_for_stale_lock},e):Hi({preset:e.preset},e)}function Gl(e){let t=typeof e.create_default_type=="string"?e.create_default_type.trim():void 0,n={};t&&t.length>0&&(n.create_default_type=t),(e.workflow_enforcement==="off"||e.workflow_enforcement==="warn"||e.workflow_enforcement==="strict")&&(n.workflow_enforcement=e.workflow_enforcement),typeof e.require_close_reason=="boolean"&&(n.require_close_reason=e.require_close_reason),ql.has(String(e.duplicate_detection_mode))&&(n.duplicate_detection_mode=e.duplicate_detection_mode);let r=e.duplicate_detection_threshold;[typeof r=="number",Number.isFinite(r),Number(r)>=0,Number(r)<=1].every(Boolean)&&(n.duplicate_detection_threshold=r);let o=e.duplicate_detection_limit;return[typeof o=="number",Number.isSafeInteger(o),Number(o)>=0,Number(o)<=20].every(Boolean)&&(n.duplicate_detection_limit=o),n}function sn(e){let t=e.governance??{},n=Bl(t.preset),r=Gl(t);if(n==="custom"){let s=Ui("default"),a=r.require_close_reason??s.require_close_reason;return{preset:n,ownership_enforcement:t.ownership_enforcement??s.ownership_enforcement,create_mode_default:t.create_mode_default??s.create_mode_default,close_validation_default:t.close_validation_default??s.close_validation_default,parent_reference:t.parent_reference??s.parent_reference,metadata_profile:t.metadata_profile??s.metadata_profile,force_required_for_stale_lock:t.force_required_for_stale_lock??s.force_required_for_stale_lock,...r,require_close_reason:a,duplicate_detection_mode:r.duplicate_detection_mode??s.duplicate_detection_mode,duplicate_detection_threshold:r.duplicate_detection_threshold??s.duplicate_detection_threshold,duplicate_detection_limit:r.duplicate_detection_limit??s.duplicate_detection_limit}}let o=Ui(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function Vi(){return structuredClone(b)}function Gi(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:b.search.mutation_refresh_policy}function Xi(e){return typeof e=="boolean"?e:b.search.query_expansion.enabled}function Ki(e){return typeof e!="string"?b.search.query_expansion.provider:e.trim()}function Ji(e){return typeof e=="boolean"?e:b.search.rerank.enabled}function Yi(e){return typeof e!="string"?b.search.rerank.model:e.trim()}function Qi(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:b.search.rerank.top_k}function Zi(e){if(typeof e!="string")return b.vector_store.collection_name;let n=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,Wl);return n.length>0?n:b.vector_store.collection_name}function ur(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function Xl(e,t){let n=e.schema,r=ur(n?.statuses),o=ur(n?.fields),i=ur(n?.type_workflows);return{source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:Le(e.item_types?.definitions),has_source_schema_statuses:r.present,source_schema_statuses:r.values,has_source_schema_fields:o.present,source_schema_fields:o.values,has_source_schema_type_workflows:i.present,source_schema_type_workflows:i.values,runtime_item_type_definitions:Le(t.item_types?.definitions),runtime_schema_statuses:structuredClone(t.schema.statuses),runtime_schema_fields:structuredClone(t.schema.fields),runtime_schema_type_workflows:structuredClone(t.schema.type_workflows??[])}}function es(e,t){Object.defineProperty(e,Bi,{value:t,writable:!0,configurable:!0,enumerable:!1})}function ts(e){let t=e[Bi];if(!(!t||typeof t!="object"))return t}function on(e){let t=structuredClone(e.settings),n=ts(e.settings);return n&&es(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function Kl(e,t,n){let r=Ue(t);return[n,He(e,r.files.types,ze.types),He(e,r.files.statuses,ze.statuses),He(e,r.files.fields,ze.fields),He(e,r.files.workflows,ze.workflows)]}async function Jl(e,t,n){let r=await de(t);rn(e,{tracked_paths:t,signatures:r,value:on(n)})}async function Yl(e,t,n){try{await Jl(e,t,n)}catch{le(e)}}function Wi(e,t){return e.find(n=>n.path===t)}function Ql(e,t,n){for(let r of n){let o=Wi(e,r),i=Wi(t,r);if(!o||!i||!it([o],[i]))return!1}return!0}async function fr(e,t,n,r,o){try{let i=await de(t);if(!Ql(r,i,o)){le(e);return}rn(e,{tracked_paths:t,signatures:i,value:on(n)})}catch{le(e)}}function Zl(e,t){let n=Ue(e.schema),r=Le(e.item_types?.definitions);if(!t)return{item_type_definitions:r,schema_statuses:n.statuses,schema_fields:n.fields,schema_type_workflows:n.type_workflows};let o=n.type_workflows??[],i=ke(r,t.runtime_item_type_definitions),s=ke(n.statuses,t.runtime_schema_statuses),a=ke(n.fields,t.runtime_schema_fields),d=ke(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?Le(t.source_item_type_definitions):[]:r,schema_statuses:s?t.has_source_schema_statuses?structuredClone(t.source_schema_statuses):[]:n.statuses,schema_fields:a?t.has_source_schema_fields?structuredClone(t.source_schema_fields):[]:n.fields,schema_type_workflows:d?t.has_source_schema_type_workflows?structuredClone(t.source_schema_type_workflows):void 0:n.type_workflows}}function st(e){return{settings:Vi(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function eu(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function _r(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function ns(e){let t=b.agent_guidance,n=e?.template_version;return{prompt_completed:e?.prompt_completed===!0,declined:e?.declined===!0,declined_at:typeof e?.declined_at=="string"?e.declined_at:t.declined_at,template_version:typeof n=="number"&&Number.isInteger(n)&&n>0?n:t.template_version,last_checked_files:_r(e?.last_checked_files??t.last_checked_files)}}function V(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function tu(e){return e==="off"||e==="warn"||e==="enforce"?e:b.extensions.policy.mode}function nu(e){return e==="off"||e==="warn"||e==="enforce"?e:b.extensions.policy.trust_mode}function rs(e){return e==="none"||e==="restricted"||e==="strict"?e:b.extensions.policy.default_sandbox_profile}function ru(e){let t=e.name.trim().toLowerCase();if(t.length===0)return null;let n={name:t};e.disabled===!0&&(n.disabled=!0),e.require_trusted===!0&&(n.require_trusted=!0),e.require_provenance===!0&&(n.require_provenance=!0),e.sandbox_profile!==void 0&&(n.sandbox_profile=rs(e.sandbox_profile));let r=V(e.allowed_capabilities),o=V(e.blocked_capabilities),i=V(e.allowed_surfaces),s=V(e.blocked_surfaces),a=V(e.allowed_commands),d=V(e.blocked_commands),l=V(e.allowed_actions),m=V(e.blocked_actions),f=V(e.allowed_services),h=V(e.blocked_services);return r.length>0&&(n.allowed_capabilities=r),o.length>0&&(n.blocked_capabilities=o),i.length>0&&(n.allowed_surfaces=i),s.length>0&&(n.blocked_surfaces=s),a.length>0&&(n.allowed_commands=a),d.length>0&&(n.blocked_commands=d),l.length>0&&(n.allowed_actions=l),m.length>0&&(n.blocked_actions=m),f.length>0&&(n.allowed_services=f),h.length>0&&(n.blocked_services=h),n}function ou(e){let t=new Map;for(let n of e??[]){let r=ru(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function mr(e){return e==="block"||e==="warn"?e:void 0}function iu(e){if(typeof e=="string")return mr(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=mr(e.global),n=mr(e.project);return t===void 0&&n===void 0?void 0:{...t!==void 0?{global:t}:{},...n!==void 0?{project:n}:{}}}}function z(e,t){return V(e?.[t]??b.extensions.policy[t])}function os(e){let t=iu(e?.pm_max_version_exceeded_mode);return{mode:tu(e?.mode),trust_mode:nu(e?.trust_mode),...t!==void 0?{pm_max_version_exceeded_mode:t}:{},require_provenance:e?.require_provenance===!0,trusted_extensions:z(e,"trusted_extensions"),default_sandbox_profile:rs(e?.default_sandbox_profile),allowed_extensions:z(e,"allowed_extensions"),blocked_extensions:z(e,"blocked_extensions"),allowed_capabilities:z(e,"allowed_capabilities"),blocked_capabilities:z(e,"blocked_capabilities"),allowed_surfaces:z(e,"allowed_surfaces"),blocked_surfaces:z(e,"blocked_surfaces"),allowed_commands:z(e,"allowed_commands"),blocked_commands:z(e,"blocked_commands"),allowed_actions:z(e,"allowed_actions"),blocked_actions:z(e,"blocked_actions"),allowed_services:z(e,"allowed_services"),blocked_services:z(e,"blocked_services"),extension_overrides:ou(e?.extension_overrides??b.extensions.policy.extension_overrides)}}function is(e){return[...new Set((e??[]).map(n=>n.trim().toLowerCase().replaceAll("-","_")))].filter(n=>n.length>0).sort((n,r)=>n.localeCompare(r)).filter(n=>["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"].includes(n))}function ue(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function D(e,t){return e===void 0?t:e}function U(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function pr(e){return Array.isArray(e)?e:[]}function su(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:is(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:ue(e.validation?.lifecycle_stale_blocker_reason_patterns??t.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:ue(e.validation?.lifecycle_closure_like_blocked_reason_patterns??t.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:ue(e.validation?.lifecycle_closure_like_resolution_patterns??t.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:ue(e.validation?.lifecycle_closure_like_actual_result_patterns??t.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:lr(e.validation?.estimate_defaults_by_type)}}function au(e,t){return{enabled:e.telemetry?.enabled??t.telemetry.enabled,first_run_prompt_completed:e.telemetry?.first_run_prompt_completed??t.telemetry.first_run_prompt_completed,capture_level:e.telemetry?.capture_level??t.telemetry.capture_level,endpoint:e.telemetry?.endpoint??t.telemetry.endpoint,installation_id:e.telemetry?.installation_id??t.telemetry.installation_id,retention_days:e.telemetry?.retention_days??t.telemetry.retention_days}}function cu(e,t){return{...t.search,...e.search,mutation_refresh_policy:Gi(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:Xi(e.search?.query_expansion?.enabled),provider:Ki(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:Ji(e.search?.rerank?.enabled),model:Yi(e.search?.rerank?.model),top_k:Qi(e.search?.rerank?.top_k)}}}function du(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:Zi(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function lu(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function uu(e,t){return{default_depth:e.context?.default_depth??t.context.default_depth,activity_limit:e.context?.activity_limit??t.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??t.context.stale_threshold_days,sections:{...t.context.sections,...e.context?.sections}}}function fu(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function Le(e){let t=(e??[]).map(r=>Or(r)).filter(r=>r!==null),n=new Map;for(let r of t)n.set(r.name.toLowerCase(),r);return[...n.values()].sort((r,o)=>r.name.localeCompare(o.name))}function ss(e){let t=Vi(),n=sn({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:lu(e,t),locks:{...t.locks,...e.locks},ids:{...t.ids,...e.ids},agent_identity:structuredClone(e.agent_identity??t.agent_identity),mutation_guard:{...t.mutation_guard,...e.mutation_guard},checkpoints:{...t.checkpoints,...e.checkpoints},output:{...t.output,...e.output},history:{...t.history,...e.history,compact_policy:{...t.history.compact_policy,...e.history?.compact_policy}},validation:su(e,t,n),governance:n,workflow:{definition_of_done:[...e.workflow?.definition_of_done??t.workflow.definition_of_done]},testing:{record_results_to_items:e.testing?.record_results_to_items??t.testing.record_results_to_items},telemetry:au(e,t),agent_guidance:ns(e.agent_guidance??t.agent_guidance),item_types:{definitions:Le(e.item_types?.definitions)},schema:Ue(e.schema??t.schema),context:uu(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:os(e.extensions.policy??t.extensions.policy)},search:cu(e,t),providers:fu(e,t),vector_store:du(e,t)}}function mu(e){e.agent_identity=E(e.agent_identity,["probes_enabled","identity_vocabulary","harness_signals"]);let t=e.agent_identity;Object.hasOwn(t,"identity_vocabulary")&&(t.identity_vocabulary=E(U(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=pr(e.agent_identity.harness_signals).map(n=>E(U(n),["harness","environment_keys","model_environment_keys","session_environment_keys","provenance_environment_keys","provenance_resolvers","provenance_unavailable_dimensions","argv_markers","client_names"])),e.locks=E(e.locks,["ttl_seconds","wait_ms"]),e.ids=E(e.ids,["token_length"]),e.mutation_guard=E(e.mutation_guard,["require_attributed_author","secret_guard","stale_in_progress_hours"]),e.checkpoints=E(e.checkpoints,["retention_days"]),e.output=E(e.output,["default_format"]),e.history=E(e.history,["missing_stream","compact_policy"]),e.validation=E(e.validation,["sprint_release_format","parent_reference","metadata_profile","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","estimate_defaults_by_type"]),e.governance=E(e.governance,["preset","ownership_enforcement","create_mode_default","close_validation_default","require_close_reason","parent_reference","metadata_profile","force_required_for_stale_lock","create_default_type","workflow_enforcement","duplicate_detection_mode","duplicate_detection_threshold","duplicate_detection_limit"]),e.workflow=E(e.workflow,["definition_of_done"]),e.testing=E(e.testing,["record_results_to_items"]),e.telemetry=E(e.telemetry,["enabled","first_run_prompt_completed","capture_level","endpoint","installation_id","retention_days"]),e.agent_guidance=E(e.agent_guidance,["prompt_completed","declined","declined_at","template_version","last_checked_files"]),e.item_types=E(e.item_types,["definitions"]),e.schema=E(e.schema,["version","files","statuses","fields","workflow","type_workflows","unknown_field_policy"]),e.schema.files=E(U(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=E(U(e.schema.workflow),["draft_status","open_status","in_progress_status","blocked_status","close_status","canceled_status"]),e.context=E(e.context,["default_depth","activity_limit","stale_threshold_days","sections"]),e.context.sections=E(U(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=E(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=E(U(e.extensions.policy),["mode","trust_mode","pm_max_version_exceeded_mode","require_provenance","trusted_extensions","default_sandbox_profile","allowed_extensions","blocked_extensions","allowed_capabilities","blocked_capabilities","allowed_surfaces","blocked_surfaces","allowed_commands","blocked_commands","allowed_actions","blocked_actions","allowed_services","blocked_services","extension_overrides"]),e.extensions.policy.extension_overrides=pr(e.extensions.policy.extension_overrides).map(n=>E(U(n),["name","disabled","require_trusted","require_provenance","sandbox_profile","allowed_capabilities","blocked_capabilities","allowed_surfaces","blocked_surfaces","allowed_commands","blocked_commands","allowed_actions","blocked_actions","allowed_services","blocked_services"])),e.search=E(e.search,["score_threshold","hybrid_semantic_weight","max_results","embedding_model","embedding_corpus_max_characters","embedding_batch_size","embedding_timeout_ms","scanner_max_batch_retries","provider","mutation_refresh_policy","query_expansion","rerank"]),e.search.query_expansion=E(U(e.search.query_expansion),["enabled","provider"]),e.search.rerank=E(U(e.search.rerank),["enabled","model","top_k"]),e.providers=E(e.providers,["openai","ollama"]),e.providers.openai=E(U(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=E(U(e.providers.ollama),["base_url","model"]),e.vector_store=E(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=E(U(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=E(U(e.vector_store.lancedb),["path"])}function _u(e){return{...e,locks:D(e.locks,b.locks),ids:D(e.ids,b.ids),agent_identity:D(e.agent_identity,b.agent_identity),mutation_guard:D(e.mutation_guard,b.mutation_guard),checkpoints:D(e.checkpoints,b.checkpoints),output:D(e.output,b.output),history:D(e.history,b.history),validation:D(e.validation,b.validation),workflow:D(e.workflow,b.workflow),testing:D(e.testing,b.testing),telemetry:D(e.telemetry,b.telemetry),agent_guidance:D(e.agent_guidance,b.agent_guidance),item_types:D(e.item_types,b.item_types),schema:D(e.schema,b.schema),context:D(e.context,b.context),extensions:D(e.extensions,b.extensions),search:D(e.search,b.search),providers:D(e.providers,b.providers),vector_store:D(e.vector_store,b.vector_store)}}function pu(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:is(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:ue(e.validation?.lifecycle_stale_blocker_reason_patterns??b.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:ue(e.validation?.lifecycle_closure_like_blocked_reason_patterns??b.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:ue(e.validation?.lifecycle_closure_like_resolution_patterns??b.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:ue(e.validation?.lifecycle_closure_like_actual_result_patterns??b.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:lr(e.validation?.estimate_defaults_by_type)}}function yu(e){return{...b.search,...e.search,mutation_refresh_policy:Gi(e.search?.mutation_refresh_policy),query_expansion:{...b.search.query_expansion,...e.search?.query_expansion,enabled:Xi(e.search?.query_expansion?.enabled),provider:Ki(e.search?.query_expansion?.provider)},rerank:{...b.search.rerank,...e.search?.rerank,enabled:Ji(e.search?.rerank?.enabled),model:Yi(e.search?.rerank?.model),top_k:Qi(e.search?.rerank?.top_k)}}}function hu(e){return{default_depth:e.context?.default_depth??b.context.default_depth,activity_limit:e.context?.activity_limit??b.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??b.context.stale_threshold_days,sections:{...b.context.sections,...e.context?.sections}}}function gu(e){return{...e.vector_store,adapter:e.vector_store?.adapter??b.vector_store.adapter,collection_name:Zi(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function bu(e,t,n,r){return{...e,item_format:"toon",validation:pu(e,t),governance:t,agent_guidance:ns(e.agent_guidance),item_types:{definitions:r.item_type_definitions},schema:{...n,statuses:r.schema_statuses,fields:r.schema_fields,type_workflows:r.schema_type_workflows},search:yu(e),context:hu(e),extensions:{enabled:_r(e.extensions?.enabled),disabled:_r(e.extensions?.disabled),policy:os(e.extensions?.policy)},vector_store:gu(e)}}function as(e,t,n){let r=new Set([...Object.keys(t),...Object.keys(n)]);for(let o of r){let i=t[o],s=n[o];if(!ke(i,s)){if(s===void 0){delete e[o];continue}if(typeof i=="object"&&i!==null&&!Array.isArray(i)&&typeof s=="object"&&s!==null&&!Array.isArray(s)){let a=e[o],d=typeof a=="object"&&a!==null&&!Array.isArray(a)?a:{};as(d,i,s),Object.keys(d).length>0?e[o]=d:delete e[o];continue}e[o]=structuredClone(s)}}}var cs=["version","id_prefix","ids","author_default","agent_identity","mutation_guard","item_format","locks","checkpoints","output","history","validation","governance","workflow","testing","telemetry","agent_guidance","item_types","schema","context","extensions","search","providers","vector_store"];function qi(e,t){let n=_u(e),r=sn(n),o=Ue(n.schema),i=Zl(n,t),s=bu(n,r,o,i),a=E({...s,governance:Vl(r)},cs);return mu(a),a}function wu(e,t={}){let n=qi(e,t.persist_source);if(t.persist_source){let r=ss(t.persist_source.source_settings);r.item_types={definitions:structuredClone(t.persist_source.runtime_item_type_definitions)},r.schema={...r.schema,statuses:structuredClone(t.persist_source.runtime_schema_statuses),fields:structuredClone(t.persist_source.runtime_schema_fields),type_workflows:structuredClone(t.persist_source.runtime_schema_type_workflows)};let o=qi(r,t.persist_source),i=structuredClone(t.persist_source.source_settings);return as(i,o,n),`${JSON.stringify(E(i,cs),null,2)}
|
|
151
|
-
`}return`${JSON.stringify(n,null,2)}
|
|
152
|
-
`}async function ds(e){let t=mn(e),n=[t];await X({path:t,scope:"project"});let r=zi(e);if(r){let l=await de(r.tracked_paths);if(it(l,r.signatures))return on(r.value)}let o=await de([t]),i;try{i=await _e(t)}catch{return st("settings_read_fs_error")}if(i===null){let l=st();return await fr(e,[t],l,o,[t]),l}let s=await de([t]);if(!it(o,s))return le(e),ds(e);let a;try{a=JSON.parse(i)}catch{let l=st("settings_read_invalid_json");return await fr(e,[t],l,s,[t]),l}let d=Li(a);if(!d.success){let l=st("settings_read_invalid_schema");return await fr(e,[t],l,s,[t]),l}try{let l=ss(d.data),m=Kl(e,l.schema,t);n=m;let f=await de(m),h=await zr(e,l.schema),_=await Ur(e,l.schema),S=await de(m),v={...l,item_types:{definitions:Le([...l.item_types.definitions,...pr(_.type_definitions_from_file)])},schema:_.schema};es(v,Xl(d.data,v));let w={settings:v,metadata:{has_explicit_item_format:eu(a)},warnings:[...d.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],...h.created_paths.map(N=>`runtime_schema_bootstrap_created:${N}`),..._.warnings]};return h.created_paths.length===0?it(f,S)?rn(e,{tracked_paths:m,signatures:S,value:on(w)}):le(e):le(e),w}catch{let l=st("settings_read_merge_failed");return await Yl(e,n,l),l}}async function Gp(e){return(await ds(e)).settings}async function Xp(e,t,n=Hl){let r=mn(e),o=wu(t,{persist_source:ts(t)});try{await Mi({pmRoot:e,filePath:r,raw:o,op:n,author:so(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),await B({path:r,scope:"project",op:n})}finally{le(e)}}import Eu from"node:fs/promises";import ku 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]="58fd6fef-9c13-5c6a-9110-b760461896aa")}catch{}})();function Su(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function vu(e,t){return new T(`Missing history stream for ${e}. ${t} requires history streams when settings.history.missing_stream is strict_error.`,I.NOT_FOUND)}async function Iu(e,t){return await Tr(ku.dirname(e)),await(await Eu.open(e,"a")).close(),B({path:e,scope:"project",op:`${t}:history:auto_create`})}async function yr(e){return xu({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function xu(e){let t=Su(e.itemIds),n=[],r=[];for(let o of t){let i=$e(e.pmRoot,o);if(!await pt(i)){if(e.settings.history.missing_stream==="strict_error")throw vu(o,e.commandLabel);r.push(...await Iu(i,e.commandLabel)),r.push(`history_stream_auto_created:${o}`),n.push(o)}}return{auto_created_ids:n,warnings:r}}import fe from"node:fs/promises";import Pe 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]="f43e1170-e797-5a0c-b02e-d31e002ab275")}catch{}})();async function Tu(e){try{return await fe.access(e),!0}catch{return!1}}function an(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function Ou(e,t){e&&(e.includes(t)||e.push(t))}function ls(e){return e??_t(Xe())}function Cu(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}function cn(e){return new T(`Tracker root is not a directory at ${e}.`,I.USAGE,{code:"tracker_root_not_directory",reason:"not_a_directory",nextSteps:["Pass the tracker directory itself, usually <workspace>/.agents/pm."]})}async function Au(e){let t=Pe.parse(Pe.resolve(e)).root,n=Pe.dirname(Pe.resolve(e));for(;n!==t;){let r;try{r=await fe.stat(n)}catch(o){if(an(o,"ENOTDIR"))throw cn(e);if(!an(o,"ENOENT"))throw o;n=Pe.dirname(n);continue}if(!r.isDirectory())throw cn(e);break}}async function hr(e){let t;try{t=await fe.stat(e)}catch(n){throw an(n,"ENOENT")?(await Au(e),new T(`Tracker root does not exist at ${e}.`,I.NOT_FOUND,{code:"tracker_root_missing",reason:"missing",nextSteps:["Confirm the tracker root path and retry the SDK read.","Initialize a tracker before enumerating its item metadata."]})):an(n,"ENOTDIR")?cn(e):n}if(!t.isDirectory())throw cn(e)}async function us(e,t,n="pm-",r,o=me){let i=Jn(t,n),s=Kn(t),a=i===s?[i]:[i,s],d=Object.entries(o),l=Cu(r);for(let m of a)for(let[f]of d)for(let h of l){let _=_n(e,f,m,h,o);if(await Tu(_))return{id:m,type:f,itemPath:_,item_format:h}}return null}async function fs(e,t={}){let n=await fe.readFile(e.itemPath,"utf8");await X({path:e.itemPath,scope:"project"});let r=Ot(n,{format:e.item_format,schema:t.schema,extensionFieldNames:ls(t.extensionFieldNames),onWarning:o=>Ou(t.warnings,o)});return{raw:n,document:r}}async function Nu(e,t,n=me,r,o){return await hr(e),(await Ti(e,t,n,r,o)).map(s=>s.metadata)}async function Sy(e,t,n=me,r,o){return await hr(e),(await Oi(e,t,n,r,o)).map(s=>s.metadata)}async function vy(e,t,n=me,r,o,i={}){return await hr(e),(await Zt(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan})).map(a=>({...a.metadata,body:a.body}))}function ms(e){return{async get(t){let n=await us(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await fs(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>Nu(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function Ru(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await fe.readdir(Pe.join(e,o));for(let s of i)for(let a of yt)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function Du(e,t,n,r){let o=Jn(t,n),i=await Ru(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(d=>({id:d,distance:br(d,o,s)})).filter(d=>d.distance!==null).sort((d,l)=>d.distance-l.distance).slice(0,3).map(d=>d.id)}async function Mu(e,t,n,r){let o=await Du(e,t,n,r),i=["Confirm the active --path/PM_PATH scope, then retry with a valid id."];return o.length>0&&i.unshift(`Did you mean one of: ${o.join(", ")}?`),new T(`Item ${t} not found`,I.NOT_FOUND,{nextSteps:i})}function Lu(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 _s(e){let t=e.typeToFolder??Cr(e.settings,Xe()).type_to_folder,n=await us(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await Mu(e.pmRoot,e.id,e.settings.id_prefix,t);let r=await ne(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);try{let o=[],{raw:i,document:s}=await fs(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),d=s.metadata.claim_principal?.trim()||a,l=io(e.author),m=sn(e.settings);if(a&&d!==l&&!e.force&&!Lu(e.op,e.bypassAssigneeConflict)){if(m.ownership_enforcement==="strict")throw new T(`Item ${n.id} is assigned to ${a}. Use --force to override.`,I.CONFLICT);m.ownership_enforcement==="warn"&&o.push(`ownership_warning:assignee_conflict:${n.id}:${a}`)}return{typeToFolder:t,located:n,originalRaw:i,document:s,warnings:o,releaseLock:r}}catch(o){throw await r(),o}}function Pu(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 ju(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await W(e.originalItemPath,e.originalRaw),await fe.rm(e.effectiveTargetItemPath,{force:!0});return}await W(e.originalItemPath,e.originalRaw)}}async function Iy(e){let t=await _s({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}=t;try{let d=q(i,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),l=q(structuredClone(i),{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),m=await e.mutate(l);if(e.skipNoop===!0&&m.changedFields.length===0)return{item:d.metadata,body:d.body,changedFields:[],warnings:[...s,...m.warnings??[]]};l.metadata.updated_at=ge();let f=q(l,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames});await Ln({pm_root:e.pmRoot,operation:e.op,before:d,after:f,changed_fields:m.changedFields,sdk:ms({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let h=await yr({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),_="toon",S=Co(f,{format:_,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),v=_n(e.pmRoot,f.metadata.type,r.id,_,n),w=$e(e.pmRoot,r.id),N=await Z("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:v,history_path:w,item_format:_,before:d,after:f,contents:S}),{effectiveTargetItemPath:R,effectiveSerializedAfter:J,skipItemWrite:F}=Pu(N,v,S),dn=await ir(e.pmRoot,e.author),at=[];try{F||await W(R,J),!F&&R!==r.itemPath&&await fe.rm(r.itemPath);let ln=Ne({nowIso:f.metadata.updated_at,author:e.author,op:e.op,before:d,after:f,message:e.message});try{await Re(w,ln)}catch(ct){throw await ju({skipItemWrite:F,effectiveTargetItemPath:R,originalItemPath:r.itemPath,originalRaw:o}),ct}F||(at=await sr({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:R,previousItemPath:r.itemPath,document:f}))}finally{await dn()}let Y=[...await B({path:R,scope:"project",op:e.op,item_id:f.metadata.id,item_type:f.metadata.type,before:d,after:f,changed_fields:m.changedFields}),...await B({path:w,scope:"project",op:`${e.op}:history`,item_id:f.metadata.id,item_type:f.metadata.type,before:d,after:f,changed_fields:m.changedFields})];return Mn({id:f.metadata.id,op:e.op,item_type:f.metadata.type,previous_status:d.metadata.status,status:f.metadata.status,previous:Ct(d.metadata,m.changedFields),current:Ct(f.metadata,m.changedFields),changed_fields:m.changedFields}),{item:f.metadata,body:f.body,changedFields:m.changedFields,warnings:[...s,...m.warnings??[],...h.warnings,...N.warnings,...at,...Y]}}finally{await a()}}async function xy(e){let t=await _s({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}=t;try{let a=ls(void 0),d=q(o,{schema:e.settings.schema,extensionFieldNames:a});await Ln({pm_root:e.pmRoot,operation:"delete",before:d,after:null,changed_fields:["deleted"],sdk:ms({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let l=await yr({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),m=ge(),f=je,h=Ne({nowIso:m,author:e.author,op:"delete",before:d,after:f,message:e.message}),_=$e(e.pmRoot,n.id),S=await Z("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:_,before:d}),v=n.itemPath,w=!1;if(S.handled&&typeof S.result=="object"&&S.result!==null){let F=S.result;typeof F.item_path=="string"&&F.item_path.trim().length>0&&(v=F.item_path),F.skip_delete===!0&&(w=!0)}if(e.dryRun===!0)return{item:d.metadata,changedFields:["deleted"],targetPath:v,warnings:[...i,...l.warnings,...S.warnings]};let N=await ir(e.pmRoot,e.author),R=[];try{w||await fe.rm(v);try{await Re(_,h)}catch(F){throw w||await W(v,r),F}w||(R=await sr({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:v,document:null}))}finally{await N()}let J=[...await B({path:v,scope:"project",op:"delete",item_id:d.metadata.id,item_type:d.metadata.type,before:d,after:f,changed_fields:["deleted"]}),...await B({path:_,scope:"project",op:"delete:history",item_id:d.metadata.id,item_type:d.metadata.type,before:d,after:f,changed_fields:["deleted"]})];return Mn({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,...S.warnings,...R,...J]}}finally{await s()}}export{Gf as a,yc as b,sm as c,am as d,cm as e,dm as f,lm as g,um as h,fm as i,mm as j,Xe as k,Mn as l,Ct as m,B as n,Ln as o,X as p,Pn as q,_m as r,pm as s,Z as t,Uc as u,ye as v,Gr as w,zu as x,Uu as y,Jr as z,ws as A,Ku as B,Ju as C,Yu as D,no as E,Qu as F,Zu as G,ef as H,As as I,io as J,so as K,ge as L,j as M,lf as N,uf as O,ne as P,go as Q,We as R,Sf as S,vf as T,Ie as U,_o as V,mf as W,po as X,Js as Y,_f as Z,St as _,Qs as $,gf as aa,vt as ba,Tt as ca,Ot as da,Co as ea,q as fa,Ke as ga,Dm as ha,Mm as ia,e_ as ja,t_ as ka,Gc as la,Ye as ma,Xo as na,g_ as oa,Ne as pa,Re as qa,ed as ra,Ft as sa,jt as ta,$t as ua,x_ as va,T_ as wa,Yo as xa,zt as ya,Xn as za,O_ as Aa,C_ as Ba,en as Ca,Ai as Da,Ip as Ea,xp as Fa,Tp as Ga,Mi as Ha,Np as Ia,sn as Ja,ds as Ka,Gp as La,Xp as Ma,yr as Na,xu as Oa,ei as Pa,Kn as Qa,Jn as Ra,P_ as Sa,H_ as Ta,W_ as Ua,q_ as Va,ki as Wa,Wd as Xa,ir as Ya,mp as Za,sr as _a,Zt as $a,us as ab,fs as bb,Nu as cb,Sy as db,vy as eb,ms as fb,Mu as gb,Iy as hb,xy as ib};
|
|
153
|
-
//# sourceMappingURL=chunk-HGNKPSCB.js.map
|