@unbrained/pm-cli 2026.11.2 → 2026.11.3
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 +14 -0
- package/dist/cli/error-guidance.d.ts +9 -0
- package/dist/cli/error-guidance.js +4 -3
- package/dist/cli/main.js +1 -1
- package/dist/cli/runtime/field-route-retry.d.ts +15 -0
- package/dist/cli/runtime/field-route-retry.js +2 -0
- package/dist/cli-bundle/bundle-manifest.json +1 -1
- package/dist/cli-bundle/chunks/{chunk-533L6D2N.js → chunk-2CBHQXYJ.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-32BCU6HN.js +115 -0
- package/dist/cli-bundle/chunks/{chunk-HOGKWJU5.js → chunk-5IPXDZKU.js} +42 -42
- package/dist/cli-bundle/chunks/{chunk-JRXD7SIL.js → chunk-5JZMF4M5.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4HW253W2.js → chunk-7ZEFHFAU.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-QHHFXNSQ.js → chunk-B6UTLYLM.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-KJLGBLR3.js → chunk-DEJHTFEF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-EN27ZQSV.js → chunk-HBKD5HZB.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-VEOFWE32.js → chunk-JPKIUWLG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-DAZFCSDV.js → chunk-L6LCLC37.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-RGHLQGEX.js → chunk-MQJXZX3Q.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-NR4KABHC.js +31 -0
- package/dist/cli-bundle/chunks/{chunk-J3JM36EH.js → chunk-O4ZLEN4T.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4OELCF3O.js → chunk-PWD5RY2D.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-D52QQ7LP.js → chunk-RSAN2YUU.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ABFFRQRO.js → chunk-TZ3D3DPQ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-GK2CHAT3.js → chunk-UJMQP2HP.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3A4NVHYS.js → chunk-UYNMKUGA.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3ZQQVJT2.js → chunk-XRMYA4R7.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-NGRPD3ZO.js → chunk-Y7H55PCY.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-K46GDAKX.js → chunk-YWS4XV4I.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-ZNWDYDFF.js → chunk-ZOAJNPBL.js} +43 -43
- package/dist/cli-bundle/chunks/{indexed-receipt-blobs-IEJ2QOW3.js → indexed-receipt-blobs-I6RQGD6Y.js} +2 -2
- package/dist/cli-bundle/chunks/item-transaction-ZHLJTBD7.js +2 -0
- package/dist/cli-bundle/chunks/{mutation-admission-QUNQZCZ5.js → mutation-admission-ZQMRMGIB.js} +2 -2
- package/dist/cli-bundle/chunks/{register-list-query-NZTK3AXA.js → register-list-query-I6AZA3IX.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-2OFAMOVH.js → register-mutation-3DAXCLXR.js} +2 -2
- package/dist/cli-bundle/chunks/{register-operations-RFMM5KZ6.js → register-operations-G3QGGQ5Z.js} +2 -2
- package/dist/cli-bundle/chunks/{register-setup-6B6Q7M5L.js → register-setup-LDXHMNOT.js} +2 -2
- package/dist/cli-bundle/chunks/{settlement-hook-UTCEZBFT.js → settlement-hook-JHXLUBEN.js} +2 -2
- package/dist/cli-bundle/chunks/{stage-VLI4OBVX.js → stage-7H36OTDJ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-3XGKBVJ3.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-SGWYNU7T.js → chunk-4HY6EGPB.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-B6OOKKOX.js → chunk-D4XQOMG4.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{chunk-I4Z2SCV5.js → chunk-F3X6UWMI.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-QVFE5LIX.js → chunk-G6ERMFJ5.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-Q23K6WLV.js → chunk-HJ27QLZV.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-3UD6F2KQ.js → chunk-HOXIIZEO.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-HUXZCPWT.js +26 -0
- package/dist/cli-bundle/focused-chunks/{chunk-QNXXOFLQ.js → chunk-I5FODKYB.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-MQVBWFJF.js → chunk-IDAYTYNN.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-5UDDRPYR.js → chunk-IKXJ57XA.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-745IDMTD.js → chunk-LKN2WGGB.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-MOY6KZGJ.js +44 -0
- package/dist/cli-bundle/focused-chunks/{chunk-4UUE3YXZ.js → chunk-PWUTFKSI.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-PZRB7IXH.js +91 -0
- package/dist/cli-bundle/focused-chunks/chunk-RY4QEMAE.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-NJFMG3IK.js → chunk-TYHDZUL4.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-WSYPVBKS.js +80 -0
- package/dist/cli-bundle/focused-chunks/{chunk-HMXVTWIV.js → chunk-WXLG7HZ5.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-4NVPDZLX.js → chunk-WZDFCVLX.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-RUCG6UWN.js → chunk-YGO3FWA2.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-YVLAP3BL.js +23 -0
- package/dist/cli-bundle/focused-chunks/{chunk-PCCZ72C3.js → chunk-ZQRCVRGS.js} +52 -52
- package/dist/cli-bundle/focused-chunks/chunk-ZYXQACPB.js +2 -0
- package/dist/cli-bundle/focused-chunks/{indexed-receipt-blobs-FT3KF6VJ.js → indexed-receipt-blobs-7XGVHYAO.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{item-transaction-F4SN7TXJ.js → item-transaction-PZ2FQ6B2.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{mutation-admission-7R2FXJ5O.js → mutation-admission-XOOK6XFH.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{settlement-hook-KMIBD4F2.js → settlement-hook-H56537UV.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{stage-6B3O2GZ6.js → stage-4SQHVI3O.js} +2 -2
- package/dist/cli-bundle/main.js +30 -29
- 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 +44 -44
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +11 -11
- package/dist/core/extensions/extension-hook-runtime.js +1 -1
- package/dist/core/extensions/item-fields.d.ts +1 -1
- package/dist/core/extensions/item-fields.js +1 -1
- package/dist/core/schema/runtime-field-values.d.ts +30 -0
- package/dist/core/schema/runtime-field-values.js +1 -1
- package/dist/core/sentry/helpers.js +1 -1
- package/dist/core/sentry/instrument.js +1 -1
- package/dist/core/shared/error-details.d.ts +98 -0
- package/dist/core/shared/error-details.js +2 -0
- package/dist/core/shared/errors.d.ts +37 -0
- package/dist/core/shared/errors.js +1 -1
- package/dist/mcp/server.js +2 -2
- package/dist/sdk/errors.d.ts +6 -2
- package/dist/sdk/errors.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
- package/dist/sdk/index.d.ts +1 -1
- package/dist/sdk/index.js +1 -1
- package/dist/sdk/lifecycle/core-field-recovery.d.ts +26 -0
- package/dist/sdk/lifecycle/core-field-recovery.js +1 -1
- package/dist/sdk/lifecycle/create.js +1 -1
- package/dist/sdk/lifecycle/update.js +2 -2
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/runtime.d.ts +1 -1
- package/dist/sdk/runtime.js +1 -1
- package/dist/sdk/test/entry.d.ts +5 -0
- package/dist/sdk/test/entry.js +2 -2
- package/dist/sdk/test/execution.d.ts +1 -2
- package/dist/sdk/test/execution.js +2 -2
- package/dist/sdk/test/linked-command-detection.d.ts +10 -0
- package/dist/sdk/test/linked-command-detection.js +1 -1
- package/dist/sdk/test/update.d.ts +2 -0
- package/dist/sdk/test/update.js +1 -1
- package/docs/EXTENSIONS.md +2 -2
- package/docs/LINKED_TEST_EDITS.md +38 -5
- package/docs/SDK.md +75 -0
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +6 -3
- package/marketplace.json +1 -1
- package/package.json +1 -1
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-claude/package.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/pm-codex/package.json +1 -1
- package/plugins/pm-codex/plugin.json +1 -1
- package/runtime-dependencies.json +1 -1
- package/dist/cli-bundle/chunks/chunk-BFZUJ5QP.js +0 -115
- package/dist/cli-bundle/chunks/chunk-OJR2YGXF.js +0 -31
- package/dist/cli-bundle/chunks/item-transaction-JHPBH6N7.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-EJJWOFP5.js +0 -91
- package/dist/cli-bundle/focused-chunks/chunk-FUGYXUUL.js +0 -80
- package/dist/cli-bundle/focused-chunks/chunk-JLN5CFYM.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-K4FMZB4Y.js +0 -23
- package/dist/cli-bundle/focused-chunks/chunk-PF553UVP.js +0 -44
- package/dist/cli-bundle/focused-chunks/chunk-TGS5RXBY.js +0 -26
- package/dist/cli-bundle/focused-chunks/chunk-WD43E7RU.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-YM4AMP7H.js +0 -2
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import{c as He,e as Fe,f as ze,i as Gr,j as Br,k as Jr,l as Kr,m as Yr}from"./chunk-HJ27QLZV.js";import{h as ro}from"./chunk-4PW5XWVI.js";import{Ac as it,B as Fr,Ce as nn,Ea as qr,Ec as Zr,Fa as A,Ga as z,Ha as ot,Ia as g,Nc as Qr,Od as $e,Pd as q,Qd as st,Rd as Ee,Sd as G,Wd as eo,Xd as to,Zd as no,be as $,ea as Ur,i as Qe,j as Dr,ja as Wr,k as Pr,l as jr,m as Lr,q as et,r as tt,s as Hr,x as nt,y as rt,yc as Xr,z as en,za as we}from"./chunk-HUXZCPWT.js";import{A as b,C as $r,D as W,E as ie,F as be,G as Mr,H as tn,I as Le,J as Vr,m as J,u as zr,x as h,y as je,z as E}from"./chunk-G6ERMFJ5.js";import{createHash as Ds}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 bu=["sha256","sha512"],Ps="sha256",oo="sha256";function se(e){if(e===void 0)return Ps;if(e==="sha256"||e==="sha512")return e;throw new TypeError(`unsupported_history_hash_algorithm:${String(e)}`)}function K(e,t){return Ds(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]="6635e694-c788-5805-adb8-ed93cc931946")}catch{}})();var js=16;function at(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 Tu(e,t,n=new Set,r){if(co(e,t,r))return;let o=lo(e,t,n,r),i=ct(e);return[at(e.cli_flag),...i].find(s=>!o.has(s)&&ao(s,i,o))}function ao(e,t,n){for(let r of t){if(r===e)break;if(n.has(r))return!1}return!0}function co(e,t,n){return t.definitions.some(r=>r!==e&&r.metadata_key===e.metadata_key&&(n===void 0||r.commands.includes(n)))}function lo(e,t,n,r){return new Set([...n,...t.definitions.filter(o=>o!==e&&(r===void 0||o.commands.includes(r))).flatMap(o=>ct(o))])}function uo(e){return e.replace(/^-+/u,"").startsWith("no-")}function Ls(e){return e.startsWith("-")?e:`--${e}`}function Au(e,t,n,r){if(co(e,t,r))return;let o=lo(e,t,n.options,r),i=ct(e);return[e.cli_flag,...e.cli_aliases].find(s=>{let a=_o(s);return uo(s)||n.flags.has(Ls(s))||o.has(a)?!1:ao(a,i,o)})}function _o(e){return e.replace(/^-+/u,"").replace(/^no-/u,"").split("-").reduce((t,n)=>`${t}${n.charAt(0).toUpperCase()}${n.slice(1)}`)}function ct(e){return[...new Set([Yr(e),at(e.key),at(e.cli_flag),...e.cli_aliases.map(t=>at(t)),...[e.cli_flag,...e.cli_aliases].filter(t=>!uo(t)).map(t=>_o(t))])]}function fo(e,t){for(let n of ct(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function mo(e){return Array.isArray(e)?e.flatMap(t=>mo(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 io(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 so(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 Hs(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 Fs(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 zs(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(!Fs(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 $s(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=dt(i,t.items,`${n}[${o}]`,r+1);if(s)return s}}}function Ms(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=dt(s,a,`${n}.${i}`,r+1);if(d)return d}}function dt(e,t,n,r=0){if(r>js)return`${n} value schema exceeds maximum depth`;let o=zs(e,t,n);if(o)return o;let i=$s(e,t,n,r);if(i)return i;let s=Ms(e,t,n,r);if(s)return s;if(!t.one_of)return;let a=0;for(let d of t.one_of)if(dt(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=dt(t,e.value_schema,n);if(r)throw new b(r,E.USAGE);return t}function Vs(e,t,n,r){let o=r==="option"&&Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return ae(e,Hs(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 Vs(e,t,o,r);if(e.repeatable||e.type==="string_array"){let s=mo(t);return e.type==="number"?ae(e,s.map(a=>so(a,o)),o):e.type==="boolean"?ae(e,s.map(a=>io(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,so(i,o),o):e.type==="boolean"?ae(e,io(i,o),o):ae(e,typeof i=="string"?i:String(i),o)}function Us(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 xu(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=fo(e,i);if(s===void 0){Us(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 Cu(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=fo(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 rn=1,on=2;function Ru(e){return Math.max(sn(e),e.tests?.some(t=>t.updated_by!==void 0||t.updated_at!==void 0)?2:1)}function sn(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=1?t:1}function po(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=1))return e}function Ws(e,t=2,n=t){return e<n?"outdated":e>t?"ahead":"current"}function Du(e,t=2,n=t){let r=[],o=[];for(let i of e){let s=Ws(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 qs={"in-progress":"in_progress",cancelled:"canceled"};function lt(e,t){if(t){let o=Jr(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=qs[n]??n;if(Qe.includes(r))return r}function Gs(e,t){return lt(e,t)??e}function Hu(e,t){return t.terminal_statuses.has(Gs(e,t))}import{encode as Ys}from"@toon-format/toon";import{isDeepStrictEqual as ho}from"node:util";import{decode as Bs}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 an(e){return{value:Bs(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 Js=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function Ks(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(Js);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function ut(e){return Ks(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 un=new Set(["schema","tracker","auto","none"]),wo=new Set(["source","isolated","snapshot"]),Xs=new Set(["legacy","local_mutation","local_source_ref","acknowledged","invalid_provenance","foreign_source_ref"]),Zs=new Set(["passed","failed","stopped","canceled"]),Qs=new Set(Fr);function Ie(e){return e.replaceAll("\\","/")}function Eo(e){for(let t of e)if(t!==0)return t;return 0}function ft(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var ko=["id","title","description","created_at","updated_at"],ea=new Set(J);function So(e){if(e?.schema)return{statusRegistry:Br(e.schema),fieldRegistry:Kr(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function ta(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 Io(e,t){if(!t||typeof e!="object"||e===null)return;let n=sn(e);if(!(n<=on))throw new b(`Stored item uses format version ${n}; this runtime supports up to ${on}. 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 Oo(e){let t=new Set(ea);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 cn(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 yo(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 _n(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 na(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 ra(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 oa(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 ia(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(", ")}`),yo(t,"interval","event.recurrence.interval"),yo(t,"count","event.recurrence.count"),_n(t,"until","event.recurrence.until"),na(t.by_weekday),ra(t.by_month_day),oa(t.exdates)}function sa(e){for(let r of ko)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>=rn,`pm_format_version must be an integer >= ${rn}`),t}function aa(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=lt(n,r),i=r?r.definitions.map(s=>s.id):[...Qe];y(o!==void 0,`status must be one of: ${i.join(", ")}`)}function ca(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 da(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 la(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 ua(e){e.regression!==void 0&&typeof e.regression!="boolean"&&Y("regression must be a boolean")}function _a(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 fa(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 ma(e){e.recurrence!==void 0&&(ia(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 pa(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")),fa(t),t.all_day!==void 0&&y(typeof t.all_day=="boolean","event.all_day must be a boolean"),ma(t)}function ha(e){let t=e.events;if(t!==void 0){y(Array.isArray(t),"events must be an array");for(let n of t)pa(n)}}function ya(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 ga(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 va(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){ta(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 ba(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Oo(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 fn(e,t){let n=qe(e,"item metadata must be an object"),r=sa(n);aa(n,t),ca(n),da(n),la(n),ua(n),cn(n,"created_at"),cn(n,"updated_at"),n.deadline!==void 0&&cn(n,"deadline"),_a(n),ha(n),_n(n,"closed_at","closed_at"),_n(n,"completed_at","completed_at"),ya(n),ga(n),va(n,r,t),ba(n,t)}function wa(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 dn(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 Ea(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 ka(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)=>en(s)-en(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 Sa(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(Ia).sort(Oa)}function Ia(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:ka(e.recurrence)};return ft(t),t}function Oa(e,t){return Eo([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 Ta(e){if(!(!e||e.length===0))return e.map(t=>({path:Ie(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function Aa(e){if(!e||e.length===0)return;let t=e.map(Ra).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)=>Eo([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 xa(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function ln(e){return typeof e=="string"?e:""}function Ca(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 _t(e,t){return typeof e=="string"&&t.has(e)?e:void 0}function Na(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:_t(n.requested_pm_context_mode,un),pm_context_mode:_t(n.pm_context_mode,un),workspace_context_mode:_t(n.workspace_context_mode,wo),trust_reason:_t(n.trust_reason,Xs)}));return t.length>0?t:void 0}function Ra(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=Zs.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:ln(e.started_at),finished_at:ln(e.finished_at),recorded_at:ln(e.recorded_at),attempt:xa(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:Ca(e.measurements),executions:Na(e.executions)};return ft(o),o}function Da(e){if(!(!Array.isArray(e)||e.length===0))return e.map(Fa)}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 yn(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function gn(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function go(e){if(!yn(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!gn(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Pa(e){if(!yn(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!gn(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function ja(e){let t=e?.trim().toLowerCase();if(!(!t||!un.has(t)))return t}function La(e){let t=e?.trim().toLowerCase();if(!(!t||!wo.has(t)))return t}function Ha(e,t){if(t===!0)return{provenance_invalid:!0};if(e===void 0)return{};if(!yn(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 Fa(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:ja(e.pm_context_mode),workspace_context_mode:La(e.workspace_context_mode),...Ha(e.provenance,e.provenance_invalid),updated_by:m(e.updated_by),updated_at:m(e.updated_at),env_set:go(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:go(e.assert_json_field_equals),assert_json_field_gte:Pa(e.assert_json_field_gte),note:e.note?.trim()||void 0};return ft(t),t}function za(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 $a(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 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=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 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=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 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.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 Wa(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&&Qs.has(o)?o:void 0,s=Ur(t.order)??Number.NaN,a=typeof t.created_at=="string"?t.created_at:"",d=typeof t.updated_at=="string"?t.updated_at:"";if(!n||!r||!i||!Number.isFinite(s)||!a||!d)return;let l={id:n,order:s,title:r,status:i,created_at:a,updated_at:d};return qa(l,t),l}function qa(e,t){let n=[["body","body"],["owner","owner"],["evidence","evidence"],["blocked_reason","blocked_reason"],["superseded_by","superseded_by"]];for(let[i,s]of n){let a=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",$a],["files","files",Ma],["tests","tests",Va],["docs","docs",Ua]];for(let[i,s,a]of o){let d=a(t[s]);d&&(e[i]=d)}}function Ga(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=Wa(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function Ba(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 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=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 Ka(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=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 Ya(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 Xa(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 Za(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 Qa(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))gn(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function ec(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 tc(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Oo(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 mt(e,t={}){let n=So(t),r=lt(e.status,n?.statusRegistry)??e.status,o=Array.from(new Set((Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string").map(s=>s.trim().toLowerCase()).filter(Boolean))).sort((s,a)=>s.localeCompare(a)),i={id:e.id,title:e.title,description:e.description,type:e.type,pm_format_version:po(e.pm_format_version),source_type:m(e.source_type),type_options:Ya(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:wa(e.dependencies),comments:dn(e.comments),notes:dn(e.notes),learnings:dn(e.learnings),files:Ta(e.files),tests:Da(e.tests),test_runs:Aa(e.test_runs),docs:za(e.docs),deadline:Ue(e.deadline),reminders:Ea(e.reminders),events:Sa(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:Xa(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:Za(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:Ga(e.plan_steps),plan_decisions:Ba(e.plan_decisions),plan_discoveries:Ja(e.plan_discoveries),plan_validation:Ka(e.plan_validation)};return Qa(i,e),ec(i,n),tc(i,n),ft(i),i}function To(e){return g(e,J)}function nc(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 rc(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=nc(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 oc(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 mn(e,t){return mt(e,{...t,onWarning:void 0})}function ic(e,t,n={}){let r=oc(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=rc(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 Io(s,n.requireSupportedFormat),fn(s,t),{metadata:mn(s,n),body:Se(i)}}function sc(e,t,n={}){let r;try{r=an(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(Io(Object.prototype.hasOwnProperty.call(o,"front_matter")?o.front_matter:o,n.requireSupportedFormat),!ko.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 fn(o.front_matter,t),y(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:mn(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"),fn(s,t),{metadata:mn(s,n),body:Se(typeof i=="string"?i:"")}}function ac(e,t={}){let n=mt(e.metadata,t),r=To(n),o=Se(e.body??"");hn(JSON.parse(JSON.stringify(r))),hn({body:o});let i=JSON.stringify(r,null,2);return o?`${i}
|
|
4
|
+
|
|
5
|
+
${o}
|
|
6
|
+
`:`${i}
|
|
7
|
+
`}var cc=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/u;function pn(e,t){return typeof e=="string"?vo(e,t):e===null||typeof e!="object"?null:Array.isArray(e)?bo(e.map((n,r)=>()=>pn(n,`${t}[${r}]`))):bo(Object.entries(e).map(([n,r])=>()=>{let o=t?`${t}.${n}`:n;return vo(n,`${o} (key)`)??pn(r,o)}))}function vo(e,t){let n=e.search(cc);return n<0?null:{path:t,index:n}}function bo(e){for(let t of e){let n=t();if(n!==null)return n}return null}function hn(e){let t=pn(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 dc(e,t={}){let n=mt(e.metadata,t),r=To(n),o=Se(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i));hn(s);let a=Ys(s),d;try{d=an(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(!ho(d,s)){let l=typeof d=="object"&&d!==null&&!Array.isArray(d)?d:{},_=Object.keys(s).find(f=>!ho(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 n_(e,t={}){let n=ut(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=So(t);return r==="toon"?sc(e,o,t):ic(e,o,t)}function r_(e,t={}){return(t.format??"toon")==="toon"?dc(e,t):ac(e,t)}function Oe(e,t={}){return{metadata:mt(e.metadata,t),body:Se(e.body??"")}}import{AsyncLocalStorage as lc}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 vn=new lc,Ao=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function pt(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=pt(n.id,128),o=pt(n.parent_id,128);if(r===void 0||!Ao.test(r)||o!==void 0&&!Ao.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=pt(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=pt(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function uc(e,t,n){let r=vn.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 bn(e,t){return uc(e.session_context,t,e.client_info?.episode)??{}}function s_(e,t){let n=vn.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 vn.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function a_(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 xo}from"node:crypto";import{existsSync as wn,promises as Co,readFileSync as _c}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 fc="session.json";function En(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function No(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=En(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=>En(d,128)),a=t.focused_item_id===void 0||En(t.focused_item_id,128);if([n,r,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function mc(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([n,r])=>{let o=No(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function kn(e){return M.join(qr(e),fc)}async function Ro(e){try{let t=await Co.readFile(kn(e),"utf8"),n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return{};let r=n,o=r.focused_item,i=mc(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 Sn(e,t){let n=await $(e,"session-state",h.locks.ttl_seconds,"session-state",!1,!0,h.locks.wait_ms);try{let r=await Ro(e);t(r);let o=kn(e);await Co.mkdir(M.dirname(o),{recursive:!0}),await Le(o,JSON.stringify(r))}finally{await n()}}function In(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${xo("sha256").update(e).digest("hex").slice(0,24)}`}function On(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function Tn(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)}+${xo("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function An(e,t,n){await Sn(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 h_(e){let t=In(e.principal);await An(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??Tn(r),confidence:o?"high":"medium",rule_version:"v2",evidence:On([...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 y_(e){let t=In(e.principal);await An(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??Tn(r),confidence:o?"high":"medium",evidence:On([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:r}})}async function g_(e){let t=In(e.principal);await An(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??Tn(r),confidence:o?"high":"medium",rule_version:"v2",evidence:On([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}function pc(e,t){let n=t.PM_PATH?.trim();if(n){let o=M.resolve(e,n);if(wn(M.join(o,"settings.json")))return o;let i=M.join(o,".agents","pm");if(wn(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(wn(M.join(i,"settings.json")))return i;let s=M.dirname(r);if(s===r)break;r=s}}function Do(e){if(!e.key)return;let t=pc(e.cwd,e.env);if(t)try{let n=JSON.parse(_c(kn(t),"utf8"));return No(n.semantic_attribution?.[e.key])}catch{return}}async function v_(e){return(await Ro(e)).focused_item}async function b_(e,t){await Sn(e,n=>{n.focused_item=t})}async function w_(e){await Sn(e,t=>{delete t.focused_item})}import{AsyncLocalStorage as Dn}from"node:async_hooks";import{createHash as hc}from"node:crypto";import D from"node:fs";import Ho 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 Pn=["model","effort","role","topic","version"],gt=new Dn,Fo=new Dn,vt=new Dn,jn=[{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:[]}],zo=Object.freeze({max_bytes:1048576,max_lines:4096,network_access:!1,subprocess_access:!1}),yc=Object.freeze({...zo,max_bytes:4194304}),xn=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function gc(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"?yc:zo,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 $o=Object.freeze(jn.filter(e=>e.harness!=="ci").map(gc).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(!xn.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])=>xn.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"&&xn.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 Mo=jn.map(Z);function vc(e,t){return JSON.stringify(e)===JSON.stringify(t)}function yt(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(n=>n.length>0).includes(t)||e.trim().toLowerCase()===t}function Ln(e=[]){let t=new Map(jn.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(),...Mo.filter(o=>o.harness==="ci"),...[...Ae.values()].map(o=>o.descriptor),...vt.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 Hn(e,t){for(let n of t??[]){let r=N(e[n]);if(r)return r.slice(0,256)}}function bc(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 Vo(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 wc=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 wc.has(n)?n:void 0}function Cn(e,t){return N(e?.[t])?.slice(0,256)}var Ec=1048576,Rn=4194304,ht=new Map,Po=Object.freeze({}),Nn=new Map,jo=Object.freeze({});function Lo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function kc(e){let t;try{t=JSON.parse(e)}catch{return jo}let n=Lo(t);if(!n)return jo;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=Lo(d);l&&r.push({value:l,depth:a.depth+1})}}return Object.freeze({model:i,version:s})}function Uo(e){try{return D.lstatSync(e).isFile()?"available":"missing"}catch(t){return W(t)?"missing":"failed"}}function Sc(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:Uo(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 Wo(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??Ho.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=Uo(d);if(l==="available")return{status:l,path:d};if(l==="failed")return{status:l}}return Sc(o,n)}function Ic(e,t,n){let r=Wo(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=Nn.get(s);if(a)return a[e];let d=Math.min(i.size,Ec),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=kc(L);if(O.model??=B.model,O.version??=B.version,O.model&&O.version)break}let H=Object.freeze(O);return Nn.clear(),Nn.set(s,H),H[e]}finally{D.closeSync(o)}}catch{return}}function Oc(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 Tc(e){if(e<=Rn)return[{offset:0,length:e}];let t=Math.floor(Rn/2);return[{offset:e-t,length:t},{offset:0,length:t}]}function Ac(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 xc(e,t){let n={},r=4096;for(let o of Tc(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(Ac(n,a),n.model&&n.effort)break;if(n.model&&n.effort||r<=0)break}return n}function Cc(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??Ho.homedir(),".codex","sessions"),i=`${o}\0${r}`,s=ht.get(i);if(s)return s[e];let a=Oc(o,r);if(!a){ht.set(i,Po);return}try{let d=D.openSync(a,"r");try{let l=D.fstatSync(d).size,_=xc(d,l);return ht.set(i,_),_[e]}finally{D.closeSync(d)}}catch{ht.set(i,Po);return}}function Nc(e,t,n,r){let o=vt.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 Ic(e,t,n);if(i==="codex_session_file")return Cc(e,t,n);if(i==="ai_agent_version"){let s=N(n.AI_AGENT);return!s||!r||!yt(s,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(s)?.[1]?.slice(0,256)}}function Rc(e,t,n,r){if(e==="ai_agent_version"){let o=N(r.AI_AGENT);return o!==void 0&&yt(o,t.harness)?"available":"unavailable"}return e==="codex_session_file"?N(r.CODEX_THREAD_ID)!==void 0?"available":"unavailable":Wo(n,r).status}function Fn(e){return e||(Fo.getStore()??{env:process.env,argv:process.argv})}function Dc(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 yt(l.slice(l.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||yt(r,a));return o||i||s}function Pc(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 jc(e){let t=e.find(([n])=>n!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function Lc(e,t,n,r,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...Pn,...Object.keys(r?.provenance_environment_keys??{})]),d,l,_;a.has(e)&&(d=de(e,N(n[s])?.slice(0,256)),_=de(e,Vo(t.argv??[],e)),l=de(e,bc(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=Cn(o?.provenance,e),S=de(e,Hn(n,f[e])),H=de(e,Cn(w,e)),L=de(e,Cn(t.provenance,e)),B=Nc(e,t,n,r);return jc([[d,"override"],[O,"session"],[_,"argv"],[S,"environment"],[H,"mcp_client"],[L,"host"],[B,"probe"]])??Pc(e,i)??(l?{value:l,source:"argv"}:void 0)}function Hc(e,t){if(!(!e||!t))return hc("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function Fc(e,t,n,r,o){let i=Object.keys(n?.provenance_environment_keys??{}),s=new Set([...Pn,...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=Lc(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 N_(e){let t=e.map(Z),n=new Map(Mo.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&&!vc(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 zc(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>Rn||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 R_(){let e=new Map($o.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 D_(e){let t=e.map(zc),n=new Map($o.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 P_(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 j_(e,t){return Fo.run(e,t)}function L_(e,t,n={}){let r=e.map(Z);return Ln(r),vt.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function zn(e){let t=Fn(e),n=t.env??{},r=Ln(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=>Dc(S,n,o,i)),a=bn(t,n),d=[Hn(n,s?.session_environment_keys),N(t.client_info?.session)?.slice(0,256)].find(S=>S!==void 0),l=Hc(s?.harness,d),_=Do({cwd:t.cwd??process.cwd(),env:n,key:l}),f=Fc(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 $c(e){return e==="unavailable"?{status:"unavailable",reason:"harness_unavailable"}:e==="missing"?{status:"unavailable",reason:"resolver_input_missing"}:{status:"failed",reason:"resolver_failed"}}function Mc(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=Rc(a,n,r,o);return{...$c(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 qo(e){let t=Fn(e),n=zn(t),r=Ln(t.descriptors).find(l=>l.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&vt.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(N(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=bn(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,Hn(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,Vo(t.argv??[],"role")].some(l=>{let _=N(l)?.slice(0,256);return _!==void 0&&de("role",_)===void 0}),d=Object.fromEntries(Pn.map(l=>[l,Mc(l,n,r,t,o,i,l==="role"&&a)]));return{...n,provenance_outcomes:d}}function H_(){return process.env.PM_AUTHOR}function F_(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function z_(e){return zn(e).harness}function Vc(e,t,n){let r=Fn(n),o=zn(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 Go(e){let t=gt.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function Bo(e){let t=gt.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 $_(e){let t=gt.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function Jo(e,t){let n=Vc(e,t);return gt.enterWith(n),n.author}import Uc 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 bt(e,t){let n=await Uc.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=ut(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 bt(e,t)).entries}import Di from"fast-json-patch";import xi from"node:fs/promises";import Fd 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 At,randomUUID as Jn}from"node:crypto";import{createRequire as dd}from"node:module";import{setImmediate as si}from"node:timers/promises";import Vn 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 Ko(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 qc={metadata:{},body:""};function Et(){return structuredClone(qc)}function sf(e,t=_e,n){return $n(e,t,n)[0]}function $n(e,t,n){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return Qo(kt(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 ei(e,t,n,r,o){let i=se(r.hash_algorithm),s=`${n}:${i}`,a=o?.before.get(s)??$n(e,n,i),d=$n(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 kt(e){return{metadata:e.metadata,body:e.body}}function af(e,t={}){return Oe(kt(e),t)}function cf(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 Yo(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function Gc(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function ti(e){return Array.isArray(e)?e.filter(Gc).map(t=>({...t,path:Yo(t.path),from:typeof t.from=="string"?Yo(t.from):void 0})):[]}function Bc(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 St(e,t){try{let n=ti(t),r=Vn.applyPatch(structuredClone(e),n,!0,!0).newDocument;return Bc(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 Jc(e){return[...new Set(e.map(t=>t.item_hash_version).filter(t=>t!==void 0&&Be.includes(t)))]}function ni(e){return e!==void 0&&!Be.includes(e)}function Kc(e,t){return e!==void 0?[e]:t===void 0?[...Be]:[t]}function ri(e){let t=wt(e);if(!t.ok)return t.error;let n=Mn(e);return n.ok?void 0:n.error}function Yc(e,t){let n=ri(e);if(n)return{ok:!1,error:n};let r=St(t,e.patch);return r.ok?{ok:!0,document:r.document}:{ok:!1,error:"patch_apply_failed"}}function Xc(e,t){let n=ri(e);if(n)throw new TypeError(`${n}:entry_${t+1}`)}function Zc(e,t,n,r,o){let i=[];for(let s of n){let a=ei(e,t,s,r,o);if(i.push({version:s,match:a}),a.pairIndex>=0)break}return i}function It(e){let t=Et(),n=new Map,r,o,i=Ko(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=ni(d);l&&i.push(`verify_failed:unsupported_item_hash_version:${String(d)}:entry_${s+1}`);let _=Yc(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=Kc(d,o),w={before:n,after:new Map},O=Zc(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=It(e);return{ok:t.ok,errors:t.errors}}function Xo(e,t){try{return{ok:!0,document:Vn.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function Qc(e,t){let n=structuredClone(e),r=0,o=0;for(let s of ti(t)){let a=Xo(n,s);if(a.ok){n=a.document;continue}if(s.op==="replace"){let d=Xo(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 ed(e){let t=Jc(e);if(t.length===1)return t[0];let n=It(e);return n.ok&&n.item_hash_version!==void 0?n.item_hash_version:t.length===0?1:_e}function td(e,t,n=t.patch){let r=St(e,n);if(r.ok)return{next:r.document,patch:n,repaired:A(n)!==A(t.patch),converted:0,skipped:0};let o=Qc(e,n);return{next:o.document,patch:Vn.compare(e,o.document),repaired:!0,converted:o.convertedReplaceToAdd,skipped:o.skippedOps}}function nd(e,t,n){return td(e,t,n.projectPatch?.(t,e))}function df(e,t=ed(e),n={}){let r=e.findIndex(O=>ni(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=Et(),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];Xc(S,O);let H=nd(o,S,n),{next:L,patch:B,repaired:Ze,converted:xr,skipped:Cr}=H;l+=xr,_+=Cr,d+=Number(Ze);let oe=ei(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(Rs=>Rs>=0):f=Math.min(f,oe.beforeHashes.length-1);let Nr=oe.beforeHashes[f],Rr=oe.afterHashes[f],Qt=Nr!==S.before_hash||Rr!==S.after_hash;Qt&&(a+=1);let ve={...S,patch:B,before_hash:Nr,after_hash:Rr};w?ve.item_hash_version=t:delete ve.item_hash_version;let Ns=ve.item_hash_version!==S.item_hash_version;(Qt||Ze||Ns)&&(ve=Zo(S,ve,{retainOriginalPatch:Ze})),i.push(ve),s.push({index:O+1,rehashed:Qt,patch_repaired:Ze,converted_replace_to_add:xr,skipped_ops:Cr}),o=L}return{entries:i,finalDocument:o,entriesRehashed:a,entriesPatchRepaired:d,convertedReplaceToAdd:l,skippedOps:_,details:s,itemHashVersion:t,explicitItemHashVersion:w}}function lf(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 rd=["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"],od=["append","cancel","claim","close","comment_add","create","learning_add","note_add","reopen"],id=new Set(rd),sd=new Set(od),ad=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 cd(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:id.has(e.op)?"maintenance":sd.has(e.op)||e.op!=="update"?"substantive":Array.isArray(e.patch)&&e.patch.length>0&&e.patch.every(t=>{let n=cd(t);return n!==void 0&&ad.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 oi(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 ii(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?oi(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 ld="history-event-index.sqlite",Kn="7",ud=8,ai=32,mi="history-event-index",_d="history-event-index:append:",fd=5e3,Yn=300,pi=3e4,md="history-event-index-invalidation",pd="history-event-index-invalidations",hd=Yn*2*1e3,Q=Symbol("history-index-changed"),fe=new Map;function pe(e){return C.join(e,"runtime",ld)}function hi(e){return C.join(e,"runtime","history-event-index-repair-deferred")}async function yi(e){try{let t=Number(await T.readFile(hi(e),"utf8")),n=Date.now()-t;return n>=0&&n<fd}catch{return!1}}async function ci(e){try{await T.writeFile(hi(e),`${Date.now()}
|
|
15
|
+
`)}catch{}}function Ke(e){return C.join(e,"runtime",pd)}async function xt(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 di(e){let t=await xt(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 to({pid:Number(r[1]),...o==="unknown"?{}:{process_start_identity:o}},Math.max(0,Date.now()-Number(r[3])),hd))return n}return await T.rm(C.join(Ke(e),n),{force:!0}),null}))).filter(n=>n!==null),committed:t.committed}}async function Gn(e,t,n=pi){let r=await $(e,md,Yn,`history-event-index-invalidation:${process.pid}`,!1,!1,n,n===0?{maxWaitMs:0}:void 0);try{return await t()}finally{await r()}}async function yd(e){let t=Ke(e);await T.mkdir(t,{recursive:!0});let n=Jn(),r=await eo(),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 gd(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}async function Ct(e){try{await T.rm(pe(e),{force:!0})}catch{}}async function Un(e,t){let n=Ke(e);await T.mkdir(n,{recursive:!0}),await T.writeFile(C.join(n,`${Jn()}${t?".contended":""}.committed`),`committed
|
|
17
|
+
`,{flag:"wx"}),t||await Ct(e)}function Nt(e){return e.committed.some(t=>t.endsWith(".contended.committed"))}function Bn(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 li(e,t){return t.pending.length>0||await no(e,mi,_d)}async function gi(e,t,n=pi,r="rebuild"){let o=await $(e,mi,Yn,`history-event-index:${r}:${process.pid}`,!1,!1,n,n===0?{maxWaitMs:0}:void 0);try{return await t()}finally{await o()}}async function vi(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(!Wn(w,t))continue;let S=await bd(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(Xn));let _={streams:s,ordered_events:a};if(fe.delete(e),fe.set(e,_),fe.size>ud){let f=fe.keys().next().value;fe.delete(f)}return{events:_.ordered_events.filter(f=>Wn(f.stream_id,t)).map(f=>vd(f,n)),stream_receipts:new Map([..._.streams].filter(([f])=>Wn(f,t)).map(([f,w])=>[f,{byte_size:w.byte_size,content_hash:w.signature}]))}}function vd(e,t){return t||e.recorded_entry===void 0?e:{stream_id:e.stream_id,stream_offset:e.stream_offset,entry:e.entry}}function Wn(e,t){return!t?.length||t.includes(e)}async function bd(e,t,n,r){if(!r&&n!==void 0&&n.byte_size===(await T.stat(e)).size){let o=At("sha256").update(await T.readFile(e)).digest("hex");if(n.signature===o)return}return wd(e,t,r)}async function wd(e,t,n){let r=await bt(e,t);if(n){let i=It(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:At("sha256").update(o).digest("hex"),byte_size:o.byteLength,events:bi(r.entries,t).map((i,s)=>({stream_id:t,stream_offset:s,entry:i,...n?{recorded_entry:r.entries[s]}:{}}))}}async function Ed(e,t){return bi((await bt(e,t)).entries,t)}function bi(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 qn;function Dt(){return qn!==void 0||(qn=ii(process.versions.node,dd(import.meta.url))),qn}function kd(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(Kn)}function wi(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 Ei(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 ki(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 Sd(e,t={}){let n=Dt();return n?gi(e,async()=>{let r;try{r=await Gn(e,()=>di(e),t.lockWaitMs)}catch(a){if(a instanceof b&&a.code==="lock_conflict")return!1;throw a}if(r.pending.length>0||Nt(r)&&Bn(e,n))return!1;let o=pe(e);await T.mkdir(C.dirname(o),{recursive:!0});let i=`${o}.${Jn()}.tmp`,s;try{s=new n(i),kd(s),s.exec("BEGIN IMMEDIATE");let a=await vi(e);await Id(s,a),s.exec("COMMIT"),s.close(),s=void 0;let d=await Gn(e,async()=>{let l=await di(e);return l.pending.length>0||!gd(r.committed,l.committed)||Nt(l)&&Bn(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 ci(e),await T.rm(i,{force:!0})),d}catch(a){throw await ci(e),s?.close(),await T.rm(i,{force:!0}),a}},t.lockWaitMs):!1}async function Id(e,t){let n=0;for(let r of t.events)wi(e,r),++n%500===0&&await si();for(let[r,o]of t.stream_receipts)ki(e,r,o),++n%500===0&&await si()}function Ot(e,t){return!t||t.length===0||t.includes(e)}function Xn(e,t){return e.entry.ts.localeCompare(t.entry.ts)||e.stream_id.localeCompare(t.stream_id)||e.stream_offset-t.stream_offset}function Rt(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():e}function Od(e,t){if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){if(Xn(e,{stream_id:t.after_stream_id,stream_offset:t.after_stream_offset,entry:{...e.entry,ts:Rt(t.after_ts)}})<=0)return!1}else if(t.since_ts!==void 0&&e.entry.ts<Rt(t.since_ts))return!1;return!0}function Td(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 Ad(e,t){return!Od(e,t)||!Ot(e.entry.op,t.ops)||!Ot(e.entry.author,t.authors)||!Ot(e.entry.agent_instance??"",t.agent_instances)||!Ot(e.stream_id,t.stream_ids)||!Td(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 xd(e,t){let n=Math.max(0,Math.floor(t.limit)),r=await vi(e,t.stream_ids,t.verify),o=r.events.filter(i=>Ad(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 Cd(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 Qn(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 Si(e,t,n){let r=C.dirname(C.dirname(e)),o=Dt(),i=!1,s=async()=>{await n(),i=!0};if(!o){await ui(r,s);return}try{await gi(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!==Kn)throw new TypeError("Unsupported history event index version");if(!await Cd(d,e))throw new TypeError("Stale history event index append base")}catch(_){if(d?.close(),me(_))throw _;await Un(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 Un(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(_);wi(d,{stream_id:_,stream_offset:Number(f.value),entry:t}),ki(d,_,await Qn(r,_)),d.exec("COMMIT"),d.close()}catch(_){if(d?.close(),!l)throw _;await Un(r,me(_))}},0,"append")}catch(a){if(i){await Ct(r);return}if(!Rd(a))throw a;await ui(r,s,me(a))}}async function ui(e,t,n=!1){let r=!1,o;try{await Gn(e,async()=>{let i=n||Nt(await xt(e)),s=await yd(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 Ct(e)})}catch(i){if(r){await Ct(e);try{await T.rm(o,{force:!0})}catch{}return}throw i}}async function Zn(e){await T.rm(pe(C.dirname(C.dirname(e))),{force:!0})}function Tt(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function Nd(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 Ii(e,t,n,r){let o;try{let i=await xt(e);if(await li(e,i))return Q;let s=await _i(e);if(i.committed.length>0)return Nt(i)&&Bn(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!==Kn)return null;let a=r(o);if(a===null)return null;let d=Dd(o,n),l=o;o=void 0,l.close();let _=await jd([...d.keys()],e,n),f=await Pd(d,e,_),w=await xt(e);return w.committed.length>0||await li(e,w)||s!==await _i(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 Rd(e){return me(e)||e instanceof b&&e.code==="lock_conflict"}function Dd(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 _i(e){let t=await T.stat(pe(e),{bigint:!0});return[t.dev,t.ino,t.size,t.mtimeNs,t.ctimeNs].join(":")}async function Af(e,t){if(t.verify)return{result:await xd(e,t),repair_needed:!1};let n=Dt();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=Rt(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(Rt(t.since_ts)));Tt(r,o,"op",t.ops),Tt(r,o,"author",t.authors),Nd(r,o,t.harnesses,t.harness_alias_authors),Tt(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);Tt(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s=await Ii(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(Ei);return l.includes(null)?null:{events:l,has_more:d.length>t.limit}});return{result:s===Q?null:s,repair_needed:s===null&&!await yi(e)}}function Oi(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||Xn(o,r)<0)&&(n[r.stream_id]=r)}return n}async function Qn(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:At("sha256").update(o).digest("hex")}}catch(n){if(ie(n))return{byte_size:0,content_hash:At("sha256").digest("hex")};throw n}}async function Pd(e,t,n){for(let r=0;r<n.length;r+=ai){let o=n.slice(r,r+ai),i=await Promise.all(o.map(s=>Qn(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 jd(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 fi(e,t,n,r){return e?Ii(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(Ei);if(d.includes(null))return null;i.push(...d)}return Oi(i,r)}):null}async function xf(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=Dt(),i=await fi(o,e,n,r);if(i!==null&&i!==Q)return i;if(o&&i!==Q&&!await yi(e))try{if(await Sd(e,{lockWaitMs:0})){let a=await fi(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 Ed(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})})})),Oi(s,r)}import er 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 Ld=Ce.join("runtime","history-drift-cache.json"),Ti={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 Ai(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function Hd(e){let t=Ce.join(e,Ld),n=!1,r="invalid_cache_path";try{n=(await er.stat(await er.realpath(e))).isDirectory()}catch(o){let i=Ai(o);r=i===void 0?"unknown":Ti[i]??"filesystem_error"}if(!n){nn(`[pm] warning: history_drift_cache_invalidation_failed:${r}
|
|
72
|
+
`);return}try{await er.rm(t,{force:!0})}catch(o){let i=Ai(o);if(ie(o))return;let s=i===void 0?"unknown":Ti[i]??"filesystem_error";nn(`[pm] warning: history_drift_cache_invalidation_failed:${s}
|
|
73
|
+
`)}}async function Pt(e){let t=Ce.dirname(Ce.resolve(e));Ce.basename(t)==="history"&&await Hd(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 zd={front_matter:{},body:""},_e=3,Be=[1,2,3],$d=1,Md=[1];function Pi(e){return K(A(e),e.hash_algorithm)}function Ne(e){return ot(A(e))}function Qf(e){return ot(A(e))}function or(e){let t={...e,record_hash_version:$d},{record_hash:n,...r}=t;return{...t,record_hash:Pi(r)}}function wt(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(!Md.includes(e.record_hash_version))return{ok:!1,error:"unsupported_record_hash_version"};let{record_hash:t,...n}=e;return Pi(n)===e.record_hash?{ok:!0,coverage:"record_and_item_state"}:{ok:!1,error:"record_hash_mismatch"}}function Vd(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 Zo(e,t,n={}){let r=wt(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=or({...t,...i?{reanchor_evidence:[...t.reanchor_evidence??[],Vd(e,n)]}:{}}),a=Mn(s);if(!a.ok)throw new TypeError(a.error);return s}function ji(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 Ud(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"&&ji(e.patch)}function Wd(e){let t=e.record_hash_version!==void 0,n=e.record_hash!==void 0;return t===n}function qd(e){return!he(e)||!Wd(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&&!ji(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||Ud(e.record)}function Gd(e){try{for(let t of e){if(!qd(t))return!1;se(t.hash_algorithm)}return!0}catch{return!1}}function Bd(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 Jd(e,t,n){if(t.patch&&Ne(t.patch)!==t.patch_hash)return{kind:"patch_hash_mismatch"};if(t.record)return Bd(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 Mn(e){let t=e.reanchor_evidence;if(t===void 0)return{ok:!0,coverage:"none"};if(!Array.isArray(t)||!Gd(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=Jd(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(!wt(i.entry).ok)return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};n=i.entry}return{ok:!0,coverage:"complete"}}function jt(e,t){return(e??"").localeCompare(t??"")}function Ci(e,t){return(e??0)-(t??0)}function ee(e,t,n){return JSON.stringify(e??n).localeCompare(JSON.stringify(t??n))}function Kd(e,t){return[e.scope.localeCompare(t.scope),jt(e.path,t.path),jt(e.command,t.command),Ci(e.timeout_seconds,t.timeout_seconds),jt(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,[]),Ci(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,{}),jt(e.note,t.note)].find(n=>n!==0)??0}function Yd(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function Xd(e,t){let n=Yd(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 Zd(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!Xd(r,o.path)?{...o,op:"add"}:o;n.push(i),r=Di.applyPatch(r,[i],!0,!0).newDocument}return n}function Lt(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(Kd)}:o;return{front_matter:g(i,J),body:r.body}}function Ni(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 em(e){return Li(e,_e)}function Li(e,t,n){if(!Be.some(r=>r===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return K(A(Lt(e,t)),n)}function Qo(e,t,n){let r=Li(e,t,n);return t===2?[r,K(A(Lt(e,t,!0)),n)]:[r]}function tm(){return ot(A(zd))}function ir(e){let t=ro(e.op),n=Lt(e.before,_e),r=Lt(e.after,_e),o=Ni(e.before),i=Ni(e.after),s=Di.compare(o,i),a=Zd(o,s),d=Bo(e.author),l=d.harness?Object.fromEntries(Object.entries(qo().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??oo,w={hash_algorithm:f,ts:e.nowIso,author:e.author,author_source:e.authorSource??Go(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 or({...w,event_class:xe(w)})}function he(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function tr(e){return new b(e,E.GENERIC_FAILURE,{code:"history_timestamp_invalid"})}function Hi(e){let t=e.ts.trim();if(t.length===0)return $e();if(!Ee(t))throw tr("History timestamp must be a valid RFC 3339 date-time with millisecond precision");if(t!==e.ts)throw tr("History timestamp must not contain surrounding whitespace");return e.ts}function Ri(e,t){let n=e.ts;if(typeof n=="string"&&n.trim().length>0){if(!Ee(n))throw tr("History timestamp must be a valid RFC 3339 date-time with millisecond precision");return e}return{...e,ts:t}}function nr(e,t){let n=Hi(t);if(typeof e=="string"){let r;try{r=JSON.parse(e)}catch{return e}return he(r)?JSON.stringify(Ri(r,n)):e}return he(e)?JSON.stringify(Ri(e,n)):JSON.stringify(e)}async function Qd(e,t,n){if(n===!1)return!0;if(typeof n=="string"){let s=nr(n,t);return await rr(e,s),await Pt(e),await Zn(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=nr(typeof r.line=="string"?r.line:r.entry??t,t);return await rr(o,i),await Pt(o),await Zn(o),!0}async function rr(e,t){let n;try{n=JSON.parse(t)}catch{n=null}if(!he(n)||n.op!=="create"){await Vr(e,t);return}await xi.mkdir(Fd.dirname(e),{recursive:!0});try{await xi.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 sr(e,t){let n=await Zr("history_append",{history_path:e,entry:t});if(n.handled&&await Qd(e,t,n.result))return;let r=t.ts.trim().length>0?t:{...t,ts:Hi(t)},o=or({...r,hash_algorithm:se(r.hash_algorithm),event_class:xe(r)});await Si(e,o,async()=>{await rr(e,nr(o,o))}),await Pt(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 cr(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 cr(String(o),s);r.push(s.value)}return{ok:!0,value:r}}}function dr(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 Ht(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 cr(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 cr(o,s);s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var el=v({key:u,values:p(u),required:c(k),aliases:c(p(u)),description:c(u)}),tl=v({command:I("create","update"),option:u,required:c(k),visible:c(k),enabled:c(k)}),nl=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(el)),command_option_policies:c(p(tl))}),rl=v({id:u,aliases:c(p(u)),roles:c(p(I(...Dr))),description:c(u),order:c(x())}),ol=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(...Pr)),commands:c(p(I(...jr))),repeatable:c(k),required:c(k),required_on_create:c(k),required_types:c(p(u)),allow_unset:c(k)}),il=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]}},sl=v({type:u,allowed_transitions:p(il)}),al=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(rl)),fields:c(p(ol)),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(sl)),unknown_field_policy:c(I(...Lr))})),cl=c(v({preset:c(I(...Hr)),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}))})),dl=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))}),ar=I("block","warn"),ll=e=>typeof e=="string"?ar(e):v({global:c(ar),project:c(ar)})(e),ul=c(v({mode:c(I("off","warn","enforce")),trust_mode:c(I("off","warn","enforce")),pm_max_version_exceeded_mode:c(ll),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(dl))})),ye=dr(128),_l=v({harness:dr(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(Ht(p(ye,64))),provenance_resolvers:c(Ht(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))}),Fi={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:Ht(dr(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:p(_l)})),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(Ht(x({int:!0,positive:!0})))})),governance:cl,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(nl)})),schema:al,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:ul}),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})})},fl=v(Fi),zi=Object.freeze(Object.keys(Fi));function Ft(e){let t=fl(e);return t.ok?{success:!0,data:t.value}:{success:!1,path:t.path.join(".")}}import{AsyncLocalStorage as wl}from"node:async_hooks";import{lstat as El,realpath as es}from"node:fs/promises";import ts from"node:path";import ml 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 zt(e){return Re.join(e,"history",`${De}.jsonl`)}function pl(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 $t(e,t=e.length){let n=Et();for(let r of e.slice(0,t))n=St(n,r.patch).document;return kt(n)}function lr(e){return"documents"in e.metadata&&typeof e.metadata.documents=="object"&&e.metadata.documents!==null&&!Array.isArray(e.metadata.documents)?e.metadata.documents:{}}function Mt(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 $i(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 hm(e){let t=await Ge(zt(e),De),n=Je(t);n.ok||Mt(n.errors);let r=lr(t.length===0?je:$t(t)),o=[],i=[],s=[],a=[];for(let d of Object.keys(r).sort()){let l;try{let _=$i(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 Mi(e){let t=zt(e.pmRoot),n=await Ge(t,De),r=Je(n);r.ok||Mt(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:$t(n),a=lr(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=pl({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),_=ir({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 sr(t,_),{entry:_,historyPath:t}}async function ym(e){let t=await $(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Mi(e)}finally{await t()}}async function gm(e){let t=await $(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=zt(e.pmRoot),r=await Ge(n,De),o=Je(r);o.ok||Mt(o.errors);let i=r.length===0?je:$t(r),s=ir({nowIso:$e(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await sr(n,s),{entry:s,historyPath:n}}finally{await t()}}async function Vi(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 Mi({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 ml.rm(e.filePath,{force:!0}):await Le(e.filePath,t),o}return!0}async function Ui(e){let{documentPath:t}=$i(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(zt(e.pmRoot),De),s=Je(i);s.ok||Mt(s.errors);let a=lr(i.length===0?je:$t(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 Vi({...e,raw:o.raw},r),result:o.result}}finally{await n()}}async function vm(e){let t=await $(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Vi(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 Vt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ur(e,t,n,r=[]){if(z(e,t)&&(r.length>0||Vt(n)))return n;if(z(e,n)||z(t,n))return t;if((e===void 0||Vt(e))&&Vt(t)&&Vt(n)){let o=e??{},i=new Set([...Object.keys(o),...Object.keys(t),...Object.keys(n)]);return Object.fromEntries([...i].flatMap(s=>{let a=ur(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 hl={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},Wi=120;function _r(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function Gi(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var yl=Gi(hl),qi=new WeakMap;function gl(e){let t=qi.get(e);if(t)return t;let n=Gi(e);return qi.set(e,n),n}function Im(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return Wi;if(t){let o=gl(t).get(n);if(_r(o))return Math.floor(o)}let r=yl.get(n);return _r(r)?Math.floor(r):Wi}function fr(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||!_r(r)||(t[o]=Math.floor(r))}return t}import{stat as vl}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 Ut=new Map;function Bi(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function bl(e){try{let t=await vl(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=Bi(e),n=await Promise.all(t.map(r=>bl(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 Ji(e){return Ut.get(e)}function Wt(e,t){let n=Bi(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));Ut.set(e,{tracked_paths:n,signatures:r,value:t.value})}function ge(e){if(e){Ut.delete(e);return}Ut.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 yr=new wl;async function Gm(e,t,n=()=>!0){let r=new Set([ts.resolve(e)]);try{r.add(await es(e))}catch{}return yr.run([...yr.getStore()??[],[r,n]],t)}function kl(e){let t=ts.resolve(e);return yr.getStore()?.some(([n,r])=>n.has(t)&&r())??!1}var Sl="settings:write",ns=Symbol("pm.settings.persist_source"),rs=Symbol("pm.settings.fallback_origin"),os=Symbol("pm.settings.fallback_baseline"),Il=128,Ol=new Set(["off","advisory","strict"]);function Ki(e){return structuredClone(zr[e])}function Tl(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:h.governance.preset}function Yi(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 Al(e){return e.preset==="custom"?Yi({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):Yi({preset:e.preset},e)}function xl(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),Ol.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 is(e){let t=e.governance??{},n=Tl(t.preset),r=xl(t);if(n==="custom"){let s=Ki("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=Ki(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function br(){return structuredClone(h)}function ss(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:h.search.mutation_refresh_policy}function as(e){return e==="auto"||e==="keyword"||e==="semantic"||e==="hybrid"?e:"auto"}function cs(e){return typeof e=="boolean"?e:h.search.query_expansion.enabled}function ds(e){return typeof e!="string"?h.search.query_expansion.provider:e.trim()}function ls(e){return typeof e=="boolean"?e:h.search.rerank.enabled}function us(e){return typeof e!="string"?h.search.rerank.model:e.trim()}function _s(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:h.search.rerank.top_k}function fs(e){if(typeof e!="string")return h.vector_store.collection_name;let t=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,Il);return t.length>0?t:h.vector_store.collection_name}function mr(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function ms(e,t){let n=e.schema,r=mr(n?.statuses),o=mr(n?.fields),i=mr(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 wr(e,t){Object.defineProperty(e,ns,{value:t,writable:!0,configurable:!0,enumerable:!1})}function ps(e){let t=e[ns];if(!(!t||typeof t!="object"))return t}function qt(e){let t=structuredClone(e.settings),n=ps(e.settings);n&&wr(t,n);let r=Er(e.settings);return r!==void 0&&hs(t,r),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function Cl(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 Nl(e,t,n){let r=await te(t);Wt(e,{tracked_paths:t,signatures:r,value:qt(n)})}async function Rl(e,t,n){try{await Nl(e,t,n)}catch{ge(e)}}function Xi(e,t){return e.find(n=>n.path===t)}function Dl(e,t,n){for(let r of n){let o=Xi(e,r),i=Xi(t,r);if(!o||!i||!Ye([o],[i]))return!1}return!0}async function pr(e,t,n,r,o){try{let i=await te(t);if(!Dl(r,i,o)){ge(e);return}Wt(e,{tracked_paths:t,signatures:i,value:qt(n)})}catch{ge(e)}}function Pl(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 hs(e,t){Object.defineProperty(e,rs,{value:t,writable:!0,configurable:!0,enumerable:!1})}function Bm(e){return Er(e)!==void 0}function Er(e){let t=e[rs];return typeof t=="string"?t:void 0}function jl(e){return e[os]}function Ll(e,t){Object.defineProperty(e,os,{value:t,writable:!0,configurable:!0,enumerable:!1})}function U(e){let t=br();return e!==void 0&&hs(t,e),{settings:t,metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function ys(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function gr(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function gs(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:gr(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 Hl(e){return e==="off"||e==="warn"||e==="enforce"?e:h.extensions.policy.mode}function Fl(e){return e==="off"||e==="warn"||e==="enforce"?e:h.extensions.policy.trust_mode}function vs(e){return e==="none"||e==="restricted"||e==="strict"?e:h.extensions.policy.default_sandbox_profile}function zl(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=vs(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 $l(e){let t=new Map;for(let n of e??[]){let r=zl(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function hr(e){return e==="block"||e==="warn"?e:void 0}function Ml(e){if(typeof e=="string")return hr(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=hr(e.global),n=hr(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 bs(e){let t=Ml(e?.pm_max_version_exceeded_mode);return{mode:Hl(e?.mode),trust_mode:Fl(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:vs(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:$l(e?.extension_overrides??h.extensions.policy.extension_overrides)}}function ws(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 vr(e){return Array.isArray(e)?e:[]}function Vl(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:ws(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:fr(e.validation?.estimate_defaults_by_type)}}function Ul(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 Wl(e,t){return{...t.search,...e.search,default_mode:as(e.search?.default_mode),mutation_refresh_policy:ss(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:cs(e.search?.query_expansion?.enabled),provider:ds(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:ls(e.search?.rerank?.enabled),model:us(e.search?.rerank?.model),top_k:_s(e.search?.rerank?.top_k)}}}function ql(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:fs(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function Gl(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function Bl(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 Jl(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=>Wr(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 Gt(e){let t=br(),n=is({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:Gl(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:Vl(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:Ul(e,t),agent_guidance:gs(e.agent_guidance??t.agent_guidance),item_types:{definitions:Pe(e.item_types?.definitions)},schema:Fe(e.schema??t.schema),context:Bl(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:bs(e.extensions.policy??t.extensions.policy)},search:Wl(e,t),providers:Jl(e,t),vector_store:ql(e,t)}}function Kl(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=vr(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=vr(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 Yl(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 Xl(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:ws(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:fr(e.validation?.estimate_defaults_by_type)}}function Zl(e){return{...h.search,...e.search,default_mode:as(e.search?.default_mode),mutation_refresh_policy:ss(e.search?.mutation_refresh_policy),query_expansion:{...h.search.query_expansion,...e.search?.query_expansion,enabled:cs(e.search?.query_expansion?.enabled),provider:ds(e.search?.query_expansion?.provider)},rerank:{...h.search.rerank,...e.search?.rerank,enabled:ls(e.search?.rerank?.enabled),model:us(e.search?.rerank?.model),top_k:_s(e.search?.rerank?.top_k)}}}function Ql(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 eu(e){return{...e.vector_store,adapter:e.vector_store?.adapter??h.vector_store.adapter,collection_name:fs(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function tu(e,t,n,r){return{...e,item_format:"toon",validation:Xl(e,t),governance:t,agent_guidance:gs(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:Zl(e),context:Ql(e),extensions:{enabled:gr(e.extensions?.enabled),disabled:gr(e.extensions?.disabled),policy:bs(e.extensions?.policy)},vector_store:eu(e)}}function Es(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)?Es(o,r):e[n]=structuredClone(r)}}function kr(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:{};kr(d,i,s),Object.keys(d).length>0?e[o]=d:delete e[o];continue}e[o]=structuredClone(s)}}}var Bt=["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 Zi(e,t){let n=Yl(e),r=is(n),o=Fe(n.schema),i=Pl(n,t),s=tu(n,r,o,i),a=g({...s,governance:Al(r)},Bt);return Kl(a),a}function ks(e,t={}){let n=t.source===void 0?t.persist_source:ms(t.source.validated,Gt(t.source.validated)),r=Zi(e,n);if(n){let o=Gt(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=Zi(o,n);t.source!==void 0&&Es(i,t.source.validated);let s=structuredClone(t.source===void 0?n.source_settings:t.source.raw);return kr(s,i,r),`${JSON.stringify(g(s,Bt),null,2)}
|
|
75
|
+
`}return`${JSON.stringify(r,null,2)}
|
|
76
|
+
`}async function nu(e){let t;try{t=await es(e)}catch(a){if(W(a))return U();throw a}let n=we(t),r;try{r=await El(n)}catch(a){if(W(a))return U();throw a}if(!r.isFile())throw tn("settings.json");let o;try{o=await Mr(n,tn("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=Ft(i);return s.success?{settings:Gt(s.data),metadata:{has_explicit_item_format:ys(i)},warnings:s.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[]}:U("settings_read_invalid_schema")}async function Ss(e){if(kl(e))return nu(e);let t=we(e),n=[t];await it({path:t,scope:"project"});let r=Ji(e);if(r){let l=await te(r.tracked_paths);if(Ye(l,r.signatures))return qt(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 pr(e,[t],l,o,[t]),l}let s=await te([t]);if(!Ye(o,s))return ge(e),Ss(e);let a;try{a=JSON.parse(i)}catch{let l=U("settings_read_invalid_json");return await pr(e,[t],l,s,[t]),l}let d=Ft(a);if(!d.success){let l=U("settings_read_invalid_schema");return await pr(e,[t],l,s,[t]),l}try{let l=Gt(d.data),_=Cl(e,l.schema,t);n=_;let f=await te(_),w=await Gr(e,l.schema),O=await te(_),S={...l,item_types:{definitions:Pe([...l.item_types.definitions,...vr(w.type_definitions_from_file)])},schema:w.schema};wr(S,ms(d.data,S));let H={settings:S,metadata:{has_explicit_item_format:ys(a)},warnings:[...d.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],...w.warnings]};return Ye(f,O)?Wt(e,{tracked_paths:_,signatures:O,value:qt(H)}):ge(e),H}catch{let l=U("settings_read_merge_failed");return await Rl(e,n,l),l}}var ru=/^[A-Za-z0-9_-]+$/u,ou=new Set(["__proto__","constructor","prototype"]);function Is(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function iu(e){for(let t of e)if(t.split(".").find(n=>!ru.test(n)||ou.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 Os(e,t){return Is(Object.hasOwn(e,t)?e[t]:void 0)}function Qi(e,t){let n=e;for(let r of t)if(n=Os(n,r),n===void 0)return;return n}function su(e,t){let n=e;for(let r of t){let o=Os(n,r);o===void 0&&(o={},n[r]=o),n=o}return n}function au(e,t,n){for(let r of n){let o=r.split("."),i=o.pop(),s=Qi(t,o);if(s===void 0)continue;if(Object.hasOwn(s,i)){su(e,o)[i]=structuredClone(s[i]);continue}if(!zi.includes(o[0]??i))continue;let a=Qi(e,o);a!==void 0&&delete a[i]}}function cu(e,t,n,r,o){let i=o??JSON.parse(ks(br())),s=structuredClone(Is(e)??{});kr(s,i,t),au(s,t,r);let a=Ft(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,Bt),null,2)}
|
|
77
|
+
`}function du(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 Jm(e){return(await Ss(e)).settings}async function Km(e,t,n=Sl,r={}){let o=r.assignedPaths??[];iu(o);let i=we(e),s=ps(t),a=s?void 0:Er(t),d=ks(t,{persist_source:s}),l=JSON.parse(d);try{await Ui({pmRoot:e,filePath:i,mutate:_=>{let f=_===null?null:du(_);return a!==void 0&&_!==null?{raw:cu(f,l,a,o,jl(t)),result:void 0}:{raw:s?`${JSON.stringify(g(ur(s.persisted_settings,l,f),Bt),null,2)}
|
|
78
|
+
`:d,result:void 0}},op:n,author:Jo(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),s?wr(t,{...s,persisted_settings:structuredClone(l)}):a!==void 0&&Ll(t,structuredClone(l)),await Xr({path:i,scope:"project",op:n})}finally{ge(e)}}import Ts from"node:fs";import Xe from"node:path";import{createRequire as lu}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 As="@unbrained/pm-cli";var Ir=/\b(\d{4})\.(\d{1,2})\.(\d{1,2})(?:-(\d+))?\b/u,Or="2026.8.31";function Jt(e){let t=e.match(Ir);return t?[Number(t[1]),Number(t[2]),Number(t[3]),Number(t[4]??0)]:null}function Yt(e,t){let n=Jt(e),r=Jt(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 Sr(e){return Yt(e,Or)!==-1?3:2}function Kt(e){try{let t=JSON.parse(Ts.readFileSync(e,"utf8"));return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:null}catch{return null}}function uu(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 _u(e){let t=e.split("||").map(n=>uu(n));return{bounded:t.some(n=>n.length>0),compatible:t.some(n=>n.every(r=>{let o=Yt(Or,r.version);return o!==null&&(r.inclusive?o!==1:o===-1)}))}}function xs(e){return["dependencies","devDependencies","optionalDependencies","peerDependencies"].flatMap(t=>{let n=e[t];if(typeof n!="object"||n===null)return[];let r=n[As];return typeof r=="string"?[r.trim()]:[]})}function fu(e){return xs(e).flatMap(t=>{let n=/^[<!]/u.test(t)?void 0:t.match(Ir)?.[0];if(!n)return[];let r=/^(?:=|v)?\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?$/u.test(t),o=_u(t);return[{version:n,constraint:r?"exact":o.bounded?"range":"minimum",...r?{}:{declaration:t},history_epoch_compatible:r?Yt(n,Or)!==-1:o.compatible}]})}function mu(e){let t=Kt(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 pu(e,t){try{let n=Ts.readFileSync(Xe.join(e,t),"utf8").split(/\r?\n/u),r=n.findIndex(s=>s.includes(As));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(Ir)?.[0]}catch{return}}function hu(e){let t=[],n=Kt(Xe.join(e,"package.json"));n&&t.push(...fu(n).map(i=>({...i,source:"package.json"})));let r=Kt(Xe.join(e,"node_modules","@unbrained","pm-cli","package.json"))?.version;typeof r=="string"&&Jt(r)&&t.push({version:r,source:"installed-package",constraint:"exact",history_epoch_compatible:Sr(r)===3});let o=mu(e);o&&Jt(o)&&t.push({version:o,source:"package-lock.json",constraint:"exact",history_epoch_compatible:Sr(o)===3});for(let i of["pnpm-lock.yaml","yarn.lock"]){let s=pu(e,i);s&&t.push({version:s,source:i,constraint:"exact",history_epoch_compatible:Sr(s)===3})}return t}function np(e,t){if(t<=1)return;let{minVersion:n,lt:r}=lu(import.meta.url)("semver"),o=xs(Kt(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?hu(e).find(s=>Yt(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 Ar from"node:fs/promises";import Xt 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 Cs(e){let t=["--pm-path",e,"init","--defaults","--agent-guidance","skip"];return{suggested_retry:Qr(t),suggested_retry_args:t}}function Zt(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 Tr(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 yu(e){let t=Xt.resolve(e),n=Xt.parse(t).root,r=Xt.dirname(t);for(;r!==n;){let o;try{o=await Ar.stat(r)}catch(i){if(re(i,"ENOTDIR"))throw Zt(e);if(!re(i,"ENOENT"))throw i;r=Xt.dirname(r);continue}if(!o.isDirectory())throw Zt(e);return}}async function gu(e){let t;try{t=await Ar.stat(e)}catch(n){throw re(n,"ENOENT")?(await yu(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:Cs(e)})):re(n,"ENOTDIR")?Zt(e):re(n,"EACCES")||re(n,"EPERM")?Tr(e):n}if(!t.isDirectory())throw Zt(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw Tr(e);try{await(await Ar.opendir(e)).close()}catch(n){throw re(n,"EACCES")||re(n,"EPERM")?Tr(e):n}}async function up(e){if(await gu(e),!await $r(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:Cs(e)})}export{bu as a,Ps as b,oo as c,se as d,K as e,Ko as f,Tu as g,Ls as h,Au as i,_o as j,fo as k,Me as l,xu as m,Cu as n,rn as o,on as p,Ru as q,sn as r,po as s,Ws as t,Du as u,lt as v,Gs as w,Hu as x,ut as y,Fa as z,mt as A,n_ as B,r_ as C,Oe as D,ce as E,bn as F,s_ as G,a_ as H,kn as I,Ro as J,In as K,h_ as L,y_ as M,g_ as N,v_ as O,b_ as P,w_ as Q,Pn as R,jn as S,$o as T,N_ as U,R_ as V,D_ as W,P_ as X,j_ as Y,L_ as Z,zn as _,qo as $,H_ as aa,F_ as ba,z_ as ca,Vc as da,$_ as ea,Jo as fa,bt as ga,Ge as ha,xe as ia,ii as ja,Sd as ka,xd as la,Af as ma,xf as na,Hd as oa,Pt as pa,_e as qa,Be as ra,Qf as sa,or as ta,wt as ua,Zo as va,em as wa,Qo as xa,tm as ya,ir as za,sr as Aa,qc as Ba,Et as Ca,sf as Da,$n as Ea,kt as Fa,af as Ga,cf as Ha,ti as Ia,St as Ja,It as Ka,Je as La,ed as Ma,df as Na,lf as Oa,De as Pa,zt as Qa,hm as Ra,ym as Sa,gm as Ta,Ui as Ua,vm as Va,zi as Wa,Ft as Xa,Im as Ya,ge as Za,Gm as _a,kl as $a,is as ab,Bm as bb,Gt as cb,ks as db,Ss as eb,Jm as fb,Km as gb,hu as hb,np as ib,gu as jb,up as kb};
|
|
80
|
+
//# sourceMappingURL=chunk-WSYPVBKS.js.map
|