@unbrained/pm-cli 2026.11.2 → 2026.11.4
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 +24 -0
- package/dist/cli/error-guidance.d.ts +23 -35
- package/dist/cli/error-guidance.js +4 -3
- package/dist/cli/expected-revisions.d.ts +55 -0
- package/dist/cli/expected-revisions.js +2 -0
- package/dist/cli/main.js +2 -2
- package/dist/cli/runtime/field-route-retry.d.ts +15 -0
- package/dist/cli/runtime/field-route-retry.js +2 -0
- package/dist/cli/runtime/invocation-options.js +1 -1
- package/dist/cli-bundle/bundle-manifest.json +1 -1
- package/dist/cli-bundle/chunks/{chunk-3A4NVHYS.js → chunk-2GW662DP.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-3OXQGGRD.js +115 -0
- package/dist/cli-bundle/chunks/chunk-5BVZ32G7.js +2 -0
- package/dist/cli-bundle/chunks/chunk-5S6RT5LX.js +9 -0
- package/dist/cli-bundle/chunks/chunk-5Z6LWFDL.js +31 -0
- package/dist/cli-bundle/chunks/{chunk-RGHLQGEX.js → chunk-6T2V3UIK.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-JRXD7SIL.js → chunk-7PGNAHNW.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-7RCI7AAA.js +20 -0
- package/dist/cli-bundle/chunks/chunk-AQ5UHHQS.js +2 -0
- package/dist/cli-bundle/chunks/chunk-BK2XAQVC.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-ABFFRQRO.js → chunk-BRIPGUAO.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-BWAXA6S4.js +6 -0
- package/dist/cli-bundle/chunks/{chunk-HOGKWJU5.js → chunk-CERNIZLB.js} +66 -66
- package/dist/cli-bundle/chunks/chunk-DSCFJTHB.js +122 -0
- package/dist/cli-bundle/chunks/{chunk-VEOFWE32.js → chunk-L4BKTPJ6.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NGRPD3ZO.js → chunk-NPEDFOVQ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-J3JM36EH.js → chunk-O4ZLEN4T.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-533L6D2N.js → chunk-ODMJ3HIB.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-KJLGBLR3.js → chunk-QN7VCOUU.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-QQHMNUZT.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-D52QQ7LP.js → chunk-RSAN2YUU.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-SRDO2NJU.js +2 -0
- package/dist/cli-bundle/chunks/chunk-T56MB6SF.js +2 -0
- package/dist/cli-bundle/chunks/chunk-TX2W6G37.js +3 -0
- package/dist/cli-bundle/chunks/{chunk-GK2CHAT3.js → chunk-UJMQP2HP.js} +2 -2
- package/dist/cli-bundle/chunks/{indexed-receipt-blobs-IEJ2QOW3.js → indexed-receipt-blobs-I6RQGD6Y.js} +2 -2
- package/dist/cli-bundle/chunks/item-revision-UAZOBP2Q.js +2 -0
- package/dist/cli-bundle/chunks/item-transaction-N5F4LXYV.js +2 -0
- package/dist/cli-bundle/chunks/mutation-admission-QZQI2NN5.js +2 -0
- package/dist/cli-bundle/chunks/{register-list-query-NZTK3AXA.js → register-list-query-P3NOKQUA.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-2OFAMOVH.js → register-mutation-A6I5K5N6.js} +2 -2
- package/dist/cli-bundle/chunks/register-operations-SPKB3TNM.js +2 -0
- package/dist/cli-bundle/chunks/register-setup-ZZRHJ4IS.js +2 -0
- package/dist/cli-bundle/chunks/{settlement-hook-UTCEZBFT.js → settlement-hook-JHXLUBEN.js} +2 -2
- package/dist/cli-bundle/chunks/{stage-VLI4OBVX.js → stage-L3T725DS.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-5NGNO54M.js +44 -0
- package/dist/cli-bundle/focused-chunks/{chunk-PCCZ72C3.js → chunk-A2246ZM7.js} +54 -54
- package/dist/cli-bundle/focused-chunks/chunk-B6U44WPW.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-BAW3DGQO.js +91 -0
- package/dist/cli-bundle/focused-chunks/chunk-BHNY3KPJ.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-C3O6JJPO.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-745IDMTD.js → chunk-C7UX2ZI3.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-CBG67HUP.js +23 -0
- package/dist/cli-bundle/focused-chunks/{chunk-NJFMG3IK.js → chunk-CO2DNPH7.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-CXTDEQ3N.js +8 -0
- package/dist/cli-bundle/focused-chunks/chunk-FEPE2CE4.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-FFO7RBLN.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-QNXXOFLQ.js → chunk-FXFDVM5O.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-QVFE5LIX.js → chunk-G6ERMFJ5.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-I5LGPUWH.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-MQVBWFJF.js → chunk-IDAYTYNN.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-J3YOATXR.js +80 -0
- package/dist/cli-bundle/focused-chunks/{chunk-3UD6F2KQ.js → chunk-J6FDCAMH.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-J7M52SCZ.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-JQS7TYQ6.js +12 -0
- package/dist/cli-bundle/focused-chunks/chunk-MEJKELWC.js +26 -0
- package/dist/cli-bundle/focused-chunks/chunk-PMKR4MJI.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-PNPYQDHU.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-Q4OIRSKL.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-I4Z2SCV5.js → chunk-QEVJ3Y67.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-Q23K6WLV.js → chunk-SDLIUZEL.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-TFYTTDAK.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-W3CSX6GI.js +3 -0
- package/dist/cli-bundle/focused-chunks/{chunk-B6OOKKOX.js → chunk-Y5GOUUYJ.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{indexed-receipt-blobs-FT3KF6VJ.js → indexed-receipt-blobs-7XGVHYAO.js} +2 -2
- package/dist/cli-bundle/focused-chunks/item-revision-L6GVT42D.js +2 -0
- package/dist/cli-bundle/focused-chunks/item-transaction-GYGP264N.js +2 -0
- package/dist/cli-bundle/focused-chunks/mutation-admission-UWTH56OD.js +2 -0
- package/dist/cli-bundle/focused-chunks/{settlement-hook-KMIBD4F2.js → settlement-hook-H56537UV.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{stage-6B3O2GZ6.js → stage-WRSNJ7VI.js} +2 -2
- package/dist/cli-bundle/main.js +30 -29
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +5 -5
- package/dist/cli-bundle/sdk-core.js +1 -1
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +57 -57
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +11 -11
- package/dist/core/config/positional-value.d.ts +1 -1
- package/dist/core/config/positional-value.js +1 -1
- package/dist/core/extensions/extension-hook-runtime.js +1 -1
- package/dist/core/extensions/item-fields.d.ts +1 -1
- package/dist/core/extensions/item-fields.js +1 -1
- package/dist/core/extensions/reserved-host-flags.js +1 -1
- package/dist/core/history/history-rewrite.js +1 -1
- package/dist/core/schema/runtime-field-values.d.ts +30 -0
- package/dist/core/schema/runtime-field-values.js +1 -1
- package/dist/core/sentry/helpers.js +1 -1
- package/dist/core/sentry/instrument.js +1 -1
- package/dist/core/shared/command-types.d.ts +7 -0
- package/dist/core/shared/error-details.d.ts +98 -0
- package/dist/core/shared/error-details.js +2 -0
- package/dist/core/shared/errors.d.ts +37 -0
- package/dist/core/shared/errors.js +1 -1
- package/dist/core/store/item-mutation-precondition.d.ts +70 -6
- package/dist/core/store/item-mutation-precondition.js +1 -1
- package/dist/core/store/item-store.js +1 -1
- package/dist/core/store/settings-validator.js +1 -1
- package/dist/core/store/settings.js +1 -1
- package/dist/mcp/server.js +2 -2
- package/dist/sdk/cli-contracts/bootstrap-command-scanner.js +1 -1
- package/dist/sdk/cli-contracts/completeness.js +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +11 -0
- package/dist/sdk/cli-contracts/enum-contracts.js +1 -1
- package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +1 -1
- package/dist/sdk/cli-contracts/registration-helpers.js +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +1 -1
- package/dist/sdk/cli-contracts/tool-schema.js +1 -1
- package/dist/sdk/cli-program.js +1 -1
- package/dist/sdk/config.d.ts +1 -1
- package/dist/sdk/config.js +1 -1
- package/dist/sdk/environment/project-runtime-compatibility.js +1 -1
- package/dist/sdk/errors.d.ts +6 -2
- package/dist/sdk/errors.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
- package/dist/sdk/governance/validate.js +1 -1
- package/dist/sdk/history/salvage.js +3 -3
- package/dist/sdk/history-compact.d.ts +7 -1
- package/dist/sdk/history-compact.js +1 -1
- package/dist/sdk/history-repair.d.ts +2 -1
- package/dist/sdk/history-repair.js +1 -1
- package/dist/sdk/index.d.ts +4 -1
- package/dist/sdk/index.js +1 -1
- package/dist/sdk/lifecycle/checkpoint-rollback.d.ts +10 -2
- package/dist/sdk/lifecycle/checkpoint-rollback.js +1 -1
- package/dist/sdk/lifecycle/claim.js +1 -1
- package/dist/sdk/lifecycle/close-many.d.ts +11 -2
- package/dist/sdk/lifecycle/close-many.js +1 -1
- package/dist/sdk/lifecycle/close.d.ts +15 -0
- package/dist/sdk/lifecycle/close.js +1 -1
- package/dist/sdk/lifecycle/core-field-recovery.d.ts +26 -0
- package/dist/sdk/lifecycle/core-field-recovery.js +1 -1
- package/dist/sdk/lifecycle/create.js +1 -1
- package/dist/sdk/lifecycle/item-revision.d.ts +162 -0
- package/dist/sdk/lifecycle/item-revision.js +2 -0
- package/dist/sdk/lifecycle/restore.js +1 -1
- package/dist/sdk/lifecycle/start-blockers.d.ts +52 -0
- package/dist/sdk/lifecycle/start-blockers.js +2 -0
- package/dist/sdk/lifecycle/task-composition.d.ts +11 -0
- package/dist/sdk/lifecycle/task-composition.js +1 -1
- package/dist/sdk/lifecycle/update-many.d.ts +11 -2
- package/dist/sdk/lifecycle/update-many.js +1 -1
- package/dist/sdk/lifecycle/update.js +2 -2
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/query/declared-blockers.d.ts +16 -0
- package/dist/sdk/query/declared-blockers.js +2 -0
- package/dist/sdk/query/get.d.ts +7 -0
- package/dist/sdk/query/get.js +1 -1
- package/dist/sdk/query/projection-contracts.js +1 -1
- package/dist/sdk/runtime-input.d.ts +12 -0
- package/dist/sdk/runtime-input.js +1 -1
- package/dist/sdk/runtime.d.ts +11 -1
- package/dist/sdk/runtime.js +1 -1
- package/dist/sdk/structured-mutations.js +1 -1
- package/dist/sdk/test/batch.js +2 -2
- package/dist/sdk/test/entry.d.ts +5 -0
- package/dist/sdk/test/entry.js +2 -2
- package/dist/sdk/test/execution.d.ts +1 -2
- package/dist/sdk/test/execution.js +2 -2
- package/dist/sdk/test/linked-command-detection.d.ts +10 -0
- package/dist/sdk/test/linked-command-detection.js +1 -1
- package/dist/sdk/test/update.d.ts +2 -0
- package/dist/sdk/test/update.js +1 -1
- package/dist/sdk/workspace-transaction.d.ts +17 -6
- package/dist/sdk/workspace-transaction.js +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/types.js +1 -1
- package/docs/COMMANDS.md +91 -0
- package/docs/CONFIGURATION.md +1 -0
- package/docs/EXTENSIONS.md +2 -2
- package/docs/LINKED_TEST_EDITS.md +38 -5
- package/docs/SDK.md +185 -1
- package/docs/agent-task-token-baseline.json +1 -1
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +111 -111
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +15 -3
- package/marketplace.json +1 -1
- package/package.json +1 -1
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-claude/package.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/pm-codex/package.json +1 -1
- package/plugins/pm-codex/plugin.json +1 -1
- package/runtime-dependencies.json +1 -1
- package/dist/cli-bundle/chunks/chunk-3ZQQVJT2.js +0 -20
- package/dist/cli-bundle/chunks/chunk-4HW253W2.js +0 -2
- package/dist/cli-bundle/chunks/chunk-4OELCF3O.js +0 -2
- package/dist/cli-bundle/chunks/chunk-BFZUJ5QP.js +0 -115
- package/dist/cli-bundle/chunks/chunk-DAZFCSDV.js +0 -2
- package/dist/cli-bundle/chunks/chunk-EN27ZQSV.js +0 -2
- package/dist/cli-bundle/chunks/chunk-K46GDAKX.js +0 -6
- package/dist/cli-bundle/chunks/chunk-OJR2YGXF.js +0 -31
- package/dist/cli-bundle/chunks/chunk-QHHFXNSQ.js +0 -3
- package/dist/cli-bundle/chunks/chunk-ZNWDYDFF.js +0 -129
- package/dist/cli-bundle/chunks/item-transaction-JHPBH6N7.js +0 -2
- package/dist/cli-bundle/chunks/mutation-admission-QUNQZCZ5.js +0 -2
- package/dist/cli-bundle/chunks/register-operations-RFMM5KZ6.js +0 -2
- package/dist/cli-bundle/chunks/register-setup-6B6Q7M5L.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-4NVPDZLX.js +0 -12
- package/dist/cli-bundle/focused-chunks/chunk-4UUE3YXZ.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-5UDDRPYR.js +0 -8
- package/dist/cli-bundle/focused-chunks/chunk-AK2CI2GI.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-EJJWOFP5.js +0 -91
- package/dist/cli-bundle/focused-chunks/chunk-FUGYXUUL.js +0 -80
- package/dist/cli-bundle/focused-chunks/chunk-HMXVTWIV.js +0 -3
- package/dist/cli-bundle/focused-chunks/chunk-JLN5CFYM.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-K4FMZB4Y.js +0 -23
- package/dist/cli-bundle/focused-chunks/chunk-PF553UVP.js +0 -44
- package/dist/cli-bundle/focused-chunks/chunk-RUCG6UWN.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-SGWYNU7T.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-TGS5RXBY.js +0 -26
- package/dist/cli-bundle/focused-chunks/chunk-WD43E7RU.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-YM4AMP7H.js +0 -2
- package/dist/cli-bundle/focused-chunks/item-transaction-F4SN7TXJ.js +0 -2
- package/dist/cli-bundle/focused-chunks/mutation-admission-7R2FXJ5O.js +0 -2
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import{c as He,e as Fe,f as ze,i as Bn,j as Kn,k as Jn,l as Yn,m as Xn}from"./chunk-SDLIUZEL.js";import{h as oo}from"./chunk-4PW5XWVI.js";import{$d as no,A as er,Aa as we,Ac as Zn,C as zn,Cc as it,Ee as rr,Fa as Gn,Ga as A,Gc as Qn,Ha as z,Ia as ot,Ja as g,Pc as eo,Qd as $e,Rd as q,Sd as st,Td as Ee,Ud as G,Yd as to,Zd as ro,de as $,fa as Wn,i as Qe,j as Dn,k as Pn,ka as qn,l as jn,m as Ln,q as et,r as tt,s as Hn,x as Fn,y as rt,z as nt}from"./chunk-MEJKELWC.js";import{A as b,C as Mn,D as W,E as ie,F as be,G as Vn,H as tr,I as Le,J as Un,m as K,u as $n,x as h,y as je,z as E}from"./chunk-G6ERMFJ5.js";import{createHash as js}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 ku=["sha256","sha512"],Ls="sha256",io="sha256";function se(e){if(e===void 0)return Ls;if(e==="sha256"||e==="sha512")return e;throw new TypeError(`unsupported_history_hash_algorithm:${String(e)}`)}function J(e,t){return js(se(t)).update(e,"utf8").digest("hex")}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="6635e694-c788-5805-adb8-ed93cc931946")}catch{}})();var Hs=16;function at(e){let t=e.trim().replaceAll(/[^A-Za-z0-9]+/g," ").split(/\s+/).filter(o=>o.length>0).map(o=>o.toLowerCase());if(t.length===0)return e;let[r,...n]=t;return`${r}${n.map(o=>`${o.slice(0,1).toUpperCase()}${o.slice(1)}`).join("")}`}function Cu(e,t,r=new Set,n){if(lo(e,t,n))return;let o=uo(e,t,r,n),i=ct(e);return[at(e.cli_flag),...i].find(s=>!o.has(s)&&co(s,i,o))}function co(e,t,r){for(let n of t){if(n===e)break;if(r.has(n))return!1}return!0}function lo(e,t,r){return t.definitions.some(n=>n!==e&&n.metadata_key===e.metadata_key&&(r===void 0||n.commands.includes(r)))}function uo(e,t,r,n){return new Set([...r,...t.definitions.filter(o=>o!==e&&(n===void 0||o.commands.includes(n))).flatMap(o=>ct(o))])}function _o(e){return e.replace(/^-+/u,"").startsWith("no-")}function Fs(e){return e.startsWith("-")?e:`--${e}`}function Nu(e,t,r,n){if(lo(e,t,n))return;let o=uo(e,t,r.options,n),i=ct(e);return[e.cli_flag,...e.cli_aliases].find(s=>{let a=fo(s);return _o(s)||r.flags.has(Fs(s))||o.has(a)?!1:co(a,i,o)})}function fo(e){return e.replace(/^-+/u,"").replace(/^no-/u,"").split("-").reduce((t,r)=>`${t}${r.charAt(0).toUpperCase()}${r.slice(1)}`)}function ct(e){return[...new Set([Xn(e),at(e.key),at(e.cli_flag),...e.cli_aliases.map(t=>at(t)),...[e.cli_flag,...e.cli_aliases].filter(t=>!_o(t)).map(t=>fo(t))])]}function mo(e,t){for(let r of ct(t)){if(!Object.hasOwn(e,r))continue;let n=e[r];if(n!==void 0)return n}}function po(e){return Array.isArray(e)?e.flatMap(t=>po(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 so(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 b(`${t} must be one of true|false|1|0|yes|no`,E.USAGE)}function ao(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 b(`${t} must be a number`,E.USAGE);return n}function zs(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 b(`${t} must be valid JSON ${r}`,E.USAGE)}function $s(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 Ms(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(!$s(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 Vs(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=dt(i,t.items,`${r}[${o}]`,n+1);if(s)return s}}}function Us(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=dt(s,a,`${r}.${i}`,n+1);if(d)return d}}function dt(e,t,r,n=0){if(n>Hs)return`${r} value schema exceeds maximum depth`;let o=Ms(e,t,r);if(o)return o;let i=Vs(e,t,r,n);if(i)return i;let s=Us(e,t,r,n);if(s)return s;if(!t.one_of)return;let a=0;for(let d of t.one_of)if(dt(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=dt(t,e.value_schema,r);if(n)throw new b(n,E.USAGE);return t}function Ws(e,t,r,n){let o=n==="option"&&Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return ae(e,zs(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 Ws(e,t,o,n);if(e.repeatable||e.type==="string_array"){let s=po(t);return e.type==="number"?ae(e,s.map(a=>ao(a,o)),o):e.type==="boolean"?ae(e,s.map(a=>so(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,ao(i,o),o):e.type==="boolean"?ae(e,so(i,o),o):ae(e,typeof i=="string"?i:String(i),o)}function qs(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=mo(e,i);if(s===void 0){qs(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 Du(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=mo(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 nr=1,or=2;function ju(e){return Math.max(ir(e),e.tests?.some(t=>t.updated_by!==void 0||t.updated_at!==void 0)?2:1)}function ir(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=1?t:1}function ho(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=1))return e}function Gs(e,t=2,r=t){return e<r?"outdated":e>t?"ahead":"current"}function Lu(e,t=2,r=t){let n=[],o=[];for(let i of e){let s=Gs(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 Bs={"in-progress":"in_progress",cancelled:"canceled"};function lt(e,t){if(t){let o=Jn(e,t);if(o)return o}if(typeof e!="string")return;let r=e.trim().toLowerCase();if(!r)return;let n=Bs[r]??r;if(Qe.includes(n))return n}function Ks(e,t){return lt(e,t)??e}function $u(e,t){return t.terminal_statuses.has(Ks(e,t))}import{encode as Zs}from"@toon-format/toon";import{isDeepStrictEqual as yo}from"node:util";import{decode as Js}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 sr(e){return{value:Js(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 Ys=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function Xs(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(Ys);if(!i)continue;let s=i[1];r.push({line:n+1,marker:s,text:o})}return r}function ut(e){return Xs(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 lr=new Set(["schema","tracker","auto","none"]),Eo=new Set(["source","isolated","snapshot"]),Qs=new Set(["legacy","local_mutation","local_source_ref","acknowledged","invalid_provenance","foreign_source_ref"]),ea=new Set(["passed","failed","stopped","canceled"]),ta=new Set(zn);function Ie(e){return e.replaceAll("\\","/")}function ko(e){for(let t of e)if(t!==0)return t;return 0}function ft(e){for(let[t,r]of Object.entries(e))r===void 0&&delete e[t]}var So=["id","title","description","created_at","updated_at"],ra=new Set(K);function Io(e){if(e?.schema)return{statusRegistry:Kn(e.schema),fieldRegistry:Yn(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function na(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(r=>r.toLowerCase()).includes(t.trim().toLowerCase()):!1}function Y(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new b(`Invalid item metadata: ${e}`,E.GENERIC_FAILURE,{code:"item_document_invalid",reason:e.includes("required")?"missing_required_field":"schema_validation_error",...t?{field:t}:{},required:"Provide an item document whose metadata satisfies the active runtime schema.",why:e})}function We(e,t){throw new b(t,E.GENERIC_FAILURE,{code:"item_document_invalid",reason:"syntax_error",format:e,required:`Provide a syntactically valid ${e==="toon"?"TOON":"JSON Markdown"} item document.`,why:"The document could not be decoded far enough to validate item metadata."})}function Oo(e,t){if(!t||typeof e!="object"||e===null)return;let r=ir(e);if(!(r<=or))throw new b(`Stored item uses format version ${r}; this runtime supports up to ${or}. 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 To(e){let t=new Set(ra);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||Y(t)}function qe(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&Y(t),e}function ar(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 go(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 ur(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 oa(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 ia(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 sa(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 aa(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(", ")}`),go(t,"interval","event.recurrence.interval"),go(t,"count","event.recurrence.count"),ur(t,"until","event.recurrence.until"),oa(t.by_weekday),ia(t.by_month_day),sa(t.exdates)}function ca(e){for(let n of So)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>=nr,`pm_format_version must be an integer >= ${nr}`),t}function da(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=lt(r,n),i=n?n.definitions.map(s=>s.id):[...Qe];y(o!==void 0,`status must be one of: ${i.join(", ")}`)}function la(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 ua(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 _a(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&Y("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 fa(e){e.regression!==void 0&&typeof e.regression!="boolean"&&Y("regression must be a boolean")}function ma(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 pa(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 ha(e){e.recurrence!==void 0&&(aa(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 ya(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")),pa(t),t.all_day!==void 0&&y(typeof t.all_day=="boolean","event.all_day must be a boolean"),ha(t)}function ga(e){let t=e.events;if(t!==void 0){y(Array.isArray(t),"events must be an array");for(let r of t)ya(r)}}function va(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 ba(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 wa(e,t,r){if(r?.fieldRegistry)for(let n of r.fieldRegistry.definitions){let o=e[n.metadata_key];if(o===void 0){na(n,t)&&Y(`missing required schema field: ${n.metadata_key}`);continue}try{e[n.metadata_key]=Me(n,o,`metadata field "${n.metadata_key}"`,"metadata")}catch(i){Y(String(i?.message).replace(/^Invalid\s+/u,""))}}}function Ea(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let r=To(t),n=Object.keys(e).filter(o=>!r.has(o)).sort((o,i)=>o.localeCompare(i));n.length!==0&&(t.unknownFieldPolicy==="reject"?Y(`unknown schema fields are not allowed: ${n.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${n.join(",")}`))}function _r(e,t){let r=qe(e,"item metadata must be an object"),n=ca(r);da(r,t),la(r),ua(r),_a(r),fa(r),ar(r,"created_at"),ar(r,"updated_at"),r.deadline!==void 0&&ar(r,"deadline"),ma(r),ga(r),ur(r,"closed_at","closed_at"),ur(r,"completed_at","completed_at"),va(r),ba(r),wa(r,n,t),Ea(r,t)}function ka(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 cr(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 Sa(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 Ia(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)=>er(s)-er(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 Oa(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(Ta).sort(Aa)}function Ta(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:Ia(e.recurrence)};return ft(t),t}function Aa(e,t){return ko([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 xa(e){if(!(!e||e.length===0))return e.map(t=>({path:Ie(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function Ca(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)=>ko([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 Na(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function dr(e){return typeof e=="string"?e:""}function Ra(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 _t(e,t){return typeof e=="string"&&t.has(e)?e:void 0}function Da(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:_t(r.requested_pm_context_mode,lr),pm_context_mode:_t(r.pm_context_mode,lr),workspace_context_mode:_t(r.workspace_context_mode,Eo),trust_reason:_t(r.trust_reason,Qs)}));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=ea.has(e.status)?e.status:"failed",o={run_id:t,kind:r,status:n,started_at:dr(e.started_at),finished_at:dr(e.finished_at),recorded_at:dr(e.recorded_at),attempt:Na(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:Ra(e.measurements),executions:Da(e.executions)};return ft(o),o}function ja(e){if(!(!Array.isArray(e)||e.length===0))return e.map($a)}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 hr(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function yr(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function vo(e){if(!hr(e))return;let t=Object.entries(e).map(([r,n])=>[r.trim(),String(n).trim()]).filter(([r,n])=>r.length>0&&!yr(r)&&n.length>0).sort(([r],[n])=>r.localeCompare(n));return t.length>0?Object.fromEntries(t):void 0}function La(e){if(!hr(e))return;let t=Object.entries(e).map(([r,n])=>[r.trim(),Number(n)]).filter(([r,n])=>r.length>0&&!yr(r)&&Number.isFinite(n)).sort(([r],[n])=>r.localeCompare(n));return t.length>0?Object.fromEntries(t):void 0}function Ha(e){let t=e?.trim().toLowerCase();if(!(!t||!lr.has(t)))return t}function Fa(e){let t=e?.trim().toLowerCase();if(!(!t||!Eo.has(t)))return t}function za(e,t){if(t===!0)return{provenance_invalid:!0};if(e===void 0)return{};if(!hr(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 $a(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:Ha(e.pm_context_mode),workspace_context_mode:Fa(e.workspace_context_mode),...za(e.provenance,e.provenance_invalid),updated_by:m(e.updated_by),updated_at:m(e.updated_at),env_set:vo(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:vo(e.assert_json_field_equals),assert_json_field_gte:La(e.assert_json_field_gte),note:e.note?.trim()||void 0};return ft(t),t}function Ma(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 Va(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 Ua(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 Wa(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 qa(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 Ga(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&&ta.has(o)?o:void 0,s=Wn(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 Ba(l,t),l}function Ba(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",Va],["files","files",Ua],["tests","tests",Wa],["docs","docs",qa]];for(let[i,s,a]of o){let d=a(t[s]);d&&(e[i]=d)}}function Ka(e){if(!Array.isArray(e))return;let t=e.flatMap(r=>{let n=Ga(r);return n?[n]:[]});return t.sort((r,n)=>r.order-n.order),t.length>0?t:void 0}function Ja(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 Ya(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 Xa(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 Za(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 Qa(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(tt.includes(t))return t}function ec(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 tc(e,t){let r=e,n=t;for(let[o,i]of Object.entries(n))yr(o)||Object.prototype.hasOwnProperty.call(r,o)||i===void 0||(r[o]=i)}function rc(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 nc(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let r=To(t),n=Object.keys(e).filter(o=>!r.has(o)).sort((o,i)=>o.localeCompare(i));n.length>0&&t.unknownFieldPolicy==="reject"&&Y(`unknown schema fields are not allowed: ${n.join(", ")}`),n.length>0&&t.onWarning?.(`item_unknown_schema_fields:${n.join(",")}`)}function mt(e,t={}){let r=Io(t),n=lt(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:ho(e.pm_format_version),source_type:m(e.source_type),type_options:Za(e.type_options),status:n,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:ka(e.dependencies),comments:cr(e.comments),notes:cr(e.notes),learnings:cr(e.learnings),files:xa(e.files),tests:ja(e.tests),test_runs:Ca(e.test_runs),docs:Ma(e.docs),deadline:Ue(e.deadline),reminders:Sa(e.reminders),events:Oa(e.events),closed_at:Ue(e.closed_at),completed_at:Ue(e.completed_at),assignee:m(e.assignee),claim_principal:m(e.claim_principal),source_owner:m(e.source_owner),author:Ue(e.author),estimated_minutes:e.estimated_minutes,acceptance_criteria:e.acceptance_criteria??void 0,design:e.design??void 0,external_ref:e.external_ref??void 0,definition_of_ready:m(e.definition_of_ready),order:e.order,goal:m(e.goal),objective:m(e.objective),value:m(e.value),impact:m(e.impact),outcome:m(e.outcome),why_now:m(e.why_now),parent:m(e.parent),reviewer:m(e.reviewer),risk:e.risk??void 0,confidence:Qa(e.confidence),sprint:m(e.sprint),release:m(e.release),blocked_by:m(e.blocked_by),blocked_reason:m(e.blocked_reason),unblock_note:m(e.unblock_note),reporter:m(e.reporter),severity:ec(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:Ka(e.plan_steps),plan_decisions:Ja(e.plan_decisions),plan_discoveries:Ya(e.plan_discoveries),plan_validation:Xa(e.plan_validation)};return tc(i,e),rc(i,r),nc(i,r),ft(i),i}function Ao(e){return g(e,K)}function oc(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 ic(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=oc(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 sc(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 fr(e,t){return mt(e,{...t,onWarning:void 0})}function ac(e,t,r={}){let n=sc(e);n.stripped&&r.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=ic(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 Oo(s,r.requireSupportedFormat),_r(s,t),{metadata:fr(s,r),body:Se(i)}}function cc(e,t,r={}){let n;try{n=sr(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(Oo(Object.prototype.hasOwnProperty.call(o,"front_matter")?o.front_matter:o,r.requireSupportedFormat),!So.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 _r(o.front_matter,t),y(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:fr(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"),_r(s,t),{metadata:fr(s,r),body:Se(typeof i=="string"?i:"")}}function dc(e,t={}){let r=mt(e.metadata,t),n=Ao(r),o=Se(e.body??"");pr(JSON.parse(JSON.stringify(n))),pr({body:o});let i=JSON.stringify(n,null,2);return o?`${i}
|
|
4
|
+
|
|
5
|
+
${o}
|
|
6
|
+
`:`${i}
|
|
7
|
+
`}var lc=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/u;function mr(e,t){return typeof e=="string"?bo(e,t):e===null||typeof e!="object"?null:Array.isArray(e)?wo(e.map((r,n)=>()=>mr(r,`${t}[${n}]`))):wo(Object.entries(e).map(([r,n])=>()=>{let o=t?`${t}.${r}`:r;return bo(r,`${o} (key)`)??mr(n,o)}))}function bo(e,t){let r=e.search(lc);return r<0?null:{path:t,index:r}}function wo(e){for(let t of e){let r=t();if(r!==null)return r}return null}function pr(e){let t=mr(e,"");if(t!==null)throw new b(`Item field ${t.path} contains an unpaired surrogate code unit at index ${t.index}; persisted item text requires well-formed Unicode.`,E.USAGE,{code:"text_unpaired_surrogate",field:t.path,required:"Provide well-formed UTF-16 text: keep emoji and other astral characters whole and avoid lone \\uD800-\\uDFFF JSON escapes.",why:"Persisted item text must remain well-formed in every supported format; a lone surrogate can cause an unclassified encoder fault.",nextSteps:[`Repair the ${t.path} value (for example String.prototype.toWellFormed() or re-truncate on a character boundary) and retry.`,"Run pm <command> --help --json to review the text fields the command accepts."]})}function uc(e,t={}){let r=mt(e.metadata,t),n=Ao(r),o=Se(e.body??""),i={...n,body:o},s=JSON.parse(JSON.stringify(i));pr(s);let a=Zs(s),d;try{d=sr(a).value}catch(l){throw new b("Refusing to persist a TOON item document that the configured decoder cannot read back.",E.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_error",format:"toon",required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:l instanceof Error?l.message:String(l)})}if(!yo(d,s)){let l=typeof d=="object"&&d!==null&&!Array.isArray(d)?d:{},_=Object.keys(s).find(f=>!yo(s[f],l[f]))??"document";throw new b(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${_}".`,E.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_mismatch",format:"toon",field:_,required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:"The encoded document decoded to a value different from the canonical item payload."})}return`${a}
|
|
8
|
+
`}function i_(e,t={}){let r=ut(e);if(r)throw new b(`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=Io(t);return n==="toon"?cc(e,o,t):ac(e,o,t)}function s_(e,t={}){return(t.format??"toon")==="toon"?uc(e,t):dc(e,t)}function Oe(e,t={}){return{metadata:mt(e.metadata,t),body:Se(e.body??"")}}import{AsyncLocalStorage as _c}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 gr=new _c,xo=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function pt(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=pt(r.id,128),o=pt(r.parent_id,128);if(n===void 0||!xo.test(n)||o!==void 0&&!xo.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=pt(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=pt(n,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function fc(e,t,r){let n=gr.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 vr(e,t){return fc(e.session_context,t,e.client_info?.episode)??{}}function d_(e,t){let r=gr.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 gr.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function l_(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{createHash as Co}from"node:crypto";import{existsSync as br,promises as No,readFileSync as mc}from"node:fs";import M from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="06c9f6f4-c2f0-549c-9a0f-4f4269cc5f49")}catch{}})();var pc="session.json";function wr(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function Ro(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=wr(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=>wr(d,128)),a=t.focused_item_id===void 0||wr(t.focused_item_id,128);if([r,n,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function hc(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([r,n])=>{let o=Ro(n);return o&&r.length<=128?[[r,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Er(e){return M.join(Gn(e),pc)}async function Do(e){try{let t=await No.readFile(Er(e),"utf8"),r=JSON.parse(t);if(r===null||typeof r!="object"||Array.isArray(r))return{};let n=r,o=n.focused_item,i=hc(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 kr(e,t){let r=await $(e,"session-state",h.locks.ttl_seconds,"session-state",!1,!0,h.locks.wait_ms);try{let n=await Do(e);t(n);let o=Er(e);await No.mkdir(M.dirname(o),{recursive:!0}),await Le(o,JSON.stringify(n))}finally{await r()}}function Sr(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${Co("sha256").update(e).digest("hex").slice(0,24)}`}function Ir(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function Or(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)}+${Co("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function Tr(e,t,r){await kr(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 v_(e){let t=Sr(e.principal);await Tr(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??Or(n),confidence:o?"high":"medium",rule_version:"v2",evidence:Ir([...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 b_(e){let t=Sr(e.principal);await Tr(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??Or(n),confidence:o?"high":"medium",evidence:Ir([...n.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:n}})}async function w_(e){let t=Sr(e.principal);await Tr(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??Or(n),confidence:o?"high":"medium",rule_version:"v2",evidence:Ir([...n.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:n,...o?{focused_item_id:o}:{}}})}function yc(e,t){let r=t.PM_PATH?.trim();if(r){let o=M.resolve(e,r);if(br(M.join(o,"settings.json")))return o;let i=M.join(o,".agents","pm");if(br(M.join(i,"settings.json")))return i}let n=M.resolve(e);for(let o=0;o<32;o+=1){let i=M.join(n,".agents","pm");if(br(M.join(i,"settings.json")))return i;let s=M.dirname(n);if(s===n)break;n=s}}function Po(e){if(!e.key)return;let t=yc(e.cwd,e.env);if(t)try{let r=JSON.parse(mc(Er(t),"utf8"));return Ro(r.semantic_attribution?.[e.key])}catch{return}}async function E_(e){return(await Do(e)).focused_item}async function k_(e,t){await kr(e,r=>{r.focused_item=t})}async function S_(e){await kr(e,t=>{delete t.focused_item})}import{AsyncLocalStorage as Rr}from"node:async_hooks";import{createHash as gc}from"node:crypto";import D from"node:fs";import Fo from"node:os";import ue from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a69b86e2-6633-5abc-81b7-6a54a592d36c")}catch{}})();var Dr=["model","effort","role","topic","version"],gt=new Rr,zo=new Rr,vt=new Rr,Pr=[{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:[]}],$o=Object.freeze({max_bytes:1048576,max_lines:4096,network_access:!1,subprocess_access:!1}),vc=Object.freeze({...$o,max_bytes:4194304}),Ar=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function bc(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"?vc:$o,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 Mo=Object.freeze(Pr.filter(e=>e.harness!=="ci").map(bc).sort((e,t)=>e.harness.localeCompare(t.harness))),le=new Map,Ae=new Map;function N(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function X(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function Z(e){let t=e.harness.trim().toLowerCase();if(!Ar.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:X(e.environment_keys),model_environment_keys:X(e.model_environment_keys),session_environment_keys:X(e.session_environment_keys),provenance_environment_keys:Object.fromEntries(Object.entries(e.provenance_environment_keys??{}).slice(0,32).map(([r,n])=>[r.trim().toLowerCase().slice(0,64),X(n)]).filter(([r])=>Ar.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"&&Ar.test(r[0])&&(r[1]==="ai_agent_version"||r[1]==="claude_session_file"||r[1]==="codex_session_file"))),provenance_unavailable_dimensions:X(e.provenance_unavailable_dimensions).map(r=>r.toLowerCase()),argv_markers:X(e.argv_markers).map(r=>r.toLowerCase()),client_names:X(e.client_names).map(r=>r.toLowerCase())}}var Vo=Pr.map(Z);function wc(e,t){return JSON.stringify(e)===JSON.stringify(t)}function yt(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function jr(e=[]){let t=new Map(Pr.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(),...Vo.filter(o=>o.harness==="ci"),...[...Ae.values()].map(o=>o.descriptor),...vt.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 Lr(e,t){for(let r of t??[]){let n=N(e[r]);if(n)return n.slice(0,256)}}function Ec(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 Uo(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 kc=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 kc.has(r)?r:void 0}function xr(e,t){return N(e?.[t])?.slice(0,256)}var Sc=1048576,Nr=4194304,ht=new Map,jo=Object.freeze({}),Cr=new Map,Lo=Object.freeze({});function Ho(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function Ic(e){let t;try{t=JSON.parse(e)}catch{return Lo}let r=Ho(t);if(!r)return Lo;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=Ho(d);l&&n.push({value:l,depth:a.depth+1})}}return Object.freeze({model:i,version:s})}function Wo(e){try{return D.lstatSync(e).isFile()?"available":"missing"}catch(t){return W(t)?"missing":"failed"}}function Oc(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:Wo(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 qo(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??Fo.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=Wo(d);if(l==="available")return{status:l,path:d};if(l==="failed")return{status:l}}return Oc(o,r)}function Tc(e,t,r){let n=qo(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=Cr.get(s);if(a)return a[e];let d=Math.min(i.size,Sc),l=Math.min(d,Math.ceil(d/2)),_=Math.min(d-l,i.size-l),f=Buffer.alloc(l);D.readSync(o,f,0,l,0);let w=Buffer.alloc(_);_>0&&D.readSync(o,w,0,_,i.size-_);let O={},I=i.size<=d?Buffer.concat([f,w]).toString("utf8").split(`
|
|
9
|
+
`):[...f.toString("utf8").split(`
|
|
10
|
+
`).slice(0,4096),...w.toString("utf8").split(`
|
|
11
|
+
`).slice(-4096)];for(let L of I){if(L.length===0||L.length>262144)continue;let B=Ic(L);if(O.model??=B.model,O.version??=B.version,O.model&&O.version)break}let H=Object.freeze(O);return Cr.clear(),Cr.set(s,H),H[e]}finally{D.closeSync(o)}}catch{return}}function Ac(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 xc(e){if(e<=Nr)return[{offset:0,length:e}];let t=Math.floor(Nr/2);return[{offset:e-t,length:t},{offset:0,length:t}]}function Cc(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 Nc(e,t){let r={},n=4096;for(let o of xc(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(Cc(r,a),r.model&&r.effort)break;if(r.model&&r.effort||n<=0)break}return r}function Rc(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??Fo.homedir(),".codex","sessions"),i=`${o}\0${n}`,s=ht.get(i);if(s)return s[e];let a=Ac(o,n);if(!a){ht.set(i,jo);return}try{let d=D.openSync(a,"r");try{let l=D.fstatSync(d).size,_=Nc(d,l);return ht.set(i,_),_[e]}finally{D.closeSync(d)}}catch{ht.set(i,jo);return}}function Dc(e,t,r,n){let o=vt.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 Tc(e,t,r);if(i==="codex_session_file")return Rc(e,t,r);if(i==="ai_agent_version"){let s=N(r.AI_AGENT);return!s||!n||!yt(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&&yt(o,t.harness)?"available":"unavailable"}return e==="codex_session_file"?N(n.CODEX_THREAD_ID)!==void 0?"available":"unavailable":qo(r,n).status}function Hr(e){return e||(zo.getStore()??{env:process.env,argv:process.argv})}function jc(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 yt(l.slice(l.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>n===a||yt(n,a));return o||i||s}function Lc(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 Hc(e){let t=e.find(([r])=>r!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function Fc(e,t,r,n,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...Dr,...Object.keys(n?.provenance_environment_keys??{})]),d,l,_;a.has(e)&&(d=de(e,N(r[s])?.slice(0,256)),_=de(e,Uo(t.argv??[],e)),l=de(e,Ec(t.argv??[],e)));let f={...n?.provenance_environment_keys,model:n?.model_environment_keys},w={...t.client_info?.provenance,model:t.client_info?.model},O=xr(o?.provenance,e),I=de(e,Lr(r,f[e])),H=de(e,xr(w,e)),L=de(e,xr(t.provenance,e)),B=Dc(e,t,r,n);return Hc([[d,"override"],[O,"session"],[_,"argv"],[I,"environment"],[H,"mcp_client"],[L,"host"],[B,"probe"]])??Lc(e,i)??(l?{value:l,source:"argv"}:void 0)}function zc(e,t){if(!(!e||!t))return gc("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function $c(e,t,r,n,o){let i=Object.keys(r?.provenance_environment_keys??{}),s=new Set([...Dr,...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=Fc(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 P_(e){let t=e.map(Z),r=new Map(Vo.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&&!wc(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 Mc(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>Nr||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(X(e.supported_dimensions).map(o=>o.toLowerCase()).sort()),native_sources:Object.freeze([...new Set(e.native_sources)]),probe_policy:Object.freeze({...e.probe_policy}),normalization:Object.freeze({...e.normalization}),...e.waivers?{waivers:Object.freeze(Object.fromEntries(Object.entries(e.waivers).slice(0,32).map(([o,i])=>[o.slice(0,64),i.slice(0,256)])))}:{}})}function j_(){let e=new Map(Mo.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 L_(e){let t=e.map(Mc),r=new Map(Mo.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 H_(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 F_(e,t){return zo.run(e,t)}function z_(e,t,r={}){let n=e.map(Z);return jr(n),vt.run({descriptors:n,probesEnabled:r.probesEnabled!==!1},t)}function Fr(e){let t=Hr(e),r=t.env??{},n=jr(t.descriptors),o=[...(t.argv??[]).slice(0,3),...t.process_labels??[]].slice(0,64).map(I=>I.slice(0,512)),i=t.client_info?.name.trim().toLowerCase()??"",s=n.find(I=>jc(I,r,o,i)),a=vr(t,r),d=[Lr(r,s?.session_environment_keys),N(t.client_info?.session)?.slice(0,256)].find(I=>I!==void 0),l=zc(s?.harness,d),_=Po({cwd:t.cwd??process.cwd(),env:r,key:l}),f=$c(t,r,s,a,_),w=f.model,O=[["harness",s?.harness],["model",w?.value],["model_source",w?.source],["session",d],["instance",l],["provenance",Object.keys(f).length>0?f:void 0],["episode",a.episode]];return Object.fromEntries(O.filter(I=>I[1]!==void 0))}function Vc(e){return e==="unavailable"?{status:"unavailable",reason:"harness_unavailable"}:e==="missing"?{status:"unavailable",reason:"resolver_input_missing"}:{status:"failed",reason:"resolver_failed"}}function Uc(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{...Vc(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 Go(e){let t=Hr(e),r=Fr(t),n=jr(t.descriptors).find(l=>l.harness===r.harness),o=t.env??{},i=t.probes_enabled!==!1&&vt.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(N(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=vr(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,Lr(o,n?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,Uo(t.argv??[],"role")].some(l=>{let _=N(l)?.slice(0,256);return _!==void 0&&de("role",_)===void 0}),d=Object.fromEntries(Dr.map(l=>[l,Uc(l,r,n,t,o,i,l==="role"&&a)]));return{...r,provenance_outcomes:d}}function $_(){return process.env.PM_AUTHOR}function M_(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function V_(e){return Fr(e).harness}function Wc(e,t,r){let n=Hr(r),o=Fr(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 Bo(e){let t=gt.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function Ko(e){let t=gt.getStore();return t?.author!==e?e.startsWith("harness:")?{harness:e.slice(8)}:{}:{...t.harness?{harness:t.harness}:{},...t.model?{model:t.model}:{},...t.model_source?{model_source:t.model_source}:{},...t.session?{session:t.session}:{},...t.instance?{instance:t.instance}:{},...t.provenance?{provenance:t.provenance}:{},...t.episode?{episode:t.episode}:{}}}function U_(e){let t=gt.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function Jo(e,t){let r=Wc(e,t);return gt.enterWith(r),r.author}import qc from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="58661057-fa80-5571-9be7-b949723c274b")}catch{}})();async function bt(e,t){let r=await qc.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=ut(n);if(o)throw new b(`History for ${t} contains merge conflict markers at line ${o.line} (${o.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,E.GENERIC_FAILURE,{code:"history_merge_conflict_markers_detected",required:"Repair the history stream by resolving merge-conflict markers.",why:"Conflict markers break JSONL parsing and invalidate deterministic audit history.",examples:[`pm history ${t}`,`pm restore ${t} <timestamp-or-version>`],nextSteps:["Resolve or restore the history file, then rerun the command."]});let i=[];for(let[s,a]of n.split(/\r?\n/).entries()){let d=a.trim();if(d)try{i.push(JSON.parse(d))}catch{throw new b(`History for ${t} contains invalid JSON at line ${s+1}. Repair or restore the history stream and retry.`,E.GENERIC_FAILURE,{code:"history_json_invalid",nextSteps:[`Run pm history-repair ${t} --salvage-tail --dry-run to check whether only an invalid suffix is damaged.`]})}}return{raw:n,raw_bytes:r,entries:i}}async function Ge(e,t){return(await bt(e,t)).entries}import Pi from"fast-json-patch";import Ci from"node:fs/promises";import $d from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="82c79093-2a40-5b4c-8d41-637b0ae03c4f")}catch{}})();import T from"node:fs/promises";import C from"node:path";import{createHash as At,randomUUID as Br}from"node:crypto";import{createRequire as ud}from"node:module";import{setImmediate as ai}from"node:timers/promises";import Mr 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 Yo(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]="0c0cb8c7-4d7d-53f8-8ec2-d6dc98fc6dc5")}catch{}})();var Bc={metadata:{},body:""};function Et(){return structuredClone(Bc)}function df(e,t=_e,r){return zr(e,t,r)[0]}function zr(e,t,r){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return ei(kt(e),t,r)}catch{}let n=J(A({replay_fallback:!0,metadata:e.metadata,body:e.body}),r);return t===2?[n,n]:[n]}function ti(e,t,r,n,o){let i=se(n.hash_algorithm),s=`${r}:${i}`,a=o?.before.get(s)??zr(e,r,i),d=zr(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 kt(e){return{metadata:e.metadata,body:e.body}}function lf(e,t={}){return Oe(kt(e),t)}function uf(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=Oe(e);return{metadata:g(t.metadata,K),body:t.body}}function Xo(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function Kc(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function ri(e){return Array.isArray(e)?e.filter(Kc).map(t=>({...t,path:Xo(t.path),from:typeof t.from=="string"?Xo(t.from):void 0})):[]}function Jc(e){return typeof e=="object"&&e!==null&&"metadata"in e&&"body"in e&&typeof e.body=="string"&&typeof e.metadata=="object"&&e.metadata!==null}function St(e,t){try{let r=ri(t),n=Mr.applyPatch(structuredClone(e),r,!0,!0).newDocument;return Jc(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 Yc(e){return[...new Set(e.map(t=>t.item_hash_version).filter(t=>t!==void 0&&Be.includes(t)))]}function ni(e){return e!==void 0&&!Be.includes(e)}function Xc(e,t){return e!==void 0?[e]:t===void 0?[...Be]:[t]}function oi(e){let t=wt(e);if(!t.ok)return t.error;let r=$r(e);return r.ok?void 0:r.error}function Zc(e,t){let r=oi(e);if(r)return{ok:!1,error:r};let n=St(t,e.patch);return n.ok?{ok:!0,document:n.document}:{ok:!1,error:"patch_apply_failed"}}function Qc(e,t){let r=oi(e);if(r)throw new TypeError(`${r}:entry_${t+1}`)}function ed(e,t,r,n,o){let i=[];for(let s of r){let a=ti(e,t,s,n,o);if(i.push({version:s,match:a}),a.pairIndex>=0)break}return i}function It(e){let t=Et(),r=new Map,n,o,i=Yo(e).map(s=>`verify_failed:duplicate_create:entry_${s.repeated_create_index}:prior_${s.prior_genesis_index}`);for(let s=0;s<e.length;s+=1){let a=e[s],d=a.item_hash_version,l=ni(d);l&&i.push(`verify_failed:unsupported_item_hash_version:${String(d)}:entry_${s+1}`);let _=Zc(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=Xc(d,o),w={before:r,after:new Map},O=ed(t,_.document,f,a,w),I=O.find(({match:L})=>L.pairIndex>=0);if(I===void 0){let L=O.some(({match:B})=>B.beforeIndex>=0);return{ok:!1,errors:[...i,`verify_failed:${L?"after":"before"}_hash_mismatch:entry_${s+1}`]}}let H=I.version;t=_.document,r=w.after,n=H,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=It(e);return{ok:t.ok,errors:t.errors}}function Zo(e,t){try{return{ok:!0,document:Mr.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function td(e,t){let r=structuredClone(e),n=0,o=0;for(let s of ri(t)){let a=Zo(r,s);if(a.ok){r=a.document;continue}if(s.op==="replace"){let d=Zo(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 rd(e){let t=Yc(e);if(t.length===1)return t[0];let r=It(e);return r.ok&&r.item_hash_version!==void 0?r.item_hash_version:t.length===0?1:_e}function nd(e,t,r=t.patch){let n=St(e,r);if(n.ok)return{next:n.document,patch:r,repaired:A(r)!==A(t.patch),converted:0,skipped:0};let o=td(e,r);return{next:o.document,patch:Mr.compare(e,o.document),repaired:!0,converted:o.convertedReplaceToAdd,skipped:o.skippedOps}}function od(e,t,r){return nd(e,t,r.projectPatch?.(t,e))}function _f(e,t=rd(e),r={}){let n=e.findIndex(O=>ni(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=Et(),i=[],s=[],a=0,d=0,l=0,_=0,f,w=t!==1||e.some(O=>O.item_hash_version!==void 0);for(let O=0;O<e.length;O+=1){let I=e[O];Qc(I,O);let H=od(o,I,r),{next:L,patch:B,repaired:Ze,converted:xn,skipped:Cn}=H;l+=xn,_+=Cn,d+=Number(Ze);let oe=ti(o,L,t,I);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 Nn=oe.beforeHashes[f],Rn=oe.afterHashes[f],Qt=Nn!==I.before_hash||Rn!==I.after_hash;Qt&&(a+=1);let ve={...I,patch:B,before_hash:Nn,after_hash:Rn};w?ve.item_hash_version=t:delete ve.item_hash_version;let Ds=ve.item_hash_version!==I.item_hash_version;(Qt||Ze||Ds)&&(ve=Qo(I,ve,{retainOriginalPatch:Ze})),i.push(ve),s.push({index:O+1,rehashed:Qt,patch_repaired:Ze,converted_replace_to_add:xn,skipped_ops:Cn}),o=L}return{entries:i,finalDocument:o,entriesRehashed:a,entriesPatchRepaired:d,convertedReplaceToAdd:l,skippedOps:_,details:s,itemHashVersion:t,explicitItemHashVersion:w}}function ff(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
|
|
13
|
+
`)}
|
|
14
|
+
`}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3c2c29c0-0034-54d4-9dbd-2e9af047784e")}catch{}})();var id=["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"],sd=["append","cancel","claim","close","comment_add","create","learning_add","note_add","reopen"],ad=new Set(id),cd=new Set(sd),dd=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 ld(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:ad.has(e.op)?"maintenance":cd.has(e.op)||e.op!=="update"?"substantive":Array.isArray(e.patch)&&e.patch.length>0&&e.patch.every(t=>{let r=ld(t);return r!==void 0&&dd.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 ii(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 si(e,t){let r=Number.parseInt(e,10);return Number.isFinite(r)&&r>=22?ii(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 _d="history-event-index.sqlite",Kr="7",fd=8,ci=32,pi="history-event-index",md="history-event-index:append:",pd=5e3,Jr=300,hi=3e4,hd="history-event-index-invalidation",yd="history-event-index-invalidations",gd=Jr*2*1e3,Q=Symbol("history-index-changed"),fe=new Map;function pe(e){return C.join(e,"runtime",_d)}function yi(e){return C.join(e,"runtime","history-event-index-repair-deferred")}async function gi(e){try{let t=Number(await T.readFile(yi(e),"utf8")),r=Date.now()-t;return r>=0&&r<pd}catch{return!1}}async function di(e){try{await T.writeFile(yi(e),`${Date.now()}
|
|
15
|
+
`)}catch{}}function Je(e){return C.join(e,"runtime",yd)}async function xt(e){let t=await T.readdir(Je(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 li(e){let t=await xt(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 ro({pid:Number(n[1]),...o==="unknown"?{}:{process_start_identity:o}},Math.max(0,Date.now()-Number(n[3])),gd))return r}return await T.rm(C.join(Je(e),r),{force:!0}),null}))).filter(r=>r!==null),committed:t.committed}}async function qr(e,t,r=hi){let n=await $(e,hd,Jr,`history-event-index-invalidation:${process.pid}`,!1,!1,r,r===0?{maxWaitMs:0}:void 0);try{return await t()}finally{await n()}}async function vd(e){let t=Je(e);await T.mkdir(t,{recursive:!0});let r=Br(),n=await to(),o=C.join(t,`${n.pid}-${n.process_start_identity??"unknown"}-${Date.now()}-${r}.pending`);return await T.writeFile(o,`pending
|
|
16
|
+
`,{flag:"wx"}),{pendingPath:o,committedPath:C.join(t,`${r}.committed`)}}function bd(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}async function Ct(e){try{await T.rm(pe(e),{force:!0})}catch{}}async function Vr(e,t){let r=Je(e);await T.mkdir(r,{recursive:!0}),await T.writeFile(C.join(r,`${Br()}${t?".contended":""}.committed`),`committed
|
|
17
|
+
`,{flag:"wx"}),t||await Ct(e)}function Nt(e){return e.committed.some(t=>t.endsWith(".contended.committed"))}function Gr(e,t){let r;try{return r=new t(pe(e)),r.exec("PRAGMA busy_timeout = 0"),r.exec("BEGIN EXCLUSIVE"),!1}catch(n){return me(n)}finally{r?.close()}}async function ui(e,t){return t.pending.length>0||await no(e,pi,md)}async function vi(e,t,r=hi,n="rebuild"){let o=await $(e,pi,Jr,`history-event-index:${n}:${process.pid}`,!1,!1,r,r===0?{maxWaitMs:0}:void 0);try{return await t()}finally{await o()}}async function bi(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=fe.get(e)??{streams:new Map,ordered_events:[]},s=new Map(i.streams),a=i.ordered_events,d=new Set,l=!fe.has(e);for(let f of o.filter(w=>w.isFile()&&w.name.endsWith(".jsonl")).sort((w,O)=>w.name.localeCompare(O.name))){let w=f.name.slice(0,-6);d.add(w);let O=C.join(n,f.name);if(!Ur(w,t))continue;let I=await Ed(O,w,s.get(w),r);I!==void 0&&(s.set(w,I),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(Yr));let _={streams:s,ordered_events:a};if(fe.delete(e),fe.set(e,_),fe.size>fd){let f=fe.keys().next().value;fe.delete(f)}return{events:_.ordered_events.filter(f=>Ur(f.stream_id,t)).map(f=>wd(f,r)),stream_receipts:new Map([..._.streams].filter(([f])=>Ur(f,t)).map(([f,w])=>[f,{byte_size:w.byte_size,content_hash:w.signature}]))}}function wd(e,t){return t||e.recorded_entry===void 0?e:{stream_id:e.stream_id,stream_offset:e.stream_offset,entry:e.entry}}function Ur(e,t){return!t?.length||t.includes(e)}async function Ed(e,t,r,n){if(!n&&r!==void 0&&r.byte_size===(await T.stat(e)).size){let o=At("sha256").update(await T.readFile(e)).digest("hex");if(r.signature===o)return}return kd(e,t,n)}async function kd(e,t,r){let n=await bt(e,t);if(r){let i=It(n.entries);if(!i.ok)throw new b(`Authoritative history integrity verification failed for ${t}.`,E.GENERIC_FAILURE,{code:"event_history_integrity_failed",why:i.errors.join(", "),nextSteps:[`Run pm history ${t} --verify to inspect the authoritative chain before retrying.`]})}let o=n.raw_bytes??new Uint8Array;return{signature:At("sha256").update(o).digest("hex"),byte_size:o.byteLength,events:wi(n.entries,t).map((i,s)=>({stream_id:t,stream_offset:s,entry:i,...r?{recorded_entry:n.entries[s]}:{}}))}}async function Sd(e,t){return wi((await bt(e,t)).entries,t)}function wi(e,t){for(let[r,n]of e.entries())if(typeof n.ts!="string"||!Ee(n.ts.trim()))throw new b(`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 Wr;function Dt(){return Wr!==void 0||(Wr=si(process.versions.node,ud(import.meta.url))),Wr}function Id(e){e.exec(`
|
|
18
|
+
PRAGMA journal_mode = OFF;
|
|
19
|
+
PRAGMA synchronous = OFF;
|
|
20
|
+
CREATE TABLE metadata (
|
|
21
|
+
key TEXT PRIMARY KEY,
|
|
22
|
+
value TEXT NOT NULL
|
|
23
|
+
) STRICT;
|
|
24
|
+
CREATE TABLE events (
|
|
25
|
+
stream_id TEXT NOT NULL,
|
|
26
|
+
stream_offset INTEGER NOT NULL,
|
|
27
|
+
ts TEXT NOT NULL,
|
|
28
|
+
author TEXT NOT NULL,
|
|
29
|
+
agent_harness TEXT,
|
|
30
|
+
agent_instance TEXT,
|
|
31
|
+
op TEXT NOT NULL,
|
|
32
|
+
event_class TEXT NOT NULL CHECK(event_class IN ('substantive', 'maintenance')),
|
|
33
|
+
entry_json TEXT NOT NULL,
|
|
34
|
+
PRIMARY KEY(stream_id, stream_offset)
|
|
35
|
+
) STRICT;
|
|
36
|
+
CREATE TABLE streams (
|
|
37
|
+
stream_id TEXT PRIMARY KEY,
|
|
38
|
+
byte_size INTEGER NOT NULL CHECK(byte_size >= 0),
|
|
39
|
+
content_hash TEXT NOT NULL
|
|
40
|
+
) STRICT;
|
|
41
|
+
CREATE INDEX events_order
|
|
42
|
+
ON events(ts, stream_id, stream_offset);
|
|
43
|
+
CREATE INDEX events_op_order
|
|
44
|
+
ON events(op, ts, stream_id, stream_offset);
|
|
45
|
+
CREATE INDEX events_class_stream_order
|
|
46
|
+
ON events(event_class, stream_id, ts, stream_offset);
|
|
47
|
+
CREATE INDEX events_author_order
|
|
48
|
+
ON events(author, ts, stream_id, stream_offset);
|
|
49
|
+
CREATE INDEX events_harness_order
|
|
50
|
+
ON events(agent_harness, ts, stream_id, stream_offset);
|
|
51
|
+
CREATE INDEX events_instance_order
|
|
52
|
+
ON events(agent_instance, ts, stream_id, stream_offset);
|
|
53
|
+
`),e.prepare("INSERT INTO metadata(key, value) VALUES ('version', ?)").run(Kr)}function Ei(e,t){let r={...t.entry,ts:new Date(t.entry.ts.trim()).toISOString()};e.prepare(`INSERT INTO events(
|
|
54
|
+
stream_id, stream_offset, ts, author, agent_harness,
|
|
55
|
+
agent_instance, op, event_class, entry_json
|
|
56
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(t.stream_id,t.stream_offset,r.ts,r.author,r.agent_harness??null,r.agent_instance??null,r.op,xe(r),JSON.stringify(r))}function ki(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 Si(e,t,r){e.prepare(`INSERT INTO streams(stream_id, byte_size, content_hash) VALUES (?, ?, ?)
|
|
57
|
+
ON CONFLICT(stream_id) DO UPDATE SET byte_size = excluded.byte_size, content_hash = excluded.content_hash`).run(t,r.byte_size,r.content_hash)}async function Od(e,t={}){let r=Dt();return r?vi(e,async()=>{let n;try{n=await qr(e,()=>li(e),t.lockWaitMs)}catch(a){if(a instanceof b&&a.code==="lock_conflict")return!1;throw a}if(n.pending.length>0||Nt(n)&&Gr(e,r))return!1;let o=pe(e);await T.mkdir(C.dirname(o),{recursive:!0});let i=`${o}.${Br()}.tmp`,s;try{s=new r(i),Id(s),s.exec("BEGIN IMMEDIATE");let a=await bi(e);await Td(s,a),s.exec("COMMIT"),s.close(),s=void 0;let d=await qr(e,async()=>{let l=await li(e);return l.pending.length>0||!bd(n.committed,l.committed)||Nt(l)&&Gr(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(Je(e),l),{force:!0}))),d||(await di(e),await T.rm(i,{force:!0})),d}catch(a){throw await di(e),s?.close(),await T.rm(i,{force:!0}),a}},t.lockWaitMs):!1}async function Td(e,t){let r=0;for(let n of t.events)Ei(e,n),++r%500===0&&await ai();for(let[n,o]of t.stream_receipts)Si(e,n,o),++r%500===0&&await ai()}function Ot(e,t){return!t||t.length===0||t.includes(e)}function Yr(e,t){return e.entry.ts.localeCompare(t.entry.ts)||e.stream_id.localeCompare(t.stream_id)||e.stream_offset-t.stream_offset}function Rt(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():e}function Ad(e,t){if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){if(Yr(e,{stream_id:t.after_stream_id,stream_offset:t.after_stream_offset,entry:{...e.entry,ts:Rt(t.after_ts)}})<=0)return!1}else if(t.since_ts!==void 0&&e.entry.ts<Rt(t.since_ts))return!1;return!0}function xd(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 Cd(e,t){return!Ad(e,t)||!Ot(e.entry.op,t.ops)||!Ot(e.entry.author,t.authors)||!Ot(e.entry.agent_instance??"",t.agent_instances)||!Ot(e.stream_id,t.stream_ids)||!xd(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 Nd(e,t){let r=Math.max(0,Math.floor(t.limit)),n=await bi(e,t.stream_ids,t.verify),o=n.events.filter(i=>Cd(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 Rd(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 Zr(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 Ii(e,t,r){let n=C.dirname(C.dirname(e)),o=Dt(),i=!1,s=async()=>{await r(),i=!0};if(!o){await _i(n,s);return}try{await vi(n,async()=>{let a=pe(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!==Kr)throw new TypeError("Unsupported history event index version");if(!await Rd(d,e))throw new TypeError("Stale history event index append base")}catch(_){if(d?.close(),me(_))throw _;await Vr(n,!0),await s();return}try{d.exec("PRAGMA busy_timeout = 0"),d.exec("BEGIN IMMEDIATE")}catch(_){if(d.close(),me(_)||!(_ instanceof Error)||_.code!=="ERR_SQLITE_ERROR")throw _;await Vr(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(_);Ei(d,{stream_id:_,stream_offset:Number(f.value),entry:t}),Si(d,_,await Zr(n,_)),d.exec("COMMIT"),d.close()}catch(_){if(d?.close(),!l)throw _;await Vr(n,me(_))}},0,"append")}catch(a){if(i){await Ct(n);return}if(!Pd(a))throw a;await _i(n,s,me(a))}}async function _i(e,t,r=!1){let n=!1,o;try{await qr(e,async()=>{let i=r||Nt(await xt(e)),s=await vd(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 Ct(e)})}catch(i){if(n){await Ct(e);try{await T.rm(o,{force:!0})}catch{}return}throw i}}async function Xr(e){await T.rm(pe(C.dirname(C.dirname(e))),{force:!0})}function Tt(e,t,r,n){!n||n.length===0||(e.push(`${r} IN (${n.map(()=>"?").join(", ")})`),t.push(...n))}function Dd(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 Oi(e,t,r,n){let o;try{let i=await xt(e);if(await ui(e,i))return Q;let s=await fi(e);if(i.committed.length>0)return Nt(i)&&Gr(e,t)?Q:null;if(o=new t(pe(e),{readOnly:!0}),o.exec("BEGIN"),o.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==Kr)return null;let a=n(o);if(a===null)return null;let d=jd(o,r),l=o;o=void 0,l.close();let _=await Hd([...d.keys()],e,r),f=await Ld(d,e,_),w=await xt(e);return w.committed.length>0||await ui(e,w)||s!==await fi(e)?Q:f?a:null}catch(i){return me(i)?Q:null}finally{o?.close()}}function me(e){return typeof e=="object"&&e!==null&&"errcode"in e&&[5,6].includes(e.errcode)}function Pd(e){return me(e)||e instanceof b&&e.code==="lock_conflict"}function jd(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 fi(e){let t=await T.stat(pe(e),{bigint:!0});return[t.dev,t.ino,t.size,t.mtimeNs,t.ctimeNs].join(":")}async function Nf(e,t){if(t.verify)return{result:await Nd(e,t),repair_needed:!1};let r=Dt();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=Rt(t.after_ts);o.push(a,a,t.after_stream_id,a,t.after_stream_id,t.after_stream_offset)}else t.since_ts!==void 0&&(n.push("ts >= ?"),o.push(Rt(t.since_ts)));Tt(n,o,"op",t.ops),Tt(n,o,"author",t.authors),Dd(n,o,t.harnesses,t.harness_alias_authors),Tt(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);Tt(n,o,"stream_id",t.stream_ids);let i=n.length===0?"":` WHERE ${n.join(" AND ")}`,s=await Oi(e,r,t.stream_ids,a=>{let d=a.prepare(`SELECT stream_id, stream_offset, entry_json
|
|
58
|
+
FROM events${i}
|
|
59
|
+
ORDER BY ts, stream_id, stream_offset
|
|
60
|
+
LIMIT ?`).all(...o,Math.max(0,Math.floor(t.limit))+1),l=d.slice(0,t.limit).map(ki);return l.includes(null)?null:{events:l,has_more:d.length>t.limit}});return{result:s===Q?null:s,repair_needed:s===null&&!await gi(e)}}function Ti(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||Yr(o,n)<0)&&(r[n.stream_id]=n)}return r}async function Zr(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:At("sha256").update(o).digest("hex")}}catch(r){if(ie(r))return{byte_size:0,content_hash:At("sha256").digest("hex")};throw r}}async function Ld(e,t,r){for(let n=0;n<r.length;n+=ci){let o=r.slice(n,n+ci),i=await Promise.all(o.map(s=>Zr(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 Hd(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 mi(e,t,r,n){return e?Oi(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
|
|
61
|
+
FROM (
|
|
62
|
+
SELECT stream_id, stream_offset, entry_json,
|
|
63
|
+
ROW_NUMBER() OVER (
|
|
64
|
+
PARTITION BY stream_id
|
|
65
|
+
ORDER BY ts DESC, stream_offset DESC
|
|
66
|
+
) AS recency_rank
|
|
67
|
+
FROM events
|
|
68
|
+
WHERE event_class = 'substantive'
|
|
69
|
+
AND stream_id IN (${a.map(()=>"?").join(", ")})
|
|
70
|
+
)
|
|
71
|
+
WHERE recency_rank = 1`).all(...a).map(ki);if(d.includes(null))return null;i.push(...d)}return Ti(i,n)}):null}async function Rf(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=Dt(),i=await mi(o,e,r,n);if(i!==null&&i!==Q)return i;if(o&&i!==Q&&!await gi(e))try{if(await Od(e,{lockWaitMs:0})){let a=await mi(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 Sd(d,a).catch(l=>{if(l instanceof b&&l.code==="history_timestamp_invalid")return[];throw l})).forEach((l,_)=>{s.push({stream_id:a,stream_offset:_,entry:l})})})),Ti(s,n)}import Qr 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 Fd=Ce.join("runtime","history-drift-cache.json"),Ai={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 xi(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function zd(e){let t=Ce.join(e,Fd),r=!1,n="invalid_cache_path";try{r=(await Qr.stat(await Qr.realpath(e))).isDirectory()}catch(o){let i=xi(o);n=i===void 0?"unknown":Ai[i]??"filesystem_error"}if(!r){rr(`[pm] warning: history_drift_cache_invalidation_failed:${n}
|
|
72
|
+
`);return}try{await Qr.rm(t,{force:!0})}catch(o){let i=xi(o);if(ie(o))return;let s=i===void 0?"unknown":Ai[i]??"filesystem_error";rr(`[pm] warning: history_drift_cache_invalidation_failed:${s}
|
|
73
|
+
`)}}async function Pt(e){let t=Ce.dirname(Ce.resolve(e));Ce.basename(t)==="history"&&await zd(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 Md={front_matter:{},body:""},_e=3,Be=[1,2,3],Vd=1,Ud=[1];function ji(e){return J(A(e),e.hash_algorithm)}function Ne(e){return ot(A(e))}function rm(e){return ot(A(e))}function nn(e){let t={...e,record_hash_version:Vd},{record_hash:r,...n}=t;return{...t,record_hash:ji(n)}}function wt(e){try{se(e.hash_algorithm)}catch{return{ok:!1,error:"unsupported_history_hash_algorithm"}}if(e.record_hash_version===void 0&&e.record_hash===void 0)return{ok:!0,coverage:"item_state_only"};if(e.record_hash_version===void 0||e.record_hash===void 0)return{ok:!1,error:"incomplete_record_hash_envelope"};if(!Ud.includes(e.record_hash_version))return{ok:!1,error:"unsupported_record_hash_version"};let{record_hash:t,...r}=e;return ji(r)===e.record_hash?{ok:!0,coverage:"record_and_item_state"}:{ok:!1,error:"record_hash_mismatch"}}function Wd(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 Qo(e,t,r={}){let n=wt(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=nn({...t,...i?{reanchor_evidence:[...t.reanchor_evidence??[],Wd(e,r)]}:{}}),a=$r(s);if(!a.ok)throw new TypeError(a.error);return s}function Li(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 qd(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"&&Li(e.patch)}function Gd(e){let t=e.record_hash_version!==void 0,r=e.record_hash!==void 0;return t===r}function Bd(e){return!he(e)||!Gd(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&&!Li(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||qd(e.record)}function Kd(e){try{for(let t of e){if(!Bd(t))return!1;se(t.hash_algorithm)}return!0}catch{return!1}}function Jd(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 Yd(e,t,r){if(t.patch&&Ne(t.patch)!==t.patch_hash)return{kind:"patch_hash_mismatch"};if(t.record)return Jd(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 $r(e){let t=e.reanchor_evidence;if(t===void 0)return{ok:!0,coverage:"none"};if(!Array.isArray(t)||!Kd(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=Yd(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(!wt(i.entry).ok)return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};r=i.entry}return{ok:!0,coverage:"complete"}}function jt(e,t){return(e??"").localeCompare(t??"")}function Ni(e,t){return(e??0)-(t??0)}function ee(e,t,r){return JSON.stringify(e??r).localeCompare(JSON.stringify(t??r))}function Xd(e,t){return[e.scope.localeCompare(t.scope),jt(e.path,t.path),jt(e.command,t.command),Ni(e.timeout_seconds,t.timeout_seconds),jt(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,ee(e.env_clear,t.env_clear,[]),ee(e.env_set,t.env_set,{}),ee(e.assert_stdout_contains,t.assert_stdout_contains,[]),ee(e.assert_stdout_regex,t.assert_stdout_regex,[]),ee(e.assert_stderr_contains,t.assert_stderr_contains,[]),ee(e.assert_stderr_regex,t.assert_stderr_regex,[]),Ni(e.assert_stdout_min_lines,t.assert_stdout_min_lines),ee(e.assert_json_field_equals,t.assert_json_field_equals,{}),ee(e.assert_json_field_gte,t.assert_json_field_gte,{}),jt(e.note,t.note)].find(r=>r!==0)??0}function Zd(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function Qd(e,t){let r=Zd(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 el(e,t){let r=[],n=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!Qd(n,o.path)?{...o,op:"add"}:o;r.push(i),n=Pi.applyPatch(n,[i],!0,!0).newDocument}return r}function Lt(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(Xd)}:o;return{front_matter:g(i,K),body:n.body}}function Ri(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let t=Oe(e);return{metadata:g(t.metadata,K),body:t.body}}function nm(e){return Hi(e,_e)}function Hi(e,t,r){if(!Be.some(n=>n===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return J(A(Lt(e,t)),r)}function ei(e,t,r){let n=Hi(e,t,r);return t===2?[n,J(A(Lt(e,t,!0)),r)]:[n]}function om(){return ot(A(Md))}function on(e){let t=oo(e.op),r=Lt(e.before,_e),n=Lt(e.after,_e),o=Ri(e.before),i=Ri(e.after),s=Pi.compare(o,i),a=el(o,s),d=Ko(e.author),l=d.harness?Object.fromEntries(Object.entries(Go().provenance_outcomes).filter(([O,I])=>I.resolver!==void 0&&(I.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??io,w={hash_algorithm:f,ts:e.nowIso,author:e.author,author_source:e.authorSource??Bo(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:J(A(r),f),after_hash:J(A(n),f),item_hash_version:_e,message:e.message===void 0?void 0:e.message,..._===void 0?{}:{context:_}};return nn({...w,event_class:xe(w)})}function he(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function en(e){return new b(e,E.GENERIC_FAILURE,{code:"history_timestamp_invalid"})}function Fi(e){let t=e.ts.trim();if(t.length===0)return $e();if(!Ee(t))throw en("History timestamp must be a valid RFC 3339 date-time with millisecond precision");if(t!==e.ts)throw en("History timestamp must not contain surrounding whitespace");return e.ts}function Di(e,t){let r=e.ts;if(typeof r=="string"&&r.trim().length>0){if(!Ee(r))throw en("History timestamp must be a valid RFC 3339 date-time with millisecond precision");return e}return{...e,ts:t}}function tn(e,t){let r=Fi(t);if(typeof e=="string"){let n;try{n=JSON.parse(e)}catch{return e}return he(n)?JSON.stringify(Di(n,r)):e}return he(e)?JSON.stringify(Di(e,r)):JSON.stringify(e)}async function tl(e,t,r){if(r===!1)return!0;if(typeof r=="string"){let s=tn(r,t);return await rn(e,s),await Pt(e),await Xr(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=tn(typeof n.line=="string"?n.line:n.entry??t,t);return await rn(o,i),await Pt(o),await Xr(o),!0}async function rn(e,t){let r;try{r=JSON.parse(t)}catch{r=null}if(!he(r)||r.op!=="create"){await Un(e,t);return}await Ci.mkdir($d.dirname(e),{recursive:!0});try{await Ci.writeFile(e,`${t}
|
|
74
|
+
`,{encoding:"utf8",flag:"wx"})}catch(n){throw n.code!=="EEXIST"?n:new b("This item identity is reserved by an existing history stream.",E.CONFLICT,{code:"item_identity_reserved",required:"Choose a new item ID or restore the original item from its history.",nextSteps:["Run pm history <id> --full, then pm restore <id> <version> to recover the original item."]})}}async function sn(e,t){let r=await Qn("history_append",{history_path:e,entry:t});if(r.handled&&await tl(e,t,r.result))return;let n=t.ts.trim().length>0?t:{...t,ts:Fi(t)},o=nn({...n,hash_algorithm:se(n.hash_algorithm),event_class:xe(n)});await Ii(e,o,async()=>{await rn(e,tn(o,o))}),await Pt(e)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="33d6dc97-17d3-5db3-ab0d-6857be0e5827")}catch{}})();var V={ok:!1,path:[]};function cn(e,t){return{ok:!1,path:[e,...t.path]}}var u=e=>typeof e=="string"?{ok:!0,value:e}:V,k=e=>typeof e=="boolean"?{ok:!0,value:e}:V;function x(e={}){return t=>typeof t!="number"||!Number.isFinite(t)||e.int&&(!Number.isInteger(t)||!Number.isSafeInteger(t))||e.positive&&t<=0||typeof e.min=="number"&&t<e.min||typeof e.max=="number"&&t>e.max?V:{ok:!0,value:t}}function S(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:V}function p(e,t){return r=>{if(!Array.isArray(r)||t!==void 0&&r.length>t)return V;let n=[];for(let[o,i]of r.entries()){let s=e(i);if(!s.ok)return cn(String(o),s);n.push(s.value)}return{ok:!0,value:n}}}function dn(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}:V}function c(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function Ht(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return V;let r={};for(let[n,o]of Object.entries(t)){let i=e(o);if(!i.ok)return cn(n,i);r[n]=i.value}return{ok:!0,value:r}}}function v(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return V;let r=t,n={};for(let[o,i]of Object.entries(e)){let s=i(r[o]);if(!s.ok)return cn(o,s);s.value!==void 0&&(n[o]=s.value)}return{ok:!0,value:n}}}var rl=v({key:u,values:p(u),required:c(k),aliases:c(p(u)),description:c(u)}),nl=v({command:S("create","update"),option:u,required:c(k),visible:c(k),enabled:c(k)}),ol=v({name:u,description:c(u),default_status:c(u),execution_role:c(S("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(rl)),command_option_policies:c(p(nl))}),il=v({id:u,aliases:c(p(u)),roles:c(p(S(...Dn))),description:c(u),order:c(x())}),sl=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(S(...Pn)),commands:c(p(S(...jn))),repeatable:c(k),required:c(k),required_on_create:c(k),required_types:c(p(u)),allow_unset:c(k)}),al=e=>{if(!Array.isArray(e)||e.length!==2)return V;let[t,r]=e;return typeof t!="string"||typeof r!="string"?V:{ok:!0,value:[t,r]}},cl=v({type:u,allowed_transitions:p(al)}),dl=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(il)),fields:c(p(sl)),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(cl)),unknown_field_policy:c(S(...Ln))})),ll=c(v({preset:c(S(...Hn)),ownership_enforcement:c(S("none","warn","strict")),create_mode_default:c(S("progressive","strict")),close_validation_default:c(S("off","warn","strict")),require_close_reason:c(k),parent_reference:c(S("warn","strict_error")),metadata_profile:c(S("core","strict","custom")),force_required_for_stale_lock:c(k),create_default_type:c(u),workflow_enforcement:c(S("off","warn","strict")),start_blocker_enforcement:c(S("off","warn","strict")),duplicate_detection_mode:c(S("off","advisory","strict")),duplicate_detection_threshold:c(x({min:0,max:1})),duplicate_detection_limit:c(x({int:!0,min:0,max:20}))})),ul=v({name:u,disabled:c(k),require_trusted:c(k),require_provenance:c(k),sandbox_profile:c(S("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))}),an=S("block","warn"),_l=e=>typeof e=="string"?an(e):v({global:c(an),project:c(an)})(e),fl=c(v({mode:c(S("off","warn","enforce")),trust_mode:c(S("off","warn","enforce")),pm_max_version_exceeded_mode:c(_l),require_provenance:c(k),trusted_extensions:c(p(u)),default_sandbox_profile:c(S("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(ul))})),ye=dn(128),ml=v({harness:dn(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:c(p(ye,64)),model_environment_keys:c(p(ye,64)),session_environment_keys:c(p(ye,64)),provenance_environment_keys:c(Ht(p(ye,64))),provenance_resolvers:c(Ht(S("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))}),zi={version:x({int:!0}),id_prefix:u,ids:c(v({token_length:c(x({int:!0,min:4,max:12}))})),author_default:u,agent_identity:c(v({probes_enabled:c(k),identity_vocabulary:c(v({version:x({int:!0,positive:!0}),aliases:Ht(dn(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:p(ml)})),mutation_guard:c(v({require_attributed_author:c(k),secret_guard:c(S("off","advise","block")),stale_in_progress_hours:c(x({int:!0,positive:!0}))})),item_format:c(S("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:S("toon","json")}),ux:c(v({deprecation_hints:c(k)})),history:c(v({missing_stream:S("auto_create","strict_error"),compact_policy:c(v({enabled:c(k),max_entries:c(x({int:!0,positive:!0})),trigger:c(S("health_warn","auto"))}))})),validation:c(v({sprint_release_format:S("warn","strict_error"),parent_reference:c(S("warn","strict_error")),metadata_profile:c(S("core","strict","custom")),metadata_required_fields:c(p(u)),lifecycle_stale_blocker_reason_patterns:c(p(u)),lifecycle_closure_like_blocked_reason_patterns:c(p(u)),lifecycle_closure_like_resolution_patterns:c(p(u)),lifecycle_closure_like_actual_result_patterns:c(p(u)),estimate_defaults_by_type:c(Ht(x({int:!0,positive:!0})))})),governance:ll,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(S("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(ol)})),schema:dl,context:c(v({default_depth:c(S("brief","standard","deep")),activity_limit:c(x({int:!0,positive:!0})),stale_threshold_days:c(x({int:!0,positive:!0})),next_ranking_policy:c(S("priority_floor","weighted")),sections:c(v({hierarchy:c(k),activity:c(k),progress:c(k),recently_created:c(k),unparented:c(k),blockers:c(k),files:c(k),workload:c(k),staleness:c(k),tests:c(k)}))})),extensions:v({enabled:p(u),disabled:p(u),policy:fl}),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(S("auto","keyword","semantic","hybrid")),corpus_fields:c(p(u)),mutation_refresh_policy:c(S("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})})},pl=v(zi),$i=Object.freeze(Object.keys(zi));function Ft(e){let t=pl(e);return t.ok?{success:!0,data:t.value}:{success:!1,path:t.path.join(".")}}import{AsyncLocalStorage as kl}from"node:async_hooks";import{lstat as Sl,realpath as ts}from"node:fs/promises";import rs from"node:path";import hl from"node:fs/promises";import Re from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="af606b47-d071-5724-b1e7-de4e1e5d7385")}catch{}})();var De="_workspace";function zt(e){return Re.join(e,"history",`${De}.jsonl`)}function yl(e,t){return{metadata:{id:De,title:"Workspace state",description:"Audited singleton workspace document state.",type:"Chore",status:"open",priority:2,tags:["workspace-history"],created_at:t,updated_at:t,documents:e},body:""}}function $t(e,t=e.length){let r=Et();for(let n of e.slice(0,t))r=St(r,n.patch).document;return kt(r)}function ln(e){return"documents"in e.metadata&&typeof e.metadata.documents=="object"&&e.metadata.documents!==null&&!Array.isArray(e.metadata.documents)?e.metadata.documents:{}}function Mt(e){throw new b(`Workspace history verification failed: ${e.join(", ")}`,E.CONFLICT,{code:"workspace_history_chain_invalid",reason:"workspace_history_chain_verification_failed",verification_errors:[...e],required:"Repair the _workspace history chain before reading, reconciling, restoring, or appending audited singleton state.",why:"Continuing against an unverifiable append-only stream could hide or compound workspace state corruption.",examples:["pm history _workspace --verify --json","pm validate --check-history-drift --fix-hints --json"],nextSteps:["Inspect the exact verification_errors and preserve the corrupt stream as evidence.","Use the history-drift remediation returned by validate before retrying the refused operation."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify --json"}})}function Mi(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 vm(e){let t=await Ge(zt(e),De),r=Ke(t);r.ok||Mt(r.errors);let n=ln(t.length===0?je:$t(t)),o=[],i=[],s=[],a=[];for(let d of Object.keys(n).sort()){let l;try{let _=Mi(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 Vi(e){let t=zt(e.pmRoot),r=await Ge(t,De),n=Ke(r);n.ok||Mt(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:$t(r),a=ln(s),d=a[e.documentPath];if(d!==void 0&&A(d)!==A(e.before))throw new b(`Workspace history state for "${e.documentPath}" changed outside the audited mutation path.`,E.CONFLICT,{code:"workspace_history_state_conflict",reason:"out_of_band_workspace_state",required:"Reconcile the singleton document with its matching _workspace history state before retrying the mutation.",why:"Accepting the write would make the append-only audit stream describe a state that was not actually observed.",examples:["pm history _workspace --verify","pm validate --check-history-drift --fix-hints"],nextSteps:["Review the version-control change that altered the singleton and preserve the intended document plus its matching workspace history.","Rerun the original mutation only after the on-disk singleton agrees with the latest audited workspace state."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify"}});let l=yl({...a,[e.documentPath]:e.after},r.length===0?i:s.metadata.created_at),_=on({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 sn(t,_),{entry:_,historyPath:t}}async function bm(e){let t=await $(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Vi(e)}finally{await t()}}async function wm(e){let t=await $(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let r=zt(e.pmRoot),n=await Ge(r,De),o=Ke(n);o.ok||Mt(o.errors);let i=n.length===0?je:$t(n),s=on({nowIso:$e(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await sn(r,s),{entry:s,historyPath:r}}finally{await t()}}async function Ui(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 Vi({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 hl.rm(e.filePath,{force:!0}):await Le(e.filePath,t),o}return!0}async function Wi(e){let{documentPath:t}=Mi(e.pmRoot,e.filePath),r=await $(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(zt(e.pmRoot),De),s=Ke(i);s.ok||Mt(s.errors);let a=ln(i.length===0?je:$t(i))[t];if(a!==void 0&&A(a)!==A(n===null?null:JSON.parse(n)))throw new b(`Workspace history state for "${t}" changed outside the audited mutation path.`,E.CONFLICT,{code:"workspace_history_state_conflict"});if(e.idempotencyKey!==void 0&&i.some(d=>d.op===`${e.op}:${e.idempotencyKey}`))return{changed:!1,result:void 0,replayed:!0}}let o=await e.mutate(n);return JSON.parse(o.raw),e.dryRun===!0?{changed:n!==o.raw,result:o.result}:{changed:await Ui({...e,raw:o.raw},n),result:o.result}}finally{await r()}}async function Em(e){let t=await $(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Ui(e,await be(e.filePath))}finally{await t()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a0ca9902-540c-50fe-a4e2-9c234c4a01f3")}catch{}})();function Vt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function un(e,t,r,n=[]){if(z(e,t)&&(n.length>0||Vt(r)))return r;if(z(e,r)||z(t,r))return t;if((e===void 0||Vt(e))&&Vt(t)&&Vt(r)){let o=e??{},i=new Set([...Object.keys(o),...Object.keys(t),...Object.keys(r)]);return Object.fromEntries([...i].flatMap(s=>{let a=un(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 b(`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 gl={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},qi=120;function _n(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function Bi(e){let t=new Map;for(let[r,n]of Object.entries(e))t.set(r.toLowerCase(),n);return t}var vl=Bi(gl),Gi=new WeakMap;function bl(e){let t=Gi.get(e);if(t)return t;let r=Bi(e);return Gi.set(e,r),r}function Am(e,t){let r=(e??"").trim().toLowerCase();if(r.length===0)return qi;if(t){let o=bl(t).get(r);if(_n(o))return Math.floor(o)}let n=vl.get(r);return _n(n)?Math.floor(n):qi}function fn(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||!_n(n)||(t[o]=Math.floor(n))}return t}import{stat as wl}from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="78c79deb-5cf0-54fe-b98c-a0d5b3671ab2")}catch{}})();var Ut=new Map;function Ki(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,r)=>t.localeCompare(r))}async function El(e){try{let t=await wl(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=Ki(e),r=await Promise.all(t.map(n=>El(n)));return r.sort((n,o)=>n.path.localeCompare(o.path)),r}function Ye(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 Ji(e){return Ut.get(e)}function Wt(e,t){let r=Ki(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));Ut.set(e,{tracked_paths:r,signatures:n,value:t.value})}function ge(e){if(e){Ut.delete(e);return}Ut.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="aa89cd28-76a1-5eaf-b6f7-7501acefa5f2")}catch{}})();var yn=new kl;async function Ym(e,t,r=()=>!0){let n=new Set([rs.resolve(e)]);try{n.add(await ts(e))}catch{}return yn.run([...yn.getStore()??[],[n,r]],t)}function Il(e){let t=rs.resolve(e);return yn.getStore()?.some(([r,n])=>r.has(t)&&n())??!1}var Ol="settings:write",ns=Symbol("pm.settings.persist_source"),os=Symbol("pm.settings.fallback_origin"),is=Symbol("pm.settings.fallback_baseline"),Tl=128,Al=new Set(["off","advisory","strict"]);function Yi(e){return structuredClone($n[e])}function xl(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:h.governance.preset}var Cl=new Set(Fn);function ss(e){return Cl.has(e)}function Xi(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),ss(t.start_blocker_enforcement)&&(e.start_blocker_enforcement=t.start_blocker_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 Nl(e){return e.preset==="custom"?Xi({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):Xi({preset:e.preset},e)}function Rl(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),ss(e.start_blocker_enforcement)&&(r.start_blocker_enforcement=e.start_blocker_enforcement),typeof e.require_close_reason=="boolean"&&(r.require_close_reason=e.require_close_reason),Al.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 as(e){let t=e.governance??{},r=xl(t.preset),n=Rl(t);if(r==="custom"){let s=Yi("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=Yi(r),i=n.require_close_reason??o.require_close_reason;return{preset:r,...o,...n,require_close_reason:i}}function bn(){return structuredClone(h)}function cs(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:h.search.mutation_refresh_policy}function ds(e){return e==="auto"||e==="keyword"||e==="semantic"||e==="hybrid"?e:"auto"}function ls(e){return typeof e=="boolean"?e:h.search.query_expansion.enabled}function us(e){return typeof e!="string"?h.search.query_expansion.provider:e.trim()}function _s(e){return typeof e=="boolean"?e:h.search.rerank.enabled}function fs(e){return typeof e!="string"?h.search.rerank.model:e.trim()}function ms(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:h.search.rerank.top_k}function ps(e){if(typeof e!="string")return h.vector_store.collection_name;let t=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,Tl);return t.length>0?t:h.vector_store.collection_name}function mn(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function hs(e,t){let r=e.schema,n=mn(r?.statuses),o=mn(r?.fields),i=mn(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 wn(e,t){Object.defineProperty(e,ns,{value:t,writable:!0,configurable:!0,enumerable:!1})}function ys(e){let t=e[ns];if(!(!t||typeof t!="object"))return t}function qt(e){let t=structuredClone(e.settings),r=ys(e.settings);r&&wn(t,r);let n=En(e.settings);return n!==void 0&&gs(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function Dl(e,t,r){let n=Fe(t);return[r,ze(e,n.files.types,He.types),ze(e,n.files.statuses,He.statuses),ze(e,n.files.fields,He.fields),ze(e,n.files.workflows,He.workflows)]}async function Pl(e,t,r){let n=await te(t);Wt(e,{tracked_paths:t,signatures:n,value:qt(r)})}async function jl(e,t,r){try{await Pl(e,t,r)}catch{ge(e)}}function Zi(e,t){return e.find(r=>r.path===t)}function Ll(e,t,r){for(let n of r){let o=Zi(e,n),i=Zi(t,n);if(!o||!i||!Ye([o],[i]))return!1}return!0}async function pn(e,t,r,n,o){try{let i=await te(t);if(!Ll(n,i,o)){ge(e);return}Wt(e,{tracked_paths:t,signatures:i,value:qt(r)})}catch{ge(e)}}function Hl(e,t){let r=Fe(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=z(n,t.runtime_item_type_definitions),s=z(r.statuses,t.runtime_schema_statuses),a=z(r.fields,t.runtime_schema_fields),d=z(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?Pe(t.source_item_type_definitions):[]: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 gs(e,t){Object.defineProperty(e,os,{value:t,writable:!0,configurable:!0,enumerable:!1})}function Xm(e){return En(e)!==void 0}function En(e){let t=e[os];return typeof t=="string"?t:void 0}function Fl(e){return e[is]}function zl(e,t){Object.defineProperty(e,is,{value:t,writable:!0,configurable:!0,enumerable:!1})}function U(e){let t=bn();return e!==void 0&&gs(t,e),{settings:t,metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function vs(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function gn(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,r)=>t.localeCompare(r))}function bs(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:gn(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 $l(e){return e==="off"||e==="warn"||e==="enforce"?e:h.extensions.policy.mode}function Ml(e){return e==="off"||e==="warn"||e==="enforce"?e:h.extensions.policy.trust_mode}function ws(e){return e==="none"||e==="restricted"||e==="strict"?e:h.extensions.policy.default_sandbox_profile}function Vl(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=ws(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),w=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),w.length>0&&(r.blocked_services=w),r}function Ul(e){let t=new Map;for(let r of e??[]){let n=Vl(r);n&&t.set(n.name,n)}return[...t.values()].sort((r,n)=>r.name.localeCompare(n.name))}function hn(e){return e==="block"||e==="warn"?e:void 0}function Wl(e){if(typeof e=="string")return hn(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=hn(e.global),r=hn(e.project);return t===void 0&&r===void 0?void 0:{...t!==void 0?{global:t}:{},...r!==void 0?{project:r}:{}}}}function P(e,t){return F(e?.[t]??h.extensions.policy[t])}function Es(e){let t=Wl(e?.pm_max_version_exceeded_mode);return{mode:$l(e?.mode),trust_mode:Ml(e?.trust_mode),...t!==void 0?{pm_max_version_exceeded_mode:t}:{},require_provenance:e?.require_provenance===!0,trusted_extensions:P(e,"trusted_extensions"),default_sandbox_profile:ws(e?.default_sandbox_profile),allowed_extensions:P(e,"allowed_extensions"),blocked_extensions:P(e,"blocked_extensions"),allowed_capabilities:P(e,"allowed_capabilities"),blocked_capabilities:P(e,"blocked_capabilities"),allowed_surfaces:P(e,"allowed_surfaces"),blocked_surfaces:P(e,"blocked_surfaces"),allowed_commands:P(e,"allowed_commands"),blocked_commands:P(e,"blocked_commands"),allowed_actions:P(e,"allowed_actions"),blocked_actions:P(e,"blocked_actions"),allowed_services:P(e,"allowed_services"),blocked_services:P(e,"blocked_services"),extension_overrides:Ul(e?.extension_overrides??h.extensions.policy.extension_overrides)}}function ks(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 j(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function vn(e){return Array.isArray(e)?e:[]}function ql(e,t,r){return{...t.validation,...e.validation,parent_reference:r.parent_reference,metadata_profile:r.metadata_profile,metadata_required_fields:ks(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:fn(e.validation?.estimate_defaults_by_type)}}function Gl(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 Bl(e,t){return{...t.search,...e.search,default_mode:ds(e.search?.default_mode),mutation_refresh_policy:cs(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:ls(e.search?.query_expansion?.enabled),provider:us(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:_s(e.search?.rerank?.enabled),model:fs(e.search?.rerank?.model),top_k:ms(e.search?.rerank?.top_k)}}}function Kl(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:ps(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function Jl(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function Yl(e,t){return{default_depth:e.context?.default_depth??t.context.default_depth,activity_limit:e.context?.activity_limit??t.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??t.context.stale_threshold_days,next_ranking_policy:e.context?.next_ranking_policy??t.context.next_ranking_policy,sections:{...t.context.sections,...e.context?.sections}}}function 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=>qn(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 Gt(e){let t=bn(),r=as({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:Jl(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:ql(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:Gl(e,t),agent_guidance:bs(e.agent_guidance??t.agent_guidance),item_types:{definitions:Pe(e.item_types?.definitions)},schema:Fe(e.schema??t.schema),context:Yl(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:Es(e.extensions.policy??t.extensions.policy)},search:Bl(e,t),providers:Xl(e,t),vector_store:Kl(e,t)}}function Zl(e){e.agent_identity=g(e.agent_identity,["probes_enabled","identity_vocabulary","harness_signals"]);let t=e.agent_identity;Object.hasOwn(t,"identity_vocabulary")&&(t.identity_vocabulary=g(j(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=vn(e.agent_identity.harness_signals).map(r=>g(j(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(j(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=g(j(e.schema.workflow),["draft_status","open_status","in_progress_status","blocked_status","close_status","canceled_status"]),e.context=g(e.context,["default_depth","activity_limit","stale_threshold_days","next_ranking_policy","sections"]),e.context.sections=g(j(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=g(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=g(j(e.extensions.policy),["mode","trust_mode","pm_max_version_exceeded_mode","require_provenance","trusted_extensions","default_sandbox_profile","allowed_extensions","blocked_extensions","allowed_capabilities","blocked_capabilities","allowed_surfaces","blocked_surfaces","allowed_commands","blocked_commands","allowed_actions","blocked_actions","allowed_services","blocked_services","extension_overrides"]),e.extensions.policy.extension_overrides=vn(e.extensions.policy.extension_overrides).map(r=>g(j(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(j(e.search.query_expansion),["enabled","provider"]),e.search.rerank=g(j(e.search.rerank),["enabled","model","top_k"]),e.providers=g(e.providers,["openai","ollama"]),e.providers.openai=g(j(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=g(j(e.providers.ollama),["base_url","model"]),e.vector_store=g(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=g(j(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=g(j(e.vector_store.lancedb),["path"])}function Ql(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 eu(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:ks(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:fn(e.validation?.estimate_defaults_by_type)}}function tu(e){return{...h.search,...e.search,default_mode:ds(e.search?.default_mode),mutation_refresh_policy:cs(e.search?.mutation_refresh_policy),query_expansion:{...h.search.query_expansion,...e.search?.query_expansion,enabled:ls(e.search?.query_expansion?.enabled),provider:us(e.search?.query_expansion?.provider)},rerank:{...h.search.rerank,...e.search?.rerank,enabled:_s(e.search?.rerank?.enabled),model:fs(e.search?.rerank?.model),top_k:ms(e.search?.rerank?.top_k)}}}function ru(e){return{default_depth:e.context?.default_depth??h.context.default_depth,activity_limit:e.context?.activity_limit??h.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??h.context.stale_threshold_days,next_ranking_policy:e.context?.next_ranking_policy??h.context.next_ranking_policy,sections:{...h.context.sections,...e.context?.sections}}}function nu(e){return{...e.vector_store,adapter:e.vector_store?.adapter??h.vector_store.adapter,collection_name:ps(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function ou(e,t,r,n){return{...e,item_format:"toon",validation:eu(e,t),governance:t,agent_guidance:bs(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:tu(e),context:ru(e),extensions:{enabled:gn(e.extensions?.enabled),disabled:gn(e.extensions?.disabled),policy:Es(e.extensions?.policy)},vector_store:nu(e)}}function Ss(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)?Ss(o,n):e[r]=structuredClone(n)}}function kn(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(!z(i,s)){if(s===void 0){delete e[o];continue}if(typeof i=="object"&&i!==null&&!Array.isArray(i)&&typeof s=="object"&&s!==null&&!Array.isArray(s)){let a=e[o],d=typeof a=="object"&&a!==null&&!Array.isArray(a)?a:{};kn(d,i,s),Object.keys(d).length>0?e[o]=d:delete e[o];continue}e[o]=structuredClone(s)}}}var Bt=["version","id_prefix","ids","author_default","agent_identity","mutation_guard","item_format","locks","checkpoints","output","ux","history","validation","governance","workflow","testing","telemetry","agent_guidance","item_types","schema","context","extensions","search","providers","vector_store"];function Qi(e,t){let r=Ql(e),n=as(r),o=Fe(r.schema),i=Hl(r,t),s=ou(r,n,o,i),a=g({...s,governance:Nl(n)},Bt);return Zl(a),a}function Is(e,t={}){let r=t.source===void 0?t.persist_source:hs(t.source.validated,Gt(t.source.validated)),n=Qi(e,r);if(r){let o=Gt(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=Qi(o,r);t.source!==void 0&&Ss(i,t.source.validated);let s=structuredClone(t.source===void 0?r.source_settings:t.source.raw);return kn(s,i,n),`${JSON.stringify(g(s,Bt),null,2)}
|
|
75
|
+
`}return`${JSON.stringify(n,null,2)}
|
|
76
|
+
`}async function iu(e){let t;try{t=await ts(e)}catch(a){if(W(a))return U();throw a}let r=we(t),n;try{n=await Sl(r)}catch(a){if(W(a))return U();throw a}if(!n.isFile())throw tr("settings.json");let o;try{o=await Vn(r,tr("settings.json"))}catch(a){if(W(a))return U();throw a}let i;try{i=JSON.parse(o)}catch{return U("settings_read_invalid_json")}let s=Ft(i);return s.success?{settings:Gt(s.data),metadata:{has_explicit_item_format:vs(i)},warnings:s.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[]}:U("settings_read_invalid_schema")}async function Os(e){if(Il(e))return iu(e);let t=we(e),r=[t];await it({path:t,scope:"project"});let n=Ji(e);if(n){let l=await te(n.tracked_paths);if(Ye(l,n.signatures))return qt(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 pn(e,[t],l,o,[t]),l}let s=await te([t]);if(!Ye(o,s))return ge(e),Os(e);let a;try{a=JSON.parse(i)}catch{let l=U("settings_read_invalid_json");return await pn(e,[t],l,s,[t]),l}let d=Ft(a);if(!d.success){let l=U("settings_read_invalid_schema");return await pn(e,[t],l,s,[t]),l}try{let l=Gt(d.data),_=Dl(e,l.schema,t);r=_;let f=await te(_),w=await Bn(e,l.schema),O=await te(_),I={...l,item_types:{definitions:Pe([...l.item_types.definitions,...vn(w.type_definitions_from_file)])},schema:w.schema};wn(I,hs(d.data,I));let H={settings:I,metadata:{has_explicit_item_format:vs(a)},warnings:[...d.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],...w.warnings]};return Ye(f,O)?Wt(e,{tracked_paths:_,signatures:O,value:qt(H)}):ge(e),H}catch{let l=U("settings_read_merge_failed");return await jl(e,r,l),l}}var su=/^[A-Za-z0-9_-]+$/u,au=new Set(["__proto__","constructor","prototype"]);function Ts(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function cu(e){for(let t of e)if(t.split(".").find(r=>!su.test(r)||au.has(r))!==void 0)throw new b(`Settings write assignedPaths entry "${t}" is not a dotted settings path.`,E.USAGE,{code:"settings_write_assigned_path_invalid",reason:"assigned_path_segment_invalid",field:t,why:"Assigned paths name settings keys; an empty, reserved or non-identifier segment cannot address one safely.",nextSteps:["Pass dotted settings keys such as context.next_ranking_policy in assignedPaths."]})}function As(e,t){return Ts(Object.hasOwn(e,t)?e[t]:void 0)}function es(e,t){let r=e;for(let n of t)if(r=As(r,n),r===void 0)return;return r}function du(e,t){let r=e;for(let n of t){let o=As(r,n);o===void 0&&(o={},r[n]=o),r=o}return r}function lu(e,t,r){for(let n of r){let o=n.split("."),i=o.pop(),s=es(t,o);if(s===void 0)continue;if(Object.hasOwn(s,i)){du(e,o)[i]=structuredClone(s[i]);continue}if(!$i.includes(o[0]??i))continue;let a=es(e,o);a!==void 0&&delete a[i]}}function uu(e,t,r,n,o){let i=o??JSON.parse(Is(bn())),s=structuredClone(Ts(e)??{});kn(s,i,t),lu(s,t,n);let a=Ft(s);if(!a.success){let d=a.path;throw new b(`Existing settings.json fails validation at ${d}; the settings write was refused and nothing was changed.`,E.USAGE,{code:"settings_write_invalid_existing_schema",reason:"existing_settings_schema_invalid",field:d,original_code:r,why:"The stored settings could not be read, so writing would either keep an invalid document or replace intended project configuration with defaults.",nextSteps:[`Fix or remove ${d} in settings.json, then retry the original command.`,"A configurable setting can also be repaired explicitly, even to its default value, with pm config <scope> set <dotted.key> <value>.","Run pm health to confirm the settings warning has cleared."]})}return`${JSON.stringify(g(s,Bt),null,2)}
|
|
77
|
+
`}function _u(e){try{return JSON.parse(e)}catch{throw new b("Existing settings.json is malformed; the settings write was refused.",E.USAGE,{code:"settings_write_invalid_existing_json",reason:"existing_settings_json_malformed",why:"Writing defaults over malformed settings could destroy intended project configuration.",nextSteps:["Repair the syntax in .agents/pm/settings.json, then retry the original command.","Run pm health to confirm the settings warning has cleared."]})}}async function Zm(e){return(await Os(e)).settings}async function Qm(e,t,r=Ol,n={}){let o=n.assignedPaths??[];cu(o);let i=we(e),s=ys(t),a=s?void 0:En(t),d=Is(t,{persist_source:s}),l=JSON.parse(d);try{await Wi({pmRoot:e,filePath:i,mutate:_=>{let f=_===null?null:_u(_);return a!==void 0&&_!==null?{raw:uu(f,l,a,o,Fl(t)),result:void 0}:{raw:s?`${JSON.stringify(g(un(s.persisted_settings,l,f),Bt),null,2)}
|
|
78
|
+
`:d,result:void 0}},op:r,author:Jo(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),s?wn(t,{...s,persisted_settings:structuredClone(l)}):a!==void 0&&zl(t,structuredClone(l)),await Zn({path:i,scope:"project",op:r})}finally{ge(e)}}import xs from"node:fs";import Xe from"node:path";import{createRequire as fu}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]="2b3d7667-1c63-565a-b314-3a74cc8d6b7d")}catch{}})();var Cs="@unbrained/pm-cli";var In=/\b(\d{4})\.(\d{1,2})\.(\d{1,2})(?:-(\d+))?\b/u,On="2026.8.31";function Kt(e){let t=e.match(In);return t?[Number(t[1]),Number(t[2]),Number(t[3]),Number(t[4]??0)]:null}function Yt(e,t){let r=Kt(e),n=Kt(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 Sn(e){return Yt(e,On)!==-1?3:2}function Jt(e){try{let t=JSON.parse(xs.readFileSync(e,"utf8"));return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:null}catch{return null}}function mu(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 pu(e){let t=e.split("||").map(r=>mu(r));return{bounded:t.some(r=>r.length>0),compatible:t.some(r=>r.every(n=>{let o=Yt(On,n.version);return o!==null&&(n.inclusive?o!==1:o===-1)}))}}function Ns(e){return["dependencies","devDependencies","optionalDependencies","peerDependencies"].flatMap(t=>{let r=e[t];if(typeof r!="object"||r===null)return[];let n=r[Cs];return typeof n=="string"?[n.trim()]:[]})}function hu(e){return Ns(e).flatMap(t=>{let r=/^[<!]/u.test(t)?void 0:t.match(In)?.[0];if(!r)return[];let n=/^(?:=|v)?\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?$/u.test(t),o=pu(t);return[{version:r,constraint:n?"exact":o.bounded?"range":"minimum",...n?{}:{declaration:t},history_epoch_compatible:n?Yt(r,On)!==-1:o.compatible}]})}function yu(e){let t=Jt(Xe.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 gu(e,t){try{let r=xs.readFileSync(Xe.join(e,t),"utf8").split(/\r?\n/u),n=r.findIndex(s=>s.includes(Cs));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(`
|
|
79
|
+
`).match(/^\s*version(?::\s*|\s+)["']?(\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?)/mu)?.[1]??i[0].match(In)?.[0]}catch{return}}function vu(e){let t=[],r=Jt(Xe.join(e,"package.json"));r&&t.push(...hu(r).map(i=>({...i,source:"package.json"})));let n=Jt(Xe.join(e,"node_modules","@unbrained","pm-cli","package.json"))?.version;typeof n=="string"&&Kt(n)&&t.push({version:n,source:"installed-package",constraint:"exact",history_epoch_compatible:Sn(n)===3});let o=yu(e);o&&Kt(o)&&t.push({version:o,source:"package-lock.json",constraint:"exact",history_epoch_compatible:Sn(o)===3});for(let i of["pnpm-lock.yaml","yarn.lock"]){let s=gu(e,i);s&&t.push({version:s,source:i,constraint:"exact",history_epoch_compatible:Sn(s)===3})}return t}function sp(e,t){if(t<=1)return;let{minVersion:r,lt:n}=fu(import.meta.url)("semver"),o=Ns(Jt(Xe.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?vu(e).find(s=>Yt(s.version,"2026.10.10")===-1):{version:o,source:"package.json"};if(i)throw new b(`The project selects pm ${i.version}, which cannot safely refuse item format ${t}.`,E.CONFLICT,{code:"project_runtime_item_format_incompatible",reason:i.source,required:"Upgrade project pins, installed SDKs, CI hosts and Git merge drivers before writing guarded item formats.",nextSteps:["Use a pm runtime supporting the required item format throughout the project; preserve original item and history bytes, and never re-anchor history to satisfy an older host."]})}import An from"node:fs/promises";import Xt from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="658ab1c3-da92-5af6-a170-85ed7befaad6")}catch{}})();function ne(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function Rs(e){let t=["--pm-path",e,"init","--defaults","--agent-guidance","skip"];return{suggested_retry:eo(t),suggested_retry_args:t}}function Zt(e){return new b(`Tracker root is not a directory at ${e}.`,E.USAGE,{code:"tracker_root_not_directory",reason:"not_a_directory",resolved_path:e,nextSteps:["Pass a tracker directory, usually <workspace>/.agents/pm, rather than a file path."]})}function Tn(e){return new b(`Tracker root is not readable at ${e}.`,E.GENERIC_FAILURE,{code:"tracker_root_unreadable",reason:"unreadable",resolved_path:e,nextSteps:["Grant read and directory-search permission to the tracker root, then retry."]})}async function bu(e){let t=Xt.resolve(e),r=Xt.parse(t).root,n=Xt.dirname(t);for(;n!==r;){let o;try{o=await An.stat(n)}catch(i){if(ne(i,"ENOTDIR"))throw Zt(e);if(!ne(i,"ENOENT"))throw i;n=Xt.dirname(n);continue}if(!o.isDirectory())throw Zt(e);return}}async function wu(e){let t;try{t=await An.stat(e)}catch(r){throw ne(r,"ENOENT")?(await bu(e),new b(`Tracker is not initialized at ${e}. Tracker root does not exist. Run pm init first.`,E.NOT_FOUND,{code:"tracker_root_missing",reason:"missing",resolved_path:e,nextSteps:["Confirm the tracker root path or initialize it with the emitted retry."],recovery:Rs(e)})):ne(r,"ENOTDIR")?Zt(e):ne(r,"EACCES")||ne(r,"EPERM")?Tn(e):r}if(!t.isDirectory())throw Zt(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw Tn(e);try{await(await An.opendir(e)).close()}catch(r){throw ne(r,"EACCES")||ne(r,"EPERM")?Tn(e):r}}async function pp(e){if(await wu(e),!await Mn(we(e)))throw new b(`Tracker is not initialized at ${e}. Run pm init first.`,E.NOT_FOUND,{code:"tracker_not_initialized",reason:"settings_missing",resolved_path:e,nextSteps:["Initialize the selected tracker root with the emitted retry."],recovery:Rs(e)})}export{ku as a,Ls as b,io as c,se as d,J as e,Yo as f,Cu as g,Fs as h,Nu as i,fo as j,mo as k,Me as l,Ru as m,Du as n,nr as o,or as p,ju as q,ir as r,ho as s,Gs as t,Lu as u,lt as v,Ks as w,$u as x,ut as y,$a as z,mt as A,i_ as B,s_ as C,Oe as D,ce as E,vr as F,d_ as G,l_ as H,Er as I,Do as J,Sr as K,v_ as L,b_ as M,w_ as N,E_ as O,k_ as P,S_ as Q,Dr as R,Pr as S,Mo as T,P_ as U,j_ as V,L_ as W,H_ as X,F_ as Y,z_ as Z,Fr as _,Go as $,$_ as aa,M_ as ba,V_ as ca,Wc as da,U_ as ea,Jo as fa,bt as ga,Ge as ha,xe as ia,si as ja,Od as ka,Nd as la,Nf as ma,Rf as na,zd as oa,Pt as pa,_e as qa,Be as ra,rm as sa,nn as ta,wt as ua,Qo as va,nm as wa,ei as xa,om as ya,on as za,sn as Aa,Bc as Ba,Et as Ca,df as Da,zr as Ea,kt as Fa,lf as Ga,uf as Ha,ri as Ia,St as Ja,It as Ka,Ke as La,rd as Ma,_f as Na,ff as Oa,De as Pa,zt as Qa,vm as Ra,bm as Sa,wm as Ta,Wi as Ua,Em as Va,$i as Wa,Ft as Xa,Am as Ya,ge as Za,Ym as _a,Il as $a,as as ab,Xm as bb,Gt as cb,Is as db,Os as eb,Zm as fb,Qm as gb,vu as hb,sp as ib,wu as jb,pp as kb};
|
|
80
|
+
//# sourceMappingURL=chunk-J3YOATXR.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{f as w,i as y,j,k as B,l as U,o as h,p as X,q as W,r as Y}from"./chunk-
|
|
1
|
+
import{f as w,i as y,j,k as B,l as U,o as h,p as X,q as W,r as Y}from"./chunk-FXFDVM5O.js";import{U as H,a as $,b as D}from"./chunk-W3CSX6GI.js";import{c as u,f as M,g as z,i as q}from"./chunk-CO2DNPH7.js";import{Va as F,q as L,t as R}from"./chunk-QEVJ3Y67.js";import{a as g,d as K}from"./chunk-SDLIUZEL.js";import{ea as k,g as P}from"./chunk-MEJKELWC.js";import{a as N,e as O,f as x,g as A,i as C}from"./chunk-G6ERMFJ5.js";(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]="3ec1f825-59d1-5ce2-ac76-c628264bd8be")}catch{}})();var Ce=N,Pe=O,$e=C,De=x,Le=A;function G(e,t,n,r){let o=e.flag.slice(2).replace(/[-_]([a-z])/gu,(a,i)=>i.toUpperCase()),s=n.has(o);return{long:t,...r?{short:r}:{},description:e.description??`Standard pm ${e.flag} option.`,...e.required===!0?{required:!0}:{},...e.list===!0?{list:!0}:{},...e.repeatable===!0?{repeatable:!0}:{},value_type:s?"string":"boolean",...s?{value_name:e.value_name??"value"}:{}}}function Q(e,t=[]){let n=new Set(t.flatMap(o=>o.keys)),r=[];for(let o of L(e.map(s=>({...s})))){r.push(G(o,o.flag,n,o.short));for(let s of o.aliases??[])r.push(G(o,s,n))}return r}var Re=Q(R,$),Fe=Q(F,D);(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]="59d16a38-d6df-5695-96e3-28b6e384f76b")}catch{}})();var _=["agile","ops","research"],I={agile:{name:"agile",title:"Agile delivery",summary:"Story/Spike delivery with a review stage, story points, and acceptance ownership.",types:w.agile,statuses:[{id:"review",roles:["active"],aliases:["in-review"],description:"Work is implementation-complete and awaiting peer review."}],fields:[{key:"story_points",type:"number",commands:["create","update","list"],description:"Relative estimation size for a story or spike.",aliases:["points"]},{key:"acceptance_owner",type:"string",commands:["create","update","list"],description:"Stakeholder accountable for accepting the delivered story.",aliases:["acceptor"]}],workflows:[{type:"Story",allowed_transitions:[["open","in_progress"],["in_progress","review"],["review","in_progress"],["review","closed"],["in_progress","blocked"],["blocked","in_progress"]]}],config:[{key:"search_provider",value:"bm25",summary:"Offline BM25 lexical search works without an embedding service."},{key:"search_max_results",value:"20",summary:"Sprint-sized result cap for quick triage."}],templates:[{name:"story",options:{type:"Story",priority:"2",tags:"story",acceptanceCriteria:"Story delivers the stated user outcome with tests and docs updated.",body:`## As a
|
|
2
2
|
|
|
3
3
|
## I want
|
|
4
4
|
|
|
@@ -23,4 +23,4 @@ import{f as w,i as y,j,k as B,l as U,o as h,p as X,q as W,r as Y}from"./chunk-QN
|
|
|
23
23
|
|
|
24
24
|
## Conclusion
|
|
25
25
|
`}}],packages:[{spec:"search-advanced",reason:"Semantic retrieval over experiments and findings."},{spec:"templates",reason:"Consistent experiment and hypothesis scaffolds."},{spec:"beads",reason:"Import structured prior work into the tracker."}]}};function ne(e){if(e===void 0)return;let t=p(e);if(t.length===0)throw new Error("Profile name must not be empty.");if(_.includes(t))return t;throw new Error(`Invalid profile "${e}". Allowed: ${_.join(", ")}.`)}function qe(e){let t=ne(e);if(t===void 0)throw new Error(`Profile name is required. Allowed: ${_.join(", ")}.`);return I[t]}function je(){return _.map(e=>I[e])}function p(e){return e.trim().toLowerCase().replaceAll("-","_")}function J(e){return e.map(t=>t.definition.name).join(", ")}function re(e=[]){let t=_.map(s=>({definition:I[s],source:"builtin"})),n=new Set(_.map(s=>p(s))),r=new Set(n),o=[];for(let s of e){let a=p(s.profile.name);if(n.has(a)){o.push(`Extension "${s.name}" profile "${s.profile.name}" uses a name reserved by a built-in archetype and was ignored.`);continue}if(r.has(a)){o.push(`Profile "${s.profile.name}" from extension "${s.name}" duplicates an already-registered profile and was ignored.`);continue}r.add(a),t.push({definition:s.profile,source:"extension",package:s.name})}return{profiles:t,warnings:o}}function Be(e,t=[]){let{profiles:n,warnings:r}=re(t);if(typeof e!="string"||e.trim().length===0)throw new Error(`Profile name is required. Allowed: ${J(n)}.`);let o=p(e),s=n.find(a=>p(a.definition.name)===o);if(s===void 0)throw new Error(`Invalid profile "${e}". Allowed: ${J(n)}.`);return{resolved:s,warnings:r}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ab26bcb3-fb2a-5f2f-96e7-7965787b924e")}catch{}})();function oe(e){return{types:e.types.length,statuses:e.statuses.length,fields:e.fields.length,workflows:e.workflows.length,config:e.config.length,templates:e.templates.length,packages:e.packages.length}}function Ye(e){return{name:e.name,title:e.title,summary:e.summary,composition:oe(e),types:e.types.map(t=>S(()=>u(t).name,()=>String(t.name??""))),statuses:e.statuses.map(t=>S(()=>h(t).id,()=>String(t.id??""))),fields:e.fields.map(t=>S(()=>y(t).key,()=>String(t.key??""))),workflows:e.workflows.map(t=>t.type),config:e.config.map(t=>`${t.key}=${t.value}`),templates:e.templates.map(t=>t.name),packages:e.packages.map(t=>({spec:t.spec,reason:t.reason}))}}function S(e,t){try{return e()}catch{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]="499ff311-4667-5035-8fb2-4854ee7ecdd7")}catch{}})();var se=[{key:"context_next_ranking_policy",path:"context.next_ranking_policy",kind:"string",choices:["priority_floor","weighted"],summary:"Ready-queue order for pm next with the built-in scorer: priority_floor (resume in-progress work, then priority tiers, relevance within a tier) or weighted (blended relevance order). An extension context_relevance scorer keeps its own order."},{key:"search_provider",path:"search.provider",kind:"string",summary:"Search embedding provider name (e.g. openai, ollama, or an extension provider)."},{key:"search_default_mode",path:"search.default_mode",kind:"string",choices:["auto","keyword","semantic","hybrid"],summary:"Mode a bare pm search runs in: auto (hybrid when semantic search is explicitly configured and runnable, else keyword), or a pinned keyword, semantic, or hybrid."},{key:"search_mutation_refresh_policy",path:"search.mutation_refresh_policy",kind:"string",choices:["cache_only","semantic_configured","semantic_auto"],summary:"Mutation-time search refresh policy: cache_only, semantic_configured, or semantic_auto."},{key:"search_query_expansion_enabled",path:"search.query_expansion.enabled",kind:"boolean",summary:"Enable or disable query expansion for semantic/hybrid search."},{key:"search_query_expansion_provider",path:"search.query_expansion.provider",kind:"string",summary:"Query expansion provider name (built-in openai/ollama or extension provider)."},{key:"search_rerank_enabled",path:"search.rerank.enabled",kind:"boolean",summary:"Enable or disable post-retrieval reranking for hybrid search."},{key:"search_rerank_model",path:"search.rerank.model",kind:"string",summary:"Rerank model name override used by built-in providers."},{key:"search_rerank_top_k",path:"search.rerank.top_k",kind:"integer",min:1,summary:"Number of top hybrid candidates to rerank when rerank is enabled."},{key:"search_embedding_model",path:"search.embedding_model",kind:"string",summary:"Default embedding model name (overrides provider-specific model when set)."},{key:"search_embedding_corpus_max_characters",path:"search.embedding_corpus_max_characters",kind:"integer",min:1,summary:"Maximum semantic corpus characters per item before truncation."},{key:"search_embedding_batch_size",path:"search.embedding_batch_size",kind:"integer",min:1,summary:"Number of items embedded per request batch."},{key:"search_embedding_timeout_ms",path:"search.embedding_timeout_ms",kind:"integer",min:1,summary:"Per-request embedding timeout in milliseconds."},{key:"search_score_threshold",path:"search.score_threshold",kind:"number",summary:"Minimum score for a hit to be returned (0 keeps all matches)."},{key:"search_hybrid_semantic_weight",path:"search.hybrid_semantic_weight",kind:"ratio",summary:"Hybrid mode semantic weight in [0, 1] (1-weight goes to keyword)."},{key:"search_max_results",path:"search.max_results",kind:"integer",min:1,summary:"Default upper bound on search hits when --limit is not supplied."},{key:"search_bm25_k1",path:"search.bm25.k1",kind:"number",min:0,summary:"Offline BM25 term-frequency saturation (k1); higher saturates repeated terms slower (default 1.2)."},{key:"search_bm25_b",path:"search.bm25.b",kind:"ratio",summary:"Offline BM25 document-length normalization (b) in [0, 1]; 0 disables, 1 fully normalizes (default 0.75)."},{key:"openai_base_url",path:"providers.openai.base_url",kind:"string",summary:"OpenAI-compatible API base URL (LM Studio/vLLM also use this)."},{key:"openai_api_key",path:"providers.openai.api_key",kind:"string",summary:"OpenAI-compatible API key."},{key:"openai_model",path:"providers.openai.model",kind:"string",summary:"OpenAI-compatible embedding model name."},{key:"ollama_base_url",path:"providers.ollama.base_url",kind:"string",summary:"Ollama API base URL (typically http://localhost:11434)."},{key:"ollama_model",path:"providers.ollama.model",kind:"string",summary:"Ollama embedding model name (e.g. nomic-embed-text)."},{key:"vector_store_adapter",path:"vector_store.adapter",kind:"string",summary:"Vector store adapter name (lancedb, qdrant, or an extension adapter)."},{key:"vector_store_collection_name",path:"vector_store.collection_name",kind:"string",non_empty:!0,summary:"Vector collection/table name shared by Qdrant and LanceDB adapters."},{key:"qdrant_url",path:"vector_store.qdrant.url",kind:"string",summary:"Qdrant HTTP API URL."},{key:"qdrant_api_key",path:"vector_store.qdrant.api_key",kind:"string",summary:"Qdrant API key (empty if running unauthenticated)."},{key:"lancedb_path",path:"vector_store.lancedb.path",kind:"string",summary:"LanceDB storage path (relative to pm root or absolute)."},{key:"id_prefix",path:"id_prefix",kind:"string",non_empty:!0,summary:'Prefix for generated item IDs (e.g. "pm" produces pm-xxxx).'},{key:"author_default",path:"author_default",kind:"string",non_empty:!0,summary:"Default author recorded on mutations when --author is not supplied."},{key:"agent_identity_probes_enabled",path:"agent_identity.probes_enabled",kind:"boolean",summary:"Allow privacy-bounded local harness provenance probes; no network or subprocess access is permitted."},{key:"mutation_guard_require_attributed_author",path:"mutation_guard.require_attributed_author",kind:"boolean",summary:"Reject mutations whose effective author resolves to unknown."},{key:"mutation_guard_secret_guard",path:"mutation_guard.secret_guard",kind:"string",choices:["off","advise","block"],summary:"Detect credential-shaped mutation content: off, advise, or block."},{key:"mutation_guard_stale_in_progress_hours",path:"mutation_guard.stale_in_progress_hours",kind:"integer",min:1,summary:"Age threshold for unclaimed in-progress work surfaced by health."},{key:"governance_duplicate_detection_mode",path:"governance.duplicate_detection_mode",kind:"string",choices:["off","advisory","strict"],summary:"Create/copy duplicate governance: off, advisory, or strict explicit-bypass enforcement."},{key:"governance_duplicate_detection_threshold",path:"governance.duplicate_detection_threshold",kind:"ratio",summary:"Minimum shared similarity score in [0, 1] for create/copy duplicate governance."},{key:"governance_duplicate_detection_limit",path:"governance.duplicate_detection_limit",kind:"integer",min:0,max:20,summary:"Maximum likely duplicates returned by create/copy governance (0-20)."},{key:"output_default_format",path:"output.default_format",kind:"string",choices:["toon","json"],summary:"Default output format for commands that support it: toon or json."},{key:"ux_deprecation_hints",path:"ux.deprecation_hints",kind:"boolean",summary:"Emit one stderr migration hint for deprecated command aliases."},{key:"locks_ttl_seconds",path:"locks.ttl_seconds",kind:"integer",min:1,summary:"Claim/lock time-to-live in seconds before a stale lock can be reclaimed."},{key:"locks_wait_ms",path:"locks.wait_ms",kind:"integer",min:0,summary:"Wait budget in milliseconds before a contended lock fails with lock_conflict; item-store mutations, restore and the hierarchy lock treat it as a no-progress window that each observed owner handoff restarts (120 s total cap), other locks as a fixed total; 0 fails fast. PM_LOCK_WAIT_MS overrides per invocation."},{key:"ids_token_length",path:"ids.token_length",kind:"integer",min:4,max:12,summary:"Random base36 token length for newly minted item ids (4-12, default 4). Raise it to shrink cross-branch id collision odds in concurrent multi-agent workflows (pm-pibw)."},{key:"checkpoints_retention_days",path:"checkpoints.retention_days",kind:"integer",min:1,summary:"Age in days above which pm gc --scope checkpoints prunes bulk-mutation rollback checkpoints."},{key:"schema_unknown_field_policy",path:"schema.unknown_field_policy",kind:"string",choices:["allow","warn","reject"],summary:"How item I/O handles metadata keys not in the field registry: allow, warn, or reject."},{key:"history_compact_policy_enabled",path:"history.compact_policy.enabled",kind:"boolean",summary:"Enable the history-compaction advisory: pm health warns on over-threshold streams."},{key:"history_compact_policy_max_entries",path:"history.compact_policy.max_entries",kind:"integer",min:1,summary:"Entry count above which a history stream is flagged (and the default pm history-compact --all-over threshold)."},{key:"history_compact_policy_trigger",path:"history.compact_policy.trigger",kind:"string",choices:["health_warn","auto"],summary:"History-compaction policy intent: health_warn (advisory only) or auto (scheduled sweeps expected)."}],ae=new Map(se.flatMap(e=>[[e.key,e],[e.path.toLowerCase().replaceAll("-","_"),e]]));function b(e){if(typeof e!="string")return;let t=e.trim().toLowerCase().replaceAll("-","_");if(t.length!==0)return ae.get(t)}function ie(e,t){let n=t.trim().toLowerCase();return n==="true"||n==="1"||n==="yes"||n==="on"?{ok:!0,parsed:{descriptor:e,value:!0}}:n==="false"||n==="0"||n==="no"||n==="off"?{ok:!0,parsed:{descriptor:e,value:!1}}:{ok:!1,error:{message:`Config set ${e.key} requires a boolean value (true|false), got "${t}"`}}}function le(e,t,n){return e.non_empty===!0&&n.length===0?{ok:!1,error:{message:`Config set ${e.key} requires a non-empty value`}}:e.choices&&!e.choices.includes(n)?{ok:!1,error:{message:`Config set ${e.key} must be one of ${e.choices.join("|")}, got "${t}"`}}:{ok:!0,parsed:{descriptor:e,value:n}}}function de(e,t,n){if(n.length===0)return{ok:!1,error:{message:`Config set ${e.key} requires a non-empty value`}};let r=Number(n);return Number.isFinite(r)?{ok:!0,value:r}:{ok:!1,error:{message:`Config set ${e.key} requires a finite number, got "${t}"`}}}function ce(e,t,n){return!Number.isInteger(n)||n<0?{ok:!1,error:{message:`Config set ${e.key} requires a non-negative integer, got "${t}"`}}:e.min!==void 0&&n<e.min?{ok:!1,error:{message:`Config set ${e.key} requires an integer >= ${e.min}, got "${t}" (the runtime silently ignores 0 here and falls back to the default)`}}:e.max!==void 0&&n>e.max?{ok:!1,error:{message:`Config set ${e.key} requires an integer <= ${e.max}, got "${t}"`}}:{ok:!0,parsed:{descriptor:e,value:n}}}function me(e,t,n){return n<0||n>1?{ok:!1,error:{message:`Config set ${e.key} requires a number in [0, 1], got "${t}"`}}:{ok:!0,parsed:{descriptor:e,value:n}}}function pe(e,t,n){return e.min!==void 0&&n<e.min?{ok:!1,error:{message:`Config set ${e.key} requires a number >= ${e.min}, got "${t}"`}}:{ok:!0,parsed:{descriptor:e,value:n}}}function v(e,t){if(typeof t!="string")return{ok:!1,error:{message:`Config set ${e.key} requires a string value`}};let n=t.trim();if(e.kind==="boolean")return ie(e,t);if(e.kind==="string")return le(e,t,n);let r=de(e,t,n);return r.ok?e.kind==="integer"?ce(e,t,r.value):e.kind==="ratio"?me(e,t,r.value):pe(e,t,r.value):{ok:!1,error:r.error}}function V(e,t){let n=t.path.split("."),r=e;for(let o of n){if(typeof r!="object"||r===null)return null;let s=Object.getOwnPropertyDescriptor(r,o);if(!s||!Object.hasOwn(s,"value"))return null;r=s.value}return typeof r=="string"||typeof r=="number"||typeof r=="boolean"?r:null}function Ge(e,t,n){let r=t.path.split(".");if(r.some(a=>a.length===0||["__proto__","constructor","prototype"].includes(a)))throw new Error("Unsafe settings path");let o=e;for(let a=0;a<r.length-1;a+=1){let i=r[a],d=Object.getOwnPropertyDescriptor(o,i)?.value;if(typeof d!="object"||d===null||Array.isArray(d)){let c={};Object.defineProperty(o,i,{value:c,writable:!0,enumerable:!0,configurable:!0}),o=c}else o=d}let s=r[r.length-1];return Object.getOwnPropertyDescriptor(o,s)?.value===n?!1:(Object.defineProperty(o,s,{value:n,writable:!0,enumerable:!0,configurable:!0}),!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]="0b04624c-2096-55dc-9dde-b8c76ead72d6")}catch{}})();var it=["profile","types","statuses","fields","workflows","config","templates","packages"],lt=["profile_name_empty","profile_name_not_normalized","profile_title_empty","profile_summary_empty","type_invalid","type_duplicate","status_invalid","status_duplicate","field_invalid","field_duplicate","field_mcp_input_collision","workflow_type_empty","workflow_type_unknown","workflow_duplicate_type","workflow_transition_malformed","workflow_status_unknown","config_key_unknown","config_value_invalid","config_duplicate","template_type_unknown","package_spec_empty"],ue=new Set(K.flatMap(e=>[g(e.id),...(e.aliases??[]).map(t=>g(t))]).filter(e=>e.length>0)),Z=new Set(P.map(e=>e.toLowerCase()));function ye(e,t){e.name.trim().length===0?t.push({severity:"error",code:"profile_name_empty",dimension:"profile",message:"Profile name must not be empty; profile resolution requires a non-blank name."}):e.name!==p(e.name)&&t.push({severity:"warning",code:"profile_name_not_normalized",dimension:"profile",target:e.name,message:`Profile name "${e.name}" is not in canonical form; resolution folds it to "${p(e.name)}" (lowercase, hyphens as underscores).`}),e.title.trim().length===0&&t.push({severity:"warning",code:"profile_title_empty",dimension:"profile",message:"Profile title is empty; list and show surfaces will render a blank title."}),e.summary.trim().length===0&&t.push({severity:"warning",code:"profile_summary_empty",dimension:"profile",message:"Profile summary is empty; list and show surfaces will render a blank archetype description."})}function he(e,t){let n=new Set,r=new Set;for(let[o,s]of e.types.entries()){let a;try{a=u(s).name}catch(d){t.push({severity:"error",code:"type_invalid",dimension:"types",target:typeof s.name=="string"?s.name:`#${o}`,message:k(d)});continue}let i=a.toLowerCase();if(r.has(i)){t.push({severity:"error",code:"type_duplicate",dimension:"types",target:a,message:`Item type "${a}" is declared more than once; the later definition silently overwrites the earlier upsert.`});continue}r.add(i),n.add(i)}return n}function fe(e,t){let n=new Set,r=new Set;for(let[o,s]of e.statuses.entries()){let a;try{a=h(s)}catch(i){t.push({severity:"error",code:"status_invalid",dimension:"statuses",target:typeof s.id=="string"?s.id:`#${o}`,message:k(i)});continue}if(r.has(a.id)){t.push({severity:"error",code:"status_duplicate",dimension:"statuses",target:a.id,message:`Status "${a.id}" is declared more than once; the later definition silently overwrites the earlier upsert.`});continue}r.add(a.id),n.add(a.id);for(let i of a.aliases??[])n.add(g(i))}return n}function ge(e,t){let n=new Set;for(let[r,o]of e.fields.entries()){let s;try{s=y(o).key}catch(i){t.push({severity:"error",code:"field_invalid",dimension:"fields",target:typeof o.key=="string"?o.key:`#${r}`,message:k(i)});continue}if(n.has(s)){t.push({severity:"error",code:"field_duplicate",dimension:"fields",target:s,message:`Field "${s}" is declared more than once; the later definition silently overwrites the earlier upsert.`});continue}n.add(s);let a=H(s);a&&t.push({severity:"warning",code:"field_mcp_input_collision",dimension:"fields",target:s,message:`Field "${s}" collides with canonical MCP property "${a.property}" owned by ${a.owner}; callers must pass the custom value through ${a.nested_path}.`})}}function _e(e,t,n,r){let o=new Set;for(let[s,a]of e.workflows.entries()){let i=a.type.trim().toLowerCase();if(i.length===0){r.push({severity:"error",code:"workflow_type_empty",dimension:"workflows",target:`#${s}`,message:"Workflow has an empty type; the workflow resolver drops entries without a type."});continue}let d=o.has(i);o.add(i),d?r.push({severity:"warning",code:"workflow_duplicate_type",dimension:"workflows",target:a.type,message:`Workflow type "${a.type}" is declared more than once; the later transition set wins.`}):!Z.has(i)&&!t.has(i)&&r.push({severity:"warning",code:"workflow_type_unknown",dimension:"workflows",target:a.type,message:`Workflow governs type "${a.type}" which is neither a built-in type nor declared by this profile; it has no effect unless that type already exists.`});let c=new Set;for(let l of a.allowed_transitions){let m=g(l[0]),T=g(l[1]);if(m.length===0||T.length===0){r.push({severity:"error",code:"workflow_transition_malformed",dimension:"workflows",target:a.type,message:`Workflow "${a.type}" has a transition with an empty status; the workflow resolver silently drops it.`});continue}for(let f of[m,T])ue.has(f)||n.has(f)||c.has(f)||(c.add(f),r.push({severity:"warning",code:"workflow_status_unknown",dimension:"workflows",target:f,message:`Workflow "${a.type}" references status "${f}" which is neither a built-in status nor declared by this profile; transitions to or from it are unreachable.`}))}}}function ke(e,t){let n=new Set;for(let r of e.config){let o=b(r.key);if(o===void 0){t.push({severity:"error",code:"config_key_unknown",dimension:"config",target:r.key,message:`Config knob "${r.key}" is not a recognized setting; apply rejects it with a usage error.`});continue}n.has(o.key)?t.push({severity:"error",code:"config_duplicate",dimension:"config",target:o.key,message:`Config knob "${o.key}" is set more than once; the later value silently overwrites the earlier one.`}):n.add(o.key);let s=v(o,r.value);s.ok||t.push({severity:"error",code:"config_value_invalid",dimension:"config",target:r.key,message:s.error.message})}}function we(e,t,n){for(let r of e.templates){let o=r.options.type;if(typeof o!="string"||o.trim().length===0)continue;let s=o.trim().toLowerCase();!Z.has(s)&&!t.has(s)&&n.push({severity:"warning",code:"template_type_unknown",dimension:"templates",target:r.name,message:`Template "${r.name}" creates type "${o}" which is neither a built-in type nor declared by this profile.`})}}function be(e,t){for(let[n,r]of e.packages.entries())r.spec.trim().length===0&&t.push({severity:"warning",code:"package_spec_empty",dimension:"packages",target:`#${n}`,message:"Package recommendation has an empty spec; it cannot be surfaced as an install hint."})}function dt(e){let t=[];ye(e,t);let n=he(e,t),r=fe(e,t);ge(e,t),_e(e,n,r,t),ke(e,t),we(e,n,t),be(e,t);let o=t.filter(a=>a.severity==="error").length,s=t.length-o;return{profile:e.name,ok:o===0,findings:t,errorCount:o,warningCount: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]="be2b507d-2797-570c-b211-46d950edcbde")}catch{}})();function E(e,t,n,r,o){let s=e,a=[];for(let i of t){let d=r(s),c=o(s,i),l=r(c.file);s=c.file;let m=d===l?"unchanged":c.replaced?"update":"add";a.push({key:n(i),status:m})}return{file:s,changes:a,changed:a.some(i=>i.status!=="unchanged")}}function ee(e){return JSON.stringify(e.map(t=>t.join("\0")).sort())}function ve(e,t){let n=e.map(o=>({...o})),r=[];for(let o of t){let s=n.findIndex(i=>i.type===o.type),a={type:o.type,allowed_transitions:o.allowed_transitions};s<0?(n.push(a),r.push({type:o.type,status:"add"})):ee(n[s].allowed_transitions)===ee(o.allowed_transitions)?r.push({type:o.type,status:"unchanged"}):(n[s]=a,r.push({type:o.type,status:"update"}))}return{changes:r,result:n,changed:r.some(o=>o.status!=="unchanged")}}function Ie(e,t){let n=[];for(let r of e.config){let o=b(r.key);if(o===void 0)throw new Error(`Profile "${e.name}" references unknown config key "${r.key}".`);let s=v(o,r.value);if(!s.ok)throw new Error(`Profile "${e.name}" config ${r.key}: ${s.error.message}`);let a=V(t,o),i=a===null?"add":a===s.parsed.value?"unchanged":"update";n.push({key:o.key,path:o.path,value:s.parsed.value,status:i})}return{changes:n,changed:n.some(r=>r.status!=="unchanged")}}function te(e){let t=Object.entries(e).sort(([n],[r])=>n.localeCompare(r));return JSON.stringify(t)}function Se(e,t){let n=[];for(let r of e.templates){let o=t.get(r.name),s;o===void 0?s="add":te(o)===te(r.options)?s="unchanged":s="update",n.push({name:r.name,options:r.options,status:s})}return{changes:n,changed:n.some(r=>r.status!=="unchanged")}}function ht(e,t){let n=E(M(t.typesRaw),e.types,l=>u(l).name,q,(l,m)=>z(l,u(m))),r=E(X(t.statusesRaw),e.statuses,l=>h(l).id,W,(l,m)=>Y(l,h(m))),o=E(j(t.fieldsRaw),e.fields,l=>y(l).key,B,(l,m)=>U(l,y(m))),s=ve(t.workflows,e.workflows),a=Ie(e,t.settings),i=Se(e,t.templates),d=e.packages.map(l=>({spec:l.spec,reason:l.reason,status:t.installedPackages.has(l.spec)?"installed":"recommended"})),c=n.changed||r.changed||o.changed||s.changed||a.changed||i.changed;return{profile:{name:e.name,title:e.title,summary:e.summary},types:n,statuses:r,fields:o,workflows:s,config:a,templates:i,packages:d,changed:c}}export{Ce as a,Pe as b,$e as c,De as d,Le as e,Q as f,Re as g,Fe as h,_ as i,I as j,ne as k,qe as l,je as m,re as n,Be as o,oe as p,Ye as q,se as r,b as s,v as t,V as u,Ge as v,it as w,lt as x,dt as y,ht as z};
|
|
26
|
-
//# sourceMappingURL=chunk-
|
|
26
|
+
//# sourceMappingURL=chunk-J6FDCAMH.js.map
|