@unbrained/pm-cli 2026.8.8 → 2026.8.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +59 -0
- package/dist/cli/commander-usage.js +17 -12
- package/dist/cli/help-json-payload.js +51 -16
- package/dist/cli/main.js +7 -6
- package/dist/cli-bundle/bundle-manifest.json +162 -162
- package/dist/cli-bundle/chunks/chunk-2QYH4QMI.js +30 -0
- package/dist/cli-bundle/chunks/{chunk-2ZMXX3Q6.js → chunk-EBO7OUUE.js} +70 -70
- package/dist/cli-bundle/chunks/{chunk-NUXRRNAB.js → chunk-ETML5C6H.js} +48 -48
- package/dist/cli-bundle/chunks/chunk-JUDU4RO4.js +194 -0
- package/dist/cli-bundle/chunks/chunk-JZSNADRR.js +5 -0
- package/dist/cli-bundle/chunks/chunk-MENWVGJW.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-ALDHXLPS.js → chunk-S4EITGLA.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-TIGKWVLA.js +13 -0
- package/dist/cli-bundle/chunks/{chunk-CBLA33YK.js → chunk-TRWXF476.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-TSLDTJLQ.js +2 -0
- package/dist/cli-bundle/chunks/{register-list-query-WFZAMJHZ.js → register-list-query-OJ6ZXKV4.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-SOKKOTHQ.js → register-mutation-DKI7QC7O.js} +2 -2
- package/dist/cli-bundle/chunks/register-operations-P5OGMT6I.js +2 -0
- package/dist/cli-bundle/chunks/{register-setup-2HL5ZHMK.js → register-setup-S3KT2LTH.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-ANTMGYLI.js → chunk-2COZ67XT.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-2EXI2DKR.js +4 -0
- package/dist/cli-bundle/focused-chunks/{chunk-YSAHYUXX.js → chunk-34SX654S.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-36FTZ2NT.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-3CQECMKR.js +16 -0
- package/dist/cli-bundle/focused-chunks/chunk-75774JWP.js +6 -0
- package/dist/cli-bundle/focused-chunks/chunk-7UN6BHHO.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-TCSAPH33.js → chunk-CHIBMEZR.js} +6 -6
- package/dist/cli-bundle/focused-chunks/chunk-DZGAHZZV.js +3 -0
- package/dist/cli-bundle/focused-chunks/chunk-FF4MNAYB.js +153 -0
- package/dist/cli-bundle/focused-chunks/chunk-GHTN2ILR.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-I4YM2I7S.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-IMDTEN7K.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-IW43E4XL.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-JMVA4HKR.js +5 -0
- package/dist/cli-bundle/focused-chunks/{chunk-PL2EYDJK.js → chunk-KR5RVXLQ.js} +31 -29
- package/dist/cli-bundle/focused-chunks/chunk-KSNJG4KI.js +16 -0
- package/dist/cli-bundle/focused-chunks/chunk-M6RPIXKC.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-MXYSIQ56.js +18 -0
- package/dist/cli-bundle/focused-chunks/chunk-RIIN5V4N.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-RKWSCYYN.js +2 -0
- package/dist/cli-bundle/main.js +13 -13
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +1 -1
- package/dist/cli-bundle/sdk-core.js +38 -38
- 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 +1 -1
- 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 +2 -2
- package/dist/core/diagnostics/remediation.js +19 -9
- package/dist/core/fs/fs-utils.d.ts +10 -0
- package/dist/core/fs/fs-utils.js +16 -4
- package/dist/core/history/history.js +13 -4
- package/dist/core/item/actionability.d.ts +7 -1
- package/dist/core/item/actionability.js +71 -15
- package/dist/core/item/item-format.js +3 -32
- package/dist/core/schema/fields-file.d.ts +1 -2
- package/dist/core/schema/fields-file.js +4 -11
- package/dist/core/schema/runtime-schema.js +3 -10
- package/dist/core/schema/status-defs-file.d.ts +1 -2
- package/dist/core/schema/status-defs-file.js +4 -32
- package/dist/core/schema/status-token.d.ts +2 -0
- package/dist/core/schema/status-token.js +32 -0
- package/dist/core/schema/type-workflows.d.ts +1 -2
- package/dist/core/schema/type-workflows.js +4 -11
- package/dist/core/shared/author.d.ts +25 -0
- package/dist/core/shared/author.js +128 -10
- package/dist/core/shared/errors.d.ts +4 -0
- package/dist/core/shared/errors.js +2 -2
- package/dist/core/shared/text-normalization.d.ts +1 -1
- package/dist/core/shared/text-normalization.js +2 -2
- package/dist/sdk/actionability.d.ts +1 -1
- package/dist/sdk/actionability.js +3 -3
- package/dist/sdk/agent/command-recovery.d.ts +4 -0
- package/dist/sdk/agent/command-recovery.js +52 -0
- package/dist/sdk/agent/command-suggestions.d.ts +4 -0
- package/dist/sdk/agent/command-suggestions.js +67 -0
- package/dist/sdk/agent/create-option-policy.d.ts +12 -0
- package/dist/sdk/agent/create-option-policy.js +32 -0
- package/dist/sdk/agent/item-addressing.d.ts +19 -0
- package/dist/sdk/agent/item-addressing.js +208 -0
- package/dist/sdk/cli-bootstrap.d.ts +1 -1
- package/dist/sdk/cli-bootstrap.js +20 -5
- package/dist/sdk/cli-contracts/commander-mutation-options.js +16 -4
- package/dist/sdk/cli-contracts/flag-contracts.js +62 -21
- package/dist/sdk/cli-contracts/registration-helpers.js +10 -2
- package/dist/sdk/cli-contracts/runtime-contracts.d.ts +8 -0
- package/dist/sdk/cli-contracts/runtime-contracts.js +20 -3
- package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +6 -0
- package/dist/sdk/cli-contracts/tool-option-contracts.js +4 -2
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +19 -4
- package/dist/sdk/cli-contracts/tool-schema.js +17 -4
- package/dist/sdk/context-intent-runtime.js +8 -5
- package/dist/sdk/context-signal-store.d.ts +34 -0
- package/dist/sdk/context-signal-store.js +24 -2
- package/dist/sdk/core-governance.d.ts +1 -1
- package/dist/sdk/core-governance.js +3 -3
- package/dist/sdk/dependencies.d.ts +2 -0
- package/dist/sdk/dependencies.js +7 -6
- package/dist/sdk/dependency-flag-validation.d.ts +15 -1
- package/dist/sdk/dependency-flag-validation.js +54 -2
- package/dist/sdk/extension/bundled-catalog.js +19 -6
- package/dist/sdk/generated-error-code-catalog.js +110 -2
- package/dist/sdk/governance/health.js +38 -12
- package/dist/sdk/governance/provenance-health.d.ts +39 -0
- package/dist/sdk/governance/provenance-health.js +185 -0
- package/dist/sdk/governance/validate-item-reader.d.ts +13 -0
- package/dist/sdk/governance/validate-item-reader.js +18 -0
- package/dist/sdk/governance/validate.d.ts +2 -2
- package/dist/sdk/governance/validate.js +25 -11
- package/dist/sdk/governance.d.ts +1 -0
- package/dist/sdk/governance.js +3 -2
- package/dist/sdk/graph/assembly.d.ts +4 -0
- package/dist/sdk/graph/assembly.js +22 -2
- package/dist/sdk/graph/run.d.ts +2 -0
- package/dist/sdk/graph/run.js +3 -2
- package/dist/sdk/index.d.ts +4 -0
- package/dist/sdk/index.js +6 -2
- package/dist/sdk/lifecycle/close.js +27 -19
- package/dist/sdk/lifecycle/create.d.ts +2 -0
- package/dist/sdk/lifecycle/create.js +66 -19
- package/dist/sdk/lifecycle/plan.js +6 -3
- package/dist/sdk/lifecycle/update-many.js +39 -27
- package/dist/sdk/lifecycle/update.d.ts +6 -1
- package/dist/sdk/lifecycle/update.js +51 -28
- package/dist/sdk/merge/driver.d.ts +2 -1
- package/dist/sdk/merge/driver.js +7 -4
- package/dist/sdk/merge/index.d.ts +1 -1
- package/dist/sdk/merge/index.js +3 -3
- package/dist/sdk/merge/install.d.ts +4 -0
- package/dist/sdk/merge/install.js +29 -17
- package/dist/sdk/merge/receipts.d.ts +17 -1
- package/dist/sdk/merge/receipts.js +112 -20
- package/dist/sdk/merge/reconcile.js +21 -4
- package/dist/sdk/merge/three-way.d.ts +6 -2
- package/dist/sdk/merge/three-way.js +24 -10
- package/dist/sdk/output-projection.js +24 -4
- package/dist/sdk/query/context.d.ts +2 -0
- package/dist/sdk/query/context.js +7 -4
- package/dist/sdk/query/get.d.ts +11 -0
- package/dist/sdk/query/get.js +37 -3
- package/dist/sdk/query/light-metadata.d.ts +3 -0
- package/dist/sdk/query/light-metadata.js +19 -0
- package/dist/sdk/read-output-contracts.d.ts +1 -1
- package/dist/sdk/read-output-contracts.js +23 -4
- package/dist/sdk/relationship-kinds/contract.d.ts +48 -0
- package/dist/sdk/relationship-kinds/contract.js +22 -0
- package/dist/sdk/relationships.d.ts +6 -41
- package/dist/sdk/relationships.js +12 -126
- package/dist/sdk/runtime-primitives.d.ts +1 -1
- package/dist/sdk/runtime-primitives.js +3 -3
- package/dist/sdk/runtime.d.ts +4 -1
- package/dist/sdk/runtime.js +8 -3
- package/dist/sdk/schema-migration.js +7 -9
- package/dist/sdk/similarity-scoring.d.ts +1 -2
- package/dist/sdk/similarity-scoring.js +4 -16
- package/dist/sdk/similarity.d.ts +5 -0
- package/dist/sdk/similarity.js +40 -10
- package/dist/sdk/structured-mutations.js +5 -2
- package/dist/sdk/test/linked-command-detection.d.ts +2 -7
- package/dist/sdk/test/linked-command-detection.js +22 -9
- package/dist/sdk/workspace-snapshot.d.ts +4 -0
- package/dist/sdk/workspace-snapshot.js +24 -11
- package/docs/AGENT_GUIDE.md +5 -2
- package/docs/COMMANDS.md +27 -6
- package/docs/DEPENDENCY_KIND_CONTRACT.md +29 -0
- package/docs/ITEM_READ_PROJECTIONS.md +26 -0
- package/docs/MERGE_SAFETY.md +17 -8
- package/docs/README.md +2 -5
- package/docs/READ_OUTPUT_CONTRACTS.md +2 -2
- package/docs/RELATIONSHIP_GRAPH.md +1 -1
- package/docs/SDK.md +33 -8
- package/docs/SDK_AGENT_SESSION_CONTEXT.md +36 -2
- package/docs/SDK_CONTEXT.md +97 -0
- package/docs/SDK_CONTEXT_INTEGRITY.md +33 -3
- package/docs/SENTRY_CONTRACT_EPOCHS.md +20 -0
- package/docs/agent-task-token-baseline.json +2 -2
- package/marketplace.json +2 -2
- package/package.json +5 -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-codex/.codex-plugin/plugin.json +1 -1
- package/sdk/public-surface.json +415 -43
- package/dist/cli-bundle/chunks/chunk-GKA54IJM.js +0 -5
- package/dist/cli-bundle/chunks/chunk-KRY7SRUO.js +0 -2
- package/dist/cli-bundle/chunks/chunk-MNJ4NNSY.js +0 -26
- package/dist/cli-bundle/chunks/chunk-OJPCFDDY.js +0 -13
- package/dist/cli-bundle/chunks/chunk-PFSD3DAN.js +0 -194
- package/dist/cli-bundle/chunks/chunk-SQ7QZFQ6.js +0 -2
- package/dist/cli-bundle/chunks/register-operations-5XQETS6E.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-54EU2UVO.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-5FLBTZJQ.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-5GJ57YKN.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-CMDS3KYT.js +0 -14
- package/dist/cli-bundle/focused-chunks/chunk-DMKOMTTY.js +0 -6
- package/dist/cli-bundle/focused-chunks/chunk-F5B3HBEZ.js +0 -5
- package/dist/cli-bundle/focused-chunks/chunk-FI6DWU2M.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-FNOKJG6N.js +0 -16
- package/dist/cli-bundle/focused-chunks/chunk-FPDYXZBK.js +0 -4
- package/dist/cli-bundle/focused-chunks/chunk-GWI6YIKJ.js +0 -3
- package/dist/cli-bundle/focused-chunks/chunk-HCUC62AB.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-HGNKPSCB.js +0 -153
- package/dist/cli-bundle/focused-chunks/chunk-IAS7PMLG.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-SM2PJGP3.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-U646T7Z6.js +0 -18
- package/dist/cli-bundle/focused-chunks/chunk-YKPE4PPY.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-ZOLDTUU7.js +0 -2
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import{E as Mr,Ha as ht,J as yt,Ja as ze,La as Ue,Ma as He,N as _n,O as pn,Oa as qr,P as yn,Pa as Vr,Q as $e,Qa as Gr,R as Lr,Ra as Xr,Sa as Kr,Ta as Jr,X as Pr,Y as jr,a as Sr,h as _t,o as Nr,p as pt,r as me,s as W,sa as Fr,t as Fe,ta as $r,ua as zr,va as Ur,wa as Hr,xa as Wr,y as Dr,ya as Br}from"./chunk-2EXI2DKR.js";import{C as ft,D as mt,E as mn,G as Ar,R as fe,S as re,T as Rr,W as b,X as je,Y as I,Z as T,aa as G,ba as Ee,ca as _e,da as E,n as dt,o as Ir,p as xr,q as Tr,r as Or,v as lt,w as ut,x as Cr}from"./chunk-GHTN2ILR.js";import{AsyncLocalStorage as ys}from"node:async_hooks";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="16109ee9-e684-5d25-a5f4-30a6c4f62bd5")}catch{}})();var hn=new ys,Yr=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function gt(e,t){let n=typeof e=="string"?e.trim():"";return n.length>0?n.slice(0,t):void 0}function pe(e,t){if(e===void 0)return;let n=typeof e=="object"&&e!==null?e:{},r=gt(n.id,128),o=gt(n.parent_id,128);if(r===void 0||!Yr.test(r)||o!==void 0&&!Yr.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=gt(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function ke(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=gt(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function hs(e,t,n){let r=hn.getStore(),o=ke({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=pe(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={...ke(r?.provenance),...o,...ke(e?.provenance)},a=pe(e?.episode,!1)??pe(n,!1)??i??pe(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 gn(e,t){return hs(e.session_context,t,e.client_info?.episode)??{}}function Hu(e,t){let n=hn.getStore(),r=pe(e.episode,!0),o=pe(n?.episode,!1),i=r!==void 0&&r.parent_id===void 0&&o!==void 0?{...r,parent_id:o.id}:r,s={...ke(n?.provenance),...ke(e.provenance)};return hn.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function Wu(e){let t=ke(e.provenance),n=pe(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 En}from"node:async_hooks";import{createHash as gs}from"node:crypto";import bt from"node:fs";import bs from"node:os";import Qr 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]="6c075a14-1a65-59c7-a9c6-af348e30f821")}catch{}})();var kn=["model","effort","role","topic","version"],Et=new En,Zr=new En,kt=new En,ws=[{harness:"claude-code",environment_keys:["CLAUDE_CODE","CLAUDECODE"],model_environment_keys:["ANTHROPIC_MODEL","CLAUDE_MODEL"],session_environment_keys:["CLAUDE_CODE_SESSION_ID"],provenance_environment_keys:{effort:["CLAUDE_EFFORT"]},provenance_resolvers:{model:"claude_session_file",version:"claude_session_file"},provenance_unavailable_dimensions:["role","topic"],argv_markers:["claude","claude-code"],client_names:["claude","claude-code","claude code"]},{harness:"codex",environment_keys:["CODEX_HOME","CODEX_CI","CODEX_THREAD_ID"],model_environment_keys:["CODEX_MODEL"],session_environment_keys:["CODEX_THREAD_ID"],provenance_environment_keys:{effort:["CODEX_REASONING_EFFORT","CODEX_EFFORT"],role:["CODEX_SESSION_ROLE"]},provenance_resolvers:{version:"ai_agent_version"},provenance_unavailable_dimensions:["topic"],argv_markers:["codex"],client_names:["codex"]},{harness:"pi",environment_keys:["PI_AGENT","PI_CODING_AGENT"],model_environment_keys:["PI_MODEL"],session_environment_keys:["PI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["pi"],client_names:["pi"]},{harness:"opencode",environment_keys:["OPENCODE","OPENCODE_SESSION_ID"],model_environment_keys:["OPENCODE_MODEL"],session_environment_keys:["OPENCODE_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["opencode"],client_names:["opencode"]},{harness:"cursor",environment_keys:["CURSOR_AGENT","CURSOR_TRACE_ID"],model_environment_keys:["CURSOR_MODEL"],session_environment_keys:["CURSOR_TRACE_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["cursor"],client_names:["cursor"]},{harness:"aider",environment_keys:["AIDER","AIDER_MODEL"],model_environment_keys:["AIDER_MODEL"],session_environment_keys:["AIDER_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["aider"],client_names:["aider"]},{harness:"gemini-cli",environment_keys:["GEMINI_CLI","GEMINI_CLI_HOME"],model_environment_keys:["GEMINI_MODEL"],session_environment_keys:["GEMINI_CLI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["gemini","gemini-cli"],client_names:["gemini","gemini-cli","gemini cli"]},{harness:"ci",environment_keys:["CI","GITHUB_ACTIONS","BUILDKITE","GITLAB_CI"],provenance_unavailable_dimensions:["model","effort","role","topic"],argv_markers:[],client_names:[]}],ve=new Map,bn=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function M(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function ye(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function vt(e){let t=e.harness.trim().toLowerCase();if(!bn.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:ye(e.environment_keys),model_environment_keys:ye(e.model_environment_keys),session_environment_keys:ye(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),ye(r)]).filter(([n])=>bn.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"&&bn.test(n[0])&&(n[1]==="ai_agent_version"||n[1]==="claude_session_file"))),provenance_unavailable_dimensions:ye(e.provenance_unavailable_dimensions).map(n=>n.toLowerCase()),argv_markers:ye(e.argv_markers).map(n=>n.toLowerCase()),client_names:ye(e.client_names).map(n=>n.toLowerCase())}}var eo=ws.map(vt);function Es(e,t){return JSON.stringify(e)===JSON.stringify(t)}function wt(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function vn(e=[]){let t=[...eo,...[...ve.values()].map(r=>r.descriptor),...kt.getStore()?.descriptors??[],...e.map(vt)],n=new Set;for(let r of t){if(n.has(r.harness))throw new Error(`Harness signal descriptor collision for "${r.harness}"`);n.add(r.harness)}return t}function Sn(e,t){for(let n of t??[]){let r=M(e[n]);if(r)return r.slice(0,256)}}function ks(e,t){let n=to(e,t);if(n!==void 0)return n;if(t==="topic")return e.slice(0,16).map(r=>r.trim()).find(r=>/^pm-[a-z0-9][a-z0-9-]{2,63}$/u.test(r));if(t==="role"){let r=e.slice(0,8).map(o=>o.trim().toLowerCase()).find(o=>["claim","create","update","close","release","review"].includes(o));if(r==="review")return"reviewer";if(r)return"implementer"}}function to(e,t){let n=t==="model"?["--model","--agent-model"]:[`--agent-${t}`],r=e.slice(0,8);for(let o=0;o<r.length;o+=1){let i=r[o].slice(0,512);if(n.includes(i))return M(r[o+1])?.slice(0,256);let s=n.find(a=>i.startsWith(`${a}=`));if(s)return M(i.slice(s.length+1))?.slice(0,256)}}var vs=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function Se(e,t){if(e!=="role"||t===void 0)return t;let n=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return vs.has(n)?n:void 0}function wn(e,t){return M(e?.[t])?.slice(0,256)}var Ss=1048576;function Is(e,t){if(e.length===0||e.length>262144)return;let n;try{n=JSON.parse(e)}catch{return}if(typeof n!="object"||n===null)return;let r=n,o=typeof r.message=="object"&&r.message!==null?r.message:void 0,i=t==="model"?o?.model:r.version;return M(i)?.slice(0,256)}function xs(e,t,n){let r=M(n.CLAUDE_CODE_SESSION_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let i=Qr.resolve(t.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),s=Qr.join(t.home_dir??bs.homedir(),".claude","projects",i,`${r}.jsonl`);try{let a=bt.openSync(s,"r");try{let c=bt.fstatSync(a).size,l=Math.min(c,Ss),m=Buffer.alloc(l);bt.readSync(a,m,0,l,Math.max(0,c-l));let f=m.toString("utf8").split(`
|
|
2
|
+
`).reverse();for(let h of f.slice(0,4096)){let _=Is(h,e);if(_)return _}return}finally{bt.closeSync(a)}}catch{return}}function Ts(e,t,n,r){let o=kt.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(M(n.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let s=r?.provenance_resolvers[e];if(s==="claude_session_file")return xs(e,t,n);if(s==="ai_agent_version"){let a=M(n.AI_AGENT);return!a||!r||!wt(a,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(a)?.[1]?.slice(0,256)}}function Os(e,t,n){if(e==="ai_agent_version"){let r=M(n.AI_AGENT);return r!==void 0&&wt(r,t.harness)}return M(n.CLAUDE_CODE_SESSION_ID)!==void 0}function In(e){return e||(Zr.getStore()??{env:process.env,argv:process.argv})}function Cs(e,t,n,r){let o=e.environment_keys.some(a=>M(t[a])!==void 0),i=e.argv_markers.some(a=>n.some(c=>{let l=c.replaceAll("\\","/");return wt(l.slice(l.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||wt(r,a));return o||i||s}function As(e,t,n,r,o){let i=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,s=new Set([...kn,...Object.keys(r?.provenance_environment_keys??{})]),a,c;s.has(e)&&(a=Se(e,M(n[i])?.slice(0,256)),c=ks(t.argv??[],e));let l={...r?.provenance_environment_keys,model:r?.model_environment_keys},m={...t.client_info?.provenance,model:t.client_info?.model},f=[a,wn(o?.provenance,e),Se(e,Sn(n,l[e])),Se(e,wn(m,e)),Se(e,wn(t.provenance,e)),Se(e,c),Ts(e,t,n,r)];return["override","session","environment","mcp_client","host","argv","probe"].map((v,S)=>({value:f[S],source:v})).find(v=>v.value!==void 0)}function Rs(e,t,n,r){let o=Object.keys(n?.provenance_environment_keys??{}),i=new Set([...kn,...o,...Object.keys(n?.provenance_resolvers??{}),...Object.keys(e.provenance??{}),...Object.keys(e.client_info?.provenance??{}),...Object.keys(r?.provenance??{})]),s={};for(let a of i){let c=As(a,e,t,n,r);c?s[a]=c:n&&(a!=="version"||n.provenance_unavailable_dimensions.includes(a))&&(s[a]=null)}return s}function Yu(e){let t=e.map(vt),n=new Map(eo.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=ve.get(i.harness);if(s&&!Es(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=ve.get(i.harness);ve.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=ve.get(i.harness);!s||s.registrations<=1?ve.delete(i.harness):s.registrations-=1}}}}function Qu(e,t){return Zr.run(e,t)}function Zu(e,t,n={}){let r=e.map(vt);return vn(r),kt.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function xn(e){let t=In(e),n=t.env??{},r=vn(t.descriptors),o=[...(t.argv??[]).slice(0,3),...t.process_labels??[]].slice(0,64).map(_=>_.slice(0,512)),i=t.client_info?.name.trim().toLowerCase()??"",s=r.find(_=>Cs(_,n,o,i)),a=gn(t,n),c=Rs(t,n,s,a),l=c.model,m=[Sn(n,s?.session_environment_keys),M(t.client_info?.session)?.slice(0,256)].find(_=>_!==void 0),f=s?.harness&&m?gs("sha256").update(`pm-agent-instance:v1\0${s.harness}\0${m}`).digest("hex").slice(0,24):void 0,h=[["harness",s?.harness],["model",l?.value],["model_source",l?.source],["session",m],["instance",f],["provenance",Object.keys(c).length>0?c:void 0],["episode",a.episode]];return Object.fromEntries(h.filter(_=>_[1]!==void 0))}function Ns(e,t,n,r,o,i){let s=n?.provenance_resolvers[e];if(t.provenance?.[e])return{status:"resolved",...s?{resolver:s}:{},rule_version:"v1"};if(i)return{status:"unavailable",reason:"invalid_value",rule_version:"v1"};if(s){let a=Os(s,n,r);return{status:a&&o?"failed":"unavailable",reason:a?o?"resolver_failed":"probes_disabled":"harness_unavailable",resolver:s,rule_version:"v1"}}return{status:n?.provenance_unavailable_dimensions.includes(e)?"unavailable":"not_configured",reason:n?.provenance_unavailable_dimensions.includes(e)?"harness_unavailable":"resolver_not_configured",rule_version:"v1"}}function no(e){let t=In(e),n=xn(t),r=vn(t.descriptors).find(l=>l.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&kt.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(M(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=gn(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,Sn(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,to(t.argv??[],"role")].some(l=>{let m=M(l)?.slice(0,256);return m!==void 0&&Se("role",m)===void 0}),c=Object.fromEntries(kn.map(l=>[l,Ns(l,n,r,o,i,l==="role"&&a)]));return{...n,provenance_outcomes:c}}function ef(){return process.env.PM_AUTHOR}function tf(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function nf(e){return xn(e).harness}function Ds(e,t,n){let r=In(n),o=xn(r);if(e!==void 0){let s=M(e);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}if(r.env?.PM_AUTHOR!==void 0){let s=M(r.env.PM_AUTHOR);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}let i=M(t);return i?{author:i,source:"configured",...o}:o.harness?{author:`harness:${o.harness}`,source:"detected",...o}:{author:"unknown",source:"unknown",...o}}function ro(e){let t=Et.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function oo(e){let t=Et.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 io(e){let t=Et.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function so(e,t){let n=Ds(e,t);return Et.enterWith(n),n.author}import Ms from"node:crypto";import{AsyncLocalStorage as Ls}from"node:async_hooks";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cc84ae55-6dc4-57d4-b7de-c43ae1fb4603")}catch{}})();var co=new Ls,ao=1024;function lo(){let e=co.getStore();if(e===void 0)return;let t=new Date(Date.parse(e.clock)+e.clockReads*e.tickMs).toISOString();return e.clockReads+=1,t}function uo(e){let t=co.getStore();if(t===void 0)return;if(!Number.isSafeInteger(e)||e<0||e>ao)throw new Error(`Reproducible token length must be an integer between 0 and ${ao}`);let n="";for(;n.length<e;){let r=Ms.createHash("sha256").update(`${t.seed}\0${t.tokenReads}`).digest();t.tokenReads+=1;for(let o of r)if(n+=(o%36).toString(36),n.length===e)break}return n}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="6be1497f-a0d5-518b-bf6a-e549b18fad8a")}catch{}})();var Ps=/^([+-]?)(\d+)([hdwm])$/i,js=/^[+-]?\d+[hdwm](?:[+-]\d+[hdwm])+$/i,Fs=/^(\d{4})(\d{2})(\d{2})$/,$s=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,zs=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})-(\d{2})(?:-(\d{2}))?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,Us=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i;function he(){return lo()??new Date().toISOString()}function oe(e){return Number.isFinite(Date.parse(e))}var Hs=1e4,St=new Map;function fo(e){let t=St.get(e);if(t!==void 0)return t;let n=Date.parse(e);return St.size>=Hs&&ht(St),St.set(e,n),n}function F(e,t){let n=fo(e),r=fo(t);return Number.isFinite(n)&&Number.isFinite(r)&&n!==r?n-r:e.localeCompare(t)}function ff(e,t){return!(t.deadlineBefore&&(!e.deadline||F(e.deadline,t.deadlineBefore)>0)||t.deadlineAfter&&(!e.deadline||F(e.deadline,t.deadlineAfter)<0)||t.updatedAfter&&F(e.updated_at,t.updatedAfter)<0||t.updatedBefore&&F(e.updated_at,t.updatedBefore)>0||t.createdAfter&&F(e.created_at,t.createdAfter)<0||t.createdBefore&&F(e.created_at,t.createdBefore)>0)}function Tn(e){return e?`.${e.slice(1).padEnd(3,"0").slice(0,3)}`:""}function On(e){if(!e)return"";if(e.toUpperCase()==="Z")return"Z";let t=/^([+-]\d{2})(\d{2})$/.exec(e);return t?`${t[1]}:${t[2]}`:e}function Ws(e,t,n){n&&n!==t&&(e.includes(n)||e.push(n))}function Bs(e){let t=[],n=l=>Ws(t,e,l),r=Fs.exec(e);if(r){let[,l,m,f]=r;n(`${l}-${m}-${f}`)}let o=$s.exec(e);if(o){let[,l,m,f,h,_,v,S,w]=o,R=v?`:${v}`:"";n(`${l}-${m}-${f}T${h}:${_}${R}${Tn(S)}${On(w)}`)}let i=zs.exec(e);if(i){let[,l,m,f,h,_,v]=i,S=h?`:${h}`:"";n(`${l}T${m}:${f}${S}${Tn(_)}${On(v)}`)}let s=Us.exec(e);if(s){let[,l,m,f,h,_,v]=s,S=h?`:${h}`:"";n(`${l}T${m}:${f}${S}${Tn(_)}${On(v)}`)}let a=10,c=e.slice(0,a);if(Vs(c)){let l=a;for(;l<e.length&&Gs(e[l]);)l+=1;l<e.length&&n(`${c}T${e.slice(l)}`)}return t}function qs(e){let t=Date.parse(e);if(Number.isFinite(t))return t;for(let n of Bs(e)){let r=Date.parse(n);if(Number.isFinite(r))return r}return Number.NaN}function Vs(e){if(e.length!==10)return!1;for(let t=0;t<e.length;t+=1){let n=e[t];if(t===4||t===7){if(n!=="-")return!1;continue}let r=n.charCodeAt(0);if(r<48||r>57)return!1}return!0}function Gs(e){return e?e===" "||e===" "||e===`
|
|
3
|
+
`||e==="\r"||e==="\f"||e==="\v":!1}function mo(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}var Xs=["January","February","March","April","May","June","July","August","September","October","November","December"],Ks=/^(\d{4})-(\d{2})-(\d{2})/,Js=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/;function Ys(e,t,n){let r=Ks.exec(t)??Js.exec(t);if(!r)return;let o=Number.parseInt(r[1],10),i=Number.parseInt(r[2],10),s=Number.parseInt(r[3],10),a=n?.trim()||"deadline";if(i<1||i>12)throw new T(`Invalid ${a} value "${e}". Month "${r[2]}" is out of range \u2014 use a month between 01 and 12.`,I.USAGE);let c=mo(o,i-1);if(s<1||s>c)throw new T(`Invalid ${a} value "${e}". ${Xs[i-1]} ${o} has ${c} days, so day "${r[3]}" does not exist. Use a real YYYY-MM-DD calendar date.`,I.USAGE)}function Qs(e,t){let n=new Date(e.getTime()),r=n.getUTCDate(),o=n.getUTCMonth()+t,i=n.getUTCFullYear()+Math.floor(o/12),s=(o%12+12)%12,a=Math.min(r,mo(i,s));return n.setUTCFullYear(i,s,a),n}function mf(e,t=new Date,n="deadline"){let r=e.trim();if(r.toLowerCase()==="now")return t.toISOString();let o=Ps.exec(r);if(o){let s=o[1]==="-"?-1:1,a=Number.parseInt(o[2],10)*s,c=o[3].toLowerCase();if(c==="m")return Qs(t,a).toISOString();let l=c==="h"?3600*1e3:c==="d"?1440*60*1e3:10080*60*1e3;return new Date(t.getTime()+a*l).toISOString()}Ys(e,r,n);let i=qs(r);if(!Number.isFinite(i)){let s=n.trim().length>0?n.trim():"deadline",a=js.test(r)?"Compound relative expressions like +3d+1h are not supported; use a single relative token (for example +3d) or an ISO/date string.":'Use ISO/date string input, "now", or relative +6h/-6h/+1d/-1d/+2w/-2w/+6m/-6m.';throw new T(`Invalid ${s} value "${e}". ${a}`,I.USAGE)}return new Date(i).toISOString()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="77d3ebfa-789a-54cf-9d49-dbebab8d32ea")}catch{}})();var Ie=1,_o=1;function pf(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=Ie?t:Ie}function po(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=Ie))return e}function Zs(e,t=_o){return e<t?"outdated":e>t?"ahead":"current"}function yf(e,t=_o){let n=[],r=[];for(let o of e){let i=Zs(o.version,t);i==="outdated"?n.push(o.ref):i==="ahead"&&r.push(o.ref)}return{outdated:n.sort((o,i)=>o.localeCompare(i)),ahead:r.sort((o,i)=>o.localeCompare(i))}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="d7501aa2-d3d9-5fbe-a1c0-d4bc145f5563")}catch{}})();var ea={"in-progress":"in_progress",cancelled:"canceled"};function It(e,t){if(t){let o=Xr(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=ea[n]??n;if(dt.includes(r))return r}function ta(e,t){return It(e,t)??e}function wf(e,t){return t.terminal_statuses.has(ta(e,t))}import{encode as ca}from"@toon-format/toon";import{isDeepStrictEqual as wo}from"node:util";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9bef4fe4-11a8-51ae-a42a-a93cc9c57384")}catch{}})();function Cn(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 na(e){return[...new Set([Jr(e),Cn(e.key),Cn(e.cli_flag),...e.cli_aliases.map(t=>Cn(t))])]}function go(e,t){for(let n of na(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function bo(e){return Array.isArray(e)?e.flatMap(t=>bo(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 yo(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 T(`${t} must be one of true|false|1|0|yes|no`,I.USAGE)}function ho(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 T(`${t} must be a number`,I.USAGE);return r}function ra(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 T(`${t} must be valid JSON ${n}`,I.USAGE)}function We(e,t,n){let r=n??`--${e.cli_flag}`;if(e.type==="array"||e.type==="object"){let i=Array.isArray(t)?t[t.length-1]:t;return i===void 0?void 0:ra(i,r,e.type)}if(e.repeatable||e.type==="string_array"){let i=bo(t);return e.type==="number"?i.map(s=>ho(s,r)):e.type==="boolean"?i.map(s=>yo(s,r)):i}let o=Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return e.type==="number"?ho(o,r):e.type==="boolean"?yo(o,r):typeof o=="string"?o:String(o)}function oa(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 If(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=go(e,i);if(s===void 0){oa(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=We(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function xf(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=go(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=We(s,a)))}return r}import{decode as ia}from"@toon-format/toon";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2840e12e-7444-5d36-9f54-5a56267bbb75")}catch{}})();function An(e){return{value:ia(e),usedScalarBracketEscape:!1}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="fedb7b50-6946-589d-b240-9f074e09e467")}catch{}})();var sa=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function aa(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(sa);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function xt(e){return aa(e)[0]}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="eaf0e260-a864-57cf-b23b-aac4f9151d8e")}catch{}})();var da=new Set(["schema","tracker","auto"]),la=new Set(["passed","failed","stopped","canceled"]),ua=new Set(Ar);function Oe(e){return e.replaceAll("\\","/")}function vo(e){for(let t of e)if(t!==0)return t;return 0}function Tt(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var So=["id","title","description","created_at","updated_at"],fa=new Set(re);function Io(e){if(e?.schema)return{statusRegistry:Gr(e.schema),fieldRegistry:Kr(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function ma(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function ie(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new T(`Invalid item metadata: ${e}`,I.GENERIC_FAILURE,{code:"item_document_invalid",reason:e.includes("required")?"missing_required_field":"schema_validation_error",...t?{field:t}:{},required:"Provide an item document whose metadata satisfies the active runtime schema.",why:e})}function Ve(e,t){throw new T(t,I.GENERIC_FAILURE,{code:"item_document_invalid",reason:"syntax_error",format:e,required:`Provide a syntactically valid ${e==="toon"?"TOON":"JSON Markdown"} item document.`,why:"The document could not be decoded far enough to validate item metadata."})}function xo(e){let t=new Set(fa);for(let n of e.fieldRegistry?.definitions??[])t.add(n.metadata_key);for(let n of e.extensionFieldNames)t.add(n);return t}function g(e,t){e||ie(t)}function Ge(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&ie(t),e}function Rn(e,t){let n=e[t];g(typeof n=="string",`${t} must be a string`),g(oe(n),`${t} must be a valid ISO timestamp`)}function Eo(e,t,n){let r=e[t];r!==void 0&&g(typeof r=="number"&&Number.isInteger(r)&&r>=1,`${n} must be an integer >= 1`)}function Mn(e,t,n){let r=e[t];r!==void 0&&(g(typeof r=="string",`${n} must be a string`),g(oe(r),`${n} must be a valid ISO timestamp`))}function _a(e){if(e!==void 0){g(Array.isArray(e),"event.recurrence.by_weekday must be an array");for(let t of e){g(typeof t=="string","event.recurrence.by_weekday entries must be strings");let n=t.trim().toLowerCase();g(mt.includes(n),`event.recurrence.by_weekday entries must be one of: ${mt.join(", ")}`)}}}function pa(e){if(e!==void 0){g(Array.isArray(e),"event.recurrence.by_month_day must be an array");for(let t of e)g(typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=31,"event.recurrence.by_month_day entries must be integers 1..31")}}function ya(e){if(e!==void 0){g(Array.isArray(e),"event.recurrence.exdates must be an array");for(let t of e)g(typeof t=="string","event.recurrence.exdates entries must be strings"),g(oe(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function ha(e){let t=Ge(e,"event.recurrence must be an object");g(typeof t.freq=="string","event.recurrence.freq must be a string");let n=t.freq.trim().toLowerCase();g(ft.includes(n),`event.recurrence.freq must be one of: ${ft.join(", ")}`),Eo(t,"interval","event.recurrence.interval"),Eo(t,"count","event.recurrence.count"),Mn(t,"until","event.recurrence.until"),_a(t.by_weekday),pa(t.by_month_day),ya(t.exdates)}function ga(e){for(let r of So)g(typeof e[r]=="string",`${r} is required and must be a string`);let t=e.type;g(typeof t=="string"&&t.trim().length>0,"type must be a non-empty string");let n=e.pm_format_version;return n!==void 0&&g(typeof n=="number"&&Number.isInteger(n)&&n>=Ie,`pm_format_version must be an integer >= ${Ie}`),t}function ba(e,t){let n=e.status;g(typeof n=="string"&&n.trim().length>0,"status must be a non-empty string");let r=t?.statusRegistry,o=It(n,r),i=r?r.definitions.map(s=>s.id):[...dt];g(o!==void 0,`status must be one of: ${i.join(", ")}`)}function wa(e){let t=e.priority;g(typeof t=="number"&&Number.isInteger(t)&&[0,1,2,3,4].includes(t),"priority must be an integer 0..4");let n=e.tags;g(Array.isArray(n),"tags must be an array");for(let r of n)g(typeof r=="string","tags entries must be strings")}function Ea(e){let t=e.confidence;if(t!==void 0){if(typeof t=="number"){g(Number.isInteger(t)&&t>=0&&t<=100,"confidence number value must be an integer 0..100");return}if(typeof t=="string"){let n=t.trim().toLowerCase(),r=n==="med"||ut.includes(n);g(r,`confidence string value must be one of: ${[...ut,"med"].join(", ")}`);return}g(!1,"confidence must be a number or string")}}function ka(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&ie("severity must be a string");let n=t.trim().toLowerCase(),r=n==="med"||lt.includes(n);g(r,`severity value must be one of: ${[...lt,"med"].join(", ")}`)}function va(e){e.regression!==void 0&&typeof e.regression!="boolean"&&ie("regression must be a boolean")}function Sa(e){let t=e.reminders;if(t!==void 0){g(Array.isArray(t),"reminders must be an array");for(let n of t){let r=Ge(n,"reminders entries must be objects");g(typeof r.at=="string","reminder.at must be a string"),g(oe(r.at),"reminder.at must be a valid ISO timestamp"),g(typeof r.text=="string","reminder.text must be a string"),g(r.text.trim().length>0,"reminder.text must not be empty")}}}function Ia(e){for(let t of["title","description","location","timezone"])e[t]!==void 0&&(g(typeof e[t]=="string",`event.${t} must be a string`),g(e[t].trim().length>0,`event.${t} must not be empty`))}function xa(e){e.recurrence!==void 0&&(ha(e.recurrence),e.recurrence.until!==void 0&&g(F(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function Ta(e){let t=Ge(e,"events entries must be objects");g(typeof t.start_at=="string","event.start_at must be a string"),g(oe(t.start_at),"event.start_at must be a valid ISO timestamp"),t.end_at!==void 0&&(g(typeof t.end_at=="string","event.end_at must be a string"),g(oe(t.end_at),"event.end_at must be a valid ISO timestamp"),g(F(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),Ia(t),t.all_day!==void 0&&g(typeof t.all_day=="boolean","event.all_day must be a boolean"),xa(t)}function Oa(e){let t=e.events;if(t!==void 0){g(Array.isArray(t),"events must be an array");for(let n of t)Ta(n)}}function Ca(e){for(let t of["source_type","source_owner","design","external_ref"]){let n=e[t];n!==void 0&&g(typeof n=="string",`${t} must be a string`)}}function Aa(e){let t=e.type_options;if(t===void 0)return;let n=Ge(t,"type_options must be an object");for(let[r,o]of Object.entries(n))g(r.trim().length>0,"type_options keys must be non-empty"),g(typeof o=="string","type_options values must be strings"),g(o.trim().length>0,"type_options values must be non-empty strings")}function Ra(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){ma(r,t)&&ie(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=We(r,o,`metadata field "${r.metadata_key}"`)}catch(i){ie(String(i?.message).replace(/^Invalid\s+/u,""))}}}function Na(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=xo(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length!==0&&(t.unknownFieldPolicy==="reject"?ie(`unknown schema fields are not allowed: ${r.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`))}function Ln(e,t){let n=Ge(e,"item metadata must be an object"),r=ga(n);ba(n,t),wa(n),Ea(n),ka(n),va(n),Rn(n,"created_at"),Rn(n,"updated_at"),n.deadline!==void 0&&Rn(n,"deadline"),Sa(n),Oa(n),Mn(n,"closed_at","closed_at"),Mn(n,"completed_at","completed_at"),Ca(n),Aa(n),Ra(n,r,t),Na(n,t)}function Da(e){if(!(!e||e.length===0))return[...e].map(t=>({id:t.id.trim().toLowerCase(),kind:t.kind,created_at:t.created_at,author:t.author?.trim()||void 0,source_kind:t.source_kind?.trim()||void 0,author_source:t.author_source})).sort((t,n)=>{let r=F(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 Nn(e){if(!(!e||e.length===0))return[...e].sort((t,n)=>{let r=F(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 Ma(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=F(n.at,r.at);return o!==0?o:n.text.localeCompare(r.text)});return t.length===0?void 0:t}function La(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!ft.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>mt.includes(s)))).sort((s,a)=>mn(s)-mn(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=>oe(s)))).sort((s,a)=>F(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 Pa(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(ja).sort(Fa)}function ja(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:La(e.recurrence)};return Tt(t),t}function Fa(e,t){return vo([F(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 $a(e){if(!(!e||e.length===0))return e.map(t=>({path:Oe(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function za(e){if(!e||e.length===0)return;let t=e.map(Wa).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)=>vo([F(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 xe(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function Ua(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function Dn(e){return typeof e=="string"?e:""}function Ha(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 Wa(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=la.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:Dn(e.started_at),finished_at:Dn(e.finished_at),recorded_at:Dn(e.recorded_at),attempt:Ua(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:xe(e.passed)??0,failed:xe(e.failed)??0,skipped:xe(e.skipped)??0,items:xe(e.items),linked_tests:xe(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:Ha(e.measurements)};return Tt(o),o}function Ba(e){if(!(!Array.isArray(e)||e.length===0))return e.map(Ga)}function Be(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 To(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function jn(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function ko(e){if(!To(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!jn(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function qa(e){if(!To(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!jn(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Va(e){let t=e?.trim().toLowerCase();if(!(!t||!da.has(t)))return t}function Ga(e){let t={command:e.command?.trim()||void 0,path:e.path?Oe(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:Va(e.pm_context_mode),env_set:ko(e.env_set),env_clear:Be(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:Be(e.assert_stdout_contains),assert_stdout_regex:Be(e.assert_stdout_regex),assert_stderr_contains:Be(e.assert_stderr_contains),assert_stderr_regex:Be(e.assert_stderr_regex),assert_stdout_min_lines:xe(e.assert_stdout_min_lines),assert_json_field_equals:ko(e.assert_json_field_equals),assert_json_field_gte:qa(e.assert_json_field_gte),note:e.note?.trim()||void 0};return Tt(t),t}function Xa(e){if(!(!e||e.length===0))return[...e].map(t=>({path:Oe(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 y(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function Ka(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=y(r.id),i=y(r.kind);if(!o||!i)continue;let s={id:o,kind:i},a=y(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 Ja(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=y(r.path);if(!o)continue;let i={path:Oe(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=y(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Ya(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=y(r.command),i=y(r.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=Oe(i));let a=y(r.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function Qa(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=y(r.path);if(!o)continue;let i={path:Oe(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=y(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Za(e){if(e===null||typeof e!="object")return;let t=e,n=y(t.id),r=y(t.title),o=y(t.status),i=o&&ua.has(o)?o:void 0,s=jr(t.order)??Number.NaN,a=typeof t.created_at=="string"?t.created_at:"",c=typeof t.updated_at=="string"?t.updated_at:"";if(!n||!r||!i||!Number.isFinite(s)||!a||!c)return;let l={id:n,order:s,title:r,status:i,created_at:a,updated_at:c};return ec(l,t),l}function ec(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=y(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",Ka],["files","files",Ja],["tests","tests",Ya],["docs","docs",Qa]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function tc(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=Za(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function nc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=typeof r.ts=="string"?r.ts:"",i=typeof r.author=="string"?r.author:"",s=y(r.decision);if(!o||!i||!s)continue;let a={ts:o,author:i,decision:s},c=y(r.rationale);c&&(a.rationale=c);let l=y(r.evidence);l&&(a.evidence=l);let m=y(r.step_id);m&&(a.step_id=m),t.push(a)}return t.length>0?t:void 0}function rc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=typeof r.ts=="string"?r.ts:"",i=typeof r.author=="string"?r.author:"",s=y(r.text);if(!o||!i||!s)continue;let a={ts:o,author:i,text:s},c=y(r.step_id);c&&(a.step_id=c),t.push(a)}return t.length>0?t:void 0}function oc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=y(r.text);if(!o)continue;let i={text:o},s=y(r.command);s&&(i.command=s);let a=y(r.expected);a&&(i.expected=a),t.push(i)}return t.length>0?t:void 0}function ic(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 Te(e){let t=0;for(;t<e.length&&e[t]===`
|
|
4
|
+
`;)t+=1;return e.slice(t).trimEnd()}function sc(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(ut.includes(t))return t}function ac(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(lt.includes(t))return t}function qe(e){return e||void 0}function cc(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))jn(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function dc(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]=We(r,o,`metadata field "${r.metadata_key}"`))}}function lc(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=xo(t),o=Object.keys(e).filter(i=>!n.has(i)).sort((i,s)=>i.localeCompare(s));o.length>0&&t.unknownFieldPolicy==="reject"&&ie(`unknown schema fields are not allowed: ${o.join(", ")}`),o.length>0&&t.onWarning?.(`item_unknown_schema_fields:${o.join(",")}`)}function Ot(e,t={}){let n=Io(t),r=It(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:po(e.pm_format_version),source_type:y(e.source_type),type_options:ic(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:Da(e.dependencies),comments:Nn(e.comments),notes:Nn(e.notes),learnings:Nn(e.learnings),files:$a(e.files),tests:Ba(e.tests),test_runs:za(e.test_runs),docs:Xa(e.docs),deadline:qe(e.deadline),reminders:Ma(e.reminders),events:Pa(e.events),closed_at:qe(e.closed_at),completed_at:qe(e.completed_at),assignee:y(e.assignee),claim_principal:y(e.claim_principal),source_owner:y(e.source_owner),author:qe(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:y(e.definition_of_ready),order:e.order,goal:y(e.goal),objective:y(e.objective),value:y(e.value),impact:y(e.impact),outcome:y(e.outcome),why_now:y(e.why_now),parent:y(e.parent),reviewer:y(e.reviewer),risk:e.risk??void 0,confidence:sc(e.confidence),sprint:y(e.sprint),release:y(e.release),blocked_by:y(e.blocked_by),blocked_reason:y(e.blocked_reason),unblock_note:y(e.unblock_note),reporter:y(e.reporter),severity:ac(e.severity),environment:y(e.environment),repro_steps:y(e.repro_steps),resolution:y(e.resolution),expected_result:y(e.expected_result),actual_result:y(e.actual_result),affected_version:y(e.affected_version),fixed_version:y(e.fixed_version),component:y(e.component),regression:e.regression,customer_impact:y(e.customer_impact),close_reason:qe(e.close_reason),plan_mode:y(e.plan_mode),plan_scope:y(e.plan_scope),plan_harness:y(e.plan_harness),plan_resume_context:y(e.plan_resume_context),plan_steps:tc(e.plan_steps),plan_decisions:nc(e.plan_decisions),plan_discoveries:rc(e.plan_discoveries),plan_validation:oc(e.plan_validation)};return cc(i,e),dc(i,n),lc(i,n),Tt(i),i}function Oo(e){return E(e,re)}function uc(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 fc(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=uc(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 mc(e){let t=e.charCodeAt(0)===65279?e.slice(1):e,n=t.match(/^[ \t]*---[ \t]*(?:\r?\n|$)/);if(!n)return{content:t,stripped:!1};let r=n[0].length;for(;r<t.length;){let o=t.indexOf(`
|
|
5
|
+
`,r),i=o===-1?t.length:o,s=t.slice(r,i).replace(/\r$/,""),a=o===-1?i:i+1;if(s.trim()==="---")return{content:t.slice(a).replace(/^\s+/,""),stripped:!0};r=a}return{content:t,stripped:!1}}function Pn(e,t){return Ot(e,{...t,onWarning:void 0})}function _c(e,t,n={}){let r=mc(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=fc(r.content);o||(e.trimStart().startsWith("{")&&Ve("json_markdown","JSON front matter is not valid JSON"),Ve("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{Ve("json_markdown","JSON front matter is not valid JSON")}return Ln(s,t),{metadata:Pn(s,n),body:Te(i)}}function pc(e,t,n={}){let r;try{r=An(e).value}catch{Ve("toon","TOON item document is not valid TOON")}g(typeof r=="object"&&r!==null&&!Array.isArray(r),"TOON item document must be an object");let o=r;if(!So.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&Ve("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return Ln(o.front_matter,t),g(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:Pn(o.front_matter,n),body:Te(typeof o.body=="string"?o.body:"")};let{body:i,...s}=o;return g(i===void 0||typeof i=="string","TOON item document body must be a string"),Ln(s,t),{metadata:Pn(s,n),body:Te(typeof i=="string"?i:"")}}function yc(e,t={}){let n=Ot(e.metadata,t),r=Oo(n),o=JSON.stringify(r,null,2),i=Te(e.body??"");return i?`${o}
|
|
6
|
+
|
|
7
|
+
${i}
|
|
8
|
+
`:`${o}
|
|
9
|
+
`}function hc(e,t={}){let n=Ot(e.metadata,t),r=Oo(n),o=Te(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i)),a=ca(s),c;try{c=An(a).value}catch(l){throw new T("Refusing to persist a TOON item document that the configured decoder cannot read back.",I.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_error",format:"toon",required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:l instanceof Error?l.message:String(l)})}if(!wo(c,s)){let l=typeof c=="object"&&c!==null&&!Array.isArray(c)?c:{},m=Object.keys(s).find(f=>!wo(s[f],l[f]))??"document";throw new T(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${m}".`,I.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_mismatch",format:"toon",field:m,required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:"The encoded document decoded to a value different from the canonical item payload."})}return`${a}
|
|
10
|
+
`}function Ct(e,t={}){let n=xt(e);if(n)throw new T(`Merge conflict markers detected in item document at line ${n.line} (${n.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,I.GENERIC_FAILURE,{code:"merge_conflict_markers_detected",reason:"merge_conflict",required:"Resolve merge-conflict markers in the item file before parsing or mutation commands.",why:"Partially merged documents can corrupt item metadata and history integrity.",examples:["git status","git add <resolved-file> && git commit"],nextSteps:["Resolve conflicts, save the file, then rerun the pm command."]});let r=t.format??"toon",o=Io(t);return r==="toon"?pc(e,o,t):_c(e,o,t)}function Co(e,t={}){return(t.format??"toon")==="toon"?hc(e,t):yc(e,t)}function B(e,t={}){return{metadata:Ot(e.metadata,t),body:Te(e.body??"")}}import{existsSync as bc}from"node:fs";import{AsyncLocalStorage as wc}from"node:async_hooks";import Q from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bd9832a9-f6a2-5351-a929-0a0d2766df88")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3239b2c7-3ae3-5d4e-9005-b61000362304")}catch{}})();function Kf(){let e=Promise.resolve(),t=new Set;return{async read(n){let r=e,o,i=new Promise(s=>{o=s});t.add(i),await r;try{return await n()}finally{t.delete(i),o()}},write(n){let o=Promise.all([e,...t]).then(()=>n());return e=o.then(()=>{},()=>{}),o}}}function gc(){let e=Promise.resolve(),t=0,n=[],r=()=>{if(t!==0)return;let o=n.splice(0);for(let i of o)i()};return{enqueue(o){t++;let i=e.then(()=>o());return e=i.then(()=>{},()=>{}).finally(()=>{t--,r()}),i},idle(){return t===0?Promise.resolve():new Promise(o=>n.push(o))}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="38024e6c-c1ef-5c15-8421-ac18d317e330")}catch{}})();var Ce=null,Ro=null,Ec=null,kc=null,Fn=null,vc=null,No=null,Sc=null;var Ic=[],Do=new wc;function L(){return Do.getStore()}function cm(e){return Do.run({hooks:null,commands:null,parsers:null,preflight:null,services:null,renderers:null,registrations:null,commandContext:null,commandResult:void 0,affectedItems:[]},e)}var xc=new Set(["body","comments","dependencies","docs","events","files","learnings","notes","reminders","test_runs","tests"]);function Ao(e){let t=Q.resolve(e);for(;;){if(bc(Q.join(t,".git")))return t;let n=Q.dirname(t);if(n===t)return;t=n}}function Tc(e){let t=process.env.PM_SOURCE_WORKSPACE_ROOT?.trim()||process.cwd(),n=Ao(t)??Q.resolve(t),r=Ao(n);if(!e)return{source_workspace_root:n,...r?{repo_root:r}:{}};let o=Q.relative(n,Q.resolve(e)),i=o.length>0&&!o.startsWith(`..${Q.sep}`)&&o!==".."&&!Q.isAbsolute(o);return{source_workspace_root:n,...r?{repo_root:r}:{},...i?{pm_root_rel:o.split(Q.sep).join("/")}:{}}}function dm(e){let t=L();if(t){t.hooks=e;return}Ce=e}function lm(e){let t=L();if(t){t.commands=e;return}Ro=e}function um(e){let t=L();if(t){t.parsers=e;return}Ec=e}function fm(e){let t=L();if(t){t.preflight=e;return}kc=e}function mm(e){let t=L();if(t){t.services=e;return}Fn=e}function _m(e){let t=L();if(t){t.renderers=e;return}vc=e}function pm(e){let t=L();if(t){t.registrations=e;return}No=e}function Xe(){let e=L();return e?e.registrations:No}function $n(e){if(!e)return;let t=L();t?t.affectedItems.push(e):Ic.push(e)}function At(e,t){if(!e||!e.id)return{};let n={id:e.id,type:e.type,status:e.status};if(!Array.isArray(t))return n;let r=e;for(let o of t){if(typeof o!="string")continue;let i=o.startsWith("unset:")?o.slice(6):o;i==="id"||i==="type"||i==="status"||xc.has(i)||Object.hasOwn(r,i)&&r[i]!==void 0&&(n[i]=r[i])}return n}async function q(e){let t=L(),n=t?t.hooks:Ce;return n?$r(n,e):[]}async function zn(e){let t=L(),n=t?t.hooks:Ce;n&&await Fr(n,e)}async function X(e){let t=L(),n=t?t.hooks:Ce;return n?zr(n,e):[]}function Un(){let e=L();return((e?e.hooks:Ce)?.onRead?.length??0)>0}async function ym(e){let t=L(),n=t?t.hooks:Ce;return n?Ur(n,e):[]}async function hm(e){let t=L(),n=t?t.commands:Ro;return n?Hr(n,{...e,...Tc(e.pm_root)}):{handled:!1,result:null,warnings:[]}}function Mo(e,t){let n=L(),r=n?n.commandContext:Sc;return{service:e,command:r?.command,args:r?[...r.args]:[],options:r?.options?{...r.options}:{},global:r?.global?{...r.global}:void 0,pm_root:r?.pm_root,source_workspace_root:r?.source_workspace_root,repo_root:r?.repo_root,pm_root_rel:r?.pm_root_rel,payload:t}}async function Z(e,t){let n=L(),r=n?n.services:Fn;return r?Br(r,Mo(e,t)):{handled:!1,result:t,warnings:[]}}function Lo(e,t){let n=L(),r=n?n.services:Fn;return r?Wr(r,Mo(e,t)):{handled:!1,result:t,warnings:[]}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="aa65b74d-ef5d-57ed-b613-3034da52a8ba")}catch{}})();async function Ke(e,t){let n=await me(e);if(n===null)return[];if(await X({path:e,scope:"project"}),n.trim()==="")return[];let r=xt(n);if(r)throw new T(`History for ${t} contains merge conflict markers at line ${r.line} (${r.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,I.GENERIC_FAILURE,{code:"history_merge_conflict_markers_detected",required:"Repair the history stream by resolving merge-conflict markers.",why:"Conflict markers break JSONL parsing and invalidate deterministic audit history.",examples:[`pm history ${t}`,`pm restore ${t} <timestamp-or-version>`],nextSteps:["Resolve or restore the history file, then rerun the command."]});let o=[];for(let[i,s]of n.split(/\r?\n/).entries()){let a=s.trim();if(a)try{o.push(JSON.parse(a))}catch{throw new T(`History for ${t} contains invalid JSON at line ${i+1}. Repair or restore the history stream and retry.`,I.GENERIC_FAILURE)}}return o}import Qn from"fast-json-patch";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4d71277c-e16c-56f4-a834-5200acfa6d7a")}catch{}})();import Go from"fast-json-patch";import se from"node:fs/promises";import ee from"node:path";import{randomUUID as Oc}from"node:crypto";import{createRequire as Cc}from"node:module";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f1205949-16d8-51ce-98e8-04abc4c78ee8")}catch{}})();var Ac="history-event-index.sqlite",Hn="2";function Dt(e){return ee.join(e,"runtime",Ac)}function Rc(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}function Nc(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?Rc(t):null}var Rt;function Wn(){return Rt!==void 0||(Rt=Nc(process.versions.node,Cc(import.meta.url))),Rt}function Dc(e){e.exec(`
|
|
11
|
+
PRAGMA journal_mode = OFF;
|
|
12
|
+
PRAGMA synchronous = OFF;
|
|
13
|
+
CREATE TABLE metadata (
|
|
14
|
+
key TEXT PRIMARY KEY,
|
|
15
|
+
value TEXT NOT NULL
|
|
16
|
+
) STRICT;
|
|
17
|
+
CREATE TABLE events (
|
|
18
|
+
stream_id TEXT NOT NULL,
|
|
19
|
+
stream_offset INTEGER NOT NULL,
|
|
20
|
+
ts TEXT NOT NULL,
|
|
21
|
+
author TEXT NOT NULL,
|
|
22
|
+
agent_harness TEXT,
|
|
23
|
+
agent_instance TEXT,
|
|
24
|
+
op TEXT NOT NULL,
|
|
25
|
+
entry_json TEXT NOT NULL,
|
|
26
|
+
PRIMARY KEY(stream_id, stream_offset)
|
|
27
|
+
) STRICT;
|
|
28
|
+
CREATE INDEX events_order
|
|
29
|
+
ON events(ts, stream_id, stream_offset);
|
|
30
|
+
CREATE INDEX events_op_order
|
|
31
|
+
ON events(op, ts, stream_id, stream_offset);
|
|
32
|
+
CREATE INDEX events_author_order
|
|
33
|
+
ON events(author, ts, stream_id, stream_offset);
|
|
34
|
+
CREATE INDEX events_harness_order
|
|
35
|
+
ON events(agent_harness, ts, stream_id, stream_offset);
|
|
36
|
+
CREATE INDEX events_instance_order
|
|
37
|
+
ON events(agent_instance, ts, stream_id, stream_offset);
|
|
38
|
+
`),e.prepare("INSERT INTO metadata(key, value) VALUES ('version', ?)").run(Hn)}function Po(e,t){e.prepare(`INSERT INTO events(
|
|
39
|
+
stream_id, stream_offset, ts, author, agent_harness,
|
|
40
|
+
agent_instance, op, entry_json
|
|
41
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?)`).run(t.stream_id,t.stream_offset,t.entry.ts,t.entry.author,t.entry.agent_harness??null,t.entry.agent_instance??null,t.entry.op,JSON.stringify(t.entry))}async function Lm(e){let t=Wn();if(!t)return!1;let n=ee.join(e,"history"),o=(await se.readdir(n,{withFileTypes:!0}).catch(c=>{if(typeof c=="object"&&c!==null&&"code"in c&&c.code==="ENOENT")return[];throw c})).filter(c=>c.isFile()&&c.name.endsWith(".jsonl")).sort((c,l)=>c.name.localeCompare(l.name)),i=Dt(e);await se.mkdir(ee.dirname(i),{recursive:!0});let s=`${i}.${Oc()}.tmp`,a;try{a=new t(s),Dc(a),a.exec("BEGIN IMMEDIATE");for(let c of o){let l=c.name.slice(0,-6),m=await Ke(ee.join(n,c.name),l);for(let[f,h]of m.entries())Po(a,{stream_id:l,stream_offset:f,entry:h})}return a.exec("COMMIT"),a.close(),a=void 0,await se.rm(i,{force:!0}),await se.rename(s,i),!0}catch(c){throw a?.close(),await se.rm(s,{force:!0}),c}}async function jo(e,t){let n=ee.dirname(ee.dirname(e)),r=Dt(n);try{await se.access(r)}catch{return}let o=Wn();if(!o)return;let i;try{if(i=new o(r),i.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==Hn)throw new TypeError("Unsupported history event index version");let a=ee.basename(e,".jsonl"),c=i.prepare("SELECT COALESCE(MAX(stream_offset), -1) + 1 AS value FROM events WHERE stream_id = ?").get(a);Po(i,{stream_id:a,stream_offset:Number(c.value),entry:t}),i.close()}catch{i?.close(),await se.rm(r,{force:!0})}}async function Mt(e){await se.rm(Dt(ee.dirname(ee.dirname(e))),{force:!0})}function Nt(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function Mc(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 Pm(e,t){let n=Wn();if(!n)return null;let r=[],o=[];t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0?(r.push("(ts > ? OR (ts = ? AND stream_id > ?) OR (ts = ? AND stream_id = ? AND stream_offset > ?))"),o.push(t.after_ts,t.after_ts,t.after_stream_id,t.after_ts,t.after_stream_id,t.after_stream_offset)):t.since_ts!==void 0&&(r.push("ts >= ?"),o.push(t.since_ts)),Nt(r,o,"op",t.ops),Nt(r,o,"author",t.authors),Mc(r,o,t.harnesses,t.harness_alias_authors),Nt(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);Nt(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s;try{if(s=new n(Dt(e),{readOnly:!0}),s.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==Hn)return s.close(),null;let c=s.prepare(`SELECT stream_id, stream_offset, entry_json
|
|
42
|
+
FROM events${i}
|
|
43
|
+
ORDER BY ts, stream_id, stream_offset
|
|
44
|
+
LIMIT ?`).all(...o,Math.max(0,Math.floor(t.limit))+1),l=c.length>t.limit,m=c.slice(0,t.limit).map(f=>({stream_id:String(f.stream_id),stream_offset:Number(f.stream_offset),entry:JSON.parse(String(f.entry_json))}));return s.close(),{events:m,has_more:l}}catch{return s?.close(),null}}import Jn from"node:fs/promises";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]="22af7808-6456-5889-b6e3-1abd73f35738")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c873f95b-c435-5b0d-a631-565fb195b5cd")}catch{}})();var Lt="changed_fields",Lc="changed_field_count",Bn="rows",Pc=new Set(["apply","rollback"]),Fo=new Set(["deleted","would_delete"]);function ge(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function $o(e){let t=e[Lt];if(!Array.isArray(t))return null;let n=Object.getPrototypeOf(e)===null?Object.create(null):{};for(let[r,o]of Object.entries(e))r!==Lt&&(n[r]=o);return n[Lc]=t.length,n}function jc(e){return"item"in e&&Array.isArray(e[Lt])}function Fc(e){return typeof e.mode=="string"&&Pc.has(e.mode)&&Array.isArray(e[Bn])}function $c(e,t){let n=Object.getPrototypeOf(e)===null?Object.create(null):{};return Object.assign(n,e),n[Bn]=t,n}function zc(e){if(!ge(e))return null;let t=ge(e.item)?e.item:ge(e.plan)?e.plan:null;if(t===null)return null;let n=typeof t.id=="string"?t.id:void 0,r=typeof e.outcome=="string"&&Fo.has(e.outcome)?e.outcome:typeof t.status=="string"?t.status:void 0;return n?r?{id:n,status:r,...typeof e.deleted=="boolean"?{deleted:e.deleted}:{}}:{id:n}:null}function Uc(e){if(!ge(e)||!ge(e.item)||typeof e.item.id!="string")return null;let t=e[Lt];if(!Array.isArray(t))return null;let n={id:e.item.id,...typeof e.outcome=="string"&&Fo.has(e.outcome)?{status:e.outcome}:typeof e.item.status=="string"?{status:e.item.status}:{},...typeof e.deleted=="boolean"?{deleted:e.deleted}:{},...typeof e.previous_status=="string"?{previous_status:e.previous_status}:{},changed_field_count:t.length},r=typeof e.close_reason=="string"?e.close_reason:typeof e.item.close_reason=="string"?e.item.close_reason:void 0;return r!==void 0&&(n.close_reason=r),Array.isArray(e.warnings)&&e.warnings.length>0&&(n.warnings=e.warnings),n}function Hc(e){let t=Fc(e)?e[Bn]:void 0;if(!Array.isArray(t))return{projected:e,changed:!1};let n=!1,r=t.map(o=>{if(!ge(o))return o;let i=$o(o);return i?(n=!0,i):o});return n?{projected:$c(e,r),changed:!0}:{projected:e,changed:!1}}function Wc(e,t={}){if(t.idOnly===!0){let a=zc(e);if(a!==null)return a}if(t.compactEnvelope===!0){let a=Uc(e);if(a!==null)return a}if((t.changedFields??"full")==="full"||!ge(e))return e;let r=!1,o=e,i=jc(e)?$o(e):null;i!==null&&(o=i,r=!0);let s=Hc(o);return s.changed&&(o=s.projected,r=!0),r?o: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]="b52d2756-f640-5f53-981f-05fa23fa1718")}catch{}})();var t_=new Set(Object.values(I));var zo=!1;function Je(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Vn(e){return typeof e=="object"&&e!==null&&e.code==="EPIPE"}function Bc(){(process.exitCode===void 0||process.exitCode===I.SUCCESS)&&(process.exitCode=I.SUCCESS)}function qc(){(process.exitCode===void 0||process.exitCode===I.SUCCESS)&&(process.exitCode=I.GENERIC_FAILURE)}function Gn(e){if(e==="stdout"){Bc();return}qc()}function Uo(e){let t=e instanceof Error?e:new Error(String(e));setImmediate(()=>{throw t})}function Vc(){zo||(zo=!0,process.stdout.on("error",e=>{if(Vn(e)){Gn("stdout");return}Uo(e)}),process.stderr.on("error",e=>{if(Vn(e)){Gn("stderr");return}Uo(e)}))}function Gc(e,t){Vc();try{return e==="stdout"?process.stdout.write(t):process.stderr.write(t),!0}catch(n){if(Vn(n))return Gn(e),!1;throw n}}function Pt(e){return Gc("stderr",e)}function qn(e){return typeof e=="string"?JSON.stringify(e):typeof e=="number"||typeof e=="boolean"?String(e):e===null?"null":JSON.stringify(e)}function Xn(e){if(e!=null){if(Array.isArray(e)){let t=e.map(n=>Xn(n)).filter(n=>n!==void 0);return t.length>0?t:void 0}if(Je(e)){let t={};for(let[n,r]of Object.entries(e)){if(n==="omitted_field_groups"&&Array.isArray(r)&&r.length===0){t[n]=[];continue}let o=Xn(r);o!==void 0&&(t[n]=o)}return Object.keys(t).length>0?t:void 0}return e}}function Kn(e,t){let n=" ".repeat(t);if(Array.isArray(e))return e.length===0?"[]":e.map(r=>{if(!Je(r)&&!Array.isArray(r))return`${n}- ${qn(r)}`;let i=Kn(r,t+1).split(`
|
|
45
|
+
`),[s,...a]=i;return a.length===0?`${n}- ${s.trimStart()}`:`${n}- ${s.trimStart()}
|
|
46
|
+
${a.join(`
|
|
47
|
+
`)}`}).join(`
|
|
48
|
+
`);if(Je(e)){let r=Object.entries(e);return r.length===0?"{}":r.map(([o,i])=>!Je(i)&&!Array.isArray(i)?`${n}${o}: ${qn(i)}`:Array.isArray(i)&&i.length===0?`${n}${o}: []`:Je(i)&&Object.keys(i).length===0?`${n}${o}: {}`:`${n}${o}:
|
|
49
|
+
${Kn(i,t+1)}`).join(`
|
|
50
|
+
`)}return`${n}${qn(e)}`}function n_(e,t){if(t==="json")return`${JSON.stringify(e,null,2)}
|
|
51
|
+
`;let n=Xn(e);return n===void 0?`{}
|
|
52
|
+
`:`${Kn(n,0)}
|
|
53
|
+
`}function r_(e){let t=Lo("error_format",{message:e}),n=t.handled&&typeof t.result=="string"?t.result:e;Pt(n.endsWith(`
|
|
54
|
+
`)?n:`${n}
|
|
55
|
+
`)}(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]="4db09d54-90c6-548b-baa8-c7ce419f70a2")}catch{}})();var Xc=Ae.join("runtime","history-drift-cache.json"),Ho={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 Wo(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function Kc(e){let t=Ae.join(e,Xc),n=!1,r="invalid_cache_path";try{n=(await Jn.stat(await Jn.realpath(e))).isDirectory()}catch(o){let i=Wo(o);r=i===void 0?"unknown":Ho[i]??"filesystem_error"}if(!n){Pt(`[pm] warning: history_drift_cache_invalidation_failed:${r}
|
|
56
|
+
`);return}try{await Jn.rm(t,{force:!0})}catch(o){let i=Wo(o);if(i==="ENOENT")return;let s=i===void 0?"unknown":Ho[i]??"filesystem_error";Pt(`[pm] warning: history_drift_cache_invalidation_failed:${s}
|
|
57
|
+
`)}}async function Ye(e){let t=Ae.dirname(Ae.resolve(e));Ae.basename(t)==="history"&&await Kc(Ae.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]="ce2dace3-7c86-5edf-8bda-083a0b3e7f2b")}catch{}})();var Yc={front_matter:{},body:""};function Qc(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function Zc(e,t){let n=Qc(t);if(n.length===0)return!0;let r=e;for(let o of n){if(Array.isArray(r)){if(o==="-"||!/^(0|[1-9]\d*)$/.test(o))return!1;let s=Number(o);if(!Number.isInteger(s)||s<0||s>=r.length)return!1;let a=r[s];if(a===void 0)return!1;r=a;continue}if(typeof r!="object"||r===null||!Object.prototype.hasOwnProperty.call(r,o))return!1;let i=r[o];if(i===void 0)return!1;r=i}return!0}function ed(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!Zc(r,o.path)?{...o,op:"add"}:o;n.push(i),r=Go.applyPatch(r,[i],!0,!0).newDocument}return n}function Yn(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let n=B(e);return{front_matter:E(n.metadata,re),body:n.body}}function Bo(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let n=B(e);return{metadata:E(n.metadata,re),body:n.body}}function Xo(e){return _e(G(Yn(e)))}function w_(){return _e(G(Yc))}function Re(e){let t=Yn(e.before),n=Yn(e.after),r=Bo(e.before),o=Bo(e.after),i=Go.compare(r,o),s=ed(r,i),a=oo(e.author),c=a.harness?Object.fromEntries(Object.entries(no().provenance_outcomes).filter(([,m])=>m.status==="failed")):void 0,l=c===void 0||Object.keys(c).length===0?e.context:{...e.context,agent_provenance_outcomes:c};return{ts:e.nowIso,author:e.author,author_source:e.authorSource??ro(e.author),...a.harness?{agent_harness:a.harness}:{},...a.model?{agent_model:a.model}:{},...a.model_source?{agent_model_source:a.model_source}:{},...a.instance?{agent_instance:a.instance}:{},...a.provenance?{agent_provenance:a.provenance}:{},...a.episode?{agent_episode:a.episode}:{},op:e.op,patch:s,before_hash:_e(G(t)),after_hash:_e(G(n)),message:e.message===void 0?void 0:e.message,...l===void 0?{}:{context:l}}}function qo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function td(e){let t=e.ts.trim();return t.length>0?t:he()}function Vo(e,t){let n=e.ts;return typeof n=="string"&&n.trim().length>0?e:{...e,ts:t}}function jt(e,t){let n=td(t);if(typeof e=="string"){try{let r=JSON.parse(e);if(qo(r))return JSON.stringify(Vo(r,n))}catch{}return e}return qo(e)?JSON.stringify(Vo(e,n)):JSON.stringify(e)}async function Ne(e,t){let n=await Z("history_append",{history_path:e,entry:t});if(n.handled){if(n.result===!1)return;if(typeof n.result=="string"){await Fe(e,jt(n.result,t)),await Ye(e),await Mt(e);return}if(typeof n.result=="object"&&n.result!==null){let r=n.result;if(r.skip===!0)return;let o=typeof r.history_path=="string"?r.history_path:e;if(typeof r.line=="string"){await Fe(o,jt(r.line,t)),await Ye(o),await Mt(o);return}await Fe(o,jt(r.entry??t,t)),await Ye(o),await Mt(o);return}}await Fe(e,jt(t,t)),await Ye(e),await jo(e,t)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c8668470-7e57-5dee-8e41-298e7c697b77")}catch{}})();var nd={metadata:{},body:""};function $t(){return structuredClone(nd)}function Ft(e){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return Xo(zt(e))}catch{}return _e(G({replay_fallback:!0,metadata:e.metadata,body:e.body}))}function zt(e){return{metadata:e.metadata,body:e.body}}function O_(e,t={}){return B(zt(e),t)}function C_(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=B(e);return{metadata:E(t.metadata,re),body:t.body}}function Ko(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function rd(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function Yo(e){return Array.isArray(e)?e.filter(rd).map(t=>({...t,path:Ko(t.path),from:typeof t.from=="string"?Ko(t.from):void 0})):[]}function od(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 Ut(e,t){try{let n=Yo(t),r=Qn.applyPatch(structuredClone(e),n,!0,!1).newDocument;return od(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 Zn(e){let t=$t();for(let n=0;n<e.length;n+=1){let r=e[n];if(Ft(t)!==r.before_hash)return{ok:!1,errors:[`verify_failed:before_hash_mismatch:entry_${n+1}`]};let o=Ut(t,r.patch);if(!o.ok)return{ok:!1,errors:[`verify_failed:patch_apply_failed:entry_${n+1}`]};if(t=o.document,Ft(t)!==r.after_hash)return{ok:!1,errors:[`verify_failed:after_hash_mismatch:entry_${n+1}`]}}return{ok:!0,errors:[]}}function Jo(e,t){try{return{ok:!0,document:Qn.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function id(e,t){let n=structuredClone(e),r=0,o=0;for(let a of Yo(t)){let c=Jo(n,a);if(c.ok){n=c.document;continue}if(a.op==="replace"){let l=Jo(n,{...a,op:"add"});if(l.ok){n=l.document,r+=1;continue}}o+=1}let i=n;return{document:{metadata:typeof i.metadata=="object"&&i.metadata!==null?i.metadata:{},body:typeof i.body=="string"?i.body:e.body},convertedReplaceToAdd:r,skippedOps:o}}function A_(e){let t=$t(),n=[],r=[],o=0,i=0,s=0,a=0;for(let c=0;c<e.length;c+=1){let l=e[c],m=Ft(t),f=Ut(t,l.patch),h,_,v=!1,S=0,w=0;if(f.ok)h=f.document,_=l.patch;else{let J=id(t,l.patch);h=J.document,_=Qn.compare(t,h),v=!0,S=J.convertedReplaceToAdd,w=J.skippedOps,s+=S,a+=w,i+=1}let R=Ft(h),N=m!==l.before_hash||R!==l.after_hash;N&&(o+=1),n.push({...l,patch:_,before_hash:m,after_hash:R}),r.push({index:c+1,rehashed:N,patch_repaired:v,converted_replace_to_add:S,skipped_ops:w}),t=h}return{entries:n,finalDocument:t,entriesRehashed:o,entriesPatchRepaired:i,convertedReplaceToAdd:s,skippedOps:a,details:r}}function R_(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
|
|
58
|
+
`)}
|
|
59
|
+
`}import sd from"node:crypto";import Qo from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="50a277b9-d530-5aa0-8bd0-8eb0d36911e5")}catch{}})();function ei(e){let t=(e??"").trim().toLowerCase();return t?t.endsWith("-")?t:`${t}-`:"pm-"}function er(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function tr(e,t){let n=ei(t),r=er(e);return r.startsWith(n)?r:`${n}${r}`}function ad(e){let t=uo(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=sd.randomInt(0,36).toString(36);return n}async function cd(e,t,n){let r=[...new Set(Object.values(n))].flatMap(o=>[Qo.join(e,o,`${t}.md`),Qo.join(e,o,`${t}.toon`)]);return(await Promise.all(r.map(o=>pt(o)))).some(Boolean)}var Zo=4,ti=12;function dd(e){return typeof e!="number"||!Number.isFinite(e)?Zo:Math.min(ti,Math.max(Zo,Math.trunc(e)))}async function F_(e,t,n={}){let r=dd(n.tokenLength),o=Math.min(r+6,ti),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${ei(t)}${ad(r)}`;if(n.probeExisting===!1||!await cd(e,a,n.typeToFolder??fe))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import be from"node:fs/promises";import ri from"node:path";import{randomUUID as ld}from"node:crypto";import{createRequire as ud}from"node:module";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e94075b0-810d-506c-b6a2-ae322526c078")}catch{}})();var fd="metadata-query-index.sqlite",Qe="4";function md(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}var Ht;function _d(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?md(t):null}function Ze(){return Ht!==void 0||(Ht=_d(process.versions.node,ud(import.meta.url))),Ht}function ni(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function De(e){return ri.join(e,"runtime",fd)}function pd(e){e.exec(`
|
|
60
|
+
PRAGMA foreign_keys = ON;
|
|
61
|
+
PRAGMA journal_mode = OFF;
|
|
62
|
+
PRAGMA synchronous = OFF;
|
|
63
|
+
CREATE TABLE metadata (
|
|
64
|
+
key TEXT PRIMARY KEY,
|
|
65
|
+
value TEXT NOT NULL
|
|
66
|
+
) STRICT;
|
|
67
|
+
CREATE TABLE items (
|
|
68
|
+
id TEXT PRIMARY KEY,
|
|
69
|
+
relative_path TEXT NOT NULL UNIQUE,
|
|
70
|
+
metadata_json TEXT NOT NULL,
|
|
71
|
+
status TEXT NOT NULL,
|
|
72
|
+
type TEXT NOT NULL,
|
|
73
|
+
priority INTEGER NOT NULL,
|
|
74
|
+
updated_at TEXT NOT NULL,
|
|
75
|
+
created_at TEXT NOT NULL,
|
|
76
|
+
parent TEXT,
|
|
77
|
+
assignee TEXT,
|
|
78
|
+
sprint TEXT,
|
|
79
|
+
release TEXT
|
|
80
|
+
) STRICT;
|
|
81
|
+
CREATE INDEX items_default_order
|
|
82
|
+
ON items(priority, updated_at DESC, id);
|
|
83
|
+
CREATE INDEX items_status_default_order
|
|
84
|
+
ON items(status, priority, updated_at DESC, id);
|
|
85
|
+
CREATE INDEX items_type_default_order
|
|
86
|
+
ON items(type, priority, updated_at DESC, id);
|
|
87
|
+
CREATE INDEX items_parent_default_order
|
|
88
|
+
ON items(parent, priority, updated_at DESC, id);
|
|
89
|
+
CREATE TABLE item_metadata_keys (
|
|
90
|
+
item_id TEXT NOT NULL,
|
|
91
|
+
key TEXT NOT NULL,
|
|
92
|
+
PRIMARY KEY(item_id, key),
|
|
93
|
+
FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
|
|
94
|
+
) STRICT;
|
|
95
|
+
CREATE INDEX item_metadata_keys_key_item
|
|
96
|
+
ON item_metadata_keys(key, item_id);
|
|
97
|
+
CREATE TABLE item_linked_files (
|
|
98
|
+
item_id TEXT NOT NULL,
|
|
99
|
+
path TEXT NOT NULL,
|
|
100
|
+
scope TEXT NOT NULL,
|
|
101
|
+
note TEXT,
|
|
102
|
+
PRIMARY KEY(item_id, path, scope),
|
|
103
|
+
FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
|
|
104
|
+
) STRICT;
|
|
105
|
+
CREATE INDEX item_linked_files_path_scope_item
|
|
106
|
+
ON item_linked_files(path, scope, item_id);
|
|
107
|
+
CREATE VIRTUAL TABLE item_search USING fts5(
|
|
108
|
+
id UNINDEXED,
|
|
109
|
+
title,
|
|
110
|
+
description,
|
|
111
|
+
tags,
|
|
112
|
+
tokenize = 'unicode61'
|
|
113
|
+
);
|
|
114
|
+
`)}function Bt(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function oi(e,t){let n=t.metadata;e.prepare(`INSERT INTO items(
|
|
115
|
+
id, relative_path, metadata_json, status, type, priority,
|
|
116
|
+
updated_at, created_at, parent, assignee, sprint, release
|
|
117
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
118
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
119
|
+
relative_path = excluded.relative_path,
|
|
120
|
+
metadata_json = excluded.metadata_json,
|
|
121
|
+
status = excluded.status,
|
|
122
|
+
type = excluded.type,
|
|
123
|
+
priority = excluded.priority,
|
|
124
|
+
updated_at = excluded.updated_at,
|
|
125
|
+
created_at = excluded.created_at,
|
|
126
|
+
parent = excluded.parent,
|
|
127
|
+
assignee = excluded.assignee,
|
|
128
|
+
sprint = excluded.sprint,
|
|
129
|
+
release = excluded.release`).run(n.id,t.relativePath,JSON.stringify(n),n.status,n.type,n.priority,n.updated_at,n.created_at,n.parent??null,n.assignee??null,n.sprint??null,n.release??null),e.prepare("DELETE FROM item_metadata_keys WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_linked_files WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_search WHERE id = ?").run(n.id),e.prepare("INSERT INTO item_search(id, title, description, tags) VALUES (?, ?, ?, ?)").run(n.id,n.title,n.description,n.tags.join(" "));let r=e.prepare("INSERT INTO item_metadata_keys(item_id, key) VALUES (?, ?)");for(let i of Object.keys(n))r.run(n.id,i);let o=e.prepare("INSERT INTO item_linked_files(item_id, path, scope, note) VALUES (?, ?, ?, ?)");for(let i of t.linkedFiles??[])o.run(n.id,i.path,i.scope,i.note??null)}async function ii(e){let t=De(e.pmRoot),n=Ze();if(!n){await be.rm(t,{force:!0});return}await be.mkdir(ri.dirname(t),{recursive:!0});let r=`${t}.${ld()}.tmp`,o;try{o=new n(r),pd(o),o.exec("BEGIN IMMEDIATE"),Bt(o,"version",Qe),Bt(o,"context_fingerprint",e.contextFingerprint),Bt(o,"source_cursor",e.sourceCursor);for(let i of e.rows)oi(o,i);o.exec("COMMIT"),o.close(),o=void 0,await be.rm(t,{force:!0}),await be.rename(r,t)}catch(i){throw o?.close(),await Promise.allSettled([be.rm(r,{force:!0})]),i}}function qt(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function si(e){let t=De(e.pmRoot),n;try{await be.access(t);let r=Ze();if(!r)return!1;n=new r(t),n.exec("PRAGMA foreign_keys = ON");let o=qt(n);if(o.version!==Qe||o.context_fingerprint!==e.contextFingerprint||o.source_cursor!==e.expectedSourceCursor)return n.close(),!1;n.exec("BEGIN IMMEDIATE");let i=n.prepare("DELETE FROM items WHERE relative_path = ?"),s=n.prepare("SELECT id FROM items WHERE relative_path = ?"),a=n.prepare("DELETE FROM item_search WHERE id = ?");for(let c of e.deletedRelativePaths??[]){let l=s.get(c);i.run(c),l&&a.run(l.id)}return e.row&&oi(n,e.row),Bt(n,"source_cursor",e.sourceCursor),n.exec("COMMIT"),n.close(),!0}catch{try{n?.exec("ROLLBACK")}catch{}return n?.close(),!1}}function Wt(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function yd(e){let t=[],n=[];Wt(t,n,"status",e.statuses,"IN"),Wt(t,n,"status",e.excludeStatuses,"NOT IN"),Wt(t,n,"type",e.types,"IN"),Wt(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 B_(e){let t=Ze();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=yd(n),i;try{i=new t(De(e.pmRoot),{readOnly:!0});let s=qt(i);if(s.version!==Qe||s.source_cursor!==e.expectedSourceCursor)return i.close(),null;let a=i.prepare(`SELECT COUNT(*) AS count FROM items${r}`).get(...o),c=[],l="";n.limit!==void 0?(l+=" LIMIT ?",c.push(Math.max(0,Math.floor(n.limit))),n.offset!==void 0&&(l+=" OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))))):n.offset!==void 0&&(l+=" LIMIT -1 OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))));let f=i.prepare(`SELECT metadata_json FROM items${r}
|
|
130
|
+
ORDER BY ${n.terminalStatuses&&n.terminalStatuses.length>0?`CASE WHEN status IN (${n.terminalStatuses.map(()=>"?").join(", ")}) THEN 1 ELSE 0 END ASC, `:""}priority ASC, updated_at DESC, id ASC${l}`).all(...o,...n.terminalStatuses??[],...c).map(h=>{let _=JSON.parse(String(h.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:f}}catch{return i?.close(),null}}async function q_(e){let t=Ze();if(!t||e.paths.length===0)return null;let n;try{n=new t(De(e.pmRoot),{readOnly:!0});let r=qt(n);if(r.version!==Qe||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
|
|
131
|
+
FROM item_linked_files
|
|
132
|
+
WHERE ${a}`).get(...s),l=ni(e.limit,50),m=ni(e.offset,0),f=n.prepare(`SELECT items.id, items.metadata_json
|
|
133
|
+
FROM items
|
|
134
|
+
WHERE EXISTS (
|
|
135
|
+
SELECT 1 FROM item_linked_files
|
|
136
|
+
WHERE item_linked_files.item_id = items.id AND ${a}
|
|
137
|
+
)
|
|
138
|
+
ORDER BY items.priority ASC, items.updated_at DESC, items.id ASC
|
|
139
|
+
LIMIT ? OFFSET ?`).all(...s,l,m),h=[];if(f.length>0){let _=f.map(w=>String(w.id)),v=n.prepare(`SELECT item_id, path, scope, note
|
|
140
|
+
FROM item_linked_files
|
|
141
|
+
WHERE item_id IN (${_.map(()=>"?").join(", ")})
|
|
142
|
+
AND ${a}
|
|
143
|
+
ORDER BY path ASC, scope ASC`).all(..._,...s),S=new Map(_.map(w=>[w,[]]));for(let w of v){let R=String(w.item_id),N=S.get(R);N.push({path:String(w.path),scope:String(w.scope),...w.note===null?{}:{note:String(w.note)}}),S.set(R,N)}for(let w of f){let R=JSON.parse(String(w.metadata_json));h.push({item:R,files:S.get(String(w.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:h}}catch{return n?.close(),null}}async function V_(e){let t=Ze();if(!t)return null;let n;try{n=new t(De(e.pmRoot),{readOnly:!0});let r=qt(n);if(r.version!==Qe||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let i=n.prepare(`SELECT items.metadata_json
|
|
144
|
+
FROM item_search
|
|
145
|
+
JOIN items ON items.id = item_search.id
|
|
146
|
+
WHERE item_search MATCH ?
|
|
147
|
+
ORDER BY bm25(item_search), items.priority, items.updated_at DESC, items.id
|
|
148
|
+
LIMIT ?`).all(e.query,Math.max(0,Math.floor(e.limit))).map(s=>JSON.parse(String(s.metadata_json)));return n.close(),{source_cursor:r.source_cursor,items:i}}catch{return n?.close(),null}}async function Vt(e){await be.rm(De(e),{force:!0})}import j from"node:fs/promises";import A from"node:path";import{createHash as Fd,randomUUID as Ei}from"node:crypto";import te from"node:fs/promises";import nr from"node:path";import{randomUUID as hd}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]="c638b65d-148a-5b42-8f24-d6fa9d5ac7d3")}catch{}})();function gd(e){let t;try{t=JSON.parse(e)}catch{return{info:null,warnings:["lock_info_invalid_json"]}}if(typeof t!="object"||t===null||Array.isArray(t))return{info:null,warnings:["lock_info_invalid_shape"]};let n=t,r=n.id,o=n.pid,i=n.owner,s=n.created_at,a=n.ttl_seconds;return typeof r!="string"||typeof o!="number"||!Number.isFinite(o)||typeof i!="string"||typeof s!="string"||typeof a!="number"||!Number.isFinite(a)?{info:null,warnings:["lock_info_invalid_shape"]}:{info:{id:r,pid:o,owner:i,created_at:s,ttl_seconds:a},warnings:[]}}async function li(e){try{let t=await te.readFile(e,"utf8");return await X({path:e,scope:"project"}),gd(t)}catch(t){return et(t,"ENOENT")?{info:null,warnings:[]}:{info:null,warnings:["lock_info_read_failed"]}}}function et(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}async function ui(e,t){await q({path:e,scope:"project",op:t})}function bd(e,t,n){return{id:e,pid:process.pid,owner:t,created_at:he(),ttl_seconds:n}}async function wd(e,t,n,r){await te.mkdir(nr.dirname(e),{recursive:!0});let o=await te.open(e,"wx");try{await o.writeFile(`${JSON.stringify(bd(t,n,r),null,2)}
|
|
149
|
+
`,"utf8")}finally{await o.close()}await ui(e,"lock:create")}async function fi(e,t){try{return await te.unlink(e),await ui(e,t),!0}catch{return!1}}function mi(e,t){let n=e?.created_at?Date.parse(e.created_at):Number.NaN;return(Number.isFinite(n)?Date.now()-n:Number.POSITIVE_INFINITY)>t*1e3}function Ed(e){return e?.owner?` (owner ${e.owner})`:""}var kd=25,vd=200,Sd=250,Id=3,xd=".stale-cleanup",_i="owner.json",Td=1e4,Od=5*6e4;function ai(e){if(typeof e=="string"){let t=e.trim();if(!/^\d+$/.test(t))return;let n=Number(t);return Number.isSafeInteger(n)?n:void 0}if(typeof e=="number"&&Number.isFinite(e)&&e>=0)return Math.trunc(e)}function Cd(e){let t=process.env.PM_LOCK_WAIT_MS,n=ai(t);if(n!==void 0)return n;let r=ai(e);return r!==void 0?r:0}function Ad(e){let t=Math.max(1,Math.round(e*(.5+Math.random())));return new Promise(n=>setTimeout(n,t))}function pi(e,t,n){let r=n>0?` after waiting ${n}ms`:"";return new T(`Item ${e} is locked${Ed(t)}${r}`,I.CONFLICT,{code:"lock_conflict",recovery:{retry_after_ms:Sd}})}function Rd(e){if(typeof e=="function")return e;if(typeof e=="object"&&e!==null&&"release"in e){let t=e.release;return typeof t=="function"?t:null}return null}function Nd(e,t,n,r){if(!n&&r){let o=t.warnings.length>0?` (${t.warnings.join(",")})`:"";throw new T(`Item ${e} lock is stale${o}; rerun with --force when supported for this command`,I.CONFLICT)}}function Dd(e){let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!="object"||t===null||Array.isArray(t))return null;let n=t,r=n.pid,o=n.token;return typeof r!="number"||!Number.isInteger(r)||r<=0||typeof o!="string"||o.length===0?null:{pid:r,token:o}}async function yi(e){try{return Dd(await te.readFile(nr.join(e,_i),"utf8"))}catch{return null}}function Md(e){try{return process.kill(e,0),!0}catch(t){return!et(t,"ESRCH")}}async function rr(e){try{return await te.rm(e,{recursive:!0,force:!0}),!0}catch{return!1}}async function ci(e,t){let n=await yi(e);n===null||n.token!==t||await rr(e)}async function di(e){try{await te.mkdir(e)}catch(n){return et(n,"EEXIST"),null}let t={pid:process.pid,token:hd()};try{await te.writeFile(nr.join(e,_i),`${JSON.stringify(t)}
|
|
150
|
+
`,"utf8")}catch{return await rr(e),null}return t}async function Ld(e){let t;try{let r=await te.stat(e);if(t=Date.now()-r.mtimeMs,t<=Td)return!1}catch(r){return et(r,"ENOENT")}let n=await yi(e);return n!==null&&Md(n.pid)&&t<=Od?!1:rr(e)}async function Pd(e,t){let n=`${e}${xd}`,r=await di(n);if(r!==null)return async()=>ci(n,r.token);if(!await Ld(n))return null;let o=await di(n);return o===null?null:async()=>ci(n,o.token)}async function jd(e){let t=await Pd(e.lockPath,e.id);if(t===null)return{lockInfo:e.fallbackLockInfo,shouldRetryCreate:!1,staleRemovalCounted:!1};try{let n=await li(e.lockPath);if(n.info===null&&n.warnings.length===0)return{lockInfo:n,shouldRetryCreate:!0,staleRemovalCounted:!1};if(!mi(n.info,e.ttlSeconds))return{lockInfo:n,shouldRetryCreate:!1,staleRemovalCounted:!1};if(Nd(e.id,n,e.force,e.forceRequiredForStaleLock),e.staleRemovals>=Id)throw pi(e.id,n.info,Date.now()-e.startedAtMs);return{lockInfo:n,shouldRetryCreate:await fi(e.lockPath,"lock:stale_remove"),staleRemovalCounted:!0}}finally{await t()}}async function ne(e,t,n,r,o=!1,i=!0,s){let a=await Z("lock_acquire",{pm_root:e,id:t,ttl_seconds:n,owner:r,force:o,force_required_for_stale_lock:i});if(a.handled){let _=Rd(a.result);if(_)return async()=>{await Promise.resolve(_()),await Z("lock_release",{pm_root:e,id:t,owner:r})}}let c=Lr(e,t),l=Cd(s),m=Date.now(),f=0,h=kd;for(;;)try{return await wd(c,t,r,n),async()=>{await fi(c,"lock:release"),await Z("lock_release",{pm_root:e,id:t,owner:r})}}catch(_){if(!et(_,"EEXIST"))throw new T(`Failed to acquire lock for ${t}: ${Pr(_)}`,I.GENERIC_FAILURE);let v=await li(c);if(mi(v.info,n)){let w=await jd({lockPath:c,id:t,ttlSeconds:n,force:o,forceRequiredForStaleLock:i,staleRemovals:f,waitBudgetMs:l,startedAtMs:m,fallbackLockInfo:v});if(v=w.lockInfo,w.staleRemovalCounted&&(f+=1),w.shouldRetryCreate)continue}let S=Date.now()-m;if(l===0||S>=l)throw pi(t,v.info,l===0?0:S);await Ad(Math.min(h,l-S)),h=Math.min(h*2,vd)}}(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]="8ed70856-9cba-599d-8b53-21a981af1f40")}catch{}})();var K=8,ki=500,$d="metadata-derived-index",zd="metadata-cache.json",Ud="metadata-cache-bodies.json",Hd="metadata-cache-collections.json",Wd="metadata-cache-delta.json",Bd="metadata-cache-manifest.json",hi=4,qd=["comments","notes","learnings","files","tests","test_runs","docs"];function vi(){return _t(Xe())}function Xt(e){let t={...e},n={};for(let r of qd)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function Si(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function Ii(e,t,n,r){let o=Fd("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 Kt(e){return A.join(e,"runtime",zd)}function Jt(e){return A.join(e,"runtime",Ud)}function Yt(e){return A.join(e,"runtime",Hd)}function ir(e){return A.join(e,"runtime",Wd)}function sr(e){return A.join(e,"runtime",Bd)}function Qt(e,t){let n=A.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var Vd=24,H=new Map,Zt=new WeakMap;function ar(e){return Zt.get(e)??e.source_cursor}function Gd(e,t){let n=ar(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){Zt.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 Xd(e,t){if(!e)return;let n=ar(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){Zt.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 Kd(e,t){if(!e)return;let n=ar(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){Zt.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 Jd(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(Gd(e,r),Xd(t,r),Kd(n,r))}function or(e,t){H.size>=Vd&&!H.has(e)&&ht(H),H.set(e,t)}async function ae(e,t){let n;try{n=await j.stat(e)}catch{return H.delete(e),null}let r=H.get(e);if(r&&tt(r.signature,n.mtimeMs,n.ctimeMs,n.size))return H.delete(e),H.set(e,r),r.envelope;let o;try{o=t(await j.readFile(e,"utf8"))}catch{o=null}return or(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function Yd(e,t,n){let r=a=>{let c=JSON.parse(a);return c.version!==K||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=Kt(e),i=await ae(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await ae(Qt(o,t),r);return s===null&&ot(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function Qd(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==K||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=Jt(e),o=await ae(r,n);return t&&o?.context_fingerprint!==t?await ae(Qt(r,t),n):o}async function Zd(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==K||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=Yt(e),o=await ae(r,n);return t&&o?.context_fingerprint!==t?await ae(Qt(r,t),n):o}async function cr(e){let t=ir(e),n=await ae(t,r=>{let o=JSON.parse(r);return o.version!==K||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 j.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function dr(e){let t=sr(e),n=await ae(t,r=>{let o=JSON.parse(r);return o.version!==K||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 j.stat(t),await Me(e)}catch{}return null}async function nt(e,t){await j.mkdir(A.dirname(e),{recursive:!0}),await W(e,JSON.stringify(t));try{let r=await j.stat(e);or(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{H.delete(e)}let n=A.dirname(A.dirname(e));if(e===Kt(n)||e===Jt(n)||e===Yt(n)){let r=Qt(e,t.context_fingerprint);await W(r,JSON.stringify(t));try{let c=await j.stat(r);or(r,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{H.delete(r)}let o=A.dirname(e),i=A.extname(e),s=A.basename(e,i),a=(await j.readdir(o,{withFileTypes:!0}).catch(()=>[])).filter(c=>c.isFile()&&c.name!==A.basename(e)&&c.name.startsWith(`${s}.`)&&c.name.endsWith(i)).map(c=>A.join(o,c.name));if(a.length>hi){let c=(await Promise.all(a.map(async l=>{try{return{path:l,mtime:(await j.stat(l)).mtimeMs}}catch{return null}}))).filter(l=>l!==null);for(let l of c.sort((m,f)=>m.mtime-f.mtime).slice(0,Math.max(0,c.length-hi)))await j.rm(l.path,{force:!0}),H.delete(l.path)}}}function el(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function xi(e,t,n){return e===void 0||el(e,t,n)}function ot(e,t){e&&!e.includes(t)&&e.push(t)}function tt(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function tl(e,t,n){let r=A.join(e,t);try{let o=await j.readdir(r);return{folder:t,dirPath:r,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&o.code!=="ENOENT"&&ot(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function nl(e,t){try{let n=await j.stat(A.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 Gt(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await nl(e,n))))}function rt(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&&tt(o,r.mtime_ms,r.ctime_ms,r.size)})}function rl(e){return yt.some(t=>e.toLowerCase().endsWith(t))}function ol(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function il(e,t,n){if(n)for(let r of await X({path:e,scope:"project"}))ot(t,r)}function gi(e,t,n,r){if(e)return t&&n?n.collections:r}async function sl(e,t,n){let r=await j.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=yn(e);await il(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],l=c!==void 0&&tt(c,o,i,s),m=n.previousBodies[t],f=m!==void 0&&tt(m,o,i,s),h=n.previousCollections[t],_=h!==void 0&&tt(h,o,i,s);if(!(!l||n.includeBody&&!f||n.includeCollections&&!_))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:c.metadata,heavyMetadata:gi(n.includeCollections,_,h,void 0),bodyLength:c.body_length,body:n.includeBody?m.body:void 0};let S=await j.readFile(e,"utf8"),w=Ct(S,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:N=>ot(n.warnings,N)}),R=Xt(w.metadata);return ol(n.state.misses,n.includeBody,n.includeCollections,l,f,_),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:l?c.metadata:R.light,heavyMetadata:gi(n.includeCollections,_,h,R.heavy),bodyLength:l?c.body_length:w.body.length,body:n.includeBody?w.body:void 0}}function al(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?Si(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};xi(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function cl(e,t,n,r){try{let o=await sl(t,n,r);al(t,n,r,o)}catch{ot(r.warnings,`item_list_item_read_failed:${e}/${A.basename(t)}`)}}function dl(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function ll(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function ul(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function fl(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}function ml(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!rl(s))continue;let a=A.join(o,s),c=A.relative(t.pmRoot,a);n.push(cl(r,a,c,t))}return n}async function _l(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!rt(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await nt(Kt(e.pmRoot),{version:K,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await nt(sr(e.pmRoot),{version:K,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,entry_count:Object.keys(e.state.newEntries).length,directory_signatures:e.directorySignatures});let n=[...e.state.documentsById.values()].map(({candidate:r})=>({relativePath:A.relative(e.pmRoot,r.item_path),metadata:Xt(r.metadata).light,linkedFiles:r.metadata.files??[]}));n.length>=e.minimumIndexedItems?await ii({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:n}):await Vt(e.pmRoot)}catch{}}async function pl(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 nt(Jt(e.pmRoot),{version:K,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function yl(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 nt(Yt(e.pmRoot),{version:K,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function lr(e,t,n={}){let r=await dr(e);return n.required!==!0&&(r===null||r.entry_count<ki)?async()=>{}:ne(e,$d,30,t,!1,!1,3e3)}async function pp(e,t){let n=await dr(e);if(n===null)return null;let r=await cr(e);if(r.invalid)return await Me(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&&!rt(i,await Gt(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function bi(e,t){let n=A.relative(e,t);return n===""||n===".."||n.startsWith(`..${A.sep}`)||A.isAbsolute(n)?null:n}async function Me(e){await Promise.all([Kt(e),Jt(e),Yt(e),ir(e),sr(e)].map(async t=>{await j.rm(t,{force:!0}),H.delete(t)})),await Vt(e)}async function hl(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await j.stat(e.mutation.itemPath),n=Xt(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 gl(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function ur(e){let t=bi(e.pmRoot,e.itemPath),n=e.previousItemPath?bi(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await Me(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=Ii(e.preferredFormat,e.typeToFolder,e.schema,vi()),o=await dr(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await cr(e.pmRoot);if(s.invalid)return await Me(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=gl(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 hl({mutation:e});let l=Ei();return await nt(ir(e.pmRoot),{version:K,context_fingerprint:r,base_source_cursor:i,source_cursor:l,directory_signatures:await Gt(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await si({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:l,row:e.document===null?null:{relativePath:t,metadata:Xt(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await Vt(e.pmRoot),[]}catch{return await Me(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function bl(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function wi(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function wl(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function El(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=yn(n);if(!o)continue;let i=e.includeCollections?Si(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);xi(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:A.join(e.pmRoot,n)}})}return[...t.values()].sort((n,r)=>n.candidate.metadata.id.localeCompare(r.candidate.metadata.id)).map(n=>n.candidate)}function kl(e){return e.forceSourceScan||Un()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!rt(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||wi(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||wi(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&wl(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function en(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=vi(),l=Ii(t,n,o,c),m=await cr(e);m.invalid&&await Me(e);let f=await Yd(e,l,i.cacheDiagnostics),h=s?await Qd(e,l):null,_=a?await Zd(e,l):null;Jd(f,h,_,m.envelope);let v=dl(f,l),S=ll(h,l),w=ul(_,l),R=[...new Set(Object.values(n))],N=await Gt(e,R),J=Object.keys(v),$=Math.max(1,Math.floor(i.derivedIndexMinimumItems??ki));if(kl({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:l,existingCache:f,existingBodyCache:h,existingCollectionsCache:_,directorySignatures:N,entryKeys:J,minimumIndexedItems:$,includeBody:s,includeCollections:a,previousBodies:S,previousCollections:w}))return El({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:v,previousBodies:S,previousCollections:w});let ln=await Promise.all(R.map(ps=>tl(e,ps,r))),at=Un(),Y=fl(),un={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,dispatchReadHooks:at,previousEntries:v,previousBodies:S,previousCollections:w,state:Y};await Promise.all(ml(ln,un));let ct=await Gt(e,R),vr=rt(N,ct)?ct:{},fn=Y.misses.metadata||Object.keys(v).length!==Object.keys(Y.newEntries).length||!rt(f?.directory_signatures,vr)||f===null?Ei():f.source_cursor;return await _l({pmRoot:e,contextFingerprint:l,sourceCursor:fn,existingCache:f,previousEntries:v,directorySignatures:vr,state:Y,minimumIndexedItems:$}),s&&await pl({pmRoot:e,contextFingerprint:l,sourceCursor:fn,existingBodyCache:h,previousBodies:S,state:Y}),a&&await yl({pmRoot:e,contextFingerprint:l,sourceCursor:fn,existingCollectionsCache:_,previousCollections:w,state:Y}),bl(Y)}async function Ti(e,t,n,r,o){return(await en(e,t,n,r,o,{includeBody:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}async function Oi(e,t,n,r,o){return(await en(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}import vl from"node:fs/promises";import Ci 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]="86b45d6b-2192-5d31-8f73-94d6e6b17dfc")}catch{}})();var tn="_workspace";function Ai(e){return Ci.join(e,"history",`${tn}.jsonl`)}function Sl(e,t){return{metadata:{id:tn,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 Ri(e){let t=$t();for(let n of e)t=Ut(t,n.patch).document;return zt(t)}async function Ni(e){let t=Ai(e.pmRoot),n=await Ke(t,tn),r=Zn(n);if(!r.ok)throw new TypeError(`Workspace history verification failed: ${r.errors.join(", ")}`);let o=e.idempotencyKey===void 0?void 0:n.find(f=>f.op===`${e.op}:${e.idempotencyKey}`);if(o)return{entry:o,historyPath:t};let i=new Date().toISOString(),s=n.length===0?je:Ri(n),a="documents"in s.metadata&&typeof s.metadata.documents=="object"&&s.metadata.documents!==null&&!Array.isArray(s.metadata.documents)?s.metadata.documents:{},c=a[e.documentPath];if(c!==void 0&&G(c)!==G(e.before))throw new T(`Workspace history state for "${e.documentPath}" changed outside the audited mutation path.`,I.CONFLICT,{code:"workspace_history_state_conflict",reason:"out_of_band_workspace_state",required:"Reconcile the singleton document with its matching _workspace history state before retrying the mutation.",why:"Accepting the write would make the append-only audit stream describe a state that was not actually observed.",examples:["pm history _workspace --verify","pm validate --check-history-drift --fix-hints"],nextSteps:["Review the version-control change that altered the singleton and preserve the intended document plus its matching workspace history.","Rerun the original mutation only after the on-disk singleton agrees with the latest audited workspace state."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify"}});let l=Sl({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),m=Re({nowIso:i,author:e.author,op:e.idempotencyKey===void 0?e.op:`${e.op}:${e.idempotencyKey}`,before:s,after:l,message:e.message});return await Ne(t,m),{entry:m,historyPath:t}}async function Tp(e){let t=await ne(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Ni(e)}finally{await t()}}async function Op(e){let t=await ne(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=Ai(e.pmRoot),r=await Ke(n,tn),o=Zn(r);if(!o.ok)throw new TypeError(`Workspace history verification failed: ${o.errors.join(", ")}`);let i=r.length===0?je:Ri(r),s=Re({nowIso:new Date().toISOString(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await Ne(n,s),{entry:s,historyPath:n}}finally{await t()}}async function Di(e,t){if(t===e.raw)return!1;let n=t===null?null:JSON.parse(t),r=JSON.parse(e.raw);await W(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await Ni({pmRoot:e.pmRoot,documentPath:Ci.relative(e.pmRoot,e.filePath).replaceAll("\\","/"),before:n,after:r,op:e.op,author:e.author,lockTtlSeconds:e.lockTtlSeconds,lockWaitMs:e.lockWaitMs,message:e.message})}catch(o){throw t===null?await vl.rm(e.filePath,{force:!0}):await W(e.filePath,t),o}return!0}async function Cp(e){let t=await ne(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=await me(e.filePath),r=await e.mutate(n);return{changed:await Di({...e,raw:r.raw},n),result:r.result}}finally{await t()}}async function Mi(e){let t=await ne(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Di(e,await me(e.filePath))}finally{await t()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="027f6acb-15cc-5707-85ed-b5298b6b6abe")}catch{}})();var P={ok:!1},u=e=>typeof e=="string"?{ok:!0,value:e}:P,x=e=>typeof e=="boolean"?{ok:!0,value:e}:P;function C(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?P:{ok:!0,value:t}}function O(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:P}function p(e,t){return n=>{if(!Array.isArray(n)||t!==void 0&&n.length>t)return P;let r=[];for(let o of n){let i=e(o);if(!i.ok)return P;r.push(i.value)}return{ok:!0,value:r}}}function mr(e,t){return n=>typeof n=="string"&&n.length>0&&n.length<=e&&n===n.trim()&&(t===void 0||t.test(n))?{ok:!0,value:n}:P}function d(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function nn(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return P;let n={};for(let[r,o]of Object.entries(t)){let i=e(o);if(!i.ok)return P;n[r]=i.value}return{ok:!0,value:n}}}function k(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return P;let n=t,r={};for(let[o,i]of Object.entries(e)){let s=i(n[o]);if(!s.ok)return P;s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var Il=k({key:u,values:p(u),required:d(x),aliases:d(p(u)),description:d(u)}),xl=k({command:O("create","update"),option:u,required:d(x),visible:d(x),enabled:d(x)}),Tl=k({name:u,description:d(u),default_status:d(u),folder:d(u),aliases:d(p(u)),required_create_fields:d(p(u)),required_create_repeatables:d(p(u)),options:d(p(Il)),command_option_policies:d(p(xl))}),Ol=k({id:u,aliases:d(p(u)),roles:d(p(O(...Ir))),description:d(u),order:d(C())}),Cl=k({key:u,metadata_key:d(u),front_matter_key:d(u),cli_flag:d(u),cli_aliases:d(p(u)),description:d(u),type:d(O(...xr)),commands:d(p(O(...Tr))),repeatable:d(x),required:d(x),required_on_create:d(x),required_types:d(p(u)),allow_unset:d(x)}),Al=e=>{if(!Array.isArray(e)||e.length!==2)return P;let[t,n]=e;return typeof t!="string"||typeof n!="string"?P:{ok:!0,value:[t,n]}},Rl=k({type:u,allowed_transitions:p(Al)}),Nl=d(k({version:d(C({int:!0})),files:d(k({types:d(u),statuses:d(u),fields:d(u),workflows:d(u)})),statuses:d(p(Ol)),fields:d(p(Cl)),workflow:d(k({draft_status:d(u),open_status:d(u),in_progress_status:d(u),blocked_status:d(u),close_status:d(u),canceled_status:d(u)})),type_workflows:d(p(Rl)),unknown_field_policy:d(O(...Or))})),Dl=d(k({preset:d(O(...Cr)),ownership_enforcement:d(O("none","warn","strict")),create_mode_default:d(O("progressive","strict")),close_validation_default:d(O("off","warn","strict")),require_close_reason:d(x),parent_reference:d(O("warn","strict_error")),metadata_profile:d(O("core","strict","custom")),force_required_for_stale_lock:d(x),create_default_type:d(u),workflow_enforcement:d(O("off","warn","strict")),duplicate_detection_mode:d(O("off","advisory","strict")),duplicate_detection_threshold:d(C({min:0,max:1})),duplicate_detection_limit:d(C({int:!0,min:0,max:20}))})),Ml=k({name:u,disabled:d(x),require_trusted:d(x),require_provenance:d(x),sandbox_profile:d(O("none","restricted","strict")),allowed_capabilities:d(p(u)),blocked_capabilities:d(p(u)),allowed_surfaces:d(p(u)),blocked_surfaces:d(p(u)),allowed_commands:d(p(u)),blocked_commands:d(p(u)),allowed_actions:d(p(u)),blocked_actions:d(p(u)),allowed_services:d(p(u)),blocked_services:d(p(u))}),fr=O("block","warn"),Ll=e=>typeof e=="string"?fr(e):k({global:d(fr),project:d(fr)})(e),Pl=d(k({mode:d(O("off","warn","enforce")),trust_mode:d(O("off","warn","enforce")),pm_max_version_exceeded_mode:d(Ll),require_provenance:d(x),trusted_extensions:d(p(u)),default_sandbox_profile:d(O("none","restricted","strict")),allowed_extensions:d(p(u)),blocked_extensions:d(p(u)),allowed_capabilities:d(p(u)),blocked_capabilities:d(p(u)),allowed_surfaces:d(p(u)),blocked_surfaces:d(p(u)),allowed_commands:d(p(u)),blocked_commands:d(p(u)),allowed_actions:d(p(u)),blocked_actions:d(p(u)),allowed_services:d(p(u)),blocked_services:d(p(u)),extension_overrides:d(p(Ml))})),we=mr(128),jl=k({harness:mr(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:d(p(we,64)),model_environment_keys:d(p(we,64)),session_environment_keys:d(p(we,64)),provenance_environment_keys:d(nn(p(we,64))),provenance_resolvers:d(nn(O("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:d(p(we,64)),argv_markers:d(p(we,64)),client_names:d(p(we,64))}),Fl=k({version:C({int:!0}),id_prefix:u,ids:d(k({token_length:d(C({int:!0,min:4,max:12}))})),author_default:u,agent_identity:d(k({probes_enabled:d(x),identity_vocabulary:d(k({version:C({int:!0,positive:!0}),aliases:nn(mr(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:p(jl)})),mutation_guard:d(k({require_attributed_author:d(x),secret_guard:d(O("off","advise","block")),stale_in_progress_hours:d(C({int:!0,positive:!0}))})),item_format:d(O("toon","json_markdown")),locks:k({ttl_seconds:C({int:!0}),wait_ms:d(C({int:!0,min:0}))}),checkpoints:d(k({retention_days:d(C({int:!0,positive:!0}))})),output:k({default_format:O("toon","json")}),history:d(k({missing_stream:O("auto_create","strict_error"),compact_policy:d(k({enabled:d(x),max_entries:d(C({int:!0,positive:!0})),trigger:d(O("health_warn","auto"))}))})),validation:d(k({sprint_release_format:O("warn","strict_error"),parent_reference:d(O("warn","strict_error")),metadata_profile:d(O("core","strict","custom")),metadata_required_fields:d(p(u)),lifecycle_stale_blocker_reason_patterns:d(p(u)),lifecycle_closure_like_blocked_reason_patterns:d(p(u)),lifecycle_closure_like_resolution_patterns:d(p(u)),lifecycle_closure_like_actual_result_patterns:d(p(u)),estimate_defaults_by_type:d(nn(C({int:!0,positive:!0})))})),governance:Dl,workflow:d(k({definition_of_done:p(u)})),testing:d(k({record_results_to_items:x})),telemetry:d(k({enabled:x,first_run_prompt_completed:d(x),capture_level:d(O("minimal","redacted","max")),endpoint:d(u),installation_id:d(u),retention_days:d(C({int:!0,positive:!0}))})),agent_guidance:d(k({prompt_completed:d(x),declined:d(x),declined_at:d(u),template_version:d(C({int:!0,positive:!0})),last_checked_files:d(p(u))})),item_types:d(k({definitions:p(Tl)})),schema:Nl,context:d(k({default_depth:d(O("brief","standard","deep")),activity_limit:d(C({int:!0,positive:!0})),stale_threshold_days:d(C({int:!0,positive:!0})),sections:d(k({hierarchy:d(x),activity:d(x),progress:d(x),recently_created:d(x),unparented:d(x),blockers:d(x),files:d(x),workload:d(x),staleness:d(x),tests:d(x)}))})),extensions:k({enabled:p(u),disabled:p(u),policy:Pl}),search:k({score_threshold:C(),hybrid_semantic_weight:d(C()),max_results:C({int:!0}),embedding_model:u,embedding_corpus_max_characters:d(C()),embedding_batch_size:C({int:!0}),embedding_timeout_ms:d(C({int:!0})),scanner_max_batch_retries:C({int:!0}),provider:d(u),corpus_fields:d(p(u)),mutation_refresh_policy:d(O("cache_only","semantic_configured","semantic_auto")),query_expansion:d(k({enabled:d(x),provider:d(u)})),rerank:d(k({enabled:d(x),model:d(u),top_k:d(C({int:!0,positive:!0}))})),bm25:d(k({k1:d(C()),b:d(C())}))}),providers:k({openai:k({base_url:u,api_key:u,model:u}),ollama:k({base_url:u,model:u})}),vector_store:k({adapter:d(u),collection_name:d(u),qdrant:k({url:u,api_key:u}),lancedb:k({path:u})})});function Li(e){let t=Fl(e);return t.ok?{success:!0,data:t.value}:{success:!1}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2d377bc4-c624-561c-9856-405c82099070")}catch{}})();var $l={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},Pi=120;function _r(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function Fi(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var zl=Fi($l),ji=new WeakMap;function Ul(e){let t=ji.get(e);if(t)return t;let n=Fi(e);return ji.set(e,n),n}function Dp(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return Pi;if(t){let o=Ul(t).get(n);if(_r(o))return Math.floor(o)}let r=zl.get(n);return _r(r)?Math.floor(r):Pi}function pr(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||!_r(r)||(t[o]=Math.floor(r))}return t}import{stat as Hl}from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="60da76ea-0bd3-56a9-a2bc-d88ba76e1013")}catch{}})();var rn=new Map;function $i(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function Wl(e){try{let t=await Hl(e);return{path:e,mtime_ms:t.mtimeMs,size:t.size}}catch{return{path:e,mtime_ms:null,size:null}}}async function ce(e){let t=$i(e),n=await Promise.all(t.map(r=>Wl(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function it(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 zi(e){return rn.get(e)}function on(e,t){let n=$i(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));rn.set(e,{tracked_paths:n,signatures:r,value:t.value})}function de(e){if(e){rn.delete(e);return}rn.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a434b9ea-4692-51c5-8761-0f1759fff394")}catch{}})();var Bl="settings:write",qi=Symbol("pm.settings.persist_source"),ql=128,Vl=new Set(["off","advisory","strict"]);function Ui(e){return structuredClone(Rr[e])}function Gl(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:b.governance.preset}function Hi(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 Xl(e){return e.preset==="custom"?Hi({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):Hi({preset:e.preset},e)}function Kl(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),Vl.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 an(e){let t=e.governance??{},n=Gl(t.preset),r=Kl(t);if(n==="custom"){let s=Ui("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=Ui(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function Vi(){return structuredClone(b)}function Gi(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:b.search.mutation_refresh_policy}function Xi(e){return typeof e=="boolean"?e:b.search.query_expansion.enabled}function Ki(e){return typeof e!="string"?b.search.query_expansion.provider:e.trim()}function Ji(e){return typeof e=="boolean"?e:b.search.rerank.enabled}function Yi(e){return typeof e!="string"?b.search.rerank.model:e.trim()}function Qi(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:b.search.rerank.top_k}function Zi(e){if(typeof e!="string")return b.vector_store.collection_name;let n=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,ql);return n.length>0?n:b.vector_store.collection_name}function yr(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function Jl(e,t){let n=e.schema,r=yr(n?.statuses),o=yr(n?.fields),i=yr(n?.type_workflows);return{source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:Le(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:Le(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 es(e,t){Object.defineProperty(e,qi,{value:t,writable:!0,configurable:!0,enumerable:!1})}function ts(e){let t=e[qi];if(!(!t||typeof t!="object"))return t}function sn(e){let t=structuredClone(e.settings),n=ts(e.settings);return n&&es(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function Yl(e,t,n){let r=Ue(t);return[n,He(e,r.files.types,ze.types),He(e,r.files.statuses,ze.statuses),He(e,r.files.fields,ze.fields),He(e,r.files.workflows,ze.workflows)]}async function Ql(e,t,n){let r=await ce(t);on(e,{tracked_paths:t,signatures:r,value:sn(n)})}async function Zl(e,t,n){try{await Ql(e,t,n)}catch{de(e)}}function Wi(e,t){return e.find(n=>n.path===t)}function eu(e,t,n){for(let r of n){let o=Wi(e,r),i=Wi(t,r);if(!o||!i||!it([o],[i]))return!1}return!0}async function hr(e,t,n,r,o){try{let i=await ce(t);if(!eu(r,i,o)){de(e);return}on(e,{tracked_paths:t,signatures:i,value:sn(n)})}catch{de(e)}}function tu(e,t){let n=Ue(e.schema),r=Le(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=Ee(r,t.runtime_item_type_definitions),s=Ee(n.statuses,t.runtime_schema_statuses),a=Ee(n.fields,t.runtime_schema_fields),c=Ee(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?Le(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 st(e){return{settings:Vi(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function nu(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function br(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function ns(e){let t=b.agent_guidance,n=e?.template_version;return{prompt_completed:e?.prompt_completed===!0,declined:e?.declined===!0,declined_at:typeof e?.declined_at=="string"?e.declined_at:t.declined_at,template_version:typeof n=="number"&&Number.isInteger(n)&&n>0?n:t.template_version,last_checked_files:br(e?.last_checked_files??t.last_checked_files)}}function V(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function ru(e){return e==="off"||e==="warn"||e==="enforce"?e:b.extensions.policy.mode}function ou(e){return e==="off"||e==="warn"||e==="enforce"?e:b.extensions.policy.trust_mode}function rs(e){return e==="none"||e==="restricted"||e==="strict"?e:b.extensions.policy.default_sandbox_profile}function iu(e){let t=e.name.trim().toLowerCase();if(t.length===0)return null;let n={name:t};e.disabled===!0&&(n.disabled=!0),e.require_trusted===!0&&(n.require_trusted=!0),e.require_provenance===!0&&(n.require_provenance=!0),e.sandbox_profile!==void 0&&(n.sandbox_profile=rs(e.sandbox_profile));let r=V(e.allowed_capabilities),o=V(e.blocked_capabilities),i=V(e.allowed_surfaces),s=V(e.blocked_surfaces),a=V(e.allowed_commands),c=V(e.blocked_commands),l=V(e.allowed_actions),m=V(e.blocked_actions),f=V(e.allowed_services),h=V(e.blocked_services);return r.length>0&&(n.allowed_capabilities=r),o.length>0&&(n.blocked_capabilities=o),i.length>0&&(n.allowed_surfaces=i),s.length>0&&(n.blocked_surfaces=s),a.length>0&&(n.allowed_commands=a),c.length>0&&(n.blocked_commands=c),l.length>0&&(n.allowed_actions=l),m.length>0&&(n.blocked_actions=m),f.length>0&&(n.allowed_services=f),h.length>0&&(n.blocked_services=h),n}function su(e){let t=new Map;for(let n of e??[]){let r=iu(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function gr(e){return e==="block"||e==="warn"?e:void 0}function au(e){if(typeof e=="string")return gr(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=gr(e.global),n=gr(e.project);return t===void 0&&n===void 0?void 0:{...t!==void 0?{global:t}:{},...n!==void 0?{project:n}:{}}}}function z(e,t){return V(e?.[t]??b.extensions.policy[t])}function os(e){let t=au(e?.pm_max_version_exceeded_mode);return{mode:ru(e?.mode),trust_mode:ou(e?.trust_mode),...t!==void 0?{pm_max_version_exceeded_mode:t}:{},require_provenance:e?.require_provenance===!0,trusted_extensions:z(e,"trusted_extensions"),default_sandbox_profile:rs(e?.default_sandbox_profile),allowed_extensions:z(e,"allowed_extensions"),blocked_extensions:z(e,"blocked_extensions"),allowed_capabilities:z(e,"allowed_capabilities"),blocked_capabilities:z(e,"blocked_capabilities"),allowed_surfaces:z(e,"allowed_surfaces"),blocked_surfaces:z(e,"blocked_surfaces"),allowed_commands:z(e,"allowed_commands"),blocked_commands:z(e,"blocked_commands"),allowed_actions:z(e,"allowed_actions"),blocked_actions:z(e,"blocked_actions"),allowed_services:z(e,"allowed_services"),blocked_services:z(e,"blocked_services"),extension_overrides:su(e?.extension_overrides??b.extensions.policy.extension_overrides)}}function is(e){return[...new Set((e??[]).map(n=>n.trim().toLowerCase().replaceAll("-","_")))].filter(n=>n.length>0).sort((n,r)=>n.localeCompare(r)).filter(n=>["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"].includes(n))}function le(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function D(e,t){return e===void 0?t:e}function U(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function wr(e){return Array.isArray(e)?e:[]}function cu(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:is(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:pr(e.validation?.estimate_defaults_by_type)}}function du(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 lu(e,t){return{...t.search,...e.search,mutation_refresh_policy:Gi(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:Xi(e.search?.query_expansion?.enabled),provider:Ki(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:Ji(e.search?.rerank?.enabled),model:Yi(e.search?.rerank?.model),top_k:Qi(e.search?.rerank?.top_k)}}}function uu(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:Zi(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function fu(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function mu(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 _u(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function Le(e){let t=(e??[]).map(r=>Dr(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 ss(e){let t=Vi(),n=an({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:fu(e,t),locks:{...t.locks,...e.locks},ids:{...t.ids,...e.ids},agent_identity:structuredClone(e.agent_identity??t.agent_identity),mutation_guard:{...t.mutation_guard,...e.mutation_guard},checkpoints:{...t.checkpoints,...e.checkpoints},output:{...t.output,...e.output},history:{...t.history,...e.history,compact_policy:{...t.history.compact_policy,...e.history?.compact_policy}},validation:cu(e,t,n),governance:n,workflow:{definition_of_done:[...e.workflow?.definition_of_done??t.workflow.definition_of_done]},testing:{record_results_to_items:e.testing?.record_results_to_items??t.testing.record_results_to_items},telemetry:du(e,t),agent_guidance:ns(e.agent_guidance??t.agent_guidance),item_types:{definitions:Le(e.item_types?.definitions)},schema:Ue(e.schema??t.schema),context:mu(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:os(e.extensions.policy??t.extensions.policy)},search:lu(e,t),providers:_u(e,t),vector_store:uu(e,t)}}function pu(e){e.agent_identity=E(e.agent_identity,["probes_enabled","identity_vocabulary","harness_signals"]);let t=e.agent_identity;Object.hasOwn(t,"identity_vocabulary")&&(t.identity_vocabulary=E(U(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=wr(e.agent_identity.harness_signals).map(n=>E(U(n),["harness","environment_keys","model_environment_keys","session_environment_keys","provenance_environment_keys","provenance_resolvers","provenance_unavailable_dimensions","argv_markers","client_names"])),e.locks=E(e.locks,["ttl_seconds","wait_ms"]),e.ids=E(e.ids,["token_length"]),e.mutation_guard=E(e.mutation_guard,["require_attributed_author","secret_guard","stale_in_progress_hours"]),e.checkpoints=E(e.checkpoints,["retention_days"]),e.output=E(e.output,["default_format"]),e.history=E(e.history,["missing_stream","compact_policy"]),e.validation=E(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=E(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=E(e.workflow,["definition_of_done"]),e.testing=E(e.testing,["record_results_to_items"]),e.telemetry=E(e.telemetry,["enabled","first_run_prompt_completed","capture_level","endpoint","installation_id","retention_days"]),e.agent_guidance=E(e.agent_guidance,["prompt_completed","declined","declined_at","template_version","last_checked_files"]),e.item_types=E(e.item_types,["definitions"]),e.schema=E(e.schema,["version","files","statuses","fields","workflow","type_workflows","unknown_field_policy"]),e.schema.files=E(U(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=E(U(e.schema.workflow),["draft_status","open_status","in_progress_status","blocked_status","close_status","canceled_status"]),e.context=E(e.context,["default_depth","activity_limit","stale_threshold_days","sections"]),e.context.sections=E(U(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=E(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=E(U(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=wr(e.extensions.policy.extension_overrides).map(n=>E(U(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=E(e.search,["score_threshold","hybrid_semantic_weight","max_results","embedding_model","embedding_corpus_max_characters","embedding_batch_size","embedding_timeout_ms","scanner_max_batch_retries","provider","mutation_refresh_policy","query_expansion","rerank"]),e.search.query_expansion=E(U(e.search.query_expansion),["enabled","provider"]),e.search.rerank=E(U(e.search.rerank),["enabled","model","top_k"]),e.providers=E(e.providers,["openai","ollama"]),e.providers.openai=E(U(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=E(U(e.providers.ollama),["base_url","model"]),e.vector_store=E(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=E(U(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=E(U(e.vector_store.lancedb),["path"])}function yu(e){return{...e,locks:D(e.locks,b.locks),ids:D(e.ids,b.ids),agent_identity:D(e.agent_identity,b.agent_identity),mutation_guard:D(e.mutation_guard,b.mutation_guard),checkpoints:D(e.checkpoints,b.checkpoints),output:D(e.output,b.output),history:D(e.history,b.history),validation:D(e.validation,b.validation),workflow:D(e.workflow,b.workflow),testing:D(e.testing,b.testing),telemetry:D(e.telemetry,b.telemetry),agent_guidance:D(e.agent_guidance,b.agent_guidance),item_types:D(e.item_types,b.item_types),schema:D(e.schema,b.schema),context:D(e.context,b.context),extensions:D(e.extensions,b.extensions),search:D(e.search,b.search),providers:D(e.providers,b.providers),vector_store:D(e.vector_store,b.vector_store)}}function hu(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:is(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:le(e.validation?.lifecycle_stale_blocker_reason_patterns??b.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:le(e.validation?.lifecycle_closure_like_blocked_reason_patterns??b.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:le(e.validation?.lifecycle_closure_like_resolution_patterns??b.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:le(e.validation?.lifecycle_closure_like_actual_result_patterns??b.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:pr(e.validation?.estimate_defaults_by_type)}}function gu(e){return{...b.search,...e.search,mutation_refresh_policy:Gi(e.search?.mutation_refresh_policy),query_expansion:{...b.search.query_expansion,...e.search?.query_expansion,enabled:Xi(e.search?.query_expansion?.enabled),provider:Ki(e.search?.query_expansion?.provider)},rerank:{...b.search.rerank,...e.search?.rerank,enabled:Ji(e.search?.rerank?.enabled),model:Yi(e.search?.rerank?.model),top_k:Qi(e.search?.rerank?.top_k)}}}function bu(e){return{default_depth:e.context?.default_depth??b.context.default_depth,activity_limit:e.context?.activity_limit??b.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??b.context.stale_threshold_days,sections:{...b.context.sections,...e.context?.sections}}}function wu(e){return{...e.vector_store,adapter:e.vector_store?.adapter??b.vector_store.adapter,collection_name:Zi(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function Eu(e,t,n,r){return{...e,item_format:"toon",validation:hu(e,t),governance:t,agent_guidance:ns(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:gu(e),context:bu(e),extensions:{enabled:br(e.extensions?.enabled),disabled:br(e.extensions?.disabled),policy:os(e.extensions?.policy)},vector_store:wu(e)}}function as(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(!Ee(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:{};as(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var cs=["version","id_prefix","ids","author_default","agent_identity","mutation_guard","item_format","locks","checkpoints","output","history","validation","governance","workflow","testing","telemetry","agent_guidance","item_types","schema","context","extensions","search","providers","vector_store"];function Bi(e,t){let n=yu(e),r=an(n),o=Ue(n.schema),i=tu(n,t),s=Eu(n,r,o,i),a=E({...s,governance:Xl(r)},cs);return pu(a),a}function ku(e,t={}){let n=Bi(e,t.persist_source);if(t.persist_source){let r=ss(t.persist_source.source_settings);r.item_types={definitions:structuredClone(t.persist_source.runtime_item_type_definitions)},r.schema={...r.schema,statuses:structuredClone(t.persist_source.runtime_schema_statuses),fields:structuredClone(t.persist_source.runtime_schema_fields),type_workflows:structuredClone(t.persist_source.runtime_schema_type_workflows)};let o=Bi(r,t.persist_source),i=structuredClone(t.persist_source.source_settings);return as(i,o,n),`${JSON.stringify(E(i,cs),null,2)}
|
|
151
|
+
`}return`${JSON.stringify(n,null,2)}
|
|
152
|
+
`}async function ds(e){let t=_n(e),n=[t];await X({path:t,scope:"project"});let r=zi(e);if(r){let l=await ce(r.tracked_paths);if(it(l,r.signatures))return sn(r.value)}let o=await ce([t]),i;try{i=await me(t)}catch{return st("settings_read_fs_error")}if(i===null){let l=st();return await hr(e,[t],l,o,[t]),l}let s=await ce([t]);if(!it(o,s))return de(e),ds(e);let a;try{a=JSON.parse(i)}catch{let l=st("settings_read_invalid_json");return await hr(e,[t],l,s,[t]),l}let c=Li(a);if(!c.success){let l=st("settings_read_invalid_schema");return await hr(e,[t],l,s,[t]),l}try{let l=ss(c.data),m=Yl(e,l.schema,t);n=m;let f=await ce(m),h=await qr(e,l.schema),_=await Vr(e,l.schema),v=await ce(m),S={...l,item_types:{definitions:Le([...l.item_types.definitions,...wr(_.type_definitions_from_file)])},schema:_.schema};es(S,Jl(c.data,S));let w={settings:S,metadata:{has_explicit_item_format:nu(a)},warnings:[...c.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],...h.created_paths.map(R=>`runtime_schema_bootstrap_created:${R}`),..._.warnings]};return h.created_paths.length===0?it(f,v)?on(e,{tracked_paths:m,signatures:v,value:sn(w)}):de(e):de(e),w}catch{let l=st("settings_read_merge_failed");return await Zl(e,n,l),l}}async function Kp(e){return(await ds(e)).settings}async function Jp(e,t,n=Bl){let r=_n(e),o=ku(t,{persist_source:ts(t)});try{await Mi({pmRoot:e,filePath:r,raw:o,op:n,author:so(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),await q({path:r,scope:"project",op:n})}finally{de(e)}}import vu from"node:fs/promises";import Su from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="58fd6fef-9c13-5c6a-9110-b760461896aa")}catch{}})();function Iu(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function xu(e,t){return new T(`Missing history stream for ${e}. ${t} requires history streams when settings.history.missing_stream is strict_error.`,I.NOT_FOUND)}async function Tu(e,t){return await Nr(Su.dirname(e)),await(await vu.open(e,"a")).close(),q({path:e,scope:"project",op:`${t}:history:auto_create`})}async function Er(e){return Ou({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function Ou(e){let t=Iu(e.itemIds),n=[],r=[];for(let o of t){let i=$e(e.pmRoot,o);if(!await pt(i)){if(e.settings.history.missing_stream==="strict_error")throw xu(o,e.commandLabel);r.push(...await Tu(i,e.commandLabel)),r.push(`history_stream_auto_created:${o}`),n.push(o)}}return{auto_created_ids:n,warnings:r}}import ue from"node:fs/promises";import Pe 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]="f43e1170-e797-5a0c-b02e-d31e002ab275")}catch{}})();async function Cu(e){try{return await ue.access(e),!0}catch{return!1}}function cn(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function Au(e,t){e&&(e.includes(t)||e.push(t))}function ls(e){return e??_t(Xe())}function Ru(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}function dn(e){return new T(`Tracker root is not a directory at ${e}.`,I.USAGE,{code:"tracker_root_not_directory",reason:"not_a_directory",nextSteps:["Pass the tracker directory itself, usually <workspace>/.agents/pm."]})}async function Nu(e){let t=Pe.parse(Pe.resolve(e)).root,n=Pe.dirname(Pe.resolve(e));for(;n!==t;){let r;try{r=await ue.stat(n)}catch(o){if(cn(o,"ENOTDIR"))throw dn(e);if(!cn(o,"ENOENT"))throw o;n=Pe.dirname(n);continue}if(!r.isDirectory())throw dn(e);break}}async function kr(e){let t;try{t=await ue.stat(e)}catch(n){throw cn(n,"ENOENT")?(await Nu(e),new T(`Tracker root does not exist at ${e}.`,I.NOT_FOUND,{code:"tracker_root_missing",reason:"missing",nextSteps:["Confirm the tracker root path and retry the SDK read.","Initialize a tracker before enumerating its item metadata."]})):cn(n,"ENOTDIR")?dn(e):n}if(!t.isDirectory())throw dn(e)}async function us(e,t,n="pm-",r,o=fe){let i=tr(t,n),s=er(t),a=i===s?[i]:[i,s],c=Object.entries(o),l=Ru(r);for(let m of a)for(let[f]of c)for(let h of l){let _=pn(e,f,m,h,o);if(await Cu(_))return{id:m,type:f,itemPath:_,item_format:h}}return null}async function fs(e,t={}){let n=await ue.readFile(e.itemPath,"utf8");await X({path:e.itemPath,scope:"project"});let r=Ct(n,{format:e.item_format,schema:t.schema,extensionFieldNames:ls(t.extensionFieldNames),onWarning:o=>Au(t.warnings,o)});return{raw:n,document:r}}async function Du(e,t,n=fe,r,o){return await kr(e),(await Ti(e,t,n,r,o)).map(s=>s.metadata)}async function Iy(e,t,n=fe,r,o){return await kr(e),(await Oi(e,t,n,r,o)).map(s=>s.metadata)}async function xy(e,t,n=fe,r,o,i={}){return await kr(e),(await en(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan})).map(a=>({...a.metadata,body:a.body}))}function ms(e){return{async get(t){let n=await us(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await fs(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>Du(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function Mu(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await ue.readdir(Pe.join(e,o));for(let s of i)for(let a of yt)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function Lu(e,t,n,r){let o=tr(t,n),i=await Mu(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(c=>({id:c,distance:Sr(c,o,s)})).filter(c=>c.distance!==null).sort((c,l)=>c.distance-l.distance).slice(0,3).map(c=>c.id)}async function Pu(e,t,n,r){let o=await Lu(e,t,n,r),i=["Confirm the active --path/PM_PATH scope, then retry with a valid id."];return o.length>0&&i.unshift(`Did you mean one of: ${o.join(", ")}?`),new T(`Item ${t} not found`,I.NOT_FOUND,{nextSteps:i})}function ju(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 _s(e){let t=e.typeToFolder??Mr(e.settings,Xe()).type_to_folder,n=await us(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await Pu(e.pmRoot,e.id,e.settings.id_prefix,t);let r=await ne(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 fs(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||a,l=io(e.author),m=an(e.settings);if(a&&c!==l&&!e.force&&!ju(e.op,e.bypassAssigneeConflict)){if(m.ownership_enforcement==="strict")throw new T(`Item ${n.id} is assigned to ${a}. Use --force to override.`,I.CONFLICT);m.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 Fu(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 $u(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await W(e.originalItemPath,e.originalRaw),await ue.rm(e.effectiveTargetItemPath,{force:!0});return}await W(e.originalItemPath,e.originalRaw)}}async function Ty(e){let t=await _s({pmRoot:e.pmRoot,settings:e.settings,id:e.id,op:e.op,author:e.author,force:e.force,bypassAssigneeConflict:e.bypassAssigneeConflict,extensionFieldNames:e.extensionFieldNames,typeToFolder:e.typeToFolder}),{typeToFolder:n,located:r,originalRaw:o,document:i,warnings:s,releaseLock:a}=t;try{let c=B(i,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),l=B(structuredClone(i),{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),m=await e.mutate(l);if(e.skipNoop===!0&&m.changedFields.length===0)return{item:c.metadata,body:c.body,changedFields:[],warnings:[...s,...m.warnings??[]]};l.metadata.updated_at=he();let f=B(l,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames});await zn({pm_root:e.pmRoot,operation:e.op,before:c,after:f,changed_fields:m.changedFields,sdk:ms({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let h=await Er({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),_="toon",v=Co(f,{format:_,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),S=pn(e.pmRoot,f.metadata.type,r.id,_,n),w=$e(e.pmRoot,r.id),R=await Z("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:S,history_path:w,item_format:_,before:c,after:f,contents:v}),{effectiveTargetItemPath:N,effectiveSerializedAfter:J,skipItemWrite:$}=Fu(R,S,v),ln=await lr(e.pmRoot,e.author),at=[];try{$||await W(N,J),!$&&N!==r.itemPath&&await ue.rm(r.itemPath);let un=Re({nowIso:f.metadata.updated_at,author:e.author,op:e.op,before:c,after:f,message:e.message});try{await Ne(w,un)}catch(ct){throw await $u({skipItemWrite:$,effectiveTargetItemPath:N,originalItemPath:r.itemPath,originalRaw:o}),ct}$||(at=await ur({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:N,previousItemPath:r.itemPath,document:f}))}finally{await ln()}let Y=[...await q({path:N,scope:"project",op:e.op,item_id:f.metadata.id,item_type:f.metadata.type,before:c,after:f,changed_fields:m.changedFields}),...await q({path:w,scope:"project",op:`${e.op}:history`,item_id:f.metadata.id,item_type:f.metadata.type,before:c,after:f,changed_fields:m.changedFields})];return $n({id:f.metadata.id,op:e.op,item_type:f.metadata.type,previous_status:c.metadata.status,status:f.metadata.status,previous:At(c.metadata,m.changedFields),current:At(f.metadata,m.changedFields),changed_fields:m.changedFields}),{item:f.metadata,body:f.body,changedFields:m.changedFields,warnings:[...s,...m.warnings??[],...h.warnings,...R.warnings,...at,...Y]}}finally{await a()}}async function Oy(e){let t=await _s({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=ls(void 0),c=B(o,{schema:e.settings.schema,extensionFieldNames:a});await zn({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:ms({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let l=await Er({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),m=he(),f=je,h=Re({nowIso:m,author:e.author,op:"delete",before:c,after:f,message:e.message}),_=$e(e.pmRoot,n.id),v=await Z("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:_,before:c}),S=n.itemPath,w=!1;if(v.handled&&typeof v.result=="object"&&v.result!==null){let $=v.result;typeof $.item_path=="string"&&$.item_path.trim().length>0&&(S=$.item_path),$.skip_delete===!0&&(w=!0)}if(e.dryRun===!0)return{item:c.metadata,changedFields:["deleted"],targetPath:S,warnings:[...i,...l.warnings,...v.warnings]};let R=await lr(e.pmRoot,e.author),N=[];try{w||await ue.rm(S);try{await Ne(_,h)}catch($){throw w||await W(S,r),$}w||(N=await ur({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:S,document:null}))}finally{await R()}let J=[...await q({path:S,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:f,changed_fields:["deleted"]}),...await q({path:_,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:f,changed_fields:["deleted"]})];return $n({id:c.metadata.id,op:"delete",item_type:c.metadata.type,previous_status:c.metadata.status,previous:At(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...i,...l.warnings,...v.warnings,...N,...J]}}finally{await s()}}export{Kf as a,gc as b,cm as c,dm as d,lm as e,um as f,fm as g,mm as h,_m as i,pm as j,Xe as k,$n as l,At as m,q as n,zn as o,X as p,Un as q,ym as r,hm as s,Z as t,Wc as u,pe as v,gn as w,Hu as x,Wu as y,kn as z,ws as A,Yu as B,Qu as C,Zu as D,xn as E,no as F,ef as G,tf as H,nf as I,Ds as J,io as K,so as L,he as M,F as N,ff as O,mf as P,ne as Q,go as R,We as S,If as T,xf as U,Ie as V,_o as W,pf as X,po as Y,Zs as Z,yf as _,It as $,ta as aa,wf as ba,xt as ca,Ot as da,Ct as ea,Co as fa,B as ga,Ke as ha,Lm as ia,Pm as ja,n_ as ka,r_ as la,Kc as ma,Ye as na,Xo as oa,w_ as pa,Re as qa,Ne as ra,nd as sa,$t as ta,Ft as ua,zt as va,O_ as wa,C_ as xa,Yo as ya,Ut as za,Zn as Aa,A_ as Ba,R_ as Ca,tn as Da,Ai as Ea,Tp as Fa,Op as Ga,Cp as Ha,Mi as Ia,Dp as Ja,an as Ka,ds as La,Kp as Ma,Jp as Na,Er as Oa,Ou as Pa,ei as Qa,er as Ra,tr as Sa,F_ as Ta,B_ as Ua,q_ as Va,V_ as Wa,ki as Xa,qd as Ya,lr as Za,pp as _a,ur as $a,en as ab,us as bb,fs as cb,Du as db,Iy as eb,xy as fb,ms as gb,Pu as hb,Ty as ib,Oy as jb};
|
|
153
|
+
//# sourceMappingURL=chunk-FF4MNAYB.js.map
|