@unbrained/pm-cli 2026.8.16 → 2026.8.18
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/AGENTS.md +4 -3
- package/CHANGELOG.md +65 -6
- package/README.md +16 -16
- package/dist/cli/error-guidance.js +7 -4
- package/dist/cli/public.d.ts +2 -0
- package/dist/cli/public.js +21 -0
- package/dist/cli/register-list-query.js +132 -51
- package/dist/cli/register-mutation.js +4 -4
- package/dist/cli-bundle/bundle-manifest.json +148 -148
- package/dist/cli-bundle/chunks/chunk-5UZZAJKR.js +3 -0
- package/dist/cli-bundle/chunks/chunk-ALDJGKAK.js +2 -0
- package/dist/cli-bundle/chunks/chunk-BSK2IN3C.js +8 -0
- package/dist/cli-bundle/chunks/chunk-DY4DMUMC.js +197 -0
- package/dist/cli-bundle/chunks/{chunk-73UGEBRS.js → chunk-GNFAFIJI.js} +10 -10
- package/dist/cli-bundle/chunks/chunk-L5Q2CLPE.js +35 -0
- package/dist/cli-bundle/chunks/{chunk-RIS565OA.js → chunk-PVRUN5ZS.js} +5 -5
- package/dist/cli-bundle/chunks/chunk-RZQTVMRQ.js +2 -0
- package/dist/cli-bundle/chunks/chunk-SARFF5H5.js +3 -0
- package/dist/cli-bundle/chunks/chunk-UYCLQVL2.js +13 -0
- package/dist/cli-bundle/chunks/{chunk-URW4QRMI.js → chunk-YRGOLZA7.js} +59 -55
- package/dist/cli-bundle/chunks/register-list-query-I23LALEE.js +11 -0
- package/dist/cli-bundle/chunks/register-mutation-6YGU3GPH.js +20 -0
- package/dist/cli-bundle/chunks/{register-operations-KGDNRMCL.js → register-operations-4HTFC6J7.js} +2 -2
- package/dist/cli-bundle/chunks/{register-setup-NVXBOD5I.js → register-setup-PPPEF3SN.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-2PN4TJXH.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-C7JUBRFP.js → chunk-3TKWMNKF.js} +3 -3
- package/dist/cli-bundle/focused-chunks/chunk-5AF3ZBNB.js +155 -0
- package/dist/cli-bundle/focused-chunks/chunk-C5IW2NDA.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-CODV5LUT.js → chunk-EUEGXZ2A.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{chunk-4JPEBFFC.js → chunk-EX6MKP2X.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-SSNDYZTM.js → chunk-K43KKAFS.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-6ROKKT4X.js → chunk-M62NO7EI.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-T46KLOIB.js → chunk-ODOVCP45.js} +47 -47
- package/dist/cli-bundle/focused-chunks/chunk-RNDNMARJ.js +16 -0
- package/dist/cli-bundle/focused-chunks/chunk-TN4AE665.js +26 -0
- package/dist/cli-bundle/focused-chunks/chunk-TVV2DONO.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-UI6AJ5TD.js +4 -0
- package/dist/cli-bundle/focused-chunks/chunk-V5XTGLK7.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-WGHQVU6P.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-XYNBXTDQ.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-Z56ECT7I.js +2 -0
- package/dist/cli-bundle/main.js +7 -7
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +1 -1
- package/dist/cli-bundle/sdk-core.js +31 -31
- 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 +4 -2
- package/dist/core/config/nested-settings.js +8 -2
- package/dist/core/extensions/exporter-output-contract.d.ts +12 -0
- package/dist/core/extensions/exporter-output-contract.js +67 -0
- package/dist/core/extensions/extension-types.d.ts +36 -1
- package/dist/core/extensions/extension-types.js +2 -2
- package/dist/core/extensions/loader.js +43 -48
- package/dist/core/extensions/manifest-schema.d.ts +20 -0
- package/dist/core/extensions/manifest-schema.js +52 -0
- package/dist/core/history/event-index.d.ts +5 -0
- package/dist/core/history/event-index.js +133 -27
- package/dist/core/history/replay.js +32 -14
- package/dist/core/schema/fields-file.d.ts +1 -1
- package/dist/core/schema/fields-file.js +2 -2
- package/dist/core/schema/runtime-field-values.js +115 -9
- package/dist/core/schema/runtime-schema.d.ts +3 -1
- package/dist/core/schema/runtime-schema.js +124 -3
- package/dist/core/sentry/helpers.js +3 -3
- package/dist/core/shared/constants.js +5 -2
- package/dist/core/shared/errors.d.ts +10 -0
- package/dist/core/shared/errors.js +2 -2
- package/dist/core/shared/time.d.ts +2 -0
- package/dist/core/shared/time.js +27 -2
- package/dist/core/store/settings-validator.d.ts +4 -0
- package/dist/core/store/settings-validator.js +3 -2
- package/dist/core/store/settings.js +8 -2
- package/dist/mcp/tool-definitions.js +12 -7
- package/dist/sdk/agent/refusal-reachability.d.ts +46 -6
- package/dist/sdk/agent/refusal-reachability.js +350 -8
- package/dist/sdk/authoring.d.ts +1 -1
- package/dist/sdk/authoring.js +2 -2
- package/dist/sdk/cli-bootstrap.d.ts +2 -2
- package/dist/sdk/cli-bootstrap.js +4 -4
- package/dist/sdk/cli-contracts/command-aliases.d.ts +34 -2
- package/dist/sdk/cli-contracts/command-aliases.js +64 -13
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +4 -0
- package/dist/sdk/cli-contracts/enum-contracts.js +9 -2
- package/dist/sdk/cli-contracts/flag-contracts.js +11 -7
- package/dist/sdk/cli-contracts/grammar-contracts.d.ts +70 -0
- package/dist/sdk/cli-contracts/grammar-contracts.js +345 -0
- package/dist/sdk/cli-contracts/runtime-contracts.d.ts +19 -2
- package/dist/sdk/cli-contracts/runtime-contracts.js +61 -14
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +10 -4
- package/dist/sdk/cli-contracts/tool-schema.d.ts +2 -2
- package/dist/sdk/cli-contracts/tool-schema.js +20 -11
- package/dist/sdk/cli-contracts.d.ts +2 -2
- package/dist/sdk/cli-contracts.js +4 -4
- package/dist/sdk/completion.js +13 -15
- package/dist/sdk/compose.d.ts +9 -5
- package/dist/sdk/compose.js +33 -3
- package/dist/sdk/context-intent-contracts.d.ts +8 -4
- package/dist/sdk/context-intent-contracts.js +76 -31
- package/dist/sdk/contracts.d.ts +1 -0
- package/dist/sdk/contracts.js +3 -2
- package/dist/sdk/core.d.ts +1 -1
- package/dist/sdk/core.js +3 -3
- package/dist/sdk/dependency-flag-validation.d.ts +9 -2
- package/dist/sdk/dependency-flag-validation.js +101 -35
- package/dist/sdk/environment/host-environment-errors.js +25 -7
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +78 -14
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +62 -14
- package/dist/sdk/governance/assurance-action.d.ts +3 -7
- package/dist/sdk/governance/assurance-action.js +97 -2
- package/dist/sdk/governance/boundary-fixtures.d.ts +86 -0
- package/dist/sdk/governance/boundary-fixtures.js +201 -0
- package/dist/sdk/governance/defect-recurrence-signals.d.ts +10 -0
- package/dist/sdk/governance/defect-recurrence-signals.js +25 -0
- package/dist/sdk/governance/defect-recurrence.d.ts +242 -0
- package/dist/sdk/governance/defect-recurrence.js +523 -0
- package/dist/sdk/governance.d.ts +2 -0
- package/dist/sdk/governance.js +4 -2
- package/dist/sdk/graph/governance.js +3 -2
- package/dist/sdk/guide-topics.js +193 -4
- package/dist/sdk/index.d.ts +7 -3
- package/dist/sdk/index.js +8 -5
- package/dist/sdk/init-agent-guidance.js +3 -3
- package/dist/sdk/lifecycle/create.js +4 -2
- package/dist/sdk/lifecycle/update-many.js +15 -2
- package/dist/sdk/lifecycle/update.js +5 -2
- package/dist/sdk/linked-artifacts.js +63 -14
- package/dist/sdk/mutation-events.d.ts +18 -2
- package/dist/sdk/mutation-events.js +59 -16
- package/dist/sdk/output.d.ts +44 -0
- package/dist/sdk/output.js +28 -2
- package/dist/sdk/query/complete-list.d.ts +94 -0
- package/dist/sdk/query/complete-list.js +173 -0
- package/dist/sdk/query/get.d.ts +2 -0
- package/dist/sdk/query/get.js +32 -7
- package/dist/sdk/query/list.js +5 -2
- package/dist/sdk/query.d.ts +1 -0
- package/dist/sdk/query.js +3 -2
- package/dist/sdk/read-output-contracts.d.ts +2 -2
- package/dist/sdk/read-output-contracts.js +36 -9
- package/dist/sdk/relationship-analytics.js +90 -14
- package/dist/sdk/relationship-kinds/contract.d.ts +4 -0
- package/dist/sdk/relationship-kinds/contract.js +3 -2
- package/dist/sdk/relationships.d.ts +1 -1
- package/dist/sdk/relationships.js +11 -2
- package/dist/sdk/runtime-extended-actions.js +10 -2
- package/dist/sdk/runtime.d.ts +8 -2
- package/dist/sdk/runtime.js +11 -8
- package/dist/sdk/schema.d.ts +1 -0
- package/dist/sdk/schema.js +2 -2
- package/dist/sdk/test/execution.d.ts +6 -2
- package/dist/sdk/test/execution.js +39 -13
- package/dist/types.d.ts +34 -2
- package/dist/types.js +4 -2
- package/docs/AGENT_GUIDE.md +25 -9
- package/docs/CLI_GRAMMAR.md +106 -0
- package/docs/COMMANDS.md +23 -23
- package/docs/CONFIGURATION.md +58 -1
- package/docs/CONTEXT_INTEGRITY_CONTRACTS.md +58 -0
- package/docs/DEFECT_RECURRENCE.md +134 -0
- package/docs/DEPENDENCY_KIND_CONTRACT.md +12 -2
- package/docs/ONBOARDING.md +4 -4
- package/docs/QUICKSTART.md +1 -1
- package/docs/README.md +4 -0
- package/docs/RELATIONSHIP_GRAPH.md +16 -2
- package/docs/RELEASING.md +30 -6
- package/docs/SDK.md +74 -7
- package/docs/SDK_ARTIFACT_OUTPUT.md +72 -0
- package/docs/SDK_CONTEXT_COORDINATION.md +46 -12
- package/docs/SDK_RUNTIME_BOUNDARIES.md +9 -1
- package/docs/TESTING.md +18 -1
- package/docs/TRUSTWORTHY_CONTEXT_EVIDENCE.md +1 -1
- package/docs/agent-task-token-baseline.json +5 -5
- package/marketplace.json +2 -2
- package/package.json +8 -5
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-claude/skills/pm-audit/SKILL.md +26 -0
- package/plugins/pm-claude/skills/pm-developer/SKILL.md +26 -0
- package/plugins/pm-claude/skills/pm-planner/SKILL.md +26 -0
- package/plugins/pm-claude/skills/pm-release/SKILL.md +26 -0
- package/plugins/pm-claude/skills/pm-workflow/SKILL.md +26 -0
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/pm-codex/skills/pm-auditor/SKILL.md +26 -0
- package/plugins/pm-codex/skills/pm-native/SKILL.md +26 -0
- package/plugins/pm-codex/skills/pm-release/SKILL.md +26 -0
- package/sdk/public-surface.json +1243 -54
- package/dist/cli-bundle/chunks/chunk-47OQEOQB.js +0 -2
- package/dist/cli-bundle/chunks/chunk-HCIYWD6M.js +0 -35
- package/dist/cli-bundle/chunks/chunk-I2LUWWR5.js +0 -3
- package/dist/cli-bundle/chunks/chunk-IC5W2T34.js +0 -2
- package/dist/cli-bundle/chunks/chunk-OAC5NIV4.js +0 -3
- package/dist/cli-bundle/chunks/chunk-PANOOBIS.js +0 -13
- package/dist/cli-bundle/chunks/chunk-TK6N7HGM.js +0 -8
- package/dist/cli-bundle/chunks/chunk-TOFG2URD.js +0 -197
- package/dist/cli-bundle/chunks/register-list-query-EYCXHZAG.js +0 -10
- package/dist/cli-bundle/chunks/register-mutation-7YVIG54J.js +0 -20
- package/dist/cli-bundle/focused-chunks/chunk-5NMFSX26.js +0 -155
- package/dist/cli-bundle/focused-chunks/chunk-725JSCMP.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-DQ6SMTBF.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-HAACPSUW.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-J4UFYHOD.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-JX5Z344Q.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-L4RDYBIQ.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-NJ5RLEFD.js +0 -26
- package/dist/cli-bundle/focused-chunks/chunk-QYZERYR5.js +0 -4
- package/dist/cli-bundle/focused-chunks/chunk-TZATVC4G.js +0 -16
- package/dist/cli-bundle/focused-chunks/chunk-WY3WRPVN.js +0 -2
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
import{F as to,Ia as xt,K as It,Ka as Ke,Ma as Ye,Na as Qe,O as vn,P as Sn,Pa as _o,Q as In,Qa as po,R as Je,Ra as yo,S as no,Sa as ho,T as ro,Ta as go,Ua as bo,Y as oo,Z as io,a as ht,h as vt,o as Zr,p as St,r as be,s as ae,t as U,ta as so,u as Xe,ua as ao,va as co,wa as lo,xa as uo,ya as fo,z as eo,za as mo}from"./chunk-QYZERYR5.js";import{C as Et,D as kt,E as kn,G as Yr,R as ge,S as se,T as Qr,W as b,X as Ae,Y as I,Z as x,aa as B,ba as Ce,ca as we,da as k,n as gt,o as qr,p as Gr,q as Xr,r as Jr,v as bt,w as wt,x as Kr}from"./chunk-725JSCMP.js";import{AsyncLocalStorage as Vs}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 xn=new Vs,wo=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function Tt(e,t){let n=typeof e=="string"?e.trim():"";return n.length>0?n.slice(0,t):void 0}function Ee(e,t){if(e===void 0)return;let n=typeof e=="object"&&e!==null?e:{},r=Tt(n.id,128),o=Tt(n.parent_id,128);if(r===void 0||!wo.test(r)||o!==void 0&&!wo.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=Tt(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function Re(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=Tt(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function qs(e,t,n){let r=xn.getStore(),o=Re({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=Ee(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={...Re(r?.provenance),...o,...Re(e?.provenance)},a=Ee(e?.episode,!1)??Ee(n,!1)??i??Ee(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 Tn(e,t){return qs(e.session_context,t,e.client_info?.episode)??{}}function Rf(e,t){let n=xn.getStore(),r=Ee(e.episode,!0),o=Ee(n?.episode,!1),i=r!==void 0&&r.parent_id===void 0&&o!==void 0?{...r,parent_id:o.id}:r,s={...Re(n?.provenance),...Re(e.provenance)};return xn.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function Nf(e){let t=Re(e.provenance),n=Ee(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 Fn}from"node:async_hooks";import{createHash as Ys}from"node:crypto";import At from"node:fs";import Qs from"node:os";import Io from"node:path";import{createHash as Eo}from"node:crypto";import{existsSync as On,promises as ko,readFileSync as Gs}from"node:fs";import J 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 Xs="session.json";function An(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function vo(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=An(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=>An(c,128)),a=t.focused_item_id===void 0||An(t.focused_item_id,128);if([n,r,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function Js(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([n,r])=>{let o=vo(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Cn(e){return J.join(ro(e),Xs)}async function Ot(e){try{let t=await ko.readFile(Cn(e),"utf8"),n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return{};let r=n,o=r.focused_item,i=Js(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 Rn(e,t){let n=Cn(e);await ko.mkdir(J.dirname(n),{recursive:!0}),await U(n,JSON.stringify(t))}function Nn(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${Eo("sha256").update(e).digest("hex").slice(0,24)}`}function Dn(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function Mn(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)}+${Eo("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function Pn(e,t,n){let r=await Ot(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 Rn(e,s)}async function $f(e){let t=Nn(e.principal);await Pn(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??Mn(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Dn([...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 zf(e){let t=Nn(e.principal);await Pn(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??Mn(r),confidence:o?"high":"medium",evidence:Dn([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:r}})}async function Uf(e){let t=Nn(e.principal);await Pn(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??Mn(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Dn([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}function Ks(e,t){let n=t.PM_PATH?.trim();if(n){let o=J.resolve(e,n);if(On(J.join(o,"settings.json")))return o;let i=J.join(o,".agents","pm");if(On(J.join(i,"settings.json")))return i}let r=J.resolve(e);for(let o=0;o<32;o+=1){let i=J.join(r,".agents","pm");if(On(J.join(i,"settings.json")))return i;let s=J.dirname(r);if(s===r)break;r=s}}function So(e){if(!e.key)return;let t=Ks(e.cwd,e.env);if(t)try{let n=JSON.parse(Gs(Cn(t),"utf8"));return vo(n.semantic_attribution?.[e.key])}catch{return}}async function Hf(e){return(await Ot(e)).focused_item}async function Wf(e,t){let n=await Ot(e);await Rn(e,{...n,focused_item:t})}async function Bf(e){let n={...await Ot(e)};delete n.focused_item,await Rn(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 $n=["model","effort","role","topic","version"],Rt=new Fn,xo=new Fn,Nt=new Fn,Zs=[{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:[]}],Ne=new Map,Ln=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function M(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function ke(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function Dt(e){let t=e.harness.trim().toLowerCase();if(!Ln.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:ke(e.environment_keys),model_environment_keys:ke(e.model_environment_keys),session_environment_keys:ke(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),ke(r)]).filter(([n])=>Ln.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"&&Ln.test(n[0])&&(n[1]==="ai_agent_version"||n[1]==="claude_session_file"))),provenance_unavailable_dimensions:ke(e.provenance_unavailable_dimensions).map(n=>n.toLowerCase()),argv_markers:ke(e.argv_markers).map(n=>n.toLowerCase()),client_names:ke(e.client_names).map(n=>n.toLowerCase())}}var To=Zs.map(Dt);function ea(e,t){return JSON.stringify(e)===JSON.stringify(t)}function Ct(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function zn(e=[]){let t=[...To,...[...Ne.values()].map(r=>r.descriptor),...Nt.getStore()?.descriptors??[],...e.map(Dt)],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 Un(e,t){for(let n of t??[]){let r=M(e[n]);if(r)return r.slice(0,256)}}function ta(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 Oo(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 M(r[o+1])?.slice(0,256);let s=n.find(a=>i.startsWith(`${a}=`));if(s)return M(i.slice(s.length+1))?.slice(0,256)}}var na=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function ve(e,t){if(e!=="role"||t===void 0)return t;let n=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return na.has(n)?n:void 0}function jn(e,t){return M(e?.[t])?.slice(0,256)}var ra=1048576;function oa(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 M(i)?.slice(0,256)}function ia(e,t,n){let r=M(n.CLAUDE_CODE_SESSION_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let i=Io.resolve(t.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),s=Io.join(t.home_dir??Qs.homedir(),".claude","projects",i,`${r}.jsonl`);try{let a=At.openSync(s,"r");try{let c=At.fstatSync(a).size,l=Math.min(c,ra),f=Buffer.alloc(l);At.readSync(a,f,0,l,Math.max(0,c-l));let u=f.toString("utf8").split(`
|
|
2
|
-
`).reverse();for(let _ of u.slice(0,4096)){let y=oa(_,e);if(y)return y}return}finally{At.closeSync(a)}}catch{return}}function sa(e,t,n,r){let o=Nt.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(M(n.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let s=r?.provenance_resolvers[e];if(s==="claude_session_file")return ia(e,t,n);if(s==="ai_agent_version"){let a=M(n.AI_AGENT);return!a||!r||!Ct(a,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(a)?.[1]?.slice(0,256)}}function aa(e,t,n){if(e==="ai_agent_version"){let r=M(n.AI_AGENT);return r!==void 0&&Ct(r,t.harness)}return M(n.CLAUDE_CODE_SESSION_ID)!==void 0}function Hn(e){return e||(xo.getStore()??{env:process.env,argv:process.argv})}function ca(e,t,n,r){let o=e.environment_keys.some(a=>M(t[a])!==void 0),i=e.argv_markers.some(a=>n.some(c=>{let l=c.replaceAll("\\","/");return Ct(l.slice(l.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||Ct(r,a));return o||i||s}function da(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 la(e){let t=e.find(([n])=>n!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function ua(e,t,n,r,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...$n,...Object.keys(r?.provenance_environment_keys??{})]),c,l,f;a.has(e)&&(c=ve(e,M(n[s])?.slice(0,256)),f=ve(e,Oo(t.argv??[],e)),l=ve(e,ta(t.argv??[],e)));let u={...r?.provenance_environment_keys,model:r?.model_environment_keys},_={...t.client_info?.provenance,model:t.client_info?.model},y=jn(o?.provenance,e),w=ve(e,Un(n,u[e])),S=ve(e,jn(_,e)),E=ve(e,jn(t.provenance,e)),C=sa(e,t,n,r);return la([[c,"override"],[y,"session"],[f,"argv"],[w,"environment"],[S,"mcp_client"],[E,"host"],[C,"probe"]])??da(e,i)??(l?{value:l,source:"argv"}:void 0)}function fa(e,t){if(!(!e||!t))return Ys("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function ma(e,t,n,r,o){let i=Object.keys(n?.provenance_environment_keys??{}),s=new Set([...$n,...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 l=ua(c,e,t,n,r,o);l?a[c]=l:n&&(c!=="version"||n.provenance_unavailable_dimensions.includes(c))&&(a[c]=null)}return a}function Zf(e){let t=e.map(Dt),n=new Map(To.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=Ne.get(i.harness);if(s&&!ea(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=Ne.get(i.harness);Ne.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=Ne.get(i.harness);!s||s.registrations<=1?Ne.delete(i.harness):s.registrations-=1}}}}function em(e,t){return xo.run(e,t)}function tm(e,t,n={}){let r=e.map(Dt);return zn(r),Nt.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function Wn(e){let t=Hn(e),n=t.env??{},r=zn(t.descriptors),o=[...(t.argv??[]).slice(0,3),...t.process_labels??[]].slice(0,64).map(w=>w.slice(0,512)),i=t.client_info?.name.trim().toLowerCase()??"",s=r.find(w=>ca(w,n,o,i)),a=Tn(t,n),c=[Un(n,s?.session_environment_keys),M(t.client_info?.session)?.slice(0,256)].find(w=>w!==void 0),l=fa(s?.harness,c),f=So({cwd:t.cwd??process.cwd(),env:n,key:l}),u=ma(t,n,s,a,f),_=u.model,y=[["harness",s?.harness],["model",_?.value],["model_source",_?.source],["session",c],["instance",l],["provenance",Object.keys(u).length>0?u:void 0],["episode",a.episode]];return Object.fromEntries(y.filter(w=>w[1]!==void 0))}function _a(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=aa(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 Ao(e){let t=Hn(e),n=Wn(t),r=zn(t.descriptors).find(l=>l.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&Nt.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(M(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=Tn(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,Un(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,Oo(t.argv??[],"role")].some(l=>{let f=M(l)?.slice(0,256);return f!==void 0&&ve("role",f)===void 0}),c=Object.fromEntries($n.map(l=>[l,_a(l,n,r,o,i,l==="role"&&a)]));return{...n,provenance_outcomes:c}}function nm(){return process.env.PM_AUTHOR}function rm(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function om(e){return Wn(e).harness}function pa(e,t,n){let r=Hn(n),o=Wn(r);if(e!==void 0){let s=M(e);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}if(r.env?.PM_AUTHOR!==void 0){let s=M(r.env.PM_AUTHOR);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}let i=M(t);return i?{author:i,source:"configured",...o}:o.harness?{author:`harness:${o.harness}`,source:"detected",...o}:{author:"unknown",source:"unknown",...o}}function Co(e){let t=Rt.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function Ro(e){let t=Rt.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 No(e){let t=Rt.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function Do(e,t){let n=pa(e,t);return Rt.enterWith(n),n.author}import ya from"node:crypto";import{AsyncLocalStorage as ha}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 Po=new ha,Mo=1024;function Lo(){let e=Po.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 jo(e){let t=Po.getStore();if(t===void 0)return;if(!Number.isSafeInteger(e)||e<0||e>Mo)throw new Error(`Reproducible token length must be an integer between 0 and ${Mo}`);let n="";for(;n.length<e;){let r=ya.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]="6be1497f-a0d5-518b-bf6a-e549b18fad8a")}catch{}})();var ga=/^([+-]?)(\d+)([hdwm])$/i,ba=/^[+-]?\d+[hdwm](?:[+-]\d+[hdwm])+$/i,wa=/^(\d{4})(\d{2})(\d{2})$/,Ea=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,ka=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})-(\d{2})(?:-(\d{2}))?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,va=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i;function Se(){return Lo()??new Date().toISOString()}function ce(e){return Number.isFinite(Date.parse(e))}var Sa=1e4,Mt=new Map;function Fo(e){let t=Mt.get(e);if(t!==void 0)return t;let n=Date.parse(e);return Mt.size>=Sa&&xt(Mt),Mt.set(e,n),n}function $(e,t){let n=Fo(e),r=Fo(t);return Number.isFinite(n)&&Number.isFinite(r)&&n!==r?n-r:e.localeCompare(t)}function mm(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 Bn(e){return e?`.${e.slice(1).padEnd(3,"0").slice(0,3)}`:""}function Vn(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 Ia(e,t,n){n&&n!==t&&(e.includes(n)||e.push(n))}function xa(e){let t=[],n=l=>Ia(t,e,l),r=wa.exec(e);if(r){let[,l,f,u]=r;n(`${l}-${f}-${u}`)}let o=Ea.exec(e);if(o){let[,l,f,u,_,y,w,S,E]=o,C=w?`:${w}`:"";n(`${l}-${f}-${u}T${_}:${y}${C}${Bn(S)}${Vn(E)}`)}let i=ka.exec(e);if(i){let[,l,f,u,_,y,w]=i,S=_?`:${_}`:"";n(`${l}T${f}:${u}${S}${Bn(y)}${Vn(w)}`)}let s=va.exec(e);if(s){let[,l,f,u,_,y,w]=s,S=_?`:${_}`:"";n(`${l}T${f}:${u}${S}${Bn(y)}${Vn(w)}`)}let a=10,c=e.slice(0,a);if(Oa(c)){let l=a;for(;l<e.length&&Aa(e[l]);)l+=1;l<e.length&&n(`${c}T${e.slice(l)}`)}return t}function Ta(e){let t=Date.parse(e);if(Number.isFinite(t))return t;for(let n of xa(e)){let r=Date.parse(n);if(Number.isFinite(r))return r}return Number.NaN}function Oa(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 Aa(e){return e?e===" "||e===" "||e===`
|
|
3
|
-
`||e==="\r"||e==="\f"||e==="\v":!1}function $o(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}var Ca=["January","February","March","April","May","June","July","August","September","October","November","December"],Ra=/^(\d{4})-(\d{2})-(\d{2})/,Na=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/;function Da(e,t,n){let r=Ra.exec(t)??Na.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=$o(o,i-1);if(s<1||s>c)throw new x(`Invalid ${a} value "${e}". ${Ca[i-1]} ${o} has ${c} days, so day "${r[3]}" does not exist. Use a real YYYY-MM-DD calendar date.`,I.USAGE)}function Ma(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,$o(i,s));return n.setUTCFullYear(i,s,a),n}function _m(e,t=new Date,n="deadline"){let r=e.trim();if(r.toLowerCase()==="now")return t.toISOString();let o=ga.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 Ma(t,a).toISOString();let l=c==="h"?3600*1e3:c==="d"?1440*60*1e3:10080*60*1e3;return new Date(t.getTime()+a*l).toISOString()}Da(e,r,n);let i=Ta(r);if(!Number.isFinite(i)){let s=n.trim().length>0?n.trim():"deadline",a=ba.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 De=1,zo=1;function ym(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=De?t:De}function Uo(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=De))return e}function Pa(e,t=zo){return e<t?"outdated":e>t?"ahead":"current"}function hm(e,t=zo){let n=[],r=[];for(let o of e){let i=Pa(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 La={"in-progress":"in_progress",cancelled:"canceled"};function Pt(e,t){if(t){let o=ho(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=La[n]??n;if(gt.includes(r))return r}function ja(e,t){return Pt(e,t)??e}function Em(e,t){return t.terminal_statuses.has(ja(e,t))}import{encode as Ba}from"@toon-format/toon";import{isDeepStrictEqual as qo}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]="9bef4fe4-11a8-51ae-a42a-a93cc9c57384")}catch{}})();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 Fa(e){return[...new Set([bo(e),qn(e.key),qn(e.cli_flag),...e.cli_aliases.map(t=>qn(t))])]}function Bo(e,t){for(let n of Fa(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function Vo(e){return Array.isArray(e)?e.flatMap(t=>Vo(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 Ho(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 Wo(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 $a(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 Ze(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:$a(i,r,e.type)}if(e.repeatable||e.type==="string_array"){let i=Vo(t);return e.type==="number"?i.map(s=>Wo(s,r)):e.type==="boolean"?i.map(s=>Ho(s,r)):i}let o=Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return e.type==="number"?Wo(o,r):e.type==="boolean"?Ho(o,r):typeof o=="string"?o:String(o)}function za(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 xm(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=Bo(e,i);if(s===void 0){za(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=Ze(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function Tm(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=Bo(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=Ze(s,a)))}return r}import{decode as Ua}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 Gn(e){return{value:Ua(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 Ha=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function Wa(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(Ha);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function Lt(e){return Wa(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 Va=new Set(["schema","tracker","auto"]),qa=new Set(["passed","failed","stopped","canceled"]),Ga=new Set(Yr);function Le(e){return e.replaceAll("\\","/")}function Jo(e){for(let t of e)if(t!==0)return t;return 0}function jt(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var Ko=["id","title","description","created_at","updated_at"],Xa=new Set(se);function Yo(e){if(e?.schema)return{statusRegistry:yo(e.schema),fieldRegistry:go(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function Ja(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function de(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 nt(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 Qo(e){let t=new Set(Xa);for(let n of e.fieldRegistry?.definitions??[])t.add(n.metadata_key);for(let n of e.extensionFieldNames)t.add(n);return t}function g(e,t){e||de(t)}function rt(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&de(t),e}function Xn(e,t){let n=e[t];g(typeof n=="string",`${t} must be a string`),g(ce(n),`${t} must be a valid ISO timestamp`)}function Go(e,t,n){let r=e[t];r!==void 0&&g(typeof r=="number"&&Number.isInteger(r)&&r>=1,`${n} must be an integer >= 1`)}function Yn(e,t,n){let r=e[t];r!==void 0&&(g(typeof r=="string",`${n} must be a string`),g(ce(r),`${n} must be a valid ISO timestamp`))}function Ka(e){if(e!==void 0){g(Array.isArray(e),"event.recurrence.by_weekday must be an array");for(let t of e){g(typeof t=="string","event.recurrence.by_weekday entries must be strings");let n=t.trim().toLowerCase();g(kt.includes(n),`event.recurrence.by_weekday entries must be one of: ${kt.join(", ")}`)}}}function Ya(e){if(e!==void 0){g(Array.isArray(e),"event.recurrence.by_month_day must be an array");for(let t of e)g(typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=31,"event.recurrence.by_month_day entries must be integers 1..31")}}function Qa(e){if(e!==void 0){g(Array.isArray(e),"event.recurrence.exdates must be an array");for(let t of e)g(typeof t=="string","event.recurrence.exdates entries must be strings"),g(ce(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function Za(e){let t=rt(e,"event.recurrence must be an object");g(typeof t.freq=="string","event.recurrence.freq must be a string");let n=t.freq.trim().toLowerCase();g(Et.includes(n),`event.recurrence.freq must be one of: ${Et.join(", ")}`),Go(t,"interval","event.recurrence.interval"),Go(t,"count","event.recurrence.count"),Yn(t,"until","event.recurrence.until"),Ka(t.by_weekday),Ya(t.by_month_day),Qa(t.exdates)}function ec(e){for(let r of Ko)g(typeof e[r]=="string",`${r} is required and must be a string`);let t=e.type;g(typeof t=="string"&&t.trim().length>0,"type must be a non-empty string");let n=e.pm_format_version;return n!==void 0&&g(typeof n=="number"&&Number.isInteger(n)&&n>=De,`pm_format_version must be an integer >= ${De}`),t}function tc(e,t){let n=e.status;g(typeof n=="string"&&n.trim().length>0,"status must be a non-empty string");let r=t?.statusRegistry,o=Pt(n,r),i=r?r.definitions.map(s=>s.id):[...gt];g(o!==void 0,`status must be one of: ${i.join(", ")}`)}function nc(e){let t=e.priority;g(typeof t=="number"&&Number.isInteger(t)&&[0,1,2,3,4].includes(t),"priority must be an integer 0..4");let n=e.tags;g(Array.isArray(n),"tags must be an array");for(let r of n)g(typeof r=="string","tags entries must be strings")}function rc(e){let t=e.confidence;if(t!==void 0){if(typeof t=="number"){g(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"||wt.includes(n);g(r,`confidence string value must be one of: ${[...wt,"med"].join(", ")}`);return}g(!1,"confidence must be a number or string")}}function oc(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&de("severity must be a string");let n=t.trim().toLowerCase(),r=n==="med"||bt.includes(n);g(r,`severity value must be one of: ${[...bt,"med"].join(", ")}`)}function ic(e){e.regression!==void 0&&typeof e.regression!="boolean"&&de("regression must be a boolean")}function sc(e){let t=e.reminders;if(t!==void 0){g(Array.isArray(t),"reminders must be an array");for(let n of t){let r=rt(n,"reminders entries must be objects");g(typeof r.at=="string","reminder.at must be a string"),g(ce(r.at),"reminder.at must be a valid ISO timestamp"),g(typeof r.text=="string","reminder.text must be a string"),g(r.text.trim().length>0,"reminder.text must not be empty")}}}function ac(e){for(let t of["title","description","location","timezone"])e[t]!==void 0&&(g(typeof e[t]=="string",`event.${t} must be a string`),g(e[t].trim().length>0,`event.${t} must not be empty`))}function cc(e){e.recurrence!==void 0&&(Za(e.recurrence),e.recurrence.until!==void 0&&g($(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function dc(e){let t=rt(e,"events entries must be objects");g(typeof t.start_at=="string","event.start_at must be a string"),g(ce(t.start_at),"event.start_at must be a valid ISO timestamp"),t.end_at!==void 0&&(g(typeof t.end_at=="string","event.end_at must be a string"),g(ce(t.end_at),"event.end_at must be a valid ISO timestamp"),g($(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),ac(t),t.all_day!==void 0&&g(typeof t.all_day=="boolean","event.all_day must be a boolean"),cc(t)}function lc(e){let t=e.events;if(t!==void 0){g(Array.isArray(t),"events must be an array");for(let n of t)dc(n)}}function uc(e){for(let t of["source_type","source_owner","design","external_ref"]){let n=e[t];n!==void 0&&g(typeof n=="string",`${t} must be a string`)}}function fc(e){let t=e.type_options;if(t===void 0)return;let n=rt(t,"type_options must be an object");for(let[r,o]of Object.entries(n))g(r.trim().length>0,"type_options keys must be non-empty"),g(typeof o=="string","type_options values must be strings"),g(o.trim().length>0,"type_options values must be non-empty strings")}function mc(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){Ja(r,t)&&de(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=Ze(r,o,`metadata field "${r.metadata_key}"`)}catch(i){de(String(i?.message).replace(/^Invalid\s+/u,""))}}}function _c(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Qo(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length!==0&&(t.unknownFieldPolicy==="reject"?de(`unknown schema fields are not allowed: ${r.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`))}function Qn(e,t){let n=rt(e,"item metadata must be an object"),r=ec(n);tc(n,t),nc(n),rc(n),oc(n),ic(n),Xn(n,"created_at"),Xn(n,"updated_at"),n.deadline!==void 0&&Xn(n,"deadline"),sc(n),lc(n),Yn(n,"closed_at","closed_at"),Yn(n,"completed_at","completed_at"),uc(n),fc(n),mc(n,r,t),_c(n,t)}function pc(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 Jn(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 yc(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 hc(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!Et.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>kt.includes(s)))).sort((s,a)=>kn(s)-kn(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=>ce(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 gc(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(bc).sort(wc)}function bc(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:hc(e.recurrence)};return jt(t),t}function wc(e,t){return Jo([$(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 Ec(e){if(!(!e||e.length===0))return e.map(t=>({path:Le(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function kc(e){if(!e||e.length===0)return;let t=e.map(Ic).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)=>Jo([$(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 Me(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function vc(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function Kn(e){return typeof e=="string"?e:""}function Sc(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 Ic(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=qa.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:Kn(e.started_at),finished_at:Kn(e.finished_at),recorded_at:Kn(e.recorded_at),attempt:vc(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:Me(e.passed)??0,failed:Me(e.failed)??0,skipped:Me(e.skipped)??0,items:Me(e.items),linked_tests:Me(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:Sc(e.measurements)};return jt(o),o}function xc(e){if(!(!Array.isArray(e)||e.length===0))return e.map(Ac)}function et(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 Zo(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function er(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function Xo(e){if(!Zo(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!er(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Tc(e){if(!Zo(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!er(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Oc(e){let t=e?.trim().toLowerCase();if(!(!t||!Va.has(t)))return t}function Ac(e){let t={command:e.command?.trim()||void 0,path:e.path?Le(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:Oc(e.pm_context_mode),env_set:Xo(e.env_set),env_clear:et(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:et(e.assert_stdout_contains),assert_stdout_regex:et(e.assert_stdout_regex),assert_stderr_contains:et(e.assert_stderr_contains),assert_stderr_regex:et(e.assert_stderr_regex),assert_stdout_min_lines:Me(e.assert_stdout_min_lines),assert_json_field_equals:Xo(e.assert_json_field_equals),assert_json_field_gte:Tc(e.assert_json_field_gte),note:e.note?.trim()||void 0};return jt(t),t}function Cc(e){if(!(!e||e.length===0))return[...e].map(t=>({path:Le(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 Rc(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 Nc(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:Le(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 Dc(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=Le(i));let a=h(r.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function Mc(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:Le(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 Pc(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&&Ga.has(o)?o:void 0,s=io(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 l={id:n,order:s,title:r,status:i,created_at:a,updated_at:c};return Lc(l,t),l}function Lc(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",Rc],["files","files",Nc],["tests","tests",Dc],["docs","docs",Mc]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function jc(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=Pc(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function Fc(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 l=h(r.evidence);l&&(a.evidence=l);let f=h(r.step_id);f&&(a.step_id=f),t.push(a)}return t.length>0?t:void 0}function $c(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 zc(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 Uc(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 Pe(e){let t=0;for(;t<e.length&&e[t]===`
|
|
4
|
-
`;)t+=1;return e.slice(t).trimEnd()}function Hc(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(wt.includes(t))return t}function Wc(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(bt.includes(t))return t}function tt(e){return e||void 0}function Bc(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))er(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function Vc(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]=Ze(r,o,`metadata field "${r.metadata_key}"`))}}function qc(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Qo(t),o=Object.keys(e).filter(i=>!n.has(i)).sort((i,s)=>i.localeCompare(s));o.length>0&&t.unknownFieldPolicy==="reject"&&de(`unknown schema fields are not allowed: ${o.join(", ")}`),o.length>0&&t.onWarning?.(`item_unknown_schema_fields:${o.join(",")}`)}function Ft(e,t={}){let n=Yo(t),r=Pt(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:Uo(e.pm_format_version),source_type:h(e.source_type),type_options:Uc(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:pc(e.dependencies),comments:Jn(e.comments),notes:Jn(e.notes),learnings:Jn(e.learnings),files:Ec(e.files),tests:xc(e.tests),test_runs:kc(e.test_runs),docs:Cc(e.docs),deadline:tt(e.deadline),reminders:yc(e.reminders),events:gc(e.events),closed_at:tt(e.closed_at),completed_at:tt(e.completed_at),assignee:h(e.assignee),claim_principal:h(e.claim_principal),source_owner:h(e.source_owner),author:tt(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:Hc(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:Wc(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:tt(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:jc(e.plan_steps),plan_decisions:Fc(e.plan_decisions),plan_discoveries:$c(e.plan_discoveries),plan_validation:zc(e.plan_validation)};return Bc(i,e),Vc(i,n),qc(i,n),jt(i),i}function ei(e){return k(e,se)}function Gc(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 Xc(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=Gc(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 Jc(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 Zn(e,t){return Ft(e,{...t,onWarning:void 0})}function Kc(e,t,n={}){let r=Jc(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=Xc(r.content);o||(e.trimStart().startsWith("{")&&nt("json_markdown","JSON front matter is not valid JSON"),nt("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{nt("json_markdown","JSON front matter is not valid JSON")}return Qn(s,t),{metadata:Zn(s,n),body:Pe(i)}}function Yc(e,t,n={}){let r;try{r=Gn(e).value}catch{nt("toon","TOON item document is not valid TOON")}g(typeof r=="object"&&r!==null&&!Array.isArray(r),"TOON item document must be an object");let o=r;if(!Ko.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&nt("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return Qn(o.front_matter,t),g(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:Zn(o.front_matter,n),body:Pe(typeof o.body=="string"?o.body:"")};let{body:i,...s}=o;return g(i===void 0||typeof i=="string","TOON item document body must be a string"),Qn(s,t),{metadata:Zn(s,n),body:Pe(typeof i=="string"?i:"")}}function Qc(e,t={}){let n=Ft(e.metadata,t),r=ei(n),o=JSON.stringify(r,null,2),i=Pe(e.body??"");return i?`${o}
|
|
6
|
-
|
|
7
|
-
${i}
|
|
8
|
-
`:`${o}
|
|
9
|
-
`}function Zc(e,t={}){let n=Ft(e.metadata,t),r=ei(n),o=Pe(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i)),a=Ba(s),c;try{c=Gn(a).value}catch(l){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:l instanceof Error?l.message:String(l)})}if(!qo(c,s)){let l=typeof c=="object"&&c!==null&&!Array.isArray(c)?c:{},f=Object.keys(s).find(u=>!qo(s[u],l[u]))??"document";throw new x(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${f}".`,I.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_mismatch",format:"toon",field:f,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 $t(e,t={}){let n=Lt(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=Yo(t);return r==="toon"?Yc(e,o,t):Kc(e,o,t)}function ti(e,t={}){return(t.format??"toon")==="toon"?Zc(e,t):Qc(e,t)}function q(e,t={}){return{metadata:Ft(e.metadata,t),body:Pe(e.body??"")}}import{existsSync as td}from"node:fs";import{AsyncLocalStorage as nd}from"node:async_hooks";import Z 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 Km(){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 ed(){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 je=null,ri=null,rd=null,od=null,tr=null,id=null,oi=null,sd=null;var ad=[],ii=new nd;function P(){return ii.getStore()}function d_(e){return ii.run({hooks:null,commands:null,parsers:null,preflight:null,services:null,renderers:null,registrations:null,commandContext:null,commandResult:void 0,affectedItems:[]},e)}var cd=new Set(["body","comments","dependencies","docs","events","files","learnings","notes","reminders","test_runs","tests"]);function ni(e){let t=Z.resolve(e);for(;;){if(td(Z.join(t,".git")))return t;let n=Z.dirname(t);if(n===t)return;t=n}}function dd(e){let t=process.env.PM_SOURCE_WORKSPACE_ROOT?.trim()||process.cwd(),n=ni(t)??Z.resolve(t),r=ni(n);if(!e)return{source_workspace_root:n,...r?{repo_root:r}:{}};let o=Z.relative(n,Z.resolve(e)),i=o.length>0&&!o.startsWith(`..${Z.sep}`)&&o!==".."&&!Z.isAbsolute(o);return{source_workspace_root:n,...r?{repo_root:r}:{},...i?{pm_root_rel:o.split(Z.sep).join("/")}:{}}}function l_(e){let t=P();if(t){t.hooks=e;return}je=e}function u_(e){let t=P();if(t){t.commands=e;return}ri=e}function f_(e){let t=P();if(t){t.parsers=e;return}rd=e}function m_(e){let t=P();if(t){t.preflight=e;return}od=e}function __(e){let t=P();if(t){t.services=e;return}tr=e}function p_(e){let t=P();if(t){t.renderers=e;return}id=e}function y_(e){let t=P();if(t){t.registrations=e;return}oi=e}function ot(){let e=P();return e?e.registrations:oi}function nr(e){if(!e)return;let t=P();t?t.affectedItems.push(e):ad.push(e)}function zt(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"||cd.has(i)||Object.hasOwn(r,i)&&r[i]!==void 0&&(n[i]=r[i])}return n}async function G(e){let t=P(),n=t?t.hooks:je;return n?ao(n,e):[]}async function rr(e){let t=P(),n=t?t.hooks:je;n&&await so(n,e)}async function K(e){let t=P(),n=t?t.hooks:je;return n?co(n,e):[]}function or(){let e=P();return((e?e.hooks:je)?.onRead?.length??0)>0}async function h_(e){let t=P(),n=t?t.hooks:je;return n?lo(n,e):[]}async function g_(e){let t=P(),n=t?t.commands:ri;return n?uo(n,{...e,...dd(e.pm_root)}):{handled:!1,result:null,warnings:[]}}function si(e,t){let n=P(),r=n?n.commandContext:sd;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 ee(e,t){let n=P(),r=n?n.services:tr;return r?mo(r,si(e,t)):{handled:!1,result:t,warnings:[]}}function ai(e,t){let n=P(),r=n?n.services:tr;return r?fo(r,si(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 Fe(e,t){let n=await ae(e);if(n===null)return[];if(await K({path:e,scope:"project"}),n.trim()==="")return[];let r=Lt(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 yr 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 vi from"fast-json-patch";import le from"node:fs/promises";import te from"node:path";import{randomUUID as ld}from"node:crypto";import{createRequire as ud}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]="f1205949-16d8-51ce-98e8-04abc4c78ee8")}catch{}})();var fd="history-event-index.sqlite",ir="2";function Wt(e){return te.join(e,"runtime",fd)}function md(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}function _d(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?md(t):null}var Ut;function sr(){return Ut!==void 0||(Ut=_d(process.versions.node,ud(import.meta.url))),Ut}function pd(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(ir)}function ci(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 L_(e){let t=sr();if(!t)return!1;let n=te.join(e,"history"),o=(await le.readdir(n,{withFileTypes:!0}).catch(c=>{if(typeof c=="object"&&c!==null&&"code"in c&&c.code==="ENOENT")return[];throw c})).filter(c=>c.isFile()&&c.name.endsWith(".jsonl")).sort((c,l)=>c.name.localeCompare(l.name)),i=Wt(e);await le.mkdir(te.dirname(i),{recursive:!0});let s=`${i}.${ld()}.tmp`,a;try{a=new t(s),pd(a),a.exec("BEGIN IMMEDIATE");for(let c of o){let l=c.name.slice(0,-6),f=await Fe(te.join(n,c.name),l);for(let[u,_]of f.entries())ci(a,{stream_id:l,stream_offset:u,entry:_})}return a.exec("COMMIT"),a.close(),a=void 0,await le.rm(i,{force:!0}),await le.rename(s,i),!0}catch(c){throw a?.close(),await le.rm(s,{force:!0}),c}}async function di(e,t){let n=te.dirname(te.dirname(e)),r=Wt(n);try{await le.access(r)}catch{return}let o=sr();if(!o)return;let i;try{if(i=new o(r),i.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==ir)throw new TypeError("Unsupported history event index version");let a=te.basename(e,".jsonl"),c=i.prepare("SELECT COALESCE(MAX(stream_offset), -1) + 1 AS value FROM events WHERE stream_id = ?").get(a);ci(i,{stream_id:a,stream_offset:Number(c.value),entry:t}),i.close()}catch{i?.close(),await le.rm(r,{force:!0})}}async function Bt(e){await le.rm(Wt(te.dirname(te.dirname(e))),{force:!0})}function Ht(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function yd(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 j_(e,t){let n=sr();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)),Ht(r,o,"op",t.ops),Ht(r,o,"author",t.authors),yd(r,o,t.harnesses,t.harness_alias_authors),Ht(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);Ht(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s;try{if(s=new n(Wt(e),{readOnly:!0}),s.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==ir)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),l=c.length>t.limit,f=c.slice(0,t.limit).map(u=>({stream_id:String(u.stream_id),stream_offset:Number(u.stream_offset),entry:JSON.parse(String(u.entry_json))}));return s.close(),{events:f,has_more:l}}catch{return s?.close(),null}}import mr from"node:fs/promises";import ze 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]="22af7808-6456-5889-b6e3-1abd73f35738")}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]="c873f95b-c435-5b0d-a631-565fb195b5cd")}catch{}})();var Vt="changed_fields",hd="changed_field_count",ar="rows",gd=new Set(["apply","rollback"]),li=new Set(["deleted","would_delete"]);function Ie(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function ui(e){let t=e[Vt];if(!Array.isArray(t))return null;let n=Object.getPrototypeOf(e)===null?Object.create(null):{};for(let[r,o]of Object.entries(e))r!==Vt&&(n[r]=o);return n[hd]=t.length,n}function bd(e){return"item"in e&&Array.isArray(e[Vt])}function wd(e){return typeof e.mode=="string"&&gd.has(e.mode)&&Array.isArray(e[ar])}function Ed(e,t){let n=Object.getPrototypeOf(e)===null?Object.create(null):{};return Object.assign(n,e),n[ar]=t,n}function kd(e){if(!Ie(e))return null;let t=Ie(e.item)?e.item:Ie(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"&&li.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 vd(e){if(!Ie(e)||!Ie(e.item)||typeof e.item.id!="string")return null;let t=e[Vt];if(!Array.isArray(t))return null;let n={id:e.item.id,...typeof e.outcome=="string"&&li.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;return r!==void 0&&(n.close_reason=r),Array.isArray(e.warnings)&&e.warnings.length>0&&(n.warnings=e.warnings),n}function Sd(e){let t=wd(e)?e[ar]:void 0;if(!Array.isArray(t))return{projected:e,changed:!1};let n=!1,r=t.map(o=>{if(!Ie(o))return o;let i=ui(o);return i?(n=!0,i):o});return n?{projected:Ed(e,r),changed:!0}:{projected:e,changed:!1}}function Id(e,t={}){if(t.idOnly===!0){let a=kd(e);if(a!==null)return a}if(t.compactEnvelope===!0){let a=vd(e);if(a!==null)return a}if((t.changedFields??"full")==="full"||!Ie(e))return e;let r=!1,o=e,i=bd(e)?ui(e):null;i!==null&&(o=i,r=!0);let s=Sd(o);return s.changed&&(o=s.projected,r=!0),r?o:e}import{encode as _i}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 fi=!1;function $e(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function cr(e){return typeof e=="object"&&e!==null&&e.code==="EPIPE"}function xd(){(process.exitCode===void 0||process.exitCode===I.SUCCESS)&&(process.exitCode=I.SUCCESS)}function Td(){(process.exitCode===void 0||process.exitCode===I.SUCCESS)&&(process.exitCode=I.GENERIC_FAILURE)}function dr(e){if(e==="stdout"){xd();return}Td()}function mi(e){let t=e instanceof Error?e:new Error(String(e));setImmediate(()=>{throw t})}function Od(){fi||(fi=!0,process.stdout.on("error",e=>{if(cr(e)){dr("stdout");return}mi(e)}),process.stderr.on("error",e=>{if(cr(e)){dr("stderr");return}mi(e)}))}function Ad(e,t){Od();try{return e==="stdout"?process.stdout.write(t):process.stderr.write(t),!0}catch(n){if(cr(n))return dr(e),!1;throw n}}function qt(e){return Ad("stderr",e)}function lr(e){return typeof e=="string"?JSON.stringify(e):typeof e=="number"||typeof e=="boolean"?String(e):e===null?"null":JSON.stringify(e)}function Cd(e){return e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function pi(e){if(e.length===0||!e.every($e))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)&&Cd(n[r])))}function yi(e,t){let n=" ".repeat(t);return e.split(`
|
|
45
|
-
`).map(r=>`${n}${r}`).join(`
|
|
46
|
-
`)}function Rd(e,t,n){let r=" ".repeat(n);return!$e(t)&&!Array.isArray(t)?`${r}${e}: ${lr(t)}`:Array.isArray(t)&&t.length===0?`${r}${e}: []`:Array.isArray(t)&&pi(t)?yi(_i({[e]:t}),n):$e(t)&&Object.keys(t).length===0?`${r}${e}: {}`:`${r}${e}:
|
|
47
|
-
${fr(t,n+1)}`}function ur(e){if(e!=null){if(Array.isArray(e)){let t=e.map(n=>ur(n)).filter(n=>n!==void 0);return t.length>0?t:void 0}if($e(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=ur(r);o!==void 0&&(t[n]=o)}return Object.keys(t).length>0?t:void 0}return e}}function fr(e,t){let n=" ".repeat(t);if(Array.isArray(e))return e.length===0?"[]":pi(e)?yi(_i(e),t):e.map(r=>{if(!$e(r)&&!Array.isArray(r))return`${n}- ${lr(r)}`;let i=fr(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($e(e)){let r=Object.entries(e);return r.length===0?"{}":r.map(([o,i])=>Rd(o,i,t)).join(`
|
|
52
|
-
`)}return`${n}${lr(e)}`}function ip(e,t){if(t==="json")return`${JSON.stringify(e,null,2)}
|
|
53
|
-
`;let n=ur(e);return n===void 0?`{}
|
|
54
|
-
`:`${fr(n,0)}
|
|
55
|
-
`}function sp(e){let t=ai("error_format",{message:e}),n=t.handled&&typeof t.result=="string"?t.result:e;qt(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 Nd=ze.join("runtime","history-drift-cache.json"),hi={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 gi(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function Dd(e){let t=ze.join(e,Nd),n=!1,r="invalid_cache_path";try{n=(await mr.stat(await mr.realpath(e))).isDirectory()}catch(o){let i=gi(o);r=i===void 0?"unknown":hi[i]??"filesystem_error"}if(!n){qt(`[pm] warning: history_drift_cache_invalidation_failed:${r}
|
|
58
|
-
`);return}try{await mr.rm(t,{force:!0})}catch(o){let i=gi(o);if(be(o))return;let s=i===void 0?"unknown":hi[i]??"filesystem_error";qt(`[pm] warning: history_drift_cache_invalidation_failed:${s}
|
|
59
|
-
`)}}async function it(e){let t=ze.dirname(ze.resolve(e));ze.basename(t)==="history"&&await Dd(ze.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 Pd={front_matter:{},body:""},fe=2,st=[1,2];function Gt(e,t){return(e??"").localeCompare(t??"")}function bi(e,t){return(e??0)-(t??0)}function ue(e,t,n){return JSON.stringify(e??n).localeCompare(JSON.stringify(t??n))}function Ld(e,t){return[e.scope.localeCompare(t.scope),Gt(e.path,t.path),Gt(e.command,t.command),bi(e.timeout_seconds,t.timeout_seconds),Gt(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,ue(e.env_clear,t.env_clear,[]),ue(e.env_set,t.env_set,{}),ue(e.assert_stdout_contains,t.assert_stdout_contains,[]),ue(e.assert_stdout_regex,t.assert_stdout_regex,[]),ue(e.assert_stderr_contains,t.assert_stderr_contains,[]),ue(e.assert_stderr_regex,t.assert_stderr_regex,[]),bi(e.assert_stdout_min_lines,t.assert_stdout_min_lines),ue(e.assert_json_field_equals,t.assert_json_field_equals,{}),ue(e.assert_json_field_gte,t.assert_json_field_gte,{}),Gt(e.note,t.note)].find(r=>r!==0)??0}function jd(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function Fd(e,t){let n=jd(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 $d(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!Fd(r,o.path)?{...o,op:"add"}:o;n.push(i),r=vi.applyPatch(r,[i],!0,!0).newDocument}return n}function _r(e,t){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let r=q(e),o=t===1&&r.metadata.tests?{...r.metadata,tests:[...r.metadata.tests].sort(Ld)}:r.metadata;return{front_matter:k(o,se),body:r.body}}function wi(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let n=q(e);return{metadata:k(n.metadata,se),body:n.body}}function Sp(e){return pr(e,fe)}function pr(e,t){if(!st.some(n=>n===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return we(B(_r(e,t)))}function Ip(){return we(B(Pd))}function Ue(e){let t=_r(e.before,fe),n=_r(e.after,fe),r=wi(e.before),o=wi(e.after),i=vi.compare(r,o),s=$d(r,i),a=Ro(e.author),c=a.harness?Object.fromEntries(Object.entries(Ao().provenance_outcomes).filter(([,f])=>f.status==="failed")):void 0,l=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??Co(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:we(B(t)),after_hash:we(B(n)),item_hash_version:fe,message:e.message===void 0?void 0:e.message,...l===void 0?{}:{context:l}}}function Ei(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function zd(e){let t=e.ts.trim();return t.length>0?t:Se()}function ki(e,t){let n=e.ts;return typeof n=="string"&&n.trim().length>0?e:{...e,ts:t}}function Xt(e,t){let n=zd(t);if(typeof e=="string"){try{let r=JSON.parse(e);if(Ei(r))return JSON.stringify(ki(r,n))}catch{}return e}return Ei(e)?JSON.stringify(ki(e,n)):JSON.stringify(e)}async function He(e,t){let n=await ee("history_append",{history_path:e,entry:t});if(n.handled){if(n.result===!1)return;if(typeof n.result=="string"){await Xe(e,Xt(n.result,t)),await it(e),await Bt(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 Xe(o,Xt(r.line,t)),await it(o),await Bt(o);return}await Xe(o,Xt(r.entry??t,t)),await it(o),await Bt(o);return}}await Xe(e,Xt(t,t)),await it(e),await di(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]="0c37a722-fda7-523e-991c-f8abfb7a1495")}catch{}})();var Ud={metadata:{},body:""};function Kt(){return structuredClone(Ud)}function Jt(e,t=fe){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return pr(Yt(e),t)}catch{}return we(B({replay_fallback:!0,metadata:e.metadata,body:e.body}))}function Yt(e){return{metadata:e.metadata,body:e.body}}function Dp(e,t={}){return q(Yt(e),t)}function Mp(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=q(e);return{metadata:k(t.metadata,se),body:t.body}}function Si(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function Hd(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function xi(e){return Array.isArray(e)?e.filter(Hd).map(t=>({...t,path:Si(t.path),from:typeof t.from=="string"?Si(t.from):void 0})):[]}function Wd(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 Qt(e,t){try{let n=xi(t),r=yr.applyPatch(structuredClone(e),n,!0,!1).newDocument;return Wd(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 Ti(e){let t=Kt(),n;for(let r=0;r<e.length;r+=1){let o=e[r],i=o.item_hash_version;if(i!==void 0&&!st.includes(i))return{ok:!1,errors:[`verify_failed:unsupported_item_hash_version:${String(i)}:entry_${r+1}`]};let s=Qt(t,o.patch);if(!s.ok)return{ok:!1,errors:[`verify_failed:patch_apply_failed:entry_${r+1}`]};let c=(i===void 0?[fe,1]:[i]).filter(f=>Jt(t,f)===o.before_hash);if(c.length===0)return{ok:!1,errors:[`verify_failed:before_hash_mismatch:entry_${r+1}`]};let l=c.find(f=>Jt(s.document,f)===o.after_hash);if(l===void 0)return{ok:!1,errors:[`verify_failed:after_hash_mismatch:entry_${r+1}`]};t=s.document,n=l}return{ok:!0,errors:[],...n===void 0?{}:{item_hash_version:n}}}function Zt(e){let t=Ti(e);return{ok:t.ok,errors:t.errors}}function Ii(e,t){try{return{ok:!0,document:yr.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function Bd(e,t){let n=structuredClone(e),r=0,o=0;for(let a of xi(t)){let c=Ii(n,a);if(c.ok){n=c.document;continue}if(a.op==="replace"){let l=Ii(n,{...a,op:"add"});if(l.ok){n=l.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 Vd(e){let t=Ti(e);if(t.ok&&t.item_hash_version!==void 0)return t.item_hash_version;let n=[...new Set(e.map(r=>r.item_hash_version).filter(r=>r!==void 0&&st.includes(r)))];return n.length===1?n[0]:n.length===0?1:fe}function Pp(e,t=Vd(e)){let n=e.findIndex(u=>u.item_hash_version!==void 0&&!st.includes(u.item_hash_version));if(n>=0)throw new TypeError(`unsupported_item_hash_version:${String(e[n]?.item_hash_version)}:entry_${n+1}`);let r=Kt(),o=[],i=[],s=0,a=0,c=0,l=0,f=t!==1||e.some(u=>u.item_hash_version!==void 0);for(let u=0;u<e.length;u+=1){let _=e[u],y=Jt(r,t),w=Qt(r,_.patch),S,E,C=!1,N=0,Q=0;if(w.ok)S=w.document,E=_.patch;else{let z=Bd(r,_.patch);S=z.document,E=yr.compare(r,S),C=!0,N=z.convertedReplaceToAdd,Q=z.skippedOps,c+=N,l+=Q,a+=1}let L=Jt(S,t),Oe=y!==_.before_hash||L!==_.after_hash;Oe&&(s+=1);let ie={..._,patch:E,before_hash:y,after_hash:L};f?ie.item_hash_version=t:delete ie.item_hash_version,o.push(ie),i.push({index:u+1,rehashed:Oe,patch_repaired:C,converted_replace_to_add:N,skipped_ops:Q}),r=S}return{entries:o,finalDocument:r,entriesRehashed:s,entriesPatchRepaired:a,convertedReplaceToAdd:c,skippedOps:l,details:i,itemHashVersion:t,explicitItemHashVersion:f}}function Lp(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
|
|
60
|
-
`)}
|
|
61
|
-
`}import qd from"node:crypto";import Oi 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 Ci(e){let t=(e??"").trim().toLowerCase();return t?t.endsWith("-")?t:`${t}-`:"pm-"}function hr(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function gr(e,t){let n=Ci(t),r=hr(e);return r.startsWith(n)?r:`${n}${r}`}function Gd(e){let t=jo(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=qd.randomInt(0,36).toString(36);return n}async function Xd(e,t,n){let r=[...new Set(Object.values(n))].flatMap(o=>[Oi.join(e,o,`${t}.md`),Oi.join(e,o,`${t}.toon`)]);return(await Promise.all(r.map(o=>St(o)))).some(Boolean)}var Ai=4,Ri=12;function Jd(e){return typeof e!="number"||!Number.isFinite(e)?Ai:Math.min(Ri,Math.max(Ai,Math.trunc(e)))}async function Wp(e,t,n={}){let r=Jd(n.tokenLength),o=Math.min(r+6,Ri),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${Ci(t)}${Gd(r)}`;if(n.probeExisting===!1||!await Xd(e,a,n.typeToFolder??ge))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import xe from"node:fs/promises";import Di from"node:path";import{randomUUID as Kd}from"node:crypto";import{createRequire as Yd}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 Qd="metadata-query-index.sqlite",at="4";function Zd(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}var en;function el(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?Zd(t):null}function ct(){return en!==void 0||(en=el(process.versions.node,Yd(import.meta.url))),en}function Ni(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function We(e){return Di.join(e,"runtime",Qd)}function tl(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 nn(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function Mi(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 Pi(e){let t=We(e.pmRoot),n=ct();if(!n){await xe.rm(t,{force:!0});return}await xe.mkdir(Di.dirname(t),{recursive:!0});let r=`${t}.${Kd()}.tmp`,o;try{o=new n(r),tl(o),o.exec("BEGIN IMMEDIATE"),nn(o,"version",at),nn(o,"context_fingerprint",e.contextFingerprint),nn(o,"source_cursor",e.sourceCursor);for(let i of e.rows)Mi(o,i);o.exec("COMMIT"),o.close(),o=void 0,await xe.rm(t,{force:!0}),await xe.rename(r,t)}catch(i){throw o?.close(),await Promise.allSettled([xe.rm(r,{force:!0})]),i}}function rn(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function Li(e){let t=We(e.pmRoot),n;try{await xe.access(t);let r=ct();if(!r)return!1;n=new r(t),n.exec("PRAGMA foreign_keys = ON");let o=rn(n);if(o.version!==at||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 l=s.get(c);i.run(c),l&&a.run(l.id)}return e.row&&Mi(n,e.row),nn(n,"source_cursor",e.sourceCursor),n.exec("COMMIT"),n.close(),!0}catch{try{n?.exec("ROLLBACK")}catch{}return n?.close(),!1}}function tn(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function nl(e){let t=[],n=[];tn(t,n,"status",e.statuses,"IN"),tn(t,n,"status",e.excludeStatuses,"NOT IN"),tn(t,n,"type",e.types,"IN"),tn(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 Jp(e){let t=ct();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=nl(n),i;try{i=new t(We(e.pmRoot),{readOnly:!0});let s=rn(i);if(s.version!==at||s.source_cursor!==e.expectedSourceCursor)return i.close(),null;let a=i.prepare(`SELECT COUNT(*) AS count FROM items${r}`).get(...o),c=[],l="";n.limit!==void 0?(l+=" LIMIT ?",c.push(Math.max(0,Math.floor(n.limit))),n.offset!==void 0&&(l+=" OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))))):n.offset!==void 0&&(l+=" LIMIT -1 OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))));let u=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${l}`).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:u}}catch{return i?.close(),null}}async function Kp(e){let t=ct();if(!t||e.paths.length===0)return null;let n;try{n=new t(We(e.pmRoot),{readOnly:!0});let r=rn(n);if(r.version!==at||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),l=Ni(e.limit,50),f=Ni(e.offset,0),u=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,l,f),_=[];if(u.length>0){let y=u.map(E=>String(E.id)),w=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),S=new Map(y.map(E=>[E,[]]));for(let E of w){let C=String(E.item_id),N=S.get(C);N.push({path:String(E.path),scope:String(E.scope),...E.note===null?{}:{note:String(E.note)}}),S.set(C,N)}for(let E of u){let C=JSON.parse(String(E.metadata_json));_.push({item:C,files:S.get(String(E.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:_}}catch{return n?.close(),null}}async function Yp(e){let t=ct();if(!t)return null;let n;try{n=new t(We(e.pmRoot),{readOnly:!0});let r=rn(n);if(r.version!==at||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 on(e){await xe.rm(We(e),{force:!0})}import F from"node:fs/promises";import R from"node:path";import{createHash as Sl,randomUUID as Yi}from"node:crypto";import ne from"node:fs/promises";import br from"node:path";import{randomUUID as rl}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 ol(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 zi(e){try{let t=await ne.readFile(e,"utf8");return await K({path:e,scope:"project"}),ol(t)}catch(t){return be(t)?{info:null,warnings:[]}:{info:null,warnings:["lock_info_read_failed"]}}}function wr(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}async function Ui(e,t){await G({path:e,scope:"project",op:t})}function il(e,t,n){return{id:e,pid:process.pid,owner:t,created_at:Se(),ttl_seconds:n}}async function sl(e,t,n,r){await ne.mkdir(br.dirname(e),{recursive:!0});let o=await ne.open(e,"wx");try{await o.writeFile(`${JSON.stringify(il(t,n,r),null,2)}
|
|
151
|
-
`,"utf8")}finally{await o.close()}await Ui(e,"lock:create")}async function Hi(e,t){try{return await ne.unlink(e),await Ui(e,t),!0}catch{return!1}}function Wi(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 al(e){return e?.owner?` (owner ${e.owner})`:""}var cl=25,dl=200,ll=250,ul=3,fl=".stale-cleanup",Bi="owner.json",ml=1e4,_l=5*6e4;function ji(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 pl(e){let t=process.env.PM_LOCK_WAIT_MS,n=ji(t);if(n!==void 0)return n;let r=ji(e);return r!==void 0?r:0}function yl(e){let t=Math.max(1,Math.round(e*(.5+Math.random())));return new Promise(n=>setTimeout(n,t))}function Vi(e,t,n){let r=n>0?` after waiting ${n}ms`:"";return new x(`Item ${e} is locked${al(t)}${r}`,I.CONFLICT,{code:"lock_conflict",recovery:{retry_after_ms:ll}})}function hl(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 gl(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 bl(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 qi(e){try{return bl(await ne.readFile(br.join(e,Bi),"utf8"))}catch{return null}}function wl(e){try{return process.kill(e,0),!0}catch(t){return!wr(t,"ESRCH")}}async function Er(e){try{return await ne.rm(e,{recursive:!0,force:!0}),!0}catch{return!1}}async function Fi(e,t){let n=await qi(e);n===null||n.token!==t||await Er(e)}async function $i(e){try{await ne.mkdir(e)}catch(n){return wr(n,"EEXIST"),null}let t={pid:process.pid,token:rl()};try{await ne.writeFile(br.join(e,Bi),`${JSON.stringify(t)}
|
|
152
|
-
`,"utf8")}catch{return await Er(e),null}return t}async function El(e){let t;try{let r=await ne.stat(e);if(t=Date.now()-r.mtimeMs,t<=ml)return!1}catch(r){return be(r)}let n=await qi(e);return n!==null&&wl(n.pid)&&t<=_l?!1:Er(e)}async function kl(e,t){let n=`${e}${fl}`,r=await $i(n);if(r!==null)return async()=>Fi(n,r.token);if(!await El(n))return null;let o=await $i(n);return o===null?null:async()=>Fi(n,o.token)}async function vl(e){let t=await kl(e.lockPath,e.id);if(t===null)return{lockInfo:e.fallbackLockInfo,shouldRetryCreate:!1,staleRemovalCounted:!1};try{let n=await zi(e.lockPath);if(n.info===null&&n.warnings.length===0)return{lockInfo:n,shouldRetryCreate:!0,staleRemovalCounted:!1};if(!Wi(n.info,e.ttlSeconds))return{lockInfo:n,shouldRetryCreate:!1,staleRemovalCounted:!1};if(gl(e.id,n,e.force,e.forceRequiredForStaleLock),e.staleRemovals>=ul)throw Vi(e.id,n.info,Date.now()-e.startedAtMs);return{lockInfo:n,shouldRetryCreate:await Hi(e.lockPath,"lock:stale_remove"),staleRemovalCounted:!0}}finally{await t()}}async function re(e,t,n,r,o=!1,i=!0,s){let a=await ee("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=hl(a.result);if(y)return async()=>{await Promise.resolve(y()),await ee("lock_release",{pm_root:e,id:t,owner:r})}}let c=no(e,t),l=pl(s),f=Date.now(),u=0,_=cl;for(;;)try{return await sl(c,t,r,n),async()=>{await Hi(c,"lock:release"),await ee("lock_release",{pm_root:e,id:t,owner:r})}}catch(y){if(!wr(y,"EEXIST"))throw new x(`Failed to acquire lock for ${t}: ${oo(y)}`,I.GENERIC_FAILURE);let w=await zi(c);if(Wi(w.info,n)){let E=await vl({lockPath:c,id:t,ttlSeconds:n,force:o,forceRequiredForStaleLock:i,staleRemovals:u,waitBudgetMs:l,startedAtMs:f,fallbackLockInfo:w});if(w=E.lockInfo,E.staleRemovalCounted&&(u+=1),E.shouldRetryCreate)continue}let S=Date.now()-f;if(l===0||S>=l)throw Vi(t,w.info,l===0?0:S);await yl(Math.min(_,l-S)),_=Math.min(_*2,dl)}}(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 Y=8,Qi=500,Il="metadata-derived-index",xl="metadata-cache.json",Tl="metadata-cache-bodies.json",Ol="metadata-cache-collections.json",Al="metadata-cache-delta.json",Cl="metadata-cache-manifest.json",Gi=4,Rl=["comments","notes","learnings","files","tests","test_runs","docs"];function Zi(){return vt(ot())}function an(e){let t={...e},n={};for(let r of Rl)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function es(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function ts(e,t,n,r){let o=Sl("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 cn(e){return R.join(e,"runtime",xl)}function dn(e){return R.join(e,"runtime",Tl)}function ln(e){return R.join(e,"runtime",Ol)}function vr(e){return R.join(e,"runtime",Al)}function Sr(e){return R.join(e,"runtime",Cl)}function un(e,t){let n=R.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var Nl=24,V=new Map,fn=new WeakMap;function Ir(e){return fn.get(e)??e.source_cursor}function Dl(e,t){let n=Ir(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){fn.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 Ml(e,t){if(!e)return;let n=Ir(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){fn.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 Pl(e,t){if(!e)return;let n=Ir(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){fn.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 Ll(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(Dl(e,r),Ml(t,r),Pl(n,r))}function kr(e,t){V.size>=Nl&&!V.has(e)&&xt(V),V.set(e,t)}async function me(e,t){let n;try{n=await F.stat(e)}catch{return V.delete(e),null}let r=V.get(e);if(r&&dt(r.signature,n.mtimeMs,n.ctimeMs,n.size))return V.delete(e),V.set(e,r),r.envelope;let o;try{o=t(await F.readFile(e,"utf8"))}catch{o=null}return kr(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function jl(e,t,n){let r=a=>{let c=JSON.parse(a);return c.version!==Y||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=cn(e),i=await me(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await me(un(o,t),r);return s===null&&ft(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function Fl(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==Y||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=dn(e),o=await me(r,n);return t&&o?.context_fingerprint!==t?await me(un(r,t),n):o}async function $l(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==Y||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=ln(e),o=await me(r,n);return t&&o?.context_fingerprint!==t?await me(un(r,t),n):o}async function xr(e){let t=vr(e),n=await me(t,r=>{let o=JSON.parse(r);return o.version!==Y||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 Tr(e){let t=Sr(e),n=await me(t,r=>{let o=JSON.parse(r);return o.version!==Y||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 Be(e)}catch{}return null}async function lt(e,t){await F.mkdir(R.dirname(e),{recursive:!0}),await U(e,JSON.stringify(t));try{let r=await F.stat(e);kr(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{V.delete(e)}let n=R.dirname(R.dirname(e));if(e===cn(n)||e===dn(n)||e===ln(n)){let r=un(e,t.context_fingerprint);await U(r,JSON.stringify(t));try{let c=await F.stat(r);kr(r,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{V.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>Gi){let c=(await Promise.all(a.map(async l=>{try{return{path:l,mtime:(await F.stat(l)).mtimeMs}}catch{return null}}))).filter(l=>l!==null);for(let l of c.sort((f,u)=>f.mtime-u.mtime).slice(0,Math.max(0,c.length-Gi)))await F.rm(l.path,{force:!0}),V.delete(l.path)}}}function zl(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function ns(e,t,n){return e===void 0||zl(e,t,n)}function ft(e,t){e&&!e.includes(t)&&e.push(t)}function dt(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&&!be(o)&&ft(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function Hl(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 sn(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await Hl(e,n))))}function ut(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&&dt(o,r.mtime_ms,r.ctime_ms,r.size)})}function Wl(e){return It.some(t=>e.toLowerCase().endsWith(t))}function Bl(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function Vl(e,t,n){if(n)for(let r of await K({path:e,scope:"project"}))ft(t,r)}function Xi(e,t,n,r){if(e)return t&&n?n.collections:r}async function ql(e,t,n){let r=await F.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=In(e);await Vl(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],l=!n.forceSourceRead&&c!==void 0&&dt(c,o,i,s),f=n.previousBodies[t],u=!n.forceSourceRead&&f!==void 0&&dt(f,o,i,s),_=n.previousCollections[t],y=!n.forceSourceRead&&_!==void 0&&dt(_,o,i,s);if(!(!l||n.includeBody&&!u||n.includeCollections&&!y))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:c.metadata,heavyMetadata:Xi(n.includeCollections,y,_,void 0),bodyLength:c.body_length,body:n.includeBody?f.body:void 0};let S=await F.readFile(e,"utf8"),E=$t(S,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:N=>ft(n.warnings,N)}),C=an(E.metadata);return Bl(n.state.misses,n.includeBody,n.includeCollections,l,u,y),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:l?c.metadata:C.light,heavyMetadata:Xi(n.includeCollections,y,_,C.heavy),bodyLength:l?c.body_length:E.body.length,body:n.includeBody?E.body:void 0}}function Gl(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?es(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};ns(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function Xl(e,t,n,r){try{let o=await ql(t,n,r);Gl(t,n,r,o)}catch{ft(r.warnings,`item_list_item_read_failed:${e}/${R.basename(t)}`)}}function Jl(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function Kl(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function Yl(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function Ql(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}function Zl(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!Wl(s))continue;let a=R.join(o,s),c=R.relative(t.pmRoot,a);n.push(Xl(r,a,c,t))}return n}async function eu(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!ut(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await lt(cn(e.pmRoot),{version:Y,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await lt(Sr(e.pmRoot),{version:Y,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:an(r.metadata).light,linkedFiles:r.metadata.files??[]}));n.length>=e.minimumIndexedItems?await Pi({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:n}):await on(e.pmRoot)}catch{}}async function tu(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 lt(dn(e.pmRoot),{version:Y,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function nu(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 lt(ln(e.pmRoot),{version:Y,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function Or(e,t,n={}){let r=await Tr(e);return n.required!==!0&&(r===null||r.entry_count<Qi)?async()=>{}:re(e,Il,30,t,!1,!1,3e3)}async function Ey(e,t){let n=await Tr(e);if(n===null)return null;let r=await xr(e);if(r.invalid)return await Be(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&&!ut(i,await sn(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function Ji(e,t){let n=R.relative(e,t);return n===""||n===".."||n.startsWith(`..${R.sep}`)||R.isAbsolute(n)?null:n}async function Be(e){await Promise.all([cn(e),dn(e),ln(e),vr(e),Sr(e)].map(async t=>{await F.rm(t,{force:!0}),V.delete(t)})),await on(e)}async function ru(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await F.stat(e.mutation.itemPath),n=an(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 ou(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function Ar(e){let t=Ji(e.pmRoot,e.itemPath),n=e.previousItemPath?Ji(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await Be(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=ts(e.preferredFormat,e.typeToFolder,e.schema,Zi()),o=await Tr(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await xr(e.pmRoot);if(s.invalid)return await Be(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=ou(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 ru({mutation:e});let l=Yi();return await lt(vr(e.pmRoot),{version:Y,context_fingerprint:r,base_source_cursor:i,source_cursor:l,directory_signatures:await sn(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await Li({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:l,row:e.document===null?null:{relativePath:t,metadata:an(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await on(e.pmRoot),[]}catch{return await Be(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function iu(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function Ki(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function su(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function au(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=In(n);if(!o)continue;let i=e.includeCollections?es(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);ns(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 cu(e){return e.forceSourceScan||or()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!ut(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||Ki(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||Ki(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&su(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function mn(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=Zi(),l=ts(t,n,o,c),f=await xr(e);f.invalid&&await Be(e);let u=await jl(e,l,i.cacheDiagnostics),_=s?await Fl(e,l):null,y=a?await $l(e,l):null;Ll(u,_,y,f.envelope);let w=Jl(u,l),S=Kl(_,l),E=Yl(y,l),C=[...new Set(Object.values(n))],N=await sn(e,C),Q=Object.keys(w),L=Math.max(1,Math.floor(i.derivedIndexMinimumItems??Qi));if(cu({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:l,existingCache:u,existingBodyCache:_,existingCollectionsCache:y,directorySignatures:N,entryKeys:Q,minimumIndexedItems:L,includeBody:s,includeCollections:a,previousBodies:S,previousCollections:E}))return au({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:w,previousBodies:S,previousCollections:E});let Oe=await Promise.all(C.map(Bs=>Ul(e,Bs,r))),ie=or(),z=Ql(),wn={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,forceSourceRead:i.forceSourceScan===!0,dispatchReadHooks:ie,previousEntries:w,previousBodies:S,previousCollections:E,state:z};await Promise.all(Zl(Oe,wn));let yt=await sn(e,C),Vr=ut(N,yt)?yt:{},En=z.misses.metadata||Object.keys(w).length!==Object.keys(z.newEntries).length||!ut(u?.directory_signatures,Vr)||u===null?Yi():u.source_cursor;return await eu({pmRoot:e,contextFingerprint:l,sourceCursor:En,existingCache:u,previousEntries:w,directorySignatures:Vr,state:z,minimumIndexedItems:L}),s&&await tu({pmRoot:e,contextFingerprint:l,sourceCursor:En,existingBodyCache:_,previousBodies:S,state:z}),a&&await nu({pmRoot:e,contextFingerprint:l,sourceCursor:En,existingCollectionsCache:y,previousCollections:E,state:z}),iu(z)}async function rs(e,t,n,r,o){return(await mn(e,t,n,r,o,{includeBody:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}async function os(e,t,n,r,o){return(await mn(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}import du from"node:fs/promises";import Ve 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 mt="_workspace";function Cr(e){return Ve.join(e,"history",`${mt}.jsonl`)}function lu(e,t){return{metadata:{id:mt,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 Rr(e,t=e.length){let n=Kt();for(let r of e.slice(0,t))n=Qt(n,r.patch).document;return Yt(n)}function is(e){return"documents"in e.metadata&&typeof e.metadata.documents=="object"&&e.metadata.documents!==null&&!Array.isArray(e.metadata.documents)?e.metadata.documents:{}}function Nr(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 uu(e,t){let n=Ve.resolve(t),r=Ve.relative(e,n).replaceAll("\\","/");if(r.length===0||r===".."||r.startsWith("../")||Ve.isAbsolute(r))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:r,absolutePath:n}}async function Dy(e){let t=await Fe(Cr(e),mt),n=Zt(t);n.ok||Nr(n.errors);let r=is(t.length===0?Ae:Rr(t)),o=[],i=[],s=[],a=[];for(let c of Object.keys(r).sort()){let l;try{let f=uu(e,Ve.resolve(e,c));if(l=await ae(f.absolutePath),l===null){s.push(c);continue}let u=JSON.parse(l);(B(u)===B(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 ss(e){let t=Cr(e.pmRoot),n=await Fe(t,mt),r=Zt(n);r.ok||Nr(r.errors);let o=e.idempotencyKey===void 0?void 0:n.find(u=>u.op===`${e.op}:${e.idempotencyKey}`);if(o)return{entry:o,historyPath:t};let i=new Date().toISOString(),s=n.length===0?Ae:Rr(n),a=is(s),c=a[e.documentPath];if(c!==void 0&&B(c)!==B(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 l=lu({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),f=Ue({nowIso:i,author:e.author,op:e.idempotencyKey===void 0?e.op:`${e.op}:${e.idempotencyKey}`,before:s,after:l,message:e.message});return await He(t,f),{entry:f,historyPath:t}}async function My(e){let t=await re(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await ss(e)}finally{await t()}}async function Py(e){let t=await re(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=Cr(e.pmRoot),r=await Fe(n,mt),o=Zt(r);o.ok||Nr(o.errors);let i=r.length===0?Ae:Rr(r),s=Ue({nowIso:new Date().toISOString(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await He(n,s),{entry:s,historyPath:n}}finally{await t()}}async function as(e,t){if(t===e.raw)return!1;let n=t===null?null:JSON.parse(t),r=JSON.parse(e.raw);await U(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await ss({pmRoot:e.pmRoot,documentPath:Ve.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 du.rm(e.filePath,{force:!0}):await U(e.filePath,t),o}return!0}async function Ly(e){let t=await re(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=await ae(e.filePath),r=await e.mutate(n);return{changed:await as({...e,raw:r.raw},n),result:r.result}}finally{await t()}}async function cs(e){let t=await re(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await as(e,await ae(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]="027f6acb-15cc-5707-85ed-b5298b6b6abe")}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 A(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 O(...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 Mr(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 _n(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 v(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 fu=v({key:m,values:p(m),required:d(T),aliases:d(p(m)),description:d(m)}),mu=v({command:O("create","update"),option:m,required:d(T),visible:d(T),enabled:d(T)}),_u=v({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(fu)),command_option_policies:d(p(mu))}),pu=v({id:m,aliases:d(p(m)),roles:d(p(O(...qr))),description:d(m),order:d(A())}),yu=v({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(O(...Gr)),commands:d(p(O(...Xr))),repeatable:d(T),required:d(T),required_on_create:d(T),required_types:d(p(m)),allow_unset:d(T)}),hu=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]}},gu=v({type:m,allowed_transitions:p(hu)}),bu=d(v({version:d(A({int:!0})),files:d(v({types:d(m),statuses:d(m),fields:d(m),workflows:d(m)})),statuses:d(p(pu)),fields:d(p(yu)),workflow:d(v({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(gu)),unknown_field_policy:d(O(...Jr))})),wu=d(v({preset:d(O(...Kr)),ownership_enforcement:d(O("none","warn","strict")),create_mode_default:d(O("progressive","strict")),close_validation_default:d(O("off","warn","strict")),require_close_reason:d(T),parent_reference:d(O("warn","strict_error")),metadata_profile:d(O("core","strict","custom")),force_required_for_stale_lock:d(T),create_default_type:d(m),workflow_enforcement:d(O("off","warn","strict")),duplicate_detection_mode:d(O("off","advisory","strict")),duplicate_detection_threshold:d(A({min:0,max:1})),duplicate_detection_limit:d(A({int:!0,min:0,max:20}))})),Eu=v({name:m,disabled:d(T),require_trusted:d(T),require_provenance:d(T),sandbox_profile:d(O("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))}),Dr=O("block","warn"),ku=e=>typeof e=="string"?Dr(e):v({global:d(Dr),project:d(Dr)})(e),vu=d(v({mode:d(O("off","warn","enforce")),trust_mode:d(O("off","warn","enforce")),pm_max_version_exceeded_mode:d(ku),require_provenance:d(T),trusted_extensions:d(p(m)),default_sandbox_profile:d(O("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(Eu))})),Te=Mr(128),Su=v({harness:Mr(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:d(p(Te,64)),model_environment_keys:d(p(Te,64)),session_environment_keys:d(p(Te,64)),provenance_environment_keys:d(_n(p(Te,64))),provenance_resolvers:d(_n(O("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:d(p(Te,64)),argv_markers:d(p(Te,64)),client_names:d(p(Te,64))}),Iu=v({version:A({int:!0}),id_prefix:m,ids:d(v({token_length:d(A({int:!0,min:4,max:12}))})),author_default:m,agent_identity:d(v({probes_enabled:d(T),identity_vocabulary:d(v({version:A({int:!0,positive:!0}),aliases:_n(Mr(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:p(Su)})),mutation_guard:d(v({require_attributed_author:d(T),secret_guard:d(O("off","advise","block")),stale_in_progress_hours:d(A({int:!0,positive:!0}))})),item_format:d(O("toon","json_markdown")),locks:v({ttl_seconds:A({int:!0}),wait_ms:d(A({int:!0,min:0}))}),checkpoints:d(v({retention_days:d(A({int:!0,positive:!0}))})),output:v({default_format:O("toon","json")}),history:d(v({missing_stream:O("auto_create","strict_error"),compact_policy:d(v({enabled:d(T),max_entries:d(A({int:!0,positive:!0})),trigger:d(O("health_warn","auto"))}))})),validation:d(v({sprint_release_format:O("warn","strict_error"),parent_reference:d(O("warn","strict_error")),metadata_profile:d(O("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(_n(A({int:!0,positive:!0})))})),governance:wu,workflow:d(v({definition_of_done:p(m)})),testing:d(v({record_results_to_items:T})),telemetry:d(v({enabled:T,first_run_prompt_completed:d(T),capture_level:d(O("minimal","redacted","max")),endpoint:d(m),installation_id:d(m),retention_days:d(A({int:!0,positive:!0}))})),agent_guidance:d(v({prompt_completed:d(T),declined:d(T),declined_at:d(m),template_version:d(A({int:!0,positive:!0})),last_checked_files:d(p(m))})),item_types:d(v({definitions:p(_u)})),schema:bu,context:d(v({default_depth:d(O("brief","standard","deep")),activity_limit:d(A({int:!0,positive:!0})),stale_threshold_days:d(A({int:!0,positive:!0})),sections:d(v({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:v({enabled:p(m),disabled:p(m),policy:vu}),search:v({score_threshold:A(),hybrid_semantic_weight:d(A()),max_results:A({int:!0}),embedding_model:m,embedding_corpus_max_characters:d(A()),embedding_batch_size:A({int:!0}),embedding_timeout_ms:d(A({int:!0})),scanner_max_batch_retries:A({int:!0}),provider:d(m),corpus_fields:d(p(m)),mutation_refresh_policy:d(O("cache_only","semantic_configured","semantic_auto")),query_expansion:d(v({enabled:d(T),provider:d(m)})),rerank:d(v({enabled:d(T),model:d(m),top_k:d(A({int:!0,positive:!0}))})),bm25:d(v({k1:d(A()),b:d(A())}))}),providers:v({openai:v({base_url:m,api_key:m,model:m}),ollama:v({base_url:m,model:m})}),vector_store:v({adapter:d(m),collection_name:d(m),qdrant:v({url:m,api_key:m}),lancedb:v({path:m})})});function ds(e){let t=Iu(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 xu={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},ls=120;function Pr(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function fs(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var Tu=fs(xu),us=new WeakMap;function Ou(e){let t=us.get(e);if(t)return t;let n=fs(e);return us.set(e,n),n}function zy(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return ls;if(t){let o=Ou(t).get(n);if(Pr(o))return Math.floor(o)}let r=Tu.get(n);return Pr(r)?Math.floor(r):ls}function Lr(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||!Pr(r)||(t[o]=Math.floor(r))}return t}import{stat as Au}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 pn=new Map;function ms(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function Cu(e){try{let t=await Au(e);return{path:e,mtime_ms:t.mtimeMs,size:t.size}}catch{return{path:e,mtime_ms:null,size:null}}}async function _e(e){let t=ms(e),n=await Promise.all(t.map(r=>Cu(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function _t(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 _s(e){return pn.get(e)}function yn(e,t){let n=ms(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));pn.set(e,{tracked_paths:n,signatures:r,value:t.value})}function pe(e){if(e){pn.delete(e);return}pn.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]="a434b9ea-4692-51c5-8761-0f1759fff394")}catch{}})();var Ru="settings:write",bs=Symbol("pm.settings.persist_source"),Nu=128,Du=new Set(["off","advisory","strict"]);function ps(e){return structuredClone(Qr[e])}function Mu(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:b.governance.preset}function ys(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 Pu(e){return e.preset==="custom"?ys({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):ys({preset:e.preset},e)}function Lu(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),Du.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 gn(e){let t=e.governance??{},n=Mu(t.preset),r=Lu(t);if(n==="custom"){let s=ps("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=ps(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function ws(){return structuredClone(b)}function Es(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:b.search.mutation_refresh_policy}function ks(e){return typeof e=="boolean"?e:b.search.query_expansion.enabled}function vs(e){return typeof e!="string"?b.search.query_expansion.provider:e.trim()}function Ss(e){return typeof e=="boolean"?e:b.search.rerank.enabled}function Is(e){return typeof e!="string"?b.search.rerank.model:e.trim()}function xs(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:b.search.rerank.top_k}function Ts(e){if(typeof e!="string")return b.vector_store.collection_name;let n=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,Nu);return n.length>0?n:b.vector_store.collection_name}function jr(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function ju(e,t){let n=e.schema,r=jr(n?.statuses),o=jr(n?.fields),i=jr(n?.type_workflows);return{source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:qe(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:qe(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 Os(e,t){Object.defineProperty(e,bs,{value:t,writable:!0,configurable:!0,enumerable:!1})}function As(e){let t=e[bs];if(!(!t||typeof t!="object"))return t}function hn(e){let t=structuredClone(e.settings),n=As(e.settings);return n&&Os(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function Fu(e,t,n){let r=Ye(t);return[n,Qe(e,r.files.types,Ke.types),Qe(e,r.files.statuses,Ke.statuses),Qe(e,r.files.fields,Ke.fields),Qe(e,r.files.workflows,Ke.workflows)]}async function $u(e,t,n){let r=await _e(t);yn(e,{tracked_paths:t,signatures:r,value:hn(n)})}async function zu(e,t,n){try{await $u(e,t,n)}catch{pe(e)}}function hs(e,t){return e.find(n=>n.path===t)}function Uu(e,t,n){for(let r of n){let o=hs(e,r),i=hs(t,r);if(!o||!i||!_t([o],[i]))return!1}return!0}async function Fr(e,t,n,r,o){try{let i=await _e(t);if(!Uu(r,i,o)){pe(e);return}yn(e,{tracked_paths:t,signatures:i,value:hn(n)})}catch{pe(e)}}function Hu(e,t){let n=Ye(e.schema),r=qe(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=Ce(r,t.runtime_item_type_definitions),s=Ce(n.statuses,t.runtime_schema_statuses),a=Ce(n.fields,t.runtime_schema_fields),c=Ce(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?qe(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 pt(e){return{settings:ws(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function Wu(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function zr(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function Cs(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:zr(e?.last_checked_files??t.last_checked_files)}}function X(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function Bu(e){return e==="off"||e==="warn"||e==="enforce"?e:b.extensions.policy.mode}function Vu(e){return e==="off"||e==="warn"||e==="enforce"?e:b.extensions.policy.trust_mode}function Rs(e){return e==="none"||e==="restricted"||e==="strict"?e:b.extensions.policy.default_sandbox_profile}function qu(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=Rs(e.sandbox_profile));let r=X(e.allowed_capabilities),o=X(e.blocked_capabilities),i=X(e.allowed_surfaces),s=X(e.blocked_surfaces),a=X(e.allowed_commands),c=X(e.blocked_commands),l=X(e.allowed_actions),f=X(e.blocked_actions),u=X(e.allowed_services),_=X(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),l.length>0&&(n.allowed_actions=l),f.length>0&&(n.blocked_actions=f),u.length>0&&(n.allowed_services=u),_.length>0&&(n.blocked_services=_),n}function Gu(e){let t=new Map;for(let n of e??[]){let r=qu(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function $r(e){return e==="block"||e==="warn"?e:void 0}function Xu(e){if(typeof e=="string")return $r(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=$r(e.global),n=$r(e.project);return t===void 0&&n===void 0?void 0:{...t!==void 0?{global:t}:{},...n!==void 0?{project:n}:{}}}}function H(e,t){return X(e?.[t]??b.extensions.policy[t])}function Ns(e){let t=Xu(e?.pm_max_version_exceeded_mode);return{mode:Bu(e?.mode),trust_mode:Vu(e?.trust_mode),...t!==void 0?{pm_max_version_exceeded_mode:t}:{},require_provenance:e?.require_provenance===!0,trusted_extensions:H(e,"trusted_extensions"),default_sandbox_profile:Rs(e?.default_sandbox_profile),allowed_extensions:H(e,"allowed_extensions"),blocked_extensions:H(e,"blocked_extensions"),allowed_capabilities:H(e,"allowed_capabilities"),blocked_capabilities:H(e,"blocked_capabilities"),allowed_surfaces:H(e,"allowed_surfaces"),blocked_surfaces:H(e,"blocked_surfaces"),allowed_commands:H(e,"allowed_commands"),blocked_commands:H(e,"blocked_commands"),allowed_actions:H(e,"allowed_actions"),blocked_actions:H(e,"blocked_actions"),allowed_services:H(e,"allowed_services"),blocked_services:H(e,"blocked_services"),extension_overrides:Gu(e?.extension_overrides??b.extensions.policy.extension_overrides)}}function Ds(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 ye(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function D(e,t){return e===void 0?t:e}function W(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function Ur(e){return Array.isArray(e)?e:[]}function Ju(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:Ds(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:ye(e.validation?.lifecycle_stale_blocker_reason_patterns??t.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:ye(e.validation?.lifecycle_closure_like_blocked_reason_patterns??t.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:ye(e.validation?.lifecycle_closure_like_resolution_patterns??t.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:ye(e.validation?.lifecycle_closure_like_actual_result_patterns??t.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:Lr(e.validation?.estimate_defaults_by_type)}}function Ku(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 Yu(e,t){return{...t.search,...e.search,mutation_refresh_policy:Es(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:ks(e.search?.query_expansion?.enabled),provider:vs(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:Ss(e.search?.rerank?.enabled),model:Is(e.search?.rerank?.model),top_k:xs(e.search?.rerank?.top_k)}}}function Qu(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:Ts(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function Zu(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function ef(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 tf(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function qe(e){let t=(e??[]).map(r=>eo(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 Ms(e){let t=ws(),n=gn({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:Zu(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},history:{...t.history,...e.history,compact_policy:{...t.history.compact_policy,...e.history?.compact_policy}},validation:Ju(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:Ku(e,t),agent_guidance:Cs(e.agent_guidance??t.agent_guidance),item_types:{definitions:qe(e.item_types?.definitions)},schema:Ye(e.schema??t.schema),context:ef(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:Ns(e.extensions.policy??t.extensions.policy)},search:Yu(e,t),providers:tf(e,t),vector_store:Qu(e,t)}}function nf(e){e.agent_identity=k(e.agent_identity,["probes_enabled","identity_vocabulary","harness_signals"]);let t=e.agent_identity;Object.hasOwn(t,"identity_vocabulary")&&(t.identity_vocabulary=k(W(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=Ur(e.agent_identity.harness_signals).map(n=>k(W(n),["harness","environment_keys","model_environment_keys","session_environment_keys","provenance_environment_keys","provenance_resolvers","provenance_unavailable_dimensions","argv_markers","client_names"])),e.locks=k(e.locks,["ttl_seconds","wait_ms"]),e.ids=k(e.ids,["token_length"]),e.mutation_guard=k(e.mutation_guard,["require_attributed_author","secret_guard","stale_in_progress_hours"]),e.checkpoints=k(e.checkpoints,["retention_days"]),e.output=k(e.output,["default_format"]),e.history=k(e.history,["missing_stream","compact_policy"]),e.validation=k(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=k(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=k(e.workflow,["definition_of_done"]),e.testing=k(e.testing,["record_results_to_items"]),e.telemetry=k(e.telemetry,["enabled","first_run_prompt_completed","capture_level","endpoint","installation_id","retention_days"]),e.agent_guidance=k(e.agent_guidance,["prompt_completed","declined","declined_at","template_version","last_checked_files"]),e.item_types=k(e.item_types,["definitions"]),e.schema=k(e.schema,["version","files","statuses","fields","workflow","type_workflows","unknown_field_policy"]),e.schema.files=k(W(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=k(W(e.schema.workflow),["draft_status","open_status","in_progress_status","blocked_status","close_status","canceled_status"]),e.context=k(e.context,["default_depth","activity_limit","stale_threshold_days","sections"]),e.context.sections=k(W(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=k(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=k(W(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=Ur(e.extensions.policy.extension_overrides).map(n=>k(W(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=k(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=k(W(e.search.query_expansion),["enabled","provider"]),e.search.rerank=k(W(e.search.rerank),["enabled","model","top_k"]),e.providers=k(e.providers,["openai","ollama"]),e.providers.openai=k(W(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=k(W(e.providers.ollama),["base_url","model"]),e.vector_store=k(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=k(W(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=k(W(e.vector_store.lancedb),["path"])}function rf(e){return{...e,locks:D(e.locks,b.locks),ids:D(e.ids,b.ids),agent_identity:D(e.agent_identity,b.agent_identity),mutation_guard:D(e.mutation_guard,b.mutation_guard),checkpoints:D(e.checkpoints,b.checkpoints),output:D(e.output,b.output),history:D(e.history,b.history),validation:D(e.validation,b.validation),workflow:D(e.workflow,b.workflow),testing:D(e.testing,b.testing),telemetry:D(e.telemetry,b.telemetry),agent_guidance:D(e.agent_guidance,b.agent_guidance),item_types:D(e.item_types,b.item_types),schema:D(e.schema,b.schema),context:D(e.context,b.context),extensions:D(e.extensions,b.extensions),search:D(e.search,b.search),providers:D(e.providers,b.providers),vector_store:D(e.vector_store,b.vector_store)}}function of(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:Ds(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:ye(e.validation?.lifecycle_stale_blocker_reason_patterns??b.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:ye(e.validation?.lifecycle_closure_like_blocked_reason_patterns??b.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:ye(e.validation?.lifecycle_closure_like_resolution_patterns??b.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:ye(e.validation?.lifecycle_closure_like_actual_result_patterns??b.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:Lr(e.validation?.estimate_defaults_by_type)}}function sf(e){return{...b.search,...e.search,mutation_refresh_policy:Es(e.search?.mutation_refresh_policy),query_expansion:{...b.search.query_expansion,...e.search?.query_expansion,enabled:ks(e.search?.query_expansion?.enabled),provider:vs(e.search?.query_expansion?.provider)},rerank:{...b.search.rerank,...e.search?.rerank,enabled:Ss(e.search?.rerank?.enabled),model:Is(e.search?.rerank?.model),top_k:xs(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 cf(e){return{...e.vector_store,adapter:e.vector_store?.adapter??b.vector_store.adapter,collection_name:Ts(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function df(e,t,n,r){return{...e,item_format:"toon",validation:of(e,t),governance:t,agent_guidance:Cs(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:sf(e),context:af(e),extensions:{enabled:zr(e.extensions?.enabled),disabled:zr(e.extensions?.disabled),policy:Ns(e.extensions?.policy)},vector_store:cf(e)}}function Ps(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(!Ce(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:{};Ps(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var Ls=["version","id_prefix","ids","author_default","agent_identity","mutation_guard","item_format","locks","checkpoints","output","history","validation","governance","workflow","testing","telemetry","agent_guidance","item_types","schema","context","extensions","search","providers","vector_store"];function gs(e,t){let n=rf(e),r=gn(n),o=Ye(n.schema),i=Hu(n,t),s=df(n,r,o,i),a=k({...s,governance:Pu(r)},Ls);return nf(a),a}function lf(e,t={}){let n=gs(e,t.persist_source);if(t.persist_source){let r=Ms(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=gs(r,t.persist_source),i=structuredClone(t.persist_source.source_settings);return Ps(i,o,n),`${JSON.stringify(k(i,Ls),null,2)}
|
|
153
|
-
`}return`${JSON.stringify(n,null,2)}
|
|
154
|
-
`}async function js(e){let t=vn(e),n=[t];await K({path:t,scope:"project"});let r=_s(e);if(r){let l=await _e(r.tracked_paths);if(_t(l,r.signatures))return hn(r.value)}let o=await _e([t]),i;try{i=await ae(t)}catch{return pt("settings_read_fs_error")}if(i===null){let l=pt();return await Fr(e,[t],l,o,[t]),l}let s=await _e([t]);if(!_t(o,s))return pe(e),js(e);let a;try{a=JSON.parse(i)}catch{let l=pt("settings_read_invalid_json");return await Fr(e,[t],l,s,[t]),l}let c=ds(a);if(!c.success){let l=pt("settings_read_invalid_schema");return await Fr(e,[t],l,s,[t]),l}try{let l=Ms(c.data),f=Fu(e,l.schema,t);n=f;let u=await _e(f),_=await _o(e,l.schema),y=await po(e,l.schema),w=await _e(f),S={...l,item_types:{definitions:qe([...l.item_types.definitions,...Ur(y.type_definitions_from_file)])},schema:y.schema};Os(S,ju(c.data,S));let E={settings:S,metadata:{has_explicit_item_format:Wu(a)},warnings:[...c.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],..._.created_paths.map(C=>`runtime_schema_bootstrap_created:${C}`),...y.warnings]};return _.created_paths.length===0?_t(u,w)?yn(e,{tracked_paths:f,signatures:w,value:hn(E)}):pe(e):pe(e),E}catch{let l=pt("settings_read_merge_failed");return await zu(e,n,l),l}}async function nh(e){return(await js(e)).settings}async function rh(e,t,n=Ru){let r=vn(e),o=lf(t,{persist_source:As(t)});try{await cs({pmRoot:e,filePath:r,raw:o,op:n,author:Do(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),await G({path:r,scope:"project",op:n})}finally{pe(e)}}import uf from"node:fs/promises";import ff 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 mf(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function _f(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 pf(e,t){return await Zr(ff.dirname(e)),await(await uf.open(e,"a")).close(),G({path:e,scope:"project",op:`${t}:history:auto_create`})}async function Hr(e){return yf({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function yf(e){let t=mf(e.itemIds),n=[],r=[];for(let o of t){let i=Je(e.pmRoot,o);if(!await St(i)){if(e.settings.history.missing_stream==="strict_error")throw _f(o,e.commandLabel);r.push(...await pf(i,e.commandLabel)),r.push(`history_stream_auto_created:${o}`),n.push(o)}}return{auto_created_ids:n,warnings:r}}import oe 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]="d24d61bf-7db8-5f35-8dbc-5ef93ec8220b")}catch{}})();async function hf(e){try{return await oe.access(e),!0}catch{return!1}}function he(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function gf(e,t){e&&(e.includes(t)||e.push(t))}function Fs(e){return e??vt(ot())}function bf(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}function bn(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 Wr(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=Ge.parse(Ge.resolve(e)).root,n=Ge.dirname(Ge.resolve(e));for(;n!==t;){let r;try{r=await oe.stat(n)}catch(o){if(he(o,"ENOTDIR"))throw bn(e);if(!he(o,"ENOENT"))throw o;n=Ge.dirname(n);continue}if(!r.isDirectory())throw bn(e);break}}async function Br(e){let t;try{t=await oe.stat(e)}catch(n){throw he(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."]})):he(n,"ENOTDIR")?bn(e):he(n,"EACCES")||he(n,"EPERM")?Wr(e):n}if(!t.isDirectory())throw bn(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw Wr(e);try{await(await oe.opendir(e)).close()}catch(n){throw he(n,"EACCES")||he(n,"EPERM")?Wr(e):n}}async function $s(e,t,n="pm-",r,o=ge){let i=gr(t,n),s=hr(t),a=i===s?[i]:[i,s],c=Object.entries(o),l=bf(r);for(let f of a)for(let[u]of c)for(let _ of l){let y=Sn(e,u,f,_,o);if(await hf(y))return{id:f,type:u,itemPath:y,item_format:_}}return null}async function zs(e,t={}){let n=await oe.readFile(e.itemPath,"utf8");await K({path:e.itemPath,scope:"project"});let r=$t(n,{format:e.item_format,schema:t.schema,extensionFieldNames:Fs(t.extensionFieldNames),onWarning:o=>gf(t.warnings,o)});return{raw:n,document:r}}async function Ef(e,t,n=ge,r,o){return await Br(e),(await rs(e,t,n,r,o)).map(s=>s.metadata)}async function Nh(e,t,n=ge,r,o){return await Br(e),(await os(e,t,n,r,o)).map(s=>s.metadata)}async function Dh(e,t,n=ge,r,o,i={}){return await Br(e),(await mn(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan})).map(a=>({...a.metadata,body:a.body}))}function Us(e){return{async get(t){let n=await $s(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await zs(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>Ef(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function kf(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await oe.readdir(Ge.join(e,o));for(let s of i)for(let a of It)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function vf(e,t,n,r){let o=gr(t,n),i=await kf(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(c=>({id:c,distance:ht(c,o,s)})).filter(c=>c.distance!==null).sort((c,l)=>c.distance-l.distance).slice(0,3).map(c=>c.id)}async function Sf(e,t,n,r){let o=await vf(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 If(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 Hs(e){let t=e.typeToFolder??to(e.settings,ot()).type_to_folder,n=await $s(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await Sf(e.pmRoot,e.id,e.settings.id_prefix,t);let r=await re(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 zs(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||a,l=No(e.author),f=gn(e.settings);if(a&&c!==l&&!e.force&&!If(e.op,e.bypassAssigneeConflict)){if(f.ownership_enforcement==="strict")throw new x(`Item ${n.id} is assigned to ${a}. Use --force to override.`,I.CONFLICT);f.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 xf(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 Tf(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await U(e.originalItemPath,e.originalRaw),await oe.rm(e.effectiveTargetItemPath,{force:!0});return}await U(e.originalItemPath,e.originalRaw)}}async function Mh(e){let t=await Hs({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=q(i,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),l=q(structuredClone(i),{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),f=await e.mutate(l);if(e.skipNoop===!0&&f.changedFields.length===0)return{item:c.metadata,body:c.body,changedFields:[],warnings:[...s,...f.warnings??[]]};l.metadata.updated_at=Se();let u=q(l,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames});await rr({pm_root:e.pmRoot,operation:e.op,before:c,after:u,changed_fields:f.changedFields,sdk:Us({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let _=await Hr({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),y="toon",w=ti(u,{format:y,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),S=Sn(e.pmRoot,u.metadata.type,r.id,y,n),E=Je(e.pmRoot,r.id),C=await ee("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:S,history_path:E,item_format:y,before:c,after:u,contents:w}),{effectiveTargetItemPath:N,effectiveSerializedAfter:Q,skipItemWrite:L}=xf(C,S,w),Oe=await Or(e.pmRoot,e.author),ie=[];try{L||await U(N,Q),!L&&N!==r.itemPath&&await oe.rm(r.itemPath);let wn=Ue({nowIso:u.metadata.updated_at,author:e.author,op:e.op,before:c,after:u,message:e.message});try{await He(E,wn)}catch(yt){throw await Tf({skipItemWrite:L,effectiveTargetItemPath:N,originalItemPath:r.itemPath,originalRaw:o}),yt}L||(ie=await Ar({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:N,previousItemPath:r.itemPath,document:u}))}finally{await Oe()}let z=[...await G({path:N,scope:"project",op:e.op,item_id:u.metadata.id,item_type:u.metadata.type,before:c,after:u,changed_fields:f.changedFields}),...await G({path:E,scope:"project",op:`${e.op}:history`,item_id:u.metadata.id,item_type:u.metadata.type,before:c,after:u,changed_fields:f.changedFields})];return nr({id:u.metadata.id,op:e.op,item_type:u.metadata.type,previous_status:c.metadata.status,status:u.metadata.status,previous:zt(c.metadata,f.changedFields),current:zt(u.metadata,f.changedFields),changed_fields:f.changedFields}),{item:u.metadata,body:u.body,changedFields:f.changedFields,warnings:[...s,...f.warnings??[],..._.warnings,...C.warnings,...ie,...z]}}finally{await a()}}async function Ph(e){let t=await Hs({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=Fs(void 0),c=q(o,{schema:e.settings.schema,extensionFieldNames:a});await rr({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:Us({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let l=await Hr({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),f=Se(),u=Ae,_=Ue({nowIso:f,author:e.author,op:"delete",before:c,after:u,message:e.message}),y=Je(e.pmRoot,n.id),w=await ee("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:y,before:c}),S=n.itemPath,E=!1;if(w.handled&&typeof w.result=="object"&&w.result!==null){let L=w.result;typeof L.item_path=="string"&&L.item_path.trim().length>0&&(S=L.item_path),L.skip_delete===!0&&(E=!0)}if(e.dryRun===!0)return{item:c.metadata,changedFields:["deleted"],targetPath:S,warnings:[...i,...l.warnings,...w.warnings]};let C=await Or(e.pmRoot,e.author),N=[];try{E||await oe.rm(S);try{await He(y,_)}catch(L){throw E||await U(S,r),L}E||(N=await Ar({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:S,document:null}))}finally{await C()}let Q=[...await G({path:S,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:u,changed_fields:["deleted"]}),...await G({path:y,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:u,changed_fields:["deleted"]})];return nr({id:c.metadata.id,op:"delete",item_type:c.metadata.type,previous_status:c.metadata.status,previous:zt(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...i,...l.warnings,...w.warnings,...N,...Q]}}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 Of(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:ht(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 Ws(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function zh(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",l=e.retry_command?void 0:Of(r,o),f=Ws([...i,r,...s]),u=e.retry_command??(l?Ws([...i,l,...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:[...u?[u]:[],...e.examples??[],`pm ${t} --help`],nextSteps:u?[`Retry with the suggested command: ${u}`]:["Choose one value from recovery.allowed_values."],recovery:{attempted_command:f,allowed_values:o,suggested_retry:u,fallback_candidates:e.fallback_candidates}})}export{Km as a,ed as b,d_ as c,dd as d,l_ as e,u_ as f,f_ as g,m_ as h,__ as i,p_ as j,y_ as k,ot as l,nr as m,zt as n,G as o,rr as p,K as q,or as r,h_ as s,g_ as t,ee as u,Id as v,Ee as w,Tn as x,Rf as y,Nf as z,Ot as A,Nn as B,$f as C,zf as D,Uf as E,Hf as F,Wf as G,Bf as H,$n as I,Zs as J,Zf as K,em as L,tm as M,Wn as N,Ao as O,nm as P,rm as Q,om as R,pa as S,No as T,Do as U,Se as V,$ as W,mm as X,_m as Y,re as Z,Bo as _,Ze as $,xm as aa,Tm as ba,De as ca,zo as da,ym as ea,Uo as fa,Pa as ga,hm as ha,Pt as ia,ja,Em as ka,Lt as la,Ft as ma,$t as na,ti as oa,q as pa,Fe as qa,L_ as ra,j_ as sa,ip as ta,sp as ua,Dd as va,it as wa,fe as xa,Sp as ya,pr as za,Ip as Aa,Ue as Ba,He as Ca,Ud as Da,Kt as Ea,Jt as Fa,Yt as Ga,Dp as Ha,Mp as Ia,xi as Ja,Qt as Ka,Ti as La,Zt as Ma,Vd as Na,Pp as Oa,Lp as Pa,mt as Qa,Cr as Ra,Dy as Sa,My as Ta,Py as Ua,Ly as Va,cs as Wa,zy as Xa,gn as Ya,js as Za,nh as _a,rh as $a,Hr as ab,yf as bb,Ci as cb,hr as db,gr as eb,Wp as fb,Jp as gb,Kp as hb,Yp as ib,Qi as jb,Rl as kb,Or as lb,Ey as mb,Ar as nb,mn as ob,$s as pb,zs as qb,Ef as rb,Nh as sb,Dh as tb,Us as ub,Sf as vb,Mh as wb,Ph as xb,zh as yb};
|
|
155
|
-
//# sourceMappingURL=chunk-5NMFSX26.js.map
|