@unbrained/pm-cli 2026.11.1 → 2026.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +18 -0
- package/CONTRIBUTING.md +1 -1
- package/dist/cli/migration-gates.js +1 -1
- package/dist/cli-bundle/bundle-manifest.json +1 -1
- package/dist/cli-bundle/chunks/{chunk-TMPO4CTZ.js → chunk-3A4NVHYS.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-UUN3WNMQ.js → chunk-3ZQQVJT2.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-TYERATXH.js → chunk-4HW253W2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-F3ECOBKA.js → chunk-4OELCF3O.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2GK2IVU5.js → chunk-533L6D2N.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-NILQ2ZMV.js → chunk-ABFFRQRO.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-BFZUJ5QP.js +115 -0
- package/dist/cli-bundle/chunks/{chunk-SBVX5CMV.js → chunk-D52QQ7LP.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-WFBYKDB2.js → chunk-DAZFCSDV.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ICT6E4IW.js → chunk-EN27ZQSV.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-MRUA2Z43.js → chunk-GK2CHAT3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-MTRIGD7M.js → chunk-HOGKWJU5.js} +42 -42
- package/dist/cli-bundle/chunks/{chunk-WX25MU4N.js → chunk-J3JM36EH.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-O56O7NIE.js → chunk-JRXD7SIL.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-5KW4WUAK.js → chunk-K46GDAKX.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-N45IXPCA.js → chunk-KJLGBLR3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-UEEG47TU.js → chunk-NGRPD3ZO.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-OJR2YGXF.js +31 -0
- package/dist/cli-bundle/chunks/chunk-QHHFXNSQ.js +3 -0
- package/dist/cli-bundle/chunks/{chunk-Y7CKVU56.js → chunk-RGHLQGEX.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-6PKWKVS6.js → chunk-VEOFWE32.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-ZNWDYDFF.js +129 -0
- package/dist/cli-bundle/chunks/{indexed-receipt-blobs-KGMJVFH2.js → indexed-receipt-blobs-IEJ2QOW3.js} +2 -2
- package/dist/cli-bundle/chunks/item-transaction-JHPBH6N7.js +2 -0
- package/dist/cli-bundle/chunks/{mutation-admission-BOOCJPCU.js → mutation-admission-QUNQZCZ5.js} +2 -2
- package/dist/cli-bundle/chunks/{register-list-query-23OX36Q3.js → register-list-query-NZTK3AXA.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-JPJ5YNDX.js → register-mutation-2OFAMOVH.js} +2 -2
- package/dist/cli-bundle/chunks/{register-operations-IGR7ERY5.js → register-operations-RFMM5KZ6.js} +2 -2
- package/dist/cli-bundle/chunks/{register-setup-BMIFKZZP.js → register-setup-6B6Q7M5L.js} +2 -2
- package/dist/cli-bundle/chunks/{settlement-hook-YWSWFOZY.js → settlement-hook-UTCEZBFT.js} +2 -2
- package/dist/cli-bundle/chunks/{stage-ON7CYYPM.js → stage-VLI4OBVX.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-5TWS5KOM.js → chunk-3UD6F2KQ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-5WCQFH6D.js → chunk-4NVPDZLX.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-PAT6QF63.js → chunk-4UUE3YXZ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-2Y77HWIX.js → chunk-5UDDRPYR.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-RPUDOJVB.js → chunk-745IDMTD.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-3NYWMUX3.js → chunk-B6OOKKOX.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{chunk-JCR32IAO.js → chunk-EJJWOFP5.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-FUGYXUUL.js +80 -0
- package/dist/cli-bundle/focused-chunks/{chunk-Z7GIVH6B.js → chunk-HMXVTWIV.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-UQIBGLDR.js → chunk-I4Z2SCV5.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-JLN5CFYM.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-K4FMZB4Y.js +23 -0
- package/dist/cli-bundle/focused-chunks/{chunk-DFUTCKUF.js → chunk-MQVBWFJF.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-6GMYW42K.js → chunk-NJFMG3IK.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-6OKPYCLU.js → chunk-PCCZ72C3.js} +54 -54
- package/dist/cli-bundle/focused-chunks/chunk-PF553UVP.js +44 -0
- package/dist/cli-bundle/focused-chunks/{chunk-VFQAZLKO.js → chunk-Q23K6WLV.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-LVA76N27.js → chunk-QNXXOFLQ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-JLXGRDTG.js → chunk-QVFE5LIX.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{chunk-VS2ZFPXD.js → chunk-RUCG6UWN.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-WX2RVS2Y.js → chunk-SGWYNU7T.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-TGS5RXBY.js +26 -0
- package/dist/cli-bundle/focused-chunks/{chunk-AL7SOFUL.js → chunk-WD43E7RU.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-GE755ODZ.js → chunk-YM4AMP7H.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{indexed-receipt-blobs-KHWT44EK.js → indexed-receipt-blobs-FT3KF6VJ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{item-transaction-7VLPA2SU.js → item-transaction-F4SN7TXJ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{mutation-admission-2DH27R5Y.js → mutation-admission-7R2FXJ5O.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{settlement-hook-SJV52ZTV.js → settlement-hook-KMIBD4F2.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{stage-FYOBWQA7.js → stage-6B3O2GZ6.js} +2 -2
- package/dist/cli-bundle/main.js +24 -24
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +1 -1
- package/dist/cli-bundle/sdk-core.js +1 -1
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +57 -57
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +9 -9
- package/dist/core/extensions/extension-types.d.ts +5 -0
- package/dist/core/extensions/extension-types.js +1 -1
- package/dist/core/item/parse.js +2 -2
- package/dist/core/lock/lock-confinement.d.ts +55 -0
- package/dist/core/lock/lock-confinement.js +2 -0
- package/dist/core/lock/lock-gc.js +1 -1
- package/dist/core/lock/lock.js +2 -2
- package/dist/core/shared/errors.d.ts +6 -0
- package/dist/core/shared/errors.js +1 -1
- package/dist/core/store/settings-sections.d.ts +61 -0
- package/dist/core/store/settings-sections.js +3 -0
- package/dist/core/store/settings-validator.d.ts +4 -0
- package/dist/core/store/settings-validator.js +1 -1
- package/dist/core/store/settings.d.ts +29 -2
- package/dist/core/store/settings.js +4 -3
- package/dist/core/telemetry/consent.js +2 -2
- package/dist/core/telemetry/runtime.js +2 -2
- package/dist/core/test/background-runs.js +3 -3
- package/dist/sdk/config.js +1 -1
- package/dist/sdk/extension-command-context.js +2 -2
- package/dist/sdk/generated/error-code-catalog-rows.d.ts +39 -0
- package/dist/sdk/generated/error-code-catalog-rows.js +2 -0
- package/dist/sdk/generated/generated-error-code-catalog-part-1.d.ts +3 -3
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-2.d.ts +3 -3
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
- package/dist/sdk/generated-error-code-catalog.js +1 -1
- package/dist/sdk/mcp/discovery.js +1 -1
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/runtime-primitives.d.ts +2 -1
- package/dist/sdk/runtime-primitives.js +1 -1
- package/docs/AGENT_EVIDENCE_CONSISTENCY.md +10 -0
- package/docs/CONFIGURATION.md +9 -0
- package/docs/DEVELOPMENT_DEPENDENCY_SECURITY.md +9 -6
- package/docs/RELEASING.md +22 -2
- package/docs/SDK.md +28 -1
- package/docs/SDK_CONFIGURATION_SAFETY.md +55 -0
- package/docs/TESTING.md +2 -1
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +12 -3
- package/marketplace.json +1 -1
- package/package.json +9 -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-claude/package.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/pm-codex/package.json +1 -1
- package/plugins/pm-codex/plugin.json +1 -1
- package/runtime-dependencies.json +1 -1
- package/dist/cli-bundle/chunks/chunk-5WVE7XBS.js +0 -114
- package/dist/cli-bundle/chunks/chunk-E74BORFX.js +0 -128
- package/dist/cli-bundle/chunks/chunk-MP2DQJH2.js +0 -3
- package/dist/cli-bundle/chunks/chunk-O6TFUV6M.js +0 -31
- package/dist/cli-bundle/chunks/item-transaction-Q5S5YLEJ.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-3Z53POXU.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-7WJDRZOR.js +0 -22
- package/dist/cli-bundle/focused-chunks/chunk-CIQ6YWCW.js +0 -26
- package/dist/cli-bundle/focused-chunks/chunk-M22TI7LP.js +0 -79
- package/dist/cli-bundle/focused-chunks/chunk-SXZM4PSS.js +0 -44
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import{c as He,e as Fe,f as ze,i as qr,j as Gr,k as Br,l as Jr,m as Kr}from"./chunk-Q23K6WLV.js";import{h as no}from"./chunk-4PW5XWVI.js";import{B as Hr,Cc as Xr,Ce as en,Ea as Wr,Fa as A,Ga as z,Ha as ot,Ia as g,Nc as Zr,Od as $e,Pd as q,Qd as st,Rd as Ee,Sd as G,Wd as Qr,Xd as eo,Zd as to,be as $,ea as Vr,i as Qe,j as Rr,ja as Ur,k as Dr,l as Pr,m as jr,q as et,r as tt,s as Lr,wc as Yr,x as nt,y as rt,yc as it,z as Zt,za as we}from"./chunk-TGS5RXBY.js";import{A as b,C as zr,D as W,E as ie,F as be,G as $r,H as Qt,I as Le,J as Mr,m as J,u as Fr,x as h,y as je,z as E}from"./chunk-QVFE5LIX.js";import{createHash as Ts}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ca5b60a5-80a7-5e7d-917f-4c7649bcbab6")}catch{}})();var mu=["sha256","sha512"],As="sha256",ro="sha256";function se(e){if(e===void 0)return As;if(e==="sha256"||e==="sha512")return e;throw new TypeError(`unsupported_history_hash_algorithm:${String(e)}`)}function K(e,t){return Ts(se(t)).update(e,"utf8").digest("hex")}(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]="4d5692ce-ec33-5eb4-bd9b-7497ffe25b0e")}catch{}})();var xs=16;function tn(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 Cs(e){return[...new Set([Kr(e),tn(e.key),tn(e.cli_flag),...e.cli_aliases.map(t=>tn(t))])]}function so(e,t){for(let n of Cs(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function ao(e){return Array.isArray(e)?e.flatMap(t=>ao(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 oo(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 b(`${t} must be one of true|false|1|0|yes|no`,E.USAGE)}function io(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 b(`${t} must be a number`,E.USAGE);return r}function Ns(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 b(`${t} must be valid JSON ${n}`,E.USAGE)}function Rs(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 Ds(e,t,n){if(t.const!==void 0&&A(e)!==A(t.const))return`${n} must equal ${A(t.const)}`;if(t.enum!==void 0&&!t.enum.some(r=>A(r)===A(e)))return`${n} must be one of ${t.enum.map(r=>A(r)).join("|")}`;if(!Rs(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"&&!st(e))return`${n} must be an RFC 3339 date-time`}}function Ps(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=at(i,t.items,`${n}[${o}]`,r+1);if(s)return s}}}function js(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 d=at(s,a,`${n}.${i}`,r+1);if(d)return d}}function at(e,t,n,r=0){if(r>xs)return`${n} value schema exceeds maximum depth`;let o=Ds(e,t,n);if(o)return o;let i=Ps(e,t,n,r);if(i)return i;let s=js(e,t,n,r);if(s)return s;if(!t.one_of)return;let a=0;for(let d of t.one_of)if(at(e,d,n,r+1)===void 0&&(a+=1,a>1))break;return a===1?void 0:`${n} must match exactly one configured schema variant`}function ae(e,t,n){if(!e.value_schema||t===void 0)return t;let r=at(t,e.value_schema,n);if(r)throw new b(r,E.USAGE);return t}function Ls(e,t,n,r){let o=r==="option"&&Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return ae(e,Ns(o,n,e.type),n)}function Me(e,t,n,r="option"){let o=n??`--${e.cli_flag}`;if(e.type==="array"||e.type==="object")return Ls(e,t,o,r);if(e.repeatable||e.type==="string_array"){let s=ao(t);return e.type==="number"?ae(e,s.map(a=>io(a,o)),o):e.type==="boolean"?ae(e,s.map(a=>oo(a,o)),o):ae(e,s,o)}let i=Array.isArray(t)?t[t.length-1]:t;if(i!==void 0)return e.type==="number"?ae(e,io(i,o),o):e.type==="boolean"?ae(e,oo(i,o),o):ae(e,typeof i=="string"?i:String(i),o)}function Hs(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 wu(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=so(e,i);if(s===void 0){Hs(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=Me(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function Eu(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=so(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=Me(s,a)))}return r}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c35d4830-d7d1-5ee4-99bc-ab52cc3e4e09")}catch{}})();var nn=1,rn=2;function Su(e){return Math.max(on(e),e.tests?.some(t=>t.updated_by!==void 0||t.updated_at!==void 0)?2:1)}function on(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=1?t:1}function co(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=1))return e}function Fs(e,t=2,n=t){return e<n?"outdated":e>t?"ahead":"current"}function Iu(e,t=2,n=t){let r=[],o=[];for(let i of e){let s=Fs(i.version,t,n);s==="outdated"?r.push(i.ref):s==="ahead"&&o.push(i.ref)}return{outdated:r.sort((i,s)=>i.localeCompare(s)),ahead:o.sort((i,s)=>i.localeCompare(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]="515840b7-cf86-5d71-8ac1-beac7fd7c8a8")}catch{}})();var zs={"in-progress":"in_progress",cancelled:"canceled"};function ct(e,t){if(t){let o=Br(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=zs[n]??n;if(Qe.includes(r))return r}function $s(e,t){return ct(e,t)??e}function xu(e,t){return t.terminal_statuses.has($s(e,t))}import{encode as Ws}from"@toon-format/toon";import{isDeepStrictEqual as lo}from"node:util";import{decode as Ms}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]="aaa2be03-9478-5fbe-82e6-e4fc86e3735b")}catch{}})();function sn(e){return{value:Ms(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]="79626299-17a8-573a-9b66-ce37c65e2f5d")}catch{}})();var Vs=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function Us(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(Vs);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function dt(e){return Us(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]="2789e87f-0706-52e8-8f4c-3855c65c618c")}catch{}})();var ln=new Set(["schema","tracker","auto","none"]),po=new Set(["source","isolated","snapshot"]),qs=new Set(["legacy","local_mutation","local_source_ref","acknowledged","invalid_provenance","foreign_source_ref"]),Gs=new Set(["passed","failed","stopped","canceled"]),Bs=new Set(Hr);function Ie(e){return e.replaceAll("\\","/")}function ho(e){for(let t of e)if(t!==0)return t;return 0}function ut(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var yo=["id","title","description","created_at","updated_at"],Js=new Set(J);function go(e){if(e?.schema)return{statusRegistry:Gr(e.schema),fieldRegistry:Jr(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function Ks(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function Y(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new b(`Invalid item metadata: ${e}`,E.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 We(e,t){throw new b(t,E.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 vo(e,t){if(!t||typeof e!="object"||e===null)return;let n=on(e);if(!(n<=rn))throw new b(`Stored item uses format version ${n}; this runtime supports up to ${rn}. Upgrade pm before reading or changing this item.`,E.CONFLICT,{code:"item_format_version_unsupported",format_version:n,required:"Upgrade to a pm runtime supporting the stored item format.",nextSteps:["Preserve the original item and history; do not lower pm_format_version to bypass compatibility checks."]})}function bo(e){let t=new Set(Js);for(let n of e.fieldRegistry?.definitions??[])t.add(n.metadata_key);for(let n of e.extensionFieldNames)t.add(n);return t}function y(e,t){e||Y(t)}function qe(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&Y(t),e}function an(e,t){let n=e[t];y(typeof n=="string",`${t} must be a string`),y(q(n),`${t} must be a valid ISO timestamp`)}function uo(e,t,n){let r=e[t];r!==void 0&&y(typeof r=="number"&&Number.isInteger(r)&&r>=1,`${n} must be an integer >= 1`)}function un(e,t,n){let r=e[t];r!==void 0&&(y(typeof r=="string",`${n} must be a string`),y(q(r),`${n} must be a valid ISO timestamp`))}function Ys(e){if(e!==void 0){y(Array.isArray(e),"event.recurrence.by_weekday must be an array");for(let t of e){y(typeof t=="string","event.recurrence.by_weekday entries must be strings");let n=t.trim().toLowerCase();y(rt.includes(n),`event.recurrence.by_weekday entries must be one of: ${rt.join(", ")}`)}}}function Xs(e){if(e!==void 0){y(Array.isArray(e),"event.recurrence.by_month_day must be an array");for(let t of e)y(typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=31,"event.recurrence.by_month_day entries must be integers 1..31")}}function Zs(e){if(e!==void 0){y(Array.isArray(e),"event.recurrence.exdates must be an array");for(let t of e)y(typeof t=="string","event.recurrence.exdates entries must be strings"),y(q(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function Qs(e){let t=qe(e,"event.recurrence must be an object");y(typeof t.freq=="string","event.recurrence.freq must be a string");let n=t.freq.trim().toLowerCase();y(nt.includes(n),`event.recurrence.freq must be one of: ${nt.join(", ")}`),uo(t,"interval","event.recurrence.interval"),uo(t,"count","event.recurrence.count"),un(t,"until","event.recurrence.until"),Ys(t.by_weekday),Xs(t.by_month_day),Zs(t.exdates)}function ea(e){for(let r of yo)y(typeof e[r]=="string",`${r} is required and must be a string`);let t=e.type;y(typeof t=="string"&&t.trim().length>0,"type must be a non-empty string");let n=e.pm_format_version;return n!==void 0&&y(typeof n=="number"&&Number.isInteger(n)&&n>=nn,`pm_format_version must be an integer >= ${nn}`),t}function ta(e,t){let n=e.status;y(typeof n=="string"&&n.trim().length>0,"status must be a non-empty string");let r=t?.statusRegistry,o=ct(n,r),i=r?r.definitions.map(s=>s.id):[...Qe];y(o!==void 0,`status must be one of: ${i.join(", ")}`)}function na(e){let t=e.priority;y(typeof t=="number"&&Number.isInteger(t)&&[0,1,2,3,4].includes(t),"priority must be an integer 0..4");let n=e.tags;y(Array.isArray(n),"tags must be an array");for(let r of n)y(typeof r=="string","tags entries must be strings")}function ra(e){let t=e.confidence;if(t!==void 0){if(typeof t=="number"){y(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"||tt.includes(n);y(r,`confidence string value must be one of: ${[...tt,"med"].join(", ")}`);return}y(!1,"confidence must be a number or string")}}function oa(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&Y("severity must be a string");let n=t.trim().toLowerCase(),r=n==="med"||et.includes(n);y(r,`severity value must be one of: ${[...et,"med"].join(", ")}`)}function ia(e){e.regression!==void 0&&typeof e.regression!="boolean"&&Y("regression must be a boolean")}function sa(e){let t=e.reminders;if(t!==void 0){y(Array.isArray(t),"reminders must be an array");for(let n of t){let r=qe(n,"reminders entries must be objects");y(typeof r.at=="string","reminder.at must be a string"),y(q(r.at),"reminder.at must be a valid ISO timestamp"),y(typeof r.text=="string","reminder.text must be a string"),y(r.text.trim().length>0,"reminder.text must not be empty")}}}function aa(e){for(let t of["title","description","location","timezone"])e[t]!==void 0&&(y(typeof e[t]=="string",`event.${t} must be a string`),y(e[t].trim().length>0,`event.${t} must not be empty`))}function ca(e){e.recurrence!==void 0&&(Qs(e.recurrence),e.recurrence.until!==void 0&&y(G(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function da(e){let t=qe(e,"events entries must be objects");y(typeof t.start_at=="string","event.start_at must be a string"),y(q(t.start_at),"event.start_at must be a valid ISO timestamp"),t.end_at!==void 0&&(y(typeof t.end_at=="string","event.end_at must be a string"),y(q(t.end_at),"event.end_at must be a valid ISO timestamp"),y(G(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),aa(t),t.all_day!==void 0&&y(typeof t.all_day=="boolean","event.all_day must be a boolean"),ca(t)}function la(e){let t=e.events;if(t!==void 0){y(Array.isArray(t),"events must be an array");for(let n of t)da(n)}}function ua(e){for(let t of["source_type","source_owner","design","external_ref"]){let n=e[t];n!==void 0&&y(typeof n=="string",`${t} must be a string`)}}function _a(e){let t=e.type_options;if(t===void 0)return;let n=qe(t,"type_options must be an object");for(let[r,o]of Object.entries(n))y(r.trim().length>0,"type_options keys must be non-empty"),y(typeof o=="string","type_options values must be strings"),y(o.trim().length>0,"type_options values must be non-empty strings")}function fa(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){Ks(r,t)&&Y(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=Me(r,o,`metadata field "${r.metadata_key}"`,"metadata")}catch(i){Y(String(i?.message).replace(/^Invalid\s+/u,""))}}}function ma(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=bo(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length!==0&&(t.unknownFieldPolicy==="reject"?Y(`unknown schema fields are not allowed: ${r.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`))}function _n(e,t){let n=qe(e,"item metadata must be an object"),r=ea(n);ta(n,t),na(n),ra(n),oa(n),ia(n),an(n,"created_at"),an(n,"updated_at"),n.deadline!==void 0&&an(n,"deadline"),sa(n),la(n),un(n,"closed_at","closed_at"),un(n,"completed_at","completed_at"),ua(n),_a(n),fa(n,r,t),ma(n,t)}function pa(e){if(!(!e||e.length===0))return[...e].map((t,n)=>(y(t.created_at===void 0||typeof t.created_at=="string"&&st(t.created_at),`dependencies.${n}.created_at requires a valid timestamp; restore the dependency timestamp from its source record`),{id:t.id.trim(),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=G(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 cn(e){if(!(!e||e.length===0))return[...e].sort((t,n)=>{let r=G(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 ha(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=G(n.at,r.at);return o!==0?o:n.text.localeCompare(r.text)});return t.length===0?void 0:t}function ya(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!nt.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>rt.includes(s)))).sort((s,a)=>Zt(s)-Zt(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=>q(s)))).sort((s,a)=>G(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 ga(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(va).sort(ba)}function va(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:ya(e.recurrence)};return ut(t),t}function ba(e,t){return ho([G(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 wa(e){if(!(!e||e.length===0))return e.map(t=>({path:Ie(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function Ea(e){if(!e||e.length===0)return;let t=e.map(Oa).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)=>ho([G(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 ke(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function ka(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function dn(e){return typeof e=="string"?e:""}function Sa(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 lt(e,t){return typeof e=="string"&&t.has(e)?e:void 0}function Ia(e){if(!Array.isArray(e))return;let t=e.filter(n=>n&&typeof n.command=="string"&&n.command.trim().length>0).slice(0,32).map(n=>({command:n.command.trim(),requested_pm_context_mode:lt(n.requested_pm_context_mode,ln),pm_context_mode:lt(n.pm_context_mode,ln),workspace_context_mode:lt(n.workspace_context_mode,po),trust_reason:lt(n.trust_reason,qs)}));return t.length>0?t:void 0}function Oa(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=Gs.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:dn(e.started_at),finished_at:dn(e.finished_at),recorded_at:dn(e.recorded_at),attempt:ka(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:ke(e.passed)??0,failed:ke(e.failed)??0,skipped:ke(e.skipped)??0,items:ke(e.items),linked_tests:ke(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:Sa(e.measurements),executions:Ia(e.executions)};return ut(o),o}function Ta(e){if(!(!Array.isArray(e)||e.length===0))return e.map(Ra)}function Ve(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 hn(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function yn(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function _o(e){if(!hn(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!yn(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Aa(e){if(!hn(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!yn(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function xa(e){let t=e?.trim().toLowerCase();if(!(!t||!ln.has(t)))return t}function Ca(e){let t=e?.trim().toLowerCase();if(!(!t||!po.has(t)))return t}function Na(e,t){if(t===!0)return{provenance_invalid:!0};if(e===void 0)return{};if(!hn(e))return{provenance_invalid:!0};let n=m(e.author),r=m(e.created_at),o=e.source_kind;return!n||!r||!q(r)||o!=="local_mutation"&&o!=="merge_union"?{provenance_invalid:!0}:{provenance:{author:n,created_at:r,source_kind:o,source_ref:m(e.source_ref)}}}function Ra(e){let t={command:e.command?.trim()||void 0,path:e.path?Ie(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:xa(e.pm_context_mode),workspace_context_mode:Ca(e.workspace_context_mode),...Na(e.provenance,e.provenance_invalid),updated_by:m(e.updated_by),updated_at:m(e.updated_at),env_set:_o(e.env_set),env_clear:Ve(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:Ve(e.assert_stdout_contains),assert_stdout_regex:Ve(e.assert_stdout_regex),assert_stderr_contains:Ve(e.assert_stderr_contains),assert_stderr_regex:Ve(e.assert_stderr_regex),assert_stdout_min_lines:ke(e.assert_stdout_min_lines),assert_json_field_equals:_o(e.assert_json_field_equals),assert_json_field_gte:Aa(e.assert_json_field_gte),note:e.note?.trim()||void 0};return ut(t),t}function Da(e){if(!(!e||e.length===0))return[...e].map(t=>({path:Ie(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 m(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function Pa(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=m(r.id),i=m(r.kind);if(!o||!i)continue;let s={id:o,kind:i},a=m(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 ja(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=m(r.path);if(!o)continue;let i={path:Ie(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=m(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function La(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=m(r.command),i=m(r.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=Ie(i));let a=m(r.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function Ha(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=m(r.path);if(!o)continue;let i={path:Ie(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=m(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Fa(e){if(e===null||typeof e!="object")return;let t=e,n=m(t.id),r=m(t.title),o=m(t.status),i=o&&Bs.has(o)?o:void 0,s=Vr(t.order)??Number.NaN,a=typeof t.created_at=="string"?t.created_at:"",d=typeof t.updated_at=="string"?t.updated_at:"";if(!n||!r||!i||!Number.isFinite(s)||!a||!d)return;let l={id:n,order:s,title:r,status:i,created_at:a,updated_at:d};return za(l,t),l}function za(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=m(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",Pa],["files","files",ja],["tests","tests",La],["docs","docs",Ha]];for(let[i,s,a]of o){let d=a(t[s]);d&&(e[i]=d)}}function $a(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=Fa(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function Ma(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=m(r.decision);if(!o||!i||!s)continue;let a={ts:o,author:i,decision:s},d=m(r.rationale);d&&(a.rationale=d);let l=m(r.evidence);l&&(a.evidence=l);let _=m(r.step_id);_&&(a.step_id=_),t.push(a)}return t.length>0?t:void 0}function Va(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=m(r.text);if(!o||!i||!s)continue;let a={ts:o,author:i,text:s},d=m(r.step_id);d&&(a.step_id=d),t.push(a)}return t.length>0?t:void 0}function Ua(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=m(r.text);if(!o)continue;let i={text:o},s=m(r.command);s&&(i.command=s);let a=m(r.expected);a&&(i.expected=a),t.push(i)}return t.length>0?t:void 0}function Wa(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 Se(e){let t=0;for(;t<e.length&&e[t]===`
|
|
2
|
+
`;)t+=1;return e.slice(t).trimEnd()}function qa(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(tt.includes(t))return t}function Ga(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(et.includes(t))return t}function Ue(e){return e||void 0}function Ba(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))yn(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function Ja(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]=Me(r,o,`metadata field "${r.metadata_key}"`,"metadata"))}}function Ka(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=bo(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length>0&&t.unknownFieldPolicy==="reject"&&Y(`unknown schema fields are not allowed: ${r.join(", ")}`),r.length>0&&t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`)}function _t(e,t={}){let n=go(t),r=ct(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:co(e.pm_format_version),source_type:m(e.source_type),type_options:Wa(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:pa(e.dependencies),comments:cn(e.comments),notes:cn(e.notes),learnings:cn(e.learnings),files:wa(e.files),tests:Ta(e.tests),test_runs:Ea(e.test_runs),docs:Da(e.docs),deadline:Ue(e.deadline),reminders:ha(e.reminders),events:ga(e.events),closed_at:Ue(e.closed_at),completed_at:Ue(e.completed_at),assignee:m(e.assignee),claim_principal:m(e.claim_principal),source_owner:m(e.source_owner),author:Ue(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:m(e.definition_of_ready),order:e.order,goal:m(e.goal),objective:m(e.objective),value:m(e.value),impact:m(e.impact),outcome:m(e.outcome),why_now:m(e.why_now),parent:m(e.parent),reviewer:m(e.reviewer),risk:e.risk??void 0,confidence:qa(e.confidence),sprint:m(e.sprint),release:m(e.release),blocked_by:m(e.blocked_by),blocked_reason:m(e.blocked_reason),unblock_note:m(e.unblock_note),reporter:m(e.reporter),severity:Ga(e.severity),environment:m(e.environment),repro_steps:m(e.repro_steps),resolution:m(e.resolution),expected_result:m(e.expected_result),actual_result:m(e.actual_result),affected_version:m(e.affected_version),fixed_version:m(e.fixed_version),component:m(e.component),regression:e.regression,customer_impact:m(e.customer_impact),close_reason:Ue(e.close_reason),plan_mode:m(e.plan_mode),plan_scope:m(e.plan_scope),plan_harness:m(e.plan_harness),plan_resume_context:m(e.plan_resume_context),plan_steps:$a(e.plan_steps),plan_decisions:Ma(e.plan_decisions),plan_discoveries:Va(e.plan_discoveries),plan_validation:Ua(e.plan_validation)};return Ba(i,e),Ja(i,n),Ka(i,n),ut(i),i}function wo(e){return g(e,J)}function Ya(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 Xa(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=Ya(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 Za(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(`
|
|
3
|
+
`,r),i=o===-1?t.length:o,s=t.slice(r,i).replace(/\r$/,""),a=o===-1?i:i+1;if(s.trim()==="---")return{content:t.slice(a).replace(/^\s+/,""),stripped:!0};r=a}return{content:t,stripped:!1}}function fn(e,t){return _t(e,{...t,onWarning:void 0})}function Qa(e,t,n={}){let r=Za(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=Xa(r.content);o||(e.trimStart().startsWith("{")&&We("json_markdown","JSON front matter is not valid JSON"),We("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{We("json_markdown","JSON front matter is not valid JSON")}return vo(s,n.requireSupportedFormat),_n(s,t),{metadata:fn(s,n),body:Se(i)}}function ec(e,t,n={}){let r;try{r=sn(e).value}catch{We("toon","TOON item document is not valid TOON")}y(typeof r=="object"&&r!==null&&!Array.isArray(r),"TOON item document must be an object");let o=r;if(vo(Object.prototype.hasOwnProperty.call(o,"front_matter")?o.front_matter:o,n.requireSupportedFormat),!yo.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&We("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return _n(o.front_matter,t),y(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:fn(o.front_matter,n),body:Se(typeof o.body=="string"?o.body:"")};let{body:i,...s}=o;return y(i===void 0||typeof i=="string","TOON item document body must be a string"),_n(s,t),{metadata:fn(s,n),body:Se(typeof i=="string"?i:"")}}function tc(e,t={}){let n=_t(e.metadata,t),r=wo(n),o=Se(e.body??"");pn(JSON.parse(JSON.stringify(r))),pn({body:o});let i=JSON.stringify(r,null,2);return o?`${i}
|
|
4
|
+
|
|
5
|
+
${o}
|
|
6
|
+
`:`${i}
|
|
7
|
+
`}var nc=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/u;function mn(e,t){return typeof e=="string"?fo(e,t):e===null||typeof e!="object"?null:Array.isArray(e)?mo(e.map((n,r)=>()=>mn(n,`${t}[${r}]`))):mo(Object.entries(e).map(([n,r])=>()=>{let o=t?`${t}.${n}`:n;return fo(n,`${o} (key)`)??mn(r,o)}))}function fo(e,t){let n=e.search(nc);return n<0?null:{path:t,index:n}}function mo(e){for(let t of e){let n=t();if(n!==null)return n}return null}function pn(e){let t=mn(e,"");if(t!==null)throw new b(`Item field ${t.path} contains an unpaired surrogate code unit at index ${t.index}; persisted item text requires well-formed Unicode.`,E.USAGE,{code:"text_unpaired_surrogate",field:t.path,required:"Provide well-formed UTF-16 text: keep emoji and other astral characters whole and avoid lone \\uD800-\\uDFFF JSON escapes.",why:"Persisted item text must remain well-formed in every supported format; a lone surrogate can cause an unclassified encoder fault.",nextSteps:[`Repair the ${t.path} value (for example String.prototype.toWellFormed() or re-truncate on a character boundary) and retry.`,"Run pm <command> --help --json to review the text fields the command accepts."]})}function rc(e,t={}){let n=_t(e.metadata,t),r=wo(n),o=Se(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i));pn(s);let a=Ws(s),d;try{d=sn(a).value}catch(l){throw new b("Refusing to persist a TOON item document that the configured decoder cannot read back.",E.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_error",format:"toon",required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:l instanceof Error?l.message:String(l)})}if(!lo(d,s)){let l=typeof d=="object"&&d!==null&&!Array.isArray(d)?d:{},_=Object.keys(s).find(f=>!lo(s[f],l[f]))??"document";throw new b(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${_}".`,E.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_mismatch",format:"toon",field:_,required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:"The encoded document decoded to a value different from the canonical item payload."})}return`${a}
|
|
8
|
+
`}function Ju(e,t={}){let n=dt(e);if(n)throw new b(`Merge conflict markers detected in item document at line ${n.line} (${n.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,E.GENERIC_FAILURE,{code:"merge_conflict_markers_detected",reason:"merge_conflict",required:"Resolve merge-conflict markers in the item file before parsing or mutation commands.",why:"Partially merged documents can corrupt item metadata and history integrity.",examples:["git status","git add <resolved-file> && git commit"],nextSteps:["Resolve conflicts, save the file, then rerun the pm command."]});let r=t.format??"toon",o=go(t);return r==="toon"?ec(e,o,t):Qa(e,o,t)}function Ku(e,t={}){return(t.format??"toon")==="toon"?rc(e,t):tc(e,t)}function Oe(e,t={}){return{metadata:_t(e.metadata,t),body:Se(e.body??"")}}import{AsyncLocalStorage as oc}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]="1fbb183b-c6d8-5834-b4cb-e4fb515572b9")}catch{}})();var gn=new oc,Eo=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function ft(e,t){let n=typeof e=="string"?e.trim():"";return n.length>0?n.slice(0,t):void 0}function ce(e,t){if(e===void 0)return;let n=typeof e=="object"&&e!==null?e:{},r=ft(n.id,128),o=ft(n.parent_id,128);if(r===void 0||!Eo.test(r)||o!==void 0&&!Eo.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=ft(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function Te(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=ft(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function ic(e,t,n){let r=gn.getStore(),o=Te({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=ce(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={...Te(r?.provenance),...o,...Te(e?.provenance)},a=ce(e?.episode,!1)??ce(n,!1)??i??ce(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 vn(e,t){return ic(e.session_context,t,e.client_info?.episode)??{}}function Zu(e,t){let n=gn.getStore(),r=ce(e.episode,!0),o=ce(n?.episode,!1),i=r!==void 0&&r.parent_id===void 0&&o!==void 0?{...r,parent_id:o.id}:r,s={...Te(n?.provenance),...Te(e.provenance)};return gn.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function Qu(e){let t=Te(e.provenance),n=ce(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{createHash as ko}from"node:crypto";import{existsSync as bn,promises as So,readFileSync as sc}from"node:fs";import M 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]="06c9f6f4-c2f0-549c-9a0f-4f4269cc5f49")}catch{}})();var ac="session.json";function wn(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function Io(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=wn(t.topic,256),i=Array.isArray(t.evidence)&&t.evidence.length<=32&&t.evidence.every(d=>typeof d=="string"&&d.length<=128),s=Array.isArray(t.active_item_ids)&&t.active_item_ids.length<=64&&t.active_item_ids.every(d=>wn(d,128)),a=t.focused_item_id===void 0||wn(t.focused_item_id,128);if([n,r,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function cc(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([n,r])=>{let o=Io(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function En(e){return M.join(Wr(e),ac)}async function Oo(e){try{let t=await So.readFile(En(e),"utf8"),n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return{};let r=n,o=r.focused_item,i=cc(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 kn(e,t){let n=await $(e,"session-state",h.locks.ttl_seconds,"session-state",!1,!0,h.locks.wait_ms);try{let r=await Oo(e);t(r);let o=En(e);await So.mkdir(M.dirname(o),{recursive:!0}),await Le(o,JSON.stringify(r))}finally{await n()}}function Sn(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${ko("sha256").update(e).digest("hex").slice(0,24)}`}function In(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function On(e){let t=[...new Set(e)].sort((r,o)=>r.localeCompare(o));if(t.length===1)return t[0];let n=`workset:${t.join("+")}`;return n.length<=256?n:`workset:${t.join("+").slice(0,230)}+${ko("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function Tn(e,t,n){await kn(e,r=>{let o={...r.semantic_attribution},i=n(o[t]);i===void 0?delete o[t]:o[t]=i,Object.keys(o).length===0?delete r.semantic_attribution:r.semantic_attribution=o})}async function c_(e){let t=Sn(e.principal);await Tn(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??On(r),confidence:o?"high":"medium",rule_version:"v2",evidence:In([...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 d_(e){let t=Sn(e.principal);await Tn(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??On(r),confidence:o?"high":"medium",evidence:In([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:r}})}async function l_(e){let t=Sn(e.principal);await Tn(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??On(r),confidence:o?"high":"medium",rule_version:"v2",evidence:In([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}function dc(e,t){let n=t.PM_PATH?.trim();if(n){let o=M.resolve(e,n);if(bn(M.join(o,"settings.json")))return o;let i=M.join(o,".agents","pm");if(bn(M.join(i,"settings.json")))return i}let r=M.resolve(e);for(let o=0;o<32;o+=1){let i=M.join(r,".agents","pm");if(bn(M.join(i,"settings.json")))return i;let s=M.dirname(r);if(s===r)break;r=s}}function To(e){if(!e.key)return;let t=dc(e.cwd,e.env);if(t)try{let n=JSON.parse(sc(En(t),"utf8"));return Io(n.semantic_attribution?.[e.key])}catch{return}}async function u_(e){return(await Oo(e)).focused_item}async function __(e,t){await kn(e,n=>{n.focused_item=t})}async function f_(e){await kn(e,t=>{delete t.focused_item})}import{AsyncLocalStorage as Rn}from"node:async_hooks";import{createHash as lc}from"node:crypto";import D from"node:fs";import No from"node:os";import ue 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]="a69b86e2-6633-5abc-81b7-6a54a592d36c")}catch{}})();var Dn=["model","effort","role","topic","version"],ht=new Rn,Ro=new Rn,yt=new Rn,Pn=[{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:{model:"codex_session_file",effort:"codex_session_file",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:[]}],Do=Object.freeze({max_bytes:1048576,max_lines:4096,network_access:!1,subprocess_access:!1}),uc=Object.freeze({...Do,max_bytes:4194304}),An=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function _c(e){let t=Z(e).provenance_unavailable_dimensions,n=new Set(["model","version",...Object.keys(e.provenance_environment_keys??{}),...Object.keys(e.provenance_resolvers??{})]);return Object.freeze({contract_version:1,adapter_version:"v1",priority:0,harness:e.harness,descriptor:e,supported_dimensions:Object.freeze([...n].sort()),native_sources:Object.freeze(["environment","argv","mcp_client",...Object.values(e.provenance_resolvers??{}).some(r=>r?.endsWith("session_file"))?["session_file"]:[]]),probe_policy:e.harness==="codex"?uc:Do,normalization:Object.freeze({model_family:"v1",effort:"v1",preserve_raw:!0}),confidence:"high",waivers:Object.freeze(Object.fromEntries(t.map(r=>[r,"Harness does not expose this dimension."])))})}var Po=Object.freeze(Pn.filter(e=>e.harness!=="ci").map(_c).sort((e,t)=>e.harness.localeCompare(t.harness))),le=new Map,Ae=new Map;function N(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function X(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function Z(e){let t=e.harness.trim().toLowerCase();if(!An.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:X(e.environment_keys),model_environment_keys:X(e.model_environment_keys),session_environment_keys:X(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),X(r)]).filter(([n])=>An.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"&&An.test(n[0])&&(n[1]==="ai_agent_version"||n[1]==="claude_session_file"||n[1]==="codex_session_file"))),provenance_unavailable_dimensions:X(e.provenance_unavailable_dimensions).map(n=>n.toLowerCase()),argv_markers:X(e.argv_markers).map(n=>n.toLowerCase()),client_names:X(e.client_names).map(n=>n.toLowerCase())}}var jo=Pn.map(Z);function fc(e,t){return JSON.stringify(e)===JSON.stringify(t)}function pt(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(n=>n.length>0).includes(t)||e.trim().toLowerCase()===t}function jn(e=[]){let t=new Map(Pn.filter(o=>o.harness!=="ci").map(o=>[o.harness,Z(o)]));for(let{adapter:o}of le.values())t.set(o.harness,Z(o.descriptor));let n=[...t.values(),...jo.filter(o=>o.harness==="ci"),...[...Ae.values()].map(o=>o.descriptor),...yt.getStore()?.descriptors??[],...e.map(Z)],r=new Set;for(let o of n){if(r.has(o.harness))throw new Error(`Harness signal descriptor collision for "${o.harness}"`);r.add(o.harness)}return n}function Ln(e,t){for(let n of t??[]){let r=N(e[n]);if(r)return r.slice(0,256)}}function mc(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 Lo(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 N(r[o+1])?.slice(0,256);let s=n.find(a=>i.startsWith(`${a}=`));if(s)return N(i.slice(s.length+1))?.slice(0,256)}}var pc=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function de(e,t){if(e!=="role"||t===void 0)return t;let n=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return pc.has(n)?n:void 0}function xn(e,t){return N(e?.[t])?.slice(0,256)}var hc=1048576,Nn=4194304,mt=new Map,Ao=Object.freeze({}),Cn=new Map,xo=Object.freeze({});function Co(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function yc(e){let t;try{t=JSON.parse(e)}catch{return xo}let n=Co(t);if(!n)return xo;let r=[{value:n,depth:0}],o=0,i,s;for(;r.length>0&&o<64;){let a=r.shift();if(o+=1,i??=N(a.value.model)?.slice(0,256),s??=N(a.value.version)?.slice(0,256),i&&s)break;if(!(a.depth>=4))for(let d of Object.values(a.value)){let l=Co(d);l&&r.push({value:l,depth:a.depth+1})}}return Object.freeze({model:i,version:s})}function Ho(e){try{return D.lstatSync(e).isFile()?"available":"missing"}catch(t){return W(t)?"missing":"failed"}}function gc(e,t){let n;try{n=D.readdirSync(e,{withFileTypes:!0}).filter(o=>o.isDirectory()).sort((o,i)=>o.name.localeCompare(i.name)).slice(0,512).map(o=>{let i=ue.join(e,o.name,`${t}.jsonl`);return{candidate:i,status:Ho(i)}})}catch(o){return{status:W(o)?"missing":"failed"}}let r=n.filter(({status:o})=>o==="available").map(({candidate:o})=>o);return r.length===0?{status:n.some(({status:o})=>o==="failed")?"failed":"missing"}:r.length>1?{status:"ambiguous"}:{status:"available",path:r[0]}}function Fo(e,t){let n=N(t.CLAUDE_CODE_SESSION_ID);if(!n||!/^[A-Za-z0-9_-]{1,128}$/u.test(n))return{status:"unavailable"};let r=ue.resolve(e.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),o=ue.join(e.home_dir??No.homedir(),".claude","projects"),i=ue.join(o,r,`${n}.jsonl`),s=N(e.session_file),a=s&&ue.basename(s)===`${n}.jsonl`?s:void 0;for(let d of[a,i]){if(!d)continue;let l=Ho(d);if(l==="available")return{status:l,path:d};if(l==="failed")return{status:l}}return gc(o,n)}function vc(e,t,n){let r=Fo(t,n);if(r.status==="available")try{let o=D.openSync(r.path,D.constants.O_RDONLY|D.constants.O_NOFOLLOW);try{let i=D.fstatSync(o),s=`${r.path}\0${i.size}\0${i.mtimeMs}`,a=Cn.get(s);if(a)return a[e];let d=Math.min(i.size,hc),l=Math.min(d,Math.ceil(d/2)),_=Math.min(d-l,i.size-l),f=Buffer.alloc(l);D.readSync(o,f,0,l,0);let w=Buffer.alloc(_);_>0&&D.readSync(o,w,0,_,i.size-_);let O={},S=i.size<=d?Buffer.concat([f,w]).toString("utf8").split(`
|
|
9
|
+
`):[...f.toString("utf8").split(`
|
|
10
|
+
`).slice(0,4096),...w.toString("utf8").split(`
|
|
11
|
+
`).slice(-4096)];for(let L of S){if(L.length===0||L.length>262144)continue;let B=yc(L);if(O.model??=B.model,O.version??=B.version,O.model&&O.version)break}let H=Object.freeze(O);return Cn.clear(),Cn.set(s,H),H[e]}finally{D.closeSync(o)}}catch{return}}function bc(e,t){let n=0,r=(o,i)=>{if(i>4||n>=512)return;let s;try{s=D.readdirSync(o,{withFileTypes:!0}).sort((a,d)=>d.name.localeCompare(a.name))}catch{return}for(let a of s){if(n+=1,n>512)return;let d=ue.join(o,a.name);if(a.isFile()&&a.name.endsWith(`-${t}.jsonl`))return d;if(a.isDirectory()){let l=r(d,i+1);if(l)return l}}};return r(e,0)}function wc(e){if(e<=Nn)return[{offset:0,length:e}];let t=Math.floor(Nn/2);return[{offset:e-t,length:t},{offset:0,length:t}]}function Ec(e,t){if(t.length===0||t.length>262144)return;let n;try{n=JSON.parse(t)}catch{return}if(typeof n!="object"||n===null||Array.isArray(n))return;let r=n;if(r.type!=="turn_context")return;let o=typeof r.payload=="object"&&r.payload!==null?r.payload:void 0;e.model??=N(o?.model)?.slice(0,256),e.effort??=N(o?.effort)?.slice(0,256)}function kc(e,t){let n={},r=4096;for(let o of wc(t)){let i=Buffer.alloc(o.length);D.readSync(e,i,0,o.length,o.offset);let s=i.toString("utf8").split(`
|
|
12
|
+
`).reverse().slice(0,r);r-=s.length;for(let a of s)if(Ec(n,a),n.model&&n.effort)break;if(n.model&&n.effort||r<=0)break}return n}function Sc(e,t,n){let r=N(n.CODEX_THREAD_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let o=ue.join(t.home_dir??No.homedir(),".codex","sessions"),i=`${o}\0${r}`,s=mt.get(i);if(s)return s[e];let a=bc(o,r);if(!a){mt.set(i,Ao);return}try{let d=D.openSync(a,"r");try{let l=D.fstatSync(d).size,_=kc(d,l);return mt.set(i,_),_[e]}finally{D.closeSync(d)}}catch{mt.set(i,Ao);return}}function Ic(e,t,n,r){let o=yt.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(N(n.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let i=r?.provenance_resolvers[e];if(i==="claude_session_file")return vc(e,t,n);if(i==="codex_session_file")return Sc(e,t,n);if(i==="ai_agent_version"){let s=N(n.AI_AGENT);return!s||!r||!pt(s,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(s)?.[1]?.slice(0,256)}}function Oc(e,t,n,r){if(e==="ai_agent_version"){let o=N(r.AI_AGENT);return o!==void 0&&pt(o,t.harness)?"available":"unavailable"}return e==="codex_session_file"?N(r.CODEX_THREAD_ID)!==void 0?"available":"unavailable":Fo(n,r).status}function Hn(e){return e||(Ro.getStore()??{env:process.env,argv:process.argv})}function Tc(e,t,n,r){let o=e.environment_keys.some(a=>N(t[a])!==void 0),i=e.argv_markers.some(a=>n.some(d=>{let l=d.replaceAll("\\","/");return pt(l.slice(l.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||pt(r,a));return o||i||s}function Ac(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 xc(e){let t=e.find(([n])=>n!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function Cc(e,t,n,r,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...Dn,...Object.keys(r?.provenance_environment_keys??{})]),d,l,_;a.has(e)&&(d=de(e,N(n[s])?.slice(0,256)),_=de(e,Lo(t.argv??[],e)),l=de(e,mc(t.argv??[],e)));let f={...r?.provenance_environment_keys,model:r?.model_environment_keys},w={...t.client_info?.provenance,model:t.client_info?.model},O=xn(o?.provenance,e),S=de(e,Ln(n,f[e])),H=de(e,xn(w,e)),L=de(e,xn(t.provenance,e)),B=Ic(e,t,n,r);return xc([[d,"override"],[O,"session"],[_,"argv"],[S,"environment"],[H,"mcp_client"],[L,"host"],[B,"probe"]])??Ac(e,i)??(l?{value:l,source:"argv"}:void 0)}function Nc(e,t){if(!(!e||!t))return lc("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function Rc(e,t,n,r,o){let i=Object.keys(n?.provenance_environment_keys??{}),s=new Set([...Dn,...i,...Object.keys(n?.provenance_resolvers??{}),...Object.keys(e.provenance??{}),...Object.keys(e.client_info?.provenance??{}),...Object.keys(r?.provenance??{})]),a={};for(let d of s){let l=Cc(d,e,t,n,r,o);l?a[d]=l:n&&(d!=="version"||n.provenance_unavailable_dimensions.includes(d))&&(a[d]=null)}return a}function k_(e){let t=e.map(Z),n=new Map(jo.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=Ae.get(i.harness);if(s&&!fc(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=Ae.get(i.harness);Ae.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=Ae.get(i.harness);!s||s.registrations<=1?Ae.delete(i.harness):s.registrations-=1}}}}function Dc(e){let t=Z(e.descriptor),n=e.harness.trim().toLowerCase();if(e.contract_version!==1)throw new Error(`Unsupported provenance adapter contract for "${n}": ${e.contract_version}`);if(t.harness!==n)throw new Error(`Provenance adapter harness "${n}" does not match descriptor "${t.harness}".`);let r=N(e.adapter_version)?.slice(0,64);if(!r)throw new Error(`Provenance adapter "${n}" requires a version.`);if(!Number.isSafeInteger(e.priority))throw new Error(`Provenance adapter "${n}" requires an integer priority.`);if(e.probe_policy.network_access!==!1||e.probe_policy.subprocess_access!==!1||e.probe_policy.max_bytes>Nn||e.probe_policy.max_lines>4096)throw new Error(`Provenance adapter "${n}" exceeds the bounded local probe policy.`);return Object.freeze({...e,adapter_version:r,harness:n,descriptor:t,supported_dimensions:Object.freeze(X(e.supported_dimensions).map(o=>o.toLowerCase()).sort()),native_sources:Object.freeze([...new Set(e.native_sources)]),probe_policy:Object.freeze({...e.probe_policy}),normalization:Object.freeze({...e.normalization}),...e.waivers?{waivers:Object.freeze(Object.fromEntries(Object.entries(e.waivers).slice(0,32).map(([o,i])=>[o.slice(0,64),i.slice(0,256)])))}:{}})}function S_(){let e=new Map(Po.map(t=>[t.harness,t]));for(let{adapter:t}of le.values())e.set(t.harness,t);return Object.freeze([...e.values()].sort((t,n)=>t.harness.localeCompare(n.harness)))}function I_(e){let t=e.map(Dc),n=new Map(Po.map(i=>[i.harness,i])),r=new Set;for(let i of t){if(r.has(i.harness))throw new Error(`Provenance adapter collision for "${i.harness}".`);let s=n.get(i.harness);if(s&&i.priority<=s.priority)throw new Error(`Provenance adapter override for "${i.harness}" requires priority greater than ${s.priority}.`);let a=le.get(i.harness);if(a&&JSON.stringify(a.adapter)!==JSON.stringify(i))throw new Error(`Provenance adapter collision for "${i.harness}".`);r.add(i.harness)}for(let i of t){let s=le.get(i.harness);le.set(i.harness,{adapter:i,registrations:(s?.registrations??0)+1})}let o=!0;return()=>{if(o){o=!1;for(let i of t){let s=le.get(i.harness);!s||s.registrations<=1?le.delete(i.harness):s.registrations-=1}}}}function O_(e,t){let n=t.trim().slice(0,256),r=n.toLowerCase();if(e==="model"){let o=/^(gpt-\d+(?:\.\d+)?)/u.exec(r)?.[1];o&&(r=o)}else r=r.replaceAll(/[_\s-]+/gu,""),r={minimal:"low",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max",ultra:"ultra"}[r]??r;return{raw:n,normalized:r,vocabulary:"v1"}}function T_(e,t){return Ro.run(e,t)}function A_(e,t,n={}){let r=e.map(Z);return jn(r),yt.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function Fn(e){let t=Hn(e),n=t.env??{},r=jn(t.descriptors),o=[...(t.argv??[]).slice(0,3),...t.process_labels??[]].slice(0,64).map(S=>S.slice(0,512)),i=t.client_info?.name.trim().toLowerCase()??"",s=r.find(S=>Tc(S,n,o,i)),a=vn(t,n),d=[Ln(n,s?.session_environment_keys),N(t.client_info?.session)?.slice(0,256)].find(S=>S!==void 0),l=Nc(s?.harness,d),_=To({cwd:t.cwd??process.cwd(),env:n,key:l}),f=Rc(t,n,s,a,_),w=f.model,O=[["harness",s?.harness],["model",w?.value],["model_source",w?.source],["session",d],["instance",l],["provenance",Object.keys(f).length>0?f:void 0],["episode",a.episode]];return Object.fromEntries(O.filter(S=>S[1]!==void 0))}function Pc(e){return e==="unavailable"?{status:"unavailable",reason:"harness_unavailable"}:e==="missing"?{status:"unavailable",reason:"resolver_input_missing"}:{status:"failed",reason:"resolver_failed"}}function jc(e,t,n,r,o,i,s){let a=n?.provenance_resolvers[e];if(t.provenance?.[e])return{status:"resolved",...a?{resolver:a}:{},rule_version:"v1"};if(s)return{status:"unavailable",reason:"invalid_value",rule_version:"v1"};if(a){if(!i)return{status:"unavailable",reason:"probes_disabled",resolver:a,rule_version:"v1"};let d=Oc(a,n,r,o);return{...Pc(d),resolver:a,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 zo(e){let t=Hn(e),n=Fn(t),r=jn(t.descriptors).find(l=>l.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&yt.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(N(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=vn(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,Ln(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,Lo(t.argv??[],"role")].some(l=>{let _=N(l)?.slice(0,256);return _!==void 0&&de("role",_)===void 0}),d=Object.fromEntries(Dn.map(l=>[l,jc(l,n,r,t,o,i,l==="role"&&a)]));return{...n,provenance_outcomes:d}}function x_(){return process.env.PM_AUTHOR}function C_(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function N_(e){return Fn(e).harness}function Lc(e,t,n){let r=Hn(n),o=Fn(r);if(e!==void 0){let s=N(e);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}if(r.env?.PM_AUTHOR!==void 0){let s=N(r.env.PM_AUTHOR);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}let i=N(t);return i?{author:i,source:"configured",...o}:o.harness?{author:`harness:${o.harness}`,source:"detected",...o}:{author:"unknown",source:"unknown",...o}}function $o(e){let t=ht.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function Mo(e){let t=ht.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 R_(e){let t=ht.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function Vo(e,t){let n=Lc(e,t);return ht.enterWith(n),n.author}import Hc 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]="58661057-fa80-5571-9be7-b949723c274b")}catch{}})();async function gt(e,t){let n=await Hc.readFile(e).catch(s=>{if(W(s))return null;throw s}),r=n?.toString("utf8")??null;if(r===null)return{raw:r,raw_bytes:n,entries:[]};if(await it({path:e,scope:"project"}),r.trim()==="")return{raw:r,raw_bytes:n,entries:[]};let o=dt(r);if(o)throw new b(`History for ${t} contains merge conflict markers at line ${o.line} (${o.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,E.GENERIC_FAILURE,{code:"history_merge_conflict_markers_detected",required:"Repair the history stream by resolving merge-conflict markers.",why:"Conflict markers break JSONL parsing and invalidate deterministic audit history.",examples:[`pm history ${t}`,`pm restore ${t} <timestamp-or-version>`],nextSteps:["Resolve or restore the history file, then rerun the command."]});let i=[];for(let[s,a]of r.split(/\r?\n/).entries()){let d=a.trim();if(d)try{i.push(JSON.parse(d))}catch{throw new b(`History for ${t} contains invalid JSON at line ${s+1}. Repair or restore the history stream and retry.`,E.GENERIC_FAILURE,{code:"history_json_invalid",nextSteps:[`Run pm history-repair ${t} --salvage-tail --dry-run to check whether only an invalid suffix is damaged.`]})}}return{raw:r,raw_bytes:n,entries:i}}async function Ge(e,t){return(await gt(e,t)).entries}import Ti from"fast-json-patch";import ki from"node:fs/promises";import Rd 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]="82c79093-2a40-5b4c-8d41-637b0ae03c4f")}catch{}})();import T from"node:fs/promises";import C from"node:path";import{createHash as Ot,randomUUID as Bn}from"node:crypto";import{createRequire as rd}from"node:module";import{setImmediate as ei}from"node:timers/promises";import Mn from"fast-json-patch";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3bfeb8d2-52c2-587a-9611-c4d5817cb47e")}catch{}})();function Uo(e){let t=[],n=e[0]?.op==="history_compact_baseline",r=n?1:void 0,o=!1;for(let[i,s]of e.entries())s.op==="delete"&&(o=!0),s.op==="create"&&(r!==void 0&&t.push({prior_genesis_index:r,repeated_create_index:i+1,sequence:o?"delete_then_create":n?"checkpoint_then_create":"multiple_creates"}),r??=i+1,o=!1);return 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]="0c0cb8c7-4d7d-53f8-8ec2-d6dc98fc6dc5")}catch{}})();var zc={metadata:{},body:""};function bt(){return structuredClone(zc)}function X_(e,t=_e,n){return zn(e,t,n)[0]}function zn(e,t,n){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return Bo(wt(e),t,n)}catch{}let r=K(A({replay_fallback:!0,metadata:e.metadata,body:e.body}),n);return t===2?[r,r]:[r]}function Jo(e,t,n,r,o){let i=se(r.hash_algorithm),s=`${n}:${i}`,a=o?.before.get(s)??zn(e,n,i),d=zn(t,n,i);return o?.after.set(s,d),{beforeHashes:a,afterHashes:d,pairIndex:a.findIndex((l,_)=>l===r.before_hash&&d[_]===r.after_hash),beforeIndex:a.indexOf(r.before_hash),afterIndex:d.indexOf(r.after_hash)}}function wt(e){return{metadata:e.metadata,body:e.body}}function Z_(e,t={}){return Oe(wt(e),t)}function Q_(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=Oe(e);return{metadata:g(t.metadata,J),body:t.body}}function Wo(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function $c(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function Ko(e){return Array.isArray(e)?e.filter($c).map(t=>({...t,path:Wo(t.path),from:typeof t.from=="string"?Wo(t.from):void 0})):[]}function Mc(e){return typeof e=="object"&&e!==null&&"metadata"in e&&"body"in e&&typeof e.body=="string"&&typeof e.metadata=="object"&&e.metadata!==null}function Et(e,t){try{let n=Ko(t),r=Mn.applyPatch(structuredClone(e),n,!0,!0).newDocument;return Mc(r)?{ok:!0,document:{metadata:r.metadata,body:r.body}}:{ok:!1,error:new Error("history_replay_invalid_document_shape")}}catch(n){return{ok:!1,error:n}}}function Vc(e){return[...new Set(e.map(t=>t.item_hash_version).filter(t=>t!==void 0&&Be.includes(t)))]}function Yo(e){return e!==void 0&&!Be.includes(e)}function Uc(e,t){return e!==void 0?[e]:t===void 0?[...Be]:[t]}function Xo(e){let t=vt(e);if(!t.ok)return t.error;let n=$n(e);return n.ok?void 0:n.error}function Wc(e,t){let n=Xo(e);if(n)return{ok:!1,error:n};let r=Et(t,e.patch);return r.ok?{ok:!0,document:r.document}:{ok:!1,error:"patch_apply_failed"}}function qc(e,t){let n=Xo(e);if(n)throw new TypeError(`${n}:entry_${t+1}`)}function Gc(e,t,n,r,o){let i=[];for(let s of n){let a=Jo(e,t,s,r,o);if(i.push({version:s,match:a}),a.pairIndex>=0)break}return i}function kt(e){let t=bt(),n=new Map,r,o,i=Uo(e).map(s=>`verify_failed:duplicate_create:entry_${s.repeated_create_index}:prior_${s.prior_genesis_index}`);for(let s=0;s<e.length;s+=1){let a=e[s],d=a.item_hash_version,l=Yo(d);l&&i.push(`verify_failed:unsupported_item_hash_version:${String(d)}:entry_${s+1}`);let _=Wc(a,t);if(!_.ok)return{ok:!1,errors:[...i,`verify_failed:${_.error}:entry_${s+1}`]};if(l){t=_.document,n=new Map,r=void 0,o=void 0;continue}let f=Uc(d,o),w={before:n,after:new Map},O=Gc(t,_.document,f,a,w),S=O.find(({match:L})=>L.pairIndex>=0);if(S===void 0){let L=O.some(({match:B})=>B.beforeIndex>=0);return{ok:!1,errors:[...i,`verify_failed:${L?"after":"before"}_hash_mismatch:entry_${s+1}`]}}let H=S.version;t=_.document,n=w.after,r=H,o=d??o}return i.length>0?{ok:!1,errors:i,...r===void 0?{}:{item_hash_version:r}}:{ok:!0,errors:[],...r===void 0?{}:{item_hash_version:r}}}function Je(e){let t=kt(e);return{ok:t.ok,errors:t.errors}}function qo(e,t){try{return{ok:!0,document:Mn.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function Bc(e,t){let n=structuredClone(e),r=0,o=0;for(let s of Ko(t)){let a=qo(n,s);if(a.ok){n=a.document;continue}if(s.op==="replace"){let d=qo(n,{...s,op:"add"});if(d.ok){n=d.document,r+=1;continue}}o+=1}let i=n;return{document:{metadata:typeof i.metadata=="object"&&i.metadata!==null?i.metadata:{},body:typeof i.body=="string"?i.body:e.body},convertedReplaceToAdd:r,skippedOps:o}}function Jc(e){let t=Vc(e);if(t.length===1)return t[0];let n=kt(e);return n.ok&&n.item_hash_version!==void 0?n.item_hash_version:t.length===0?1:_e}function Kc(e,t,n=t.patch){let r=Et(e,n);if(r.ok)return{next:r.document,patch:n,repaired:A(n)!==A(t.patch),converted:0,skipped:0};let o=Bc(e,n);return{next:o.document,patch:Mn.compare(e,o.document),repaired:!0,converted:o.convertedReplaceToAdd,skipped:o.skippedOps}}function Yc(e,t,n){return Kc(e,t,n.projectPatch?.(t,e))}function ef(e,t=Jc(e),n={}){let r=e.findIndex(O=>Yo(O.item_hash_version));if(r>=0)throw new TypeError(`unsupported_item_hash_version:${String(e[r]?.item_hash_version)}:entry_${r+1}`);let o=bt(),i=[],s=[],a=0,d=0,l=0,_=0,f,w=t!==1||e.some(O=>O.item_hash_version!==void 0);for(let O=0;O<e.length;O+=1){let S=e[O];qc(S,O);let H=Yc(o,S,n),{next:L,patch:B,repaired:Ze,converted:Ar,skipped:xr}=H;l+=Ar,_+=xr,d+=Number(Ze);let oe=Jo(o,L,t,S);f===void 0||n.continuousHashSurface!==!0?f=[oe.pairIndex,oe.beforeIndex,oe.afterIndex,Math.min(f??0,oe.beforeHashes.length-1)].find(Os=>Os>=0):f=Math.min(f,oe.beforeHashes.length-1);let Cr=oe.beforeHashes[f],Nr=oe.afterHashes[f],Xt=Cr!==S.before_hash||Nr!==S.after_hash;Xt&&(a+=1);let ve={...S,patch:B,before_hash:Cr,after_hash:Nr};w?ve.item_hash_version=t:delete ve.item_hash_version;let Is=ve.item_hash_version!==S.item_hash_version;(Xt||Ze||Is)&&(ve=Go(S,ve,{retainOriginalPatch:Ze})),i.push(ve),s.push({index:O+1,rehashed:Xt,patch_repaired:Ze,converted_replace_to_add:Ar,skipped_ops:xr}),o=L}return{entries:i,finalDocument:o,entriesRehashed:a,entriesPatchRepaired:d,convertedReplaceToAdd:l,skippedOps:_,details:s,itemHashVersion:t,explicitItemHashVersion:w}}function tf(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
|
|
13
|
+
`)}
|
|
14
|
+
`}(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]="3c2c29c0-0034-54d4-9dbd-2e9af047784e")}catch{}})();var Xc=["docs_add","files_add","history:author-acknowledge","history_author_acknowledge","history_compact","history_compact_baseline","history_redact","history_repair","history_salvage","normalize","release","test_run_track","tests_add","tests_remove","tests_update","update_audit","update_ownership_bypass"],Zc=["append","cancel","claim","close","comment_add","create","learning_add","note_add","reopen"],Qc=new Set(Xc),ed=new Set(Zc),td=new Set(["actual_result","affected_version","assignee","blocked_by","blocked_reason","close_reason","confidence","customer_impact","definition_of_ready","dependencies","docs","environment","expected_result","files","fixed_version","goal","impact","learnings","notes","objective","order","outcome","parent","release","reminders","reporter","repro_steps","resolution","reviewer","severity","sprint","tests","test_runs","unblock_note","updated_at","value","why_now"]);function nd(e){let t=e.path.split("/").filter(Boolean);return t[0]==="metadata"||t[0]==="front_matter"?t[1]:t[0]==="body"?"body":void 0}function xe(e){return e.event_class==="substantive"||e.event_class==="maintenance"?e.event_class:Qc.has(e.op)?"maintenance":ed.has(e.op)||e.op!=="update"?"substantive":Array.isArray(e.patch)&&e.patch.length>0&&e.patch.every(t=>{let n=nd(t);return n!==void 0&&td.has(n)})?"maintenance":"substantive"}(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]="812b558d-59f3-58d6-b04e-6a4f8689e866")}catch{}})();function Zo(e){let t=process.emitWarning;process.emitWarning=(n,...r)=>{n==="SQLite is an experimental feature and might change at any time"&&r[0]==="ExperimentalWarning"||Reflect.apply(t,process,[n,...r])};try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}finally{process.emitWarning=t}}function Qo(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?Zo(t):null}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c5f096f6-4af4-568e-89ef-1aa0a8718973")}catch{}})();var od="history-event-index.sqlite",Jn="7",id=8,ti=32,ci="history-event-index",sd="history-event-index:append:",ad=5e3,Kn=300,di=3e4,cd="history-event-index-invalidation",dd="history-event-index-invalidations",ld=Kn*2*1e3,Q=Symbol("history-index-changed"),fe=new Map;function pe(e){return C.join(e,"runtime",od)}function li(e){return C.join(e,"runtime","history-event-index-repair-deferred")}async function ui(e){try{let t=Number(await T.readFile(li(e),"utf8")),n=Date.now()-t;return n>=0&&n<ad}catch{return!1}}async function ni(e){try{await T.writeFile(li(e),`${Date.now()}
|
|
15
|
+
`)}catch{}}function Ke(e){return C.join(e,"runtime",dd)}async function Tt(e){let t=await T.readdir(Ke(e)).catch(n=>{if(ie(n))return[];throw n});return{pending:t.filter(n=>n.endsWith(".pending")).sort(),committed:t.filter(n=>n.endsWith(".committed")).sort()}}async function ri(e){let t=await Tt(e);return{pending:(await Promise.all(t.pending.map(async n=>{let r=/^(\d+)-(unknown|\d+)-(\d+)-.+\.pending$/u.exec(n);if(r!==null){let o=r[2];if(await eo({pid:Number(r[1]),...o==="unknown"?{}:{process_start_identity:o}},Math.max(0,Date.now()-Number(r[3])),ld))return n}return await T.rm(C.join(Ke(e),n),{force:!0}),null}))).filter(n=>n!==null),committed:t.committed}}async function qn(e,t,n=di){let r=await $(e,cd,Kn,`history-event-index-invalidation:${process.pid}`,!1,!1,n,n===0?{maxWaitMs:0}:void 0);try{return await t()}finally{await r()}}async function ud(e){let t=Ke(e);await T.mkdir(t,{recursive:!0});let n=Bn(),r=await Qr(),o=C.join(t,`${r.pid}-${r.process_start_identity??"unknown"}-${Date.now()}-${n}.pending`);return await T.writeFile(o,`pending
|
|
16
|
+
`,{flag:"wx"}),{pendingPath:o,committedPath:C.join(t,`${n}.committed`)}}function _d(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}async function At(e){try{await T.rm(pe(e),{force:!0})}catch{}}async function Vn(e,t){let n=Ke(e);await T.mkdir(n,{recursive:!0}),await T.writeFile(C.join(n,`${Bn()}${t?".contended":""}.committed`),`committed
|
|
17
|
+
`,{flag:"wx"}),t||await At(e)}function xt(e){return e.committed.some(t=>t.endsWith(".contended.committed"))}function Gn(e,t){let n;try{return n=new t(pe(e)),n.exec("PRAGMA busy_timeout = 0"),n.exec("BEGIN EXCLUSIVE"),!1}catch(r){return me(r)}finally{n?.close()}}async function oi(e,t){return t.pending.length>0||await to(e,ci,sd)}async function _i(e,t,n=di,r="rebuild"){let o=await $(e,ci,Kn,`history-event-index:${r}:${process.pid}`,!1,!1,n,n===0?{maxWaitMs:0}:void 0);try{return await t()}finally{await o()}}async function fi(e,t,n=!1){let r=C.join(e,"history"),o=await T.readdir(r,{withFileTypes:!0}).catch(f=>{if(typeof f=="object"&&f!==null&&"code"in f&&f.code==="ENOENT")return[];throw f}),i=fe.get(e)??{streams:new Map,ordered_events:[]},s=new Map(i.streams),a=i.ordered_events,d=new Set,l=!fe.has(e);for(let f of o.filter(w=>w.isFile()&&w.name.endsWith(".jsonl")).sort((w,O)=>w.name.localeCompare(O.name))){let w=f.name.slice(0,-6);d.add(w);let O=C.join(r,f.name);if(!Un(w,t))continue;let S=await md(O,w,s.get(w),n);S!==void 0&&(s.set(w,S),l=!0)}for(let f of s.keys())d.has(f)||(s.delete(f),l=!0);l&&(a=[...s.values()].flatMap(f=>f.events).sort(Yn));let _={streams:s,ordered_events:a};if(fe.delete(e),fe.set(e,_),fe.size>id){let f=fe.keys().next().value;fe.delete(f)}return{events:_.ordered_events.filter(f=>Un(f.stream_id,t)).map(f=>fd(f,n)),stream_receipts:new Map([..._.streams].filter(([f])=>Un(f,t)).map(([f,w])=>[f,{byte_size:w.byte_size,content_hash:w.signature}]))}}function fd(e,t){return t||e.recorded_entry===void 0?e:{stream_id:e.stream_id,stream_offset:e.stream_offset,entry:e.entry}}function Un(e,t){return!t?.length||t.includes(e)}async function md(e,t,n,r){if(!r&&n!==void 0&&n.byte_size===(await T.stat(e)).size){let o=Ot("sha256").update(await T.readFile(e)).digest("hex");if(n.signature===o)return}return pd(e,t,r)}async function pd(e,t,n){let r=await gt(e,t);if(n){let i=kt(r.entries);if(!i.ok)throw new b(`Authoritative history integrity verification failed for ${t}.`,E.GENERIC_FAILURE,{code:"event_history_integrity_failed",why:i.errors.join(", "),nextSteps:[`Run pm history ${t} --verify to inspect the authoritative chain before retrying.`]})}let o=r.raw_bytes??new Uint8Array;return{signature:Ot("sha256").update(o).digest("hex"),byte_size:o.byteLength,events:mi(r.entries,t).map((i,s)=>({stream_id:t,stream_offset:s,entry:i,...n?{recorded_entry:r.entries[s]}:{}}))}}async function hd(e,t){return mi((await gt(e,t)).entries,t)}function mi(e,t){for(let[n,r]of e.entries())if(typeof r.ts!="string"||!Ee(r.ts.trim()))throw new b(`History for ${t} contains an invalid or sub-millisecond timestamp at line ${n+1}. Repair or restore the history stream and retry.`,E.GENERIC_FAILURE,{code:"history_timestamp_invalid"});return e.map(n=>({...n,ts:new Date(n.ts.trim()).toISOString()}))}var Wn;function Nt(){return Wn!==void 0||(Wn=Qo(process.versions.node,rd(import.meta.url))),Wn}function yd(e){e.exec(`
|
|
18
|
+
PRAGMA journal_mode = OFF;
|
|
19
|
+
PRAGMA synchronous = OFF;
|
|
20
|
+
CREATE TABLE metadata (
|
|
21
|
+
key TEXT PRIMARY KEY,
|
|
22
|
+
value TEXT NOT NULL
|
|
23
|
+
) STRICT;
|
|
24
|
+
CREATE TABLE events (
|
|
25
|
+
stream_id TEXT NOT NULL,
|
|
26
|
+
stream_offset INTEGER NOT NULL,
|
|
27
|
+
ts TEXT NOT NULL,
|
|
28
|
+
author TEXT NOT NULL,
|
|
29
|
+
agent_harness TEXT,
|
|
30
|
+
agent_instance TEXT,
|
|
31
|
+
op TEXT NOT NULL,
|
|
32
|
+
event_class TEXT NOT NULL CHECK(event_class IN ('substantive', 'maintenance')),
|
|
33
|
+
entry_json TEXT NOT NULL,
|
|
34
|
+
PRIMARY KEY(stream_id, stream_offset)
|
|
35
|
+
) STRICT;
|
|
36
|
+
CREATE TABLE streams (
|
|
37
|
+
stream_id TEXT PRIMARY KEY,
|
|
38
|
+
byte_size INTEGER NOT NULL CHECK(byte_size >= 0),
|
|
39
|
+
content_hash TEXT NOT NULL
|
|
40
|
+
) STRICT;
|
|
41
|
+
CREATE INDEX events_order
|
|
42
|
+
ON events(ts, stream_id, stream_offset);
|
|
43
|
+
CREATE INDEX events_op_order
|
|
44
|
+
ON events(op, ts, stream_id, stream_offset);
|
|
45
|
+
CREATE INDEX events_class_stream_order
|
|
46
|
+
ON events(event_class, stream_id, ts, stream_offset);
|
|
47
|
+
CREATE INDEX events_author_order
|
|
48
|
+
ON events(author, ts, stream_id, stream_offset);
|
|
49
|
+
CREATE INDEX events_harness_order
|
|
50
|
+
ON events(agent_harness, ts, stream_id, stream_offset);
|
|
51
|
+
CREATE INDEX events_instance_order
|
|
52
|
+
ON events(agent_instance, ts, stream_id, stream_offset);
|
|
53
|
+
`),e.prepare("INSERT INTO metadata(key, value) VALUES ('version', ?)").run(Jn)}function pi(e,t){let n={...t.entry,ts:new Date(t.entry.ts.trim()).toISOString()};e.prepare(`INSERT INTO events(
|
|
54
|
+
stream_id, stream_offset, ts, author, agent_harness,
|
|
55
|
+
agent_instance, op, event_class, entry_json
|
|
56
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(t.stream_id,t.stream_offset,n.ts,n.author,n.agent_harness??null,n.agent_instance??null,n.op,xe(n),JSON.stringify(n))}function hi(e){let t=JSON.parse(String(e.entry_json));return typeof t.ts!="string"||!Ee(t.ts.trim())?null:{stream_id:String(e.stream_id),stream_offset:Number(e.stream_offset),entry:{...t,ts:new Date(t.ts.trim()).toISOString()}}}function yi(e,t,n){e.prepare(`INSERT INTO streams(stream_id, byte_size, content_hash) VALUES (?, ?, ?)
|
|
57
|
+
ON CONFLICT(stream_id) DO UPDATE SET byte_size = excluded.byte_size, content_hash = excluded.content_hash`).run(t,n.byte_size,n.content_hash)}async function gd(e,t={}){let n=Nt();return n?_i(e,async()=>{let r;try{r=await qn(e,()=>ri(e),t.lockWaitMs)}catch(a){if(a instanceof b&&a.code==="lock_conflict")return!1;throw a}if(r.pending.length>0||xt(r)&&Gn(e,n))return!1;let o=pe(e);await T.mkdir(C.dirname(o),{recursive:!0});let i=`${o}.${Bn()}.tmp`,s;try{s=new n(i),yd(s),s.exec("BEGIN IMMEDIATE");let a=await fi(e);await vd(s,a),s.exec("COMMIT"),s.close(),s=void 0;let d=await qn(e,async()=>{let l=await ri(e);return l.pending.length>0||!_d(r.committed,l.committed)||xt(l)&&Gn(e,n)?!1:(await T.rm(o,{force:!0}),await T.rename(i,o),!0)},t.lockWaitMs);return d&&await Promise.all(r.committed.map(l=>T.rm(C.join(Ke(e),l),{force:!0}))),d||(await ni(e),await T.rm(i,{force:!0})),d}catch(a){throw await ni(e),s?.close(),await T.rm(i,{force:!0}),a}},t.lockWaitMs):!1}async function vd(e,t){let n=0;for(let r of t.events)pi(e,r),++n%500===0&&await ei();for(let[r,o]of t.stream_receipts)yi(e,r,o),++n%500===0&&await ei()}function St(e,t){return!t||t.length===0||t.includes(e)}function Yn(e,t){return e.entry.ts.localeCompare(t.entry.ts)||e.stream_id.localeCompare(t.stream_id)||e.stream_offset-t.stream_offset}function Ct(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():e}function bd(e,t){if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){if(Yn(e,{stream_id:t.after_stream_id,stream_offset:t.after_stream_offset,entry:{...e.entry,ts:Ct(t.after_ts)}})<=0)return!1}else if(t.since_ts!==void 0&&e.entry.ts<Ct(t.since_ts))return!1;return!0}function wd(e,t){return!t.harnesses||t.harnesses.length===0||t.harnesses.includes(e.entry.agent_harness??"")?!0:e.entry.agent_harness===void 0&&(t.harness_alias_authors??[]).includes(e.entry.author)}function Ed(e,t){return!bd(e,t)||!St(e.entry.op,t.ops)||!St(e.entry.author,t.authors)||!St(e.entry.agent_instance??"",t.agent_instances)||!St(e.stream_id,t.stream_ids)||!wd(e,t)?!1:(t.provenance??[]).every(n=>{let r=e.entry.agent_provenance?.[n.dimension]?.value;return r!==void 0&&n.values.includes(r)})}async function kd(e,t){let n=Math.max(0,Math.floor(t.limit)),r=await fi(e,t.stream_ids,t.verify),o=r.events.filter(i=>Ed(i,t)).slice(0,n+1);return{events:o.slice(0,t.limit),has_more:o.length>t.limit,...t.verify?{verified_streams:r.stream_receipts.size}:{}}}async function Sd(e,t){let n=e.prepare("SELECT byte_size, content_hash FROM streams WHERE stream_id = ?").get(C.basename(t,".jsonl")),r=0;try{r=(await T.stat(t)).size}catch(i){if(!ie(i))throw i}if(Number(n?.byte_size??0)!==r)return!1;let o=await Zn(C.dirname(C.dirname(t)),C.basename(t,".jsonl"));return n===void 0?o?.byte_size===0:o?.content_hash===n.content_hash}async function gi(e,t,n){let r=C.dirname(C.dirname(e)),o=Nt(),i=!1,s=async()=>{await n(),i=!0};if(!o){await ii(r,s);return}try{await _i(r,async()=>{let a=pe(r);try{await T.access(a)}catch{await s();return}let d;try{if(d=new o(a),d.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==Jn)throw new TypeError("Unsupported history event index version");if(!await Sd(d,e))throw new TypeError("Stale history event index append base")}catch(_){if(d?.close(),me(_))throw _;await Vn(r,!0),await s();return}try{d.exec("PRAGMA busy_timeout = 0"),d.exec("BEGIN IMMEDIATE")}catch(_){if(d.close(),me(_)||!(_ instanceof Error)||_.code!=="ERR_SQLITE_ERROR")throw _;await Vn(r,!1),await s();return}let l=!1;try{await s(),l=!0;let _=C.basename(e,".jsonl"),f=d.prepare("SELECT COALESCE(MAX(stream_offset), -1) + 1 AS value FROM events WHERE stream_id = ?").get(_);pi(d,{stream_id:_,stream_offset:Number(f.value),entry:t}),yi(d,_,await Zn(r,_)),d.exec("COMMIT"),d.close()}catch(_){if(d?.close(),!l)throw _;await Vn(r,me(_))}},0,"append")}catch(a){if(i){await At(r);return}if(!Od(a))throw a;await ii(r,s,me(a))}}async function ii(e,t,n=!1){let r=!1,o;try{await qn(e,async()=>{let i=n||xt(await Tt(e)),s=await ud(e);o=s.pendingPath;try{await t(),r=!0}catch(a){throw await T.rm(s.pendingPath,{force:!0}),a}await T.rename(s.pendingPath,i?s.committedPath.replace(/\.committed$/u,".contended.committed"):s.committedPath),i||await At(e)})}catch(i){if(r){await At(e);try{await T.rm(o,{force:!0})}catch{}return}throw i}}async function Xn(e){await T.rm(pe(C.dirname(C.dirname(e))),{force:!0})}function It(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function Id(e,t,n,r){if(!n||n.length===0)return;let o=n.map(()=>"?").join(", "),i=r??[];if(i.length>0){e.push(`(agent_harness IN (${o}) OR (agent_harness IS NULL AND author IN (${i.map(()=>"?").join(", ")})))`),t.push(...n,...i);return}e.push(`agent_harness IN (${o})`),t.push(...n)}async function vi(e,t,n,r){let o;try{let i=await Tt(e);if(await oi(e,i))return Q;let s=await si(e);if(i.committed.length>0)return xt(i)&&Gn(e,t)?Q:null;if(o=new t(pe(e),{readOnly:!0}),o.exec("BEGIN"),o.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==Jn)return null;let a=r(o);if(a===null)return null;let d=Td(o,n),l=o;o=void 0,l.close();let _=await xd([...d.keys()],e,n),f=await Ad(d,e,_),w=await Tt(e);return w.committed.length>0||await oi(e,w)||s!==await si(e)?Q:f?a:null}catch(i){return me(i)?Q:null}finally{o?.close()}}function me(e){return typeof e=="object"&&e!==null&&"errcode"in e&&[5,6].includes(e.errcode)}function Od(e){return me(e)||e instanceof b&&e.code==="lock_conflict"}function Td(e,t){let n=new Map,r=t&&t.length>0?[...new Set(t)]:void 0;if(r===void 0)for(let o of e.prepare("SELECT stream_id, byte_size, content_hash FROM streams").all())n.set(String(o.stream_id),{byte_size:Number(o.byte_size),content_hash:String(o.content_hash)});else for(let o=0;o<r.length;o+=500){let i=r.slice(o,o+500);for(let s of e.prepare(`SELECT stream_id, byte_size, content_hash FROM streams WHERE stream_id IN (${i.map(()=>"?").join(", ")})`).all(...i))n.set(String(s.stream_id),{byte_size:Number(s.byte_size),content_hash:String(s.content_hash)})}return n}async function si(e){let t=await T.stat(pe(e),{bigint:!0});return[t.dev,t.ino,t.size,t.mtimeNs,t.ctimeNs].join(":")}async function bf(e,t){if(t.verify)return{result:await kd(e,t),repair_needed:!1};let n=Nt();if(!n)return{result:null,repair_needed:!1};let r=[],o=[];if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){r.push("(ts > ? OR (ts = ? AND stream_id > ?) OR (ts = ? AND stream_id = ? AND stream_offset > ?))");let a=Ct(t.after_ts);o.push(a,a,t.after_stream_id,a,t.after_stream_id,t.after_stream_offset)}else t.since_ts!==void 0&&(r.push("ts >= ?"),o.push(Ct(t.since_ts)));It(r,o,"op",t.ops),It(r,o,"author",t.authors),Id(r,o,t.harnesses,t.harness_alias_authors),It(r,o,"agent_instance",t.agent_instances);for(let a of t.provenance??[])r.push(`json_extract(entry_json, '$.agent_provenance.${a.dimension}.value') IN (${a.values.map(()=>"?").join(", ")})`),o.push(...a.values);It(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s=await vi(e,n,t.stream_ids,a=>{let d=a.prepare(`SELECT stream_id, stream_offset, entry_json
|
|
58
|
+
FROM events${i}
|
|
59
|
+
ORDER BY ts, stream_id, stream_offset
|
|
60
|
+
LIMIT ?`).all(...o,Math.max(0,Math.floor(t.limit))+1),l=d.slice(0,t.limit).map(hi);return l.includes(null)?null:{events:l,has_more:d.length>t.limit}});return{result:s===Q?null:s,repair_needed:s===null&&!await ui(e)}}function bi(e,t){let n=Object.create(null);for(let r of e){if(!t.has(r.stream_id)||xe(r.entry)!=="substantive")continue;let o=n[r.stream_id];(o===void 0||Yn(o,r)<0)&&(n[r.stream_id]=r)}return n}async function Zn(e,t){if(C.basename(t)!==t)return null;try{let n=C.join(e,"history",`${t}.jsonl`),r=await T.stat(n),o=await T.readFile(n);return r.size!==o.length?null:{byte_size:o.length,content_hash:Ot("sha256").update(o).digest("hex")}}catch(n){if(ie(n))return{byte_size:0,content_hash:Ot("sha256").digest("hex")};throw n}}async function Ad(e,t,n){for(let r=0;r<n.length;r+=ti){let o=n.slice(r,r+ti),i=await Promise.all(o.map(s=>Zn(t,s)));for(let[s,a]of i.entries()){if(a===null)return!1;let d=o[s],l=e.get(d);if(!(a.byte_size===0&&l===void 0)&&(a.byte_size!==l?.byte_size||a.content_hash!==l.content_hash))return!1}}return!0}async function xd(e,t,n){if(n&&n.length>0)return[...new Set(n.filter(o=>o.trim().length>0))];let r=await T.readdir(C.join(t,"history"),{withFileTypes:!0}).then(o=>o.filter(i=>i.isFile()&&i.name.endsWith(".jsonl")).map(i=>i.name.slice(0,-6))).catch(o=>{if(ie(o))return[];throw o});return[...new Set([...e,...r])]}async function ai(e,t,n,r){return e?vi(t,e,n,o=>{let i=[];for(let s=0;s<n.length;s+=500){let a=n.slice(s,s+500),d=o.prepare(`SELECT stream_id, stream_offset, entry_json
|
|
61
|
+
FROM (
|
|
62
|
+
SELECT stream_id, stream_offset, entry_json,
|
|
63
|
+
ROW_NUMBER() OVER (
|
|
64
|
+
PARTITION BY stream_id
|
|
65
|
+
ORDER BY ts DESC, stream_offset DESC
|
|
66
|
+
) AS recency_rank
|
|
67
|
+
FROM events
|
|
68
|
+
WHERE event_class = 'substantive'
|
|
69
|
+
AND stream_id IN (${a.map(()=>"?").join(", ")})
|
|
70
|
+
)
|
|
71
|
+
WHERE recency_rank = 1`).all(...a).map(hi);if(d.includes(null))return null;i.push(...d)}return bi(i,r)}):null}async function wf(e,t){let n=[...new Set(t.filter(a=>a.trim().length>0&&C.basename(a)===a))];if(n.length===0)return{};let r=new Set(n),o=Nt(),i=await ai(o,e,n,r);if(i!==null&&i!==Q)return i;if(o&&i!==Q&&!await ui(e))try{if(await gd(e,{lockWaitMs:0})){let a=await ai(o,e,n,r);if(a!==null&&a!==Q)return a}}catch{}let s=[];return await Promise.all(n.map(async a=>{let d=C.join(e,"history",`${a}.jsonl`);(await hd(d,a).catch(l=>{if(l instanceof b&&l.code==="history_timestamp_invalid")return[];throw l})).forEach((l,_)=>{s.push({stream_id:a,stream_offset:_,entry:l})})})),bi(s,r)}import Qn from"node:fs/promises";import Ce 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]="687cbe24-6d5c-5322-962d-455048eb84b5")}catch{}})();var Cd=Ce.join("runtime","history-drift-cache.json"),wi={EINVAL:"invalid_cache_path",EISDIR:"cache_path_is_directory",ENOENT:"invalid_cache_path",ENOTDIR:"invalid_cache_path",ERR_FS_EISDIR:"cache_path_is_directory"};function Ei(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function Nd(e){let t=Ce.join(e,Cd),n=!1,r="invalid_cache_path";try{n=(await Qn.stat(await Qn.realpath(e))).isDirectory()}catch(o){let i=Ei(o);r=i===void 0?"unknown":wi[i]??"filesystem_error"}if(!n){en(`[pm] warning: history_drift_cache_invalidation_failed:${r}
|
|
72
|
+
`);return}try{await Qn.rm(t,{force:!0})}catch(o){let i=Ei(o);if(ie(o))return;let s=i===void 0?"unknown":wi[i]??"filesystem_error";en(`[pm] warning: history_drift_cache_invalidation_failed:${s}
|
|
73
|
+
`)}}async function Rt(e){let t=Ce.dirname(Ce.resolve(e));Ce.basename(t)==="history"&&await Nd(Ce.dirname(t))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4a3c3c82-0398-549c-8910-fdc69d971cb2")}catch{}})();var Dd={front_matter:{},body:""},_e=3,Be=[1,2,3],Pd=1,jd=[1];function Ai(e){return K(A(e),e.hash_algorithm)}function Ne(e){return ot(A(e))}function qf(e){return ot(A(e))}function rr(e){let t={...e,record_hash_version:Pd},{record_hash:n,...r}=t;return{...t,record_hash:Ai(r)}}function vt(e){try{se(e.hash_algorithm)}catch{return{ok:!1,error:"unsupported_history_hash_algorithm"}}if(e.record_hash_version===void 0&&e.record_hash===void 0)return{ok:!0,coverage:"item_state_only"};if(e.record_hash_version===void 0||e.record_hash===void 0)return{ok:!1,error:"incomplete_record_hash_envelope"};if(!jd.includes(e.record_hash_version))return{ok:!1,error:"unsupported_record_hash_version"};let{record_hash:t,...n}=e;return Ai(n)===e.record_hash?{ok:!0,coverage:"record_and_item_state"}:{ok:!1,error:"record_hash_mismatch"}}function Ld(e,t){let n={before_hash:e.before_hash,after_hash:e.after_hash,patch_hash:Ne(e.patch)};return e.hash_algorithm!==void 0&&(n.hash_algorithm=e.hash_algorithm),e.item_hash_version!==void 0&&(n.item_hash_version=e.item_hash_version),t.retainOriginalPatch&&(n.patch=structuredClone(e.patch)),t.retainPriorRecordHash!==!1&&e.record_hash_version!==void 0&&e.record_hash!==void 0&&(n.record_hash_version=e.record_hash_version,n.record_hash=e.record_hash,n.record=structuredClone(e)),n}function Go(e,t,n={}){let r=vt(e);if(!r.ok)throw new TypeError(r.error);let o=Ne(e.patch),i=n.retainPriorRecord===!0||e.before_hash!==t.before_hash||e.after_hash!==t.after_hash||e.item_hash_version!==t.item_hash_version||e.hash_algorithm!==t.hash_algorithm||o!==Ne(t.patch),s=rr({...t,...i?{reanchor_evidence:[...t.reanchor_evidence??[],Ld(e,n)]}:{}}),a=$n(s);if(!a.ok)throw new TypeError(a.error);return s}function xi(e){return!Array.isArray(e)||Object.keys(e).length!==e.length?!1:e.every(t=>!he(t)||typeof t.path!="string"?!1:t.op==="move"||t.op==="copy"?typeof t.from=="string":["add","replace","test"].includes(t.op)?Object.hasOwn(t,"value"):t.op==="remove")}function Hd(e){return he(e)&&typeof e.ts=="string"&&typeof e.author=="string"&&typeof e.op=="string"&&typeof e.before_hash=="string"&&typeof e.after_hash=="string"&&xi(e.patch)}function Fd(e){let t=e.record_hash_version!==void 0,n=e.record_hash!==void 0;return t===n}function zd(e){return!he(e)||!Fd(e)||typeof e.before_hash!="string"||typeof e.after_hash!="string"||typeof e.patch_hash!="string"||!/^[a-f0-9]{64}$/u.test(e.patch_hash)||e.patch!==void 0&&!xi(e.patch)||e.record_hash_version!==void 0&&typeof e.record_hash_version!="number"||e.record_hash!==void 0&&(typeof e.record_hash!="string"||!/^(?:[a-f0-9]{64}|[a-f0-9]{128})$/u.test(e.record_hash))?!1:e.record===void 0||Hd(e.record)}function $d(e){try{for(let t of e){if(!zd(t))return!1;se(t.hash_algorithm)}return!0}catch{return!1}}function Md(e){let t=e.record;return t!==void 0&&t.before_hash===e.before_hash&&t.after_hash===e.after_hash&&t.item_hash_version===e.item_hash_version&&t.hash_algorithm===e.hash_algorithm&&t.record_hash_version===e.record_hash_version&&t.record_hash===e.record_hash&&Ne(t.patch)===e.patch_hash}function Vd(e,t,n){if(t.patch&&Ne(t.patch)!==t.patch_hash)return{kind:"patch_hash_mismatch"};if(t.record)return Md(t)?{kind:"record",entry:t.record}:{kind:"record_hash_mismatch"};let r=t.patch??e.patch;if(Ne(r)!==t.patch_hash)return{kind:"digest_only"};let o={...e,before_hash:t.before_hash,after_hash:t.after_hash,patch:r,hash_algorithm:t.hash_algorithm,...t.item_hash_version===void 0?{}:{item_hash_version:t.item_hash_version},...t.record_hash_version===void 0?{}:{record_hash_version:t.record_hash_version},...t.record_hash===void 0?{}:{record_hash:t.record_hash},...n.length===0?{}:{reanchor_evidence:n}};return t.hash_algorithm===void 0&&delete o.hash_algorithm,n.length===0&&delete o.reanchor_evidence,t.item_hash_version===void 0&&delete o.item_hash_version,t.record_hash_version===void 0||t.record_hash===void 0?{kind:"legacy",entry:o}:{kind:"record",entry:o}}function $n(e){let t=e.reanchor_evidence;if(t===void 0)return{ok:!0,coverage:"none"};if(!Array.isArray(t)||!$d(t))return{ok:!1,error:"rewrite_evidence_invalid"};if(t.length===0)return{ok:!0,coverage:"none"};let n=e;for(let r=t.length-1;r>=0;r-=1){let o=t[r],i=Vd(n,o,t.slice(0,r));if(i.kind==="patch_hash_mismatch")return{ok:!1,error:"rewrite_evidence_patch_hash_mismatch"};if(i.kind==="record_hash_mismatch")return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};if(i.kind==="digest_only")return{ok:!0,coverage:"digest_only"};if(i.kind==="legacy")return{ok:!0,coverage:"legacy_anchor_only"};if(!vt(i.entry).ok)return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};n=i.entry}return{ok:!0,coverage:"complete"}}function Dt(e,t){return(e??"").localeCompare(t??"")}function Si(e,t){return(e??0)-(t??0)}function ee(e,t,n){return JSON.stringify(e??n).localeCompare(JSON.stringify(t??n))}function Ud(e,t){return[e.scope.localeCompare(t.scope),Dt(e.path,t.path),Dt(e.command,t.command),Si(e.timeout_seconds,t.timeout_seconds),Dt(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,ee(e.env_clear,t.env_clear,[]),ee(e.env_set,t.env_set,{}),ee(e.assert_stdout_contains,t.assert_stdout_contains,[]),ee(e.assert_stdout_regex,t.assert_stdout_regex,[]),ee(e.assert_stderr_contains,t.assert_stderr_contains,[]),ee(e.assert_stderr_regex,t.assert_stderr_regex,[]),Si(e.assert_stdout_min_lines,t.assert_stdout_min_lines),ee(e.assert_json_field_equals,t.assert_json_field_equals,{}),ee(e.assert_json_field_gte,t.assert_json_field_gte,{}),Dt(e.note,t.note)].find(n=>n!==0)??0}function Wd(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function qd(e,t){let n=Wd(t);if(n.length===0)return!0;let r=e;for(let o of n){let i=/^(0|[1-9]\d*)$/.test(o)?Number(o):-1,s=Array.isArray(r)?i>=0&&i<r.length?r[i]:void 0:he(r)&&Object.prototype.hasOwnProperty.call(r,o)?r[o]:void 0;if(s===void 0)return!1;r=s}return!0}function Gd(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!qd(r,o.path)?{...o,op:"add"}:o;n.push(i),r=Ti.applyPatch(r,[i],!0,!0).newDocument}return n}function Pt(e,t,n=!1){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let r=Oe(e),o=t===1||t===2&&n?{...r.metadata,...r.metadata.dependencies===void 0?{}:{dependencies:r.metadata.dependencies.map(s=>({...s,id:s.id.toLowerCase()}))},...r.metadata.tests===void 0?{}:{tests:r.metadata.tests.map(({workspace_context_mode:s,provenance:a,provenance_invalid:d,...l})=>l)},...r.metadata.test_runs===void 0?{}:{test_runs:r.metadata.test_runs.map(({executions:s,...a})=>a)}}:r.metadata,i=t===1&&o.tests?{...o,tests:[...o.tests].sort(Ud)}:o;return{front_matter:g(i,J),body:r.body}}function Ii(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let t=Oe(e);return{metadata:g(t.metadata,J),body:t.body}}function Gf(e){return Ci(e,_e)}function Ci(e,t,n){if(!Be.some(r=>r===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return K(A(Pt(e,t)),n)}function Bo(e,t,n){let r=Ci(e,t,n);return t===2?[r,K(A(Pt(e,t,!0)),n)]:[r]}function Bf(){return ot(A(Dd))}function or(e){let t=no(e.op),n=Pt(e.before,_e),r=Pt(e.after,_e),o=Ii(e.before),i=Ii(e.after),s=Ti.compare(o,i),a=Gd(o,s),d=Mo(e.author),l=d.harness?Object.fromEntries(Object.entries(zo().provenance_outcomes).filter(([O,S])=>S.resolver!==void 0&&(S.status!=="resolved"||d.provenance?.[O]?.source==="probe"))):void 0,_=l===void 0||Object.keys(l).length===0?e.context:{...e.context,agent_provenance_outcomes:l},f=e.hashAlgorithm??ro,w={hash_algorithm:f,ts:e.nowIso,author:e.author,author_source:e.authorSource??$o(e.author),...d.harness?{agent_harness:d.harness}:{},...d.model?{agent_model:d.model}:{},...d.model_source?{agent_model_source:d.model_source}:{},...d.instance?{agent_instance:d.instance}:{},...d.provenance?{agent_provenance:d.provenance}:{},...d.episode?{agent_episode:d.episode}:{},op:t,patch:a,before_hash:K(A(n),f),after_hash:K(A(r),f),item_hash_version:_e,message:e.message===void 0?void 0:e.message,..._===void 0?{}:{context:_}};return rr({...w,event_class:xe(w)})}function he(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function er(e){return new b(e,E.GENERIC_FAILURE,{code:"history_timestamp_invalid"})}function Ni(e){let t=e.ts.trim();if(t.length===0)return $e();if(!Ee(t))throw er("History timestamp must be a valid RFC 3339 date-time with millisecond precision");if(t!==e.ts)throw er("History timestamp must not contain surrounding whitespace");return e.ts}function Oi(e,t){let n=e.ts;if(typeof n=="string"&&n.trim().length>0){if(!Ee(n))throw er("History timestamp must be a valid RFC 3339 date-time with millisecond precision");return e}return{...e,ts:t}}function tr(e,t){let n=Ni(t);if(typeof e=="string"){let r;try{r=JSON.parse(e)}catch{return e}return he(r)?JSON.stringify(Oi(r,n)):e}return he(e)?JSON.stringify(Oi(e,n)):JSON.stringify(e)}async function Bd(e,t,n){if(n===!1)return!0;if(typeof n=="string"){let s=tr(n,t);return await nr(e,s),await Rt(e),await Xn(e),!0}if(typeof n!="object"||n===null)return!1;let r=n;if(r.skip===!0)return!0;let o=typeof r.history_path=="string"?r.history_path:e,i=tr(typeof r.line=="string"?r.line:r.entry??t,t);return await nr(o,i),await Rt(o),await Xn(o),!0}async function nr(e,t){let n;try{n=JSON.parse(t)}catch{n=null}if(!he(n)||n.op!=="create"){await Mr(e,t);return}await ki.mkdir(Rd.dirname(e),{recursive:!0});try{await ki.writeFile(e,`${t}
|
|
74
|
+
`,{encoding:"utf8",flag:"wx"})}catch(r){throw r.code!=="EEXIST"?r:new b("This item identity is reserved by an existing history stream.",E.CONFLICT,{code:"item_identity_reserved",required:"Choose a new item ID or restore the original item from its history.",nextSteps:["Run pm history <id> --full, then pm restore <id> <version> to recover the original item."]})}}async function ir(e,t){let n=await Xr("history_append",{history_path:e,entry:t});if(n.handled&&await Bd(e,t,n.result))return;let r=t.ts.trim().length>0?t:{...t,ts:Ni(t)},o=rr({...r,hash_algorithm:se(r.hash_algorithm),event_class:xe(r)});await gi(e,o,async()=>{await nr(e,tr(o,o))}),await Rt(e)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c7f9d249-e2c2-5edd-afbd-b14ac1c12e81")}catch{}})();var V={ok:!1,path:[]};function ar(e,t){return{ok:!1,path:[e,...t.path]}}var u=e=>typeof e=="string"?{ok:!0,value:e}:V,k=e=>typeof e=="boolean"?{ok:!0,value:e}:V;function x(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?V:{ok:!0,value:t}}function I(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:V}function p(e,t){return n=>{if(!Array.isArray(n)||t!==void 0&&n.length>t)return V;let r=[];for(let[o,i]of n.entries()){let s=e(i);if(!s.ok)return ar(String(o),s);r.push(s.value)}return{ok:!0,value:r}}}function cr(e,t){return n=>typeof n=="string"&&n.length>0&&n.length<=e&&n===n.trim()&&(t===void 0||t.test(n))?{ok:!0,value:n}:V}function c(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function jt(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return V;let n={};for(let[r,o]of Object.entries(t)){let i=e(o);if(!i.ok)return ar(r,i);n[r]=i.value}return{ok:!0,value:n}}}function v(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return V;let n=t,r={};for(let[o,i]of Object.entries(e)){let s=i(n[o]);if(!s.ok)return ar(o,s);s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var Jd=v({key:u,values:p(u),required:c(k),aliases:c(p(u)),description:c(u)}),Kd=v({command:I("create","update"),option:u,required:c(k),visible:c(k),enabled:c(k)}),Yd=v({name:u,description:c(u),default_status:c(u),execution_role:c(I("agent","human","gate")),folder:c(u),aliases:c(p(u)),required_create_fields:c(p(u)),required_create_repeatables:c(p(u)),options:c(p(Jd)),command_option_policies:c(p(Kd))}),Xd=v({id:u,aliases:c(p(u)),roles:c(p(I(...Rr))),description:c(u),order:c(x())}),Zd=v({key:u,metadata_key:c(u),front_matter_key:c(u),cli_flag:c(u),cli_aliases:c(p(u)),description:c(u),type:c(I(...Dr)),commands:c(p(I(...Pr))),repeatable:c(k),required:c(k),required_on_create:c(k),required_types:c(p(u)),allow_unset:c(k)}),Qd=e=>{if(!Array.isArray(e)||e.length!==2)return V;let[t,n]=e;return typeof t!="string"||typeof n!="string"?V:{ok:!0,value:[t,n]}},el=v({type:u,allowed_transitions:p(Qd)}),tl=c(v({version:c(x({int:!0})),files:c(v({types:c(u),statuses:c(u),fields:c(u),workflows:c(u)})),statuses:c(p(Xd)),fields:c(p(Zd)),workflow:c(v({draft_status:c(u),open_status:c(u),in_progress_status:c(u),blocked_status:c(u),close_status:c(u),canceled_status:c(u)})),type_workflows:c(p(el)),unknown_field_policy:c(I(...jr))})),nl=c(v({preset:c(I(...Lr)),ownership_enforcement:c(I("none","warn","strict")),create_mode_default:c(I("progressive","strict")),close_validation_default:c(I("off","warn","strict")),require_close_reason:c(k),parent_reference:c(I("warn","strict_error")),metadata_profile:c(I("core","strict","custom")),force_required_for_stale_lock:c(k),create_default_type:c(u),workflow_enforcement:c(I("off","warn","strict")),duplicate_detection_mode:c(I("off","advisory","strict")),duplicate_detection_threshold:c(x({min:0,max:1})),duplicate_detection_limit:c(x({int:!0,min:0,max:20}))})),rl=v({name:u,disabled:c(k),require_trusted:c(k),require_provenance:c(k),sandbox_profile:c(I("none","restricted","strict")),allowed_capabilities:c(p(u)),blocked_capabilities:c(p(u)),allowed_surfaces:c(p(u)),blocked_surfaces:c(p(u)),allowed_commands:c(p(u)),blocked_commands:c(p(u)),allowed_actions:c(p(u)),blocked_actions:c(p(u)),allowed_services:c(p(u)),blocked_services:c(p(u))}),sr=I("block","warn"),ol=e=>typeof e=="string"?sr(e):v({global:c(sr),project:c(sr)})(e),il=c(v({mode:c(I("off","warn","enforce")),trust_mode:c(I("off","warn","enforce")),pm_max_version_exceeded_mode:c(ol),require_provenance:c(k),trusted_extensions:c(p(u)),default_sandbox_profile:c(I("none","restricted","strict")),allowed_extensions:c(p(u)),blocked_extensions:c(p(u)),allowed_capabilities:c(p(u)),blocked_capabilities:c(p(u)),allowed_surfaces:c(p(u)),blocked_surfaces:c(p(u)),allowed_commands:c(p(u)),blocked_commands:c(p(u)),allowed_actions:c(p(u)),blocked_actions:c(p(u)),allowed_services:c(p(u)),blocked_services:c(p(u)),extension_overrides:c(p(rl))})),ye=cr(128),sl=v({harness:cr(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:c(p(ye,64)),model_environment_keys:c(p(ye,64)),session_environment_keys:c(p(ye,64)),provenance_environment_keys:c(jt(p(ye,64))),provenance_resolvers:c(jt(I("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:c(p(ye,64)),argv_markers:c(p(ye,64)),client_names:c(p(ye,64))}),Ri={version:x({int:!0}),id_prefix:u,ids:c(v({token_length:c(x({int:!0,min:4,max:12}))})),author_default:u,agent_identity:c(v({probes_enabled:c(k),identity_vocabulary:c(v({version:x({int:!0,positive:!0}),aliases:jt(cr(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:p(sl)})),mutation_guard:c(v({require_attributed_author:c(k),secret_guard:c(I("off","advise","block")),stale_in_progress_hours:c(x({int:!0,positive:!0}))})),item_format:c(I("toon","json_markdown")),locks:v({ttl_seconds:x({int:!0}),wait_ms:c(x({int:!0,min:0}))}),checkpoints:c(v({retention_days:c(x({int:!0,positive:!0}))})),output:v({default_format:I("toon","json")}),ux:c(v({deprecation_hints:c(k)})),history:c(v({missing_stream:I("auto_create","strict_error"),compact_policy:c(v({enabled:c(k),max_entries:c(x({int:!0,positive:!0})),trigger:c(I("health_warn","auto"))}))})),validation:c(v({sprint_release_format:I("warn","strict_error"),parent_reference:c(I("warn","strict_error")),metadata_profile:c(I("core","strict","custom")),metadata_required_fields:c(p(u)),lifecycle_stale_blocker_reason_patterns:c(p(u)),lifecycle_closure_like_blocked_reason_patterns:c(p(u)),lifecycle_closure_like_resolution_patterns:c(p(u)),lifecycle_closure_like_actual_result_patterns:c(p(u)),estimate_defaults_by_type:c(jt(x({int:!0,positive:!0})))})),governance:nl,workflow:c(v({definition_of_done:p(u)})),testing:c(v({record_results_to_items:k,allow_untrusted_linked_tests:c(k)})),telemetry:c(v({enabled:k,first_run_prompt_completed:c(k),capture_level:c(I("minimal","redacted","max")),endpoint:c(u),installation_id:c(u),retention_days:c(x({int:!0,positive:!0}))})),agent_guidance:c(v({prompt_completed:c(k),declined:c(k),declined_at:c(u),template_version:c(x({int:!0,positive:!0})),last_checked_files:c(p(u))})),item_types:c(v({definitions:p(Yd)})),schema:tl,context:c(v({default_depth:c(I("brief","standard","deep")),activity_limit:c(x({int:!0,positive:!0})),stale_threshold_days:c(x({int:!0,positive:!0})),next_ranking_policy:c(I("priority_floor","weighted")),sections:c(v({hierarchy:c(k),activity:c(k),progress:c(k),recently_created:c(k),unparented:c(k),blockers:c(k),files:c(k),workload:c(k),staleness:c(k),tests:c(k)}))})),extensions:v({enabled:p(u),disabled:p(u),policy:il}),search:v({score_threshold:x(),hybrid_semantic_weight:c(x()),max_results:x({int:!0}),embedding_model:u,embedding_corpus_max_characters:c(x()),embedding_batch_size:x({int:!0}),embedding_timeout_ms:c(x({int:!0})),scanner_max_batch_retries:x({int:!0}),provider:c(u),default_mode:c(I("auto","keyword","semantic","hybrid")),corpus_fields:c(p(u)),mutation_refresh_policy:c(I("cache_only","semantic_configured","semantic_auto")),query_expansion:c(v({enabled:c(k),provider:c(u)})),rerank:c(v({enabled:c(k),model:c(u),top_k:c(x({int:!0,positive:!0}))})),bm25:c(v({k1:c(x()),b:c(x())}))}),providers:v({openai:v({base_url:u,api_key:u,model:u}),ollama:v({base_url:u,model:u})}),vector_store:v({adapter:c(u),collection_name:c(u),qdrant:v({url:u,api_key:u}),lancedb:v({path:u})})},al=v(Ri),Di=Object.freeze(Object.keys(Ri));function Lt(e){let t=al(e);return t.ok?{success:!0,data:t.value}:{success:!1,path:t.path.join(".")}}import{AsyncLocalStorage as pl}from"node:async_hooks";import{lstat as hl,realpath as Ji}from"node:fs/promises";import Ki from"node:path";import cl from"node:fs/promises";import Re 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]="af606b47-d071-5724-b1e7-de4e1e5d7385")}catch{}})();var De="_workspace";function Ht(e){return Re.join(e,"history",`${De}.jsonl`)}function dl(e,t){return{metadata:{id:De,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 Ft(e,t=e.length){let n=bt();for(let r of e.slice(0,t))n=Et(n,r.patch).document;return wt(n)}function dr(e){return"documents"in e.metadata&&typeof e.metadata.documents=="object"&&e.metadata.documents!==null&&!Array.isArray(e.metadata.documents)?e.metadata.documents:{}}function zt(e){throw new b(`Workspace history verification failed: ${e.join(", ")}`,E.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 Pi(e,t){let n=Re.resolve(t),r=Re.relative(e,n).replaceAll("\\","/");if(r.length===0||r===".."||r.startsWith("../")||Re.isAbsolute(r))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:r,absolutePath:n}}async function cm(e){let t=await Ge(Ht(e),De),n=Je(t);n.ok||zt(n.errors);let r=dr(t.length===0?je:Ft(t)),o=[],i=[],s=[],a=[];for(let d of Object.keys(r).sort()){let l;try{let _=Pi(e,Re.resolve(e,d));if(l=await be(_.absolutePath),l===null){s.push(d);continue}let f=JSON.parse(l);(A(f)===A(r[d])?o:i).push(d)}catch{a.push(d)}}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 ji(e){let t=Ht(e.pmRoot),n=await Ge(t,De),r=Je(n);r.ok||zt(r.errors);let o=e.idempotencyKey===void 0?void 0:n.find(f=>f.op===`${e.op}:${e.idempotencyKey}`);if(o)return{entry:o,historyPath:t};let i=$e(),s=n.length===0?je:Ft(n),a=dr(s),d=a[e.documentPath];if(d!==void 0&&A(d)!==A(e.before))throw new b(`Workspace history state for "${e.documentPath}" changed outside the audited mutation path.`,E.CONFLICT,{code:"workspace_history_state_conflict",reason:"out_of_band_workspace_state",required:"Reconcile the singleton document with its matching _workspace history state before retrying the mutation.",why:"Accepting the write would make the append-only audit stream describe a state that was not actually observed.",examples:["pm history _workspace --verify","pm validate --check-history-drift --fix-hints"],nextSteps:["Review the version-control change that altered the singleton and preserve the intended document plus its matching workspace history.","Rerun the original mutation only after the on-disk singleton agrees with the latest audited workspace state."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify"}});let l=dl({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),_=or({nowIso:i,author:e.author,op:e.idempotencyKey===void 0?e.op:`${e.op}:${e.idempotencyKey}`,before:s,after:l,message:e.message});return await ir(t,_),{entry:_,historyPath:t}}async function dm(e){let t=await $(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await ji(e)}finally{await t()}}async function lm(e){let t=await $(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=Ht(e.pmRoot),r=await Ge(n,De),o=Je(r);o.ok||zt(o.errors);let i=r.length===0?je:Ft(r),s=or({nowIso:$e(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await ir(n,s),{entry:s,historyPath:n}}finally{await t()}}async function Li(e,t){if(t===e.raw)return!1;let n=t===null?null:JSON.parse(t),r=JSON.parse(e.raw);await Le(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await ji({pmRoot:e.pmRoot,documentPath:Re.relative(e.pmRoot,e.filePath).replaceAll("\\","/"),before:n,after:r,op:e.op,idempotencyKey:e.idempotencyKey,author:e.author,lockTtlSeconds:e.lockTtlSeconds,lockWaitMs:e.lockWaitMs,message:e.message})}catch(o){throw t===null?await cl.rm(e.filePath,{force:!0}):await Le(e.filePath,t),o}return!0}async function Hi(e){let{documentPath:t}=Pi(e.pmRoot,e.filePath),n=await $(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let r=await be(e.filePath);if(e.dryRun===!0||e.idempotencyKey!==void 0){let i=await Ge(Ht(e.pmRoot),De),s=Je(i);s.ok||zt(s.errors);let a=dr(i.length===0?je:Ft(i))[t];if(a!==void 0&&A(a)!==A(r===null?null:JSON.parse(r)))throw new b(`Workspace history state for "${t}" changed outside the audited mutation path.`,E.CONFLICT,{code:"workspace_history_state_conflict"});if(e.idempotencyKey!==void 0&&i.some(d=>d.op===`${e.op}:${e.idempotencyKey}`))return{changed:!1,result:void 0,replayed:!0}}let o=await e.mutate(r);return JSON.parse(o.raw),e.dryRun===!0?{changed:r!==o.raw,result:o.result}:{changed:await Li({...e,raw:o.raw},r),result:o.result}}finally{await n()}}async function um(e){let t=await $(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Li(e,await be(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]="a0ca9902-540c-50fe-a4e2-9c234c4a01f3")}catch{}})();function $t(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function lr(e,t,n,r=[]){if(z(e,t)&&(r.length>0||$t(n)))return n;if(z(e,n)||z(t,n))return t;if((e===void 0||$t(e))&&$t(t)&&$t(n)){let o=e??{},i=new Set([...Object.keys(o),...Object.keys(t),...Object.keys(n)]);return Object.fromEntries([...i].flatMap(s=>{let a=lr(Object.hasOwn(o,s)?o[s]:void 0,Object.hasOwn(t,s)?t[s]:void 0,Object.hasOwn(n,s)?n[s]:void 0,[...r,s]);return a===void 0?[]:[[s,a]]}))}throw new b(`Settings changed concurrently at ${r.join(".")||"<root>"}; read the latest settings and reapply the intended change.`,E.CONFLICT,{reason:"stale_settings_snapshot",required:"Read a fresh settings snapshot and reapply the intended change.",why:"Another writer changed the same setting after this snapshot was read.",examples:["pm config project export --json"],nextSteps:["Read the current settings, then retry the original config operation."]})}(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]="de43e8e6-d7ef-53cc-94b0-ccdf1c4f94a3")}catch{}})();var ll={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},Fi=120;function ur(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function $i(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var ul=$i(ll),zi=new WeakMap;function _l(e){let t=zi.get(e);if(t)return t;let n=$i(e);return zi.set(e,n),n}function ym(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return Fi;if(t){let o=_l(t).get(n);if(ur(o))return Math.floor(o)}let r=ul.get(n);return ur(r)?Math.floor(r):Fi}function _r(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||!ur(r)||(t[o]=Math.floor(r))}return t}import{stat as fl}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]="78c79deb-5cf0-54fe-b98c-a0d5b3671ab2")}catch{}})();var Mt=new Map;function Mi(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function ml(e){try{let t=await fl(e);return{path:e,mtime_ms:t.mtimeMs,size:t.size}}catch{return{path:e,mtime_ms:null,size:null}}}async function te(e){let t=Mi(e),n=await Promise.all(t.map(r=>ml(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function Ye(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 Vi(e){return Mt.get(e)}function Vt(e,t){let n=Mi(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));Mt.set(e,{tracked_paths:n,signatures:r,value:t.value})}function ge(e){if(e){Mt.delete(e);return}Mt.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]="f9ff37ec-3a6f-5496-b59d-cdf2cce3a63a")}catch{}})();var hr=new pl;async function Fm(e,t,n=()=>!0){let r=new Set([Ki.resolve(e)]);try{r.add(await Ji(e))}catch{}return hr.run([...hr.getStore()??[],[r,n]],t)}function yl(e){let t=Ki.resolve(e);return hr.getStore()?.some(([n,r])=>n.has(t)&&r())??!1}var gl="settings:write",Yi=Symbol("pm.settings.persist_source"),Xi=Symbol("pm.settings.fallback_origin"),Zi=Symbol("pm.settings.fallback_baseline"),vl=128,bl=new Set(["off","advisory","strict"]);function Ui(e){return structuredClone(Fr[e])}function wl(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:h.governance.preset}function Wi(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 El(e){return e.preset==="custom"?Wi({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):Wi({preset:e.preset},e)}function kl(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),bl.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 Qi(e){let t=e.governance??{},n=wl(t.preset),r=kl(t);if(n==="custom"){let s=Ui("default"),a=r.require_close_reason??s.require_close_reason;return{preset:n,ownership_enforcement:t.ownership_enforcement??s.ownership_enforcement,create_mode_default:t.create_mode_default??s.create_mode_default,close_validation_default:t.close_validation_default??s.close_validation_default,parent_reference:t.parent_reference??s.parent_reference,metadata_profile:t.metadata_profile??s.metadata_profile,force_required_for_stale_lock:t.force_required_for_stale_lock??s.force_required_for_stale_lock,...r,require_close_reason:a,duplicate_detection_mode:r.duplicate_detection_mode??s.duplicate_detection_mode,duplicate_detection_threshold:r.duplicate_detection_threshold??s.duplicate_detection_threshold,duplicate_detection_limit:r.duplicate_detection_limit??s.duplicate_detection_limit}}let o=Ui(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function vr(){return structuredClone(h)}function es(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:h.search.mutation_refresh_policy}function ts(e){return e==="auto"||e==="keyword"||e==="semantic"||e==="hybrid"?e:"auto"}function ns(e){return typeof e=="boolean"?e:h.search.query_expansion.enabled}function rs(e){return typeof e!="string"?h.search.query_expansion.provider:e.trim()}function os(e){return typeof e=="boolean"?e:h.search.rerank.enabled}function is(e){return typeof e!="string"?h.search.rerank.model:e.trim()}function ss(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:h.search.rerank.top_k}function as(e){if(typeof e!="string")return h.vector_store.collection_name;let t=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,vl);return t.length>0?t:h.vector_store.collection_name}function fr(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function cs(e,t){let n=e.schema,r=fr(n?.statuses),o=fr(n?.fields),i=fr(n?.type_workflows);return{persisted_settings:structuredClone(e),source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:Pe(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:Pe(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 br(e,t){Object.defineProperty(e,Yi,{value:t,writable:!0,configurable:!0,enumerable:!1})}function ds(e){let t=e[Yi];if(!(!t||typeof t!="object"))return t}function Ut(e){let t=structuredClone(e.settings),n=ds(e.settings);n&&br(t,n);let r=wr(e.settings);return r!==void 0&&ls(t,r),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function Sl(e,t,n){let r=Fe(t);return[n,ze(e,r.files.types,He.types),ze(e,r.files.statuses,He.statuses),ze(e,r.files.fields,He.fields),ze(e,r.files.workflows,He.workflows)]}async function Il(e,t,n){let r=await te(t);Vt(e,{tracked_paths:t,signatures:r,value:Ut(n)})}async function Ol(e,t,n){try{await Il(e,t,n)}catch{ge(e)}}function qi(e,t){return e.find(n=>n.path===t)}function Tl(e,t,n){for(let r of n){let o=qi(e,r),i=qi(t,r);if(!o||!i||!Ye([o],[i]))return!1}return!0}async function mr(e,t,n,r,o){try{let i=await te(t);if(!Tl(r,i,o)){ge(e);return}Vt(e,{tracked_paths:t,signatures:i,value:Ut(n)})}catch{ge(e)}}function Al(e,t){let n=Fe(e.schema),r=Pe(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=z(r,t.runtime_item_type_definitions),s=z(n.statuses,t.runtime_schema_statuses),a=z(n.fields,t.runtime_schema_fields),d=z(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?Pe(t.source_item_type_definitions):[]:r,schema_statuses:s?t.has_source_schema_statuses?structuredClone(t.source_schema_statuses):[]:n.statuses,schema_fields:a?t.has_source_schema_fields?structuredClone(t.source_schema_fields):[]:n.fields,schema_type_workflows:d?t.has_source_schema_type_workflows?structuredClone(t.source_schema_type_workflows):void 0:n.type_workflows}}function ls(e,t){Object.defineProperty(e,Xi,{value:t,writable:!0,configurable:!0,enumerable:!1})}function zm(e){return wr(e)!==void 0}function wr(e){let t=e[Xi];return typeof t=="string"?t:void 0}function xl(e){return e[Zi]}function Cl(e,t){Object.defineProperty(e,Zi,{value:t,writable:!0,configurable:!0,enumerable:!1})}function U(e){let t=vr();return e!==void 0&&ls(t,e),{settings:t,metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function us(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function yr(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function _s(e){let t=h.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:yr(e?.last_checked_files??t.last_checked_files)}}function F(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function Nl(e){return e==="off"||e==="warn"||e==="enforce"?e:h.extensions.policy.mode}function Rl(e){return e==="off"||e==="warn"||e==="enforce"?e:h.extensions.policy.trust_mode}function fs(e){return e==="none"||e==="restricted"||e==="strict"?e:h.extensions.policy.default_sandbox_profile}function Dl(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=F(e.allowed_capabilities),o=F(e.blocked_capabilities),i=F(e.allowed_surfaces),s=F(e.blocked_surfaces),a=F(e.allowed_commands),d=F(e.blocked_commands),l=F(e.allowed_actions),_=F(e.blocked_actions),f=F(e.allowed_services),w=F(e.blocked_services);return r.length>0&&(n.allowed_capabilities=r),o.length>0&&(n.blocked_capabilities=o),i.length>0&&(n.allowed_surfaces=i),s.length>0&&(n.blocked_surfaces=s),a.length>0&&(n.allowed_commands=a),d.length>0&&(n.blocked_commands=d),l.length>0&&(n.allowed_actions=l),_.length>0&&(n.blocked_actions=_),f.length>0&&(n.allowed_services=f),w.length>0&&(n.blocked_services=w),n}function Pl(e){let t=new Map;for(let n of e??[]){let r=Dl(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function pr(e){return e==="block"||e==="warn"?e:void 0}function jl(e){if(typeof e=="string")return pr(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=pr(e.global),n=pr(e.project);return t===void 0&&n===void 0?void 0:{...t!==void 0?{global:t}:{},...n!==void 0?{project:n}:{}}}}function P(e,t){return F(e?.[t]??h.extensions.policy[t])}function ms(e){let t=jl(e?.pm_max_version_exceeded_mode);return{mode:Nl(e?.mode),trust_mode:Rl(e?.trust_mode),...t!==void 0?{pm_max_version_exceeded_mode:t}:{},require_provenance:e?.require_provenance===!0,trusted_extensions:P(e,"trusted_extensions"),default_sandbox_profile:fs(e?.default_sandbox_profile),allowed_extensions:P(e,"allowed_extensions"),blocked_extensions:P(e,"blocked_extensions"),allowed_capabilities:P(e,"allowed_capabilities"),blocked_capabilities:P(e,"blocked_capabilities"),allowed_surfaces:P(e,"allowed_surfaces"),blocked_surfaces:P(e,"blocked_surfaces"),allowed_commands:P(e,"allowed_commands"),blocked_commands:P(e,"blocked_commands"),allowed_actions:P(e,"allowed_actions"),blocked_actions:P(e,"blocked_actions"),allowed_services:P(e,"allowed_services"),blocked_services:P(e,"blocked_services"),extension_overrides:Pl(e?.extension_overrides??h.extensions.policy.extension_overrides)}}function ps(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase().replaceAll("-","_")))].filter(t=>t.length>0).sort((t,n)=>t.localeCompare(n)).filter(t=>["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"].includes(t))}function ne(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function R(e,t){return e===void 0?t:e}function j(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function gr(e){return Array.isArray(e)?e:[]}function Ll(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:ps(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:ne(e.validation?.lifecycle_stale_blocker_reason_patterns??t.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:ne(e.validation?.lifecycle_closure_like_blocked_reason_patterns??t.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:ne(e.validation?.lifecycle_closure_like_resolution_patterns??t.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:ne(e.validation?.lifecycle_closure_like_actual_result_patterns??t.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:_r(e.validation?.estimate_defaults_by_type)}}function Hl(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 Fl(e,t){return{...t.search,...e.search,default_mode:ts(e.search?.default_mode),mutation_refresh_policy:es(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:ns(e.search?.query_expansion?.enabled),provider:rs(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:os(e.search?.rerank?.enabled),model:is(e.search?.rerank?.model),top_k:ss(e.search?.rerank?.top_k)}}}function zl(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:as(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function $l(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function Ml(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,next_ranking_policy:e.context?.next_ranking_policy??t.context.next_ranking_policy,sections:{...t.context.sections,...e.context?.sections}}}function Vl(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function Pe(e){let t=(e??[]).map(r=>Ur(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 Wt(e){let t=vr(),n=Qi({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:$l(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:Ll(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,allow_untrusted_linked_tests:e.testing?.allow_untrusted_linked_tests??t.testing.allow_untrusted_linked_tests},telemetry:Hl(e,t),agent_guidance:_s(e.agent_guidance??t.agent_guidance),item_types:{definitions:Pe(e.item_types?.definitions)},schema:Fe(e.schema??t.schema),context:Ml(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:ms(e.extensions.policy??t.extensions.policy)},search:Fl(e,t),providers:Vl(e,t),vector_store:zl(e,t)}}function Ul(e){e.agent_identity=g(e.agent_identity,["probes_enabled","identity_vocabulary","harness_signals"]);let t=e.agent_identity;Object.hasOwn(t,"identity_vocabulary")&&(t.identity_vocabulary=g(j(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=gr(e.agent_identity.harness_signals).map(n=>g(j(n),["harness","environment_keys","model_environment_keys","session_environment_keys","provenance_environment_keys","provenance_resolvers","provenance_unavailable_dimensions","argv_markers","client_names"])),e.locks=g(e.locks,["ttl_seconds","wait_ms"]),e.ids=g(e.ids,["token_length"]),e.mutation_guard=g(e.mutation_guard,["require_attributed_author","secret_guard","stale_in_progress_hours"]),e.checkpoints=g(e.checkpoints,["retention_days"]),e.output=g(e.output,["default_format"]),e.ux=g(e.ux,["deprecation_hints"]),e.history=g(e.history,["missing_stream","compact_policy"]),e.validation=g(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=g(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=g(e.workflow,["definition_of_done"]),e.testing=g(e.testing,["record_results_to_items","allow_untrusted_linked_tests"]),e.telemetry=g(e.telemetry,["enabled","first_run_prompt_completed","capture_level","endpoint","installation_id","retention_days"]),e.agent_guidance=g(e.agent_guidance,["prompt_completed","declined","declined_at","template_version","last_checked_files"]),e.item_types=g(e.item_types,["definitions"]),e.schema=g(e.schema,["version","files","statuses","fields","workflow","type_workflows","unknown_field_policy"]),e.schema.files=g(j(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=g(j(e.schema.workflow),["draft_status","open_status","in_progress_status","blocked_status","close_status","canceled_status"]),e.context=g(e.context,["default_depth","activity_limit","stale_threshold_days","next_ranking_policy","sections"]),e.context.sections=g(j(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=g(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=g(j(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=gr(e.extensions.policy.extension_overrides).map(n=>g(j(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=g(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","default_mode","mutation_refresh_policy","query_expansion","rerank"]),e.search.query_expansion=g(j(e.search.query_expansion),["enabled","provider"]),e.search.rerank=g(j(e.search.rerank),["enabled","model","top_k"]),e.providers=g(e.providers,["openai","ollama"]),e.providers.openai=g(j(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=g(j(e.providers.ollama),["base_url","model"]),e.vector_store=g(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=g(j(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=g(j(e.vector_store.lancedb),["path"])}function Wl(e){return{...e,locks:R(e.locks,h.locks),ids:R(e.ids,h.ids),agent_identity:R(e.agent_identity,h.agent_identity),mutation_guard:R(e.mutation_guard,h.mutation_guard),checkpoints:R(e.checkpoints,h.checkpoints),output:R(e.output,h.output),ux:R(e.ux,h.ux),history:R(e.history,h.history),validation:R(e.validation,h.validation),workflow:R(e.workflow,h.workflow),testing:R(e.testing,h.testing),telemetry:R(e.telemetry,h.telemetry),agent_guidance:R(e.agent_guidance,h.agent_guidance),item_types:R(e.item_types,h.item_types),schema:R(e.schema,h.schema),context:R(e.context,h.context),extensions:R(e.extensions,h.extensions),search:R(e.search,h.search),providers:R(e.providers,h.providers),vector_store:R(e.vector_store,h.vector_store)}}function ql(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:ps(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:ne(e.validation?.lifecycle_stale_blocker_reason_patterns??h.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:ne(e.validation?.lifecycle_closure_like_blocked_reason_patterns??h.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:ne(e.validation?.lifecycle_closure_like_resolution_patterns??h.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:ne(e.validation?.lifecycle_closure_like_actual_result_patterns??h.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:_r(e.validation?.estimate_defaults_by_type)}}function Gl(e){return{...h.search,...e.search,default_mode:ts(e.search?.default_mode),mutation_refresh_policy:es(e.search?.mutation_refresh_policy),query_expansion:{...h.search.query_expansion,...e.search?.query_expansion,enabled:ns(e.search?.query_expansion?.enabled),provider:rs(e.search?.query_expansion?.provider)},rerank:{...h.search.rerank,...e.search?.rerank,enabled:os(e.search?.rerank?.enabled),model:is(e.search?.rerank?.model),top_k:ss(e.search?.rerank?.top_k)}}}function Bl(e){return{default_depth:e.context?.default_depth??h.context.default_depth,activity_limit:e.context?.activity_limit??h.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??h.context.stale_threshold_days,next_ranking_policy:e.context?.next_ranking_policy??h.context.next_ranking_policy,sections:{...h.context.sections,...e.context?.sections}}}function Jl(e){return{...e.vector_store,adapter:e.vector_store?.adapter??h.vector_store.adapter,collection_name:as(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function Kl(e,t,n,r){return{...e,item_format:"toon",validation:ql(e,t),governance:t,agent_guidance:_s(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:Gl(e),context:Bl(e),extensions:{enabled:yr(e.extensions?.enabled),disabled:yr(e.extensions?.disabled),policy:ms(e.extensions?.policy)},vector_store:Jl(e)}}function hs(e,t){for(let n of Object.keys(t)){let r=Reflect.get(t,n),o=e[n];typeof r=="object"&&r!==null&&!Array.isArray(r)&&typeof o=="object"&&o!==null&&!Array.isArray(o)?hs(o,r):e[n]=structuredClone(r)}}function Er(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(!z(i,s)){if(s===void 0){delete e[o];continue}if(typeof i=="object"&&i!==null&&!Array.isArray(i)&&typeof s=="object"&&s!==null&&!Array.isArray(s)){let a=e[o],d=typeof a=="object"&&a!==null&&!Array.isArray(a)?a:{};Er(d,i,s),Object.keys(d).length>0?e[o]=d:delete e[o];continue}e[o]=structuredClone(s)}}}var qt=["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 Gi(e,t){let n=Wl(e),r=Qi(n),o=Fe(n.schema),i=Al(n,t),s=Kl(n,r,o,i),a=g({...s,governance:El(r)},qt);return Ul(a),a}function ys(e,t={}){let n=t.source===void 0?t.persist_source:cs(t.source.validated,Wt(t.source.validated)),r=Gi(e,n);if(n){let o=Wt(n.source_settings);o.item_types={definitions:structuredClone(n.runtime_item_type_definitions)},o.schema={...o.schema,statuses:structuredClone(n.runtime_schema_statuses),fields:structuredClone(n.runtime_schema_fields),type_workflows:structuredClone(n.runtime_schema_type_workflows)};let i=Gi(o,n);t.source!==void 0&&hs(i,t.source.validated);let s=structuredClone(t.source===void 0?n.source_settings:t.source.raw);return Er(s,i,r),`${JSON.stringify(g(s,qt),null,2)}
|
|
75
|
+
`}return`${JSON.stringify(r,null,2)}
|
|
76
|
+
`}async function Yl(e){let t;try{t=await Ji(e)}catch(a){if(W(a))return U();throw a}let n=we(t),r;try{r=await hl(n)}catch(a){if(W(a))return U();throw a}if(!r.isFile())throw Qt("settings.json");let o;try{o=await $r(n,Qt("settings.json"))}catch(a){if(W(a))return U();throw a}let i;try{i=JSON.parse(o)}catch{return U("settings_read_invalid_json")}let s=Lt(i);return s.success?{settings:Wt(s.data),metadata:{has_explicit_item_format:us(i)},warnings:s.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[]}:U("settings_read_invalid_schema")}async function gs(e){if(yl(e))return Yl(e);let t=we(e),n=[t];await it({path:t,scope:"project"});let r=Vi(e);if(r){let l=await te(r.tracked_paths);if(Ye(l,r.signatures))return Ut(r.value)}let o=await te([t]),i;try{i=await be(t)}catch{return U("settings_read_fs_error")}if(i===null){let l=U();return await mr(e,[t],l,o,[t]),l}let s=await te([t]);if(!Ye(o,s))return ge(e),gs(e);let a;try{a=JSON.parse(i)}catch{let l=U("settings_read_invalid_json");return await mr(e,[t],l,s,[t]),l}let d=Lt(a);if(!d.success){let l=U("settings_read_invalid_schema");return await mr(e,[t],l,s,[t]),l}try{let l=Wt(d.data),_=Sl(e,l.schema,t);n=_;let f=await te(_),w=await qr(e,l.schema),O=await te(_),S={...l,item_types:{definitions:Pe([...l.item_types.definitions,...gr(w.type_definitions_from_file)])},schema:w.schema};br(S,cs(d.data,S));let H={settings:S,metadata:{has_explicit_item_format:us(a)},warnings:[...d.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],...w.warnings]};return Ye(f,O)?Vt(e,{tracked_paths:_,signatures:O,value:Ut(H)}):ge(e),H}catch{let l=U("settings_read_merge_failed");return await Ol(e,n,l),l}}var Xl=/^[A-Za-z0-9_-]+$/u,Zl=new Set(["__proto__","constructor","prototype"]);function vs(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function Ql(e){for(let t of e)if(t.split(".").find(n=>!Xl.test(n)||Zl.has(n))!==void 0)throw new b(`Settings write assignedPaths entry "${t}" is not a dotted settings path.`,E.USAGE,{code:"settings_write_assigned_path_invalid",reason:"assigned_path_segment_invalid",field:t,why:"Assigned paths name settings keys; an empty, reserved or non-identifier segment cannot address one safely.",nextSteps:["Pass dotted settings keys such as context.next_ranking_policy in assignedPaths."]})}function bs(e,t){return vs(Object.hasOwn(e,t)?e[t]:void 0)}function Bi(e,t){let n=e;for(let r of t)if(n=bs(n,r),n===void 0)return;return n}function eu(e,t){let n=e;for(let r of t){let o=bs(n,r);o===void 0&&(o={},n[r]=o),n=o}return n}function tu(e,t,n){for(let r of n){let o=r.split("."),i=o.pop(),s=Bi(t,o);if(s===void 0)continue;if(Object.hasOwn(s,i)){eu(e,o)[i]=structuredClone(s[i]);continue}if(!Di.includes(o[0]??i))continue;let a=Bi(e,o);a!==void 0&&delete a[i]}}function nu(e,t,n,r,o){let i=o??JSON.parse(ys(vr())),s=structuredClone(vs(e)??{});Er(s,i,t),tu(s,t,r);let a=Lt(s);if(!a.success){let d=a.path;throw new b(`Existing settings.json fails validation at ${d}; the settings write was refused and nothing was changed.`,E.USAGE,{code:"settings_write_invalid_existing_schema",reason:"existing_settings_schema_invalid",field:d,original_code:n,why:"The stored settings could not be read, so writing would either keep an invalid document or replace intended project configuration with defaults.",nextSteps:[`Fix or remove ${d} in settings.json, then retry the original command.`,"A configurable setting can also be repaired explicitly, even to its default value, with pm config <scope> set <dotted.key> <value>.","Run pm health to confirm the settings warning has cleared."]})}return`${JSON.stringify(g(s,qt),null,2)}
|
|
77
|
+
`}function ru(e){try{return JSON.parse(e)}catch{throw new b("Existing settings.json is malformed; the settings write was refused.",E.USAGE,{code:"settings_write_invalid_existing_json",reason:"existing_settings_json_malformed",why:"Writing defaults over malformed settings could destroy intended project configuration.",nextSteps:["Repair the syntax in .agents/pm/settings.json, then retry the original command.","Run pm health to confirm the settings warning has cleared."]})}}async function $m(e){return(await gs(e)).settings}async function Mm(e,t,n=gl,r={}){let o=r.assignedPaths??[];Ql(o);let i=we(e),s=ds(t),a=s?void 0:wr(t),d=ys(t,{persist_source:s}),l=JSON.parse(d);try{await Hi({pmRoot:e,filePath:i,mutate:_=>{let f=_===null?null:ru(_);return a!==void 0&&_!==null?{raw:nu(f,l,a,o,xl(t)),result:void 0}:{raw:s?`${JSON.stringify(g(lr(s.persisted_settings,l,f),qt),null,2)}
|
|
78
|
+
`:d,result:void 0}},op:n,author:Vo(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),s?br(t,{...s,persisted_settings:structuredClone(l)}):a!==void 0&&Cl(t,structuredClone(l)),await Yr({path:i,scope:"project",op:n})}finally{ge(e)}}import ws from"node:fs";import Xe from"node:path";import{createRequire as ou}from"node:module";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="19d9b802-1efa-5716-8176-ecbf5b153ff0")}catch{}})();var Es="@unbrained/pm-cli";var Sr=/\b(\d{4})\.(\d{1,2})\.(\d{1,2})(?:-(\d+))?\b/u,Ir="2026.8.31";function Gt(e){let t=e.match(Sr);return t?[Number(t[1]),Number(t[2]),Number(t[3]),Number(t[4]??0)]:null}function Jt(e,t){let n=Gt(e),r=Gt(t);if(!n||!r)return null;for(let o=0;o<n.length;o+=1){let i=n[o]-r[o];if(i!==0)return Math.sign(i)}return 0}function kr(e){return Jt(e,Ir)!==-1?3:2}function Bt(e){try{let t=JSON.parse(ws.readFileSync(e,"utf8"));return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:null}catch{return null}}function iu(e){let t=[...e.matchAll(/(<=|<)\s*v?(\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?)/gu)].map(r=>({inclusive:r[1]==="<=",version:r[2]})),n=e.match(/\b\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?\s+-\s+v?(\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?)/u);return n?[...t,{inclusive:!0,version:n[1]}]:t}function su(e){let t=e.split("||").map(n=>iu(n));return{bounded:t.some(n=>n.length>0),compatible:t.some(n=>n.every(r=>{let o=Jt(Ir,r.version);return o!==null&&(r.inclusive?o!==1:o===-1)}))}}function ks(e){return["dependencies","devDependencies","optionalDependencies","peerDependencies"].flatMap(t=>{let n=e[t];if(typeof n!="object"||n===null)return[];let r=n[Es];return typeof r=="string"?[r.trim()]:[]})}function au(e){return ks(e).flatMap(t=>{let n=/^[<!]/u.test(t)?void 0:t.match(Sr)?.[0];if(!n)return[];let r=/^(?:=|v)?\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?$/u.test(t),o=su(t);return[{version:n,constraint:r?"exact":o.bounded?"range":"minimum",...r?{}:{declaration:t},history_epoch_compatible:r?Jt(n,Ir)!==-1:o.compatible}]})}function cu(e){let t=Bt(Xe.join(e,"package-lock.json"))?.packages;if(typeof t!="object"||t===null)return;let n=t["node_modules/@unbrained/pm-cli"];if(typeof n!="object"||n===null)return;let r=n.version;return typeof r=="string"?r:void 0}function du(e,t){try{let n=ws.readFileSync(Xe.join(e,t),"utf8").split(/\r?\n/u),r=n.findIndex(s=>s.includes(Es));if(r<0)return;let o=n[r].match(/^\s*/u)[0].length,i=[n[r]];for(let s=r+1;s<n.length;s+=1){let a=n[s],d=a.trim(),l=a.match(/^\s*/u)[0].length;if(d.length>0&&l<=o)break;i.push(a)}return i.join(`
|
|
79
|
+
`).match(/^\s*version(?::\s*|\s+)["']?(\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?)/mu)?.[1]??i[0].match(Sr)?.[0]}catch{return}}function lu(e){let t=[],n=Bt(Xe.join(e,"package.json"));n&&t.push(...au(n).map(i=>({...i,source:"package.json"})));let r=Bt(Xe.join(e,"node_modules","@unbrained","pm-cli","package.json"))?.version;typeof r=="string"&&Gt(r)&&t.push({version:r,source:"installed-package",constraint:"exact",history_epoch_compatible:kr(r)===3});let o=cu(e);o&&Gt(o)&&t.push({version:o,source:"package-lock.json",constraint:"exact",history_epoch_compatible:kr(o)===3});for(let i of["pnpm-lock.yaml","yarn.lock"]){let s=du(e,i);s&&t.push({version:s,source:i,constraint:"exact",history_epoch_compatible:kr(s)===3})}return t}function Jm(e,t){if(t<=1)return;let{minVersion:n,lt:r}=ou(import.meta.url)("semver"),o=ks(Bt(Xe.join(e,"package.json"))??{}).find(s=>{try{let a=n(s);return a!==null&&r(a,"2026.10.10")}catch{return!1}}),i=o===void 0?lu(e).find(s=>Jt(s.version,"2026.10.10")===-1):{version:o,source:"package.json"};if(i)throw new b(`The project selects pm ${i.version}, which cannot safely refuse item format ${t}.`,E.CONFLICT,{code:"project_runtime_item_format_incompatible",reason:i.source,required:"Upgrade project pins, installed SDKs, CI hosts and Git merge drivers before writing guarded item formats.",nextSteps:["Use a pm runtime supporting the required item format throughout the project; preserve original item and history bytes, and never re-anchor history to satisfy an older host."]})}import Tr from"node:fs/promises";import Kt 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]="658ab1c3-da92-5af6-a170-85ed7befaad6")}catch{}})();function re(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function Ss(e){let t=["--pm-path",e,"init","--defaults","--agent-guidance","skip"];return{suggested_retry:Zr(t),suggested_retry_args:t}}function Yt(e){return new b(`Tracker root is not a directory at ${e}.`,E.USAGE,{code:"tracker_root_not_directory",reason:"not_a_directory",resolved_path:e,nextSteps:["Pass a tracker directory, usually <workspace>/.agents/pm, rather than a file path."]})}function Or(e){return new b(`Tracker root is not readable at ${e}.`,E.GENERIC_FAILURE,{code:"tracker_root_unreadable",reason:"unreadable",resolved_path:e,nextSteps:["Grant read and directory-search permission to the tracker root, then retry."]})}async function uu(e){let t=Kt.resolve(e),n=Kt.parse(t).root,r=Kt.dirname(t);for(;r!==n;){let o;try{o=await Tr.stat(r)}catch(i){if(re(i,"ENOTDIR"))throw Yt(e);if(!re(i,"ENOENT"))throw i;r=Kt.dirname(r);continue}if(!o.isDirectory())throw Yt(e);return}}async function _u(e){let t;try{t=await Tr.stat(e)}catch(n){throw re(n,"ENOENT")?(await uu(e),new b(`Tracker is not initialized at ${e}. Tracker root does not exist. Run pm init first.`,E.NOT_FOUND,{code:"tracker_root_missing",reason:"missing",resolved_path:e,nextSteps:["Confirm the tracker root path or initialize it with the emitted retry."],recovery:Ss(e)})):re(n,"ENOTDIR")?Yt(e):re(n,"EACCES")||re(n,"EPERM")?Or(e):n}if(!t.isDirectory())throw Yt(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw Or(e);try{await(await Tr.opendir(e)).close()}catch(n){throw re(n,"EACCES")||re(n,"EPERM")?Or(e):n}}async function rp(e){if(await _u(e),!await zr(we(e)))throw new b(`Tracker is not initialized at ${e}. Run pm init first.`,E.NOT_FOUND,{code:"tracker_not_initialized",reason:"settings_missing",resolved_path:e,nextSteps:["Initialize the selected tracker root with the emitted retry."],recovery:Ss(e)})}export{mu as a,As as b,ro as c,se as d,K as e,Uo as f,so as g,Me as h,wu as i,Eu as j,nn as k,rn as l,Su as m,on as n,co as o,Fs as p,Iu as q,ct as r,$s as s,xu as t,dt as u,Ra as v,_t as w,Ju as x,Ku as y,Oe as z,ce as A,vn as B,Zu as C,Qu as D,En as E,Oo as F,Sn as G,c_ as H,d_ as I,l_ as J,u_ as K,__ as L,f_ as M,Dn as N,Pn as O,Po as P,k_ as Q,S_ as R,I_ as S,O_ as T,T_ as U,A_ as V,Fn as W,zo as X,x_ as Y,C_ as Z,N_ as _,Lc as $,R_ as aa,Vo as ba,gt as ca,Ge as da,xe as ea,Qo as fa,gd as ga,kd as ha,bf as ia,wf as ja,Nd as ka,Rt as la,_e as ma,Be as na,qf as oa,rr as pa,vt as qa,Go as ra,Gf as sa,Bo as ta,Bf as ua,or as va,ir as wa,zc as xa,bt as ya,X_ as za,zn as Aa,wt as Ba,Z_ as Ca,Q_ as Da,Ko as Ea,Et as Fa,kt as Ga,Je as Ha,Jc as Ia,ef as Ja,tf as Ka,De as La,Ht as Ma,cm as Na,dm as Oa,lm as Pa,Hi as Qa,um as Ra,Di as Sa,Lt as Ta,ym as Ua,ge as Va,Fm as Wa,yl as Xa,Qi as Ya,zm as Za,Wt as _a,ys as $a,gs as ab,$m as bb,Mm as cb,lu as db,Jm as eb,_u as fb,rp as gb};
|
|
80
|
+
//# sourceMappingURL=chunk-FUGYXUUL.js.map
|