@unbrained/pm-cli 2026.9.11 → 2026.9.13
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 +42 -0
- package/dist/cli/command-namespaces.js +1 -1
- package/dist/cli/commander-usage.js +2 -2
- package/dist/cli/error-guidance.d.ts +10 -0
- package/dist/cli/error-guidance.js +1 -1
- package/dist/cli/main.js +2 -2
- package/dist/cli/option-values.d.ts +3 -0
- package/dist/cli/option-values.js +2 -0
- package/dist/cli/register-mutation.d.ts +5 -0
- package/dist/cli/register-mutation.js +2 -16
- package/dist/cli/schema/registration.d.ts +4 -0
- package/dist/cli/schema/registration.js +16 -0
- package/dist/cli-bundle/bundle-manifest.json +160 -152
- package/dist/cli-bundle/chunks/{chunk-TDKWJQD7.js → chunk-3DWX3CKN.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-6KHYW3FH.js +235 -0
- package/dist/cli-bundle/chunks/chunk-AKTBOX6U.js +2 -0
- package/dist/cli-bundle/chunks/chunk-GBK5MV6N.js +29 -0
- package/dist/cli-bundle/chunks/{chunk-JMQKJ7CJ.js → chunk-GQQR6JAL.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-QER6OSOP.js → chunk-KM4XVZR7.js} +53 -53
- package/dist/cli-bundle/chunks/{chunk-VFKBNGF6.js → chunk-LA44JECQ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-DAWH7TGV.js → chunk-XEZOGC3P.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-TFVKBJJ4.js → chunk-XM7RWQLM.js} +103 -103
- package/dist/cli-bundle/chunks/{chunk-RJQSCK74.js → chunk-YDSV4QIQ.js} +6 -6
- package/dist/cli-bundle/chunks/chunk-YQTJACN5.js +20 -0
- package/dist/cli-bundle/chunks/{chunk-BN5QVWNY.js → chunk-ZZI7IHMM.js} +2 -2
- package/dist/cli-bundle/chunks/{register-list-query-U6MY437C.js → register-list-query-WMJTBWNW.js} +2 -2
- package/dist/cli-bundle/chunks/register-mutation-EXGOXP3D.js +20 -0
- package/dist/cli-bundle/chunks/{register-operations-EHWIZW3X.js → register-operations-2H4CDRGU.js} +2 -2
- package/dist/cli-bundle/chunks/{register-setup-BZYL3HBL.js → register-setup-NYBWGPOS.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-TWE3GPQM.js → chunk-7JR6M2JR.js} +17 -17
- package/dist/cli-bundle/focused-chunks/{chunk-GKUF7TM5.js → chunk-B6JAANOH.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-UJCQXUD2.js → chunk-DSJYL4VP.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-VS6MR2HT.js → chunk-F66QJWI4.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-MOT32PR2.js → chunk-FBCLVOBE.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-HM6JS6Q3.js → chunk-FPNI4U2B.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-HFAW3FJQ.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-KP3N6PVZ.js +164 -0
- package/dist/cli-bundle/focused-chunks/chunk-LQ67C7ZO.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-TGMSSI3Z.js → chunk-OENAWWP4.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-7WISPJRZ.js → chunk-SDQCJF4H.js} +53 -53
- package/dist/cli-bundle/focused-chunks/chunk-TUHRUFID.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-6JF66HAG.js → chunk-V7PSTKHD.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-FJDEFA64.js → chunk-XCCM7P7V.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-YUXBHIUV.js +20 -0
- package/dist/cli-bundle/focused-chunks/{chunk-BEQAW7OT.js → chunk-ZAMG7HBB.js} +4 -4
- package/dist/cli-bundle/focused-chunks/chunk-ZF5PXK6A.js +2 -0
- package/dist/cli-bundle/main.js +20 -20
- 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 +34 -34
- 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 +42 -42
- 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 +8 -8
- package/dist/core/history/history.js +1 -1
- package/dist/core/history/operation-contract.d.ts +30 -0
- package/dist/core/history/operation-contract.js +2 -0
- package/dist/core/history/tombstone.d.ts +3 -0
- package/dist/core/history/tombstone.js +2 -0
- package/dist/core/item/id.d.ts +8 -7
- package/dist/core/item/id.js +1 -1
- package/dist/core/output/mutation-projection.d.ts +1 -0
- package/dist/core/output/mutation-projection.js +1 -1
- package/dist/core/sentry/instrument.js +1 -1
- package/dist/core/shared/command-line.d.ts +10 -0
- package/dist/core/shared/command-line.js +2 -0
- package/dist/core/shared/errors.d.ts +13 -0
- package/dist/core/shared/errors.js +1 -1
- package/dist/core/store/item-store.d.ts +5 -1
- package/dist/core/store/item-store.js +1 -1
- package/dist/core/telemetry/consent.d.ts +1 -1
- package/dist/core/telemetry/consent.js +2 -2
- package/dist/core/telemetry/policy.d.ts +10 -0
- package/dist/core/telemetry/policy.js +2 -0
- package/dist/core/telemetry/runtime.d.ts +11 -9
- package/dist/core/telemetry/runtime.js +3 -3
- package/dist/sdk/agent/command-suggestions.js +1 -1
- package/dist/sdk/agent/item-addressing.js +1 -1
- package/dist/sdk/agent-capability-contracts.js +1 -1
- package/dist/sdk/cli-bootstrap.js +1 -1
- package/dist/sdk/cli-contracts/command-aliases.js +1 -1
- package/dist/sdk/cli-contracts/flag-contracts.js +1 -1
- package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +1 -1
- package/dist/sdk/cli-contracts/grammar-contracts.js +1 -1
- package/dist/sdk/cli-contracts/runtime-contracts.d.ts +3 -0
- package/dist/sdk/cli-contracts/runtime-contracts.js +1 -1
- package/dist/sdk/cli-contracts/tool-schema.d.ts +1 -1
- package/dist/sdk/cli-contracts/tool-schema.js +1 -1
- package/dist/sdk/command-line.d.ts +1 -6
- package/dist/sdk/command-line.js +1 -1
- package/dist/sdk/comments.js +1 -1
- package/dist/sdk/completion.js +1 -1
- package/dist/sdk/contracts.d.ts +1 -0
- package/dist/sdk/contracts.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
- package/dist/sdk/governance/health.js +1 -1
- package/dist/sdk/governance/storage-integrity.js +1 -1
- package/dist/sdk/governance/workflow-completeness.js +1 -1
- package/dist/sdk/governance/workflow-policy.js +2 -2
- package/dist/sdk/index.d.ts +1 -0
- package/dist/sdk/index.js +1 -1
- package/dist/sdk/learnings.js +1 -1
- package/dist/sdk/lifecycle/claim.d.ts +2 -0
- package/dist/sdk/lifecycle/claim.js +1 -1
- package/dist/sdk/lifecycle/mcp-actions.d.ts +4 -0
- package/dist/sdk/lifecycle/mcp-actions.js +1 -1
- package/dist/sdk/lifecycle/task-composition.d.ts +2 -0
- package/dist/sdk/lifecycle/task-composition.js +1 -1
- package/dist/sdk/merge/reconcile.js +1 -1
- package/dist/sdk/merge/three-way.js +2 -2
- package/dist/sdk/notes.js +1 -1
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/query/projection-contracts.d.ts +1 -1
- package/dist/sdk/query/projection-contracts.js +1 -1
- package/dist/sdk/runtime.js +1 -1
- package/dist/sdk/telemetry.d.ts +5 -0
- package/dist/sdk/telemetry.js +1 -1
- package/docs/AGENT_UX_CONTRACTS.md +8 -0
- package/docs/ARCHITECTURE.md +7 -0
- package/docs/CLI_GRAMMAR.md +31 -0
- package/docs/COMMAND_NAMESPACES.md +7 -4
- package/docs/CONFIGURATION.md +13 -2
- package/docs/HISTORY_OPERATIONS.md +46 -0
- package/docs/HISTORY_RECOVERY.md +27 -2
- package/docs/LIFECYCLE_COMMANDS.md +19 -2
- package/docs/MERGE_SAFETY.md +64 -3
- package/docs/WORKFLOW_POLICIES.md +47 -3
- package/docs/generated/AGENT_CAPABILITY_ROUTING.md +4 -4
- package/docs/generated/AGENT_COMMAND_SURFACE.md +10 -0
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +11 -1
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +8 -5
- package/marketplace.json +2 -2
- package/package.json +1 -1
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/README.md +22 -0
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/extensions/guide-shell/index.ts +13 -26
- 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/dist/cli-bundle/chunks/chunk-FBY6PEIR.js +0 -20
- package/dist/cli-bundle/chunks/chunk-IRUNFLLG.js +0 -2
- package/dist/cli-bundle/chunks/chunk-RJZFAXBW.js +0 -235
- package/dist/cli-bundle/chunks/chunk-SGAKQIGQ.js +0 -29
- package/dist/cli-bundle/chunks/register-mutation-HAPHD4S7.js +0 -20
- package/dist/cli-bundle/focused-chunks/chunk-3JVTLBCW.js +0 -20
- package/dist/cli-bundle/focused-chunks/chunk-DZ3ATEFS.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-M74YW332.js +0 -164
- package/dist/cli-bundle/focused-chunks/chunk-ONDKO4EL.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-YOPNRWSX.js +0 -2
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
import{b as Zt,f as bt,h as Et,i as kt,k as vi,l as wi,m as rn,n as bi,o as Ei,p as ki}from"./chunk-TGMSSI3Z.js";import{$ as E,$a as ce,$c as wr,A as si,Aa as en,Ca as _i,Ee as _e,F as Jt,Fa as tn,Fe as oe,G as Qt,Ga as mi,H as _r,Ic as de,J as ai,Ja as wt,Jc as yr,Ka as pr,Kc as on,La as hr,Lc as le,Ma as De,Mc as gr,Nb as gi,Nc as ge,Oa as pi,Oc as vr,P as he,Qd as Ai,Rc as It,Rd as ve,Sb as Ii,Sd as ue,Td as Di,Ua as hi,Ud as Ge,V as Re,Vd as fe,W as ci,Wb as Si,Xb as Ti,Yd as Ni,Z as k,Zc as Ci,Zd as Li,_ as qe,_d as Q,aa as v,bd as Oi,cd as xi,eb as yi,gd as Ri,i as Kt,ia as di,ja as Ae,ka as mr,la as te,ma as ye,na as G,oa as li,pb as L,q as Gt,qb as Ke,r as ni,rb as nn,s as ri,sb as T,t as oi,ta as ui,td as sn,u as ii,ua as fi,ve as br,we as Er,y as Xt,z as Yt}from"./chunk-TWE3GPQM.js";import{AsyncLocalStorage as Tc}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]="27a9b88e-ee47-55c8-b511-07ce9754346c")}catch{}})();var kr=new Tc,Pi=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function an(e,t){let n=typeof e=="string"?e.trim():"";return n.length>0?n.slice(0,t):void 0}function Ne(e,t){if(e===void 0)return;let n=typeof e=="object"&&e!==null?e:{},r=an(n.id,128),o=an(n.parent_id,128);if(r===void 0||!Pi.test(r)||o!==void 0&&!Pi.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=an(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function Xe(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=an(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function Cc(e,t,n){let r=kr.getStore(),o=Xe({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=Ne(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={...Xe(r?.provenance),...o,...Xe(e?.provenance)},a=Ne(e?.episode,!1)??Ne(n,!1)??i??Ne(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 Ir(e,t){return Cc(e.session_context,t,e.client_info?.episode)??{}}function Ep(e,t){let n=kr.getStore(),r=Ne(e.episode,!0),o=Ne(n?.episode,!1),i=r!==void 0&&r.parent_id===void 0&&o!==void 0?{...r,parent_id:o.id}:r,s={...Xe(n?.provenance),...Xe(e.provenance)};return kr.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function kp(e){let t=Xe(e.provenance),n=Ne(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 jr}from"node:async_hooks";import{createHash as Dc}from"node:crypto";import V from"node:fs";import Bi from"node:os";import Me from"node:path";import{createHash as Mi}from"node:crypto";import{existsSync as Sr,promises as ji,readFileSync as Oc}from"node:fs";import ie 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]="9cefffc1-c3d6-5c4a-980f-d9d3eaef0f58")}catch{}})();var xc="session.json";function Tr(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function Fi(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=Tr(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=>Tr(c,128)),a=t.focused_item_id===void 0||Tr(t.focused_item_id,128);if([n,r,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function Rc(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([n,r])=>{let o=Fi(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Cr(e){return ie.join(pi(e),xc)}async function cn(e){try{let t=await ji.readFile(Cr(e),"utf8"),n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return{};let r=n,o=r.focused_item,i=Rc(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 Or(e,t){let n=Cr(e);await ji.mkdir(ie.dirname(n),{recursive:!0}),await G(n,JSON.stringify(t))}function xr(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${Mi("sha256").update(e).digest("hex").slice(0,24)}`}function Rr(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function Ar(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)}+${Mi("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function Dr(e,t,n){let r=await cn(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 Or(e,s)}async function Rp(e){let t=xr(e.principal);await Dr(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??Ar(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Rr([...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 Ap(e){let t=xr(e.principal);await Dr(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??Ar(r),confidence:o?"high":"medium",evidence:Rr([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:r}})}async function Dp(e){let t=xr(e.principal);await Dr(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??Ar(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Rr([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}function Ac(e,t){let n=t.PM_PATH?.trim();if(n){let o=ie.resolve(e,n);if(Sr(ie.join(o,"settings.json")))return o;let i=ie.join(o,".agents","pm");if(Sr(ie.join(i,"settings.json")))return i}let r=ie.resolve(e);for(let o=0;o<32;o+=1){let i=ie.join(r,".agents","pm");if(Sr(ie.join(i,"settings.json")))return i;let s=ie.dirname(r);if(s===r)break;r=s}}function $i(e){if(!e.key)return;let t=Ac(e.cwd,e.env);if(t)try{let n=JSON.parse(Oc(Cr(t),"utf8"));return Fi(n.semantic_attribution?.[e.key])}catch{return}}async function Np(e){return(await cn(e)).focused_item}async function Lp(e,t){let n=await cn(e);await Or(e,{...n,focused_item:t})}async function Pp(e){let n={...await cn(e)};delete n.focused_item,await Or(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]="c39d3d14-b0b5-5309-b89a-9da08e1a939a")}catch{}})();var Fr=["model","effort","role","topic","version"],un=new jr,Wi=new jr,fn=new jr,$r=[{harness:"claude-code",environment_keys:["CLAUDE_CODE","CLAUDECODE"],model_environment_keys:["ANTHROPIC_MODEL","CLAUDE_MODEL"],session_environment_keys:["CLAUDE_CODE_SESSION_ID"],provenance_environment_keys:{effort:["CLAUDE_EFFORT"]},provenance_resolvers:{model:"claude_session_file",version:"claude_session_file"},provenance_unavailable_dimensions:["role","topic"],argv_markers:["claude","claude-code"],client_names:["claude","claude-code","claude code"]},{harness:"codex",environment_keys:["CODEX_HOME","CODEX_CI","CODEX_THREAD_ID"],model_environment_keys:["CODEX_MODEL"],session_environment_keys:["CODEX_THREAD_ID"],provenance_environment_keys:{effort:["CODEX_REASONING_EFFORT","CODEX_EFFORT"],role:["CODEX_SESSION_ROLE"]},provenance_resolvers:{model:"codex_session_file",effort:"codex_session_file",version:"ai_agent_version"},provenance_unavailable_dimensions:["topic"],argv_markers:["codex"],client_names:["codex"]},{harness:"pi",environment_keys:["PI_AGENT","PI_CODING_AGENT"],model_environment_keys:["PI_MODEL"],session_environment_keys:["PI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["pi"],client_names:["pi"]},{harness:"opencode",environment_keys:["OPENCODE","OPENCODE_SESSION_ID"],model_environment_keys:["OPENCODE_MODEL"],session_environment_keys:["OPENCODE_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["opencode"],client_names:["opencode"]},{harness:"cursor",environment_keys:["CURSOR_AGENT","CURSOR_TRACE_ID"],model_environment_keys:["CURSOR_MODEL"],session_environment_keys:["CURSOR_TRACE_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["cursor"],client_names:["cursor"]},{harness:"aider",environment_keys:["AIDER","AIDER_MODEL"],model_environment_keys:["AIDER_MODEL"],session_environment_keys:["AIDER_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["aider"],client_names:["aider"]},{harness:"gemini-cli",environment_keys:["GEMINI_CLI","GEMINI_CLI_HOME"],model_environment_keys:["GEMINI_MODEL"],session_environment_keys:["GEMINI_CLI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["gemini","gemini-cli"],client_names:["gemini","gemini-cli","gemini cli"]},{harness:"ci",environment_keys:["CI","GITHUB_ACTIONS","BUILDKITE","GITLAB_CI"],provenance_unavailable_dimensions:["model","effort","role","topic"],argv_markers:[],client_names:[]}],Vi=Object.freeze({max_bytes:1048576,max_lines:4096,network_access:!1,subprocess_access:!1}),Nc=Object.freeze({...Vi,max_bytes:4194304}),Nr=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function Lc(e){let t=be(e).provenance_unavailable_dimensions,n=new Set(["model","version",...Object.keys(e.provenance_environment_keys??{}),...Object.keys(e.provenance_resolvers??{})]);return Object.freeze({contract_version:1,adapter_version:"v1",priority:0,harness:e.harness,descriptor:e,supported_dimensions:Object.freeze([...n].sort()),native_sources:Object.freeze(["environment","argv","mcp_client",...Object.values(e.provenance_resolvers??{}).some(r=>r?.endsWith("session_file"))?["session_file"]:[]]),probe_policy:e.harness==="codex"?Nc:Vi,normalization:Object.freeze({model_family:"v1",effort:"v1",preserve_raw:!0}),confidence:"high",waivers:Object.freeze(Object.fromEntries(t.map(r=>[r,"Harness does not expose this dimension."])))})}var qi=Object.freeze($r.filter(e=>e.harness!=="ci").map(Lc).sort((e,t)=>e.harness.localeCompare(t.harness))),Pe=new Map,Ye=new Map;function P(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function we(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function be(e){let t=e.harness.trim().toLowerCase();if(!Nr.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:we(e.environment_keys),model_environment_keys:we(e.model_environment_keys),session_environment_keys:we(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),we(r)]).filter(([n])=>Nr.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"&&Nr.test(n[0])&&(n[1]==="ai_agent_version"||n[1]==="claude_session_file"||n[1]==="codex_session_file"))),provenance_unavailable_dimensions:we(e.provenance_unavailable_dimensions).map(n=>n.toLowerCase()),argv_markers:we(e.argv_markers).map(n=>n.toLowerCase()),client_names:we(e.client_names).map(n=>n.toLowerCase())}}var Ki=$r.map(be);function Pc(e,t){return JSON.stringify(e)===JSON.stringify(t)}function ln(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function zr(e=[]){let t=new Map($r.filter(o=>o.harness!=="ci").map(o=>[o.harness,be(o)]));for(let{adapter:o}of Pe.values())t.set(o.harness,be(o.descriptor));let n=[...t.values(),...Ki.filter(o=>o.harness==="ci"),...[...Ye.values()].map(o=>o.descriptor),...fn.getStore()?.descriptors??[],...e.map(be)],r=new Set;for(let o of n){if(r.has(o.harness))throw new Error(`Harness signal descriptor collision for "${o.harness}"`);r.add(o.harness)}return n}function Hr(e,t){for(let n of t??[]){let r=P(e[n]);if(r)return r.slice(0,256)}}function Mc(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 Gi(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 jc=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function Le(e,t){if(e!=="role"||t===void 0)return t;let n=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return jc.has(n)?n:void 0}function Lr(e,t){return P(e?.[t])?.slice(0,256)}var Fc=1048576,Mr=4194304,dn=new Map,zi=Object.freeze({}),Pr=new Map,Hi=Object.freeze({});function Ui(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function $c(e){let t;try{t=JSON.parse(e)}catch{return Hi}let n=Ui(t);if(!n)return Hi;let r=[{value:n,depth:0}],o=0,i,s;for(;r.length>0&&o<64;){let a=r.shift();if(o+=1,i??=P(a.value.model)?.slice(0,256),s??=P(a.value.version)?.slice(0,256),i&&s)break;if(!(a.depth>=4))for(let c of Object.values(a.value)){let d=Ui(c);d&&r.push({value:d,depth:a.depth+1})}}return Object.freeze({model:i,version:s})}function Xi(e){try{return V.lstatSync(e).isFile()?"available":"missing"}catch(t){return mr(t)?"missing":"failed"}}function zc(e,t){let n;try{n=V.readdirSync(e,{withFileTypes:!0}).filter(o=>o.isDirectory()).sort((o,i)=>o.name.localeCompare(i.name)).slice(0,512).map(o=>{let i=Me.join(e,o.name,`${t}.jsonl`);return{candidate:i,status:Xi(i)}})}catch(o){return{status:mr(o)?"missing":"failed"}}let r=n.filter(({status:o})=>o==="available").map(({candidate:o})=>o);return r.length===0?{status:n.some(({status:o})=>o==="failed")?"failed":"missing"}:r.length>1?{status:"ambiguous"}:{status:"available",path:r[0]}}function Yi(e,t){let n=P(t.CLAUDE_CODE_SESSION_ID);if(!n||!/^[A-Za-z0-9_-]{1,128}$/u.test(n))return{status:"unavailable"};let o=Me.resolve(e.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),i=Me.join(e.home_dir??Bi.homedir(),".claude","projects"),s=Me.join(i,o,`${n}.jsonl`),a=P(e.session_file),c=a&&Me.basename(a)===`${n}.jsonl`?a:void 0;for(let d of[c,s]){if(!d)continue;let u=Xi(d);if(u==="available")return{status:u,path:d};if(u==="failed")return{status:u}}return zc(i,n)}function Hc(e,t,n){let r=Yi(t,n);if(r.status==="available")try{let o=V.openSync(r.path,V.constants.O_RDONLY|V.constants.O_NOFOLLOW);try{let i=V.fstatSync(o),s=`${r.path}\0${i.size}\0${i.mtimeMs}`,a=Pr.get(s);if(a)return a[e];let c=Math.min(i.size,Fc),d=Math.min(c,Math.ceil(c/2)),u=Math.min(c-d,i.size-d),f=Buffer.alloc(d);V.readSync(o,f,0,d,0);let _=Buffer.alloc(u);u>0&&V.readSync(o,_,0,u,i.size-u);let p={},m=i.size<=c?Buffer.concat([f,_]).toString("utf8").split(`
|
|
2
|
-
`):[...f.toString("utf8").split(`
|
|
3
|
-
`).slice(0,4096),..._.toString("utf8").split(`
|
|
4
|
-
`).slice(-4096)];for(let g of m){if(g.length===0||g.length>262144)continue;let S=$c(g);if(p.model??=S.model,p.version??=S.version,p.model&&p.version)break}let y=Object.freeze(p);return Pr.clear(),Pr.set(s,y),y[e]}finally{V.closeSync(o)}}catch{return}}function Uc(e,t){let n=0,r=(o,i)=>{if(i>4||n>=512)return;let s;try{s=V.readdirSync(o,{withFileTypes:!0}).sort((a,c)=>c.name.localeCompare(a.name))}catch{return}for(let a of s){if(n+=1,n>512)return;let c=Me.join(o,a.name);if(a.isFile()&&a.name.endsWith(`-${t}.jsonl`))return c;if(a.isDirectory()){let d=r(c,i+1);if(d)return d}}};return r(e,0)}function Bc(e){if(e<=Mr)return[{offset:0,length:e}];let t=Math.floor(Mr/2);return[{offset:e-t,length:t},{offset:0,length:t}]}function Wc(e,t){if(t.length===0||t.length>262144)return;let n;try{n=JSON.parse(t)}catch{return}if(typeof n!="object"||n===null||Array.isArray(n))return;let r=n;if(r.type!=="turn_context")return;let o=typeof r.payload=="object"&&r.payload!==null?r.payload:void 0;e.model??=P(o?.model)?.slice(0,256),e.effort??=P(o?.effort)?.slice(0,256)}function Vc(e,t){let n={},r=4096;for(let o of Bc(t)){let i=Buffer.alloc(o.length);V.readSync(e,i,0,o.length,o.offset);let s=i.toString("utf8").split(`
|
|
5
|
-
`).reverse().slice(0,r);r-=s.length;for(let a of s)if(Wc(n,a),n.model&&n.effort)break;if(n.model&&n.effort||r<=0)break}return n}function qc(e,t,n){let r=P(n.CODEX_THREAD_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let o=Me.join(t.home_dir??Bi.homedir(),".codex","sessions"),i=`${o}\0${r}`,s=dn.get(i);if(s)return s[e];let a=Uc(o,r);if(!a){dn.set(i,zi);return}try{let c=V.openSync(a,"r");try{let d=V.fstatSync(c).size,u=Vc(c,d);return dn.set(i,u),u[e]}finally{V.closeSync(c)}}catch{dn.set(i,zi);return}}function Kc(e,t,n,r){let o=fn.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 Hc(e,t,n);if(s==="codex_session_file")return qc(e,t,n);if(s==="ai_agent_version"){let a=P(n.AI_AGENT);return!a||!r||!ln(a,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(a)?.[1]?.slice(0,256)}}function Gc(e,t,n,r){if(e==="ai_agent_version"){let o=P(r.AI_AGENT);return o!==void 0&&ln(o,t.harness)?"available":"unavailable"}return e==="codex_session_file"?P(r.CODEX_THREAD_ID)!==void 0?"available":"unavailable":Yi(n,r).status}function Ur(e){return e||(Wi.getStore()??{env:process.env,argv:process.argv})}function Xc(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 d=c.replaceAll("\\","/");return ln(d.slice(d.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||ln(r,a));return o||i||s}function Yc(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 Jc(e){let t=e.find(([n])=>n!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function Qc(e,t,n,r,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...Fr,...Object.keys(r?.provenance_environment_keys??{})]),c,d,u;a.has(e)&&(c=Le(e,P(n[s])?.slice(0,256)),u=Le(e,Gi(t.argv??[],e)),d=Le(e,Mc(t.argv??[],e)));let f={...r?.provenance_environment_keys,model:r?.model_environment_keys},_={...t.client_info?.provenance,model:t.client_info?.model},p=Lr(o?.provenance,e),m=Le(e,Hr(n,f[e])),y=Le(e,Lr(_,e)),g=Le(e,Lr(t.provenance,e)),S=Kc(e,t,n,r);return Jc([[c,"override"],[p,"session"],[u,"argv"],[m,"environment"],[y,"mcp_client"],[g,"host"],[S,"probe"]])??Yc(e,i)??(d?{value:d,source:"argv"}:void 0)}function Zc(e,t){if(!(!e||!t))return Dc("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function ed(e,t,n,r,o){let i=Object.keys(n?.provenance_environment_keys??{}),s=new Set([...Fr,...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 d=Qc(c,e,t,n,r,o);d?a[c]=d:n&&(c!=="version"||n.provenance_unavailable_dimensions.includes(c))&&(a[c]=null)}return a}function Vp(e){let t=e.map(be),n=new Map(Ki.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=Ye.get(i.harness);if(s&&!Pc(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=Ye.get(i.harness);Ye.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=Ye.get(i.harness);!s||s.registrations<=1?Ye.delete(i.harness):s.registrations-=1}}}}function td(e){let t=be(e.descriptor),n=e.harness.trim().toLowerCase();if(e.contract_version!==1)throw new Error(`Unsupported provenance adapter contract for "${n}": ${e.contract_version}`);if(t.harness!==n)throw new Error(`Provenance adapter harness "${n}" does not match descriptor "${t.harness}".`);let r=P(e.adapter_version)?.slice(0,64);if(!r)throw new Error(`Provenance adapter "${n}" requires a version.`);if(!Number.isSafeInteger(e.priority))throw new Error(`Provenance adapter "${n}" requires an integer priority.`);if(e.probe_policy.network_access!==!1||e.probe_policy.subprocess_access!==!1||e.probe_policy.max_bytes>Mr||e.probe_policy.max_lines>4096)throw new Error(`Provenance adapter "${n}" exceeds the bounded local probe policy.`);return Object.freeze({...e,adapter_version:r,harness:n,descriptor:t,supported_dimensions:Object.freeze(we(e.supported_dimensions).map(o=>o.toLowerCase()).sort()),native_sources:Object.freeze([...new Set(e.native_sources)]),probe_policy:Object.freeze({...e.probe_policy}),normalization:Object.freeze({...e.normalization}),...e.waivers?{waivers:Object.freeze(Object.fromEntries(Object.entries(e.waivers).slice(0,32).map(([o,i])=>[o.slice(0,64),i.slice(0,256)])))}:{}})}function qp(){let e=new Map(qi.map(t=>[t.harness,t]));for(let{adapter:t}of Pe.values())e.set(t.harness,t);return Object.freeze([...e.values()].sort((t,n)=>t.harness.localeCompare(n.harness)))}function Kp(e){let t=e.map(td),n=new Map(qi.map(i=>[i.harness,i])),r=new Set;for(let i of t){if(r.has(i.harness))throw new Error(`Provenance adapter collision for "${i.harness}".`);let s=n.get(i.harness);if(s&&i.priority<=s.priority)throw new Error(`Provenance adapter override for "${i.harness}" requires priority greater than ${s.priority}.`);let a=Pe.get(i.harness);if(a&&JSON.stringify(a.adapter)!==JSON.stringify(i))throw new Error(`Provenance adapter collision for "${i.harness}".`);r.add(i.harness)}for(let i of t){let s=Pe.get(i.harness);Pe.set(i.harness,{adapter:i,registrations:(s?.registrations??0)+1})}let o=!0;return()=>{if(o){o=!1;for(let i of t){let s=Pe.get(i.harness);!s||s.registrations<=1?Pe.delete(i.harness):s.registrations-=1}}}}function Gp(e,t){let n=t.trim().slice(0,256),r=n.toLowerCase();if(e==="model"){let o=/^(gpt-\d+(?:\.\d+)?)/u.exec(r)?.[1];o&&(r=o)}else r=r.replaceAll(/[_\s-]+/gu,""),r={minimal:"low",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max",ultra:"ultra"}[r]??r;return{raw:n,normalized:r,vocabulary:"v1"}}function Xp(e,t){return Wi.run(e,t)}function Yp(e,t,n={}){let r=e.map(be);return zr(r),fn.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function Br(e){let t=Ur(e),n=t.env??{},r=zr(t.descriptors),o=[...(t.argv??[]).slice(0,3),...t.process_labels??[]].slice(0,64).map(m=>m.slice(0,512)),i=t.client_info?.name.trim().toLowerCase()??"",s=r.find(m=>Xc(m,n,o,i)),a=Ir(t,n),c=[Hr(n,s?.session_environment_keys),P(t.client_info?.session)?.slice(0,256)].find(m=>m!==void 0),d=Zc(s?.harness,c),u=$i({cwd:t.cwd??process.cwd(),env:n,key:d}),f=ed(t,n,s,a,u),_=f.model,p=[["harness",s?.harness],["model",_?.value],["model_source",_?.source],["session",c],["instance",d],["provenance",Object.keys(f).length>0?f:void 0],["episode",a.episode]];return Object.fromEntries(p.filter(m=>m[1]!==void 0))}function nd(e){return e==="unavailable"?{status:"unavailable",reason:"harness_unavailable"}:e==="missing"?{status:"unavailable",reason:"resolver_input_missing"}:{status:"failed",reason:"resolver_failed"}}function rd(e,t,n,r,o,i,s){let a=n?.provenance_resolvers[e];if(t.provenance?.[e])return{status:"resolved",...a?{resolver:a}:{},rule_version:"v1"};if(s)return{status:"unavailable",reason:"invalid_value",rule_version:"v1"};if(a){if(!i)return{status:"unavailable",reason:"probes_disabled",resolver:a,rule_version:"v1"};let c=Gc(a,n,r,o);return{...nd(c),resolver:a,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 Ji(e){let t=Ur(e),n=Br(t),r=zr(t.descriptors).find(d=>d.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&fn.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(P(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=Ir(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,Hr(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,Gi(t.argv??[],"role")].some(d=>{let u=P(d)?.slice(0,256);return u!==void 0&&Le("role",u)===void 0}),c=Object.fromEntries(Fr.map(d=>[d,rd(d,n,r,t,o,i,d==="role"&&a)]));return{...n,provenance_outcomes:c}}function Jp(){return process.env.PM_AUTHOR}function Qp(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function Zp(e){return Br(e).harness}function od(e,t,n){let r=Ur(n),o=Br(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 Qi(e){let t=un.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function Zi(e){let t=un.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 es(e){let t=un.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function ts(e,t){let n=od(e,t);return un.enterWith(n),n.author}import{createHash as id}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]="1e3cba21-c5a4-541a-9841-484cfbb70f4e")}catch{}})();var nh=["sha256","sha512"],sd="sha256",ns="sha256";function je(e){if(e===void 0)return sd;if(e==="sha256"||e==="sha512")return e;throw new TypeError(`unsupported_history_hash_algorithm:${String(e)}`)}function Ee(e,t){return id(je(t)).update(e,"utf8").digest("hex")}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8ee74259-29b1-5795-9253-9fa0869e4585")}catch{}})();var Je=1,rs=1;function oh(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=Je?t:Je}function os(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=Je))return e}function ad(e,t=rs){return e<t?"outdated":e>t?"ahead":"current"}function ih(e,t=rs){let n=[],r=[];for(let o of e){let i=ad(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]="6bb283b8-5c81-562a-926e-e48b83e6ebc8")}catch{}})();var cd={"in-progress":"in_progress",cancelled:"canceled"};function _n(e,t){if(t){let o=bi(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=cd[n]??n;if(Gt.includes(r))return r}function Qe(e,t){return _n(e,t)??e}function me(e,t){return t.terminal_statuses.has(Qe(e,t))}import{encode as wd}from"@toon-format/toon";import{isDeepStrictEqual as ds}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]="42eb2987-269d-5b18-b0fe-5b4334fdb6a0")}catch{}})();var dd=16;function Wr(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 ld(e){return[...new Set([ki(e),Wr(e.key),Wr(e.cli_flag),...e.cli_aliases.map(t=>Wr(t))])]}function as(e,t){for(let n of ld(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function cs(e){return Array.isArray(e)?e.flatMap(t=>cs(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 is(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 v(`${t} must be one of true|false|1|0|yes|no`,E.USAGE)}function ss(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 v(`${t} must be a number`,E.USAGE);return r}function ud(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 v(`${t} must be valid JSON ${n}`,E.USAGE)}function fd(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 _d(e,t,n){if(t.const!==void 0&&L(e)!==L(t.const))return`${n} must equal ${L(t.const)}`;if(t.enum!==void 0&&!t.enum.some(r=>L(r)===L(e)))return`${n} must be one of ${t.enum.map(r=>L(r)).join("|")}`;if(!fd(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"&&!Di(e))return`${n} must be an RFC 3339 date-time`}}function md(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=mn(i,t.items,`${n}[${o}]`,r+1);if(s)return s}}}function pd(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=mn(s,a,`${n}.${i}`,r+1);if(c)return c}}function mn(e,t,n,r=0){if(r>dd)return`${n} value schema exceeds maximum depth`;let o=_d(e,t,n);if(o)return o;let i=md(e,t,n,r);if(i)return i;let s=pd(e,t,n,r);if(s)return s;if(!t.one_of)return;let a=0;for(let c of t.one_of)if(mn(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 Fe(e,t,n){if(!e.value_schema||t===void 0)return t;let r=mn(t,e.value_schema,n);if(r)throw new v(r,E.USAGE);return t}function St(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:Fe(e,ud(i,r,e.type),r)}if(e.repeatable||e.type==="string_array"){let i=cs(t);return e.type==="number"?Fe(e,i.map(s=>ss(s,r)),r):e.type==="boolean"?Fe(e,i.map(s=>is(s,r)),r):Fe(e,i,r)}let o=Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return e.type==="number"?Fe(e,ss(o,r),r):e.type==="boolean"?Fe(e,is(o,r),r):Fe(e,typeof o=="string"?o:String(o),r)}function hd(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 ph(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=as(e,i);if(s===void 0){hd(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=St(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function hh(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=as(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=St(s,a)))}return r}import{decode as yd}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]="e48e0cc7-7577-5702-ac17-a4529697444e")}catch{}})();function Vr(e){return{value:yd(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]="45fa31ba-dea9-56db-b971-84c11e8a1c88")}catch{}})();var gd=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function vd(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(gd);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function pn(e){return vd(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]="48df511d-df81-56f7-bb1d-f10230b43cfa")}catch{}})();var Xr=new Set(["schema","tracker","auto"]),fs=new Set(["source","isolated","snapshot"]),bd=new Set(["legacy","local_mutation","local_source_ref","acknowledged","invalid_provenance","foreign_source_ref"]),Ed=new Set(["passed","failed","stopped","canceled"]),kd=new Set(ai);function tt(e){return e.replaceAll("\\","/")}function _s(e){for(let t of e)if(t!==0)return t;return 0}function yn(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var ms=["id","title","description","created_at","updated_at"],Id=new Set(he);function ps(e){if(e?.schema)return{statusRegistry:rn(e.schema),fieldRegistry:Ei(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function Sd(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function ke(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new v(`Invalid item metadata: ${e}`,E.GENERIC_FAILURE,{code:"item_document_invalid",reason:e.includes("required")?"missing_required_field":"schema_validation_error",...t?{field:t}:{},required:"Provide an item document whose metadata satisfies the active runtime schema.",why:e})}function Ot(e,t){throw new v(t,E.GENERIC_FAILURE,{code:"item_document_invalid",reason:"syntax_error",format:e,required:`Provide a syntactically valid ${e==="toon"?"TOON":"JSON Markdown"} item document.`,why:"The document could not be decoded far enough to validate item metadata."})}function hs(e){let t=new Set(Id);for(let n of e.fieldRegistry?.definitions??[])t.add(n.metadata_key);for(let n of e.extensionFieldNames)t.add(n);return t}function I(e,t){e||ke(t)}function xt(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&ke(t),e}function qr(e,t){let n=e[t];I(typeof n=="string",`${t} must be a string`),I(ue(n),`${t} must be a valid ISO timestamp`)}function ls(e,t,n){let r=e[t];r!==void 0&&I(typeof r=="number"&&Number.isInteger(r)&&r>=1,`${n} must be an integer >= 1`)}function Yr(e,t,n){let r=e[t];r!==void 0&&(I(typeof r=="string",`${n} must be a string`),I(ue(r),`${n} must be a valid ISO timestamp`))}function Td(e){if(e!==void 0){I(Array.isArray(e),"event.recurrence.by_weekday must be an array");for(let t of e){I(typeof t=="string","event.recurrence.by_weekday entries must be strings");let n=t.trim().toLowerCase();I(Qt.includes(n),`event.recurrence.by_weekday entries must be one of: ${Qt.join(", ")}`)}}}function Cd(e){if(e!==void 0){I(Array.isArray(e),"event.recurrence.by_month_day must be an array");for(let t of e)I(typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=31,"event.recurrence.by_month_day entries must be integers 1..31")}}function Od(e){if(e!==void 0){I(Array.isArray(e),"event.recurrence.exdates must be an array");for(let t of e)I(typeof t=="string","event.recurrence.exdates entries must be strings"),I(ue(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function xd(e){let t=xt(e,"event.recurrence must be an object");I(typeof t.freq=="string","event.recurrence.freq must be a string");let n=t.freq.trim().toLowerCase();I(Jt.includes(n),`event.recurrence.freq must be one of: ${Jt.join(", ")}`),ls(t,"interval","event.recurrence.interval"),ls(t,"count","event.recurrence.count"),Yr(t,"until","event.recurrence.until"),Td(t.by_weekday),Cd(t.by_month_day),Od(t.exdates)}function Rd(e){for(let r of ms)I(typeof e[r]=="string",`${r} is required and must be a string`);let t=e.type;I(typeof t=="string"&&t.trim().length>0,"type must be a non-empty string");let n=e.pm_format_version;return n!==void 0&&I(typeof n=="number"&&Number.isInteger(n)&&n>=Je,`pm_format_version must be an integer >= ${Je}`),t}function Ad(e,t){let n=e.status;I(typeof n=="string"&&n.trim().length>0,"status must be a non-empty string");let r=t?.statusRegistry,o=_n(n,r),i=r?r.definitions.map(s=>s.id):[...Gt];I(o!==void 0,`status must be one of: ${i.join(", ")}`)}function Dd(e){let t=e.priority;I(typeof t=="number"&&Number.isInteger(t)&&[0,1,2,3,4].includes(t),"priority must be an integer 0..4");let n=e.tags;I(Array.isArray(n),"tags must be an array");for(let r of n)I(typeof r=="string","tags entries must be strings")}function Nd(e){let t=e.confidence;if(t!==void 0){if(typeof t=="number"){I(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"||Yt.includes(n);I(r,`confidence string value must be one of: ${[...Yt,"med"].join(", ")}`);return}I(!1,"confidence must be a number or string")}}function Ld(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&ke("severity must be a string");let n=t.trim().toLowerCase(),r=n==="med"||Xt.includes(n);I(r,`severity value must be one of: ${[...Xt,"med"].join(", ")}`)}function Pd(e){e.regression!==void 0&&typeof e.regression!="boolean"&&ke("regression must be a boolean")}function Md(e){let t=e.reminders;if(t!==void 0){I(Array.isArray(t),"reminders must be an array");for(let n of t){let r=xt(n,"reminders entries must be objects");I(typeof r.at=="string","reminder.at must be a string"),I(ue(r.at),"reminder.at must be a valid ISO timestamp"),I(typeof r.text=="string","reminder.text must be a string"),I(r.text.trim().length>0,"reminder.text must not be empty")}}}function jd(e){for(let t of["title","description","location","timezone"])e[t]!==void 0&&(I(typeof e[t]=="string",`event.${t} must be a string`),I(e[t].trim().length>0,`event.${t} must not be empty`))}function Fd(e){e.recurrence!==void 0&&(xd(e.recurrence),e.recurrence.until!==void 0&&I(fe(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function $d(e){let t=xt(e,"events entries must be objects");I(typeof t.start_at=="string","event.start_at must be a string"),I(ue(t.start_at),"event.start_at must be a valid ISO timestamp"),t.end_at!==void 0&&(I(typeof t.end_at=="string","event.end_at must be a string"),I(ue(t.end_at),"event.end_at must be a valid ISO timestamp"),I(fe(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),jd(t),t.all_day!==void 0&&I(typeof t.all_day=="boolean","event.all_day must be a boolean"),Fd(t)}function zd(e){let t=e.events;if(t!==void 0){I(Array.isArray(t),"events must be an array");for(let n of t)$d(n)}}function Hd(e){for(let t of["source_type","source_owner","design","external_ref"]){let n=e[t];n!==void 0&&I(typeof n=="string",`${t} must be a string`)}}function Ud(e){let t=e.type_options;if(t===void 0)return;let n=xt(t,"type_options must be an object");for(let[r,o]of Object.entries(n))I(r.trim().length>0,"type_options keys must be non-empty"),I(typeof o=="string","type_options values must be strings"),I(o.trim().length>0,"type_options values must be non-empty strings")}function Bd(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){Sd(r,t)&&ke(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=St(r,o,`metadata field "${r.metadata_key}"`)}catch(i){ke(String(i?.message).replace(/^Invalid\s+/u,""))}}}function Wd(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=hs(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length!==0&&(t.unknownFieldPolicy==="reject"?ke(`unknown schema fields are not allowed: ${r.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`))}function Jr(e,t){let n=xt(e,"item metadata must be an object"),r=Rd(n);Ad(n,t),Dd(n),Nd(n),Ld(n),Pd(n),qr(n,"created_at"),qr(n,"updated_at"),n.deadline!==void 0&&qr(n,"deadline"),Md(n),zd(n),Yr(n,"closed_at","closed_at"),Yr(n,"completed_at","completed_at"),Hd(n),Ud(n),Bd(n,r,t),Wd(n,t)}function Vd(e){if(!(!e||e.length===0))return[...e].map(t=>({id:t.id.trim(),kind:t.kind,created_at:t.created_at,author:t.author?.trim()||void 0,source_kind:t.source_kind?.trim()||void 0,author_source:t.author_source})).sort((t,n)=>{let r=fe(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 Kr(e){if(!(!e||e.length===0))return[...e].sort((t,n)=>{let r=fe(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 qd(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=fe(n.at,r.at);return o!==0?o:n.text.localeCompare(r.text)});return t.length===0?void 0:t}function Kd(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!Jt.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>Qt.includes(s)))).sort((s,a)=>_r(s)-_r(a)),r=Array.from(new Set((e.by_month_day??[]).filter(s=>Number.isInteger(s)&&s>=1&&s<=31).map(s=>s))).sort((s,a)=>s-a),o=Array.from(new Set((e.exdates??[]).map(s=>s.trim()).filter(s=>ue(s)))).sort((s,a)=>fe(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 Gd(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(Xd).sort(Yd)}function Xd(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:Kd(e.recurrence)};return yn(t),t}function Yd(e,t){return _s([fe(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 Jd(e){if(!(!e||e.length===0))return e.map(t=>({path:tt(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function Qd(e){if(!e||e.length===0)return;let t=e.map(nl).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)=>_s([fe(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 Ze(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function Zd(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function Gr(e){return typeof e=="string"?e:""}function el(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 hn(e,t){return typeof e=="string"&&t.has(e)?e:void 0}function tl(e){if(!Array.isArray(e))return;let t=e.filter(n=>n&&typeof n.command=="string"&&n.command.trim().length>0).slice(0,32).map(n=>({command:n.command.trim(),requested_pm_context_mode:hn(n.requested_pm_context_mode,Xr),pm_context_mode:hn(n.pm_context_mode,Xr),workspace_context_mode:hn(n.workspace_context_mode,fs),trust_reason:hn(n.trust_reason,bd)}));return t.length>0?t:void 0}function nl(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=Ed.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:Gr(e.started_at),finished_at:Gr(e.finished_at),recorded_at:Gr(e.recorded_at),attempt:Zd(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:Ze(e.passed)??0,failed:Ze(e.failed)??0,skipped:Ze(e.skipped)??0,items:Ze(e.items),linked_tests:Ze(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:el(e.measurements),executions:tl(e.executions)};return yn(o),o}function rl(e){if(!(!Array.isArray(e)||e.length===0))return e.map(cl)}function Tt(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 Zr(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function eo(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function us(e){if(!Zr(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!eo(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function ol(e){if(!Zr(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!eo(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function il(e){let t=e?.trim().toLowerCase();if(!(!t||!Xr.has(t)))return t}function sl(e){let t=e?.trim().toLowerCase();if(!(!t||!fs.has(t)))return t}function al(e,t){if(t===!0)return{provenance_invalid:!0};if(e===void 0)return{};if(!Zr(e))return{provenance_invalid:!0};let n=b(e.author),r=b(e.created_at),o=e.source_kind;return!n||!r||!ue(r)||o!=="local_mutation"&&o!=="merge_union"?{provenance_invalid:!0}:{provenance:{author:n,created_at:r,source_kind:o,source_ref:b(e.source_ref)}}}function cl(e){let t={command:e.command?.trim()||void 0,path:e.path?tt(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:il(e.pm_context_mode),workspace_context_mode:sl(e.workspace_context_mode),...al(e.provenance,e.provenance_invalid),env_set:us(e.env_set),env_clear:Tt(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:Tt(e.assert_stdout_contains),assert_stdout_regex:Tt(e.assert_stdout_regex),assert_stderr_contains:Tt(e.assert_stderr_contains),assert_stderr_regex:Tt(e.assert_stderr_regex),assert_stdout_min_lines:Ze(e.assert_stdout_min_lines),assert_json_field_equals:us(e.assert_json_field_equals),assert_json_field_gte:ol(e.assert_json_field_gte),note:e.note?.trim()||void 0};return yn(t),t}function dl(e){if(!(!e||e.length===0))return[...e].map(t=>({path:tt(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 b(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function ll(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=b(r.id),i=b(r.kind);if(!o||!i)continue;let s={id:o,kind:i},a=b(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 ul(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=b(r.path);if(!o)continue;let i={path:tt(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=b(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function fl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=b(r.command),i=b(r.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=tt(i));let a=b(r.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function _l(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=b(r.path);if(!o)continue;let i={path:tt(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=b(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function ml(e){if(e===null||typeof e!="object")return;let t=e,n=b(t.id),r=b(t.title),o=b(t.status),i=o&&kd.has(o)?o:void 0,s=hi(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 d={id:n,order:s,title:r,status:i,created_at:a,updated_at:c};return pl(d,t),d}function pl(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=b(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",ll],["files","files",ul],["tests","tests",fl],["docs","docs",_l]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function hl(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=ml(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function yl(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=b(r.decision);if(!o||!i||!s)continue;let a={ts:o,author:i,decision:s},c=b(r.rationale);c&&(a.rationale=c);let d=b(r.evidence);d&&(a.evidence=d);let u=b(r.step_id);u&&(a.step_id=u),t.push(a)}return t.length>0?t:void 0}function gl(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=b(r.text);if(!o||!i||!s)continue;let a={ts:o,author:i,text:s},c=b(r.step_id);c&&(a.step_id=c),t.push(a)}return t.length>0?t:void 0}function vl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=b(r.text);if(!o)continue;let i={text:o},s=b(r.command);s&&(i.command=s);let a=b(r.expected);a&&(i.expected=a),t.push(i)}return t.length>0?t:void 0}function wl(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 et(e){let t=0;for(;t<e.length&&e[t]===`
|
|
6
|
-
`;)t+=1;return e.slice(t).trimEnd()}function bl(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(Yt.includes(t))return t}function El(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(Xt.includes(t))return t}function Ct(e){return e||void 0}function kl(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))eo(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function Il(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]=St(r,o,`metadata field "${r.metadata_key}"`))}}function Sl(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=hs(t),o=Object.keys(e).filter(i=>!n.has(i)).sort((i,s)=>i.localeCompare(s));o.length>0&&t.unknownFieldPolicy==="reject"&&ke(`unknown schema fields are not allowed: ${o.join(", ")}`),o.length>0&&t.onWarning?.(`item_unknown_schema_fields:${o.join(",")}`)}function gn(e,t={}){let n=ps(t),r=_n(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:os(e.pm_format_version),source_type:b(e.source_type),type_options:wl(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:Vd(e.dependencies),comments:Kr(e.comments),notes:Kr(e.notes),learnings:Kr(e.learnings),files:Jd(e.files),tests:rl(e.tests),test_runs:Qd(e.test_runs),docs:dl(e.docs),deadline:Ct(e.deadline),reminders:qd(e.reminders),events:Gd(e.events),closed_at:Ct(e.closed_at),completed_at:Ct(e.completed_at),assignee:b(e.assignee),claim_principal:b(e.claim_principal),source_owner:b(e.source_owner),author:Ct(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:b(e.definition_of_ready),order:e.order,goal:b(e.goal),objective:b(e.objective),value:b(e.value),impact:b(e.impact),outcome:b(e.outcome),why_now:b(e.why_now),parent:b(e.parent),reviewer:b(e.reviewer),risk:e.risk??void 0,confidence:bl(e.confidence),sprint:b(e.sprint),release:b(e.release),blocked_by:b(e.blocked_by),blocked_reason:b(e.blocked_reason),unblock_note:b(e.unblock_note),reporter:b(e.reporter),severity:El(e.severity),environment:b(e.environment),repro_steps:b(e.repro_steps),resolution:b(e.resolution),expected_result:b(e.expected_result),actual_result:b(e.actual_result),affected_version:b(e.affected_version),fixed_version:b(e.fixed_version),component:b(e.component),regression:e.regression,customer_impact:b(e.customer_impact),close_reason:Ct(e.close_reason),plan_mode:b(e.plan_mode),plan_scope:b(e.plan_scope),plan_harness:b(e.plan_harness),plan_resume_context:b(e.plan_resume_context),plan_steps:hl(e.plan_steps),plan_decisions:yl(e.plan_decisions),plan_discoveries:gl(e.plan_discoveries),plan_validation:vl(e.plan_validation)};return kl(i,e),Il(i,n),Sl(i,n),yn(i),i}function ys(e){return T(e,he)}function Tl(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 Cl(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=Tl(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 Ol(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(`
|
|
7
|
-
`,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 Qr(e,t){return gn(e,{...t,onWarning:void 0})}function xl(e,t,n={}){let r=Ol(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=Cl(r.content);o||(e.trimStart().startsWith("{")&&Ot("json_markdown","JSON front matter is not valid JSON"),Ot("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{Ot("json_markdown","JSON front matter is not valid JSON")}return Jr(s,t),{metadata:Qr(s,n),body:et(i)}}function Rl(e,t,n={}){let r;try{r=Vr(e).value}catch{Ot("toon","TOON item document is not valid TOON")}I(typeof r=="object"&&r!==null&&!Array.isArray(r),"TOON item document must be an object");let o=r;if(!ms.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&Ot("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return Jr(o.front_matter,t),I(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:Qr(o.front_matter,n),body:et(typeof o.body=="string"?o.body:"")};let{body:i,...s}=o;return I(i===void 0||typeof i=="string","TOON item document body must be a string"),Jr(s,t),{metadata:Qr(s,n),body:et(typeof i=="string"?i:"")}}function Al(e,t={}){let n=gn(e.metadata,t),r=ys(n),o=JSON.stringify(r,null,2),i=et(e.body??"");return i?`${o}
|
|
8
|
-
|
|
9
|
-
${i}
|
|
10
|
-
`:`${o}
|
|
11
|
-
`}function Dl(e,t={}){let n=gn(e.metadata,t),r=ys(n),o=et(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i)),a=wd(s),c;try{c=Vr(a).value}catch(d){throw new v("Refusing to persist a TOON item document that the configured decoder cannot read back.",E.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_error",format:"toon",required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:d instanceof Error?d.message:String(d)})}if(!ds(c,s)){let d=typeof c=="object"&&c!==null&&!Array.isArray(c)?c:{},u=Object.keys(s).find(f=>!ds(s[f],d[f]))??"document";throw new v(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${u}".`,E.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_mismatch",format:"toon",field:u,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}
|
|
12
|
-
`}function vn(e,t={}){let n=pn(e);if(n)throw new v(`Merge conflict markers detected in item document at line ${n.line} (${n.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,E.GENERIC_FAILURE,{code:"merge_conflict_markers_detected",reason:"merge_conflict",required:"Resolve merge-conflict markers in the item file before parsing or mutation commands.",why:"Partially merged documents can corrupt item metadata and history integrity.",examples:["git status","git add <resolved-file> && git commit"],nextSteps:["Resolve conflicts, save the file, then rerun the pm command."]});let r=t.format??"toon",o=ps(t);return r==="toon"?Rl(e,o,t):xl(e,o,t)}function gs(e,t={}){return(t.format??"toon")==="toon"?Dl(e,t):Al(e,t)}function ne(e,t={}){return{metadata:gn(e.metadata,t),body:et(e.body??"")}}(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]="bfa74c9e-a366-5b09-a7bc-869226fb6140")}catch{}})();async function Nl(e,t){let n=await ye(e);if(n===null)return{raw:n,entries:[]};if(await ge({path:e,scope:"project"}),n.trim()==="")return{raw:n,entries:[]};let r=pn(n);if(r)throw new v(`History for ${t} contains merge conflict markers at line ${r.line} (${r.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,E.GENERIC_FAILURE,{code:"history_merge_conflict_markers_detected",required:"Repair the history stream by resolving merge-conflict markers.",why:"Conflict markers break JSONL parsing and invalidate deterministic audit history.",examples:[`pm history ${t}`,`pm restore ${t} <timestamp-or-version>`],nextSteps:["Resolve or restore the history file, then rerun the command."]});let 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 v(`History for ${t} contains invalid JSON at line ${i+1}. Repair or restore the history stream and retry.`,E.GENERIC_FAILURE,{code:"history_json_invalid",nextSteps:[`Run pm history-repair ${t} --salvage-tail --dry-run to check whether only an invalid suffix is damaged.`]})}}return{raw:n,entries:o}}async function nt(e,t){return(await Nl(e,t)).entries}import mo 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]="24b1fb96-5c1e-5669-be21-fdeef4d413a6")}catch{}})();function vs(e){let t=[],n=e[0]?.op==="history_compact_baseline",r=n?1:void 0,o=!1;for(let[i,s]of e.entries())s.op==="delete"&&(o=!0),s.op==="create"&&(r!==void 0&&t.push({prior_genesis_index:r,repeated_create_index:i+1,sequence:o?"delete_then_create":n?"checkpoint_then_create":"multiple_creates"}),r??=i+1,o=!1);return t}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="82c79093-2a40-5b4c-8d41-637b0ae03c4f")}catch{}})();import Fs from"fast-json-patch";import Ls from"node:fs/promises";import lu from"node:path";import j from"node:fs/promises";import H from"node:path";import{randomUUID as bs}from"node:crypto";import{createRequire as zl}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]="9d5caf29-c1f2-5120-bc0b-c64a0bdd19ff")}catch{}})();var Ll=["docs_add","files_add","history:author-acknowledge","history_author_acknowledge","history_compact","history_compact_baseline","history_redact","history_repair","history_salvage","normalize","release","test_run_track","tests_add","tests_remove","update_audit","update_ownership_bypass"],Pl=["append","cancel","claim","close","comment_add","create","learning_add","note_add","reopen"],Ml=new Set(Ll),jl=new Set(Pl),Fl=new Set(["actual_result","affected_version","assignee","blocked_by","blocked_reason","close_reason","confidence","customer_impact","definition_of_ready","dependencies","docs","environment","expected_result","files","fixed_version","goal","impact","learnings","notes","objective","order","outcome","parent","release","reminders","reporter","repro_steps","resolution","reviewer","severity","sprint","tests","test_runs","unblock_note","updated_at","value","why_now"]);function $l(e){let t=e.path.split("/").filter(Boolean);return t[0]==="metadata"||t[0]==="front_matter"?t[1]:t[0]==="body"?"body":void 0}function rt(e){return e.event_class==="substantive"||e.event_class==="maintenance"?e.event_class:Ml.has(e.op)?"maintenance":jl.has(e.op)||e.op!=="update"?"substantive":Array.isArray(e.patch)&&e.patch.length>0&&e.patch.every(t=>{let n=$l(t);return n!==void 0&&Fl.has(n)})?"maintenance":"substantive"}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="542d77d0-7bb8-5ed0-a1da-09de33d3767f")}catch{}})();var Hl="history-event-index.sqlite",no="5",Ul=8,Bl="history-event-index",ro=300,Es=3e4,Wl="history-event-index-invalidation",Vl="history-event-index-invalidations",ql=ro*2*1e3,In=Symbol("history-index-lock-contended"),$e=new Map;function At(e){return H.join(e,"runtime",Hl)}function Tn(e){return H.join(e,"runtime",Vl)}async function Kl(e){let t=await j.readdir(Tn(e)).catch(n=>{if(te(n))return[];throw n});return{pending:t.filter(n=>n.endsWith(".pending")).sort(),committed:t.filter(n=>n.endsWith(".committed")).sort()}}async function to(e){let t=await Kl(e);return{pending:(await Promise.all(t.pending.map(async r=>{let o=/^(\d+)-(unknown|\d+)-(\d+)-.+\.pending$/u.exec(r);if(o!==null){let i=o[2];if(await Li({pid:Number(o[1]),...i==="unknown"?{}:{process_start_identity:i}},Math.max(0,Date.now()-Number(o[3])),ql))return r}return await j.rm(H.join(Tn(e),r),{force:!0}),null}))).filter(r=>r!==null),committed:t.committed}}async function Rt(e,t){let n=await Q(e,Wl,ro,`history-event-index-invalidation:${process.pid}`,!1,!1,Es);try{return await t()}finally{await n()}}async function Gl(e){let t=Tn(e);await j.mkdir(t,{recursive:!0});let n=bs(),r=await Ni(),o=H.join(t,`${r.pid}-${r.process_start_identity??"unknown"}-${Date.now()}-${n}.pending`);return await j.writeFile(o,`pending
|
|
13
|
-
`,{flag:"wx"}),{pendingPath:o,committedPath:H.join(t,`${n}.committed`)}}function Xl(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}async function wn(e){try{await j.rm(At(e),{force:!0})}catch{}}async function Cn(e,t){let n=await Q(e,Bl,ro,`history-event-index:${process.pid}`,!1,!1,Es);try{return await t()}finally{await n()}}async function ks(e){let t=H.join(e,"history"),n=await j.readdir(t,{withFileTypes:!0}).catch(s=>{if(typeof s=="object"&&s!==null&&"code"in s&&s.code==="ENOENT")return[];throw s}),r=$e.get(e)??{streams:new Map,ordered_events:[]},o=new Set,i=!$e.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=H.join(t,s.name),d=await j.stat(c,{bigint:!0}),u=[d.dev,d.ino,d.size,d.mtimeNs,d.ctimeNs].join(":");if(r.streams.get(a)?.signature===u)continue;let f=await Is(c,a);r.streams.set(a,{signature:u,byte_size:Number(d.size),events:f.map((_,p)=>({stream_id:a,stream_offset:p,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(oo)),$e.delete(e),$e.set(e,r),$e.size>Ul){let s=$e.keys().next().value;$e.delete(s)}return{events:r.ordered_events,stream_byte_sizes:new Map([...r.streams].map(([s,a])=>[s,a.byte_size]))}}async function Is(e,t){let n=await nt(e,t);for(let[r,o]of n.entries())if(typeof o.ts!="string"||!Ge(o.ts.trim()))throw new v(`History for ${t} contains an invalid or sub-millisecond timestamp at line ${r+1}. Repair or restore the history stream and retry.`,E.GENERIC_FAILURE,{code:"history_timestamp_invalid"});return n.map(r=>({...r,ts:new Date(r.ts.trim()).toISOString()}))}async function Yl(e){return(await ks(e)).events}function Jl(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}function Ql(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?Jl(t):null}var bn;function On(){return bn!==void 0||(bn=Ql(process.versions.node,zl(import.meta.url))),bn}function Zl(e){e.exec(`
|
|
14
|
-
PRAGMA journal_mode = OFF;
|
|
15
|
-
PRAGMA synchronous = OFF;
|
|
16
|
-
CREATE TABLE metadata (
|
|
17
|
-
key TEXT PRIMARY KEY,
|
|
18
|
-
value TEXT NOT NULL
|
|
19
|
-
) STRICT;
|
|
20
|
-
CREATE TABLE events (
|
|
21
|
-
stream_id TEXT NOT NULL,
|
|
22
|
-
stream_offset INTEGER NOT NULL,
|
|
23
|
-
ts TEXT NOT NULL,
|
|
24
|
-
author TEXT NOT NULL,
|
|
25
|
-
agent_harness TEXT,
|
|
26
|
-
agent_instance TEXT,
|
|
27
|
-
op TEXT NOT NULL,
|
|
28
|
-
event_class TEXT NOT NULL CHECK(event_class IN ('substantive', 'maintenance')),
|
|
29
|
-
entry_json TEXT NOT NULL,
|
|
30
|
-
PRIMARY KEY(stream_id, stream_offset)
|
|
31
|
-
) STRICT;
|
|
32
|
-
CREATE TABLE streams (
|
|
33
|
-
stream_id TEXT PRIMARY KEY,
|
|
34
|
-
byte_size INTEGER NOT NULL CHECK(byte_size >= 0)
|
|
35
|
-
) STRICT;
|
|
36
|
-
CREATE INDEX events_order
|
|
37
|
-
ON events(ts, stream_id, stream_offset);
|
|
38
|
-
CREATE INDEX events_op_order
|
|
39
|
-
ON events(op, ts, stream_id, stream_offset);
|
|
40
|
-
CREATE INDEX events_class_stream_order
|
|
41
|
-
ON events(event_class, stream_id, ts, stream_offset);
|
|
42
|
-
CREATE INDEX events_author_order
|
|
43
|
-
ON events(author, ts, stream_id, stream_offset);
|
|
44
|
-
CREATE INDEX events_harness_order
|
|
45
|
-
ON events(agent_harness, ts, stream_id, stream_offset);
|
|
46
|
-
CREATE INDEX events_instance_order
|
|
47
|
-
ON events(agent_instance, ts, stream_id, stream_offset);
|
|
48
|
-
`),e.prepare("INSERT INTO metadata(key, value) VALUES ('version', ?)").run(no)}function Ss(e,t){let n={...t.entry,ts:new Date(t.entry.ts.trim()).toISOString()};e.prepare(`INSERT INTO events(
|
|
49
|
-
stream_id, stream_offset, ts, author, agent_harness,
|
|
50
|
-
agent_instance, op, event_class, entry_json
|
|
51
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(t.stream_id,t.stream_offset,n.ts,n.author,n.agent_harness??null,n.agent_instance??null,n.op,rt(n),JSON.stringify(n))}function Ts(e){let t=JSON.parse(String(e.entry_json));return typeof t.ts!="string"||!Ge(t.ts.trim())?null:{stream_id:String(e.stream_id),stream_offset:Number(e.stream_offset),entry:{...t,ts:new Date(t.ts.trim()).toISOString()}}}function Cs(e,t,n){e.prepare(`INSERT INTO streams(stream_id, byte_size) VALUES (?, ?)
|
|
52
|
-
ON CONFLICT(stream_id) DO UPDATE SET byte_size = excluded.byte_size`).run(t,n)}async function eu(e){let t=On();return t?Cn(e,async()=>{let n;try{n=await Rt(e,()=>to(e))}catch(s){if(s instanceof v&&s.code==="lock_conflict")return!1;throw s}if(n.pending.length>0)return!1;let r=At(e);await j.mkdir(H.dirname(r),{recursive:!0});let o=`${r}.${bs()}.tmp`,i;try{i=new t(o),Zl(i),i.exec("BEGIN IMMEDIATE");let s=await ks(e);for(let c of s.events)Ss(i,c);for(let[c,d]of s.stream_byte_sizes)Cs(i,c,d);i.exec("COMMIT"),i.close(),i=void 0;let a=await Rt(e,async()=>{let c=await to(e);return c.pending.length>0||!Xl(n.committed,c.committed)?!1:(await j.rm(r,{force:!0}),await j.rename(o,r),await Promise.all(n.committed.map(d=>j.rm(H.join(Tn(e),d),{force:!0}))),!0)});return a||await j.rm(o,{force:!0}),a}catch(s){throw i?.close(),await j.rm(o,{force:!0}),s}}):!1}function En(e,t){return!t||t.length===0||t.includes(e)}function oo(e,t){return e.entry.ts.localeCompare(t.entry.ts)||e.stream_id.localeCompare(t.stream_id)||e.stream_offset-t.stream_offset}function Sn(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():e}function tu(e,t){if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){if(oo(e,{stream_id:t.after_stream_id,stream_offset:t.after_stream_offset,entry:{...e.entry,ts:Sn(t.after_ts)}})<=0)return!1}else if(t.since_ts!==void 0&&e.entry.ts<Sn(t.since_ts))return!1;return!0}function nu(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 ru(e,t){return!tu(e,t)||!En(e.entry.op,t.ops)||!En(e.entry.author,t.authors)||!En(e.entry.agent_instance??"",t.agent_instances)||!En(e.stream_id,t.stream_ids)||!nu(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 ny(e,t){let n=Math.max(0,Math.floor(t.limit)),r=(await Yl(e)).filter(o=>ru(o,t)).slice(0,n+1);return{events:r.slice(0,t.limit),has_more:r.length>t.limit}}async function Os(e,t,n){let r=H.dirname(H.dirname(e)),o=On();if(!o){await n();return}let i=!1;try{await Cn(r,async()=>{let s=At(r);try{await j.access(s)}catch{await n();return}let a;try{if(a=new o(s),a.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==no)throw new TypeError("Unsupported history event index version")}catch{a?.close(),await j.rm(s,{force:!0}),await n();return}try{a.exec("PRAGMA busy_timeout = 5000"),a.exec("BEGIN IMMEDIATE")}catch(d){throw a.close(),d}let c=!1;try{await n(),c=!0,i=!0;let d=H.basename(e,".jsonl"),u=a.prepare("SELECT COALESCE(MAX(stream_offset), -1) + 1 AS value FROM events WHERE stream_id = ?").get(d);Ss(a,{stream_id:d,stream_offset:Number(u.value),entry:t}),Cs(a,d,(await j.stat(e)).size),a.exec("COMMIT"),a.close()}catch(d){if(a?.close(),!c)throw d;await wn(r)}})}catch(s){if(i){await wn(r);return}if(!(s instanceof v)||s.code!=="lock_conflict")throw s;let a;try{await Rt(r,async()=>{let c=await Gl(r);a=c.pendingPath;try{await n(),i=!0}catch(d){throw await j.rm(c.pendingPath,{force:!0}),d}await j.rename(c.pendingPath,c.committedPath),await wn(r)})}catch(c){if(i){await wn(r);try{await j.rm(a,{force:!0})}catch{}return}throw c}}}async function io(e){await j.rm(At(H.dirname(H.dirname(e))),{force:!0})}function kn(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function ou(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 xs(e,t){let n=await to(e);if(n.pending.length>0||n.committed.length>0)return;let r=new t(At(e),{readOnly:!0});try{if(r.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value===no)return r}catch(o){throw r.close(),o}r.close()}async function ry(e,t){let n=On();if(!n)return null;let r=[],o=[];if(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 > ?))");let a=Sn(t.after_ts);o.push(a,a,t.after_stream_id,a,t.after_stream_id,t.after_stream_offset)}else t.since_ts!==void 0&&(r.push("ts >= ?"),o.push(Sn(t.since_ts)));kn(r,o,"op",t.ops),kn(r,o,"author",t.authors),ou(r,o,t.harnesses,t.harness_alias_authors),kn(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);kn(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s;try{return await Cn(e,async()=>Rt(e,async()=>{if(s=await xs(e,n),!s)return null;let a=await su(s,e,t.stream_ids);if(!await As(s,e,a))return s.close(),s=void 0,null;let c=s.prepare(`SELECT stream_id, stream_offset, entry_json
|
|
53
|
-
FROM events${i}
|
|
54
|
-
ORDER BY ts, stream_id, stream_offset
|
|
55
|
-
LIMIT ?`).all(...o,Math.max(0,Math.floor(t.limit))+1),d=c.slice(0,t.limit).map(Ts);return s.close(),s=void 0,d.includes(null)?null:{events:d,has_more:c.length>t.limit}}))}catch{return s?.close(),null}}function Rs(e,t){let n=Object.create(null);for(let r of e){if(!t.has(r.stream_id)||rt(r.entry)!=="substantive")continue;let o=n[r.stream_id];(o===void 0||oo(o,r)<0)&&(n[r.stream_id]=r)}return n}async function iu(e,t){if(H.basename(t)!==t)return null;try{return(await j.stat(H.join(e,"history",`${t}.jsonl`))).size}catch(n){if(te(n))return 0;throw n}}async function As(e,t,n){for(let r=0;r<n.length;r+=500){let o=n.slice(r,r+500),i=new Map(e.prepare(`SELECT stream_id, byte_size FROM streams
|
|
56
|
-
WHERE stream_id IN (${o.map(()=>"?").join(", ")})`).all(...o).map(a=>[String(a.stream_id),Number(a.byte_size)])),s=await Promise.all(o.map(a=>iu(t,a)));for(let[a,c]of s.entries()){if(c===null)return!1;let d=o[a],u=i.get(d);if(!(c===0&&u===void 0)&&c!==u)return!1}}return!0}async function su(e,t,n){if(n&&n.length>0)return[...new Set(n.filter(i=>i.trim().length>0))];let r=e.prepare("SELECT stream_id FROM streams").all().map(i=>String(i.stream_id)),o=await j.readdir(H.join(t,"history"),{withFileTypes:!0}).then(i=>i.filter(s=>s.isFile()&&s.name.endsWith(".jsonl")).map(s=>s.name.slice(0,-6))).catch(i=>{if(te(i))return[];throw i});return[...new Set([...r,...o])]}async function ws(e,t,n,r){if(!e)return null;let o;try{return await Cn(t,async()=>Rt(t,async()=>{if(o=await xs(t,e),!o)return null;if(!await As(o,t,n))return o.close(),o=void 0,null;let i=[];for(let s=0;s<n.length;s+=500){let a=n.slice(s,s+500),d=o.prepare(`SELECT stream_id, stream_offset, entry_json
|
|
57
|
-
FROM (
|
|
58
|
-
SELECT stream_id, stream_offset, entry_json,
|
|
59
|
-
ROW_NUMBER() OVER (
|
|
60
|
-
PARTITION BY stream_id
|
|
61
|
-
ORDER BY ts DESC, stream_offset DESC
|
|
62
|
-
) AS recency_rank
|
|
63
|
-
FROM events
|
|
64
|
-
WHERE event_class = 'substantive'
|
|
65
|
-
AND stream_id IN (${a.map(()=>"?").join(", ")})
|
|
66
|
-
)
|
|
67
|
-
WHERE recency_rank = 1`).all(...a).map(Ts);if(d.includes(null))return o.close(),o=void 0,null;i.push(...d)}return o.close(),o=void 0,Rs(i,r)}))}catch(i){return o?.close(),i instanceof v&&i.code==="lock_conflict"?In:null}}async function oy(e,t){let n=[...new Set(t.filter(a=>a.trim().length>0&&H.basename(a)===a))];if(n.length===0)return{};let r=new Set(n),o=On(),i=await ws(o,e,n,r);if(i!==null&&i!==In)return i;if(o&&i!==In)try{if(await eu(e)){let a=await ws(o,e,n,r);if(a!==null&&a!==In)return a}}catch{}let s=[];return await Promise.all(n.map(async a=>{let c=H.join(e,"history",`${a}.jsonl`);(await Is(c,a).catch(u=>{if(u instanceof v&&u.code==="history_timestamp_invalid")return[];throw u})).forEach((u,f)=>{s.push({stream_id:a,stream_offset:f,entry:u})})})),Rs(s,r)}import so from"node:fs/promises";import ot 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]="979782f5-f4ee-5df5-a68a-0c51ab0548ae")}catch{}})();var au=ot.join("runtime","history-drift-cache.json"),Ds={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 Ns(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function cu(e){let t=ot.join(e,au),n=!1,r="invalid_cache_path";try{n=(await so.stat(await so.realpath(e))).isDirectory()}catch(o){let i=Ns(o);r=i===void 0?"unknown":Ds[i]??"filesystem_error"}if(!n){br(`[pm] warning: history_drift_cache_invalidation_failed:${r}
|
|
68
|
-
`);return}try{await so.rm(t,{force:!0})}catch(o){let i=Ns(o);if(te(o))return;let s=i===void 0?"unknown":Ds[i]??"filesystem_error";br(`[pm] warning: history_drift_cache_invalidation_failed:${s}
|
|
69
|
-
`)}}async function xn(e){let t=ot.dirname(ot.resolve(e));ot.basename(t)==="history"&&await cu(ot.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]="2e7d6dba-0f9a-5bcf-a095-8bb7725efeff")}catch{}})();var uu={front_matter:{},body:""},ze=3,Dt=[1,2,3],fu=1,_u=[1];function $s(e){return Ee(L(e),e.hash_algorithm)}function it(e){return nn(L(e))}function Cy(e){return nn(L(e))}function uo(e){let t={...e,record_hash_version:fu},{record_hash:n,...r}=t;return{...t,record_hash:$s(r)}}function Dn(e){try{je(e.hash_algorithm)}catch{return{ok:!1,error:"unsupported_history_hash_algorithm"}}if(e.record_hash_version===void 0&&e.record_hash===void 0)return{ok:!0,coverage:"item_state_only"};if(e.record_hash_version===void 0||e.record_hash===void 0)return{ok:!1,error:"incomplete_record_hash_envelope"};if(!_u.includes(e.record_hash_version))return{ok:!1,error:"unsupported_record_hash_version"};let{record_hash:t,...n}=e;return $s(n)===e.record_hash?{ok:!0,coverage:"record_and_item_state"}:{ok:!1,error:"record_hash_mismatch"}}function mu(e,t){let n={before_hash:e.before_hash,after_hash:e.after_hash,patch_hash:it(e.patch)};return e.hash_algorithm!==void 0&&(n.hash_algorithm=e.hash_algorithm),e.item_hash_version!==void 0&&(n.item_hash_version=e.item_hash_version),t.retainOriginalPatch&&(n.patch=structuredClone(e.patch)),t.retainPriorRecordHash!==!1&&e.record_hash_version!==void 0&&e.record_hash!==void 0&&(n.record_hash_version=e.record_hash_version,n.record_hash=e.record_hash,n.record=structuredClone(e)),n}function zs(e,t,n={}){let r=Dn(e);if(!r.ok)throw new TypeError(r.error);let o=it(e.patch),i=n.retainPriorRecord===!0||e.before_hash!==t.before_hash||e.after_hash!==t.after_hash||e.item_hash_version!==t.item_hash_version||e.hash_algorithm!==t.hash_algorithm||o!==it(t.patch),s=uo({...t,...i?{reanchor_evidence:[...t.reanchor_evidence??[],mu(e,n)]}:{}}),a=fo(s);if(!a.ok)throw new TypeError(a.error);return s}function Hs(e){return!Array.isArray(e)||Object.keys(e).length!==e.length?!1:e.every(t=>!He(t)||typeof t.path!="string"?!1:t.op==="move"||t.op==="copy"?typeof t.from=="string":["add","replace","test"].includes(t.op)?Object.hasOwn(t,"value"):t.op==="remove")}function pu(e){return He(e)&&typeof e.ts=="string"&&typeof e.author=="string"&&typeof e.op=="string"&&typeof e.before_hash=="string"&&typeof e.after_hash=="string"&&Hs(e.patch)}function hu(e){let t=e.record_hash_version!==void 0,n=e.record_hash!==void 0;return t===n}function yu(e){return!He(e)||!hu(e)||typeof e.before_hash!="string"||typeof e.after_hash!="string"||typeof e.patch_hash!="string"||!/^[a-f0-9]{64}$/u.test(e.patch_hash)||e.patch!==void 0&&!Hs(e.patch)||e.record_hash_version!==void 0&&typeof e.record_hash_version!="number"||e.record_hash!==void 0&&(typeof e.record_hash!="string"||!/^(?:[a-f0-9]{64}|[a-f0-9]{128})$/u.test(e.record_hash))?!1:e.record===void 0||pu(e.record)}function gu(e){try{for(let t of e){if(!yu(t))return!1;je(t.hash_algorithm)}return!0}catch{return!1}}function vu(e){let t=e.record;return t!==void 0&&t.before_hash===e.before_hash&&t.after_hash===e.after_hash&&t.item_hash_version===e.item_hash_version&&t.hash_algorithm===e.hash_algorithm&&t.record_hash_version===e.record_hash_version&&t.record_hash===e.record_hash&&it(t.patch)===e.patch_hash}function wu(e,t,n){if(t.patch&&it(t.patch)!==t.patch_hash)return{kind:"patch_hash_mismatch"};if(t.record)return vu(t)?{kind:"record",entry:t.record}:{kind:"record_hash_mismatch"};let r=t.patch??e.patch;if(it(r)!==t.patch_hash)return{kind:"digest_only"};let o={...e,before_hash:t.before_hash,after_hash:t.after_hash,patch:r,hash_algorithm:t.hash_algorithm,...t.item_hash_version===void 0?{}:{item_hash_version:t.item_hash_version},...t.record_hash_version===void 0?{}:{record_hash_version:t.record_hash_version},...t.record_hash===void 0?{}:{record_hash:t.record_hash},...n.length===0?{}:{reanchor_evidence:n}};return t.hash_algorithm===void 0&&delete o.hash_algorithm,n.length===0&&delete o.reanchor_evidence,t.item_hash_version===void 0&&delete o.item_hash_version,t.record_hash_version===void 0||t.record_hash===void 0?{kind:"legacy",entry:o}:{kind:"record",entry:o}}function fo(e){let t=e.reanchor_evidence;if(t===void 0)return{ok:!0,coverage:"none"};if(!Array.isArray(t)||!gu(t))return{ok:!1,error:"rewrite_evidence_invalid"};if(t.length===0)return{ok:!0,coverage:"none"};let n=e;for(let r=t.length-1;r>=0;r-=1){let o=t[r],i=wu(n,o,t.slice(0,r));if(i.kind==="patch_hash_mismatch")return{ok:!1,error:"rewrite_evidence_patch_hash_mismatch"};if(i.kind==="record_hash_mismatch")return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};if(i.kind==="digest_only")return{ok:!0,coverage:"digest_only"};if(i.kind==="legacy")return{ok:!0,coverage:"legacy_anchor_only"};if(!Dn(i.entry).ok)return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};n=i.entry}return{ok:!0,coverage:"complete"}}function Rn(e,t){return(e??"").localeCompare(t??"")}function Ps(e,t){return(e??0)-(t??0)}function Ie(e,t,n){return JSON.stringify(e??n).localeCompare(JSON.stringify(t??n))}function bu(e,t){return[e.scope.localeCompare(t.scope),Rn(e.path,t.path),Rn(e.command,t.command),Ps(e.timeout_seconds,t.timeout_seconds),Rn(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,Ie(e.env_clear,t.env_clear,[]),Ie(e.env_set,t.env_set,{}),Ie(e.assert_stdout_contains,t.assert_stdout_contains,[]),Ie(e.assert_stdout_regex,t.assert_stdout_regex,[]),Ie(e.assert_stderr_contains,t.assert_stderr_contains,[]),Ie(e.assert_stderr_regex,t.assert_stderr_regex,[]),Ps(e.assert_stdout_min_lines,t.assert_stdout_min_lines),Ie(e.assert_json_field_equals,t.assert_json_field_equals,{}),Ie(e.assert_json_field_gte,t.assert_json_field_gte,{}),Rn(e.note,t.note)].find(r=>r!==0)??0}function Eu(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function ku(e,t){let n=Eu(t);if(n.length===0)return!0;let r=e;for(let o of n){let i=/^(0|[1-9]\d*)$/.test(o)?Number(o):-1,s=Array.isArray(r)?i>=0&&i<r.length?r[i]:void 0:He(r)&&Object.prototype.hasOwnProperty.call(r,o)?r[o]:void 0;if(s===void 0)return!1;r=s}return!0}function Iu(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!ku(r,o.path)?{...o,op:"add"}:o;n.push(i),r=Fs.applyPatch(r,[i],!0,!0).newDocument}return n}function An(e,t,n=!1){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let o=ne(e),s=t===1||t===2&&n?{...o.metadata,...o.metadata.dependencies===void 0?{}:{dependencies:o.metadata.dependencies.map(d=>({...d,id:d.id.toLowerCase()}))},...o.metadata.tests===void 0?{}:{tests:o.metadata.tests.map(({workspace_context_mode:d,provenance:u,provenance_invalid:f,..._})=>_)},...o.metadata.test_runs===void 0?{}:{test_runs:o.metadata.test_runs.map(({executions:d,...u})=>u)}}:o.metadata,a=t===1&&s.tests?{...s,tests:[...s.tests].sort(bu)}:s;return{front_matter:T(a,he),body:o.body}}function Ms(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let n=ne(e);return{metadata:T(n.metadata,he),body:n.body}}function Oy(e){return Us(e,ze)}function Us(e,t,n){if(!Dt.some(r=>r===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return Ee(L(An(e,t)),n)}function Bs(e,t,n){let r=Us(e,t,n);return t===2?[r,Ee(L(An(e,t,!0)),n)]:[r]}function xy(){return nn(L(uu))}function st(e){let t=An(e.before,ze),n=An(e.after,ze),r=Ms(e.before),o=Ms(e.after),i=Fs.compare(r,o),s=Iu(r,i),a=Zi(e.author),c=a.harness?Object.fromEntries(Object.entries(Ji().provenance_outcomes).filter(([,_])=>_.resolver!==void 0&&_.status!=="resolved")):void 0,d=c===void 0||Object.keys(c).length===0?e.context:{...e.context,agent_provenance_outcomes:c},u=e.hashAlgorithm??ns,f={hash_algorithm:u,ts:e.nowIso,author:e.author,author_source:e.authorSource??Qi(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(L(t),u),after_hash:Ee(L(n),u),item_hash_version:ze,message:e.message===void 0?void 0:e.message,...d===void 0?{}:{context:d}};return uo({...f,event_class:rt(f)})}function He(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ao(e){return new v(e,E.GENERIC_FAILURE,{code:"history_timestamp_invalid"})}function Ws(e){let t=e.ts.trim();if(t.length===0)return ve();if(!Ge(t))throw ao("History timestamp must be a valid RFC 3339 date-time with millisecond precision");if(t!==e.ts)throw ao("History timestamp must not contain surrounding whitespace");return e.ts}function js(e,t){let n=e.ts;if(typeof n=="string"&&n.trim().length>0){if(!Ge(n))throw ao("History timestamp must be a valid RFC 3339 date-time with millisecond precision");return e}return{...e,ts:t}}function co(e,t){let n=Ws(t);if(typeof e=="string"){let r;try{r=JSON.parse(e)}catch{return e}return He(r)?JSON.stringify(js(r,n)):e}return He(e)?JSON.stringify(js(e,n)):JSON.stringify(e)}async function Su(e,t,n){if(n===!1)return!0;if(typeof n=="string"){let s=co(n,t);return await lo(e,s),await xn(e),await io(e),!0}if(typeof n!="object"||n===null)return!1;let r=n;if(r.skip===!0)return!0;let o=typeof r.history_path=="string"?r.history_path:e,i=co(typeof r.line=="string"?r.line:r.entry??t,t);return await lo(o,i),await xn(o),await io(o),!0}async function lo(e,t){let n;try{n=JSON.parse(t)}catch{n=null}if(!He(n)||n.op!=="create"){await li(e,t);return}await Ls.mkdir(lu.dirname(e),{recursive:!0});try{await Ls.writeFile(e,`${t}
|
|
70
|
-
`,{encoding:"utf8",flag:"wx"})}catch(r){throw r.code!=="EEXIST"?r:new v("This item identity is reserved by an existing history stream.",E.CONFLICT,{code:"item_identity_reserved",required:"Choose a new item ID or restore the original item from its history.",nextSteps:["Run pm history <id> --full, then pm restore <id> <version> to recover the original item."]})}}async function at(e,t){let n=await It("history_append",{history_path:e,entry:t});if(n.handled&&await Su(e,t,n.result))return;let r=t.ts.trim().length>0?t:{...t,ts:Ws(t)},o=uo({...r,hash_algorithm:je(r.hash_algorithm),event_class:rt(r)});await Os(e,o,async()=>{await lo(e,co(o,o))}),await xn(e)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7a0fa585-7e3c-57fd-b29c-c26e9c522cb1")}catch{}})();var Tu={metadata:{},body:""};function Nn(){return structuredClone(Tu)}function $y(e,t=ze,n){return _o(e,t,n)[0]}function _o(e,t,n){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return Bs(Ln(e),t,n)}catch{}let r=Ee(L({replay_fallback:!0,metadata:e.metadata,body:e.body}),n);return t===2?[r,r]:[r]}function Ks(e,t,n,r){let o=je(r.hash_algorithm),i=_o(e,n,o),s=_o(t,n,o);return{beforeHashes:i,afterHashes:s,pairIndex:i.findIndex((a,c)=>a===r.before_hash&&s[c]===r.after_hash),beforeIndex:i.indexOf(r.before_hash),afterIndex:s.indexOf(r.after_hash)}}function Ln(e){return{metadata:e.metadata,body:e.body}}function zy(e,t={}){return ne(Ln(e),t)}function Hy(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=ne(e);return{metadata:T(t.metadata,he),body:t.body}}function Vs(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function Cu(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function Gs(e){return Array.isArray(e)?e.filter(Cu).map(t=>({...t,path:Vs(t.path),from:typeof t.from=="string"?Vs(t.from):void 0})):[]}function Ou(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 Pn(e,t){try{let n=Gs(t),r=mo.applyPatch(structuredClone(e),n,!0,!1).newDocument;return Ou(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 xu(e){return[...new Set(e.map(t=>t.item_hash_version).filter(t=>t!==void 0&&Dt.includes(t)))]}function Xs(e){return e!==void 0&&!Dt.includes(e)}function Ru(e,t){return e!==void 0?[e]:t===void 0?[...Dt]:[t]}function Ys(e){let t=Dn(e);if(!t.ok)return t.error;let n=fo(e);return n.ok?void 0:n.error}function Au(e,t){let n=Ys(e);if(n)return{ok:!1,error:n};let r=Pn(t,e.patch);return r.ok?{ok:!0,document:r.document}:{ok:!1,error:"patch_apply_failed"}}function Du(e,t){let n=Ys(e);if(n)throw new TypeError(`${n}:entry_${t+1}`)}function Js(e){let t=Nn(),n,r,o=vs(e).map(i=>`verify_failed:duplicate_create:entry_${i.repeated_create_index}:prior_${i.prior_genesis_index}`);for(let i=0;i<e.length;i+=1){let s=e[i],a=s.item_hash_version,c=Xs(a);c&&o.push(`verify_failed:unsupported_item_hash_version:${String(a)}:entry_${i+1}`);let d=Au(s,t);if(!d.ok)return{ok:!1,errors:[...o,`verify_failed:${d.error}:entry_${i+1}`]};if(c){t=d.document,n=void 0,r=void 0;continue}let f=Ru(a,r).map(m=>({version:m,match:Ks(t,d.document,m,s)})),_=f.find(({match:m})=>m.pairIndex>=0);if(_===void 0){let m=f.some(({match:y})=>y.beforeIndex>=0);return{ok:!1,errors:[...o,`verify_failed:${m?"after":"before"}_hash_mismatch:entry_${i+1}`]}}let p=_.version;t=d.document,n=p,r=a??r}return o.length>0?{ok:!1,errors:o,...n===void 0?{}:{item_hash_version:n}}:{ok:!0,errors:[],...n===void 0?{}:{item_hash_version:n}}}function ct(e){let t=Js(e);return{ok:t.ok,errors:t.errors}}function qs(e,t){try{return{ok:!0,document:mo.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function Nu(e,t){let n=structuredClone(e),r=0,o=0;for(let a of Gs(t)){let c=qs(n,a);if(c.ok){n=c.document;continue}if(a.op==="replace"){let d=qs(n,{...a,op:"add"});if(d.ok){n=d.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 Lu(e){let t=xu(e);if(t.length===1)return t[0];let n=Js(e);return n.ok&&n.item_hash_version!==void 0?n.item_hash_version:t.length===0?1:ze}function Pu(e,t){let n=Pn(e,t.patch);if(n.ok)return{next:n.document,patch:t.patch,repaired:!1,converted:0,skipped:0};let r=Nu(e,t.patch);return{next:r.document,patch:mo.compare(e,r.document),repaired:!0,converted:r.convertedReplaceToAdd,skipped:r.skippedOps}}function Uy(e,t=Lu(e),n={}){let r=e.findIndex(p=>Xs(p.item_hash_version));if(r>=0)throw new TypeError(`unsupported_item_hash_version:${String(e[r]?.item_hash_version)}:entry_${r+1}`);let o=Nn(),i=[],s=[],a=0,c=0,d=0,u=0,f,_=t!==1||e.some(p=>p.item_hash_version!==void 0);for(let p=0;p<e.length;p+=1){let m=e[p];Du(m,p);let y=Pu(o,m),{next:g,patch:S,repaired:R,converted:D,skipped:$}=y;d+=D,u+=$,c+=Number(R);let x=Ks(o,g,t,m);f===void 0||n.continuousHashSurface!==!0?f=[x.pairIndex,x.beforeIndex,x.afterIndex,Math.min(f??0,x.beforeHashes.length-1)].find(pe=>pe>=0):f=Math.min(f,x.beforeHashes.length-1);let q=x.beforeHashes[f],W=x.afterHashes[f],J=q!==m.before_hash||W!==m.after_hash;J&&(a+=1);let K={...m,patch:S,before_hash:q,after_hash:W};_?K.item_hash_version=t:delete K.item_hash_version;let ee=K.item_hash_version!==m.item_hash_version;(J||R||ee)&&(K=zs(m,K,{retainOriginalPatch:R})),i.push(K),s.push({index:p+1,rehashed:J,patch_repaired:R,converted_replace_to_add:D,skipped_ops:$}),o=g}return{entries:i,finalDocument:o,entriesRehashed:a,entriesPatchRepaired:c,convertedReplaceToAdd:d,skippedOps:u,details:s,itemHashVersion:t,explicitItemHashVersion:_}}function By(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
|
|
71
|
-
`)}
|
|
72
|
-
`}import ra from"node:fs/promises";import Mn from"node:path";import{isUtf8 as $u}from"node:buffer";import Mu from"node:fs/promises";import dt 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]="e2a2001e-b162-599e-b262-76d2223a343c")}catch{}})();var Nt="_workspace";function po(e){return dt.join(e,"history",`${Nt}.jsonl`)}function ju(e,t){return{metadata:{id:Nt,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 ho(e,t=e.length){let n=Nn();for(let r of e.slice(0,t))n=Pn(n,r.patch).document;return Ln(n)}function Qs(e){return"documents"in e.metadata&&typeof e.metadata.documents=="object"&&e.metadata.documents!==null&&!Array.isArray(e.metadata.documents)?e.metadata.documents:{}}function yo(e){throw new v(`Workspace history verification failed: ${e.join(", ")}`,E.CONFLICT,{code:"workspace_history_chain_invalid",reason:"workspace_history_chain_verification_failed",verification_errors:[...e],required:"Repair the _workspace history chain before reading, reconciling, restoring, or appending audited singleton state.",why:"Continuing against an unverifiable append-only stream could hide or compound workspace state corruption.",examples:["pm history _workspace --verify --json","pm validate --check-history-drift --fix-hints --json"],nextSteps:["Inspect the exact verification_errors and preserve the corrupt stream as evidence.","Use the history-drift remediation returned by validate before retrying the refused operation."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify --json"}})}function Fu(e,t){let n=dt.resolve(t),r=dt.relative(e,n).replaceAll("\\","/");if(r.length===0||r===".."||r.startsWith("../")||dt.isAbsolute(r))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:r,absolutePath:n}}async function ng(e){let t=await nt(po(e),Nt),n=ct(t);n.ok||yo(n.errors);let r=Qs(t.length===0?qe:ho(t)),o=[],i=[],s=[],a=[];for(let c of Object.keys(r).sort()){let d;try{let u=Fu(e,dt.resolve(e,c));if(d=await ye(u.absolutePath),d===null){s.push(c);continue}let f=JSON.parse(d);(L(f)===L(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 Zs(e){let t=po(e.pmRoot),n=await nt(t,Nt),r=ct(n);r.ok||yo(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=ve(),s=n.length===0?qe:ho(n),a=Qs(s),c=a[e.documentPath];if(c!==void 0&&L(c)!==L(e.before))throw new v(`Workspace history state for "${e.documentPath}" changed outside the audited mutation path.`,E.CONFLICT,{code:"workspace_history_state_conflict",reason:"out_of_band_workspace_state",required:"Reconcile the singleton document with its matching _workspace history state before retrying the mutation.",why:"Accepting the write would make the append-only audit stream describe a state that was not actually observed.",examples:["pm history _workspace --verify","pm validate --check-history-drift --fix-hints"],nextSteps:["Review the version-control change that altered the singleton and preserve the intended document plus its matching workspace history.","Rerun the original mutation only after the on-disk singleton agrees with the latest audited workspace state."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify"}});let d=ju({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),u=st({nowIso:i,author:e.author,op:e.idempotencyKey===void 0?e.op:`${e.op}:${e.idempotencyKey}`,before:s,after:d,message:e.message});return await at(t,u),{entry:u,historyPath:t}}async function rg(e){let t=await Q(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Zs(e)}finally{await t()}}async function ea(e){let t=await Q(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=po(e.pmRoot),r=await nt(n,Nt),o=ct(r);o.ok||yo(o.errors);let i=r.length===0?qe:ho(r),s=st({nowIso:ve(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await at(n,s),{entry:s,historyPath:n}}finally{await t()}}async function ta(e,t){if(t===e.raw)return!1;let n=t===null?null:JSON.parse(t),r=JSON.parse(e.raw);await G(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await Zs({pmRoot:e.pmRoot,documentPath:dt.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 Mu.rm(e.filePath,{force:!0}):await G(e.filePath,t),o}return!0}async function og(e){let t=await Q(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=await ye(e.filePath),r=await e.mutate(n);return{changed:await ta({...e,raw:r.raw},n),result:r.result}}finally{await t()}}async function na(e){let t=await Q(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await ta(e,await ye(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]="3635d0ca-b4ee-5c99-9115-6eace5120147")}catch{}})();var zu=1048576,Hu=4194304;async function oa(e,t){let n=Mn.dirname(e);for(;n!==Mn.parse(e).root;){let o=await ra.stat(n).catch(i=>{if(te(i))return null;throw i});if(o!==null){if(!o.isDirectory())throw new v("Workflow policy storage ancestor must be a directory.",E.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Restore the policy or approval history directory before retrying."]});break}n=Mn.dirname(n)}let r=await ra.open(e,"r").catch(o=>{if(te(o))return null;throw o});if(r===null)return null;try{let o=(await r.stat()).size,i=Buffer.alloc(Math.min(t,o)+1),s=0;for(;s<i.length;){let a=await r.read(i,s,i.length-s,s);if(a.bytesRead===0)break;s+=a.bytesRead}if(s===i.length||!$u(i.subarray(0,s)))throw new v("Workflow policy input exceeds its byte bound or is not valid UTF-8.",E.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Inspect the policy and approval history; reduce the declaration or use verified history compaction before retrying."]});return i.toString("utf8",0,s)}finally{await r.close()}}function Uu(e){if(e===null)return{version:1,enforcement:"advise",policies:[]};let t;try{t=JSON.parse(e)}catch{throw new v("schema/policies.json must contain valid JSON.",E.CONFLICT,{code:"workflow_policy_registry_invalid",nextSteps:["Restore valid policy JSON before retrying the mutation."]})}return Ii(t)}async function Bu(e){return Uu(await oa(Mn.join(e,"schema","policies.json"),zu))}async function Wu(e,t){let n=await oa(De(e,t),Hu);if(n===null)return[];let r;try{if(r=n.split(/\r?\n/).filter(o=>o.trim()).map(o=>JSON.parse(o)),!ct(r).ok)throw new Error("invalid chain")}catch{throw new v("Approval evidence requires a valid item history chain.",E.CONFLICT,{code:"workflow_policy_approval_history_invalid",nextSteps:[`Run pm history ${t} --verify before recording or using an approval.`]})}return r.flatMap(o=>{let i=o.context?.workflow_approval;if(o.op!=="policy_approve"||o.record_hash_version!==1||typeof o.record_hash!="string"||typeof i!="object"||i===null)return[];let s=i;return typeof s.policy_fingerprint!="string"||typeof s.content_fingerprint!="string"?[]:[{policy_fingerprint:s.policy_fingerprint,content_fingerprint:s.content_fingerprint,author:o.author}]})}async function Vu(e,t,n){let r=n.before?.status!==n.after?.status&&t.policies.some(s=>s.rule.kind==="approval"&&Si(s,n)),o=n.before?.id??n.after?.id,i=r&&typeof o=="string"?await Wu(e,o):[];return Ti(t,{...n,approvals:i})}async function go(e){let t=await Bu(e.pmRoot),n=await Vu(e.pmRoot,t,{operation:e.operation,author:e.author,before:e.before?{...e.before.metadata,body:e.before.body}:null,after:e.after?{...e.after.metadata,body:e.after.body}:null});if(n.allowed)return n;let r=n.decisions.filter(s=>!s.satisfied&&s.effect==="refuse");if(!e.dryRun)try{await ea({pmRoot:e.pmRoot,op:"policy_refused",author:e.author,context:{item_id:e.after?.metadata.id??e.before?.metadata.id,operation:e.operation,workflow_policies:n.decisions},message:"Workflow policy refused a proposed item mutation.",lockTtlSeconds:e.settings.locks.ttl_seconds,lockWaitMs:e.settings.locks.wait_ms})}catch(s){let a=new v("Workflow policy refusal could not be recorded in workspace history.",E.CONFLICT,{code:"workflow_policy_audit_failed",nextSteps:["Resolve workspace-history lock or storage failures, then retry the refused mutation; no item changes were written."]});throw a.cause=s,a}let o=r.slice(0,3).map(s=>`${s.policy_id} (${s.rule})`).join(", "),i=r.length>3?` and ${r.length-3} more`:"";throw new v(`Workflow policy refused ${e.operation}: ${o}${i}.`,E.CONFLICT,{code:"workflow_policy_refused",reason:r.slice(0,3).map(s=>s.policy_id).join(","),nextSteps:[...new Set(r.map(s=>s.remediation))].slice(0,3)})}import{AsyncLocalStorage as qu}from"node:async_hooks";import{channel as Ku}from"node:diagnostics_channel";(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]="118ec110-fa84-550b-a0a8-4def314270b6")}catch{}})();var vo=new qu,wo=Ku("@unbrained/pm-cli/item-metadata-enumeration/v1");function jn(e){wo.publish(e)}async function vg(e){let t={enumeration_calls:0,metadata_rows:0},n=r=>{vo.getStore()?.includes(t)&&(t.enumeration_calls+=1,t.metadata_rows+=r)};wo.subscribe(n);try{return{result:await vo.run([...vo.getStore()??[],t],e),work:{...t}}}finally{wo.unsubscribe(n)}}import Gu from"node:crypto";import Fn 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]="72c5a2e2-4e90-587d-a461-946b4836e447")}catch{}})();function sa(e){let t=[],n=!1;for(let r of(e??"").toLowerCase()){let o=r.charCodeAt(0),i=o>=48&&o<=57,s=o>=97&&o<=122;if(!i&&!s){n=t.length>0;continue}n&&(t.push("-"),n=!1),t.push(r)}return t.length===0?"pm-":`${t.join("")}-`}function bo(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function Lt(e,t){let n=sa(t),r=bo(e);return r.startsWith(n)?r:`${n}${r}`}function Xu(e){let t=Ai(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=Gu.randomInt(0,36).toString(36);return n}async function Yu(e,t,n){let r=[...new Set(Object.values(n))].flatMap(o=>[Fn.join(e,o,`${t}.md`),Fn.join(e,o,`${t}.toon`)]);return r.push(Fn.join(e,"history",`${t}.jsonl`)),(await Promise.all(r.map(o=>Ae(o)))).some(Boolean)}var ia=4,aa=12;function Ju(e){return typeof e!="number"||!Number.isFinite(e)?ia:Math.min(aa,Math.max(ia,Math.trunc(e)))}async function Tg(e,t,n={}){let r=Ju(n.tokenLength),o=Math.min(r+6,aa),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${sa(t)}${Xu(r)}`;if(!await(n.probeExisting===!1?Ae(Fn.join(e,"history",`${a}.jsonl`)):Yu(e,a,n.typeToFolder??Re)))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import Ue from"node:fs/promises";import da from"node:path";import{randomUUID as Qu}from"node:crypto";import{createRequire as Zu}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]="e9e67ec7-10cb-57b0-a094-ae52b01a0f8a")}catch{}})();var ef="metadata-query-index.sqlite",Pt="5";function tf(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}var $n;function nf(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?tf(t):null}function Mt(){return $n!==void 0||($n=nf(process.versions.node,Zu(import.meta.url))),$n}function ca(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function lt(e){return da.join(e,"runtime",ef)}function rf(e){e.exec(`
|
|
73
|
-
PRAGMA foreign_keys = ON;
|
|
74
|
-
PRAGMA journal_mode = OFF;
|
|
75
|
-
PRAGMA synchronous = OFF;
|
|
76
|
-
CREATE TABLE metadata (
|
|
77
|
-
key TEXT PRIMARY KEY,
|
|
78
|
-
value TEXT NOT NULL
|
|
79
|
-
) STRICT;
|
|
80
|
-
CREATE TABLE items (
|
|
81
|
-
id TEXT PRIMARY KEY,
|
|
82
|
-
relative_path TEXT NOT NULL UNIQUE,
|
|
83
|
-
metadata_json TEXT NOT NULL,
|
|
84
|
-
status TEXT NOT NULL,
|
|
85
|
-
type TEXT NOT NULL,
|
|
86
|
-
priority INTEGER NOT NULL,
|
|
87
|
-
updated_at TEXT NOT NULL,
|
|
88
|
-
created_at TEXT NOT NULL,
|
|
89
|
-
parent TEXT,
|
|
90
|
-
assignee TEXT,
|
|
91
|
-
sprint TEXT,
|
|
92
|
-
release TEXT
|
|
93
|
-
) STRICT;
|
|
94
|
-
CREATE INDEX items_default_order
|
|
95
|
-
ON items(priority, updated_at DESC, id);
|
|
96
|
-
CREATE INDEX items_status_default_order
|
|
97
|
-
ON items(status, priority, updated_at DESC, id);
|
|
98
|
-
CREATE INDEX items_type_default_order
|
|
99
|
-
ON items(type, priority, updated_at DESC, id);
|
|
100
|
-
CREATE INDEX items_parent_default_order
|
|
101
|
-
ON items(parent, priority, updated_at DESC, id);
|
|
102
|
-
CREATE TABLE item_metadata_keys (
|
|
103
|
-
item_id TEXT NOT NULL,
|
|
104
|
-
key TEXT NOT NULL,
|
|
105
|
-
PRIMARY KEY(item_id, key),
|
|
106
|
-
FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
|
|
107
|
-
) STRICT;
|
|
108
|
-
CREATE INDEX item_metadata_keys_key_item
|
|
109
|
-
ON item_metadata_keys(key, item_id);
|
|
110
|
-
CREATE TABLE item_linked_files (
|
|
111
|
-
item_id TEXT NOT NULL,
|
|
112
|
-
path TEXT NOT NULL,
|
|
113
|
-
scope TEXT NOT NULL,
|
|
114
|
-
note TEXT,
|
|
115
|
-
PRIMARY KEY(item_id, path, scope),
|
|
116
|
-
FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
|
|
117
|
-
) STRICT;
|
|
118
|
-
CREATE INDEX item_linked_files_path_scope_item
|
|
119
|
-
ON item_linked_files(path, scope, item_id);
|
|
120
|
-
CREATE VIRTUAL TABLE item_search USING fts5(
|
|
121
|
-
id UNINDEXED,
|
|
122
|
-
title,
|
|
123
|
-
description,
|
|
124
|
-
tags,
|
|
125
|
-
tokenize = 'unicode61'
|
|
126
|
-
);
|
|
127
|
-
`)}function Hn(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function la(e,t){let n=t.metadata;e.prepare(`INSERT INTO items(
|
|
128
|
-
id, relative_path, metadata_json, status, type, priority,
|
|
129
|
-
updated_at, created_at, parent, assignee, sprint, release
|
|
130
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
131
|
-
ON CONFLICT(id) DO UPDATE SET
|
|
132
|
-
relative_path = excluded.relative_path,
|
|
133
|
-
metadata_json = excluded.metadata_json,
|
|
134
|
-
status = excluded.status,
|
|
135
|
-
type = excluded.type,
|
|
136
|
-
priority = excluded.priority,
|
|
137
|
-
updated_at = excluded.updated_at,
|
|
138
|
-
created_at = excluded.created_at,
|
|
139
|
-
parent = excluded.parent,
|
|
140
|
-
assignee = excluded.assignee,
|
|
141
|
-
sprint = excluded.sprint,
|
|
142
|
-
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 rowid = (SELECT rowid FROM items WHERE id = ?)").run(n.id),e.prepare("INSERT INTO item_search(rowid, id, title, description, tags) SELECT rowid, ?, ?, ?, ? FROM items WHERE id = ?").run(n.id,n.title,n.description,n.tags.join(" "),n.id);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 ua(e){let t=lt(e.pmRoot),n=Mt();if(!n){await Ue.rm(t,{force:!0});return}await Ue.mkdir(da.dirname(t),{recursive:!0});let r=`${t}.${Qu()}.tmp`,o;try{o=new n(r),rf(o),o.exec("BEGIN IMMEDIATE"),Hn(o,"version",Pt),Hn(o,"context_fingerprint",e.contextFingerprint),Hn(o,"source_cursor",e.sourceCursor);for(let i of e.rows)la(o,i);o.exec("COMMIT"),o.close(),o=void 0,await Ue.rm(t,{force:!0}),await Ue.rename(r,t)}catch(i){throw o?.close(),await Promise.allSettled([Ue.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 fa(e){let t=Mt();if(!t)return!1;let n=lt(e.pmRoot),r;try{await Ue.access(n),r=new t(n),r.exec("PRAGMA foreign_keys = ON");let o=Un(r);if(o.version!==Pt||o.context_fingerprint!==e.contextFingerprint||o.source_cursor!==e.expectedSourceCursor)return r.close(),!1;r.exec("BEGIN IMMEDIATE");let i=r.prepare("DELETE FROM items WHERE relative_path = ?"),s=r.prepare("SELECT rowid FROM items WHERE relative_path = ?"),a=r.prepare("DELETE FROM item_search WHERE rowid = ?");for(let c of e.deletedRelativePaths??[]){let d=s.get(c);i.run(c),d&&a.run(d.rowid)}return e.row&&la(r,e.row),Hn(r,"source_cursor",e.sourceCursor),r.exec("COMMIT"),r.close(),!0}catch{try{r?.exec("ROLLBACK")}catch{}return r?.close(),!1}}function zn(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function of(e){let t=[],n=[];zn(t,n,"status",e.statuses,"IN"),zn(t,n,"status",e.excludeStatuses,"NOT IN"),zn(t,n,"type",e.types,"IN"),zn(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 Dg(e){let t=Mt();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=of(n),i;try{i=new t(lt(e.pmRoot),{readOnly:!0});let s=Un(i);if(s.version!==Pt||s.source_cursor!==e.expectedSourceCursor)return i.close(),null;let a=i.prepare(`SELECT COUNT(*) AS count FROM items${r}`).get(...o),c=[],d="";n.limit!==void 0?(d+=" LIMIT ?",c.push(Math.max(0,Math.floor(n.limit))),n.offset!==void 0&&(d+=" OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))))):n.offset!==void 0&&(d+=" LIMIT -1 OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))));let f=i.prepare(`SELECT metadata_json FROM items${r}
|
|
143
|
-
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${d}`).all(...o,...n.terminalStatuses??[],...c).map(_=>{let p=JSON.parse(String(_.metadata_json));if(!p.id)throw new TypeError("Indexed metadata row has no id");return p});return i.close(),{source_cursor:s.source_cursor,total:Number(a.count),items:f}}catch{return i?.close(),null}}async function Ng(e){let t=Mt();if(!t||e.paths.length===0)return null;let n;try{n=new t(lt(e.pmRoot),{readOnly:!0});let r=Un(n);if(r.version!==Pt||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
|
|
144
|
-
FROM item_linked_files
|
|
145
|
-
WHERE ${a}`).get(...s),d=ca(e.limit,50),u=ca(e.offset,0),f=n.prepare(`SELECT items.id, items.metadata_json
|
|
146
|
-
FROM items
|
|
147
|
-
WHERE EXISTS (
|
|
148
|
-
SELECT 1 FROM item_linked_files
|
|
149
|
-
WHERE item_linked_files.item_id = items.id AND ${a}
|
|
150
|
-
)
|
|
151
|
-
ORDER BY items.priority ASC, items.updated_at DESC, items.id ASC
|
|
152
|
-
LIMIT ? OFFSET ?`).all(...s,d,u),_=[];if(f.length>0){let p=f.map(g=>String(g.id)),m=n.prepare(`SELECT item_id, path, scope, note
|
|
153
|
-
FROM item_linked_files
|
|
154
|
-
WHERE item_id IN (${p.map(()=>"?").join(", ")})
|
|
155
|
-
AND ${a}
|
|
156
|
-
ORDER BY path ASC, scope ASC`).all(...p,...s),y=new Map(p.map(g=>[g,[]]));for(let g of m){let S=String(g.item_id),R=y.get(S);R.push({path:String(g.path),scope:String(g.scope),...g.note===null?{}:{note:String(g.note)}}),y.set(S,R)}for(let g of f){let S=JSON.parse(String(g.metadata_json));_.push({item:S,files:y.get(String(g.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:_}}catch{return n?.close(),null}}async function Lg(e){let t=Mt();if(!t)return null;let n;try{n=new t(lt(e.pmRoot),{readOnly:!0});let r=Un(n);if(r.version!==Pt||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let i=n.prepare(`SELECT items.metadata_json
|
|
157
|
-
FROM item_search
|
|
158
|
-
JOIN items ON items.id = item_search.id
|
|
159
|
-
WHERE item_search MATCH ?
|
|
160
|
-
ORDER BY bm25(item_search), items.priority, items.updated_at DESC, items.id
|
|
161
|
-
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 Bn(e){await Ue.rm(lt(e),{force:!0})}import B from"node:fs/promises";import M from"node:path";import{createHash as sf,randomUUID as ya}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]="1c60c095-9763-5372-9dc3-c0ea1a5caca6")}catch{}})();var se=8,ga=500,af="metadata-derived-index",cf="metadata-cache.json",df="metadata-cache-bodies.json",lf="metadata-cache-collections.json",uf="metadata-cache-delta.json",ff="metadata-cache-manifest.json",_a=4,_f=["comments","notes","learnings","files","tests","test_runs","docs"];function va(){return Zt(de())}function Vn(e){let t={...e},n={};for(let r of _f)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function wa(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function ba(e,t,n,r){let o=sf("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 qn(e){return M.join(e,"runtime",cf)}function Kn(e){return M.join(e,"runtime",df)}function Gn(e){return M.join(e,"runtime",lf)}function ko(e){return M.join(e,"runtime",uf)}function Io(e){return M.join(e,"runtime",ff)}function Xn(e,t){let n=M.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var mf=24,Z=new Map,Yn=new WeakMap;function So(e){return Yn.get(e)??e.source_cursor}function pf(e,t){let n=So(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){Yn.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 hf(e,t){if(!e)return;let n=So(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){Yn.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 yf(e,t){if(!e)return;let n=So(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){Yn.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 gf(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(pf(e,r),hf(t,r),yf(n,r))}function Eo(e,t){Z.size>=mf&&!Z.has(e)&&gi(Z),Z.set(e,t)}async function Se(e,t){let n;try{n=await B.stat(e)}catch{return Z.delete(e),null}let r=Z.get(e);if(r&&jt(r.signature,n.mtimeMs,n.ctimeMs,n.size))return Z.delete(e),Z.set(e,r),r.envelope;let o;try{o=t(await B.readFile(e,"utf8"))}catch{o=null}return Eo(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function vf(e,t,n){let r=a=>{let c=JSON.parse(a);return c.version!==se||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=qn(e),i=await Se(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await Se(Xn(o,t),r);return s===null&&zt(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function wf(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==se||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=Kn(e),o=await Se(r,n);return t&&o?.context_fingerprint!==t?await Se(Xn(r,t),n):o}async function bf(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==se||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=Gn(e),o=await Se(r,n);return t&&o?.context_fingerprint!==t?await Se(Xn(r,t),n):o}async function To(e){let t=ko(e),n=await Se(t,r=>{let o=JSON.parse(r);return o.version!==se||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 B.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function Co(e){let t=Io(e),n=await Se(t,r=>{let o=JSON.parse(r);return o.version!==se||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 B.stat(t),await ut(e)}catch{}return null}async function Ft(e,t){await B.mkdir(M.dirname(e),{recursive:!0}),await G(e,JSON.stringify(t));try{let r=await B.stat(e);Eo(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{Z.delete(e)}let n=M.dirname(M.dirname(e));if(e===qn(n)||e===Kn(n)||e===Gn(n)){let r=Xn(e,t.context_fingerprint);await G(r,JSON.stringify(t));try{let c=await B.stat(r);Eo(r,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{Z.delete(r)}let o=M.dirname(e),i=M.extname(e),s=M.basename(e,i),a=(await B.readdir(o,{withFileTypes:!0}).catch(()=>[])).filter(c=>c.isFile()&&c.name!==M.basename(e)&&c.name.startsWith(`${s}.`)&&c.name.endsWith(i)).map(c=>M.join(o,c.name));if(a.length>_a){let c=(await Promise.all(a.map(async d=>{try{return{path:d,mtime:(await B.stat(d)).mtimeMs}}catch{return null}}))).filter(d=>d!==null);for(let d of c.sort((u,f)=>u.mtime-f.mtime).slice(0,Math.max(0,c.length-_a)))await B.rm(d.path,{force:!0}),Z.delete(d.path)}}}function Ef(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function Ea(e,t,n){return e===void 0||Ef(e,t,n)}function zt(e,t){e&&!e.includes(t)&&e.push(t)}function jt(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function kf(e,t,n){let r=M.join(e,t);try{let o=await B.readdir(r);return{folder:t,dirPath:r,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&!te(o)&&zt(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function If(e,t){try{let n=await B.stat(M.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 Wn(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await If(e,n))))}function $t(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&&jt(o,r.mtime_ms,r.ctime_ms,r.size)})}function Sf(e){return tn.some(t=>e.toLowerCase().endsWith(t))}function Tf(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function Cf(e,t,n){if(n)for(let r of await ge({path:e,scope:"project"}))zt(t,r)}function ma(e,t,n,r){if(e)return t&&n?n.collections:r}async function Of(e,t,n){let r=await B.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=hr(e);await Cf(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],d=!n.forceSourceRead&&c!==void 0&&jt(c,o,i,s),u=n.previousBodies[t],f=!n.forceSourceRead&&u!==void 0&&jt(u,o,i,s),_=n.previousCollections[t],p=!n.forceSourceRead&&_!==void 0&&jt(_,o,i,s);if(!(!d||n.includeBody&&!f||n.includeCollections&&!p))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:c.metadata,heavyMetadata:ma(n.includeCollections,p,_,void 0),bodyLength:c.body_length,body:n.includeBody?u.body:void 0};let y=await B.readFile(e,"utf8"),g=vn(y,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:R=>zt(n.warnings,R)}),S=Vn(g.metadata);return Tf(n.state.misses,n.includeBody,n.includeCollections,d,f,p),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:d?c.metadata:S.light,heavyMetadata:ma(n.includeCollections,p,_,S.heavy),bodyLength:d?c.body_length:g.body.length,body:n.includeBody?g.body:void 0}}function xf(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?wa(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};Ea(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function Rf(e,t,n,r){try{let o=await Of(t,n,r);xf(t,n,r,o)}catch{zt(r.warnings,`item_list_item_read_failed:${e}/${M.basename(t)}`)}}function Af(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function Df(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function Nf(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function Lf(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}async function Pf(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!Sf(s))continue;let a=M.join(o,s),c=M.relative(t.pmRoot,a);n.push(Rf(r,a,c,t)),n.length===32&&(await Promise.all(n),n.length=0)}await Promise.all(n)}async function Mf(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!$t(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await Ft(qn(e.pmRoot),{version:se,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await Ft(Io(e.pmRoot),{version:se,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:M.relative(e.pmRoot,r.item_path),metadata:Vn(r.metadata).light,linkedFiles:r.metadata.files??[]}));n.length>=e.minimumIndexedItems?await ua({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:n}):await Bn(e.pmRoot)}catch{}}async function jf(e){!(e.state.misses.body||Object.keys(e.previousBodies).length!==Object.keys(e.state.newBodies).length)&&e.existingBodyCache!==null&&e.existingBodyCache.context_fingerprint===e.contextFingerprint||await Ft(Kn(e.pmRoot),{version:se,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function Ff(e){!(e.state.misses.collections||Object.keys(e.previousCollections).length!==Object.keys(e.state.newCollections).length)&&e.existingCollectionsCache!==null&&e.existingCollectionsCache.context_fingerprint===e.contextFingerprint||await Ft(Gn(e.pmRoot),{version:se,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function Oo(e,t,n={}){let r=await Co(e);return n.required!==!0&&(r===null||r.entry_count<ga)?async()=>{}:Q(e,af,30,t,!1,!1,3e3)}async function Kg(e,t){let n=await Co(e);if(n===null)return null;let r=await To(e);if(r.invalid)return await ut(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&&!$t(i,await Wn(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function pa(e,t){let n=M.relative(e,t);return n===""||n===".."||n.startsWith(`..${M.sep}`)||M.isAbsolute(n)?null:n}async function ut(e){await Promise.all([qn(e),Kn(e),Gn(e),ko(e),Io(e)].map(async t=>{await B.rm(t,{force:!0}),Z.delete(t)})),await Bn(e)}async function $f(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await B.stat(e.mutation.itemPath),n=Vn(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 zf(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function xo(e){let t=pa(e.pmRoot,e.itemPath),n=e.previousItemPath?pa(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await ut(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=ba(e.preferredFormat,e.typeToFolder,e.schema,va()),o=await Co(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await To(e.pmRoot);if(s.invalid)return await ut(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=zf(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 $f({mutation:e});let d=ya();return await Ft(ko(e.pmRoot),{version:se,context_fingerprint:r,base_source_cursor:i,source_cursor:d,directory_signatures:await Wn(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await fa({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:d,row:e.document===null?null:{relativePath:t,metadata:Vn(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await Bn(e.pmRoot),[]}catch{return await ut(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function Hf(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function ha(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function Uf(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function Bf(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=hr(n);if(!o)continue;let i=e.includeCollections?wa(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);Ea(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:M.join(e.pmRoot,n)}})}return[...t.values()].sort((n,r)=>n.candidate.metadata.id.localeCompare(r.candidate.metadata.id)).map(n=>n.candidate)}function Wf(e){return e.forceSourceScan||vr()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!$t(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||ha(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||ha(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&Uf(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function Jn(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=va(),d=ba(t,n,o,c),u=await To(e);u.invalid&&await ut(e);let f=await vf(e,d,i.cacheDiagnostics),_=s?await wf(e,d):null,p=a?await bf(e,d):null;gf(f,_,p,u.envelope);let m=Af(f,d),y=Df(_,d),g=Nf(p,d),S=[...new Set(Object.values(n))],R=await Wn(e,S),D=Object.keys(m),$=Math.max(1,Math.floor(i.derivedIndexMinimumItems??ga));if(Wf({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:d,existingCache:f,existingBodyCache:_,existingCollectionsCache:p,directorySignatures:R,entryKeys:D,minimumIndexedItems:$,includeBody:s,includeCollections:a,previousBodies:y,previousCollections:g}))return Bf({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:m,previousBodies:y,previousCollections:g});let x=await Promise.all(S.map(vt=>kf(e,vt,r))),q=vr(),W=Lf(),J={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,forceSourceRead:i.forceSourceScan===!0,dispatchReadHooks:q,previousEntries:m,previousBodies:y,previousCollections:g,state:W};await Pf(x,J);let K=await Wn(e,S),ee=$t(R,K)?K:{},We=W.misses.metadata||Object.keys(m).length!==Object.keys(W.newEntries).length||!$t(f?.directory_signatures,ee)||f===null?ya():f.source_cursor;return await Mf({pmRoot:e,contextFingerprint:d,sourceCursor:We,existingCache:f,previousEntries:m,directorySignatures:ee,state:W,minimumIndexedItems:$}),s&&await jf({pmRoot:e,contextFingerprint:d,sourceCursor:We,existingBodyCache:_,previousBodies:y,state:W}),a&&await Ff({pmRoot:e,contextFingerprint:d,sourceCursor:We,existingCollectionsCache:p,previousCollections:g,state:W}),Hf(W)}async function ka(e,t,n,r,o){return(await Jn(e,t,n,r,o,{includeBody:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}async function Ia(e,t,n,r,o){return(await Jn(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}(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]="0a3dd0c1-2dea-5143-a2eb-65e758a0cc71")}catch{}})();function ae(){let e=ce();for(let t of de()?.relationship_kinds??[])for(let n of t.definitions)e.register(n);return e}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="83d1acab-79a1-5e9f-b6a4-97dade07d74a")}catch{}})();function Ht(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function Qn(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function Vf(e,t){let n=new Set,r=[];for(let o of[...e].sort()){if(n.has(o))continue;n.add(o);let i=[{nodeId:o,children:[...t.get(o)??[]].sort(),nextChild:0}];for(;i.length>0;){let s=i.at(-1),a=s.children[s.nextChild];a===void 0?(r.push(s.nodeId),i.pop()):(s.nextChild+=1,n.has(a)||(n.add(a),i.push({nodeId:a,children:[...t.get(a)??[]].sort(),nextChild:0})))}}return r}function qf(e,t){let n=[...e].sort(),r=Vf(n,t),o=new Set,i=Kf(n,t),s=[];for(let a of r.reverse()){if(o.has(a))continue;let c=Gf(a,i,o);(c.length>1||t.get(c[0])?.has(c[0]))&&s.push(c)}return s.sort((a,c)=>a.join("\0").localeCompare(c.join("\0")))}function Kf(e,t){let n=new Map(e.map(r=>[r,new Set]));for(let[r,o]of t)for(let i of o)n.get(i)?.add(r);return n}function Gf(e,t,n){let r=[],o=[e];for(n.add(e);o.length>0;){let i=o.pop();r.push(i);for(let s of[...t.get(i)].sort())n.has(s)||(n.add(s),o.push(s))}return r.sort()}function Sa(e){let t=new Map;for(let n of e){let r=Ht(n?.id);r&&!t.has(r)&&t.set(r,n)}return t}function Xf(e,t,n){let r=Ht(t.parent);if(!(!r||!n.has(r)))return{parent_id:r,child_id:e,source:"scalar_parent",kind:"parent",holder_id:e,child_cardinality:"one"}}function Yf(e,t,n,r){let o=Ht(t?.id),i=r.resolve(t?.kind);if(!o||!n.has(o)||!i?.hierarchy)return;let s=i.hierarchyDirection==="source_parent";return{parent_id:s?e:o,child_id:s?o:e,source:"dependency",kind:i.kind,holder_id:e,target_id:o,child_cardinality:s?i.incoming:i.outgoing}}function Ta(e,t){let n=new Map;for(let[r,o]of e){let i=Xf(r,o,e);i&&n.set(Qn(i),i);for(let s of o.dependencies??[]){let a=Yf(r,s,e,t);a&&n.set(Qn(a),a)}}return[...n.values()].sort((r,o)=>Qn(r).localeCompare(Qn(o)))}function tv(e,t=ae()){return Ta(Sa(e),t)}function Jf(e,t,n){let r=new Set(e.filter(o=>o.child_cardinality==="one").map(o=>o.child_id));return[...t].filter(([o,i])=>i.length>1&&r.has(o)).map(([o,i])=>({child_id:o,parent_ids:[...i],legacy_terminal:n.has(o)&&i.every(s=>n.has(s))})).sort((o,i)=>o.child_id.localeCompare(i.child_id))}function Qf(e,t,n){let r=new Map;for(let i of t){if(i.source!=="dependency")continue;let s=r.get(i.child_id)??new Set;s.add(i.parent_id),r.set(i.child_id,s)}let o=[];for(let[i,s]of e){let a=Ht(s.parent);if(!a||!e.has(a))continue;let c=[...r.get(i)??[]].filter(d=>d!==a).sort();c.length!==0&&o.push({child_id:i,scalar_parent_id:a,dependency_parent_ids:c,legacy_terminal:n.has(i)&&n.has(a)&&c.every(d=>n.has(d))})}return o.sort((i,s)=>i.child_id.localeCompare(s.child_id))}function Zn(e,t=r=>r==="closed"||r==="canceled",n=ae()){let r=Sa(e),o=Ta(r,n),i=Zf(o),s=new Set([...r].filter(([,c])=>t(c.status)).map(([c])=>c)),a=qf([...r.keys()],new Map([...i.children_by_parent].map(([c,d])=>[c,new Set(d)]))).map(c=>({item_ids:c,legacy_terminal:c.every(d=>s.has(d))}));return{relations:o,cycles:a,cardinality_violations:Jf(o,i.parents_by_child,s),divergences:Qf(r,o,s)}}function nv(e){return e.source==="scalar_parent"?`${e.parent_id} -> ${e.child_id} (scalar parent on ${e.holder_id})`:`${e.parent_id} -> ${e.child_id} (${e.kind} dependency on ${e.holder_id})`}function Zf(e){let t=new Map,n=new Map;for(let r of e){let o=t.get(r.child_id)??new Set;o.add(r.parent_id),t.set(r.child_id,o);let i=n.get(r.parent_id)??new Set;i.add(r.child_id),n.set(r.parent_id,i)}return{parents_by_child:new Map([...t].map(([r,o])=>[r,[...o].sort()])),children_by_parent:new Map([...n].map(([r,o])=>[r,[...o].sort()]))}}function Ro(e,t){let n=new Set(t);return e.every(r=>n.has(r))}function rv(e,t,n,r,o){let i=Ht(n);if(!i)return;let s=Zn(e,r,o),a=Zn(t,r,o),c=a.divergences.find(f=>!s.divergences.some(_=>_.child_id===f.child_id&&_.scalar_parent_id===f.scalar_parent_id&&Ro(f.dependency_parent_ids,_.dependency_parent_ids)));if(c){let f=[c.scalar_parent_id,...c.dependency_parent_ids].sort();throw new v(`Hierarchy mutation would assign ${c.child_id} to multiple parents: ${f.join(", ")}.`,E.CONFLICT,{code:"hierarchy_parent_divergence_created",source_id:i,target_id:c.child_id,verification_errors:f})}let d=a.cardinality_violations.find(f=>(f.child_id===i||f.parent_ids.includes(i))&&!s.cardinality_violations.some(_=>_.child_id===f.child_id&&Ro(f.parent_ids,_.parent_ids)));if(d)throw new v(`Hierarchy mutation would assign ${d.child_id} to multiple parents: ${d.parent_ids.join(", ")}.`,E.CONFLICT,{code:"hierarchy_cardinality_created",source_id:i,target_id:d.child_id,verification_errors:d.parent_ids});let u=a.cycles.find(f=>f.item_ids.includes(i)&&!s.cycles.some(_=>Ro(f.item_ids,_.item_ids)));if(u)throw new v(`Hierarchy mutation would create a cycle: ${u.item_ids.join(" -> ")}.`,E.CONFLICT,{code:"hierarchy_cycle_created",source_id:i,verification_errors:u.item_ids})}(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]="fdd874ad-e51d-5df2-9486-a0465ad65979")}catch{}})();var e_="global";function cv(e){let t=e?.trim();if(t)return oe(t)?e_:t}function dv(e,t,n){return t_(e,t,n)}function t_(e,t,n){let r=e.trim();return oe(n)||_e(r)?r:Lt(r,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]="06ecc7a4-c593-5d99-89f5-714a4590d0a5")}catch{}})();function _t(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function Ut(e){let t=_t(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function Bt(e,t,n=!0){let r=_t(e);return n&&(oe(t)||r!==void 0&&_e(r))}function Ao(e,t){return Bt(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function Ca(e,t,n,r){return Bt(e,t)?r.get(e):n.get(e.toLowerCase())}function ft(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function n_(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,o=_t(r.id);if(!o)continue;let i=typeof r.kind=="string"?r.kind:"related",s=`${i}\0${Ao(o,r.source_kind)}`,a=t.get(s);a?a.count+=1:t.set(s,{target_id:o,kind:i,count:1})}return t}function r_(e,t=n=>n==="closed"||n==="canceled"){let n=[];for(let r of e)if(!(typeof r?.id!="string"||r.id.trim().length===0))for(let o of n_(r).values())o.count<2||n.push({holder_id:r.id.trim(),target_id:o.target_id,kind:o.kind,occurrences:o.count,holder_status:r.status,legacy_terminal:t(r.status)});return n.sort((r,o)=>{let i=ft(r.holder_id,o.holder_id);if(i!==0)return i;let s=ft(r.target_id,o.target_id);return s!==0?s:ft(r.kind,o.kind)})}function o_(e,t,n,r,o){if(typeof n!="object"||n===null)return;let i=_t(n.id);if(!i||Ao(i,n.source_kind)!==Ao(t))return;let s=o.resolve(typeof n.kind=="string"?n.kind:"related");if(!(s?.ordering!==!0||(s.precedence??"source_before_target")!=="source_before_target"))return{holder_id:e.id.trim(),target_id:i,dependency_kind:s.kind,holder_status:e.status,legacy_terminal:r(e.status)}}function i_(e,t=r=>r==="closed"||r==="canceled",n=ae()){let r=new Map;for(let o of e){if(typeof o?.id!="string"||o.id.trim().length===0)continue;let i=_t(o.blocked_by);if(i)for(let s of o.dependencies??[]){let a=o_(o,i,s,t,n);a&&r.set(`${a.holder_id.toLowerCase()}\0${a.target_id.toLowerCase()}\0${a.dependency_kind}`,a)}}return[...r.values()].sort((o,i)=>{let s=ft(o.holder_id,i.holder_id);if(s!==0)return s;let a=ft(o.target_id,i.target_id);return a!==0?a:ft(o.dependency_kind,i.dependency_kind)})}function Do(e,t=n=>n==="closed"||n==="canceled"){let n=e.filter(c=>typeof c?.id=="string"&&c.id.trim().length>0),r=new Set(n.map(c=>c.id.trim().toLowerCase())),o=new Map,i=(c,d,u,f,_)=>{let p=_t(d);if(!p||r.has(p.toLowerCase())||Bt(p,void 0,_))return;let m={holder_id:c.id.trim(),target_id:p,kind:u,source:f,holder_status:c.status,legacy_terminal:t(c.status),no_active_blocker_sentinel:p.toLowerCase()==="no-active-blocker"};o.set(`${m.holder_id}::${m.target_id}::${m.kind}::${m.source}`,m)};for(let c of n){i(c,c.parent,"parent","parent",!1),i(c,c.blocked_by,"blocked_by","blocked_by",!0);for(let d of c.dependencies??[]){if(typeof d!="object"||d===null)continue;let u=d;oe(u.source_kind)||i(c,u.id,typeof u.kind=="string"?u.kind:"related","dependency",!0)}}let s=[...o.values()].sort((c,d)=>c.holder_id.localeCompare(d.holder_id)||c.target_id.localeCompare(d.target_id)||c.kind.localeCompare(d.kind)||c.source.localeCompare(d.source)),a=s.filter(c=>c.legacy_terminal);return{active:s.filter(c=>!c.legacy_terminal),legacy_terminal:a,no_active_blocker_sentinels:s.filter(c=>c.no_active_blocker_sentinel)}}function s_(e){let t=new Map;for(let n of[...e.active,...e.legacy_terminal]){if(n.no_active_blocker_sentinel)continue;let r=n.target_id.trim(),o=r.toLowerCase();t.has(o)||t.set(o,r)}return[...t.values()].sort((n,r)=>n.localeCompare(r))}function a_(e){let t=new Map;for(let n of e){let r=Ut(n.blocked_by);r&&Bt(r)&&!t.has(r)&&t.set(r,r);for(let o of n.dependencies??[]){if(typeof o!="object"||o===null||!Bt(o.id,o.source_kind))continue;let i=Ut(o.id);i&&!t.has(i)&&t.set(i,i)}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}var Oa=new WeakMap;function hv(e){return e.hierarchyIntegrity??Oa.get(e)}function c_(e,t=ae()){let n={};for(let r of e)for(let o of r.dependencies??[]){if(typeof o!="object"||o===null)continue;let i=o.kind;if(typeof i!="string")continue;let s=i.trim().toLowerCase().replaceAll("-","_"),a=t.resolve(i);a&&s!==a.kind&&(n[s]=(n[s]??0)+1)}return Object.fromEntries(Object.entries(n).sort(([r],[o])=>r.localeCompare(o)))}function er(e,t,n){let r=n??ae(),o=e.filter(m=>typeof m?.id=="string"&&m.id.trim().length>0),i=new Map(o.map(m=>[m.id.trim().toLowerCase(),m.id.trim()])),s=Do(o,t),a=s_(s);for(let m of a)i.set(m.toLowerCase(),m);let c=a_(o),d=new Set(i.keys()),u=new Map;for(let m of c){let y=m;for(;d.has(y.toLowerCase());)y=`external:${y}`;u.set(m,y),d.add(y.toLowerCase())}let f=o.map(m=>{let y=Ut(m.parent),g=Ut(m.blocked_by),S=(m.dependencies??[]).flatMap(R=>{if(typeof R!="object"||R===null)return[];let D=R,$=Ut(D.id);return $?[{id:Ca($,D.source_kind,i,u),kind:typeof D.kind=="string"?D.kind:"related"}]:[]});return{id:m.id.trim(),...y?{parent:i.get(y.toLowerCase())}:{},...g?{blocked_by:Ca(g,void 0,i,u)}:{},dependencies:S}}),_=Zn(o,t,r),p={graph:yi.fromItems([...f,...a.map(m=>({id:m})),...c.map(m=>({id:u.get(m)}))],r),details:[...o.map(m=>({id:m.id.trim(),title:m.title,status:m.status,...typeof m.type=="string"&&m.type.trim().length>0?{type:m.type.trim()}:{}})),...a.map(m=>({id:m,title:`[missing] ${m}`,status:"missing"})),...c.map(m=>({id:u.get(m),title:`[external] ${m}`,status:"external"}))],missingIdSet:new Set(a.map(m=>m.toLowerCase())),dangling:s,duplicateRows:r_(o,t),orderingContradictions:i_(o,t,r),legacyAliasCounts:c_(o,r),hierarchyIntegrity:_};return Oa.set(p,_),p}import{createHash as d_}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]="10f534cf-ee82-54a2-9807-390eca5fb0b8")}catch{}})();var l_=64,u_=8;function f_(e,t){let n=(e.dependencies??[]).map(r=>{if(typeof r!="object"||r===null)return"";let o=r;return`${typeof o.kind=="string"?o.kind:"related"}:${typeof o.id=="string"?o.id:""}`}).sort().join(",");return[e.id,e.title,e.status,t(e.status)?"1":"0",typeof e.type=="string"?e.type.trim():"",e.parent??"",e.blocked_by??"",n].join("\0")}function Ra(e,t=r=>r==="closed"||r==="canceled",n=ce()){let r=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>f_(i,t)).sort(),o=n.list().map(i=>L(i)).sort();return d_("sha256").update(r.join("")).update("").update(o.join("")).digest("hex")}function xa(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var No=class{#e=new Map;#t;#n;constructor(t={}){this.#t=xa("maxResultsPerWorkspace",t.maxResultsPerWorkspace,l_),this.#n=xa("maxWorkspaces",t.maxWorkspaces,u_)}lookup(t,n,r){let o=this.#e.get(t),i=!0;(o===void 0||o.fingerprint!==n)&&(o={fingerprint:n,assembly:r(),results:new Map},i=!1,!this.#e.has(t)&&this.#e.size>=this.#n&&this.#e.delete(this.#e.keys().next().value)),this.#e.delete(t),this.#e.set(t,o);let s=o,a=this.#t;return{assembly:s.assembly,assemblyReused:i,fingerprint:n,memoize(c,d){let u=s.results.get(c);if(u!==void 0||s.results.has(c))return s.results.delete(c),s.results.set(c,u),{value:structuredClone(u),reused:!0};let f=d();return s.results.size>=a&&s.results.delete(s.results.keys().next().value),s.results.set(c,structuredClone(f)),{value:f,reused:!1}}}}clear(){this.#e.clear()}},Aa=new No;function Da(){return Aa}function bv(){Aa.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]="47b3091f-a1a8-503c-83e9-46b85adf4207")}catch{}})();var __=["prerequisite","dependent","ancestor","descendant","provenance","related"],m_=new TextEncoder;function Lo(e,t,n){let r=e??t;if(!Number.isInteger(r)||r<1)throw new TypeError(`Relationship context ${n} must be positive`);return r}function tr(e){return Math.max(1,Math.ceil(m_.encode(JSON.stringify(e)).byteLength/4))}function Po(e,t,n){let r=n.resolve(e.kind);if(r?.ordering){let i=(r.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===i?"prerequisite":"dependent"}if(r?.hierarchy){let i=r.hierarchyDirection==="source_parent"?e.source:e.target;return t===i?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function p_(e,t,n,r){let o=e.filter(i=>i.source===t&&i.target===n||i.target===t&&i.source===n).map(i=>Po(i,n,r));return[...new Set(o)].sort()}function h_(e){return __.find(t=>e.includes(t))}function y_(e,t,n,r){let o=r.direction??"both",i=r.maxDepth??3;if(!Number.isInteger(i)||i<0)throw new TypeError("Relationship context maxDepth must be non-negative");let s=new Set([t]),a=[{id:t,distance:0}],c=[],d=0,u=!1;for(let f=0;f<a.length;f+=1){r.signal?.throwIfAborted();let _=a[f];if(_.distance>=i&&u)continue;let p=e.neighborEdges(_.id,{direction:o,kinds:r.kinds,signal:r.signal});if(d+=p.meta.inspectedEdges,_.distance>=i){p.value.some(m=>!s.has(m.id))&&(u=!0);continue}for(let{id:m,edge:y}of p.value){if(s.has(m))continue;s.add(m);let g={id:m,distance:_.distance+1,via:_.id,role:Po(y,m,n)};c.push(g),a.push(g)}}return c.sort((f,_)=>f.distance-_.distance||f.id.localeCompare(_.id)),{rows:c,visitedNodes:a.length,inspectedEdges:d,depthTruncated:u}}function g_(e,t,n,r){let o={prerequisite:0,dependent:0,ancestor:0,descendant:0,provenance:0,related:0},i=e.neighborEdges(t,{direction:r.direction??"both",kinds:r.kinds,signal:r.signal}).value;for(let{id:s,edge:a}of i)o[Po(a,s,n)]+=1;return{directEdges:o,directTotal:i.length,rootEdges:i.map(({edge:s})=>s)}}function v_(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let o=r.distance===1?p_(e.rootEdges,e.rootId,r.id,e.registry):[],i={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:o.length>0?h_(o):r.role,via:r.via,reasons:o.length>0?o:[`${r.role} via ${r.via} (depth ${r.distance})`]},s=tr(i);if(n+s>e.tokenBudget)break;t.push(i),n+=s}if(e.candidates.length>0&&t.length===0)throw new TypeError("Relationship context tokenBudget cannot fit one node");return{nodes:t,usedTokens:n}}function w_(e){let t=e.options.kinds?new Set(e.options.kinds.map(i=>e.registry.require(i).kind)):void 0,n=e.graph.edges().filter(i=>{if(!e.included.has(i.source)||!e.included.has(i.target))return!1;if(t===void 0||t.has(i.kind))return!0;let s=e.registry.resolve(i.kind)?.inverse;return s!==void 0&&t.has(s)}),r=[],o=e.initialTokens;for(let i of n){if(r.length>=e.edgeLimit)break;let s=tr(i);if(o+s>e.tokenBudget)break;r.push(i),o+=s}return{edges:r,usedTokens:o,candidateCount:n.length}}function Na(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let o=Lo(r.nodeLimit,20,"nodeLimit"),i=Lo(r.edgeLimit,40,"edgeLimit"),s=Lo(r.tokenBudget,1200,"tokenBudget"),a=r.registry??ce(),c=new Map(n.map(Ve=>[Ve.id,Ve])),d=c.get(t)??{id:t},{evidence:u=[],...f}=d,_=[...u],p=y_(e,t,a,r),{rootEdges:m,...y}=g_(e,t,a,r),g=Oi("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),S=Ri(p.rows,r.cursor,g,({id:Ve})=>Ve),R=p.rows.slice(S),D=tr(f)+tr(_);if(D>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let $=v_({candidates:R,details:c,rootEdges:m,rootId:t,registry:a,nodeLimit:o,tokenBudget:s,initialTokens:D}),{nodes:x}=$,q=new Set([t,...x.map(({id:Ve})=>Ve)]),W=w_({graph:e,included:q,options:r,registry:a,edgeLimit:i,tokenBudget:s,initialTokens:$.usedTokens}),{edges:J,usedTokens:K}=W,ee=S+x.length,pe=ee<p.rows.length,We=x.at(-1),vt=W.candidateCount-J.length,ti=p.depthTruncated||pe||vt>0,Sc={rootId:t,...f.status===void 0?{}:{rootStatus:f.status},...y,discoveredNodes:p.rows.length,returnedNodes:x.length,returnedEdges:J.length,omittedNodes:p.rows.length-ee,omittedEdges:vt,evidenceCount:_.length,hasMore:pe};return{root:f,summary:Sc,nodes:x,edges:J,evidence:_,meta:{exact:!0,truncated:ti,completeness:ti?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:s,usedTokens:K,visitedNodes:p.visitedNodes,inspectedEdges:p.inspectedEdges,omittedNodes:p.rows.length-ee,omittedEdges:vt,...pe&&We?{nextCursor:xi(g,We.id,ee-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]="59b12366-2f29-5acb-8196-91e9ab183666")}catch{}})();function jo(e,t){return(t===void 0?void 0:_i(e,t))?.execution_role??fi[e.trim().toLowerCase()]??"agent"}var Fo="blocked_by",La="blocks",b_=Object.freeze([Fo,La]),Mo="no-active-blocker";function F(e){return e.trim().toLowerCase()}function nr(e,t){return t?`external:${e}`:`local:${F(e)}`}function Wt(e){let t=new Map,n=typeof e.blocked_by=="string"?e.blocked_by.trim():"";if(n.length>0&&F(n)!==Mo){let r=_e(n);t.set(nr(n,r),r?n:F(n))}for(let r of e.dependencies??[]){let o=typeof r.id=="string"?r.id.trim():"";if(r.kind===Fo&&o.length>0&&F(o)!==Mo){let i=_e(o)||oe(r.source_kind);t.set(nr(o,i),i?o:F(o))}}return[...t.values()].sort((r,o)=>r.localeCompare(o))}function rr(e){let t=new Map;for(let n of e){let r=F(n.id);r.length!==0&&t.set(r,new Set(Wt(n)))}for(let n of e){let r=F(n.id);if(r.length!==0)for(let o of n.dependencies??[]){let i=o.kind===La&&typeof o.id=="string"?F(o.id):"";if(i.length===0||i===Mo)continue;let s=t.get(i)??new Set;s.add(r),t.set(i,s)}}return new Map([...t].map(([n,r])=>[n,[...r].sort((o,i)=>o.localeCompare(i))]))}function Pa(e,t){let n=F(e.id);return n.length>0?rr(t).get(n)??Wt(e):Wt(e)}function $o(e,t,n,r){let o=e,i=typeof o.id=="string"?r?.get(F(o.id))??Pa(o,[...t.values()]):Wt(e),s=new Set((e.dependencies??[]).filter(a=>a.kind===Fo&&oe(a.source_kind)&&typeof a.id=="string"&&a.id.trim().length>0).map(a=>nr(a.id.trim(),!0)));return i.map(a=>{if(_e(a)||s.has(nr(a,!0)))return{id:a,title:null,status:null,resolved:!1,external:!0,...typeof e.updated_at=="string"?{blocked_since:e.updated_at}:{},resolver:null};let c=t.get(F(a));return c?{id:a,title:c.title,status:c.status,resolved:me(c.status,n)}:{id:a,title:null,status:null,resolved:!1}})}function E_(e,t,n){return $o(e,t,n)}function k_(e,t){let n=new Map(e.map(s=>[F(s.id),s])),r=rr(e),o=new Set([...Ma(t),...t.blocked_statuses]),i=new Set;for(let s of e){let a=Qe(s.status,t);if(!o.has(a))continue;(t.blocked_statuses.has(a)||$o(s,n,t,r).some(d=>!d.resolved))&&i.add(F(s.id))}return i}function I_(e,t,n={},r){let o=[...e.ready,...e.decisions,...e.gates];n.includeContainers===!0&&o.push(...e.containers.filter(s=>s.open_blockers.length===0&&!t.blocked_statuses.has(Qe(s.item.status,t))));let i={ready:[],decisions:[],gates:[]};for(let s of o){let a=jo(s.item.type,r);a==="human"&&n.includeDecisions!==!0?i.decisions.push(s):a==="gate"&&n.includeGates!==!0?i.gates.push(s):i.ready.push(s)}return i}function Ma(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function S_(e,t,n){let r=[F(e)],o=new Set;for(;r.length>0;){let i=r.pop();if(!o.has(i)){o.add(i);for(let s of t.get(i)??[]){if(!me(s.status,n))return!0;r.push(F(s.id))}}}return!1}function T_(e){let t=new Map,n=new Map,r=new Map,o=rr(e);for(let i of e){t.set(F(i.id),i);let s=typeof i.parent=="string"?i.parent.trim():"";if(s.length>0){let a=F(s),c=n.get(a)??[];c.push(i),n.set(a,c)}for(let a of o.get(F(i.id))){let c=F(a),d=r.get(c)??[];d.push(i.id),r.set(c,d)}}return{itemsById:t,childrenByParent:n,blockedByReverse:r,blockerIdsByItem:o}}function C_(e,t,n,r){let{itemsById:o,childrenByParent:i,blockedByReverse:s,blockerIdsByItem:a}=T_(t),c=new Set([...Ma(n),...n.blocked_statuses]),d=new Set(t.filter(g=>!me(g.status,n)).map(g=>F(g.id))),u=[],f=[],_=[],p=[],m=[],y=0;for(let g of e){if(!c.has(Qe(g.status,n)))continue;y+=1;let S=$o(g,o,n,a).filter(x=>!x.resolved),R=(s.get(F(g.id))??[]).filter(x=>d.has(F(x))).sort((x,q)=>x.localeCompare(q)),D={item:g,open_blockers:S,unblocks:R};if(S_(g.id,i,n)){_.push(D);continue}let $=n.blocked_statuses.has(Qe(g.status,n));if(S.length===0&&!$){let x=jo(g.type,r);x==="human"?p.push(D):x==="gate"?m.push(D):u.push(D)}else f.push(D)}return{ready:u,blocked:f,containers:_,decisions:p,gates:m,active_count:y,container_count:_.length}}(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]="ae1c56b3-148d-502d-9450-e807fdfab4da")}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]="245ec731-790e-55ae-9bb6-3eeaaefe27ee")}catch{}})();var U={ok:!1},h=e=>typeof e=="string"?{ok:!0,value:e}:U,O=e=>typeof e=="boolean"?{ok:!0,value:e}:U;function N(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?U:{ok:!0,value:t}}function A(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:U}function w(e,t){return n=>{if(!Array.isArray(n)||t!==void 0&&n.length>t)return U;let r=[];for(let o of n){let i=e(o);if(!i.ok)return U;r.push(i.value)}return{ok:!0,value:r}}}function Ho(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}:U}function l(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function or(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return U;let n={};for(let[r,o]of Object.entries(t)){let i=e(o);if(!i.ok)return U;n[r]=i.value}return{ok:!0,value:n}}}function C(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return U;let n=t,r={};for(let[o,i]of Object.entries(e)){let s=i(n[o]);if(!s.ok)return U;s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var O_=C({key:h,values:w(h),required:l(O),aliases:l(w(h)),description:l(h)}),x_=C({command:A("create","update"),option:h,required:l(O),visible:l(O),enabled:l(O)}),R_=C({name:h,description:l(h),default_status:l(h),execution_role:l(A("agent","human","gate")),folder:l(h),aliases:l(w(h)),required_create_fields:l(w(h)),required_create_repeatables:l(w(h)),options:l(w(O_)),command_option_policies:l(w(x_))}),A_=C({id:h,aliases:l(w(h)),roles:l(w(A(...ni))),description:l(h),order:l(N())}),D_=C({key:h,metadata_key:l(h),front_matter_key:l(h),cli_flag:l(h),cli_aliases:l(w(h)),description:l(h),type:l(A(...ri)),commands:l(w(A(...oi))),repeatable:l(O),required:l(O),required_on_create:l(O),required_types:l(w(h)),allow_unset:l(O)}),N_=e=>{if(!Array.isArray(e)||e.length!==2)return U;let[t,n]=e;return typeof t!="string"||typeof n!="string"?U:{ok:!0,value:[t,n]}},L_=C({type:h,allowed_transitions:w(N_)}),P_=l(C({version:l(N({int:!0})),files:l(C({types:l(h),statuses:l(h),fields:l(h),workflows:l(h)})),statuses:l(w(A_)),fields:l(w(D_)),workflow:l(C({draft_status:l(h),open_status:l(h),in_progress_status:l(h),blocked_status:l(h),close_status:l(h),canceled_status:l(h)})),type_workflows:l(w(L_)),unknown_field_policy:l(A(...ii))})),M_=l(C({preset:l(A(...si)),ownership_enforcement:l(A("none","warn","strict")),create_mode_default:l(A("progressive","strict")),close_validation_default:l(A("off","warn","strict")),require_close_reason:l(O),parent_reference:l(A("warn","strict_error")),metadata_profile:l(A("core","strict","custom")),force_required_for_stale_lock:l(O),create_default_type:l(h),workflow_enforcement:l(A("off","warn","strict")),duplicate_detection_mode:l(A("off","advisory","strict")),duplicate_detection_threshold:l(N({min:0,max:1})),duplicate_detection_limit:l(N({int:!0,min:0,max:20}))})),j_=C({name:h,disabled:l(O),require_trusted:l(O),require_provenance:l(O),sandbox_profile:l(A("none","restricted","strict")),allowed_capabilities:l(w(h)),blocked_capabilities:l(w(h)),allowed_surfaces:l(w(h)),blocked_surfaces:l(w(h)),allowed_commands:l(w(h)),blocked_commands:l(w(h)),allowed_actions:l(w(h)),blocked_actions:l(w(h)),allowed_services:l(w(h)),blocked_services:l(w(h))}),zo=A("block","warn"),F_=e=>typeof e=="string"?zo(e):C({global:l(zo),project:l(zo)})(e),$_=l(C({mode:l(A("off","warn","enforce")),trust_mode:l(A("off","warn","enforce")),pm_max_version_exceeded_mode:l(F_),require_provenance:l(O),trusted_extensions:l(w(h)),default_sandbox_profile:l(A("none","restricted","strict")),allowed_extensions:l(w(h)),blocked_extensions:l(w(h)),allowed_capabilities:l(w(h)),blocked_capabilities:l(w(h)),allowed_surfaces:l(w(h)),blocked_surfaces:l(w(h)),allowed_commands:l(w(h)),blocked_commands:l(w(h)),allowed_actions:l(w(h)),blocked_actions:l(w(h)),allowed_services:l(w(h)),blocked_services:l(w(h)),extension_overrides:l(w(j_))})),Be=Ho(128),z_=C({harness:Ho(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:l(w(Be,64)),model_environment_keys:l(w(Be,64)),session_environment_keys:l(w(Be,64)),provenance_environment_keys:l(or(w(Be,64))),provenance_resolvers:l(or(A("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:l(w(Be,64)),argv_markers:l(w(Be,64)),client_names:l(w(Be,64))}),H_=C({version:N({int:!0}),id_prefix:h,ids:l(C({token_length:l(N({int:!0,min:4,max:12}))})),author_default:h,agent_identity:l(C({probes_enabled:l(O),identity_vocabulary:l(C({version:N({int:!0,positive:!0}),aliases:or(Ho(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:w(z_)})),mutation_guard:l(C({require_attributed_author:l(O),secret_guard:l(A("off","advise","block")),stale_in_progress_hours:l(N({int:!0,positive:!0}))})),item_format:l(A("toon","json_markdown")),locks:C({ttl_seconds:N({int:!0}),wait_ms:l(N({int:!0,min:0}))}),checkpoints:l(C({retention_days:l(N({int:!0,positive:!0}))})),output:C({default_format:A("toon","json")}),ux:l(C({deprecation_hints:l(O)})),history:l(C({missing_stream:A("auto_create","strict_error"),compact_policy:l(C({enabled:l(O),max_entries:l(N({int:!0,positive:!0})),trigger:l(A("health_warn","auto"))}))})),validation:l(C({sprint_release_format:A("warn","strict_error"),parent_reference:l(A("warn","strict_error")),metadata_profile:l(A("core","strict","custom")),metadata_required_fields:l(w(h)),lifecycle_stale_blocker_reason_patterns:l(w(h)),lifecycle_closure_like_blocked_reason_patterns:l(w(h)),lifecycle_closure_like_resolution_patterns:l(w(h)),lifecycle_closure_like_actual_result_patterns:l(w(h)),estimate_defaults_by_type:l(or(N({int:!0,positive:!0})))})),governance:M_,workflow:l(C({definition_of_done:w(h)})),testing:l(C({record_results_to_items:O,allow_untrusted_linked_tests:l(O)})),telemetry:l(C({enabled:O,first_run_prompt_completed:l(O),capture_level:l(A("minimal","redacted","max")),endpoint:l(h),installation_id:l(h),retention_days:l(N({int:!0,positive:!0}))})),agent_guidance:l(C({prompt_completed:l(O),declined:l(O),declined_at:l(h),template_version:l(N({int:!0,positive:!0})),last_checked_files:l(w(h))})),item_types:l(C({definitions:w(R_)})),schema:P_,context:l(C({default_depth:l(A("brief","standard","deep")),activity_limit:l(N({int:!0,positive:!0})),stale_threshold_days:l(N({int:!0,positive:!0})),sections:l(C({hierarchy:l(O),activity:l(O),progress:l(O),recently_created:l(O),unparented:l(O),blockers:l(O),files:l(O),workload:l(O),staleness:l(O),tests:l(O)}))})),extensions:C({enabled:w(h),disabled:w(h),policy:$_}),search:C({score_threshold:N(),hybrid_semantic_weight:l(N()),max_results:N({int:!0}),embedding_model:h,embedding_corpus_max_characters:l(N()),embedding_batch_size:N({int:!0}),embedding_timeout_ms:l(N({int:!0})),scanner_max_batch_retries:N({int:!0}),provider:l(h),default_mode:l(A("auto","keyword","semantic","hybrid")),corpus_fields:l(w(h)),mutation_refresh_policy:l(A("cache_only","semantic_configured","semantic_auto")),query_expansion:l(C({enabled:l(O),provider:l(h)})),rerank:l(C({enabled:l(O),model:l(h),top_k:l(N({int:!0,positive:!0}))})),bm25:l(C({k1:l(N()),b:l(N())}))}),providers:C({openai:C({base_url:h,api_key:h,model:h}),ollama:C({base_url:h,model:h})}),vector_store:C({adapter:l(h),collection_name:l(h),qdrant:C({url:h,api_key:h}),lancedb:C({path:h})})});function ja(e){let t=H_(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]="833a4f8a-7e5d-5480-a526-4e1ebaadd0a8")}catch{}})();var U_={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},Fa=120;function Uo(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function za(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var B_=za(U_),$a=new WeakMap;function W_(e){let t=$a.get(e);if(t)return t;let n=za(e);return $a.set(e,n),n}function Lv(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return Fa;if(t){let o=W_(t).get(n);if(Uo(o))return Math.floor(o)}let r=B_.get(n);return Uo(r)?Math.floor(r):Fa}function Bo(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||!Uo(r)||(t[o]=Math.floor(r))}return t}import{stat as V_}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]="7c23ef10-ea7a-5680-8850-822e7d0c07a6")}catch{}})();var ir=new Map;function Ha(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function q_(e){try{let t=await V_(e);return{path:e,mtime_ms:t.mtimeMs,size:t.size}}catch{return{path:e,mtime_ms:null,size:null}}}async function Te(e){let t=Ha(e),n=await Promise.all(t.map(r=>q_(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function Vt(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 Ua(e){return ir.get(e)}function sr(e,t){let n=Ha(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));ir.set(e,{tracked_paths:n,signatures:r,value:t.value})}function Ce(e){if(e){ir.delete(e);return}ir.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]="665677ea-4d55-5858-8b21-6dee20bfd46b")}catch{}})();var K_="settings:write",Ka=Symbol("pm.settings.persist_source"),G_=128,X_=new Set(["off","advisory","strict"]);function Ba(e){return structuredClone(ci[e])}function Y_(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:k.governance.preset}function Wa(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 J_(e){return e.preset==="custom"?Wa({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):Wa({preset:e.preset},e)}function Q_(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),X_.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 cr(e){let t=e.governance??{},n=Y_(t.preset),r=Q_(t);if(n==="custom"){let s=Ba("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=Ba(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function Ga(){return structuredClone(k)}function Xa(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:k.search.mutation_refresh_policy}function Ya(e){return e==="auto"||e==="keyword"||e==="semantic"||e==="hybrid"?e:"auto"}function Ja(e){return typeof e=="boolean"?e:k.search.query_expansion.enabled}function Qa(e){return typeof e!="string"?k.search.query_expansion.provider:e.trim()}function Za(e){return typeof e=="boolean"?e:k.search.rerank.enabled}function ec(e){return typeof e!="string"?k.search.rerank.model:e.trim()}function tc(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:k.search.rerank.top_k}function nc(e){if(typeof e!="string")return k.vector_store.collection_name;let n=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,G_);return n.length>0?n:k.vector_store.collection_name}function Wo(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function Z_(e,t){let n=e.schema,r=Wo(n?.statuses),o=Wo(n?.fields),i=Wo(n?.type_workflows);return{source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:mt(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:mt(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 rc(e,t){Object.defineProperty(e,Ka,{value:t,writable:!0,configurable:!0,enumerable:!1})}function oc(e){let t=e[Ka];if(!(!t||typeof t!="object"))return t}function ar(e){let t=structuredClone(e.settings),n=oc(e.settings);return n&&rc(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function em(e,t,n){let r=Et(t);return[n,kt(e,r.files.types,bt.types),kt(e,r.files.statuses,bt.statuses),kt(e,r.files.fields,bt.fields),kt(e,r.files.workflows,bt.workflows)]}async function tm(e,t,n){let r=await Te(t);sr(e,{tracked_paths:t,signatures:r,value:ar(n)})}async function nm(e,t,n){try{await tm(e,t,n)}catch{Ce(e)}}function Va(e,t){return e.find(n=>n.path===t)}function rm(e,t,n){for(let r of n){let o=Va(e,r),i=Va(t,r);if(!o||!i||!Vt([o],[i]))return!1}return!0}async function Vo(e,t,n,r,o){try{let i=await Te(t);if(!rm(r,i,o)){Ce(e);return}sr(e,{tracked_paths:t,signatures:i,value:ar(n)})}catch{Ce(e)}}function om(e,t){let n=Et(e.schema),r=mt(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=Ke(r,t.runtime_item_type_definitions),s=Ke(n.statuses,t.runtime_schema_statuses),a=Ke(n.fields,t.runtime_schema_fields),c=Ke(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?mt(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 qt(e){return{settings:Ga(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function im(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function Ko(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function ic(e){let t=k.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:Ko(e?.last_checked_files??t.last_checked_files)}}function re(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function sm(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.mode}function am(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.trust_mode}function sc(e){return e==="none"||e==="restricted"||e==="strict"?e:k.extensions.policy.default_sandbox_profile}function cm(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=sc(e.sandbox_profile));let r=re(e.allowed_capabilities),o=re(e.blocked_capabilities),i=re(e.allowed_surfaces),s=re(e.blocked_surfaces),a=re(e.allowed_commands),c=re(e.blocked_commands),d=re(e.allowed_actions),u=re(e.blocked_actions),f=re(e.allowed_services),_=re(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),d.length>0&&(n.allowed_actions=d),u.length>0&&(n.blocked_actions=u),f.length>0&&(n.allowed_services=f),_.length>0&&(n.blocked_services=_),n}function dm(e){let t=new Map;for(let n of e??[]){let r=cm(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function qo(e){return e==="block"||e==="warn"?e:void 0}function lm(e){if(typeof e=="string")return qo(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=qo(e.global),n=qo(e.project);return t===void 0&&n===void 0?void 0:{...t!==void 0?{global:t}:{},...n!==void 0?{project:n}:{}}}}function X(e,t){return re(e?.[t]??k.extensions.policy[t])}function ac(e){let t=lm(e?.pm_max_version_exceeded_mode);return{mode:sm(e?.mode),trust_mode:am(e?.trust_mode),...t!==void 0?{pm_max_version_exceeded_mode:t}:{},require_provenance:e?.require_provenance===!0,trusted_extensions:X(e,"trusted_extensions"),default_sandbox_profile:sc(e?.default_sandbox_profile),allowed_extensions:X(e,"allowed_extensions"),blocked_extensions:X(e,"blocked_extensions"),allowed_capabilities:X(e,"allowed_capabilities"),blocked_capabilities:X(e,"blocked_capabilities"),allowed_surfaces:X(e,"allowed_surfaces"),blocked_surfaces:X(e,"blocked_surfaces"),allowed_commands:X(e,"allowed_commands"),blocked_commands:X(e,"blocked_commands"),allowed_actions:X(e,"allowed_actions"),blocked_actions:X(e,"blocked_actions"),allowed_services:X(e,"allowed_services"),blocked_services:X(e,"blocked_services"),extension_overrides:dm(e?.extension_overrides??k.extensions.policy.extension_overrides)}}function cc(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 Oe(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function z(e,t){return e===void 0?t:e}function Y(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function Go(e){return Array.isArray(e)?e:[]}function um(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:cc(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:Oe(e.validation?.lifecycle_stale_blocker_reason_patterns??t.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:Oe(e.validation?.lifecycle_closure_like_blocked_reason_patterns??t.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:Oe(e.validation?.lifecycle_closure_like_resolution_patterns??t.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:Oe(e.validation?.lifecycle_closure_like_actual_result_patterns??t.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:Bo(e.validation?.estimate_defaults_by_type)}}function fm(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 _m(e,t){return{...t.search,...e.search,default_mode:Ya(e.search?.default_mode),mutation_refresh_policy:Xa(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:Ja(e.search?.query_expansion?.enabled),provider:Qa(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:Za(e.search?.rerank?.enabled),model:ec(e.search?.rerank?.model),top_k:tc(e.search?.rerank?.top_k)}}}function mm(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:nc(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function pm(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function hm(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 ym(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function mt(e){let t=(e??[]).map(r=>ui(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 dc(e){let t=Ga(),n=cr({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:pm(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:um(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,allow_untrusted_linked_tests:e.testing?.allow_untrusted_linked_tests??t.testing.allow_untrusted_linked_tests},telemetry:fm(e,t),agent_guidance:ic(e.agent_guidance??t.agent_guidance),item_types:{definitions:mt(e.item_types?.definitions)},schema:Et(e.schema??t.schema),context:hm(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:ac(e.extensions.policy??t.extensions.policy)},search:_m(e,t),providers:ym(e,t),vector_store:mm(e,t)}}function gm(e){e.agent_identity=T(e.agent_identity,["probes_enabled","identity_vocabulary","harness_signals"]);let t=e.agent_identity;Object.hasOwn(t,"identity_vocabulary")&&(t.identity_vocabulary=T(Y(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=Go(e.agent_identity.harness_signals).map(n=>T(Y(n),["harness","environment_keys","model_environment_keys","session_environment_keys","provenance_environment_keys","provenance_resolvers","provenance_unavailable_dimensions","argv_markers","client_names"])),e.locks=T(e.locks,["ttl_seconds","wait_ms"]),e.ids=T(e.ids,["token_length"]),e.mutation_guard=T(e.mutation_guard,["require_attributed_author","secret_guard","stale_in_progress_hours"]),e.checkpoints=T(e.checkpoints,["retention_days"]),e.output=T(e.output,["default_format"]),e.ux=T(e.ux,["deprecation_hints"]),e.history=T(e.history,["missing_stream","compact_policy"]),e.validation=T(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=T(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=T(e.workflow,["definition_of_done"]),e.testing=T(e.testing,["record_results_to_items","allow_untrusted_linked_tests"]),e.telemetry=T(e.telemetry,["enabled","first_run_prompt_completed","capture_level","endpoint","installation_id","retention_days"]),e.agent_guidance=T(e.agent_guidance,["prompt_completed","declined","declined_at","template_version","last_checked_files"]),e.item_types=T(e.item_types,["definitions"]),e.schema=T(e.schema,["version","files","statuses","fields","workflow","type_workflows","unknown_field_policy"]),e.schema.files=T(Y(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=T(Y(e.schema.workflow),["draft_status","open_status","in_progress_status","blocked_status","close_status","canceled_status"]),e.context=T(e.context,["default_depth","activity_limit","stale_threshold_days","sections"]),e.context.sections=T(Y(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=T(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=T(Y(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=Go(e.extensions.policy.extension_overrides).map(n=>T(Y(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=T(e.search,["score_threshold","hybrid_semantic_weight","max_results","embedding_model","embedding_corpus_max_characters","embedding_batch_size","embedding_timeout_ms","scanner_max_batch_retries","provider","default_mode","mutation_refresh_policy","query_expansion","rerank"]),e.search.query_expansion=T(Y(e.search.query_expansion),["enabled","provider"]),e.search.rerank=T(Y(e.search.rerank),["enabled","model","top_k"]),e.providers=T(e.providers,["openai","ollama"]),e.providers.openai=T(Y(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=T(Y(e.providers.ollama),["base_url","model"]),e.vector_store=T(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=T(Y(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=T(Y(e.vector_store.lancedb),["path"])}function vm(e){return{...e,locks:z(e.locks,k.locks),ids:z(e.ids,k.ids),agent_identity:z(e.agent_identity,k.agent_identity),mutation_guard:z(e.mutation_guard,k.mutation_guard),checkpoints:z(e.checkpoints,k.checkpoints),output:z(e.output,k.output),ux:z(e.ux,k.ux),history:z(e.history,k.history),validation:z(e.validation,k.validation),workflow:z(e.workflow,k.workflow),testing:z(e.testing,k.testing),telemetry:z(e.telemetry,k.telemetry),agent_guidance:z(e.agent_guidance,k.agent_guidance),item_types:z(e.item_types,k.item_types),schema:z(e.schema,k.schema),context:z(e.context,k.context),extensions:z(e.extensions,k.extensions),search:z(e.search,k.search),providers:z(e.providers,k.providers),vector_store:z(e.vector_store,k.vector_store)}}function wm(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:cc(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:Oe(e.validation?.lifecycle_stale_blocker_reason_patterns??k.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:Oe(e.validation?.lifecycle_closure_like_blocked_reason_patterns??k.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:Oe(e.validation?.lifecycle_closure_like_resolution_patterns??k.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:Oe(e.validation?.lifecycle_closure_like_actual_result_patterns??k.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:Bo(e.validation?.estimate_defaults_by_type)}}function bm(e){return{...k.search,...e.search,default_mode:Ya(e.search?.default_mode),mutation_refresh_policy:Xa(e.search?.mutation_refresh_policy),query_expansion:{...k.search.query_expansion,...e.search?.query_expansion,enabled:Ja(e.search?.query_expansion?.enabled),provider:Qa(e.search?.query_expansion?.provider)},rerank:{...k.search.rerank,...e.search?.rerank,enabled:Za(e.search?.rerank?.enabled),model:ec(e.search?.rerank?.model),top_k:tc(e.search?.rerank?.top_k)}}}function Em(e){return{default_depth:e.context?.default_depth??k.context.default_depth,activity_limit:e.context?.activity_limit??k.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??k.context.stale_threshold_days,sections:{...k.context.sections,...e.context?.sections}}}function km(e){return{...e.vector_store,adapter:e.vector_store?.adapter??k.vector_store.adapter,collection_name:nc(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function Im(e,t,n,r){return{...e,item_format:"toon",validation:wm(e,t),governance:t,agent_guidance:ic(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:bm(e),context:Em(e),extensions:{enabled:Ko(e.extensions?.enabled),disabled:Ko(e.extensions?.disabled),policy:ac(e.extensions?.policy)},vector_store:km(e)}}function lc(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(!Ke(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:{};lc(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var uc=["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 qa(e,t){let n=vm(e),r=cr(n),o=Et(n.schema),i=om(n,t),s=Im(n,r,o,i),a=T({...s,governance:J_(r)},uc);return gm(a),a}function Sm(e,t={}){let n=qa(e,t.persist_source);if(t.persist_source){let r=dc(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=qa(r,t.persist_source),i=structuredClone(t.persist_source.source_settings);return lc(i,o,n),`${JSON.stringify(T(i,uc),null,2)}
|
|
162
|
-
`}return`${JSON.stringify(n,null,2)}
|
|
163
|
-
`}async function fc(e){let t=wt(e),n=[t];await ge({path:t,scope:"project"});let r=Ua(e);if(r){let d=await Te(r.tracked_paths);if(Vt(d,r.signatures))return ar(r.value)}let o=await Te([t]),i;try{i=await ye(t)}catch{return qt("settings_read_fs_error")}if(i===null){let d=qt();return await Vo(e,[t],d,o,[t]),d}let s=await Te([t]);if(!Vt(o,s))return Ce(e),fc(e);let a;try{a=JSON.parse(i)}catch{let d=qt("settings_read_invalid_json");return await Vo(e,[t],d,s,[t]),d}let c=ja(a);if(!c.success){let d=qt("settings_read_invalid_schema");return await Vo(e,[t],d,s,[t]),d}try{let d=dc(c.data),u=em(e,d.schema,t);n=u;let f=await Te(u),_=await vi(e,d.schema),p=await wi(e,d.schema),m=await Te(u),y={...d,item_types:{definitions:mt([...d.item_types.definitions,...Go(p.type_definitions_from_file)])},schema:p.schema};rc(y,Z_(c.data,y));let g={settings:y,metadata:{has_explicit_item_format:im(a)},warnings:[...c.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],..._.created_paths.map(S=>`runtime_schema_bootstrap_created:${S}`),...p.warnings]};return _.created_paths.length===0?Vt(f,m)?sr(e,{tracked_paths:u,signatures:m,value:ar(g)}):Ce(e):Ce(e),g}catch{let d=qt("settings_read_merge_failed");return await nm(e,n,d),d}}async function _c(e){return(await fc(e)).settings}async function Yv(e,t,n=K_){let r=wt(e),o=Sm(t,{persist_source:oc(t)});try{await na({pmRoot:e,filePath:r,raw:o,op:n,author:ts(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),await le({path:r,scope:"project",op:n})}finally{Ce(e)}}import Tm from"node:fs/promises";import Cm 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]="99eadab1-5338-5d75-b600-fa0463053375")}catch{}})();function Om(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function xm(e,t){return new v(`Missing history stream for ${e}. ${t} requires history streams when settings.history.missing_stream is strict_error.`,E.NOT_FOUND)}async function Rm(e,t){return await di(Cm.dirname(e)),await(await Tm.open(e,"a")).close(),le({path:e,scope:"project",op:`${t}:history:auto_create`})}async function Xo(e){return Am({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function Am(e){let t=Om(e.itemIds),n=[],r=[];for(let o of t){let i=De(e.pmRoot,o);if(!await Ae(i)){if(e.settings.history.missing_stream==="strict_error")throw xm(o,e.commandLabel);r.push(...await Rm(i,e.commandLabel)),r.push(`history_stream_auto_created:${o}`),n.push(o)}}return{auto_created_ids:n,warnings:r}}import Jo from"node:fs/promises";import dr 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]="57662b37-0d33-5cde-ad84-0a90fb520439")}catch{}})();function xe(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function Qo(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 lr(e){return new v(`Tracker root is not a directory at ${e}.`,E.USAGE,{code:"tracker_root_not_directory",reason:"not_a_directory",resolved_path:e,nextSteps:["Pass a tracker directory, usually <workspace>/.agents/pm, rather than a file path."]})}function Yo(e){return new v(`Tracker root is not readable at ${e}.`,E.GENERIC_FAILURE,{code:"tracker_root_unreadable",reason:"unreadable",resolved_path:e,nextSteps:["Grant read and directory-search permission to the tracker root, then retry."]})}async function Dm(e){let t=dr.resolve(e),n=dr.parse(t).root,r=dr.dirname(t);for(;r!==n;){let o;try{o=await Jo.stat(r)}catch(i){if(xe(i,"ENOTDIR"))throw lr(e);if(!xe(i,"ENOENT"))throw i;r=dr.dirname(r);continue}if(!o.isDirectory())throw lr(e);return}}async function pt(e){let t;try{t=await Jo.stat(e)}catch(n){throw xe(n,"ENOENT")?(await Dm(e),new v(`Tracker is not initialized at ${e}. Tracker root does not exist. Run pm init first.`,E.NOT_FOUND,{code:"tracker_root_missing",reason:"missing",resolved_path:e,nextSteps:["Confirm the tracker root path or initialize it with the emitted retry."],recovery:Qo(e)})):xe(n,"ENOTDIR")?lr(e):xe(n,"EACCES")||xe(n,"EPERM")?Yo(e):n}if(!t.isDirectory())throw lr(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw Yo(e);try{await(await Jo.opendir(e)).close()}catch(n){throw xe(n,"EACCES")||xe(n,"EPERM")?Yo(e):n}}async function Zo(e){if(await pt(e),!await Ae(wt(e)))throw new v(`Tracker is not initialized at ${e}. Run pm init first.`,E.NOT_FOUND,{code:"tracker_not_initialized",reason:"settings_missing",resolved_path:e,nextSteps:["Initialize the selected tracker root with the emitted retry."],recovery:Qo(e)})}import ht from"node:fs/promises";import Nm from"node:path";import{isUtf8 as Lm}from"node:buffer";(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]="abd6941f-b4cc-50e4-a64e-d0720d73cdba")}catch{}})();async function Pm(e){try{return await ht.access(e),!0}catch{return!1}}function Mm(e,t){e&&(e.includes(t)||e.push(t))}function mc(e){return e??Zt(de())}function jm(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}async function ur(e,t,n="pm-",r,o=Re){let i=t.trim(),s=i.startsWith("#")?i.slice(1):i;if(s.length===0)return null;let a=Lt(t,n),c=bo(t),d=[...new Set([s,a,c])].filter(_=>_.length>0),u=Object.entries(o),f=jm(r);for(let _ of d)for(let[p]of u)for(let m of f){let y=pr(e,p,_,m,o);if(await Pm(y))return{id:_,type:p,itemPath:y,item_format:m}}return null}async function fr(e,t={}){let n=await Fm(e,t);if(n.error!==null)throw n.error;return{raw:n.raw,document:n.document}}async function Fm(e,t={}){let n=await ht.readFile(e.itemPath);if(!Lm(n))throw new v("Item contains invalid UTF-8; preserve a binary backup before recovering it.",E.CONFLICT,{code:"item_document_encoding_invalid",item_id:e.id,item_path:e.itemPath,byte_length:n.length,empty:!1});let r=n.toString("utf8");await ge({path:e.itemPath,scope:"project"});let o;try{o=vn(r,{format:e.item_format,schema:t.schema,extensionFieldNames:mc(t.extensionFieldNames),onWarning:i=>Mm(t.warnings,i)})}catch(i){if(i instanceof v&&i.code==="item_document_invalid")return{raw:r,document:null,error:new v(`Cannot read ${e.id} at ${e.itemPath}${n.length===0?" (zero-length file)":""}: ${i.message}`,i.exitCode,{...i.context,item_id:e.id,item_path:e.itemPath,byte_length:n.length,empty:n.length===0,nextSteps:[`Run pm history ${e.id} --full, then pm restore ${e.id} <version> to recover a recorded state.`]})};throw i}return{raw:r,document:o,error:null}}async function $m(e,t,n=Re,r,o){await pt(e);let i=await ka(e,t,n,r,o);return jn(i.length),i.map(s=>s.metadata)}async function pc(e,t,n=Re,r,o){await pt(e);let i=await Ia(e,t,n,r,o);return jn(i.length),i.map(s=>s.metadata)}async function Mw(e,t,n=Re,r,o,i={}){await pt(e);let s=await Jn(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan});return jn(s.length),s.map(a=>({...a.metadata,body:a.body}))}function hc(e){return{async get(t){let n=await ur(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await fr(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>$m(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function zm(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await ht.readdir(Nm.join(e,o));for(let s of i)for(let a of tn)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function Hm(e,t,n,r){let o=Lt(t,n),i=await zm(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,d)=>c.distance-d.distance).slice(0,3).map(c=>c.id)}async function Um(e,t,n,r){let o=await Hm(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 v(`Item ${t} not found`,E.NOT_FOUND,{nextSteps:i})}function Bm(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 yc(e){let t=e.typeToFolder??en(e.settings,de()).type_to_folder,n=await ur(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await Um(e.pmRoot,e.id,e.settings.id_prefix,t);let r=await Q(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 fr(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||a,d=es(e.author),u=cr(e.settings);if(a&&c!==d&&!e.force&&!Bm(e.op,e.bypassAssigneeConflict)){if(u.ownership_enforcement==="strict")throw new v(`Item ${n.id} is assigned to ${a}. Use --force to override.`,E.CONFLICT);u.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 Wm(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 Vm(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await G(e.originalItemPath,e.originalRaw),await ht.rm(e.effectiveTargetItemPath,{force:!0});return}await G(e.originalItemPath,e.originalRaw)}}async function gc(e){let t=await yc({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=ne(i,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),d=ne(structuredClone(i),{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),u=await e.mutate(d);if(e.skipNoop===!0&&u.changedFields.length===0)return{item:c.metadata,body:c.body,changedFields:[],warnings:[...s,...u.warnings??[]]};let f=e.resolveHistoryContext?.();d.metadata.updated_at=ve();let _=ne(d,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),p=await go({pmRoot:e.pmRoot,settings:e.settings,operation:e.op,author:e.author,before:c,after:_});await gr({pm_root:e.pmRoot,operation:e.op,before:c,after:_,changed_fields:u.changedFields,sdk:hc({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let m=await Xo({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),y="toon",g=gs(_,{format:y,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),S=pr(e.pmRoot,_.metadata.type,r.id,y,n),R=De(e.pmRoot,r.id),D=await It("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:S,history_path:R,item_format:y,before:c,after:_,contents:g}),{effectiveTargetItemPath:$,effectiveSerializedAfter:x,skipItemWrite:q}=Wm(D,S,g),W=await Oo(e.pmRoot,e.author),J=[];try{q||await G($,x),!q&&$!==r.itemPath&&await ht.rm(r.itemPath);let ee=st({nowIso:_.metadata.updated_at,author:e.author,op:e.op,before:c,after:_,message:e.message,context:p.decisions.length===0?f:{...f,workflow_policies:p.decisions}});try{await at(R,ee)}catch(pe){throw await Vm({skipItemWrite:q,effectiveTargetItemPath:$,originalItemPath:r.itemPath,originalRaw:o}),pe}q||(J=await xo({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:$,previousItemPath:r.itemPath,document:_}))}finally{await W()}let K=[...await le({path:$,scope:"project",op:e.op,item_id:_.metadata.id,item_type:_.metadata.type,before:c,after:_,changed_fields:u.changedFields}),...await le({path:R,scope:"project",op:`${e.op}:history`,item_id:_.metadata.id,item_type:_.metadata.type,before:c,after:_,changed_fields:u.changedFields})];return yr({id:_.metadata.id,op:e.op,item_type:_.metadata.type,previous_status:c.metadata.status,status:_.metadata.status,previous:on(c.metadata,u.changedFields),current:on(_.metadata,u.changedFields),changed_fields:u.changedFields}),{item:_.metadata,body:_.body,changedFields:u.changedFields,warnings:[...s,...u.warnings??[],...p.warnings,...m.warnings,...D.warnings,...J,...K]}}finally{await a()}}async function jw(e){return gc(e)}async function Fw(e){return gc(e)}async function $w(e){let t=await yc({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=mc(void 0),c=ne(o,{schema:e.settings.schema,extensionFieldNames:a}),d=await go({pmRoot:e.pmRoot,settings:e.settings,operation:"delete",author:e.author,before:c,after:null,dryRun:e.dryRun});await gr({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:hc({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let u=await Xo({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),f=ve(),_=qe,p=st({nowIso:f,author:e.author,op:"delete",before:c,after:_,message:e.message,context:d.decisions.length===0?void 0:{workflow_policies:d.decisions}}),m=De(e.pmRoot,n.id),y=await It("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:m,before:c}),g=n.itemPath,S=!1;if(y.handled&&typeof y.result=="object"&&y.result!==null){let x=y.result;typeof x.item_path=="string"&&x.item_path.trim().length>0&&(g=x.item_path),x.skip_delete===!0&&(S=!0)}if(e.dryRun===!0)return{item:c.metadata,changedFields:["deleted"],targetPath:g,warnings:[...i,...d.warnings,...u.warnings,...y.warnings]};let R=await Oo(e.pmRoot,e.author),D=[];try{S||await ht.rm(g);try{await at(m,p)}catch(x){throw S||await G(g,r),x}S||(D=await xo({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:g,document:null}))}finally{await R()}let $=[...await le({path:g,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:_,changed_fields:["deleted"]}),...await le({path:m,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:_,changed_fields:["deleted"]})];return yr({id:c.metadata.id,op:"delete",item_type:c.metadata.type,previous_status:c.metadata.status,previous:on(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...i,...d.warnings,...u.warnings,...y.warnings,...D,...$]}}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]="5c8194ff-d877-51b8-bd54-d206f85a979c")}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]="8ed4af4c-40cf-5902-930b-78a4758871b2")}catch{}})();function qm(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 vc(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function qw(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((_,p)=>_.localeCompare(p));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",d=e.retry_command?void 0:qm(r,o),u=vc([...i,r,...s]),f=e.retry_command??(d?vc([...i,d,...s]):void 0);return new v(`Unknown ${a} ${c} "${r}". Allowed: ${o.join(", ")}${e.message_suffix??""}`,e.exit_code??E.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:u,allowed_values:o,suggested_retry:f,fallback_candidates:e.fallback_candidates}})}(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]="2f2a7df8-9c95-5ed1-bd43-33dde57dd7f0")}catch{}})();var Km=["tree","graph","context"],Gm=["none","repeated"],Xm=["outgoing","incoming","both"],Ym=32,Jm=200,Qm=400,Zm=16e3;function ep(e){let t=e?.trim().toLowerCase()??"tree";if(Km.includes(t))return t;throw new v(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,E.USAGE)}function yt(e,t){if(e===void 0)return;let n=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(n)||n<1)throw new v(`Invalid --${t} value "${e}". Use a positive integer.`,E.USAGE);return n}function bc(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new v(`Invalid --max-depth value "${e}". Use a non-negative integer.`,E.USAGE);return t}function tp(e){let t=e?.trim().toLowerCase()??"none";if(Gm.includes(t))return t;throw new v(`Invalid --collapse value "${e}". Use "none" or "repeated".`,E.USAGE)}function np(e){let t=e?.trim().toLowerCase()??"both";if(Xm.includes(t))return t;throw new v(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,E.USAGE)}function rp(e,t=ce()){if(e===void 0)return;let n=(Array.isArray(e)?e:[e]).flatMap(o=>o.split(",")).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)return;let r=new Set;for(let o of n){let i=t.resolve(o);if(!i){let s=t.list().map(a=>a.kind).join(", ");throw new v(`Invalid --kind value "${o}". Registered kinds: ${s}.`,E.USAGE)}r.add(i.kind)}return[...r].sort()}function op(e){if(!e||e.length===0)return[];let t=e.map(({id:r,kind:o})=>({id:r.trim(),kind:o.trim().toLowerCase()})).sort((r,o)=>{let i=r.kind.localeCompare(o.kind);return i!==0?i:r.id.localeCompare(o.id)}),n=new Map;for(let r of t){let o=`${r.kind.toLowerCase()}::${r.id.toLowerCase()}`;n.has(o)||n.set(o,{id:r.id,kind:r.kind})}return[...n.values()]}function ip(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:op(e.dependencies)}}function sp(e){return sn(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function ap(e,t,n,r,o,i,s,a,c){for(let d of t.dependencies){let u=Math.max(1,Math.ceil(JSON.stringify({from:e.id,to:d.id,kind:d.kind}).length/3));if(a.nodes>=a.nodeLimit){e.truncated=!0,a.reasons.add("node_limit");break}if(a.edges>=a.edgeLimit){e.truncated=!0,a.reasons.add("edge_limit");break}if(a.estimatedTokens+u>=a.tokenBudget){e.truncated=!0,a.reasons.add("token_budget");break}a.edges+=1,a.estimatedTokens+=u,e.dependencies.push(Ec(d.id,n,r,o,i,s,a,c+1,d.kind))}}function cp(e,t,n,r,o,i,s,a){return s.estimatedTokens>=s.tokenBudget&&t?.dependencies.length?(e.truncated=!0,s.reasons.add("token_budget"),!0):!t||e.cycle?!0:r!==void 0&&a>=r?(t.dependencies.length>0&&(e.truncated=!0,s.reasons.add("max_depth")),!0):o==="repeated"&&i.has(n)?(e.collapsed=!0,!0):!1}function Ec(e,t,n,r,o,i,s,a=0,c){let d=e.trim().toLowerCase(),u=t.get(d),f={id:u?.id??e,title:u?.title,type:u?.type,status:u?.status,via:c,missing:!u,cycle:n.has(d),dependencies:[]};if(s.nodes+=1,s.estimatedTokens+=sp(f),cp(f,u,d,r,o,i,s,a))return f;o==="repeated"&&i.add(d);let _=new Set(n);return _.add(d),ap(f,u,t,_,r,o,i,s,a),f}function wc(e,t){return!e||e.missing&&!t.missing?t:{...e,title:e.title??t.title,type:e.type??t.type,status:e.status??t.status}}function dp(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,wc(t.get(a.id),{id:a.id,title:a.title,type:a.type,status:a.status,missing:a.missing}));for(let c of a.dependencies){t.set(c.id,wc(t.get(c.id),{id:c.id,title:c.title,type:c.type,status:c.status,missing:c.missing}));let d=c.via??"related",u=`${a.id}::${c.id}::${d}`;n.has(u)||n.set(u,{from:a.id,to:c.id,kind:d}),c.cycle||r.push(c)}}let o=[...t.values()].sort((a,c)=>a.id.localeCompare(c.id)),i=[...n.values()].sort((a,c)=>{let d=a.from.localeCompare(c.from);if(d!==0)return d;let u=a.to.localeCompare(c.to);return u!==0?u:a.kind.localeCompare(c.kind)}),s=o.filter(a=>a.missing).map(a=>a.id);return{root_id:e.id,nodes:o,edges:i,missing_ids:s}}function kc(e,t,n){let r=new Set,o=new Set,i=new Set,s=new Set,a=[{id:e,depth:0}],c=0;for(;c<a.length;){let d=a[c++],u=d.id.trim().toLowerCase();r.add(u);let f=t.get(u);if(!f){i.add(u);continue}if(!(n!==void 0&&d.depth>=n)&&!s.has(u)){s.add(u);for(let _ of f.dependencies)o.add(`${u}::${_.id.trim().toLowerCase()}::${_.kind}`),a.push({id:_.id,depth:d.depth+1})}}return{node_count:r.size,edge_count:o.size,edge_basis:"deduplicated_directed",missing_count:i.size}}function lp(e,t=ce()){let n=bc(e.maxDepth),r=yt(e.nodeLimit,"node-limit"),o=yt(e.edgeLimit,"edge-limit"),i=yt(e.tokenBudget,"token-budget"),s=rp(e.kind,t);return{direction:np(e.direction),...s===void 0?{}:{kinds:s},...n===void 0?{}:{maxDepth:n},...r===void 0?{}:{nodeLimit:r},...o===void 0?{}:{edgeLimit:o},...i===void 0?{}:{tokenBudget:i},...e.cursor?.trim()?{cursor:e.cursor.trim()}:{}}}function up(e,t,n,r){return Na(e.graph,t,e.details.map(o=>o.id===t&&r.length>0?{...o,evidence:r}:o),n)}function ei(e,t,n,r){for(let o of n.slice(0,r)){let i=o?.trim();i&&e.push(`${t}:${i}`)}}async function fp(e,t,n,r){let o=await ur(e,t,n.id_prefix,n.item_format,r);if(!o)return[];let{document:i}=await fr(o,{schema:n.schema}),s=i.metadata,a=s.files??[],c=s.tests??[],d=s.docs??[],u=[["files",a.length],["tests",c.length],["docs",d.length],["comments",(s.comments??[]).length],["notes",(s.notes??[]).length],["learnings",(s.learnings??[]).length]];if(u.every(([,_])=>_===0))return[];let f=[`linked:${u.map(([_,p])=>`${_}=${p}`).join(",")}`];return ei(f,"file",a.map(_=>_.path),3),ei(f,"test",c.map(_=>_.command??_.path),2),ei(f,"doc",d.map(_=>_.path),2),f}function _p(e){let{canonicalId:t,context:n,missingCount:r,missingReferences:o,referenceLimit:i,summaryOnly:s}=e;return{id:t,format:"context",node_count:n.nodes.length+1,edge_count:n.edges.length,edge_basis:"deduplicated_directed",missing_count:r,missing_scope:"traversal",missing_reference_count:o.length,...s?{}:{missing_references:o.slice(0,i),context:n}}}function mp(e){let{row:t,missingReachableSet:n,packetIds:r,filteredKinds:o,registry:i}=e;if(t.no_active_blocker_sentinel||!n.has(t.target_id.trim().toLowerCase())||!r.has(t.holder_id))return!1;if(o===void 0)return!0;let s=i.resolve(t.kind);return s!==void 0&&(o.has(s.kind)||s.inverse!==void 0&&o.has(s.inverse))}function Ic(e,t,n){let r;for(;;){let o=sn(new TextEncoder().encode(Er(wr("deps",e),t)).byteLength);if(o===r)return o;n(o),r=o}}function pp(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function hp(e){try{return up(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&pp(t))return e.smallestResult;throw t}}function yp(e){let{assembly:t,canonicalId:n,contextOptions:r,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:a,missingReferences:c}=e,u=r.edgeLimit??40,f=r.tokenBudget,_,p;for(;;){let m=hp({assembly:t,canonicalId:n,contextOptions:r,internalTokenBudget:f,rootEvidence:o,smallestResult:p});if("format"in m)return m;let y=m;_??=y.meta.tokenBudget,f??=_;let g=_p({canonicalId:n,context:y,missingCount:a,missingReferences:c,referenceLimit:u,summaryOnly:i});if(p=g,i||(y.meta.tokenBudget=_,y.meta.usedTokens=Ic(gt(g,!1),s,D=>{y.meta.usedTokens=D}),y.meta.usedTokens<=_))return g;if(u>0){u-=1;continue}let S=f,R=S*_/y.meta.usedTokens;f=Math.min(S-1,Math.max(1,Math.floor(R*.9)))}}function gp(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:o,summaryOnly:i,outputFormat:s}=e,a=lp(r,t.graph.registry()),c=t.graph.closure(n,{direction:a.direction,...a.kinds===void 0?{}:{kinds:a.kinds},maxDepth:a.maxDepth??3}),d=c.value.filter(y=>t.missingIdSet.has(y.toLowerCase())),u=new Set(d.map(y=>y.toLowerCase())),f=t.graph.registry(),_=a.kinds?new Set(a.kinds.map(y=>f.require(y).kind)):void 0,p=new Set([n,...c.value]),m=[...t.dangling.active,...t.dangling.legacy_terminal].filter(y=>mp({row:y,missingReachableSet:u,packetIds:p,filteredKinds:_,registry:f}));return yp({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:d.length,missingReferences:m})}function vp(e){let t=[e],n;for(;t.length>0;){let r=t.pop();r.dependencies.length>0&&(n=r,t.push(...r.dependencies))}return n?(n.dependencies.pop(),n.truncated=!0,!0):!1}function wp(e,t,n,r,o,i,s){let a=o??Ym,c=yt(n.nodeLimit,"node-limit")??Jm,d=yt(n.edgeLimit,"edge-limit")??Qm,u=yt(n.tokenBudget,"token-budget")??Zm,f={nodeLimit:c,edgeLimit:d,tokenBudget:u,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},_=Ec(e,r,new Set,a,t==="graph"?"repeated":i,new Set,f),p=kc(e,r,void 0),m;for(;;){let y=dp(_),g=f.reasons.size===0?void 0:{reasons:[...f.reasons].sort(),limits:{max_depth:a,node_limit:c,edge_limit:d,token_budget:u},estimated_tokens:0,total_node_count:p.node_count,total_edge_count:p.edge_count,omitted_node_count:Math.max(0,p.node_count-y.nodes.length),omitted_edge_count:Math.max(0,p.edge_count-y.edges.length)},S={id:e,format:t,node_count:y.nodes.length,edge_count:y.edges.length,edge_basis:"deduplicated_directed",missing_count:y.missing_ids.length,...g?{truncation:g}:{}};if(m=t==="tree"?{...S,tree:_}:{...S,graph:y},(m.truncation===void 0?sn(new TextEncoder().encode(Er(wr("deps",gt(m,!1)),s)).byteLength):Ic(gt(m,!1),s,D=>{m.truncation.estimated_tokens=D}))<=u)return m;if(!vp(_))return f.reasons.add("token_budget"),m;f.reasons.add("token_budget")}}function gt(e,t,n={}){let r={name:e.format==="tree"?"dependency_tree":e.format==="graph"?"dependency_graph":"relationship_context",restore_with:"--full"};return{...e,legacy_alias_counts:n,projection:{mode:t?"summary":"full",declared_field_groups:[r],included_field_groups:t?[]:[r.name]}}}async function ub(e,t,n){let r=mi(process.cwd(),n.path);await Zo(r);let o=ep(t.format),i=bc(t.maxDepth),s=tp(t.collapse);Ci(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await _c(r),d=en(c,de()),u=await pc(r,c.item_format,d.type_to_folder,void 0,c.schema),f=rn(c.schema),_=new Map(u.map(m=>[m.id.trim().toLowerCase(),ip(m)])),p=Do(u,m=>me(m,f));for(let m of[...p.active,...p.legacy_terminal]){let y=_.get(m.holder_id.trim().toLowerCase()),g=m.kind.trim().toLowerCase();y&&!y.dependencies.some(S=>S.id.trim().toLowerCase()===m.target_id.trim().toLowerCase()&&S.kind===g)&&y.dependencies.push({id:m.target_id,kind:g})}if(!_.has(e.trim().toLowerCase()))throw new v(`Item ${e} not found`,E.NOT_FOUND);if(o==="context"){let m=_.get(e.trim().toLowerCase()).id,y=a?[]:await fp(r,m,c,d.type_to_folder),g=D=>me(D,f),S=ae(),R=Da().lookup(r,Ra(u,g,S),()=>er(u,g,S));return gt(gp({assembly:R.assembly,canonicalId:m,options:t,rootEvidence:y,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,R.assembly.legacyAliasCounts)}return a?gt({id:e,format:o,...kc(e,_,i)},!0,Object.fromEntries(Object.entries(er(u,m=>me(m,f)).legacyAliasCounts))):gt(wp(e,o,t,_,i,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(er(u,m=>me(m,f)).legacyAliasCounts)))}export{Ne as a,Ir as b,Ep as c,kp as d,cn as e,xr as f,Rp as g,Ap as h,Dp as i,Np as j,Lp as k,Pp as l,Fr as m,$r as n,qi as o,Vp as p,qp as q,Kp as r,Gp as s,Xp as t,Yp as u,Br as v,Ji as w,Jp as x,Qp as y,Zp as z,od as A,es as B,ts as C,nh as D,sd as E,ns as F,je as G,Ee as H,as as I,St as J,ph as K,hh as L,Je as M,rs as N,oh as O,os as P,ad as Q,ih as R,_n as S,Qe as T,me as U,pn as V,gn as W,vn as X,gs as Y,ne as Z,Nl as _,nt as $,rt as aa,eu as ba,ny as ca,ry as da,oy as ea,cu as fa,xn as ga,ze as ha,Dt as ia,Cy as ja,uo as ka,Dn as la,zs as ma,Oy as na,Bs as oa,xy as pa,st as qa,at as ra,vs as sa,Tu as ta,Nn as ua,$y as va,_o as wa,Ln as xa,zy as ya,Hy as za,Gs as Aa,Pn as Ba,Js as Ca,ct as Da,Lu as Ea,Uy as Fa,By as Ga,Nt as Ha,po as Ia,ng as Ja,rg as Ka,ea as La,og as Ma,na as Na,Lv as Oa,cr as Pa,fc as Qa,_c as Ra,Yv as Sa,zu as Ta,Uu as Ua,Bu as Va,Wu as Wa,Vu as Xa,go as Ya,vg as Za,Xo as _a,Am as $a,sa as ab,bo as bb,Lt as cb,Tg as db,Dg as eb,Ng as fb,Lg as gb,ga as hb,_f as ib,Oo as jb,Kg as kb,xo as lb,Jn as mb,pt as nb,Zo as ob,ur as pb,fr as qb,Fm as rb,$m as sb,pc as tb,Mw as ub,hc as vb,Um as wb,jw as xb,Fw as yb,$w as zb,qw as Ab,cv as Bb,dv as Cb,t_ as Db,ae as Eb,tv as Fb,Zn as Gb,nv as Hb,Zf as Ib,rv as Jb,Ut as Kb,r_ as Lb,i_ as Mb,Do as Nb,s_ as Ob,hv as Pb,er as Qb,Ra as Rb,No as Sb,Da as Tb,bv as Ub,Na as Vb,yt as Wb,bc as Xb,np as Yb,rp as Zb,ub as _b,jo as $b,b_ as ac,Wt as bc,rr as cc,Pa as dc,E_ as ec,k_ as fc,I_ as gc,C_ as hc};
|
|
164
|
-
//# sourceMappingURL=chunk-M74YW332.js.map
|