@unbrained/pm-cli 2026.10.17 → 2026.10.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +25 -0
- package/dist/cli/register-list-query.js +2 -2
- package/dist/cli-bundle/bundle-manifest.json +1 -1
- package/dist/cli-bundle/chunks/{chunk-3QKI3XNX.js → chunk-4GA4MUTE.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-X2ONXFBP.js → chunk-4V6ONLI6.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-B5QVGCZX.js → chunk-6VZKYJW7.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-7PATQWTH.js +20 -0
- package/dist/cli-bundle/chunks/{chunk-W3KZ22DW.js → chunk-7WIEAGDS.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-EA2CG7UM.js → chunk-AETP4JEM.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-6ZDKKOKM.js → chunk-FIJOSX2C.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-VMCSTFSO.js → chunk-LUKVNL72.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-J4LPQCET.js → chunk-OJ77ZQN3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-O4YBC3OM.js → chunk-PYRREEUB.js} +30 -30
- package/dist/cli-bundle/chunks/chunk-RHQJ6VWC.js +237 -0
- package/dist/cli-bundle/chunks/{chunk-OZCSXX4D.js → chunk-RNABUEFB.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HY7FQ7QX.js → chunk-TO6CIV4C.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-JS3B2M4D.js → chunk-ZZED447K.js} +2 -2
- package/dist/cli-bundle/chunks/{register-list-query-RU3QZSAQ.js → register-list-query-PUCVYYBD.js} +7 -7
- package/dist/cli-bundle/chunks/{register-mutation-EQYMT32A.js → register-mutation-GGGVBXD5.js} +2 -2
- package/dist/cli-bundle/chunks/{register-operations-VXBGE4XI.js → register-operations-NRZ6Q4QE.js} +2 -2
- package/dist/cli-bundle/chunks/{register-setup-UUDEGFRO.js → register-setup-MV3P3YSF.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-LDKX4KYJ.js → chunk-2MPQUMTF.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-MBQF6HT6.js → chunk-5UKCSZWT.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-FTUZ3JF2.js → chunk-A4ZHHTEX.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-JXR6UKFM.js → chunk-B4YLP5ZB.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-NZO7GOXD.js → chunk-BFEMT5U3.js} +16 -16
- package/dist/cli-bundle/focused-chunks/{chunk-QOSVJDOO.js → chunk-FW7CSSKL.js} +61 -61
- package/dist/cli-bundle/focused-chunks/{chunk-AH6NX6GM.js → chunk-HYPRPSYD.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-RBLSY6ML.js → chunk-IRVL4UXR.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-RHTH5ILM.js → chunk-L55KQ2KT.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-PYC7BF6Z.js → chunk-MASIOFPG.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-RJ3EIHDU.js +26 -0
- package/dist/cli-bundle/focused-chunks/chunk-SEL4Z2OO.js +167 -0
- package/dist/cli-bundle/focused-chunks/{chunk-2IOHHNRT.js → chunk-TB7F4FCR.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-UNTQE37U.js → chunk-TZUIBG3P.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-E33QA7PK.js → chunk-Z7YIFCNE.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-SIGIGZCG.js → chunk-ZDBS2DCT.js} +2 -2
- package/dist/cli-bundle/main.js +2 -2
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +1 -1
- package/dist/cli-bundle/sdk-core.js +16 -16
- 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 +50 -49
- 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 +1 -1
- package/dist/core/history/event-index.d.ts +8 -1
- package/dist/core/history/event-index.js +19 -18
- package/dist/core/item/item-format.js +1 -1
- package/dist/core/lock/lock.d.ts +8 -1
- package/dist/core/lock/lock.js +3 -3
- package/dist/core/output/output.js +2 -2
- package/dist/core/store/paths.js +1 -1
- package/dist/core/telemetry/policy.d.ts +2 -0
- package/dist/core/telemetry/policy.js +1 -1
- package/dist/core/telemetry/runtime.d.ts +5 -3
- package/dist/core/telemetry/runtime.js +3 -3
- package/dist/sdk/governance/health/projection.d.ts +37 -0
- package/dist/sdk/governance/health/projection.js +2 -0
- package/dist/sdk/governance/health.d.ts +7 -18
- package/dist/sdk/governance/health.js +2 -2
- package/dist/sdk/mutation-events.js +1 -1
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/query/list.d.ts +2 -0
- package/dist/sdk/query/list.js +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.js +1 -1
- package/docs/COMMANDS.md +26 -0
- package/docs/CONFIGURATION.md +22 -1
- package/docs/DEVELOPMENT_DEPENDENCY_SECURITY.md +22 -3
- package/docs/OUTPUT_PROJECTION_CONTRACTS.md +10 -0
- package/docs/RELEASING.md +8 -1
- package/docs/SDK_CONTEXT_COORDINATION.md +71 -7
- package/docs/SDK_STORAGE_LIFECYCLE.md +24 -2
- package/docs/TESTING.md +8 -0
- package/docs/examples/ci/github-actions-pm-extension-gate.yml +1 -1
- package/docs/examples/ci/gitlab-ci-pm-extension-gate.yml +1 -1
- package/docs/examples/ci/jenkins-pm-extension-gate.Jenkinsfile +1 -1
- package/marketplace.json +1 -1
- package/node_modules/@opentelemetry/core/package.json +2 -1
- package/node_modules/@opentelemetry/instrumentation/package.json +2 -1
- package/node_modules/@opentelemetry/resources/package.json +2 -1
- package/node_modules/@opentelemetry/sdk-trace/package.json +2 -1
- package/node_modules/@opentelemetry/sdk-trace-base/package.json +2 -1
- package/node_modules/@sentry/core/build/cjs/client.js +5 -4
- package/node_modules/@sentry/core/build/cjs/tracing/ai/gen-ai-attributes.js +0 -4
- package/node_modules/@sentry/core/build/cjs/tracing/ai/utils.js +33 -23
- package/node_modules/@sentry/core/build/cjs/tracing/anthropic-ai/index.js +7 -6
- package/node_modules/@sentry/core/build/cjs/tracing/anthropic-ai/streaming.js +3 -1
- package/node_modules/@sentry/core/build/cjs/tracing/google-genai/index.js +13 -14
- package/node_modules/@sentry/core/build/cjs/tracing/google-genai/streaming.js +6 -1
- package/node_modules/@sentry/core/build/cjs/tracing/langchain/utils.js +71 -21
- package/node_modules/@sentry/core/build/cjs/tracing/langgraph/utils.js +23 -33
- package/node_modules/@sentry/core/build/cjs/tracing/openai/streaming.js +6 -0
- package/node_modules/@sentry/core/build/cjs/tracing/openai/utils.js +11 -0
- package/node_modules/@sentry/core/build/cjs/tracing/workers-ai/utils.js +1 -1
- package/node_modules/@sentry/core/build/cjs/utils/eventUtils.js +4 -0
- package/node_modules/@sentry/core/build/cjs/utils/prepareEvent.js +2 -2
- package/node_modules/@sentry/core/build/cjs/utils/version.js +1 -1
- package/node_modules/@sentry/core/build/esm/client.js +6 -5
- package/node_modules/@sentry/core/build/esm/package.json +1 -1
- package/node_modules/@sentry/core/build/esm/tracing/ai/gen-ai-attributes.js +1 -3
- package/node_modules/@sentry/core/build/esm/tracing/ai/utils.js +34 -24
- package/node_modules/@sentry/core/build/esm/tracing/anthropic-ai/index.js +8 -7
- package/node_modules/@sentry/core/build/esm/tracing/anthropic-ai/streaming.js +3 -1
- package/node_modules/@sentry/core/build/esm/tracing/google-genai/index.js +15 -16
- package/node_modules/@sentry/core/build/esm/tracing/google-genai/streaming.js +6 -1
- package/node_modules/@sentry/core/build/esm/tracing/langchain/utils.js +73 -24
- package/node_modules/@sentry/core/build/esm/tracing/langgraph/utils.js +24 -34
- package/node_modules/@sentry/core/build/esm/tracing/openai/streaming.js +6 -0
- package/node_modules/@sentry/core/build/esm/tracing/openai/utils.js +11 -0
- package/node_modules/@sentry/core/build/esm/tracing/workers-ai/utils.js +2 -2
- package/node_modules/@sentry/core/build/esm/utils/eventUtils.js +4 -1
- package/node_modules/@sentry/core/build/esm/utils/prepareEvent.js +2 -2
- package/node_modules/@sentry/core/build/esm/utils/version.js +1 -1
- package/node_modules/@sentry/core/build/types/tracing/ai/utils.d.ts +3 -7
- package/node_modules/@sentry/core/build/types/tracing/anthropic-ai/types.d.ts +2 -2
- package/node_modules/@sentry/core/build/types/tracing/langchain/types.d.ts +15 -0
- package/node_modules/@sentry/core/build/types/tracing/langchain/utils.d.ts +1 -0
- package/node_modules/@sentry/core/build/types/tracing/langgraph/utils.d.ts +2 -0
- package/node_modules/@sentry/core/build/types/tracing/openai/types.d.ts +2 -0
- package/node_modules/@sentry/core/build/types/utils/eventUtils.d.ts +2 -1
- package/node_modules/@sentry/core/build/types-ts3.8/tracing/ai/utils.d.ts +3 -7
- package/node_modules/@sentry/core/build/types-ts3.8/tracing/anthropic-ai/types.d.ts +2 -2
- package/node_modules/@sentry/core/build/types-ts3.8/tracing/langchain/types.d.ts +15 -0
- package/node_modules/@sentry/core/build/types-ts3.8/tracing/langchain/utils.d.ts +1 -0
- package/node_modules/@sentry/core/build/types-ts3.8/tracing/langgraph/utils.d.ts +2 -0
- package/node_modules/@sentry/core/build/types-ts3.8/tracing/openai/types.d.ts +2 -0
- package/node_modules/@sentry/core/build/types-ts3.8/utils/eventUtils.d.ts +2 -1
- package/node_modules/@sentry/core/package.json +1 -1
- package/node_modules/@sentry/node/build/esm/package.json +1 -1
- package/node_modules/@sentry/node/package.json +5 -5
- package/node_modules/@sentry/node-core/build/cjs/integrations/anr/index.js +1 -1
- package/node_modules/@sentry/node-core/build/cjs/integrations/local-variables/local-variables-async.js +1 -1
- package/node_modules/@sentry/node-core/build/esm/integrations/anr/index.js +1 -1
- package/node_modules/@sentry/node-core/build/esm/integrations/anr/worker-script.js +2 -2
- package/node_modules/@sentry/node-core/build/esm/integrations/local-variables/local-variables-async.js +1 -1
- package/node_modules/@sentry/node-core/build/esm/integrations/local-variables/worker-script.js +1 -1
- package/node_modules/@sentry/node-core/build/esm/package.json +1 -1
- package/node_modules/@sentry/node-core/package.json +10 -4
- package/node_modules/@sentry/opentelemetry/build/esm/package.json +1 -1
- package/node_modules/@sentry/opentelemetry/package.json +5 -2
- package/node_modules/@sentry/server-utils/build/THIRD-PARTY-LICENSES.txt +55 -55
- package/node_modules/@sentry/server-utils/build/esm/package.json +1 -1
- package/node_modules/@sentry/server-utils/package.json +2 -2
- package/node_modules/@toon-format/toon/README.md +10 -41
- package/node_modules/@toon-format/toon/dist/index.d.mts +12 -36
- package/node_modules/@toon-format/toon/dist/index.mjs +134 -202
- package/node_modules/@toon-format/toon/package.json +2 -2
- package/node_modules/debug/package.json +3 -0
- package/node_modules/fdir/package.json +3 -0
- package/node_modules/has-flag/index.d.ts +39 -0
- package/node_modules/has-flag/index.js +8 -0
- package/node_modules/has-flag/license +9 -0
- package/node_modules/has-flag/package.json +46 -0
- package/node_modules/has-flag/readme.md +89 -0
- package/node_modules/supports-color/browser.js +5 -0
- package/node_modules/supports-color/index.js +135 -0
- package/node_modules/supports-color/license +9 -0
- package/node_modules/supports-color/package.json +53 -0
- package/node_modules/supports-color/readme.md +76 -0
- package/package.json +4 -4
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-claude/package.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/pm-codex/package.json +1 -1
- package/plugins/pm-codex/plugin.json +1 -1
- package/runtime-dependencies.json +1 -1
- package/dist/cli-bundle/chunks/chunk-4PNPDT2N.js +0 -236
- package/dist/cli-bundle/chunks/chunk-X53HM753.js +0 -20
- package/dist/cli-bundle/focused-chunks/chunk-5JEFDEL3.js +0 -166
- package/dist/cli-bundle/focused-chunks/chunk-TRFVAWF2.js +0 -26
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import{b as dn,g as Ot,i as Rt,j as At,l as os,m as is,n as mn,o as ss,p as as,q as cs}from"./chunk-HYPRPSYD.js";import{h as yn}from"./chunk-YLVHHWHN.js";import{$ as b,$a as un,$d as ms,A as Fi,Aa as Bi,F as an,G as cn,H as xr,He as jr,Ie as Mr,J as $i,Ka as Vi,P as ve,Pa as Gi,Pc as me,Qa as qi,Qc as Dr,Rc as _n,Re as ye,Sa as Ki,Sc as _e,Se as se,Ta as Xi,Tc as Nr,Td as ls,Uc as ke,Ud as us,V as je,Vc as Lr,W as Hi,Wa as ln,Ya as Yi,Yc as Dt,Yd as fs,Z as k,_ as Me,aa as h,ab as Ji,ae as Ie,bb as Qi,bd as ds,be as pe,ce as hn,db as rt,dd as Pr,de as ot,eb as Rr,ee as he,fb as Ar,gb as fe,he as _s,i as nn,ib as Zi,id as He,ie as ps,jb as D,je as hs,kb as ie,ke as V,la as ue,lb as fn,mb as T,q as rn,qa as zi,r as Li,rb as es,s as Pi,sa as Ui,t as ji,ta as Fe,td as pn,u as Mi,ua as $e,va as J,vb as ts,wa as Ee,wb as ns,xa as Wi,y as on,ya as Or,z as sn,za as q,zc as rs}from"./chunk-RJ3EIHDU.js";import{AsyncLocalStorage as Od}from"node:async_hooks";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1fbb183b-c6d8-5834-b4cb-e4fb515572b9")}catch{}})();var Fr=new Od,ys=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function gn(e,t){let n=typeof e=="string"?e.trim():"";return n.length>0?n.slice(0,t):void 0}function ze(e,t){if(e===void 0)return;let n=typeof e=="object"&&e!==null?e:{},r=gn(n.id,128),o=gn(n.parent_id,128);if(r===void 0||!ys.test(r)||o!==void 0&&!ys.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=gn(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function it(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=gn(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function Rd(e,t,n){let r=Fr.getStore(),o=it({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=ze(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={...it(r?.provenance),...o,...it(e?.provenance)},a=ze(e?.episode,!1)??ze(n,!1)??i??ze(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 $r(e,t){return Rd(e.session_context,t,e.client_info?.episode)??{}}function Bh(e,t){let n=Fr.getStore(),r=ze(e.episode,!0),o=ze(n?.episode,!1),i=r!==void 0&&r.parent_id===void 0&&o!==void 0?{...r,parent_id:o.id}:r,s={...it(n?.provenance),...it(e.provenance)};return Fr.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function Vh(e){let t=it(e.provenance),n=ze(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 Qr}from"node:async_hooks";import{createHash as Pd}from"node:crypto";import G from"node:fs";import Ts from"node:os";import Be from"node:path";import{createHash as gs}from"node:crypto";import{existsSync as Hr,promises as bs,readFileSync as Ad}from"node:fs";import ae from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="06c9f6f4-c2f0-549c-9a0f-4f4269cc5f49")}catch{}})();var Dd="session.json";function zr(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function ws(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=zr(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=>zr(c,128)),a=t.focused_item_id===void 0||zr(t.focused_item_id,128);if([n,r,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function Nd(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([n,r])=>{let o=ws(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Ur(e){return ae.join(Zi(e),Dd)}async function vs(e){try{let t=await bs.readFile(Ur(e),"utf8"),n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return{};let r=n,o=r.focused_item,i=Nd(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 Wr(e,t){let n=await V(e,"session-state",k.locks.ttl_seconds,"session-state",!1,!0,k.locks.wait_ms);try{let r=await vs(e);t(r);let o=Ur(e);await bs.mkdir(ae.dirname(o),{recursive:!0}),await q(o,JSON.stringify(r))}finally{await n()}}function Br(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${gs("sha256").update(e).digest("hex").slice(0,24)}`}function Vr(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function Gr(e){let t=[...new Set(e)].sort((r,o)=>r.localeCompare(o));if(t.length===1)return t[0];let n=`workset:${t.join("+")}`;return n.length<=256?n:`workset:${t.join("+").slice(0,230)}+${gs("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function qr(e,t,n){await Wr(e,r=>{let o={...r.semantic_attribution},i=n(o[t]);i===void 0?delete o[t]:o[t]=i,Object.keys(o).length===0?delete r.semantic_attribution:r.semantic_attribution=o})}async function ey(e){let t=Br(e.principal);await qr(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??Gr(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Vr([...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 ty(e){let t=Br(e.principal);await qr(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??Gr(r),confidence:o?"high":"medium",evidence:Vr([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:r}})}async function ny(e){let t=Br(e.principal);await qr(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??Gr(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Vr([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}function Ld(e,t){let n=t.PM_PATH?.trim();if(n){let o=ae.resolve(e,n);if(Hr(ae.join(o,"settings.json")))return o;let i=ae.join(o,".agents","pm");if(Hr(ae.join(i,"settings.json")))return i}let r=ae.resolve(e);for(let o=0;o<32;o+=1){let i=ae.join(r,".agents","pm");if(Hr(ae.join(i,"settings.json")))return i;let s=ae.dirname(r);if(s===r)break;r=s}}function Es(e){if(!e.key)return;let t=Ld(e.cwd,e.env);if(t)try{let n=JSON.parse(Ad(Ur(t),"utf8"));return ws(n.semantic_attribution?.[e.key])}catch{return}}async function ry(e){return(await vs(e)).focused_item}async function oy(e,t){await Wr(e,n=>{n.focused_item=t})}async function iy(e){await Wr(e,t=>{delete t.focused_item})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a69b86e2-6633-5abc-81b7-6a54a592d36c")}catch{}})();var Zr=["model","effort","role","topic","version"],vn=new Qr,Cs=new Qr,En=new Qr,eo=[{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:[]}],xs=Object.freeze({max_bytes:1048576,max_lines:4096,network_access:!1,subprocess_access:!1}),jd=Object.freeze({...xs,max_bytes:4194304}),Kr=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function Md(e){let t=Te(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"?jd:xs,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 Os=Object.freeze(eo.filter(e=>e.harness!=="ci").map(Md).sort((e,t)=>e.harness.localeCompare(t.harness))),We=new Map,st=new Map;function j(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function Se(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function Te(e){let t=e.harness.trim().toLowerCase();if(!Kr.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:Se(e.environment_keys),model_environment_keys:Se(e.model_environment_keys),session_environment_keys:Se(e.session_environment_keys),provenance_environment_keys:Object.fromEntries(Object.entries(e.provenance_environment_keys??{}).slice(0,32).map(([n,r])=>[n.trim().toLowerCase().slice(0,64),Se(r)]).filter(([n])=>Kr.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"&&Kr.test(n[0])&&(n[1]==="ai_agent_version"||n[1]==="claude_session_file"||n[1]==="codex_session_file"))),provenance_unavailable_dimensions:Se(e.provenance_unavailable_dimensions).map(n=>n.toLowerCase()),argv_markers:Se(e.argv_markers).map(n=>n.toLowerCase()),client_names:Se(e.client_names).map(n=>n.toLowerCase())}}var Rs=eo.map(Te);function Fd(e,t){return JSON.stringify(e)===JSON.stringify(t)}function wn(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(n=>n.length>0).includes(t)||e.trim().toLowerCase()===t}function to(e=[]){let t=new Map(eo.filter(o=>o.harness!=="ci").map(o=>[o.harness,Te(o)]));for(let{adapter:o}of We.values())t.set(o.harness,Te(o.descriptor));let n=[...t.values(),...Rs.filter(o=>o.harness==="ci"),...[...st.values()].map(o=>o.descriptor),...En.getStore()?.descriptors??[],...e.map(Te)],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 no(e,t){for(let n of t??[]){let r=j(e[n]);if(r)return r.slice(0,256)}}function $d(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 As(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 j(r[o+1])?.slice(0,256);let s=n.find(a=>i.startsWith(`${a}=`));if(s)return j(i.slice(s.length+1))?.slice(0,256)}}var Hd=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function Ue(e,t){if(e!=="role"||t===void 0)return t;let n=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return Hd.has(n)?n:void 0}function Xr(e,t){return j(e?.[t])?.slice(0,256)}var zd=1048576,Jr=4194304,bn=new Map,ks=Object.freeze({}),Yr=new Map,Is=Object.freeze({});function Ss(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function Ud(e){let t;try{t=JSON.parse(e)}catch{return Is}let n=Ss(t);if(!n)return Is;let r=[{value:n,depth:0}],o=0,i,s;for(;r.length>0&&o<64;){let a=r.shift();if(o+=1,i??=j(a.value.model)?.slice(0,256),s??=j(a.value.version)?.slice(0,256),i&&s)break;if(!(a.depth>=4))for(let c of Object.values(a.value)){let d=Ss(c);d&&r.push({value:d,depth:a.depth+1})}}return Object.freeze({model:i,version:s})}function Ds(e){try{return G.lstatSync(e).isFile()?"available":"missing"}catch(t){return $e(t)?"missing":"failed"}}function Wd(e,t){let n;try{n=G.readdirSync(e,{withFileTypes:!0}).filter(o=>o.isDirectory()).sort((o,i)=>o.name.localeCompare(i.name)).slice(0,512).map(o=>{let i=Be.join(e,o.name,`${t}.jsonl`);return{candidate:i,status:Ds(i)}})}catch(o){return{status:$e(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 Ns(e,t){let n=j(t.CLAUDE_CODE_SESSION_ID);if(!n||!/^[A-Za-z0-9_-]{1,128}$/u.test(n))return{status:"unavailable"};let r=Be.resolve(e.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),o=Be.join(e.home_dir??Ts.homedir(),".claude","projects"),i=Be.join(o,r,`${n}.jsonl`),s=j(e.session_file),a=s&&Be.basename(s)===`${n}.jsonl`?s:void 0;for(let c of[a,i]){if(!c)continue;let d=Ds(c);if(d==="available")return{status:d,path:c};if(d==="failed")return{status:d}}return Wd(o,n)}function Bd(e,t,n){let r=Ns(t,n);if(r.status==="available")try{let o=G.openSync(r.path,G.constants.O_RDONLY|G.constants.O_NOFOLLOW);try{let i=G.fstatSync(o),s=`${r.path}\0${i.size}\0${i.mtimeMs}`,a=Yr.get(s);if(a)return a[e];let c=Math.min(i.size,zd),d=Math.min(c,Math.ceil(c/2)),l=Math.min(c-d,i.size-d),f=Buffer.alloc(d);G.readSync(o,f,0,d,0);let _=Buffer.alloc(l);l>0&&G.readSync(o,_,0,l,i.size-l);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=Ud(g);if(p.model??=S.model,p.version??=S.version,p.model&&p.version)break}let w=Object.freeze(p);return Yr.clear(),Yr.set(s,w),w[e]}finally{G.closeSync(o)}}catch{return}}function Vd(e,t){let n=0,r=(o,i)=>{if(i>4||n>=512)return;let s;try{s=G.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=Be.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 Gd(e){if(e<=Jr)return[{offset:0,length:e}];let t=Math.floor(Jr/2);return[{offset:e-t,length:t},{offset:0,length:t}]}function qd(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??=j(o?.model)?.slice(0,256),e.effort??=j(o?.effort)?.slice(0,256)}function Kd(e,t){let n={},r=4096;for(let o of Gd(t)){let i=Buffer.alloc(o.length);G.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(qd(n,a),n.model&&n.effort)break;if(n.model&&n.effort||r<=0)break}return n}function Xd(e,t,n){let r=j(n.CODEX_THREAD_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let o=Be.join(t.home_dir??Ts.homedir(),".codex","sessions"),i=`${o}\0${r}`,s=bn.get(i);if(s)return s[e];let a=Vd(o,r);if(!a){bn.set(i,ks);return}try{let c=G.openSync(a,"r");try{let d=G.fstatSync(c).size,l=Kd(c,d);return bn.set(i,l),l[e]}finally{G.closeSync(c)}}catch{bn.set(i,ks);return}}function Yd(e,t,n,r){let o=En.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(j(n.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let i=r?.provenance_resolvers[e];if(i==="claude_session_file")return Bd(e,t,n);if(i==="codex_session_file")return Xd(e,t,n);if(i==="ai_agent_version"){let s=j(n.AI_AGENT);return!s||!r||!wn(s,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(s)?.[1]?.slice(0,256)}}function Jd(e,t,n,r){if(e==="ai_agent_version"){let o=j(r.AI_AGENT);return o!==void 0&&wn(o,t.harness)?"available":"unavailable"}return e==="codex_session_file"?j(r.CODEX_THREAD_ID)!==void 0?"available":"unavailable":Ns(n,r).status}function ro(e){return e||(Cs.getStore()??{env:process.env,argv:process.argv})}function Qd(e,t,n,r){let o=e.environment_keys.some(a=>j(t[a])!==void 0),i=e.argv_markers.some(a=>n.some(c=>{let d=c.replaceAll("\\","/");return wn(d.slice(d.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||wn(r,a));return o||i||s}function Zd(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 el(e){let t=e.find(([n])=>n!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function tl(e,t,n,r,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...Zr,...Object.keys(r?.provenance_environment_keys??{})]),c,d,l;a.has(e)&&(c=Ue(e,j(n[s])?.slice(0,256)),l=Ue(e,As(t.argv??[],e)),d=Ue(e,$d(t.argv??[],e)));let f={...r?.provenance_environment_keys,model:r?.model_environment_keys},_={...t.client_info?.provenance,model:t.client_info?.model},p=Xr(o?.provenance,e),m=Ue(e,no(n,f[e])),w=Ue(e,Xr(_,e)),g=Ue(e,Xr(t.provenance,e)),S=Yd(e,t,n,r);return el([[c,"override"],[p,"session"],[l,"argv"],[m,"environment"],[w,"mcp_client"],[g,"host"],[S,"probe"]])??Zd(e,i)??(d?{value:d,source:"argv"}:void 0)}function nl(e,t){if(!(!e||!t))return Pd("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function rl(e,t,n,r,o){let i=Object.keys(n?.provenance_environment_keys??{}),s=new Set([...Zr,...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=tl(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 py(e){let t=e.map(Te),n=new Map(Rs.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=st.get(i.harness);if(s&&!Fd(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=st.get(i.harness);st.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=st.get(i.harness);!s||s.registrations<=1?st.delete(i.harness):s.registrations-=1}}}}function ol(e){let t=Te(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=j(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>Jr||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(Se(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 hy(){let e=new Map(Os.map(t=>[t.harness,t]));for(let{adapter:t}of We.values())e.set(t.harness,t);return Object.freeze([...e.values()].sort((t,n)=>t.harness.localeCompare(n.harness)))}function yy(e){let t=e.map(ol),n=new Map(Os.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=We.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=We.get(i.harness);We.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=We.get(i.harness);!s||s.registrations<=1?We.delete(i.harness):s.registrations-=1}}}}function gy(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 by(e,t){return Cs.run(e,t)}function wy(e,t,n={}){let r=e.map(Te);return to(r),En.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function oo(e){let t=ro(e),n=t.env??{},r=to(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=>Qd(m,n,o,i)),a=$r(t,n),c=[no(n,s?.session_environment_keys),j(t.client_info?.session)?.slice(0,256)].find(m=>m!==void 0),d=nl(s?.harness,c),l=Es({cwd:t.cwd??process.cwd(),env:n,key:d}),f=rl(t,n,s,a,l),_=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 il(e){return e==="unavailable"?{status:"unavailable",reason:"harness_unavailable"}:e==="missing"?{status:"unavailable",reason:"resolver_input_missing"}:{status:"failed",reason:"resolver_failed"}}function sl(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=Jd(a,n,r,o);return{...il(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 Ls(e){let t=ro(e),n=oo(t),r=to(t.descriptors).find(d=>d.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&En.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(j(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=$r(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,no(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,As(t.argv??[],"role")].some(d=>{let l=j(d)?.slice(0,256);return l!==void 0&&Ue("role",l)===void 0}),c=Object.fromEntries(Zr.map(d=>[d,sl(d,n,r,t,o,i,d==="role"&&a)]));return{...n,provenance_outcomes:c}}function vy(){return process.env.PM_AUTHOR}function Ey(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function ky(e){return oo(e).harness}function al(e,t,n){let r=ro(n),o=oo(r);if(e!==void 0){let s=j(e);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}if(r.env?.PM_AUTHOR!==void 0){let s=j(r.env.PM_AUTHOR);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}let i=j(t);return i?{author:i,source:"configured",...o}:o.harness?{author:`harness:${o.harness}`,source:"detected",...o}:{author:"unknown",source:"unknown",...o}}function Ps(e){let t=vn.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function js(e){let t=vn.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 Ms(e){let t=vn.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function Fs(e,t){let n=al(e,t);return vn.enterWith(n),n.author}import{createHash as cl}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ca5b60a5-80a7-5e7d-917f-4c7649bcbab6")}catch{}})();var Ty=["sha256","sha512"],dl="sha256",$s="sha256";function Ve(e){if(e===void 0)return dl;if(e==="sha256"||e==="sha512")return e;throw new TypeError(`unsupported_history_hash_algorithm:${String(e)}`)}function Ce(e,t){return cl(Ve(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]="c35d4830-d7d1-5ee4-99bc-ab52cc3e4e09")}catch{}})();var io=1,so=2;function ao(e){return Math.max(Nt(e),e.tests?.some(t=>t.updated_by!==void 0||t.updated_at!==void 0)?2:1)}function Nt(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=1?t:1}function Hs(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=1))return e}function ll(e,t=2,n=t){return e<n?"outdated":e>t?"ahead":"current"}function xy(e,t=2,n=t){let r=[],o=[];for(let i of e){let s=ll(i.version,t,n);s==="outdated"?r.push(i.ref):s==="ahead"&&o.push(i.ref)}return{outdated:r.sort((i,s)=>i.localeCompare(s)),ahead:o.sort((i,s)=>i.localeCompare(s))}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="515840b7-cf86-5d71-8ac1-beac7fd7c8a8")}catch{}})();var ul={"in-progress":"in_progress",cancelled:"canceled"};function kn(e,t){if(t){let o=ss(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=ul[n]??n;if(rn.includes(r))return r}function at(e,t){return kn(e,t)??e}function ge(e,t){return t.terminal_statuses.has(at(e,t))}import{encode as Il}from"@toon-format/toon";import{isDeepStrictEqual as Vs}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]="4d5692ce-ec33-5eb4-bd9b-7497ffe25b0e")}catch{}})();var fl=16;function co(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 ml(e){return[...new Set([cs(e),co(e.key),co(e.cli_flag),...e.cli_aliases.map(t=>co(t))])]}function Ws(e,t){for(let n of ml(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function Bs(e){return Array.isArray(e)?e.flatMap(t=>Bs(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 zs(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 h(`${t} must be one of true|false|1|0|yes|no`,b.USAGE)}function Us(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 h(`${t} must be a number`,b.USAGE);return r}function _l(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 h(`${t} must be valid JSON ${n}`,b.USAGE)}function pl(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 hl(e,t,n){if(t.const!==void 0&&D(e)!==D(t.const))return`${n} must equal ${D(t.const)}`;if(t.enum!==void 0&&!t.enum.some(r=>D(r)===D(e)))return`${n} must be one of ${t.enum.map(r=>D(r)).join("|")}`;if(!pl(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"&&!hn(e))return`${n} must be an RFC 3339 date-time`}}function yl(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=In(i,t.items,`${n}[${o}]`,r+1);if(s)return s}}}function gl(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=In(s,a,`${n}.${i}`,r+1);if(c)return c}}function In(e,t,n,r=0){if(r>fl)return`${n} value schema exceeds maximum depth`;let o=hl(e,t,n);if(o)return o;let i=yl(e,t,n,r);if(i)return i;let s=gl(e,t,n,r);if(s)return s;if(!t.one_of)return;let a=0;for(let c of t.one_of)if(In(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 Ge(e,t,n){if(!e.value_schema||t===void 0)return t;let r=In(t,e.value_schema,n);if(r)throw new h(r,b.USAGE);return t}function bl(e,t,n,r){let o=r==="option"&&Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return Ge(e,_l(o,n,e.type),n)}function Lt(e,t,n,r="option"){let o=n??`--${e.cli_flag}`;if(e.type==="array"||e.type==="object")return bl(e,t,o,r);if(e.repeatable||e.type==="string_array"){let s=Bs(t);return e.type==="number"?Ge(e,s.map(a=>Us(a,o)),o):e.type==="boolean"?Ge(e,s.map(a=>zs(a,o)),o):Ge(e,s,o)}let i=Array.isArray(t)?t[t.length-1]:t;if(i!==void 0)return e.type==="number"?Ge(e,Us(i,o),o):e.type==="boolean"?Ge(e,zs(i,o),o):Ge(e,typeof i=="string"?i:String(i),o)}function wl(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 Fy(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=Ws(e,i);if(s===void 0){wl(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=Lt(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function $y(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=Ws(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=Lt(s,a)))}return r}import{decode as vl}from"@toon-format/toon";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="aaa2be03-9478-5fbe-82e6-e4fc86e3735b")}catch{}})();function lo(e){return{value:vl(e),usedScalarBracketEscape:!1}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="79626299-17a8-573a-9b66-ce37c65e2f5d")}catch{}})();var El=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function kl(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(El);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function Sn(e){return kl(e)[0]}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2789e87f-0706-52e8-8f4c-3855c65c618c")}catch{}})();var _o=new Set(["schema","tracker","auto","none"]),Ys=new Set(["source","isolated","snapshot"]),Sl=new Set(["legacy","local_mutation","local_source_ref","acknowledged","invalid_provenance","foreign_source_ref"]),Tl=new Set(["passed","failed","stopped","canceled"]),Cl=new Set($i);function lt(e){return e.replaceAll("\\","/")}function Js(e){for(let t of e)if(t!==0)return t;return 0}function Cn(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var Qs=["id","title","description","created_at","updated_at"],xl=new Set(ve);function Zs(e){if(e?.schema)return{statusRegistry:mn(e.schema),fieldRegistry:as(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function Ol(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function xe(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new h(`Invalid item metadata: ${e}`,b.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 Mt(e,t){throw new h(t,b.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 ea(e,t){if(!t||typeof e!="object"||e===null)return;let n=Nt(e);if(!(n<=so))throw new h(`Stored item uses format version ${n}; this runtime supports up to ${so}. Upgrade pm before reading or changing this item.`,b.CONFLICT,{code:"item_format_version_unsupported",format_version:n,required:"Upgrade to a pm runtime supporting the stored item format.",nextSteps:["Preserve the original item and history; do not lower pm_format_version to bypass compatibility checks."]})}function ta(e){let t=new Set(xl);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||xe(t)}function Ft(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&xe(t),e}function uo(e,t){let n=e[t];I(typeof n=="string",`${t} must be a string`),I(pe(n),`${t} must be a valid ISO timestamp`)}function Gs(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 po(e,t,n){let r=e[t];r!==void 0&&(I(typeof r=="string",`${n} must be a string`),I(pe(r),`${n} must be a valid ISO timestamp`))}function Rl(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(cn.includes(n),`event.recurrence.by_weekday entries must be one of: ${cn.join(", ")}`)}}}function Al(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 Dl(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(pe(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function Nl(e){let t=Ft(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(an.includes(n),`event.recurrence.freq must be one of: ${an.join(", ")}`),Gs(t,"interval","event.recurrence.interval"),Gs(t,"count","event.recurrence.count"),po(t,"until","event.recurrence.until"),Rl(t.by_weekday),Al(t.by_month_day),Dl(t.exdates)}function Ll(e){for(let r of Qs)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>=io,`pm_format_version must be an integer >= ${io}`),t}function Pl(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=kn(n,r),i=r?r.definitions.map(s=>s.id):[...rn];I(o!==void 0,`status must be one of: ${i.join(", ")}`)}function jl(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 Ml(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"||sn.includes(n);I(r,`confidence string value must be one of: ${[...sn,"med"].join(", ")}`);return}I(!1,"confidence must be a number or string")}}function Fl(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&xe("severity must be a string");let n=t.trim().toLowerCase(),r=n==="med"||on.includes(n);I(r,`severity value must be one of: ${[...on,"med"].join(", ")}`)}function $l(e){e.regression!==void 0&&typeof e.regression!="boolean"&&xe("regression must be a boolean")}function Hl(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=Ft(n,"reminders entries must be objects");I(typeof r.at=="string","reminder.at must be a string"),I(pe(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 zl(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 Ul(e){e.recurrence!==void 0&&(Nl(e.recurrence),e.recurrence.until!==void 0&&I(he(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function Wl(e){let t=Ft(e,"events entries must be objects");I(typeof t.start_at=="string","event.start_at must be a string"),I(pe(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(pe(t.end_at),"event.end_at must be a valid ISO timestamp"),I(he(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),zl(t),t.all_day!==void 0&&I(typeof t.all_day=="boolean","event.all_day must be a boolean"),Ul(t)}function Bl(e){let t=e.events;if(t!==void 0){I(Array.isArray(t),"events must be an array");for(let n of t)Wl(n)}}function Vl(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 Gl(e){let t=e.type_options;if(t===void 0)return;let n=Ft(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 ql(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){Ol(r,t)&&xe(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=Lt(r,o,`metadata field "${r.metadata_key}"`,"metadata")}catch(i){xe(String(i?.message).replace(/^Invalid\s+/u,""))}}}function Kl(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=ta(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length!==0&&(t.unknownFieldPolicy==="reject"?xe(`unknown schema fields are not allowed: ${r.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`))}function ho(e,t){let n=Ft(e,"item metadata must be an object"),r=Ll(n);Pl(n,t),jl(n),Ml(n),Fl(n),$l(n),uo(n,"created_at"),uo(n,"updated_at"),n.deadline!==void 0&&uo(n,"deadline"),Hl(n),Bl(n),po(n,"closed_at","closed_at"),po(n,"completed_at","completed_at"),Vl(n),Gl(n),ql(n,r,t),Kl(n,t)}function Xl(e){if(!(!e||e.length===0))return[...e].map((t,n)=>(I(t.created_at===void 0||typeof t.created_at=="string"&&hn(t.created_at),`dependencies.${n}.created_at requires a valid timestamp; restore the dependency timestamp from its source record`),{id:t.id.trim(),kind:t.kind,created_at:t.created_at,author:t.author?.trim()||void 0,source_kind:t.source_kind?.trim()||void 0,author_source:t.author_source})).sort((t,n)=>{let r=he(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 fo(e){if(!(!e||e.length===0))return[...e].sort((t,n)=>{let r=he(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 Yl(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=he(n.at,r.at);return o!==0?o:n.text.localeCompare(r.text)});return t.length===0?void 0:t}function Jl(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!an.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>cn.includes(s)))).sort((s,a)=>xr(s)-xr(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=>pe(s)))).sort((s,a)=>he(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 Ql(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(Zl).sort(eu)}function Zl(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:Jl(e.recurrence)};return Cn(t),t}function eu(e,t){return Js([he(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 tu(e){if(!(!e||e.length===0))return e.map(t=>({path:lt(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function nu(e){if(!e||e.length===0)return;let t=e.map(su).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)=>Js([he(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 ct(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function ru(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function mo(e){return typeof e=="string"?e:""}function ou(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 Tn(e,t){return typeof e=="string"&&t.has(e)?e:void 0}function iu(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:Tn(n.requested_pm_context_mode,_o),pm_context_mode:Tn(n.pm_context_mode,_o),workspace_context_mode:Tn(n.workspace_context_mode,Ys),trust_reason:Tn(n.trust_reason,Sl)}));return t.length>0?t:void 0}function su(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=Tl.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:mo(e.started_at),finished_at:mo(e.finished_at),recorded_at:mo(e.recorded_at),attempt:ru(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:ct(e.passed)??0,failed:ct(e.failed)??0,skipped:ct(e.skipped)??0,items:ct(e.items),linked_tests:ct(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:ou(e.measurements),executions:iu(e.executions)};return Cn(o),o}function au(e){if(!(!Array.isArray(e)||e.length===0))return e.map(fu)}function Pt(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 wo(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function vo(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function qs(e){if(!wo(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!vo(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function cu(e){if(!wo(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!vo(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function du(e){let t=e?.trim().toLowerCase();if(!(!t||!_o.has(t)))return t}function lu(e){let t=e?.trim().toLowerCase();if(!(!t||!Ys.has(t)))return t}function uu(e,t){if(t===!0)return{provenance_invalid:!0};if(e===void 0)return{};if(!wo(e))return{provenance_invalid:!0};let n=v(e.author),r=v(e.created_at),o=e.source_kind;return!n||!r||!pe(r)||o!=="local_mutation"&&o!=="merge_union"?{provenance_invalid:!0}:{provenance:{author:n,created_at:r,source_kind:o,source_ref:v(e.source_ref)}}}function fu(e){let t={command:e.command?.trim()||void 0,path:e.path?lt(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:du(e.pm_context_mode),workspace_context_mode:lu(e.workspace_context_mode),...uu(e.provenance,e.provenance_invalid),updated_by:v(e.updated_by),updated_at:v(e.updated_at),env_set:qs(e.env_set),env_clear:Pt(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:Pt(e.assert_stdout_contains),assert_stdout_regex:Pt(e.assert_stdout_regex),assert_stderr_contains:Pt(e.assert_stderr_contains),assert_stderr_regex:Pt(e.assert_stderr_regex),assert_stdout_min_lines:ct(e.assert_stdout_min_lines),assert_json_field_equals:qs(e.assert_json_field_equals),assert_json_field_gte:cu(e.assert_json_field_gte),note:e.note?.trim()||void 0};return Cn(t),t}function mu(e){if(!(!e||e.length===0))return[...e].map(t=>({path:lt(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 v(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function _u(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=v(r.id),i=v(r.kind);if(!o||!i)continue;let s={id:o,kind:i},a=v(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 pu(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=v(r.path);if(!o)continue;let i={path:lt(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=v(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function hu(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=v(r.command),i=v(r.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=lt(i));let a=v(r.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function yu(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=v(r.path);if(!o)continue;let i={path:lt(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=v(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function gu(e){if(e===null||typeof e!="object")return;let t=e,n=v(t.id),r=v(t.title),o=v(t.status),i=o&&Cl.has(o)?o:void 0,s=Vi(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 bu(d,t),d}function bu(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=v(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",_u],["files","files",pu],["tests","tests",hu],["docs","docs",yu]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function wu(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=gu(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function vu(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=v(r.decision);if(!o||!i||!s)continue;let a={ts:o,author:i,decision:s},c=v(r.rationale);c&&(a.rationale=c);let d=v(r.evidence);d&&(a.evidence=d);let l=v(r.step_id);l&&(a.step_id=l),t.push(a)}return t.length>0?t:void 0}function Eu(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=v(r.text);if(!o||!i||!s)continue;let a={ts:o,author:i,text:s},c=v(r.step_id);c&&(a.step_id=c),t.push(a)}return t.length>0?t:void 0}function ku(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=v(r.text);if(!o)continue;let i={text:o},s=v(r.command);s&&(i.command=s);let a=v(r.expected);a&&(i.expected=a),t.push(i)}return t.length>0?t:void 0}function Iu(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 dt(e){let t=0;for(;t<e.length&&e[t]===`
|
|
6
|
+
`;)t+=1;return e.slice(t).trimEnd()}function Su(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(sn.includes(t))return t}function Tu(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(on.includes(t))return t}function jt(e){return e||void 0}function Cu(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))vo(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function xu(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]=Lt(r,o,`metadata field "${r.metadata_key}"`,"metadata"))}}function Ou(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=ta(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length>0&&t.unknownFieldPolicy==="reject"&&xe(`unknown schema fields are not allowed: ${r.join(", ")}`),r.length>0&&t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`)}function xn(e,t={}){let n=Zs(t),r=kn(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:Hs(e.pm_format_version),source_type:v(e.source_type),type_options:Iu(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:Xl(e.dependencies),comments:fo(e.comments),notes:fo(e.notes),learnings:fo(e.learnings),files:tu(e.files),tests:au(e.tests),test_runs:nu(e.test_runs),docs:mu(e.docs),deadline:jt(e.deadline),reminders:Yl(e.reminders),events:Ql(e.events),closed_at:jt(e.closed_at),completed_at:jt(e.completed_at),assignee:v(e.assignee),claim_principal:v(e.claim_principal),source_owner:v(e.source_owner),author:jt(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:v(e.definition_of_ready),order:e.order,goal:v(e.goal),objective:v(e.objective),value:v(e.value),impact:v(e.impact),outcome:v(e.outcome),why_now:v(e.why_now),parent:v(e.parent),reviewer:v(e.reviewer),risk:e.risk??void 0,confidence:Su(e.confidence),sprint:v(e.sprint),release:v(e.release),blocked_by:v(e.blocked_by),blocked_reason:v(e.blocked_reason),unblock_note:v(e.unblock_note),reporter:v(e.reporter),severity:Tu(e.severity),environment:v(e.environment),repro_steps:v(e.repro_steps),resolution:v(e.resolution),expected_result:v(e.expected_result),actual_result:v(e.actual_result),affected_version:v(e.affected_version),fixed_version:v(e.fixed_version),component:v(e.component),regression:e.regression,customer_impact:v(e.customer_impact),close_reason:jt(e.close_reason),plan_mode:v(e.plan_mode),plan_scope:v(e.plan_scope),plan_harness:v(e.plan_harness),plan_resume_context:v(e.plan_resume_context),plan_steps:wu(e.plan_steps),plan_decisions:vu(e.plan_decisions),plan_discoveries:Eu(e.plan_discoveries),plan_validation:ku(e.plan_validation)};return Cu(i,e),xu(i,n),Ou(i,n),Cn(i),i}function na(e){return T(e,ve)}function Ru(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 Au(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=Ru(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 Du(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 yo(e,t){return xn(e,{...t,onWarning:void 0})}function Nu(e,t,n={}){let r=Du(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=Au(r.content);o||(e.trimStart().startsWith("{")&&Mt("json_markdown","JSON front matter is not valid JSON"),Mt("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{Mt("json_markdown","JSON front matter is not valid JSON")}return ea(s,n.requireSupportedFormat),ho(s,t),{metadata:yo(s,n),body:dt(i)}}function Lu(e,t,n={}){let r;try{r=lo(e).value}catch{Mt("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(ea(Object.prototype.hasOwnProperty.call(o,"front_matter")?o.front_matter:o,n.requireSupportedFormat),!Qs.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&Mt("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return ho(o.front_matter,t),I(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:yo(o.front_matter,n),body:dt(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"),ho(s,t),{metadata:yo(s,n),body:dt(typeof i=="string"?i:"")}}function Pu(e,t={}){let n=xn(e.metadata,t),r=na(n),o=dt(e.body??"");bo(JSON.parse(JSON.stringify(r))),bo({body:o});let i=JSON.stringify(r,null,2);return o?`${i}
|
|
8
|
+
|
|
9
|
+
${o}
|
|
10
|
+
`:`${i}
|
|
11
|
+
`}var ju=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/u;function go(e,t){return typeof e=="string"?Ks(e,t):e===null||typeof e!="object"?null:Array.isArray(e)?Xs(e.map((n,r)=>()=>go(n,`${t}[${r}]`))):Xs(Object.entries(e).map(([n,r])=>()=>{let o=t?`${t}.${n}`:n;return Ks(n,`${o} (key)`)??go(r,o)}))}function Ks(e,t){let n=e.search(ju);return n<0?null:{path:t,index:n}}function Xs(e){for(let t of e){let n=t();if(n!==null)return n}return null}function bo(e){let t=go(e,"");if(t!==null)throw new h(`Item field ${t.path} contains an unpaired surrogate code unit at index ${t.index}; persisted item text requires well-formed Unicode.`,b.USAGE,{code:"text_unpaired_surrogate",field:t.path,required:"Provide well-formed UTF-16 text: keep emoji and other astral characters whole and avoid lone \\uD800-\\uDFFF JSON escapes.",why:"Persisted item text must remain well-formed in every supported format; a lone surrogate can cause an unclassified encoder fault.",nextSteps:[`Repair the ${t.path} value (for example String.prototype.toWellFormed() or re-truncate on a character boundary) and retry.`,"Run pm <command> --help --json to review the text fields the command accepts."]})}function Mu(e,t={}){let n=xn(e.metadata,t),r=na(n),o=dt(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i));bo(s);let a=Il(s),c;try{c=lo(a).value}catch(d){throw new h("Refusing to persist a TOON item document that the configured decoder cannot read back.",b.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(!Vs(c,s)){let d=typeof c=="object"&&c!==null&&!Array.isArray(c)?c:{},l=Object.keys(s).find(f=>!Vs(s[f],d[f]))??"document";throw new h(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${l}".`,b.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_mismatch",format:"toon",field:l,required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:"The encoded document decoded to a value different from the canonical item payload."})}return`${a}
|
|
12
|
+
`}function On(e,t={}){let n=Sn(e);if(n)throw new h(`Merge conflict markers detected in item document at line ${n.line} (${n.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,b.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=Zs(t);return r==="toon"?Lu(e,o,t):Nu(e,o,t)}function ra(e,t={}){return(t.format??"toon")==="toon"?Mu(e,t):Pu(e,t)}function ne(e,t={}){return{metadata:xn(e.metadata,t),body:dt(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]="cfedb84f-0525-5e02-af0a-d0e5691b5e0a")}catch{}})();async function Fu(e,t){let n=await Ee(e);if(n===null)return{raw:n,entries:[]};if(await ke({path:e,scope:"project"}),n.trim()==="")return{raw:n,entries:[]};let r=Sn(n);if(r)throw new h(`History for ${t} contains merge conflict markers at line ${r.line} (${r.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,b.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 h(`History for ${t} contains invalid JSON at line ${i+1}. Repair or restore the history stream and retry.`,b.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 be(e,t){return(await Fu(e,t)).entries}import Fo from"fast-json-patch";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3bfeb8d2-52c2-587a-9611-c4d5817cb47e")}catch{}})();function oa(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 Da from"fast-json-patch";import xa from"node:fs/promises";import bf from"node:path";import L from"node:fs/promises";import F from"node:path";import{randomUUID as To}from"node:crypto";import{createRequire as Vu}from"node:module";import{setImmediate as ia}from"node:timers/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]="3c2c29c0-0034-54d4-9dbd-2e9af047784e")}catch{}})();var $u=["docs_add","files_add","history:author-acknowledge","history_author_acknowledge","history_compact","history_compact_baseline","history_redact","history_repair","history_salvage","normalize","release","test_run_track","tests_add","tests_remove","tests_update","update_audit","update_ownership_bypass"],Hu=["append","cancel","claim","close","comment_add","create","learning_add","note_add","reopen"],zu=new Set($u),Uu=new Set(Hu),Wu=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 Bu(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 ut(e){return e.event_class==="substantive"||e.event_class==="maintenance"?e.event_class:zu.has(e.op)?"maintenance":Uu.has(e.op)||e.op!=="update"?"substantive":Array.isArray(e.patch)&&e.patch.length>0&&e.patch.every(t=>{let n=Bu(t);return n!==void 0&&Wu.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]="812b558d-59f3-58d6-b04e-6a4f8689e866")}catch{}})();function Eo(e){let t=process.emitWarning;process.emitWarning=(n,...r)=>{n==="SQLite is an experimental feature and might change at any time"&&r[0]==="ExperimentalWarning"||Reflect.apply(t,process,[n,...r])};try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}finally{process.emitWarning=t}}function Rn(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?Eo(t):null}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="641c311a-5de1-579a-ba44-b9a49978dfe0")}catch{}})();var Gu="history-event-index.sqlite",Co="6",qu=8,ma="history-event-index",Ku="history-event-index:append:",Xu=5e3,xo=300,_a=3e4,Yu="history-event-index-invalidation",Ju="history-event-index-invalidations",Qu=xo*2*1e3,Oe=Symbol("history-index-changed"),qe=new Map;function Ke(e){return F.join(e,"runtime",Gu)}function pa(e){return F.join(e,"runtime","history-event-index-repair-deferred")}async function ha(e){try{let t=Number(await L.readFile(pa(e),"utf8")),n=Date.now()-t;return n>=0&&n<Xu}catch{return!1}}async function sa(e){try{await L.writeFile(pa(e),`${Date.now()}
|
|
13
|
+
`)}catch{}}function $t(e){return F.join(e,"runtime",Ju)}async function Nn(e){let t=await L.readdir($t(e)).catch(n=>{if(J(n))return[];throw n});return{pending:t.filter(n=>n.endsWith(".pending")).sort(),committed:t.filter(n=>n.endsWith(".committed")).sort()}}async function aa(e){let t=await Nn(e);return{pending:(await Promise.all(t.pending.map(async n=>{let r=/^(\d+)-(unknown|\d+)-(\d+)-.+\.pending$/u.exec(n);if(r!==null){let o=r[2];if(await hs({pid:Number(r[1]),...o==="unknown"?{}:{process_start_identity:o}},Math.max(0,Date.now()-Number(r[3])),Qu))return n}return await L.rm(F.join($t(e),n),{force:!0}),null}))).filter(n=>n!==null),committed:t.committed}}async function Io(e,t,n=_a){let r=await V(e,Yu,xo,`history-event-index-invalidation:${process.pid}`,!1,!1,n,n===0?{maxWaitMs:0}:void 0);try{return await t()}finally{await r()}}async function Zu(e){let t=$t(e);await L.mkdir(t,{recursive:!0});let n=To(),r=await ps(),o=F.join(t,`${r.pid}-${r.process_start_identity??"unknown"}-${Date.now()}-${n}.pending`);return await L.writeFile(o,`pending
|
|
14
|
+
`,{flag:"wx"}),{pendingPath:o,committedPath:F.join(t,`${n}.committed`)}}function ef(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}async function Ln(e){try{await L.rm(Ke(e),{force:!0})}catch{}}async function ca(e,t){let n=$t(e);await L.mkdir(n,{recursive:!0}),await L.writeFile(F.join(n,`${To()}${t?".contended":""}.committed`),`committed
|
|
15
|
+
`,{flag:"wx"}),t||await Ln(e)}function Pn(e){return e.committed.some(t=>t.endsWith(".contended.committed"))}function So(e,t){let n;try{return n=new t(Ke(e)),n.exec("PRAGMA busy_timeout = 0"),n.exec("BEGIN EXCLUSIVE"),!1}catch(r){return ft(r)}finally{n?.close()}}async function da(e,t){return t.pending.length>0||await _s(e,ma,Ku)}async function ya(e,t,n=_a,r="rebuild"){let o=await V(e,ma,xo,`history-event-index:${r}:${process.pid}`,!1,!1,n,n===0?{maxWaitMs:0}:void 0);try{return await t()}finally{await o()}}async function ga(e){let t=F.join(e,"history"),n=await L.readdir(t,{withFileTypes:!0}).catch(s=>{if(typeof s=="object"&&s!==null&&"code"in s&&s.code==="ENOENT")return[];throw s}),r=qe.get(e)??{streams:new Map,ordered_events:[]},o=new Set,i=!qe.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=F.join(t,s.name),d=await L.stat(c,{bigint:!0}),l=[d.dev,d.ino,d.size,d.mtimeNs,d.ctimeNs].join(":");if(r.streams.get(a)?.signature===l)continue;let f=await ba(c,a);r.streams.set(a,{signature:l,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)),qe.delete(e),qe.set(e,r),qe.size>qu){let s=qe.keys().next().value;qe.delete(s)}return{events:r.ordered_events,stream_byte_sizes:new Map([...r.streams].map(([s,a])=>[s,a.byte_size]))}}async function ba(e,t){let n=await be(e,t);for(let[r,o]of n.entries())if(typeof o.ts!="string"||!ot(o.ts.trim()))throw new h(`History for ${t} contains an invalid or sub-millisecond timestamp at line ${r+1}. Repair or restore the history stream and retry.`,b.GENERIC_FAILURE,{code:"history_timestamp_invalid"});return n.map(r=>({...r,ts:new Date(r.ts.trim()).toISOString()}))}async function tf(e){return(await ga(e)).events}var ko;function Mn(){return ko!==void 0||(ko=Rn(process.versions.node,Vu(import.meta.url))),ko}function nf(e){e.exec(`
|
|
16
|
+
PRAGMA journal_mode = OFF;
|
|
17
|
+
PRAGMA synchronous = OFF;
|
|
18
|
+
CREATE TABLE metadata (
|
|
19
|
+
key TEXT PRIMARY KEY,
|
|
20
|
+
value TEXT NOT NULL
|
|
21
|
+
) STRICT;
|
|
22
|
+
CREATE TABLE events (
|
|
23
|
+
stream_id TEXT NOT NULL,
|
|
24
|
+
stream_offset INTEGER NOT NULL,
|
|
25
|
+
ts TEXT NOT NULL,
|
|
26
|
+
author TEXT NOT NULL,
|
|
27
|
+
agent_harness TEXT,
|
|
28
|
+
agent_instance TEXT,
|
|
29
|
+
op TEXT NOT NULL,
|
|
30
|
+
event_class TEXT NOT NULL CHECK(event_class IN ('substantive', 'maintenance')),
|
|
31
|
+
entry_json TEXT NOT NULL,
|
|
32
|
+
PRIMARY KEY(stream_id, stream_offset)
|
|
33
|
+
) STRICT;
|
|
34
|
+
CREATE TABLE streams (
|
|
35
|
+
stream_id TEXT PRIMARY KEY,
|
|
36
|
+
byte_size INTEGER NOT NULL CHECK(byte_size >= 0)
|
|
37
|
+
) STRICT;
|
|
38
|
+
CREATE INDEX events_order
|
|
39
|
+
ON events(ts, stream_id, stream_offset);
|
|
40
|
+
CREATE INDEX events_op_order
|
|
41
|
+
ON events(op, ts, stream_id, stream_offset);
|
|
42
|
+
CREATE INDEX events_class_stream_order
|
|
43
|
+
ON events(event_class, stream_id, ts, stream_offset);
|
|
44
|
+
CREATE INDEX events_author_order
|
|
45
|
+
ON events(author, ts, stream_id, stream_offset);
|
|
46
|
+
CREATE INDEX events_harness_order
|
|
47
|
+
ON events(agent_harness, ts, stream_id, stream_offset);
|
|
48
|
+
CREATE INDEX events_instance_order
|
|
49
|
+
ON events(agent_instance, ts, stream_id, stream_offset);
|
|
50
|
+
`),e.prepare("INSERT INTO metadata(key, value) VALUES ('version', ?)").run(Co)}function wa(e,t){let n={...t.entry,ts:new Date(t.entry.ts.trim()).toISOString()};e.prepare(`INSERT INTO events(
|
|
51
|
+
stream_id, stream_offset, ts, author, agent_harness,
|
|
52
|
+
agent_instance, op, event_class, entry_json
|
|
53
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(t.stream_id,t.stream_offset,n.ts,n.author,n.agent_harness??null,n.agent_instance??null,n.op,ut(n),JSON.stringify(n))}function va(e){let t=JSON.parse(String(e.entry_json));return typeof t.ts!="string"||!ot(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 Ea(e,t,n){e.prepare(`INSERT INTO streams(stream_id, byte_size) VALUES (?, ?)
|
|
54
|
+
ON CONFLICT(stream_id) DO UPDATE SET byte_size = excluded.byte_size`).run(t,n)}async function rf(e,t={}){let n=Mn();return n?ya(e,async()=>{let r;try{r=await Io(e,()=>aa(e),t.lockWaitMs)}catch(a){if(a instanceof h&&a.code==="lock_conflict")return!1;throw a}if(r.pending.length>0||Pn(r)&&So(e,n))return!1;let o=Ke(e);await L.mkdir(F.dirname(o),{recursive:!0});let i=`${o}.${To()}.tmp`,s;try{s=new n(i),nf(s),s.exec("BEGIN IMMEDIATE");let a=await ga(e);await of(s,a),s.exec("COMMIT"),s.close(),s=void 0;let c=await Io(e,async()=>{let d=await aa(e);return d.pending.length>0||!ef(r.committed,d.committed)||Pn(d)&&So(e,n)?!1:(await L.rm(o,{force:!0}),await L.rename(i,o),!0)},t.lockWaitMs);return c&&await Promise.all(r.committed.map(d=>L.rm(F.join($t(e),d),{force:!0}))),c||(await sa(e),await L.rm(i,{force:!0})),c}catch(a){throw await sa(e),s?.close(),await L.rm(i,{force:!0}),a}},t.lockWaitMs):!1}async function of(e,t){let n=0;for(let r of t.events)wa(e,r),++n%500===0&&await ia();for(let[r,o]of t.stream_byte_sizes)Ea(e,r,o),++n%500===0&&await ia()}function An(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 jn(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():e}function sf(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:jn(t.after_ts)}})<=0)return!1}else if(t.since_ts!==void 0&&e.entry.ts<jn(t.since_ts))return!1;return!0}function af(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 cf(e,t){return!sf(e,t)||!An(e.entry.op,t.ops)||!An(e.entry.author,t.authors)||!An(e.entry.agent_instance??"",t.agent_instances)||!An(e.stream_id,t.stream_ids)||!af(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 xg(e,t){let n=Math.max(0,Math.floor(t.limit)),r=(await tf(e)).filter(o=>cf(o,t)).slice(0,n+1);return{events:r.slice(0,t.limit),has_more:r.length>t.limit}}async function df(e,t){let n=e.prepare("SELECT byte_size FROM streams WHERE stream_id = ?").get(F.basename(t,".jsonl")),r=0;try{r=(await L.stat(t)).size}catch(o){if(!J(o))throw o}return Number(n?.byte_size??0)===r}async function ka(e,t,n){let r=F.dirname(F.dirname(e)),o=Mn(),i=!1,s=async()=>{await n(),i=!0};if(!o){await la(r,s);return}try{await ya(r,async()=>{let a=Ke(r);try{await L.access(a)}catch{await s();return}let c;try{if(c=new o(a),c.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==Co)throw new TypeError("Unsupported history event index version");if(!await df(c,e))throw new TypeError("Stale history event index append base")}catch(l){if(c?.close(),ft(l))throw l;await ca(r,!0),await s();return}try{c.exec("PRAGMA busy_timeout = 0"),c.exec("BEGIN IMMEDIATE")}catch(l){throw c.close(),l}let d=!1;try{await s(),d=!0;let l=F.basename(e,".jsonl"),f=c.prepare("SELECT COALESCE(MAX(stream_offset), -1) + 1 AS value FROM events WHERE stream_id = ?").get(l);wa(c,{stream_id:l,stream_offset:Number(f.value),entry:t}),Ea(c,l,(await L.stat(e)).size),c.exec("COMMIT"),c.close()}catch(l){if(c?.close(),!d)throw l;await ca(r,ft(l))}},0,"append")}catch(a){if(i){await Ln(r);return}if(!uf(a))throw a;await la(r,s,ft(a))}}async function la(e,t,n=!1){let r=!1,o;try{await Io(e,async()=>{let i=n||Pn(await Nn(e)),s=await Zu(e);o=s.pendingPath;try{await t(),r=!0}catch(a){throw await L.rm(s.pendingPath,{force:!0}),a}await L.rename(s.pendingPath,i?s.committedPath.replace(/\.committed$/u,".contended.committed"):s.committedPath),i||await Ln(e)})}catch(i){if(r){await Ln(e);try{await L.rm(o,{force:!0})}catch{}return}throw i}}async function Ro(e){await L.rm(Ke(F.dirname(F.dirname(e))),{force:!0})}function Dn(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function lf(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 Ia(e,t,n,r){let o;try{let i=await Nn(e);if(await da(e,i))return Oe;let s=await ua(e);if(i.committed.length>0)return Pn(i)&&So(e,t)?Oe:null;if(o=new t(Ke(e),{readOnly:!0}),o.exec("BEGIN"),o.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==Co)return null;let a=r(o);if(a===null)return null;let c=ff(o,n),d=o;o=void 0,d.close();let l=await pf([...c.keys()],e,n),f=await _f(c,e,l),_=await Nn(e);return _.committed.length>0||await da(e,_)||s!==await ua(e)?Oe:f?a:null}catch(i){return ft(i)?Oe:null}finally{o?.close()}}function ft(e){return typeof e=="object"&&e!==null&&"errcode"in e&&[5,6].includes(e.errcode)}function uf(e){return ft(e)||e instanceof h&&e.code==="lock_conflict"}function ff(e,t){let n=new Map,r=t&&t.length>0?[...new Set(t)]:void 0;if(r===void 0)for(let o of e.prepare("SELECT stream_id, byte_size FROM streams").all())n.set(String(o.stream_id),Number(o.byte_size));else for(let o=0;o<r.length;o+=500){let i=r.slice(o,o+500);for(let s of e.prepare(`SELECT stream_id, byte_size FROM streams WHERE stream_id IN (${i.map(()=>"?").join(", ")})`).all(...i))n.set(String(s.stream_id),Number(s.byte_size))}return n}async function ua(e){let t=await L.stat(Ke(e),{bigint:!0});return[t.dev,t.ino,t.size,t.mtimeNs,t.ctimeNs].join(":")}async function Og(e,t){let n=Mn();if(!n)return{result:null,repair_needed:!1};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=jn(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(jn(t.since_ts)));Dn(r,o,"op",t.ops),Dn(r,o,"author",t.authors),lf(r,o,t.harnesses,t.harness_alias_authors),Dn(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);Dn(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s=await Ia(e,n,t.stream_ids,a=>{let c=a.prepare(`SELECT stream_id, stream_offset, entry_json
|
|
55
|
+
FROM events${i}
|
|
56
|
+
ORDER BY ts, stream_id, stream_offset
|
|
57
|
+
LIMIT ?`).all(...o,Math.max(0,Math.floor(t.limit))+1),d=c.slice(0,t.limit).map(va);return d.includes(null)?null:{events:d,has_more:c.length>t.limit}});return{result:s===Oe?null:s,repair_needed:s===null&&!await ha(e)}}function Sa(e,t){let n=Object.create(null);for(let r of e){if(!t.has(r.stream_id)||ut(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 mf(e,t){if(F.basename(t)!==t)return null;try{return(await L.stat(F.join(e,"history",`${t}.jsonl`))).size}catch(n){if(J(n))return 0;throw n}}async function _f(e,t,n){for(let r=0;r<n.length;r+=500){let o=n.slice(r,r+500),i=await Promise.all(o.map(s=>mf(t,s)));for(let[s,a]of i.entries()){if(a===null)return!1;let c=o[s],d=e.get(c);if(!(a===0&&d===void 0)&&a!==d)return!1}}return!0}async function pf(e,t,n){if(n&&n.length>0)return[...new Set(n.filter(o=>o.trim().length>0))];let r=await L.readdir(F.join(t,"history"),{withFileTypes:!0}).then(o=>o.filter(i=>i.isFile()&&i.name.endsWith(".jsonl")).map(i=>i.name.slice(0,-6))).catch(o=>{if(J(o))return[];throw o});return[...new Set([...e,...r])]}async function fa(e,t,n,r){return e?Ia(t,e,n,o=>{let i=[];for(let s=0;s<n.length;s+=500){let a=n.slice(s,s+500),c=o.prepare(`SELECT stream_id, stream_offset, entry_json
|
|
58
|
+
FROM (
|
|
59
|
+
SELECT stream_id, stream_offset, entry_json,
|
|
60
|
+
ROW_NUMBER() OVER (
|
|
61
|
+
PARTITION BY stream_id
|
|
62
|
+
ORDER BY ts DESC, stream_offset DESC
|
|
63
|
+
) AS recency_rank
|
|
64
|
+
FROM events
|
|
65
|
+
WHERE event_class = 'substantive'
|
|
66
|
+
AND stream_id IN (${a.map(()=>"?").join(", ")})
|
|
67
|
+
)
|
|
68
|
+
WHERE recency_rank = 1`).all(...a).map(va);if(c.includes(null))return null;i.push(...c)}return Sa(i,r)}):null}async function Rg(e,t){let n=[...new Set(t.filter(a=>a.trim().length>0&&F.basename(a)===a))];if(n.length===0)return{};let r=new Set(n),o=Mn(),i=await fa(o,e,n,r);if(i!==null&&i!==Oe)return i;if(o&&i!==Oe&&!await ha(e))try{if(await rf(e,{lockWaitMs:0})){let a=await fa(o,e,n,r);if(a!==null&&a!==Oe)return a}}catch{}let s=[];return await Promise.all(n.map(async a=>{let c=F.join(e,"history",`${a}.jsonl`);(await ba(c,a).catch(d=>{if(d instanceof h&&d.code==="history_timestamp_invalid")return[];throw d})).forEach((d,l)=>{s.push({stream_id:a,stream_offset:l,entry:d})})})),Sa(s,r)}import Ao from"node:fs/promises";import mt from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="687cbe24-6d5c-5322-962d-455048eb84b5")}catch{}})();var hf=mt.join("runtime","history-drift-cache.json"),Ta={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 Ca(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function yf(e){let t=mt.join(e,hf),n=!1,r="invalid_cache_path";try{n=(await Ao.stat(await Ao.realpath(e))).isDirectory()}catch(o){let i=Ca(o);r=i===void 0?"unknown":Ta[i]??"filesystem_error"}if(!n){jr(`[pm] warning: history_drift_cache_invalidation_failed:${r}
|
|
69
|
+
`);return}try{await Ao.rm(t,{force:!0})}catch(o){let i=Ca(o);if(J(o))return;let s=i===void 0?"unknown":Ta[i]??"filesystem_error";jr(`[pm] warning: history_drift_cache_invalidation_failed:${s}
|
|
70
|
+
`)}}async function Fn(e){let t=mt.dirname(mt.resolve(e));mt.basename(t)==="history"&&await yf(mt.dirname(t))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4a3c3c82-0398-549c-8910-fdc69d971cb2")}catch{}})();var wf={front_matter:{},body:""},Xe=3,Ht=[1,2,3],vf=1,Ef=[1];function Na(e){return Ce(D(e),e.hash_algorithm)}function _t(e){return fn(D(e))}function eb(e){return fn(D(e))}function Po(e){let t={...e,record_hash_version:vf},{record_hash:n,...r}=t;return{...t,record_hash:Na(r)}}function zn(e){try{Ve(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(!Ef.includes(e.record_hash_version))return{ok:!1,error:"unsupported_record_hash_version"};let{record_hash:t,...n}=e;return Na(n)===e.record_hash?{ok:!0,coverage:"record_and_item_state"}:{ok:!1,error:"record_hash_mismatch"}}function kf(e,t){let n={before_hash:e.before_hash,after_hash:e.after_hash,patch_hash:_t(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 La(e,t,n={}){let r=zn(e);if(!r.ok)throw new TypeError(r.error);let o=_t(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!==_t(t.patch),s=Po({...t,...i?{reanchor_evidence:[...t.reanchor_evidence??[],kf(e,n)]}:{}}),a=jo(s);if(!a.ok)throw new TypeError(a.error);return s}function Pa(e){return!Array.isArray(e)||Object.keys(e).length!==e.length?!1:e.every(t=>!Ye(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 If(e){return Ye(e)&&typeof e.ts=="string"&&typeof e.author=="string"&&typeof e.op=="string"&&typeof e.before_hash=="string"&&typeof e.after_hash=="string"&&Pa(e.patch)}function Sf(e){let t=e.record_hash_version!==void 0,n=e.record_hash!==void 0;return t===n}function Tf(e){return!Ye(e)||!Sf(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&&!Pa(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||If(e.record)}function Cf(e){try{for(let t of e){if(!Tf(t))return!1;Ve(t.hash_algorithm)}return!0}catch{return!1}}function xf(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&&_t(t.patch)===e.patch_hash}function Of(e,t,n){if(t.patch&&_t(t.patch)!==t.patch_hash)return{kind:"patch_hash_mismatch"};if(t.record)return xf(t)?{kind:"record",entry:t.record}:{kind:"record_hash_mismatch"};let r=t.patch??e.patch;if(_t(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 jo(e){let t=e.reanchor_evidence;if(t===void 0)return{ok:!0,coverage:"none"};if(!Array.isArray(t)||!Cf(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=Of(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(!zn(i.entry).ok)return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};n=i.entry}return{ok:!0,coverage:"complete"}}function $n(e,t){return(e??"").localeCompare(t??"")}function Oa(e,t){return(e??0)-(t??0)}function Re(e,t,n){return JSON.stringify(e??n).localeCompare(JSON.stringify(t??n))}function Rf(e,t){return[e.scope.localeCompare(t.scope),$n(e.path,t.path),$n(e.command,t.command),Oa(e.timeout_seconds,t.timeout_seconds),$n(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,Re(e.env_clear,t.env_clear,[]),Re(e.env_set,t.env_set,{}),Re(e.assert_stdout_contains,t.assert_stdout_contains,[]),Re(e.assert_stdout_regex,t.assert_stdout_regex,[]),Re(e.assert_stderr_contains,t.assert_stderr_contains,[]),Re(e.assert_stderr_regex,t.assert_stderr_regex,[]),Oa(e.assert_stdout_min_lines,t.assert_stdout_min_lines),Re(e.assert_json_field_equals,t.assert_json_field_equals,{}),Re(e.assert_json_field_gte,t.assert_json_field_gte,{}),$n(e.note,t.note)].find(n=>n!==0)??0}function Af(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function Df(e,t){let n=Af(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:Ye(r)&&Object.prototype.hasOwnProperty.call(r,o)?r[o]:void 0;if(s===void 0)return!1;r=s}return!0}function Nf(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!Df(r,o.path)?{...o,op:"add"}:o;n.push(i),r=Da.applyPatch(r,[i],!0,!0).newDocument}return n}function Hn(e,t,n=!1){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let r=ne(e),o=t===1||t===2&&n?{...r.metadata,...r.metadata.dependencies===void 0?{}:{dependencies:r.metadata.dependencies.map(s=>({...s,id:s.id.toLowerCase()}))},...r.metadata.tests===void 0?{}:{tests:r.metadata.tests.map(({workspace_context_mode:s,provenance:a,provenance_invalid:c,...d})=>d)},...r.metadata.test_runs===void 0?{}:{test_runs:r.metadata.test_runs.map(({executions:s,...a})=>a)}}:r.metadata,i=t===1&&o.tests?{...o,tests:[...o.tests].sort(Rf)}:o;return{front_matter:T(i,ve),body:r.body}}function Ra(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let t=ne(e);return{metadata:T(t.metadata,ve),body:t.body}}function tb(e){return ja(e,Xe)}function ja(e,t,n){if(!Ht.some(r=>r===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return Ce(D(Hn(e,t)),n)}function Ma(e,t,n){let r=ja(e,t,n);return t===2?[r,Ce(D(Hn(e,t,!0)),n)]:[r]}function nb(){return fn(D(wf))}function pt(e){let t=yn(e.op),n=Hn(e.before,Xe),r=Hn(e.after,Xe),o=Ra(e.before),i=Ra(e.after),s=Da.compare(o,i),a=Nf(o,s),c=js(e.author),d=c.harness?Object.fromEntries(Object.entries(Ls().provenance_outcomes).filter(([p,m])=>m.resolver!==void 0&&(m.status!=="resolved"||c.provenance?.[p]?.source==="probe"))):void 0,l=d===void 0||Object.keys(d).length===0?e.context:{...e.context,agent_provenance_outcomes:d},f=e.hashAlgorithm??$s,_={hash_algorithm:f,ts:e.nowIso,author:e.author,author_source:e.authorSource??Ps(e.author),...c.harness?{agent_harness:c.harness}:{},...c.model?{agent_model:c.model}:{},...c.model_source?{agent_model_source:c.model_source}:{},...c.instance?{agent_instance:c.instance}:{},...c.provenance?{agent_provenance:c.provenance}:{},...c.episode?{agent_episode:c.episode}:{},op:t,patch:a,before_hash:Ce(D(n),f),after_hash:Ce(D(r),f),item_hash_version:Xe,message:e.message===void 0?void 0:e.message,...l===void 0?{}:{context:l}};return Po({..._,event_class:ut(_)})}function Ye(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Do(e){return new h(e,b.GENERIC_FAILURE,{code:"history_timestamp_invalid"})}function Fa(e){let t=e.ts.trim();if(t.length===0)return Ie();if(!ot(t))throw Do("History timestamp must be a valid RFC 3339 date-time with millisecond precision");if(t!==e.ts)throw Do("History timestamp must not contain surrounding whitespace");return e.ts}function Aa(e,t){let n=e.ts;if(typeof n=="string"&&n.trim().length>0){if(!ot(n))throw Do("History timestamp must be a valid RFC 3339 date-time with millisecond precision");return e}return{...e,ts:t}}function No(e,t){let n=Fa(t);if(typeof e=="string"){let r;try{r=JSON.parse(e)}catch{return e}return Ye(r)?JSON.stringify(Aa(r,n)):e}return Ye(e)?JSON.stringify(Aa(e,n)):JSON.stringify(e)}async function Lf(e,t,n){if(n===!1)return!0;if(typeof n=="string"){let s=No(n,t);return await Lo(e,s),await Fn(e),await Ro(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=No(typeof r.line=="string"?r.line:r.entry??t,t);return await Lo(o,i),await Fn(o),await Ro(o),!0}async function Lo(e,t){let n;try{n=JSON.parse(t)}catch{n=null}if(!Ye(n)||n.op!=="create"){await Bi(e,t);return}await xa.mkdir(bf.dirname(e),{recursive:!0});try{await xa.writeFile(e,`${t}
|
|
71
|
+
`,{encoding:"utf8",flag:"wx"})}catch(r){throw r.code!=="EEXIST"?r:new h("This item identity is reserved by an existing history stream.",b.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 ht(e,t){let n=await Dt("history_append",{history_path:e,entry:t});if(n.handled&&await Lf(e,t,n.result))return;let r=t.ts.trim().length>0?t:{...t,ts:Fa(t)},o=Po({...r,hash_algorithm:Ve(r.hash_algorithm),event_class:ut(r)});await ka(e,o,async()=>{await Lo(e,No(o,o))}),await Fn(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]="0c0cb8c7-4d7d-53f8-8ec2-d6dc98fc6dc5")}catch{}})();var yt={metadata:{},body:""};function Un(){return structuredClone(yt)}function fb(e,t=Xe,n){return Mo(e,t,n)[0]}function Mo(e,t,n){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return Ma(Wn(e),t,n)}catch{}let r=Ce(D({replay_fallback:!0,metadata:e.metadata,body:e.body}),n);return t===2?[r,r]:[r]}function za(e,t,n,r,o){let i=Ve(r.hash_algorithm),s=`${n}:${i}`,a=o?.before.get(s)??Mo(e,n,i),c=Mo(t,n,i);return o?.after.set(s,c),{beforeHashes:a,afterHashes:c,pairIndex:a.findIndex((d,l)=>d===r.before_hash&&c[l]===r.after_hash),beforeIndex:a.indexOf(r.before_hash),afterIndex:c.indexOf(r.after_hash)}}function Wn(e){return{metadata:e.metadata,body:e.body}}function mb(e,t={}){return ne(Wn(e),t)}function _b(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=ne(e);return{metadata:T(t.metadata,ve),body:t.body}}function $a(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function Pf(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function Ua(e){return Array.isArray(e)?e.filter(Pf).map(t=>({...t,path:$a(t.path),from:typeof t.from=="string"?$a(t.from):void 0})):[]}function jf(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 Je(e,t){try{let n=Ua(t),r=Fo.applyPatch(structuredClone(e),n,!0,!0).newDocument;return jf(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 Mf(e){return[...new Set(e.map(t=>t.item_hash_version).filter(t=>t!==void 0&&Ht.includes(t)))]}function Wa(e){return e!==void 0&&!Ht.includes(e)}function Ff(e,t){return e!==void 0?[e]:t===void 0?[...Ht]:[t]}function Ba(e){let t=zn(e);if(!t.ok)return t.error;let n=jo(e);return n.ok?void 0:n.error}function $f(e,t){let n=Ba(e);if(n)return{ok:!1,error:n};let r=Je(t,e.patch);return r.ok?{ok:!0,document:r.document}:{ok:!1,error:"patch_apply_failed"}}function Hf(e,t){let n=Ba(e);if(n)throw new TypeError(`${n}:entry_${t+1}`)}function zf(e,t,n,r,o){let i=[];for(let s of n){let a=za(e,t,s,r,o);if(i.push({version:s,match:a}),a.pairIndex>=0)break}return i}function Va(e){let t=Un(),n=new Map,r,o,i=oa(e).map(s=>`verify_failed:duplicate_create:entry_${s.repeated_create_index}:prior_${s.prior_genesis_index}`);for(let s=0;s<e.length;s+=1){let a=e[s],c=a.item_hash_version,d=Wa(c);d&&i.push(`verify_failed:unsupported_item_hash_version:${String(c)}:entry_${s+1}`);let l=$f(a,t);if(!l.ok)return{ok:!1,errors:[...i,`verify_failed:${l.error}:entry_${s+1}`]};if(d){t=l.document,n=new Map,r=void 0,o=void 0;continue}let f=Ff(c,o),_={before:n,after:new Map},p=zf(t,l.document,f,a,_),m=p.find(({match:g})=>g.pairIndex>=0);if(m===void 0){let g=p.some(({match:S})=>S.beforeIndex>=0);return{ok:!1,errors:[...i,`verify_failed:${g?"after":"before"}_hash_mismatch:entry_${s+1}`]}}let w=m.version;t=l.document,n=_.after,r=w,o=c??o}return i.length>0?{ok:!1,errors:i,...r===void 0?{}:{item_hash_version:r}}:{ok:!0,errors:[],...r===void 0?{}:{item_hash_version:r}}}function we(e){let t=Va(e);return{ok:t.ok,errors:t.errors}}function Ha(e,t){try{return{ok:!0,document:Fo.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function Uf(e,t){let n=structuredClone(e),r=0,o=0;for(let s of Ua(t)){let a=Ha(n,s);if(a.ok){n=a.document;continue}if(s.op==="replace"){let c=Ha(n,{...s,op:"add"});if(c.ok){n=c.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 Wf(e){let t=Mf(e);if(t.length===1)return t[0];let n=Va(e);return n.ok&&n.item_hash_version!==void 0?n.item_hash_version:t.length===0?1:Xe}function Bf(e,t,n=t.patch){let r=Je(e,n);if(r.ok)return{next:r.document,patch:n,repaired:D(n)!==D(t.patch),converted:0,skipped:0};let o=Uf(e,n);return{next:o.document,patch:Fo.compare(e,o.document),repaired:!0,converted:o.convertedReplaceToAdd,skipped:o.skippedOps}}function Vf(e,t,n){return Bf(e,t,n.projectPatch?.(t,e))}function pb(e,t=Wf(e),n={}){let r=e.findIndex(p=>Wa(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=Un(),i=[],s=[],a=0,c=0,d=0,l=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];Hf(m,p);let w=Vf(o,m,n),{next:g,patch:S,repaired:A,converted:N,skipped:z}=w;d+=N,l+=z,c+=Number(A);let x=za(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(te=>te>=0):f=Math.min(f,x.beforeHashes.length-1);let oe=x.beforeHashes[f],U=x.afterHashes[f],Z=oe!==m.before_hash||U!==m.after_hash;Z&&(a+=1);let B={...m,patch:S,before_hash:oe,after_hash:U};_?B.item_hash_version=t:delete B.item_hash_version;let ee=B.item_hash_version!==m.item_hash_version;(Z||A||ee)&&(B=La(m,B,{retainOriginalPatch:A})),i.push(B),s.push({index:p+1,rehashed:Z,patch_repaired:A,converted_replace_to_add:N,skipped_ops:z}),o=g}return{entries:i,finalDocument:o,entriesRehashed:a,entriesPatchRepaired:c,convertedReplaceToAdd:d,skippedOps:l,details:s,itemHashVersion:t,explicitItemHashVersion:_}}function hb(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
|
|
72
|
+
`)}
|
|
73
|
+
`}import Gf from"node:crypto";import Bn 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]="664124e5-715d-5f86-ae69-89f203db76c3")}catch{}})();function qa(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 zt(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function Qe(e,t){let n=qa(t),r=zt(e);return r.startsWith(n)?r:`${n}${r}`}function qf(e){let t=ms(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=Gf.randomInt(0,36).toString(36);return n}async function Kf(e,t,n){let r=[...new Set(Object.values(n))].flatMap(o=>[Bn.join(e,o,`${t}.md`),Bn.join(e,o,`${t}.toon`)]);return r.push(Bn.join(e,"history",`${t}.jsonl`)),(await Promise.all(r.map(o=>Fe(o)))).some(Boolean)}var Ga=4,Ka=12;function Xf(e){return typeof e!="number"||!Number.isFinite(e)?Ga:Math.min(Ka,Math.max(Ga,Math.trunc(e)))}async function kb(e,t,n={}){let r=Xf(n.tokenLength),o=Math.min(r+6,Ka),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${qa(t)}${qf(r)}`;if(!await(n.probeExisting===!1?Fe(Bn.join(e,"history",`${a}.jsonl`)):Kf(e,a,n.typeToFolder??je)))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import ec from"node:fs/promises";import Ut from"node:path";import{isUtf8 as Qf}from"node:buffer";import Yf from"node:fs/promises";import gt from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="af606b47-d071-5724-b1e7-de4e1e5d7385")}catch{}})();var bt="_workspace";function Vn(e){return gt.join(e,"history",`${bt}.jsonl`)}function Jf(e,t){return{metadata:{id:bt,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 Gn(e,t=e.length){let n=Un();for(let r of e.slice(0,t))n=Je(n,r.patch).document;return Wn(n)}function $o(e){return"documents"in e.metadata&&typeof e.metadata.documents=="object"&&e.metadata.documents!==null&&!Array.isArray(e.metadata.documents)?e.metadata.documents:{}}function qn(e){throw new h(`Workspace history verification failed: ${e.join(", ")}`,b.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 Xa(e,t){let n=gt.resolve(t),r=gt.relative(e,n).replaceAll("\\","/");if(r.length===0||r===".."||r.startsWith("../")||gt.isAbsolute(r))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:r,absolutePath:n}}async function jb(e){let t=await be(Vn(e),bt),n=we(t);n.ok||qn(n.errors);let r=$o(t.length===0?Me:Gn(t)),o=[],i=[],s=[],a=[];for(let c of Object.keys(r).sort()){let d;try{let l=Xa(e,gt.resolve(e,c));if(d=await Ee(l.absolutePath),d===null){s.push(c);continue}let f=JSON.parse(d);(D(f)===D(r[c])?o:i).push(c)}catch{a.push(c)}}return{ok:i.length===0&&s.length===0&&a.length===0,document_count:Object.keys(r).length,matching_documents:o,mismatched_documents:i,missing_documents:s,unreadable_documents:a}}async function Ya(e){let t=Vn(e.pmRoot),n=await be(t,bt),r=we(n);r.ok||qn(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=Ie(),s=n.length===0?Me:Gn(n),a=$o(s),c=a[e.documentPath];if(c!==void 0&&D(c)!==D(e.before))throw new h(`Workspace history state for "${e.documentPath}" changed outside the audited mutation path.`,b.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=Jf({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),l=pt({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 ht(t,l),{entry:l,historyPath:t}}async function Mb(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Ya(e)}finally{await t()}}async function Ja(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=Vn(e.pmRoot),r=await be(n,bt),o=we(r);o.ok||qn(o.errors);let i=r.length===0?Me:Gn(r),s=pt({nowIso:Ie(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await ht(n,s),{entry:s,historyPath:n}}finally{await t()}}async function Qa(e,t){if(t===e.raw)return!1;let n=t===null?null:JSON.parse(t),r=JSON.parse(e.raw);await q(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await Ya({pmRoot:e.pmRoot,documentPath:gt.relative(e.pmRoot,e.filePath).replaceAll("\\","/"),before:n,after:r,op:e.op,idempotencyKey:e.idempotencyKey,author:e.author,lockTtlSeconds:e.lockTtlSeconds,lockWaitMs:e.lockWaitMs,message:e.message})}catch(o){throw t===null?await Yf.rm(e.filePath,{force:!0}):await q(e.filePath,t),o}return!0}async function Za(e){let{documentPath:t}=Xa(e.pmRoot,e.filePath),n=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let r=await Ee(e.filePath);if(e.dryRun===!0||e.idempotencyKey!==void 0){let i=await be(Vn(e.pmRoot),bt),s=we(i);s.ok||qn(s.errors);let a=$o(i.length===0?Me:Gn(i))[t];if(a!==void 0&&D(a)!==D(r===null?null:JSON.parse(r)))throw new h(`Workspace history state for "${t}" changed outside the audited mutation path.`,b.CONFLICT,{code:"workspace_history_state_conflict"});if(e.idempotencyKey!==void 0&&i.some(c=>c.op===`${e.op}:${e.idempotencyKey}`))return{changed:!1,result:void 0,replayed:!0}}let o=await e.mutate(r);return JSON.parse(o.raw),e.dryRun===!0?{changed:r!==o.raw,result:o.result}:{changed:await Qa({...e,raw:o.raw},r),result:o.result}}finally{await n()}}async function Fb(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Qa(e,await Ee(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]="7db1d069-0038-57f8-8c3e-0b0ba66579ca")}catch{}})();var Zf=1048576,em=4194304;async function tc(e,t){let n=Ut.dirname(e);for(;n!==Ut.parse(e).root;){let o=await ec.stat(n).catch(i=>{if(J(i))return null;throw i});if(o!==null){if(!o.isDirectory())throw new h("Workflow policy storage ancestor must be a directory.",b.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Restore the policy or approval history directory before retrying."]});break}n=Ut.dirname(n)}let r=await ec.open(e,"r").catch(o=>{if(J(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||!Qf(i.subarray(0,s)))throw new h("Workflow policy input exceeds its byte bound or is not valid UTF-8.",b.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 tm(e){if(e===null)return{version:1,enforcement:"advise",policies:[]};let t;try{t=JSON.parse(e)}catch{throw new h("schema/policies.json must contain valid JSON.",b.CONFLICT,{code:"workflow_policy_registry_invalid",nextSteps:["Restore valid policy JSON before retrying the mutation."]})}return es(t)}async function nm(e){return tm(await tc(Ut.join(e,"schema","policies.json"),Zf))}async function rm(e,t){let n=await tc(fe(e,t),em);if(n===null)return[];let r;try{if(r=n.split(/\r?\n/).filter(o=>o.trim()).map(o=>JSON.parse(o)),!we(r).ok)throw new Error("invalid chain")}catch{throw new h("Approval evidence requires a valid item history chain.",b.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 om(e,t,n){let r=n.before?.status!==n.after?.status&&t.policies.some(s=>s.rule.kind==="approval"&&ts(s,n)),o=n.before?.id??n.after?.id,i=r&&typeof o=="string"?await rm(e,o):[];return ns(t,{...n,approvals:i})}async function Ho(e){let t=await nm(e.pmRoot),n=await om(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(l=>!l.satisfied&&l.effect==="refuse");if(!e.dryRun)try{await Ja({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(l){let f=new h("Workflow policy refusal could not be recorded in workspace history.",b.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 f.cause=l,f}let o=r.slice(0,3).map(l=>({policy_id:l.policy_id,rule:l.rule,description:t.policies.find(f=>f.id===l.policy_id).description,missing_fields:l.missing_fields})),i=[...new Set(o.flatMap(l=>l.missing_fields))],s=o.map(l=>`${l.policy_id} (${l.rule})`).join(", "),a=r.length>3?` and ${r.length-3} more`:"",c=e.after?.metadata.id??e.before.metadata.id,d=i.map(l=>{if(e.before===null)return`Supply ${l} in the original ${e.operation} request, then retry; the item was not created.`;let f=Ki("update",l);return f===void 0?`Supply ${l} using its declared SDK or package mutation contract, then retry.`:He(["update",c,Xi("update",f),`<${l}>`,"--pm-path",Ut.resolve(e.pmRoot)])});throw new h(`Workflow policy refused ${e.operation}: ${s}${a}.${i.length?` Missing: ${i.join(", ")}.`:""}`,b.CONFLICT,{code:"workflow_policy_refused",reason:o.map(l=>l.policy_id).join(","),policy_violations:o,policy_violation_count:r.length,required:i.length?`Supply missing fields: ${i.join(", ")}, then retry the refused mutation.`:"Satisfy the declared workflow policy before retrying.",why:o.map(l=>l.description).filter(Boolean).join(" ")||void 0,recovery:{missing_required_fields:i},nextSteps:[...d,...new Set(r.slice(0,3).filter(l=>l.missing_fields.length===0).map(l=>l.remediation)),...r.length>3?[`Inspect all policies with pm schema policies before retrying ${e.operation}.`]:[]]})}import{AsyncLocalStorage as im}from"node:async_hooks";import{channel as sm}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]="b2b2d49a-bb8c-54d7-89d2-1dbe76879129")}catch{}})();var zo=new im,Uo=sm("@unbrained/pm-cli/item-metadata-enumeration/v1");function Kn(e){Uo.publish(e)}async function tw(e){let t={enumeration_calls:0,metadata_rows:0},n=r=>{zo.getStore()?.includes(t)&&(t.enumeration_calls+=1,t.metadata_rows+=r)};Uo.subscribe(n);try{return{result:await zo.run([...zo.getStore()??[],t],e),work:{...t}}}finally{Uo.unsubscribe(n)}}import Ze from"node:fs/promises";import rc from"node:path";import{randomUUID as am}from"node:crypto";import{createRequire as cm}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]="84a3dae8-69b6-589d-a8ec-11f77c1d103a")}catch{}})();var dm="metadata-query-index.sqlite",Wt="5",Wo;function Bt(){return Wo!==void 0||(Wo=Rn(process.versions.node,cm(import.meta.url))),Wo}function nc(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function wt(e){return rc.join(e,"runtime",dm)}function lm(e){e.exec(`
|
|
74
|
+
PRAGMA foreign_keys = ON;
|
|
75
|
+
PRAGMA journal_mode = OFF;
|
|
76
|
+
PRAGMA synchronous = OFF;
|
|
77
|
+
CREATE TABLE metadata (
|
|
78
|
+
key TEXT PRIMARY KEY,
|
|
79
|
+
value TEXT NOT NULL
|
|
80
|
+
) STRICT;
|
|
81
|
+
CREATE TABLE items (
|
|
82
|
+
id TEXT PRIMARY KEY,
|
|
83
|
+
relative_path TEXT NOT NULL UNIQUE,
|
|
84
|
+
metadata_json TEXT NOT NULL,
|
|
85
|
+
status TEXT NOT NULL,
|
|
86
|
+
type TEXT NOT NULL,
|
|
87
|
+
priority INTEGER NOT NULL,
|
|
88
|
+
updated_at TEXT NOT NULL,
|
|
89
|
+
created_at TEXT NOT NULL,
|
|
90
|
+
parent TEXT,
|
|
91
|
+
assignee TEXT,
|
|
92
|
+
sprint TEXT,
|
|
93
|
+
release TEXT
|
|
94
|
+
) STRICT;
|
|
95
|
+
CREATE INDEX items_default_order
|
|
96
|
+
ON items(priority, updated_at DESC, id);
|
|
97
|
+
CREATE INDEX items_status_default_order
|
|
98
|
+
ON items(status, priority, updated_at DESC, id);
|
|
99
|
+
CREATE INDEX items_type_default_order
|
|
100
|
+
ON items(type, priority, updated_at DESC, id);
|
|
101
|
+
CREATE INDEX items_parent_default_order
|
|
102
|
+
ON items(parent, priority, updated_at DESC, id);
|
|
103
|
+
CREATE TABLE item_metadata_keys (
|
|
104
|
+
item_id TEXT NOT NULL,
|
|
105
|
+
key TEXT NOT NULL,
|
|
106
|
+
PRIMARY KEY(item_id, key),
|
|
107
|
+
FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
|
|
108
|
+
) STRICT;
|
|
109
|
+
CREATE INDEX item_metadata_keys_key_item
|
|
110
|
+
ON item_metadata_keys(key, item_id);
|
|
111
|
+
CREATE TABLE item_linked_files (
|
|
112
|
+
item_id TEXT NOT NULL,
|
|
113
|
+
path TEXT NOT NULL,
|
|
114
|
+
scope TEXT NOT NULL,
|
|
115
|
+
note TEXT,
|
|
116
|
+
PRIMARY KEY(item_id, path, scope),
|
|
117
|
+
FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
|
|
118
|
+
) STRICT;
|
|
119
|
+
CREATE INDEX item_linked_files_path_scope_item
|
|
120
|
+
ON item_linked_files(path, scope, item_id);
|
|
121
|
+
CREATE VIRTUAL TABLE item_search USING fts5(
|
|
122
|
+
id UNINDEXED,
|
|
123
|
+
title,
|
|
124
|
+
description,
|
|
125
|
+
tags,
|
|
126
|
+
tokenize = 'unicode61'
|
|
127
|
+
);
|
|
128
|
+
`)}function Yn(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function oc(e,t){let n=t.metadata;e.prepare(`INSERT INTO items(
|
|
129
|
+
id, relative_path, metadata_json, status, type, priority,
|
|
130
|
+
updated_at, created_at, parent, assignee, sprint, release
|
|
131
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
132
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
133
|
+
relative_path = excluded.relative_path,
|
|
134
|
+
metadata_json = excluded.metadata_json,
|
|
135
|
+
status = excluded.status,
|
|
136
|
+
type = excluded.type,
|
|
137
|
+
priority = excluded.priority,
|
|
138
|
+
updated_at = excluded.updated_at,
|
|
139
|
+
created_at = excluded.created_at,
|
|
140
|
+
parent = excluded.parent,
|
|
141
|
+
assignee = excluded.assignee,
|
|
142
|
+
sprint = excluded.sprint,
|
|
143
|
+
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 ic(e){let t=wt(e.pmRoot),n=Bt();if(!n){await Ze.rm(t,{force:!0});return}await Ze.mkdir(rc.dirname(t),{recursive:!0});let r=`${t}.${am()}.tmp`,o;try{o=new n(r),lm(o),o.exec("BEGIN IMMEDIATE"),Yn(o,"version",Wt),Yn(o,"context_fingerprint",e.contextFingerprint),Yn(o,"source_cursor",e.sourceCursor);for(let i of e.rows)oc(o,i);o.exec("COMMIT"),o.close(),o=void 0,await Ze.rm(t,{force:!0}),await Ze.rename(r,t)}catch(i){throw o?.close(),await Promise.allSettled([Ze.rm(r,{force:!0})]),i}}function Jn(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function sc(e){let t=Bt();if(!t)return!1;let n=wt(e.pmRoot),r;try{await Ze.access(n),r=new t(n),r.exec("PRAGMA foreign_keys = ON");let o=Jn(r);if(o.version!==Wt||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&&oc(r,e.row),Yn(r,"source_cursor",e.sourceCursor),r.exec("COMMIT"),r.close(),!0}catch{try{r?.exec("ROLLBACK")}catch{}return r?.close(),!1}}function Xn(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function um(e){let t=[],n=[];Xn(t,n,"status",e.statuses,"IN"),Xn(t,n,"status",e.excludeStatuses,"NOT IN"),Xn(t,n,"type",e.types,"IN"),Xn(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 cw(e){let t=Bt();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=um(n),i;try{i=new t(wt(e.pmRoot),{readOnly:!0});let s=Jn(i);if(s.version!==Wt||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 l=i.prepare(`SELECT metadata_json FROM items${r}
|
|
144
|
+
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(f=>{let _=JSON.parse(String(f.metadata_json));if(!_.id)throw new TypeError("Indexed metadata row has no id");return _});return i.close(),{source_cursor:s.source_cursor,total:Number(a.count),items:l}}catch{return i?.close(),null}}async function dw(e){let t=Bt();if(!t||e.paths.length===0)return null;let n;try{n=new t(wt(e.pmRoot),{readOnly:!0});let r=Jn(n);if(r.version!==Wt||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
|
|
145
|
+
FROM item_linked_files
|
|
146
|
+
WHERE ${a}`).get(...s),d=nc(e.limit,50),l=nc(e.offset,0),f=n.prepare(`SELECT items.id, items.metadata_json
|
|
147
|
+
FROM items
|
|
148
|
+
WHERE EXISTS (
|
|
149
|
+
SELECT 1 FROM item_linked_files
|
|
150
|
+
WHERE item_linked_files.item_id = items.id AND ${a}
|
|
151
|
+
)
|
|
152
|
+
ORDER BY items.priority ASC, items.updated_at DESC, items.id ASC
|
|
153
|
+
LIMIT ? OFFSET ?`).all(...s,d,l),_=[];if(f.length>0){let p=f.map(g=>String(g.id)),m=n.prepare(`SELECT item_id, path, scope, note
|
|
154
|
+
FROM item_linked_files
|
|
155
|
+
WHERE item_id IN (${p.map(()=>"?").join(", ")})
|
|
156
|
+
AND ${a}
|
|
157
|
+
ORDER BY path ASC, scope ASC`).all(...p,...s),w=new Map(p.map(g=>[g,[]]));for(let g of m){let S=String(g.item_id),A=w.get(S);A.push({path:String(g.path),scope:String(g.scope),...g.note===null?{}:{note:String(g.note)}}),w.set(S,A)}for(let g of f){let S=JSON.parse(String(g.metadata_json));_.push({item:S,files:w.get(String(g.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:_}}catch{return n?.close(),null}}async function lw(e){let t=Bt();if(!t)return null;let n;try{n=new t(wt(e.pmRoot),{readOnly:!0});let r=Jn(n);if(r.version!==Wt||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let o=n.prepare(`SELECT items.metadata_json
|
|
158
|
+
FROM item_search
|
|
159
|
+
JOIN items ON items.id = item_search.id
|
|
160
|
+
WHERE item_search MATCH ?
|
|
161
|
+
ORDER BY bm25(item_search), items.priority, items.updated_at DESC, items.id
|
|
162
|
+
LIMIT ?`).all(e.query,Math.max(0,Math.floor(e.limit))).map(i=>JSON.parse(String(i.metadata_json)));return n.close(),{source_cursor:r.source_cursor,items:o}}catch{return n?.close(),null}}async function Qn(e){await Ze.rm(wt(e),{force:!0})}import W from"node:fs/promises";import M from"node:path";import{createHash as fm,randomUUID as uc}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]="846c1c5d-8a5c-56ee-832a-bfc780283e70")}catch{}})();var ce=8,fc=500,mm="metadata-derived-index",_m="metadata-cache.json",pm="metadata-cache-bodies.json",hm="metadata-cache-collections.json",ym="metadata-cache-delta.json",gm="metadata-cache-manifest.json",ac=4,bm=["comments","notes","learnings","files","tests","test_runs","docs"];function mc(){return dn(me())}function er(e){let t={...e},n={};for(let r of bm)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function _c(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function pc(e,t,n,r){let o=fm("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 tr(e){return M.join(e,"runtime",_m)}function nr(e){return M.join(e,"runtime",pm)}function rr(e){return M.join(e,"runtime",hm)}function Vo(e){return M.join(e,"runtime",ym)}function Go(e){return M.join(e,"runtime",gm)}function or(e,t){let n=M.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var wm=24,Q=new Map,ir=new WeakMap;function qo(e){return ir.get(e)??e.source_cursor}function vm(e,t){let n=qo(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){ir.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 Em(e,t){if(!e)return;let n=qo(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){ir.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 km(e,t){if(!e)return;let n=qo(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){ir.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 Im(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(vm(e,r),Em(t,r),km(n,r))}function Bo(e,t){Q.size>=wm&&!Q.has(e)&&rs(Q),Q.set(e,t)}async function Ae(e,t){let n;try{n=await W.stat(e)}catch{return Q.delete(e),null}let r=Q.get(e);if(r&&Vt(r.signature,n.mtimeMs,n.ctimeMs,n.size))return Q.delete(e),Q.set(e,r),r.envelope;let o;try{o=t(await W.readFile(e,"utf8"))}catch{o=null}return Bo(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function Sm(e,t,n){let r=a=>{let c=JSON.parse(a);return c.version!==ce||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=tr(e),i=await Ae(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await Ae(or(o,t),r);return s===null&&Kt(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function Tm(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ce||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=nr(e),o=await Ae(r,n);return t&&o?.context_fingerprint!==t?await Ae(or(r,t),n):o}async function Cm(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ce||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=rr(e),o=await Ae(r,n);return t&&o?.context_fingerprint!==t?await Ae(or(r,t),n):o}async function Ko(e){let t=Vo(e),n=await Ae(t,r=>{let o=JSON.parse(r);return o.version!==ce||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 W.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function Xo(e){let t=Go(e),n=await Ae(t,r=>{let o=JSON.parse(r);return o.version!==ce||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 W.stat(t),await vt(e)}catch{}return null}async function Gt(e,t){await W.mkdir(M.dirname(e),{recursive:!0}),await q(e,JSON.stringify(t));try{let r=await W.stat(e);Bo(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{Q.delete(e)}let n=M.dirname(M.dirname(e));if(e===tr(n)||e===nr(n)||e===rr(n)){let r=or(e,t.context_fingerprint);await q(r,JSON.stringify(t));try{let c=await W.stat(r);Bo(r,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{Q.delete(r)}let o=M.dirname(e),i=M.extname(e),s=M.basename(e,i),a=(await W.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>ac){let c=(await Promise.all(a.map(async d=>{try{return{path:d,mtime:(await W.stat(d)).mtimeMs}}catch{return null}}))).filter(d=>d!==null);for(let d of c.sort((l,f)=>l.mtime-f.mtime).slice(0,Math.max(0,c.length-ac)))await W.rm(d.path,{force:!0}),Q.delete(d.path)}}}function xm(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function hc(e,t,n){return e===void 0||xm(e,t,n)}function Kt(e,t){e&&!e.includes(t)&&e.push(t)}function Vt(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function Om(e,t,n){let r=M.join(e,t);try{let o=await W.readdir(r);return{folder:t,dirPath:r,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&!J(o)&&Kt(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function Rm(e,t){try{let n=await W.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 Zn(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await Rm(e,n))))}function qt(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&&Vt(o,r.mtime_ms,r.ctime_ms,r.size)})}function Am(e){return un.some(t=>e.toLowerCase().endsWith(t))}function Dm(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function Nm(e,t,n){if(n)for(let r of await ke({path:e,scope:"project"}))Kt(t,r)}function cc(e,t,n,r){if(e)return t&&n?n.collections:r}async function Lm(e,t,n){let r=await W.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=Ar(e);await Nm(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],d=!n.forceSourceRead&&c!==void 0&&Vt(c,o,i,s),l=n.previousBodies[t],f=!n.forceSourceRead&&l!==void 0&&Vt(l,o,i,s),_=n.previousCollections[t],p=!n.forceSourceRead&&_!==void 0&&Vt(_,o,i,s);if(!(!d||n.includeBody&&!f||n.includeCollections&&!p))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:c.metadata,heavyMetadata:cc(n.includeCollections,p,_,void 0),bodyLength:c.body_length,body:n.includeBody?l.body:void 0};let m=await W.readFile(e,"utf8"),w=On(m,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:S=>Kt(n.warnings,S)}),g=er(w.metadata);return Dm(n.state.misses,n.includeBody,n.includeCollections,d,f,p),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:d?c.metadata:g.light,heavyMetadata:cc(n.includeCollections,p,_,g.heavy),bodyLength:d?c.body_length:w.body.length,body:n.includeBody?w.body:void 0}}function Pm(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?_c(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};hc(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function jm(e,t,n,r){try{let o=await Lm(t,n,r);Pm(t,n,r,o)}catch{Kt(r.warnings,`item_list_item_read_failed:${e}/${M.basename(t)}`)}}function Mm(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function Fm(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function $m(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function Hm(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}async function zm(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!Am(s))continue;let a=M.join(o,s),c=M.relative(t.pmRoot,a);n.push(jm(r,a,c,t)),n.length===32&&(await Promise.all(n),n.length=0)}await Promise.all(n)}async function Um(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!qt(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await Gt(tr(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await Gt(Go(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,entry_count:Object.keys(e.state.newEntries).length,directory_signatures:e.directorySignatures});let t=[...e.state.documentsById.values()].map(({candidate:n})=>({relativePath:M.relative(e.pmRoot,n.item_path),metadata:er(n.metadata).light,linkedFiles:n.metadata.files??[]}));t.length>=e.minimumIndexedItems?await ic({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:t}):await Qn(e.pmRoot)}catch{}}async function Wm(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 Gt(nr(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function Bm(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 Gt(rr(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function Yo(e,t,n={}){let r=await Xo(e);return n.required!==!0&&(r===null||r.entry_count<fc)?async()=>{}:V(e,mm,30,t,!1,!1,3e3)}async function kw(e,t){let n=await Xo(e);if(n===null)return null;let r=await Ko(e);if(r.invalid)return await vt(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&&!qt(i,await Zn(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function dc(e,t){let n=M.relative(e,t);return n===""||n===".."||n.startsWith(`..${M.sep}`)||M.isAbsolute(n)?null:n}async function vt(e){await Promise.all([tr(e),nr(e),rr(e),Vo(e),Go(e)].map(async t=>{await W.rm(t,{force:!0}),Q.delete(t)})),await Qn(e)}async function Vm(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await W.stat(e.mutation.itemPath),n=er(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 Gm(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function Jo(e){let t=dc(e.pmRoot,e.itemPath),n=e.previousItemPath?dc(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await vt(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=pc(e.preferredFormat,e.typeToFolder,e.schema,mc()),o=await Xo(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await Ko(e.pmRoot);if(s.invalid)return await vt(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=Gm(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 Vm({mutation:e});let d=uc();return await Gt(Vo(e.pmRoot),{version:ce,context_fingerprint:r,base_source_cursor:i,source_cursor:d,directory_signatures:await Zn(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await sc({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:d,row:e.document===null?null:{relativePath:t,metadata:er(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await Qn(e.pmRoot),[]}catch{return await vt(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function qm(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function lc(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function Km(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function Xm(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=Ar(n);if(!o)continue;let i=e.includeCollections?_c(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);hc(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 Ym(e){return e.forceSourceScan||Lr()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!qt(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||lc(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||lc(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&Km(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function sr(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=mc(),d=pc(t,n,o,c),l=await Ko(e);l.invalid&&await vt(e);let f=await Sm(e,d,i.cacheDiagnostics),_=s?await Tm(e,d):null,p=a?await Cm(e,d):null;Im(f,_,p,l.envelope);let m=Mm(f,d),w=Fm(_,d),g=$m(p,d),S=[...new Set(Object.values(n))],A=await Zn(e,S),N=Object.keys(m),z=Math.max(1,Math.floor(i.derivedIndexMinimumItems??fc));if(Ym({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:d,existingCache:f,existingBodyCache:_,existingCollectionsCache:p,directorySignatures:A,entryKeys:N,minimumIndexedItems:z,includeBody:s,includeCollections:a,previousBodies:w,previousCollections:g}))return Xm({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:m,previousBodies:w,previousCollections:g});let x=await Promise.all(S.map(tt=>Om(e,tt,r))),oe=Lr(),U=Hm(),Z={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,forceSourceRead:i.forceSourceScan===!0,dispatchReadHooks:oe,previousEntries:m,previousBodies:w,previousCollections:g,state:U};await zm(x,Z);let B=await Zn(e,S),ee=qt(A,B)?B:{},te=U.misses.metadata||Object.keys(m).length!==Object.keys(U.newEntries).length||!qt(f?.directory_signatures,ee)||f===null?uc():f.source_cursor;return await Um({pmRoot:e,contextFingerprint:d,sourceCursor:te,existingCache:f,previousEntries:m,directorySignatures:ee,state:U,minimumIndexedItems:z}),s&&await Wm({pmRoot:e,contextFingerprint:d,sourceCursor:te,existingBodyCache:_,previousBodies:w,state:U}),a&&await Bm({pmRoot:e,contextFingerprint:d,sourceCursor:te,existingCollectionsCache:p,previousCollections:g,state:U}),qm(U)}async function yc(e,t,n,r,o){return(await sr(e,t,n,r,o,{includeBody:!1})).map(i=>({metadata:i.metadata,body:i.body??""}))}async function gc(e,t,n,r,o){return(await sr(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(i=>({metadata:i.metadata,body:i.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]="1745a409-0f91-5f5a-8d2a-e5e61ff667a0")}catch{}})();function Zo(e,t){return(t===void 0?void 0:Yi(e,t))?.execution_role??qi[e.trim().toLowerCase()]??"agent"}var ei="blocked_by",bc="blocks",Jm=Object.freeze([ei,bc]),Qo="no-active-blocker";function $(e){return e.trim().toLowerCase()}function ar(e,t){return t?`external:${e}`:`local:${$(e)}`}function Xt(e){let t=new Map,n=typeof e.blocked_by=="string"?e.blocked_by.trim():"";if(n.length>0&&$(n)!==Qo){let r=ye(n);t.set(ar(n,r),r?n:$(n))}for(let r of e.dependencies??[]){let o=typeof r.id=="string"?r.id.trim():"";if(r.kind===ei&&o.length>0&&$(o)!==Qo){let i=ye(o)||se(r.source_kind);t.set(ar(o,i),i?o:$(o))}}return[...t.values()].sort((r,o)=>r.localeCompare(o))}function cr(e){let t=new Map;for(let n of e){let r=$(n.id);r.length!==0&&t.set(r,new Set(Xt(n)))}for(let n of e){let r=$(n.id);if(r.length!==0)for(let o of n.dependencies??[]){let i=o.kind===bc&&typeof o.id=="string"?$(o.id):"";if(i.length===0||i===Qo)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 wc(e,t){let n=$(e.id);return n.length>0?cr(t).get(n)??Xt(e):Xt(e)}function ti(e,t,n,r){let o=e,i=typeof o.id=="string"?r?.get($(o.id))??wc(o,[...t.values()]):Xt(e),s=new Set((e.dependencies??[]).filter(a=>a.kind===ei&&se(a.source_kind)&&typeof a.id=="string"&&a.id.trim().length>0).map(a=>ar(a.id.trim(),!0)));return i.map(a=>{if(ye(a)||s.has(ar(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($(a));return c?{id:a,title:c.title,status:c.status,resolved:ge(c.status,n)}:{id:a,title:null,status:null,resolved:!1}})}function Qm(e,t,n){return ti(e,t,n)}function Zm(e,t){let n=new Map(e.map(s=>[$(s.id),s])),r=cr(e),o=new Set([...vc(t),...t.blocked_statuses]),i=new Set;for(let s of e){let a=at(s.status,t);o.has(a)&&(t.blocked_statuses.has(a)||ti(s,n,t,r).some(c=>!c.resolved))&&i.add($(s.id))}return i}function e_(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(at(s.item.status,t))));let i={ready:[],decisions:[],gates:[]};for(let s of o){let a=Zo(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 vc(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function t_(e,t,n){let r=[$(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(!ge(s.status,n))return!0;r.push($(s.id))}}}return!1}function n_(e){let t=new Map,n=new Map,r=new Map,o=cr(e);for(let i of e){t.set($(i.id),i);let s=typeof i.parent=="string"?i.parent.trim():"";if(s.length>0){let a=$(s),c=n.get(a)??[];c.push(i),n.set(a,c)}for(let a of o.get($(i.id))){let c=$(a),d=r.get(c)??[];d.push(i.id),r.set(c,d)}}return{itemsById:t,childrenByParent:n,blockedByReverse:r,blockerIdsByItem:o}}function r_(e,t,n,r){let{itemsById:o,childrenByParent:i,blockedByReverse:s,blockerIdsByItem:a}=n_(t),c=new Set([...vc(n),...n.blocked_statuses]),d=new Set(t.filter(g=>!ge(g.status,n)).map(g=>$(g.id))),l=[],f=[],_=[],p=[],m=[],w=0;for(let g of e){if(!c.has(at(g.status,n)))continue;w+=1;let S=ti(g,o,n,a).filter(x=>!x.resolved),A=(s.get($(g.id))??[]).filter(x=>d.has($(x))).sort((x,oe)=>x.localeCompare(oe)),N={item:g,open_blockers:S,unblocks:A};if(t_(g.id,i,n)){_.push(N);continue}let z=n.blocked_statuses.has(at(g.status,n));if(S.length===0&&!z){let x=Zo(g.type,r);x==="human"?p.push(N):x==="gate"?m.push(N):l.push(N)}else f.push(N)}return{ready:l,blocked:f,containers:_,decisions:p,gates:m,active_count:w,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]="283dfa35-9a8e-524c-b6e2-d433d51215ca")}catch{}})();function de(){let e=ue();for(let t of me()?.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]="8b57e560-4ac4-53b6-9fb1-eebb1f30562a")}catch{}})();function Yt(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function dr(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function o_(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 i_(e,t){let n=[...e].sort(),r=o_(n,t),o=new Set,i=s_(n,t),s=[];for(let a of r.reverse()){if(o.has(a))continue;let c=a_(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 s_(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 a_(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 Ec(e){let t=new Map;for(let n of e){let r=Yt(n?.id);r&&!t.has(r)&&t.set(r,n)}return t}function c_(e,t,n){let r=Yt(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 d_(e,t,n,r){let o=Yt(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 kc(e,t){let n=new Map;for(let[r,o]of e){let i=c_(r,o,e);i&&n.set(dr(i),i);for(let s of o.dependencies??[]){let a=d_(r,s,e,t);a&&n.set(dr(a),a)}}return[...n.values()].sort((r,o)=>dr(r).localeCompare(dr(o)))}function Mw(e,t=de()){return kc(Ec(e),t)}function l_(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 u_(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=Yt(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 lr(e,t=r=>r==="closed"||r==="canceled",n=de()){let r=Ec(e),o=kc(r,n),i=f_(o),s=new Set([...r].filter(([,c])=>t(c.status)).map(([c])=>c)),a=i_([...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:l_(o,i.parents_by_child,s),divergences:u_(r,o,s)}}function Fw(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 f_(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 ni(e,t){let n=new Set(t);return e.every(r=>n.has(r))}function $w(e,t,n,r,o){let i=Yt(n);if(!i)return;let s=lr(e,r,o),a=lr(t,r,o),c=a.divergences.find(f=>!s.divergences.some(_=>_.child_id===f.child_id&&_.scalar_parent_id===f.scalar_parent_id&&ni(f.dependency_parent_ids,_.dependency_parent_ids)));if(c){let f=[c.scalar_parent_id,...c.dependency_parent_ids].sort();throw new h(`Hierarchy mutation would assign ${c.child_id} to multiple parents: ${f.join(", ")}.`,b.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&&ni(f.parent_ids,_.parent_ids)));if(d)throw new h(`Hierarchy mutation would assign ${d.child_id} to multiple parents: ${d.parent_ids.join(", ")}.`,b.CONFLICT,{code:"hierarchy_cardinality_created",source_id:i,target_id:d.child_id,verification_errors:d.parent_ids});let l=a.cycles.find(f=>f.item_ids.includes(i)&&!s.cycles.some(_=>ni(f.item_ids,_.item_ids)));if(l)throw new h(`Hierarchy mutation would create a cycle: ${l.item_ids.join(" -> ")}.`,b.CONFLICT,{code:"hierarchy_cycle_created",source_id:i,verification_errors:l.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]="6c580b70-76eb-51db-8587-99b73dd20875")}catch{}})();var m_="global";function Bw(e){let t=e?.trim();if(t)return se(t)?m_:t}function Vw(e,t,n){return __(e,t,n)}function __(e,t,n){let r=e.trim();return se(n)||ye(r)?r:Qe(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]="41f814be-ee87-5cae-b674-69c2e7f42655")}catch{}})();function kt(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function Jt(e){let t=kt(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function Qt(e,t,n=!0){let r=kt(e);return n&&(se(t)||r!==void 0&&ye(r))}function ri(e,t){return Qt(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function Ic(e,t,n,r){return Qt(e,t)?r.get(e):n.get(e.toLowerCase())}function Et(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function p_(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,o=kt(r.id);if(!o)continue;let i=typeof r.kind=="string"?r.kind:"related",s=`${i}\0${ri(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 h_(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 p_(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=Et(r.holder_id,o.holder_id);if(i!==0)return i;let s=Et(r.target_id,o.target_id);return s!==0?s:Et(r.kind,o.kind)})}function y_(e,t,n,r,o){if(typeof n!="object"||n===null)return;let i=kt(n.id);if(!i||ri(i,n.source_kind)!==ri(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 g_(e,t=r=>r==="closed"||r==="canceled",n=de()){let r=new Map;for(let o of e){if(typeof o?.id!="string"||o.id.trim().length===0)continue;let i=kt(o.blocked_by);if(i)for(let s of o.dependencies??[]){let a=y_(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=Et(o.holder_id,i.holder_id);if(s!==0)return s;let a=Et(o.target_id,i.target_id);return a!==0?a:Et(o.dependency_kind,i.dependency_kind)})}function oi(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,l,f,_)=>{let p=kt(d);if(!p||r.has(p.toLowerCase())||Qt(p,void 0,_))return;let m={holder_id:c.id.trim(),target_id:p,kind:l,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 l=d;se(l.source_kind)||i(c,l.id,typeof l.kind=="string"?l.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 b_(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 w_(e){let t=new Map;for(let n of e){let r=Jt(n.blocked_by);r&&Qt(r)&&!t.has(r)&&t.set(r,r);for(let o of n.dependencies??[]){if(typeof o!="object"||o===null||!Qt(o.id,o.source_kind))continue;let i=Jt(o.id);i&&!t.has(i)&&t.set(i,i)}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}var Sc=new WeakMap;function Qw(e){return e.hierarchyIntegrity??Sc.get(e)}function v_(e,t=de()){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 ur(e,t,n){let r=n??de(),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=oi(o,t),a=b_(s);for(let m of a)i.set(m.toLowerCase(),m);let c=w_(o),d=new Set(i.keys()),l=new Map;for(let m of c){let w=m;for(;d.has(w.toLowerCase());)w=`external:${w}`;l.set(m,w),d.add(w.toLowerCase())}let f=o.map(m=>{let w=Jt(m.parent),g=Jt(m.blocked_by),S=(m.dependencies??[]).flatMap(A=>{if(typeof A!="object"||A===null)return[];let N=A,z=Jt(N.id);return z?[{id:Ic(z,N.source_kind,i,l),kind:typeof N.kind=="string"?N.kind:"related"}]:[]});return{id:m.id.trim(),...w?{parent:i.get(w.toLowerCase())}:{},...g?{blocked_by:Ic(g,void 0,i,l)}:{},dependencies:S}}),_=lr(o,t,r),p={graph:zi.fromItems([...f,...a.map(m=>({id:m})),...c.map(m=>({id:l.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:l.get(m),title:`[external] ${m}`,status:"external"}))],missingIdSet:new Set(a.map(m=>m.toLowerCase())),dangling:s,duplicateRows:h_(o,t),orderingContradictions:g_(o,t,r),legacyAliasCounts:v_(o,r),hierarchyIntegrity:_};return Sc.set(p,_),p}import{createHash as E_}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]="e31ef0fb-e803-500b-b1e5-db9edfc880c4")}catch{}})();var k_=64,I_=8;function S_(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 Cc(e,t=r=>r==="closed"||r==="canceled",n=ue()){let r=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>S_(i,t)).sort(),o=n.list().map(i=>D(i)).sort();return E_("sha256").update(r.join("")).update("").update(o.join("")).digest("hex")}function Tc(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var ii=class{#e=new Map;#t;#n;constructor(t={}){this.#t=Tc("maxResultsPerWorkspace",t.maxResultsPerWorkspace,k_),this.#n=Tc("maxWorkspaces",t.maxWorkspaces,I_)}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 l=s.results.get(c);if(l!==void 0||s.results.has(c))return s.results.delete(c),s.results.set(c,l),{value:structuredClone(l),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()}},xc=new ii;function Oc(){return xc}function rv(){xc.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]="c67d6023-2fb2-541f-9541-8aa317368dcf")}catch{}})();var T_=["prerequisite","dependent","ancestor","descendant","provenance","related"],C_=new TextEncoder;function si(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 fr(e){return Math.max(1,Math.ceil(C_.encode(JSON.stringify(e)).byteLength/4))}function ai(e,t,n){let r=n.resolve(e.kind);if(r?.ordering){let o=(r.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===o?"prerequisite":"dependent"}if(r?.hierarchy){let o=r.hierarchyDirection==="source_parent"?e.source:e.target;return t===o?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function x_(e,t,n,r){let o=e.filter(i=>i.source===t&&i.target===n||i.target===t&&i.source===n).map(i=>ai(i,n,r));return[...new Set(o)].sort()}function O_(e){return T_.find(t=>e.includes(t))}function R_(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,l=!1;for(let f=0;f<a.length;f+=1){r.signal?.throwIfAborted();let _=a[f];if(_.distance>=i&&l)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))&&(l=!0);continue}for(let{id:m,edge:w}of p.value){if(s.has(m))continue;s.add(m);let g={id:m,distance:_.distance+1,via:_.id,role:ai(w,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:l}}function A_(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[ai(a,s,n)]+=1;return{directEdges:o,directTotal:i.length,rootEdges:i.map(({edge:s})=>s)}}function D_(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let o=r.distance===1?x_(e.rootEdges,e.rootId,r.id,e.registry):[],i={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:o.length>0?O_(o):r.role,via:r.via,reasons:o.length>0?o:[`${r.role} via ${r.via} (depth ${r.distance})`]},s=fr(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 N_(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=fr(i);if(o+s>e.tokenBudget)break;r.push(i),o+=s}return{edges:r,usedTokens:o,candidateCount:n.length}}function Rc(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let o=si(r.nodeLimit,20,"nodeLimit"),i=si(r.edgeLimit,40,"edgeLimit"),s=si(r.tokenBudget,1200,"tokenBudget"),a=r.registry??ue(),c=new Map(n.map(nt=>[nt.id,nt])),d=c.get(t)??{id:t},{evidence:l=[],...f}=d,_=[...l],p=R_(e,t,a,r),{rootEdges:m,...w}=A_(e,t,a,r),g=ls("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),S=fs(p.rows,r.cursor,g,({id:nt})=>nt),A=p.rows.slice(S),N=fr(f)+fr(_);if(N>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let z=D_({candidates:A,details:c,rootEdges:m,rootId:t,registry:a,nodeLimit:o,tokenBudget:s,initialTokens:N}),{nodes:x}=z,oe=new Set([t,...x.map(({id:nt})=>nt)]),U=N_({graph:e,included:oe,options:r,registry:a,edgeLimit:i,tokenBudget:s,initialTokens:z.usedTokens}),{edges:Z,usedTokens:B}=U,ee=S+x.length,te=ee<p.rows.length,tt=x.at(-1),Cr=U.candidateCount-Z.length,Ni=p.depthTruncated||te||Cr>0,xd={rootId:t,...f.status===void 0?{}:{rootStatus:f.status},...w,discoveredNodes:p.rows.length,returnedNodes:x.length,returnedEdges:Z.length,omittedNodes:p.rows.length-ee,omittedEdges:Cr,evidenceCount:_.length,hasMore:te};return{root:f,summary:xd,nodes:x,edges:Z,evidence:_,meta:{exact:!0,truncated:Ni,completeness:Ni?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:s,usedTokens:B,visitedNodes:p.visitedNodes,inspectedEdges:p.inspectedEdges,omittedNodes:p.rows.length-ee,omittedEdges:Cr,...te&&tt?{nextCursor:us(g,tt.id,ee-1)}:{}}}}import{AsyncLocalStorage as Z_}from"node:async_hooks";import{lstat as ep,realpath as Hc}from"node:fs/promises";import zc 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]="f4ae942c-f11f-5d24-95bf-a2abf3c226da")}catch{}})();var K={ok:!1},y=e=>typeof e=="string"?{ok:!0,value:e}:K,O=e=>typeof e=="boolean"?{ok:!0,value:e}:K;function P(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?K:{ok:!0,value:t}}function R(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:K}function E(e,t){return n=>{if(!Array.isArray(n)||t!==void 0&&n.length>t)return K;let r=[];for(let o of n){let i=e(o);if(!i.ok)return K;r.push(i.value)}return{ok:!0,value:r}}}function di(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}:K}function u(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function mr(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return K;let n={};for(let[r,o]of Object.entries(t)){let i=e(o);if(!i.ok)return K;n[r]=i.value}return{ok:!0,value:n}}}function C(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return K;let n=t,r={};for(let[o,i]of Object.entries(e)){let s=i(n[o]);if(!s.ok)return K;s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var L_=C({key:y,values:E(y),required:u(O),aliases:u(E(y)),description:u(y)}),P_=C({command:R("create","update"),option:y,required:u(O),visible:u(O),enabled:u(O)}),j_=C({name:y,description:u(y),default_status:u(y),execution_role:u(R("agent","human","gate")),folder:u(y),aliases:u(E(y)),required_create_fields:u(E(y)),required_create_repeatables:u(E(y)),options:u(E(L_)),command_option_policies:u(E(P_))}),M_=C({id:y,aliases:u(E(y)),roles:u(E(R(...Li))),description:u(y),order:u(P())}),F_=C({key:y,metadata_key:u(y),front_matter_key:u(y),cli_flag:u(y),cli_aliases:u(E(y)),description:u(y),type:u(R(...Pi)),commands:u(E(R(...ji))),repeatable:u(O),required:u(O),required_on_create:u(O),required_types:u(E(y)),allow_unset:u(O)}),$_=e=>{if(!Array.isArray(e)||e.length!==2)return K;let[t,n]=e;return typeof t!="string"||typeof n!="string"?K:{ok:!0,value:[t,n]}},H_=C({type:y,allowed_transitions:E($_)}),z_=u(C({version:u(P({int:!0})),files:u(C({types:u(y),statuses:u(y),fields:u(y),workflows:u(y)})),statuses:u(E(M_)),fields:u(E(F_)),workflow:u(C({draft_status:u(y),open_status:u(y),in_progress_status:u(y),blocked_status:u(y),close_status:u(y),canceled_status:u(y)})),type_workflows:u(E(H_)),unknown_field_policy:u(R(...Mi))})),U_=u(C({preset:u(R(...Fi)),ownership_enforcement:u(R("none","warn","strict")),create_mode_default:u(R("progressive","strict")),close_validation_default:u(R("off","warn","strict")),require_close_reason:u(O),parent_reference:u(R("warn","strict_error")),metadata_profile:u(R("core","strict","custom")),force_required_for_stale_lock:u(O),create_default_type:u(y),workflow_enforcement:u(R("off","warn","strict")),duplicate_detection_mode:u(R("off","advisory","strict")),duplicate_detection_threshold:u(P({min:0,max:1})),duplicate_detection_limit:u(P({int:!0,min:0,max:20}))})),W_=C({name:y,disabled:u(O),require_trusted:u(O),require_provenance:u(O),sandbox_profile:u(R("none","restricted","strict")),allowed_capabilities:u(E(y)),blocked_capabilities:u(E(y)),allowed_surfaces:u(E(y)),blocked_surfaces:u(E(y)),allowed_commands:u(E(y)),blocked_commands:u(E(y)),allowed_actions:u(E(y)),blocked_actions:u(E(y)),allowed_services:u(E(y)),blocked_services:u(E(y))}),ci=R("block","warn"),B_=e=>typeof e=="string"?ci(e):C({global:u(ci),project:u(ci)})(e),V_=u(C({mode:u(R("off","warn","enforce")),trust_mode:u(R("off","warn","enforce")),pm_max_version_exceeded_mode:u(B_),require_provenance:u(O),trusted_extensions:u(E(y)),default_sandbox_profile:u(R("none","restricted","strict")),allowed_extensions:u(E(y)),blocked_extensions:u(E(y)),allowed_capabilities:u(E(y)),blocked_capabilities:u(E(y)),allowed_surfaces:u(E(y)),blocked_surfaces:u(E(y)),allowed_commands:u(E(y)),blocked_commands:u(E(y)),allowed_actions:u(E(y)),blocked_actions:u(E(y)),allowed_services:u(E(y)),blocked_services:u(E(y)),extension_overrides:u(E(W_))})),et=di(128),G_=C({harness:di(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:u(E(et,64)),model_environment_keys:u(E(et,64)),session_environment_keys:u(E(et,64)),provenance_environment_keys:u(mr(E(et,64))),provenance_resolvers:u(mr(R("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:u(E(et,64)),argv_markers:u(E(et,64)),client_names:u(E(et,64))}),q_=C({version:P({int:!0}),id_prefix:y,ids:u(C({token_length:u(P({int:!0,min:4,max:12}))})),author_default:y,agent_identity:u(C({probes_enabled:u(O),identity_vocabulary:u(C({version:P({int:!0,positive:!0}),aliases:mr(di(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:E(G_)})),mutation_guard:u(C({require_attributed_author:u(O),secret_guard:u(R("off","advise","block")),stale_in_progress_hours:u(P({int:!0,positive:!0}))})),item_format:u(R("toon","json_markdown")),locks:C({ttl_seconds:P({int:!0}),wait_ms:u(P({int:!0,min:0}))}),checkpoints:u(C({retention_days:u(P({int:!0,positive:!0}))})),output:C({default_format:R("toon","json")}),ux:u(C({deprecation_hints:u(O)})),history:u(C({missing_stream:R("auto_create","strict_error"),compact_policy:u(C({enabled:u(O),max_entries:u(P({int:!0,positive:!0})),trigger:u(R("health_warn","auto"))}))})),validation:u(C({sprint_release_format:R("warn","strict_error"),parent_reference:u(R("warn","strict_error")),metadata_profile:u(R("core","strict","custom")),metadata_required_fields:u(E(y)),lifecycle_stale_blocker_reason_patterns:u(E(y)),lifecycle_closure_like_blocked_reason_patterns:u(E(y)),lifecycle_closure_like_resolution_patterns:u(E(y)),lifecycle_closure_like_actual_result_patterns:u(E(y)),estimate_defaults_by_type:u(mr(P({int:!0,positive:!0})))})),governance:U_,workflow:u(C({definition_of_done:E(y)})),testing:u(C({record_results_to_items:O,allow_untrusted_linked_tests:u(O)})),telemetry:u(C({enabled:O,first_run_prompt_completed:u(O),capture_level:u(R("minimal","redacted","max")),endpoint:u(y),installation_id:u(y),retention_days:u(P({int:!0,positive:!0}))})),agent_guidance:u(C({prompt_completed:u(O),declined:u(O),declined_at:u(y),template_version:u(P({int:!0,positive:!0})),last_checked_files:u(E(y))})),item_types:u(C({definitions:E(j_)})),schema:z_,context:u(C({default_depth:u(R("brief","standard","deep")),activity_limit:u(P({int:!0,positive:!0})),stale_threshold_days:u(P({int:!0,positive:!0})),sections:u(C({hierarchy:u(O),activity:u(O),progress:u(O),recently_created:u(O),unparented:u(O),blockers:u(O),files:u(O),workload:u(O),staleness:u(O),tests:u(O)}))})),extensions:C({enabled:E(y),disabled:E(y),policy:V_}),search:C({score_threshold:P(),hybrid_semantic_weight:u(P()),max_results:P({int:!0}),embedding_model:y,embedding_corpus_max_characters:u(P()),embedding_batch_size:P({int:!0}),embedding_timeout_ms:u(P({int:!0})),scanner_max_batch_retries:P({int:!0}),provider:u(y),default_mode:u(R("auto","keyword","semantic","hybrid")),corpus_fields:u(E(y)),mutation_refresh_policy:u(R("cache_only","semantic_configured","semantic_auto")),query_expansion:u(C({enabled:u(O),provider:u(y)})),rerank:u(C({enabled:u(O),model:u(y),top_k:u(P({int:!0,positive:!0}))})),bm25:u(C({k1:u(P()),b:u(P())}))}),providers:C({openai:C({base_url:y,api_key:y,model:y}),ollama:C({base_url:y,model:y})}),vector_store:C({adapter:u(y),collection_name:u(y),qdrant:C({url:y,api_key:y}),lancedb:C({path:y})})});function li(e){let t=q_(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]="a0ca9902-540c-50fe-a4e2-9c234c4a01f3")}catch{}})();function _r(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ui(e,t,n,r=[]){if(ie(e,t)&&(r.length>0||_r(n)))return n;if(ie(e,n)||ie(t,n))return t;if((e===void 0||_r(e))&&_r(t)&&_r(n)){let o=e??{},i=new Set([...Object.keys(o),...Object.keys(t),...Object.keys(n)]);return Object.fromEntries([...i].flatMap(s=>{let a=ui(Object.hasOwn(o,s)?o[s]:void 0,Object.hasOwn(t,s)?t[s]:void 0,Object.hasOwn(n,s)?n[s]:void 0,[...r,s]);return a===void 0?[]:[[s,a]]}))}throw new h(`Settings changed concurrently at ${r.join(".")||"<root>"}; read the latest settings and reapply the intended change.`,b.CONFLICT,{reason:"stale_settings_snapshot",required:"Read a fresh settings snapshot and reapply the intended change.",why:"Another writer changed the same setting after this snapshot was read.",examples:["pm config project export --json"],nextSteps:["Read the current settings, then retry the original config operation."]})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="de43e8e6-d7ef-53cc-94b0-ccdf1c4f94a3")}catch{}})();var K_={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},Ac=120;function fi(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function Nc(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var X_=Nc(K_),Dc=new WeakMap;function Y_(e){let t=Dc.get(e);if(t)return t;let n=Nc(e);return Dc.set(e,n),n}function _v(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return Ac;if(t){let o=Y_(t).get(n);if(fi(o))return Math.floor(o)}let r=X_.get(n);return fi(r)?Math.floor(r):Ac}function mi(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||!fi(r)||(t[o]=Math.floor(r))}return t}import{stat as J_}from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="78c79deb-5cf0-54fe-b98c-a0d5b3671ab2")}catch{}})();var pr=new Map;function Lc(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 J_(e);return{path:e,mtime_ms:t.mtimeMs,size:t.size}}catch{return{path:e,mtime_ms:null,size:null}}}async function De(e){let t=Lc(e),n=await Promise.all(t.map(r=>Q_(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function Zt(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 Pc(e){return pr.get(e)}function hr(e,t){let n=Lc(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));pr.set(e,{tracked_paths:n,signatures:r,value:t.value})}function Ne(e){if(e){pr.delete(e);return}pr.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]="bbb5e299-541d-5fff-8422-855c85cf7a31")}catch{}})();var yi=new Z_;async function Pv(e,t,n=()=>!0){let r=new Set([zc.resolve(e)]);try{r.add(await Hc(e))}catch{}return yi.run([...yi.getStore()??[],[r,n]],t)}function tp(e){let t=zc.resolve(e);return yi.getStore()?.some(([n,r])=>n.has(t)&&r())??!1}var np="settings:write",Uc=Symbol("pm.settings.persist_source"),rp=128,op=new Set(["off","advisory","strict"]);function jc(e){return structuredClone(Hi[e])}function ip(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:k.governance.preset}function Mc(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 sp(e){return e.preset==="custom"?Mc({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):Mc({preset:e.preset},e)}function ap(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),op.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 br(e){let t=e.governance??{},n=ip(t.preset),r=ap(t);if(n==="custom"){let s=jc("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=jc(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function Wc(){return structuredClone(k)}function Bc(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:k.search.mutation_refresh_policy}function Vc(e){return e==="auto"||e==="keyword"||e==="semantic"||e==="hybrid"?e:"auto"}function Gc(e){return typeof e=="boolean"?e:k.search.query_expansion.enabled}function qc(e){return typeof e!="string"?k.search.query_expansion.provider:e.trim()}function Kc(e){return typeof e=="boolean"?e:k.search.rerank.enabled}function Xc(e){return typeof e!="string"?k.search.rerank.model:e.trim()}function Yc(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:k.search.rerank.top_k}function Jc(e){if(typeof e!="string")return k.vector_store.collection_name;let t=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,rp);return t.length>0?t:k.vector_store.collection_name}function _i(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function Qc(e,t){let n=e.schema,r=_i(n?.statuses),o=_i(n?.fields),i=_i(n?.type_workflows);return{persisted_settings:structuredClone(e),source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:It(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:It(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 wi(e,t){Object.defineProperty(e,Uc,{value:t,writable:!0,configurable:!0,enumerable:!1})}function Zc(e){let t=e[Uc];if(!(!t||typeof t!="object"))return t}function yr(e){let t=structuredClone(e.settings),n=Zc(e.settings);return n&&wi(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function cp(e,t,n){let r=Rt(t);return[n,At(e,r.files.types,Ot.types),At(e,r.files.statuses,Ot.statuses),At(e,r.files.fields,Ot.fields),At(e,r.files.workflows,Ot.workflows)]}async function dp(e,t,n){let r=await De(t);hr(e,{tracked_paths:t,signatures:r,value:yr(n)})}async function lp(e,t,n){try{await dp(e,t,n)}catch{Ne(e)}}function Fc(e,t){return e.find(n=>n.path===t)}function up(e,t,n){for(let r of n){let o=Fc(e,r),i=Fc(t,r);if(!o||!i||!Zt([o],[i]))return!1}return!0}async function pi(e,t,n,r,o){try{let i=await De(t);if(!up(r,i,o)){Ne(e);return}hr(e,{tracked_paths:t,signatures:i,value:yr(n)})}catch{Ne(e)}}function fp(e,t){let n=Rt(e.schema),r=It(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=ie(r,t.runtime_item_type_definitions),s=ie(n.statuses,t.runtime_schema_statuses),a=ie(n.fields,t.runtime_schema_fields),c=ie(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?It(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 le(e){return{settings:Wc(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function ed(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function gi(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function td(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:gi(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 mp(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.mode}function _p(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.trust_mode}function nd(e){return e==="none"||e==="restricted"||e==="strict"?e:k.extensions.policy.default_sandbox_profile}function pp(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=nd(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),l=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),l.length>0&&(n.blocked_actions=l),f.length>0&&(n.allowed_services=f),_.length>0&&(n.blocked_services=_),n}function hp(e){let t=new Map;for(let n of e??[]){let r=pp(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function hi(e){return e==="block"||e==="warn"?e:void 0}function yp(e){if(typeof e=="string")return hi(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=hi(e.global),n=hi(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 rd(e){let t=yp(e?.pm_max_version_exceeded_mode);return{mode:mp(e?.mode),trust_mode:_p(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:nd(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:hp(e?.extension_overrides??k.extensions.policy.extension_overrides)}}function od(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase().replaceAll("-","_")))].filter(t=>t.length>0).sort((t,n)=>t.localeCompare(n)).filter(t=>["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"].includes(t))}function Le(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function H(e,t){return e===void 0?t:e}function Y(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function bi(e){return Array.isArray(e)?e:[]}function gp(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:od(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:Le(e.validation?.lifecycle_stale_blocker_reason_patterns??t.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:Le(e.validation?.lifecycle_closure_like_blocked_reason_patterns??t.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:Le(e.validation?.lifecycle_closure_like_resolution_patterns??t.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:Le(e.validation?.lifecycle_closure_like_actual_result_patterns??t.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:mi(e.validation?.estimate_defaults_by_type)}}function bp(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 wp(e,t){return{...t.search,...e.search,default_mode:Vc(e.search?.default_mode),mutation_refresh_policy:Bc(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:Gc(e.search?.query_expansion?.enabled),provider:qc(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:Kc(e.search?.rerank?.enabled),model:Xc(e.search?.rerank?.model),top_k:Yc(e.search?.rerank?.top_k)}}}function vp(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:Jc(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function Ep(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function kp(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 Ip(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function It(e){let t=(e??[]).map(r=>Gi(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 gr(e){let t=Wc(),n=br({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:Ep(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:gp(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:bp(e,t),agent_guidance:td(e.agent_guidance??t.agent_guidance),item_types:{definitions:It(e.item_types?.definitions)},schema:Rt(e.schema??t.schema),context:kp(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:rd(e.extensions.policy??t.extensions.policy)},search:wp(e,t),providers:Ip(e,t),vector_store:vp(e,t)}}function Sp(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=bi(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=bi(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 Tp(e){return{...e,locks:H(e.locks,k.locks),ids:H(e.ids,k.ids),agent_identity:H(e.agent_identity,k.agent_identity),mutation_guard:H(e.mutation_guard,k.mutation_guard),checkpoints:H(e.checkpoints,k.checkpoints),output:H(e.output,k.output),ux:H(e.ux,k.ux),history:H(e.history,k.history),validation:H(e.validation,k.validation),workflow:H(e.workflow,k.workflow),testing:H(e.testing,k.testing),telemetry:H(e.telemetry,k.telemetry),agent_guidance:H(e.agent_guidance,k.agent_guidance),item_types:H(e.item_types,k.item_types),schema:H(e.schema,k.schema),context:H(e.context,k.context),extensions:H(e.extensions,k.extensions),search:H(e.search,k.search),providers:H(e.providers,k.providers),vector_store:H(e.vector_store,k.vector_store)}}function Cp(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:od(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:Le(e.validation?.lifecycle_stale_blocker_reason_patterns??k.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:Le(e.validation?.lifecycle_closure_like_blocked_reason_patterns??k.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:Le(e.validation?.lifecycle_closure_like_resolution_patterns??k.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:Le(e.validation?.lifecycle_closure_like_actual_result_patterns??k.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:mi(e.validation?.estimate_defaults_by_type)}}function xp(e){return{...k.search,...e.search,default_mode:Vc(e.search?.default_mode),mutation_refresh_policy:Bc(e.search?.mutation_refresh_policy),query_expansion:{...k.search.query_expansion,...e.search?.query_expansion,enabled:Gc(e.search?.query_expansion?.enabled),provider:qc(e.search?.query_expansion?.provider)},rerank:{...k.search.rerank,...e.search?.rerank,enabled:Kc(e.search?.rerank?.enabled),model:Xc(e.search?.rerank?.model),top_k:Yc(e.search?.rerank?.top_k)}}}function Op(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 Rp(e){return{...e.vector_store,adapter:e.vector_store?.adapter??k.vector_store.adapter,collection_name:Jc(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function Ap(e,t,n,r){return{...e,item_format:"toon",validation:Cp(e,t),governance:t,agent_guidance:td(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:xp(e),context:Op(e),extensions:{enabled:gi(e.extensions?.enabled),disabled:gi(e.extensions?.disabled),policy:rd(e.extensions?.policy)},vector_store:Rp(e)}}function id(e,t){for(let n of Object.keys(t)){let r=Reflect.get(t,n),o=e[n];typeof r=="object"&&r!==null&&!Array.isArray(r)&&typeof o=="object"&&o!==null&&!Array.isArray(o)?id(o,r):e[n]=structuredClone(r)}}function sd(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(!ie(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:{};sd(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var vi=["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 $c(e,t){let n=Tp(e),r=br(n),o=Rt(n.schema),i=fp(n,t),s=Ap(n,r,o,i),a=T({...s,governance:sp(r)},vi);return Sp(a),a}function Dp(e,t={}){let n=t.source===void 0?t.persist_source:Qc(t.source.validated,gr(t.source.validated)),r=$c(e,n);if(n){let o=gr(n.source_settings);o.item_types={definitions:structuredClone(n.runtime_item_type_definitions)},o.schema={...o.schema,statuses:structuredClone(n.runtime_schema_statuses),fields:structuredClone(n.runtime_schema_fields),type_workflows:structuredClone(n.runtime_schema_type_workflows)};let i=$c(o,n);t.source!==void 0&&id(i,t.source.validated);let s=structuredClone(t.source===void 0?n.source_settings:t.source.raw);return sd(s,i,r),`${JSON.stringify(T(s,vi),null,2)}
|
|
163
|
+
`}return`${JSON.stringify(r,null,2)}
|
|
164
|
+
`}async function Np(e){let t;try{t=await Hc(e)}catch(a){if($e(a))return le();throw a}let n=rt(t),r;try{r=await ep(n)}catch(a){if($e(a))return le();throw a}if(!r.isFile())throw Or();let o;try{o=await Wi(n,Or())}catch(a){if($e(a))return le();throw a}let i;try{i=JSON.parse(o)}catch{return le("settings_read_invalid_json")}let s=li(i);return s.success?{settings:gr(s.data),metadata:{has_explicit_item_format:ed(i)},warnings:s.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[]}:le("settings_read_invalid_schema")}async function ad(e){if(tp(e))return Np(e);let t=rt(e),n=[t];await ke({path:t,scope:"project"});let r=Pc(e);if(r){let d=await De(r.tracked_paths);if(Zt(d,r.signatures))return yr(r.value)}let o=await De([t]),i;try{i=await Ee(t)}catch{return le("settings_read_fs_error")}if(i===null){let d=le();return await pi(e,[t],d,o,[t]),d}let s=await De([t]);if(!Zt(o,s))return Ne(e),ad(e);let a;try{a=JSON.parse(i)}catch{let d=le("settings_read_invalid_json");return await pi(e,[t],d,s,[t]),d}let c=li(a);if(!c.success){let d=le("settings_read_invalid_schema");return await pi(e,[t],d,s,[t]),d}try{let d=gr(c.data),l=cp(e,d.schema,t);n=l;let f=await De(l),_=await os(e,d.schema),p=await is(e,d.schema),m=await De(l),w={...d,item_types:{definitions:It([...d.item_types.definitions,...bi(p.type_definitions_from_file)])},schema:p.schema};wi(w,Qc(c.data,w));let g={settings:w,metadata:{has_explicit_item_format:ed(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?Zt(f,m)?hr(e,{tracked_paths:l,signatures:m,value:yr(g)}):Ne(e):Ne(e),g}catch{let d=le("settings_read_merge_failed");return await lp(e,n,d),d}}async function cd(e){return(await ad(e)).settings}async function jv(e,t,n=np){let r=rt(e),o=Zc(t),i=Dp(t,{persist_source:o}),s=JSON.parse(i);try{await Za({pmRoot:e,filePath:r,mutate:a=>{let c=null;if(a!==null)try{c=JSON.parse(a)}catch{throw new h("Existing settings.json is malformed; the settings write was refused.",b.USAGE,{code:"settings_write_invalid_existing_json",reason:"existing_settings_json_malformed",why:"Writing defaults over malformed settings could destroy intended project configuration.",nextSteps:["Repair the syntax in .agents/pm/settings.json, then retry the original command.","Run pm health to confirm the settings warning has cleared."]})}return{raw:o?`${JSON.stringify(T(ui(o.persisted_settings,s,c),vi),null,2)}
|
|
165
|
+
`:i,result:void 0}},op:n,author:Fs(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),o&&wi(t,{...o,persisted_settings:structuredClone(s)}),await _e({path:r,scope:"project",op:n})}finally{Ne(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]="e23f9ca6-9fa6-566b-9bfb-7cbe6d449a59")}catch{}})();function Lp(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:nn(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 dd(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function zv(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:Lp(r,o),l=dd([...i,r,...s]),f=e.retry_command??(d?dd([...i,d,...s]):void 0);return new h(`Unknown ${a} ${c} "${r}". Allowed: ${o.join(", ")}${e.message_suffix??""}`,e.exit_code??b.USAGE,{code:"unknown_subcommand",reason:"unknown_positional_token",value:r,examples:[...f?[f]:[],...e.examples??[],`pm ${t} --help`],nextSteps:f?[`Retry with the suggested command: ${f}`]:["Choose one value from recovery.allowed_values."],recovery:{attempted_command:l,allowed_values:o,suggested_retry:f,fallback_candidates:e.fallback_candidates}})}import Pp from"node:fs/promises";import jp 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]="1d746e4d-ff6c-54ec-a94f-4ec4cb8f77b5")}catch{}})();function Mp(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function Fp(e,t){return new h(`Missing history stream for ${e}. ${t} requires history streams when settings.history.missing_stream is strict_error.`,b.NOT_FOUND)}async function $p(e,t){return await Ui(jp.dirname(e)),await(await Pp.open(e,"a")).close(),_e({path:e,scope:"project",op:`${t}:history:auto_create`})}async function Ei(e){return Hp({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function Hp(e){let t=Mp(e.itemIds),n=[],r=[];for(let o of t){let i=fe(e.pmRoot,o);if(!await Fe(i)){if(e.settings.history.missing_stream==="strict_error")throw Fp(o,e.commandLabel);r.push(...await $p(i,e.commandLabel)),r.push(`history_stream_auto_created:${o}`),n.push(o)}}return{auto_created_ids:n,warnings:r}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5db05e2f-4742-526b-b1c8-b97ff302b40e")}catch{}})();function en(e,t=!1){let n=e[0];if(n?.op!=="history_compact_baseline")return 0;let r=n.context?.history_compaction,o=typeof r=="object"&&r!==null&&"version_offset"in r?r.version_offset:void 0;if(typeof o=="number"&&Number.isSafeInteger(o)&&o>=0&&Number.isSafeInteger(o+e.length))return o;if(t)return null;throw new h("This compacted stream has no trustworthy version offset; numeric history addresses are unavailable.",b.USAGE,{code:"history_version_mapping_unavailable",required:"Use a retained timestamp or recover the pre-compaction stream from version control.",nextSteps:["Run pm history <id> --full to inspect the retained timestamps and checkpoint evidence."]})}(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]="ddc5bb8f-83bc-5121-a628-a501e7ed5a73")}catch{}})();function zp(e,t){let n=-1;return e.forEach((r,o)=>{let i=Date.parse(r.ts);if(!Number.isFinite(i))throw new h(`History for this item contains invalid timestamp at entry ${o+1}.`,b.GENERIC_FAILURE);i<=t&&(n=o)}),n}function Up(e,t){let n=e[0]?.ts??null,r=e.at(-1)?.ts??null,o={code:"history_target_out_of_range",required:"Choose a target within the available item history.",why:"Point-in-time reads and restores can only reconstruct recorded versions.",examples:[],nextSteps:["Run pm history <id> to inspect available versions and timestamps."],valid_range:{first_version:null,last_version:null,first_timestamp:n,last_timestamp:r}};return r!==null&&(o.examples=[r],t!==null&&(o.examples.unshift(String(t+1),String(t+e.length)),o.valid_range.first_version=t+1,o.valid_range.last_version=t+e.length)),{guidance:o,lastTimestamp:r}}function Wp(e,t){let n={};if(t instanceof Error&&t.message.trim().length>0&&(n.reason=t.message.trim()),typeof t!="object"||t===null)return n;let r=t;if(typeof r.index=="number"&&Number.isInteger(r.index)&&r.index>=0&&(n.patchIndex=r.index),typeof r.operation=="object"&&r.operation!==null){let o=r.operation;Object.assign(n,Object.fromEntries(["op","path","from"].flatMap(i=>{let s=o[i];return typeof s=="string"?[[i,s]]:[]})))}if(n.patchIndex!==void 0){let o=e[n.patchIndex];o&&(n.op??=o.op,n.path??=o.path,n.from??=o.from)}return n}function ld(e,t,n={}){let r=e.trim(),o=n.errorSubject??"history",i=o==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=Up(t,en(t,!0));if(!r)throw new h(`Missing ${o} target. Use a timestamp or version number.`,b.USAGE,s);if(/^\d+$/.test(r)){let l=en(t),f=Number(r);if(f>=1&&f<=l)throw new h(`History version ${f} was pruned by compaction.`,b.USAGE,{...s,code:"history_version_pruned"});if(!Number.isSafeInteger(f)||f<1||f>l+t.length)throw new h(`${i} version must be between ${l+1} and ${l+t.length} for this item.`,b.USAGE,s);return{kind:"version",raw:r,historyIndex:f-l-1}}let c=Date.parse(r);if(!Number.isFinite(c))throw new h(`Invalid ${o} target "${e}". Use a positive version number or ISO timestamp.`,b.USAGE,s);let d=zp(t,c);if(d<0||n.allowFutureTimestamp!==!0&&c>Date.parse(a))throw new h(o==="restore"?`No history entries exist at or before timestamp ${r}.`:`No history entry exists at timestamp ${r}.`,b.USAGE,s);return{kind:"timestamp",raw:r,historyIndex:d}}function ki(e,t,n,r){let o=Je(e,t);if(o.ok)return o.document;let i=Wp(t,o.error),s=[`history_op=${r}`,i.patchIndex===void 0?null:`patch_index=${i.patchIndex}`,i.op?`op=${i.op}`:null,i.path?`path=${i.path}`:null,i.from?`from=${i.from}`:null].filter(a=>a!==null);throw new h(`Failed to apply history patch at entry ${n} (${s.join(", ")}). ${i.reason??String(o.error)}`,b.GENERIC_FAILURE)}function ud(e,t){let n=e[0];if(n&&n.op!=="create"&&n.op!=="history_compact_baseline"){let s=Je(yt,n.patch);if(!s.ok||typeof s.document.metadata.id!="string")throw new h("History starts without a reconstructable item baseline.",b.GENERIC_FAILURE,{code:"history_baseline_unavailable",required:"Recover the original create entry or a complete checkpoint from version control.",nextSteps:["Run pm history <id> --full to inspect the missing baseline."]})}let r=e.slice(0,t+1),o=we([...r]),i=structuredClone(yt);for(let s=0;s<=t;s+=1){let a=e[s];if(!a)throw new h(`History target entry ${s+1} does not exist.`,b.USAGE);i=ki(i,a.patch,s+1,a.op)}if(!o.ok)throw new h(`History cannot be replayed: ${o.errors.join(", ")}.`,b.GENERIC_FAILURE,{code:"history_replay_invalid",verification_errors:o.errors,required:"Inspect the history integrity findings before attempting recovery.",nextSteps:["Run pm history <id> --verify --full."]});return i}function oE(e,t){if(Object.keys(e.metadata).length>0){if(typeof e.metadata.id!="string"||!Array.isArray(e.metadata.tags))throw new h("History has no complete item baseline for this target.",b.GENERIC_FAILURE,{code:"history_baseline_unavailable",required:"Recover the original create entry or a complete checkpoint from version control.",nextSteps:["Run pm history <id> --full to inspect the first recorded state."]});return e}throw new h(`History target ${t.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,b.USAGE)}import Si from"node:fs/promises";import wr from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="658ab1c3-da92-5af6-a170-85ed7befaad6")}catch{}})();function Pe(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function Ti(e){let t=["--pm-path",e,"init","--defaults","--agent-guidance","skip"];return{suggested_retry:He(t),suggested_retry_args:t}}function vr(e){return new h(`Tracker root is not a directory at ${e}.`,b.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 Ii(e){return new h(`Tracker root is not readable at ${e}.`,b.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 Bp(e){let t=wr.resolve(e),n=wr.parse(t).root,r=wr.dirname(t);for(;r!==n;){let o;try{o=await Si.stat(r)}catch(i){if(Pe(i,"ENOTDIR"))throw vr(e);if(!Pe(i,"ENOENT"))throw i;r=wr.dirname(r);continue}if(!o.isDirectory())throw vr(e);return}}async function St(e){let t;try{t=await Si.stat(e)}catch(n){throw Pe(n,"ENOENT")?(await Bp(e),new h(`Tracker is not initialized at ${e}. Tracker root does not exist. Run pm init first.`,b.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:Ti(e)})):Pe(n,"ENOTDIR")?vr(e):Pe(n,"EACCES")||Pe(n,"EPERM")?Ii(e):n}if(!t.isDirectory())throw vr(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw Ii(e);try{await(await Si.opendir(e)).close()}catch(n){throw Pe(n,"EACCES")||Pe(n,"EPERM")?Ii(e):n}}async function Ci(e){if(await St(e),!await Fe(rt(e)))throw new h(`Tracker is not initialized at ${e}. Run pm init first.`,b.NOT_FOUND,{code:"tracker_not_initialized",reason:"settings_missing",resolved_path:e,nextSteps:["Initialize the selected tracker root with the emitted retry."],recovery:Ti(e)})}import Tt from"node:fs/promises";import{statSync as Vp}from"node:fs";(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]="be69f1e8-4543-5cf5-abb0-9d38ca1d0cc6")}catch{}})();function Gp(e,t){let n=-1,r=structuredClone(yt);for(let[a,c]of e.entries()){if(r=ki(r,c.patch,a+1,c.op),r.metadata.id!==void 0&&r.metadata.id!==t)throw new h(`History belongs to item ${String(r.metadata.id)}, expected ${t}.`,b.GENERIC_FAILURE,{code:"history_replay_invalid",required:"Recover the correct history stream for this item before attempting restoration."});r.metadata.id===t&&Array.isArray(r.metadata.tags)&&(n=a)}let o=en(e,!0),i=n<0||o===null?null:o+n+1,s=i===null?void 0:String(i);if(n>=0&&s===void 0){let a=e[n].ts;ld(a,e).historyIndex===n&&(s=a)}return{version:i,target:s}}async function fd(e,t,n){let r=new Set([Qe(t,n),zt(t)]);for(let o of r){let i=fe(e,o);if(!Vp(i,{throwIfNoEntry:!1})?.isFile())continue;let s=await be(i,o),a=-1;if(s.forEach((p,m)=>{p.op==="delete"&&(a=m)}),a<0)continue;let c=ud(s,s.length-1);if(Object.keys(c.metadata).length!==0)continue;let{version:d,target:l}=Gp(s,o),f=l===void 0?["history",o,"--verify"]:["get",o,"--at",l],_=He(f);return new h(`Item ${o} was deleted at ${s[a].ts}; its history is retained.`,b.NOT_FOUND,{code:"item_deleted",required:"Read a retained materialized version, then restore it if the item should exist again.",item_id:o,tombstone:{deleted:!0,deleted_at:s[a].ts,recoverable:l!==void 0,last_materialized_version:d},nextSteps:[_,...l===void 0?["Recover the pre-compaction history from version control."]:[He(["restore",o,l])]],recovery:{suggested_retry:_,suggested_retry_args:f}})}}import{AsyncLocalStorage as qp}from"node:async_hooks";import Kp 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]="53df109f-bd64-5879-96a6-39f70334910e")}catch{}})();var Xp=new qp;function md(e,t){for(let n of Xp.getStore()??[])n.pmRoot===Kp.resolve(e)&&n.id===t.metadata.id&&n.validate(t)}import Ai from"node:path";import _d from"node:fs";import tn from"node:path";import{createRequire as Yp}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]="19d9b802-1efa-5716-8176-ecbf5b153ff0")}catch{}})();var pd="@unbrained/pm-cli";var Oi=/\b(\d{4})\.(\d{1,2})\.(\d{1,2})(?:-(\d+))?\b/u,Ri="2026.8.31";function Er(e){let t=e.match(Oi);return t?[Number(t[1]),Number(t[2]),Number(t[3]),Number(t[4]??0)]:null}function Ir(e,t){let n=Er(e),r=Er(t);if(!n||!r)return null;for(let o=0;o<n.length;o+=1){let i=n[o]-r[o];if(i!==0)return Math.sign(i)}return 0}function xi(e){return Ir(e,Ri)!==-1?3:2}function kr(e){try{let t=JSON.parse(_d.readFileSync(e,"utf8"));return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:null}catch{return null}}function Jp(e){let t=[...e.matchAll(/(<=|<)\s*v?(\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?)/gu)].map(r=>({inclusive:r[1]==="<=",version:r[2]})),n=e.match(/\b\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?\s+-\s+v?(\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?)/u);return n?[...t,{inclusive:!0,version:n[1]}]:t}function Qp(e){let t=e.split("||").map(n=>Jp(n));return{bounded:t.some(n=>n.length>0),compatible:t.some(n=>n.every(r=>{let o=Ir(Ri,r.version);return o!==null&&(r.inclusive?o!==1:o===-1)}))}}function hd(e){return["dependencies","devDependencies","optionalDependencies","peerDependencies"].flatMap(t=>{let n=e[t];if(typeof n!="object"||n===null)return[];let r=n[pd];return typeof r=="string"?[r.trim()]:[]})}function Zp(e){return hd(e).flatMap(t=>{let n=/^[<!]/u.test(t)?void 0:t.match(Oi)?.[0];if(!n)return[];let r=/^(?:=|v)?\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?$/u.test(t),o=Qp(t);return[{version:n,constraint:r?"exact":o.bounded?"range":"minimum",...r?{}:{declaration:t},history_epoch_compatible:r?Ir(n,Ri)!==-1:o.compatible}]})}function eh(e){let t=kr(tn.join(e,"package-lock.json"))?.packages;if(typeof t!="object"||t===null)return;let n=t["node_modules/@unbrained/pm-cli"];if(typeof n!="object"||n===null)return;let r=n.version;return typeof r=="string"?r:void 0}function th(e,t){try{let n=_d.readFileSync(tn.join(e,t),"utf8").split(/\r?\n/u),r=n.findIndex(s=>s.includes(pd));if(r<0)return;let o=n[r].match(/^\s*/u)[0].length,i=[n[r]];for(let s=r+1;s<n.length;s+=1){let a=n[s],c=a.trim(),d=a.match(/^\s*/u)[0].length;if(c.length>0&&d<=o)break;i.push(a)}return i.join(`
|
|
166
|
+
`).match(/^\s*version(?::\s*|\s+)["']?(\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?)/mu)?.[1]??i[0].match(Oi)?.[0]}catch{return}}function nh(e){let t=[],n=kr(tn.join(e,"package.json"));n&&t.push(...Zp(n).map(i=>({...i,source:"package.json"})));let r=kr(tn.join(e,"node_modules","@unbrained","pm-cli","package.json"))?.version;typeof r=="string"&&Er(r)&&t.push({version:r,source:"installed-package",constraint:"exact",history_epoch_compatible:xi(r)===3});let o=eh(e);o&&Er(o)&&t.push({version:o,source:"package-lock.json",constraint:"exact",history_epoch_compatible:xi(o)===3});for(let i of["pnpm-lock.yaml","yarn.lock"]){let s=th(e,i);s&&t.push({version:s,source:i,constraint:"exact",history_epoch_compatible:xi(s)===3})}return t}function yd(e,t){if(t<=1)return;let{minVersion:n,lt:r}=Yp(import.meta.url)("semver"),o=hd(kr(tn.join(e,"package.json"))??{}).find(s=>{try{let a=n(s);return a!==null&&r(a,"2026.10.10")}catch{return!1}}),i=o===void 0?nh(e).find(s=>Ir(s.version,"2026.10.10")===-1):{version:o,source:"package.json"};if(i)throw new h(`The project selects pm ${i.version}, which cannot safely refuse item format ${t}.`,b.CONFLICT,{code:"project_runtime_item_format_incompatible",reason:i.source,required:"Upgrade project pins, installed SDKs, CI hosts and Git merge drivers before writing guarded item formats.",nextSteps:["Use a pm runtime supporting the required item format throughout the project; preserve original item and history bytes, and never re-anchor history to satisfy an older host."]})}import{isUtf8 as rh}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]="018adb6c-4e3c-58d5-b636-04dbf4307d7a")}catch{}})();async function oh(e){try{return await Tt.access(e),!0}catch{return!1}}function ih(e,t){e&&(e.includes(t)||e.push(t))}function gd(e){return e??dn(me())}function sh(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}async function Sr(e,t,n="pm-",r,o=je){let i=t.trim(),s=i.startsWith("#")?i.slice(1):i;if(s.length===0)return null;let a=Qe(t,n),c=zt(t),d=[...new Set([s,a,c])].filter(_=>_.length>0),l=Object.entries(o),f=sh(r);for(let _ of d){let p=new Map;for(let[m]of l)for(let w of f){let g=Rr(e,m,_,w,o);await oh(g)&&p.set(g,p.get(g)??{id:_,type:m,itemPath:g,item_format:w})}if(p.size>1){let m=[...p.keys()].map(w=>Ai.relative(e,w).split(Ai.sep).join("/")).sort();throw new h(`Item ${_} has ambiguous identity across ${m.join(", ")}. Preserve both documents and inspect pm ops validate --check-storage-integrity before resolving the collision.`,b.CONFLICT,{code:"item_identity_ambiguous",item_id:_,paths:m})}for(let m of p.values())return m}return null}async function Tr(e,t={}){let n=await ah(e,t);if(n.error!==null)throw n.error;return{raw:n.raw,document:n.document}}async function ah(e,t={}){let n=await Tt.readFile(e.itemPath);if(!rh(n))throw new h("Item contains invalid UTF-8; preserve a binary backup before recovering it.",b.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 ke({path:e.itemPath,scope:"project"});let o;try{o=On(r,{format:e.item_format,requireSupportedFormat:!0,schema:t.schema,extensionFieldNames:gd(t.extensionFieldNames),onWarning:i=>ih(t.warnings,i)})}catch(i){if(i instanceof h&&i.code==="item_format_version_unsupported")throw new h(`Item ${e.id}: ${i.message}`,i.exitCode,{...i.context,item_id:e.id,item_path:e.itemPath});if(i instanceof h&&i.code==="item_document_invalid")return{raw:r,document:null,error:new h(`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 ch(e,t,n=je,r,o){await St(e);let i=await yc(e,t,n,r,o);return Kn(i.length),i.map(s=>s.metadata)}async function bd(e,t,n=je,r,o){await St(e);let i=await gc(e,t,n,r,o);return Kn(i.length),i.map(s=>s.metadata)}async function ck(e,t,n=je,r,o,i={}){await St(e);let s=await sr(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan});return Kn(s.length),s.map(a=>({...a.metadata,body:a.body}))}function wd(e){return{async get(t){let n=await Sr(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await Tr(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>ch(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function dh(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await Tt.readdir(Ai.join(e,o));for(let s of i)for(let a of un)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function lh(e,t,n,r){let o=Qe(t,n),i=await dh(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(a=>({id:a,distance:nn(a,o,s)})).filter(a=>a.distance!==null).sort((a,c)=>a.distance-c.distance).slice(0,3).map(a=>a.id)}async function uh(e,t,n,r){let o=await fd(e,t,n);if(o)return o;let i=await lh(e,t,n,r),s=["Confirm the active --path/PM_PATH scope, then retry with a valid id."];return i.length>0&&s.unshift(`Did you mean one of: ${i.join(", ")}?`),new h(`Item ${t} not found`,b.NOT_FOUND,{nextSteps:s})}function fh(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 vd(e){let t=e.typeToFolder??ln(e.settings,me()).type_to_folder,n=await Sr(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await uh(e.pmRoot,e.id,e.settings.id_prefix,t);let r=await V(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 Tr(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||a,d=Ms(e.author),l=br(e.settings);if(a&&c!==d&&!e.force&&!fh(e.op,e.bypassAssigneeConflict)){if(l.ownership_enforcement==="strict")throw new h(`Item ${n.id} is assigned to ${a}. Use --force to override.`,b.CONFLICT);l.ownership_enforcement==="warn"&&o.push(`ownership_warning:assignee_conflict:${n.id}:${a}`)}return{typeToFolder:t,located:n,originalRaw:i,document:s,warnings:o,releaseLock:r}}catch(o){throw await r(),o}}function mh(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 _h(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await q(e.originalItemPath,e.originalRaw),await Tt.rm(e.effectiveTargetItemPath,{force:!0});return}await q(e.originalItemPath,e.originalRaw)}}async function Ed(e){yn(e.op);let t=await vd({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{md(e.pmRoot,i);let c=ne(i,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),d=ne(structuredClone(i),{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),l=await e.mutate(d);if(e.skipNoop===!0&&l.changedFields.length===0)return{item:c.metadata,body:c.body,changedFields:[],warnings:[...s,...l.warnings??[]]};let f=e.resolveHistoryContext?.(),_=Math.max(ao(c.metadata),ao(d.metadata));yd(Qi(e.pmRoot),_),_>Nt(d.metadata)&&(d.metadata.pm_format_version=_,l.changedFields.push("pm_format_version")),d.metadata.updated_at=Ie();let p=ne(d,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),m=await Ho({pmRoot:e.pmRoot,settings:e.settings,operation:e.op,author:e.author,before:c,after:p});await Nr({pm_root:e.pmRoot,operation:e.op,before:c,after:p,changed_fields:l.changedFields,sdk:wd({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let w=await Ei({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),g="toon",S=ra(p,{format:g,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),A=Rr(e.pmRoot,p.metadata.type,r.id,g,n),N=fe(e.pmRoot,r.id),z=await Dt("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:A,history_path:N,item_format:g,before:c,after:p,contents:S}),{effectiveTargetItemPath:x,effectiveSerializedAfter:oe,skipItemWrite:U}=mh(z,A,S),Z=await Yo(e.pmRoot,e.author),B=[];try{U||await q(x,oe),!U&&x!==r.itemPath&&await Tt.rm(r.itemPath);let te=pt({nowIso:p.metadata.updated_at,author:e.author,op:e.op,before:c,after:p,message:e.message,context:m.decisions.length===0?f:{...f,workflow_policies:m.decisions}});try{await ht(N,te)}catch(tt){throw await _h({skipItemWrite:U,effectiveTargetItemPath:x,originalItemPath:r.itemPath,originalRaw:o}),tt}U||(B=await Jo({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:x,previousItemPath:r.itemPath,document:p}))}finally{await Z()}let ee=[...await _e({path:x,scope:"project",op:e.op,item_id:p.metadata.id,item_type:p.metadata.type,before:c,after:p,changed_fields:l.changedFields}),...await _e({path:N,scope:"project",op:`${e.op}:history`,item_id:p.metadata.id,item_type:p.metadata.type,before:c,after:p,changed_fields:l.changedFields})];return Dr({id:p.metadata.id,op:e.op,item_type:p.metadata.type,previous_status:c.metadata.status,status:p.metadata.status,previous:_n(c.metadata,l.changedFields),current:_n(p.metadata,l.changedFields),changed_fields:l.changedFields}),{item:p.metadata,body:p.body,changedFields:l.changedFields,warnings:[...s,...l.warnings??[],...m.warnings,...w.warnings,...z.warnings,...B,...ee]}}finally{await a()}}async function dk(e){return Ed(e)}async function lk(e){return Ed(e)}async function uk(e){let t=await vd({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=gd(void 0),c=ne(o,{schema:e.settings.schema,extensionFieldNames:a}),d=await Ho({pmRoot:e.pmRoot,settings:e.settings,operation:"delete",author:e.author,before:c,after:null,dryRun:e.dryRun});await Nr({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:wd({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let l=await Ei({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),f=Ie(),_=Me,p=pt({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=fe(e.pmRoot,n.id),w=await Dt("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(w.handled&&typeof w.result=="object"&&w.result!==null){let x=w.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,...l.warnings,...w.warnings]};let A=await Yo(e.pmRoot,e.author),N=[];try{S||await Tt.rm(g);try{await ht(m,p)}catch(x){throw S||await q(g,r),x}S||(N=await Jo({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:g,document:null}))}finally{await A()}let z=[...await _e({path:g,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:_,changed_fields:["deleted"]}),...await _e({path:m,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:_,changed_fields:["deleted"]})];return Dr({id:c.metadata.id,op:"delete",item_type:c.metadata.type,previous_status:c.metadata.status,previous:_n(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...i,...d.warnings,...l.warnings,...w.warnings,...N,...z]}}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]="620bf4e4-e6d1-5520-89e4-0859f57c7afe")}catch{}})();var ph=["tree","graph","context"],hh=["none","repeated"],yh=["outgoing","incoming","both"],gh=32,bh=200,wh=400,vh=16e3;function Eh(e){let t=e?.trim().toLowerCase()??"tree";if(ph.includes(t))return t;throw new h(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,b.USAGE)}function Ct(e,t){if(e===void 0)return;let n=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(n)||n<1)throw new h(`Invalid --${t} value "${e}". Use a positive integer.`,b.USAGE);return n}function Id(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new h(`Invalid --max-depth value "${e}". Use a non-negative integer.`,b.USAGE);return t}function kh(e){let t=e?.trim().toLowerCase()??"none";if(hh.includes(t))return t;throw new h(`Invalid --collapse value "${e}". Use "none" or "repeated".`,b.USAGE)}function Ih(e){let t=e?.trim().toLowerCase()??"both";if(yh.includes(t))return t;throw new h(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,b.USAGE)}function Sh(e,t=ue()){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 h(`Invalid --kind value "${o}". Registered kinds: ${s}.`,b.USAGE)}r.add(i.kind)}return[...r].sort()}function Th(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 Ch(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:Th(e.dependencies)}}function xh(e){return pn(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function Oh(e,t,n,r,o,i,s,a,c){for(let d of t.dependencies){let l=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+l>=a.tokenBudget){e.truncated=!0,a.reasons.add("token_budget");break}a.edges+=1,a.estimatedTokens+=l,e.dependencies.push(Sd(d.id,n,r,o,i,s,a,c+1,d.kind))}}function Rh(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 Sd(e,t,n,r,o,i,s,a=0,c){let d=e.trim().toLowerCase(),l=t.get(d),f={id:l?.id??e,title:l?.title,type:l?.type,status:l?.status,via:c,missing:!l,cycle:n.has(d),dependencies:[]};if(s.nodes+=1,s.estimatedTokens+=xh(f),Rh(f,l,d,r,o,i,s,a))return f;o==="repeated"&&i.add(d);let _=new Set(n);return _.add(d),Oh(f,l,t,_,r,o,i,s,a),f}function kd(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 Ah(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,kd(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,kd(t.get(c.id),{id:c.id,title:c.title,type:c.type,status:c.status,missing:c.missing}));let d=c.via??"related",l=`${a.id}::${c.id}::${d}`;n.has(l)||n.set(l,{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 l=a.to.localeCompare(c.to);return l!==0?l: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 Td(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++],l=d.id.trim().toLowerCase();r.add(l);let f=t.get(l);if(!f){i.add(l);continue}if(!(n!==void 0&&d.depth>=n)&&!s.has(l)){s.add(l);for(let _ of f.dependencies)o.add(`${l}::${_.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 Dh(e,t=ue()){let n=Id(e.maxDepth),r=Ct(e.nodeLimit,"node-limit"),o=Ct(e.edgeLimit,"edge-limit"),i=Ct(e.tokenBudget,"token-budget"),s=Sh(e.kind,t);return{direction:Ih(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 Nh(e,t,n,r){return Rc(e.graph,t,e.details.map(o=>o.id===t&&r.length>0?{...o,evidence:r}:o),n)}function Di(e,t,n,r){for(let o of n.slice(0,r)){let i=o?.trim();i&&e.push(`${t}:${i}`)}}async function Lh(e,t,n,r){let o=await Sr(e,t,n.id_prefix,n.item_format,r);if(!o)return[];let{document:i}=await Tr(o,{schema:n.schema}),s=i.metadata,a=s.files??[],c=s.tests??[],d=s.docs??[],l=[["files",a.length],["tests",c.length],["docs",d.length],["comments",(s.comments??[]).length],["notes",(s.notes??[]).length],["learnings",(s.learnings??[]).length]];if(l.every(([,_])=>_===0))return[];let f=[`linked:${l.map(([_,p])=>`${_}=${p}`).join(",")}`];return Di(f,"file",a.map(_=>_.path),3),Di(f,"test",c.map(_=>_.command??_.path),2),Di(f,"doc",d.map(_=>_.path),2),f}function Ph(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 jh(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 Cd(e,t,n){let r;for(;;){let o=pn(new TextEncoder().encode(Mr(Pr("deps",e),t)).byteLength);if(o===r)return o;n(o),r=o}}function Mh(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function Fh(e){try{return Nh(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&Mh(t))return e.smallestResult;throw t}}function $h(e){let{assembly:t,canonicalId:n,contextOptions:r,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:a,missingReferences:c}=e,d=r.edgeLimit??40,l=r.tokenBudget,f,_;for(;;){let p=Fh({assembly:t,canonicalId:n,contextOptions:r,internalTokenBudget:l,rootEvidence:o,smallestResult:_});if("format"in p)return p;let m=p;f??=m.meta.tokenBudget,l??=f;let w=Ph({canonicalId:n,context:m,missingCount:a,missingReferences:c,referenceLimit:d,summaryOnly:i});if(_=w,i||(m.meta.tokenBudget=f,m.meta.usedTokens=Cd(xt(w,!1),s,A=>{m.meta.usedTokens=A}),m.meta.usedTokens<=f))return w;if(d>0){d-=1;continue}let g=l,S=g*f/m.meta.usedTokens;l=Math.min(g-1,Math.max(1,Math.floor(S*.9)))}}function Hh(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:o,summaryOnly:i,outputFormat:s}=e,a=Dh(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(w=>t.missingIdSet.has(w.toLowerCase())),l=new Set(d.map(w=>w.toLowerCase())),f=t.graph.registry(),_=a.kinds?new Set(a.kinds.map(w=>f.require(w).kind)):void 0,p=new Set([n,...c.value]),m=[...t.dangling.active,...t.dangling.legacy_terminal].filter(w=>jh({row:w,missingReachableSet:l,packetIds:p,filteredKinds:_,registry:f}));return $h({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:d.length,missingReferences:m})}function zh(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 Uh(e,t,n,r,o,i,s){let a=o??gh,c=Ct(n.nodeLimit,"node-limit")??bh,d=Ct(n.edgeLimit,"edge-limit")??wh,l=Ct(n.tokenBudget,"token-budget")??vh,f={nodeLimit:c,edgeLimit:d,tokenBudget:l,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},_=Sd(e,r,new Set,a,t==="graph"?"repeated":i,new Set,f),p=Td(e,r,void 0),m;for(;;){let w=Ah(_),g=f.reasons.size===0?void 0:{reasons:[...f.reasons].sort(),limits:{max_depth:a,node_limit:c,edge_limit:d,token_budget:l},estimated_tokens:0,total_node_count:p.node_count,total_edge_count:p.edge_count,omitted_node_count:Math.max(0,p.node_count-w.nodes.length),omitted_edge_count:Math.max(0,p.edge_count-w.edges.length)},S={id:e,format:t,node_count:w.nodes.length,edge_count:w.edges.length,edge_basis:"deduplicated_directed",missing_count:w.missing_ids.length,...g?{truncation:g}:{}};if(m=t==="tree"?{...S,tree:_}:{...S,graph:w},(m.truncation===void 0?pn(new TextEncoder().encode(Mr(Pr("deps",xt(m,!1)),s)).byteLength):Cd(xt(m,!1),s,A=>{m.truncation.estimated_tokens=A}))<=l)return m;if(!zh(_))return f.reasons.add("token_budget"),m;f.reasons.add("token_budget")}}function xt(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 Dk(e,t,n){let r=Ji(process.cwd(),n.path);await Ci(r);let o=Eh(t.format),i=Id(t.maxDepth),s=kh(t.collapse);ds(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await cd(r),d=ln(c,me()),l=await bd(r,c.item_format,d.type_to_folder,void 0,c.schema),f=mn(c.schema),_=new Map(l.map(m=>[m.id.trim().toLowerCase(),Ch(m)])),p=oi(l,m=>ge(m,f));for(let m of[...p.active,...p.legacy_terminal]){let w=_.get(m.holder_id.trim().toLowerCase()),g=m.kind.trim().toLowerCase();w&&!w.dependencies.some(S=>S.id.trim().toLowerCase()===m.target_id.trim().toLowerCase()&&S.kind===g)&&w.dependencies.push({id:m.target_id,kind:g})}if(!_.has(e.trim().toLowerCase()))throw new h(`Item ${e} not found`,b.NOT_FOUND);if(o==="context"){let m=_.get(e.trim().toLowerCase()).id,w=a?[]:await Lh(r,m,c,d.type_to_folder),g=N=>ge(N,f),S=de(),A=Oc().lookup(r,Cc(l,g,S),()=>ur(l,g,S));return xt(Hh({assembly:A.assembly,canonicalId:m,options:t,rootEvidence:w,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,A.assembly.legacyAliasCounts)}return a?xt({id:e,format:o,...Td(e,_,i)},!0,Object.fromEntries(Object.entries(ur(l,m=>ge(m,f)).legacyAliasCounts))):xt(Uh(e,o,t,_,i,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(ur(l,m=>ge(m,f)).legacyAliasCounts)))}export{li as a,ze as b,$r as c,Bh as d,Vh as e,vs as f,Br as g,ey as h,ty as i,ny as j,ry as k,oy as l,iy as m,Zr as n,eo as o,Os as p,py as q,hy as r,yy as s,gy as t,by as u,wy as v,oo as w,Ls as x,vy as y,Ey as z,ky as A,al as B,Ms as C,Fs as D,Ty as E,dl as F,$s as G,Ve as H,Ce as I,Ws as J,Lt as K,Fy as L,$y as M,io as N,so as O,ao as P,Nt as Q,Hs as R,ll as S,xy as T,kn as U,at as V,ge as W,Sn as X,fu as Y,xn as Z,On as _,ra as $,ne as aa,Fu as ba,be as ca,ut as da,rf as ea,xg as fa,Og as ga,Rg as ha,yf as ia,Fn as ja,Xe as ka,Ht as la,eb as ma,Po as na,zn as oa,La as pa,tb as qa,Ma as ra,nb as sa,pt as ta,ht as ua,oa as va,yt as wa,Un as xa,fb as ya,Mo as za,Wn as Aa,mb as Ba,_b as Ca,Ua as Da,Je as Ea,Va as Fa,we as Ga,Wf as Ha,pb as Ia,hb as Ja,bt as Ka,Vn as La,jb as Ma,Mb as Na,Ja as Oa,Za as Pa,Fb as Qa,_v as Ra,Ne as Sa,Pv as Ta,tp as Ua,br as Va,gr as Wa,Dp as Xa,ad as Ya,cd as Za,jv as _a,zv as $a,Ei as ab,Hp as bb,qa as cb,zt as db,Qe as eb,kb as fb,en as gb,ld as hb,ki as ib,ud as jb,oE as kb,Zf as lb,tm as mb,nm as nb,rm as ob,om as pb,Ho as qb,tw as rb,nh as sb,yd as tb,cw as ub,dw as vb,lw as wb,fc as xb,bm as yb,Yo as zb,kw as Ab,Jo as Bb,sr as Cb,St as Db,Ci as Eb,Sr as Fb,Tr as Gb,ah as Hb,ch as Ib,bd as Jb,ck as Kb,wd as Lb,uh as Mb,dk as Nb,lk as Ob,uk as Pb,Zo as Qb,Jm as Rb,Xt as Sb,cr as Tb,wc as Ub,Qm as Vb,Zm as Wb,e_ as Xb,r_ as Yb,Bw as Zb,Vw as _b,__ as $b,de as ac,Mw as bc,lr as cc,Fw as dc,f_ as ec,$w as fc,Jt as gc,h_ as hc,g_ as ic,oi as jc,b_ as kc,Qw as lc,ur as mc,Cc as nc,ii as oc,Oc as pc,rv as qc,Rc as rc,Ct as sc,Id as tc,Ih as uc,Sh as vc,Dk as wc};
|
|
167
|
+
//# sourceMappingURL=chunk-SEL4Z2OO.js.map
|