@unbrained/pm-cli 2026.10.25 → 2026.10.27
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 +44 -1
- package/dist/cli/error-guidance.d.ts +5 -0
- package/dist/cli/error-guidance.js +2 -2
- package/dist/cli/register-list-query.js +5 -5
- package/dist/cli/register-mutation.js +2 -2
- package/dist/cli-bundle/bundle-manifest.json +1 -1
- package/dist/cli-bundle/chunks/{chunk-O3ZTGRIH.js → chunk-25MTQAHX.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-YCCGZHOR.js → chunk-2XUDAQK5.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-VAEB6IUQ.js → chunk-32QK43XG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-RD6UW3MW.js → chunk-34OQP43K.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-TLMXSYJA.js → chunk-57YPOOED.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-5PTMQBKJ.js +30 -0
- package/dist/cli-bundle/chunks/{chunk-FNZT4BTE.js → chunk-EKV5GP6P.js} +86 -86
- package/dist/cli-bundle/chunks/{chunk-LNKPH2DD.js → chunk-ER7RLJW5.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-F26MRQZY.js +6 -0
- package/dist/cli-bundle/chunks/chunk-H434DKYU.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-MVJGGCGQ.js → chunk-HIX2OMEZ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4GD6QOP6.js → chunk-NNIYQHYT.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-O3LPT34G.js +20 -0
- package/dist/cli-bundle/chunks/{chunk-3CYXE6BV.js → chunk-ONC4BBQP.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-UI3FD3DW.js → chunk-OQOEBWHU.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-Q55KZDNF.js +2 -0
- package/dist/cli-bundle/chunks/chunk-QQYLNHZK.js +128 -0
- package/dist/cli-bundle/chunks/chunk-SPPHDVZE.js +2 -0
- package/dist/cli-bundle/chunks/chunk-UHKN6TJM.js +114 -0
- package/dist/cli-bundle/chunks/{chunk-7T3H24HN.js → chunk-X5TMR7KC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-EYCVAAIP.js → chunk-XERBUA6A.js} +2 -2
- package/dist/cli-bundle/chunks/indexed-receipt-blobs-63WYG2PY.js +4 -0
- package/dist/cli-bundle/chunks/{mutation-admission-747C6IUR.js → mutation-admission-L3A6FSZ7.js} +2 -2
- package/dist/cli-bundle/chunks/{register-list-query-COST6KRV.js → register-list-query-YSQ7UTFI.js} +9 -9
- package/dist/cli-bundle/chunks/register-mutation-6HRXYASW.js +20 -0
- package/dist/cli-bundle/chunks/{register-operations-S4LKLUBJ.js → register-operations-4O3YOYXF.js} +2 -2
- package/dist/cli-bundle/chunks/{register-setup-3ITZXPOL.js → register-setup-3WAXNDMY.js} +2 -2
- package/dist/cli-bundle/chunks/{settlement-hook-5IVCF6ZY.js → settlement-hook-CRW6PVQK.js} +2 -2
- package/dist/cli-bundle/chunks/{stage-3UUIYROS.js → stage-I46WD4EN.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-U6HXIF6G.js → chunk-4TXZBGOR.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-22727JYL.js → chunk-B266DDBJ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-Y4JHHY24.js → chunk-BH7RE2ZY.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-ZYCOMRFT.js → chunk-E5C24MCV.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-EGN2HFRU.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-HWD63G54.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-J67PFM3O.js +91 -0
- package/dist/cli-bundle/focused-chunks/{chunk-46KDJH3K.js → chunk-KTXU5WU6.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-MVY6JDIH.js +12 -0
- package/dist/cli-bundle/focused-chunks/{chunk-NC5HUGHU.js → chunk-NLZUI234.js} +4 -4
- package/dist/cli-bundle/focused-chunks/{chunk-B5JOVH5F.js → chunk-R2MTHS2H.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-SM2KGD4J.js +79 -0
- package/dist/cli-bundle/focused-chunks/{chunk-HMYDUEQK.js → chunk-SYL73MEI.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{chunk-77NU7NPN.js → chunk-TAFMNTA5.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-74KC7FUQ.js → chunk-TGUOEOKP.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-U4UBQBS7.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-URWYYJ7K.js → chunk-WDKZB3V6.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-XK3XMZM4.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-3M5FZCMC.js → chunk-Y57A4ZDI.js} +55 -55
- package/dist/cli-bundle/focused-chunks/chunk-YC6NCPLK.js +22 -0
- package/dist/cli-bundle/focused-chunks/{chunk-7DEZT4JN.js → chunk-YQKLKRMW.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-3FM75SBJ.js → chunk-YW5GHQN2.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-ZA6AEYIM.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-ZH7GTEWL.js +3 -0
- package/dist/cli-bundle/focused-chunks/indexed-receipt-blobs-GAFC52LQ.js +4 -0
- package/dist/cli-bundle/focused-chunks/{mutation-admission-BQBQXILV.js → mutation-admission-ENBFMV2X.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{settlement-hook-XVS6P2XI.js → settlement-hook-PUYJJDFL.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{stage-VSIL4MTZ.js → stage-MAWZTM2H.js} +2 -2
- package/dist/cli-bundle/main.js +4 -4
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +2 -2
- package/dist/cli-bundle/sdk-core.js +33 -33
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +57 -57
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +9 -9
- package/dist/core/extensions/extension-types.d.ts +3 -0
- package/dist/core/extensions/extension-types.js +1 -1
- package/dist/core/history/event-index.d.ts +6 -0
- package/dist/core/history/event-index.js +7 -6
- package/dist/core/history/read.d.ts +3 -1
- package/dist/core/history/read.js +1 -1
- package/dist/core/output/mutation-projection.js +1 -1
- package/dist/core/policy/workflow-policy-store.js +1 -1
- package/dist/core/shared/errors.d.ts +9 -0
- package/dist/core/shared/errors.js +1 -1
- package/dist/core/shared/secret-rules.d.ts +17 -0
- package/dist/core/shared/secret-rules.js +2 -1
- package/dist/core/store/item-mutation-precondition.d.ts +8 -0
- package/dist/core/store/item-mutation-precondition.js +1 -1
- package/dist/core/store/item-store.js +1 -1
- package/dist/mcp/tool-definitions.js +1 -1
- package/dist/sdk/cli-contracts/commander-mutation-options.js +1 -1
- package/dist/sdk/cli-contracts/completeness.js +1 -1
- package/dist/sdk/cli-contracts/flag-contracts.js +1 -1
- package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +1 -1
- package/dist/sdk/cli-contracts/grammar-contracts.js +1 -1
- package/dist/sdk/cli-contracts/registration-helpers.d.ts +1 -1
- package/dist/sdk/cli-contracts/registration-helpers.js +1 -1
- package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +4 -0
- package/dist/sdk/cli-contracts/tool-option-contracts.js +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +1 -1
- package/dist/sdk/cli-contracts/tool-schema.d.ts +2 -2
- package/dist/sdk/cli-contracts/tool-schema.js +1 -1
- package/dist/sdk/context-signal-store.js +2 -2
- package/dist/sdk/core.d.ts +1 -1
- package/dist/sdk/core.js +1 -1
- package/dist/sdk/extension-command-context.js +2 -2
- 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 +2 -1
- package/dist/sdk/index.js +1 -1
- package/dist/sdk/item-transaction.js +1 -1
- package/dist/sdk/lifecycle/close-many.d.ts +3 -0
- package/dist/sdk/lifecycle/close-many.js +1 -1
- package/dist/sdk/lifecycle/close.d.ts +3 -1
- package/dist/sdk/lifecycle/close.js +1 -1
- package/dist/sdk/lifecycle/create.d.ts +2 -0
- package/dist/sdk/lifecycle/create.js +1 -1
- package/dist/sdk/lifecycle/plan.d.ts +2 -0
- package/dist/sdk/lifecycle/plan.js +1 -1
- package/dist/sdk/lifecycle/restore.js +1 -1
- package/dist/sdk/lifecycle-policy.d.ts +11 -0
- package/dist/sdk/lifecycle-policy.js +1 -1
- package/dist/sdk/merge/indexed-receipt-blobs.d.ts +3 -1
- package/dist/sdk/merge/indexed-receipt-blobs.js +2 -2
- package/dist/sdk/merge/receipt-file-boundary.d.ts +2 -0
- package/dist/sdk/merge/receipt-file-boundary.js +1 -1
- package/dist/sdk/merge/receipts.js +2 -2
- package/dist/sdk/mutation-events.d.ts +6 -0
- package/dist/sdk/mutation-events.js +1 -1
- package/dist/sdk/mutation-guard.d.ts +6 -1
- package/dist/sdk/mutation-guard.js +1 -1
- package/dist/sdk/output/fit-envelope.d.ts +98 -0
- package/dist/sdk/output/fit-envelope.js +2 -0
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/query.d.ts +1 -0
- package/dist/sdk/query.js +1 -1
- package/dist/sdk/read-output-session.d.ts +1 -1
- package/dist/sdk/read-output-session.js +1 -1
- package/dist/sdk/runtime-extended-actions.js +1 -1
- package/dist/sdk/runtime-input.js +1 -1
- package/dist/sdk/runtime-primitives.d.ts +1 -1
- package/dist/sdk/runtime-primitives.js +1 -1
- package/dist/sdk/runtime.d.ts +2 -2
- package/dist/sdk/runtime.js +1 -1
- package/dist/sdk/scheduling-shortcuts.d.ts +2 -0
- package/dist/sdk/scheduling-shortcuts.js +1 -1
- package/dist/sdk/test/execution.js +2 -2
- package/dist/sdk/test/receipt-index-snapshot.d.ts +2 -0
- package/dist/sdk/test/receipt-index-snapshot.js +2 -0
- package/dist/sdk/test/workspace-snapshot.d.ts +1 -1
- package/dist/sdk/test/workspace-snapshot.js +1 -1
- package/dist/sdk/workspace-transaction.d.ts +3 -1
- package/dist/sdk/workspace-transaction.js +2 -2
- package/docs/COMMANDS.md +2 -1
- package/docs/MUTATION_INTEGRITY.md +33 -0
- package/docs/PERFORMANCE.md +21 -6
- package/docs/QUALITY_EVIDENCE.md +9 -0
- package/docs/READ_OUTPUT_CONTRACTS.md +55 -1
- package/docs/RELEASING.md +11 -0
- package/docs/SDK.md +88 -6
- package/docs/SDK_CONTEXT_COORDINATION.md +35 -4
- package/docs/TESTING.md +14 -1
- package/docs/WORKFLOW_POLICIES.md +14 -1
- package/docs/agent-task-token-baseline.json +1 -1
- package/docs/agent-task-transcripts.json +1 -1
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +4 -4
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +5 -3
- package/marketplace.json +1 -1
- package/package.json +1 -1
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/extensions/calendar/shortcuts.ts +2 -2
- 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-444VPGQT.js +0 -20
- package/dist/cli-bundle/chunks/chunk-5ZPT67NJ.js +0 -127
- package/dist/cli-bundle/chunks/chunk-7C3GCLOO.js +0 -30
- package/dist/cli-bundle/chunks/chunk-HMJSFWHK.js +0 -2
- package/dist/cli-bundle/chunks/chunk-RLXK2S7P.js +0 -2
- package/dist/cli-bundle/chunks/chunk-RQKDANP7.js +0 -113
- package/dist/cli-bundle/chunks/chunk-RUKSEZE7.js +0 -2
- package/dist/cli-bundle/chunks/chunk-XYLBOXSH.js +0 -6
- package/dist/cli-bundle/chunks/indexed-receipt-blobs-47I6KKDO.js +0 -4
- package/dist/cli-bundle/chunks/register-mutation-JZVVJUHY.js +0 -20
- package/dist/cli-bundle/focused-chunks/chunk-5LBZR6YW.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-IVLIUPVV.js +0 -12
- package/dist/cli-bundle/focused-chunks/chunk-KIIGME23.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-LWJ2X75I.js +0 -78
- package/dist/cli-bundle/focused-chunks/chunk-MT5TYMEU.js +0 -3
- package/dist/cli-bundle/focused-chunks/chunk-NI5SG2M2.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-QH5KMIYZ.js +0 -91
- package/dist/cli-bundle/focused-chunks/chunk-VVRXF4JO.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-W7MCCFYV.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-WMPDY5ZU.js +0 -21
- package/dist/cli-bundle/focused-chunks/indexed-receipt-blobs-YCLN2ZZG.js +0 -4
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import{r as q,s as V}from"./chunk-
|
|
1
|
+
import{r as q,s as V}from"./chunk-TGUOEOKP.js";import{m,s as M,u as k}from"./chunk-WDKZB3V6.js";import{Fa as O,Kd as z,R as x,W as g,nd as N,qd as D,td as j}from"./chunk-NLZUI234.js";import{D as _,H as L,y as S,z as C}from"./chunk-KTXU5WU6.js";import{constants as p}from"node:fs";import{lstat as A,mkdir as I,open as P}from"node:fs/promises";import h from"node:path";(function(){try{var i=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new i.Error().stack;e&&(i._sentryDebugIds=i._sentryDebugIds||{},i._sentryDebugIds[e]="5434ff6f-95af-5983-88cb-fd360d95cb9e")}catch{}})();function E(i,e){if(typeof i!="string"||i.trim().length===0)throw new TypeError(`Relationship event ${e} must be non-empty`);return i.trim()}function $(i,e){let t=e.require(i.kind),n=t.direction==="undirected"?[i.source,i.target].sort().join("\0"):`${i.source}\0${i.target}`;return`${t.kind}\0${n}`}function Q(i){return Object.freeze({...i,...i.payload===void 0?{}:{payload:Object.freeze(structuredClone(i.payload))}})}function U(i,e,t,n){let r=t.require(i.kind),o=n.outgoingOne.get(`${r.kind}\0${i.source}`);if(o!==void 0&&o!==e)throw new TypeError(`Relationship outgoing cardinality exceeded for ${r.kind}`);let s=n.incomingOne.get(`${r.kind}\0${i.target}`);if(s!==void 0&&s!==e)throw new TypeError(`Relationship incoming cardinality exceeded for ${r.kind}`);let c=$(i,t),a=n.identities.get(c);if(a!==void 0&&a!==e)throw new TypeError(`Relationship edge already active: ${c}`)}function Y(i){let e=new Map;for(let t of i)t.action==="remove"?e.delete(t.relationshipId):e.set(t.relationshipId,t.edge);return e}function X(i,e,t){if(i.expectedVersion!==void 0&&i.expectedVersion!==e)throw new TypeError(`Relationship event version conflict: expected ${i.expectedVersion}, current ${e}`);let n=E(i.eventId,"eventId");if(t.has(n))throw new TypeError(`Relationship event already exists: ${n}`);if(i.action!=="add"&&i.action!=="remove"&&i.action!=="supersede")throw new TypeError(`Unknown relationship event action: ${i.action}`);if(!Number.isFinite(Date.parse(i.timestamp)))throw new TypeError("Relationship event timestamp must be valid");return{eventId:n,relationshipId:E(i.relationshipId,"relationshipId"),author:E(i.author,"author"),timestamp:new Date(i.timestamp).toISOString()}}function Z(i,e,t,n,r,o){let s=t.has(e);if(i.action==="add"&&s)throw new TypeError(`Relationship is already active: ${e}`);if(i.action!=="add"&&!s)throw new TypeError(`Relationship is not active: ${e}`);if(i.action==="remove")return;if(!i.edge)throw new TypeError(`Relationship ${i.action} event requires an edge`);let c=typeof i.edge.source=="string"?i.edge.source.trim():"",a=typeof i.edge.target=="string"?i.edge.target.trim():"";if(!n.has(c)||!n.has(a))throw new TypeError(`Relationship endpoint not found: ${c} -> ${a}`);let d=new g([c,a],[i.edge],r).edges()[0];return U(d,e,r,o),Q(d)}var T=class{#t;#i;#n=[];#o=new Set;#e=new Map;#r={identities:new Map,outgoingOne:new Map,incomingOne:new Map};constructor(e,t={}){this.#t=new Set([...e].filter(n=>typeof n=="string").map(n=>n.trim()).filter(Boolean)),this.#i=t.registry??x()}get version(){return this.#n.length}events(){return Object.freeze([...this.#n])}*stream(e={}){let t=e.fromVersion??1,n=e.toVersion??this.version,r=e.batchSize??100;if(!Number.isInteger(t)||t<1)throw new TypeError("Relationship event stream fromVersion must be positive");if(!Number.isInteger(n)||n<0||n>this.version)throw new TypeError(`Relationship event stream toVersion out of range: ${n}`);if(!Number.isInteger(r)||r<1)throw new TypeError("Relationship event stream batchSize must be positive");if(t>n+1)throw new TypeError("Relationship event stream fromVersion exceeds the selected prefix");for(let o=t-1;o<n;o+=r)yield Object.freeze(this.#n.slice(o,Math.min(o+r,n)))}project(e,t,n={}){if(typeof t!="function")throw new TypeError("Relationship event projection requires a reducer");let r=e,o=0,s;for(let c of this.stream({...n,batchSize:256}))for(let a of c)r=t(r,a),o+=1,s=a;return Object.freeze({state:r,version:s?.sequence??Math.max(0,(n.fromVersion??1)-1),processed:o,...s===void 0?{}:{asOf:s.timestamp}})}#s(e,t){let n=this.#i.require(t.kind);this.#r.identities.set($(t,this.#i),e),n.outgoing==="one"&&this.#r.outgoingOne.set(`${n.kind}\0${t.source}`,e),n.incoming==="one"&&this.#r.incomingOne.set(`${n.kind}\0${t.target}`,e)}#a(e){let t=this.#i.require(e.kind);this.#r.identities.delete($(e,this.#i)),t.outgoing==="one"&&this.#r.outgoingOne.delete(`${t.kind}\0${e.source}`),t.incoming==="one"&&this.#r.incomingOne.delete(`${t.kind}\0${e.target}`)}append(e){let t=X(e,this.version,this.#o),n=this.#e.get(t.relationshipId),r=Z(e,t.relationshipId,this.#e,this.#t,this.#i,this.#r),o=Object.freeze({eventId:t.eventId,relationshipId:t.relationshipId,action:e.action,...r===void 0?{}:{edge:r},author:t.author,timestamp:t.timestamp,...e.reason?.trim()?{reason:e.reason.trim()}:{},sequence:this.version+1});return this.#n.push(o),this.#o.add(t.eventId),n&&this.#a(n),e.action==="remove"?this.#e.delete(t.relationshipId):(this.#e.set(t.relationshipId,r),this.#s(t.relationshipId,r)),o}snapshot(e={}){if(e.atVersion!==void 0&&e.atTimestamp!==void 0)throw new TypeError("Relationship snapshot accepts one target");let t;if(e.atTimestamp!==void 0){let o=Date.parse(e.atTimestamp);if(!Number.isFinite(o))throw new TypeError("Relationship snapshot timestamp must be valid");t=this.#n.filter(s=>Date.parse(s.timestamp)<=o)}else{let o=e.atVersion??this.version;if(!Number.isInteger(o)||o<0||o>this.version)throw new TypeError(`Relationship snapshot version out of range: ${o}`);t=this.#n.slice(0,o)}let n=Y(t),r=new g(this.#t,n.values(),this.#i);return Object.freeze({version:t.at(-1)?.sequence??0,...t.at(-1)?{asOf:t.at(-1).timestamp}:{},edges:r.edges(),graph:r})}page(e){if(!Number.isInteger(e.limit)||e.limit<1)throw new TypeError("Relationship event page limit must be positive");let t=N("relationship-events",{order:"append-sequence"}),n=e.cursor===void 0?this.version:Number(D(e.cursor,t).snapshot);if(!Number.isSafeInteger(n)||n<0||n>this.version)throw new TypeError("Relationship event cursor snapshot version is invalid");let r=j(this.#n.slice(0,n),{cursor:e.cursor,fingerprint:t,limit:e.limit,readId:o=>o.eventId,snapshot:String(n)});return{version:n,events:r.rows,hasMore:r.has_more,...r.next_cursor?{nextCursor:r.next_cursor}:{}}}},ee="relationship-event-store",W=p.O_NOFOLLOW;function w(i){return z(i,ee,30,`relationship-store:${process.pid}`,!1,!1,3e3)}async function f(i,e="relationships/events.jsonl"){let t=h.resolve(i),n=h.resolve(t,e),r=h.relative(t,n);if(r.length===0)throw new TypeError("Relationship event path must name a file within the tracker root");if(r===".."||r.startsWith(`..${h.sep}`)||h.isAbsolute(r))throw new TypeError("Relationship event path must stay within the tracker root");if(await I(t,{recursive:!0}),(await A(t)).isSymbolicLink())throw new TypeError("Relationship event tracker root must not be a symbolic link");let o=t;for(let s of r.split(h.sep)){o=h.join(o,s);try{if((await A(o)).isSymbolicLink())throw new TypeError("Relationship event path must not contain symbolic links")}catch(c){if(_(c))break;throw c}}return n}async function y(i,e,t){let n=new T(e,{registry:t}),r,o;try{o=await P(i,p.O_RDONLY|W),r=await o.readFile("utf8")}catch(c){if(_(c))return{log:n,raw:""};throw c}finally{await o?.close()}let s=r.split(`
|
|
2
2
|
`);for(let c=0;c<s.length;c+=1){let a=s[c].trim();if(!a)continue;let d;try{d=JSON.parse(a)}catch{throw new TypeError(`Invalid relationship event JSONL at line ${c+1}`)}if(d.sequence!==n.version+1)throw new TypeError(`Invalid relationship event sequence at line ${c+1}`);n.append({eventId:d.eventId,relationshipId:d.relationshipId,action:d.action,...d.edge===void 0?{}:{edge:d.edge},author:d.author,timestamp:d.timestamp,...d.reason===void 0?{}:{reason:d.reason},expectedVersion:n.version})}return{log:n,raw:r}}function te(i,e,t,n){let r=Date.parse(e.timestamp),o;return e.action!=="remove"&&e.edge!==void 0&&(o=new g(t,[e.edge],n).edges()[0]),i.eventId===e.eventId.trim()&&i.relationshipId===e.relationshipId.trim()&&i.action===e.action&&i.author===e.author.trim()&&Number.isFinite(r)&&i.timestamp===new Date(r).toISOString()&&i.reason===(e.reason?.trim()||void 0)&&O(i.edge)===O(o)}var F=class i{#t;#i;#n;#o;#e;constructor(e,t,n,r){this.#t=e.pmRoot,this.#i=t,this.#n=e.registry,this.#o=n,this.#e=r}static async open(e){let t=Object.freeze([...e.nodes]),n=await f(e.pmRoot,e.relativePath),r=await w(e.pmRoot);try{await f(e.pmRoot,n);let{log:o}=await y(n,t,e.registry);return new i(e,t,n,o)}finally{await r()}}get path(){return this.#o}async currentVersion(){return this.#e=await this.#r(),this.#e.version}async append(e){let t=await w(this.#t);try{let n=await f(this.#t,this.#o),{log:r}=await y(n,this.#i,this.#n),o=r.append(e);await I(h.dirname(n),{recursive:!0}),await f(this.#t,n);let s=await P(n,p.O_APPEND|p.O_CREAT|p.O_WRONLY|W);try{await s.appendFile(`${JSON.stringify(o)}
|
|
3
3
|
`,"utf8")}finally{await s.close()}return this.#e=r,o}finally{await t()}}async appendBatch(e,t={}){let n=await w(this.#t);try{let r=await f(this.#t,this.#o),{log:o,raw:s}=await y(r,this.#i,this.#n),c=o.version,a=new Map(o.events().map(l=>[l.eventId,l])),d=[],R=[];for(let l of e){let u=l.eventId.trim(),v=a.get(u);if(v!==void 0){if(t.existingEventPolicy==="skip_identical"&&te(v,l,this.#i,this.#n)){R.push(v.eventId);continue}if(t.existingEventPolicy==="skip_identical")throw new TypeError(`Relationship event id collision with different content: ${u}`)}let b=o.append(l);a.set(b.eventId,b),d.push(b)}if(d.length>0){let l=s.length===0||s.endsWith(`
|
|
4
4
|
`)?s:`${s}
|
|
5
5
|
`;await I(h.dirname(r),{recursive:!0}),await f(this.#t,r),await L(r,`${l}${d.map(u=>JSON.stringify(u)).join(`
|
|
6
6
|
`)}
|
|
7
7
|
`)}return this.#e=o,Object.freeze({version_before:c,version_after:o.version,appended:Object.freeze(d),skipped_event_ids:Object.freeze(R)})}finally{await n()}}async snapshot(e={}){return this.#e=await this.#r(),this.#e.snapshot(e)}async page(e){return this.#e=await this.#r(),this.#e.page(e)}async*stream(e={}){this.#e=await this.#r(),yield*this.#e.stream(e)}async project(e,t,n={}){return this.#e=await this.#r(),this.#e.project(e,t,n)}async#r(){let e=await w(this.#t);try{let t=await f(this.#t,this.#o);return(await y(t,this.#i,this.#n)).log}finally{await e()}}};(function(){try{var i=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new i.Error().stack;e&&(i._sentryDebugIds=i._sentryDebugIds||{},i._sentryDebugIds[e]="73852fdf-f072-51ab-9449-d7922712eeb4")}catch{}})();function K(i){return[...i].sort().join("\0")}function ie(i,e,t){let n=i.successors.get(e);n?n.push(t):i.successors.set(e,[t]);let r=i.predecessors.get(t);r?r.push(e):i.predecessors.set(t,[e])}function G(i,e,t,n,r){let o=e.resolve(r);if(o?.ordering!==!0)return;let s=M(n),c=s===void 0?void 0:i.canonicalIds.get(s.toLowerCase());if(c===void 0)return;let a=(o.precedence??"source_before_target")==="source_before_target";ie(i,a?t:c,a?c:t)}function ne(i,e){let t={successors:new Map,predecessors:new Map,canonicalIds:new Map},n=i.filter(r=>typeof r?.id=="string"&&r.id.trim().length>0);for(let r of n){let o=r.id.trim();t.canonicalIds.set(o.toLowerCase(),o)}for(let r of n){let o=r.id.trim();G(t,e,o,r.blocked_by,"blocked_by");for(let s of r.dependencies??[])typeof s!="object"||s===null||G(t,e,o,s.id,typeof s.kind=="string"?s.kind:"related")}for(let r of[t.successors,t.predecessors])for(let o of r.values())o.sort();return t}function re(i,e){let t=new Set([e]),n=[e];for(;n.length>0;){let r=n.pop();for(let o of[i.successors,i.predecessors])for(let s of o.get(r)??[])t.has(s)||(t.add(s),n.push(s))}return t}function oe(i,e){let t=new Map;for(let n of e){let r=(i.successors.get(n)??[]).filter(o=>e.has(o));r.length>0&&t.set(n,r)}return t}function H(i,e,t){let n=ne(i,e),r=n.canonicalIds.get(t.trim().toLowerCase());if(r===void 0)return{cycles:[],successors:new Map,canonical:t};let o=oe(n,re(n,r));return{cycles:q(o).filter(s=>s.includes(r)),successors:o,canonical:r}}function se(i,e,t){let n=new Set(e),r=n.has(t)?t:e[0];if(i.get(r)?.includes(r))return[r,r];for(let o of i.get(r)??[]){if(!n.has(o))continue;let s=ae(i,n,r,o);if(s)return s}return[...e,e[0]]}function ae(i,e,t,n){let r=[[n]],o=new Set([t,n]);for(;r.length>0;){let s=r.shift(),c=s.at(-1);for(let a of i.get(c)??[]){if(a===t)return[t,...s,t];!e.has(a)||o.has(a)||(o.add(a),r.push([...s,a]))}}}function ve(i,e,t){let n=m(),r=H(i,n,t),o=H(e,n,t),s=new Set(r.cycles.map(K)),c=new Set(k(i,void 0,n).map(a=>`${a.holder_id.toLowerCase()}\0${a.target_id.toLowerCase()}\0${a.dependency_kind}`));return[...k(e,void 0,n).filter(a=>a.holder_id.toLowerCase()===t.trim().toLowerCase()&&!c.has(`${a.holder_id.toLowerCase()}\0${a.target_id.toLowerCase()}\0${a.dependency_kind}`)).map(a=>`ordering_storage_contradiction_created:${V(a)}:remove_contradicting_dependency_row:run_pm_graph_audit`),...o.cycles.filter(a=>!s.has(K(a))).map(a=>`ordering_cycle_created:${se(o.successors,a,o.canonical).join(" -> ")}:items_will_not_be_ready:run_pm_graph_audit`)]}(function(){try{var i=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new i.Error().stack;e&&(i._sentryDebugIds=i._sentryDebugIds||{},i._sentryDebugIds[e]="5f2ca18e-450d-5b6e-9e07-7bbf080764f9")}catch{}})();function Ee(i,e){let t=e.resolve(i);return t?.hierarchy===!0||t?.outgoing==="one"||t?.incoming==="one"}function J(i,e,t,n,r){let o=JSON.stringify([e,t,n]),s=i.get(o);s===void 0&&(s={kind:e,direction:t,node_id:n,endpoints:new Set},i.set(o,s)),s.endpoints.add(r)}function B(i,e){let t=new Map;for(let n of i)for(let r of n.dependencies??[]){let o=e.resolve(r.kind);o===void 0||o.hierarchy||(o.outgoing==="one"&&J(t,o.kind,"outgoing",n.id,r.id),o.incoming==="one"&&J(t,o.kind,"incoming",r.id,n.id))}return t}function Ie(i,e,t=m()){let n=B(i,t),r=B(e,t);for(let o of[...r.keys()].sort()){let s=r.get(o);if(s.endpoints.size<=1)continue;let c=n.get(o);if(![...s.endpoints].every(a=>c?.endpoints.has(a)))throw new C(`Relationship ${s.kind} permits only one ${s.direction} endpoint for ${s.node_id}.`,S.USAGE,{code:"dependency_cardinality_created",field:"dependencies",value:s.kind,relationship_cardinality:{kind:s.kind,direction:s.direction,node_id:s.node_id,endpoint_ids:[...s.endpoints].sort()},required:"The final dependency set must satisfy the active relationship kind's one-edge cardinality.",nextSteps:["Drop extra --dep seeds, or remove conflicting rows with update --dep-remove before adding another edge.","Choose another kind only when its declared semantics match the intended relationship."]})}}export{T as a,F as b,ve as c,Ee as d,Ie as e};
|
|
8
|
-
//# sourceMappingURL=chunk-
|
|
8
|
+
//# sourceMappingURL=chunk-R2MTHS2H.js.map
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import{c as He,e as ze,f as Fe,i as Mn,j as Vn,k as Un,l as Wn,m as qn}from"./chunk-B266DDBJ.js";import{h as Zn}from"./chunk-YLVHHWHN.js";import{Ad as G,B as Dn,Dc as Jn,Dd as Kn,Ea as $n,Ed as Xn,Fa as A,Ga as $,Gd as Yn,Ha as ot,Ia as g,Kd as M,ea as zn,i as Qe,j as An,ja as Fn,k as xn,l as Cn,m as Nn,mc as Gn,oc as it,oe as Zt,q as et,r as tt,s as Rn,sc as Bn,wd as $e,x as rt,xd as q,y as nt,yd as st,z as Xt,za as we,zd as Ee}from"./chunk-NLZUI234.js";import{B as jn,C as W,D as ie,E as be,F as Ln,G as Yt,H as Le,I as Hn,l as J,t as Pn,w as h,x as je,y as E,z as w}from"./chunk-KTXU5WU6.js";import{createHash as hs}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 Kl=["sha256","sha512"],ys="sha256",Qn="sha256";function se(e){if(e===void 0)return ys;if(e==="sha256"||e==="sha512")return e;throw new TypeError(`unsupported_history_hash_algorithm:${String(e)}`)}function K(e,t){return hs(se(t)).update(e,"utf8").digest("hex")}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4d5692ce-ec33-5eb4-bd9b-7497ffe25b0e")}catch{}})();var gs=16;function Qt(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[r,...n]=t;return`${r}${n.map(o=>`${o.slice(0,1).toUpperCase()}${o.slice(1)}`).join("")}`}function vs(e){return[...new Set([qn(e),Qt(e.key),Qt(e.cli_flag),...e.cli_aliases.map(t=>Qt(t))])]}function ro(e,t){for(let r of vs(t)){if(!Object.hasOwn(e,r))continue;let n=e[r];if(n!==void 0)return n}}function no(e){return Array.isArray(e)?e.flatMap(t=>no(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 eo(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 r=e.trim().toLowerCase();if(r==="true"||r==="1"||r==="yes")return!0;if(r==="false"||r==="0"||r==="no")return!1}throw new w(`${t} must be one of true|false|1|0|yes|no`,E.USAGE)}function to(e,t){if(typeof e=="number"&&Number.isFinite(e))return e;let r=typeof e=="string"?e.trim():String(e),n=Number(r);if(!Number.isFinite(n))throw new w(`${t} must be a number`,E.USAGE);return n}function bs(e,t,r){let n=typeof e=="string"?(()=>{try{return JSON.parse(e)}catch{return}})():e;if(r==="array"&&Array.isArray(n)||r==="object"&&typeof n=="object"&&n!==null&&!Array.isArray(n))return n;throw new w(`${t} must be valid JSON ${r}`,E.USAGE)}function ws(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 Es(e,t,r){if(t.const!==void 0&&A(e)!==A(t.const))return`${r} must equal ${A(t.const)}`;if(t.enum!==void 0&&!t.enum.some(n=>A(n)===A(e)))return`${r} must be one of ${t.enum.map(n=>A(n)).join("|")}`;if(!ws(e,t.type))return`${r} must match configured type ${String(t.type)}`;if(typeof e=="string"){if(t.min_length!==void 0&&e.length<t.min_length)return`${r} must contain at least ${t.min_length} characters`;if(t.format==="date-time"&&!st(e))return`${r} must be an RFC 3339 date-time`}}function ks(e,t,r,n){if(Array.isArray(e)){if(t.min_items!==void 0&&e.length<t.min_items)return`${r} must contain at least ${t.min_items} items`;if(t.items)for(let[o,i]of e.entries()){let s=at(i,t.items,`${r}[${o}]`,n+1);if(s)return s}}}function Ss(e,t,r,n){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`${r}.${i} is required`;for(let[i,s]of Object.entries(o)){let a=t.properties?.[i];if(!a){if(t.additional_properties===!1)return`${r}.${i} is not allowed`;continue}let d=at(s,a,`${r}.${i}`,n+1);if(d)return d}}function at(e,t,r,n=0){if(n>gs)return`${r} value schema exceeds maximum depth`;let o=Es(e,t,r);if(o)return o;let i=ks(e,t,r,n);if(i)return i;let s=Ss(e,t,r,n);if(s)return s;if(!t.one_of)return;let a=0;for(let d of t.one_of)if(at(e,d,r,n+1)===void 0&&(a+=1,a>1))break;return a===1?void 0:`${r} must match exactly one configured schema variant`}function ae(e,t,r){if(!e.value_schema||t===void 0)return t;let n=at(t,e.value_schema,r);if(n)throw new w(n,E.USAGE);return t}function Is(e,t,r,n){let o=n==="option"&&Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return ae(e,bs(o,r,e.type),r)}function Me(e,t,r,n="option"){let o=r??`--${e.cli_flag}`;if(e.type==="array"||e.type==="object")return Is(e,t,o,n);if(e.repeatable||e.type==="string_array"){let s=no(t);return e.type==="number"?ae(e,s.map(a=>to(a,o)),o):e.type==="boolean"?ae(e,s.map(a=>eo(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,to(i,o),o):e.type==="boolean"?ae(e,eo(i,o),o):ae(e,typeof i=="string"?i:String(i),o)}function Os(e,t){return!e.required&&!e.required_on_create?!1:e.required_types.length===0?!0:t?e.required_types.map(r=>r.toLowerCase()).includes(t.trim().toLowerCase()):!1}function ru(e,t,r){let n={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=ro(e,i);if(s===void 0){Os(i,r)&&o.push(`--${i.cli_flag}`);continue}n[i.metadata_key]=Me(i,s)}return{values:n,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function nu(e,t,r=["update"]){let n={},o=(r??["update"]).flatMap(s=>t.command_to_fields.get(s)??[]),i=new Set;for(let s of o){let a=ro(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),n[s.metadata_key]=Me(s,a)))}return n}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c35d4830-d7d1-5ee4-99bc-ab52cc3e4e09")}catch{}})();var er=1,tr=2;function iu(e){return Math.max(rr(e),e.tests?.some(t=>t.updated_by!==void 0||t.updated_at!==void 0)?2:1)}function rr(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=1?t:1}function oo(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=1))return e}function Ts(e,t=2,r=t){return e<r?"outdated":e>t?"ahead":"current"}function su(e,t=2,r=t){let n=[],o=[];for(let i of e){let s=Ts(i.version,t,r);s==="outdated"?n.push(i.ref):s==="ahead"&&o.push(i.ref)}return{outdated:n.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 As={"in-progress":"in_progress",cancelled:"canceled"};function ct(e,t){if(t){let o=Un(e,t);if(o)return o}if(typeof e!="string")return;let r=e.trim().toLowerCase();if(!r)return;let n=As[r]??r;if(Qe.includes(n))return n}function xs(e,t){return ct(e,t)??e}function lu(e,t){return t.terminal_statuses.has(xs(e,t))}import{encode as Ds}from"@toon-format/toon";import{isDeepStrictEqual as io}from"node:util";import{decode as Cs}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 nr(e){return{value:Cs(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 Ns=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function Rs(e){if(e.length===0)return[];let t=e.split(/\r?\n/),r=[];for(let n=0;n<t.length;n+=1){let o=t[n]??"",i=o.match(Ns);if(!i)continue;let s=i[1];r.push({line:n+1,marker:s,text:o})}return r}function dt(e){return Rs(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 ar=new Set(["schema","tracker","auto","none"]),uo=new Set(["source","isolated","snapshot"]),Ps=new Set(["legacy","local_mutation","local_source_ref","acknowledged","invalid_provenance","foreign_source_ref"]),js=new Set(["passed","failed","stopped","canceled"]),Ls=new Set(Dn);function Ie(e){return e.replaceAll("\\","/")}function _o(e){for(let t of e)if(t!==0)return t;return 0}function ut(e){for(let[t,r]of Object.entries(e))r===void 0&&delete e[t]}var fo=["id","title","description","created_at","updated_at"],Hs=new Set(J);function mo(e){if(e?.schema)return{statusRegistry:Vn(e.schema),fieldRegistry:Wn(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function zs(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(r=>r.toLowerCase()).includes(t.trim().toLowerCase()):!1}function X(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new w(`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 w(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 po(e,t){if(!t||typeof e!="object"||e===null)return;let r=rr(e);if(!(r<=tr))throw new w(`Stored item uses format version ${r}; this runtime supports up to ${tr}. Upgrade pm before reading or changing this item.`,E.CONFLICT,{code:"item_format_version_unsupported",format_version:r,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 ho(e){let t=new Set(Hs);for(let r of e.fieldRegistry?.definitions??[])t.add(r.metadata_key);for(let r of e.extensionFieldNames)t.add(r);return t}function y(e,t){e||X(t)}function qe(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&X(t),e}function or(e,t){let r=e[t];y(typeof r=="string",`${t} must be a string`),y(q(r),`${t} must be a valid ISO timestamp`)}function so(e,t,r){let n=e[t];n!==void 0&&y(typeof n=="number"&&Number.isInteger(n)&&n>=1,`${r} must be an integer >= 1`)}function cr(e,t,r){let n=e[t];n!==void 0&&(y(typeof n=="string",`${r} must be a string`),y(q(n),`${r} must be a valid ISO timestamp`))}function Fs(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 r=t.trim().toLowerCase();y(nt.includes(r),`event.recurrence.by_weekday entries must be one of: ${nt.join(", ")}`)}}}function $s(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 Ms(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 Vs(e){let t=qe(e,"event.recurrence must be an object");y(typeof t.freq=="string","event.recurrence.freq must be a string");let r=t.freq.trim().toLowerCase();y(rt.includes(r),`event.recurrence.freq must be one of: ${rt.join(", ")}`),so(t,"interval","event.recurrence.interval"),so(t,"count","event.recurrence.count"),cr(t,"until","event.recurrence.until"),Fs(t.by_weekday),$s(t.by_month_day),Ms(t.exdates)}function Us(e){for(let n of fo)y(typeof e[n]=="string",`${n} 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 r=e.pm_format_version;return r!==void 0&&y(typeof r=="number"&&Number.isInteger(r)&&r>=er,`pm_format_version must be an integer >= ${er}`),t}function Ws(e,t){let r=e.status;y(typeof r=="string"&&r.trim().length>0,"status must be a non-empty string");let n=t?.statusRegistry,o=ct(r,n),i=n?n.definitions.map(s=>s.id):[...Qe];y(o!==void 0,`status must be one of: ${i.join(", ")}`)}function qs(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 r=e.tags;y(Array.isArray(r),"tags must be an array");for(let n of r)y(typeof n=="string","tags entries must be strings")}function Gs(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 r=t.trim().toLowerCase(),n=r==="med"||tt.includes(r);y(n,`confidence string value must be one of: ${[...tt,"med"].join(", ")}`);return}y(!1,"confidence must be a number or string")}}function Bs(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&X("severity must be a string");let r=t.trim().toLowerCase(),n=r==="med"||et.includes(r);y(n,`severity value must be one of: ${[...et,"med"].join(", ")}`)}function Js(e){e.regression!==void 0&&typeof e.regression!="boolean"&&X("regression must be a boolean")}function Ks(e){let t=e.reminders;if(t!==void 0){y(Array.isArray(t),"reminders must be an array");for(let r of t){let n=qe(r,"reminders entries must be objects");y(typeof n.at=="string","reminder.at must be a string"),y(q(n.at),"reminder.at must be a valid ISO timestamp"),y(typeof n.text=="string","reminder.text must be a string"),y(n.text.trim().length>0,"reminder.text must not be empty")}}}function Xs(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 Ys(e){e.recurrence!==void 0&&(Vs(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 Zs(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")),Xs(t),t.all_day!==void 0&&y(typeof t.all_day=="boolean","event.all_day must be a boolean"),Ys(t)}function Qs(e){let t=e.events;if(t!==void 0){y(Array.isArray(t),"events must be an array");for(let r of t)Zs(r)}}function ea(e){for(let t of["source_type","source_owner","design","external_ref"]){let r=e[t];r!==void 0&&y(typeof r=="string",`${t} must be a string`)}}function ta(e){let t=e.type_options;if(t===void 0)return;let r=qe(t,"type_options must be an object");for(let[n,o]of Object.entries(r))y(n.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 ra(e,t,r){if(r?.fieldRegistry)for(let n of r.fieldRegistry.definitions){let o=e[n.metadata_key];if(o===void 0){zs(n,t)&&X(`missing required schema field: ${n.metadata_key}`);continue}try{e[n.metadata_key]=Me(n,o,`metadata field "${n.metadata_key}"`,"metadata")}catch(i){X(String(i?.message).replace(/^Invalid\s+/u,""))}}}function na(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let r=ho(t),n=Object.keys(e).filter(o=>!r.has(o)).sort((o,i)=>o.localeCompare(i));n.length!==0&&(t.unknownFieldPolicy==="reject"?X(`unknown schema fields are not allowed: ${n.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${n.join(",")}`))}function dr(e,t){let r=qe(e,"item metadata must be an object"),n=Us(r);Ws(r,t),qs(r),Gs(r),Bs(r),Js(r),or(r,"created_at"),or(r,"updated_at"),r.deadline!==void 0&&or(r,"deadline"),Ks(r),Qs(r),cr(r,"closed_at","closed_at"),cr(r,"completed_at","completed_at"),ea(r),ta(r),ra(r,n,t),na(r,t)}function oa(e){if(!(!e||e.length===0))return[...e].map((t,r)=>(y(t.created_at===void 0||typeof t.created_at=="string"&&st(t.created_at),`dependencies.${r}.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,r)=>{let n=G(t.created_at??"",r.created_at??"");if(n!==0)return n;let o=t.id.localeCompare(r.id);if(o!==0)return o;let i=t.kind.localeCompare(r.kind);return i!==0?i:(t.source_kind??"").localeCompare(r.source_kind??"")})}function ir(e){if(!(!e||e.length===0))return[...e].sort((t,r)=>{let n=G(t.created_at,r.created_at);if(n!==0)return n;let o=t.text.localeCompare(r.text);return o!==0?o:t.author.localeCompare(r.author)})}function ia(e){if(!e||e.length===0)return;let t=[...e].map(r=>({at:r.at,text:r.text.trim()})).filter(r=>r.text.length>0).sort((r,n)=>{let o=G(r.at,n.at);return o!==0?o:r.text.localeCompare(n.text)});return t.length===0?void 0:t}function sa(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!rt.includes(t))return;let r=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>nt.includes(s)))).sort((s,a)=>Xt(s)-Xt(a)),n=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:r.length>0?r:void 0,by_month_day:n.length>0?n: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 aa(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(ca).sort(da)}function ca(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:sa(e.recurrence)};return ut(t),t}function da(e,t){return _o([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 la(e){if(!(!e||e.length===0))return e.map(t=>({path:Ie(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function ua(e){if(!e||e.length===0)return;let t=e.map(pa).filter(r=>r.run_id.length>0&&r.started_at.length>0&&r.finished_at.length>0&&r.recorded_at.length>0).sort((r,n)=>_o([G(r.recorded_at,n.recorded_at),r.run_id.localeCompare(n.run_id),r.kind.localeCompare(n.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 _a(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function sr(e){return typeof e=="string"?e:""}function fa(e){if(!Array.isArray(e))return;let t=e.filter(n=>n!==null&&typeof n=="object"&&typeof n.name=="string"&&n.name.trim().length>0&&typeof n.value=="number"&&Number.isFinite(n.value)&&typeof n.recorded_at=="string"&&n.recorded_at.trim().length>0).map(n=>({name:n.name.trim(),value:n.value,unit:typeof n.unit=="string"&&n.unit.trim()||void 0,threshold:typeof n.threshold=="number"&&Number.isFinite(n.threshold)?n.threshold:void 0,recorded_at:n.recorded_at.trim()})),r=[...new Map(t.map(n=>[n.name,n])).values()].sort((n,o)=>n.name.localeCompare(o.name)).slice(0,32);return r.length>0?r:void 0}function lt(e,t){return typeof e=="string"&&t.has(e)?e:void 0}function ma(e){if(!Array.isArray(e))return;let t=e.filter(r=>r&&typeof r.command=="string"&&r.command.trim().length>0).slice(0,32).map(r=>({command:r.command.trim(),requested_pm_context_mode:lt(r.requested_pm_context_mode,ar),pm_context_mode:lt(r.pm_context_mode,ar),workspace_context_mode:lt(r.workspace_context_mode,uo),trust_reason:lt(r.trust_reason,Ps)}));return t.length>0?t:void 0}function pa(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",r=e.kind==="test"||e.kind==="test-all"?e.kind:"test",n=js.has(e.status)?e.status:"failed",o={run_id:t,kind:r,status:n,started_at:sr(e.started_at),finished_at:sr(e.finished_at),recorded_at:sr(e.recorded_at),attempt:_a(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:fa(e.measurements),executions:ma(e.executions)};return ut(o),o}function ha(e){if(!(!Array.isArray(e)||e.length===0))return e.map(wa)}function Ve(e){if(!Array.isArray(e))return;let t=[...new Set(e.filter(r=>typeof r=="string").map(r=>r.trim()).filter(r=>r.length>0))].sort((r,n)=>r.localeCompare(n));return t.length>0?t:void 0}function fr(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function mr(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function ao(e){if(!fr(e))return;let t=Object.entries(e).map(([r,n])=>[r.trim(),String(n).trim()]).filter(([r,n])=>r.length>0&&!mr(r)&&n.length>0).sort(([r],[n])=>r.localeCompare(n));return t.length>0?Object.fromEntries(t):void 0}function ya(e){if(!fr(e))return;let t=Object.entries(e).map(([r,n])=>[r.trim(),Number(n)]).filter(([r,n])=>r.length>0&&!mr(r)&&Number.isFinite(n)).sort(([r],[n])=>r.localeCompare(n));return t.length>0?Object.fromEntries(t):void 0}function ga(e){let t=e?.trim().toLowerCase();if(!(!t||!ar.has(t)))return t}function va(e){let t=e?.trim().toLowerCase();if(!(!t||!uo.has(t)))return t}function ba(e,t){if(t===!0)return{provenance_invalid:!0};if(e===void 0)return{};if(!fr(e))return{provenance_invalid:!0};let r=m(e.author),n=m(e.created_at),o=e.source_kind;return!r||!n||!q(n)||o!=="local_mutation"&&o!=="merge_union"?{provenance_invalid:!0}:{provenance:{author:r,created_at:n,source_kind:o,source_ref:m(e.source_ref)}}}function wa(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:ga(e.pm_context_mode),workspace_context_mode:va(e.workspace_context_mode),...ba(e.provenance,e.provenance_invalid),updated_by:m(e.updated_by),updated_at:m(e.updated_at),env_set:ao(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:ao(e.assert_json_field_equals),assert_json_field_gte:ya(e.assert_json_field_gte),note:e.note?.trim()||void 0};return ut(t),t}function Ea(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,r)=>{let n=t.scope.localeCompare(r.scope);if(n!==0)return n;let o=t.path.localeCompare(r.path);return o!==0?o:(t.note??"").localeCompare(r.note??"")})}function m(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function ka(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=m(n.id),i=m(n.kind);if(!o||!i)continue;let s={id:o,kind:i},a=m(n.note);a&&(s.note=a),n.required_before_step===!0&&(s.required_before_step=!0),t.push(s)}return t.length>0?t:void 0}function Sa(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=m(n.path);if(!o)continue;let i={path:Ie(o)};(n.scope==="project"||n.scope==="global")&&(i.scope=n.scope);let s=m(n.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Ia(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=m(n.command),i=m(n.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=Ie(i));let a=m(n.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function Oa(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=m(n.path);if(!o)continue;let i={path:Ie(o)};(n.scope==="project"||n.scope==="global")&&(i.scope=n.scope);let s=m(n.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Ta(e){if(e===null||typeof e!="object")return;let t=e,r=m(t.id),n=m(t.title),o=m(t.status),i=o&&Ls.has(o)?o:void 0,s=zn(t.order)??Number.NaN,a=typeof t.created_at=="string"?t.created_at:"",d=typeof t.updated_at=="string"?t.updated_at:"";if(!r||!n||!i||!Number.isFinite(s)||!a||!d)return;let l={id:r,order:s,title:n,status:i,created_at:a,updated_at:d};return Aa(l,t),l}function Aa(e,t){let r=[["body","body"],["owner","owner"],["evidence","evidence"],["blocked_reason","blocked_reason"],["superseded_by","superseded_by"]];for(let[i,s]of r){let a=m(t[s]);a&&(e[i]=a)}let n=typeof t.completed_at=="string"?t.completed_at:void 0;n&&n.length>0&&(e.completed_at=n);let o=[["linked_items","linked_items",ka],["files","files",Sa],["tests","tests",Ia],["docs","docs",Oa]];for(let[i,s,a]of o){let d=a(t[s]);d&&(e[i]=d)}}function xa(e){if(!Array.isArray(e))return;let t=e.flatMap(r=>{let n=Ta(r);return n?[n]:[]});return t.sort((r,n)=>r.order-n.order),t.length>0?t:void 0}function Ca(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=typeof n.ts=="string"?n.ts:"",i=typeof n.author=="string"?n.author:"",s=m(n.decision);if(!o||!i||!s)continue;let a={ts:o,author:i,decision:s},d=m(n.rationale);d&&(a.rationale=d);let l=m(n.evidence);l&&(a.evidence=l);let _=m(n.step_id);_&&(a.step_id=_),t.push(a)}return t.length>0?t:void 0}function Na(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=typeof n.ts=="string"?n.ts:"",i=typeof n.author=="string"?n.author:"",s=m(n.text);if(!o||!i||!s)continue;let a={ts:o,author:i,text:s},d=m(n.step_id);d&&(a.step_id=d),t.push(a)}return t.length>0?t:void 0}function Ra(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=m(n.text);if(!o)continue;let i={text:o},s=m(n.command);s&&(i.command=s);let a=m(n.expected);a&&(i.expected=a),t.push(i)}return t.length>0?t:void 0}function Da(e){if(!e)return;let t=Object.entries(e).map(([r,n])=>[r.trim(),n.trim()]).filter(([r,n])=>r.length>0&&n.length>0).sort((r,n)=>r[0].localeCompare(n[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 Pa(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 ja(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 La(e,t){let r=e,n=t;for(let[o,i]of Object.entries(n))mr(o)||Object.prototype.hasOwnProperty.call(r,o)||i===void 0||(r[o]=i)}function Ha(e,t){if(!t?.fieldRegistry)return;let r=e;for(let n of t.fieldRegistry.definitions){let o=r[n.metadata_key];o!==void 0&&(r[n.metadata_key]=Me(n,o,`metadata field "${n.metadata_key}"`,"metadata"))}}function za(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let r=ho(t),n=Object.keys(e).filter(o=>!r.has(o)).sort((o,i)=>o.localeCompare(i));n.length>0&&t.unknownFieldPolicy==="reject"&&X(`unknown schema fields are not allowed: ${n.join(", ")}`),n.length>0&&t.onWarning?.(`item_unknown_schema_fields:${n.join(",")}`)}function _t(e,t={}){let r=mo(t),n=ct(e.status,r?.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:oo(e.pm_format_version),source_type:m(e.source_type),type_options:Da(e.type_options),status:n,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:oa(e.dependencies),comments:ir(e.comments),notes:ir(e.notes),learnings:ir(e.learnings),files:la(e.files),tests:ha(e.tests),test_runs:ua(e.test_runs),docs:Ea(e.docs),deadline:Ue(e.deadline),reminders:ia(e.reminders),events:aa(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:Pa(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:ja(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:xa(e.plan_steps),plan_decisions:Ca(e.plan_decisions),plan_discoveries:Na(e.plan_discoveries),plan_validation:Ra(e.plan_validation)};return La(i,e),Ha(i,r),za(i,r),ut(i),i}function yo(e){return g(e,J)}function Fa(e){let t=0,r=!1,n=!1;for(let o=0;o<e.length;o+=1){let i=e[o];if(r){if(n){n=!1;continue}if(i==="\\"){n=!0;continue}i==='"'&&(r=!1);continue}if(i==='"'){r=!0;continue}if(i==="{"){t+=1;continue}if(i==="}"&&(t-=1,t===0))return o}return-1}function $a(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=Fa(e);if(t<0)return{frontMatter:"",body:e};let r=e.slice(0,t+1),n=e.slice(t+1).replace(/^\r?\n+/,"");return{frontMatter:r,body:n}}function Ma(e){let t=e.charCodeAt(0)===65279?e.slice(1):e,r=t.match(/^[ \t]*---[ \t]*(?:\r?\n|$)/);if(!r)return{content:t,stripped:!1};let n=r[0].length;for(;n<t.length;){let o=t.indexOf(`
|
|
3
|
+
`,n),i=o===-1?t.length:o,s=t.slice(n,i).replace(/\r$/,""),a=o===-1?i:i+1;if(s.trim()==="---")return{content:t.slice(a).replace(/^\s+/,""),stripped:!0};n=a}return{content:t,stripped:!1}}function lr(e,t){return _t(e,{...t,onWarning:void 0})}function Va(e,t,r={}){let n=Ma(e);n.stripped&&r.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=$a(n.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 po(s,r.requireSupportedFormat),dr(s,t),{metadata:lr(s,r),body:Se(i)}}function Ua(e,t,r={}){let n;try{n=nr(e).value}catch{We("toon","TOON item document is not valid TOON")}y(typeof n=="object"&&n!==null&&!Array.isArray(n),"TOON item document must be an object");let o=n;if(po(Object.prototype.hasOwnProperty.call(o,"front_matter")?o.front_matter:o,r.requireSupportedFormat),!fo.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 dr(o.front_matter,t),y(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:lr(o.front_matter,r),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"),dr(s,t),{metadata:lr(s,r),body:Se(typeof i=="string"?i:"")}}function Wa(e,t={}){let r=_t(e.metadata,t),n=yo(r),o=Se(e.body??"");_r(JSON.parse(JSON.stringify(n))),_r({body:o});let i=JSON.stringify(n,null,2);return o?`${i}
|
|
4
|
+
|
|
5
|
+
${o}
|
|
6
|
+
`:`${i}
|
|
7
|
+
`}var qa=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/u;function ur(e,t){return typeof e=="string"?co(e,t):e===null||typeof e!="object"?null:Array.isArray(e)?lo(e.map((r,n)=>()=>ur(r,`${t}[${n}]`))):lo(Object.entries(e).map(([r,n])=>()=>{let o=t?`${t}.${r}`:r;return co(r,`${o} (key)`)??ur(n,o)}))}function co(e,t){let r=e.search(qa);return r<0?null:{path:t,index:r}}function lo(e){for(let t of e){let r=t();if(r!==null)return r}return null}function _r(e){let t=ur(e,"");if(t!==null)throw new w(`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 Ga(e,t={}){let r=_t(e.metadata,t),n=yo(r),o=Se(e.body??""),i={...n,body:o},s=JSON.parse(JSON.stringify(i));_r(s);let a=Ds(s),d;try{d=nr(a).value}catch(l){throw new w("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(!io(d,s)){let l=typeof d=="object"&&d!==null&&!Array.isArray(d)?d:{},_=Object.keys(s).find(f=>!io(s[f],l[f]))??"document";throw new w(`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 xu(e,t={}){let r=dt(e);if(r)throw new w(`Merge conflict markers detected in item document at line ${r.line} (${r.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 n=t.format??"toon",o=mo(t);return n==="toon"?Ua(e,o,t):Va(e,o,t)}function Cu(e,t={}){return(t.format??"toon")==="toon"?Ga(e,t):Wa(e,t)}function Oe(e,t={}){return{metadata:_t(e.metadata,t),body:Se(e.body??"")}}import{AsyncLocalStorage as Ba}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 pr=new Ba,go=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function ft(e,t){let r=typeof e=="string"?e.trim():"";return r.length>0?r.slice(0,t):void 0}function ce(e,t){if(e===void 0)return;let r=typeof e=="object"&&e!==null?e:{},n=ft(r.id,128),o=ft(r.parent_id,128);if(n===void 0||!go.test(n)||o!==void 0&&!go.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=ft(r.label,256);return{id:n,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function Te(e){let t={};for(let[r,n]of Object.entries(e??{}).slice(0,32)){let o=r.trim().toLowerCase().slice(0,64),i=ft(n,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function Ja(e,t,r){let n=pr.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(n?.provenance),...o,...Te(e?.provenance)},a=ce(e?.episode,!1)??ce(r,!1)??i??ce(n?.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 hr(e,t){return Ja(e.session_context,t,e.client_info?.episode)??{}}function Du(e,t){let r=pr.getStore(),n=ce(e.episode,!0),o=ce(r?.episode,!1),i=n!==void 0&&n.parent_id===void 0&&o!==void 0?{...n,parent_id:o.id}:n,s={...Te(r?.provenance),...Te(e.provenance)};return pr.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function Pu(e){let t=Te(e.provenance),r=ce(e.episode,!0);return{...r===void 0?{}:{PM_AGENT_EPISODE_ID:r.id,...r.label===void 0?{}:{PM_AGENT_EPISODE_LABEL:r.label},...r.parent_id===void 0?{}:{PM_AGENT_EPISODE_PARENT_ID:r.parent_id}},...t.role===void 0?{}:{PM_AGENT_SESSION_ROLE:t.role},...t.topic===void 0?{}:{PM_AGENT_SESSION_TOPIC:t.topic}}}import{AsyncLocalStorage as xr}from"node:async_hooks";import{createHash as Qa}from"node:crypto";import D from"node:fs";import To from"node:os";import ue from"node:path";import{createHash as vo}from"node:crypto";import{existsSync as yr,promises as bo,readFileSync as Ka}from"node:fs";import V 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 Xa="session.json";function gr(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function wo(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=e,r=["implementer","planner","release-operator"].includes(String(t.role)),n=["high","medium"].includes(String(t.confidence)),o=gr(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=>gr(d,128)),a=t.focused_item_id===void 0||gr(t.focused_item_id,128);if([r,n,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function Ya(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([r,n])=>{let o=wo(n);return o&&r.length<=128?[[r,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function vr(e){return V.join($n(e),Xa)}async function Eo(e){try{let t=await bo.readFile(vr(e),"utf8"),r=JSON.parse(t);if(r===null||typeof r!="object"||Array.isArray(r))return{};let n=r,o=n.focused_item,i=Ya(n.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 br(e,t){let r=await M(e,"session-state",h.locks.ttl_seconds,"session-state",!1,!0,h.locks.wait_ms);try{let n=await Eo(e);t(n);let o=vr(e);await bo.mkdir(V.dirname(o),{recursive:!0}),await Le(o,JSON.stringify(n))}finally{await r()}}function wr(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${vo("sha256").update(e).digest("hex").slice(0,24)}`}function Er(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function kr(e){let t=[...new Set(e)].sort((n,o)=>n.localeCompare(o));if(t.length===1)return t[0];let r=`workset:${t.join("+")}`;return r.length<=256?r:`workset:${t.join("+").slice(0,230)}+${vo("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function Sr(e,t,r){await br(e,n=>{let o={...n.semantic_attribution},i=r(o[t]);i===void 0?delete o[t]:o[t]=i,Object.keys(o).length===0?delete n.semantic_attribution:n.semantic_attribution=o})}async function Uu(e){let t=wr(e.principal);await Sr(e.pmRoot,t,r=>{let n=[...new Set([...r?.active_item_ids??[],e.itemId])].slice(-64).sort((i,s)=>i.localeCompare(s)),o=r?.focused_item_id;return{role:"implementer",topic:o??kr(n),confidence:o?"high":"medium",rule_version:"v2",evidence:Er([...n.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:n,...o?{focused_item_id:o}:{}}})}async function Wu(e){let t=wr(e.principal);await Sr(e.pmRoot,t,r=>{if(!r)return;let n=r.active_item_ids.filter(i=>i!==e.itemId);if(n.length===0&&!r.focused_item_id)return;let o=r.focused_item_id;return{...r,role:"release-operator",topic:o??kr(n),confidence:o?"high":"medium",evidence:Er([...n.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:n}})}async function qu(e){let t=wr(e.principal);await Sr(e.pmRoot,t,r=>{let n=r?.active_item_ids??[];if(!e.itemId&&n.length===0)return;let o=e.itemId;return{role:o?"planner":r.role,topic:o??kr(n),confidence:o?"high":"medium",rule_version:"v2",evidence:Er([...n.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:n,...o?{focused_item_id:o}:{}}})}function Za(e,t){let r=t.PM_PATH?.trim();if(r){let o=V.resolve(e,r);if(yr(V.join(o,"settings.json")))return o;let i=V.join(o,".agents","pm");if(yr(V.join(i,"settings.json")))return i}let n=V.resolve(e);for(let o=0;o<32;o+=1){let i=V.join(n,".agents","pm");if(yr(V.join(i,"settings.json")))return i;let s=V.dirname(n);if(s===n)break;n=s}}function ko(e){if(!e.key)return;let t=Za(e.cwd,e.env);if(t)try{let r=JSON.parse(Ka(vr(t),"utf8"));return wo(r.semantic_attribution?.[e.key])}catch{return}}async function Gu(e){return(await Eo(e)).focused_item}async function Bu(e,t){await br(e,r=>{r.focused_item=t})}async function Ju(e){await br(e,t=>{delete t.focused_item})}(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 Cr=["model","effort","role","topic","version"],ht=new xr,Ao=new xr,yt=new xr,Nr=[{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:[]}],xo=Object.freeze({max_bytes:1048576,max_lines:4096,network_access:!1,subprocess_access:!1}),ec=Object.freeze({...xo,max_bytes:4194304}),Ir=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function tc(e){let t=Z(e).provenance_unavailable_dimensions,r=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([...r].sort()),native_sources:Object.freeze(["environment","argv","mcp_client",...Object.values(e.provenance_resolvers??{}).some(n=>n?.endsWith("session_file"))?["session_file"]:[]]),probe_policy:e.harness==="codex"?ec:xo,normalization:Object.freeze({model_family:"v1",effort:"v1",preserve_raw:!0}),confidence:"high",waivers:Object.freeze(Object.fromEntries(t.map(n=>[n,"Harness does not expose this dimension."])))})}var Co=Object.freeze(Nr.filter(e=>e.harness!=="ci").map(tc).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 Y(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(!Ir.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:Y(e.environment_keys),model_environment_keys:Y(e.model_environment_keys),session_environment_keys:Y(e.session_environment_keys),provenance_environment_keys:Object.fromEntries(Object.entries(e.provenance_environment_keys??{}).slice(0,32).map(([r,n])=>[r.trim().toLowerCase().slice(0,64),Y(n)]).filter(([r])=>Ir.test(r))),provenance_resolvers:Object.fromEntries(Object.entries(e.provenance_resolvers??{}).slice(0,32).map(([r,n])=>[r.trim().toLowerCase().slice(0,64),n]).filter(r=>typeof r[0]=="string"&&Ir.test(r[0])&&(r[1]==="ai_agent_version"||r[1]==="claude_session_file"||r[1]==="codex_session_file"))),provenance_unavailable_dimensions:Y(e.provenance_unavailable_dimensions).map(r=>r.toLowerCase()),argv_markers:Y(e.argv_markers).map(r=>r.toLowerCase()),client_names:Y(e.client_names).map(r=>r.toLowerCase())}}var No=Nr.map(Z);function rc(e,t){return JSON.stringify(e)===JSON.stringify(t)}function pt(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function Rr(e=[]){let t=new Map(Nr.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 r=[...t.values(),...No.filter(o=>o.harness==="ci"),...[...Ae.values()].map(o=>o.descriptor),...yt.getStore()?.descriptors??[],...e.map(Z)],n=new Set;for(let o of r){if(n.has(o.harness))throw new Error(`Harness signal descriptor collision for "${o.harness}"`);n.add(o.harness)}return r}function Dr(e,t){for(let r of t??[]){let n=N(e[r]);if(n)return n.slice(0,256)}}function nc(e,t){if(t==="role"){let r=e.slice(0,8).map(n=>n.trim().toLowerCase()).find(n=>["claim","create","update","close","release","review"].includes(n));if(r==="review")return"reviewer";if(r)return"implementer"}}function Ro(e,t){let r=t==="model"?["--model","--agent-model"]:[`--agent-${t}`],n=e.slice(0,8);for(let o=0;o<n.length;o+=1){let i=n[o].slice(0,512);if(r.includes(i))return N(n[o+1])?.slice(0,256);let s=r.find(a=>i.startsWith(`${a}=`));if(s)return N(i.slice(s.length+1))?.slice(0,256)}}var oc=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function de(e,t){if(e!=="role"||t===void 0)return t;let r=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return oc.has(r)?r:void 0}function Or(e,t){return N(e?.[t])?.slice(0,256)}var ic=1048576,Ar=4194304,mt=new Map,So=Object.freeze({}),Tr=new Map,Io=Object.freeze({});function Oo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function sc(e){let t;try{t=JSON.parse(e)}catch{return Io}let r=Oo(t);if(!r)return Io;let n=[{value:r,depth:0}],o=0,i,s;for(;n.length>0&&o<64;){let a=n.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=Oo(d);l&&n.push({value:l,depth:a.depth+1})}}return Object.freeze({model:i,version:s})}function Do(e){try{return D.lstatSync(e).isFile()?"available":"missing"}catch(t){return W(t)?"missing":"failed"}}function ac(e,t){let r;try{r=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:Do(i)}})}catch(o){return{status:W(o)?"missing":"failed"}}let n=r.filter(({status:o})=>o==="available").map(({candidate:o})=>o);return n.length===0?{status:r.some(({status:o})=>o==="failed")?"failed":"missing"}:n.length>1?{status:"ambiguous"}:{status:"available",path:n[0]}}function Po(e,t){let r=N(t.CLAUDE_CODE_SESSION_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return{status:"unavailable"};let n=ue.resolve(e.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),o=ue.join(e.home_dir??To.homedir(),".claude","projects"),i=ue.join(o,n,`${r}.jsonl`),s=N(e.session_file),a=s&&ue.basename(s)===`${r}.jsonl`?s:void 0;for(let d of[a,i]){if(!d)continue;let l=Do(d);if(l==="available")return{status:l,path:d};if(l==="failed")return{status:l}}return ac(o,r)}function cc(e,t,r){let n=Po(t,r);if(n.status==="available")try{let o=D.openSync(n.path,D.constants.O_RDONLY|D.constants.O_NOFOLLOW);try{let i=D.fstatSync(o),s=`${n.path}\0${i.size}\0${i.mtimeMs}`,a=Tr.get(s);if(a)return a[e];let d=Math.min(i.size,ic),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 b=Buffer.alloc(_);_>0&&D.readSync(o,b,0,_,i.size-_);let O={},S=i.size<=d?Buffer.concat([f,b]).toString("utf8").split(`
|
|
9
|
+
`):[...f.toString("utf8").split(`
|
|
10
|
+
`).slice(0,4096),...b.toString("utf8").split(`
|
|
11
|
+
`).slice(-4096)];for(let H of S){if(H.length===0||H.length>262144)continue;let B=sc(H);if(O.model??=B.model,O.version??=B.version,O.model&&O.version)break}let z=Object.freeze(O);return Tr.clear(),Tr.set(s,z),z[e]}finally{D.closeSync(o)}}catch{return}}function dc(e,t){let r=0,n=(o,i)=>{if(i>4||r>=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(r+=1,r>512)return;let d=ue.join(o,a.name);if(a.isFile()&&a.name.endsWith(`-${t}.jsonl`))return d;if(a.isDirectory()){let l=n(d,i+1);if(l)return l}}};return n(e,0)}function lc(e){if(e<=Ar)return[{offset:0,length:e}];let t=Math.floor(Ar/2);return[{offset:e-t,length:t},{offset:0,length:t}]}function uc(e,t){if(t.length===0||t.length>262144)return;let r;try{r=JSON.parse(t)}catch{return}if(typeof r!="object"||r===null||Array.isArray(r))return;let n=r;if(n.type!=="turn_context")return;let o=typeof n.payload=="object"&&n.payload!==null?n.payload:void 0;e.model??=N(o?.model)?.slice(0,256),e.effort??=N(o?.effort)?.slice(0,256)}function _c(e,t){let r={},n=4096;for(let o of lc(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,n);n-=s.length;for(let a of s)if(uc(r,a),r.model&&r.effort)break;if(r.model&&r.effort||n<=0)break}return r}function fc(e,t,r){let n=N(r.CODEX_THREAD_ID);if(!n||!/^[A-Za-z0-9_-]{1,128}$/u.test(n))return;let o=ue.join(t.home_dir??To.homedir(),".codex","sessions"),i=`${o}\0${n}`,s=mt.get(i);if(s)return s[e];let a=dc(o,n);if(!a){mt.set(i,So);return}try{let d=D.openSync(a,"r");try{let l=D.fstatSync(d).size,_=_c(d,l);return mt.set(i,_),_[e]}finally{D.closeSync(d)}}catch{mt.set(i,So);return}}function mc(e,t,r,n){let o=yt.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(N(r.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let i=n?.provenance_resolvers[e];if(i==="claude_session_file")return cc(e,t,r);if(i==="codex_session_file")return fc(e,t,r);if(i==="ai_agent_version"){let s=N(r.AI_AGENT);return!s||!n||!pt(s,n.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(s)?.[1]?.slice(0,256)}}function pc(e,t,r,n){if(e==="ai_agent_version"){let o=N(n.AI_AGENT);return o!==void 0&&pt(o,t.harness)?"available":"unavailable"}return e==="codex_session_file"?N(n.CODEX_THREAD_ID)!==void 0?"available":"unavailable":Po(r,n).status}function Pr(e){return e||(Ao.getStore()??{env:process.env,argv:process.argv})}function hc(e,t,r,n){let o=e.environment_keys.some(a=>N(t[a])!==void 0),i=e.argv_markers.some(a=>r.some(d=>{let l=d.replaceAll("\\","/");return pt(l.slice(l.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>n===a||pt(n,a));return o||i||s}function yc(e,t){if(!t)return;let r;if(e==="topic"&&(r=t.topic),e==="role"&&(r=t.role),!!r)return{value:r,source:"inferred",confidence:t.confidence,rule_version:t.rule_version,evidence:t.evidence}}function gc(e){let t=e.find(([r])=>r!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function vc(e,t,r,n,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...Cr,...Object.keys(n?.provenance_environment_keys??{})]),d,l,_;a.has(e)&&(d=de(e,N(r[s])?.slice(0,256)),_=de(e,Ro(t.argv??[],e)),l=de(e,nc(t.argv??[],e)));let f={...n?.provenance_environment_keys,model:n?.model_environment_keys},b={...t.client_info?.provenance,model:t.client_info?.model},O=Or(o?.provenance,e),S=de(e,Dr(r,f[e])),z=de(e,Or(b,e)),H=de(e,Or(t.provenance,e)),B=mc(e,t,r,n);return gc([[d,"override"],[O,"session"],[_,"argv"],[S,"environment"],[z,"mcp_client"],[H,"host"],[B,"probe"]])??yc(e,i)??(l?{value:l,source:"argv"}:void 0)}function bc(e,t){if(!(!e||!t))return Qa("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function wc(e,t,r,n,o){let i=Object.keys(r?.provenance_environment_keys??{}),s=new Set([...Cr,...i,...Object.keys(r?.provenance_resolvers??{}),...Object.keys(e.provenance??{}),...Object.keys(e.client_info?.provenance??{}),...Object.keys(n?.provenance??{})]),a={};for(let d of s){let l=vc(d,e,t,r,n,o);l?a[d]=l:r&&(d!=="version"||r.provenance_unavailable_dimensions.includes(d))&&(a[d]=null)}return a}function o_(e){let t=e.map(Z),r=new Map(No.map(i=>[i.harness,i])),n=new Set;for(let i of t){if(n.has(i.harness)||r.has(i.harness))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);let s=Ae.get(i.harness);if(s&&!rc(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);n.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 Ec(e){let t=Z(e.descriptor),r=e.harness.trim().toLowerCase();if(e.contract_version!==1)throw new Error(`Unsupported provenance adapter contract for "${r}": ${e.contract_version}`);if(t.harness!==r)throw new Error(`Provenance adapter harness "${r}" does not match descriptor "${t.harness}".`);let n=N(e.adapter_version)?.slice(0,64);if(!n)throw new Error(`Provenance adapter "${r}" requires a version.`);if(!Number.isSafeInteger(e.priority))throw new Error(`Provenance adapter "${r}" requires an integer priority.`);if(e.probe_policy.network_access!==!1||e.probe_policy.subprocess_access!==!1||e.probe_policy.max_bytes>Ar||e.probe_policy.max_lines>4096)throw new Error(`Provenance adapter "${r}" exceeds the bounded local probe policy.`);return Object.freeze({...e,adapter_version:n,harness:r,descriptor:t,supported_dimensions:Object.freeze(Y(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 i_(){let e=new Map(Co.map(t=>[t.harness,t]));for(let{adapter:t}of le.values())e.set(t.harness,t);return Object.freeze([...e.values()].sort((t,r)=>t.harness.localeCompare(r.harness)))}function s_(e){let t=e.map(Ec),r=new Map(Co.map(i=>[i.harness,i])),n=new Set;for(let i of t){if(n.has(i.harness))throw new Error(`Provenance adapter collision for "${i.harness}".`);let s=r.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}".`);n.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 a_(e,t){let r=t.trim().slice(0,256),n=r.toLowerCase();if(e==="model"){let o=/^(gpt-\d+(?:\.\d+)?)/u.exec(n)?.[1];o&&(n=o)}else n=n.replaceAll(/[_\s-]+/gu,""),n={minimal:"low",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max",ultra:"ultra"}[n]??n;return{raw:r,normalized:n,vocabulary:"v1"}}function c_(e,t){return Ao.run(e,t)}function d_(e,t,r={}){let n=e.map(Z);return Rr(n),yt.run({descriptors:n,probesEnabled:r.probesEnabled!==!1},t)}function jr(e){let t=Pr(e),r=t.env??{},n=Rr(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=n.find(S=>hc(S,r,o,i)),a=hr(t,r),d=[Dr(r,s?.session_environment_keys),N(t.client_info?.session)?.slice(0,256)].find(S=>S!==void 0),l=bc(s?.harness,d),_=ko({cwd:t.cwd??process.cwd(),env:r,key:l}),f=wc(t,r,s,a,_),b=f.model,O=[["harness",s?.harness],["model",b?.value],["model_source",b?.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 kc(e){return e==="unavailable"?{status:"unavailable",reason:"harness_unavailable"}:e==="missing"?{status:"unavailable",reason:"resolver_input_missing"}:{status:"failed",reason:"resolver_failed"}}function Sc(e,t,r,n,o,i,s){let a=r?.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=pc(a,r,n,o);return{...kc(d),resolver:a,rule_version:"v1"}}return{status:r?.provenance_unavailable_dimensions.includes(e)?"unavailable":"not_configured",reason:r?.provenance_unavailable_dimensions.includes(e)?"harness_unavailable":"resolver_not_configured",rule_version:"v1"}}function jo(e){let t=Pr(e),r=jr(t),n=Rr(t.descriptors).find(l=>l.harness===r.harness),o=t.env??{},i=t.probes_enabled!==!1&&yt.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(N(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=hr(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,Dr(o,n?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,Ro(t.argv??[],"role")].some(l=>{let _=N(l)?.slice(0,256);return _!==void 0&&de("role",_)===void 0}),d=Object.fromEntries(Cr.map(l=>[l,Sc(l,r,n,t,o,i,l==="role"&&a)]));return{...r,provenance_outcomes:d}}function l_(){return process.env.PM_AUTHOR}function u_(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function __(e){return jr(e).harness}function Ic(e,t,r){let n=Pr(r),o=jr(n);if(e!==void 0){let s=N(e);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}if(n.env?.PM_AUTHOR!==void 0){let s=N(n.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 Lo(e){let t=ht.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function Ho(e){let t=ht.getStore();return t?.author!==e?e.startsWith("harness:")?{harness:e.slice(8)}:{}:{...t.harness?{harness:t.harness}:{},...t.model?{model:t.model}:{},...t.model_source?{model_source:t.model_source}:{},...t.session?{session:t.session}:{},...t.instance?{instance:t.instance}:{},...t.provenance?{provenance:t.provenance}:{},...t.episode?{episode:t.episode}:{}}}function f_(e){let t=ht.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function zo(e,t){let r=Ic(e,t);return ht.enterWith(r),r.author}import Oc from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="58661057-fa80-5571-9be7-b949723c274b")}catch{}})();async function gt(e,t){let r=await Oc.readFile(e).catch(s=>{if(W(s))return null;throw s}),n=r?.toString("utf8")??null;if(n===null)return{raw:n,raw_bytes:r,entries:[]};if(await it({path:e,scope:"project"}),n.trim()==="")return{raw:n,raw_bytes:r,entries:[]};let o=dt(n);if(o)throw new w(`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 n.split(/\r?\n/).entries()){let d=a.trim();if(d)try{i.push(JSON.parse(d))}catch{throw new w(`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:n,raw_bytes:r,entries:i}}async function Ge(e,t){return(await gt(e,t)).entries}import rn 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 Fo(e){let t=[],r=e[0]?.op==="history_compact_baseline",n=r?1:void 0,o=!1;for(let[i,s]of e.entries())s.op==="delete"&&(o=!0),s.op==="create"&&(n!==void 0&&t.push({prior_genesis_index:n,repeated_create_index:i+1,sequence:o?"delete_then_create":r?"checkpoint_then_create":"multiple_creates"}),n??=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]="82c79093-2a40-5b4c-8d41-637b0ae03c4f")}catch{}})();import pi from"fast-json-patch";import ui from"node:fs/promises";import dd from"node:path";import T from"node:fs/promises";import C from"node:path";import{createHash as wt,randomUUID as Mr}from"node:crypto";import{createRequire as Dc}from"node:module";import{setImmediate as Vo}from"node:timers/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]="3c2c29c0-0034-54d4-9dbd-2e9af047784e")}catch{}})();var Tc=["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"],Ac=["append","cancel","claim","close","comment_add","create","learning_add","note_add","reopen"],xc=new Set(Tc),Cc=new Set(Ac),Nc=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 Rc(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:xc.has(e.op)?"maintenance":Cc.has(e.op)||e.op!=="update"?"substantive":Array.isArray(e.patch)&&e.patch.length>0&&e.patch.every(t=>{let r=Rc(t);return r!==void 0&&Nc.has(r)})?"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 $o(e){let t=process.emitWarning;process.emitWarning=(r,...n)=>{r==="SQLite is an experimental feature and might change at any time"&&n[0]==="ExperimentalWarning"||Reflect.apply(t,process,[r,...n])};try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}finally{process.emitWarning=t}}function Mo(e,t){let r=Number.parseInt(e,10);return Number.isFinite(r)&&r>=22?$o(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 Pc="history-event-index.sqlite",Vr="7",jc=8,Uo=32,Xo="history-event-index",Lc="history-event-index:append:",Hc=5e3,Ur=300,Yo=3e4,zc="history-event-index-invalidation",Fc="history-event-index-invalidations",$c=Ur*2*1e3,Q=Symbol("history-index-changed"),_e=new Map;function me(e){return C.join(e,"runtime",Pc)}function Zo(e){return C.join(e,"runtime","history-event-index-repair-deferred")}async function Qo(e){try{let t=Number(await T.readFile(Zo(e),"utf8")),r=Date.now()-t;return r>=0&&r<Hc}catch{return!1}}async function Wo(e){try{await T.writeFile(Zo(e),`${Date.now()}
|
|
13
|
+
`)}catch{}}function Be(e){return C.join(e,"runtime",Fc)}async function Et(e){let t=await T.readdir(Be(e)).catch(r=>{if(ie(r))return[];throw r});return{pending:t.filter(r=>r.endsWith(".pending")).sort(),committed:t.filter(r=>r.endsWith(".committed")).sort()}}async function qo(e){let t=await Et(e);return{pending:(await Promise.all(t.pending.map(async r=>{let n=/^(\d+)-(unknown|\d+)-(\d+)-.+\.pending$/u.exec(r);if(n!==null){let o=n[2];if(await Xn({pid:Number(n[1]),...o==="unknown"?{}:{process_start_identity:o}},Math.max(0,Date.now()-Number(n[3])),$c))return r}return await T.rm(C.join(Be(e),r),{force:!0}),null}))).filter(r=>r!==null),committed:t.committed}}async function Fr(e,t,r=Yo){let n=await M(e,zc,Ur,`history-event-index-invalidation:${process.pid}`,!1,!1,r,r===0?{maxWaitMs:0}:void 0);try{return await t()}finally{await n()}}async function Mc(e){let t=Be(e);await T.mkdir(t,{recursive:!0});let r=Mr(),n=await Kn(),o=C.join(t,`${n.pid}-${n.process_start_identity??"unknown"}-${Date.now()}-${r}.pending`);return await T.writeFile(o,`pending
|
|
14
|
+
`,{flag:"wx"}),{pendingPath:o,committedPath:C.join(t,`${r}.committed`)}}function Vc(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}async function kt(e){try{await T.rm(me(e),{force:!0})}catch{}}async function Lr(e,t){let r=Be(e);await T.mkdir(r,{recursive:!0}),await T.writeFile(C.join(r,`${Mr()}${t?".contended":""}.committed`),`committed
|
|
15
|
+
`,{flag:"wx"}),t||await kt(e)}function St(e){return e.committed.some(t=>t.endsWith(".contended.committed"))}function $r(e,t){let r;try{return r=new t(me(e)),r.exec("PRAGMA busy_timeout = 0"),r.exec("BEGIN EXCLUSIVE"),!1}catch(n){return fe(n)}finally{r?.close()}}async function Go(e,t){return t.pending.length>0||await Yn(e,Xo,Lc)}async function ei(e,t,r=Yo,n="rebuild"){let o=await M(e,Xo,Ur,`history-event-index:${n}:${process.pid}`,!1,!1,r,r===0?{maxWaitMs:0}:void 0);try{return await t()}finally{await o()}}async function ti(e,t,r=!1){let n=C.join(e,"history"),o=await T.readdir(n,{withFileTypes:!0}).catch(f=>{if(typeof f=="object"&&f!==null&&"code"in f&&f.code==="ENOENT")return[];throw f}),i=_e.get(e)??{streams:new Map,ordered_events:[]},s=new Map(i.streams),a=i.ordered_events,d=new Set,l=!_e.has(e);for(let f of o.filter(b=>b.isFile()&&b.name.endsWith(".jsonl")).sort((b,O)=>b.name.localeCompare(O.name))){let b=f.name.slice(0,-6);d.add(b);let O=C.join(n,f.name);if(!Hr(b,t))continue;let S=await Wc(O,b,s.get(b),r);S!==void 0&&(s.set(b,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(Wr));let _={streams:s,ordered_events:a};if(_e.delete(e),_e.set(e,_),_e.size>jc){let f=_e.keys().next().value;_e.delete(f)}return{events:_.ordered_events.filter(f=>Hr(f.stream_id,t)).map(f=>Uc(f,r)),stream_receipts:new Map([..._.streams].filter(([f])=>Hr(f,t)).map(([f,b])=>[f,{byte_size:b.byte_size,content_hash:b.signature}]))}}function Uc(e,t){return t||e.recorded_entry===void 0?e:{stream_id:e.stream_id,stream_offset:e.stream_offset,entry:e.entry}}function Hr(e,t){return!t?.length||t.includes(e)}async function Wc(e,t,r,n){if(!n&&r!==void 0&&r.byte_size===(await T.stat(e)).size){let o=wt("sha256").update(await T.readFile(e)).digest("hex");if(r.signature===o)return}return qc(e,t,n)}async function qc(e,t,r){let n=await gt(e,t);if(r){let i=Tt(n.entries);if(!i.ok)throw new w(`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=n.raw_bytes??new Uint8Array;return{signature:wt("sha256").update(o).digest("hex"),byte_size:o.byteLength,events:ri(n.entries,t).map((i,s)=>({stream_id:t,stream_offset:s,entry:i,...r?{recorded_entry:n.entries[s]}:{}}))}}async function Gc(e,t){return ri((await gt(e,t)).entries,t)}function ri(e,t){for(let[r,n]of e.entries())if(typeof n.ts!="string"||!Ee(n.ts.trim()))throw new w(`History for ${t} contains an invalid or sub-millisecond timestamp at line ${r+1}. Repair or restore the history stream and retry.`,E.GENERIC_FAILURE,{code:"history_timestamp_invalid"});return e.map(r=>({...r,ts:new Date(r.ts.trim()).toISOString()}))}var zr;function Ot(){return zr!==void 0||(zr=Mo(process.versions.node,Dc(import.meta.url))),zr}function Bc(e){e.exec(`
|
|
16
|
+
PRAGMA journal_mode = OFF;
|
|
17
|
+
PRAGMA synchronous = OFF;
|
|
18
|
+
CREATE TABLE metadata (
|
|
19
|
+
key TEXT PRIMARY KEY,
|
|
20
|
+
value TEXT NOT NULL
|
|
21
|
+
) STRICT;
|
|
22
|
+
CREATE TABLE events (
|
|
23
|
+
stream_id TEXT NOT NULL,
|
|
24
|
+
stream_offset INTEGER NOT NULL,
|
|
25
|
+
ts TEXT NOT NULL,
|
|
26
|
+
author TEXT NOT NULL,
|
|
27
|
+
agent_harness TEXT,
|
|
28
|
+
agent_instance TEXT,
|
|
29
|
+
op TEXT NOT NULL,
|
|
30
|
+
event_class TEXT NOT NULL CHECK(event_class IN ('substantive', 'maintenance')),
|
|
31
|
+
entry_json TEXT NOT NULL,
|
|
32
|
+
PRIMARY KEY(stream_id, stream_offset)
|
|
33
|
+
) STRICT;
|
|
34
|
+
CREATE TABLE streams (
|
|
35
|
+
stream_id TEXT PRIMARY KEY,
|
|
36
|
+
byte_size INTEGER NOT NULL CHECK(byte_size >= 0),
|
|
37
|
+
content_hash TEXT NOT NULL
|
|
38
|
+
) STRICT;
|
|
39
|
+
CREATE INDEX events_order
|
|
40
|
+
ON events(ts, stream_id, stream_offset);
|
|
41
|
+
CREATE INDEX events_op_order
|
|
42
|
+
ON events(op, ts, stream_id, stream_offset);
|
|
43
|
+
CREATE INDEX events_class_stream_order
|
|
44
|
+
ON events(event_class, stream_id, ts, stream_offset);
|
|
45
|
+
CREATE INDEX events_author_order
|
|
46
|
+
ON events(author, ts, stream_id, stream_offset);
|
|
47
|
+
CREATE INDEX events_harness_order
|
|
48
|
+
ON events(agent_harness, ts, stream_id, stream_offset);
|
|
49
|
+
CREATE INDEX events_instance_order
|
|
50
|
+
ON events(agent_instance, ts, stream_id, stream_offset);
|
|
51
|
+
`),e.prepare("INSERT INTO metadata(key, value) VALUES ('version', ?)").run(Vr)}function ni(e,t){let r={...t.entry,ts:new Date(t.entry.ts.trim()).toISOString()};e.prepare(`INSERT INTO events(
|
|
52
|
+
stream_id, stream_offset, ts, author, agent_harness,
|
|
53
|
+
agent_instance, op, event_class, entry_json
|
|
54
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(t.stream_id,t.stream_offset,r.ts,r.author,r.agent_harness??null,r.agent_instance??null,r.op,xe(r),JSON.stringify(r))}function oi(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 ii(e,t,r){e.prepare(`INSERT INTO streams(stream_id, byte_size, content_hash) VALUES (?, ?, ?)
|
|
55
|
+
ON CONFLICT(stream_id) DO UPDATE SET byte_size = excluded.byte_size, content_hash = excluded.content_hash`).run(t,r.byte_size,r.content_hash)}async function Jc(e,t={}){let r=Ot();return r?ei(e,async()=>{let n;try{n=await Fr(e,()=>qo(e),t.lockWaitMs)}catch(a){if(a instanceof w&&a.code==="lock_conflict")return!1;throw a}if(n.pending.length>0||St(n)&&$r(e,r))return!1;let o=me(e);await T.mkdir(C.dirname(o),{recursive:!0});let i=`${o}.${Mr()}.tmp`,s;try{s=new r(i),Bc(s),s.exec("BEGIN IMMEDIATE");let a=await ti(e);await Kc(s,a),s.exec("COMMIT"),s.close(),s=void 0;let d=await Fr(e,async()=>{let l=await qo(e);return l.pending.length>0||!Vc(n.committed,l.committed)||St(l)&&$r(e,r)?!1:(await T.rm(o,{force:!0}),await T.rename(i,o),!0)},t.lockWaitMs);return d&&await Promise.all(n.committed.map(l=>T.rm(C.join(Be(e),l),{force:!0}))),d||(await Wo(e),await T.rm(i,{force:!0})),d}catch(a){throw await Wo(e),s?.close(),await T.rm(i,{force:!0}),a}},t.lockWaitMs):!1}async function Kc(e,t){let r=0;for(let n of t.events)ni(e,n),++r%500===0&&await Vo();for(let[n,o]of t.stream_receipts)ii(e,n,o),++r%500===0&&await Vo()}function vt(e,t){return!t||t.length===0||t.includes(e)}function Wr(e,t){return e.entry.ts.localeCompare(t.entry.ts)||e.stream_id.localeCompare(t.stream_id)||e.stream_offset-t.stream_offset}function It(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():e}function Xc(e,t){if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){if(Wr(e,{stream_id:t.after_stream_id,stream_offset:t.after_stream_offset,entry:{...e.entry,ts:It(t.after_ts)}})<=0)return!1}else if(t.since_ts!==void 0&&e.entry.ts<It(t.since_ts))return!1;return!0}function Yc(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 Zc(e,t){return!Xc(e,t)||!vt(e.entry.op,t.ops)||!vt(e.entry.author,t.authors)||!vt(e.entry.agent_instance??"",t.agent_instances)||!vt(e.stream_id,t.stream_ids)||!Yc(e,t)?!1:(t.provenance??[]).every(r=>{let n=e.entry.agent_provenance?.[r.dimension]?.value;return n!==void 0&&r.values.includes(n)})}async function Qc(e,t){let r=Math.max(0,Math.floor(t.limit)),n=await ti(e,t.stream_ids,t.verify),o=n.events.filter(i=>Zc(i,t)).slice(0,r+1);return{events:o.slice(0,t.limit),has_more:o.length>t.limit,...t.verify?{verified_streams:n.stream_receipts.size}:{}}}async function ed(e,t){let r=e.prepare("SELECT byte_size, content_hash FROM streams WHERE stream_id = ?").get(C.basename(t,".jsonl")),n=0;try{n=(await T.stat(t)).size}catch(i){if(!ie(i))throw i}if(Number(r?.byte_size??0)!==n)return!1;let o=await Gr(C.dirname(C.dirname(t)),C.basename(t,".jsonl"));return r===void 0?o?.byte_size===0:o?.content_hash===r.content_hash}async function si(e,t,r){let n=C.dirname(C.dirname(e)),o=Ot(),i=!1,s=async()=>{await r(),i=!0};if(!o){await Bo(n,s);return}try{await ei(n,async()=>{let a=me(n);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!==Vr)throw new TypeError("Unsupported history event index version");if(!await ed(d,e))throw new TypeError("Stale history event index append base")}catch(_){if(d?.close(),fe(_))throw _;await Lr(n,!0),await s();return}try{d.exec("PRAGMA busy_timeout = 0"),d.exec("BEGIN IMMEDIATE")}catch(_){if(d.close(),fe(_)||!(_ instanceof Error)||_.code!=="ERR_SQLITE_ERROR")throw _;await Lr(n,!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(_);ni(d,{stream_id:_,stream_offset:Number(f.value),entry:t}),ii(d,_,await Gr(n,_)),d.exec("COMMIT"),d.close()}catch(_){if(d?.close(),!l)throw _;await Lr(n,fe(_))}},0,"append")}catch(a){if(i){await kt(n);return}if(!rd(a))throw a;await Bo(n,s,fe(a))}}async function Bo(e,t,r=!1){let n=!1,o;try{await Fr(e,async()=>{let i=r||St(await Et(e)),s=await Mc(e);o=s.pendingPath;try{await t(),n=!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 kt(e)})}catch(i){if(n){await kt(e);try{await T.rm(o,{force:!0})}catch{}return}throw i}}async function qr(e){await T.rm(me(C.dirname(C.dirname(e))),{force:!0})}function bt(e,t,r,n){!n||n.length===0||(e.push(`${r} IN (${n.map(()=>"?").join(", ")})`),t.push(...n))}function td(e,t,r,n){if(!r||r.length===0)return;let o=r.map(()=>"?").join(", "),i=n??[];if(i.length>0){e.push(`(agent_harness IN (${o}) OR (agent_harness IS NULL AND author IN (${i.map(()=>"?").join(", ")})))`),t.push(...r,...i);return}e.push(`agent_harness IN (${o})`),t.push(...r)}async function ai(e,t,r,n){let o;try{let i=await Et(e);if(await Go(e,i))return Q;let s=await Jo(e);if(i.committed.length>0)return St(i)&&$r(e,t)?Q:null;if(o=new t(me(e),{readOnly:!0}),o.exec("BEGIN"),o.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==Vr)return null;let a=n(o);if(a===null)return null;let d=nd(o,r),l=o;o=void 0,l.close();let _=await id([...d.keys()],e,r),f=await od(d,e,_),b=await Et(e);return b.committed.length>0||await Go(e,b)||s!==await Jo(e)?Q:f?a:null}catch(i){return fe(i)?Q:null}finally{o?.close()}}function fe(e){return typeof e=="object"&&e!==null&&"errcode"in e&&[5,6].includes(e.errcode)}function rd(e){return fe(e)||e instanceof w&&e.code==="lock_conflict"}function nd(e,t){let r=new Map,n=t&&t.length>0?[...new Set(t)]:void 0;if(n===void 0)for(let o of e.prepare("SELECT stream_id, byte_size, content_hash FROM streams").all())r.set(String(o.stream_id),{byte_size:Number(o.byte_size),content_hash:String(o.content_hash)});else for(let o=0;o<n.length;o+=500){let i=n.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))r.set(String(s.stream_id),{byte_size:Number(s.byte_size),content_hash:String(s.content_hash)})}return r}async function Jo(e){let t=await T.stat(me(e),{bigint:!0});return[t.dev,t.ino,t.size,t.mtimeNs,t.ctimeNs].join(":")}async function $_(e,t){if(t.verify)return{result:await Qc(e,t),repair_needed:!1};let r=Ot();if(!r)return{result:null,repair_needed:!1};let n=[],o=[];if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){n.push("(ts > ? OR (ts = ? AND stream_id > ?) OR (ts = ? AND stream_id = ? AND stream_offset > ?))");let a=It(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&&(n.push("ts >= ?"),o.push(It(t.since_ts)));bt(n,o,"op",t.ops),bt(n,o,"author",t.authors),td(n,o,t.harnesses,t.harness_alias_authors),bt(n,o,"agent_instance",t.agent_instances);for(let a of t.provenance??[])n.push(`json_extract(entry_json, '$.agent_provenance.${a.dimension}.value') IN (${a.values.map(()=>"?").join(", ")})`),o.push(...a.values);bt(n,o,"stream_id",t.stream_ids);let i=n.length===0?"":` WHERE ${n.join(" AND ")}`,s=await ai(e,r,t.stream_ids,a=>{let d=a.prepare(`SELECT stream_id, stream_offset, entry_json
|
|
56
|
+
FROM events${i}
|
|
57
|
+
ORDER BY ts, stream_id, stream_offset
|
|
58
|
+
LIMIT ?`).all(...o,Math.max(0,Math.floor(t.limit))+1),l=d.slice(0,t.limit).map(oi);return l.includes(null)?null:{events:l,has_more:d.length>t.limit}});return{result:s===Q?null:s,repair_needed:s===null&&!await Qo(e)}}function ci(e,t){let r=Object.create(null);for(let n of e){if(!t.has(n.stream_id)||xe(n.entry)!=="substantive")continue;let o=r[n.stream_id];(o===void 0||Wr(o,n)<0)&&(r[n.stream_id]=n)}return r}async function Gr(e,t){if(C.basename(t)!==t)return null;try{let r=C.join(e,"history",`${t}.jsonl`),n=await T.stat(r),o=await T.readFile(r);return n.size!==o.length?null:{byte_size:o.length,content_hash:wt("sha256").update(o).digest("hex")}}catch(r){if(ie(r))return{byte_size:0,content_hash:wt("sha256").digest("hex")};throw r}}async function od(e,t,r){for(let n=0;n<r.length;n+=Uo){let o=r.slice(n,n+Uo),i=await Promise.all(o.map(s=>Gr(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 id(e,t,r){if(r&&r.length>0)return[...new Set(r.filter(o=>o.trim().length>0))];let n=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,...n])]}async function Ko(e,t,r,n){return e?ai(t,e,r,o=>{let i=[];for(let s=0;s<r.length;s+=500){let a=r.slice(s,s+500),d=o.prepare(`SELECT stream_id, stream_offset, entry_json
|
|
59
|
+
FROM (
|
|
60
|
+
SELECT stream_id, stream_offset, entry_json,
|
|
61
|
+
ROW_NUMBER() OVER (
|
|
62
|
+
PARTITION BY stream_id
|
|
63
|
+
ORDER BY ts DESC, stream_offset DESC
|
|
64
|
+
) AS recency_rank
|
|
65
|
+
FROM events
|
|
66
|
+
WHERE event_class = 'substantive'
|
|
67
|
+
AND stream_id IN (${a.map(()=>"?").join(", ")})
|
|
68
|
+
)
|
|
69
|
+
WHERE recency_rank = 1`).all(...a).map(oi);if(d.includes(null))return null;i.push(...d)}return ci(i,n)}):null}async function M_(e,t){let r=[...new Set(t.filter(a=>a.trim().length>0&&C.basename(a)===a))];if(r.length===0)return{};let n=new Set(r),o=Ot(),i=await Ko(o,e,r,n);if(i!==null&&i!==Q)return i;if(o&&i!==Q&&!await Qo(e))try{if(await Jc(e,{lockWaitMs:0})){let a=await Ko(o,e,r,n);if(a!==null&&a!==Q)return a}}catch{}let s=[];return await Promise.all(r.map(async a=>{let d=C.join(e,"history",`${a}.jsonl`);(await Gc(d,a).catch(l=>{if(l instanceof w&&l.code==="history_timestamp_invalid")return[];throw l})).forEach((l,_)=>{s.push({stream_id:a,stream_offset:_,entry:l})})})),ci(s,n)}import Br 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 sd=Ce.join("runtime","history-drift-cache.json"),di={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 li(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function ad(e){let t=Ce.join(e,sd),r=!1,n="invalid_cache_path";try{r=(await Br.stat(await Br.realpath(e))).isDirectory()}catch(o){let i=li(o);n=i===void 0?"unknown":di[i]??"filesystem_error"}if(!r){Zt(`[pm] warning: history_drift_cache_invalidation_failed:${n}
|
|
70
|
+
`);return}try{await Br.rm(t,{force:!0})}catch(o){let i=li(o);if(ie(o))return;let s=i===void 0?"unknown":di[i]??"filesystem_error";Zt(`[pm] warning: history_drift_cache_invalidation_failed:${s}
|
|
71
|
+
`)}}async function At(e){let t=Ce.dirname(Ce.resolve(e));Ce.basename(t)==="history"&&await ad(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 ld={front_matter:{},body:""},pe=3,Je=[1,2,3],ud=1,_d=[1];function hi(e){return K(A(e),e.hash_algorithm)}function Ne(e){return ot(A(e))}function _f(e){return ot(A(e))}function Yr(e){let t={...e,record_hash_version:ud},{record_hash:r,...n}=t;return{...t,record_hash:hi(n)}}function Nt(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(!_d.includes(e.record_hash_version))return{ok:!1,error:"unsupported_record_hash_version"};let{record_hash:t,...r}=e;return hi(r)===e.record_hash?{ok:!0,coverage:"record_and_item_state"}:{ok:!1,error:"record_hash_mismatch"}}function fd(e,t){let r={before_hash:e.before_hash,after_hash:e.after_hash,patch_hash:Ne(e.patch)};return e.hash_algorithm!==void 0&&(r.hash_algorithm=e.hash_algorithm),e.item_hash_version!==void 0&&(r.item_hash_version=e.item_hash_version),t.retainOriginalPatch&&(r.patch=structuredClone(e.patch)),t.retainPriorRecordHash!==!1&&e.record_hash_version!==void 0&&e.record_hash!==void 0&&(r.record_hash_version=e.record_hash_version,r.record_hash=e.record_hash,r.record=structuredClone(e)),r}function yi(e,t,r={}){let n=Nt(e);if(!n.ok)throw new TypeError(n.error);let o=Ne(e.patch),i=r.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=Yr({...t,...i?{reanchor_evidence:[...t.reanchor_evidence??[],fd(e,r)]}:{}}),a=Zr(s);if(!a.ok)throw new TypeError(a.error);return s}function gi(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 md(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"&&gi(e.patch)}function pd(e){let t=e.record_hash_version!==void 0,r=e.record_hash!==void 0;return t===r}function hd(e){return!he(e)||!pd(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&&!gi(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||md(e.record)}function yd(e){try{for(let t of e){if(!hd(t))return!1;se(t.hash_algorithm)}return!0}catch{return!1}}function gd(e){let t=e.record;return t!==void 0&&t.before_hash===e.before_hash&&t.after_hash===e.after_hash&&t.item_hash_version===e.item_hash_version&&t.hash_algorithm===e.hash_algorithm&&t.record_hash_version===e.record_hash_version&&t.record_hash===e.record_hash&&Ne(t.patch)===e.patch_hash}function vd(e,t,r){if(t.patch&&Ne(t.patch)!==t.patch_hash)return{kind:"patch_hash_mismatch"};if(t.record)return gd(t)?{kind:"record",entry:t.record}:{kind:"record_hash_mismatch"};let n=t.patch??e.patch;if(Ne(n)!==t.patch_hash)return{kind:"digest_only"};let o={...e,before_hash:t.before_hash,after_hash:t.after_hash,patch:n,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},...r.length===0?{}:{reanchor_evidence:r}};return t.hash_algorithm===void 0&&delete o.hash_algorithm,r.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 Zr(e){let t=e.reanchor_evidence;if(t===void 0)return{ok:!0,coverage:"none"};if(!Array.isArray(t)||!yd(t))return{ok:!1,error:"rewrite_evidence_invalid"};if(t.length===0)return{ok:!0,coverage:"none"};let r=e;for(let n=t.length-1;n>=0;n-=1){let o=t[n],i=vd(r,o,t.slice(0,n));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(!Nt(i.entry).ok)return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};r=i.entry}return{ok:!0,coverage:"complete"}}function xt(e,t){return(e??"").localeCompare(t??"")}function _i(e,t){return(e??0)-(t??0)}function ee(e,t,r){return JSON.stringify(e??r).localeCompare(JSON.stringify(t??r))}function bd(e,t){return[e.scope.localeCompare(t.scope),xt(e.path,t.path),xt(e.command,t.command),_i(e.timeout_seconds,t.timeout_seconds),xt(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,[]),_i(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,{}),xt(e.note,t.note)].find(r=>r!==0)??0}function wd(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function Ed(e,t){let r=wd(t);if(r.length===0)return!0;let n=e;for(let o of r){let i=/^(0|[1-9]\d*)$/.test(o)?Number(o):-1,s=Array.isArray(n)?i>=0&&i<n.length?n[i]:void 0:he(n)&&Object.prototype.hasOwnProperty.call(n,o)?n[o]:void 0;if(s===void 0)return!1;n=s}return!0}function kd(e,t){let r=[],n=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!Ed(n,o.path)?{...o,op:"add"}:o;r.push(i),n=pi.applyPatch(n,[i],!0,!0).newDocument}return r}function Ct(e,t,r=!1){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let n=Oe(e),o=t===1||t===2&&r?{...n.metadata,...n.metadata.dependencies===void 0?{}:{dependencies:n.metadata.dependencies.map(s=>({...s,id:s.id.toLowerCase()}))},...n.metadata.tests===void 0?{}:{tests:n.metadata.tests.map(({workspace_context_mode:s,provenance:a,provenance_invalid:d,...l})=>l)},...n.metadata.test_runs===void 0?{}:{test_runs:n.metadata.test_runs.map(({executions:s,...a})=>a)}}:n.metadata,i=t===1&&o.tests?{...o,tests:[...o.tests].sort(bd)}:o;return{front_matter:g(i,J),body:n.body}}function fi(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 ff(e){return vi(e,pe)}function vi(e,t,r){if(!Je.some(n=>n===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return K(A(Ct(e,t)),r)}function bi(e,t,r){let n=vi(e,t,r);return t===2?[n,K(A(Ct(e,t,!0)),r)]:[n]}function mf(){return ot(A(ld))}function Qr(e){let t=Zn(e.op),r=Ct(e.before,pe),n=Ct(e.after,pe),o=fi(e.before),i=fi(e.after),s=pi.compare(o,i),a=kd(o,s),d=Ho(e.author),l=d.harness?Object.fromEntries(Object.entries(jo().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??Qn,b={hash_algorithm:f,ts:e.nowIso,author:e.author,author_source:e.authorSource??Lo(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(r),f),after_hash:K(A(n),f),item_hash_version:pe,message:e.message===void 0?void 0:e.message,..._===void 0?{}:{context:_}};return Yr({...b,event_class:xe(b)})}function he(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Jr(e){return new w(e,E.GENERIC_FAILURE,{code:"history_timestamp_invalid"})}function wi(e){let t=e.ts.trim();if(t.length===0)return $e();if(!Ee(t))throw Jr("History timestamp must be a valid RFC 3339 date-time with millisecond precision");if(t!==e.ts)throw Jr("History timestamp must not contain surrounding whitespace");return e.ts}function mi(e,t){let r=e.ts;if(typeof r=="string"&&r.trim().length>0){if(!Ee(r))throw Jr("History timestamp must be a valid RFC 3339 date-time with millisecond precision");return e}return{...e,ts:t}}function Kr(e,t){let r=wi(t);if(typeof e=="string"){let n;try{n=JSON.parse(e)}catch{return e}return he(n)?JSON.stringify(mi(n,r)):e}return he(e)?JSON.stringify(mi(e,r)):JSON.stringify(e)}async function Sd(e,t,r){if(r===!1)return!0;if(typeof r=="string"){let s=Kr(r,t);return await Xr(e,s),await At(e),await qr(e),!0}if(typeof r!="object"||r===null)return!1;let n=r;if(n.skip===!0)return!0;let o=typeof n.history_path=="string"?n.history_path:e,i=Kr(typeof n.line=="string"?n.line:n.entry??t,t);return await Xr(o,i),await At(o),await qr(o),!0}async function Xr(e,t){let r;try{r=JSON.parse(t)}catch{r=null}if(!he(r)||r.op!=="create"){await Hn(e,t);return}await ui.mkdir(dd.dirname(e),{recursive:!0});try{await ui.writeFile(e,`${t}
|
|
72
|
+
`,{encoding:"utf8",flag:"wx"})}catch(n){throw n.code!=="EEXIST"?n:new w("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 en(e,t){let r=await Bn("history_append",{history_path:e,entry:t});if(r.handled&&await Sd(e,t,r.result))return;let n=t.ts.trim().length>0?t:{...t,ts:wi(t)},o=Yr({...n,hash_algorithm:se(n.hash_algorithm),event_class:xe(n)});await si(e,o,async()=>{await Xr(e,Kr(o,o))}),await At(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]="0c0cb8c7-4d7d-53f8-8ec2-d6dc98fc6dc5")}catch{}})();var Id={metadata:{},body:""};function Rt(){return structuredClone(Id)}function Sf(e,t=pe,r){return tn(e,t,r)[0]}function tn(e,t,r){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return bi(Dt(e),t,r)}catch{}let n=K(A({replay_fallback:!0,metadata:e.metadata,body:e.body}),r);return t===2?[n,n]:[n]}function Si(e,t,r,n,o){let i=se(n.hash_algorithm),s=`${r}:${i}`,a=o?.before.get(s)??tn(e,r,i),d=tn(t,r,i);return o?.after.set(s,d),{beforeHashes:a,afterHashes:d,pairIndex:a.findIndex((l,_)=>l===n.before_hash&&d[_]===n.after_hash),beforeIndex:a.indexOf(n.before_hash),afterIndex:d.indexOf(n.after_hash)}}function Dt(e){return{metadata:e.metadata,body:e.body}}function If(e,t={}){return Oe(Dt(e),t)}function Of(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 Ei(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function Od(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function Ii(e){return Array.isArray(e)?e.filter(Od).map(t=>({...t,path:Ei(t.path),from:typeof t.from=="string"?Ei(t.from):void 0})):[]}function Td(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 Pt(e,t){try{let r=Ii(t),n=rn.applyPatch(structuredClone(e),r,!0,!0).newDocument;return Td(n)?{ok:!0,document:{metadata:n.metadata,body:n.body}}:{ok:!1,error:new Error("history_replay_invalid_document_shape")}}catch(r){return{ok:!1,error:r}}}function Ad(e){return[...new Set(e.map(t=>t.item_hash_version).filter(t=>t!==void 0&&Je.includes(t)))]}function Oi(e){return e!==void 0&&!Je.includes(e)}function xd(e,t){return e!==void 0?[e]:t===void 0?[...Je]:[t]}function Ti(e){let t=Nt(e);if(!t.ok)return t.error;let r=Zr(e);return r.ok?void 0:r.error}function Cd(e,t){let r=Ti(e);if(r)return{ok:!1,error:r};let n=Pt(t,e.patch);return n.ok?{ok:!0,document:n.document}:{ok:!1,error:"patch_apply_failed"}}function Nd(e,t){let r=Ti(e);if(r)throw new TypeError(`${r}:entry_${t+1}`)}function Rd(e,t,r,n,o){let i=[];for(let s of r){let a=Si(e,t,s,n,o);if(i.push({version:s,match:a}),a.pairIndex>=0)break}return i}function Tt(e){let t=Rt(),r=new Map,n,o,i=Fo(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=Oi(d);l&&i.push(`verify_failed:unsupported_item_hash_version:${String(d)}:entry_${s+1}`);let _=Cd(a,t);if(!_.ok)return{ok:!1,errors:[...i,`verify_failed:${_.error}:entry_${s+1}`]};if(l){t=_.document,r=new Map,n=void 0,o=void 0;continue}let f=xd(d,o),b={before:r,after:new Map},O=Rd(t,_.document,f,a,b),S=O.find(({match:H})=>H.pairIndex>=0);if(S===void 0){let H=O.some(({match:B})=>B.beforeIndex>=0);return{ok:!1,errors:[...i,`verify_failed:${H?"after":"before"}_hash_mismatch:entry_${s+1}`]}}let z=S.version;t=_.document,r=b.after,n=z,o=d??o}return i.length>0?{ok:!1,errors:i,...n===void 0?{}:{item_hash_version:n}}:{ok:!0,errors:[],...n===void 0?{}:{item_hash_version:n}}}function Ke(e){let t=Tt(e);return{ok:t.ok,errors:t.errors}}function ki(e,t){try{return{ok:!0,document:rn.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function Dd(e,t){let r=structuredClone(e),n=0,o=0;for(let s of Ii(t)){let a=ki(r,s);if(a.ok){r=a.document;continue}if(s.op==="replace"){let d=ki(r,{...s,op:"add"});if(d.ok){r=d.document,n+=1;continue}}o+=1}let i=r;return{document:{metadata:typeof i.metadata=="object"&&i.metadata!==null?i.metadata:{},body:typeof i.body=="string"?i.body:e.body},convertedReplaceToAdd:n,skippedOps:o}}function Pd(e){let t=Ad(e);if(t.length===1)return t[0];let r=Tt(e);return r.ok&&r.item_hash_version!==void 0?r.item_hash_version:t.length===0?1:pe}function jd(e,t,r=t.patch){let n=Pt(e,r);if(n.ok)return{next:n.document,patch:r,repaired:A(r)!==A(t.patch),converted:0,skipped:0};let o=Dd(e,r);return{next:o.document,patch:rn.compare(e,o.document),repaired:!0,converted:o.convertedReplaceToAdd,skipped:o.skippedOps}}function Ld(e,t,r){return jd(e,t,r.projectPatch?.(t,e))}function Tf(e,t=Pd(e),r={}){let n=e.findIndex(O=>Oi(O.item_hash_version));if(n>=0)throw new TypeError(`unsupported_item_hash_version:${String(e[n]?.item_hash_version)}:entry_${n+1}`);let o=Rt(),i=[],s=[],a=0,d=0,l=0,_=0,f,b=t!==1||e.some(O=>O.item_hash_version!==void 0);for(let O=0;O<e.length;O+=1){let S=e[O];Nd(S,O);let z=Ld(o,S,r),{next:H,patch:B,repaired:Ze,converted:Sn,skipped:In}=z;l+=Sn,_+=In,d+=Number(Ze);let oe=Si(o,H,t,S);f===void 0||r.continuousHashSurface!==!0?f=[oe.pairIndex,oe.beforeIndex,oe.afterIndex,Math.min(f??0,oe.beforeHashes.length-1)].find(ps=>ps>=0):f=Math.min(f,oe.beforeHashes.length-1);let On=oe.beforeHashes[f],Tn=oe.afterHashes[f],Kt=On!==S.before_hash||Tn!==S.after_hash;Kt&&(a+=1);let ve={...S,patch:B,before_hash:On,after_hash:Tn};b?ve.item_hash_version=t:delete ve.item_hash_version;let ms=ve.item_hash_version!==S.item_hash_version;(Kt||Ze||ms)&&(ve=yi(S,ve,{retainOriginalPatch:Ze})),i.push(ve),s.push({index:O+1,rehashed:Kt,patch_repaired:Ze,converted_replace_to_add:Sn,skipped_ops:In}),o=H}return{entries:i,finalDocument:o,entriesRehashed:a,entriesPatchRepaired:d,convertedReplaceToAdd:l,skippedOps:_,details:s,itemHashVersion:t,explicitItemHashVersion:b}}function Af(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
|
|
73
|
+
`)}
|
|
74
|
+
`}import{AsyncLocalStorage as ol}from"node:async_hooks";import{lstat as il,realpath as Mi}from"node:fs/promises";import Vi 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]="f4ae942c-f11f-5d24-95bf-a2abf3c226da")}catch{}})();var P={ok:!1},u=e=>typeof e=="string"?{ok:!0,value:e}:P,k=e=>typeof e=="boolean"?{ok:!0,value:e}:P;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?P:{ok:!0,value:t}}function I(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:P}function p(e,t){return r=>{if(!Array.isArray(r)||t!==void 0&&r.length>t)return P;let n=[];for(let o of r){let i=e(o);if(!i.ok)return P;n.push(i.value)}return{ok:!0,value:n}}}function on(e,t){return r=>typeof r=="string"&&r.length>0&&r.length<=e&&r===r.trim()&&(t===void 0||t.test(r))?{ok:!0,value:r}:P}function c(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function jt(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return P;let r={};for(let[n,o]of Object.entries(t)){let i=e(o);if(!i.ok)return P;r[n]=i.value}return{ok:!0,value:r}}}function v(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return P;let r=t,n={};for(let[o,i]of Object.entries(e)){let s=i(r[o]);if(!s.ok)return P;s.value!==void 0&&(n[o]=s.value)}return{ok:!0,value:n}}}var Hd=v({key:u,values:p(u),required:c(k),aliases:c(p(u)),description:c(u)}),zd=v({command:I("create","update"),option:u,required:c(k),visible:c(k),enabled:c(k)}),Fd=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(Hd)),command_option_policies:c(p(zd))}),$d=v({id:u,aliases:c(p(u)),roles:c(p(I(...An))),description:c(u),order:c(x())}),Md=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(...xn)),commands:c(p(I(...Cn))),repeatable:c(k),required:c(k),required_on_create:c(k),required_types:c(p(u)),allow_unset:c(k)}),Vd=e=>{if(!Array.isArray(e)||e.length!==2)return P;let[t,r]=e;return typeof t!="string"||typeof r!="string"?P:{ok:!0,value:[t,r]}},Ud=v({type:u,allowed_transitions:p(Vd)}),Wd=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($d)),fields:c(p(Md)),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(Ud)),unknown_field_policy:c(I(...Nn))})),qd=c(v({preset:c(I(...Rn)),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}))})),Gd=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))}),nn=I("block","warn"),Bd=e=>typeof e=="string"?nn(e):v({global:c(nn),project:c(nn)})(e),Jd=c(v({mode:c(I("off","warn","enforce")),trust_mode:c(I("off","warn","enforce")),pm_max_version_exceeded_mode:c(Bd),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(Gd))})),ye=on(128),Kd=v({harness:on(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:c(p(ye,64)),model_environment_keys:c(p(ye,64)),session_environment_keys:c(p(ye,64)),provenance_environment_keys:c(jt(p(ye,64))),provenance_resolvers:c(jt(I("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:c(p(ye,64)),argv_markers:c(p(ye,64)),client_names:c(p(ye,64))}),Xd=v({version:x({int:!0}),id_prefix:u,ids:c(v({token_length:c(x({int:!0,min:4,max:12}))})),author_default:u,agent_identity:c(v({probes_enabled:c(k),identity_vocabulary:c(v({version:x({int:!0,positive:!0}),aliases:jt(on(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:p(Kd)})),mutation_guard:c(v({require_attributed_author:c(k),secret_guard:c(I("off","advise","block")),stale_in_progress_hours:c(x({int:!0,positive:!0}))})),item_format:c(I("toon","json_markdown")),locks:v({ttl_seconds:x({int:!0}),wait_ms:c(x({int:!0,min:0}))}),checkpoints:c(v({retention_days:c(x({int:!0,positive:!0}))})),output:v({default_format:I("toon","json")}),ux:c(v({deprecation_hints:c(k)})),history:c(v({missing_stream:I("auto_create","strict_error"),compact_policy:c(v({enabled:c(k),max_entries:c(x({int:!0,positive:!0})),trigger:c(I("health_warn","auto"))}))})),validation:c(v({sprint_release_format:I("warn","strict_error"),parent_reference:c(I("warn","strict_error")),metadata_profile:c(I("core","strict","custom")),metadata_required_fields:c(p(u)),lifecycle_stale_blocker_reason_patterns:c(p(u)),lifecycle_closure_like_blocked_reason_patterns:c(p(u)),lifecycle_closure_like_resolution_patterns:c(p(u)),lifecycle_closure_like_actual_result_patterns:c(p(u)),estimate_defaults_by_type:c(jt(x({int:!0,positive:!0})))})),governance:qd,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(Fd)})),schema:Wd,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})),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:Jd}),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})})});function sn(e){let t=Xd(e);return t.ok?{success:!0,data:t.value}:{success:!1}}import Yd 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 Lt(e){return Re.join(e,"history",`${De}.jsonl`)}function Zd(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 Ht(e,t=e.length){let r=Rt();for(let n of e.slice(0,t))r=Pt(r,n.patch).document;return Dt(r)}function an(e){return"documents"in e.metadata&&typeof e.metadata.documents=="object"&&e.metadata.documents!==null&&!Array.isArray(e.metadata.documents)?e.metadata.documents:{}}function zt(e){throw new w(`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 Ai(e,t){let r=Re.resolve(t),n=Re.relative(e,r).replaceAll("\\","/");if(n.length===0||n===".."||n.startsWith("../")||Re.isAbsolute(n))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:n,absolutePath:r}}async function Uf(e){let t=await Ge(Lt(e),De),r=Ke(t);r.ok||zt(r.errors);let n=an(t.length===0?je:Ht(t)),o=[],i=[],s=[],a=[];for(let d of Object.keys(n).sort()){let l;try{let _=Ai(e,Re.resolve(e,d));if(l=await be(_.absolutePath),l===null){s.push(d);continue}let f=JSON.parse(l);(A(f)===A(n[d])?o:i).push(d)}catch{a.push(d)}}return{ok:i.length===0&&s.length===0&&a.length===0,document_count:Object.keys(n).length,matching_documents:o,mismatched_documents:i,missing_documents:s,unreadable_documents:a}}async function xi(e){let t=Lt(e.pmRoot),r=await Ge(t,De),n=Ke(r);n.ok||zt(n.errors);let o=e.idempotencyKey===void 0?void 0:r.find(f=>f.op===`${e.op}:${e.idempotencyKey}`);if(o)return{entry:o,historyPath:t};let i=$e(),s=r.length===0?je:Ht(r),a=an(s),d=a[e.documentPath];if(d!==void 0&&A(d)!==A(e.before))throw new w(`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=Zd({...a,[e.documentPath]:e.after},r.length===0?i:s.metadata.created_at),_=Qr({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 en(t,_),{entry:_,historyPath:t}}async function Wf(e){let t=await M(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await xi(e)}finally{await t()}}async function qf(e){let t=await M(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let r=Lt(e.pmRoot),n=await Ge(r,De),o=Ke(n);o.ok||zt(o.errors);let i=n.length===0?je:Ht(n),s=Qr({nowIso:$e(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await en(r,s),{entry:s,historyPath:r}}finally{await t()}}async function Ci(e,t){if(t===e.raw)return!1;let r=t===null?null:JSON.parse(t),n=JSON.parse(e.raw);await Le(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await xi({pmRoot:e.pmRoot,documentPath:Re.relative(e.pmRoot,e.filePath).replaceAll("\\","/"),before:r,after:n,op:e.op,idempotencyKey:e.idempotencyKey,author:e.author,lockTtlSeconds:e.lockTtlSeconds,lockWaitMs:e.lockWaitMs,message:e.message})}catch(o){throw t===null?await Yd.rm(e.filePath,{force:!0}):await Le(e.filePath,t),o}return!0}async function Ni(e){let{documentPath:t}=Ai(e.pmRoot,e.filePath),r=await M(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=await be(e.filePath);if(e.dryRun===!0||e.idempotencyKey!==void 0){let i=await Ge(Lt(e.pmRoot),De),s=Ke(i);s.ok||zt(s.errors);let a=an(i.length===0?je:Ht(i))[t];if(a!==void 0&&A(a)!==A(n===null?null:JSON.parse(n)))throw new w(`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(n);return JSON.parse(o.raw),e.dryRun===!0?{changed:n!==o.raw,result:o.result}:{changed:await Ci({...e,raw:o.raw},n),result:o.result}}finally{await r()}}async function Gf(e){let t=await M(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Ci(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 Ft(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function cn(e,t,r,n=[]){if($(e,t)&&(n.length>0||Ft(r)))return r;if($(e,r)||$(t,r))return t;if((e===void 0||Ft(e))&&Ft(t)&&Ft(r)){let o=e??{},i=new Set([...Object.keys(o),...Object.keys(t),...Object.keys(r)]);return Object.fromEntries([...i].flatMap(s=>{let a=cn(Object.hasOwn(o,s)?o[s]:void 0,Object.hasOwn(t,s)?t[s]:void 0,Object.hasOwn(r,s)?r[s]:void 0,[...n,s]);return a===void 0?[]:[[s,a]]}))}throw new w(`Settings changed concurrently at ${n.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 Qd={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},Ri=120;function dn(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function Pi(e){let t=new Map;for(let[r,n]of Object.entries(e))t.set(r.toLowerCase(),n);return t}var el=Pi(Qd),Di=new WeakMap;function tl(e){let t=Di.get(e);if(t)return t;let r=Pi(e);return Di.set(e,r),r}function Zf(e,t){let r=(e??"").trim().toLowerCase();if(r.length===0)return Ri;if(t){let o=tl(t).get(r);if(dn(o))return Math.floor(o)}let n=el.get(r);return dn(n)?Math.floor(n):Ri}function ln(e){let t={};if(e===null||typeof e!="object"||Array.isArray(e))return t;for(let[r,n]of Object.entries(e)){let o=r.trim();o.length===0||!dn(n)||(t[o]=Math.floor(n))}return t}import{stat as rl}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 $t=new Map;function ji(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,r)=>t.localeCompare(r))}async function nl(e){try{let t=await rl(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=ji(e),r=await Promise.all(t.map(n=>nl(n)));return r.sort((n,o)=>n.path.localeCompare(o.path)),r}function Xe(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r+=1){let n=e[r],o=t[r];if(n.path!==o.path||n.mtime_ms!==o.mtime_ms||n.size!==o.size)return!1}return!0}function Li(e){return $t.get(e)}function Mt(e,t){let r=ji(t.tracked_paths),n=[...t.signatures].map(o=>({path:o.path,mtime_ms:o.mtime_ms,size:o.size})).sort((o,i)=>o.path.localeCompare(i.path));$t.set(e,{tracked_paths:r,signatures:n,value:t.value})}function ge(e){if(e){$t.delete(e);return}$t.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]="f4308e20-251e-52d4-81a4-044e910e87fa")}catch{}})();var mn=new ol;async function vm(e,t,r=()=>!0){let n=new Set([Vi.resolve(e)]);try{n.add(await Mi(e))}catch{}return mn.run([...mn.getStore()??[],[n,r]],t)}function sl(e){let t=Vi.resolve(e);return mn.getStore()?.some(([r,n])=>r.has(t)&&n())??!1}var al="settings:write",Ui=Symbol("pm.settings.persist_source"),cl=128,dl=new Set(["off","advisory","strict"]);function Hi(e){return structuredClone(Pn[e])}function ll(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:h.governance.preset}function zi(e,t){let r=typeof t.create_default_type=="string"?t.create_default_type.trim():void 0;return r&&r.length>0&&(e.create_default_type=r),(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 ul(e){return e.preset==="custom"?zi({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):zi({preset:e.preset},e)}function _l(e){let t=typeof e.create_default_type=="string"?e.create_default_type.trim():void 0,r={};t&&t.length>0&&(r.create_default_type=t),(e.workflow_enforcement==="off"||e.workflow_enforcement==="warn"||e.workflow_enforcement==="strict")&&(r.workflow_enforcement=e.workflow_enforcement),typeof e.require_close_reason=="boolean"&&(r.require_close_reason=e.require_close_reason),dl.has(String(e.duplicate_detection_mode))&&(r.duplicate_detection_mode=e.duplicate_detection_mode);let n=e.duplicate_detection_threshold;[typeof n=="number",Number.isFinite(n),Number(n)>=0,Number(n)<=1].every(Boolean)&&(r.duplicate_detection_threshold=n);let o=e.duplicate_detection_limit;return[typeof o=="number",Number.isSafeInteger(o),Number(o)>=0,Number(o)<=20].every(Boolean)&&(r.duplicate_detection_limit=o),r}function Wi(e){let t=e.governance??{},r=ll(t.preset),n=_l(t);if(r==="custom"){let s=Hi("default"),a=n.require_close_reason??s.require_close_reason;return{preset:r,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,...n,require_close_reason:a,duplicate_detection_mode:n.duplicate_detection_mode??s.duplicate_detection_mode,duplicate_detection_threshold:n.duplicate_detection_threshold??s.duplicate_detection_threshold,duplicate_detection_limit:n.duplicate_detection_limit??s.duplicate_detection_limit}}let o=Hi(r),i=n.require_close_reason??o.require_close_reason;return{preset:r,...o,...n,require_close_reason:i}}function qi(){return structuredClone(h)}function Gi(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:h.search.mutation_refresh_policy}function Bi(e){return e==="auto"||e==="keyword"||e==="semantic"||e==="hybrid"?e:"auto"}function Ji(e){return typeof e=="boolean"?e:h.search.query_expansion.enabled}function Ki(e){return typeof e!="string"?h.search.query_expansion.provider:e.trim()}function Xi(e){return typeof e=="boolean"?e:h.search.rerank.enabled}function Yi(e){return typeof e!="string"?h.search.rerank.model:e.trim()}function Zi(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:h.search.rerank.top_k}function Qi(e){if(typeof e!="string")return h.vector_store.collection_name;let t=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,cl);return t.length>0?t:h.vector_store.collection_name}function un(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function es(e,t){let r=e.schema,n=un(r?.statuses),o=un(r?.fields),i=un(r?.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:n.present,source_schema_statuses:n.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 yn(e,t){Object.defineProperty(e,Ui,{value:t,writable:!0,configurable:!0,enumerable:!1})}function ts(e){let t=e[Ui];if(!(!t||typeof t!="object"))return t}function Vt(e){let t=structuredClone(e.settings),r=ts(e.settings);return r&&yn(t,r),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function fl(e,t,r){let n=ze(t);return[r,Fe(e,n.files.types,He.types),Fe(e,n.files.statuses,He.statuses),Fe(e,n.files.fields,He.fields),Fe(e,n.files.workflows,He.workflows)]}async function ml(e,t,r){let n=await te(t);Mt(e,{tracked_paths:t,signatures:n,value:Vt(r)})}async function pl(e,t,r){try{await ml(e,t,r)}catch{ge(e)}}function Fi(e,t){return e.find(r=>r.path===t)}function hl(e,t,r){for(let n of r){let o=Fi(e,n),i=Fi(t,n);if(!o||!i||!Xe([o],[i]))return!1}return!0}async function _n(e,t,r,n,o){try{let i=await te(t);if(!hl(n,i,o)){ge(e);return}Mt(e,{tracked_paths:t,signatures:i,value:Vt(r)})}catch{ge(e)}}function yl(e,t){let r=ze(e.schema),n=Pe(e.item_types?.definitions);if(!t)return{item_type_definitions:n,schema_statuses:r.statuses,schema_fields:r.fields,schema_type_workflows:r.type_workflows};let o=r.type_workflows??[],i=$(n,t.runtime_item_type_definitions),s=$(r.statuses,t.runtime_schema_statuses),a=$(r.fields,t.runtime_schema_fields),d=$(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?Pe(t.source_item_type_definitions):[]:n,schema_statuses:s?t.has_source_schema_statuses?structuredClone(t.source_schema_statuses):[]:r.statuses,schema_fields:a?t.has_source_schema_fields?structuredClone(t.source_schema_fields):[]:r.fields,schema_type_workflows:d?t.has_source_schema_type_workflows?structuredClone(t.source_schema_type_workflows):void 0:r.type_workflows}}function U(e){return{settings:qi(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function rs(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function pn(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,r)=>t.localeCompare(r))}function ns(e){let t=h.agent_guidance,r=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 r=="number"&&Number.isInteger(r)&&r>0?r:t.template_version,last_checked_files:pn(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,r)=>t.localeCompare(r))}function gl(e){return e==="off"||e==="warn"||e==="enforce"?e:h.extensions.policy.mode}function vl(e){return e==="off"||e==="warn"||e==="enforce"?e:h.extensions.policy.trust_mode}function os(e){return e==="none"||e==="restricted"||e==="strict"?e:h.extensions.policy.default_sandbox_profile}function bl(e){let t=e.name.trim().toLowerCase();if(t.length===0)return null;let r={name:t};e.disabled===!0&&(r.disabled=!0),e.require_trusted===!0&&(r.require_trusted=!0),e.require_provenance===!0&&(r.require_provenance=!0),e.sandbox_profile!==void 0&&(r.sandbox_profile=os(e.sandbox_profile));let n=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),b=F(e.blocked_services);return n.length>0&&(r.allowed_capabilities=n),o.length>0&&(r.blocked_capabilities=o),i.length>0&&(r.allowed_surfaces=i),s.length>0&&(r.blocked_surfaces=s),a.length>0&&(r.allowed_commands=a),d.length>0&&(r.blocked_commands=d),l.length>0&&(r.allowed_actions=l),_.length>0&&(r.blocked_actions=_),f.length>0&&(r.allowed_services=f),b.length>0&&(r.blocked_services=b),r}function wl(e){let t=new Map;for(let r of e??[]){let n=bl(r);n&&t.set(n.name,n)}return[...t.values()].sort((r,n)=>r.name.localeCompare(n.name))}function fn(e){return e==="block"||e==="warn"?e:void 0}function El(e){if(typeof e=="string")return fn(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=fn(e.global),r=fn(e.project);return t===void 0&&r===void 0?void 0:{...t!==void 0?{global:t}:{},...r!==void 0?{project:r}:{}}}}function j(e,t){return F(e?.[t]??h.extensions.policy[t])}function is(e){let t=El(e?.pm_max_version_exceeded_mode);return{mode:gl(e?.mode),trust_mode:vl(e?.trust_mode),...t!==void 0?{pm_max_version_exceeded_mode:t}:{},require_provenance:e?.require_provenance===!0,trusted_extensions:j(e,"trusted_extensions"),default_sandbox_profile:os(e?.default_sandbox_profile),allowed_extensions:j(e,"allowed_extensions"),blocked_extensions:j(e,"blocked_extensions"),allowed_capabilities:j(e,"allowed_capabilities"),blocked_capabilities:j(e,"blocked_capabilities"),allowed_surfaces:j(e,"allowed_surfaces"),blocked_surfaces:j(e,"blocked_surfaces"),allowed_commands:j(e,"allowed_commands"),blocked_commands:j(e,"blocked_commands"),allowed_actions:j(e,"allowed_actions"),blocked_actions:j(e,"blocked_actions"),allowed_services:j(e,"allowed_services"),blocked_services:j(e,"blocked_services"),extension_overrides:wl(e?.extension_overrides??h.extensions.policy.extension_overrides)}}function ss(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase().replaceAll("-","_")))].filter(t=>t.length>0).sort((t,r)=>t.localeCompare(r)).filter(t=>["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"].includes(t))}function re(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,r)=>t.localeCompare(r))}function R(e,t){return e===void 0?t:e}function L(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function hn(e){return Array.isArray(e)?e:[]}function kl(e,t,r){return{...t.validation,...e.validation,parent_reference:r.parent_reference,metadata_profile:r.metadata_profile,metadata_required_fields:ss(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:re(e.validation?.lifecycle_stale_blocker_reason_patterns??t.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:re(e.validation?.lifecycle_closure_like_blocked_reason_patterns??t.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:re(e.validation?.lifecycle_closure_like_resolution_patterns??t.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:re(e.validation?.lifecycle_closure_like_actual_result_patterns??t.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:ln(e.validation?.estimate_defaults_by_type)}}function Sl(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 Il(e,t){return{...t.search,...e.search,default_mode:Bi(e.search?.default_mode),mutation_refresh_policy:Gi(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:Ji(e.search?.query_expansion?.enabled),provider:Ki(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:Xi(e.search?.rerank?.enabled),model:Yi(e.search?.rerank?.model),top_k:Zi(e.search?.rerank?.top_k)}}}function Ol(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:Qi(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function Tl(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function Al(e,t){return{default_depth:e.context?.default_depth??t.context.default_depth,activity_limit:e.context?.activity_limit??t.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??t.context.stale_threshold_days,sections:{...t.context.sections,...e.context?.sections}}}function xl(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function Pe(e){let t=(e??[]).map(n=>Fn(n)).filter(n=>n!==null),r=new Map;for(let n of t)r.set(n.name.toLowerCase(),n);return[...r.values()].sort((n,o)=>n.name.localeCompare(o.name))}function Ut(e){let t=qi(),r=Wi({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:Tl(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:kl(e,t,r),governance:r,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:Sl(e,t),agent_guidance:ns(e.agent_guidance??t.agent_guidance),item_types:{definitions:Pe(e.item_types?.definitions)},schema:ze(e.schema??t.schema),context:Al(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:is(e.extensions.policy??t.extensions.policy)},search:Il(e,t),providers:xl(e,t),vector_store:Ol(e,t)}}function Cl(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(L(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=hn(e.agent_identity.harness_signals).map(r=>g(L(r),["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(L(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=g(L(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","sections"]),e.context.sections=g(L(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=g(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=g(L(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=hn(e.extensions.policy.extension_overrides).map(r=>g(L(r),["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(L(e.search.query_expansion),["enabled","provider"]),e.search.rerank=g(L(e.search.rerank),["enabled","model","top_k"]),e.providers=g(e.providers,["openai","ollama"]),e.providers.openai=g(L(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=g(L(e.providers.ollama),["base_url","model"]),e.vector_store=g(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=g(L(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=g(L(e.vector_store.lancedb),["path"])}function Nl(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 Rl(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:ss(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:re(e.validation?.lifecycle_stale_blocker_reason_patterns??h.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:re(e.validation?.lifecycle_closure_like_blocked_reason_patterns??h.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:re(e.validation?.lifecycle_closure_like_resolution_patterns??h.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:re(e.validation?.lifecycle_closure_like_actual_result_patterns??h.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:ln(e.validation?.estimate_defaults_by_type)}}function Dl(e){return{...h.search,...e.search,default_mode:Bi(e.search?.default_mode),mutation_refresh_policy:Gi(e.search?.mutation_refresh_policy),query_expansion:{...h.search.query_expansion,...e.search?.query_expansion,enabled:Ji(e.search?.query_expansion?.enabled),provider:Ki(e.search?.query_expansion?.provider)},rerank:{...h.search.rerank,...e.search?.rerank,enabled:Xi(e.search?.rerank?.enabled),model:Yi(e.search?.rerank?.model),top_k:Zi(e.search?.rerank?.top_k)}}}function Pl(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,sections:{...h.context.sections,...e.context?.sections}}}function jl(e){return{...e.vector_store,adapter:e.vector_store?.adapter??h.vector_store.adapter,collection_name:Qi(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function Ll(e,t,r,n){return{...e,item_format:"toon",validation:Rl(e,t),governance:t,agent_guidance:ns(e.agent_guidance),item_types:{definitions:n.item_type_definitions},schema:{...r,statuses:n.schema_statuses,fields:n.schema_fields,type_workflows:n.schema_type_workflows},search:Dl(e),context:Pl(e),extensions:{enabled:pn(e.extensions?.enabled),disabled:pn(e.extensions?.disabled),policy:is(e.extensions?.policy)},vector_store:jl(e)}}function as(e,t){for(let r of Object.keys(t)){let n=Reflect.get(t,r),o=e[r];typeof n=="object"&&n!==null&&!Array.isArray(n)&&typeof o=="object"&&o!==null&&!Array.isArray(o)?as(o,n):e[r]=structuredClone(n)}}function cs(e,t,r){let n=new Set([...Object.keys(t),...Object.keys(r)]);for(let o of n){let i=t[o],s=r[o];if(!$(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:{};cs(d,i,s),Object.keys(d).length>0?e[o]=d:delete e[o];continue}e[o]=structuredClone(s)}}}var gn=["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 $i(e,t){let r=Nl(e),n=Wi(r),o=ze(r.schema),i=yl(r,t),s=Ll(r,n,o,i),a=g({...s,governance:ul(n)},gn);return Cl(a),a}function Hl(e,t={}){let r=t.source===void 0?t.persist_source:es(t.source.validated,Ut(t.source.validated)),n=$i(e,r);if(r){let o=Ut(r.source_settings);o.item_types={definitions:structuredClone(r.runtime_item_type_definitions)},o.schema={...o.schema,statuses:structuredClone(r.runtime_schema_statuses),fields:structuredClone(r.runtime_schema_fields),type_workflows:structuredClone(r.runtime_schema_type_workflows)};let i=$i(o,r);t.source!==void 0&&as(i,t.source.validated);let s=structuredClone(t.source===void 0?r.source_settings:t.source.raw);return cs(s,i,n),`${JSON.stringify(g(s,gn),null,2)}
|
|
75
|
+
`}return`${JSON.stringify(n,null,2)}
|
|
76
|
+
`}async function zl(e){let t;try{t=await Mi(e)}catch(a){if(W(a))return U();throw a}let r=we(t),n;try{n=await il(r)}catch(a){if(W(a))return U();throw a}if(!n.isFile())throw Yt("settings.json");let o;try{o=await Ln(r,Yt("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=sn(i);return s.success?{settings:Ut(s.data),metadata:{has_explicit_item_format:rs(i)},warnings:s.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[]}:U("settings_read_invalid_schema")}async function ds(e){if(sl(e))return zl(e);let t=we(e),r=[t];await it({path:t,scope:"project"});let n=Li(e);if(n){let l=await te(n.tracked_paths);if(Xe(l,n.signatures))return Vt(n.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 _n(e,[t],l,o,[t]),l}let s=await te([t]);if(!Xe(o,s))return ge(e),ds(e);let a;try{a=JSON.parse(i)}catch{let l=U("settings_read_invalid_json");return await _n(e,[t],l,s,[t]),l}let d=sn(a);if(!d.success){let l=U("settings_read_invalid_schema");return await _n(e,[t],l,s,[t]),l}try{let l=Ut(d.data),_=fl(e,l.schema,t);r=_;let f=await te(_),b=await Mn(e,l.schema),O=await te(_),S={...l,item_types:{definitions:Pe([...l.item_types.definitions,...hn(b.type_definitions_from_file)])},schema:b.schema};yn(S,es(d.data,S));let z={settings:S,metadata:{has_explicit_item_format:rs(a)},warnings:[...d.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],...b.warnings]};return Xe(f,O)?Mt(e,{tracked_paths:_,signatures:O,value:Vt(z)}):ge(e),z}catch{let l=U("settings_read_merge_failed");return await pl(e,r,l),l}}async function bm(e){return(await ds(e)).settings}async function wm(e,t,r=al){let n=we(e),o=ts(t),i=Hl(t,{persist_source:o}),s=JSON.parse(i);try{await Ni({pmRoot:e,filePath:n,mutate:a=>{let d=null;if(a!==null)try{d=JSON.parse(a)}catch{throw new w("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."]})}return{raw:o?`${JSON.stringify(g(cn(o.persisted_settings,s,d),gn),null,2)}
|
|
77
|
+
`:i,result:void 0}},op:r,author:zo(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),o&&yn(t,{...o,persisted_settings:structuredClone(s)}),await Gn({path:n,scope:"project",op:r})}finally{ge(e)}}import ls from"node:fs";import Ye from"node:path";import{createRequire as Fl}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 us="@unbrained/pm-cli";var bn=/\b(\d{4})\.(\d{1,2})\.(\d{1,2})(?:-(\d+))?\b/u,wn="2026.8.31";function Wt(e){let t=e.match(bn);return t?[Number(t[1]),Number(t[2]),Number(t[3]),Number(t[4]??0)]:null}function Gt(e,t){let r=Wt(e),n=Wt(t);if(!r||!n)return null;for(let o=0;o<r.length;o+=1){let i=r[o]-n[o];if(i!==0)return Math.sign(i)}return 0}function vn(e){return Gt(e,wn)!==-1?3:2}function qt(e){try{let t=JSON.parse(ls.readFileSync(e,"utf8"));return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:null}catch{return null}}function $l(e){let t=[...e.matchAll(/(<=|<)\s*v?(\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?)/gu)].map(n=>({inclusive:n[1]==="<=",version:n[2]})),r=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 r?[...t,{inclusive:!0,version:r[1]}]:t}function Ml(e){let t=e.split("||").map(r=>$l(r));return{bounded:t.some(r=>r.length>0),compatible:t.some(r=>r.every(n=>{let o=Gt(wn,n.version);return o!==null&&(n.inclusive?o!==1:o===-1)}))}}function _s(e){return["dependencies","devDependencies","optionalDependencies","peerDependencies"].flatMap(t=>{let r=e[t];if(typeof r!="object"||r===null)return[];let n=r[us];return typeof n=="string"?[n.trim()]:[]})}function Vl(e){return _s(e).flatMap(t=>{let r=/^[<!]/u.test(t)?void 0:t.match(bn)?.[0];if(!r)return[];let n=/^(?:=|v)?\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?$/u.test(t),o=Ml(t);return[{version:r,constraint:n?"exact":o.bounded?"range":"minimum",...n?{}:{declaration:t},history_epoch_compatible:n?Gt(r,wn)!==-1:o.compatible}]})}function Ul(e){let t=qt(Ye.join(e,"package-lock.json"))?.packages;if(typeof t!="object"||t===null)return;let r=t["node_modules/@unbrained/pm-cli"];if(typeof r!="object"||r===null)return;let n=r.version;return typeof n=="string"?n:void 0}function Wl(e,t){try{let r=ls.readFileSync(Ye.join(e,t),"utf8").split(/\r?\n/u),n=r.findIndex(s=>s.includes(us));if(n<0)return;let o=r[n].match(/^\s*/u)[0].length,i=[r[n]];for(let s=n+1;s<r.length;s+=1){let a=r[s],d=a.trim(),l=a.match(/^\s*/u)[0].length;if(d.length>0&&l<=o)break;i.push(a)}return i.join(`
|
|
78
|
+
`).match(/^\s*version(?::\s*|\s+)["']?(\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?)/mu)?.[1]??i[0].match(bn)?.[0]}catch{return}}function ql(e){let t=[],r=qt(Ye.join(e,"package.json"));r&&t.push(...Vl(r).map(i=>({...i,source:"package.json"})));let n=qt(Ye.join(e,"node_modules","@unbrained","pm-cli","package.json"))?.version;typeof n=="string"&&Wt(n)&&t.push({version:n,source:"installed-package",constraint:"exact",history_epoch_compatible:vn(n)===3});let o=Ul(e);o&&Wt(o)&&t.push({version:o,source:"package-lock.json",constraint:"exact",history_epoch_compatible:vn(o)===3});for(let i of["pnpm-lock.yaml","yarn.lock"]){let s=Wl(e,i);s&&t.push({version:s,source:i,constraint:"exact",history_epoch_compatible:vn(s)===3})}return t}function Am(e,t){if(t<=1)return;let{minVersion:r,lt:n}=Fl(import.meta.url)("semver"),o=_s(qt(Ye.join(e,"package.json"))??{}).find(s=>{try{let a=r(s);return a!==null&&n(a,"2026.10.10")}catch{return!1}}),i=o===void 0?ql(e).find(s=>Gt(s.version,"2026.10.10")===-1):{version:o,source:"package.json"};if(i)throw new w(`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 kn from"node:fs/promises";import Bt 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 ne(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function fs(e){let t=["--pm-path",e,"init","--defaults","--agent-guidance","skip"];return{suggested_retry:Jn(t),suggested_retry_args:t}}function Jt(e){return new w(`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 En(e){return new w(`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 Gl(e){let t=Bt.resolve(e),r=Bt.parse(t).root,n=Bt.dirname(t);for(;n!==r;){let o;try{o=await kn.stat(n)}catch(i){if(ne(i,"ENOTDIR"))throw Jt(e);if(!ne(i,"ENOENT"))throw i;n=Bt.dirname(n);continue}if(!o.isDirectory())throw Jt(e);return}}async function Bl(e){let t;try{t=await kn.stat(e)}catch(r){throw ne(r,"ENOENT")?(await Gl(e),new w(`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:fs(e)})):ne(r,"ENOTDIR")?Jt(e):ne(r,"EACCES")||ne(r,"EPERM")?En(e):r}if(!t.isDirectory())throw Jt(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw En(e);try{await(await kn.opendir(e)).close()}catch(r){throw ne(r,"EACCES")||ne(r,"EPERM")?En(e):r}}async function Hm(e){if(await Bl(e),!await jn(we(e)))throw new w(`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:fs(e)})}export{Kl as a,ys as b,Qn as c,se as d,K as e,Fo as f,ro as g,Me as h,ru as i,nu as j,er as k,tr as l,iu as m,rr as n,oo as o,Ts as p,su as q,ct as r,xs as s,lu as t,dt as u,wa as v,_t as w,xu as x,Cu as y,Oe as z,ce as A,hr as B,Du as C,Pu as D,Eo as E,wr as F,Uu as G,Wu as H,qu as I,Gu as J,Bu as K,Ju as L,Cr as M,Nr as N,Co as O,o_ as P,i_ as Q,s_ as R,a_ as S,c_ as T,d_ as U,jr as V,jo as W,l_ as X,u_ as Y,__ as Z,Ic as _,f_ as $,zo as aa,gt as ba,Ge as ca,xe as da,Mo as ea,Jc as fa,Qc as ga,$_ as ha,M_ as ia,ad as ja,At as ka,pe as la,Je as ma,_f as na,Yr as oa,Nt as pa,yi as qa,ff as ra,bi as sa,mf as ta,Qr as ua,en as va,Id as wa,Rt as xa,Sf as ya,tn as za,Dt as Aa,If as Ba,Of as Ca,Ii as Da,Pt as Ea,Tt as Fa,Ke as Ga,Pd as Ha,Tf as Ia,Af as Ja,De as Ka,Lt as La,Uf as Ma,Wf as Na,qf as Oa,Ni as Pa,Gf as Qa,sn as Ra,Zf as Sa,ge as Ta,vm as Ua,sl as Va,Wi as Wa,Ut as Xa,Hl as Ya,ds as Za,bm as _a,wm as $a,ql as ab,Am as bb,Bl as cb,Hm as db};
|
|
79
|
+
//# sourceMappingURL=chunk-SM2KGD4J.js.map
|