@unbrained/pm-cli 2026.8.21 → 2026.8.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +44 -0
- package/dist/cli/error-guidance.d.ts +22 -4
- package/dist/cli/error-guidance.js +73 -16
- package/dist/cli/main.d.ts +3 -0
- package/dist/cli/main.js +51 -9
- package/dist/cli/register-mutation.js +6 -6
- package/dist/cli/register-operations.d.ts +73 -0
- package/dist/cli/register-operations.js +39 -14
- package/dist/cli/register-setup.js +3 -3
- package/dist/cli/schema-registration-helpers.d.ts +8 -1
- package/dist/cli/schema-registration-helpers.js +14 -5
- package/dist/cli-bundle/bundle-manifest.json +149 -149
- package/dist/cli-bundle/chunks/chunk-3ENVHX6C.js +36 -0
- package/dist/cli-bundle/chunks/{chunk-LOVTQ52Z.js → chunk-DW2CGEMU.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-EG6CLDZT.js +5 -0
- package/dist/cli-bundle/chunks/{chunk-LARJJ3RK.js → chunk-F3AI2JFL.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-N3DSV4CH.js → chunk-HWZ6CELB.js} +8 -8
- package/dist/cli-bundle/chunks/chunk-HZBMLSZI.js +201 -0
- package/dist/cli-bundle/chunks/chunk-JB4KZWBF.js +3 -0
- package/dist/cli-bundle/chunks/chunk-KPH73XXJ.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-BKYB45NQ.js → chunk-KXPMB2YL.js} +50 -50
- package/dist/cli-bundle/chunks/{chunk-BUNIEJNE.js → chunk-QDVHNHAQ.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-TFI5V5N2.js +13 -0
- package/dist/cli-bundle/chunks/{register-list-query-F57EWDEF.js → register-list-query-UJB5FMV2.js} +2 -2
- package/dist/cli-bundle/chunks/register-mutation-NX5XE4VX.js +20 -0
- package/dist/cli-bundle/chunks/register-operations-RXIJIYXC.js +2 -0
- package/dist/cli-bundle/chunks/{register-setup-HXU7IZZD.js → register-setup-GFUZEKRE.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-F4YEW5I2.js → chunk-37Z4OEAP.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-3UPTYG44.js +8 -0
- package/dist/cli-bundle/focused-chunks/chunk-5S7E72FY.js +16 -0
- package/dist/cli-bundle/focused-chunks/{chunk-4ERLO7QD.js → chunk-AUFH5H35.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-E7X25GC3.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-FQCSTBWE.js +4 -0
- package/dist/cli-bundle/focused-chunks/{chunk-FH6DYED3.js → chunk-FZS4H32O.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-IFLWKY2R.js +156 -0
- package/dist/cli-bundle/focused-chunks/{chunk-YKBKIEAJ.js → chunk-JOWDB2MH.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-LYVSW5VM.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-MRCNF3U6.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-UZE7XUZK.js → chunk-OFVUGTLJ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-FJ22HNRP.js → chunk-OGLQBL46.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-OY7QAV4Y.js +51 -0
- package/dist/cli-bundle/focused-chunks/chunk-QGFNI65N.js +26 -0
- package/dist/cli-bundle/focused-chunks/{chunk-KDNG7TKQ.js → chunk-R27IDGHD.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-UYRFYCDQ.js +5 -0
- package/dist/cli-bundle/focused-chunks/{chunk-2NIY5NKG.js → chunk-ZHVA42R5.js} +9 -9
- package/dist/cli-bundle/main.js +13 -13
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +2 -2
- package/dist/cli-bundle/sdk-core.js +40 -40
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +33 -32
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +5 -5
- package/dist/core/config/nested-settings.js +8 -2
- package/dist/core/config/positional-value.d.ts +1 -1
- package/dist/core/config/positional-value.js +5 -2
- package/dist/core/extensions/extension-hook-runtime.js +22 -20
- package/dist/core/extensions/extension-types.d.ts +8 -1
- package/dist/core/extensions/extension-types.js +2 -2
- package/dist/core/extensions/loader.js +7 -3
- package/dist/core/extensions/service-ownership.d.ts +8 -0
- package/dist/core/extensions/service-ownership.js +20 -0
- package/dist/core/history/history.js +3 -3
- package/dist/core/item/id.js +20 -5
- package/dist/core/item/item-format.js +81 -2
- package/dist/core/reproducibility/context.d.ts +4 -0
- package/dist/core/reproducibility/context.js +14 -8
- package/dist/core/shared/author.d.ts +55 -1
- package/dist/core/shared/author.js +333 -16
- package/dist/core/shared/constants.js +3 -2
- package/dist/core/shared/errors.d.ts +4 -0
- package/dist/core/shared/errors.js +2 -2
- package/dist/core/store/settings-validator.d.ts +1 -0
- package/dist/core/store/settings-validator.js +6 -3
- package/dist/core/store/settings.js +5 -2
- package/dist/mcp/server.d.ts +1 -1
- package/dist/mcp/server.js +30 -9
- package/dist/sdk/agent/identity-config.d.ts +63 -0
- package/dist/sdk/agent/identity-config.js +107 -0
- package/dist/sdk/agent/refusal-corpus-contracts.d.ts +76 -0
- package/dist/sdk/agent/refusal-corpus-contracts.js +194 -0
- package/dist/sdk/agent/refusal-reachability.d.ts +1 -1
- package/dist/sdk/authoring.d.ts +1 -1
- package/dist/sdk/authoring.js +2 -2
- package/dist/sdk/cli-contracts/agent-output-contracts.d.ts +77 -0
- package/dist/sdk/cli-contracts/agent-output-contracts.js +326 -2
- package/dist/sdk/cli-contracts/commander-mutation-options.js +3 -3
- 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 +9 -2
- package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +4 -4
- package/dist/sdk/cli-contracts/registration-helpers.js +5 -2
- package/dist/sdk/cli-contracts/runtime-contracts.d.ts +3 -1
- package/dist/sdk/cli-contracts/runtime-contracts.js +4 -3
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +22 -2
- package/dist/sdk/cli-contracts/tool-schema.d.ts +1 -1
- package/dist/sdk/cli-contracts/tool-schema.js +14 -3
- package/dist/sdk/cli-contracts.d.ts +4 -4
- package/dist/sdk/cli-contracts.js +5 -5
- package/dist/sdk/config.d.ts +6 -1
- package/dist/sdk/config.js +119 -14
- package/dist/sdk/context-intent-contracts.js +4 -2
- package/dist/sdk/core-governance.d.ts +1 -1
- package/dist/sdk/core-governance.js +3 -3
- package/dist/sdk/extension/install-sources.d.ts +1 -1
- package/dist/sdk/extension/install-sources.js +6 -3
- package/dist/sdk/extension/output-ownership.d.ts +1 -0
- package/dist/sdk/extension/output-ownership.js +3 -2
- package/dist/sdk/extension/scaffold.js +11 -5
- package/dist/sdk/flag-invocation-contracts.js +4 -2
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +74 -2
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +87 -26
- package/dist/sdk/governance/assurance-action.js +30 -10
- package/dist/sdk/governance/health.d.ts +3 -0
- package/dist/sdk/governance/health.js +39 -7
- package/dist/sdk/governance/hierarchy-validation.d.ts +29 -0
- package/dist/sdk/governance/hierarchy-validation.js +109 -0
- package/dist/sdk/governance/validate.d.ts +3 -9
- package/dist/sdk/governance/validate.js +84 -111
- package/dist/sdk/graph/assembly.d.ts +6 -1
- package/dist/sdk/graph/assembly.js +16 -22
- package/dist/sdk/graph/governance-contracts.d.ts +1 -1
- package/dist/sdk/graph/governance-contracts.js +8 -2
- package/dist/sdk/graph/governance.js +46 -2
- package/dist/sdk/graph/hierarchy-integrity.d.ts +94 -0
- package/dist/sdk/graph/hierarchy-integrity.js +311 -0
- package/dist/sdk/graph/index.d.ts +2 -1
- package/dist/sdk/graph/index.js +3 -2
- package/dist/sdk/graph/remediation.js +32 -2
- package/dist/sdk/graph/run.d.ts +31 -2
- package/dist/sdk/graph/run.js +80 -31
- package/dist/sdk/graph/workspace-relationship-kind-registry.d.ts +8 -0
- package/dist/sdk/graph/workspace-relationship-kind-registry.js +28 -0
- package/dist/sdk/index.d.ts +8 -3
- package/dist/sdk/index.js +9 -4
- package/dist/sdk/item-children.js +21 -8
- package/dist/sdk/lifecycle/create.js +129 -97
- package/dist/sdk/lifecycle/hierarchy-mutation-lock.d.ts +15 -0
- package/dist/sdk/lifecycle/hierarchy-mutation-lock.js +25 -0
- package/dist/sdk/lifecycle/update.d.ts +2 -0
- package/dist/sdk/lifecycle/update.js +174 -84
- package/dist/sdk/merge/three-way.js +105 -26
- package/dist/sdk/query/complete-list.d.ts +3 -3
- package/dist/sdk/query/complete-list.js +46 -3
- package/dist/sdk/query/list.d.ts +4 -3
- package/dist/sdk/query/list.js +89 -49
- package/dist/sdk/read-output-budget.d.ts +21 -0
- package/dist/sdk/read-output-budget.js +39 -2
- package/dist/sdk/read-output-contracts.d.ts +10 -4
- package/dist/sdk/read-output-contracts.js +105 -32
- package/dist/sdk/relationship-context.js +3 -4
- package/dist/sdk/relationships.js +17 -10
- package/dist/sdk/reproducibility/process.d.ts +19 -0
- package/dist/sdk/reproducibility/process.js +88 -0
- package/dist/sdk/runtime-primitives.d.ts +1 -1
- package/dist/sdk/runtime-primitives.js +3 -3
- package/dist/sdk/runtime.d.ts +3 -2
- package/dist/sdk/runtime.js +7 -5
- package/dist/sdk/test/batch.d.ts +6 -0
- package/dist/sdk/test/batch.js +26 -6
- package/dist/sdk/test/entry.d.ts +1 -1
- package/dist/sdk/test/entry.js +3 -2
- package/dist/sdk/test/execution.d.ts +28 -3
- package/dist/sdk/test/execution.js +201 -34
- package/dist/sdk/test/parsers.d.ts +6 -0
- package/dist/sdk/test/parsers.js +21 -2
- package/dist/sdk/test/trust.d.ts +33 -0
- package/dist/sdk/test/trust.js +207 -0
- package/dist/types.d.ts +34 -0
- package/dist/types.js +2 -2
- package/docs/AGENT_PROVENANCE_ADR.md +41 -5
- package/docs/AGENT_UX_CONTRACTS.md +20 -4
- package/docs/COMMANDS.md +29 -14
- package/docs/CONFIGURATION.md +4 -0
- package/docs/DEPENDENCY_KIND_CONTRACT.md +31 -3
- package/docs/DIAGNOSTIC_OUTPUT_CONTRACTS.md +115 -0
- package/docs/EXTENSIONS.md +2 -1
- package/docs/MERGE_SAFETY.md +15 -1
- package/docs/README.md +1 -0
- package/docs/READ_OUTPUT_CONTRACTS.md +19 -2
- package/docs/RELATIONSHIP_GRAPH.md +6 -3
- package/docs/REPRODUCIBLE_WORKSPACES.md +42 -8
- package/docs/SDK.md +9 -0
- package/docs/SDK_AGENT_SESSION_CONTEXT.md +6 -4
- package/docs/SDK_EVIDENCE_TRACEABILITY.md +1 -1
- package/docs/TESTING.md +83 -1
- package/docs/agent-task-token-baseline.json +2 -2
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +2 -2
- package/marketplace.json +2 -2
- package/package.json +2 -2
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/sdk/public-surface.json +1021 -53
- package/dist/cli-bundle/chunks/chunk-2MA6ZQVZ.js +0 -197
- package/dist/cli-bundle/chunks/chunk-3AFAUHUE.js +0 -2
- package/dist/cli-bundle/chunks/chunk-7VHZS727.js +0 -5
- package/dist/cli-bundle/chunks/chunk-JSLOFXGA.js +0 -3
- package/dist/cli-bundle/chunks/chunk-OCLPLFAY.js +0 -35
- package/dist/cli-bundle/chunks/chunk-S4IRYKBU.js +0 -13
- package/dist/cli-bundle/chunks/register-mutation-7IY2D5KO.js +0 -20
- package/dist/cli-bundle/chunks/register-operations-FALL3YTU.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-7WZRLCYF.js +0 -50
- package/dist/cli-bundle/focused-chunks/chunk-CKKQSJNN.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-EEFKYMDR.js +0 -16
- package/dist/cli-bundle/focused-chunks/chunk-F2A56DHV.js +0 -8
- package/dist/cli-bundle/focused-chunks/chunk-FV5ACOK7.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-JEAVFOWM.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-NJ63LOP6.js +0 -155
- package/dist/cli-bundle/focused-chunks/chunk-NXRTQ7HI.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-TJ7EMJ46.js +0 -4
- package/dist/cli-bundle/focused-chunks/chunk-ZOSEELYJ.js +0 -26
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
import{A as ao,Aa as wo,G as co,Ja as At,L as Ot,La as et,Na as tt,Oa as nt,P as Qe,Q as An,Qa as Eo,R as Rn,Ra as ko,S as Ze,Sa as vo,T as uo,Ta as So,U as lo,Ua as Io,Va as xo,Z as fo,_ as mo,a as kt,h as Ct,p as so,q as Re,s as we,t as ce,u as W,ua as _o,v as Ye,va as po,wa as yo,xa as ho,ya as go,za as bo}from"./chunk-TJ7EMJ46.js";import{C as xt,D as Tt,E as On,G as oo,L as ae,S as be,T as io,W as b,X as Ae,Y as I,Z as x,aa as D,ba as Ne,ca as Ee,da as v,n as vt,o as Zr,p as eo,q as to,r as no,v as St,w as It,x as ro}from"./chunk-JEAVFOWM.js";import{AsyncLocalStorage as ra}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 Nn=new ra,To=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function Rt(e,t){let n=typeof e=="string"?e.trim():"";return n.length>0?n.slice(0,t):void 0}function ke(e,t){if(e===void 0)return;let n=typeof e=="object"&&e!==null?e:{},r=Rt(n.id,128),o=Rt(n.parent_id,128);if(r===void 0||!To.test(r)||o!==void 0&&!To.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=Rt(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function De(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=Rt(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function oa(e,t,n){let r=Nn.getStore(),o=De({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=ke(t.PM_AGENT_EPISODE_ID===void 0?void 0:{id:t.PM_AGENT_EPISODE_ID,label:t.PM_AGENT_EPISODE_LABEL,parent_id:t.PM_AGENT_EPISODE_PARENT_ID},!1),s={...De(r?.provenance),...o,...De(e?.provenance)},a=ke(e?.episode,!1)??ke(n,!1)??i??ke(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 Dn(e,t){return oa(e.session_context,t,e.client_info?.episode)??{}}function om(e,t){let n=Nn.getStore(),r=ke(e.episode,!0),o=ke(n?.episode,!1),i=r!==void 0&&r.parent_id===void 0&&o!==void 0?{...r,parent_id:o.id}:r,s={...De(n?.provenance),...De(e.provenance)};return Nn.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function im(e){let t=De(e.provenance),n=ke(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 Bn}from"node:async_hooks";import{createHash as da}from"node:crypto";import Dt from"node:fs";import ua from"node:os";import No from"node:path";import{createHash as Co}from"node:crypto";import{existsSync as Mn,promises as Oo,readFileSync as ia}from"node:fs";import K from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="424b9eb3-6b34-5ab0-a3f5-db61fbca12cf")}catch{}})();var sa="session.json";function Pn(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function Ao(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=Pn(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=>Pn(c,128)),a=t.focused_item_id===void 0||Pn(t.focused_item_id,128);if([n,r,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function aa(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([n,r])=>{let o=Ao(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Ln(e){return K.join(lo(e),sa)}async function Nt(e){try{let t=await Oo.readFile(Ln(e),"utf8"),n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return{};let r=n,o=r.focused_item,i=aa(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 jn(e,t){let n=Ln(e);await Oo.mkdir(K.dirname(n),{recursive:!0}),await W(n,JSON.stringify(t))}function Fn(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${Co("sha256").update(e).digest("hex").slice(0,24)}`}function $n(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function zn(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)}+${Co("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function Hn(e,t,n){let r=await Nt(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 jn(e,s)}async function fm(e){let t=Fn(e.principal);await Hn(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??zn(r),confidence:o?"high":"medium",rule_version:"v2",evidence:$n([...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 mm(e){let t=Fn(e.principal);await Hn(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??zn(r),confidence:o?"high":"medium",evidence:$n([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:r}})}async function _m(e){let t=Fn(e.principal);await Hn(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??zn(r),confidence:o?"high":"medium",rule_version:"v2",evidence:$n([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}function ca(e,t){let n=t.PM_PATH?.trim();if(n){let o=K.resolve(e,n);if(Mn(K.join(o,"settings.json")))return o;let i=K.join(o,".agents","pm");if(Mn(K.join(i,"settings.json")))return i}let r=K.resolve(e);for(let o=0;o<32;o+=1){let i=K.join(r,".agents","pm");if(Mn(K.join(i,"settings.json")))return i;let s=K.dirname(r);if(s===r)break;r=s}}function Ro(e){if(!e.key)return;let t=ca(e.cwd,e.env);if(t)try{let n=JSON.parse(ia(Ln(t),"utf8"));return Ao(n.semantic_attribution?.[e.key])}catch{return}}async function pm(e){return(await Nt(e)).focused_item}async function ym(e,t){let n=await Nt(e);await jn(e,{...n,focused_item:t})}async function hm(e){let n={...await Nt(e)};delete n.focused_item,await jn(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 Vn=["model","effort","role","topic","version"],Pt=new Bn,Do=new Bn,Lt=new Bn,la=[{harness:"claude-code",environment_keys:["CLAUDE_CODE","CLAUDECODE"],model_environment_keys:["ANTHROPIC_MODEL","CLAUDE_MODEL"],session_environment_keys:["CLAUDE_CODE_SESSION_ID"],provenance_environment_keys:{effort:["CLAUDE_EFFORT"]},provenance_resolvers:{model:"claude_session_file",version:"claude_session_file"},provenance_unavailable_dimensions:["role","topic"],argv_markers:["claude","claude-code"],client_names:["claude","claude-code","claude code"]},{harness:"codex",environment_keys:["CODEX_HOME","CODEX_CI","CODEX_THREAD_ID"],model_environment_keys:["CODEX_MODEL"],session_environment_keys:["CODEX_THREAD_ID"],provenance_environment_keys:{effort:["CODEX_REASONING_EFFORT","CODEX_EFFORT"],role:["CODEX_SESSION_ROLE"]},provenance_resolvers:{version:"ai_agent_version"},provenance_unavailable_dimensions:["topic"],argv_markers:["codex"],client_names:["codex"]},{harness:"pi",environment_keys:["PI_AGENT","PI_CODING_AGENT"],model_environment_keys:["PI_MODEL"],session_environment_keys:["PI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["pi"],client_names:["pi"]},{harness:"opencode",environment_keys:["OPENCODE","OPENCODE_SESSION_ID"],model_environment_keys:["OPENCODE_MODEL"],session_environment_keys:["OPENCODE_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["opencode"],client_names:["opencode"]},{harness:"cursor",environment_keys:["CURSOR_AGENT","CURSOR_TRACE_ID"],model_environment_keys:["CURSOR_MODEL"],session_environment_keys:["CURSOR_TRACE_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["cursor"],client_names:["cursor"]},{harness:"aider",environment_keys:["AIDER","AIDER_MODEL"],model_environment_keys:["AIDER_MODEL"],session_environment_keys:["AIDER_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["aider"],client_names:["aider"]},{harness:"gemini-cli",environment_keys:["GEMINI_CLI","GEMINI_CLI_HOME"],model_environment_keys:["GEMINI_MODEL"],session_environment_keys:["GEMINI_CLI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["gemini","gemini-cli"],client_names:["gemini","gemini-cli","gemini cli"]},{harness:"ci",environment_keys:["CI","GITHUB_ACTIONS","BUILDKITE","GITLAB_CI"],provenance_unavailable_dimensions:["model","effort","role","topic"],argv_markers:[],client_names:[]}],Me=new Map,Un=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function P(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function ve(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function jt(e){let t=e.harness.trim().toLowerCase();if(!Un.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:ve(e.environment_keys),model_environment_keys:ve(e.model_environment_keys),session_environment_keys:ve(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),ve(r)]).filter(([n])=>Un.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"&&Un.test(n[0])&&(n[1]==="ai_agent_version"||n[1]==="claude_session_file"))),provenance_unavailable_dimensions:ve(e.provenance_unavailable_dimensions).map(n=>n.toLowerCase()),argv_markers:ve(e.argv_markers).map(n=>n.toLowerCase()),client_names:ve(e.client_names).map(n=>n.toLowerCase())}}var Mo=la.map(jt);function fa(e,t){return JSON.stringify(e)===JSON.stringify(t)}function Mt(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function qn(e=[]){let t=[...Mo,...[...Me.values()].map(r=>r.descriptor),...Lt.getStore()?.descriptors??[],...e.map(jt)],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 Gn(e,t){for(let n of t??[]){let r=P(e[n]);if(r)return r.slice(0,256)}}function ma(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 Po(e,t){let n=t==="model"?["--model","--agent-model"]:[`--agent-${t}`],r=e.slice(0,8);for(let o=0;o<r.length;o+=1){let i=r[o].slice(0,512);if(n.includes(i))return P(r[o+1])?.slice(0,256);let s=n.find(a=>i.startsWith(`${a}=`));if(s)return P(i.slice(s.length+1))?.slice(0,256)}}var _a=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function Se(e,t){if(e!=="role"||t===void 0)return t;let n=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return _a.has(n)?n:void 0}function Wn(e,t){return P(e?.[t])?.slice(0,256)}var pa=1048576;function ya(e,t){if(e.length===0||e.length>262144)return;let n;try{n=JSON.parse(e)}catch{return}if(typeof n!="object"||n===null)return;let r=n,o=typeof r.message=="object"&&r.message!==null?r.message:void 0,i=t==="model"?o?.model:r.version;return P(i)?.slice(0,256)}function ha(e,t,n){let r=P(n.CLAUDE_CODE_SESSION_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let i=No.resolve(t.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),s=No.join(t.home_dir??ua.homedir(),".claude","projects",i,`${r}.jsonl`);try{let a=Dt.openSync(s,"r");try{let c=Dt.fstatSync(a).size,u=Math.min(c,pa),l=Buffer.alloc(u);Dt.readSync(a,l,0,u,Math.max(0,c-u));let f=l.toString("utf8").split(`
|
|
2
|
-
`).reverse();for(let _ of f.slice(0,4096)){let y=ya(_,e);if(y)return y}return}finally{Dt.closeSync(a)}}catch{return}}function ga(e,t,n,r){let o=Lt.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(P(n.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let s=r?.provenance_resolvers[e];if(s==="claude_session_file")return ha(e,t,n);if(s==="ai_agent_version"){let a=P(n.AI_AGENT);return!a||!r||!Mt(a,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(a)?.[1]?.slice(0,256)}}function ba(e,t,n){if(e==="ai_agent_version"){let r=P(n.AI_AGENT);return r!==void 0&&Mt(r,t.harness)}return P(n.CLAUDE_CODE_SESSION_ID)!==void 0}function Xn(e){return e||(Do.getStore()??{env:process.env,argv:process.argv})}function wa(e,t,n,r){let o=e.environment_keys.some(a=>P(t[a])!==void 0),i=e.argv_markers.some(a=>n.some(c=>{let u=c.replaceAll("\\","/");return Mt(u.slice(u.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||Mt(r,a));return o||i||s}function Ea(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 ka(e){let t=e.find(([n])=>n!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function va(e,t,n,r,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...Vn,...Object.keys(r?.provenance_environment_keys??{})]),c,u,l;a.has(e)&&(c=Se(e,P(n[s])?.slice(0,256)),l=Se(e,Po(t.argv??[],e)),u=Se(e,ma(t.argv??[],e)));let f={...r?.provenance_environment_keys,model:r?.model_environment_keys},_={...t.client_info?.provenance,model:t.client_info?.model},y=Wn(o?.provenance,e),g=Se(e,Gn(n,f[e])),E=Se(e,Wn(_,e)),k=Se(e,Wn(t.provenance,e)),A=ga(e,t,n,r);return ka([[c,"override"],[y,"session"],[l,"argv"],[g,"environment"],[E,"mcp_client"],[k,"host"],[A,"probe"]])??Ea(e,i)??(u?{value:u,source:"argv"}:void 0)}function Sa(e,t){if(!(!e||!t))return da("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function Ia(e,t,n,r,o){let i=Object.keys(n?.provenance_environment_keys??{}),s=new Set([...Vn,...i,...Object.keys(n?.provenance_resolvers??{}),...Object.keys(e.provenance??{}),...Object.keys(e.client_info?.provenance??{}),...Object.keys(r?.provenance??{})]),a={};for(let c of s){let u=va(c,e,t,n,r,o);u?a[c]=u:n&&(c!=="version"||n.provenance_unavailable_dimensions.includes(c))&&(a[c]=null)}return a}function xm(e){let t=e.map(jt),n=new Map(Mo.map(i=>[i.harness,i])),r=new Set;for(let i of t){if(r.has(i.harness)||n.has(i.harness))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);let s=Me.get(i.harness);if(s&&!fa(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=Me.get(i.harness);Me.set(i.harness,{descriptor:i,registrations:(s?.registrations??0)+1})}let o=!0;return()=>{if(o){o=!1;for(let i of t){let s=Me.get(i.harness);!s||s.registrations<=1?Me.delete(i.harness):s.registrations-=1}}}}function Tm(e,t){return Do.run(e,t)}function Cm(e,t,n={}){let r=e.map(jt);return qn(r),Lt.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function Jn(e){let t=Xn(e),n=t.env??{},r=qn(t.descriptors),o=[...(t.argv??[]).slice(0,3),...t.process_labels??[]].slice(0,64).map(g=>g.slice(0,512)),i=t.client_info?.name.trim().toLowerCase()??"",s=r.find(g=>wa(g,n,o,i)),a=Dn(t,n),c=[Gn(n,s?.session_environment_keys),P(t.client_info?.session)?.slice(0,256)].find(g=>g!==void 0),u=Sa(s?.harness,c),l=Ro({cwd:t.cwd??process.cwd(),env:n,key:u}),f=Ia(t,n,s,a,l),_=f.model,y=[["harness",s?.harness],["model",_?.value],["model_source",_?.source],["session",c],["instance",u],["provenance",Object.keys(f).length>0?f:void 0],["episode",a.episode]];return Object.fromEntries(y.filter(g=>g[1]!==void 0))}function xa(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=ba(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 Lo(e){let t=Xn(e),n=Jn(t),r=qn(t.descriptors).find(u=>u.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&Lt.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(P(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=Dn(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,Gn(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,Po(t.argv??[],"role")].some(u=>{let l=P(u)?.slice(0,256);return l!==void 0&&Se("role",l)===void 0}),c=Object.fromEntries(Vn.map(u=>[u,xa(u,n,r,o,i,u==="role"&&a)]));return{...n,provenance_outcomes:c}}function Om(){return process.env.PM_AUTHOR}function Am(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function Rm(e){return Jn(e).harness}function Ta(e,t,n){let r=Xn(n),o=Jn(r);if(e!==void 0){let s=P(e);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}if(r.env?.PM_AUTHOR!==void 0){let s=P(r.env.PM_AUTHOR);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}let i=P(t);return i?{author:i,source:"configured",...o}:o.harness?{author:`harness:${o.harness}`,source:"detected",...o}:{author:"unknown",source:"unknown",...o}}function jo(e){let t=Pt.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function Fo(e){let t=Pt.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 $o(e){let t=Pt.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function zo(e,t){let n=Ta(e,t);return Pt.enterWith(n),n.author}import Ca from"node:crypto";import{AsyncLocalStorage as Oa}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 Uo=new Oa,Ho=1024;function Wo(){let e=Uo.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 Bo(e){let t=Uo.getStore();if(t===void 0)return;if(!Number.isSafeInteger(e)||e<0||e>Ho)throw new Error(`Reproducible token length must be an integer between 0 and ${Ho}`);let n="";for(;n.length<e;){let r=Ca.createHash("sha256").update(`${t.seed}\0${t.tokenReads}`).digest();t.tokenReads+=1;for(let o of r)if(n+=(o%36).toString(36),n.length===e)break}return n}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7887e752-b1b8-5c5e-9dd8-93b41cb757af")}catch{}})();var Aa=/^([+-]?)(\d+)([hdwm])$/i,Ra=/^[+-]?\d+[hdwm](?:[+-]\d+[hdwm])+$/i,Na=/^(\d{4})(\d{2})(\d{2})$/,Da=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,Ma=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})-(\d{2})(?:-(\d{2}))?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,Pa=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,La=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/i;function Ie(){return Wo()??new Date().toISOString()}function de(e){return Number.isFinite(Date.parse(e))}function qo(e){let t=La.exec(e);if(!t||!Number.isFinite(Date.parse(e)))return!1;let[,n,r,o,i,s,a,c,u]=t,[l,f,_,y,g,E]=[n,r,o,i,s,a].map(Number);return f>=1&&f<=12&&_>=1&&_<=Qn(l,f-1)&&y<=23&&g<=59&&E<=59&&(c===void 0||Number(c)<=23)&&(u===void 0||Number(u)<=59)}var ja=1e4,Ft=new Map;function Vo(e){let t=Ft.get(e);if(t!==void 0)return t;let n=Date.parse(e);return Ft.size>=ja&&At(Ft),Ft.set(e,n),n}function $(e,t){let n=Vo(e),r=Vo(t);return Number.isFinite(n)&&Number.isFinite(r)&&n!==r?n-r:e.localeCompare(t)}function zm(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 Kn(e){return e?`.${e.slice(1).padEnd(3,"0").slice(0,3)}`:""}function Yn(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 Fa(e,t,n){n&&n!==t&&(e.includes(n)||e.push(n))}function $a(e){let t=[],n=u=>Fa(t,e,u),r=Na.exec(e);if(r){let[,u,l,f]=r;n(`${u}-${l}-${f}`)}let o=Da.exec(e);if(o){let[,u,l,f,_,y,g,E,k]=o,A=g?`:${g}`:"";n(`${u}-${l}-${f}T${_}:${y}${A}${Kn(E)}${Yn(k)}`)}let i=Ma.exec(e);if(i){let[,u,l,f,_,y,g]=i,E=_?`:${_}`:"";n(`${u}T${l}:${f}${E}${Kn(y)}${Yn(g)}`)}let s=Pa.exec(e);if(s){let[,u,l,f,_,y,g]=s,E=_?`:${_}`:"";n(`${u}T${l}:${f}${E}${Kn(y)}${Yn(g)}`)}let a=10,c=e.slice(0,a);if(Ha(c)){let u=a;for(;u<e.length&&Ua(e[u]);)u+=1;u<e.length&&n(`${c}T${e.slice(u)}`)}return t}function za(e){let t=Date.parse(e);if(Number.isFinite(t))return t;for(let n of $a(e)){let r=Date.parse(n);if(Number.isFinite(r))return r}return Number.NaN}function Ha(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 Ua(e){return e?e===" "||e===" "||e===`
|
|
3
|
-
`||e==="\r"||e==="\f"||e==="\v":!1}function Qn(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}var Wa=["January","February","March","April","May","June","July","August","September","October","November","December"],Ba=/^(\d{4})-(\d{2})-(\d{2})/,Va=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/;function qa(e,t,n){let r=Ba.exec(t)??Va.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=Qn(o,i-1);if(s<1||s>c)throw new x(`Invalid ${a} value "${e}". ${Wa[i-1]} ${o} has ${c} days, so day "${r[3]}" does not exist. Use a real YYYY-MM-DD calendar date.`,I.USAGE)}function Ga(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,Qn(i,s));return n.setUTCFullYear(i,s,a),n}function Hm(e,t=new Date,n="deadline"){let r=e.trim();if(r.toLowerCase()==="now")return t.toISOString();let o=Aa.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 Ga(t,a).toISOString();let u=c==="h"?3600*1e3:c==="d"?1440*60*1e3:10080*60*1e3;return new Date(t.getTime()+a*u).toISOString()}qa(e,r,n);let i=za(r);if(!Number.isFinite(i)){let s=n.trim().length>0?n.trim():"deadline",a=Ra.test(r)?"Compound relative expressions like +3d+1h are not supported; use a single relative token (for example +3d) or an ISO/date string.":'Use ISO/date string input, "now", or relative +6h/-6h/+1d/-1d/+2w/-2w/+6m/-6m.';throw new x(`Invalid ${s} value "${e}". ${a}`,I.USAGE)}return new Date(i).toISOString()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="77d3ebfa-789a-54cf-9d49-dbebab8d32ea")}catch{}})();var Pe=1,Go=1;function Wm(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=Pe?t:Pe}function Xo(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=Pe))return e}function Xa(e,t=Go){return e<t?"outdated":e>t?"ahead":"current"}function Bm(e,t=Go){let n=[],r=[];for(let o of e){let i=Xa(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 Ja={"in-progress":"in_progress",cancelled:"canceled"};function $t(e,t){if(t){let o=So(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=Ja[n]??n;if(vt.includes(r))return r}function Ka(e,t){return $t(e,t)??e}function Xm(e,t){return t.terminal_statuses.has(Ka(e,t))}import{encode as cc}from"@toon-format/toon";import{isDeepStrictEqual as Zo}from"node:util";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="91a3969e-59b3-506e-9349-ca08e73a1228")}catch{}})();var Ya=16;function Zn(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 Qa(e){return[...new Set([xo(e),Zn(e.key),Zn(e.cli_flag),...e.cli_aliases.map(t=>Zn(t))])]}function Yo(e,t){for(let n of Qa(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function Qo(e){return Array.isArray(e)?e.flatMap(t=>Qo(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 Jo(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 Ko(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 Za(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 ec(e,t){return t===void 0?!0:t==="array"?Array.isArray(e):t==="object"?typeof e=="object"&&e!==null&&!Array.isArray(e):typeof e===t}function tc(e,t,n){if(t.const!==void 0&&D(e)!==D(t.const))return`${n} must equal ${D(t.const)}`;if(t.enum!==void 0&&!t.enum.some(r=>D(r)===D(e)))return`${n} must be one of ${t.enum.map(r=>D(r)).join("|")}`;if(!ec(e,t.type))return`${n} must match configured type ${String(t.type)}`;if(typeof e=="string"){if(t.min_length!==void 0&&e.length<t.min_length)return`${n} must contain at least ${t.min_length} characters`;if(t.format==="date-time"&&!qo(e))return`${n} must be an RFC 3339 date-time`}}function nc(e,t,n,r){if(Array.isArray(e)){if(t.min_items!==void 0&&e.length<t.min_items)return`${n} must contain at least ${t.min_items} items`;if(t.items)for(let[o,i]of e.entries()){let s=zt(i,t.items,`${n}[${o}]`,r+1);if(s)return s}}}function rc(e,t,n,r){if(typeof e!="object"||e===null||Array.isArray(e))return;let o=e;for(let i of t.required??[])if(!Object.hasOwn(o,i))return`${n}.${i} is required`;for(let[i,s]of Object.entries(o)){let a=t.properties?.[i];if(!a){if(t.additional_properties===!1)return`${n}.${i} is not allowed`;continue}let c=zt(s,a,`${n}.${i}`,r+1);if(c)return c}}function zt(e,t,n,r=0){if(r>Ya)return`${n} value schema exceeds maximum depth`;let o=tc(e,t,n);if(o)return o;let i=nc(e,t,n,r);if(i)return i;let s=rc(e,t,n,r);if(s)return s;if(!t.one_of)return;let a=0;for(let c of t.one_of)if(zt(e,c,n,r+1)===void 0&&(a+=1,a>1))break;return a===1?void 0:`${n} must match exactly one configured schema variant`}function xe(e,t,n){if(!e.value_schema||t===void 0)return t;let r=zt(t,e.value_schema,n);if(r)throw new x(r,I.USAGE);return t}function rt(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:xe(e,Za(i,r,e.type),r)}if(e.repeatable||e.type==="string_array"){let i=Qo(t);return e.type==="number"?xe(e,i.map(s=>Ko(s,r)),r):e.type==="boolean"?xe(e,i.map(s=>Jo(s,r)),r):xe(e,i,r)}let o=Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return e.type==="number"?xe(e,Ko(o,r),r):e.type==="boolean"?xe(e,Jo(o,r),r):xe(e,typeof o=="string"?o:String(o),r)}function oc(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 t_(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=Yo(e,i);if(s===void 0){oc(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=rt(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function n_(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=Yo(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=rt(s,a)))}return r}import{decode as ic}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 er(e){return{value:ic(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 sc=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function ac(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(sc);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function Ht(e){return ac(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 dc=new Set(["schema","tracker","auto"]),uc=new Set(["passed","failed","stopped","canceled"]),lc=new Set(oo);function Fe(e){return e.replaceAll("\\","/")}function ni(e){for(let t of e)if(t!==0)return t;return 0}function Ut(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var ri=["id","title","description","created_at","updated_at"],fc=new Set(ae);function oi(e){if(e?.schema)return{statusRegistry:vo(e.schema),fieldRegistry:Io(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function mc(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function ue(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 st(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 ii(e){let t=new Set(fc);for(let n of e.fieldRegistry?.definitions??[])t.add(n.metadata_key);for(let n of e.extensionFieldNames)t.add(n);return t}function w(e,t){e||ue(t)}function at(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&ue(t),e}function tr(e,t){let n=e[t];w(typeof n=="string",`${t} must be a string`),w(de(n),`${t} must be a valid ISO timestamp`)}function ei(e,t,n){let r=e[t];r!==void 0&&w(typeof r=="number"&&Number.isInteger(r)&&r>=1,`${n} must be an integer >= 1`)}function or(e,t,n){let r=e[t];r!==void 0&&(w(typeof r=="string",`${n} must be a string`),w(de(r),`${n} must be a valid ISO timestamp`))}function _c(e){if(e!==void 0){w(Array.isArray(e),"event.recurrence.by_weekday must be an array");for(let t of e){w(typeof t=="string","event.recurrence.by_weekday entries must be strings");let n=t.trim().toLowerCase();w(Tt.includes(n),`event.recurrence.by_weekday entries must be one of: ${Tt.join(", ")}`)}}}function pc(e){if(e!==void 0){w(Array.isArray(e),"event.recurrence.by_month_day must be an array");for(let t of e)w(typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=31,"event.recurrence.by_month_day entries must be integers 1..31")}}function yc(e){if(e!==void 0){w(Array.isArray(e),"event.recurrence.exdates must be an array");for(let t of e)w(typeof t=="string","event.recurrence.exdates entries must be strings"),w(de(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function hc(e){let t=at(e,"event.recurrence must be an object");w(typeof t.freq=="string","event.recurrence.freq must be a string");let n=t.freq.trim().toLowerCase();w(xt.includes(n),`event.recurrence.freq must be one of: ${xt.join(", ")}`),ei(t,"interval","event.recurrence.interval"),ei(t,"count","event.recurrence.count"),or(t,"until","event.recurrence.until"),_c(t.by_weekday),pc(t.by_month_day),yc(t.exdates)}function gc(e){for(let r of ri)w(typeof e[r]=="string",`${r} is required and must be a string`);let t=e.type;w(typeof t=="string"&&t.trim().length>0,"type must be a non-empty string");let n=e.pm_format_version;return n!==void 0&&w(typeof n=="number"&&Number.isInteger(n)&&n>=Pe,`pm_format_version must be an integer >= ${Pe}`),t}function bc(e,t){let n=e.status;w(typeof n=="string"&&n.trim().length>0,"status must be a non-empty string");let r=t?.statusRegistry,o=$t(n,r),i=r?r.definitions.map(s=>s.id):[...vt];w(o!==void 0,`status must be one of: ${i.join(", ")}`)}function wc(e){let t=e.priority;w(typeof t=="number"&&Number.isInteger(t)&&[0,1,2,3,4].includes(t),"priority must be an integer 0..4");let n=e.tags;w(Array.isArray(n),"tags must be an array");for(let r of n)w(typeof r=="string","tags entries must be strings")}function Ec(e){let t=e.confidence;if(t!==void 0){if(typeof t=="number"){w(Number.isInteger(t)&&t>=0&&t<=100,"confidence number value must be an integer 0..100");return}if(typeof t=="string"){let n=t.trim().toLowerCase(),r=n==="med"||It.includes(n);w(r,`confidence string value must be one of: ${[...It,"med"].join(", ")}`);return}w(!1,"confidence must be a number or string")}}function kc(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&ue("severity must be a string");let n=t.trim().toLowerCase(),r=n==="med"||St.includes(n);w(r,`severity value must be one of: ${[...St,"med"].join(", ")}`)}function vc(e){e.regression!==void 0&&typeof e.regression!="boolean"&&ue("regression must be a boolean")}function Sc(e){let t=e.reminders;if(t!==void 0){w(Array.isArray(t),"reminders must be an array");for(let n of t){let r=at(n,"reminders entries must be objects");w(typeof r.at=="string","reminder.at must be a string"),w(de(r.at),"reminder.at must be a valid ISO timestamp"),w(typeof r.text=="string","reminder.text must be a string"),w(r.text.trim().length>0,"reminder.text must not be empty")}}}function Ic(e){for(let t of["title","description","location","timezone"])e[t]!==void 0&&(w(typeof e[t]=="string",`event.${t} must be a string`),w(e[t].trim().length>0,`event.${t} must not be empty`))}function xc(e){e.recurrence!==void 0&&(hc(e.recurrence),e.recurrence.until!==void 0&&w($(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function Tc(e){let t=at(e,"events entries must be objects");w(typeof t.start_at=="string","event.start_at must be a string"),w(de(t.start_at),"event.start_at must be a valid ISO timestamp"),t.end_at!==void 0&&(w(typeof t.end_at=="string","event.end_at must be a string"),w(de(t.end_at),"event.end_at must be a valid ISO timestamp"),w($(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),Ic(t),t.all_day!==void 0&&w(typeof t.all_day=="boolean","event.all_day must be a boolean"),xc(t)}function Cc(e){let t=e.events;if(t!==void 0){w(Array.isArray(t),"events must be an array");for(let n of t)Tc(n)}}function Oc(e){for(let t of["source_type","source_owner","design","external_ref"]){let n=e[t];n!==void 0&&w(typeof n=="string",`${t} must be a string`)}}function Ac(e){let t=e.type_options;if(t===void 0)return;let n=at(t,"type_options must be an object");for(let[r,o]of Object.entries(n))w(r.trim().length>0,"type_options keys must be non-empty"),w(typeof o=="string","type_options values must be strings"),w(o.trim().length>0,"type_options values must be non-empty strings")}function Rc(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){mc(r,t)&&ue(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=rt(r,o,`metadata field "${r.metadata_key}"`)}catch(i){ue(String(i?.message).replace(/^Invalid\s+/u,""))}}}function Nc(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=ii(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length!==0&&(t.unknownFieldPolicy==="reject"?ue(`unknown schema fields are not allowed: ${r.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`))}function ir(e,t){let n=at(e,"item metadata must be an object"),r=gc(n);bc(n,t),wc(n),Ec(n),kc(n),vc(n),tr(n,"created_at"),tr(n,"updated_at"),n.deadline!==void 0&&tr(n,"deadline"),Sc(n),Cc(n),or(n,"closed_at","closed_at"),or(n,"completed_at","completed_at"),Oc(n),Ac(n),Rc(n,r,t),Nc(n,t)}function Dc(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 nr(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 Mc(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 Pc(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!xt.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>Tt.includes(s)))).sort((s,a)=>On(s)-On(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=>de(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 Lc(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(jc).sort(Fc)}function jc(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:Pc(e.recurrence)};return Ut(t),t}function Fc(e,t){return ni([$(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 $c(e){if(!(!e||e.length===0))return e.map(t=>({path:Fe(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function zc(e){if(!e||e.length===0)return;let t=e.map(Wc).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)=>ni([$(n.recorded_at,r.recorded_at),n.run_id.localeCompare(r.run_id),n.kind.localeCompare(r.kind)]));return t.length>0?t:void 0}function Le(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function Hc(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function rr(e){return typeof e=="string"?e:""}function Uc(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 Wc(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=uc.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:rr(e.started_at),finished_at:rr(e.finished_at),recorded_at:rr(e.recorded_at),attempt:Hc(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:Le(e.passed)??0,failed:Le(e.failed)??0,skipped:Le(e.skipped)??0,items:Le(e.items),linked_tests:Le(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:Uc(e.measurements)};return Ut(o),o}function Bc(e){if(!(!Array.isArray(e)||e.length===0))return e.map(Gc)}function ot(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 si(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function ar(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function ti(e){if(!si(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!ar(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Vc(e){if(!si(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!ar(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function qc(e){let t=e?.trim().toLowerCase();if(!(!t||!dc.has(t)))return t}function Gc(e){let t={command:e.command?.trim()||void 0,path:e.path?Fe(e.path):void 0,scope:e.scope,timeout_seconds:typeof e.timeout_seconds=="number"&&Number.isFinite(e.timeout_seconds)&&e.timeout_seconds>0?e.timeout_seconds:void 0,pm_context_mode:qc(e.pm_context_mode),env_set:ti(e.env_set),env_clear:ot(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:ot(e.assert_stdout_contains),assert_stdout_regex:ot(e.assert_stdout_regex),assert_stderr_contains:ot(e.assert_stderr_contains),assert_stderr_regex:ot(e.assert_stderr_regex),assert_stdout_min_lines:Le(e.assert_stdout_min_lines),assert_json_field_equals:ti(e.assert_json_field_equals),assert_json_field_gte:Vc(e.assert_json_field_gte),note:e.note?.trim()||void 0};return Ut(t),t}function Xc(e){if(!(!e||e.length===0))return[...e].map(t=>({path:Fe(t.path),scope:t.scope,note:t.note?.trim()||void 0})).sort((t,n)=>{let r=t.scope.localeCompare(n.scope);if(r!==0)return r;let o=t.path.localeCompare(n.path);return o!==0?o:(t.note??"").localeCompare(n.note??"")})}function h(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function Jc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=h(r.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 Kc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=h(r.path);if(!o)continue;let i={path:Fe(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=h(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Yc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=h(r.command),i=h(r.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=Fe(i));let a=h(r.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function Qc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=h(r.path);if(!o)continue;let i={path:Fe(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=h(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Zc(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&&lc.has(o)?o:void 0,s=mo(t.order)??Number.NaN,a=typeof t.created_at=="string"?t.created_at:"",c=typeof t.updated_at=="string"?t.updated_at:"";if(!n||!r||!i||!Number.isFinite(s)||!a||!c)return;let u={id:n,order:s,title:r,status:i,created_at:a,updated_at:c};return ed(u,t),u}function ed(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",Jc],["files","files",Kc],["tests","tests",Yc],["docs","docs",Qc]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function td(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=Zc(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function nd(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=typeof r.ts=="string"?r.ts:"",i=typeof r.author=="string"?r.author:"",s=h(r.decision);if(!o||!i||!s)continue;let a={ts:o,author:i,decision:s},c=h(r.rationale);c&&(a.rationale=c);let u=h(r.evidence);u&&(a.evidence=u);let l=h(r.step_id);l&&(a.step_id=l),t.push(a)}return t.length>0?t:void 0}function rd(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 od(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 id(e){if(!e)return;let t=Object.entries(e).map(([n,r])=>[n.trim(),r.trim()]).filter(([n,r])=>n.length>0&&r.length>0).sort((n,r)=>n[0].localeCompare(r[0]));if(t.length!==0)return Object.fromEntries(t)}function je(e){let t=0;for(;t<e.length&&e[t]===`
|
|
4
|
-
`;)t+=1;return e.slice(t).trimEnd()}function sd(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(It.includes(t))return t}function ad(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(St.includes(t))return t}function it(e){return e||void 0}function cd(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))ar(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function dd(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]=rt(r,o,`metadata field "${r.metadata_key}"`))}}function ud(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=ii(t),o=Object.keys(e).filter(i=>!n.has(i)).sort((i,s)=>i.localeCompare(s));o.length>0&&t.unknownFieldPolicy==="reject"&&ue(`unknown schema fields are not allowed: ${o.join(", ")}`),o.length>0&&t.onWarning?.(`item_unknown_schema_fields:${o.join(",")}`)}function Wt(e,t={}){let n=oi(t),r=$t(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:Xo(e.pm_format_version),source_type:h(e.source_type),type_options:id(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:Dc(e.dependencies),comments:nr(e.comments),notes:nr(e.notes),learnings:nr(e.learnings),files:$c(e.files),tests:Bc(e.tests),test_runs:zc(e.test_runs),docs:Xc(e.docs),deadline:it(e.deadline),reminders:Mc(e.reminders),events:Lc(e.events),closed_at:it(e.closed_at),completed_at:it(e.completed_at),assignee:h(e.assignee),claim_principal:h(e.claim_principal),source_owner:h(e.source_owner),author:it(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:sd(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:ad(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:it(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:td(e.plan_steps),plan_decisions:nd(e.plan_decisions),plan_discoveries:rd(e.plan_discoveries),plan_validation:od(e.plan_validation)};return cd(i,e),dd(i,n),ud(i,n),Ut(i),i}function ai(e){return v(e,ae)}function ld(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 fd(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=ld(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 md(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 sr(e,t){return Wt(e,{...t,onWarning:void 0})}function _d(e,t,n={}){let r=md(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=fd(r.content);o||(e.trimStart().startsWith("{")&&st("json_markdown","JSON front matter is not valid JSON"),st("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{st("json_markdown","JSON front matter is not valid JSON")}return ir(s,t),{metadata:sr(s,n),body:je(i)}}function pd(e,t,n={}){let r;try{r=er(e).value}catch{st("toon","TOON item document is not valid TOON")}w(typeof r=="object"&&r!==null&&!Array.isArray(r),"TOON item document must be an object");let o=r;if(!ri.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&st("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return ir(o.front_matter,t),w(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:sr(o.front_matter,n),body:je(typeof o.body=="string"?o.body:"")};let{body:i,...s}=o;return w(i===void 0||typeof i=="string","TOON item document body must be a string"),ir(s,t),{metadata:sr(s,n),body:je(typeof i=="string"?i:"")}}function yd(e,t={}){let n=Wt(e.metadata,t),r=ai(n),o=JSON.stringify(r,null,2),i=je(e.body??"");return i?`${o}
|
|
6
|
-
|
|
7
|
-
${i}
|
|
8
|
-
`:`${o}
|
|
9
|
-
`}function hd(e,t={}){let n=Wt(e.metadata,t),r=ai(n),o=je(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i)),a=cc(s),c;try{c=er(a).value}catch(u){throw new x("Refusing to persist a TOON item document that the configured decoder cannot read back.",I.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_error",format:"toon",required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:u instanceof Error?u.message:String(u)})}if(!Zo(c,s)){let u=typeof c=="object"&&c!==null&&!Array.isArray(c)?c:{},l=Object.keys(s).find(f=>!Zo(s[f],u[f]))??"document";throw new x(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${l}".`,I.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_mismatch",format:"toon",field:l,required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:"The encoded document decoded to a value different from the canonical item payload."})}return`${a}
|
|
10
|
-
`}function Bt(e,t={}){let n=Ht(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=oi(t);return r==="toon"?pd(e,o,t):_d(e,o,t)}function ci(e,t={}){return(t.format??"toon")==="toon"?hd(e,t):yd(e,t)}function G(e,t={}){return{metadata:Wt(e.metadata,t),body:je(e.body??"")}}import{existsSync as bd}from"node:fs";import{AsyncLocalStorage as wd}from"node:async_hooks";import ee from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bd9832a9-f6a2-5351-a929-0a0d2766df88")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3239b2c7-3ae3-5d4e-9005-b61000362304")}catch{}})();function I_(){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 gd(){let e=Promise.resolve(),t=0,n=[],r=()=>{if(t!==0)return;let o=n.splice(0);for(let i of o)i()};return{enqueue(o){t++;let i=e.then(()=>o());return e=i.then(()=>{},()=>{}).finally(()=>{t--,r()}),i},idle(){return t===0?Promise.resolve():new Promise(o=>n.push(o))}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="38024e6c-c1ef-5c15-8421-ac18d317e330")}catch{}})();var $e=null,ui=null,Ed=null,kd=null,cr=null,vd=null,li=null,Sd=null;var Id=[],fi=new wd;function L(){return fi.getStore()}function F_(e){return fi.run({hooks:null,commands:null,parsers:null,preflight:null,services:null,renderers:null,registrations:null,commandContext:null,commandResult:void 0,affectedItems:[]},e)}var xd=new Set(["body","comments","dependencies","docs","events","files","learnings","notes","reminders","test_runs","tests"]);function di(e){let t=ee.resolve(e);for(;;){if(bd(ee.join(t,".git")))return t;let n=ee.dirname(t);if(n===t)return;t=n}}function Td(e){let t=process.env.PM_SOURCE_WORKSPACE_ROOT?.trim()||process.cwd(),n=di(t)??ee.resolve(t),r=di(n);if(!e)return{source_workspace_root:n,...r?{repo_root:r}:{}};let o=ee.relative(n,ee.resolve(e)),i=o.length>0&&!o.startsWith(`..${ee.sep}`)&&o!==".."&&!ee.isAbsolute(o);return{source_workspace_root:n,...r?{repo_root:r}:{},...i?{pm_root_rel:o.split(ee.sep).join("/")}:{}}}function $_(e){let t=L();if(t){t.hooks=e;return}$e=e}function z_(e){let t=L();if(t){t.commands=e;return}ui=e}function H_(e){let t=L();if(t){t.parsers=e;return}Ed=e}function U_(e){let t=L();if(t){t.preflight=e;return}kd=e}function W_(e){let t=L();if(t){t.services=e;return}cr=e}function B_(e){let t=L();if(t){t.renderers=e;return}vd=e}function V_(e){let t=L();if(t){t.registrations=e;return}li=e}function ct(){let e=L();return e?e.registrations:li}function dr(e){if(!e)return;let t=L();t?t.affectedItems.push(e):Id.push(e)}function Vt(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"||xd.has(i)||Object.hasOwn(r,i)&&r[i]!==void 0&&(n[i]=r[i])}return n}async function X(e){let t=L(),n=t?t.hooks:$e;return n?po(n,e):[]}async function ur(e){let t=L(),n=t?t.hooks:$e;n&&await _o(n,e)}async function Y(e){let t=L(),n=t?t.hooks:$e;return n?yo(n,e):[]}function lr(){let e=L();return((e?e.hooks:$e)?.onRead?.length??0)>0}async function q_(e){let t=L(),n=t?t.hooks:$e;return n?ho(n,e):[]}async function G_(e){let t=L(),n=t?t.commands:ui;return n?go(n,{...e,...Td(e.pm_root)}):{handled:!1,result:null,warnings:[]}}function mi(e,t){let n=L(),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 te(e,t){let n=L(),r=n?n.services:cr;return r?wo(r,mi(e,t)):{handled:!1,result:t,warnings:[]}}function _i(e,t){let n=L(),r=n?n.services:cr;return r?bo(r,mi(e,t)):{handled:!1,result:t,warnings:[]}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="aa65b74d-ef5d-57ed-b613-3034da52a8ba")}catch{}})();async function ze(e,t){let n=await ce(e);if(n===null)return[];if(await Y({path:e,scope:"project"}),n.trim()==="")return[];let r=Ht(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 vr 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 Mi from"fast-json-patch";import ne from"node:fs/promises";import re from"node:path";import{randomUUID as Cd}from"node:crypto";import{createRequire as Od}from"node:module";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a84b308f-7eef-535c-9531-b33b0775c651")}catch{}})();var Ad="history-event-index.sqlite",fr="2",Rd=8,Te=new Map;function Jt(e){return re.join(e,"runtime",Ad)}async function pi(e){let t=re.join(e,"history"),n=await ne.readdir(t,{withFileTypes:!0}).catch(s=>{if(typeof s=="object"&&s!==null&&"code"in s&&s.code==="ENOENT")return[];throw s}),r=Te.get(e)??{streams:new Map,ordered_events:[]},o=new Set,i=!Te.has(e);for(let s of n.filter(a=>a.isFile()&&a.name.endsWith(".jsonl")).sort((a,c)=>a.name.localeCompare(c.name))){let a=s.name.slice(0,-6);o.add(a);let c=re.join(t,s.name),u=await ne.stat(c,{bigint:!0}),l=[u.dev,u.ino,u.size,u.mtimeNs,u.ctimeNs].join(":");if(r.streams.get(a)?.signature===l)continue;let f=await ze(c,a);r.streams.set(a,{signature:l,events:f.map((_,y)=>({stream_id:a,stream_offset:y,entry:_}))}),i=!0}for(let s of r.streams.keys())o.has(s)||(r.streams.delete(s),i=!0);if(i&&(r.ordered_events=[...r.streams.values()].flatMap(s=>s.events).sort(hi)),Te.delete(e),Te.set(e,r),Te.size>Rd){let s=Te.keys().next().value;Te.delete(s)}return r.ordered_events}function Nd(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}function Dd(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?Nd(t):null}var qt;function mr(){return qt!==void 0||(qt=Dd(process.versions.node,Od(import.meta.url))),qt}function Md(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(fr)}function yi(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 lp(e){let t=mr();if(!t)return!1;let n=Jt(e);await ne.mkdir(re.dirname(n),{recursive:!0});let r=`${n}.${Cd()}.tmp`,o;try{o=new t(r),Md(o),o.exec("BEGIN IMMEDIATE");for(let i of await pi(e))yi(o,i);return o.exec("COMMIT"),o.close(),o=void 0,await ne.rm(n,{force:!0}),await ne.rename(r,n),!0}catch(i){throw o?.close(),await ne.rm(r,{force:!0}),i}}function Gt(e,t){return!t||t.length===0||t.includes(e)}function hi(e,t){return e.entry.ts.localeCompare(t.entry.ts)||e.stream_id.localeCompare(t.stream_id)||e.stream_offset-t.stream_offset}function Pd(e,t){if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){if(hi(e,{stream_id:t.after_stream_id,stream_offset:t.after_stream_offset,entry:{...e.entry,ts:t.after_ts}})<=0)return!1}else if(t.since_ts!==void 0&&e.entry.ts<t.since_ts)return!1;return!0}function Ld(e,t){return!t.harnesses||t.harnesses.length===0||t.harnesses.includes(e.entry.agent_harness??"")?!0:e.entry.agent_harness===void 0&&(t.harness_alias_authors??[]).includes(e.entry.author)}function jd(e,t){return!Pd(e,t)||!Gt(e.entry.op,t.ops)||!Gt(e.entry.author,t.authors)||!Gt(e.entry.agent_instance??"",t.agent_instances)||!Gt(e.stream_id,t.stream_ids)||!Ld(e,t)?!1:(t.provenance??[]).every(n=>{let r=e.entry.agent_provenance?.[n.dimension]?.value;return r!==void 0&&n.values.includes(r)})}async function fp(e,t){let n=Math.max(0,Math.floor(t.limit)),r=(await pi(e)).filter(o=>jd(o,t)).slice(0,n+1);return{events:r.slice(0,t.limit),has_more:r.length>t.limit}}async function gi(e,t){let n=re.dirname(re.dirname(e)),r=Jt(n);try{await ne.access(r)}catch{return}let o=mr();if(!o)return;let i;try{if(i=new o(r),i.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==fr)throw new TypeError("Unsupported history event index version");let a=re.basename(e,".jsonl"),c=i.prepare("SELECT COALESCE(MAX(stream_offset), -1) + 1 AS value FROM events WHERE stream_id = ?").get(a);yi(i,{stream_id:a,stream_offset:Number(c.value),entry:t}),i.close()}catch{i?.close(),await ne.rm(r,{force:!0})}}async function Kt(e){await ne.rm(Jt(re.dirname(re.dirname(e))),{force:!0})}function Xt(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function Fd(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 mp(e,t){let n=mr();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)),Xt(r,o,"op",t.ops),Xt(r,o,"author",t.authors),Fd(r,o,t.harnesses,t.harness_alias_authors),Xt(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);Xt(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s;try{if(s=new n(Jt(e),{readOnly:!0}),s.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==fr)return s.close(),null;let c=s.prepare(`SELECT stream_id, stream_offset, entry_json
|
|
42
|
-
FROM events${i}
|
|
43
|
-
ORDER BY ts, stream_id, stream_offset
|
|
44
|
-
LIMIT ?`).all(...o,Math.max(0,Math.floor(t.limit))+1),u=c.length>t.limit,l=c.slice(0,t.limit).map(f=>({stream_id:String(f.stream_id),stream_offset:Number(f.stream_offset),entry:JSON.parse(String(f.entry_json))}));return s.close(),{events:l,has_more:u}}catch{return s?.close(),null}}import wr from"node:fs/promises";import Ue from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a3e0573a-01fd-54fb-a568-51c5287b696c")}catch{}})();var Yt="changed_fields",$d="changed_field_count",_r="rows",zd=new Set(["apply","rollback"]),Ei=new Set(["deleted","would_delete"]),bi=256;function wi(e){return typeof e!="string"||e.length<=bi?e:`${e.slice(0,bi-1)}\u2026`}function Hd(e){if(!oe(e))return null;let t={...e};return t.reason=wi(t.reason),oe(t.previous_terminal)&&(t.previous_terminal=Object.fromEntries(Object.entries(t.previous_terminal).map(([n,r])=>[n,wi(r)]))),t}function oe(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function ki(e){let t=e[Yt];if(!Array.isArray(t))return null;let n=Object.getPrototypeOf(e)===null?Object.create(null):{};for(let[r,o]of Object.entries(e))r!==Yt&&(n[r]=o);return n[$d]=t.length,n}function Ud(e){return"item"in e&&Array.isArray(e[Yt])}function Wd(e){return typeof e.mode=="string"&&zd.has(e.mode)&&Array.isArray(e[_r])}function Bd(e,t){let n=Object.getPrototypeOf(e)===null?Object.create(null):{};return Object.assign(n,e),n[_r]=t,n}function Vd(e){if(!oe(e))return null;let t=oe(e.item)?e.item:oe(e.plan)?e.plan:null;if(t===null)return null;let n=typeof t.id=="string"?t.id:void 0,r=typeof e.outcome=="string"&&Ei.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 qd(e){if(!oe(e)||!oe(e.item)||typeof e.item.id!="string")return null;let t=e[Yt];if(!Array.isArray(t))return null;let n={id:e.item.id,...typeof e.outcome=="string"&&Ei.has(e.outcome)?{status:e.outcome}:typeof e.item.status=="string"?{status:e.item.status}:{},...typeof e.deleted=="boolean"?{deleted:e.deleted}:{},...typeof e.previous_status=="string"?{previous_status:e.previous_status}:{},changed_field_count:t.length},r=typeof e.close_reason=="string"?e.close_reason:typeof e.item.close_reason=="string"?e.item.close_reason:void 0;r!==void 0&&(n.close_reason=r);let o=Hd(e.recurrence);return o!==null&&(n.recurrence=o),Array.isArray(e.warnings)&&e.warnings.length>0&&(n.warnings=e.warnings),n}function Gd(e){let t=Wd(e)?e[_r]:void 0;if(!Array.isArray(t))return{projected:e,changed:!1};let n=!1,r=t.map(o=>{if(!oe(o))return o;let i=ki(o);return i?(n=!0,i):o});return n?{projected:Bd(e,r),changed:!0}:{projected:e,changed:!1}}function Xd(e,t={}){if(t.idOnly===!0){let a=Vd(e);if(a!==null)return a}if(t.compactEnvelope===!0){let a=qd(e);if(a!==null)return a}if((t.changedFields??"full")==="full"||!oe(e))return e;let r=!1,o=e,i=Ud(e)?ki(e):null;i!==null&&(o=i,r=!0);let s=Gd(o);return s.changed&&(o=s.projected,r=!0),r?o:e}import{encode as Ii}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 Dp=new Set(Object.values(I));var vi=!1;function He(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function pr(e){return typeof e=="object"&&e!==null&&e.code==="EPIPE"}function Jd(){(process.exitCode===void 0||process.exitCode===I.SUCCESS)&&(process.exitCode=I.SUCCESS)}function Kd(){(process.exitCode===void 0||process.exitCode===I.SUCCESS)&&(process.exitCode=I.GENERIC_FAILURE)}function yr(e){if(e==="stdout"){Jd();return}Kd()}function Si(e){let t=e instanceof Error?e:new Error(String(e));setImmediate(()=>{throw t})}function Yd(){vi||(vi=!0,process.stdout.on("error",e=>{if(pr(e)){yr("stdout");return}Si(e)}),process.stderr.on("error",e=>{if(pr(e)){yr("stderr");return}Si(e)}))}function Qd(e,t){Yd();try{return e==="stdout"?process.stdout.write(t):process.stderr.write(t),!0}catch(n){if(pr(n))return yr(e),!1;throw n}}function Qt(e){return Qd("stderr",e)}function hr(e){return typeof e=="string"?JSON.stringify(e):typeof e=="number"||typeof e=="boolean"?String(e):e===null?"null":JSON.stringify(e)}function Zd(e){return e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function xi(e){if(e.length===0||!e.every(He))return!1;let t=Object.keys(e[0]);return t.length>0&&e.every(n=>Object.keys(n).length===t.length&&t.every(r=>Object.hasOwn(n,r)&&Zd(n[r])))}function Ti(e,t){let n=" ".repeat(t);return e.split(`
|
|
45
|
-
`).map(r=>`${n}${r}`).join(`
|
|
46
|
-
`)}function eu(e,t,n){let r=" ".repeat(n);return!He(t)&&!Array.isArray(t)?`${r}${e}: ${hr(t)}`:Array.isArray(t)&&t.length===0?`${r}${e}: []`:Array.isArray(t)&&xi(t)?Ti(Ii({[e]:t}),n):He(t)&&Object.keys(t).length===0?`${r}${e}: {}`:`${r}${e}:
|
|
47
|
-
${br(t,n+1)}`}function gr(e){if(e!=null){if(Array.isArray(e)){let t=e.map(n=>gr(n)).filter(n=>n!==void 0);return t.length>0?t:void 0}if(He(e)){let t={};for(let[n,r]of Object.entries(e)){if(n==="omitted_field_groups"&&Array.isArray(r)&&r.length===0){t[n]=[];continue}let o=gr(r);o!==void 0&&(t[n]=o)}return Object.keys(t).length>0?t:void 0}return e}}function br(e,t){let n=" ".repeat(t);if(Array.isArray(e))return e.length===0?"[]":xi(e)?Ti(Ii(e),t):e.map(r=>{if(!He(r)&&!Array.isArray(r))return`${n}- ${hr(r)}`;let i=br(r,t+1).split(`
|
|
48
|
-
`),[s,...a]=i;return a.length===0?`${n}- ${s.trimStart()}`:`${n}- ${s.trimStart()}
|
|
49
|
-
${a.join(`
|
|
50
|
-
`)}`}).join(`
|
|
51
|
-
`);if(He(e)){let r=Object.entries(e);return r.length===0?"{}":r.map(([o,i])=>eu(o,i,t)).join(`
|
|
52
|
-
`)}return`${n}${hr(e)}`}function Mp(e,t){if(t==="json")return`${JSON.stringify(e,null,2)}
|
|
53
|
-
`;let n=gr(e);return n===void 0?`{}
|
|
54
|
-
`:`${br(n,0)}
|
|
55
|
-
`}function Pp(e){let t=_i("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 tu=Ue.join("runtime","history-drift-cache.json"),Ci={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 Oi(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function nu(e){let t=Ue.join(e,tu),n=!1,r="invalid_cache_path";try{n=(await wr.stat(await wr.realpath(e))).isDirectory()}catch(o){let i=Oi(o);r=i===void 0?"unknown":Ci[i]??"filesystem_error"}if(!n){Qt(`[pm] warning: history_drift_cache_invalidation_failed:${r}
|
|
58
|
-
`);return}try{await wr.rm(t,{force:!0})}catch(o){let i=Oi(o);if(we(o))return;let s=i===void 0?"unknown":Ci[i]??"filesystem_error";Qt(`[pm] warning: history_drift_cache_invalidation_failed:${s}
|
|
59
|
-
`)}}async function dt(e){let t=Ue.dirname(Ue.resolve(e));Ue.basename(t)==="history"&&await nu(Ue.dirname(t))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2fc7f675-3500-5abb-8d5c-9ca9caa803b6")}catch{}})();var ou={front_matter:{},body:""},fe=2,ut=[1,2];function Zt(e,t){return(e??"").localeCompare(t??"")}function Ai(e,t){return(e??0)-(t??0)}function le(e,t,n){return JSON.stringify(e??n).localeCompare(JSON.stringify(t??n))}function iu(e,t){return[e.scope.localeCompare(t.scope),Zt(e.path,t.path),Zt(e.command,t.command),Ai(e.timeout_seconds,t.timeout_seconds),Zt(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,le(e.env_clear,t.env_clear,[]),le(e.env_set,t.env_set,{}),le(e.assert_stdout_contains,t.assert_stdout_contains,[]),le(e.assert_stdout_regex,t.assert_stdout_regex,[]),le(e.assert_stderr_contains,t.assert_stderr_contains,[]),le(e.assert_stderr_regex,t.assert_stderr_regex,[]),Ai(e.assert_stdout_min_lines,t.assert_stdout_min_lines),le(e.assert_json_field_equals,t.assert_json_field_equals,{}),le(e.assert_json_field_gte,t.assert_json_field_gte,{}),Zt(e.note,t.note)].find(r=>r!==0)??0}function su(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function au(e,t){let n=su(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 cu(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!au(r,o.path)?{...o,op:"add"}:o;n.push(i),r=Mi.applyPatch(r,[i],!0,!0).newDocument}return n}function Er(e,t){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let r=G(e),o=t===1&&r.metadata.tests?{...r.metadata,tests:[...r.metadata.tests].sort(iu)}:r.metadata;return{front_matter:v(o,ae),body:r.body}}function Ri(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let n=G(e);return{metadata:v(n.metadata,ae),body:n.body}}function Zp(e){return kr(e,fe)}function kr(e,t){if(!ut.some(n=>n===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return Ee(D(Er(e,t)))}function ey(){return Ee(D(ou))}function We(e){let t=Er(e.before,fe),n=Er(e.after,fe),r=Ri(e.before),o=Ri(e.after),i=Mi.compare(r,o),s=cu(r,i),a=Fo(e.author),c=a.harness?Object.fromEntries(Object.entries(Lo().provenance_outcomes).filter(([,l])=>l.status==="failed")):void 0,u=c===void 0||Object.keys(c).length===0?e.context:{...e.context,agent_provenance_outcomes:c};return{ts:e.nowIso,author:e.author,author_source:e.authorSource??jo(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:Ee(D(t)),after_hash:Ee(D(n)),item_hash_version:fe,message:e.message===void 0?void 0:e.message,...u===void 0?{}:{context:u}}}function Ni(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function du(e){let t=e.ts.trim();return t.length>0?t:Ie()}function Di(e,t){let n=e.ts;return typeof n=="string"&&n.trim().length>0?e:{...e,ts:t}}function en(e,t){let n=du(t);if(typeof e=="string"){try{let r=JSON.parse(e);if(Ni(r))return JSON.stringify(Di(r,n))}catch{}return e}return Ni(e)?JSON.stringify(Di(e,n)):JSON.stringify(e)}async function Be(e,t){let n=await te("history_append",{history_path:e,entry:t});if(n.handled){if(n.result===!1)return;if(typeof n.result=="string"){await Ye(e,en(n.result,t)),await dt(e),await Kt(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 Ye(o,en(r.line,t)),await dt(o),await Kt(o);return}await Ye(o,en(r.entry??t,t)),await dt(o),await Kt(o);return}}await Ye(e,en(t,t)),await dt(e),await gi(e,t)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bf8797ec-53d3-5d23-8a6e-8296a027ddf2")}catch{}})();var uu={metadata:{},body:""};function nn(){return structuredClone(uu)}function tn(e,t=fe){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return kr(rn(e),t)}catch{}return Ee(D({replay_fallback:!0,metadata:e.metadata,body:e.body}))}function rn(e){return{metadata:e.metadata,body:e.body}}function cy(e,t={}){return G(rn(e),t)}function dy(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=G(e);return{metadata:v(t.metadata,ae),body:t.body}}function Pi(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function lu(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function ji(e){return Array.isArray(e)?e.filter(lu).map(t=>({...t,path:Pi(t.path),from:typeof t.from=="string"?Pi(t.from):void 0})):[]}function fu(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 on(e,t){try{let n=ji(t),r=vr.applyPatch(structuredClone(e),n,!0,!1).newDocument;return fu(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 mu(e){return[...new Set(e.map(t=>t.item_hash_version).filter(t=>t!==void 0&&ut.includes(t)))]}function _u(e,t){return e!==void 0?[e]:t===void 0?[1,fe]:[t]}function Fi(e){let t=nn(),n,r;for(let o=0;o<e.length;o+=1){let i=e[o],s=i.item_hash_version;if(s!==void 0&&!ut.includes(s))return{ok:!1,errors:[`verify_failed:unsupported_item_hash_version:${String(s)}:entry_${o+1}`]};let a=on(t,i.patch);if(!a.ok)return{ok:!1,errors:[`verify_failed:patch_apply_failed:entry_${o+1}`]};let u=_u(s,r).filter(f=>tn(t,f)===i.before_hash);if(u.length===0)return{ok:!1,errors:[`verify_failed:before_hash_mismatch:entry_${o+1}`]};let l=u.find(f=>tn(a.document,f)===i.after_hash);if(l===void 0)return{ok:!1,errors:[`verify_failed:after_hash_mismatch:entry_${o+1}`]};t=a.document,n=l,s!==void 0&&(r=l)}return{ok:!0,errors:[],...n===void 0?{}:{item_hash_version:n}}}function sn(e){let t=Fi(e);return{ok:t.ok,errors:t.errors}}function Li(e,t){try{return{ok:!0,document:vr.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function pu(e,t){let n=structuredClone(e),r=0,o=0;for(let a of ji(t)){let c=Li(n,a);if(c.ok){n=c.document;continue}if(a.op==="replace"){let u=Li(n,{...a,op:"add"});if(u.ok){n=u.document,r+=1;continue}}o+=1}let i=n;return{document:{metadata:typeof i.metadata=="object"&&i.metadata!==null?i.metadata:{},body:typeof i.body=="string"?i.body:e.body},convertedReplaceToAdd:r,skippedOps:o}}function yu(e){let t=mu(e);if(t.length===1)return t[0];let n=Fi(e);return n.ok&&n.item_hash_version!==void 0?n.item_hash_version:t.length===0?1:fe}function uy(e,t=yu(e)){let n=e.findIndex(f=>f.item_hash_version!==void 0&&!ut.includes(f.item_hash_version));if(n>=0)throw new TypeError(`unsupported_item_hash_version:${String(e[n]?.item_hash_version)}:entry_${n+1}`);let r=nn(),o=[],i=[],s=0,a=0,c=0,u=0,l=t!==1||e.some(f=>f.item_hash_version!==void 0);for(let f=0;f<e.length;f+=1){let _=e[f],y=tn(r,t),g=on(r,_.patch),E,k,A=!1,M=0,U=0;if(g.ok)E=g.document,k=_.patch;else{let H=pu(r,_.patch);E=H.document,k=vr.compare(r,E),A=!0,M=H.convertedReplaceToAdd,U=H.skippedOps,c+=M,u+=U,a+=1}let z=tn(E,t),Z=y!==_.before_hash||z!==_.after_hash;Z&&(s+=1);let ge={..._,patch:k,before_hash:y,after_hash:z};l?ge.item_hash_version=t:delete ge.item_hash_version,o.push(ge),i.push({index:f+1,rehashed:Z,patch_repaired:A,converted_replace_to_add:M,skipped_ops:U}),r=E}return{entries:o,finalDocument:r,entriesRehashed:s,entriesPatchRepaired:a,convertedReplaceToAdd:c,skippedOps:u,details:i,itemHashVersion:t,explicitItemHashVersion:l}}function ly(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
|
|
60
|
-
`)}
|
|
61
|
-
`}import hu from"node:crypto";import $i 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 Hi(e){let t=(e??"").trim().toLowerCase();return t?t.endsWith("-")?t:`${t}-`:"pm-"}function Sr(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function Ir(e,t){let n=Hi(t),r=Sr(e);return r.startsWith(n)?r:`${n}${r}`}function gu(e){let t=Bo(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=hu.randomInt(0,36).toString(36);return n}async function bu(e,t,n){let r=[...new Set(Object.values(n))].flatMap(o=>[$i.join(e,o,`${t}.md`),$i.join(e,o,`${t}.toon`)]);return(await Promise.all(r.map(o=>Re(o)))).some(Boolean)}var zi=4,Ui=12;function wu(e){return typeof e!="number"||!Number.isFinite(e)?zi:Math.min(Ui,Math.max(zi,Math.trunc(e)))}async function gy(e,t,n={}){let r=wu(n.tokenLength),o=Math.min(r+6,Ui),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${Hi(t)}${gu(r)}`;if(n.probeExisting===!1||!await bu(e,a,n.typeToFolder??be))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import Ce from"node:fs/promises";import Bi from"node:path";import{randomUUID as Eu}from"node:crypto";import{createRequire as ku}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 vu="metadata-query-index.sqlite",lt="4";function Su(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}var an;function Iu(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?Su(t):null}function ft(){return an!==void 0||(an=Iu(process.versions.node,ku(import.meta.url))),an}function Wi(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function Ve(e){return Bi.join(e,"runtime",vu)}function xu(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 dn(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function Vi(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 qi(e){let t=Ve(e.pmRoot),n=ft();if(!n){await Ce.rm(t,{force:!0});return}await Ce.mkdir(Bi.dirname(t),{recursive:!0});let r=`${t}.${Eu()}.tmp`,o;try{o=new n(r),xu(o),o.exec("BEGIN IMMEDIATE"),dn(o,"version",lt),dn(o,"context_fingerprint",e.contextFingerprint),dn(o,"source_cursor",e.sourceCursor);for(let i of e.rows)Vi(o,i);o.exec("COMMIT"),o.close(),o=void 0,await Ce.rm(t,{force:!0}),await Ce.rename(r,t)}catch(i){throw o?.close(),await Promise.allSettled([Ce.rm(r,{force:!0})]),i}}function un(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function Gi(e){let t=Ve(e.pmRoot),n;try{await Ce.access(t);let r=ft();if(!r)return!1;n=new r(t),n.exec("PRAGMA foreign_keys = ON");let o=un(n);if(o.version!==lt||o.context_fingerprint!==e.contextFingerprint||o.source_cursor!==e.expectedSourceCursor)return n.close(),!1;n.exec("BEGIN IMMEDIATE");let i=n.prepare("DELETE FROM items WHERE relative_path = ?"),s=n.prepare("SELECT id FROM items WHERE relative_path = ?"),a=n.prepare("DELETE FROM item_search WHERE id = ?");for(let c of e.deletedRelativePaths??[]){let u=s.get(c);i.run(c),u&&a.run(u.id)}return e.row&&Vi(n,e.row),dn(n,"source_cursor",e.sourceCursor),n.exec("COMMIT"),n.close(),!0}catch{try{n?.exec("ROLLBACK")}catch{}return n?.close(),!1}}function cn(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function Tu(e){let t=[],n=[];cn(t,n,"status",e.statuses,"IN"),cn(t,n,"status",e.excludeStatuses,"NOT IN"),cn(t,n,"type",e.types,"IN"),cn(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 Sy(e){let t=ft();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=Tu(n),i;try{i=new t(Ve(e.pmRoot),{readOnly:!0});let s=un(i);if(s.version!==lt||s.source_cursor!==e.expectedSourceCursor)return i.close(),null;let a=i.prepare(`SELECT COUNT(*) AS count FROM items${r}`).get(...o),c=[],u="";n.limit!==void 0?(u+=" LIMIT ?",c.push(Math.max(0,Math.floor(n.limit))),n.offset!==void 0&&(u+=" OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))))):n.offset!==void 0&&(u+=" LIMIT -1 OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))));let f=i.prepare(`SELECT metadata_json FROM items${r}
|
|
132
|
-
ORDER BY ${n.terminalStatuses&&n.terminalStatuses.length>0?`CASE WHEN status IN (${n.terminalStatuses.map(()=>"?").join(", ")}) THEN 1 ELSE 0 END ASC, `:""}priority ASC, updated_at DESC, id ASC${u}`).all(...o,...n.terminalStatuses??[],...c).map(_=>{let y=JSON.parse(String(_.metadata_json));if(!y.id)throw new TypeError("Indexed metadata row has no id");return y});return i.close(),{source_cursor:s.source_cursor,total:Number(a.count),items:f}}catch{return i?.close(),null}}async function Iy(e){let t=ft();if(!t||e.paths.length===0)return null;let n;try{n=new t(Ve(e.pmRoot),{readOnly:!0});let r=un(n);if(r.version!==lt||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let o=e.paths.map(()=>"?").join(", "),i=e.scope===void 0?"":" AND scope = ?",s=[...e.paths,...e.scope===void 0?[]:[e.scope]],a=`path IN (${o})${i}`,c=n.prepare(`SELECT COUNT(DISTINCT item_id) AS count
|
|
133
|
-
FROM item_linked_files
|
|
134
|
-
WHERE ${a}`).get(...s),u=Wi(e.limit,50),l=Wi(e.offset,0),f=n.prepare(`SELECT items.id, items.metadata_json
|
|
135
|
-
FROM items
|
|
136
|
-
WHERE EXISTS (
|
|
137
|
-
SELECT 1 FROM item_linked_files
|
|
138
|
-
WHERE item_linked_files.item_id = items.id AND ${a}
|
|
139
|
-
)
|
|
140
|
-
ORDER BY items.priority ASC, items.updated_at DESC, items.id ASC
|
|
141
|
-
LIMIT ? OFFSET ?`).all(...s,u,l),_=[];if(f.length>0){let y=f.map(k=>String(k.id)),g=n.prepare(`SELECT item_id, path, scope, note
|
|
142
|
-
FROM item_linked_files
|
|
143
|
-
WHERE item_id IN (${y.map(()=>"?").join(", ")})
|
|
144
|
-
AND ${a}
|
|
145
|
-
ORDER BY path ASC, scope ASC`).all(...y,...s),E=new Map(y.map(k=>[k,[]]));for(let k of g){let A=String(k.item_id),M=E.get(A);M.push({path:String(k.path),scope:String(k.scope),...k.note===null?{}:{note:String(k.note)}}),E.set(A,M)}for(let k of f){let A=JSON.parse(String(k.metadata_json));_.push({item:A,files:E.get(String(k.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:_}}catch{return n?.close(),null}}async function xy(e){let t=ft();if(!t)return null;let n;try{n=new t(Ve(e.pmRoot),{readOnly:!0});let r=un(n);if(r.version!==lt||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 ln(e){await Ce.rm(Ve(e),{force:!0})}import F from"node:fs/promises";import R from"node:path";import{createHash as Ju,randomUUID as cs}from"node:crypto";import ie from"node:fs/promises";import xr from"node:path";import{randomUUID as Cu}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 Ou(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 Yi(e){try{let t=await ie.readFile(e,"utf8");return await Y({path:e,scope:"project"}),Ou(t)}catch(t){return we(t)?{info:null,warnings:[]}:{info:null,warnings:["lock_info_read_failed"]}}}function Tr(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}async function Qi(e,t){await X({path:e,scope:"project",op:t})}function Au(e,t,n){return{id:e,pid:process.pid,owner:t,created_at:Ie(),ttl_seconds:n}}async function Ru(e,t,n,r){await ie.mkdir(xr.dirname(e),{recursive:!0});let o=await ie.open(e,"wx");try{await o.writeFile(`${JSON.stringify(Au(t,n,r),null,2)}
|
|
151
|
-
`,"utf8")}finally{await o.close()}await Qi(e,"lock:create")}async function Zi(e,t){try{return await ie.unlink(e),await Qi(e,t),!0}catch{return!1}}function es(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 Nu(e){return e?.owner?` (owner ${e.owner})`:""}var Du=25,Mu=200,Pu=250,Lu=3,ju=".stale-cleanup",ts="owner.json",Fu=1e4,$u=5*6e4;function Xi(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 zu(e){let t=process.env.PM_LOCK_WAIT_MS,n=Xi(t);if(n!==void 0)return n;let r=Xi(e);return r!==void 0?r:0}function Hu(e){let t=Math.max(1,Math.round(e*(.5+Math.random())));return new Promise(n=>setTimeout(n,t))}function ns(e,t,n){let r=n>0?` after waiting ${n}ms`:"";return new x(`Item ${e} is locked${Nu(t)}${r}`,I.CONFLICT,{code:"lock_conflict",recovery:{retry_after_ms:Pu}})}function Uu(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 Wu(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 Bu(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 rs(e){try{return Bu(await ie.readFile(xr.join(e,ts),"utf8"))}catch{return null}}function Vu(e){try{return process.kill(e,0),!0}catch(t){return!Tr(t,"ESRCH")}}async function Cr(e){try{return await ie.rm(e,{recursive:!0,force:!0}),!0}catch{return!1}}async function Ji(e,t){let n=await rs(e);n===null||n.token!==t||await Cr(e)}async function Ki(e){try{await ie.mkdir(e)}catch(n){return Tr(n,"EEXIST"),null}let t={pid:process.pid,token:Cu()};try{await ie.writeFile(xr.join(e,ts),`${JSON.stringify(t)}
|
|
152
|
-
`,"utf8")}catch{return await Cr(e),null}return t}async function qu(e){let t;try{let r=await ie.stat(e);if(t=Date.now()-r.mtimeMs,t<=Fu)return!1}catch(r){return we(r)}let n=await rs(e);return n!==null&&Vu(n.pid)&&t<=$u?!1:Cr(e)}async function Gu(e,t){let n=`${e}${ju}`,r=await Ki(n);if(r!==null)return async()=>Ji(n,r.token);if(!await qu(n))return null;let o=await Ki(n);return o===null?null:async()=>Ji(n,o.token)}async function Xu(e){let t=await Gu(e.lockPath,e.id);if(t===null)return{lockInfo:e.fallbackLockInfo,shouldRetryCreate:!1,staleRemovalCounted:!1};try{let n=await Yi(e.lockPath);if(n.info===null&&n.warnings.length===0)return{lockInfo:n,shouldRetryCreate:!0,staleRemovalCounted:!1};if(!es(n.info,e.ttlSeconds))return{lockInfo:n,shouldRetryCreate:!1,staleRemovalCounted:!1};if(Wu(e.id,n,e.force,e.forceRequiredForStaleLock),e.staleRemovals>=Lu)throw ns(e.id,n.info,Date.now()-e.startedAtMs);return{lockInfo:n,shouldRetryCreate:await Zi(e.lockPath,"lock:stale_remove"),staleRemovalCounted:!0}}finally{await t()}}async function se(e,t,n,r,o=!1,i=!0,s){let a=await te("lock_acquire",{pm_root:e,id:t,ttl_seconds:n,owner:r,force:o,force_required_for_stale_lock:i});if(a.handled){let y=Uu(a.result);if(y)return async()=>{await Promise.resolve(y()),await te("lock_release",{pm_root:e,id:t,owner:r})}}let c=uo(e,t),u=zu(s),l=Date.now(),f=0,_=Du;for(;;)try{return await Ru(c,t,r,n),async()=>{await Zi(c,"lock:release"),await te("lock_release",{pm_root:e,id:t,owner:r})}}catch(y){if(!Tr(y,"EEXIST"))throw new x(`Failed to acquire lock for ${t}: ${fo(y)}`,I.GENERIC_FAILURE);let g=await Yi(c);if(es(g.info,n)){let k=await Xu({lockPath:c,id:t,ttlSeconds:n,force:o,forceRequiredForStaleLock:i,staleRemovals:f,waitBudgetMs:u,startedAtMs:l,fallbackLockInfo:g});if(g=k.lockInfo,k.staleRemovalCounted&&(f+=1),k.shouldRetryCreate)continue}let E=Date.now()-l;if(u===0||E>=u)throw ns(t,g.info,u===0?0:E);await Hu(Math.min(_,u-E)),_=Math.min(_*2,Mu)}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8b8c705a-8d80-576f-8642-f6f686cdbed9")}catch{}})();var Q=8,ds=500,Ku="metadata-derived-index",Yu="metadata-cache.json",Qu="metadata-cache-bodies.json",Zu="metadata-cache-collections.json",el="metadata-cache-delta.json",tl="metadata-cache-manifest.json",os=4,nl=["comments","notes","learnings","files","tests","test_runs","docs"];function us(){return Ct(ct())}function mn(e){let t={...e},n={};for(let r of nl)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function ls(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function fs(e,t,n,r){let o=Ju("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 _n(e){return R.join(e,"runtime",Yu)}function pn(e){return R.join(e,"runtime",Qu)}function yn(e){return R.join(e,"runtime",Zu)}function Ar(e){return R.join(e,"runtime",el)}function Rr(e){return R.join(e,"runtime",tl)}function hn(e,t){let n=R.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var rl=24,q=new Map,gn=new WeakMap;function Nr(e){return gn.get(e)??e.source_cursor}function ol(e,t){let n=Nr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){gn.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 il(e,t){if(!e)return;let n=Nr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){gn.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 sl(e,t){if(!e)return;let n=Nr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){gn.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 al(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(ol(e,r),il(t,r),sl(n,r))}function Or(e,t){q.size>=rl&&!q.has(e)&&At(q),q.set(e,t)}async function me(e,t){let n;try{n=await F.stat(e)}catch{return q.delete(e),null}let r=q.get(e);if(r&&mt(r.signature,n.mtimeMs,n.ctimeMs,n.size))return q.delete(e),q.set(e,r),r.envelope;let o;try{o=t(await F.readFile(e,"utf8"))}catch{o=null}return Or(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function cl(e,t,n){let r=a=>{let c=JSON.parse(a);return c.version!==Q||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=_n(e),i=await me(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await me(hn(o,t),r);return s===null&&yt(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function dl(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==Q||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=pn(e),o=await me(r,n);return t&&o?.context_fingerprint!==t?await me(hn(r,t),n):o}async function ul(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==Q||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=yn(e),o=await me(r,n);return t&&o?.context_fingerprint!==t?await me(hn(r,t),n):o}async function Dr(e){let t=Ar(e),n=await me(t,r=>{let o=JSON.parse(r);return o.version!==Q||typeof o.base_source_cursor!="string"||typeof o.source_cursor!="string"||typeof o.changes!="object"||o.changes===null?null:o});if(n)return{envelope:n,invalid:!1};try{return await F.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function Mr(e){let t=Rr(e),n=await me(t,r=>{let o=JSON.parse(r);return o.version!==Q||typeof o.context_fingerprint!="string"||typeof o.source_cursor!="string"||!Number.isInteger(o.entry_count)||o.entry_count<0||typeof o.directory_signatures!="object"||o.directory_signatures===null?null:o});if(n)return n;try{await F.stat(t),await qe(e)}catch{}return null}async function _t(e,t){await F.mkdir(R.dirname(e),{recursive:!0}),await W(e,JSON.stringify(t));try{let r=await F.stat(e);Or(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{q.delete(e)}let n=R.dirname(R.dirname(e));if(e===_n(n)||e===pn(n)||e===yn(n)){let r=hn(e,t.context_fingerprint);await W(r,JSON.stringify(t));try{let c=await F.stat(r);Or(r,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{q.delete(r)}let o=R.dirname(e),i=R.extname(e),s=R.basename(e,i),a=(await F.readdir(o,{withFileTypes:!0}).catch(()=>[])).filter(c=>c.isFile()&&c.name!==R.basename(e)&&c.name.startsWith(`${s}.`)&&c.name.endsWith(i)).map(c=>R.join(o,c.name));if(a.length>os){let c=(await Promise.all(a.map(async u=>{try{return{path:u,mtime:(await F.stat(u)).mtimeMs}}catch{return null}}))).filter(u=>u!==null);for(let u of c.sort((l,f)=>l.mtime-f.mtime).slice(0,Math.max(0,c.length-os)))await F.rm(u.path,{force:!0}),q.delete(u.path)}}}function ll(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function ms(e,t,n){return e===void 0||ll(e,t,n)}function yt(e,t){e&&!e.includes(t)&&e.push(t)}function mt(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function fl(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&&!we(o)&&yt(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function ml(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 fn(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await ml(e,n))))}function pt(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&&mt(o,r.mtime_ms,r.ctime_ms,r.size)})}function _l(e){return Ot.some(t=>e.toLowerCase().endsWith(t))}function pl(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function yl(e,t,n){if(n)for(let r of await Y({path:e,scope:"project"}))yt(t,r)}function is(e,t,n,r){if(e)return t&&n?n.collections:r}async function hl(e,t,n){let r=await F.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=Rn(e);await yl(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],u=!n.forceSourceRead&&c!==void 0&&mt(c,o,i,s),l=n.previousBodies[t],f=!n.forceSourceRead&&l!==void 0&&mt(l,o,i,s),_=n.previousCollections[t],y=!n.forceSourceRead&&_!==void 0&&mt(_,o,i,s);if(!(!u||n.includeBody&&!f||n.includeCollections&&!y))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:c.metadata,heavyMetadata:is(n.includeCollections,y,_,void 0),bodyLength:c.body_length,body:n.includeBody?l.body:void 0};let E=await F.readFile(e,"utf8"),k=Bt(E,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:M=>yt(n.warnings,M)}),A=mn(k.metadata);return pl(n.state.misses,n.includeBody,n.includeCollections,u,f,y),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:u?c.metadata:A.light,heavyMetadata:is(n.includeCollections,y,_,A.heavy),bodyLength:u?c.body_length:k.body.length,body:n.includeBody?k.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?ls(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};ms(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function bl(e,t,n,r){try{let o=await hl(t,n,r);gl(t,n,r,o)}catch{yt(r.warnings,`item_list_item_read_failed:${e}/${R.basename(t)}`)}}function wl(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function El(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function kl(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function vl(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}function Sl(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!_l(s))continue;let a=R.join(o,s),c=R.relative(t.pmRoot,a);n.push(bl(r,a,c,t))}return n}async function Il(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!pt(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await _t(_n(e.pmRoot),{version:Q,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await _t(Rr(e.pmRoot),{version:Q,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,entry_count:Object.keys(e.state.newEntries).length,directory_signatures:e.directorySignatures});let n=[...e.state.documentsById.values()].map(({candidate:r})=>({relativePath:R.relative(e.pmRoot,r.item_path),metadata:mn(r.metadata).light,linkedFiles:r.metadata.files??[]}));n.length>=e.minimumIndexedItems?await qi({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:n}):await ln(e.pmRoot)}catch{}}async function xl(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 _t(pn(e.pmRoot),{version:Q,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function Tl(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 _t(yn(e.pmRoot),{version:Q,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function Pr(e,t,n={}){let r=await Mr(e);return n.required!==!0&&(r===null||r.entry_count<ds)?async()=>{}:se(e,Ku,30,t,!1,!1,3e3)}async function Ky(e,t){let n=await Mr(e);if(n===null)return null;let r=await Dr(e);if(r.invalid)return await qe(e),null;let o=r.envelope?.context_fingerprint===n.context_fingerprint&&r.envelope.base_source_cursor===n.source_cursor?r.envelope.source_cursor:n.source_cursor,i=r.envelope?.context_fingerprint===n.context_fingerprint&&r.envelope.base_source_cursor===n.source_cursor?r.envelope.directory_signatures:n.directory_signatures;return t&&!pt(i,await fn(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function ss(e,t){let n=R.relative(e,t);return n===""||n===".."||n.startsWith(`..${R.sep}`)||R.isAbsolute(n)?null:n}async function qe(e){await Promise.all([_n(e),pn(e),yn(e),Ar(e),Rr(e)].map(async t=>{await F.rm(t,{force:!0}),q.delete(t)})),await ln(e)}async function Cl(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await F.stat(e.mutation.itemPath),n=mn(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 Ol(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function Lr(e){let t=ss(e.pmRoot,e.itemPath),n=e.previousItemPath?ss(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await qe(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=fs(e.preferredFormat,e.typeToFolder,e.schema,us()),o=await Mr(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await Dr(e.pmRoot);if(s.invalid)return await qe(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=Ol(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 Cl({mutation:e});let u=cs();return await _t(Ar(e.pmRoot),{version:Q,context_fingerprint:r,base_source_cursor:i,source_cursor:u,directory_signatures:await fn(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await Gi({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:u,row:e.document===null?null:{relativePath:t,metadata:mn(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await ln(e.pmRoot),[]}catch{return await qe(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function Al(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function as(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function Rl(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function Nl(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=Rn(n);if(!o)continue;let i=e.includeCollections?ls(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);ms(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 Dl(e){return e.forceSourceScan||lr()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!pt(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||as(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||as(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&Rl(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function bn(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=us(),u=fs(t,n,o,c),l=await Dr(e);l.invalid&&await qe(e);let f=await cl(e,u,i.cacheDiagnostics),_=s?await dl(e,u):null,y=a?await ul(e,u):null;al(f,_,y,l.envelope);let g=wl(f,u),E=El(_,u),k=kl(y,u),A=[...new Set(Object.values(n))],M=await fn(e,A),U=Object.keys(g),z=Math.max(1,Math.floor(i.derivedIndexMinimumItems??ds));if(Dl({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:u,existingCache:f,existingBodyCache:_,existingCollectionsCache:y,directorySignatures:M,entryKeys:U,minimumIndexedItems:z,includeBody:s,includeCollections:a,previousBodies:E,previousCollections:k}))return Nl({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:g,previousBodies:E,previousCollections:k});let Z=await Promise.all(A.map(na=>fl(e,na,r))),ge=lr(),H=vl(),Tn={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,forceSourceRead:i.forceSourceScan===!0,dispatchReadHooks:ge,previousEntries:g,previousBodies:E,previousCollections:k,state:H};await Promise.all(Sl(Z,Tn));let wt=await fn(e,A),Et=pt(M,wt)?wt:{},Cn=H.misses.metadata||Object.keys(g).length!==Object.keys(H.newEntries).length||!pt(f?.directory_signatures,Et)||f===null?cs():f.source_cursor;return await Il({pmRoot:e,contextFingerprint:u,sourceCursor:Cn,existingCache:f,previousEntries:g,directorySignatures:Et,state:H,minimumIndexedItems:z}),s&&await xl({pmRoot:e,contextFingerprint:u,sourceCursor:Cn,existingBodyCache:_,previousBodies:E,state:H}),a&&await Tl({pmRoot:e,contextFingerprint:u,sourceCursor:Cn,existingCollectionsCache:y,previousCollections:k,state:H}),Al(H)}async function _s(e,t,n,r,o){return(await bn(e,t,n,r,o,{includeBody:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}async function ps(e,t,n,r,o){return(await bn(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}import Ml from"node:fs/promises";import Ge from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9027d972-ce29-5511-ba81-27e17d97446e")}catch{}})();var ht="_workspace";function jr(e){return Ge.join(e,"history",`${ht}.jsonl`)}function Pl(e,t){return{metadata:{id:ht,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 Fr(e,t=e.length){let n=nn();for(let r of e.slice(0,t))n=on(n,r.patch).document;return rn(n)}function ys(e){return"documents"in e.metadata&&typeof e.metadata.documents=="object"&&e.metadata.documents!==null&&!Array.isArray(e.metadata.documents)?e.metadata.documents:{}}function $r(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 Ll(e,t){let n=Ge.resolve(t),r=Ge.relative(e,n).replaceAll("\\","/");if(r.length===0||r===".."||r.startsWith("../")||Ge.isAbsolute(r))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:r,absolutePath:n}}async function ch(e){let t=await ze(jr(e),ht),n=sn(t);n.ok||$r(n.errors);let r=ys(t.length===0?Ae:Fr(t)),o=[],i=[],s=[],a=[];for(let c of Object.keys(r).sort()){let u;try{let l=Ll(e,Ge.resolve(e,c));if(u=await ce(l.absolutePath),u===null){s.push(c);continue}let f=JSON.parse(u);(D(f)===D(r[c])?o:i).push(c)}catch{a.push(c)}}return{ok:i.length===0&&s.length===0&&a.length===0,document_count:Object.keys(r).length,matching_documents:o,mismatched_documents:i,missing_documents:s,unreadable_documents:a}}async function hs(e){let t=jr(e.pmRoot),n=await ze(t,ht),r=sn(n);r.ok||$r(r.errors);let o=e.idempotencyKey===void 0?void 0:n.find(f=>f.op===`${e.op}:${e.idempotencyKey}`);if(o)return{entry:o,historyPath:t};let i=new Date().toISOString(),s=n.length===0?Ae:Fr(n),a=ys(s),c=a[e.documentPath];if(c!==void 0&&D(c)!==D(e.before))throw new x(`Workspace history state for "${e.documentPath}" changed outside the audited mutation path.`,I.CONFLICT,{code:"workspace_history_state_conflict",reason:"out_of_band_workspace_state",required:"Reconcile the singleton document with its matching _workspace history state before retrying the mutation.",why:"Accepting the write would make the append-only audit stream describe a state that was not actually observed.",examples:["pm history _workspace --verify","pm validate --check-history-drift --fix-hints"],nextSteps:["Review the version-control change that altered the singleton and preserve the intended document plus its matching workspace history.","Rerun the original mutation only after the on-disk singleton agrees with the latest audited workspace state."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify"}});let u=Pl({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),l=We({nowIso:i,author:e.author,op:e.idempotencyKey===void 0?e.op:`${e.op}:${e.idempotencyKey}`,before:s,after:u,message:e.message});return await Be(t,l),{entry:l,historyPath:t}}async function dh(e){let t=await se(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await hs(e)}finally{await t()}}async function uh(e){let t=await se(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=jr(e.pmRoot),r=await ze(n,ht),o=sn(r);o.ok||$r(o.errors);let i=r.length===0?Ae:Fr(r),s=We({nowIso:new Date().toISOString(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await Be(n,s),{entry:s,historyPath:n}}finally{await t()}}async function gs(e,t){if(t===e.raw)return!1;let n=t===null?null:JSON.parse(t),r=JSON.parse(e.raw);await W(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await hs({pmRoot:e.pmRoot,documentPath:Ge.relative(e.pmRoot,e.filePath).replaceAll("\\","/"),before:n,after:r,op:e.op,author:e.author,lockTtlSeconds:e.lockTtlSeconds,lockWaitMs:e.lockWaitMs,message:e.message})}catch(o){throw t===null?await Ml.rm(e.filePath,{force:!0}):await W(e.filePath,t),o}return!0}async function lh(e){let t=await se(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=await ce(e.filePath),r=await e.mutate(n);return{changed:await gs({...e,raw:r.raw},n),result:r.result}}finally{await t()}}async function bs(e){let t=await se(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await gs(e,await ce(e.filePath))}finally{await t()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8883f930-193e-5133-835a-f15b1b62f6be")}catch{}})();var j={ok:!1},m=e=>typeof e=="string"?{ok:!0,value:e}:j,T=e=>typeof e=="boolean"?{ok:!0,value:e}:j;function O(e={}){return t=>typeof t!="number"||!Number.isFinite(t)||e.int&&(!Number.isInteger(t)||!Number.isSafeInteger(t))||e.positive&&t<=0||typeof e.min=="number"&&t<e.min||typeof e.max=="number"&&t>e.max?j:{ok:!0,value:t}}function C(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:j}function p(e,t){return n=>{if(!Array.isArray(n)||t!==void 0&&n.length>t)return j;let r=[];for(let o of n){let i=e(o);if(!i.ok)return j;r.push(i.value)}return{ok:!0,value:r}}}function Hr(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 wn(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return j;let n={};for(let[r,o]of Object.entries(t)){let i=e(o);if(!i.ok)return j;n[r]=i.value}return{ok:!0,value:n}}}function S(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return j;let n=t,r={};for(let[o,i]of Object.entries(e)){let s=i(n[o]);if(!s.ok)return j;s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var jl=S({key:m,values:p(m),required:d(T),aliases:d(p(m)),description:d(m)}),Fl=S({command:C("create","update"),option:m,required:d(T),visible:d(T),enabled:d(T)}),$l=S({name:m,description:d(m),default_status:d(m),folder:d(m),aliases:d(p(m)),required_create_fields:d(p(m)),required_create_repeatables:d(p(m)),options:d(p(jl)),command_option_policies:d(p(Fl))}),zl=S({id:m,aliases:d(p(m)),roles:d(p(C(...Zr))),description:d(m),order:d(O())}),Hl=S({key:m,metadata_key:d(m),front_matter_key:d(m),cli_flag:d(m),cli_aliases:d(p(m)),description:d(m),type:d(C(...eo)),commands:d(p(C(...to))),repeatable:d(T),required:d(T),required_on_create:d(T),required_types:d(p(m)),allow_unset:d(T)}),Ul=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]}},Wl=S({type:m,allowed_transitions:p(Ul)}),Bl=d(S({version:d(O({int:!0})),files:d(S({types:d(m),statuses:d(m),fields:d(m),workflows:d(m)})),statuses:d(p(zl)),fields:d(p(Hl)),workflow:d(S({draft_status:d(m),open_status:d(m),in_progress_status:d(m),blocked_status:d(m),close_status:d(m),canceled_status:d(m)})),type_workflows:d(p(Wl)),unknown_field_policy:d(C(...no))})),Vl=d(S({preset:d(C(...ro)),ownership_enforcement:d(C("none","warn","strict")),create_mode_default:d(C("progressive","strict")),close_validation_default:d(C("off","warn","strict")),require_close_reason:d(T),parent_reference:d(C("warn","strict_error")),metadata_profile:d(C("core","strict","custom")),force_required_for_stale_lock:d(T),create_default_type:d(m),workflow_enforcement:d(C("off","warn","strict")),duplicate_detection_mode:d(C("off","advisory","strict")),duplicate_detection_threshold:d(O({min:0,max:1})),duplicate_detection_limit:d(O({int:!0,min:0,max:20}))})),ql=S({name:m,disabled:d(T),require_trusted:d(T),require_provenance:d(T),sandbox_profile:d(C("none","restricted","strict")),allowed_capabilities:d(p(m)),blocked_capabilities:d(p(m)),allowed_surfaces:d(p(m)),blocked_surfaces:d(p(m)),allowed_commands:d(p(m)),blocked_commands:d(p(m)),allowed_actions:d(p(m)),blocked_actions:d(p(m)),allowed_services:d(p(m)),blocked_services:d(p(m))}),zr=C("block","warn"),Gl=e=>typeof e=="string"?zr(e):S({global:d(zr),project:d(zr)})(e),Xl=d(S({mode:d(C("off","warn","enforce")),trust_mode:d(C("off","warn","enforce")),pm_max_version_exceeded_mode:d(Gl),require_provenance:d(T),trusted_extensions:d(p(m)),default_sandbox_profile:d(C("none","restricted","strict")),allowed_extensions:d(p(m)),blocked_extensions:d(p(m)),allowed_capabilities:d(p(m)),blocked_capabilities:d(p(m)),allowed_surfaces:d(p(m)),blocked_surfaces:d(p(m)),allowed_commands:d(p(m)),blocked_commands:d(p(m)),allowed_actions:d(p(m)),blocked_actions:d(p(m)),allowed_services:d(p(m)),blocked_services:d(p(m)),extension_overrides:d(p(ql))})),Oe=Hr(128),Jl=S({harness:Hr(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:d(p(Oe,64)),model_environment_keys:d(p(Oe,64)),session_environment_keys:d(p(Oe,64)),provenance_environment_keys:d(wn(p(Oe,64))),provenance_resolvers:d(wn(C("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:d(p(Oe,64)),argv_markers:d(p(Oe,64)),client_names:d(p(Oe,64))}),Kl=S({version:O({int:!0}),id_prefix:m,ids:d(S({token_length:d(O({int:!0,min:4,max:12}))})),author_default:m,agent_identity:d(S({probes_enabled:d(T),identity_vocabulary:d(S({version:O({int:!0,positive:!0}),aliases:wn(Hr(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:p(Jl)})),mutation_guard:d(S({require_attributed_author:d(T),secret_guard:d(C("off","advise","block")),stale_in_progress_hours:d(O({int:!0,positive:!0}))})),item_format:d(C("toon","json_markdown")),locks:S({ttl_seconds:O({int:!0}),wait_ms:d(O({int:!0,min:0}))}),checkpoints:d(S({retention_days:d(O({int:!0,positive:!0}))})),output:S({default_format:C("toon","json")}),ux:d(S({deprecation_hints:d(T)})),history:d(S({missing_stream:C("auto_create","strict_error"),compact_policy:d(S({enabled:d(T),max_entries:d(O({int:!0,positive:!0})),trigger:d(C("health_warn","auto"))}))})),validation:d(S({sprint_release_format:C("warn","strict_error"),parent_reference:d(C("warn","strict_error")),metadata_profile:d(C("core","strict","custom")),metadata_required_fields:d(p(m)),lifecycle_stale_blocker_reason_patterns:d(p(m)),lifecycle_closure_like_blocked_reason_patterns:d(p(m)),lifecycle_closure_like_resolution_patterns:d(p(m)),lifecycle_closure_like_actual_result_patterns:d(p(m)),estimate_defaults_by_type:d(wn(O({int:!0,positive:!0})))})),governance:Vl,workflow:d(S({definition_of_done:p(m)})),testing:d(S({record_results_to_items:T})),telemetry:d(S({enabled:T,first_run_prompt_completed:d(T),capture_level:d(C("minimal","redacted","max")),endpoint:d(m),installation_id:d(m),retention_days:d(O({int:!0,positive:!0}))})),agent_guidance:d(S({prompt_completed:d(T),declined:d(T),declined_at:d(m),template_version:d(O({int:!0,positive:!0})),last_checked_files:d(p(m))})),item_types:d(S({definitions:p($l)})),schema:Bl,context:d(S({default_depth:d(C("brief","standard","deep")),activity_limit:d(O({int:!0,positive:!0})),stale_threshold_days:d(O({int:!0,positive:!0})),sections:d(S({hierarchy:d(T),activity:d(T),progress:d(T),recently_created:d(T),unparented:d(T),blockers:d(T),files:d(T),workload:d(T),staleness:d(T),tests:d(T)}))})),extensions:S({enabled:p(m),disabled:p(m),policy:Xl}),search:S({score_threshold:O(),hybrid_semantic_weight:d(O()),max_results:O({int:!0}),embedding_model:m,embedding_corpus_max_characters:d(O()),embedding_batch_size:O({int:!0}),embedding_timeout_ms:d(O({int:!0})),scanner_max_batch_retries:O({int:!0}),provider:d(m),corpus_fields:d(p(m)),mutation_refresh_policy:d(C("cache_only","semantic_configured","semantic_auto")),query_expansion:d(S({enabled:d(T),provider:d(m)})),rerank:d(S({enabled:d(T),model:d(m),top_k:d(O({int:!0,positive:!0}))})),bm25:d(S({k1:d(O()),b:d(O())}))}),providers:S({openai:S({base_url:m,api_key:m,model:m}),ollama:S({base_url:m,model:m})}),vector_store:S({adapter:d(m),collection_name:d(m),qdrant:S({url:m,api_key:m}),lancedb:S({path:m})})});function ws(e){let t=Kl(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 Yl={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},Es=120;function Ur(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function vs(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var Ql=vs(Yl),ks=new WeakMap;function Zl(e){let t=ks.get(e);if(t)return t;let n=vs(e);return ks.set(e,n),n}function ph(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return Es;if(t){let o=Zl(t).get(n);if(Ur(o))return Math.floor(o)}let r=Ql.get(n);return Ur(r)?Math.floor(r):Es}function Wr(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||!Ur(r)||(t[o]=Math.floor(r))}return t}import{stat as ef}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 En=new Map;function Ss(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function tf(e){try{let t=await ef(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=Ss(e),n=await Promise.all(t.map(r=>tf(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function gt(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 Is(e){return En.get(e)}function kn(e,t){let n=Ss(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));En.set(e,{tracked_paths:n,signatures:r,value:t.value})}function pe(e){if(e){En.delete(e);return}En.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="67bf189e-e816-536d-9051-589a2e468423")}catch{}})();var nf="settings:write",As=Symbol("pm.settings.persist_source"),rf=128,of=new Set(["off","advisory","strict"]);function xs(e){return structuredClone(io[e])}function sf(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:b.governance.preset}function Ts(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 af(e){return e.preset==="custom"?Ts({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):Ts({preset:e.preset},e)}function cf(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),of.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 Sn(e){let t=e.governance??{},n=sf(t.preset),r=cf(t);if(n==="custom"){let s=xs("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=xs(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function Rs(){return structuredClone(b)}function Ns(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:b.search.mutation_refresh_policy}function Ds(e){return typeof e=="boolean"?e:b.search.query_expansion.enabled}function Ms(e){return typeof e!="string"?b.search.query_expansion.provider:e.trim()}function Ps(e){return typeof e=="boolean"?e:b.search.rerank.enabled}function Ls(e){return typeof e!="string"?b.search.rerank.model:e.trim()}function js(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:b.search.rerank.top_k}function Fs(e){if(typeof e!="string")return b.vector_store.collection_name;let n=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,rf);return n.length>0?n:b.vector_store.collection_name}function Br(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function df(e,t){let n=e.schema,r=Br(n?.statuses),o=Br(n?.fields),i=Br(n?.type_workflows);return{source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:Xe(e.item_types?.definitions),has_source_schema_statuses:r.present,source_schema_statuses:r.values,has_source_schema_fields:o.present,source_schema_fields:o.values,has_source_schema_type_workflows:i.present,source_schema_type_workflows:i.values,runtime_item_type_definitions:Xe(t.item_types?.definitions),runtime_schema_statuses:structuredClone(t.schema.statuses),runtime_schema_fields:structuredClone(t.schema.fields),runtime_schema_type_workflows:structuredClone(t.schema.type_workflows??[])}}function $s(e,t){Object.defineProperty(e,As,{value:t,writable:!0,configurable:!0,enumerable:!1})}function zs(e){let t=e[As];if(!(!t||typeof t!="object"))return t}function vn(e){let t=structuredClone(e.settings),n=zs(e.settings);return n&&$s(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function uf(e,t,n){let r=tt(t);return[n,nt(e,r.files.types,et.types),nt(e,r.files.statuses,et.statuses),nt(e,r.files.fields,et.fields),nt(e,r.files.workflows,et.workflows)]}async function lf(e,t,n){let r=await _e(t);kn(e,{tracked_paths:t,signatures:r,value:vn(n)})}async function ff(e,t,n){try{await lf(e,t,n)}catch{pe(e)}}function Cs(e,t){return e.find(n=>n.path===t)}function mf(e,t,n){for(let r of n){let o=Cs(e,r),i=Cs(t,r);if(!o||!i||!gt([o],[i]))return!1}return!0}async function Vr(e,t,n,r,o){try{let i=await _e(t);if(!mf(r,i,o)){pe(e);return}kn(e,{tracked_paths:t,signatures:i,value:vn(n)})}catch{pe(e)}}function _f(e,t){let n=tt(e.schema),r=Xe(e.item_types?.definitions);if(!t)return{item_type_definitions:r,schema_statuses:n.statuses,schema_fields:n.fields,schema_type_workflows:n.type_workflows};let o=n.type_workflows??[],i=Ne(r,t.runtime_item_type_definitions),s=Ne(n.statuses,t.runtime_schema_statuses),a=Ne(n.fields,t.runtime_schema_fields),c=Ne(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?Xe(t.source_item_type_definitions):[]:r,schema_statuses:s?t.has_source_schema_statuses?structuredClone(t.source_schema_statuses):[]:n.statuses,schema_fields:a?t.has_source_schema_fields?structuredClone(t.source_schema_fields):[]:n.fields,schema_type_workflows:c?t.has_source_schema_type_workflows?structuredClone(t.source_schema_type_workflows):void 0:n.type_workflows}}function bt(e){return{settings:Rs(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function pf(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function Gr(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function Hs(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:Gr(e?.last_checked_files??t.last_checked_files)}}function J(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function yf(e){return e==="off"||e==="warn"||e==="enforce"?e:b.extensions.policy.mode}function hf(e){return e==="off"||e==="warn"||e==="enforce"?e:b.extensions.policy.trust_mode}function Us(e){return e==="none"||e==="restricted"||e==="strict"?e:b.extensions.policy.default_sandbox_profile}function gf(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=Us(e.sandbox_profile));let r=J(e.allowed_capabilities),o=J(e.blocked_capabilities),i=J(e.allowed_surfaces),s=J(e.blocked_surfaces),a=J(e.allowed_commands),c=J(e.blocked_commands),u=J(e.allowed_actions),l=J(e.blocked_actions),f=J(e.allowed_services),_=J(e.blocked_services);return r.length>0&&(n.allowed_capabilities=r),o.length>0&&(n.blocked_capabilities=o),i.length>0&&(n.allowed_surfaces=i),s.length>0&&(n.blocked_surfaces=s),a.length>0&&(n.allowed_commands=a),c.length>0&&(n.blocked_commands=c),u.length>0&&(n.allowed_actions=u),l.length>0&&(n.blocked_actions=l),f.length>0&&(n.allowed_services=f),_.length>0&&(n.blocked_services=_),n}function bf(e){let t=new Map;for(let n of e??[]){let r=gf(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function qr(e){return e==="block"||e==="warn"?e:void 0}function wf(e){if(typeof e=="string")return qr(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=qr(e.global),n=qr(e.project);return t===void 0&&n===void 0?void 0:{...t!==void 0?{global:t}:{},...n!==void 0?{project:n}:{}}}}function B(e,t){return J(e?.[t]??b.extensions.policy[t])}function Ws(e){let t=wf(e?.pm_max_version_exceeded_mode);return{mode:yf(e?.mode),trust_mode:hf(e?.trust_mode),...t!==void 0?{pm_max_version_exceeded_mode:t}:{},require_provenance:e?.require_provenance===!0,trusted_extensions:B(e,"trusted_extensions"),default_sandbox_profile:Us(e?.default_sandbox_profile),allowed_extensions:B(e,"allowed_extensions"),blocked_extensions:B(e,"blocked_extensions"),allowed_capabilities:B(e,"allowed_capabilities"),blocked_capabilities:B(e,"blocked_capabilities"),allowed_surfaces:B(e,"allowed_surfaces"),blocked_surfaces:B(e,"blocked_surfaces"),allowed_commands:B(e,"allowed_commands"),blocked_commands:B(e,"blocked_commands"),allowed_actions:B(e,"allowed_actions"),blocked_actions:B(e,"blocked_actions"),allowed_services:B(e,"allowed_services"),blocked_services:B(e,"blocked_services"),extension_overrides:bf(e?.extension_overrides??b.extensions.policy.extension_overrides)}}function Bs(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 N(e,t){return e===void 0?t:e}function V(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function Xr(e){return Array.isArray(e)?e:[]}function Ef(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:Bs(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:Wr(e.validation?.estimate_defaults_by_type)}}function kf(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 vf(e,t){return{...t.search,...e.search,mutation_refresh_policy:Ns(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:Ds(e.search?.query_expansion?.enabled),provider:Ms(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:Ps(e.search?.rerank?.enabled),model:Ls(e.search?.rerank?.model),top_k:js(e.search?.rerank?.top_k)}}}function Sf(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:Fs(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function If(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function xf(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 Xe(e){let t=(e??[]).map(r=>ao(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 Vs(e){let t=Rs(),n=Sn({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:If(e,t),locks:{...t.locks,...e.locks},ids:{...t.ids,...e.ids},agent_identity:structuredClone(e.agent_identity??t.agent_identity),mutation_guard:{...t.mutation_guard,...e.mutation_guard},checkpoints:{...t.checkpoints,...e.checkpoints},output:{...t.output,...e.output},ux:{...t.ux,...e.ux},history:{...t.history,...e.history,compact_policy:{...t.history.compact_policy,...e.history?.compact_policy}},validation:Ef(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:kf(e,t),agent_guidance:Hs(e.agent_guidance??t.agent_guidance),item_types:{definitions:Xe(e.item_types?.definitions)},schema:tt(e.schema??t.schema),context:xf(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:Ws(e.extensions.policy??t.extensions.policy)},search:vf(e,t),providers:Tf(e,t),vector_store:Sf(e,t)}}function Cf(e){e.agent_identity=v(e.agent_identity,["probes_enabled","identity_vocabulary","harness_signals"]);let t=e.agent_identity;Object.hasOwn(t,"identity_vocabulary")&&(t.identity_vocabulary=v(V(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=Xr(e.agent_identity.harness_signals).map(n=>v(V(n),["harness","environment_keys","model_environment_keys","session_environment_keys","provenance_environment_keys","provenance_resolvers","provenance_unavailable_dimensions","argv_markers","client_names"])),e.locks=v(e.locks,["ttl_seconds","wait_ms"]),e.ids=v(e.ids,["token_length"]),e.mutation_guard=v(e.mutation_guard,["require_attributed_author","secret_guard","stale_in_progress_hours"]),e.checkpoints=v(e.checkpoints,["retention_days"]),e.output=v(e.output,["default_format"]),e.ux=v(e.ux,["deprecation_hints"]),e.history=v(e.history,["missing_stream","compact_policy"]),e.validation=v(e.validation,["sprint_release_format","parent_reference","metadata_profile","metadata_required_fields","lifecycle_stale_blocker_reason_patterns","lifecycle_closure_like_blocked_reason_patterns","lifecycle_closure_like_resolution_patterns","lifecycle_closure_like_actual_result_patterns","estimate_defaults_by_type"]),e.governance=v(e.governance,["preset","ownership_enforcement","create_mode_default","close_validation_default","require_close_reason","parent_reference","metadata_profile","force_required_for_stale_lock","create_default_type","workflow_enforcement","duplicate_detection_mode","duplicate_detection_threshold","duplicate_detection_limit"]),e.workflow=v(e.workflow,["definition_of_done"]),e.testing=v(e.testing,["record_results_to_items"]),e.telemetry=v(e.telemetry,["enabled","first_run_prompt_completed","capture_level","endpoint","installation_id","retention_days"]),e.agent_guidance=v(e.agent_guidance,["prompt_completed","declined","declined_at","template_version","last_checked_files"]),e.item_types=v(e.item_types,["definitions"]),e.schema=v(e.schema,["version","files","statuses","fields","workflow","type_workflows","unknown_field_policy"]),e.schema.files=v(V(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=v(V(e.schema.workflow),["draft_status","open_status","in_progress_status","blocked_status","close_status","canceled_status"]),e.context=v(e.context,["default_depth","activity_limit","stale_threshold_days","sections"]),e.context.sections=v(V(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=v(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=v(V(e.extensions.policy),["mode","trust_mode","pm_max_version_exceeded_mode","require_provenance","trusted_extensions","default_sandbox_profile","allowed_extensions","blocked_extensions","allowed_capabilities","blocked_capabilities","allowed_surfaces","blocked_surfaces","allowed_commands","blocked_commands","allowed_actions","blocked_actions","allowed_services","blocked_services","extension_overrides"]),e.extensions.policy.extension_overrides=Xr(e.extensions.policy.extension_overrides).map(n=>v(V(n),["name","disabled","require_trusted","require_provenance","sandbox_profile","allowed_capabilities","blocked_capabilities","allowed_surfaces","blocked_surfaces","allowed_commands","blocked_commands","allowed_actions","blocked_actions","allowed_services","blocked_services"])),e.search=v(e.search,["score_threshold","hybrid_semantic_weight","max_results","embedding_model","embedding_corpus_max_characters","embedding_batch_size","embedding_timeout_ms","scanner_max_batch_retries","provider","mutation_refresh_policy","query_expansion","rerank"]),e.search.query_expansion=v(V(e.search.query_expansion),["enabled","provider"]),e.search.rerank=v(V(e.search.rerank),["enabled","model","top_k"]),e.providers=v(e.providers,["openai","ollama"]),e.providers.openai=v(V(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=v(V(e.providers.ollama),["base_url","model"]),e.vector_store=v(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=v(V(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=v(V(e.vector_store.lancedb),["path"])}function Of(e){return{...e,locks:N(e.locks,b.locks),ids:N(e.ids,b.ids),agent_identity:N(e.agent_identity,b.agent_identity),mutation_guard:N(e.mutation_guard,b.mutation_guard),checkpoints:N(e.checkpoints,b.checkpoints),output:N(e.output,b.output),ux:N(e.ux,b.ux),history:N(e.history,b.history),validation:N(e.validation,b.validation),workflow:N(e.workflow,b.workflow),testing:N(e.testing,b.testing),telemetry:N(e.telemetry,b.telemetry),agent_guidance:N(e.agent_guidance,b.agent_guidance),item_types:N(e.item_types,b.item_types),schema:N(e.schema,b.schema),context:N(e.context,b.context),extensions:N(e.extensions,b.extensions),search:N(e.search,b.search),providers:N(e.providers,b.providers),vector_store:N(e.vector_store,b.vector_store)}}function Af(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:Bs(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:Wr(e.validation?.estimate_defaults_by_type)}}function Rf(e){return{...b.search,...e.search,mutation_refresh_policy:Ns(e.search?.mutation_refresh_policy),query_expansion:{...b.search.query_expansion,...e.search?.query_expansion,enabled:Ds(e.search?.query_expansion?.enabled),provider:Ms(e.search?.query_expansion?.provider)},rerank:{...b.search.rerank,...e.search?.rerank,enabled:Ps(e.search?.rerank?.enabled),model:Ls(e.search?.rerank?.model),top_k:js(e.search?.rerank?.top_k)}}}function Nf(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 Df(e){return{...e.vector_store,adapter:e.vector_store?.adapter??b.vector_store.adapter,collection_name:Fs(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function Mf(e,t,n,r){return{...e,item_format:"toon",validation:Af(e,t),governance:t,agent_guidance:Hs(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:Rf(e),context:Nf(e),extensions:{enabled:Gr(e.extensions?.enabled),disabled:Gr(e.extensions?.disabled),policy:Ws(e.extensions?.policy)},vector_store:Df(e)}}function qs(e,t,n){let r=new Set([...Object.keys(t),...Object.keys(n)]);for(let o of r){let i=t[o],s=n[o];if(!Ne(i,s)){if(s===void 0){delete e[o];continue}if(typeof i=="object"&&i!==null&&!Array.isArray(i)&&typeof s=="object"&&s!==null&&!Array.isArray(s)){let a=e[o],c=typeof a=="object"&&a!==null&&!Array.isArray(a)?a:{};qs(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var Gs=["version","id_prefix","ids","author_default","agent_identity","mutation_guard","item_format","locks","checkpoints","output","ux","history","validation","governance","workflow","testing","telemetry","agent_guidance","item_types","schema","context","extensions","search","providers","vector_store"];function Os(e,t){let n=Of(e),r=Sn(n),o=tt(n.schema),i=_f(n,t),s=Mf(n,r,o,i),a=v({...s,governance:af(r)},Gs);return Cf(a),a}function Pf(e,t={}){let n=Os(e,t.persist_source);if(t.persist_source){let r=Vs(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=Os(r,t.persist_source),i=structuredClone(t.persist_source.source_settings);return qs(i,o,n),`${JSON.stringify(v(i,Gs),null,2)}
|
|
153
|
-
`}return`${JSON.stringify(n,null,2)}
|
|
154
|
-
`}async function Xs(e){let t=Qe(e),n=[t];await Y({path:t,scope:"project"});let r=Is(e);if(r){let u=await _e(r.tracked_paths);if(gt(u,r.signatures))return vn(r.value)}let o=await _e([t]),i;try{i=await ce(t)}catch{return bt("settings_read_fs_error")}if(i===null){let u=bt();return await Vr(e,[t],u,o,[t]),u}let s=await _e([t]);if(!gt(o,s))return pe(e),Xs(e);let a;try{a=JSON.parse(i)}catch{let u=bt("settings_read_invalid_json");return await Vr(e,[t],u,s,[t]),u}let c=ws(a);if(!c.success){let u=bt("settings_read_invalid_schema");return await Vr(e,[t],u,s,[t]),u}try{let u=Vs(c.data),l=uf(e,u.schema,t);n=l;let f=await _e(l),_=await Eo(e,u.schema),y=await ko(e,u.schema),g=await _e(l),E={...u,item_types:{definitions:Xe([...u.item_types.definitions,...Xr(y.type_definitions_from_file)])},schema:y.schema};$s(E,df(c.data,E));let k={settings:E,metadata:{has_explicit_item_format:pf(a)},warnings:[...c.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],..._.created_paths.map(A=>`runtime_schema_bootstrap_created:${A}`),...y.warnings]};return _.created_paths.length===0?gt(f,g)?kn(e,{tracked_paths:l,signatures:g,value:vn(k)}):pe(e):pe(e),k}catch{let u=bt("settings_read_merge_failed");return await ff(e,n,u),u}}async function Rh(e){return(await Xs(e)).settings}async function Nh(e,t,n=nf){let r=Qe(e),o=Pf(t,{persist_source:zs(t)});try{await bs({pmRoot:e,filePath:r,raw:o,op:n,author:zo(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),await X({path:r,scope:"project",op:n})}finally{pe(e)}}import Lf from"node:fs/promises";import jf 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 Ff(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 zf(e,t){return await so(jf.dirname(e)),await(await Lf.open(e,"a")).close(),X({path:e,scope:"project",op:`${t}:history:auto_create`})}async function Jr(e){return Hf({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function Hf(e){let t=Ff(e.itemIds),n=[],r=[];for(let o of t){let i=Ze(e.pmRoot,o);if(!await Re(i)){if(e.settings.history.missing_stream==="strict_error")throw $f(o,e.commandLabel);r.push(...await zf(i,e.commandLabel)),r.push(`history_stream_auto_created:${o}`),n.push(o)}}return{auto_created_ids:n,warnings:r}}import Yr from"node:fs/promises";import In 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]="8b0efe32-43f5-51ed-b1d5-5c26a3ae5bf0")}catch{}})();function he(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function Qr(e){let t=["--pm-path",e,"init","--defaults","--agent-guidance","skip"];return{suggested_retry:`pm ${t.map(n=>`'${n.replaceAll("'",`'"'"'`)}'`).join(" ")}`,suggested_retry_args:t}}function xn(e){return new x(`Tracker root is not a directory at ${e}.`,I.USAGE,{code:"tracker_root_not_directory",reason:"not_a_directory",resolved_path:e,nextSteps:["Pass a tracker directory, usually <workspace>/.agents/pm, rather than a file path."]})}function Kr(e){return new x(`Tracker root is not readable at ${e}.`,I.GENERIC_FAILURE,{code:"tracker_root_unreadable",reason:"unreadable",resolved_path:e,nextSteps:["Grant read and directory-search permission to the tracker root, then retry."]})}async function Uf(e){let t=In.resolve(e),n=In.parse(t).root,r=In.dirname(t);for(;r!==n;){let o;try{o=await Yr.stat(r)}catch(i){if(he(i,"ENOTDIR"))throw xn(e);if(!he(i,"ENOENT"))throw i;r=In.dirname(r);continue}if(!o.isDirectory())throw xn(e);return}}async function Je(e){let t;try{t=await Yr.stat(e)}catch(n){throw he(n,"ENOENT")?(await Uf(e),new x(`Tracker is not initialized at ${e}. Tracker root does not exist. Run pm init first.`,I.NOT_FOUND,{code:"tracker_root_missing",reason:"missing",resolved_path:e,nextSteps:["Confirm the tracker root path or initialize it with the emitted retry."],recovery:Qr(e)})):he(n,"ENOTDIR")?xn(e):he(n,"EACCES")||he(n,"EPERM")?Kr(e):n}if(!t.isDirectory())throw xn(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw Kr(e);try{await(await Yr.opendir(e)).close()}catch(n){throw he(n,"EACCES")||he(n,"EPERM")?Kr(e):n}}async function Wf(e){if(await Je(e),!await Re(Qe(e)))throw new x(`Tracker is not initialized at ${e}. Run pm init first.`,I.NOT_FOUND,{code:"tracker_not_initialized",reason:"settings_missing",resolved_path:e,nextSteps:["Initialize the selected tracker root with the emitted retry."],recovery:Qr(e)})}import Ke from"node:fs/promises";import Bf 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]="f49b5141-f348-5954-a87e-8fd957593113")}catch{}})();async function Vf(e){try{return await Ke.access(e),!0}catch{return!1}}function qf(e,t){e&&(e.includes(t)||e.push(t))}function Js(e){return e??Ct(ct())}function Gf(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}async function Ks(e,t,n="pm-",r,o=be){let i=Ir(t,n),s=Sr(t),a=i===s?[i]:[i,s],c=Object.entries(o),u=Gf(r);for(let l of a)for(let[f]of c)for(let _ of u){let y=An(e,f,l,_,o);if(await Vf(y))return{id:l,type:f,itemPath:y,item_format:_}}return null}async function Ys(e,t={}){let n=await Ke.readFile(e.itemPath,"utf8");await Y({path:e.itemPath,scope:"project"});let r=Bt(n,{format:e.item_format,schema:t.schema,extensionFieldNames:Js(t.extensionFieldNames),onWarning:o=>qf(t.warnings,o)});return{raw:n,document:r}}async function Xf(e,t,n=be,r,o){return await Je(e),(await _s(e,t,n,r,o)).map(s=>s.metadata)}async function pg(e,t,n=be,r,o){return await Je(e),(await ps(e,t,n,r,o)).map(s=>s.metadata)}async function yg(e,t,n=be,r,o,i={}){return await Je(e),(await bn(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan})).map(a=>({...a.metadata,body:a.body}))}function Qs(e){return{async get(t){let n=await Ks(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await Ys(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>Xf(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function Jf(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await Ke.readdir(Bf.join(e,o));for(let s of i)for(let a of Ot)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function Kf(e,t,n,r){let o=Ir(t,n),i=await Jf(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(c=>({id:c,distance:kt(c,o,s)})).filter(c=>c.distance!==null).sort((c,u)=>c.distance-u.distance).slice(0,3).map(c=>c.id)}async function Yf(e,t,n,r){let o=await Kf(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 Qf(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 Zs(e){let t=e.typeToFolder??co(e.settings,ct()).type_to_folder,n=await Ks(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await Yf(e.pmRoot,e.id,e.settings.id_prefix,t);let r=await se(e.pmRoot,n.id,e.settings.locks.ttl_seconds,e.author,!!e.force,e.settings.governance.force_required_for_stale_lock,e.settings.locks.wait_ms);try{let o=[],{raw:i,document:s}=await Ys(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||a,u=$o(e.author),l=Sn(e.settings);if(a&&c!==u&&!e.force&&!Qf(e.op,e.bypassAssigneeConflict)){if(l.ownership_enforcement==="strict")throw new x(`Item ${n.id} is assigned to ${a}. Use --force to override.`,I.CONFLICT);l.ownership_enforcement==="warn"&&o.push(`ownership_warning:assignee_conflict:${n.id}:${a}`)}return{typeToFolder:t,located:n,originalRaw:i,document:s,warnings:o,releaseLock:r}}catch(o){throw await r(),o}}function Zf(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 em(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await W(e.originalItemPath,e.originalRaw),await Ke.rm(e.effectiveTargetItemPath,{force:!0});return}await W(e.originalItemPath,e.originalRaw)}}async function ea(e){let t=await Zs({pmRoot:e.pmRoot,settings:e.settings,id:e.id,op:e.op,author:e.author,force:e.force,bypassAssigneeConflict:e.bypassAssigneeConflict,extensionFieldNames:e.extensionFieldNames,typeToFolder:e.typeToFolder}),{typeToFolder:n,located:r,originalRaw:o,document:i,warnings:s,releaseLock:a}=t;try{let c=G(i,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),u=G(structuredClone(i),{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),l=await e.mutate(u);if(e.skipNoop===!0&&l.changedFields.length===0)return{item:c.metadata,body:c.body,changedFields:[],warnings:[...s,...l.warnings??[]]};let f=e.resolveHistoryContext?.();u.metadata.updated_at=Ie();let _=G(u,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames});await ur({pm_root:e.pmRoot,operation:e.op,before:c,after:_,changed_fields:l.changedFields,sdk:Qs({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let y=await Jr({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),g="toon",E=ci(_,{format:g,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),k=An(e.pmRoot,_.metadata.type,r.id,g,n),A=Ze(e.pmRoot,r.id),M=await te("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:k,history_path:A,item_format:g,before:c,after:_,contents:E}),{effectiveTargetItemPath:U,effectiveSerializedAfter:z,skipItemWrite:Z}=Zf(M,k,E),ge=await Pr(e.pmRoot,e.author),H=[];try{Z||await W(U,z),!Z&&U!==r.itemPath&&await Ke.rm(r.itemPath);let wt=We({nowIso:_.metadata.updated_at,author:e.author,op:e.op,before:c,after:_,message:e.message,context:f});try{await Be(A,wt)}catch(Et){throw await em({skipItemWrite:Z,effectiveTargetItemPath:U,originalItemPath:r.itemPath,originalRaw:o}),Et}Z||(H=await Lr({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:U,previousItemPath:r.itemPath,document:_}))}finally{await ge()}let Tn=[...await X({path:U,scope:"project",op:e.op,item_id:_.metadata.id,item_type:_.metadata.type,before:c,after:_,changed_fields:l.changedFields}),...await X({path:A,scope:"project",op:`${e.op}:history`,item_id:_.metadata.id,item_type:_.metadata.type,before:c,after:_,changed_fields:l.changedFields})];return dr({id:_.metadata.id,op:e.op,item_type:_.metadata.type,previous_status:c.metadata.status,status:_.metadata.status,previous:Vt(c.metadata,l.changedFields),current:Vt(_.metadata,l.changedFields),changed_fields:l.changedFields}),{item:_.metadata,body:_.body,changedFields:l.changedFields,warnings:[...s,...l.warnings??[],...y.warnings,...M.warnings,...H,...Tn]}}finally{await a()}}async function hg(e){return ea(e)}async function gg(e){return ea(e)}async function bg(e){let t=await Zs({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=Js(void 0),c=G(o,{schema:e.settings.schema,extensionFieldNames:a});await ur({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:Qs({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let u=await Jr({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),l=Ie(),f=Ae,_=We({nowIso:l,author:e.author,op:"delete",before:c,after:f,message:e.message}),y=Ze(e.pmRoot,n.id),g=await te("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:y,before:c}),E=n.itemPath,k=!1;if(g.handled&&typeof g.result=="object"&&g.result!==null){let z=g.result;typeof z.item_path=="string"&&z.item_path.trim().length>0&&(E=z.item_path),z.skip_delete===!0&&(k=!0)}if(e.dryRun===!0)return{item:c.metadata,changedFields:["deleted"],targetPath:E,warnings:[...i,...u.warnings,...g.warnings]};let A=await Pr(e.pmRoot,e.author),M=[];try{k||await Ke.rm(E);try{await Be(y,_)}catch(z){throw k||await W(E,r),z}k||(M=await Lr({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:E,document:null}))}finally{await A()}let U=[...await X({path:E,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:f,changed_fields:["deleted"]}),...await X({path:y,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:f,changed_fields:["deleted"]})];return dr({id:c.metadata.id,op:"delete",item_type:c.metadata.type,previous_status:c.metadata.status,previous:Vt(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...i,...u.warnings,...g.warnings,...M,...U]}}finally{await s()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="745b9c3b-538c-558f-b018-b406ca4318f0")}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]="a9b23a46-0bba-5174-8793-dfc37016d1fb")}catch{}})();function tm(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:kt(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 ta(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function xg(e){let t=e.command_path.trim().replaceAll(/\s+/gu," "),n=e.token.trim(),r=n.length===0?"<empty>":n,o=[...new Set(e.allowed.map(_=>_.trim()))].filter(Boolean).sort((_,y)=>_.localeCompare(y));if(t.length===0||r.length===0||o.length===0)throw new TypeError("Unknown-subcommand contracts require a path, token, and allowed set");let i=t.split(" "),s=e.trailing_args??[],a=e.display_name??`pm ${t}`,c=e.token_kind??"subcommand",u=e.retry_command?void 0:tm(r,o),l=ta([...i,r,...s]),f=e.retry_command??(u?ta([...i,u,...s]):void 0);return new x(`Unknown ${a} ${c} "${r}". Allowed: ${o.join(", ")}${e.message_suffix??""}`,e.exit_code??I.USAGE,{code:"unknown_subcommand",reason:"unknown_positional_token",examples:[...f?[f]:[],...e.examples??[],`pm ${t} --help`],nextSteps:f?[`Retry with the suggested command: ${f}`]:["Choose one value from recovery.allowed_values."],recovery:{attempted_command:l,allowed_values:o,suggested_retry:f,fallback_candidates:e.fallback_candidates}})}export{I_ as a,gd as b,F_ as c,Td as d,$_ as e,z_ as f,H_ as g,U_ as h,W_ as i,B_ as j,V_ as k,ct as l,dr as m,Vt as n,X as o,ur as p,Y as q,lr as r,q_ as s,G_ as t,te as u,Xd as v,ke as w,Dn as x,om as y,im as z,Nt as A,Fn as B,fm as C,mm as D,_m as E,pm as F,ym as G,hm as H,Vn as I,la as J,xm as K,Tm as L,Cm as M,Jn as N,Lo as O,Om as P,Am as Q,Rm as R,Ta as S,$o as T,zo as U,Ie as V,qo as W,$ as X,zm as Y,Hm as Z,se as _,Yo as $,rt as aa,t_ as ba,n_ as ca,Pe as da,Go as ea,Wm as fa,Xo as ga,Xa as ha,Bm as ia,$t as ja,Ka as ka,Xm as la,Ht as ma,Wt as na,Bt as oa,ci as pa,G as qa,ze as ra,lp as sa,fp as ta,mp as ua,Mp as va,Pp as wa,nu as xa,dt as ya,fe as za,Zp as Aa,kr as Ba,ey as Ca,We as Da,Be as Ea,uu as Fa,nn as Ga,tn as Ha,rn as Ia,cy as Ja,dy as Ka,ji as La,on as Ma,Fi as Na,sn as Oa,yu as Pa,uy as Qa,ly as Ra,ht as Sa,jr as Ta,ch as Ua,dh as Va,uh as Wa,lh as Xa,bs as Ya,ph as Za,Sn as _a,Xs as $a,Rh as ab,Nh as bb,Jr as cb,Hf as db,Hi as eb,Sr as fb,Ir as gb,gy as hb,Sy as ib,Iy as jb,xy as kb,ds as lb,nl as mb,Pr as nb,Ky as ob,Lr as pb,bn as qb,Je as rb,Wf as sb,Ks as tb,Ys as ub,Xf as vb,pg as wb,yg as xb,Qs as yb,Yf as zb,hg as Ab,gg as Bb,bg as Cb,xg as Db};
|
|
155
|
-
//# sourceMappingURL=chunk-NJ63LOP6.js.map
|