@unbrained/pm-cli 2026.8.20 → 2026.8.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +38 -0
- package/dist/cli/error-guidance.d.ts +29 -4
- package/dist/cli/error-guidance.js +43 -43
- package/dist/cli/main.d.ts +3 -0
- package/dist/cli/main.js +40 -7
- package/dist/cli-bundle/bundle-manifest.json +150 -150
- package/dist/cli-bundle/chunks/{chunk-L4LGPBJU.js → chunk-BWX4SK46.js} +58 -58
- package/dist/cli-bundle/chunks/chunk-EMWDM5FI.js +13 -0
- package/dist/cli-bundle/chunks/chunk-HYG6LRL4.js +200 -0
- package/dist/cli-bundle/chunks/{chunk-TSMWLCHS.js → chunk-MYYI3ZOA.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4GB2LTOQ.js → chunk-MZTZQTMS.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-7BRF2BX2.js → chunk-QI2CT3IX.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-SMWXHMVB.js +35 -0
- package/dist/cli-bundle/chunks/{chunk-US2ZQW2M.js → chunk-U6GQ4VMV.js} +47 -47
- package/dist/cli-bundle/chunks/{chunk-K3EN3LK2.js → chunk-VMMIL3SI.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-WG4STC36.js +5 -0
- package/dist/cli-bundle/chunks/{chunk-XYDDWBZN.js → chunk-YBPJAOQQ.js} +3 -3
- package/dist/cli-bundle/chunks/{register-list-query-JSAQCVOC.js → register-list-query-HZKBQNWW.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-XJPAW63D.js → register-mutation-HTKEEGRD.js} +2 -2
- package/dist/cli-bundle/chunks/{register-operations-DSOSB2XQ.js → register-operations-6EMRWJJY.js} +2 -2
- package/dist/cli-bundle/chunks/{register-setup-QUR6QL2C.js → register-setup-QK4OTOXN.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-TDR5OGG3.js → chunk-2ARQGDDW.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-AZBACT5T.js → chunk-2AZT5WXZ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-M32HFIQB.js → chunk-2POVTNLY.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-3LKU6PTJ.js +4 -0
- package/dist/cli-bundle/focused-chunks/chunk-5SHSBMX2.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-UGSS4F5X.js → chunk-6S2MO3Q3.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-5L7M4AI7.js → chunk-A2BC5PQL.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-C4S4A4JJ.js +5 -0
- package/dist/cli-bundle/focused-chunks/{chunk-OM65KHGF.js → chunk-D6RBZEJJ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-E2EWYPY6.js +16 -0
- package/dist/cli-bundle/focused-chunks/{chunk-G3C5ERXG.js → chunk-GMYPD4FX.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-L5LDSRO2.js +155 -0
- package/dist/cli-bundle/focused-chunks/{chunk-BLJCGGID.js → chunk-MB37AYN6.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-MCOR37QK.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-FUREQLQN.js → chunk-PH2OXXVZ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-325UXIO7.js → chunk-PMGJUFNQ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-R6SR45XU.js +50 -0
- package/dist/cli-bundle/focused-chunks/chunk-WZE4LIPW.js +8 -0
- package/dist/cli-bundle/main.js +13 -13
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +2 -2
- package/dist/cli-bundle/sdk-core.js +40 -40
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +32 -32
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +5 -5
- package/dist/core/extensions/extension-hook-runtime.js +22 -20
- package/dist/core/extensions/extension-types.d.ts +8 -1
- package/dist/core/extensions/extension-types.js +2 -2
- package/dist/core/extensions/loader.js +7 -3
- package/dist/core/extensions/service-ownership.d.ts +8 -0
- package/dist/core/extensions/service-ownership.js +20 -0
- package/dist/core/item/id.js +20 -5
- package/dist/core/item/item-format.js +27 -2
- package/dist/core/shared/errors.d.ts +20 -0
- package/dist/core/shared/errors.js +2 -2
- package/dist/core/store/item-store.js +6 -91
- package/dist/core/store/tracker-preflight.d.ts +7 -0
- package/dist/core/store/tracker-preflight.js +142 -0
- package/dist/sdk/agent/refusal-reachability.d.ts +1 -1
- package/dist/sdk/agent/tracker-preflight-contracts.d.ts +63 -0
- package/dist/sdk/agent/tracker-preflight-contracts.js +127 -0
- package/dist/sdk/annotations.js +6 -7
- package/dist/sdk/authoring.d.ts +1 -1
- package/dist/sdk/authoring.js +2 -2
- package/dist/sdk/cli-contracts/agent-output-contracts.d.ts +77 -0
- package/dist/sdk/cli-contracts/agent-output-contracts.js +324 -2
- package/dist/sdk/cli-contracts/commander-mutation-options.js +3 -3
- package/dist/sdk/cli-contracts/runtime-contracts.d.ts +3 -1
- package/dist/sdk/cli-contracts/runtime-contracts.js +4 -3
- package/dist/sdk/cli-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts.js +3 -3
- package/dist/sdk/config.d.ts +5 -0
- package/dist/sdk/config.js +5 -5
- package/dist/sdk/context-intent-runtime.js +7 -4
- package/dist/sdk/contracts.d.ts +1 -0
- package/dist/sdk/contracts.js +3 -2
- package/dist/sdk/dependencies.js +5 -7
- package/dist/sdk/dependency-flag-validation.d.ts +1 -1
- package/dist/sdk/dependency-flag-validation.js +10 -4
- package/dist/sdk/environment/tracker-preflight.d.ts +6 -0
- package/dist/sdk/environment/tracker-preflight.js +10 -0
- package/dist/sdk/eval.js +5 -7
- package/dist/sdk/extension/install-sources.d.ts +1 -1
- package/dist/sdk/extension/install-sources.js +6 -3
- package/dist/sdk/extension/output-ownership.d.ts +1 -0
- package/dist/sdk/extension/output-ownership.js +3 -2
- package/dist/sdk/files.js +6 -10
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +75 -15
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +81 -8
- package/dist/sdk/governance/assurance.d.ts +36 -2
- package/dist/sdk/governance/assurance.js +184 -10
- package/dist/sdk/governance/gc.js +5 -6
- package/dist/sdk/governance/health.d.ts +3 -0
- package/dist/sdk/governance/health.js +42 -11
- package/dist/sdk/governance/hierarchy-validation.d.ts +29 -0
- package/dist/sdk/governance/hierarchy-validation.js +109 -0
- package/dist/sdk/governance/reindex.js +5 -6
- package/dist/sdk/governance/validate.d.ts +2 -9
- package/dist/sdk/governance/validate.js +51 -109
- package/dist/sdk/graph/assembly.d.ts +6 -1
- package/dist/sdk/graph/assembly.js +16 -22
- package/dist/sdk/graph/governance-contracts.d.ts +1 -1
- package/dist/sdk/graph/governance-contracts.js +8 -2
- package/dist/sdk/graph/governance.d.ts +7 -5
- package/dist/sdk/graph/governance.js +76 -16
- package/dist/sdk/graph/hierarchy-integrity.d.ts +94 -0
- package/dist/sdk/graph/hierarchy-integrity.js +311 -0
- package/dist/sdk/graph/index.d.ts +2 -1
- package/dist/sdk/graph/index.js +3 -2
- package/dist/sdk/graph/remediation.js +32 -2
- package/dist/sdk/graph/run.d.ts +31 -2
- package/dist/sdk/graph/run.js +83 -36
- package/dist/sdk/graph/traversal.js +14 -5
- package/dist/sdk/graph/workspace-relationship-kind-registry.d.ts +8 -0
- package/dist/sdk/graph/workspace-relationship-kind-registry.js +28 -0
- package/dist/sdk/history-compact.js +6 -9
- package/dist/sdk/history-read.js +5 -7
- package/dist/sdk/history-redact.js +5 -6
- package/dist/sdk/history-repair.js +6 -9
- package/dist/sdk/improvement-ledger.js +7 -10
- package/dist/sdk/index.d.ts +4 -2
- package/dist/sdk/index.js +5 -3
- package/dist/sdk/item-children.js +21 -8
- package/dist/sdk/lifecycle/append.d.ts +0 -5
- package/dist/sdk/lifecycle/append.js +5 -6
- package/dist/sdk/lifecycle/claim.d.ts +0 -5
- package/dist/sdk/lifecycle/claim.js +6 -9
- package/dist/sdk/lifecycle/close-many.d.ts +0 -5
- package/dist/sdk/lifecycle/close-many.js +5 -6
- package/dist/sdk/lifecycle/close.d.ts +0 -5
- package/dist/sdk/lifecycle/close.js +5 -6
- package/dist/sdk/lifecycle/copy.d.ts +0 -5
- package/dist/sdk/lifecycle/copy.js +5 -6
- package/dist/sdk/lifecycle/create.d.ts +0 -5
- package/dist/sdk/lifecycle/create.js +127 -102
- package/dist/sdk/lifecycle/delete.js +5 -6
- package/dist/sdk/lifecycle/focus.d.ts +0 -5
- package/dist/sdk/lifecycle/focus.js +5 -6
- package/dist/sdk/lifecycle/hierarchy-mutation-lock.d.ts +15 -0
- package/dist/sdk/lifecycle/hierarchy-mutation-lock.js +25 -0
- package/dist/sdk/lifecycle/plan.d.ts +0 -5
- package/dist/sdk/lifecycle/plan.js +5 -6
- package/dist/sdk/lifecycle/restore.js +5 -6
- package/dist/sdk/lifecycle/update-many.d.ts +0 -5
- package/dist/sdk/lifecycle/update-many.js +5 -6
- package/dist/sdk/lifecycle/update.d.ts +2 -5
- package/dist/sdk/lifecycle/update.js +211 -84
- package/dist/sdk/linked-artifacts.js +6 -7
- package/dist/sdk/merge/install.js +5 -6
- package/dist/sdk/mutation-events.js +5 -7
- package/dist/sdk/package-import-adapters.js +6 -8
- package/dist/sdk/profile.js +6 -7
- package/dist/sdk/query/activity.js +5 -6
- package/dist/sdk/query/calendar.js +5 -6
- package/dist/sdk/query/complete-list.d.ts +3 -3
- package/dist/sdk/query/complete-list.js +46 -3
- package/dist/sdk/query/get.d.ts +0 -5
- package/dist/sdk/query/get.js +5 -6
- package/dist/sdk/query/history.d.ts +0 -5
- package/dist/sdk/query/history.js +5 -6
- package/dist/sdk/query/list.d.ts +4 -3
- package/dist/sdk/query/list.js +92 -54
- package/dist/sdk/query/search.js +5 -7
- package/dist/sdk/read-output-contracts.d.ts +5 -1
- package/dist/sdk/read-output-contracts.js +87 -22
- package/dist/sdk/relationship-context.js +3 -4
- package/dist/sdk/relationship-kinds/contract.d.ts +8 -0
- package/dist/sdk/relationship-kinds/contract.js +13 -13
- package/dist/sdk/relationships.d.ts +1 -1
- package/dist/sdk/relationships.js +27 -2
- package/dist/sdk/runtime.d.ts +3 -2
- package/dist/sdk/runtime.js +3 -2
- package/dist/sdk/schema-migration.js +6 -7
- package/dist/sdk/schema.js +5 -6
- package/dist/sdk/stats.js +5 -8
- package/dist/sdk/templates.js +5 -6
- package/dist/sdk/test/batch.js +15 -9
- package/dist/sdk/test/execution.js +12 -5
- package/dist/sdk/test/runs.js +5 -7
- package/dist/types.d.ts +11 -0
- package/dist/types.js +2 -2
- package/docs/AGENT_UX_CONTRACTS.md +24 -1
- package/docs/COMMANDS.md +29 -14
- package/docs/DEPENDENCY_KIND_CONTRACT.md +40 -1
- package/docs/DIAGNOSTIC_OUTPUT_CONTRACTS.md +98 -0
- package/docs/EXTENSIONS.md +2 -1
- package/docs/README.md +1 -0
- package/docs/READ_OUTPUT_CONTRACTS.md +9 -2
- package/docs/RECURRENCE_RECOVERY_CONTRACTS.md +37 -0
- package/docs/RELATIONSHIP_GRAPH.md +97 -12
- package/docs/SDK_PRIMITIVE_INVENTORY.md +15 -1
- package/docs/TESTING.md +15 -0
- package/marketplace.json +2 -2
- 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-codex/.codex-plugin/plugin.json +1 -1
- package/sdk/public-surface.json +848 -56
- package/dist/cli-bundle/chunks/chunk-2RDVGYWE.js +0 -13
- package/dist/cli-bundle/chunks/chunk-BLVQHFSY.js +0 -35
- package/dist/cli-bundle/chunks/chunk-CU25EQVV.js +0 -5
- package/dist/cli-bundle/chunks/chunk-RS3IV2R6.js +0 -197
- package/dist/cli-bundle/focused-chunks/chunk-6AHG2YW7.js +0 -50
- package/dist/cli-bundle/focused-chunks/chunk-GXWQBE3T.js +0 -8
- package/dist/cli-bundle/focused-chunks/chunk-JWKEDZJI.js +0 -4
- package/dist/cli-bundle/focused-chunks/chunk-KYZ6JGPL.js +0 -155
- package/dist/cli-bundle/focused-chunks/chunk-Q47EX4DI.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-RIHDMCUM.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-T4ZFY7ZJ.js +0 -16
- package/dist/cli-bundle/focused-chunks/chunk-Z3PLWSGM.js +0 -2
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
import{A as io,Aa as go,G as so,Ja as Ot,L as Ct,La as Qe,Na as Ze,Oa as et,P as Cn,Q as On,Qa as bo,R as An,Ra as wo,S as Ye,Sa as Eo,T as ao,Ta as ko,U as co,Ua as vo,Va as So,Z as uo,_ as lo,a as wt,h as xt,p as oo,q as Tt,s as Ee,t as de,u as W,ua as fo,v as Ke,va as mo,wa as _o,xa as po,ya as yo,za as ho}from"./chunk-JWKEDZJI.js";import{C as St,D as It,E as Tn,G as no,L as ce,S as we,T as ro,W as b,X as Re,Y as I,Z as x,aa as D,ba as Ne,ca as ke,da as v,n as Et,o as Yr,p as Qr,q as Zr,r as eo,v as kt,w as vt,x as to}from"./chunk-Q47EX4DI.js";import{AsyncLocalStorage as ta}from"node:async_hooks";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="16109ee9-e684-5d25-a5f4-30a6c4f62bd5")}catch{}})();var Rn=new ta,Io=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function At(e,t){let n=typeof e=="string"?e.trim():"";return n.length>0?n.slice(0,t):void 0}function ve(e,t){if(e===void 0)return;let n=typeof e=="object"&&e!==null?e:{},r=At(n.id,128),o=At(n.parent_id,128);if(r===void 0||!Io.test(r)||o!==void 0&&!Io.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=At(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function De(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=At(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function na(e,t,n){let r=Rn.getStore(),o=De({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=ve(t.PM_AGENT_EPISODE_ID===void 0?void 0:{id:t.PM_AGENT_EPISODE_ID,label:t.PM_AGENT_EPISODE_LABEL,parent_id:t.PM_AGENT_EPISODE_PARENT_ID},!1),s={...De(r?.provenance),...o,...De(e?.provenance)},a=ve(e?.episode,!1)??ve(n,!1)??i??ve(r?.episode,!1);return Object.keys(s).length===0&&a===void 0?void 0:{...Object.keys(s).length===0?{}:{provenance:s},...a===void 0?{}:{episode:a}}}function Nn(e,t){return na(e.session_context,t,e.client_info?.episode)??{}}function em(e,t){let n=Rn.getStore(),r=ve(e.episode,!0),o=ve(n?.episode,!1),i=r!==void 0&&r.parent_id===void 0&&o!==void 0?{...r,parent_id:o.id}:r,s={...De(n?.provenance),...De(e.provenance)};return Rn.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function tm(e){let t=De(e.provenance),n=ve(e.episode,!0);return{...n===void 0?{}:{PM_AGENT_EPISODE_ID:n.id,...n.label===void 0?{}:{PM_AGENT_EPISODE_LABEL:n.label},...n.parent_id===void 0?{}:{PM_AGENT_EPISODE_PARENT_ID:n.parent_id}},...t.role===void 0?{}:{PM_AGENT_SESSION_ROLE:t.role},...t.topic===void 0?{}:{PM_AGENT_SESSION_TOPIC:t.topic}}}import{AsyncLocalStorage as Wn}from"node:async_hooks";import{createHash as aa}from"node:crypto";import Nt from"node:fs";import ca from"node:os";import Ao from"node:path";import{createHash as xo}from"node:crypto";import{existsSync as Dn,promises as To,readFileSync as ra}from"node:fs";import K from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="424b9eb3-6b34-5ab0-a3f5-db61fbca12cf")}catch{}})();var oa="session.json";function Mn(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function Co(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=e,n=["implementer","planner","release-operator"].includes(String(t.role)),r=["high","medium"].includes(String(t.confidence)),o=Mn(t.topic,256),i=Array.isArray(t.evidence)&&t.evidence.length<=32&&t.evidence.every(c=>typeof c=="string"&&c.length<=128),s=Array.isArray(t.active_item_ids)&&t.active_item_ids.length<=64&&t.active_item_ids.every(c=>Mn(c,128)),a=t.focused_item_id===void 0||Mn(t.focused_item_id,128);if([n,r,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function ia(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([n,r])=>{let o=Co(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Pn(e){return K.join(co(e),oa)}async function Rt(e){try{let t=await To.readFile(Pn(e),"utf8"),n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return{};let r=n,o=r.focused_item,i=ia(r.semantic_attribution);return typeof o=="string"&&o.trim().length>0?{focused_item:o,...i?{semantic_attribution:i}:{}}:i?{semantic_attribution:i}:{}}catch{return{}}}async function Ln(e,t){let n=Pn(e);await To.mkdir(K.dirname(n),{recursive:!0}),await W(n,JSON.stringify(t))}function jn(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${xo("sha256").update(e).digest("hex").slice(0,24)}`}function Fn(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function $n(e){let t=[...new Set(e)].sort((o,i)=>o.localeCompare(i));if(t.length===1)return t[0];let n=`workset:${t.join("+")}`;return n.length<=256?n:`workset:${t.join("+").slice(0,230)}+${xo("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function zn(e,t,n){let r=await Rt(e),o={...r.semantic_attribution},i=n(o[t]);i===void 0?delete o[t]:o[t]=i;let s={...r};Object.keys(o).length===0?delete s.semantic_attribution:s.semantic_attribution=o,await Ln(e,s)}async function cm(e){let t=jn(e.principal);await zn(e.pmRoot,t,n=>{let r=[...new Set([...n?.active_item_ids??[],e.itemId])].slice(-64).sort((i,s)=>i.localeCompare(s)),o=n?.focused_item_id;return{role:"implementer",topic:o??$n(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Fn([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}async function dm(e){let t=jn(e.principal);await zn(e.pmRoot,t,n=>{if(!n)return;let r=n.active_item_ids.filter(i=>i!==e.itemId);if(r.length===0&&!n.focused_item_id)return;let o=n.focused_item_id;return{...n,role:"release-operator",topic:o??$n(r),confidence:o?"high":"medium",evidence:Fn([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:r}})}async function um(e){let t=jn(e.principal);await zn(e.pmRoot,t,n=>{let r=n?.active_item_ids??[];if(!e.itemId&&r.length===0)return;let o=e.itemId;return{role:o?"planner":n.role,topic:o??$n(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Fn([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}function sa(e,t){let n=t.PM_PATH?.trim();if(n){let o=K.resolve(e,n);if(Dn(K.join(o,"settings.json")))return o;let i=K.join(o,".agents","pm");if(Dn(K.join(i,"settings.json")))return i}let r=K.resolve(e);for(let o=0;o<32;o+=1){let i=K.join(r,".agents","pm");if(Dn(K.join(i,"settings.json")))return i;let s=K.dirname(r);if(s===r)break;r=s}}function Oo(e){if(!e.key)return;let t=sa(e.cwd,e.env);if(t)try{let n=JSON.parse(ra(Pn(t),"utf8"));return Co(n.semantic_attribution?.[e.key])}catch{return}}async function lm(e){return(await Rt(e)).focused_item}async function fm(e,t){let n=await Rt(e);await Ln(e,{...n,focused_item:t})}async function mm(e){let n={...await Rt(e)};delete n.focused_item,await Ln(e,n)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e0ab2d6f-0925-540d-8d24-a7f0687b4bf0")}catch{}})();var Bn=["model","effort","role","topic","version"],Mt=new Wn,Ro=new Wn,Pt=new Wn,da=[{harness:"claude-code",environment_keys:["CLAUDE_CODE","CLAUDECODE"],model_environment_keys:["ANTHROPIC_MODEL","CLAUDE_MODEL"],session_environment_keys:["CLAUDE_CODE_SESSION_ID"],provenance_environment_keys:{effort:["CLAUDE_EFFORT"]},provenance_resolvers:{model:"claude_session_file",version:"claude_session_file"},provenance_unavailable_dimensions:["role","topic"],argv_markers:["claude","claude-code"],client_names:["claude","claude-code","claude code"]},{harness:"codex",environment_keys:["CODEX_HOME","CODEX_CI","CODEX_THREAD_ID"],model_environment_keys:["CODEX_MODEL"],session_environment_keys:["CODEX_THREAD_ID"],provenance_environment_keys:{effort:["CODEX_REASONING_EFFORT","CODEX_EFFORT"],role:["CODEX_SESSION_ROLE"]},provenance_resolvers:{version:"ai_agent_version"},provenance_unavailable_dimensions:["topic"],argv_markers:["codex"],client_names:["codex"]},{harness:"pi",environment_keys:["PI_AGENT","PI_CODING_AGENT"],model_environment_keys:["PI_MODEL"],session_environment_keys:["PI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["pi"],client_names:["pi"]},{harness:"opencode",environment_keys:["OPENCODE","OPENCODE_SESSION_ID"],model_environment_keys:["OPENCODE_MODEL"],session_environment_keys:["OPENCODE_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["opencode"],client_names:["opencode"]},{harness:"cursor",environment_keys:["CURSOR_AGENT","CURSOR_TRACE_ID"],model_environment_keys:["CURSOR_MODEL"],session_environment_keys:["CURSOR_TRACE_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["cursor"],client_names:["cursor"]},{harness:"aider",environment_keys:["AIDER","AIDER_MODEL"],model_environment_keys:["AIDER_MODEL"],session_environment_keys:["AIDER_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["aider"],client_names:["aider"]},{harness:"gemini-cli",environment_keys:["GEMINI_CLI","GEMINI_CLI_HOME"],model_environment_keys:["GEMINI_MODEL"],session_environment_keys:["GEMINI_CLI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["gemini","gemini-cli"],client_names:["gemini","gemini-cli","gemini cli"]},{harness:"ci",environment_keys:["CI","GITHUB_ACTIONS","BUILDKITE","GITLAB_CI"],provenance_unavailable_dimensions:["model","effort","role","topic"],argv_markers:[],client_names:[]}],Me=new Map,Hn=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function P(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function Se(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function Lt(e){let t=e.harness.trim().toLowerCase();if(!Hn.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:Se(e.environment_keys),model_environment_keys:Se(e.model_environment_keys),session_environment_keys:Se(e.session_environment_keys),provenance_environment_keys:Object.fromEntries(Object.entries(e.provenance_environment_keys??{}).slice(0,32).map(([n,r])=>[n.trim().toLowerCase().slice(0,64),Se(r)]).filter(([n])=>Hn.test(n))),provenance_resolvers:Object.fromEntries(Object.entries(e.provenance_resolvers??{}).slice(0,32).map(([n,r])=>[n.trim().toLowerCase().slice(0,64),r]).filter(n=>typeof n[0]=="string"&&Hn.test(n[0])&&(n[1]==="ai_agent_version"||n[1]==="claude_session_file"))),provenance_unavailable_dimensions:Se(e.provenance_unavailable_dimensions).map(n=>n.toLowerCase()),argv_markers:Se(e.argv_markers).map(n=>n.toLowerCase()),client_names:Se(e.client_names).map(n=>n.toLowerCase())}}var No=da.map(Lt);function ua(e,t){return JSON.stringify(e)===JSON.stringify(t)}function Dt(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function Vn(e=[]){let t=[...No,...[...Me.values()].map(r=>r.descriptor),...Pt.getStore()?.descriptors??[],...e.map(Lt)],n=new Set;for(let r of t){if(n.has(r.harness))throw new Error(`Harness signal descriptor collision for "${r.harness}"`);n.add(r.harness)}return t}function qn(e,t){for(let n of t??[]){let r=P(e[n]);if(r)return r.slice(0,256)}}function la(e,t){if(t==="role"){let n=e.slice(0,8).map(r=>r.trim().toLowerCase()).find(r=>["claim","create","update","close","release","review"].includes(r));if(n==="review")return"reviewer";if(n)return"implementer"}}function Do(e,t){let n=t==="model"?["--model","--agent-model"]:[`--agent-${t}`],r=e.slice(0,8);for(let o=0;o<r.length;o+=1){let i=r[o].slice(0,512);if(n.includes(i))return P(r[o+1])?.slice(0,256);let s=n.find(a=>i.startsWith(`${a}=`));if(s)return P(i.slice(s.length+1))?.slice(0,256)}}var fa=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function Ie(e,t){if(e!=="role"||t===void 0)return t;let n=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return fa.has(n)?n:void 0}function Un(e,t){return P(e?.[t])?.slice(0,256)}var ma=1048576;function _a(e,t){if(e.length===0||e.length>262144)return;let n;try{n=JSON.parse(e)}catch{return}if(typeof n!="object"||n===null)return;let r=n,o=typeof r.message=="object"&&r.message!==null?r.message:void 0,i=t==="model"?o?.model:r.version;return P(i)?.slice(0,256)}function pa(e,t,n){let r=P(n.CLAUDE_CODE_SESSION_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let i=Ao.resolve(t.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),s=Ao.join(t.home_dir??ca.homedir(),".claude","projects",i,`${r}.jsonl`);try{let a=Nt.openSync(s,"r");try{let c=Nt.fstatSync(a).size,u=Math.min(c,ma),l=Buffer.alloc(u);Nt.readSync(a,l,0,u,Math.max(0,c-u));let f=l.toString("utf8").split(`
|
|
2
|
-
`).reverse();for(let _ of f.slice(0,4096)){let y=_a(_,e);if(y)return y}return}finally{Nt.closeSync(a)}}catch{return}}function ya(e,t,n,r){let o=Pt.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(P(n.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let s=r?.provenance_resolvers[e];if(s==="claude_session_file")return pa(e,t,n);if(s==="ai_agent_version"){let a=P(n.AI_AGENT);return!a||!r||!Dt(a,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(a)?.[1]?.slice(0,256)}}function ha(e,t,n){if(e==="ai_agent_version"){let r=P(n.AI_AGENT);return r!==void 0&&Dt(r,t.harness)}return P(n.CLAUDE_CODE_SESSION_ID)!==void 0}function Gn(e){return e||(Ro.getStore()??{env:process.env,argv:process.argv})}function ga(e,t,n,r){let o=e.environment_keys.some(a=>P(t[a])!==void 0),i=e.argv_markers.some(a=>n.some(c=>{let u=c.replaceAll("\\","/");return Dt(u.slice(u.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||Dt(r,a));return o||i||s}function ba(e,t){if(!t)return;let n;if(e==="topic"&&(n=t.topic),e==="role"&&(n=t.role),!!n)return{value:n,source:"inferred",confidence:t.confidence,rule_version:t.rule_version,evidence:t.evidence}}function wa(e){let t=e.find(([n])=>n!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function Ea(e,t,n,r,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...Bn,...Object.keys(r?.provenance_environment_keys??{})]),c,u,l;a.has(e)&&(c=Ie(e,P(n[s])?.slice(0,256)),l=Ie(e,Do(t.argv??[],e)),u=Ie(e,la(t.argv??[],e)));let f={...r?.provenance_environment_keys,model:r?.model_environment_keys},_={...t.client_info?.provenance,model:t.client_info?.model},y=Un(o?.provenance,e),g=Ie(e,qn(n,f[e])),E=Ie(e,Un(_,e)),k=Ie(e,Un(t.provenance,e)),A=ya(e,t,n,r);return wa([[c,"override"],[y,"session"],[l,"argv"],[g,"environment"],[E,"mcp_client"],[k,"host"],[A,"probe"]])??ba(e,i)??(u?{value:u,source:"argv"}:void 0)}function ka(e,t){if(!(!e||!t))return aa("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function va(e,t,n,r,o){let i=Object.keys(n?.provenance_environment_keys??{}),s=new Set([...Bn,...i,...Object.keys(n?.provenance_resolvers??{}),...Object.keys(e.provenance??{}),...Object.keys(e.client_info?.provenance??{}),...Object.keys(r?.provenance??{})]),a={};for(let c of s){let u=Ea(c,e,t,n,r,o);u?a[c]=u:n&&(c!=="version"||n.provenance_unavailable_dimensions.includes(c))&&(a[c]=null)}return a}function km(e){let t=e.map(Lt),n=new Map(No.map(i=>[i.harness,i])),r=new Set;for(let i of t){if(r.has(i.harness)||n.has(i.harness))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);let s=Me.get(i.harness);if(s&&!ua(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=Me.get(i.harness);Me.set(i.harness,{descriptor:i,registrations:(s?.registrations??0)+1})}let o=!0;return()=>{if(o){o=!1;for(let i of t){let s=Me.get(i.harness);!s||s.registrations<=1?Me.delete(i.harness):s.registrations-=1}}}}function vm(e,t){return Ro.run(e,t)}function Sm(e,t,n={}){let r=e.map(Lt);return Vn(r),Pt.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function Xn(e){let t=Gn(e),n=t.env??{},r=Vn(t.descriptors),o=[...(t.argv??[]).slice(0,3),...t.process_labels??[]].slice(0,64).map(g=>g.slice(0,512)),i=t.client_info?.name.trim().toLowerCase()??"",s=r.find(g=>ga(g,n,o,i)),a=Nn(t,n),c=[qn(n,s?.session_environment_keys),P(t.client_info?.session)?.slice(0,256)].find(g=>g!==void 0),u=ka(s?.harness,c),l=Oo({cwd:t.cwd??process.cwd(),env:n,key:u}),f=va(t,n,s,a,l),_=f.model,y=[["harness",s?.harness],["model",_?.value],["model_source",_?.source],["session",c],["instance",u],["provenance",Object.keys(f).length>0?f:void 0],["episode",a.episode]];return Object.fromEntries(y.filter(g=>g[1]!==void 0))}function Sa(e,t,n,r,o,i){let s=n?.provenance_resolvers[e];if(t.provenance?.[e])return{status:"resolved",...s?{resolver:s}:{},rule_version:"v1"};if(i)return{status:"unavailable",reason:"invalid_value",rule_version:"v1"};if(s){let a=ha(s,n,r);return{status:a&&o?"failed":"unavailable",reason:a?o?"resolver_failed":"probes_disabled":"harness_unavailable",resolver:s,rule_version:"v1"}}return{status:n?.provenance_unavailable_dimensions.includes(e)?"unavailable":"not_configured",reason:n?.provenance_unavailable_dimensions.includes(e)?"harness_unavailable":"resolver_not_configured",rule_version:"v1"}}function Mo(e){let t=Gn(e),n=Xn(t),r=Vn(t.descriptors).find(u=>u.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&Pt.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(P(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=Nn(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,qn(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,Do(t.argv??[],"role")].some(u=>{let l=P(u)?.slice(0,256);return l!==void 0&&Ie("role",l)===void 0}),c=Object.fromEntries(Bn.map(u=>[u,Sa(u,n,r,o,i,u==="role"&&a)]));return{...n,provenance_outcomes:c}}function Im(){return process.env.PM_AUTHOR}function xm(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function Tm(e){return Xn(e).harness}function Ia(e,t,n){let r=Gn(n),o=Xn(r);if(e!==void 0){let s=P(e);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}if(r.env?.PM_AUTHOR!==void 0){let s=P(r.env.PM_AUTHOR);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}let i=P(t);return i?{author:i,source:"configured",...o}:o.harness?{author:`harness:${o.harness}`,source:"detected",...o}:{author:"unknown",source:"unknown",...o}}function Po(e){let t=Mt.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function Lo(e){let t=Mt.getStore();return t?.author!==e?e.startsWith("harness:")?{harness:e.slice(8)}:{}:{...t.harness?{harness:t.harness}:{},...t.model?{model:t.model}:{},...t.model_source?{model_source:t.model_source}:{},...t.session?{session:t.session}:{},...t.instance?{instance:t.instance}:{},...t.provenance?{provenance:t.provenance}:{},...t.episode?{episode:t.episode}:{}}}function jo(e){let t=Mt.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function Fo(e,t){let n=Ia(e,t);return Mt.enterWith(n),n.author}import xa from"node:crypto";import{AsyncLocalStorage as Ta}from"node:async_hooks";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cc84ae55-6dc4-57d4-b7de-c43ae1fb4603")}catch{}})();var zo=new Ta,$o=1024;function Ho(){let e=zo.getStore();if(e===void 0)return;let t=new Date(Date.parse(e.clock)+e.clockReads*e.tickMs).toISOString();return e.clockReads+=1,t}function Uo(e){let t=zo.getStore();if(t===void 0)return;if(!Number.isSafeInteger(e)||e<0||e>$o)throw new Error(`Reproducible token length must be an integer between 0 and ${$o}`);let n="";for(;n.length<e;){let r=xa.createHash("sha256").update(`${t.seed}\0${t.tokenReads}`).digest();t.tokenReads+=1;for(let o of r)if(n+=(o%36).toString(36),n.length===e)break}return n}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7887e752-b1b8-5c5e-9dd8-93b41cb757af")}catch{}})();var Ca=/^([+-]?)(\d+)([hdwm])$/i,Oa=/^[+-]?\d+[hdwm](?:[+-]\d+[hdwm])+$/i,Aa=/^(\d{4})(\d{2})(\d{2})$/,Ra=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,Na=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})-(\d{2})(?:-(\d{2}))?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,Da=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,Ma=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/i;function xe(){return Ho()??new Date().toISOString()}function ue(e){return Number.isFinite(Date.parse(e))}function Bo(e){let t=Ma.exec(e);if(!t||!Number.isFinite(Date.parse(e)))return!1;let[,n,r,o,i,s,a,c,u]=t,[l,f,_,y,g,E]=[n,r,o,i,s,a].map(Number);return f>=1&&f<=12&&_>=1&&_<=Yn(l,f-1)&&y<=23&&g<=59&&E<=59&&(c===void 0||Number(c)<=23)&&(u===void 0||Number(u)<=59)}var Pa=1e4,jt=new Map;function Wo(e){let t=jt.get(e);if(t!==void 0)return t;let n=Date.parse(e);return jt.size>=Pa&&Ot(jt),jt.set(e,n),n}function $(e,t){let n=Wo(e),r=Wo(t);return Number.isFinite(n)&&Number.isFinite(r)&&n!==r?n-r:e.localeCompare(t)}function Lm(e,t){return!(t.deadlineBefore&&(!e.deadline||$(e.deadline,t.deadlineBefore)>0)||t.deadlineAfter&&(!e.deadline||$(e.deadline,t.deadlineAfter)<0)||t.updatedAfter&&$(e.updated_at,t.updatedAfter)<0||t.updatedBefore&&$(e.updated_at,t.updatedBefore)>0||t.createdAfter&&$(e.created_at,t.createdAfter)<0||t.createdBefore&&$(e.created_at,t.createdBefore)>0)}function Jn(e){return e?`.${e.slice(1).padEnd(3,"0").slice(0,3)}`:""}function Kn(e){if(!e)return"";if(e.toUpperCase()==="Z")return"Z";let t=/^([+-]\d{2})(\d{2})$/.exec(e);return t?`${t[1]}:${t[2]}`:e}function La(e,t,n){n&&n!==t&&(e.includes(n)||e.push(n))}function ja(e){let t=[],n=u=>La(t,e,u),r=Aa.exec(e);if(r){let[,u,l,f]=r;n(`${u}-${l}-${f}`)}let o=Ra.exec(e);if(o){let[,u,l,f,_,y,g,E,k]=o,A=g?`:${g}`:"";n(`${u}-${l}-${f}T${_}:${y}${A}${Jn(E)}${Kn(k)}`)}let i=Na.exec(e);if(i){let[,u,l,f,_,y,g]=i,E=_?`:${_}`:"";n(`${u}T${l}:${f}${E}${Jn(y)}${Kn(g)}`)}let s=Da.exec(e);if(s){let[,u,l,f,_,y,g]=s,E=_?`:${_}`:"";n(`${u}T${l}:${f}${E}${Jn(y)}${Kn(g)}`)}let a=10,c=e.slice(0,a);if($a(c)){let u=a;for(;u<e.length&&za(e[u]);)u+=1;u<e.length&&n(`${c}T${e.slice(u)}`)}return t}function Fa(e){let t=Date.parse(e);if(Number.isFinite(t))return t;for(let n of ja(e)){let r=Date.parse(n);if(Number.isFinite(r))return r}return Number.NaN}function $a(e){if(e.length!==10)return!1;for(let t=0;t<e.length;t+=1){let n=e[t];if(t===4||t===7){if(n!=="-")return!1;continue}let r=n.charCodeAt(0);if(r<48||r>57)return!1}return!0}function za(e){return e?e===" "||e===" "||e===`
|
|
3
|
-
`||e==="\r"||e==="\f"||e==="\v":!1}function Yn(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}var Ha=["January","February","March","April","May","June","July","August","September","October","November","December"],Ua=/^(\d{4})-(\d{2})-(\d{2})/,Wa=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/;function Ba(e,t,n){let r=Ua.exec(t)??Wa.exec(t);if(!r)return;let o=Number.parseInt(r[1],10),i=Number.parseInt(r[2],10),s=Number.parseInt(r[3],10),a=n?.trim()||"deadline";if(i<1||i>12)throw new x(`Invalid ${a} value "${e}". Month "${r[2]}" is out of range \u2014 use a month between 01 and 12.`,I.USAGE);let c=Yn(o,i-1);if(s<1||s>c)throw new x(`Invalid ${a} value "${e}". ${Ha[i-1]} ${o} has ${c} days, so day "${r[3]}" does not exist. Use a real YYYY-MM-DD calendar date.`,I.USAGE)}function Va(e,t){let n=new Date(e.getTime()),r=n.getUTCDate(),o=n.getUTCMonth()+t,i=n.getUTCFullYear()+Math.floor(o/12),s=(o%12+12)%12,a=Math.min(r,Yn(i,s));return n.setUTCFullYear(i,s,a),n}function jm(e,t=new Date,n="deadline"){let r=e.trim();if(r.toLowerCase()==="now")return t.toISOString();let o=Ca.exec(r);if(o){let s=o[1]==="-"?-1:1,a=Number.parseInt(o[2],10)*s,c=o[3].toLowerCase();if(c==="m")return Va(t,a).toISOString();let u=c==="h"?3600*1e3:c==="d"?1440*60*1e3:10080*60*1e3;return new Date(t.getTime()+a*u).toISOString()}Ba(e,r,n);let i=Fa(r);if(!Number.isFinite(i)){let s=n.trim().length>0?n.trim():"deadline",a=Oa.test(r)?"Compound relative expressions like +3d+1h are not supported; use a single relative token (for example +3d) or an ISO/date string.":'Use ISO/date string input, "now", or relative +6h/-6h/+1d/-1d/+2w/-2w/+6m/-6m.';throw new x(`Invalid ${s} value "${e}". ${a}`,I.USAGE)}return new Date(i).toISOString()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="77d3ebfa-789a-54cf-9d49-dbebab8d32ea")}catch{}})();var Pe=1,Vo=1;function $m(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=Pe?t:Pe}function qo(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=Pe))return e}function qa(e,t=Vo){return e<t?"outdated":e>t?"ahead":"current"}function zm(e,t=Vo){let n=[],r=[];for(let o of e){let i=qa(o.version,t);i==="outdated"?n.push(o.ref):i==="ahead"&&r.push(o.ref)}return{outdated:n.sort((o,i)=>o.localeCompare(i)),ahead:r.sort((o,i)=>o.localeCompare(i))}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="d7501aa2-d3d9-5fbe-a1c0-d4bc145f5563")}catch{}})();var Ga={"in-progress":"in_progress",cancelled:"canceled"};function Ft(e,t){if(t){let o=ko(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=Ga[n]??n;if(Et.includes(r))return r}function Xa(e,t){return Ft(e,t)??e}function Bm(e,t){return t.terminal_statuses.has(Xa(e,t))}import{encode as sc}from"@toon-format/toon";import{isDeepStrictEqual as Yo}from"node:util";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="91a3969e-59b3-506e-9349-ca08e73a1228")}catch{}})();var Ja=16;function Qn(e){let t=e.trim().replaceAll(/[^A-Za-z0-9]+/g," ").split(/\s+/).filter(o=>o.length>0).map(o=>o.toLowerCase());if(t.length===0)return e;let[n,...r]=t;return`${n}${r.map(o=>`${o.slice(0,1).toUpperCase()}${o.slice(1)}`).join("")}`}function Ka(e){return[...new Set([So(e),Qn(e.key),Qn(e.cli_flag),...e.cli_aliases.map(t=>Qn(t))])]}function Jo(e,t){for(let n of Ka(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function Ko(e){return Array.isArray(e)?e.flatMap(t=>Ko(t)).map(t=>t.trim()).filter(t=>t.length>0):typeof e=="string"?e.split(/[,\n|]/).map(t=>t.trim()).filter(t=>t.length>0):e==null?[]:[String(e).trim()].filter(t=>t.length>0)}function Go(e,t){if(typeof e=="boolean")return e;if(typeof e=="number"){if(e===1)return!0;if(e===0)return!1}if(typeof e=="string"){let n=e.trim().toLowerCase();if(n==="true"||n==="1"||n==="yes")return!0;if(n==="false"||n==="0"||n==="no")return!1}throw new x(`${t} must be one of true|false|1|0|yes|no`,I.USAGE)}function Xo(e,t){if(typeof e=="number"&&Number.isFinite(e))return e;let n=typeof e=="string"?e.trim():String(e),r=Number(n);if(!Number.isFinite(r))throw new x(`${t} must be a number`,I.USAGE);return r}function Ya(e,t,n){let r=typeof e=="string"?(()=>{try{return JSON.parse(e)}catch{return}})():e;if(n==="array"&&Array.isArray(r)||n==="object"&&typeof r=="object"&&r!==null&&!Array.isArray(r))return r;throw new x(`${t} must be valid JSON ${n}`,I.USAGE)}function Qa(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 Za(e,t,n){if(t.const!==void 0&&D(e)!==D(t.const))return`${n} must equal ${D(t.const)}`;if(t.enum!==void 0&&!t.enum.some(r=>D(r)===D(e)))return`${n} must be one of ${t.enum.map(r=>D(r)).join("|")}`;if(!Qa(e,t.type))return`${n} must match configured type ${String(t.type)}`;if(typeof e=="string"){if(t.min_length!==void 0&&e.length<t.min_length)return`${n} must contain at least ${t.min_length} characters`;if(t.format==="date-time"&&!Bo(e))return`${n} must be an RFC 3339 date-time`}}function ec(e,t,n,r){if(Array.isArray(e)){if(t.min_items!==void 0&&e.length<t.min_items)return`${n} must contain at least ${t.min_items} items`;if(t.items)for(let[o,i]of e.entries()){let s=$t(i,t.items,`${n}[${o}]`,r+1);if(s)return s}}}function tc(e,t,n,r){if(typeof e!="object"||e===null||Array.isArray(e))return;let o=e;for(let i of t.required??[])if(!Object.hasOwn(o,i))return`${n}.${i} is required`;for(let[i,s]of Object.entries(o)){let a=t.properties?.[i];if(!a){if(t.additional_properties===!1)return`${n}.${i} is not allowed`;continue}let c=$t(s,a,`${n}.${i}`,r+1);if(c)return c}}function $t(e,t,n,r=0){if(r>Ja)return`${n} value schema exceeds maximum depth`;let o=Za(e,t,n);if(o)return o;let i=ec(e,t,n,r);if(i)return i;let s=tc(e,t,n,r);if(s)return s;if(!t.one_of)return;let a=0;for(let c of t.one_of)if($t(e,c,n,r+1)===void 0&&(a+=1,a>1))break;return a===1?void 0:`${n} must match exactly one configured schema variant`}function Te(e,t,n){if(!e.value_schema||t===void 0)return t;let r=$t(t,e.value_schema,n);if(r)throw new x(r,I.USAGE);return t}function tt(e,t,n){let r=n??`--${e.cli_flag}`;if(e.type==="array"||e.type==="object"){let i=Array.isArray(t)?t[t.length-1]:t;return i===void 0?void 0:Te(e,Ya(i,r,e.type),r)}if(e.repeatable||e.type==="string_array"){let i=Ko(t);return e.type==="number"?Te(e,i.map(s=>Xo(s,r)),r):e.type==="boolean"?Te(e,i.map(s=>Go(s,r)),r):Te(e,i,r)}let o=Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return e.type==="number"?Te(e,Xo(o,r),r):e.type==="boolean"?Te(e,Go(o,r),r):Te(e,typeof o=="string"?o:String(o),r)}function nc(e,t){return!e.required&&!e.required_on_create?!1:e.required_types.length===0?!0:t?e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function Ym(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=Jo(e,i);if(s===void 0){nc(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=tt(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function Qm(e,t,n=["update"]){let r={},o=(n??["update"]).flatMap(s=>t.command_to_fields.get(s)??[]),i=new Set;for(let s of o){let a=Jo(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=tt(s,a)))}return r}import{decode as rc}from"@toon-format/toon";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2840e12e-7444-5d36-9f54-5a56267bbb75")}catch{}})();function Zn(e){return{value:rc(e),usedScalarBracketEscape:!1}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="fedb7b50-6946-589d-b240-9f074e09e467")}catch{}})();var oc=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function ic(e){if(e.length===0)return[];let t=e.split(/\r?\n/),n=[];for(let r=0;r<t.length;r+=1){let o=t[r]??"",i=o.match(oc);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function zt(e){return ic(e)[0]}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="eaf0e260-a864-57cf-b23b-aac4f9151d8e")}catch{}})();var ac=new Set(["schema","tracker","auto"]),cc=new Set(["passed","failed","stopped","canceled"]),dc=new Set(no);function Fe(e){return e.replaceAll("\\","/")}function ei(e){for(let t of e)if(t!==0)return t;return 0}function Ht(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var ti=["id","title","description","created_at","updated_at"],uc=new Set(ce);function ni(e){if(e?.schema)return{statusRegistry:Eo(e.schema),fieldRegistry:vo(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function lc(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function le(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new x(`Invalid item metadata: ${e}`,I.GENERIC_FAILURE,{code:"item_document_invalid",reason:e.includes("required")?"missing_required_field":"schema_validation_error",...t?{field:t}:{},required:"Provide an item document whose metadata satisfies the active runtime schema.",why:e})}function ot(e,t){throw new x(t,I.GENERIC_FAILURE,{code:"item_document_invalid",reason:"syntax_error",format:e,required:`Provide a syntactically valid ${e==="toon"?"TOON":"JSON Markdown"} item document.`,why:"The document could not be decoded far enough to validate item metadata."})}function ri(e){let t=new Set(uc);for(let n of e.fieldRegistry?.definitions??[])t.add(n.metadata_key);for(let n of e.extensionFieldNames)t.add(n);return t}function w(e,t){e||le(t)}function it(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&le(t),e}function er(e,t){let n=e[t];w(typeof n=="string",`${t} must be a string`),w(ue(n),`${t} must be a valid ISO timestamp`)}function Qo(e,t,n){let r=e[t];r!==void 0&&w(typeof r=="number"&&Number.isInteger(r)&&r>=1,`${n} must be an integer >= 1`)}function rr(e,t,n){let r=e[t];r!==void 0&&(w(typeof r=="string",`${n} must be a string`),w(ue(r),`${n} must be a valid ISO timestamp`))}function fc(e){if(e!==void 0){w(Array.isArray(e),"event.recurrence.by_weekday must be an array");for(let t of e){w(typeof t=="string","event.recurrence.by_weekday entries must be strings");let n=t.trim().toLowerCase();w(It.includes(n),`event.recurrence.by_weekday entries must be one of: ${It.join(", ")}`)}}}function mc(e){if(e!==void 0){w(Array.isArray(e),"event.recurrence.by_month_day must be an array");for(let t of e)w(typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=31,"event.recurrence.by_month_day entries must be integers 1..31")}}function _c(e){if(e!==void 0){w(Array.isArray(e),"event.recurrence.exdates must be an array");for(let t of e)w(typeof t=="string","event.recurrence.exdates entries must be strings"),w(ue(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function pc(e){let t=it(e,"event.recurrence must be an object");w(typeof t.freq=="string","event.recurrence.freq must be a string");let n=t.freq.trim().toLowerCase();w(St.includes(n),`event.recurrence.freq must be one of: ${St.join(", ")}`),Qo(t,"interval","event.recurrence.interval"),Qo(t,"count","event.recurrence.count"),rr(t,"until","event.recurrence.until"),fc(t.by_weekday),mc(t.by_month_day),_c(t.exdates)}function yc(e){for(let r of ti)w(typeof e[r]=="string",`${r} is required and must be a string`);let t=e.type;w(typeof t=="string"&&t.trim().length>0,"type must be a non-empty string");let n=e.pm_format_version;return n!==void 0&&w(typeof n=="number"&&Number.isInteger(n)&&n>=Pe,`pm_format_version must be an integer >= ${Pe}`),t}function hc(e,t){let n=e.status;w(typeof n=="string"&&n.trim().length>0,"status must be a non-empty string");let r=t?.statusRegistry,o=Ft(n,r),i=r?r.definitions.map(s=>s.id):[...Et];w(o!==void 0,`status must be one of: ${i.join(", ")}`)}function gc(e){let t=e.priority;w(typeof t=="number"&&Number.isInteger(t)&&[0,1,2,3,4].includes(t),"priority must be an integer 0..4");let n=e.tags;w(Array.isArray(n),"tags must be an array");for(let r of n)w(typeof r=="string","tags entries must be strings")}function bc(e){let t=e.confidence;if(t!==void 0){if(typeof t=="number"){w(Number.isInteger(t)&&t>=0&&t<=100,"confidence number value must be an integer 0..100");return}if(typeof t=="string"){let n=t.trim().toLowerCase(),r=n==="med"||vt.includes(n);w(r,`confidence string value must be one of: ${[...vt,"med"].join(", ")}`);return}w(!1,"confidence must be a number or string")}}function wc(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&le("severity must be a string");let n=t.trim().toLowerCase(),r=n==="med"||kt.includes(n);w(r,`severity value must be one of: ${[...kt,"med"].join(", ")}`)}function Ec(e){e.regression!==void 0&&typeof e.regression!="boolean"&&le("regression must be a boolean")}function kc(e){let t=e.reminders;if(t!==void 0){w(Array.isArray(t),"reminders must be an array");for(let n of t){let r=it(n,"reminders entries must be objects");w(typeof r.at=="string","reminder.at must be a string"),w(ue(r.at),"reminder.at must be a valid ISO timestamp"),w(typeof r.text=="string","reminder.text must be a string"),w(r.text.trim().length>0,"reminder.text must not be empty")}}}function vc(e){for(let t of["title","description","location","timezone"])e[t]!==void 0&&(w(typeof e[t]=="string",`event.${t} must be a string`),w(e[t].trim().length>0,`event.${t} must not be empty`))}function Sc(e){e.recurrence!==void 0&&(pc(e.recurrence),e.recurrence.until!==void 0&&w($(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function Ic(e){let t=it(e,"events entries must be objects");w(typeof t.start_at=="string","event.start_at must be a string"),w(ue(t.start_at),"event.start_at must be a valid ISO timestamp"),t.end_at!==void 0&&(w(typeof t.end_at=="string","event.end_at must be a string"),w(ue(t.end_at),"event.end_at must be a valid ISO timestamp"),w($(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),vc(t),t.all_day!==void 0&&w(typeof t.all_day=="boolean","event.all_day must be a boolean"),Sc(t)}function xc(e){let t=e.events;if(t!==void 0){w(Array.isArray(t),"events must be an array");for(let n of t)Ic(n)}}function Tc(e){for(let t of["source_type","source_owner","design","external_ref"]){let n=e[t];n!==void 0&&w(typeof n=="string",`${t} must be a string`)}}function Cc(e){let t=e.type_options;if(t===void 0)return;let n=it(t,"type_options must be an object");for(let[r,o]of Object.entries(n))w(r.trim().length>0,"type_options keys must be non-empty"),w(typeof o=="string","type_options values must be strings"),w(o.trim().length>0,"type_options values must be non-empty strings")}function Oc(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){lc(r,t)&&le(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=tt(r,o,`metadata field "${r.metadata_key}"`)}catch(i){le(String(i?.message).replace(/^Invalid\s+/u,""))}}}function Ac(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=ri(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length!==0&&(t.unknownFieldPolicy==="reject"?le(`unknown schema fields are not allowed: ${r.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`))}function or(e,t){let n=it(e,"item metadata must be an object"),r=yc(n);hc(n,t),gc(n),bc(n),wc(n),Ec(n),er(n,"created_at"),er(n,"updated_at"),n.deadline!==void 0&&er(n,"deadline"),kc(n),xc(n),rr(n,"closed_at","closed_at"),rr(n,"completed_at","completed_at"),Tc(n),Cc(n),Oc(n,r,t),Ac(n,t)}function Rc(e){if(!(!e||e.length===0))return[...e].map(t=>({id:t.id.trim().toLowerCase(),kind:t.kind,created_at:t.created_at,author:t.author?.trim()||void 0,source_kind:t.source_kind?.trim()||void 0,author_source:t.author_source})).sort((t,n)=>{let r=$(t.created_at,n.created_at);if(r!==0)return r;let o=t.id.localeCompare(n.id);if(o!==0)return o;let i=t.kind.localeCompare(n.kind);return i!==0?i:(t.source_kind??"").localeCompare(n.source_kind??"")})}function tr(e){if(!(!e||e.length===0))return[...e].sort((t,n)=>{let r=$(t.created_at,n.created_at);if(r!==0)return r;let o=t.text.localeCompare(n.text);return o!==0?o:t.author.localeCompare(n.author)})}function Nc(e){if(!e||e.length===0)return;let t=[...e].map(n=>({at:n.at,text:n.text.trim()})).filter(n=>n.text.length>0).sort((n,r)=>{let o=$(n.at,r.at);return o!==0?o:n.text.localeCompare(r.text)});return t.length===0?void 0:t}function Dc(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!St.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>It.includes(s)))).sort((s,a)=>Tn(s)-Tn(a)),r=Array.from(new Set((e.by_month_day??[]).filter(s=>Number.isInteger(s)&&s>=1&&s<=31).map(s=>s))).sort((s,a)=>s-a),o=Array.from(new Set((e.exdates??[]).map(s=>s.trim()).filter(s=>ue(s)))).sort((s,a)=>$(s,a)),i={freq:t,interval:e.interval!==void 0&&e.interval>1?e.interval:void 0,count:e.count,until:e.until?.trim()||void 0,by_weekday:n.length>0?n:void 0,by_month_day:r.length>0?r:void 0,exdates:o.length>0?o:void 0};for(let[s,a]of Object.entries(i))a===void 0&&delete i[s];return i}function Mc(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(Pc).sort(Lc)}function Pc(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:Dc(e.recurrence)};return Ht(t),t}function Lc(e,t){return ei([$(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 jc(e){if(!(!e||e.length===0))return e.map(t=>({path:Fe(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function Fc(e){if(!e||e.length===0)return;let t=e.map(Hc).filter(n=>n.run_id.length>0&&n.started_at.length>0&&n.finished_at.length>0&&n.recorded_at.length>0).sort((n,r)=>ei([$(n.recorded_at,r.recorded_at),n.run_id.localeCompare(r.run_id),n.kind.localeCompare(r.kind)]));return t.length>0?t:void 0}function Le(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function $c(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function nr(e){return typeof e=="string"?e:""}function zc(e){if(!Array.isArray(e))return;let t=e.filter(r=>r!==null&&typeof r=="object"&&typeof r.name=="string"&&r.name.trim().length>0&&typeof r.value=="number"&&Number.isFinite(r.value)&&typeof r.recorded_at=="string"&&r.recorded_at.trim().length>0).map(r=>({name:r.name.trim(),value:r.value,unit:typeof r.unit=="string"&&r.unit.trim()||void 0,threshold:typeof r.threshold=="number"&&Number.isFinite(r.threshold)?r.threshold:void 0,recorded_at:r.recorded_at.trim()})),n=[...new Map(t.map(r=>[r.name,r])).values()].sort((r,o)=>r.name.localeCompare(o.name)).slice(0,32);return n.length>0?n:void 0}function Hc(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=cc.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:nr(e.started_at),finished_at:nr(e.finished_at),recorded_at:nr(e.recorded_at),attempt:$c(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:Le(e.passed)??0,failed:Le(e.failed)??0,skipped:Le(e.skipped)??0,items:Le(e.items),linked_tests:Le(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:zc(e.measurements)};return Ht(o),o}function Uc(e){if(!(!Array.isArray(e)||e.length===0))return e.map(Vc)}function nt(e){if(!Array.isArray(e))return;let t=[...new Set(e.filter(n=>typeof n=="string").map(n=>n.trim()).filter(n=>n.length>0))].sort((n,r)=>n.localeCompare(r));return t.length>0?t:void 0}function oi(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function sr(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function Zo(e){if(!oi(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!sr(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Wc(e){if(!oi(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!sr(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Bc(e){let t=e?.trim().toLowerCase();if(!(!t||!ac.has(t)))return t}function Vc(e){let t={command:e.command?.trim()||void 0,path:e.path?Fe(e.path):void 0,scope:e.scope,timeout_seconds:typeof e.timeout_seconds=="number"&&Number.isFinite(e.timeout_seconds)&&e.timeout_seconds>0?e.timeout_seconds:void 0,pm_context_mode:Bc(e.pm_context_mode),env_set:Zo(e.env_set),env_clear:nt(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:nt(e.assert_stdout_contains),assert_stdout_regex:nt(e.assert_stdout_regex),assert_stderr_contains:nt(e.assert_stderr_contains),assert_stderr_regex:nt(e.assert_stderr_regex),assert_stdout_min_lines:Le(e.assert_stdout_min_lines),assert_json_field_equals:Zo(e.assert_json_field_equals),assert_json_field_gte:Wc(e.assert_json_field_gte),note:e.note?.trim()||void 0};return Ht(t),t}function qc(e){if(!(!e||e.length===0))return[...e].map(t=>({path:Fe(t.path),scope:t.scope,note:t.note?.trim()||void 0})).sort((t,n)=>{let r=t.scope.localeCompare(n.scope);if(r!==0)return r;let o=t.path.localeCompare(n.path);return o!==0?o:(t.note??"").localeCompare(n.note??"")})}function h(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function Gc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=h(r.id),i=h(r.kind);if(!o||!i)continue;let s={id:o,kind:i},a=h(r.note);a&&(s.note=a),r.required_before_step===!0&&(s.required_before_step=!0),t.push(s)}return t.length>0?t:void 0}function Xc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=h(r.path);if(!o)continue;let i={path:Fe(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=h(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Jc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=h(r.command),i=h(r.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=Fe(i));let a=h(r.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function Kc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=h(r.path);if(!o)continue;let i={path:Fe(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=h(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Yc(e){if(e===null||typeof e!="object")return;let t=e,n=h(t.id),r=h(t.title),o=h(t.status),i=o&&dc.has(o)?o:void 0,s=lo(t.order)??Number.NaN,a=typeof t.created_at=="string"?t.created_at:"",c=typeof t.updated_at=="string"?t.updated_at:"";if(!n||!r||!i||!Number.isFinite(s)||!a||!c)return;let u={id:n,order:s,title:r,status:i,created_at:a,updated_at:c};return Qc(u,t),u}function Qc(e,t){let n=[["body","body"],["owner","owner"],["evidence","evidence"],["blocked_reason","blocked_reason"],["superseded_by","superseded_by"]];for(let[i,s]of n){let a=h(t[s]);a&&(e[i]=a)}let r=typeof t.completed_at=="string"?t.completed_at:void 0;r&&r.length>0&&(e.completed_at=r);let o=[["linked_items","linked_items",Gc],["files","files",Xc],["tests","tests",Jc],["docs","docs",Kc]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function Zc(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=Yc(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function ed(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=typeof r.ts=="string"?r.ts:"",i=typeof r.author=="string"?r.author:"",s=h(r.decision);if(!o||!i||!s)continue;let a={ts:o,author:i,decision:s},c=h(r.rationale);c&&(a.rationale=c);let u=h(r.evidence);u&&(a.evidence=u);let l=h(r.step_id);l&&(a.step_id=l),t.push(a)}return t.length>0?t:void 0}function td(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=typeof r.ts=="string"?r.ts:"",i=typeof r.author=="string"?r.author:"",s=h(r.text);if(!o||!i||!s)continue;let a={ts:o,author:i,text:s},c=h(r.step_id);c&&(a.step_id=c),t.push(a)}return t.length>0?t:void 0}function nd(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=h(r.text);if(!o)continue;let i={text:o},s=h(r.command);s&&(i.command=s);let a=h(r.expected);a&&(i.expected=a),t.push(i)}return t.length>0?t:void 0}function rd(e){if(!e)return;let t=Object.entries(e).map(([n,r])=>[n.trim(),r.trim()]).filter(([n,r])=>n.length>0&&r.length>0).sort((n,r)=>n[0].localeCompare(r[0]));if(t.length!==0)return Object.fromEntries(t)}function je(e){let t=0;for(;t<e.length&&e[t]===`
|
|
4
|
-
`;)t+=1;return e.slice(t).trimEnd()}function od(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(vt.includes(t))return t}function id(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(kt.includes(t))return t}function rt(e){return e||void 0}function sd(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))sr(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function ad(e,t){if(!t?.fieldRegistry)return;let n=e;for(let r of t.fieldRegistry.definitions){let o=n[r.metadata_key];o!==void 0&&(n[r.metadata_key]=tt(r,o,`metadata field "${r.metadata_key}"`))}}function cd(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=ri(t),o=Object.keys(e).filter(i=>!n.has(i)).sort((i,s)=>i.localeCompare(s));o.length>0&&t.unknownFieldPolicy==="reject"&&le(`unknown schema fields are not allowed: ${o.join(", ")}`),o.length>0&&t.onWarning?.(`item_unknown_schema_fields:${o.join(",")}`)}function Ut(e,t={}){let n=ni(t),r=Ft(e.status,n?.statusRegistry)??e.status,o=Array.from(new Set((Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string").map(s=>s.trim().toLowerCase()).filter(Boolean))).sort((s,a)=>s.localeCompare(a)),i={id:e.id,title:e.title,description:e.description,type:e.type,pm_format_version:qo(e.pm_format_version),source_type:h(e.source_type),type_options:rd(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:Rc(e.dependencies),comments:tr(e.comments),notes:tr(e.notes),learnings:tr(e.learnings),files:jc(e.files),tests:Uc(e.tests),test_runs:Fc(e.test_runs),docs:qc(e.docs),deadline:rt(e.deadline),reminders:Nc(e.reminders),events:Mc(e.events),closed_at:rt(e.closed_at),completed_at:rt(e.completed_at),assignee:h(e.assignee),claim_principal:h(e.claim_principal),source_owner:h(e.source_owner),author:rt(e.author),estimated_minutes:e.estimated_minutes,acceptance_criteria:e.acceptance_criteria??void 0,design:e.design??void 0,external_ref:e.external_ref??void 0,definition_of_ready:h(e.definition_of_ready),order:e.order,goal:h(e.goal),objective:h(e.objective),value:h(e.value),impact:h(e.impact),outcome:h(e.outcome),why_now:h(e.why_now),parent:h(e.parent),reviewer:h(e.reviewer),risk:e.risk??void 0,confidence:od(e.confidence),sprint:h(e.sprint),release:h(e.release),blocked_by:h(e.blocked_by),blocked_reason:h(e.blocked_reason),unblock_note:h(e.unblock_note),reporter:h(e.reporter),severity:id(e.severity),environment:h(e.environment),repro_steps:h(e.repro_steps),resolution:h(e.resolution),expected_result:h(e.expected_result),actual_result:h(e.actual_result),affected_version:h(e.affected_version),fixed_version:h(e.fixed_version),component:h(e.component),regression:e.regression,customer_impact:h(e.customer_impact),close_reason:rt(e.close_reason),plan_mode:h(e.plan_mode),plan_scope:h(e.plan_scope),plan_harness:h(e.plan_harness),plan_resume_context:h(e.plan_resume_context),plan_steps:Zc(e.plan_steps),plan_decisions:ed(e.plan_decisions),plan_discoveries:td(e.plan_discoveries),plan_validation:nd(e.plan_validation)};return sd(i,e),ad(i,n),cd(i,n),Ht(i),i}function ii(e){return v(e,ce)}function dd(e){let t=0,n=!1,r=!1;for(let o=0;o<e.length;o+=1){let i=e[o];if(n){if(r){r=!1;continue}if(i==="\\"){r=!0;continue}i==='"'&&(n=!1);continue}if(i==='"'){n=!0;continue}if(i==="{"){t+=1;continue}if(i==="}"&&(t-=1,t===0))return o}return-1}function ud(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=dd(e);if(t<0)return{frontMatter:"",body:e};let n=e.slice(0,t+1),r=e.slice(t+1).replace(/^\r?\n+/,"");return{frontMatter:n,body:r}}function ld(e){let t=e.charCodeAt(0)===65279?e.slice(1):e,n=t.match(/^[ \t]*---[ \t]*(?:\r?\n|$)/);if(!n)return{content:t,stripped:!1};let r=n[0].length;for(;r<t.length;){let o=t.indexOf(`
|
|
5
|
-
`,r),i=o===-1?t.length:o,s=t.slice(r,i).replace(/\r$/,""),a=o===-1?i:i+1;if(s.trim()==="---")return{content:t.slice(a).replace(/^\s+/,""),stripped:!0};r=a}return{content:t,stripped:!1}}function ir(e,t){return Ut(e,{...t,onWarning:void 0})}function fd(e,t,n={}){let r=ld(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=ud(r.content);o||(e.trimStart().startsWith("{")&&ot("json_markdown","JSON front matter is not valid JSON"),ot("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{ot("json_markdown","JSON front matter is not valid JSON")}return or(s,t),{metadata:ir(s,n),body:je(i)}}function md(e,t,n={}){let r;try{r=Zn(e).value}catch{ot("toon","TOON item document is not valid TOON")}w(typeof r=="object"&&r!==null&&!Array.isArray(r),"TOON item document must be an object");let o=r;if(!ti.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&ot("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return or(o.front_matter,t),w(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:ir(o.front_matter,n),body:je(typeof o.body=="string"?o.body:"")};let{body:i,...s}=o;return w(i===void 0||typeof i=="string","TOON item document body must be a string"),or(s,t),{metadata:ir(s,n),body:je(typeof i=="string"?i:"")}}function _d(e,t={}){let n=Ut(e.metadata,t),r=ii(n),o=JSON.stringify(r,null,2),i=je(e.body??"");return i?`${o}
|
|
6
|
-
|
|
7
|
-
${i}
|
|
8
|
-
`:`${o}
|
|
9
|
-
`}function pd(e,t={}){let n=Ut(e.metadata,t),r=ii(n),o=je(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i)),a=sc(s),c;try{c=Zn(a).value}catch(u){throw new x("Refusing to persist a TOON item document that the configured decoder cannot read back.",I.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:u instanceof Error?u.message:String(u)})}if(!Yo(c,s)){let u=typeof c=="object"&&c!==null&&!Array.isArray(c)?c:{},l=Object.keys(s).find(f=>!Yo(s[f],u[f]))??"document";throw new x(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${l}".`,I.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_mismatch",format:"toon",field:l,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}
|
|
10
|
-
`}function Wt(e,t={}){let n=zt(e);if(n)throw new x(`Merge conflict markers detected in item document at line ${n.line} (${n.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,I.GENERIC_FAILURE,{code:"merge_conflict_markers_detected",reason:"merge_conflict",required:"Resolve merge-conflict markers in the item file before parsing or mutation commands.",why:"Partially merged documents can corrupt item metadata and history integrity.",examples:["git status","git add <resolved-file> && git commit"],nextSteps:["Resolve conflicts, save the file, then rerun the pm command."]});let r=t.format??"toon",o=ni(t);return r==="toon"?md(e,o,t):fd(e,o,t)}function si(e,t={}){return(t.format??"toon")==="toon"?pd(e,t):_d(e,t)}function G(e,t={}){return{metadata:Ut(e.metadata,t),body:je(e.body??"")}}import{existsSync as hd}from"node:fs";import{AsyncLocalStorage as gd}from"node:async_hooks";import ee 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]="bd9832a9-f6a2-5351-a929-0a0d2766df88")}catch{}})();(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]="3239b2c7-3ae3-5d4e-9005-b61000362304")}catch{}})();function E_(){let e=Promise.resolve(),t=new Set;return{async read(n){let r=e,o,i=new Promise(s=>{o=s});t.add(i),await r;try{return await n()}finally{t.delete(i),o()}},write(n){let o=Promise.all([e,...t]).then(()=>n());return e=o.then(()=>{},()=>{}),o}}}function yd(){let e=Promise.resolve(),t=0,n=[],r=()=>{if(t!==0)return;let o=n.splice(0);for(let i of o)i()};return{enqueue(o){t++;let i=e.then(()=>o());return e=i.then(()=>{},()=>{}).finally(()=>{t--,r()}),i},idle(){return t===0?Promise.resolve():new Promise(o=>n.push(o))}}}(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]="38024e6c-c1ef-5c15-8421-ac18d317e330")}catch{}})();var $e=null,ci=null,bd=null,wd=null,ar=null,Ed=null,di=null,kd=null;var vd=[],ui=new gd;function L(){return ui.getStore()}function M_(e){return ui.run({hooks:null,commands:null,parsers:null,preflight:null,services:null,renderers:null,registrations:null,commandContext:null,commandResult:void 0,affectedItems:[]},e)}var Sd=new Set(["body","comments","dependencies","docs","events","files","learnings","notes","reminders","test_runs","tests"]);function ai(e){let t=ee.resolve(e);for(;;){if(hd(ee.join(t,".git")))return t;let n=ee.dirname(t);if(n===t)return;t=n}}function Id(e){let t=process.env.PM_SOURCE_WORKSPACE_ROOT?.trim()||process.cwd(),n=ai(t)??ee.resolve(t),r=ai(n);if(!e)return{source_workspace_root:n,...r?{repo_root:r}:{}};let o=ee.relative(n,ee.resolve(e)),i=o.length>0&&!o.startsWith(`..${ee.sep}`)&&o!==".."&&!ee.isAbsolute(o);return{source_workspace_root:n,...r?{repo_root:r}:{},...i?{pm_root_rel:o.split(ee.sep).join("/")}:{}}}function P_(e){let t=L();if(t){t.hooks=e;return}$e=e}function L_(e){let t=L();if(t){t.commands=e;return}ci=e}function j_(e){let t=L();if(t){t.parsers=e;return}bd=e}function F_(e){let t=L();if(t){t.preflight=e;return}wd=e}function $_(e){let t=L();if(t){t.services=e;return}ar=e}function z_(e){let t=L();if(t){t.renderers=e;return}Ed=e}function H_(e){let t=L();if(t){t.registrations=e;return}di=e}function st(){let e=L();return e?e.registrations:di}function cr(e){if(!e)return;let t=L();t?t.affectedItems.push(e):vd.push(e)}function Bt(e,t){if(!e||!e.id)return{};let n={id:e.id,type:e.type,status:e.status};if(!Array.isArray(t))return n;let r=e;for(let o of t){if(typeof o!="string")continue;let i=o.startsWith("unset:")?o.slice(6):o;i==="id"||i==="type"||i==="status"||Sd.has(i)||Object.hasOwn(r,i)&&r[i]!==void 0&&(n[i]=r[i])}return n}async function X(e){let t=L(),n=t?t.hooks:$e;return n?mo(n,e):[]}async function dr(e){let t=L(),n=t?t.hooks:$e;n&&await fo(n,e)}async function Y(e){let t=L(),n=t?t.hooks:$e;return n?_o(n,e):[]}function ur(){let e=L();return((e?e.hooks:$e)?.onRead?.length??0)>0}async function U_(e){let t=L(),n=t?t.hooks:$e;return n?po(n,e):[]}async function W_(e){let t=L(),n=t?t.commands:ci;return n?yo(n,{...e,...Id(e.pm_root)}):{handled:!1,result:null,warnings:[]}}function li(e,t){let n=L(),r=n?n.commandContext:kd;return{service:e,command:r?.command,args:r?[...r.args]:[],options:r?.options?{...r.options}:{},global:r?.global?{...r.global}:void 0,pm_root:r?.pm_root,source_workspace_root:r?.source_workspace_root,repo_root:r?.repo_root,pm_root_rel:r?.pm_root_rel,payload:t}}async function te(e,t){let n=L(),r=n?n.services:ar;return r?go(r,li(e,t)):{handled:!1,result:t,warnings:[]}}function fi(e,t){let n=L(),r=n?n.services:ar;return r?ho(r,li(e,t)):{handled:!1,result:t,warnings:[]}}(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]="aa65b74d-ef5d-57ed-b613-3034da52a8ba")}catch{}})();async function ze(e,t){let n=await de(e);if(n===null)return[];if(await Y({path:e,scope:"project"}),n.trim()==="")return[];let r=zt(n);if(r)throw new x(`History for ${t} contains merge conflict markers at line ${r.line} (${r.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,I.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 o=[];for(let[i,s]of n.split(/\r?\n/).entries()){let a=s.trim();if(a)try{o.push(JSON.parse(a))}catch{throw new x(`History for ${t} contains invalid JSON at line ${i+1}. Repair or restore the history stream and retry.`,I.GENERIC_FAILURE)}}return o}import kr 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]="4d71277c-e16c-56f4-a834-5200acfa6d7a")}catch{}})();import Ni from"fast-json-patch";import ne from"node:fs/promises";import re from"node:path";import{randomUUID as xd}from"node:crypto";import{createRequire as Td}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]="a84b308f-7eef-535c-9531-b33b0775c651")}catch{}})();var Cd="history-event-index.sqlite",lr="2",Od=8,Ce=new Map;function Xt(e){return re.join(e,"runtime",Cd)}async function mi(e){let t=re.join(e,"history"),n=await ne.readdir(t,{withFileTypes:!0}).catch(s=>{if(typeof s=="object"&&s!==null&&"code"in s&&s.code==="ENOENT")return[];throw s}),r=Ce.get(e)??{streams:new Map,ordered_events:[]},o=new Set,i=!Ce.has(e);for(let s of n.filter(a=>a.isFile()&&a.name.endsWith(".jsonl")).sort((a,c)=>a.name.localeCompare(c.name))){let a=s.name.slice(0,-6);o.add(a);let c=re.join(t,s.name),u=await ne.stat(c,{bigint:!0}),l=[u.dev,u.ino,u.size,u.mtimeNs,u.ctimeNs].join(":");if(r.streams.get(a)?.signature===l)continue;let f=await ze(c,a);r.streams.set(a,{signature:l,events:f.map((_,y)=>({stream_id:a,stream_offset:y,entry:_}))}),i=!0}for(let s of r.streams.keys())o.has(s)||(r.streams.delete(s),i=!0);if(i&&(r.ordered_events=[...r.streams.values()].flatMap(s=>s.events).sort(pi)),Ce.delete(e),Ce.set(e,r),Ce.size>Od){let s=Ce.keys().next().value;Ce.delete(s)}return r.ordered_events}function Ad(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}function Rd(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?Ad(t):null}var Vt;function fr(){return Vt!==void 0||(Vt=Rd(process.versions.node,Td(import.meta.url))),Vt}function Nd(e){e.exec(`
|
|
11
|
-
PRAGMA journal_mode = OFF;
|
|
12
|
-
PRAGMA synchronous = OFF;
|
|
13
|
-
CREATE TABLE metadata (
|
|
14
|
-
key TEXT PRIMARY KEY,
|
|
15
|
-
value TEXT NOT NULL
|
|
16
|
-
) STRICT;
|
|
17
|
-
CREATE TABLE events (
|
|
18
|
-
stream_id TEXT NOT NULL,
|
|
19
|
-
stream_offset INTEGER NOT NULL,
|
|
20
|
-
ts TEXT NOT NULL,
|
|
21
|
-
author TEXT NOT NULL,
|
|
22
|
-
agent_harness TEXT,
|
|
23
|
-
agent_instance TEXT,
|
|
24
|
-
op TEXT NOT NULL,
|
|
25
|
-
entry_json TEXT NOT NULL,
|
|
26
|
-
PRIMARY KEY(stream_id, stream_offset)
|
|
27
|
-
) STRICT;
|
|
28
|
-
CREATE INDEX events_order
|
|
29
|
-
ON events(ts, stream_id, stream_offset);
|
|
30
|
-
CREATE INDEX events_op_order
|
|
31
|
-
ON events(op, ts, stream_id, stream_offset);
|
|
32
|
-
CREATE INDEX events_author_order
|
|
33
|
-
ON events(author, ts, stream_id, stream_offset);
|
|
34
|
-
CREATE INDEX events_harness_order
|
|
35
|
-
ON events(agent_harness, ts, stream_id, stream_offset);
|
|
36
|
-
CREATE INDEX events_instance_order
|
|
37
|
-
ON events(agent_instance, ts, stream_id, stream_offset);
|
|
38
|
-
`),e.prepare("INSERT INTO metadata(key, value) VALUES ('version', ?)").run(lr)}function _i(e,t){e.prepare(`INSERT INTO events(
|
|
39
|
-
stream_id, stream_offset, ts, author, agent_harness,
|
|
40
|
-
agent_instance, op, entry_json
|
|
41
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?)`).run(t.stream_id,t.stream_offset,t.entry.ts,t.entry.author,t.entry.agent_harness??null,t.entry.agent_instance??null,t.entry.op,JSON.stringify(t.entry))}async function ap(e){let t=fr();if(!t)return!1;let n=Xt(e);await ne.mkdir(re.dirname(n),{recursive:!0});let r=`${n}.${xd()}.tmp`,o;try{o=new t(r),Nd(o),o.exec("BEGIN IMMEDIATE");for(let i of await mi(e))_i(o,i);return o.exec("COMMIT"),o.close(),o=void 0,await ne.rm(n,{force:!0}),await ne.rename(r,n),!0}catch(i){throw o?.close(),await ne.rm(r,{force:!0}),i}}function qt(e,t){return!t||t.length===0||t.includes(e)}function pi(e,t){return e.entry.ts.localeCompare(t.entry.ts)||e.stream_id.localeCompare(t.stream_id)||e.stream_offset-t.stream_offset}function Dd(e,t){if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){if(pi(e,{stream_id:t.after_stream_id,stream_offset:t.after_stream_offset,entry:{...e.entry,ts:t.after_ts}})<=0)return!1}else if(t.since_ts!==void 0&&e.entry.ts<t.since_ts)return!1;return!0}function Md(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 Pd(e,t){return!Dd(e,t)||!qt(e.entry.op,t.ops)||!qt(e.entry.author,t.authors)||!qt(e.entry.agent_instance??"",t.agent_instances)||!qt(e.stream_id,t.stream_ids)||!Md(e,t)?!1:(t.provenance??[]).every(n=>{let r=e.entry.agent_provenance?.[n.dimension]?.value;return r!==void 0&&n.values.includes(r)})}async function cp(e,t){let n=Math.max(0,Math.floor(t.limit)),r=(await mi(e)).filter(o=>Pd(o,t)).slice(0,n+1);return{events:r.slice(0,t.limit),has_more:r.length>t.limit}}async function yi(e,t){let n=re.dirname(re.dirname(e)),r=Xt(n);try{await ne.access(r)}catch{return}let o=fr();if(!o)return;let i;try{if(i=new o(r),i.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==lr)throw new TypeError("Unsupported history event index version");let a=re.basename(e,".jsonl"),c=i.prepare("SELECT COALESCE(MAX(stream_offset), -1) + 1 AS value FROM events WHERE stream_id = ?").get(a);_i(i,{stream_id:a,stream_offset:Number(c.value),entry:t}),i.close()}catch{i?.close(),await ne.rm(r,{force:!0})}}async function Jt(e){await ne.rm(Xt(re.dirname(re.dirname(e))),{force:!0})}function Gt(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function Ld(e,t,n,r){if(!n||n.length===0)return;let o=n.map(()=>"?").join(", "),i=r??[];if(i.length>0){e.push(`(agent_harness IN (${o}) OR (agent_harness IS NULL AND author IN (${i.map(()=>"?").join(", ")})))`),t.push(...n,...i);return}e.push(`agent_harness IN (${o})`),t.push(...n)}async function dp(e,t){let n=fr();if(!n)return null;let r=[],o=[];t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0?(r.push("(ts > ? OR (ts = ? AND stream_id > ?) OR (ts = ? AND stream_id = ? AND stream_offset > ?))"),o.push(t.after_ts,t.after_ts,t.after_stream_id,t.after_ts,t.after_stream_id,t.after_stream_offset)):t.since_ts!==void 0&&(r.push("ts >= ?"),o.push(t.since_ts)),Gt(r,o,"op",t.ops),Gt(r,o,"author",t.authors),Ld(r,o,t.harnesses,t.harness_alias_authors),Gt(r,o,"agent_instance",t.agent_instances);for(let a of t.provenance??[])r.push(`json_extract(entry_json, '$.agent_provenance.${a.dimension}.value') IN (${a.values.map(()=>"?").join(", ")})`),o.push(...a.values);Gt(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s;try{if(s=new n(Xt(e),{readOnly:!0}),s.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==lr)return s.close(),null;let c=s.prepare(`SELECT stream_id, stream_offset, entry_json
|
|
42
|
-
FROM events${i}
|
|
43
|
-
ORDER BY ts, stream_id, stream_offset
|
|
44
|
-
LIMIT ?`).all(...o,Math.max(0,Math.floor(t.limit))+1),u=c.length>t.limit,l=c.slice(0,t.limit).map(f=>({stream_id:String(f.stream_id),stream_offset:Number(f.stream_offset),entry:JSON.parse(String(f.entry_json))}));return s.close(),{events:l,has_more:u}}catch{return s?.close(),null}}import br from"node:fs/promises";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]="a3e0573a-01fd-54fb-a568-51c5287b696c")}catch{}})();var Kt="changed_fields",jd="changed_field_count",mr="rows",Fd=new Set(["apply","rollback"]),bi=new Set(["deleted","would_delete"]),hi=256;function gi(e){return typeof e!="string"||e.length<=hi?e:`${e.slice(0,hi-1)}\u2026`}function $d(e){if(!oe(e))return null;let t={...e};return t.reason=gi(t.reason),oe(t.previous_terminal)&&(t.previous_terminal=Object.fromEntries(Object.entries(t.previous_terminal).map(([n,r])=>[n,gi(r)]))),t}function oe(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function wi(e){let t=e[Kt];if(!Array.isArray(t))return null;let n=Object.getPrototypeOf(e)===null?Object.create(null):{};for(let[r,o]of Object.entries(e))r!==Kt&&(n[r]=o);return n[jd]=t.length,n}function zd(e){return"item"in e&&Array.isArray(e[Kt])}function Hd(e){return typeof e.mode=="string"&&Fd.has(e.mode)&&Array.isArray(e[mr])}function Ud(e,t){let n=Object.getPrototypeOf(e)===null?Object.create(null):{};return Object.assign(n,e),n[mr]=t,n}function Wd(e){if(!oe(e))return null;let t=oe(e.item)?e.item:oe(e.plan)?e.plan:null;if(t===null)return null;let n=typeof t.id=="string"?t.id:void 0,r=typeof e.outcome=="string"&&bi.has(e.outcome)?e.outcome:typeof t.status=="string"?t.status:void 0;return n?r?{id:n,status:r,...typeof e.deleted=="boolean"?{deleted:e.deleted}:{}}:{id:n}:null}function Bd(e){if(!oe(e)||!oe(e.item)||typeof e.item.id!="string")return null;let t=e[Kt];if(!Array.isArray(t))return null;let n={id:e.item.id,...typeof e.outcome=="string"&&bi.has(e.outcome)?{status:e.outcome}:typeof e.item.status=="string"?{status:e.item.status}:{},...typeof e.deleted=="boolean"?{deleted:e.deleted}:{},...typeof e.previous_status=="string"?{previous_status:e.previous_status}:{},changed_field_count:t.length},r=typeof e.close_reason=="string"?e.close_reason:typeof e.item.close_reason=="string"?e.item.close_reason:void 0;r!==void 0&&(n.close_reason=r);let o=$d(e.recurrence);return o!==null&&(n.recurrence=o),Array.isArray(e.warnings)&&e.warnings.length>0&&(n.warnings=e.warnings),n}function Vd(e){let t=Hd(e)?e[mr]:void 0;if(!Array.isArray(t))return{projected:e,changed:!1};let n=!1,r=t.map(o=>{if(!oe(o))return o;let i=wi(o);return i?(n=!0,i):o});return n?{projected:Ud(e,r),changed:!0}:{projected:e,changed:!1}}function qd(e,t={}){if(t.idOnly===!0){let a=Wd(e);if(a!==null)return a}if(t.compactEnvelope===!0){let a=Bd(e);if(a!==null)return a}if((t.changedFields??"full")==="full"||!oe(e))return e;let r=!1,o=e,i=zd(e)?wi(e):null;i!==null&&(o=i,r=!0);let s=Vd(o);return s.changed&&(o=s.projected,r=!0),r?o:e}import{encode as vi}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]="202cbb3e-71fe-5701-a1f5-eb515bf56561")}catch{}})();var Op=new Set(Object.values(I));var Ei=!1;function He(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function _r(e){return typeof e=="object"&&e!==null&&e.code==="EPIPE"}function Gd(){(process.exitCode===void 0||process.exitCode===I.SUCCESS)&&(process.exitCode=I.SUCCESS)}function Xd(){(process.exitCode===void 0||process.exitCode===I.SUCCESS)&&(process.exitCode=I.GENERIC_FAILURE)}function pr(e){if(e==="stdout"){Gd();return}Xd()}function ki(e){let t=e instanceof Error?e:new Error(String(e));setImmediate(()=>{throw t})}function Jd(){Ei||(Ei=!0,process.stdout.on("error",e=>{if(_r(e)){pr("stdout");return}ki(e)}),process.stderr.on("error",e=>{if(_r(e)){pr("stderr");return}ki(e)}))}function Kd(e,t){Jd();try{return e==="stdout"?process.stdout.write(t):process.stderr.write(t),!0}catch(n){if(_r(n))return pr(e),!1;throw n}}function Yt(e){return Kd("stderr",e)}function yr(e){return typeof e=="string"?JSON.stringify(e):typeof e=="number"||typeof e=="boolean"?String(e):e===null?"null":JSON.stringify(e)}function Yd(e){return e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function Si(e){if(e.length===0||!e.every(He))return!1;let t=Object.keys(e[0]);return t.length>0&&e.every(n=>Object.keys(n).length===t.length&&t.every(r=>Object.hasOwn(n,r)&&Yd(n[r])))}function Ii(e,t){let n=" ".repeat(t);return e.split(`
|
|
45
|
-
`).map(r=>`${n}${r}`).join(`
|
|
46
|
-
`)}function Qd(e,t,n){let r=" ".repeat(n);return!He(t)&&!Array.isArray(t)?`${r}${e}: ${yr(t)}`:Array.isArray(t)&&t.length===0?`${r}${e}: []`:Array.isArray(t)&&Si(t)?Ii(vi({[e]:t}),n):He(t)&&Object.keys(t).length===0?`${r}${e}: {}`:`${r}${e}:
|
|
47
|
-
${gr(t,n+1)}`}function hr(e){if(e!=null){if(Array.isArray(e)){let t=e.map(n=>hr(n)).filter(n=>n!==void 0);return t.length>0?t:void 0}if(He(e)){let t={};for(let[n,r]of Object.entries(e)){if(n==="omitted_field_groups"&&Array.isArray(r)&&r.length===0){t[n]=[];continue}let o=hr(r);o!==void 0&&(t[n]=o)}return Object.keys(t).length>0?t:void 0}return e}}function gr(e,t){let n=" ".repeat(t);if(Array.isArray(e))return e.length===0?"[]":Si(e)?Ii(vi(e),t):e.map(r=>{if(!He(r)&&!Array.isArray(r))return`${n}- ${yr(r)}`;let i=gr(r,t+1).split(`
|
|
48
|
-
`),[s,...a]=i;return a.length===0?`${n}- ${s.trimStart()}`:`${n}- ${s.trimStart()}
|
|
49
|
-
${a.join(`
|
|
50
|
-
`)}`}).join(`
|
|
51
|
-
`);if(He(e)){let r=Object.entries(e);return r.length===0?"{}":r.map(([o,i])=>Qd(o,i,t)).join(`
|
|
52
|
-
`)}return`${n}${yr(e)}`}function Ap(e,t){if(t==="json")return`${JSON.stringify(e,null,2)}
|
|
53
|
-
`;let n=hr(e);return n===void 0?`{}
|
|
54
|
-
`:`${gr(n,0)}
|
|
55
|
-
`}function Rp(e){let t=fi("error_format",{message:e}),n=t.handled&&typeof t.result=="string"?t.result:e;Yt(n.endsWith(`
|
|
56
|
-
`)?n:`${n}
|
|
57
|
-
`)}(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]="5121b339-6594-58ec-b479-11cbf7dafd27")}catch{}})();var Zd=Ue.join("runtime","history-drift-cache.json"),xi={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 Ti(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function eu(e){let t=Ue.join(e,Zd),n=!1,r="invalid_cache_path";try{n=(await br.stat(await br.realpath(e))).isDirectory()}catch(o){let i=Ti(o);r=i===void 0?"unknown":xi[i]??"filesystem_error"}if(!n){Yt(`[pm] warning: history_drift_cache_invalidation_failed:${r}
|
|
58
|
-
`);return}try{await br.rm(t,{force:!0})}catch(o){let i=Ti(o);if(Ee(o))return;let s=i===void 0?"unknown":xi[i]??"filesystem_error";Yt(`[pm] warning: history_drift_cache_invalidation_failed:${s}
|
|
59
|
-
`)}}async function at(e){let t=Ue.dirname(Ue.resolve(e));Ue.basename(t)==="history"&&await eu(Ue.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]="2fc7f675-3500-5abb-8d5c-9ca9caa803b6")}catch{}})();var nu={front_matter:{},body:""},me=2,ct=[1,2];function Qt(e,t){return(e??"").localeCompare(t??"")}function Ci(e,t){return(e??0)-(t??0)}function fe(e,t,n){return JSON.stringify(e??n).localeCompare(JSON.stringify(t??n))}function ru(e,t){return[e.scope.localeCompare(t.scope),Qt(e.path,t.path),Qt(e.command,t.command),Ci(e.timeout_seconds,t.timeout_seconds),Qt(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,fe(e.env_clear,t.env_clear,[]),fe(e.env_set,t.env_set,{}),fe(e.assert_stdout_contains,t.assert_stdout_contains,[]),fe(e.assert_stdout_regex,t.assert_stdout_regex,[]),fe(e.assert_stderr_contains,t.assert_stderr_contains,[]),fe(e.assert_stderr_regex,t.assert_stderr_regex,[]),Ci(e.assert_stdout_min_lines,t.assert_stdout_min_lines),fe(e.assert_json_field_equals,t.assert_json_field_equals,{}),fe(e.assert_json_field_gte,t.assert_json_field_gte,{}),Qt(e.note,t.note)].find(r=>r!==0)??0}function ou(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function iu(e,t){let n=ou(t);if(n.length===0)return!0;let r=e;for(let o of n){if(Array.isArray(r)){if(o==="-"||!/^(0|[1-9]\d*)$/.test(o))return!1;let s=Number(o);if(!Number.isInteger(s)||s<0||s>=r.length)return!1;let a=r[s];if(a===void 0)return!1;r=a;continue}if(typeof r!="object"||r===null||!Object.prototype.hasOwnProperty.call(r,o))return!1;let i=r[o];if(i===void 0)return!1;r=i}return!0}function su(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!iu(r,o.path)?{...o,op:"add"}:o;n.push(i),r=Ni.applyPatch(r,[i],!0,!0).newDocument}return n}function wr(e,t){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let r=G(e),o=t===1&&r.metadata.tests?{...r.metadata,tests:[...r.metadata.tests].sort(ru)}:r.metadata;return{front_matter:v(o,ce),body:r.body}}function Oi(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let n=G(e);return{metadata:v(n.metadata,ce),body:n.body}}function Jp(e){return Er(e,me)}function Er(e,t){if(!ct.some(n=>n===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return ke(D(wr(e,t)))}function Kp(){return ke(D(nu))}function We(e){let t=wr(e.before,me),n=wr(e.after,me),r=Oi(e.before),o=Oi(e.after),i=Ni.compare(r,o),s=su(r,i),a=Lo(e.author),c=a.harness?Object.fromEntries(Object.entries(Mo().provenance_outcomes).filter(([,l])=>l.status==="failed")):void 0,u=c===void 0||Object.keys(c).length===0?e.context:{...e.context,agent_provenance_outcomes:c};return{ts:e.nowIso,author:e.author,author_source:e.authorSource??Po(e.author),...a.harness?{agent_harness:a.harness}:{},...a.model?{agent_model:a.model}:{},...a.model_source?{agent_model_source:a.model_source}:{},...a.instance?{agent_instance:a.instance}:{},...a.provenance?{agent_provenance:a.provenance}:{},...a.episode?{agent_episode:a.episode}:{},op:e.op,patch:s,before_hash:ke(D(t)),after_hash:ke(D(n)),item_hash_version:me,message:e.message===void 0?void 0:e.message,...u===void 0?{}:{context:u}}}function Ai(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function au(e){let t=e.ts.trim();return t.length>0?t:xe()}function Ri(e,t){let n=e.ts;return typeof n=="string"&&n.trim().length>0?e:{...e,ts:t}}function Zt(e,t){let n=au(t);if(typeof e=="string"){try{let r=JSON.parse(e);if(Ai(r))return JSON.stringify(Ri(r,n))}catch{}return e}return Ai(e)?JSON.stringify(Ri(e,n)):JSON.stringify(e)}async function Be(e,t){let n=await te("history_append",{history_path:e,entry:t});if(n.handled){if(n.result===!1)return;if(typeof n.result=="string"){await Ke(e,Zt(n.result,t)),await at(e),await Jt(e);return}if(typeof n.result=="object"&&n.result!==null){let r=n.result;if(r.skip===!0)return;let o=typeof r.history_path=="string"?r.history_path:e;if(typeof r.line=="string"){await Ke(o,Zt(r.line,t)),await at(o),await Jt(o);return}await Ke(o,Zt(r.entry??t,t)),await at(o),await Jt(o);return}}await Ke(e,Zt(t,t)),await at(e),await yi(e,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]="bf8797ec-53d3-5d23-8a6e-8296a027ddf2")}catch{}})();var cu={metadata:{},body:""};function tn(){return structuredClone(cu)}function en(e,t=me){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return Er(nn(e),t)}catch{}return ke(D({replay_fallback:!0,metadata:e.metadata,body:e.body}))}function nn(e){return{metadata:e.metadata,body:e.body}}function oy(e,t={}){return G(nn(e),t)}function iy(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=G(e);return{metadata:v(t.metadata,ce),body:t.body}}function Di(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function du(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function Pi(e){return Array.isArray(e)?e.filter(du).map(t=>({...t,path:Di(t.path),from:typeof t.from=="string"?Di(t.from):void 0})):[]}function uu(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 rn(e,t){try{let n=Pi(t),r=kr.applyPatch(structuredClone(e),n,!0,!1).newDocument;return uu(r)?{ok:!0,document:{metadata:r.metadata,body:r.body}}:{ok:!1,error:new Error("history_replay_invalid_document_shape")}}catch(n){return{ok:!1,error:n}}}function lu(e){return[...new Set(e.map(t=>t.item_hash_version).filter(t=>t!==void 0&&ct.includes(t)))]}function fu(e,t){return e!==void 0?[e]:t===void 0?[1,me]:[t]}function Li(e){let t=tn(),n,r;for(let o=0;o<e.length;o+=1){let i=e[o],s=i.item_hash_version;if(s!==void 0&&!ct.includes(s))return{ok:!1,errors:[`verify_failed:unsupported_item_hash_version:${String(s)}:entry_${o+1}`]};let a=rn(t,i.patch);if(!a.ok)return{ok:!1,errors:[`verify_failed:patch_apply_failed:entry_${o+1}`]};let u=fu(s,r).filter(f=>en(t,f)===i.before_hash);if(u.length===0)return{ok:!1,errors:[`verify_failed:before_hash_mismatch:entry_${o+1}`]};let l=u.find(f=>en(a.document,f)===i.after_hash);if(l===void 0)return{ok:!1,errors:[`verify_failed:after_hash_mismatch:entry_${o+1}`]};t=a.document,n=l,s!==void 0&&(r=l)}return{ok:!0,errors:[],...n===void 0?{}:{item_hash_version:n}}}function on(e){let t=Li(e);return{ok:t.ok,errors:t.errors}}function Mi(e,t){try{return{ok:!0,document:kr.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function mu(e,t){let n=structuredClone(e),r=0,o=0;for(let a of Pi(t)){let c=Mi(n,a);if(c.ok){n=c.document;continue}if(a.op==="replace"){let u=Mi(n,{...a,op:"add"});if(u.ok){n=u.document,r+=1;continue}}o+=1}let i=n;return{document:{metadata:typeof i.metadata=="object"&&i.metadata!==null?i.metadata:{},body:typeof i.body=="string"?i.body:e.body},convertedReplaceToAdd:r,skippedOps:o}}function _u(e){let t=lu(e);if(t.length===1)return t[0];let n=Li(e);return n.ok&&n.item_hash_version!==void 0?n.item_hash_version:t.length===0?1:me}function sy(e,t=_u(e)){let n=e.findIndex(f=>f.item_hash_version!==void 0&&!ct.includes(f.item_hash_version));if(n>=0)throw new TypeError(`unsupported_item_hash_version:${String(e[n]?.item_hash_version)}:entry_${n+1}`);let r=tn(),o=[],i=[],s=0,a=0,c=0,u=0,l=t!==1||e.some(f=>f.item_hash_version!==void 0);for(let f=0;f<e.length;f+=1){let _=e[f],y=en(r,t),g=rn(r,_.patch),E,k,A=!1,M=0,U=0;if(g.ok)E=g.document,k=_.patch;else{let H=mu(r,_.patch);E=H.document,k=kr.compare(r,E),A=!0,M=H.convertedReplaceToAdd,U=H.skippedOps,c+=M,u+=U,a+=1}let z=en(E,t),Z=y!==_.before_hash||z!==_.after_hash;Z&&(s+=1);let be={..._,patch:k,before_hash:y,after_hash:z};l?be.item_hash_version=t:delete be.item_hash_version,o.push(be),i.push({index:f+1,rehashed:Z,patch_repaired:A,converted_replace_to_add:M,skipped_ops:U}),r=E}return{entries:o,finalDocument:r,entriesRehashed:s,entriesPatchRepaired:a,convertedReplaceToAdd:c,skippedOps:u,details:i,itemHashVersion:t,explicitItemHashVersion:l}}function ay(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
|
|
60
|
-
`)}
|
|
61
|
-
`}import pu from"node:crypto";import ji 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]="50a277b9-d530-5aa0-8bd0-8eb0d36911e5")}catch{}})();function $i(e){let t=(e??"").trim().toLowerCase();return t?t.endsWith("-")?t:`${t}-`:"pm-"}function vr(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function Sr(e,t){let n=$i(t),r=vr(e);return r.startsWith(n)?r:`${n}${r}`}function yu(e){let t=Uo(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=pu.randomInt(0,36).toString(36);return n}async function hu(e,t,n){let r=[...new Set(Object.values(n))].flatMap(o=>[ji.join(e,o,`${t}.md`),ji.join(e,o,`${t}.toon`)]);return(await Promise.all(r.map(o=>Tt(o)))).some(Boolean)}var Fi=4,zi=12;function gu(e){return typeof e!="number"||!Number.isFinite(e)?Fi:Math.min(zi,Math.max(Fi,Math.trunc(e)))}async function _y(e,t,n={}){let r=gu(n.tokenLength),o=Math.min(r+6,zi),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${$i(t)}${yu(r)}`;if(n.probeExisting===!1||!await hu(e,a,n.typeToFolder??we))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import Oe from"node:fs/promises";import Ui from"node:path";import{randomUUID as bu}from"node:crypto";import{createRequire as wu}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]="e94075b0-810d-506c-b6a2-ae322526c078")}catch{}})();var Eu="metadata-query-index.sqlite",dt="4";function ku(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}var sn;function vu(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?ku(t):null}function ut(){return sn!==void 0||(sn=vu(process.versions.node,wu(import.meta.url))),sn}function Hi(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function Ve(e){return Ui.join(e,"runtime",Eu)}function Su(e){e.exec(`
|
|
62
|
-
PRAGMA foreign_keys = ON;
|
|
63
|
-
PRAGMA journal_mode = OFF;
|
|
64
|
-
PRAGMA synchronous = OFF;
|
|
65
|
-
CREATE TABLE metadata (
|
|
66
|
-
key TEXT PRIMARY KEY,
|
|
67
|
-
value TEXT NOT NULL
|
|
68
|
-
) STRICT;
|
|
69
|
-
CREATE TABLE items (
|
|
70
|
-
id TEXT PRIMARY KEY,
|
|
71
|
-
relative_path TEXT NOT NULL UNIQUE,
|
|
72
|
-
metadata_json TEXT NOT NULL,
|
|
73
|
-
status TEXT NOT NULL,
|
|
74
|
-
type TEXT NOT NULL,
|
|
75
|
-
priority INTEGER NOT NULL,
|
|
76
|
-
updated_at TEXT NOT NULL,
|
|
77
|
-
created_at TEXT NOT NULL,
|
|
78
|
-
parent TEXT,
|
|
79
|
-
assignee TEXT,
|
|
80
|
-
sprint TEXT,
|
|
81
|
-
release TEXT
|
|
82
|
-
) STRICT;
|
|
83
|
-
CREATE INDEX items_default_order
|
|
84
|
-
ON items(priority, updated_at DESC, id);
|
|
85
|
-
CREATE INDEX items_status_default_order
|
|
86
|
-
ON items(status, priority, updated_at DESC, id);
|
|
87
|
-
CREATE INDEX items_type_default_order
|
|
88
|
-
ON items(type, priority, updated_at DESC, id);
|
|
89
|
-
CREATE INDEX items_parent_default_order
|
|
90
|
-
ON items(parent, priority, updated_at DESC, id);
|
|
91
|
-
CREATE TABLE item_metadata_keys (
|
|
92
|
-
item_id TEXT NOT NULL,
|
|
93
|
-
key TEXT NOT NULL,
|
|
94
|
-
PRIMARY KEY(item_id, key),
|
|
95
|
-
FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
|
|
96
|
-
) STRICT;
|
|
97
|
-
CREATE INDEX item_metadata_keys_key_item
|
|
98
|
-
ON item_metadata_keys(key, item_id);
|
|
99
|
-
CREATE TABLE item_linked_files (
|
|
100
|
-
item_id TEXT NOT NULL,
|
|
101
|
-
path TEXT NOT NULL,
|
|
102
|
-
scope TEXT NOT NULL,
|
|
103
|
-
note TEXT,
|
|
104
|
-
PRIMARY KEY(item_id, path, scope),
|
|
105
|
-
FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
|
|
106
|
-
) STRICT;
|
|
107
|
-
CREATE INDEX item_linked_files_path_scope_item
|
|
108
|
-
ON item_linked_files(path, scope, item_id);
|
|
109
|
-
CREATE VIRTUAL TABLE item_search USING fts5(
|
|
110
|
-
id UNINDEXED,
|
|
111
|
-
title,
|
|
112
|
-
description,
|
|
113
|
-
tags,
|
|
114
|
-
tokenize = 'unicode61'
|
|
115
|
-
);
|
|
116
|
-
`)}function cn(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function Wi(e,t){let n=t.metadata;e.prepare(`INSERT INTO items(
|
|
117
|
-
id, relative_path, metadata_json, status, type, priority,
|
|
118
|
-
updated_at, created_at, parent, assignee, sprint, release
|
|
119
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
120
|
-
ON CONFLICT(id) DO UPDATE SET
|
|
121
|
-
relative_path = excluded.relative_path,
|
|
122
|
-
metadata_json = excluded.metadata_json,
|
|
123
|
-
status = excluded.status,
|
|
124
|
-
type = excluded.type,
|
|
125
|
-
priority = excluded.priority,
|
|
126
|
-
updated_at = excluded.updated_at,
|
|
127
|
-
created_at = excluded.created_at,
|
|
128
|
-
parent = excluded.parent,
|
|
129
|
-
assignee = excluded.assignee,
|
|
130
|
-
sprint = excluded.sprint,
|
|
131
|
-
release = excluded.release`).run(n.id,t.relativePath,JSON.stringify(n),n.status,n.type,n.priority,n.updated_at,n.created_at,n.parent??null,n.assignee??null,n.sprint??null,n.release??null),e.prepare("DELETE FROM item_metadata_keys WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_linked_files WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_search WHERE id = ?").run(n.id),e.prepare("INSERT INTO item_search(id, title, description, tags) VALUES (?, ?, ?, ?)").run(n.id,n.title,n.description,n.tags.join(" "));let r=e.prepare("INSERT INTO item_metadata_keys(item_id, key) VALUES (?, ?)");for(let i of Object.keys(n))r.run(n.id,i);let o=e.prepare("INSERT INTO item_linked_files(item_id, path, scope, note) VALUES (?, ?, ?, ?)");for(let i of t.linkedFiles??[])o.run(n.id,i.path,i.scope,i.note??null)}async function Bi(e){let t=Ve(e.pmRoot),n=ut();if(!n){await Oe.rm(t,{force:!0});return}await Oe.mkdir(Ui.dirname(t),{recursive:!0});let r=`${t}.${bu()}.tmp`,o;try{o=new n(r),Su(o),o.exec("BEGIN IMMEDIATE"),cn(o,"version",dt),cn(o,"context_fingerprint",e.contextFingerprint),cn(o,"source_cursor",e.sourceCursor);for(let i of e.rows)Wi(o,i);o.exec("COMMIT"),o.close(),o=void 0,await Oe.rm(t,{force:!0}),await Oe.rename(r,t)}catch(i){throw o?.close(),await Promise.allSettled([Oe.rm(r,{force:!0})]),i}}function dn(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function Vi(e){let t=Ve(e.pmRoot),n;try{await Oe.access(t);let r=ut();if(!r)return!1;n=new r(t),n.exec("PRAGMA foreign_keys = ON");let o=dn(n);if(o.version!==dt||o.context_fingerprint!==e.contextFingerprint||o.source_cursor!==e.expectedSourceCursor)return n.close(),!1;n.exec("BEGIN IMMEDIATE");let i=n.prepare("DELETE FROM items WHERE relative_path = ?"),s=n.prepare("SELECT id FROM items WHERE relative_path = ?"),a=n.prepare("DELETE FROM item_search WHERE id = ?");for(let c of e.deletedRelativePaths??[]){let u=s.get(c);i.run(c),u&&a.run(u.id)}return e.row&&Wi(n,e.row),cn(n,"source_cursor",e.sourceCursor),n.exec("COMMIT"),n.close(),!0}catch{try{n?.exec("ROLLBACK")}catch{}return n?.close(),!1}}function an(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function Iu(e){let t=[],n=[];an(t,n,"status",e.statuses,"IN"),an(t,n,"status",e.excludeStatuses,"NOT IN"),an(t,n,"type",e.types,"IN"),an(t,n,"id",e.ids,"IN");for(let r of e.metadataKeys??[])t.push("EXISTS (SELECT 1 FROM item_metadata_keys AS indexed_key WHERE indexed_key.item_id = items.id AND indexed_key.key = ?)"),n.push(r);for(let[r,o]of[["parent",e.parent],["assignee",e.assignee],["sprint",e.sprint],["release",e.release]])o!==void 0&&(t.push(`${r} = ?`),n.push(o));return e.priority!==void 0&&(t.push("priority = ?"),n.push(e.priority)),{where:t.length===0?"":` WHERE ${t.join(" AND ")}`,parameters:n}}async function wy(e){let t=ut();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=Iu(n),i;try{i=new t(Ve(e.pmRoot),{readOnly:!0});let s=dn(i);if(s.version!==dt||s.source_cursor!==e.expectedSourceCursor)return i.close(),null;let a=i.prepare(`SELECT COUNT(*) AS count FROM items${r}`).get(...o),c=[],u="";n.limit!==void 0?(u+=" LIMIT ?",c.push(Math.max(0,Math.floor(n.limit))),n.offset!==void 0&&(u+=" OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))))):n.offset!==void 0&&(u+=" LIMIT -1 OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))));let f=i.prepare(`SELECT metadata_json FROM items${r}
|
|
132
|
-
ORDER BY ${n.terminalStatuses&&n.terminalStatuses.length>0?`CASE WHEN status IN (${n.terminalStatuses.map(()=>"?").join(", ")}) THEN 1 ELSE 0 END ASC, `:""}priority ASC, updated_at DESC, id ASC${u}`).all(...o,...n.terminalStatuses??[],...c).map(_=>{let y=JSON.parse(String(_.metadata_json));if(!y.id)throw new TypeError("Indexed metadata row has no id");return y});return i.close(),{source_cursor:s.source_cursor,total:Number(a.count),items:f}}catch{return i?.close(),null}}async function Ey(e){let t=ut();if(!t||e.paths.length===0)return null;let n;try{n=new t(Ve(e.pmRoot),{readOnly:!0});let r=dn(n);if(r.version!==dt||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let o=e.paths.map(()=>"?").join(", "),i=e.scope===void 0?"":" AND scope = ?",s=[...e.paths,...e.scope===void 0?[]:[e.scope]],a=`path IN (${o})${i}`,c=n.prepare(`SELECT COUNT(DISTINCT item_id) AS count
|
|
133
|
-
FROM item_linked_files
|
|
134
|
-
WHERE ${a}`).get(...s),u=Hi(e.limit,50),l=Hi(e.offset,0),f=n.prepare(`SELECT items.id, items.metadata_json
|
|
135
|
-
FROM items
|
|
136
|
-
WHERE EXISTS (
|
|
137
|
-
SELECT 1 FROM item_linked_files
|
|
138
|
-
WHERE item_linked_files.item_id = items.id AND ${a}
|
|
139
|
-
)
|
|
140
|
-
ORDER BY items.priority ASC, items.updated_at DESC, items.id ASC
|
|
141
|
-
LIMIT ? OFFSET ?`).all(...s,u,l),_=[];if(f.length>0){let y=f.map(k=>String(k.id)),g=n.prepare(`SELECT item_id, path, scope, note
|
|
142
|
-
FROM item_linked_files
|
|
143
|
-
WHERE item_id IN (${y.map(()=>"?").join(", ")})
|
|
144
|
-
AND ${a}
|
|
145
|
-
ORDER BY path ASC, scope ASC`).all(...y,...s),E=new Map(y.map(k=>[k,[]]));for(let k of g){let A=String(k.item_id),M=E.get(A);M.push({path:String(k.path),scope:String(k.scope),...k.note===null?{}:{note:String(k.note)}}),E.set(A,M)}for(let k of f){let A=JSON.parse(String(k.metadata_json));_.push({item:A,files:E.get(String(k.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:_}}catch{return n?.close(),null}}async function ky(e){let t=ut();if(!t)return null;let n;try{n=new t(Ve(e.pmRoot),{readOnly:!0});let r=dn(n);if(r.version!==dt||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let i=n.prepare(`SELECT items.metadata_json
|
|
146
|
-
FROM item_search
|
|
147
|
-
JOIN items ON items.id = item_search.id
|
|
148
|
-
WHERE item_search MATCH ?
|
|
149
|
-
ORDER BY bm25(item_search), items.priority, items.updated_at DESC, items.id
|
|
150
|
-
LIMIT ?`).all(e.query,Math.max(0,Math.floor(e.limit))).map(s=>JSON.parse(String(s.metadata_json)));return n.close(),{source_cursor:r.source_cursor,items:i}}catch{return n?.close(),null}}async function un(e){await Oe.rm(Ve(e),{force:!0})}import F from"node:fs/promises";import R from"node:path";import{createHash as Gu,randomUUID as ss}from"node:crypto";import ie from"node:fs/promises";import Ir from"node:path";import{randomUUID as xu}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]="a9ad8a9f-de6e-5bce-8685-844f1129d5fb")}catch{}})();function Tu(e){let t;try{t=JSON.parse(e)}catch{return{info:null,warnings:["lock_info_invalid_json"]}}if(typeof t!="object"||t===null||Array.isArray(t))return{info:null,warnings:["lock_info_invalid_shape"]};let n=t,r=n.id,o=n.pid,i=n.owner,s=n.created_at,a=n.ttl_seconds;return typeof r!="string"||typeof o!="number"||!Number.isFinite(o)||typeof i!="string"||typeof s!="string"||typeof a!="number"||!Number.isFinite(a)?{info:null,warnings:["lock_info_invalid_shape"]}:{info:{id:r,pid:o,owner:i,created_at:s,ttl_seconds:a},warnings:[]}}async function Ji(e){try{let t=await ie.readFile(e,"utf8");return await Y({path:e,scope:"project"}),Tu(t)}catch(t){return Ee(t)?{info:null,warnings:[]}:{info:null,warnings:["lock_info_read_failed"]}}}function xr(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}async function Ki(e,t){await X({path:e,scope:"project",op:t})}function Cu(e,t,n){return{id:e,pid:process.pid,owner:t,created_at:xe(),ttl_seconds:n}}async function Ou(e,t,n,r){await ie.mkdir(Ir.dirname(e),{recursive:!0});let o=await ie.open(e,"wx");try{await o.writeFile(`${JSON.stringify(Cu(t,n,r),null,2)}
|
|
151
|
-
`,"utf8")}finally{await o.close()}await Ki(e,"lock:create")}async function Yi(e,t){try{return await ie.unlink(e),await Ki(e,t),!0}catch{return!1}}function Qi(e,t){let n=e?.created_at?Date.parse(e.created_at):Number.NaN;return(Number.isFinite(n)?Date.now()-n:Number.POSITIVE_INFINITY)>t*1e3}function Au(e){return e?.owner?` (owner ${e.owner})`:""}var Ru=25,Nu=200,Du=250,Mu=3,Pu=".stale-cleanup",Zi="owner.json",Lu=1e4,ju=5*6e4;function qi(e){if(typeof e=="string"){let t=e.trim();if(!/^\d+$/.test(t))return;let n=Number(t);return Number.isSafeInteger(n)?n:void 0}if(typeof e=="number"&&Number.isFinite(e)&&e>=0)return Math.trunc(e)}function Fu(e){let t=process.env.PM_LOCK_WAIT_MS,n=qi(t);if(n!==void 0)return n;let r=qi(e);return r!==void 0?r:0}function $u(e){let t=Math.max(1,Math.round(e*(.5+Math.random())));return new Promise(n=>setTimeout(n,t))}function es(e,t,n){let r=n>0?` after waiting ${n}ms`:"";return new x(`Item ${e} is locked${Au(t)}${r}`,I.CONFLICT,{code:"lock_conflict",recovery:{retry_after_ms:Du}})}function zu(e){if(typeof e=="function")return e;if(typeof e=="object"&&e!==null&&"release"in e){let t=e.release;return typeof t=="function"?t:null}return null}function Hu(e,t,n,r){if(!n&&r){let o=t.warnings.length>0?` (${t.warnings.join(",")})`:"";throw new x(`Item ${e} lock is stale${o}; rerun with --force when supported for this command`,I.CONFLICT)}}function Uu(e){let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!="object"||t===null||Array.isArray(t))return null;let n=t,r=n.pid,o=n.token;return typeof r!="number"||!Number.isInteger(r)||r<=0||typeof o!="string"||o.length===0?null:{pid:r,token:o}}async function ts(e){try{return Uu(await ie.readFile(Ir.join(e,Zi),"utf8"))}catch{return null}}function Wu(e){try{return process.kill(e,0),!0}catch(t){return!xr(t,"ESRCH")}}async function Tr(e){try{return await ie.rm(e,{recursive:!0,force:!0}),!0}catch{return!1}}async function Gi(e,t){let n=await ts(e);n===null||n.token!==t||await Tr(e)}async function Xi(e){try{await ie.mkdir(e)}catch(n){return xr(n,"EEXIST"),null}let t={pid:process.pid,token:xu()};try{await ie.writeFile(Ir.join(e,Zi),`${JSON.stringify(t)}
|
|
152
|
-
`,"utf8")}catch{return await Tr(e),null}return t}async function Bu(e){let t;try{let r=await ie.stat(e);if(t=Date.now()-r.mtimeMs,t<=Lu)return!1}catch(r){return Ee(r)}let n=await ts(e);return n!==null&&Wu(n.pid)&&t<=ju?!1:Tr(e)}async function Vu(e,t){let n=`${e}${Pu}`,r=await Xi(n);if(r!==null)return async()=>Gi(n,r.token);if(!await Bu(n))return null;let o=await Xi(n);return o===null?null:async()=>Gi(n,o.token)}async function qu(e){let t=await Vu(e.lockPath,e.id);if(t===null)return{lockInfo:e.fallbackLockInfo,shouldRetryCreate:!1,staleRemovalCounted:!1};try{let n=await Ji(e.lockPath);if(n.info===null&&n.warnings.length===0)return{lockInfo:n,shouldRetryCreate:!0,staleRemovalCounted:!1};if(!Qi(n.info,e.ttlSeconds))return{lockInfo:n,shouldRetryCreate:!1,staleRemovalCounted:!1};if(Hu(e.id,n,e.force,e.forceRequiredForStaleLock),e.staleRemovals>=Mu)throw es(e.id,n.info,Date.now()-e.startedAtMs);return{lockInfo:n,shouldRetryCreate:await Yi(e.lockPath,"lock:stale_remove"),staleRemovalCounted:!0}}finally{await t()}}async function se(e,t,n,r,o=!1,i=!0,s){let a=await te("lock_acquire",{pm_root:e,id:t,ttl_seconds:n,owner:r,force:o,force_required_for_stale_lock:i});if(a.handled){let y=zu(a.result);if(y)return async()=>{await Promise.resolve(y()),await te("lock_release",{pm_root:e,id:t,owner:r})}}let c=ao(e,t),u=Fu(s),l=Date.now(),f=0,_=Ru;for(;;)try{return await Ou(c,t,r,n),async()=>{await Yi(c,"lock:release"),await te("lock_release",{pm_root:e,id:t,owner:r})}}catch(y){if(!xr(y,"EEXIST"))throw new x(`Failed to acquire lock for ${t}: ${uo(y)}`,I.GENERIC_FAILURE);let g=await Ji(c);if(Qi(g.info,n)){let k=await qu({lockPath:c,id:t,ttlSeconds:n,force:o,forceRequiredForStaleLock:i,staleRemovals:f,waitBudgetMs:u,startedAtMs:l,fallbackLockInfo:g});if(g=k.lockInfo,k.staleRemovalCounted&&(f+=1),k.shouldRetryCreate)continue}let E=Date.now()-l;if(u===0||E>=u)throw es(t,g.info,u===0?0:E);await $u(Math.min(_,u-E)),_=Math.min(_*2,Nu)}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8b8c705a-8d80-576f-8642-f6f686cdbed9")}catch{}})();var Q=8,as=500,Xu="metadata-derived-index",Ju="metadata-cache.json",Ku="metadata-cache-bodies.json",Yu="metadata-cache-collections.json",Qu="metadata-cache-delta.json",Zu="metadata-cache-manifest.json",ns=4,el=["comments","notes","learnings","files","tests","test_runs","docs"];function cs(){return xt(st())}function fn(e){let t={...e},n={};for(let r of el)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function ds(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function us(e,t,n,r){let o=Gu("sha256");o.update(`format:${e??"default"}`);let i=Object.entries(t).sort(([s],[a])=>s.localeCompare(a)).map(([s,a])=>`${s}=${a}`).join(",");return o.update(`|types:${i}`),n&&o.update(`|schema:${JSON.stringify(n)}`),r.length>0&&o.update(`|extension_fields:${r.join(",")}`),o.digest("hex").slice(0,16)}function mn(e){return R.join(e,"runtime",Ju)}function _n(e){return R.join(e,"runtime",Ku)}function pn(e){return R.join(e,"runtime",Yu)}function Or(e){return R.join(e,"runtime",Qu)}function Ar(e){return R.join(e,"runtime",Zu)}function yn(e,t){let n=R.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var tl=24,q=new Map,hn=new WeakMap;function Rr(e){return hn.get(e)??e.source_cursor}function nl(e,t){let n=Rr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){hn.set(e,n);for(let[r,o]of Object.entries(t.changes))o.entry?e.entries[r]=o.entry:delete e.entries[r];e.directory_signatures=t.directory_signatures,e.source_cursor=t.source_cursor}}function rl(e,t){if(!e)return;let n=Rr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){hn.set(e,n);for(let[r,o]of Object.entries(t.changes))o.body?e.bodies[r]=o.body:delete e.bodies[r];e.source_cursor=t.source_cursor}}function ol(e,t){if(!e)return;let n=Rr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){hn.set(e,n);for(let[r,o]of Object.entries(t.changes))o.collections?e.collections[r]=o.collections:delete e.collections[r];e.source_cursor=t.source_cursor}}function il(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(nl(e,r),rl(t,r),ol(n,r))}function Cr(e,t){q.size>=tl&&!q.has(e)&&Ot(q),q.set(e,t)}async function _e(e,t){let n;try{n=await F.stat(e)}catch{return q.delete(e),null}let r=q.get(e);if(r&<(r.signature,n.mtimeMs,n.ctimeMs,n.size))return q.delete(e),q.set(e,r),r.envelope;let o;try{o=t(await F.readFile(e,"utf8"))}catch{o=null}return Cr(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function sl(e,t,n){let r=a=>{let c=JSON.parse(a);return c.version!==Q||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=mn(e),i=await _e(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await _e(yn(o,t),r);return s===null&&_t(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function al(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==Q||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=_n(e),o=await _e(r,n);return t&&o?.context_fingerprint!==t?await _e(yn(r,t),n):o}async function cl(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==Q||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=pn(e),o=await _e(r,n);return t&&o?.context_fingerprint!==t?await _e(yn(r,t),n):o}async function Nr(e){let t=Or(e),n=await _e(t,r=>{let o=JSON.parse(r);return o.version!==Q||typeof o.base_source_cursor!="string"||typeof o.source_cursor!="string"||typeof o.changes!="object"||o.changes===null?null:o});if(n)return{envelope:n,invalid:!1};try{return await F.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function Dr(e){let t=Ar(e),n=await _e(t,r=>{let o=JSON.parse(r);return o.version!==Q||typeof o.context_fingerprint!="string"||typeof o.source_cursor!="string"||!Number.isInteger(o.entry_count)||o.entry_count<0||typeof o.directory_signatures!="object"||o.directory_signatures===null?null:o});if(n)return n;try{await F.stat(t),await qe(e)}catch{}return null}async function ft(e,t){await F.mkdir(R.dirname(e),{recursive:!0}),await W(e,JSON.stringify(t));try{let r=await F.stat(e);Cr(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{q.delete(e)}let n=R.dirname(R.dirname(e));if(e===mn(n)||e===_n(n)||e===pn(n)){let r=yn(e,t.context_fingerprint);await W(r,JSON.stringify(t));try{let c=await F.stat(r);Cr(r,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{q.delete(r)}let o=R.dirname(e),i=R.extname(e),s=R.basename(e,i),a=(await F.readdir(o,{withFileTypes:!0}).catch(()=>[])).filter(c=>c.isFile()&&c.name!==R.basename(e)&&c.name.startsWith(`${s}.`)&&c.name.endsWith(i)).map(c=>R.join(o,c.name));if(a.length>ns){let c=(await Promise.all(a.map(async u=>{try{return{path:u,mtime:(await F.stat(u)).mtimeMs}}catch{return null}}))).filter(u=>u!==null);for(let u of c.sort((l,f)=>l.mtime-f.mtime).slice(0,Math.max(0,c.length-ns)))await F.rm(u.path,{force:!0}),q.delete(u.path)}}}function dl(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function ls(e,t,n){return e===void 0||dl(e,t,n)}function _t(e,t){e&&!e.includes(t)&&e.push(t)}function lt(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function ul(e,t,n){let r=R.join(e,t);try{let o=await F.readdir(r);return{folder:t,dirPath:r,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&!Ee(o)&&_t(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function ll(e,t){try{let n=await F.stat(R.join(e,t));return[t,{exists:!0,mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size}]}catch{return[t,{exists:!1,mtime_ms:0,ctime_ms:0,size:0}]}}async function ln(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await ll(e,n))))}function mt(e,t){return!e||Object.keys(e).length!==Object.keys(t).length?!1:Object.entries(t).every(([n,r])=>{let o=e[n];return o!==void 0&&o.exists===r.exists&<(o,r.mtime_ms,r.ctime_ms,r.size)})}function fl(e){return Ct.some(t=>e.toLowerCase().endsWith(t))}function ml(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function _l(e,t,n){if(n)for(let r of await Y({path:e,scope:"project"}))_t(t,r)}function rs(e,t,n,r){if(e)return t&&n?n.collections:r}async function pl(e,t,n){let r=await F.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=An(e);await _l(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],u=!n.forceSourceRead&&c!==void 0&<(c,o,i,s),l=n.previousBodies[t],f=!n.forceSourceRead&&l!==void 0&<(l,o,i,s),_=n.previousCollections[t],y=!n.forceSourceRead&&_!==void 0&<(_,o,i,s);if(!(!u||n.includeBody&&!f||n.includeCollections&&!y))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:c.metadata,heavyMetadata:rs(n.includeCollections,y,_,void 0),bodyLength:c.body_length,body:n.includeBody?l.body:void 0};let E=await F.readFile(e,"utf8"),k=Wt(E,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:M=>_t(n.warnings,M)}),A=fn(k.metadata);return ml(n.state.misses,n.includeBody,n.includeCollections,u,f,y),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:u?c.metadata:A.light,heavyMetadata:rs(n.includeCollections,y,_,A.heavy),bodyLength:u?c.body_length:k.body.length,body:n.includeBody?k.body:void 0}}function yl(e,t,n,r){n.state.newEntries[t]={mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size,metadata:r.lightMetadata,body_length:r.bodyLength},n.includeBody&&r.body!==void 0&&(n.state.newBodies[t]={mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size,body:r.body}),n.includeCollections&&r.heavyMetadata!==void 0&&(n.state.newCollections[t]={mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size,collections:r.heavyMetadata});let o=n.includeCollections?ds(r.lightMetadata,r.heavyMetadata):r.lightMetadata,i=n.state.documentsById.get(o.id),s={metadata:o,body:r.body,item_format:r.itemFormat,item_path:e};ls(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function hl(e,t,n,r){try{let o=await pl(t,n,r);yl(t,n,r,o)}catch{_t(r.warnings,`item_list_item_read_failed:${e}/${R.basename(t)}`)}}function gl(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function bl(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function wl(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function El(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}function kl(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!fl(s))continue;let a=R.join(o,s),c=R.relative(t.pmRoot,a);n.push(hl(r,a,c,t))}return n}async function vl(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!mt(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await ft(mn(e.pmRoot),{version:Q,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await ft(Ar(e.pmRoot),{version:Q,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,entry_count:Object.keys(e.state.newEntries).length,directory_signatures:e.directorySignatures});let n=[...e.state.documentsById.values()].map(({candidate:r})=>({relativePath:R.relative(e.pmRoot,r.item_path),metadata:fn(r.metadata).light,linkedFiles:r.metadata.files??[]}));n.length>=e.minimumIndexedItems?await Bi({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:n}):await un(e.pmRoot)}catch{}}async function Sl(e){!(e.state.misses.body||Object.keys(e.previousBodies).length!==Object.keys(e.state.newBodies).length)&&e.existingBodyCache!==null&&e.existingBodyCache.context_fingerprint===e.contextFingerprint||await ft(_n(e.pmRoot),{version:Q,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function Il(e){!(e.state.misses.collections||Object.keys(e.previousCollections).length!==Object.keys(e.state.newCollections).length)&&e.existingCollectionsCache!==null&&e.existingCollectionsCache.context_fingerprint===e.contextFingerprint||await ft(pn(e.pmRoot),{version:Q,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function Mr(e,t,n={}){let r=await Dr(e);return n.required!==!0&&(r===null||r.entry_count<as)?async()=>{}:se(e,Xu,30,t,!1,!1,3e3)}async function qy(e,t){let n=await Dr(e);if(n===null)return null;let r=await Nr(e);if(r.invalid)return await qe(e),null;let o=r.envelope?.context_fingerprint===n.context_fingerprint&&r.envelope.base_source_cursor===n.source_cursor?r.envelope.source_cursor:n.source_cursor,i=r.envelope?.context_fingerprint===n.context_fingerprint&&r.envelope.base_source_cursor===n.source_cursor?r.envelope.directory_signatures:n.directory_signatures;return t&&!mt(i,await ln(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function os(e,t){let n=R.relative(e,t);return n===""||n===".."||n.startsWith(`..${R.sep}`)||R.isAbsolute(n)?null:n}async function qe(e){await Promise.all([mn(e),_n(e),pn(e),Or(e),Ar(e)].map(async t=>{await F.rm(t,{force:!0}),q.delete(t)})),await un(e)}async function xl(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await F.stat(e.mutation.itemPath),n=fn(e.mutation.document.metadata),r={mtime_ms:t.mtimeMs,ctime_ms:t.ctimeMs,size:t.size};return{entry:{...r,metadata:n.light,body_length:e.mutation.document.body.length},body:{...r,body:e.mutation.document.body},collections:{...r,collections:n.heavy}}}function Tl(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function Pr(e){let t=os(e.pmRoot,e.itemPath),n=e.previousItemPath?os(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await qe(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=us(e.preferredFormat,e.typeToFolder,e.schema,cs()),o=await Dr(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await Nr(e.pmRoot);if(s.invalid)return await qe(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=Tl(s.envelope,r,i),c=s.envelope?.context_fingerprint===r&&s.envelope.base_source_cursor===i?s.envelope.source_cursor:i;n!==void 0&&(a[n]={entry:null,body:null,collections:null}),a[t]=await xl({mutation:e});let u=ss();return await ft(Or(e.pmRoot),{version:Q,context_fingerprint:r,base_source_cursor:i,source_cursor:u,directory_signatures:await ln(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await Vi({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:u,row:e.document===null?null:{relativePath:t,metadata:fn(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await un(e.pmRoot),[]}catch{return await qe(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function Cl(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function is(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function Ol(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function Al(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=An(n);if(!o)continue;let i=e.includeCollections?ds(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);ls(s?.itemFormat,o,e.preferredFormat)&&t.set(i.id,{itemFormat:o,candidate:{metadata:i,body:e.includeBody?e.previousBodies[n]?.body:void 0,item_format:o,item_path:R.join(e.pmRoot,n)}})}return[...t.values()].sort((n,r)=>n.candidate.metadata.id.localeCompare(r.candidate.metadata.id)).map(n=>n.candidate)}function Rl(e){return e.forceSourceScan||ur()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!mt(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||is(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||is(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&Ol(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function gn(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=cs(),u=us(t,n,o,c),l=await Nr(e);l.invalid&&await qe(e);let f=await sl(e,u,i.cacheDiagnostics),_=s?await al(e,u):null,y=a?await cl(e,u):null;il(f,_,y,l.envelope);let g=gl(f,u),E=bl(_,u),k=wl(y,u),A=[...new Set(Object.values(n))],M=await ln(e,A),U=Object.keys(g),z=Math.max(1,Math.floor(i.derivedIndexMinimumItems??as));if(Rl({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:u,existingCache:f,existingBodyCache:_,existingCollectionsCache:y,directorySignatures:M,entryKeys:U,minimumIndexedItems:z,includeBody:s,includeCollections:a,previousBodies:E,previousCollections:k}))return Al({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:g,previousBodies:E,previousCollections:k});let Z=await Promise.all(A.map(ea=>ul(e,ea,r))),be=ur(),H=El(),In={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,forceSourceRead:i.forceSourceScan===!0,dispatchReadHooks:be,previousEntries:g,previousBodies:E,previousCollections:k,state:H};await Promise.all(kl(Z,In));let gt=await ln(e,A),bt=mt(M,gt)?gt:{},xn=H.misses.metadata||Object.keys(g).length!==Object.keys(H.newEntries).length||!mt(f?.directory_signatures,bt)||f===null?ss():f.source_cursor;return await vl({pmRoot:e,contextFingerprint:u,sourceCursor:xn,existingCache:f,previousEntries:g,directorySignatures:bt,state:H,minimumIndexedItems:z}),s&&await Sl({pmRoot:e,contextFingerprint:u,sourceCursor:xn,existingBodyCache:_,previousBodies:E,state:H}),a&&await Il({pmRoot:e,contextFingerprint:u,sourceCursor:xn,existingCollectionsCache:y,previousCollections:k,state:H}),Cl(H)}async function fs(e,t,n,r,o){return(await gn(e,t,n,r,o,{includeBody:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}async function ms(e,t,n,r,o){return(await gn(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}import Nl from"node:fs/promises";import Ge from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9027d972-ce29-5511-ba81-27e17d97446e")}catch{}})();var pt="_workspace";function Lr(e){return Ge.join(e,"history",`${pt}.jsonl`)}function Dl(e,t){return{metadata:{id:pt,title:"Workspace state",description:"Audited singleton workspace document state.",type:"Chore",status:"open",priority:2,tags:["workspace-history"],created_at:t,updated_at:t,documents:e},body:""}}function jr(e,t=e.length){let n=tn();for(let r of e.slice(0,t))n=rn(n,r.patch).document;return nn(n)}function _s(e){return"documents"in e.metadata&&typeof e.metadata.documents=="object"&&e.metadata.documents!==null&&!Array.isArray(e.metadata.documents)?e.metadata.documents:{}}function Fr(e){throw new x(`Workspace history verification failed: ${e.join(", ")}`,I.CONFLICT,{code:"workspace_history_chain_invalid",reason:"workspace_history_chain_verification_failed",verification_errors:[...e],required:"Repair the _workspace history chain before reading, reconciling, restoring, or appending audited singleton state.",why:"Continuing against an unverifiable append-only stream could hide or compound workspace state corruption.",examples:["pm history _workspace --verify --json","pm validate --check-history-drift --fix-hints --json"],nextSteps:["Inspect the exact verification_errors and preserve the corrupt stream as evidence.","Use the history-drift remediation returned by validate before retrying the refused operation."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify --json"}})}function Ml(e,t){let n=Ge.resolve(t),r=Ge.relative(e,n).replaceAll("\\","/");if(r.length===0||r===".."||r.startsWith("../")||Ge.isAbsolute(r))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:r,absolutePath:n}}async function oh(e){let t=await ze(Lr(e),pt),n=on(t);n.ok||Fr(n.errors);let r=_s(t.length===0?Re:jr(t)),o=[],i=[],s=[],a=[];for(let c of Object.keys(r).sort()){let u;try{let l=Ml(e,Ge.resolve(e,c));if(u=await de(l.absolutePath),u===null){s.push(c);continue}let f=JSON.parse(u);(D(f)===D(r[c])?o:i).push(c)}catch{a.push(c)}}return{ok:i.length===0&&s.length===0&&a.length===0,document_count:Object.keys(r).length,matching_documents:o,mismatched_documents:i,missing_documents:s,unreadable_documents:a}}async function ps(e){let t=Lr(e.pmRoot),n=await ze(t,pt),r=on(n);r.ok||Fr(r.errors);let o=e.idempotencyKey===void 0?void 0:n.find(f=>f.op===`${e.op}:${e.idempotencyKey}`);if(o)return{entry:o,historyPath:t};let i=new Date().toISOString(),s=n.length===0?Re:jr(n),a=_s(s),c=a[e.documentPath];if(c!==void 0&&D(c)!==D(e.before))throw new x(`Workspace history state for "${e.documentPath}" changed outside the audited mutation path.`,I.CONFLICT,{code:"workspace_history_state_conflict",reason:"out_of_band_workspace_state",required:"Reconcile the singleton document with its matching _workspace history state before retrying the mutation.",why:"Accepting the write would make the append-only audit stream describe a state that was not actually observed.",examples:["pm history _workspace --verify","pm validate --check-history-drift --fix-hints"],nextSteps:["Review the version-control change that altered the singleton and preserve the intended document plus its matching workspace history.","Rerun the original mutation only after the on-disk singleton agrees with the latest audited workspace state."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify"}});let u=Dl({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),l=We({nowIso:i,author:e.author,op:e.idempotencyKey===void 0?e.op:`${e.op}:${e.idempotencyKey}`,before:s,after:u,message:e.message});return await Be(t,l),{entry:l,historyPath:t}}async function ih(e){let t=await se(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await ps(e)}finally{await t()}}async function sh(e){let t=await se(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=Lr(e.pmRoot),r=await ze(n,pt),o=on(r);o.ok||Fr(o.errors);let i=r.length===0?Re:jr(r),s=We({nowIso:new Date().toISOString(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await Be(n,s),{entry:s,historyPath:n}}finally{await t()}}async function ys(e,t){if(t===e.raw)return!1;let n=t===null?null:JSON.parse(t),r=JSON.parse(e.raw);await W(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await ps({pmRoot:e.pmRoot,documentPath:Ge.relative(e.pmRoot,e.filePath).replaceAll("\\","/"),before:n,after:r,op:e.op,author:e.author,lockTtlSeconds:e.lockTtlSeconds,lockWaitMs:e.lockWaitMs,message:e.message})}catch(o){throw t===null?await Nl.rm(e.filePath,{force:!0}):await W(e.filePath,t),o}return!0}async function ah(e){let t=await se(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=await de(e.filePath),r=await e.mutate(n);return{changed:await ys({...e,raw:r.raw},n),result:r.result}}finally{await t()}}async function hs(e){let t=await se(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await ys(e,await de(e.filePath))}finally{await t()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8883f930-193e-5133-835a-f15b1b62f6be")}catch{}})();var j={ok:!1},m=e=>typeof e=="string"?{ok:!0,value:e}:j,T=e=>typeof e=="boolean"?{ok:!0,value:e}:j;function O(e={}){return t=>typeof t!="number"||!Number.isFinite(t)||e.int&&(!Number.isInteger(t)||!Number.isSafeInteger(t))||e.positive&&t<=0||typeof e.min=="number"&&t<e.min||typeof e.max=="number"&&t>e.max?j:{ok:!0,value:t}}function C(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:j}function p(e,t){return n=>{if(!Array.isArray(n)||t!==void 0&&n.length>t)return j;let r=[];for(let o of n){let i=e(o);if(!i.ok)return j;r.push(i.value)}return{ok:!0,value:r}}}function zr(e,t){return n=>typeof n=="string"&&n.length>0&&n.length<=e&&n===n.trim()&&(t===void 0||t.test(n))?{ok:!0,value:n}:j}function d(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function bn(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return j;let n={};for(let[r,o]of Object.entries(t)){let i=e(o);if(!i.ok)return j;n[r]=i.value}return{ok:!0,value:n}}}function S(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return j;let n=t,r={};for(let[o,i]of Object.entries(e)){let s=i(n[o]);if(!s.ok)return j;s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var Pl=S({key:m,values:p(m),required:d(T),aliases:d(p(m)),description:d(m)}),Ll=S({command:C("create","update"),option:m,required:d(T),visible:d(T),enabled:d(T)}),jl=S({name:m,description:d(m),default_status:d(m),folder:d(m),aliases:d(p(m)),required_create_fields:d(p(m)),required_create_repeatables:d(p(m)),options:d(p(Pl)),command_option_policies:d(p(Ll))}),Fl=S({id:m,aliases:d(p(m)),roles:d(p(C(...Yr))),description:d(m),order:d(O())}),$l=S({key:m,metadata_key:d(m),front_matter_key:d(m),cli_flag:d(m),cli_aliases:d(p(m)),description:d(m),type:d(C(...Qr)),commands:d(p(C(...Zr))),repeatable:d(T),required:d(T),required_on_create:d(T),required_types:d(p(m)),allow_unset:d(T)}),zl=e=>{if(!Array.isArray(e)||e.length!==2)return j;let[t,n]=e;return typeof t!="string"||typeof n!="string"?j:{ok:!0,value:[t,n]}},Hl=S({type:m,allowed_transitions:p(zl)}),Ul=d(S({version:d(O({int:!0})),files:d(S({types:d(m),statuses:d(m),fields:d(m),workflows:d(m)})),statuses:d(p(Fl)),fields:d(p($l)),workflow:d(S({draft_status:d(m),open_status:d(m),in_progress_status:d(m),blocked_status:d(m),close_status:d(m),canceled_status:d(m)})),type_workflows:d(p(Hl)),unknown_field_policy:d(C(...eo))})),Wl=d(S({preset:d(C(...to)),ownership_enforcement:d(C("none","warn","strict")),create_mode_default:d(C("progressive","strict")),close_validation_default:d(C("off","warn","strict")),require_close_reason:d(T),parent_reference:d(C("warn","strict_error")),metadata_profile:d(C("core","strict","custom")),force_required_for_stale_lock:d(T),create_default_type:d(m),workflow_enforcement:d(C("off","warn","strict")),duplicate_detection_mode:d(C("off","advisory","strict")),duplicate_detection_threshold:d(O({min:0,max:1})),duplicate_detection_limit:d(O({int:!0,min:0,max:20}))})),Bl=S({name:m,disabled:d(T),require_trusted:d(T),require_provenance:d(T),sandbox_profile:d(C("none","restricted","strict")),allowed_capabilities:d(p(m)),blocked_capabilities:d(p(m)),allowed_surfaces:d(p(m)),blocked_surfaces:d(p(m)),allowed_commands:d(p(m)),blocked_commands:d(p(m)),allowed_actions:d(p(m)),blocked_actions:d(p(m)),allowed_services:d(p(m)),blocked_services:d(p(m))}),$r=C("block","warn"),Vl=e=>typeof e=="string"?$r(e):S({global:d($r),project:d($r)})(e),ql=d(S({mode:d(C("off","warn","enforce")),trust_mode:d(C("off","warn","enforce")),pm_max_version_exceeded_mode:d(Vl),require_provenance:d(T),trusted_extensions:d(p(m)),default_sandbox_profile:d(C("none","restricted","strict")),allowed_extensions:d(p(m)),blocked_extensions:d(p(m)),allowed_capabilities:d(p(m)),blocked_capabilities:d(p(m)),allowed_surfaces:d(p(m)),blocked_surfaces:d(p(m)),allowed_commands:d(p(m)),blocked_commands:d(p(m)),allowed_actions:d(p(m)),blocked_actions:d(p(m)),allowed_services:d(p(m)),blocked_services:d(p(m)),extension_overrides:d(p(Bl))})),Ae=zr(128),Gl=S({harness:zr(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:d(p(Ae,64)),model_environment_keys:d(p(Ae,64)),session_environment_keys:d(p(Ae,64)),provenance_environment_keys:d(bn(p(Ae,64))),provenance_resolvers:d(bn(C("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:d(p(Ae,64)),argv_markers:d(p(Ae,64)),client_names:d(p(Ae,64))}),Xl=S({version:O({int:!0}),id_prefix:m,ids:d(S({token_length:d(O({int:!0,min:4,max:12}))})),author_default:m,agent_identity:d(S({probes_enabled:d(T),identity_vocabulary:d(S({version:O({int:!0,positive:!0}),aliases:bn(zr(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:p(Gl)})),mutation_guard:d(S({require_attributed_author:d(T),secret_guard:d(C("off","advise","block")),stale_in_progress_hours:d(O({int:!0,positive:!0}))})),item_format:d(C("toon","json_markdown")),locks:S({ttl_seconds:O({int:!0}),wait_ms:d(O({int:!0,min:0}))}),checkpoints:d(S({retention_days:d(O({int:!0,positive:!0}))})),output:S({default_format:C("toon","json")}),ux:d(S({deprecation_hints:d(T)})),history:d(S({missing_stream:C("auto_create","strict_error"),compact_policy:d(S({enabled:d(T),max_entries:d(O({int:!0,positive:!0})),trigger:d(C("health_warn","auto"))}))})),validation:d(S({sprint_release_format:C("warn","strict_error"),parent_reference:d(C("warn","strict_error")),metadata_profile:d(C("core","strict","custom")),metadata_required_fields:d(p(m)),lifecycle_stale_blocker_reason_patterns:d(p(m)),lifecycle_closure_like_blocked_reason_patterns:d(p(m)),lifecycle_closure_like_resolution_patterns:d(p(m)),lifecycle_closure_like_actual_result_patterns:d(p(m)),estimate_defaults_by_type:d(bn(O({int:!0,positive:!0})))})),governance:Wl,workflow:d(S({definition_of_done:p(m)})),testing:d(S({record_results_to_items:T})),telemetry:d(S({enabled:T,first_run_prompt_completed:d(T),capture_level:d(C("minimal","redacted","max")),endpoint:d(m),installation_id:d(m),retention_days:d(O({int:!0,positive:!0}))})),agent_guidance:d(S({prompt_completed:d(T),declined:d(T),declined_at:d(m),template_version:d(O({int:!0,positive:!0})),last_checked_files:d(p(m))})),item_types:d(S({definitions:p(jl)})),schema:Ul,context:d(S({default_depth:d(C("brief","standard","deep")),activity_limit:d(O({int:!0,positive:!0})),stale_threshold_days:d(O({int:!0,positive:!0})),sections:d(S({hierarchy:d(T),activity:d(T),progress:d(T),recently_created:d(T),unparented:d(T),blockers:d(T),files:d(T),workload:d(T),staleness:d(T),tests:d(T)}))})),extensions:S({enabled:p(m),disabled:p(m),policy:ql}),search:S({score_threshold:O(),hybrid_semantic_weight:d(O()),max_results:O({int:!0}),embedding_model:m,embedding_corpus_max_characters:d(O()),embedding_batch_size:O({int:!0}),embedding_timeout_ms:d(O({int:!0})),scanner_max_batch_retries:O({int:!0}),provider:d(m),corpus_fields:d(p(m)),mutation_refresh_policy:d(C("cache_only","semantic_configured","semantic_auto")),query_expansion:d(S({enabled:d(T),provider:d(m)})),rerank:d(S({enabled:d(T),model:d(m),top_k:d(O({int:!0,positive:!0}))})),bm25:d(S({k1:d(O()),b:d(O())}))}),providers:S({openai:S({base_url:m,api_key:m,model:m}),ollama:S({base_url:m,model:m})}),vector_store:S({adapter:d(m),collection_name:d(m),qdrant:S({url:m,api_key:m}),lancedb:S({path:m})})});function gs(e){let t=Xl(e);return t.ok?{success:!0,data:t.value}:{success:!1}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2d377bc4-c624-561c-9856-405c82099070")}catch{}})();var Jl={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},bs=120;function Hr(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function Es(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var Kl=Es(Jl),ws=new WeakMap;function Yl(e){let t=ws.get(e);if(t)return t;let n=Es(e);return ws.set(e,n),n}function lh(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return bs;if(t){let o=Yl(t).get(n);if(Hr(o))return Math.floor(o)}let r=Kl.get(n);return Hr(r)?Math.floor(r):bs}function Ur(e){let t={};if(e===null||typeof e!="object"||Array.isArray(e))return t;for(let[n,r]of Object.entries(e)){let o=n.trim();o.length===0||!Hr(r)||(t[o]=Math.floor(r))}return t}import{stat as Ql}from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="60da76ea-0bd3-56a9-a2bc-d88ba76e1013")}catch{}})();var wn=new Map;function ks(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function Zl(e){try{let t=await Ql(e);return{path:e,mtime_ms:t.mtimeMs,size:t.size}}catch{return{path:e,mtime_ms:null,size:null}}}async function pe(e){let t=ks(e),n=await Promise.all(t.map(r=>Zl(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function yt(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){let r=e[n],o=t[n];if(r.path!==o.path||r.mtime_ms!==o.mtime_ms||r.size!==o.size)return!1}return!0}function vs(e){return wn.get(e)}function En(e,t){let n=ks(t.tracked_paths),r=[...t.signatures].map(o=>({path:o.path,mtime_ms:o.mtime_ms,size:o.size})).sort((o,i)=>o.path.localeCompare(i.path));wn.set(e,{tracked_paths:n,signatures:r,value:t.value})}function ye(e){if(e){wn.delete(e);return}wn.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="67bf189e-e816-536d-9051-589a2e468423")}catch{}})();var ef="settings:write",Cs=Symbol("pm.settings.persist_source"),tf=128,nf=new Set(["off","advisory","strict"]);function Ss(e){return structuredClone(ro[e])}function rf(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:b.governance.preset}function Is(e,t){let n=typeof t.create_default_type=="string"?t.create_default_type.trim():void 0;return n&&n.length>0&&(e.create_default_type=n),(t.workflow_enforcement==="off"||t.workflow_enforcement==="warn"||t.workflow_enforcement==="strict")&&(e.workflow_enforcement=t.workflow_enforcement),t.require_close_reason===!1&&(e.require_close_reason=!1),e.duplicate_detection_mode=t.duplicate_detection_mode,e.duplicate_detection_threshold=t.duplicate_detection_threshold,e.duplicate_detection_limit=t.duplicate_detection_limit,e}function of(e){return e.preset==="custom"?Is({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):Is({preset:e.preset},e)}function sf(e){let t=typeof e.create_default_type=="string"?e.create_default_type.trim():void 0,n={};t&&t.length>0&&(n.create_default_type=t),(e.workflow_enforcement==="off"||e.workflow_enforcement==="warn"||e.workflow_enforcement==="strict")&&(n.workflow_enforcement=e.workflow_enforcement),typeof e.require_close_reason=="boolean"&&(n.require_close_reason=e.require_close_reason),nf.has(String(e.duplicate_detection_mode))&&(n.duplicate_detection_mode=e.duplicate_detection_mode);let r=e.duplicate_detection_threshold;[typeof r=="number",Number.isFinite(r),Number(r)>=0,Number(r)<=1].every(Boolean)&&(n.duplicate_detection_threshold=r);let o=e.duplicate_detection_limit;return[typeof o=="number",Number.isSafeInteger(o),Number(o)>=0,Number(o)<=20].every(Boolean)&&(n.duplicate_detection_limit=o),n}function vn(e){let t=e.governance??{},n=rf(t.preset),r=sf(t);if(n==="custom"){let s=Ss("default"),a=r.require_close_reason??s.require_close_reason;return{preset:n,ownership_enforcement:t.ownership_enforcement??s.ownership_enforcement,create_mode_default:t.create_mode_default??s.create_mode_default,close_validation_default:t.close_validation_default??s.close_validation_default,parent_reference:t.parent_reference??s.parent_reference,metadata_profile:t.metadata_profile??s.metadata_profile,force_required_for_stale_lock:t.force_required_for_stale_lock??s.force_required_for_stale_lock,...r,require_close_reason:a,duplicate_detection_mode:r.duplicate_detection_mode??s.duplicate_detection_mode,duplicate_detection_threshold:r.duplicate_detection_threshold??s.duplicate_detection_threshold,duplicate_detection_limit:r.duplicate_detection_limit??s.duplicate_detection_limit}}let o=Ss(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function Os(){return structuredClone(b)}function As(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:b.search.mutation_refresh_policy}function Rs(e){return typeof e=="boolean"?e:b.search.query_expansion.enabled}function Ns(e){return typeof e!="string"?b.search.query_expansion.provider:e.trim()}function Ds(e){return typeof e=="boolean"?e:b.search.rerank.enabled}function Ms(e){return typeof e!="string"?b.search.rerank.model:e.trim()}function Ps(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:b.search.rerank.top_k}function Ls(e){if(typeof e!="string")return b.vector_store.collection_name;let n=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,tf);return n.length>0?n:b.vector_store.collection_name}function Wr(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function af(e,t){let n=e.schema,r=Wr(n?.statuses),o=Wr(n?.fields),i=Wr(n?.type_workflows);return{source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:Xe(e.item_types?.definitions),has_source_schema_statuses:r.present,source_schema_statuses:r.values,has_source_schema_fields:o.present,source_schema_fields:o.values,has_source_schema_type_workflows:i.present,source_schema_type_workflows:i.values,runtime_item_type_definitions:Xe(t.item_types?.definitions),runtime_schema_statuses:structuredClone(t.schema.statuses),runtime_schema_fields:structuredClone(t.schema.fields),runtime_schema_type_workflows:structuredClone(t.schema.type_workflows??[])}}function js(e,t){Object.defineProperty(e,Cs,{value:t,writable:!0,configurable:!0,enumerable:!1})}function Fs(e){let t=e[Cs];if(!(!t||typeof t!="object"))return t}function kn(e){let t=structuredClone(e.settings),n=Fs(e.settings);return n&&js(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function cf(e,t,n){let r=Ze(t);return[n,et(e,r.files.types,Qe.types),et(e,r.files.statuses,Qe.statuses),et(e,r.files.fields,Qe.fields),et(e,r.files.workflows,Qe.workflows)]}async function df(e,t,n){let r=await pe(t);En(e,{tracked_paths:t,signatures:r,value:kn(n)})}async function uf(e,t,n){try{await df(e,t,n)}catch{ye(e)}}function xs(e,t){return e.find(n=>n.path===t)}function lf(e,t,n){for(let r of n){let o=xs(e,r),i=xs(t,r);if(!o||!i||!yt([o],[i]))return!1}return!0}async function Br(e,t,n,r,o){try{let i=await pe(t);if(!lf(r,i,o)){ye(e);return}En(e,{tracked_paths:t,signatures:i,value:kn(n)})}catch{ye(e)}}function ff(e,t){let n=Ze(e.schema),r=Xe(e.item_types?.definitions);if(!t)return{item_type_definitions:r,schema_statuses:n.statuses,schema_fields:n.fields,schema_type_workflows:n.type_workflows};let o=n.type_workflows??[],i=Ne(r,t.runtime_item_type_definitions),s=Ne(n.statuses,t.runtime_schema_statuses),a=Ne(n.fields,t.runtime_schema_fields),c=Ne(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?Xe(t.source_item_type_definitions):[]:r,schema_statuses:s?t.has_source_schema_statuses?structuredClone(t.source_schema_statuses):[]:n.statuses,schema_fields:a?t.has_source_schema_fields?structuredClone(t.source_schema_fields):[]:n.fields,schema_type_workflows:c?t.has_source_schema_type_workflows?structuredClone(t.source_schema_type_workflows):void 0:n.type_workflows}}function ht(e){return{settings:Os(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function mf(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function qr(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function $s(e){let t=b.agent_guidance,n=e?.template_version;return{prompt_completed:e?.prompt_completed===!0,declined:e?.declined===!0,declined_at:typeof e?.declined_at=="string"?e.declined_at:t.declined_at,template_version:typeof n=="number"&&Number.isInteger(n)&&n>0?n:t.template_version,last_checked_files:qr(e?.last_checked_files??t.last_checked_files)}}function J(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function _f(e){return e==="off"||e==="warn"||e==="enforce"?e:b.extensions.policy.mode}function pf(e){return e==="off"||e==="warn"||e==="enforce"?e:b.extensions.policy.trust_mode}function zs(e){return e==="none"||e==="restricted"||e==="strict"?e:b.extensions.policy.default_sandbox_profile}function yf(e){let t=e.name.trim().toLowerCase();if(t.length===0)return null;let n={name:t};e.disabled===!0&&(n.disabled=!0),e.require_trusted===!0&&(n.require_trusted=!0),e.require_provenance===!0&&(n.require_provenance=!0),e.sandbox_profile!==void 0&&(n.sandbox_profile=zs(e.sandbox_profile));let r=J(e.allowed_capabilities),o=J(e.blocked_capabilities),i=J(e.allowed_surfaces),s=J(e.blocked_surfaces),a=J(e.allowed_commands),c=J(e.blocked_commands),u=J(e.allowed_actions),l=J(e.blocked_actions),f=J(e.allowed_services),_=J(e.blocked_services);return r.length>0&&(n.allowed_capabilities=r),o.length>0&&(n.blocked_capabilities=o),i.length>0&&(n.allowed_surfaces=i),s.length>0&&(n.blocked_surfaces=s),a.length>0&&(n.allowed_commands=a),c.length>0&&(n.blocked_commands=c),u.length>0&&(n.allowed_actions=u),l.length>0&&(n.blocked_actions=l),f.length>0&&(n.allowed_services=f),_.length>0&&(n.blocked_services=_),n}function hf(e){let t=new Map;for(let n of e??[]){let r=yf(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function Vr(e){return e==="block"||e==="warn"?e:void 0}function gf(e){if(typeof e=="string")return Vr(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=Vr(e.global),n=Vr(e.project);return t===void 0&&n===void 0?void 0:{...t!==void 0?{global:t}:{},...n!==void 0?{project:n}:{}}}}function B(e,t){return J(e?.[t]??b.extensions.policy[t])}function Hs(e){let t=gf(e?.pm_max_version_exceeded_mode);return{mode:_f(e?.mode),trust_mode:pf(e?.trust_mode),...t!==void 0?{pm_max_version_exceeded_mode:t}:{},require_provenance:e?.require_provenance===!0,trusted_extensions:B(e,"trusted_extensions"),default_sandbox_profile:zs(e?.default_sandbox_profile),allowed_extensions:B(e,"allowed_extensions"),blocked_extensions:B(e,"blocked_extensions"),allowed_capabilities:B(e,"allowed_capabilities"),blocked_capabilities:B(e,"blocked_capabilities"),allowed_surfaces:B(e,"allowed_surfaces"),blocked_surfaces:B(e,"blocked_surfaces"),allowed_commands:B(e,"allowed_commands"),blocked_commands:B(e,"blocked_commands"),allowed_actions:B(e,"allowed_actions"),blocked_actions:B(e,"blocked_actions"),allowed_services:B(e,"allowed_services"),blocked_services:B(e,"blocked_services"),extension_overrides:hf(e?.extension_overrides??b.extensions.policy.extension_overrides)}}function Us(e){return[...new Set((e??[]).map(n=>n.trim().toLowerCase().replaceAll("-","_")))].filter(n=>n.length>0).sort((n,r)=>n.localeCompare(r)).filter(n=>["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"].includes(n))}function he(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function N(e,t){return e===void 0?t:e}function V(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function Gr(e){return Array.isArray(e)?e:[]}function bf(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:Us(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:he(e.validation?.lifecycle_stale_blocker_reason_patterns??t.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:he(e.validation?.lifecycle_closure_like_blocked_reason_patterns??t.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:he(e.validation?.lifecycle_closure_like_resolution_patterns??t.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:he(e.validation?.lifecycle_closure_like_actual_result_patterns??t.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:Ur(e.validation?.estimate_defaults_by_type)}}function wf(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 Ef(e,t){return{...t.search,...e.search,mutation_refresh_policy:As(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:Rs(e.search?.query_expansion?.enabled),provider:Ns(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:Ds(e.search?.rerank?.enabled),model:Ms(e.search?.rerank?.model),top_k:Ps(e.search?.rerank?.top_k)}}}function kf(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:Ls(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function vf(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function Sf(e,t){return{default_depth:e.context?.default_depth??t.context.default_depth,activity_limit:e.context?.activity_limit??t.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??t.context.stale_threshold_days,sections:{...t.context.sections,...e.context?.sections}}}function If(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function Xe(e){let t=(e??[]).map(r=>io(r)).filter(r=>r!==null),n=new Map;for(let r of t)n.set(r.name.toLowerCase(),r);return[...n.values()].sort((r,o)=>r.name.localeCompare(o.name))}function Ws(e){let t=Os(),n=vn({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:vf(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:bf(e,t,n),governance:n,workflow:{definition_of_done:[...e.workflow?.definition_of_done??t.workflow.definition_of_done]},testing:{record_results_to_items:e.testing?.record_results_to_items??t.testing.record_results_to_items},telemetry:wf(e,t),agent_guidance:$s(e.agent_guidance??t.agent_guidance),item_types:{definitions:Xe(e.item_types?.definitions)},schema:Ze(e.schema??t.schema),context:Sf(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:Hs(e.extensions.policy??t.extensions.policy)},search:Ef(e,t),providers:If(e,t),vector_store:kf(e,t)}}function xf(e){e.agent_identity=v(e.agent_identity,["probes_enabled","identity_vocabulary","harness_signals"]);let t=e.agent_identity;Object.hasOwn(t,"identity_vocabulary")&&(t.identity_vocabulary=v(V(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=Gr(e.agent_identity.harness_signals).map(n=>v(V(n),["harness","environment_keys","model_environment_keys","session_environment_keys","provenance_environment_keys","provenance_resolvers","provenance_unavailable_dimensions","argv_markers","client_names"])),e.locks=v(e.locks,["ttl_seconds","wait_ms"]),e.ids=v(e.ids,["token_length"]),e.mutation_guard=v(e.mutation_guard,["require_attributed_author","secret_guard","stale_in_progress_hours"]),e.checkpoints=v(e.checkpoints,["retention_days"]),e.output=v(e.output,["default_format"]),e.ux=v(e.ux,["deprecation_hints"]),e.history=v(e.history,["missing_stream","compact_policy"]),e.validation=v(e.validation,["sprint_release_format","parent_reference","metadata_profile","metadata_required_fields","lifecycle_stale_blocker_reason_patterns","lifecycle_closure_like_blocked_reason_patterns","lifecycle_closure_like_resolution_patterns","lifecycle_closure_like_actual_result_patterns","estimate_defaults_by_type"]),e.governance=v(e.governance,["preset","ownership_enforcement","create_mode_default","close_validation_default","require_close_reason","parent_reference","metadata_profile","force_required_for_stale_lock","create_default_type","workflow_enforcement","duplicate_detection_mode","duplicate_detection_threshold","duplicate_detection_limit"]),e.workflow=v(e.workflow,["definition_of_done"]),e.testing=v(e.testing,["record_results_to_items"]),e.telemetry=v(e.telemetry,["enabled","first_run_prompt_completed","capture_level","endpoint","installation_id","retention_days"]),e.agent_guidance=v(e.agent_guidance,["prompt_completed","declined","declined_at","template_version","last_checked_files"]),e.item_types=v(e.item_types,["definitions"]),e.schema=v(e.schema,["version","files","statuses","fields","workflow","type_workflows","unknown_field_policy"]),e.schema.files=v(V(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=v(V(e.schema.workflow),["draft_status","open_status","in_progress_status","blocked_status","close_status","canceled_status"]),e.context=v(e.context,["default_depth","activity_limit","stale_threshold_days","sections"]),e.context.sections=v(V(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=v(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=v(V(e.extensions.policy),["mode","trust_mode","pm_max_version_exceeded_mode","require_provenance","trusted_extensions","default_sandbox_profile","allowed_extensions","blocked_extensions","allowed_capabilities","blocked_capabilities","allowed_surfaces","blocked_surfaces","allowed_commands","blocked_commands","allowed_actions","blocked_actions","allowed_services","blocked_services","extension_overrides"]),e.extensions.policy.extension_overrides=Gr(e.extensions.policy.extension_overrides).map(n=>v(V(n),["name","disabled","require_trusted","require_provenance","sandbox_profile","allowed_capabilities","blocked_capabilities","allowed_surfaces","blocked_surfaces","allowed_commands","blocked_commands","allowed_actions","blocked_actions","allowed_services","blocked_services"])),e.search=v(e.search,["score_threshold","hybrid_semantic_weight","max_results","embedding_model","embedding_corpus_max_characters","embedding_batch_size","embedding_timeout_ms","scanner_max_batch_retries","provider","mutation_refresh_policy","query_expansion","rerank"]),e.search.query_expansion=v(V(e.search.query_expansion),["enabled","provider"]),e.search.rerank=v(V(e.search.rerank),["enabled","model","top_k"]),e.providers=v(e.providers,["openai","ollama"]),e.providers.openai=v(V(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=v(V(e.providers.ollama),["base_url","model"]),e.vector_store=v(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=v(V(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=v(V(e.vector_store.lancedb),["path"])}function Tf(e){return{...e,locks:N(e.locks,b.locks),ids:N(e.ids,b.ids),agent_identity:N(e.agent_identity,b.agent_identity),mutation_guard:N(e.mutation_guard,b.mutation_guard),checkpoints:N(e.checkpoints,b.checkpoints),output:N(e.output,b.output),ux:N(e.ux,b.ux),history:N(e.history,b.history),validation:N(e.validation,b.validation),workflow:N(e.workflow,b.workflow),testing:N(e.testing,b.testing),telemetry:N(e.telemetry,b.telemetry),agent_guidance:N(e.agent_guidance,b.agent_guidance),item_types:N(e.item_types,b.item_types),schema:N(e.schema,b.schema),context:N(e.context,b.context),extensions:N(e.extensions,b.extensions),search:N(e.search,b.search),providers:N(e.providers,b.providers),vector_store:N(e.vector_store,b.vector_store)}}function Cf(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:Us(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:he(e.validation?.lifecycle_stale_blocker_reason_patterns??b.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:he(e.validation?.lifecycle_closure_like_blocked_reason_patterns??b.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:he(e.validation?.lifecycle_closure_like_resolution_patterns??b.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:he(e.validation?.lifecycle_closure_like_actual_result_patterns??b.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:Ur(e.validation?.estimate_defaults_by_type)}}function Of(e){return{...b.search,...e.search,mutation_refresh_policy:As(e.search?.mutation_refresh_policy),query_expansion:{...b.search.query_expansion,...e.search?.query_expansion,enabled:Rs(e.search?.query_expansion?.enabled),provider:Ns(e.search?.query_expansion?.provider)},rerank:{...b.search.rerank,...e.search?.rerank,enabled:Ds(e.search?.rerank?.enabled),model:Ms(e.search?.rerank?.model),top_k:Ps(e.search?.rerank?.top_k)}}}function Af(e){return{default_depth:e.context?.default_depth??b.context.default_depth,activity_limit:e.context?.activity_limit??b.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??b.context.stale_threshold_days,sections:{...b.context.sections,...e.context?.sections}}}function Rf(e){return{...e.vector_store,adapter:e.vector_store?.adapter??b.vector_store.adapter,collection_name:Ls(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function Nf(e,t,n,r){return{...e,item_format:"toon",validation:Cf(e,t),governance:t,agent_guidance:$s(e.agent_guidance),item_types:{definitions:r.item_type_definitions},schema:{...n,statuses:r.schema_statuses,fields:r.schema_fields,type_workflows:r.schema_type_workflows},search:Of(e),context:Af(e),extensions:{enabled:qr(e.extensions?.enabled),disabled:qr(e.extensions?.disabled),policy:Hs(e.extensions?.policy)},vector_store:Rf(e)}}function Bs(e,t,n){let r=new Set([...Object.keys(t),...Object.keys(n)]);for(let o of r){let i=t[o],s=n[o];if(!Ne(i,s)){if(s===void 0){delete e[o];continue}if(typeof i=="object"&&i!==null&&!Array.isArray(i)&&typeof s=="object"&&s!==null&&!Array.isArray(s)){let a=e[o],c=typeof a=="object"&&a!==null&&!Array.isArray(a)?a:{};Bs(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var Vs=["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 Ts(e,t){let n=Tf(e),r=vn(n),o=Ze(n.schema),i=ff(n,t),s=Nf(n,r,o,i),a=v({...s,governance:of(r)},Vs);return xf(a),a}function Df(e,t={}){let n=Ts(e,t.persist_source);if(t.persist_source){let r=Ws(t.persist_source.source_settings);r.item_types={definitions:structuredClone(t.persist_source.runtime_item_type_definitions)},r.schema={...r.schema,statuses:structuredClone(t.persist_source.runtime_schema_statuses),fields:structuredClone(t.persist_source.runtime_schema_fields),type_workflows:structuredClone(t.persist_source.runtime_schema_type_workflows)};let o=Ts(r,t.persist_source),i=structuredClone(t.persist_source.source_settings);return Bs(i,o,n),`${JSON.stringify(v(i,Vs),null,2)}
|
|
153
|
-
`}return`${JSON.stringify(n,null,2)}
|
|
154
|
-
`}async function qs(e){let t=Cn(e),n=[t];await Y({path:t,scope:"project"});let r=vs(e);if(r){let u=await pe(r.tracked_paths);if(yt(u,r.signatures))return kn(r.value)}let o=await pe([t]),i;try{i=await de(t)}catch{return ht("settings_read_fs_error")}if(i===null){let u=ht();return await Br(e,[t],u,o,[t]),u}let s=await pe([t]);if(!yt(o,s))return ye(e),qs(e);let a;try{a=JSON.parse(i)}catch{let u=ht("settings_read_invalid_json");return await Br(e,[t],u,s,[t]),u}let c=gs(a);if(!c.success){let u=ht("settings_read_invalid_schema");return await Br(e,[t],u,s,[t]),u}try{let u=Ws(c.data),l=cf(e,u.schema,t);n=l;let f=await pe(l),_=await bo(e,u.schema),y=await wo(e,u.schema),g=await pe(l),E={...u,item_types:{definitions:Xe([...u.item_types.definitions,...Gr(y.type_definitions_from_file)])},schema:y.schema};js(E,af(c.data,E));let k={settings:E,metadata:{has_explicit_item_format:mf(a)},warnings:[...c.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],..._.created_paths.map(A=>`runtime_schema_bootstrap_created:${A}`),...y.warnings]};return _.created_paths.length===0?yt(f,g)?En(e,{tracked_paths:l,signatures:g,value:kn(k)}):ye(e):ye(e),k}catch{let u=ht("settings_read_merge_failed");return await uf(e,n,u),u}}async function Th(e){return(await qs(e)).settings}async function Ch(e,t,n=ef){let r=Cn(e),o=Df(t,{persist_source:Fs(t)});try{await hs({pmRoot:e,filePath:r,raw:o,op:n,author:Fo(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),await X({path:r,scope:"project",op:n})}finally{ye(e)}}import Mf from"node:fs/promises";import Pf from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="58fd6fef-9c13-5c6a-9110-b760461896aa")}catch{}})();function Lf(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function jf(e,t){return new x(`Missing history stream for ${e}. ${t} requires history streams when settings.history.missing_stream is strict_error.`,I.NOT_FOUND)}async function Ff(e,t){return await oo(Pf.dirname(e)),await(await Mf.open(e,"a")).close(),X({path:e,scope:"project",op:`${t}:history:auto_create`})}async function Xr(e){return $f({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function $f(e){let t=Lf(e.itemIds),n=[],r=[];for(let o of t){let i=Ye(e.pmRoot,o);if(!await Tt(i)){if(e.settings.history.missing_stream==="strict_error")throw jf(o,e.commandLabel);r.push(...await Ff(i,e.commandLabel)),r.push(`history_stream_auto_created:${o}`),n.push(o)}}return{auto_created_ids:n,warnings:r}}import ae from"node:fs/promises";import Je from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b6db139b-7646-58f9-96af-d3c65bf7ddf6")}catch{}})();async function zf(e){try{return await ae.access(e),!0}catch{return!1}}function ge(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function Hf(e,t){e&&(e.includes(t)||e.push(t))}function Gs(e){return e??xt(st())}function Uf(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}function Sn(e){return new x(`Tracker root is not a directory at ${e}.`,I.USAGE,{code:"tracker_root_not_directory",reason:"not_a_directory",nextSteps:["Pass the tracker directory itself, usually <workspace>/.agents/pm."]})}function Jr(e){return new x(`Tracker root is not readable at ${e}.`,I.GENERIC_FAILURE,{code:"tracker_root_unreadable",reason:"unreadable",nextSteps:["Grant read and directory-search permission to the tracker root, then retry the SDK read."]})}async function Wf(e){let t=Je.parse(Je.resolve(e)).root,n=Je.dirname(Je.resolve(e));for(;n!==t;){let r;try{r=await ae.stat(n)}catch(o){if(ge(o,"ENOTDIR"))throw Sn(e);if(!ge(o,"ENOENT"))throw o;n=Je.dirname(n);continue}if(!r.isDirectory())throw Sn(e);break}}async function Kr(e){let t;try{t=await ae.stat(e)}catch(n){throw ge(n,"ENOENT")?(await Wf(e),new x(`Tracker root does not exist at ${e}.`,I.NOT_FOUND,{code:"tracker_root_missing",reason:"missing",nextSteps:["Confirm the tracker root path and retry the SDK read.","Initialize a tracker before enumerating its item metadata."]})):ge(n,"ENOTDIR")?Sn(e):ge(n,"EACCES")||ge(n,"EPERM")?Jr(e):n}if(!t.isDirectory())throw Sn(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw Jr(e);try{await(await ae.opendir(e)).close()}catch(n){throw ge(n,"EACCES")||ge(n,"EPERM")?Jr(e):n}}async function Xs(e,t,n="pm-",r,o=we){let i=Sr(t,n),s=vr(t),a=i===s?[i]:[i,s],c=Object.entries(o),u=Uf(r);for(let l of a)for(let[f]of c)for(let _ of u){let y=On(e,f,l,_,o);if(await zf(y))return{id:l,type:f,itemPath:y,item_format:_}}return null}async function Js(e,t={}){let n=await ae.readFile(e.itemPath,"utf8");await Y({path:e.itemPath,scope:"project"});let r=Wt(n,{format:e.item_format,schema:t.schema,extensionFieldNames:Gs(t.extensionFieldNames),onWarning:o=>Hf(t.warnings,o)});return{raw:n,document:r}}async function Bf(e,t,n=we,r,o){return await Kr(e),(await fs(e,t,n,r,o)).map(s=>s.metadata)}async function rg(e,t,n=we,r,o){return await Kr(e),(await ms(e,t,n,r,o)).map(s=>s.metadata)}async function og(e,t,n=we,r,o,i={}){return await Kr(e),(await gn(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan})).map(a=>({...a.metadata,body:a.body}))}function Ks(e){return{async get(t){let n=await Xs(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await Js(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>Bf(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function Vf(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await ae.readdir(Je.join(e,o));for(let s of i)for(let a of Ct)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function qf(e,t,n,r){let o=Sr(t,n),i=await Vf(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(c=>({id:c,distance:wt(c,o,s)})).filter(c=>c.distance!==null).sort((c,u)=>c.distance-u.distance).slice(0,3).map(c=>c.id)}async function Gf(e,t,n,r){let o=await qf(e,t,n,r),i=["Confirm the active --path/PM_PATH scope, then retry with a valid id."];return o.length>0&&i.unshift(`Did you mean one of: ${o.join(", ")}?`),new x(`Item ${t} not found`,I.NOT_FOUND,{nextSteps:i})}function Xf(e,t){return e==="claim"||t===!0&&(e==="comment_add"||e==="comment_edit"||e==="comment_delete"||e==="note_add"||e==="learning_add"||e==="release"||e==="update"||e==="update_ownership_bypass"||e==="update_audit")}async function Ys(e){let t=e.typeToFolder??so(e.settings,st()).type_to_folder,n=await Xs(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await Gf(e.pmRoot,e.id,e.settings.id_prefix,t);let r=await se(e.pmRoot,n.id,e.settings.locks.ttl_seconds,e.author,!!e.force,e.settings.governance.force_required_for_stale_lock,e.settings.locks.wait_ms);try{let o=[],{raw:i,document:s}=await Js(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||a,u=jo(e.author),l=vn(e.settings);if(a&&c!==u&&!e.force&&!Xf(e.op,e.bypassAssigneeConflict)){if(l.ownership_enforcement==="strict")throw new x(`Item ${n.id} is assigned to ${a}. Use --force to override.`,I.CONFLICT);l.ownership_enforcement==="warn"&&o.push(`ownership_warning:assignee_conflict:${n.id}:${a}`)}return{typeToFolder:t,located:n,originalRaw:i,document:s,warnings:o,releaseLock:r}}catch(o){throw await r(),o}}function Jf(e,t,n){if(!e.handled||typeof e.result!="object"||e.result===null)return{effectiveTargetItemPath:t,effectiveSerializedAfter:n,skipItemWrite:!1};let r=e.result;return{effectiveTargetItemPath:typeof r.target_item_path=="string"&&r.target_item_path.trim().length>0?r.target_item_path:t,effectiveSerializedAfter:typeof r.contents=="string"?r.contents:n,skipItemWrite:r.skip_write===!0}}async function Kf(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await W(e.originalItemPath,e.originalRaw),await ae.rm(e.effectiveTargetItemPath,{force:!0});return}await W(e.originalItemPath,e.originalRaw)}}async function Qs(e){let t=await Ys({pmRoot:e.pmRoot,settings:e.settings,id:e.id,op:e.op,author:e.author,force:e.force,bypassAssigneeConflict:e.bypassAssigneeConflict,extensionFieldNames:e.extensionFieldNames,typeToFolder:e.typeToFolder}),{typeToFolder:n,located:r,originalRaw:o,document:i,warnings:s,releaseLock:a}=t;try{let c=G(i,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),u=G(structuredClone(i),{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),l=await e.mutate(u);if(e.skipNoop===!0&&l.changedFields.length===0)return{item:c.metadata,body:c.body,changedFields:[],warnings:[...s,...l.warnings??[]]};let f=e.resolveHistoryContext?.();u.metadata.updated_at=xe();let _=G(u,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames});await dr({pm_root:e.pmRoot,operation:e.op,before:c,after:_,changed_fields:l.changedFields,sdk:Ks({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let y=await Xr({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),g="toon",E=si(_,{format:g,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),k=On(e.pmRoot,_.metadata.type,r.id,g,n),A=Ye(e.pmRoot,r.id),M=await te("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:k,history_path:A,item_format:g,before:c,after:_,contents:E}),{effectiveTargetItemPath:U,effectiveSerializedAfter:z,skipItemWrite:Z}=Jf(M,k,E),be=await Mr(e.pmRoot,e.author),H=[];try{Z||await W(U,z),!Z&&U!==r.itemPath&&await ae.rm(r.itemPath);let gt=We({nowIso:_.metadata.updated_at,author:e.author,op:e.op,before:c,after:_,message:e.message,context:f});try{await Be(A,gt)}catch(bt){throw await Kf({skipItemWrite:Z,effectiveTargetItemPath:U,originalItemPath:r.itemPath,originalRaw:o}),bt}Z||(H=await Pr({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:U,previousItemPath:r.itemPath,document:_}))}finally{await be()}let In=[...await X({path:U,scope:"project",op:e.op,item_id:_.metadata.id,item_type:_.metadata.type,before:c,after:_,changed_fields:l.changedFields}),...await X({path:A,scope:"project",op:`${e.op}:history`,item_id:_.metadata.id,item_type:_.metadata.type,before:c,after:_,changed_fields:l.changedFields})];return cr({id:_.metadata.id,op:e.op,item_type:_.metadata.type,previous_status:c.metadata.status,status:_.metadata.status,previous:Bt(c.metadata,l.changedFields),current:Bt(_.metadata,l.changedFields),changed_fields:l.changedFields}),{item:_.metadata,body:_.body,changedFields:l.changedFields,warnings:[...s,...l.warnings??[],...y.warnings,...M.warnings,...H,...In]}}finally{await a()}}async function ig(e){return Qs(e)}async function sg(e){return Qs(e)}async function ag(e){let t=await Ys({pmRoot:e.pmRoot,settings:e.settings,id:e.id,op:"delete",author:e.author,force:e.force}),{located:n,originalRaw:r,document:o,warnings:i,releaseLock:s}=t;try{let a=Gs(void 0),c=G(o,{schema:e.settings.schema,extensionFieldNames:a});await dr({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:Ks({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let u=await Xr({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),l=xe(),f=Re,_=We({nowIso:l,author:e.author,op:"delete",before:c,after:f,message:e.message}),y=Ye(e.pmRoot,n.id),g=await te("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:y,before:c}),E=n.itemPath,k=!1;if(g.handled&&typeof g.result=="object"&&g.result!==null){let z=g.result;typeof z.item_path=="string"&&z.item_path.trim().length>0&&(E=z.item_path),z.skip_delete===!0&&(k=!0)}if(e.dryRun===!0)return{item:c.metadata,changedFields:["deleted"],targetPath:E,warnings:[...i,...u.warnings,...g.warnings]};let A=await Mr(e.pmRoot,e.author),M=[];try{k||await ae.rm(E);try{await Be(y,_)}catch(z){throw k||await W(E,r),z}k||(M=await Pr({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:E,document:null}))}finally{await A()}let U=[...await X({path:E,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:f,changed_fields:["deleted"]}),...await X({path:y,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:f,changed_fields:["deleted"]})];return cr({id:c.metadata.id,op:"delete",item_type:c.metadata.type,previous_status:c.metadata.status,previous:Bt(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...i,...u.warnings,...g.warnings,...M,...U]}}finally{await s()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a9b23a46-0bba-5174-8793-dfc37016d1fb")}catch{}})();function Yf(e,t){let n=e.trim().toLowerCase();if(n.length===0)return;let r=Math.floor(n.length/3);return t.map(o=>({candidate:o,distance:wt(n,o.toLowerCase(),r)??Number.POSITIVE_INFINITY})).filter(({distance:o})=>Number.isFinite(o)).sort((o,i)=>o.distance!==i.distance?o.distance-i.distance:o.candidate.localeCompare(i.candidate))[0]?.candidate}function Zs(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function fg(e){let t=e.command_path.trim().replaceAll(/\s+/gu," "),n=e.token.trim(),r=n.length===0?"<empty>":n,o=[...new Set(e.allowed.map(_=>_.trim()))].filter(Boolean).sort((_,y)=>_.localeCompare(y));if(t.length===0||r.length===0||o.length===0)throw new TypeError("Unknown-subcommand contracts require a path, token, and allowed set");let i=t.split(" "),s=e.trailing_args??[],a=e.display_name??`pm ${t}`,c=e.token_kind??"subcommand",u=e.retry_command?void 0:Yf(r,o),l=Zs([...i,r,...s]),f=e.retry_command??(u?Zs([...i,u,...s]):void 0);return new x(`Unknown ${a} ${c} "${r}". Allowed: ${o.join(", ")}${e.message_suffix??""}`,e.exit_code??I.USAGE,{code:"unknown_subcommand",reason:"unknown_positional_token",examples:[...f?[f]:[],...e.examples??[],`pm ${t} --help`],nextSteps:f?[`Retry with the suggested command: ${f}`]:["Choose one value from recovery.allowed_values."],recovery:{attempted_command:l,allowed_values:o,suggested_retry:f,fallback_candidates:e.fallback_candidates}})}export{E_ as a,yd as b,M_ as c,Id as d,P_ as e,L_ as f,j_ as g,F_ as h,$_ as i,z_ as j,H_ as k,st as l,cr as m,Bt as n,X as o,dr as p,Y as q,ur as r,U_ as s,W_ as t,te as u,qd as v,ve as w,Nn as x,em as y,tm as z,Rt as A,jn as B,cm as C,dm as D,um as E,lm as F,fm as G,mm as H,Bn as I,da as J,km as K,vm as L,Sm as M,Xn as N,Mo as O,Im as P,xm as Q,Tm as R,Ia as S,jo as T,Fo as U,xe as V,Bo as W,$ as X,Lm as Y,jm as Z,se as _,Jo as $,tt as aa,Ym as ba,Qm as ca,Pe as da,Vo as ea,$m as fa,qo as ga,qa as ha,zm as ia,Ft as ja,Xa as ka,Bm as la,zt as ma,Ut as na,Wt as oa,si as pa,G as qa,ze as ra,ap as sa,cp as ta,dp as ua,Ap as va,Rp as wa,eu as xa,at as ya,me as za,Jp as Aa,Er as Ba,Kp as Ca,We as Da,Be as Ea,cu as Fa,tn as Ga,en as Ha,nn as Ia,oy as Ja,iy as Ka,Pi as La,rn as Ma,Li as Na,on as Oa,_u as Pa,sy as Qa,ay as Ra,pt as Sa,Lr as Ta,oh as Ua,ih as Va,sh as Wa,ah as Xa,hs as Ya,lh as Za,vn as _a,qs as $a,Th as ab,Ch as bb,Xr as cb,$f as db,$i as eb,vr as fb,Sr as gb,_y as hb,wy as ib,Ey as jb,ky as kb,as as lb,el as mb,Mr as nb,qy as ob,Pr as pb,gn as qb,Xs as rb,Js as sb,Bf as tb,rg as ub,og as vb,Ks as wb,Gf as xb,ig as yb,sg as zb,ag as Ab,fg as Bb};
|
|
155
|
-
//# sourceMappingURL=chunk-KYZ6JGPL.js.map
|