@unbrained/pm-cli 2026.8.18 → 2026.8.19
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 +16 -2
- package/dist/cli/error-guidance.js +3 -2
- package/dist/cli/help-content.js +32 -13
- package/dist/cli/help-json-payload.d.ts +15 -0
- package/dist/cli/help-json-payload.js +101 -23
- package/dist/cli/main.js +6 -2
- package/dist/cli/register-list-query.js +8 -5
- package/dist/cli/register-mutation.js +8 -8
- package/dist/cli/register-operations.js +6 -6
- package/dist/cli-bundle/bundle-manifest.json +139 -139
- package/dist/cli-bundle/chunks/chunk-4NRRH7AM.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-UYCLQVL2.js → chunk-4THEB6PD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-BSK2IN3C.js → chunk-BHYMXLAE.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-GWMXAQOD.js +197 -0
- package/dist/cli-bundle/chunks/chunk-HVFQTLYM.js +35 -0
- package/dist/cli-bundle/chunks/chunk-OI4XI562.js +5 -0
- package/dist/cli-bundle/chunks/{chunk-YRGOLZA7.js → chunk-OIOKV6NO.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-5UZZAJKR.js → chunk-QXSH7BLM.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-RZQTVMRQ.js → chunk-TOXJM4WA.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-GNFAFIJI.js → chunk-YBMRWW4E.js} +44 -44
- package/dist/cli-bundle/chunks/{register-list-query-I23LALEE.js → register-list-query-Y56KINDU.js} +11 -11
- package/dist/cli-bundle/chunks/register-mutation-AUWVCW4M.js +20 -0
- package/dist/cli-bundle/chunks/register-operations-PZQPHXW5.js +2 -0
- package/dist/cli-bundle/chunks/{register-setup-PPPEF3SN.js → register-setup-I4LUHGVW.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-5AF3ZBNB.js → chunk-34QBIYZI.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-V5XTGLK7.js → chunk-BJRYFVSH.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-DKPLYW3L.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-ODOVCP45.js → chunk-EF6ZS5GH.js} +44 -44
- package/dist/cli-bundle/focused-chunks/{chunk-EX6MKP2X.js → chunk-ESISGDAY.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-EUEGXZ2A.js → chunk-EXBCLIBU.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-UI6AJ5TD.js → chunk-JDOMQ7VQ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-L623ZPNK.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-MCZXYZAF.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-ODHQEECS.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-3TKWMNKF.js → chunk-PRHY2IMX.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-RZU5U6Q7.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-M62NO7EI.js → chunk-US7VEYZG.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-TN4AE665.js → chunk-VXDSU5MC.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-YBMGXBFV.js +16 -0
- package/dist/cli-bundle/focused-chunks/chunk-YLVBJ6GF.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-K43KKAFS.js → chunk-ZBIQQYMI.js} +2 -2
- package/dist/cli-bundle/main.js +13 -13
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +2 -1
- package/dist/cli-bundle/sdk-core.js +31 -31
- 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 +32 -32
- 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 +5 -4
- package/dist/core/shared/errors.d.ts +2 -0
- package/dist/core/shared/errors.js +2 -2
- package/dist/sdk/agent/refusal-closure.d.ts +41 -0
- package/dist/sdk/agent/refusal-closure.js +92 -0
- package/dist/sdk/agent/refusal-reachability.d.ts +1 -1
- package/dist/sdk/agent-capability-contracts.d.ts +13 -0
- package/dist/sdk/agent-capability-contracts.js +104 -7
- package/dist/sdk/cli-contracts/command-aliases.js +18 -2
- package/dist/sdk/cli-contracts/commander-mutation-options.js +30 -6
- package/dist/sdk/cli-contracts/commander-types.js +5 -4
- package/dist/sdk/cli-contracts/flag-contracts.d.ts +5 -0
- package/dist/sdk/cli-contracts/flag-contracts.js +75 -8
- package/dist/sdk/cli-contracts/flag-lexicon-contracts.d.ts +55 -0
- package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +240 -0
- package/dist/sdk/cli-contracts/grammar-contracts.d.ts +81 -0
- package/dist/sdk/cli-contracts/grammar-contracts.js +615 -2
- package/dist/sdk/cli-contracts/runtime-contracts.d.ts +15 -4
- package/dist/sdk/cli-contracts/runtime-contracts.js +42 -12
- package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +28 -1
- package/dist/sdk/cli-contracts/tool-option-contracts.js +38 -3
- package/dist/sdk/cli-contracts.d.ts +3 -2
- package/dist/sdk/cli-contracts.js +5 -4
- package/dist/sdk/context-intent-contracts.d.ts +2 -2
- package/dist/sdk/context-intent-contracts.js +22 -7
- package/dist/sdk/contracts.d.ts +2 -0
- package/dist/sdk/contracts.js +4 -2
- package/dist/sdk/flag-invocation-contracts.d.ts +37 -0
- package/dist/sdk/flag-invocation-contracts.js +218 -9
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +134 -2
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +154 -22
- package/dist/sdk/index.d.ts +7 -5
- package/dist/sdk/index.js +7 -5
- package/dist/sdk/output-projection.d.ts +2 -0
- package/dist/sdk/output-projection.js +11 -5
- package/dist/sdk/query/get.js +25 -6
- package/dist/sdk/query/list.js +16 -2
- package/dist/sdk/query/search-contracts.d.ts +1 -1
- package/dist/sdk/query/search-contracts.js +23 -9
- package/dist/sdk/query/search.js +3 -3
- package/dist/sdk/read-output/continuation.d.ts +1 -1
- package/dist/sdk/read-output/continuation.js +7 -24
- package/dist/sdk/read-output-contracts.js +55 -6
- package/dist/sdk/read-output-rows.d.ts +4 -0
- package/dist/sdk/read-output-rows.js +47 -18
- package/dist/sdk/runtime.js +9 -5
- package/dist/sdk/workspace-snapshot.d.ts +2 -0
- package/dist/sdk/workspace-snapshot.js +10 -2
- package/docs/COMMANDS.md +16 -4
- package/docs/OUTPUT_PROJECTION_CONTRACTS.md +11 -2
- package/docs/READ_OUTPUT_CONTRACTS.md +10 -6
- package/docs/SDK.md +6 -0
- package/docs/TESTING.md +14 -1
- package/docs/generated/AGENT_COMMAND_SURFACE.md +78 -78
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +76 -0
- package/marketplace.json +2 -2
- package/package.json +5 -3
- 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/scripts/generate-agent-capability-surfaces.mjs +20 -14
- package/sdk/public-surface.json +576 -12
- package/dist/cli-bundle/chunks/chunk-ALDJGKAK.js +0 -2
- package/dist/cli-bundle/chunks/chunk-DY4DMUMC.js +0 -197
- package/dist/cli-bundle/chunks/chunk-L5Q2CLPE.js +0 -35
- package/dist/cli-bundle/chunks/chunk-PVRUN5ZS.js +0 -5
- package/dist/cli-bundle/chunks/register-mutation-6YGU3GPH.js +0 -20
- package/dist/cli-bundle/chunks/register-operations-4HTFC6J7.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-2PN4TJXH.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-C5IW2NDA.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-RNDNMARJ.js +0 -16
- package/dist/cli-bundle/focused-chunks/chunk-TVV2DONO.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-WGHQVU6P.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-XYNBXTDQ.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-Z56ECT7I.js +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{A as io,Aa as go,G as so,Ja as At,L as Tt,La as Qe,Na as Ze,Oa as et,P as Tn,Q as An,Qa as bo,R as On,Ra as wo,S as Ye,Sa as Eo,T as ao,Ta as ko,U as co,Ua as vo,Va as So,Z as uo,_ as lo,a as bt,h as It,p as oo,q as xt,s as be,t as ce,u as H,ua as fo,v as Ke,va as mo,wa as _o,xa as po,ya as yo,za as ho}from"./chunk-UI6AJ5TD.js";import{C as vt,D as St,E as xn,G as no,R as ge,S as ae,T as ro,W as g,X as Re,Y as I,Z as x,aa as M,ba as Ne,ca as we,da as v,n as wt,o as Yr,p as Qr,q as Zr,r as eo,v as Et,w as kt,x as to}from"./chunk-2PN4TJXH.js";import{AsyncLocalStorage as Qs}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 Cn=new Qs,Io=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function Ot(e,t){let n=typeof e=="string"?e.trim():"";return n.length>0?n.slice(0,t):void 0}function Ee(e,t){if(e===void 0)return;let n=typeof e=="object"&&e!==null?e:{},r=Ot(n.id,128),o=Ot(n.parent_id,128);if(r===void 0||!Io.test(r)||o!==void 0&&!Io.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=Ot(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function De(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=Ot(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function Zs(e,t,n){let r=Cn.getStore(),o=De({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=Ee(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={...De(r?.provenance),...o,...De(e?.provenance)},a=Ee(e?.episode,!1)??Ee(n,!1)??i??Ee(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 Rn(e,t){return Zs(e.session_context,t,e.client_info?.episode)??{}}function Kf(e,t){let n=Cn.getStore(),r=Ee(e.episode,!0),o=Ee(n?.episode,!1),i=r!==void 0&&r.parent_id===void 0&&o!==void 0?{...r,parent_id:o.id}:r,s={...De(n?.provenance),...De(e.provenance)};return Cn.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function Yf(e){let t=De(e.provenance),n=Ee(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 Hn}from"node:async_hooks";import{createHash as oa}from"node:crypto";import Rt from"node:fs";import ia from"node:os";import Co from"node:path";import{createHash as xo}from"node:crypto";import{existsSync as Nn,promises as To,readFileSync as ea}from"node:fs";import J 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]="424b9eb3-6b34-5ab0-a3f5-db61fbca12cf")}catch{}})();var ta="session.json";function Dn(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function Ao(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=e,n=["implementer","planner","release-operator"].includes(String(t.role)),r=["high","medium"].includes(String(t.confidence)),o=Dn(t.topic,256),i=Array.isArray(t.evidence)&&t.evidence.length<=32&&t.evidence.every(c=>typeof c=="string"&&c.length<=128),s=Array.isArray(t.active_item_ids)&&t.active_item_ids.length<=64&&t.active_item_ids.every(c=>Dn(c,128)),a=t.focused_item_id===void 0||Dn(t.focused_item_id,128);if([n,r,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function na(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([n,r])=>{let o=Ao(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Mn(e){return J.join(co(e),ta)}async function Ct(e){try{let t=await To.readFile(Mn(e),"utf8"),n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return{};let r=n,o=r.focused_item,i=na(r.semantic_attribution);return typeof o=="string"&&o.trim().length>0?{focused_item:o,...i?{semantic_attribution:i}:{}}:i?{semantic_attribution:i}:{}}catch{return{}}}async function Ln(e,t){let n=Mn(e);await To.mkdir(J.dirname(n),{recursive:!0}),await H(n,JSON.stringify(t))}function Pn(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${xo("sha256").update(e).digest("hex").slice(0,24)}`}function jn(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function Fn(e){let t=[...new Set(e)].sort((o,i)=>o.localeCompare(i));if(t.length===1)return t[0];let n=`workset:${t.join("+")}`;return n.length<=256?n:`workset:${t.join("+").slice(0,230)}+${xo("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function $n(e,t,n){let r=await Ct(e),o={...r.semantic_attribution},i=n(o[t]);i===void 0?delete o[t]:o[t]=i;let s={...r};Object.keys(o).length===0?delete s.semantic_attribution:s.semantic_attribution=o,await Ln(e,s)}async function om(e){let t=Pn(e.principal);await $n(e.pmRoot,t,n=>{let r=[...new Set([...n?.active_item_ids??[],e.itemId])].slice(-64).sort((i,s)=>i.localeCompare(s)),o=n?.focused_item_id;return{role:"implementer",topic:o??Fn(r),confidence:o?"high":"medium",rule_version:"v2",evidence:jn([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}async function im(e){let t=Pn(e.principal);await $n(e.pmRoot,t,n=>{if(!n)return;let r=n.active_item_ids.filter(i=>i!==e.itemId);if(r.length===0&&!n.focused_item_id)return;let o=n.focused_item_id;return{...n,role:"release-operator",topic:o??Fn(r),confidence:o?"high":"medium",evidence:jn([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:r}})}async function sm(e){let t=Pn(e.principal);await $n(e.pmRoot,t,n=>{let r=n?.active_item_ids??[];if(!e.itemId&&r.length===0)return;let o=e.itemId;return{role:o?"planner":n.role,topic:o??Fn(r),confidence:o?"high":"medium",rule_version:"v2",evidence:jn([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}function ra(e,t){let n=t.PM_PATH?.trim();if(n){let o=J.resolve(e,n);if(Nn(J.join(o,"settings.json")))return o;let i=J.join(o,".agents","pm");if(Nn(J.join(i,"settings.json")))return i}let r=J.resolve(e);for(let o=0;o<32;o+=1){let i=J.join(r,".agents","pm");if(Nn(J.join(i,"settings.json")))return i;let s=J.dirname(r);if(s===r)break;r=s}}function Oo(e){if(!e.key)return;let t=ra(e.cwd,e.env);if(t)try{let n=JSON.parse(ea(Mn(t),"utf8"));return Ao(n.semantic_attribution?.[e.key])}catch{return}}async function am(e){return(await Ct(e)).focused_item}async function cm(e,t){let n=await Ct(e);await Ln(e,{...n,focused_item:t})}async function dm(e){let n={...await Ct(e)};delete n.focused_item,await Ln(e,n)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e0ab2d6f-0925-540d-8d24-a7f0687b4bf0")}catch{}})();var Wn=["model","effort","role","topic","version"],Dt=new Hn,Ro=new Hn,Mt=new Hn,sa=[{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"]},provenance_resolvers:{model:"claude_session_file",version:"claude_session_file"},provenance_unavailable_dimensions:["role","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:[]}],Me=new Map,zn=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function L(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function ke(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function Lt(e){let t=e.harness.trim().toLowerCase();if(!zn.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:ke(e.environment_keys),model_environment_keys:ke(e.model_environment_keys),session_environment_keys:ke(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),ke(r)]).filter(([n])=>zn.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"&&zn.test(n[0])&&(n[1]==="ai_agent_version"||n[1]==="claude_session_file"))),provenance_unavailable_dimensions:ke(e.provenance_unavailable_dimensions).map(n=>n.toLowerCase()),argv_markers:ke(e.argv_markers).map(n=>n.toLowerCase()),client_names:ke(e.client_names).map(n=>n.toLowerCase())}}var No=sa.map(Lt);function aa(e,t){return JSON.stringify(e)===JSON.stringify(t)}function Nt(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function Bn(e=[]){let t=[...No,...[...Me.values()].map(r=>r.descriptor),...Mt.getStore()?.descriptors??[],...e.map(Lt)],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 Vn(e,t){for(let n of t??[]){let r=L(e[n]);if(r)return r.slice(0,256)}}function ca(e,t){if(t==="role"){let n=e.slice(0,8).map(r=>r.trim().toLowerCase()).find(r=>["claim","create","update","close","release","review"].includes(r));if(n==="review")return"reviewer";if(n)return"implementer"}}function Do(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 L(r[o+1])?.slice(0,256);let s=n.find(a=>i.startsWith(`${a}=`));if(s)return L(i.slice(s.length+1))?.slice(0,256)}}var da=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function ve(e,t){if(e!=="role"||t===void 0)return t;let n=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return da.has(n)?n:void 0}function Un(e,t){return L(e?.[t])?.slice(0,256)}var ua=1048576;function la(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 L(i)?.slice(0,256)}function fa(e,t,n){let r=L(n.CLAUDE_CODE_SESSION_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let i=Co.resolve(t.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),s=Co.join(t.home_dir??ia.homedir(),".claude","projects",i,`${r}.jsonl`);try{let a=Rt.openSync(s,"r");try{let c=Rt.fstatSync(a).size,u=Math.min(c,ua),f=Buffer.alloc(u);Rt.readSync(a,f,0,u,Math.max(0,c-u));let l=f.toString("utf8").split(`
|
|
1
|
+
import{A as io,Aa as go,G as so,Ja as At,L as Tt,La as Qe,Na as Ze,Oa as et,P as Tn,Q as An,Qa as bo,R as On,Ra as wo,S as Ye,Sa as Eo,T as ao,Ta as ko,U as co,Ua as vo,Va as So,Z as uo,_ as lo,a as bt,h as It,p as oo,q as xt,s as be,t as ce,u as H,ua as fo,v as Ke,va as mo,wa as _o,xa as po,ya as yo,za as ho}from"./chunk-JDOMQ7VQ.js";import{C as vt,D as St,E as xn,G as no,R as ge,S as ae,T as ro,W as g,X as Re,Y as I,Z as x,aa as M,ba as Ne,ca as we,da as v,n as wt,o as Yr,p as Qr,q as Zr,r as eo,v as Et,w as kt,x as to}from"./chunk-RZU5U6Q7.js";import{AsyncLocalStorage as Qs}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 Cn=new Qs,Io=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function Ot(e,t){let n=typeof e=="string"?e.trim():"";return n.length>0?n.slice(0,t):void 0}function Ee(e,t){if(e===void 0)return;let n=typeof e=="object"&&e!==null?e:{},r=Ot(n.id,128),o=Ot(n.parent_id,128);if(r===void 0||!Io.test(r)||o!==void 0&&!Io.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=Ot(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function De(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=Ot(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function Zs(e,t,n){let r=Cn.getStore(),o=De({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=Ee(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={...De(r?.provenance),...o,...De(e?.provenance)},a=Ee(e?.episode,!1)??Ee(n,!1)??i??Ee(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 Rn(e,t){return Zs(e.session_context,t,e.client_info?.episode)??{}}function Kf(e,t){let n=Cn.getStore(),r=Ee(e.episode,!0),o=Ee(n?.episode,!1),i=r!==void 0&&r.parent_id===void 0&&o!==void 0?{...r,parent_id:o.id}:r,s={...De(n?.provenance),...De(e.provenance)};return Cn.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function Yf(e){let t=De(e.provenance),n=Ee(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 Hn}from"node:async_hooks";import{createHash as oa}from"node:crypto";import Rt from"node:fs";import ia from"node:os";import Co from"node:path";import{createHash as xo}from"node:crypto";import{existsSync as Nn,promises as To,readFileSync as ea}from"node:fs";import J 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]="424b9eb3-6b34-5ab0-a3f5-db61fbca12cf")}catch{}})();var ta="session.json";function Dn(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function Ao(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=e,n=["implementer","planner","release-operator"].includes(String(t.role)),r=["high","medium"].includes(String(t.confidence)),o=Dn(t.topic,256),i=Array.isArray(t.evidence)&&t.evidence.length<=32&&t.evidence.every(c=>typeof c=="string"&&c.length<=128),s=Array.isArray(t.active_item_ids)&&t.active_item_ids.length<=64&&t.active_item_ids.every(c=>Dn(c,128)),a=t.focused_item_id===void 0||Dn(t.focused_item_id,128);if([n,r,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function na(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([n,r])=>{let o=Ao(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Mn(e){return J.join(co(e),ta)}async function Ct(e){try{let t=await To.readFile(Mn(e),"utf8"),n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return{};let r=n,o=r.focused_item,i=na(r.semantic_attribution);return typeof o=="string"&&o.trim().length>0?{focused_item:o,...i?{semantic_attribution:i}:{}}:i?{semantic_attribution:i}:{}}catch{return{}}}async function Ln(e,t){let n=Mn(e);await To.mkdir(J.dirname(n),{recursive:!0}),await H(n,JSON.stringify(t))}function Pn(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${xo("sha256").update(e).digest("hex").slice(0,24)}`}function jn(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function Fn(e){let t=[...new Set(e)].sort((o,i)=>o.localeCompare(i));if(t.length===1)return t[0];let n=`workset:${t.join("+")}`;return n.length<=256?n:`workset:${t.join("+").slice(0,230)}+${xo("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function $n(e,t,n){let r=await Ct(e),o={...r.semantic_attribution},i=n(o[t]);i===void 0?delete o[t]:o[t]=i;let s={...r};Object.keys(o).length===0?delete s.semantic_attribution:s.semantic_attribution=o,await Ln(e,s)}async function om(e){let t=Pn(e.principal);await $n(e.pmRoot,t,n=>{let r=[...new Set([...n?.active_item_ids??[],e.itemId])].slice(-64).sort((i,s)=>i.localeCompare(s)),o=n?.focused_item_id;return{role:"implementer",topic:o??Fn(r),confidence:o?"high":"medium",rule_version:"v2",evidence:jn([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}async function im(e){let t=Pn(e.principal);await $n(e.pmRoot,t,n=>{if(!n)return;let r=n.active_item_ids.filter(i=>i!==e.itemId);if(r.length===0&&!n.focused_item_id)return;let o=n.focused_item_id;return{...n,role:"release-operator",topic:o??Fn(r),confidence:o?"high":"medium",evidence:jn([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:r}})}async function sm(e){let t=Pn(e.principal);await $n(e.pmRoot,t,n=>{let r=n?.active_item_ids??[];if(!e.itemId&&r.length===0)return;let o=e.itemId;return{role:o?"planner":n.role,topic:o??Fn(r),confidence:o?"high":"medium",rule_version:"v2",evidence:jn([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}function ra(e,t){let n=t.PM_PATH?.trim();if(n){let o=J.resolve(e,n);if(Nn(J.join(o,"settings.json")))return o;let i=J.join(o,".agents","pm");if(Nn(J.join(i,"settings.json")))return i}let r=J.resolve(e);for(let o=0;o<32;o+=1){let i=J.join(r,".agents","pm");if(Nn(J.join(i,"settings.json")))return i;let s=J.dirname(r);if(s===r)break;r=s}}function Oo(e){if(!e.key)return;let t=ra(e.cwd,e.env);if(t)try{let n=JSON.parse(ea(Mn(t),"utf8"));return Ao(n.semantic_attribution?.[e.key])}catch{return}}async function am(e){return(await Ct(e)).focused_item}async function cm(e,t){let n=await Ct(e);await Ln(e,{...n,focused_item:t})}async function dm(e){let n={...await Ct(e)};delete n.focused_item,await Ln(e,n)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e0ab2d6f-0925-540d-8d24-a7f0687b4bf0")}catch{}})();var Wn=["model","effort","role","topic","version"],Dt=new Hn,Ro=new Hn,Mt=new Hn,sa=[{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"]},provenance_resolvers:{model:"claude_session_file",version:"claude_session_file"},provenance_unavailable_dimensions:["role","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:[]}],Me=new Map,zn=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function L(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function ke(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function Lt(e){let t=e.harness.trim().toLowerCase();if(!zn.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:ke(e.environment_keys),model_environment_keys:ke(e.model_environment_keys),session_environment_keys:ke(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),ke(r)]).filter(([n])=>zn.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"&&zn.test(n[0])&&(n[1]==="ai_agent_version"||n[1]==="claude_session_file"))),provenance_unavailable_dimensions:ke(e.provenance_unavailable_dimensions).map(n=>n.toLowerCase()),argv_markers:ke(e.argv_markers).map(n=>n.toLowerCase()),client_names:ke(e.client_names).map(n=>n.toLowerCase())}}var No=sa.map(Lt);function aa(e,t){return JSON.stringify(e)===JSON.stringify(t)}function Nt(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function Bn(e=[]){let t=[...No,...[...Me.values()].map(r=>r.descriptor),...Mt.getStore()?.descriptors??[],...e.map(Lt)],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 Vn(e,t){for(let n of t??[]){let r=L(e[n]);if(r)return r.slice(0,256)}}function ca(e,t){if(t==="role"){let n=e.slice(0,8).map(r=>r.trim().toLowerCase()).find(r=>["claim","create","update","close","release","review"].includes(r));if(n==="review")return"reviewer";if(n)return"implementer"}}function Do(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 L(r[o+1])?.slice(0,256);let s=n.find(a=>i.startsWith(`${a}=`));if(s)return L(i.slice(s.length+1))?.slice(0,256)}}var da=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function ve(e,t){if(e!=="role"||t===void 0)return t;let n=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return da.has(n)?n:void 0}function Un(e,t){return L(e?.[t])?.slice(0,256)}var ua=1048576;function la(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 L(i)?.slice(0,256)}function fa(e,t,n){let r=L(n.CLAUDE_CODE_SESSION_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let i=Co.resolve(t.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),s=Co.join(t.home_dir??ia.homedir(),".claude","projects",i,`${r}.jsonl`);try{let a=Rt.openSync(s,"r");try{let c=Rt.fstatSync(a).size,u=Math.min(c,ua),f=Buffer.alloc(u);Rt.readSync(a,f,0,u,Math.max(0,c-u));let l=f.toString("utf8").split(`
|
|
2
2
|
`).reverse();for(let _ of l.slice(0,4096)){let p=la(_,e);if(p)return p}return}finally{Rt.closeSync(a)}}catch{return}}function ma(e,t,n,r){let o=Mt.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(L(n.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let s=r?.provenance_resolvers[e];if(s==="claude_session_file")return fa(e,t,n);if(s==="ai_agent_version"){let a=L(n.AI_AGENT);return!a||!r||!Nt(a,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(a)?.[1]?.slice(0,256)}}function _a(e,t,n){if(e==="ai_agent_version"){let r=L(n.AI_AGENT);return r!==void 0&&Nt(r,t.harness)}return L(n.CLAUDE_CODE_SESSION_ID)!==void 0}function qn(e){return e||(Ro.getStore()??{env:process.env,argv:process.argv})}function pa(e,t,n,r){let o=e.environment_keys.some(a=>L(t[a])!==void 0),i=e.argv_markers.some(a=>n.some(c=>{let u=c.replaceAll("\\","/");return Nt(u.slice(u.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||Nt(r,a));return o||i||s}function ya(e,t){if(!t)return;let n;if(e==="topic"&&(n=t.topic),e==="role"&&(n=t.role),!!n)return{value:n,source:"inferred",confidence:t.confidence,rule_version:t.rule_version,evidence:t.evidence}}function ha(e){let t=e.find(([n])=>n!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function ga(e,t,n,r,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...Wn,...Object.keys(r?.provenance_environment_keys??{})]),c,u,f;a.has(e)&&(c=ve(e,L(n[s])?.slice(0,256)),f=ve(e,Do(t.argv??[],e)),u=ve(e,ca(t.argv??[],e)));let l={...r?.provenance_environment_keys,model:r?.model_environment_keys},_={...t.client_info?.provenance,model:t.client_info?.model},p=Un(o?.provenance,e),w=ve(e,Vn(n,l[e])),k=ve(e,Un(_,e)),E=ve(e,Un(t.provenance,e)),C=ma(e,t,n,r);return ha([[c,"override"],[p,"session"],[f,"argv"],[w,"environment"],[k,"mcp_client"],[E,"host"],[C,"probe"]])??ya(e,i)??(u?{value:u,source:"argv"}:void 0)}function ba(e,t){if(!(!e||!t))return oa("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function wa(e,t,n,r,o){let i=Object.keys(n?.provenance_environment_keys??{}),s=new Set([...Wn,...i,...Object.keys(n?.provenance_resolvers??{}),...Object.keys(e.provenance??{}),...Object.keys(e.client_info?.provenance??{}),...Object.keys(r?.provenance??{})]),a={};for(let c of s){let u=ga(c,e,t,n,r,o);u?a[c]=u:n&&(c!=="version"||n.provenance_unavailable_dimensions.includes(c))&&(a[c]=null)}return a}function gm(e){let t=e.map(Lt),n=new Map(No.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=Me.get(i.harness);if(s&&!aa(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=Me.get(i.harness);Me.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=Me.get(i.harness);!s||s.registrations<=1?Me.delete(i.harness):s.registrations-=1}}}}function bm(e,t){return Ro.run(e,t)}function wm(e,t,n={}){let r=e.map(Lt);return Bn(r),Mt.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function Gn(e){let t=qn(e),n=t.env??{},r=Bn(t.descriptors),o=[...(t.argv??[]).slice(0,3),...t.process_labels??[]].slice(0,64).map(w=>w.slice(0,512)),i=t.client_info?.name.trim().toLowerCase()??"",s=r.find(w=>pa(w,n,o,i)),a=Rn(t,n),c=[Vn(n,s?.session_environment_keys),L(t.client_info?.session)?.slice(0,256)].find(w=>w!==void 0),u=ba(s?.harness,c),f=Oo({cwd:t.cwd??process.cwd(),env:n,key:u}),l=wa(t,n,s,a,f),_=l.model,p=[["harness",s?.harness],["model",_?.value],["model_source",_?.source],["session",c],["instance",u],["provenance",Object.keys(l).length>0?l:void 0],["episode",a.episode]];return Object.fromEntries(p.filter(w=>w[1]!==void 0))}function Ea(e,t,n,r,o,i){let s=n?.provenance_resolvers[e];if(t.provenance?.[e])return{status:"resolved",...s?{resolver:s}:{},rule_version:"v1"};if(i)return{status:"unavailable",reason:"invalid_value",rule_version:"v1"};if(s){let a=_a(s,n,r);return{status:a&&o?"failed":"unavailable",reason:a?o?"resolver_failed":"probes_disabled":"harness_unavailable",resolver:s,rule_version:"v1"}}return{status:n?.provenance_unavailable_dimensions.includes(e)?"unavailable":"not_configured",reason:n?.provenance_unavailable_dimensions.includes(e)?"harness_unavailable":"resolver_not_configured",rule_version:"v1"}}function Mo(e){let t=qn(e),n=Gn(t),r=Bn(t.descriptors).find(u=>u.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&Mt.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(L(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=Rn(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,Vn(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,Do(t.argv??[],"role")].some(u=>{let f=L(u)?.slice(0,256);return f!==void 0&&ve("role",f)===void 0}),c=Object.fromEntries(Wn.map(u=>[u,Ea(u,n,r,o,i,u==="role"&&a)]));return{...n,provenance_outcomes:c}}function Em(){return process.env.PM_AUTHOR}function km(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function vm(e){return Gn(e).harness}function ka(e,t,n){let r=qn(n),o=Gn(r);if(e!==void 0){let s=L(e);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}if(r.env?.PM_AUTHOR!==void 0){let s=L(r.env.PM_AUTHOR);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}let i=L(t);return i?{author:i,source:"configured",...o}:o.harness?{author:`harness:${o.harness}`,source:"detected",...o}:{author:"unknown",source:"unknown",...o}}function Lo(e){let t=Dt.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function Po(e){let t=Dt.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 jo(e){let t=Dt.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function Fo(e,t){let n=ka(e,t);return Dt.enterWith(n),n.author}import va from"node:crypto";import{AsyncLocalStorage as Sa}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 zo=new Sa,$o=1024;function Uo(){let e=zo.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 Ho(e){let t=zo.getStore();if(t===void 0)return;if(!Number.isSafeInteger(e)||e<0||e>$o)throw new Error(`Reproducible token length must be an integer between 0 and ${$o}`);let n="";for(;n.length<e;){let r=va.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]="7887e752-b1b8-5c5e-9dd8-93b41cb757af")}catch{}})();var Ia=/^([+-]?)(\d+)([hdwm])$/i,xa=/^[+-]?\d+[hdwm](?:[+-]\d+[hdwm])+$/i,Ta=/^(\d{4})(\d{2})(\d{2})$/,Aa=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,Oa=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})-(\d{2})(?:-(\d{2}))?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,Ca=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,Ra=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/i;function Se(){return Uo()??new Date().toISOString()}function de(e){return Number.isFinite(Date.parse(e))}function Bo(e){let t=Ra.exec(e);if(!t||!Number.isFinite(Date.parse(e)))return!1;let[,n,r,o,i,s,a,c,u]=t,[f,l,_,p,w,k]=[n,r,o,i,s,a].map(Number);return l>=1&&l<=12&&_>=1&&_<=Kn(f,l-1)&&p<=23&&w<=59&&k<=59&&(c===void 0||Number(c)<=23)&&(u===void 0||Number(u)<=59)}var Na=1e4,Pt=new Map;function Wo(e){let t=Pt.get(e);if(t!==void 0)return t;let n=Date.parse(e);return Pt.size>=Na&&At(Pt),Pt.set(e,n),n}function z(e,t){let n=Wo(e),r=Wo(t);return Number.isFinite(n)&&Number.isFinite(r)&&n!==r?n-r:e.localeCompare(t)}function Nm(e,t){return!(t.deadlineBefore&&(!e.deadline||z(e.deadline,t.deadlineBefore)>0)||t.deadlineAfter&&(!e.deadline||z(e.deadline,t.deadlineAfter)<0)||t.updatedAfter&&z(e.updated_at,t.updatedAfter)<0||t.updatedBefore&&z(e.updated_at,t.updatedBefore)>0||t.createdAfter&&z(e.created_at,t.createdAfter)<0||t.createdBefore&&z(e.created_at,t.createdBefore)>0)}function Xn(e){return e?`.${e.slice(1).padEnd(3,"0").slice(0,3)}`:""}function Jn(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 Da(e,t,n){n&&n!==t&&(e.includes(n)||e.push(n))}function Ma(e){let t=[],n=u=>Da(t,e,u),r=Ta.exec(e);if(r){let[,u,f,l]=r;n(`${u}-${f}-${l}`)}let o=Aa.exec(e);if(o){let[,u,f,l,_,p,w,k,E]=o,C=w?`:${w}`:"";n(`${u}-${f}-${l}T${_}:${p}${C}${Xn(k)}${Jn(E)}`)}let i=Oa.exec(e);if(i){let[,u,f,l,_,p,w]=i,k=_?`:${_}`:"";n(`${u}T${f}:${l}${k}${Xn(p)}${Jn(w)}`)}let s=Ca.exec(e);if(s){let[,u,f,l,_,p,w]=s,k=_?`:${_}`:"";n(`${u}T${f}:${l}${k}${Xn(p)}${Jn(w)}`)}let a=10,c=e.slice(0,a);if(Pa(c)){let u=a;for(;u<e.length&&ja(e[u]);)u+=1;u<e.length&&n(`${c}T${e.slice(u)}`)}return t}function La(e){let t=Date.parse(e);if(Number.isFinite(t))return t;for(let n of Ma(e)){let r=Date.parse(n);if(Number.isFinite(r))return r}return Number.NaN}function Pa(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 ja(e){return e?e===" "||e===" "||e===`
|
|
3
3
|
`||e==="\r"||e==="\f"||e==="\v":!1}function Kn(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}var Fa=["January","February","March","April","May","June","July","August","September","October","November","December"],$a=/^(\d{4})-(\d{2})-(\d{2})/,za=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/;function Ua(e,t,n){let r=$a.exec(t)??za.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 x(`Invalid ${a} value "${e}". Month "${r[2]}" is out of range \u2014 use a month between 01 and 12.`,I.USAGE);let c=Kn(o,i-1);if(s<1||s>c)throw new x(`Invalid ${a} value "${e}". ${Fa[i-1]} ${o} has ${c} days, so day "${r[3]}" does not exist. Use a real YYYY-MM-DD calendar date.`,I.USAGE)}function Ha(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,Kn(i,s));return n.setUTCFullYear(i,s,a),n}function Dm(e,t=new Date,n="deadline"){let r=e.trim();if(r.toLowerCase()==="now")return t.toISOString();let o=Ia.exec(r);if(o){let s=o[1]==="-"?-1:1,a=Number.parseInt(o[2],10)*s,c=o[3].toLowerCase();if(c==="m")return Ha(t,a).toISOString();let u=c==="h"?3600*1e3:c==="d"?1440*60*1e3:10080*60*1e3;return new Date(t.getTime()+a*u).toISOString()}Ua(e,r,n);let i=La(r);if(!Number.isFinite(i)){let s=n.trim().length>0?n.trim():"deadline",a=xa.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 x(`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 Le=1,Vo=1;function Lm(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=Le?t:Le}function qo(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=Le))return e}function Wa(e,t=Vo){return e<t?"outdated":e>t?"ahead":"current"}function Pm(e,t=Vo){let n=[],r=[];for(let o of e){let i=Wa(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 Ba={"in-progress":"in_progress",cancelled:"canceled"};function jt(e,t){if(t){let o=ko(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=Ba[n]??n;if(wt.includes(r))return r}function Va(e,t){return jt(e,t)??e}function zm(e,t){return t.terminal_statuses.has(Va(e,t))}import{encode as rc}from"@toon-format/toon";import{isDeepStrictEqual as Yo}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]="91a3969e-59b3-506e-9349-ca08e73a1228")}catch{}})();var qa=16;function Yn(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 Ga(e){return[...new Set([So(e),Yn(e.key),Yn(e.cli_flag),...e.cli_aliases.map(t=>Yn(t))])]}function Jo(e,t){for(let n of Ga(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function Ko(e){return Array.isArray(e)?e.flatMap(t=>Ko(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 Go(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 x(`${t} must be one of true|false|1|0|yes|no`,I.USAGE)}function Xo(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 x(`${t} must be a number`,I.USAGE);return r}function Xa(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 x(`${t} must be valid JSON ${n}`,I.USAGE)}function Ja(e,t){return t===void 0?!0:t==="array"?Array.isArray(e):t==="object"?typeof e=="object"&&e!==null&&!Array.isArray(e):typeof e===t}function Ka(e,t,n){if(t.const!==void 0&&M(e)!==M(t.const))return`${n} must equal ${M(t.const)}`;if(t.enum!==void 0&&!t.enum.some(r=>M(r)===M(e)))return`${n} must be one of ${t.enum.map(r=>M(r)).join("|")}`;if(!Ja(e,t.type))return`${n} must match configured type ${String(t.type)}`;if(typeof e=="string"){if(t.min_length!==void 0&&e.length<t.min_length)return`${n} must contain at least ${t.min_length} characters`;if(t.format==="date-time"&&!Bo(e))return`${n} must be an RFC 3339 date-time`}}function Ya(e,t,n,r){if(Array.isArray(e)){if(t.min_items!==void 0&&e.length<t.min_items)return`${n} must contain at least ${t.min_items} items`;if(t.items)for(let[o,i]of e.entries()){let s=Ft(i,t.items,`${n}[${o}]`,r+1);if(s)return s}}}function Qa(e,t,n,r){if(typeof e!="object"||e===null||Array.isArray(e))return;let o=e;for(let i of t.required??[])if(!Object.hasOwn(o,i))return`${n}.${i} is required`;for(let[i,s]of Object.entries(o)){let a=t.properties?.[i];if(!a){if(t.additional_properties===!1)return`${n}.${i} is not allowed`;continue}let c=Ft(s,a,`${n}.${i}`,r+1);if(c)return c}}function Ft(e,t,n,r=0){if(r>qa)return`${n} value schema exceeds maximum depth`;let o=Ka(e,t,n);if(o)return o;let i=Ya(e,t,n,r);if(i)return i;let s=Qa(e,t,n,r);if(s)return s;if(!t.one_of)return;let a=0;for(let c of t.one_of)if(Ft(e,c,n,r+1)===void 0&&(a+=1,a>1))break;return a===1?void 0:`${n} must match exactly one configured schema variant`}function Ie(e,t,n){if(!e.value_schema||t===void 0)return t;let r=Ft(t,e.value_schema,n);if(r)throw new x(r,I.USAGE);return t}function tt(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:Ie(e,Xa(i,r,e.type),r)}if(e.repeatable||e.type==="string_array"){let i=Ko(t);return e.type==="number"?Ie(e,i.map(s=>Xo(s,r)),r):e.type==="boolean"?Ie(e,i.map(s=>Go(s,r)),r):Ie(e,i,r)}let o=Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return e.type==="number"?Ie(e,Xo(o,r),r):e.type==="boolean"?Ie(e,Go(o,r),r):Ie(e,typeof o=="string"?o:String(o),r)}function Za(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 Gm(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=Jo(e,i);if(s===void 0){Za(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=tt(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function Xm(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=Jo(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=tt(s,a)))}return r}import{decode as ec}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 Qn(e){return{value:ec(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 tc=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function nc(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(tc);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function $t(e){return nc(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]="eaf0e260-a864-57cf-b23b-aac4f9151d8e")}catch{}})();var oc=new Set(["schema","tracker","auto"]),ic=new Set(["passed","failed","stopped","canceled"]),sc=new Set(no);function Fe(e){return e.replaceAll("\\","/")}function ei(e){for(let t of e)if(t!==0)return t;return 0}function zt(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var ti=["id","title","description","created_at","updated_at"],ac=new Set(ae);function ni(e){if(e?.schema)return{statusRegistry:Eo(e.schema),fieldRegistry:vo(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function cc(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function ue(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new x(`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 ot(e,t){throw new x(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 ri(e){let t=new Set(ac);for(let n of e.fieldRegistry?.definitions??[])t.add(n.metadata_key);for(let n of e.extensionFieldNames)t.add(n);return t}function b(e,t){e||ue(t)}function it(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&ue(t),e}function Zn(e,t){let n=e[t];b(typeof n=="string",`${t} must be a string`),b(de(n),`${t} must be a valid ISO timestamp`)}function Qo(e,t,n){let r=e[t];r!==void 0&&b(typeof r=="number"&&Number.isInteger(r)&&r>=1,`${n} must be an integer >= 1`)}function nr(e,t,n){let r=e[t];r!==void 0&&(b(typeof r=="string",`${n} must be a string`),b(de(r),`${n} must be a valid ISO timestamp`))}function dc(e){if(e!==void 0){b(Array.isArray(e),"event.recurrence.by_weekday must be an array");for(let t of e){b(typeof t=="string","event.recurrence.by_weekday entries must be strings");let n=t.trim().toLowerCase();b(St.includes(n),`event.recurrence.by_weekday entries must be one of: ${St.join(", ")}`)}}}function uc(e){if(e!==void 0){b(Array.isArray(e),"event.recurrence.by_month_day must be an array");for(let t of e)b(typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=31,"event.recurrence.by_month_day entries must be integers 1..31")}}function lc(e){if(e!==void 0){b(Array.isArray(e),"event.recurrence.exdates must be an array");for(let t of e)b(typeof t=="string","event.recurrence.exdates entries must be strings"),b(de(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function fc(e){let t=it(e,"event.recurrence must be an object");b(typeof t.freq=="string","event.recurrence.freq must be a string");let n=t.freq.trim().toLowerCase();b(vt.includes(n),`event.recurrence.freq must be one of: ${vt.join(", ")}`),Qo(t,"interval","event.recurrence.interval"),Qo(t,"count","event.recurrence.count"),nr(t,"until","event.recurrence.until"),dc(t.by_weekday),uc(t.by_month_day),lc(t.exdates)}function mc(e){for(let r of ti)b(typeof e[r]=="string",`${r} is required and must be a string`);let t=e.type;b(typeof t=="string"&&t.trim().length>0,"type must be a non-empty string");let n=e.pm_format_version;return n!==void 0&&b(typeof n=="number"&&Number.isInteger(n)&&n>=Le,`pm_format_version must be an integer >= ${Le}`),t}function _c(e,t){let n=e.status;b(typeof n=="string"&&n.trim().length>0,"status must be a non-empty string");let r=t?.statusRegistry,o=jt(n,r),i=r?r.definitions.map(s=>s.id):[...wt];b(o!==void 0,`status must be one of: ${i.join(", ")}`)}function pc(e){let t=e.priority;b(typeof t=="number"&&Number.isInteger(t)&&[0,1,2,3,4].includes(t),"priority must be an integer 0..4");let n=e.tags;b(Array.isArray(n),"tags must be an array");for(let r of n)b(typeof r=="string","tags entries must be strings")}function yc(e){let t=e.confidence;if(t!==void 0){if(typeof t=="number"){b(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"||kt.includes(n);b(r,`confidence string value must be one of: ${[...kt,"med"].join(", ")}`);return}b(!1,"confidence must be a number or string")}}function hc(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&ue("severity must be a string");let n=t.trim().toLowerCase(),r=n==="med"||Et.includes(n);b(r,`severity value must be one of: ${[...Et,"med"].join(", ")}`)}function gc(e){e.regression!==void 0&&typeof e.regression!="boolean"&&ue("regression must be a boolean")}function bc(e){let t=e.reminders;if(t!==void 0){b(Array.isArray(t),"reminders must be an array");for(let n of t){let r=it(n,"reminders entries must be objects");b(typeof r.at=="string","reminder.at must be a string"),b(de(r.at),"reminder.at must be a valid ISO timestamp"),b(typeof r.text=="string","reminder.text must be a string"),b(r.text.trim().length>0,"reminder.text must not be empty")}}}function wc(e){for(let t of["title","description","location","timezone"])e[t]!==void 0&&(b(typeof e[t]=="string",`event.${t} must be a string`),b(e[t].trim().length>0,`event.${t} must not be empty`))}function Ec(e){e.recurrence!==void 0&&(fc(e.recurrence),e.recurrence.until!==void 0&&b(z(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function kc(e){let t=it(e,"events entries must be objects");b(typeof t.start_at=="string","event.start_at must be a string"),b(de(t.start_at),"event.start_at must be a valid ISO timestamp"),t.end_at!==void 0&&(b(typeof t.end_at=="string","event.end_at must be a string"),b(de(t.end_at),"event.end_at must be a valid ISO timestamp"),b(z(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),wc(t),t.all_day!==void 0&&b(typeof t.all_day=="boolean","event.all_day must be a boolean"),Ec(t)}function vc(e){let t=e.events;if(t!==void 0){b(Array.isArray(t),"events must be an array");for(let n of t)kc(n)}}function Sc(e){for(let t of["source_type","source_owner","design","external_ref"]){let n=e[t];n!==void 0&&b(typeof n=="string",`${t} must be a string`)}}function Ic(e){let t=e.type_options;if(t===void 0)return;let n=it(t,"type_options must be an object");for(let[r,o]of Object.entries(n))b(r.trim().length>0,"type_options keys must be non-empty"),b(typeof o=="string","type_options values must be strings"),b(o.trim().length>0,"type_options values must be non-empty strings")}function xc(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){cc(r,t)&&ue(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=tt(r,o,`metadata field "${r.metadata_key}"`)}catch(i){ue(String(i?.message).replace(/^Invalid\s+/u,""))}}}function Tc(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=ri(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length!==0&&(t.unknownFieldPolicy==="reject"?ue(`unknown schema fields are not allowed: ${r.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`))}function rr(e,t){let n=it(e,"item metadata must be an object"),r=mc(n);_c(n,t),pc(n),yc(n),hc(n),gc(n),Zn(n,"created_at"),Zn(n,"updated_at"),n.deadline!==void 0&&Zn(n,"deadline"),bc(n),vc(n),nr(n,"closed_at","closed_at"),nr(n,"completed_at","completed_at"),Sc(n),Ic(n),xc(n,r,t),Tc(n,t)}function Ac(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=z(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 er(e){if(!(!e||e.length===0))return[...e].sort((t,n)=>{let r=z(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 Oc(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=z(n.at,r.at);return o!==0?o:n.text.localeCompare(r.text)});return t.length===0?void 0:t}function Cc(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!vt.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>St.includes(s)))).sort((s,a)=>xn(s)-xn(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=>de(s)))).sort((s,a)=>z(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 Rc(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(Nc).sort(Dc)}function Nc(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:Cc(e.recurrence)};return zt(t),t}function Dc(e,t){return ei([z(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 Mc(e){if(!(!e||e.length===0))return e.map(t=>({path:Fe(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function Lc(e){if(!e||e.length===0)return;let t=e.map(Fc).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)=>ei([z(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 Pe(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function Pc(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function tr(e){return typeof e=="string"?e:""}function jc(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 Fc(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=ic.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:tr(e.started_at),finished_at:tr(e.finished_at),recorded_at:tr(e.recorded_at),attempt:Pc(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:Pe(e.passed)??0,failed:Pe(e.failed)??0,skipped:Pe(e.skipped)??0,items:Pe(e.items),linked_tests:Pe(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:jc(e.measurements)};return zt(o),o}function $c(e){if(!(!Array.isArray(e)||e.length===0))return e.map(Hc)}function nt(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 oi(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function ir(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function Zo(e){if(!oi(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!ir(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function zc(e){if(!oi(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!ir(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Uc(e){let t=e?.trim().toLowerCase();if(!(!t||!oc.has(t)))return t}function Hc(e){let t={command:e.command?.trim()||void 0,path:e.path?Fe(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:Uc(e.pm_context_mode),env_set:Zo(e.env_set),env_clear:nt(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:nt(e.assert_stdout_contains),assert_stdout_regex:nt(e.assert_stdout_regex),assert_stderr_contains:nt(e.assert_stderr_contains),assert_stderr_regex:nt(e.assert_stderr_regex),assert_stdout_min_lines:Pe(e.assert_stdout_min_lines),assert_json_field_equals:Zo(e.assert_json_field_equals),assert_json_field_gte:zc(e.assert_json_field_gte),note:e.note?.trim()||void 0};return zt(t),t}function Wc(e){if(!(!e||e.length===0))return[...e].map(t=>({path:Fe(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 h(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function Bc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=h(r.id),i=h(r.kind);if(!o||!i)continue;let s={id:o,kind:i},a=h(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 Vc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=h(r.path);if(!o)continue;let i={path:Fe(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=h(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function qc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=h(r.command),i=h(r.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=Fe(i));let a=h(r.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function Gc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=h(r.path);if(!o)continue;let i={path:Fe(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=h(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Xc(e){if(e===null||typeof e!="object")return;let t=e,n=h(t.id),r=h(t.title),o=h(t.status),i=o&&sc.has(o)?o:void 0,s=lo(t.order)??Number.NaN,a=typeof t.created_at=="string"?t.created_at:"",c=typeof t.updated_at=="string"?t.updated_at:"";if(!n||!r||!i||!Number.isFinite(s)||!a||!c)return;let u={id:n,order:s,title:r,status:i,created_at:a,updated_at:c};return Jc(u,t),u}function Jc(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=h(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",Bc],["files","files",Vc],["tests","tests",qc],["docs","docs",Gc]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function Kc(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=Xc(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function Yc(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=h(r.decision);if(!o||!i||!s)continue;let a={ts:o,author:i,decision:s},c=h(r.rationale);c&&(a.rationale=c);let u=h(r.evidence);u&&(a.evidence=u);let f=h(r.step_id);f&&(a.step_id=f),t.push(a)}return t.length>0?t:void 0}function Qc(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=h(r.text);if(!o||!i||!s)continue;let a={ts:o,author:i,text:s},c=h(r.step_id);c&&(a.step_id=c),t.push(a)}return t.length>0?t:void 0}function Zc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=h(r.text);if(!o)continue;let i={text:o},s=h(r.command);s&&(i.command=s);let a=h(r.expected);a&&(i.expected=a),t.push(i)}return t.length>0?t:void 0}function ed(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 je(e){let t=0;for(;t<e.length&&e[t]===`
|
|
4
4
|
`;)t+=1;return e.slice(t).trimEnd()}function td(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(kt.includes(t))return t}function nd(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(Et.includes(t))return t}function rt(e){return e||void 0}function rd(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))ir(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function od(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]=tt(r,o,`metadata field "${r.metadata_key}"`))}}function id(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=ri(t),o=Object.keys(e).filter(i=>!n.has(i)).sort((i,s)=>i.localeCompare(s));o.length>0&&t.unknownFieldPolicy==="reject"&&ue(`unknown schema fields are not allowed: ${o.join(", ")}`),o.length>0&&t.onWarning?.(`item_unknown_schema_fields:${o.join(",")}`)}function Ut(e,t={}){let n=ni(t),r=jt(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:qo(e.pm_format_version),source_type:h(e.source_type),type_options:ed(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:Ac(e.dependencies),comments:er(e.comments),notes:er(e.notes),learnings:er(e.learnings),files:Mc(e.files),tests:$c(e.tests),test_runs:Lc(e.test_runs),docs:Wc(e.docs),deadline:rt(e.deadline),reminders:Oc(e.reminders),events:Rc(e.events),closed_at:rt(e.closed_at),completed_at:rt(e.completed_at),assignee:h(e.assignee),claim_principal:h(e.claim_principal),source_owner:h(e.source_owner),author:rt(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:h(e.definition_of_ready),order:e.order,goal:h(e.goal),objective:h(e.objective),value:h(e.value),impact:h(e.impact),outcome:h(e.outcome),why_now:h(e.why_now),parent:h(e.parent),reviewer:h(e.reviewer),risk:e.risk??void 0,confidence:td(e.confidence),sprint:h(e.sprint),release:h(e.release),blocked_by:h(e.blocked_by),blocked_reason:h(e.blocked_reason),unblock_note:h(e.unblock_note),reporter:h(e.reporter),severity:nd(e.severity),environment:h(e.environment),repro_steps:h(e.repro_steps),resolution:h(e.resolution),expected_result:h(e.expected_result),actual_result:h(e.actual_result),affected_version:h(e.affected_version),fixed_version:h(e.fixed_version),component:h(e.component),regression:e.regression,customer_impact:h(e.customer_impact),close_reason:rt(e.close_reason),plan_mode:h(e.plan_mode),plan_scope:h(e.plan_scope),plan_harness:h(e.plan_harness),plan_resume_context:h(e.plan_resume_context),plan_steps:Kc(e.plan_steps),plan_decisions:Yc(e.plan_decisions),plan_discoveries:Qc(e.plan_discoveries),plan_validation:Zc(e.plan_validation)};return rd(i,e),od(i,n),id(i,n),zt(i),i}function ii(e){return v(e,ae)}function sd(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 ad(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=sd(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 cd(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(`
|
|
@@ -152,4 +152,4 @@ ${a.join(`
|
|
|
152
152
|
`,"utf8")}catch{return await xr(e),null}return t}async function zu(e){let t;try{let r=await re.stat(e);if(t=Date.now()-r.mtimeMs,t<=Nu)return!1}catch(r){return be(r)}let n=await Zi(e);return n!==null&&$u(n.pid)&&t<=Du?!1:xr(e)}async function Uu(e,t){let n=`${e}${Ru}`,r=await qi(n);if(r!==null)return async()=>Vi(n,r.token);if(!await zu(n))return null;let o=await qi(n);return o===null?null:async()=>Vi(n,o.token)}async function Hu(e){let t=await Uu(e.lockPath,e.id);if(t===null)return{lockInfo:e.fallbackLockInfo,shouldRetryCreate:!1,staleRemovalCounted:!1};try{let n=await Gi(e.lockPath);if(n.info===null&&n.warnings.length===0)return{lockInfo:n,shouldRetryCreate:!0,staleRemovalCounted:!1};if(!Ki(n.info,e.ttlSeconds))return{lockInfo:n,shouldRetryCreate:!1,staleRemovalCounted:!1};if(ju(e.id,n,e.force,e.forceRequiredForStaleLock),e.staleRemovals>=Cu)throw Qi(e.id,n.info,Date.now()-e.startedAtMs);return{lockInfo:n,shouldRetryCreate:await Ji(e.lockPath,"lock:stale_remove"),staleRemovalCounted:!0}}finally{await t()}}async function oe(e,t,n,r,o=!1,i=!0,s){let a=await ee("lock_acquire",{pm_root:e,id:t,ttl_seconds:n,owner:r,force:o,force_required_for_stale_lock:i});if(a.handled){let p=Pu(a.result);if(p)return async()=>{await Promise.resolve(p()),await ee("lock_release",{pm_root:e,id:t,owner:r})}}let c=ao(e,t),u=Mu(s),f=Date.now(),l=0,_=Tu;for(;;)try{return await Iu(c,t,r,n),async()=>{await Ji(c,"lock:release"),await ee("lock_release",{pm_root:e,id:t,owner:r})}}catch(p){if(!Ir(p,"EEXIST"))throw new x(`Failed to acquire lock for ${t}: ${uo(p)}`,I.GENERIC_FAILURE);let w=await Gi(c);if(Ki(w.info,n)){let E=await Hu({lockPath:c,id:t,ttlSeconds:n,force:o,forceRequiredForStaleLock:i,staleRemovals:l,waitBudgetMs:u,startedAtMs:f,fallbackLockInfo:w});if(w=E.lockInfo,E.staleRemovalCounted&&(l+=1),E.shouldRetryCreate)continue}let k=Date.now()-f;if(u===0||k>=u)throw Qi(t,w.info,u===0?0:k);await Lu(Math.min(_,u-k)),_=Math.min(_*2,Au)}}(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]="8b8c705a-8d80-576f-8642-f6f686cdbed9")}catch{}})();var Y=8,is=500,Bu="metadata-derived-index",Vu="metadata-cache.json",qu="metadata-cache-bodies.json",Gu="metadata-cache-collections.json",Xu="metadata-cache-delta.json",Ju="metadata-cache-manifest.json",es=4,Ku=["comments","notes","learnings","files","tests","test_runs","docs"];function ss(){return It(st())}function ln(e){let t={...e},n={};for(let r of Ku)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function as(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function cs(e,t,n,r){let o=Wu("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 fn(e){return R.join(e,"runtime",Vu)}function mn(e){return R.join(e,"runtime",qu)}function _n(e){return R.join(e,"runtime",Gu)}function Ar(e){return R.join(e,"runtime",Xu)}function Or(e){return R.join(e,"runtime",Ju)}function pn(e,t){let n=R.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var Yu=24,V=new Map,yn=new WeakMap;function Cr(e){return yn.get(e)??e.source_cursor}function Qu(e,t){let n=Cr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){yn.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 Zu(e,t){if(!e)return;let n=Cr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){yn.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 el(e,t){if(!e)return;let n=Cr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){yn.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 tl(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(Qu(e,r),Zu(t,r),el(n,r))}function Tr(e,t){V.size>=Yu&&!V.has(e)&&At(V),V.set(e,t)}async function me(e,t){let n;try{n=await $.stat(e)}catch{return V.delete(e),null}let r=V.get(e);if(r&<(r.signature,n.mtimeMs,n.ctimeMs,n.size))return V.delete(e),V.set(e,r),r.envelope;let o;try{o=t(await $.readFile(e,"utf8"))}catch{o=null}return Tr(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function nl(e,t,n){let r=a=>{let c=JSON.parse(a);return c.version!==Y||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=fn(e),i=await me(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await me(pn(o,t),r);return s===null&&_t(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function rl(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==Y||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=mn(e),o=await me(r,n);return t&&o?.context_fingerprint!==t?await me(pn(r,t),n):o}async function ol(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==Y||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=_n(e),o=await me(r,n);return t&&o?.context_fingerprint!==t?await me(pn(r,t),n):o}async function Rr(e){let t=Ar(e),n=await me(t,r=>{let o=JSON.parse(r);return o.version!==Y||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 $.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function Nr(e){let t=Or(e),n=await me(t,r=>{let o=JSON.parse(r);return o.version!==Y||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 $.stat(t),await qe(e)}catch{}return null}async function ft(e,t){await $.mkdir(R.dirname(e),{recursive:!0}),await H(e,JSON.stringify(t));try{let r=await $.stat(e);Tr(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{V.delete(e)}let n=R.dirname(R.dirname(e));if(e===fn(n)||e===mn(n)||e===_n(n)){let r=pn(e,t.context_fingerprint);await H(r,JSON.stringify(t));try{let c=await $.stat(r);Tr(r,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{V.delete(r)}let o=R.dirname(e),i=R.extname(e),s=R.basename(e,i),a=(await $.readdir(o,{withFileTypes:!0}).catch(()=>[])).filter(c=>c.isFile()&&c.name!==R.basename(e)&&c.name.startsWith(`${s}.`)&&c.name.endsWith(i)).map(c=>R.join(o,c.name));if(a.length>es){let c=(await Promise.all(a.map(async u=>{try{return{path:u,mtime:(await $.stat(u)).mtimeMs}}catch{return null}}))).filter(u=>u!==null);for(let u of c.sort((f,l)=>f.mtime-l.mtime).slice(0,Math.max(0,c.length-es)))await $.rm(u.path,{force:!0}),V.delete(u.path)}}}function il(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function ds(e,t,n){return e===void 0||il(e,t,n)}function _t(e,t){e&&!e.includes(t)&&e.push(t)}function lt(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function sl(e,t,n){let r=R.join(e,t);try{let o=await $.readdir(r);return{folder:t,dirPath:r,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&!be(o)&&_t(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function al(e,t){try{let n=await $.stat(R.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 un(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await al(e,n))))}function mt(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&<(o,r.mtime_ms,r.ctime_ms,r.size)})}function cl(e){return Tt.some(t=>e.toLowerCase().endsWith(t))}function dl(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function ul(e,t,n){if(n)for(let r of await K({path:e,scope:"project"}))_t(t,r)}function ts(e,t,n,r){if(e)return t&&n?n.collections:r}async function ll(e,t,n){let r=await $.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=On(e);await ul(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],u=!n.forceSourceRead&&c!==void 0&<(c,o,i,s),f=n.previousBodies[t],l=!n.forceSourceRead&&f!==void 0&<(f,o,i,s),_=n.previousCollections[t],p=!n.forceSourceRead&&_!==void 0&<(_,o,i,s);if(!(!u||n.includeBody&&!l||n.includeCollections&&!p))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:c.metadata,heavyMetadata:ts(n.includeCollections,p,_,void 0),bodyLength:c.body_length,body:n.includeBody?f.body:void 0};let k=await $.readFile(e,"utf8"),E=Ht(k,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:N=>_t(n.warnings,N)}),C=ln(E.metadata);return dl(n.state.misses,n.includeBody,n.includeCollections,u,l,p),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:u?c.metadata:C.light,heavyMetadata:ts(n.includeCollections,p,_,C.heavy),bodyLength:u?c.body_length:E.body.length,body:n.includeBody?E.body:void 0}}function fl(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?as(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};ds(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function ml(e,t,n,r){try{let o=await ll(t,n,r);fl(t,n,r,o)}catch{_t(r.warnings,`item_list_item_read_failed:${e}/${R.basename(t)}`)}}function _l(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function pl(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function yl(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function hl(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}function gl(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!cl(s))continue;let a=R.join(o,s),c=R.relative(t.pmRoot,a);n.push(ml(r,a,c,t))}return n}async function bl(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!mt(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await ft(fn(e.pmRoot),{version:Y,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await ft(Or(e.pmRoot),{version:Y,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:R.relative(e.pmRoot,r.item_path),metadata:ln(r.metadata).light,linkedFiles:r.metadata.files??[]}));n.length>=e.minimumIndexedItems?await Hi({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:n}):await dn(e.pmRoot)}catch{}}async function wl(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 ft(mn(e.pmRoot),{version:Y,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function El(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 ft(_n(e.pmRoot),{version:Y,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function Dr(e,t,n={}){let r=await Nr(e);return n.required!==!0&&(r===null||r.entry_count<is)?async()=>{}:oe(e,Bu,30,t,!1,!1,3e3)}async function Hy(e,t){let n=await Nr(e);if(n===null)return null;let r=await Rr(e);if(r.invalid)return await qe(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&&!mt(i,await un(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function ns(e,t){let n=R.relative(e,t);return n===""||n===".."||n.startsWith(`..${R.sep}`)||R.isAbsolute(n)?null:n}async function qe(e){await Promise.all([fn(e),mn(e),_n(e),Ar(e),Or(e)].map(async t=>{await $.rm(t,{force:!0}),V.delete(t)})),await dn(e)}async function kl(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await $.stat(e.mutation.itemPath),n=ln(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 vl(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function Mr(e){let t=ns(e.pmRoot,e.itemPath),n=e.previousItemPath?ns(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await qe(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=cs(e.preferredFormat,e.typeToFolder,e.schema,ss()),o=await Nr(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 qe(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=vl(s.envelope,r,i),c=s.envelope?.context_fingerprint===r&&s.envelope.base_source_cursor===i?s.envelope.source_cursor:i;n!==void 0&&(a[n]={entry:null,body:null,collections:null}),a[t]=await kl({mutation:e});let u=os();return await ft(Ar(e.pmRoot),{version:Y,context_fingerprint:r,base_source_cursor:i,source_cursor:u,directory_signatures:await un(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await Wi({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:u,row:e.document===null?null:{relativePath:t,metadata:ln(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await dn(e.pmRoot),[]}catch{return await qe(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function Sl(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function rs(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function Il(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function xl(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=On(n);if(!o)continue;let i=e.includeCollections?as(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);ds(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:R.join(e.pmRoot,n)}})}return[...t.values()].sort((n,r)=>n.candidate.metadata.id.localeCompare(r.candidate.metadata.id)).map(n=>n.candidate)}function Tl(e){return e.forceSourceScan||dr()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!mt(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||rs(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||rs(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&Il(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function hn(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=ss(),u=cs(t,n,o,c),f=await Rr(e);f.invalid&&await qe(e);let l=await nl(e,u,i.cacheDiagnostics),_=s?await rl(e,u):null,p=a?await ol(e,u):null;tl(l,_,p,f.envelope);let w=_l(l,u),k=pl(_,u),E=yl(p,u),C=[...new Set(Object.values(n))],N=await un(e,C),Q=Object.keys(w),j=Math.max(1,Math.floor(i.derivedIndexMinimumItems??is));if(Tl({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:u,existingCache:l,existingBodyCache:_,existingCollectionsCache:p,directorySignatures:N,entryKeys:Q,minimumIndexedItems:j,includeBody:s,includeCollections:a,previousBodies:k,previousCollections:E}))return xl({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:w,previousBodies:k,previousCollections:E});let Ce=await Promise.all(C.map(Ys=>sl(e,Ys,r))),se=dr(),U=hl(),Sn={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,forceSourceRead:i.forceSourceScan===!0,dispatchReadHooks:se,previousEntries:w,previousBodies:k,previousCollections:E,state:U};await Promise.all(gl(Ce,Sn));let gt=await un(e,C),Kr=mt(N,gt)?gt:{},In=U.misses.metadata||Object.keys(w).length!==Object.keys(U.newEntries).length||!mt(l?.directory_signatures,Kr)||l===null?os():l.source_cursor;return await bl({pmRoot:e,contextFingerprint:u,sourceCursor:In,existingCache:l,previousEntries:w,directorySignatures:Kr,state:U,minimumIndexedItems:j}),s&&await wl({pmRoot:e,contextFingerprint:u,sourceCursor:In,existingBodyCache:_,previousBodies:k,state:U}),a&&await El({pmRoot:e,contextFingerprint:u,sourceCursor:In,existingCollectionsCache:p,previousCollections:E,state:U}),Sl(U)}async function us(e,t,n,r,o){return(await hn(e,t,n,r,o,{includeBody:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}async function ls(e,t,n,r,o){return(await hn(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}import Al from"node:fs/promises";import Ge 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]="9027d972-ce29-5511-ba81-27e17d97446e")}catch{}})();var pt="_workspace";function Lr(e){return Ge.join(e,"history",`${pt}.jsonl`)}function Ol(e,t){return{metadata:{id:pt,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 Pr(e,t=e.length){let n=en();for(let r of e.slice(0,t))n=nn(n,r.patch).document;return tn(n)}function fs(e){return"documents"in e.metadata&&typeof e.metadata.documents=="object"&&e.metadata.documents!==null&&!Array.isArray(e.metadata.documents)?e.metadata.documents:{}}function jr(e){throw new x(`Workspace history verification failed: ${e.join(", ")}`,I.CONFLICT,{code:"workspace_history_chain_invalid",reason:"workspace_history_chain_verification_failed",verification_errors:[...e],required:"Repair the _workspace history chain before reading, reconciling, restoring, or appending audited singleton state.",why:"Continuing against an unverifiable append-only stream could hide or compound workspace state corruption.",examples:["pm history _workspace --verify --json","pm validate --check-history-drift --fix-hints --json"],nextSteps:["Inspect the exact verification_errors and preserve the corrupt stream as evidence.","Use the history-drift remediation returned by validate before retrying the refused operation."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify --json"}})}function Cl(e,t){let n=Ge.resolve(t),r=Ge.relative(e,n).replaceAll("\\","/");if(r.length===0||r===".."||r.startsWith("../")||Ge.isAbsolute(r))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:r,absolutePath:n}}async function eh(e){let t=await ze(Lr(e),pt),n=rn(t);n.ok||jr(n.errors);let r=fs(t.length===0?Re:Pr(t)),o=[],i=[],s=[],a=[];for(let c of Object.keys(r).sort()){let u;try{let f=Cl(e,Ge.resolve(e,c));if(u=await ce(f.absolutePath),u===null){s.push(c);continue}let l=JSON.parse(u);(M(l)===M(r[c])?o:i).push(c)}catch{a.push(c)}}return{ok:i.length===0&&s.length===0&&a.length===0,document_count:Object.keys(r).length,matching_documents:o,mismatched_documents:i,missing_documents:s,unreadable_documents:a}}async function ms(e){let t=Lr(e.pmRoot),n=await ze(t,pt),r=rn(n);r.ok||jr(r.errors);let o=e.idempotencyKey===void 0?void 0:n.find(l=>l.op===`${e.op}:${e.idempotencyKey}`);if(o)return{entry:o,historyPath:t};let i=new Date().toISOString(),s=n.length===0?Re:Pr(n),a=fs(s),c=a[e.documentPath];if(c!==void 0&&M(c)!==M(e.before))throw new x(`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 u=Ol({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),f=We({nowIso:i,author:e.author,op:e.idempotencyKey===void 0?e.op:`${e.op}:${e.idempotencyKey}`,before:s,after:u,message:e.message});return await Be(t,f),{entry:f,historyPath:t}}async function th(e){let t=await oe(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await ms(e)}finally{await t()}}async function nh(e){let t=await oe(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=Lr(e.pmRoot),r=await ze(n,pt),o=rn(r);o.ok||jr(o.errors);let i=r.length===0?Re:Pr(r),s=We({nowIso:new Date().toISOString(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await Be(n,s),{entry:s,historyPath:n}}finally{await t()}}async function _s(e,t){if(t===e.raw)return!1;let n=t===null?null:JSON.parse(t),r=JSON.parse(e.raw);await H(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await ms({pmRoot:e.pmRoot,documentPath:Ge.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 Al.rm(e.filePath,{force:!0}):await H(e.filePath,t),o}return!0}async function rh(e){let t=await oe(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=await ce(e.filePath),r=await e.mutate(n);return{changed:await _s({...e,raw:r.raw},n),result:r.result}}finally{await t()}}async function ps(e){let t=await oe(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await _s(e,await ce(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]="8883f930-193e-5133-835a-f15b1b62f6be")}catch{}})();var F={ok:!1},m=e=>typeof e=="string"?{ok:!0,value:e}:F,T=e=>typeof e=="boolean"?{ok:!0,value:e}:F;function O(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?F:{ok:!0,value:t}}function A(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:F}function y(e,t){return n=>{if(!Array.isArray(n)||t!==void 0&&n.length>t)return F;let r=[];for(let o of n){let i=e(o);if(!i.ok)return F;r.push(i.value)}return{ok:!0,value:r}}}function $r(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}:F}function d(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function gn(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return F;let n={};for(let[r,o]of Object.entries(t)){let i=e(o);if(!i.ok)return F;n[r]=i.value}return{ok:!0,value:n}}}function S(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return F;let n=t,r={};for(let[o,i]of Object.entries(e)){let s=i(n[o]);if(!s.ok)return F;s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var Rl=S({key:m,values:y(m),required:d(T),aliases:d(y(m)),description:d(m)}),Nl=S({command:A("create","update"),option:m,required:d(T),visible:d(T),enabled:d(T)}),Dl=S({name:m,description:d(m),default_status:d(m),folder:d(m),aliases:d(y(m)),required_create_fields:d(y(m)),required_create_repeatables:d(y(m)),options:d(y(Rl)),command_option_policies:d(y(Nl))}),Ml=S({id:m,aliases:d(y(m)),roles:d(y(A(...Yr))),description:d(m),order:d(O())}),Ll=S({key:m,metadata_key:d(m),front_matter_key:d(m),cli_flag:d(m),cli_aliases:d(y(m)),description:d(m),type:d(A(...Qr)),commands:d(y(A(...Zr))),repeatable:d(T),required:d(T),required_on_create:d(T),required_types:d(y(m)),allow_unset:d(T)}),Pl=e=>{if(!Array.isArray(e)||e.length!==2)return F;let[t,n]=e;return typeof t!="string"||typeof n!="string"?F:{ok:!0,value:[t,n]}},jl=S({type:m,allowed_transitions:y(Pl)}),Fl=d(S({version:d(O({int:!0})),files:d(S({types:d(m),statuses:d(m),fields:d(m),workflows:d(m)})),statuses:d(y(Ml)),fields:d(y(Ll)),workflow:d(S({draft_status:d(m),open_status:d(m),in_progress_status:d(m),blocked_status:d(m),close_status:d(m),canceled_status:d(m)})),type_workflows:d(y(jl)),unknown_field_policy:d(A(...eo))})),$l=d(S({preset:d(A(...to)),ownership_enforcement:d(A("none","warn","strict")),create_mode_default:d(A("progressive","strict")),close_validation_default:d(A("off","warn","strict")),require_close_reason:d(T),parent_reference:d(A("warn","strict_error")),metadata_profile:d(A("core","strict","custom")),force_required_for_stale_lock:d(T),create_default_type:d(m),workflow_enforcement:d(A("off","warn","strict")),duplicate_detection_mode:d(A("off","advisory","strict")),duplicate_detection_threshold:d(O({min:0,max:1})),duplicate_detection_limit:d(O({int:!0,min:0,max:20}))})),zl=S({name:m,disabled:d(T),require_trusted:d(T),require_provenance:d(T),sandbox_profile:d(A("none","restricted","strict")),allowed_capabilities:d(y(m)),blocked_capabilities:d(y(m)),allowed_surfaces:d(y(m)),blocked_surfaces:d(y(m)),allowed_commands:d(y(m)),blocked_commands:d(y(m)),allowed_actions:d(y(m)),blocked_actions:d(y(m)),allowed_services:d(y(m)),blocked_services:d(y(m))}),Fr=A("block","warn"),Ul=e=>typeof e=="string"?Fr(e):S({global:d(Fr),project:d(Fr)})(e),Hl=d(S({mode:d(A("off","warn","enforce")),trust_mode:d(A("off","warn","enforce")),pm_max_version_exceeded_mode:d(Ul),require_provenance:d(T),trusted_extensions:d(y(m)),default_sandbox_profile:d(A("none","restricted","strict")),allowed_extensions:d(y(m)),blocked_extensions:d(y(m)),allowed_capabilities:d(y(m)),blocked_capabilities:d(y(m)),allowed_surfaces:d(y(m)),blocked_surfaces:d(y(m)),allowed_commands:d(y(m)),blocked_commands:d(y(m)),allowed_actions:d(y(m)),blocked_actions:d(y(m)),allowed_services:d(y(m)),blocked_services:d(y(m)),extension_overrides:d(y(zl))})),Oe=$r(128),Wl=S({harness:$r(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:d(y(Oe,64)),model_environment_keys:d(y(Oe,64)),session_environment_keys:d(y(Oe,64)),provenance_environment_keys:d(gn(y(Oe,64))),provenance_resolvers:d(gn(A("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:d(y(Oe,64)),argv_markers:d(y(Oe,64)),client_names:d(y(Oe,64))}),Bl=S({version:O({int:!0}),id_prefix:m,ids:d(S({token_length:d(O({int:!0,min:4,max:12}))})),author_default:m,agent_identity:d(S({probes_enabled:d(T),identity_vocabulary:d(S({version:O({int:!0,positive:!0}),aliases:gn($r(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:y(Wl)})),mutation_guard:d(S({require_attributed_author:d(T),secret_guard:d(A("off","advise","block")),stale_in_progress_hours:d(O({int:!0,positive:!0}))})),item_format:d(A("toon","json_markdown")),locks:S({ttl_seconds:O({int:!0}),wait_ms:d(O({int:!0,min:0}))}),checkpoints:d(S({retention_days:d(O({int:!0,positive:!0}))})),output:S({default_format:A("toon","json")}),ux:d(S({deprecation_hints:d(T)})),history:d(S({missing_stream:A("auto_create","strict_error"),compact_policy:d(S({enabled:d(T),max_entries:d(O({int:!0,positive:!0})),trigger:d(A("health_warn","auto"))}))})),validation:d(S({sprint_release_format:A("warn","strict_error"),parent_reference:d(A("warn","strict_error")),metadata_profile:d(A("core","strict","custom")),metadata_required_fields:d(y(m)),lifecycle_stale_blocker_reason_patterns:d(y(m)),lifecycle_closure_like_blocked_reason_patterns:d(y(m)),lifecycle_closure_like_resolution_patterns:d(y(m)),lifecycle_closure_like_actual_result_patterns:d(y(m)),estimate_defaults_by_type:d(gn(O({int:!0,positive:!0})))})),governance:$l,workflow:d(S({definition_of_done:y(m)})),testing:d(S({record_results_to_items:T})),telemetry:d(S({enabled:T,first_run_prompt_completed:d(T),capture_level:d(A("minimal","redacted","max")),endpoint:d(m),installation_id:d(m),retention_days:d(O({int:!0,positive:!0}))})),agent_guidance:d(S({prompt_completed:d(T),declined:d(T),declined_at:d(m),template_version:d(O({int:!0,positive:!0})),last_checked_files:d(y(m))})),item_types:d(S({definitions:y(Dl)})),schema:Fl,context:d(S({default_depth:d(A("brief","standard","deep")),activity_limit:d(O({int:!0,positive:!0})),stale_threshold_days:d(O({int:!0,positive:!0})),sections:d(S({hierarchy:d(T),activity:d(T),progress:d(T),recently_created:d(T),unparented:d(T),blockers:d(T),files:d(T),workload:d(T),staleness:d(T),tests:d(T)}))})),extensions:S({enabled:y(m),disabled:y(m),policy:Hl}),search:S({score_threshold:O(),hybrid_semantic_weight:d(O()),max_results:O({int:!0}),embedding_model:m,embedding_corpus_max_characters:d(O()),embedding_batch_size:O({int:!0}),embedding_timeout_ms:d(O({int:!0})),scanner_max_batch_retries:O({int:!0}),provider:d(m),corpus_fields:d(y(m)),mutation_refresh_policy:d(A("cache_only","semantic_configured","semantic_auto")),query_expansion:d(S({enabled:d(T),provider:d(m)})),rerank:d(S({enabled:d(T),model:d(m),top_k:d(O({int:!0,positive:!0}))})),bm25:d(S({k1:d(O()),b:d(O())}))}),providers:S({openai:S({base_url:m,api_key:m,model:m}),ollama:S({base_url:m,model:m})}),vector_store:S({adapter:d(m),collection_name:d(m),qdrant:S({url:m,api_key:m}),lancedb:S({path:m})})});function ys(e){let t=Bl(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 Vl={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},hs=120;function zr(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function bs(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var ql=bs(Vl),gs=new WeakMap;function Gl(e){let t=gs.get(e);if(t)return t;let n=bs(e);return gs.set(e,n),n}function ah(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return hs;if(t){let o=Gl(t).get(n);if(zr(o))return Math.floor(o)}let r=ql.get(n);return zr(r)?Math.floor(r):hs}function Ur(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||!zr(r)||(t[o]=Math.floor(r))}return t}import{stat as Xl}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 bn=new Map;function ws(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function Jl(e){try{let t=await Xl(e);return{path:e,mtime_ms:t.mtimeMs,size:t.size}}catch{return{path:e,mtime_ms:null,size:null}}}async function _e(e){let t=ws(e),n=await Promise.all(t.map(r=>Jl(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function yt(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 Es(e){return bn.get(e)}function wn(e,t){let n=ws(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));bn.set(e,{tracked_paths:n,signatures:r,value:t.value})}function pe(e){if(e){bn.delete(e);return}bn.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]="67bf189e-e816-536d-9051-589a2e468423")}catch{}})();var Kl="settings:write",xs=Symbol("pm.settings.persist_source"),Yl=128,Ql=new Set(["off","advisory","strict"]);function ks(e){return structuredClone(ro[e])}function Zl(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:g.governance.preset}function vs(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 ef(e){return e.preset==="custom"?vs({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):vs({preset:e.preset},e)}function tf(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 kn(e){let t=e.governance??{},n=Zl(t.preset),r=tf(t);if(n==="custom"){let s=ks("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=ks(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function Ts(){return structuredClone(g)}function As(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:g.search.mutation_refresh_policy}function Os(e){return typeof e=="boolean"?e:g.search.query_expansion.enabled}function Cs(e){return typeof e!="string"?g.search.query_expansion.provider:e.trim()}function Rs(e){return typeof e=="boolean"?e:g.search.rerank.enabled}function Ns(e){return typeof e!="string"?g.search.rerank.model:e.trim()}function Ds(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:g.search.rerank.top_k}function Ms(e){if(typeof e!="string")return g.vector_store.collection_name;let n=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,Yl);return n.length>0?n:g.vector_store.collection_name}function Hr(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function nf(e,t){let n=e.schema,r=Hr(n?.statuses),o=Hr(n?.fields),i=Hr(n?.type_workflows);return{source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:Xe(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:Xe(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 Ls(e,t){Object.defineProperty(e,xs,{value:t,writable:!0,configurable:!0,enumerable:!1})}function Ps(e){let t=e[xs];if(!(!t||typeof t!="object"))return t}function En(e){let t=structuredClone(e.settings),n=Ps(e.settings);return n&&Ls(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function rf(e,t,n){let r=Ze(t);return[n,et(e,r.files.types,Qe.types),et(e,r.files.statuses,Qe.statuses),et(e,r.files.fields,Qe.fields),et(e,r.files.workflows,Qe.workflows)]}async function of(e,t,n){let r=await _e(t);wn(e,{tracked_paths:t,signatures:r,value:En(n)})}async function sf(e,t,n){try{await of(e,t,n)}catch{pe(e)}}function Ss(e,t){return e.find(n=>n.path===t)}function af(e,t,n){for(let r of n){let o=Ss(e,r),i=Ss(t,r);if(!o||!i||!yt([o],[i]))return!1}return!0}async function Wr(e,t,n,r,o){try{let i=await _e(t);if(!af(r,i,o)){pe(e);return}wn(e,{tracked_paths:t,signatures:i,value:En(n)})}catch{pe(e)}}function cf(e,t){let n=Ze(e.schema),r=Xe(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=Ne(r,t.runtime_item_type_definitions),s=Ne(n.statuses,t.runtime_schema_statuses),a=Ne(n.fields,t.runtime_schema_fields),c=Ne(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?Xe(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:c?t.has_source_schema_type_workflows?structuredClone(t.source_schema_type_workflows):void 0:n.type_workflows}}function ht(e){return{settings:Ts(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function df(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function Vr(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function js(e){let t=g.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:Vr(e?.last_checked_files??t.last_checked_files)}}function X(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function uf(e){return e==="off"||e==="warn"||e==="enforce"?e:g.extensions.policy.mode}function lf(e){return e==="off"||e==="warn"||e==="enforce"?e:g.extensions.policy.trust_mode}function Fs(e){return e==="none"||e==="restricted"||e==="strict"?e:g.extensions.policy.default_sandbox_profile}function ff(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=Fs(e.sandbox_profile));let r=X(e.allowed_capabilities),o=X(e.blocked_capabilities),i=X(e.allowed_surfaces),s=X(e.blocked_surfaces),a=X(e.allowed_commands),c=X(e.blocked_commands),u=X(e.allowed_actions),f=X(e.blocked_actions),l=X(e.allowed_services),_=X(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),c.length>0&&(n.blocked_commands=c),u.length>0&&(n.allowed_actions=u),f.length>0&&(n.blocked_actions=f),l.length>0&&(n.allowed_services=l),_.length>0&&(n.blocked_services=_),n}function mf(e){let t=new Map;for(let n of e??[]){let r=ff(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function Br(e){return e==="block"||e==="warn"?e:void 0}function _f(e){if(typeof e=="string")return Br(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=Br(e.global),n=Br(e.project);return t===void 0&&n===void 0?void 0:{...t!==void 0?{global:t}:{},...n!==void 0?{project:n}:{}}}}function W(e,t){return X(e?.[t]??g.extensions.policy[t])}function $s(e){let t=_f(e?.pm_max_version_exceeded_mode);return{mode:uf(e?.mode),trust_mode:lf(e?.trust_mode),...t!==void 0?{pm_max_version_exceeded_mode:t}:{},require_provenance:e?.require_provenance===!0,trusted_extensions:W(e,"trusted_extensions"),default_sandbox_profile:Fs(e?.default_sandbox_profile),allowed_extensions:W(e,"allowed_extensions"),blocked_extensions:W(e,"blocked_extensions"),allowed_capabilities:W(e,"allowed_capabilities"),blocked_capabilities:W(e,"blocked_capabilities"),allowed_surfaces:W(e,"allowed_surfaces"),blocked_surfaces:W(e,"blocked_surfaces"),allowed_commands:W(e,"allowed_commands"),blocked_commands:W(e,"blocked_commands"),allowed_actions:W(e,"allowed_actions"),blocked_actions:W(e,"blocked_actions"),allowed_services:W(e,"allowed_services"),blocked_services:W(e,"blocked_services"),extension_overrides:mf(e?.extension_overrides??g.extensions.policy.extension_overrides)}}function zs(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 ye(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 B(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function qr(e){return Array.isArray(e)?e:[]}function pf(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:zs(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:ye(e.validation?.lifecycle_stale_blocker_reason_patterns??t.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:ye(e.validation?.lifecycle_closure_like_blocked_reason_patterns??t.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:ye(e.validation?.lifecycle_closure_like_resolution_patterns??t.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:ye(e.validation?.lifecycle_closure_like_actual_result_patterns??t.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:Ur(e.validation?.estimate_defaults_by_type)}}function yf(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 hf(e,t){return{...t.search,...e.search,mutation_refresh_policy:As(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:Os(e.search?.query_expansion?.enabled),provider:Cs(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:Rs(e.search?.rerank?.enabled),model:Ns(e.search?.rerank?.model),top_k:Ds(e.search?.rerank?.top_k)}}}function gf(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:Ms(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function bf(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function wf(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 Ef(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function Xe(e){let t=(e??[]).map(r=>io(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 Us(e){let t=Ts(),n=kn({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:bf(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},ux:{...t.ux,...e.ux},history:{...t.history,...e.history,compact_policy:{...t.history.compact_policy,...e.history?.compact_policy}},validation:pf(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:yf(e,t),agent_guidance:js(e.agent_guidance??t.agent_guidance),item_types:{definitions:Xe(e.item_types?.definitions)},schema:Ze(e.schema??t.schema),context:wf(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:$s(e.extensions.policy??t.extensions.policy)},search:hf(e,t),providers:Ef(e,t),vector_store:gf(e,t)}}function kf(e){e.agent_identity=v(e.agent_identity,["probes_enabled","identity_vocabulary","harness_signals"]);let t=e.agent_identity;Object.hasOwn(t,"identity_vocabulary")&&(t.identity_vocabulary=v(B(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=qr(e.agent_identity.harness_signals).map(n=>v(B(n),["harness","environment_keys","model_environment_keys","session_environment_keys","provenance_environment_keys","provenance_resolvers","provenance_unavailable_dimensions","argv_markers","client_names"])),e.locks=v(e.locks,["ttl_seconds","wait_ms"]),e.ids=v(e.ids,["token_length"]),e.mutation_guard=v(e.mutation_guard,["require_attributed_author","secret_guard","stale_in_progress_hours"]),e.checkpoints=v(e.checkpoints,["retention_days"]),e.output=v(e.output,["default_format"]),e.ux=v(e.ux,["deprecation_hints"]),e.history=v(e.history,["missing_stream","compact_policy"]),e.validation=v(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=v(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=v(e.workflow,["definition_of_done"]),e.testing=v(e.testing,["record_results_to_items"]),e.telemetry=v(e.telemetry,["enabled","first_run_prompt_completed","capture_level","endpoint","installation_id","retention_days"]),e.agent_guidance=v(e.agent_guidance,["prompt_completed","declined","declined_at","template_version","last_checked_files"]),e.item_types=v(e.item_types,["definitions"]),e.schema=v(e.schema,["version","files","statuses","fields","workflow","type_workflows","unknown_field_policy"]),e.schema.files=v(B(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=v(B(e.schema.workflow),["draft_status","open_status","in_progress_status","blocked_status","close_status","canceled_status"]),e.context=v(e.context,["default_depth","activity_limit","stale_threshold_days","sections"]),e.context.sections=v(B(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=v(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=v(B(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=qr(e.extensions.policy.extension_overrides).map(n=>v(B(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=v(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=v(B(e.search.query_expansion),["enabled","provider"]),e.search.rerank=v(B(e.search.rerank),["enabled","model","top_k"]),e.providers=v(e.providers,["openai","ollama"]),e.providers.openai=v(B(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=v(B(e.providers.ollama),["base_url","model"]),e.vector_store=v(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=v(B(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=v(B(e.vector_store.lancedb),["path"])}function vf(e){return{...e,locks:D(e.locks,g.locks),ids:D(e.ids,g.ids),agent_identity:D(e.agent_identity,g.agent_identity),mutation_guard:D(e.mutation_guard,g.mutation_guard),checkpoints:D(e.checkpoints,g.checkpoints),output:D(e.output,g.output),ux:D(e.ux,g.ux),history:D(e.history,g.history),validation:D(e.validation,g.validation),workflow:D(e.workflow,g.workflow),testing:D(e.testing,g.testing),telemetry:D(e.telemetry,g.telemetry),agent_guidance:D(e.agent_guidance,g.agent_guidance),item_types:D(e.item_types,g.item_types),schema:D(e.schema,g.schema),context:D(e.context,g.context),extensions:D(e.extensions,g.extensions),search:D(e.search,g.search),providers:D(e.providers,g.providers),vector_store:D(e.vector_store,g.vector_store)}}function Sf(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:zs(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:ye(e.validation?.lifecycle_stale_blocker_reason_patterns??g.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:ye(e.validation?.lifecycle_closure_like_blocked_reason_patterns??g.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:ye(e.validation?.lifecycle_closure_like_resolution_patterns??g.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:ye(e.validation?.lifecycle_closure_like_actual_result_patterns??g.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:Ur(e.validation?.estimate_defaults_by_type)}}function If(e){return{...g.search,...e.search,mutation_refresh_policy:As(e.search?.mutation_refresh_policy),query_expansion:{...g.search.query_expansion,...e.search?.query_expansion,enabled:Os(e.search?.query_expansion?.enabled),provider:Cs(e.search?.query_expansion?.provider)},rerank:{...g.search.rerank,...e.search?.rerank,enabled:Rs(e.search?.rerank?.enabled),model:Ns(e.search?.rerank?.model),top_k:Ds(e.search?.rerank?.top_k)}}}function xf(e){return{default_depth:e.context?.default_depth??g.context.default_depth,activity_limit:e.context?.activity_limit??g.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??g.context.stale_threshold_days,sections:{...g.context.sections,...e.context?.sections}}}function Tf(e){return{...e.vector_store,adapter:e.vector_store?.adapter??g.vector_store.adapter,collection_name:Ms(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function Af(e,t,n,r){return{...e,item_format:"toon",validation:Sf(e,t),governance:t,agent_guidance:js(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:If(e),context:xf(e),extensions:{enabled:Vr(e.extensions?.enabled),disabled:Vr(e.extensions?.disabled),policy:$s(e.extensions?.policy)},vector_store:Tf(e)}}function Hs(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(!Ne(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],c=typeof a=="object"&&a!==null&&!Array.isArray(a)?a:{};Hs(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var Ws=["version","id_prefix","ids","author_default","agent_identity","mutation_guard","item_format","locks","checkpoints","output","ux","history","validation","governance","workflow","testing","telemetry","agent_guidance","item_types","schema","context","extensions","search","providers","vector_store"];function Is(e,t){let n=vf(e),r=kn(n),o=Ze(n.schema),i=cf(n,t),s=Af(n,r,o,i),a=v({...s,governance:ef(r)},Ws);return kf(a),a}function Of(e,t={}){let n=Is(e,t.persist_source);if(t.persist_source){let r=Us(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=Is(r,t.persist_source),i=structuredClone(t.persist_source.source_settings);return Hs(i,o,n),`${JSON.stringify(v(i,Ws),null,2)}
|
|
153
153
|
`}return`${JSON.stringify(n,null,2)}
|
|
154
154
|
`}async function Bs(e){let t=Tn(e),n=[t];await K({path:t,scope:"project"});let r=Es(e);if(r){let u=await _e(r.tracked_paths);if(yt(u,r.signatures))return En(r.value)}let o=await _e([t]),i;try{i=await ce(t)}catch{return ht("settings_read_fs_error")}if(i===null){let u=ht();return await Wr(e,[t],u,o,[t]),u}let s=await _e([t]);if(!yt(o,s))return pe(e),Bs(e);let a;try{a=JSON.parse(i)}catch{let u=ht("settings_read_invalid_json");return await Wr(e,[t],u,s,[t]),u}let c=ys(a);if(!c.success){let u=ht("settings_read_invalid_schema");return await Wr(e,[t],u,s,[t]),u}try{let u=Us(c.data),f=rf(e,u.schema,t);n=f;let l=await _e(f),_=await bo(e,u.schema),p=await wo(e,u.schema),w=await _e(f),k={...u,item_types:{definitions:Xe([...u.item_types.definitions,...qr(p.type_definitions_from_file)])},schema:p.schema};Ls(k,nf(c.data,k));let E={settings:k,metadata:{has_explicit_item_format:df(a)},warnings:[...c.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],..._.created_paths.map(C=>`runtime_schema_bootstrap_created:${C}`),...p.warnings]};return _.created_paths.length===0?yt(l,w)?wn(e,{tracked_paths:f,signatures:w,value:En(E)}):pe(e):pe(e),E}catch{let u=ht("settings_read_merge_failed");return await sf(e,n,u),u}}async function vh(e){return(await Bs(e)).settings}async function Sh(e,t,n=Kl){let r=Tn(e),o=Of(t,{persist_source:Ps(t)});try{await ps({pmRoot:e,filePath:r,raw:o,op:n,author:Fo(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),await G({path:r,scope:"project",op:n})}finally{pe(e)}}import Cf from"node:fs/promises";import Rf 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 Nf(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function Df(e,t){return new x(`Missing history stream for ${e}. ${t} requires history streams when settings.history.missing_stream is strict_error.`,I.NOT_FOUND)}async function Mf(e,t){return await oo(Rf.dirname(e)),await(await Cf.open(e,"a")).close(),G({path:e,scope:"project",op:`${t}:history:auto_create`})}async function Gr(e){return Lf({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function Lf(e){let t=Nf(e.itemIds),n=[],r=[];for(let o of t){let i=Ye(e.pmRoot,o);if(!await xt(i)){if(e.settings.history.missing_stream==="strict_error")throw Df(o,e.commandLabel);r.push(...await Mf(i,e.commandLabel)),r.push(`history_stream_auto_created:${o}`),n.push(o)}}return{auto_created_ids:n,warnings:r}}import ie from"node:fs/promises";import Je 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]="d24d61bf-7db8-5f35-8dbc-5ef93ec8220b")}catch{}})();async function Pf(e){try{return await ie.access(e),!0}catch{return!1}}function he(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function jf(e,t){e&&(e.includes(t)||e.push(t))}function Vs(e){return e??It(st())}function Ff(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}function vn(e){return new x(`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."]})}function Xr(e){return new x(`Tracker root is not readable at ${e}.`,I.GENERIC_FAILURE,{code:"tracker_root_unreadable",reason:"unreadable",nextSteps:["Grant read and directory-search permission to the tracker root, then retry the SDK read."]})}async function $f(e){let t=Je.parse(Je.resolve(e)).root,n=Je.dirname(Je.resolve(e));for(;n!==t;){let r;try{r=await ie.stat(n)}catch(o){if(he(o,"ENOTDIR"))throw vn(e);if(!he(o,"ENOENT"))throw o;n=Je.dirname(n);continue}if(!r.isDirectory())throw vn(e);break}}async function Jr(e){let t;try{t=await ie.stat(e)}catch(n){throw he(n,"ENOENT")?(await $f(e),new x(`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."]})):he(n,"ENOTDIR")?vn(e):he(n,"EACCES")||he(n,"EPERM")?Xr(e):n}if(!t.isDirectory())throw vn(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw Xr(e);try{await(await ie.opendir(e)).close()}catch(n){throw he(n,"EACCES")||he(n,"EPERM")?Xr(e):n}}async function qs(e,t,n="pm-",r,o=ge){let i=vr(t,n),s=kr(t),a=i===s?[i]:[i,s],c=Object.entries(o),u=Ff(r);for(let f of a)for(let[l]of c)for(let _ of u){let p=An(e,l,f,_,o);if(await Pf(p))return{id:f,type:l,itemPath:p,item_format:_}}return null}async function Gs(e,t={}){let n=await ie.readFile(e.itemPath,"utf8");await K({path:e.itemPath,scope:"project"});let r=Ht(n,{format:e.item_format,schema:t.schema,extensionFieldNames:Vs(t.extensionFieldNames),onWarning:o=>jf(t.warnings,o)});return{raw:n,document:r}}async function zf(e,t,n=ge,r,o){return await Jr(e),(await us(e,t,n,r,o)).map(s=>s.metadata)}async function Zh(e,t,n=ge,r,o){return await Jr(e),(await ls(e,t,n,r,o)).map(s=>s.metadata)}async function eg(e,t,n=ge,r,o,i={}){return await Jr(e),(await hn(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan})).map(a=>({...a.metadata,body:a.body}))}function Xs(e){return{async get(t){let n=await qs(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await Gs(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>zf(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function Uf(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await ie.readdir(Je.join(e,o));for(let s of i)for(let a of Tt)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function Hf(e,t,n,r){let o=vr(t,n),i=await Uf(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(c=>({id:c,distance:bt(c,o,s)})).filter(c=>c.distance!==null).sort((c,u)=>c.distance-u.distance).slice(0,3).map(c=>c.id)}async function Wf(e,t,n,r){let o=await Hf(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 x(`Item ${t} not found`,I.NOT_FOUND,{nextSteps:i})}function Bf(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 Js(e){let t=e.typeToFolder??so(e.settings,st()).type_to_folder,n=await qs(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await Wf(e.pmRoot,e.id,e.settings.id_prefix,t);let r=await oe(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 Gs(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||a,u=jo(e.author),f=kn(e.settings);if(a&&c!==u&&!e.force&&!Bf(e.op,e.bypassAssigneeConflict)){if(f.ownership_enforcement==="strict")throw new x(`Item ${n.id} is assigned to ${a}. Use --force to override.`,I.CONFLICT);f.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 Vf(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 qf(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await H(e.originalItemPath,e.originalRaw),await ie.rm(e.effectiveTargetItemPath,{force:!0});return}await H(e.originalItemPath,e.originalRaw)}}async function tg(e){let t=await Js({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 c=q(i,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),u=q(structuredClone(i),{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),f=await e.mutate(u);if(e.skipNoop===!0&&f.changedFields.length===0)return{item:c.metadata,body:c.body,changedFields:[],warnings:[...s,...f.warnings??[]]};u.metadata.updated_at=Se();let l=q(u,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames});await cr({pm_root:e.pmRoot,operation:e.op,before:c,after:l,changed_fields:f.changedFields,sdk:Xs({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let _=await Gr({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),p="toon",w=si(l,{format:p,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),k=An(e.pmRoot,l.metadata.type,r.id,p,n),E=Ye(e.pmRoot,r.id),C=await ee("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:k,history_path:E,item_format:p,before:c,after:l,contents:w}),{effectiveTargetItemPath:N,effectiveSerializedAfter:Q,skipItemWrite:j}=Vf(C,k,w),Ce=await Dr(e.pmRoot,e.author),se=[];try{j||await H(N,Q),!j&&N!==r.itemPath&&await ie.rm(r.itemPath);let Sn=We({nowIso:l.metadata.updated_at,author:e.author,op:e.op,before:c,after:l,message:e.message});try{await Be(E,Sn)}catch(gt){throw await qf({skipItemWrite:j,effectiveTargetItemPath:N,originalItemPath:r.itemPath,originalRaw:o}),gt}j||(se=await Mr({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:N,previousItemPath:r.itemPath,document:l}))}finally{await Ce()}let U=[...await G({path:N,scope:"project",op:e.op,item_id:l.metadata.id,item_type:l.metadata.type,before:c,after:l,changed_fields:f.changedFields}),...await G({path:E,scope:"project",op:`${e.op}:history`,item_id:l.metadata.id,item_type:l.metadata.type,before:c,after:l,changed_fields:f.changedFields})];return ar({id:l.metadata.id,op:e.op,item_type:l.metadata.type,previous_status:c.metadata.status,status:l.metadata.status,previous:Wt(c.metadata,f.changedFields),current:Wt(l.metadata,f.changedFields),changed_fields:f.changedFields}),{item:l.metadata,body:l.body,changedFields:f.changedFields,warnings:[...s,...f.warnings??[],..._.warnings,...C.warnings,...se,...U]}}finally{await a()}}async function ng(e){let t=await Js({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=Vs(void 0),c=q(o,{schema:e.settings.schema,extensionFieldNames:a});await cr({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:Xs({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let u=await Gr({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),f=Se(),l=Re,_=We({nowIso:f,author:e.author,op:"delete",before:c,after:l,message:e.message}),p=Ye(e.pmRoot,n.id),w=await ee("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:p,before:c}),k=n.itemPath,E=!1;if(w.handled&&typeof w.result=="object"&&w.result!==null){let j=w.result;typeof j.item_path=="string"&&j.item_path.trim().length>0&&(k=j.item_path),j.skip_delete===!0&&(E=!0)}if(e.dryRun===!0)return{item:c.metadata,changedFields:["deleted"],targetPath:k,warnings:[...i,...u.warnings,...w.warnings]};let C=await Dr(e.pmRoot,e.author),N=[];try{E||await ie.rm(k);try{await Be(p,_)}catch(j){throw E||await H(k,r),j}E||(N=await Mr({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:k,document:null}))}finally{await C()}let Q=[...await G({path:k,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:l,changed_fields:["deleted"]}),...await G({path:p,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:l,changed_fields:["deleted"]})];return ar({id:c.metadata.id,op:"delete",item_type:c.metadata.type,previous_status:c.metadata.status,previous:Wt(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...i,...u.warnings,...w.warnings,...N,...Q]}}finally{await s()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a9b23a46-0bba-5174-8793-dfc37016d1fb")}catch{}})();function Gf(e,t){let n=e.trim().toLowerCase();if(n.length===0)return;let r=Math.floor(n.length/3);return t.map(o=>({candidate:o,distance:bt(n,o.toLowerCase(),r)??Number.POSITIVE_INFINITY})).filter(({distance:o})=>Number.isFinite(o)).sort((o,i)=>o.distance!==i.distance?o.distance-i.distance:o.candidate.localeCompare(i.candidate))[0]?.candidate}function Ks(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function ag(e){let t=e.command_path.trim().replaceAll(/\s+/gu," "),n=e.token.trim(),r=n.length===0?"<empty>":n,o=[...new Set(e.allowed.map(_=>_.trim()))].filter(Boolean).sort((_,p)=>_.localeCompare(p));if(t.length===0||r.length===0||o.length===0)throw new TypeError("Unknown-subcommand contracts require a path, token, and allowed set");let i=t.split(" "),s=e.trailing_args??[],a=e.display_name??`pm ${t}`,c=e.token_kind??"subcommand",u=e.retry_command?void 0:Gf(r,o),f=Ks([...i,r,...s]),l=e.retry_command??(u?Ks([...i,u,...s]):void 0);return new x(`Unknown ${a} ${c} "${r}". Allowed: ${o.join(", ")}${e.message_suffix??""}`,e.exit_code??I.USAGE,{code:"unknown_subcommand",reason:"unknown_positional_token",examples:[...l?[l]:[],...e.examples??[],`pm ${t} --help`],nextSteps:l?[`Retry with the suggested command: ${l}`]:["Choose one value from recovery.allowed_values."],recovery:{attempted_command:f,allowed_values:o,suggested_retry:l,fallback_candidates:e.fallback_candidates}})}export{h_ as a,md as b,C_ as c,kd as d,R_ as e,N_ as f,D_ as g,M_ as h,L_ as i,P_ as j,j_ as k,st as l,ar as m,Wt as n,G as o,cr as p,K as q,dr as r,F_ as s,$_ as t,ee as u,Hd as v,Ee as w,Rn as x,Kf as y,Yf as z,Ct as A,Pn as B,om as C,im as D,sm as E,am as F,cm as G,dm as H,Wn as I,sa as J,gm as K,bm as L,wm as M,Gn as N,Mo as O,Em as P,km as Q,vm as R,ka as S,jo as T,Fo as U,Se as V,Bo as W,z as X,Nm as Y,Dm as Z,oe as _,Jo as $,tt as aa,Gm as ba,Xm as ca,Le as da,Vo as ea,Lm as fa,qo as ga,Wa as ha,Pm as ia,jt as ja,Va as ka,zm as la,$t as ma,Ut as na,Ht as oa,si as pa,q as qa,ze as ra,rp as sa,op as ta,ip as ua,xp as va,Tp as wa,Kd as xa,at as ya,fe as za,Vp as Aa,wr as Ba,qp as Ca,We as Da,Be as Ea,ou as Fa,en as Ga,Zt as Ha,tn as Ia,ey as Ja,ty as Ka,Di as La,nn as Ma,Mi as Na,rn as Oa,uu as Pa,ny as Qa,ry as Ra,pt as Sa,Lr as Ta,eh as Ua,th as Va,nh as Wa,rh as Xa,ps as Ya,ah as Za,kn as _a,Bs as $a,vh as ab,Sh as bb,Gr as cb,Lf as db,ji as eb,kr as fb,vr as gb,uy as hb,yy as ib,hy as jb,gy as kb,is as lb,Ku as mb,Dr as nb,Hy as ob,Mr as pb,hn as qb,qs as rb,Gs as sb,zf as tb,Zh as ub,eg as vb,Xs as wb,Wf as xb,tg as yb,ng as zb,ag as Ab};
|
|
155
|
-
//# sourceMappingURL=chunk-
|
|
155
|
+
//# sourceMappingURL=chunk-34QBIYZI.js.map
|