@unbrained/pm-cli 2026.8.30 → 2026.9.1
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/.agents/skills/HARNESS_COMPATIBILITY.md +1 -1
- package/.agents/skills/README.md +1 -1
- package/.agents/skills/pm-developer/SKILL.md +1 -1
- package/.agents/skills/pm-developer/references/COMMAND_PLAYBOOK.md +2 -2
- package/.agents/skills/pm-developer/references/MULTI_AGENT_MERGE.md +1 -1
- package/.agents/skills/pm-developer/references/TOKEN_BUDGETS.md +1 -1
- package/.agents/skills/pm-extensions/SKILL.md +2 -2
- package/.agents/skills/pm-extensions/references/AUTHORING.md +1 -1
- package/.agents/skills/pm-extensions/references/LIFECYCLE.md +1 -1
- package/.agents/skills/pm-sdk/SKILL.md +1 -1
- package/.agents/skills/pm-user/SKILL.md +2 -2
- package/.agents/skills/pm-user/references/WORKFLOWS.md +2 -2
- package/.claude-plugin/marketplace.json +2 -2
- package/AGENTS.md +16 -14
- package/CHANGELOG.md +41 -6
- package/README.md +3 -3
- package/dist/cli/commands/merge.d.ts +1 -1
- package/dist/cli/commands/merge.js +3 -3
- package/dist/cli/register-list-query.js +32 -17
- package/dist/cli/register-mutation.js +8 -5
- package/dist/cli/register-operations.d.ts +2 -0
- package/dist/cli/register-operations.js +20 -9
- package/dist/cli-bundle/bundle-manifest.json +144 -144
- package/dist/cli-bundle/chunks/{chunk-CMIEDWAY.js → chunk-2MC2LCXZ.js} +41 -41
- package/dist/cli-bundle/chunks/{chunk-WS2GJQVG.js → chunk-3WICXLVT.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-7SKMLSMX.js → chunk-6XIIGE7U.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-ALKKAUFN.js +35 -0
- package/dist/cli-bundle/chunks/{chunk-MTTKAUBX.js → chunk-DTGWEL23.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-GOACULJW.js +13 -0
- package/dist/cli-bundle/chunks/chunk-NOPL37X4.js +205 -0
- package/dist/cli-bundle/chunks/{chunk-2UETTHY6.js → chunk-TAG4VC22.js} +30 -30
- package/dist/cli-bundle/chunks/{chunk-3TEF3HM5.js → chunk-U45JXJCC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-TGNAA66W.js → chunk-X4RCGLTX.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2MKLQL2E.js → chunk-Y7VOMSZT.js} +2 -2
- package/dist/cli-bundle/chunks/{register-list-query-OMKJ5ONN.js → register-list-query-XYNX4ASQ.js} +11 -11
- package/dist/cli-bundle/chunks/register-mutation-2MVLRS3J.js +20 -0
- package/dist/cli-bundle/chunks/register-operations-WCIDXBU3.js +2 -0
- package/dist/cli-bundle/chunks/{register-setup-GLQ5SYV3.js → register-setup-KVNC5KPL.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-HVQ22RC4.js → chunk-2FEZ5SKM.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-Y3JJXRVK.js → chunk-4O4CJAR6.js} +5 -5
- package/dist/cli-bundle/focused-chunks/chunk-7VATS5QY.js +16 -0
- package/dist/cli-bundle/focused-chunks/{chunk-LYFWQMVC.js → chunk-BEVHCEWG.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-TDK3OCX3.js → chunk-FWPLDEXF.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-JEFKLWMM.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-JZYPPMXF.js → chunk-KB5OFSFD.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-73EDXGYE.js → chunk-MKHG3T76.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-3AVAWVZA.js → chunk-PF3E6Q36.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-AD6ULRAF.js → chunk-QDFJIRKN.js} +4 -4
- package/dist/cli-bundle/focused-chunks/{chunk-RKOKG43G.js → chunk-RMRCQPWU.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-XXOWRJZ5.js → chunk-S4U5CN5Q.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-THEPQMLX.js → chunk-SVXJYD6G.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-T2LXXSOD.js +158 -0
- package/dist/cli-bundle/focused-chunks/chunk-Y6JJIX6I.js +51 -0
- package/dist/cli-bundle/main.js +2 -2
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +1 -1
- package/dist/cli-bundle/sdk-core.js +27 -27
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +33 -33
- 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 +10 -10
- package/dist/core/history/drift-scan.js +6 -6
- package/dist/core/history/history.d.ts +6 -0
- package/dist/core/history/history.js +47 -5
- package/dist/core/history/replay.d.ts +12 -1
- package/dist/core/history/replay.js +60 -39
- package/dist/core/schema/runtime-schema.d.ts +4 -0
- package/dist/core/schema/runtime-schema.js +60 -48
- package/dist/core/schema/status-defs-file.js +5 -2
- package/dist/mcp/legacy-adapter.d.ts +11 -2
- package/dist/mcp/legacy-adapter.js +26 -12
- package/dist/mcp/server.d.ts +2 -2
- package/dist/mcp/server.js +78 -15
- package/dist/mcp/tool-definitions.js +56 -2
- package/dist/sdk/agent-capability-contracts.js +4 -2
- package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
- package/dist/sdk/cli-contracts/flag-contracts.js +6 -2
- package/dist/sdk/cli-contracts/grammar-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts/grammar-contracts.js +12 -2
- package/dist/sdk/cli-contracts/runtime-contracts.js +3 -2
- package/dist/sdk/cli-contracts/tool-schema.js +11 -3
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +14 -2
- package/dist/sdk/governance/health.js +17 -6
- package/dist/sdk/governance/status-role-diagnostics.d.ts +27 -0
- package/dist/sdk/governance/status-role-diagnostics.js +36 -0
- package/dist/sdk/governance/validate-normalization.d.ts +6 -0
- package/dist/sdk/governance/validate-normalization.js +37 -0
- package/dist/sdk/governance/validate.d.ts +1 -1
- package/dist/sdk/governance/validate.js +20 -35
- package/dist/sdk/governance/workspace-position.d.ts +69 -0
- package/dist/sdk/governance/workspace-position.js +164 -0
- package/dist/sdk/governance.d.ts +2 -0
- package/dist/sdk/governance.js +4 -2
- package/dist/sdk/history-read.js +14 -6
- package/dist/sdk/history-repair.js +17 -10
- package/dist/sdk/index.d.ts +2 -1
- package/dist/sdk/index.js +4 -3
- package/dist/sdk/init-agent-guidance.js +4 -4
- package/dist/sdk/lifecycle/update.js +23 -10
- package/dist/sdk/mcp/discovery.d.ts +152 -0
- package/dist/sdk/mcp/discovery.js +495 -0
- package/dist/sdk/mcp/protocol.d.ts +10 -2
- package/dist/sdk/mcp/protocol.js +15 -4
- package/dist/sdk/merge/index.d.ts +1 -1
- package/dist/sdk/merge/index.js +3 -3
- package/dist/sdk/merge/receipts.d.ts +27 -1
- package/dist/sdk/merge/receipts.js +27 -8
- package/dist/sdk/merge/three-way.d.ts +3 -1
- package/dist/sdk/merge/three-way.js +9 -7
- package/dist/sdk/query/context.js +11 -14
- package/dist/sdk/query/list.d.ts +2 -0
- package/dist/sdk/query/list.js +33 -12
- package/dist/sdk/runtime-extended-actions.js +10 -6
- package/dist/sdk/schema.js +12 -2
- package/dist/sdk/test/execution.d.ts +15 -0
- package/dist/sdk/test/execution.js +35 -27
- package/docs/AGENT_GUIDE.md +12 -4
- package/docs/AGENT_PROVENANCE_ADR.md +1 -1
- package/docs/AGENT_RUNTIME_PRIMITIVES.md +2 -2
- package/docs/ARCHITECTURE.md +5 -0
- package/docs/CLAUDE_CODE_PLUGIN.md +5 -5
- package/docs/COMMANDS.md +12 -12
- package/docs/CONFIGURATION.md +1 -1
- package/docs/CONTEXT_RECOVERY_PRIMITIVES.md +14 -5
- package/docs/DEFECT_RECURRENCE.md +2 -0
- package/docs/MCP_2026_07_28.md +33 -9
- package/docs/MCP_2026_07_28_CONFORMANCE.md +1 -0
- package/docs/MCP_CAPABILITY_SURFACES.md +7 -1
- package/docs/MCP_REMOTE_TRANSPORT_SECURITY.md +15 -3
- package/docs/MERGE_SAFETY.md +30 -2
- package/docs/ONBOARDING.md +1 -1
- package/docs/OUTPUT_TOKEN_ACCOUNTING.md +5 -3
- package/docs/PROGRESSIVE_TOOL_DISCOVERY.md +42 -0
- package/docs/README.md +3 -1
- package/docs/READ_OUTPUT_CONTRACTS.md +1 -1
- package/docs/RECURRENCE_RECOVERY_CONTRACTS.md +1 -1
- package/docs/SDK.md +3 -3
- package/docs/TESTING.md +23 -14
- package/docs/WORKSPACE_POSITION_AND_LIFECYCLE.md +113 -0
- package/docs/agent-task-token-baseline.json +157 -3
- package/docs/agent-task-transcripts.json +143 -0
- package/docs/examples/policy-restricted-extension/README.md +2 -2
- package/docs/examples/starter-extension/README.md +1 -1
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +4 -3
- package/docs/performance/cli-transport-overhead.md +8 -6
- package/marketplace.json +2 -2
- package/package.json +4 -4
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-claude/README.md +4 -3
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/sdk/public-surface.json +314 -10
- package/dist/cli-bundle/chunks/chunk-7X6OZEIV.js +0 -34
- package/dist/cli-bundle/chunks/chunk-GNWPTEBW.js +0 -205
- package/dist/cli-bundle/chunks/chunk-N6OR6FAR.js +0 -13
- package/dist/cli-bundle/chunks/register-mutation-QBSNCOY3.js +0 -20
- package/dist/cli-bundle/chunks/register-operations-UC77FQZC.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-3UMBF26I.js +0 -158
- package/dist/cli-bundle/focused-chunks/chunk-AXZ5AJAF.js +0 -50
- package/dist/cli-bundle/focused-chunks/chunk-G6PATS5E.js +0 -16
- package/dist/cli-bundle/focused-chunks/chunk-LLNTHF5X.js +0 -2
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import{$ as No,Aa as Ho,B as To,Ba as Uo,H as Oo,Ka as Ut,M as Ht,Ma as ut,Oa as ft,Pa as mt,Q as dt,R as Bn,Ra as Wo,S as qn,Sa as Vo,T as lt,Ta as Bo,U as Ao,Ua as qo,V as Ro,Va as Go,Wa as Xo,_ as Do,a as Mt,fa as Mo,h as zt,ka as Lo,q as Co,r as ze,t as Ie,u as fe,v as V,va as Po,w as ct,wa as jo,xa as Fo,ya as $o,za as zo}from"./chunk-QDFJIRKN.js";import{C as Ft,D as $t,E as Vn,G as Io,L as ue,S as Se,T as xo,W as E,X as $e,Y as k,Z as x,aa as P,ba as He,ca as me,da as S,n as Lt,o as wo,p as Eo,q as vo,r as ko,v as Pt,w as jt,x as So}from"./chunk-Z2USIBR2.js";import{AsyncLocalStorage as Fa}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 Gn=new Fa,Ko=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function Wt(e,t){let n=typeof e=="string"?e.trim():"";return n.length>0?n.slice(0,t):void 0}function xe(e,t){if(e===void 0)return;let n=typeof e=="object"&&e!==null?e:{},r=Wt(n.id,128),o=Wt(n.parent_id,128);if(r===void 0||!Ko.test(r)||o!==void 0&&!Ko.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=Wt(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function Ue(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=Wt(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function $a(e,t,n){let r=Gn.getStore(),o=Ue({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=xe(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={...Ue(r?.provenance),...o,...Ue(e?.provenance)},a=xe(e?.episode,!1)??xe(n,!1)??i??xe(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 Xn(e,t){return $a(e.session_context,t,e.client_info?.episode)??{}}function f_(e,t){let n=Gn.getStore(),r=xe(e.episode,!0),o=xe(n?.episode,!1),i=r!==void 0&&r.parent_id===void 0&&o!==void 0?{...r,parent_id:o.id}:r,s={...Ue(n?.provenance),...Ue(e.provenance)};return Gn.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function m_(e){let t=Ue(e.provenance),n=xe(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 ar}from"node:async_hooks";import{createHash as Va}from"node:crypto";import Q from"node:fs";import ri from"node:os";import qt from"node:path";import{createHash as Jo}from"node:crypto";import{existsSync as Kn,promises as Yo,readFileSync as za}from"node:fs";import Z from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="424b9eb3-6b34-5ab0-a3f5-db61fbca12cf")}catch{}})();var Ha="session.json";function Jn(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function Zo(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=e,n=["implementer","planner","release-operator"].includes(String(t.role)),r=["high","medium"].includes(String(t.confidence)),o=Jn(t.topic,256),i=Array.isArray(t.evidence)&&t.evidence.length<=32&&t.evidence.every(c=>typeof c=="string"&&c.length<=128),s=Array.isArray(t.active_item_ids)&&t.active_item_ids.length<=64&&t.active_item_ids.every(c=>Jn(c,128)),a=t.focused_item_id===void 0||Jn(t.focused_item_id,128);if([n,r,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function Ua(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([n,r])=>{let o=Zo(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Yn(e){return Z.join(Ro(e),Ha)}async function Vt(e){try{let t=await Yo.readFile(Yn(e),"utf8"),n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return{};let r=n,o=r.focused_item,i=Ua(r.semantic_attribution);return typeof o=="string"&&o.trim().length>0?{focused_item:o,...i?{semantic_attribution:i}:{}}:i?{semantic_attribution:i}:{}}catch{return{}}}async function Zn(e,t){let n=Yn(e);await Yo.mkdir(Z.dirname(n),{recursive:!0}),await V(n,JSON.stringify(t))}function Qn(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${Jo("sha256").update(e).digest("hex").slice(0,24)}`}function er(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function tr(e){let t=[...new Set(e)].sort((o,i)=>o.localeCompare(i));if(t.length===1)return t[0];let n=`workset:${t.join("+")}`;return n.length<=256?n:`workset:${t.join("+").slice(0,230)}+${Jo("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function nr(e,t,n){let r=await Vt(e),o={...r.semantic_attribution},i=n(o[t]);i===void 0?delete o[t]:o[t]=i;let s={...r};Object.keys(o).length===0?delete s.semantic_attribution:s.semantic_attribution=o,await Zn(e,s)}async function w_(e){let t=Qn(e.principal);await nr(e.pmRoot,t,n=>{let r=[...new Set([...n?.active_item_ids??[],e.itemId])].slice(-64).sort((i,s)=>i.localeCompare(s)),o=n?.focused_item_id;return{role:"implementer",topic:o??tr(r),confidence:o?"high":"medium",rule_version:"v2",evidence:er([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}async function E_(e){let t=Qn(e.principal);await nr(e.pmRoot,t,n=>{if(!n)return;let r=n.active_item_ids.filter(i=>i!==e.itemId);if(r.length===0&&!n.focused_item_id)return;let o=n.focused_item_id;return{...n,role:"release-operator",topic:o??tr(r),confidence:o?"high":"medium",evidence:er([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:r}})}async function v_(e){let t=Qn(e.principal);await nr(e.pmRoot,t,n=>{let r=n?.active_item_ids??[];if(!e.itemId&&r.length===0)return;let o=e.itemId;return{role:o?"planner":n.role,topic:o??tr(r),confidence:o?"high":"medium",rule_version:"v2",evidence:er([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}function Wa(e,t){let n=t.PM_PATH?.trim();if(n){let o=Z.resolve(e,n);if(Kn(Z.join(o,"settings.json")))return o;let i=Z.join(o,".agents","pm");if(Kn(Z.join(i,"settings.json")))return i}let r=Z.resolve(e);for(let o=0;o<32;o+=1){let i=Z.join(r,".agents","pm");if(Kn(Z.join(i,"settings.json")))return i;let s=Z.dirname(r);if(s===r)break;r=s}}function Qo(e){if(!e.key)return;let t=Wa(e.cwd,e.env);if(t)try{let n=JSON.parse(za(Yn(t),"utf8"));return Zo(n.semantic_attribution?.[e.key])}catch{return}}async function k_(e){return(await Vt(e)).focused_item}async function S_(e,t){let n=await Vt(e);await Zn(e,{...n,focused_item:t})}async function I_(e){let n={...await Vt(e)};delete n.focused_item,await Zn(e,n)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cf550961-0040-5e04-9d8d-16e316027e43")}catch{}})();var cr=["model","effort","role","topic","version"],Xt=new ar,oi=new ar,Kt=new ar,dr=[{harness:"claude-code",environment_keys:["CLAUDE_CODE","CLAUDECODE"],model_environment_keys:["ANTHROPIC_MODEL","CLAUDE_MODEL"],session_environment_keys:["CLAUDE_CODE_SESSION_ID"],provenance_environment_keys:{effort:["CLAUDE_EFFORT"]},provenance_resolvers:{model:"claude_session_file",version:"claude_session_file"},provenance_unavailable_dimensions:["role","topic"],argv_markers:["claude","claude-code"],client_names:["claude","claude-code","claude code"]},{harness:"codex",environment_keys:["CODEX_HOME","CODEX_CI","CODEX_THREAD_ID"],model_environment_keys:["CODEX_MODEL"],session_environment_keys:["CODEX_THREAD_ID"],provenance_environment_keys:{effort:["CODEX_REASONING_EFFORT","CODEX_EFFORT"],role:["CODEX_SESSION_ROLE"]},provenance_resolvers:{model:"codex_session_file",effort:"codex_session_file",version:"ai_agent_version"},provenance_unavailable_dimensions:["topic"],argv_markers:["codex"],client_names:["codex"]},{harness:"pi",environment_keys:["PI_AGENT","PI_CODING_AGENT"],model_environment_keys:["PI_MODEL"],session_environment_keys:["PI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["pi"],client_names:["pi"]},{harness:"opencode",environment_keys:["OPENCODE","OPENCODE_SESSION_ID"],model_environment_keys:["OPENCODE_MODEL"],session_environment_keys:["OPENCODE_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["opencode"],client_names:["opencode"]},{harness:"cursor",environment_keys:["CURSOR_AGENT","CURSOR_TRACE_ID"],model_environment_keys:["CURSOR_MODEL"],session_environment_keys:["CURSOR_TRACE_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["cursor"],client_names:["cursor"]},{harness:"aider",environment_keys:["AIDER","AIDER_MODEL"],model_environment_keys:["AIDER_MODEL"],session_environment_keys:["AIDER_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["aider"],client_names:["aider"]},{harness:"gemini-cli",environment_keys:["GEMINI_CLI","GEMINI_CLI_HOME"],model_environment_keys:["GEMINI_MODEL"],session_environment_keys:["GEMINI_CLI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["gemini","gemini-cli"],client_names:["gemini","gemini-cli","gemini cli"]},{harness:"ci",environment_keys:["CI","GITHUB_ACTIONS","BUILDKITE","GITLAB_CI"],provenance_unavailable_dimensions:["model","effort","role","topic"],argv_markers:[],client_names:[]}],ii=Object.freeze({max_bytes:1048576,max_lines:4096,network_access:!1,subprocess_access:!1}),Ba=Object.freeze({...ii,max_bytes:4194304}),rr=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function qa(e){let t=pe(e).provenance_unavailable_dimensions,n=new Set(["model","version",...Object.keys(e.provenance_environment_keys??{}),...Object.keys(e.provenance_resolvers??{})]);return Object.freeze({contract_version:1,adapter_version:"v1",priority:0,harness:e.harness,descriptor:e,supported_dimensions:Object.freeze([...n].sort()),native_sources:Object.freeze(["environment","argv","mcp_client",...Object.values(e.provenance_resolvers??{}).some(r=>r?.endsWith("session_file"))?["session_file"]:[]]),probe_policy:e.harness==="codex"?Ba:ii,normalization:Object.freeze({model_family:"v1",effort:"v1",preserve_raw:!0}),confidence:"high",waivers:Object.freeze(Object.fromEntries(t.map(r=>[r,"Harness does not expose this dimension."])))})}var si=Object.freeze(dr.filter(e=>e.harness!=="ci").map(qa).sort((e,t)=>e.harness.localeCompare(t.harness))),Te=new Map,We=new Map;function D(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function _e(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function pe(e){let t=e.harness.trim().toLowerCase();if(!rr.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:_e(e.environment_keys),model_environment_keys:_e(e.model_environment_keys),session_environment_keys:_e(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),_e(r)]).filter(([n])=>rr.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"&&rr.test(n[0])&&(n[1]==="ai_agent_version"||n[1]==="claude_session_file"||n[1]==="codex_session_file"))),provenance_unavailable_dimensions:_e(e.provenance_unavailable_dimensions).map(n=>n.toLowerCase()),argv_markers:_e(e.argv_markers).map(n=>n.toLowerCase()),client_names:_e(e.client_names).map(n=>n.toLowerCase())}}var ai=dr.map(pe);function Ga(e,t){return JSON.stringify(e)===JSON.stringify(t)}function Gt(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function lr(e=[]){let t=new Map(dr.filter(o=>o.harness!=="ci").map(o=>[o.harness,pe(o)]));for(let{adapter:o}of Te.values())t.set(o.harness,pe(o.descriptor));let n=[...t.values(),...ai.filter(o=>o.harness==="ci"),...[...We.values()].map(o=>o.descriptor),...Kt.getStore()?.descriptors??[],...e.map(pe)],r=new Set;for(let o of n){if(r.has(o.harness))throw new Error(`Harness signal descriptor collision for "${o.harness}"`);r.add(o.harness)}return n}function ur(e,t){for(let n of t??[]){let r=D(e[n]);if(r)return r.slice(0,256)}}function Xa(e,t){if(t==="role"){let n=e.slice(0,8).map(r=>r.trim().toLowerCase()).find(r=>["claim","create","update","close","release","review"].includes(r));if(n==="review")return"reviewer";if(n)return"implementer"}}function ci(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 D(r[o+1])?.slice(0,256);let s=n.find(a=>i.startsWith(`${a}=`));if(s)return D(i.slice(s.length+1))?.slice(0,256)}}var Ka=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function Ce(e,t){if(e!=="role"||t===void 0)return t;let n=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return Ka.has(n)?n:void 0}function or(e,t){return D(e?.[t])?.slice(0,256)}var Ja=1048576,sr=4194304,Bt=new Map,ei=Object.freeze({}),ir=new Map,ti=Object.freeze({});function ni(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function Ya(e){let t;try{t=JSON.parse(e)}catch{return ti}let n=ni(t);if(!n)return ti;let r=[{value:n,depth:0}],o=0,i,s;for(;r.length>0&&o<64;){let a=r.shift();if(o+=1,i??=D(a.value.model)?.slice(0,256),s??=D(a.value.version)?.slice(0,256),i&&s)break;if(!(a.depth>=4))for(let c of Object.values(a.value)){let d=ni(c);d&&r.push({value:d,depth:a.depth+1})}}return Object.freeze({model:i,version:s})}function Za(e,t,n){let r=D(n.CLAUDE_CODE_SESSION_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let i=qt.resolve(t.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),s=qt.join(t.home_dir??ri.homedir(),".claude","projects",i,`${r}.jsonl`);try{let a=Q.openSync(s,"r");try{let c=Q.fstatSync(a),d=`${s}\0${c.size}\0${c.mtimeMs}`,u=ir.get(d);if(u)return u[e];let m=Math.min(c.size,Ja),_=Math.min(m,Math.ceil(m/2)),y=Math.min(m-_,c.size-_),f=Buffer.alloc(_);Q.readSync(a,f,0,_,0);let h=Buffer.alloc(y);y>0&&Q.readSync(a,h,0,y,c.size-y);let w={},T=c.size<=m?Buffer.concat([f,h]).toString("utf8").split(`
|
|
2
|
+
`):[...f.toString("utf8").split(`
|
|
3
|
+
`).slice(0,4096),...h.toString("utf8").split(`
|
|
4
|
+
`).slice(-4096)];for(let M of T){if(M.length===0||M.length>262144)continue;let L=Ya(M);if(w.model??=L.model,w.version??=L.version,w.model&&w.version)break}let R=Object.freeze(w);return ir.clear(),ir.set(d,R),R[e]}finally{Q.closeSync(a)}}catch{return}}function Qa(e,t){let n=0,r=(o,i)=>{if(i>4||n>=512)return;let s;try{s=Q.readdirSync(o,{withFileTypes:!0}).sort((a,c)=>c.name.localeCompare(a.name))}catch{return}for(let a of s){if(n+=1,n>512)return;let c=qt.join(o,a.name);if(a.isFile()&&a.name.endsWith(`-${t}.jsonl`))return c;if(a.isDirectory()){let d=r(c,i+1);if(d)return d}}};return r(e,0)}function ec(e){if(e<=sr)return[{offset:0,length:e}];let t=Math.floor(sr/2);return[{offset:e-t,length:t},{offset:0,length:t}]}function tc(e,t){if(t.length===0||t.length>262144)return;let n;try{n=JSON.parse(t)}catch{return}if(typeof n!="object"||n===null||Array.isArray(n))return;let r=n;if(r.type!=="turn_context")return;let o=typeof r.payload=="object"&&r.payload!==null?r.payload:void 0;e.model??=D(o?.model)?.slice(0,256),e.effort??=D(o?.effort)?.slice(0,256)}function nc(e,t){let n={},r=4096;for(let o of ec(t)){let i=Buffer.alloc(o.length);Q.readSync(e,i,0,o.length,o.offset);let s=i.toString("utf8").split(`
|
|
5
|
+
`).reverse().slice(0,r);r-=s.length;for(let a of s)if(tc(n,a),n.model&&n.effort)break;if(n.model&&n.effort||r<=0)break}return n}function rc(e,t,n){let r=D(n.CODEX_THREAD_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let o=qt.join(t.home_dir??ri.homedir(),".codex","sessions"),i=`${o}\0${r}`,s=Bt.get(i);if(s)return s[e];let a=Qa(o,r);if(!a){Bt.set(i,ei);return}try{let c=Q.openSync(a,"r");try{let d=Q.fstatSync(c).size,u=nc(c,d);return Bt.set(i,u),u[e]}finally{Q.closeSync(c)}}catch{Bt.set(i,ei);return}}function oc(e,t,n,r){let o=Kt.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(D(n.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let s=r?.provenance_resolvers[e];if(s==="claude_session_file")return Za(e,t,n);if(s==="codex_session_file")return rc(e,t,n);if(s==="ai_agent_version"){let a=D(n.AI_AGENT);return!a||!r||!Gt(a,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(a)?.[1]?.slice(0,256)}}function ic(e,t,n){if(e==="ai_agent_version"){let r=D(n.AI_AGENT);return r!==void 0&&Gt(r,t.harness)}return e==="codex_session_file"?D(n.CODEX_THREAD_ID)!==void 0:D(n.CLAUDE_CODE_SESSION_ID)!==void 0}function fr(e){return e||(oi.getStore()??{env:process.env,argv:process.argv})}function sc(e,t,n,r){let o=e.environment_keys.some(a=>D(t[a])!==void 0),i=e.argv_markers.some(a=>n.some(c=>{let d=c.replaceAll("\\","/");return Gt(d.slice(d.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||Gt(r,a));return o||i||s}function ac(e,t){if(!t)return;let n;if(e==="topic"&&(n=t.topic),e==="role"&&(n=t.role),!!n)return{value:n,source:"inferred",confidence:t.confidence,rule_version:t.rule_version,evidence:t.evidence}}function cc(e){let t=e.find(([n])=>n!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function dc(e,t,n,r,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...cr,...Object.keys(r?.provenance_environment_keys??{})]),c,d,u;a.has(e)&&(c=Ce(e,D(n[s])?.slice(0,256)),u=Ce(e,ci(t.argv??[],e)),d=Ce(e,Xa(t.argv??[],e)));let m={...r?.provenance_environment_keys,model:r?.model_environment_keys},_={...t.client_info?.provenance,model:t.client_info?.model},y=or(o?.provenance,e),f=Ce(e,ur(n,m[e])),h=Ce(e,or(_,e)),w=Ce(e,or(t.provenance,e)),T=oc(e,t,n,r);return cc([[c,"override"],[y,"session"],[u,"argv"],[f,"environment"],[h,"mcp_client"],[w,"host"],[T,"probe"]])??ac(e,i)??(d?{value:d,source:"argv"}:void 0)}function lc(e,t){if(!(!e||!t))return Va("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function uc(e,t,n,r,o){let i=Object.keys(n?.provenance_environment_keys??{}),s=new Set([...cr,...i,...Object.keys(n?.provenance_resolvers??{}),...Object.keys(e.provenance??{}),...Object.keys(e.client_info?.provenance??{}),...Object.keys(r?.provenance??{})]),a={};for(let c of s){let d=dc(c,e,t,n,r,o);d?a[c]=d:n&&(c!=="version"||n.provenance_unavailable_dimensions.includes(c))&&(a[c]=null)}return a}function M_(e){let t=e.map(pe),n=new Map(ai.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=We.get(i.harness);if(s&&!Ga(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=We.get(i.harness);We.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=We.get(i.harness);!s||s.registrations<=1?We.delete(i.harness):s.registrations-=1}}}}function fc(e){let t=pe(e.descriptor),n=e.harness.trim().toLowerCase();if(e.contract_version!==1)throw new Error(`Unsupported provenance adapter contract for "${n}": ${e.contract_version}`);if(t.harness!==n)throw new Error(`Provenance adapter harness "${n}" does not match descriptor "${t.harness}".`);let r=D(e.adapter_version)?.slice(0,64);if(!r)throw new Error(`Provenance adapter "${n}" requires a version.`);if(!Number.isSafeInteger(e.priority))throw new Error(`Provenance adapter "${n}" requires an integer priority.`);if(e.probe_policy.network_access!==!1||e.probe_policy.subprocess_access!==!1||e.probe_policy.max_bytes>sr||e.probe_policy.max_lines>4096)throw new Error(`Provenance adapter "${n}" exceeds the bounded local probe policy.`);return Object.freeze({...e,adapter_version:r,harness:n,descriptor:t,supported_dimensions:Object.freeze(_e(e.supported_dimensions).map(o=>o.toLowerCase()).sort()),native_sources:Object.freeze([...new Set(e.native_sources)]),probe_policy:Object.freeze({...e.probe_policy}),normalization:Object.freeze({...e.normalization}),...e.waivers?{waivers:Object.freeze(Object.fromEntries(Object.entries(e.waivers).slice(0,32).map(([o,i])=>[o.slice(0,64),i.slice(0,256)])))}:{}})}function L_(){let e=new Map(si.map(t=>[t.harness,t]));for(let{adapter:t}of Te.values())e.set(t.harness,t);return Object.freeze([...e.values()].sort((t,n)=>t.harness.localeCompare(n.harness)))}function P_(e){let t=e.map(fc),n=new Map(si.map(i=>[i.harness,i])),r=new Set;for(let i of t){if(r.has(i.harness))throw new Error(`Provenance adapter collision for "${i.harness}".`);let s=n.get(i.harness);if(s&&i.priority<=s.priority)throw new Error(`Provenance adapter override for "${i.harness}" requires priority greater than ${s.priority}.`);let a=Te.get(i.harness);if(a&&JSON.stringify(a.adapter)!==JSON.stringify(i))throw new Error(`Provenance adapter collision for "${i.harness}".`);r.add(i.harness)}for(let i of t){let s=Te.get(i.harness);Te.set(i.harness,{adapter:i,registrations:(s?.registrations??0)+1})}let o=!0;return()=>{if(o){o=!1;for(let i of t){let s=Te.get(i.harness);!s||s.registrations<=1?Te.delete(i.harness):s.registrations-=1}}}}function j_(e,t){let n=t.trim().slice(0,256),r=n.toLowerCase();if(e==="model"){let o=/^(gpt-\d+(?:\.\d+)?)/u.exec(r)?.[1];o&&(r=o)}else r=r.replaceAll(/[_\s-]+/gu,""),r={minimal:"low",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max",ultra:"ultra"}[r]??r;return{raw:n,normalized:r,vocabulary:"v1"}}function F_(e,t){return oi.run(e,t)}function $_(e,t,n={}){let r=e.map(pe);return lr(r),Kt.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function mr(e){let t=fr(e),n=t.env??{},r=lr(t.descriptors),o=[...(t.argv??[]).slice(0,3),...t.process_labels??[]].slice(0,64).map(f=>f.slice(0,512)),i=t.client_info?.name.trim().toLowerCase()??"",s=r.find(f=>sc(f,n,o,i)),a=Xn(t,n),c=[ur(n,s?.session_environment_keys),D(t.client_info?.session)?.slice(0,256)].find(f=>f!==void 0),d=lc(s?.harness,c),u=Qo({cwd:t.cwd??process.cwd(),env:n,key:d}),m=uc(t,n,s,a,u),_=m.model,y=[["harness",s?.harness],["model",_?.value],["model_source",_?.source],["session",c],["instance",d],["provenance",Object.keys(m).length>0?m:void 0],["episode",a.episode]];return Object.fromEntries(y.filter(f=>f[1]!==void 0))}function mc(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=ic(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 di(e){let t=fr(e),n=mr(t),r=lr(t.descriptors).find(d=>d.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&Kt.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(D(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=Xn(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,ur(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,ci(t.argv??[],"role")].some(d=>{let u=D(d)?.slice(0,256);return u!==void 0&&Ce("role",u)===void 0}),c=Object.fromEntries(cr.map(d=>[d,mc(d,n,r,o,i,d==="role"&&a)]));return{...n,provenance_outcomes:c}}function z_(){return process.env.PM_AUTHOR}function H_(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function U_(e){return mr(e).harness}function _c(e,t,n){let r=fr(n),o=mr(r);if(e!==void 0){let s=D(e);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}if(r.env?.PM_AUTHOR!==void 0){let s=D(r.env.PM_AUTHOR);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}let i=D(t);return i?{author:i,source:"configured",...o}:o.harness?{author:`harness:${o.harness}`,source:"detected",...o}:{author:"unknown",source:"unknown",...o}}function li(e){let t=Xt.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function ui(e){let t=Xt.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 fi(e){let t=Xt.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function mi(e,t){let n=_c(e,t);return Xt.enterWith(n),n.author}import pc from"node:crypto";import{AsyncLocalStorage as yc}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]="aacc48ae-e9b2-5c8e-945f-89d05aff48e8")}catch{}})();var pi=new yc,_i=1024;function yi(){let e=pi.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 hi(e){let t=pi.getStore();if(t===void 0)return;if(!Number.isSafeInteger(e)||e<0||e>_i)throw new Error(`Reproducible token length must be an integer between 0 and ${_i}`);let n="";for(;n.length<e;){let r=pc.createHash("sha256").update(`${t.seed}\0${t.tokenReads}`).digest();t.tokenReads+=1;for(let o of r)if(n+=(o%36).toString(36),n.length===e)break}return n}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7887e752-b1b8-5c5e-9dd8-93b41cb757af")}catch{}})();var hc=/^([+-]?)(\d+)([hdwm])$/i,gc=/^[+-]?\d+[hdwm](?:[+-]\d+[hdwm])+$/i,bc=/^(\d{4})(\d{2})(\d{2})$/,wc=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,Ec=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})-(\d{2})(?:-(\d{2}))?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,vc=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,kc=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/i;function Oe(){return yi()??new Date().toISOString()}function ne(e){return Number.isFinite(Date.parse(e))}function bi(e){let t=kc.exec(e);if(!t||!Number.isFinite(Date.parse(e)))return!1;let[,n,r,o,i,s,a,c,d]=t,[u,m,_,y,f,h]=[n,r,o,i,s,a].map(Number);return m>=1&&m<=12&&_>=1&&_<=yr(u,m-1)&&y<=23&&f<=59&&h<=59&&(c===void 0||Number(c)<=23)&&(d===void 0||Number(d)<=59)}var Sc=1e4,Jt=new Map;function gi(e){let t=Jt.get(e);if(t!==void 0)return t;let n=Date.parse(e);return Jt.size>=Sc&&Ut(Jt),Jt.set(e,n),n}function U(e,t){let n=gi(e),r=gi(t);return Number.isFinite(n)&&Number.isFinite(r)&&n!==r?n-r:e.localeCompare(t)}function Y_(e,t){return!(t.deadlineBefore&&(!e.deadline||U(e.deadline,t.deadlineBefore)>0)||t.deadlineAfter&&(!e.deadline||U(e.deadline,t.deadlineAfter)<0)||t.updatedAfter&&U(e.updated_at,t.updatedAfter)<0||t.updatedBefore&&U(e.updated_at,t.updatedBefore)>0||t.createdAfter&&U(e.created_at,t.createdAfter)<0||t.createdBefore&&U(e.created_at,t.createdBefore)>0)}function _r(e){return e?`.${e.slice(1).padEnd(3,"0").slice(0,3)}`:""}function pr(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 Ic(e,t,n){n&&n!==t&&(e.includes(n)||e.push(n))}function xc(e){let t=[],n=d=>Ic(t,e,d),r=bc.exec(e);if(r){let[,d,u,m]=r;n(`${d}-${u}-${m}`)}let o=wc.exec(e);if(o){let[,d,u,m,_,y,f,h,w]=o,T=f?`:${f}`:"";n(`${d}-${u}-${m}T${_}:${y}${T}${_r(h)}${pr(w)}`)}let i=Ec.exec(e);if(i){let[,d,u,m,_,y,f]=i,h=_?`:${_}`:"";n(`${d}T${u}:${m}${h}${_r(y)}${pr(f)}`)}let s=vc.exec(e);if(s){let[,d,u,m,_,y,f]=s,h=_?`:${_}`:"";n(`${d}T${u}:${m}${h}${_r(y)}${pr(f)}`)}let a=10,c=e.slice(0,a);if(Tc(c)){let d=a;for(;d<e.length&&Oc(e[d]);)d+=1;d<e.length&&n(`${c}T${e.slice(d)}`)}return t}function Cc(e){let t=Date.parse(e);if(Number.isFinite(t))return t;for(let n of xc(e)){let r=Date.parse(n);if(Number.isFinite(r))return r}return Number.NaN}function Tc(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 Oc(e){return e?e===" "||e===" "||e===`
|
|
6
|
+
`||e==="\r"||e==="\f"||e==="\v":!1}function yr(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}var Ac=["January","February","March","April","May","June","July","August","September","October","November","December"],Rc=/^(\d{4})-(\d{2})-(\d{2})/,Dc=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/;function Nc(e,t,n){let r=Rc.exec(t)??Dc.exec(t);if(!r)return;let o=Number.parseInt(r[1],10),i=Number.parseInt(r[2],10),s=Number.parseInt(r[3],10),a=n?.trim()||"deadline";if(i<1||i>12)throw new x(`Invalid ${a} value "${e}". Month "${r[2]}" is out of range \u2014 use a month between 01 and 12.`,k.USAGE);let c=yr(o,i-1);if(s<1||s>c)throw new x(`Invalid ${a} value "${e}". ${Ac[i-1]} ${o} has ${c} days, so day "${r[3]}" does not exist. Use a real YYYY-MM-DD calendar date.`,k.USAGE)}function Mc(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,yr(i,s));return n.setUTCFullYear(i,s,a),n}function Z_(e,t=new Date,n="deadline"){let r=e.trim();if(r.toLowerCase()==="now")return t.toISOString();let o=hc.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 Mc(t,a).toISOString();let d=c==="h"?3600*1e3:c==="d"?1440*60*1e3:10080*60*1e3;return new Date(t.getTime()+a*d).toISOString()}Nc(e,r,n);let i=Cc(r);if(!Number.isFinite(i)){let s=n.trim().length>0?n.trim():"deadline",a=gc.test(r)?"Compound relative expressions like +3d+1h are not supported; use a single relative token (for example +3d) or an ISO/date string.":'Use ISO/date string input, "now", or relative +6h/-6h/+1d/-1d/+2w/-2w/+6m/-6m.';throw new x(`Invalid ${s} value "${e}". ${a}`,k.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 Ve=1,wi=1;function ep(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=Ve?t:Ve}function Ei(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=Ve))return e}function Lc(e,t=wi){return e<t?"outdated":e>t?"ahead":"current"}function tp(e,t=wi){let n=[],r=[];for(let o of e){let i=Lc(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 Pc={"in-progress":"in_progress",cancelled:"canceled"};function Yt(e,t){if(t){let o=qo(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=Pc[n]??n;if(Lt.includes(r))return r}function jc(e,t){return Yt(e,t)??e}function ip(e,t){return t.terminal_statuses.has(jc(e,t))}import{encode as Kc}from"@toon-format/toon";import{isDeepStrictEqual as xi}from"node:util";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="91a3969e-59b3-506e-9349-ca08e73a1228")}catch{}})();var Fc=16;function hr(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 $c(e){return[...new Set([Xo(e),hr(e.key),hr(e.cli_flag),...e.cli_aliases.map(t=>hr(t))])]}function Si(e,t){for(let n of $c(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function Ii(e){return Array.isArray(e)?e.flatMap(t=>Ii(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 vi(e,t){if(typeof e=="boolean")return e;if(typeof e=="number"){if(e===1)return!0;if(e===0)return!1}if(typeof e=="string"){let n=e.trim().toLowerCase();if(n==="true"||n==="1"||n==="yes")return!0;if(n==="false"||n==="0"||n==="no")return!1}throw new x(`${t} must be one of true|false|1|0|yes|no`,k.USAGE)}function ki(e,t){if(typeof e=="number"&&Number.isFinite(e))return e;let n=typeof e=="string"?e.trim():String(e),r=Number(n);if(!Number.isFinite(r))throw new x(`${t} must be a number`,k.USAGE);return r}function zc(e,t,n){let r=typeof e=="string"?(()=>{try{return JSON.parse(e)}catch{return}})():e;if(n==="array"&&Array.isArray(r)||n==="object"&&typeof r=="object"&&r!==null&&!Array.isArray(r))return r;throw new x(`${t} must be valid JSON ${n}`,k.USAGE)}function Hc(e,t){return t===void 0?!0:t==="array"?Array.isArray(e):t==="object"?typeof e=="object"&&e!==null&&!Array.isArray(e):typeof e===t}function Uc(e,t,n){if(t.const!==void 0&&P(e)!==P(t.const))return`${n} must equal ${P(t.const)}`;if(t.enum!==void 0&&!t.enum.some(r=>P(r)===P(e)))return`${n} must be one of ${t.enum.map(r=>P(r)).join("|")}`;if(!Hc(e,t.type))return`${n} must match configured type ${String(t.type)}`;if(typeof e=="string"){if(t.min_length!==void 0&&e.length<t.min_length)return`${n} must contain at least ${t.min_length} characters`;if(t.format==="date-time"&&!bi(e))return`${n} must be an RFC 3339 date-time`}}function Wc(e,t,n,r){if(Array.isArray(e)){if(t.min_items!==void 0&&e.length<t.min_items)return`${n} must contain at least ${t.min_items} items`;if(t.items)for(let[o,i]of e.entries()){let s=Zt(i,t.items,`${n}[${o}]`,r+1);if(s)return s}}}function Vc(e,t,n,r){if(typeof e!="object"||e===null||Array.isArray(e))return;let o=e;for(let i of t.required??[])if(!Object.hasOwn(o,i))return`${n}.${i} is required`;for(let[i,s]of Object.entries(o)){let a=t.properties?.[i];if(!a){if(t.additional_properties===!1)return`${n}.${i} is not allowed`;continue}let c=Zt(s,a,`${n}.${i}`,r+1);if(c)return c}}function Zt(e,t,n,r=0){if(r>Fc)return`${n} value schema exceeds maximum depth`;let o=Uc(e,t,n);if(o)return o;let i=Wc(e,t,n,r);if(i)return i;let s=Vc(e,t,n,r);if(s)return s;if(!t.one_of)return;let a=0;for(let c of t.one_of)if(Zt(e,c,n,r+1)===void 0&&(a+=1,a>1))break;return a===1?void 0:`${n} must match exactly one configured schema variant`}function Ae(e,t,n){if(!e.value_schema||t===void 0)return t;let r=Zt(t,e.value_schema,n);if(r)throw new x(r,k.USAGE);return t}function _t(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:Ae(e,zc(i,r,e.type),r)}if(e.repeatable||e.type==="string_array"){let i=Ii(t);return e.type==="number"?Ae(e,i.map(s=>ki(s,r)),r):e.type==="boolean"?Ae(e,i.map(s=>vi(s,r)),r):Ae(e,i,r)}let o=Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return e.type==="number"?Ae(e,ki(o,r),r):e.type==="boolean"?Ae(e,vi(o,r),r):Ae(e,typeof o=="string"?o:String(o),r)}function Bc(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 fp(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=Si(e,i);if(s===void 0){Bc(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=_t(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function mp(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=Si(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=_t(s,a)))}return r}import{decode as qc}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 gr(e){return{value:qc(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 Gc=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function Xc(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(Gc);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function Qt(e){return Xc(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]="051655a4-8ba7-5118-9758-d9ca377fa7e4")}catch{}})();var vr=new Set(["schema","tracker","auto"]),Oi=new Set(["source","isolated","snapshot"]),Jc=new Set(["legacy","local_mutation","local_source_ref","acknowledged","invalid_provenance","foreign_source_ref"]),Yc=new Set(["passed","failed","stopped","canceled"]),Zc=new Set(Io);function Ge(e){return e.replaceAll("\\","/")}function Ai(e){for(let t of e)if(t!==0)return t;return 0}function tn(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var Ri=["id","title","description","created_at","updated_at"],Qc=new Set(ue);function Di(e){if(e?.schema)return{statusRegistry:Bo(e.schema),fieldRegistry:Go(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function ed(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function ye(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new x(`Invalid item metadata: ${e}`,k.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 ht(e,t){throw new x(t,k.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 Ni(e){let t=new Set(Qc);for(let n of e.fieldRegistry?.definitions??[])t.add(n.metadata_key);for(let n of e.extensionFieldNames)t.add(n);return t}function v(e,t){e||ye(t)}function gt(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&ye(t),e}function br(e,t){let n=e[t];v(typeof n=="string",`${t} must be a string`),v(ne(n),`${t} must be a valid ISO timestamp`)}function Ci(e,t,n){let r=e[t];r!==void 0&&v(typeof r=="number"&&Number.isInteger(r)&&r>=1,`${n} must be an integer >= 1`)}function kr(e,t,n){let r=e[t];r!==void 0&&(v(typeof r=="string",`${n} must be a string`),v(ne(r),`${n} must be a valid ISO timestamp`))}function td(e){if(e!==void 0){v(Array.isArray(e),"event.recurrence.by_weekday must be an array");for(let t of e){v(typeof t=="string","event.recurrence.by_weekday entries must be strings");let n=t.trim().toLowerCase();v($t.includes(n),`event.recurrence.by_weekday entries must be one of: ${$t.join(", ")}`)}}}function nd(e){if(e!==void 0){v(Array.isArray(e),"event.recurrence.by_month_day must be an array");for(let t of e)v(typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=31,"event.recurrence.by_month_day entries must be integers 1..31")}}function rd(e){if(e!==void 0){v(Array.isArray(e),"event.recurrence.exdates must be an array");for(let t of e)v(typeof t=="string","event.recurrence.exdates entries must be strings"),v(ne(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function od(e){let t=gt(e,"event.recurrence must be an object");v(typeof t.freq=="string","event.recurrence.freq must be a string");let n=t.freq.trim().toLowerCase();v(Ft.includes(n),`event.recurrence.freq must be one of: ${Ft.join(", ")}`),Ci(t,"interval","event.recurrence.interval"),Ci(t,"count","event.recurrence.count"),kr(t,"until","event.recurrence.until"),td(t.by_weekday),nd(t.by_month_day),rd(t.exdates)}function id(e){for(let r of Ri)v(typeof e[r]=="string",`${r} is required and must be a string`);let t=e.type;v(typeof t=="string"&&t.trim().length>0,"type must be a non-empty string");let n=e.pm_format_version;return n!==void 0&&v(typeof n=="number"&&Number.isInteger(n)&&n>=Ve,`pm_format_version must be an integer >= ${Ve}`),t}function sd(e,t){let n=e.status;v(typeof n=="string"&&n.trim().length>0,"status must be a non-empty string");let r=t?.statusRegistry,o=Yt(n,r),i=r?r.definitions.map(s=>s.id):[...Lt];v(o!==void 0,`status must be one of: ${i.join(", ")}`)}function ad(e){let t=e.priority;v(typeof t=="number"&&Number.isInteger(t)&&[0,1,2,3,4].includes(t),"priority must be an integer 0..4");let n=e.tags;v(Array.isArray(n),"tags must be an array");for(let r of n)v(typeof r=="string","tags entries must be strings")}function cd(e){let t=e.confidence;if(t!==void 0){if(typeof t=="number"){v(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"||jt.includes(n);v(r,`confidence string value must be one of: ${[...jt,"med"].join(", ")}`);return}v(!1,"confidence must be a number or string")}}function dd(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&ye("severity must be a string");let n=t.trim().toLowerCase(),r=n==="med"||Pt.includes(n);v(r,`severity value must be one of: ${[...Pt,"med"].join(", ")}`)}function ld(e){e.regression!==void 0&&typeof e.regression!="boolean"&&ye("regression must be a boolean")}function ud(e){let t=e.reminders;if(t!==void 0){v(Array.isArray(t),"reminders must be an array");for(let n of t){let r=gt(n,"reminders entries must be objects");v(typeof r.at=="string","reminder.at must be a string"),v(ne(r.at),"reminder.at must be a valid ISO timestamp"),v(typeof r.text=="string","reminder.text must be a string"),v(r.text.trim().length>0,"reminder.text must not be empty")}}}function fd(e){for(let t of["title","description","location","timezone"])e[t]!==void 0&&(v(typeof e[t]=="string",`event.${t} must be a string`),v(e[t].trim().length>0,`event.${t} must not be empty`))}function md(e){e.recurrence!==void 0&&(od(e.recurrence),e.recurrence.until!==void 0&&v(U(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function _d(e){let t=gt(e,"events entries must be objects");v(typeof t.start_at=="string","event.start_at must be a string"),v(ne(t.start_at),"event.start_at must be a valid ISO timestamp"),t.end_at!==void 0&&(v(typeof t.end_at=="string","event.end_at must be a string"),v(ne(t.end_at),"event.end_at must be a valid ISO timestamp"),v(U(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),fd(t),t.all_day!==void 0&&v(typeof t.all_day=="boolean","event.all_day must be a boolean"),md(t)}function pd(e){let t=e.events;if(t!==void 0){v(Array.isArray(t),"events must be an array");for(let n of t)_d(n)}}function yd(e){for(let t of["source_type","source_owner","design","external_ref"]){let n=e[t];n!==void 0&&v(typeof n=="string",`${t} must be a string`)}}function hd(e){let t=e.type_options;if(t===void 0)return;let n=gt(t,"type_options must be an object");for(let[r,o]of Object.entries(n))v(r.trim().length>0,"type_options keys must be non-empty"),v(typeof o=="string","type_options values must be strings"),v(o.trim().length>0,"type_options values must be non-empty strings")}function gd(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){ed(r,t)&&ye(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=_t(r,o,`metadata field "${r.metadata_key}"`)}catch(i){ye(String(i?.message).replace(/^Invalid\s+/u,""))}}}function bd(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Ni(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length!==0&&(t.unknownFieldPolicy==="reject"?ye(`unknown schema fields are not allowed: ${r.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`))}function Sr(e,t){let n=gt(e,"item metadata must be an object"),r=id(n);sd(n,t),ad(n),cd(n),dd(n),ld(n),br(n,"created_at"),br(n,"updated_at"),n.deadline!==void 0&&br(n,"deadline"),ud(n),pd(n),kr(n,"closed_at","closed_at"),kr(n,"completed_at","completed_at"),yd(n),hd(n),gd(n,r,t),bd(n,t)}function wd(e){if(!(!e||e.length===0))return[...e].map(t=>({id:t.id.trim(),kind:t.kind,created_at:t.created_at,author:t.author?.trim()||void 0,source_kind:t.source_kind?.trim()||void 0,author_source:t.author_source})).sort((t,n)=>{let r=U(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 wr(e){if(!(!e||e.length===0))return[...e].sort((t,n)=>{let r=U(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 Ed(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=U(n.at,r.at);return o!==0?o:n.text.localeCompare(r.text)});return t.length===0?void 0:t}function vd(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=>$t.includes(s)))).sort((s,a)=>Vn(s)-Vn(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=>ne(s)))).sort((s,a)=>U(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 kd(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(Sd).sort(Id)}function Sd(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:vd(e.recurrence)};return tn(t),t}function Id(e,t){return Ai([U(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 xd(e){if(!(!e||e.length===0))return e.map(t=>({path:Ge(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function Cd(e){if(!e||e.length===0)return;let t=e.map(Rd).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)=>Ai([U(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 Be(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function Td(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function Er(e){return typeof e=="string"?e:""}function Od(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 en(e,t){return typeof e=="string"&&t.has(e)?e:void 0}function Ad(e){if(!Array.isArray(e))return;let t=e.filter(n=>n&&typeof n.command=="string"&&n.command.trim().length>0).slice(0,32).map(n=>({command:n.command.trim(),requested_pm_context_mode:en(n.requested_pm_context_mode,vr),pm_context_mode:en(n.pm_context_mode,vr),workspace_context_mode:en(n.workspace_context_mode,Oi),trust_reason:en(n.trust_reason,Jc)}));return t.length>0?t:void 0}function Rd(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=Yc.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:Er(e.started_at),finished_at:Er(e.finished_at),recorded_at:Er(e.recorded_at),attempt:Td(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:Be(e.passed)??0,failed:Be(e.failed)??0,skipped:Be(e.skipped)??0,items:Be(e.items),linked_tests:Be(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:Od(e.measurements),executions:Ad(e.executions)};return tn(o),o}function Dd(e){if(!(!Array.isArray(e)||e.length===0))return e.map(jd)}function pt(e){if(!Array.isArray(e))return;let t=[...new Set(e.filter(n=>typeof n=="string").map(n=>n.trim()).filter(n=>n.length>0))].sort((n,r)=>n.localeCompare(r));return t.length>0?t:void 0}function xr(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Cr(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function Ti(e){if(!xr(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!Cr(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Nd(e){if(!xr(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!Cr(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Md(e){let t=e?.trim().toLowerCase();if(!(!t||!vr.has(t)))return t}function Ld(e){let t=e?.trim().toLowerCase();if(!(!t||!Oi.has(t)))return t}function Pd(e,t){if(t===!0)return{provenance_invalid:!0};if(e===void 0)return{};if(!xr(e))return{provenance_invalid:!0};let n=b(e.author),r=b(e.created_at),o=e.source_kind;return!n||!r||!ne(r)||o!=="local_mutation"&&o!=="merge_union"?{provenance_invalid:!0}:{provenance:{author:n,created_at:r,source_kind:o,source_ref:b(e.source_ref)}}}function jd(e){let t={command:e.command?.trim()||void 0,path:e.path?Ge(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:Md(e.pm_context_mode),workspace_context_mode:Ld(e.workspace_context_mode),...Pd(e.provenance,e.provenance_invalid),env_set:Ti(e.env_set),env_clear:pt(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:pt(e.assert_stdout_contains),assert_stdout_regex:pt(e.assert_stdout_regex),assert_stderr_contains:pt(e.assert_stderr_contains),assert_stderr_regex:pt(e.assert_stderr_regex),assert_stdout_min_lines:Be(e.assert_stdout_min_lines),assert_json_field_equals:Ti(e.assert_json_field_equals),assert_json_field_gte:Nd(e.assert_json_field_gte),note:e.note?.trim()||void 0};return tn(t),t}function Fd(e){if(!(!e||e.length===0))return[...e].map(t=>({path:Ge(t.path),scope:t.scope,note:t.note?.trim()||void 0})).sort((t,n)=>{let r=t.scope.localeCompare(n.scope);if(r!==0)return r;let o=t.path.localeCompare(n.path);return o!==0?o:(t.note??"").localeCompare(n.note??"")})}function b(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function $d(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=b(r.id),i=b(r.kind);if(!o||!i)continue;let s={id:o,kind:i},a=b(r.note);a&&(s.note=a),r.required_before_step===!0&&(s.required_before_step=!0),t.push(s)}return t.length>0?t:void 0}function zd(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=b(r.path);if(!o)continue;let i={path:Ge(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=b(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Hd(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=b(r.command),i=b(r.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=Ge(i));let a=b(r.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function Ud(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=b(r.path);if(!o)continue;let i={path:Ge(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=b(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Wd(e){if(e===null||typeof e!="object")return;let t=e,n=b(t.id),r=b(t.title),o=b(t.status),i=o&&Zc.has(o)?o:void 0,s=No(t.order)??Number.NaN,a=typeof t.created_at=="string"?t.created_at:"",c=typeof t.updated_at=="string"?t.updated_at:"";if(!n||!r||!i||!Number.isFinite(s)||!a||!c)return;let d={id:n,order:s,title:r,status:i,created_at:a,updated_at:c};return Vd(d,t),d}function Vd(e,t){let n=[["body","body"],["owner","owner"],["evidence","evidence"],["blocked_reason","blocked_reason"],["superseded_by","superseded_by"]];for(let[i,s]of n){let a=b(t[s]);a&&(e[i]=a)}let r=typeof t.completed_at=="string"?t.completed_at:void 0;r&&r.length>0&&(e.completed_at=r);let o=[["linked_items","linked_items",$d],["files","files",zd],["tests","tests",Hd],["docs","docs",Ud]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function Bd(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=Wd(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function qd(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=typeof r.ts=="string"?r.ts:"",i=typeof r.author=="string"?r.author:"",s=b(r.decision);if(!o||!i||!s)continue;let a={ts:o,author:i,decision:s},c=b(r.rationale);c&&(a.rationale=c);let d=b(r.evidence);d&&(a.evidence=d);let u=b(r.step_id);u&&(a.step_id=u),t.push(a)}return t.length>0?t:void 0}function Gd(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=typeof r.ts=="string"?r.ts:"",i=typeof r.author=="string"?r.author:"",s=b(r.text);if(!o||!i||!s)continue;let a={ts:o,author:i,text:s},c=b(r.step_id);c&&(a.step_id=c),t.push(a)}return t.length>0?t:void 0}function Xd(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=b(r.text);if(!o)continue;let i={text:o},s=b(r.command);s&&(i.command=s);let a=b(r.expected);a&&(i.expected=a),t.push(i)}return t.length>0?t:void 0}function Kd(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 qe(e){let t=0;for(;t<e.length&&e[t]===`
|
|
7
|
+
`;)t+=1;return e.slice(t).trimEnd()}function Jd(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(jt.includes(t))return t}function Yd(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(Pt.includes(t))return t}function yt(e){return e||void 0}function Zd(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))Cr(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function Qd(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]=_t(r,o,`metadata field "${r.metadata_key}"`))}}function el(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Ni(t),o=Object.keys(e).filter(i=>!n.has(i)).sort((i,s)=>i.localeCompare(s));o.length>0&&t.unknownFieldPolicy==="reject"&&ye(`unknown schema fields are not allowed: ${o.join(", ")}`),o.length>0&&t.onWarning?.(`item_unknown_schema_fields:${o.join(",")}`)}function nn(e,t={}){let n=Di(t),r=Yt(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:Ei(e.pm_format_version),source_type:b(e.source_type),type_options:Kd(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:wd(e.dependencies),comments:wr(e.comments),notes:wr(e.notes),learnings:wr(e.learnings),files:xd(e.files),tests:Dd(e.tests),test_runs:Cd(e.test_runs),docs:Fd(e.docs),deadline:yt(e.deadline),reminders:Ed(e.reminders),events:kd(e.events),closed_at:yt(e.closed_at),completed_at:yt(e.completed_at),assignee:b(e.assignee),claim_principal:b(e.claim_principal),source_owner:b(e.source_owner),author:yt(e.author),estimated_minutes:e.estimated_minutes,acceptance_criteria:e.acceptance_criteria??void 0,design:e.design??void 0,external_ref:e.external_ref??void 0,definition_of_ready:b(e.definition_of_ready),order:e.order,goal:b(e.goal),objective:b(e.objective),value:b(e.value),impact:b(e.impact),outcome:b(e.outcome),why_now:b(e.why_now),parent:b(e.parent),reviewer:b(e.reviewer),risk:e.risk??void 0,confidence:Jd(e.confidence),sprint:b(e.sprint),release:b(e.release),blocked_by:b(e.blocked_by),blocked_reason:b(e.blocked_reason),unblock_note:b(e.unblock_note),reporter:b(e.reporter),severity:Yd(e.severity),environment:b(e.environment),repro_steps:b(e.repro_steps),resolution:b(e.resolution),expected_result:b(e.expected_result),actual_result:b(e.actual_result),affected_version:b(e.affected_version),fixed_version:b(e.fixed_version),component:b(e.component),regression:e.regression,customer_impact:b(e.customer_impact),close_reason:yt(e.close_reason),plan_mode:b(e.plan_mode),plan_scope:b(e.plan_scope),plan_harness:b(e.plan_harness),plan_resume_context:b(e.plan_resume_context),plan_steps:Bd(e.plan_steps),plan_decisions:qd(e.plan_decisions),plan_discoveries:Gd(e.plan_discoveries),plan_validation:Xd(e.plan_validation)};return Zd(i,e),Qd(i,n),el(i,n),tn(i),i}function Mi(e){return S(e,ue)}function tl(e){let t=0,n=!1,r=!1;for(let o=0;o<e.length;o+=1){let i=e[o];if(n){if(r){r=!1;continue}if(i==="\\"){r=!0;continue}i==='"'&&(n=!1);continue}if(i==='"'){n=!0;continue}if(i==="{"){t+=1;continue}if(i==="}"&&(t-=1,t===0))return o}return-1}function nl(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=tl(e);if(t<0)return{frontMatter:"",body:e};let n=e.slice(0,t+1),r=e.slice(t+1).replace(/^\r?\n+/,"");return{frontMatter:n,body:r}}function rl(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(`
|
|
8
|
+
`,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 Ir(e,t){return nn(e,{...t,onWarning:void 0})}function ol(e,t,n={}){let r=rl(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=nl(r.content);o||(e.trimStart().startsWith("{")&&ht("json_markdown","JSON front matter is not valid JSON"),ht("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{ht("json_markdown","JSON front matter is not valid JSON")}return Sr(s,t),{metadata:Ir(s,n),body:qe(i)}}function il(e,t,n={}){let r;try{r=gr(e).value}catch{ht("toon","TOON item document is not valid TOON")}v(typeof r=="object"&&r!==null&&!Array.isArray(r),"TOON item document must be an object");let o=r;if(!Ri.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&ht("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return Sr(o.front_matter,t),v(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:Ir(o.front_matter,n),body:qe(typeof o.body=="string"?o.body:"")};let{body:i,...s}=o;return v(i===void 0||typeof i=="string","TOON item document body must be a string"),Sr(s,t),{metadata:Ir(s,n),body:qe(typeof i=="string"?i:"")}}function sl(e,t={}){let n=nn(e.metadata,t),r=Mi(n),o=JSON.stringify(r,null,2),i=qe(e.body??"");return i?`${o}
|
|
9
|
+
|
|
10
|
+
${i}
|
|
11
|
+
`:`${o}
|
|
12
|
+
`}function al(e,t={}){let n=nn(e.metadata,t),r=Mi(n),o=qe(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i)),a=Kc(s),c;try{c=gr(a).value}catch(d){throw new x("Refusing to persist a TOON item document that the configured decoder cannot read back.",k.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_error",format:"toon",required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:d instanceof Error?d.message:String(d)})}if(!xi(c,s)){let d=typeof c=="object"&&c!==null&&!Array.isArray(c)?c:{},u=Object.keys(s).find(m=>!xi(s[m],d[m]))??"document";throw new x(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${u}".`,k.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_mismatch",format:"toon",field:u,required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:"The encoded document decoded to a value different from the canonical item payload."})}return`${a}
|
|
13
|
+
`}function rn(e,t={}){let n=Qt(e);if(n)throw new x(`Merge conflict markers detected in item document at line ${n.line} (${n.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,k.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=Di(t);return r==="toon"?il(e,o,t):ol(e,o,t)}function Li(e,t={}){return(t.format??"toon")==="toon"?al(e,t):sl(e,t)}function X(e,t={}){return{metadata:nn(e.metadata,t),body:qe(e.body??"")}}import{existsSync as dl}from"node:fs";import{AsyncLocalStorage as ll}from"node:async_hooks";import re 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 Pp(){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 cl(){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 Xe=null,ji=null,ul=null,fl=null,Tr=null,ml=null,Fi=null,_l=null;var pl=[],$i=new ll;function F(){return $i.getStore()}function Kp(e){return $i.run({hooks:null,commands:null,parsers:null,preflight:null,services:null,renderers:null,registrations:null,commandContext:null,commandResult:void 0,affectedItems:[]},e)}var yl=new Set(["body","comments","dependencies","docs","events","files","learnings","notes","reminders","test_runs","tests"]);function Pi(e){let t=re.resolve(e);for(;;){if(dl(re.join(t,".git")))return t;let n=re.dirname(t);if(n===t)return;t=n}}function hl(e){let t=process.env.PM_SOURCE_WORKSPACE_ROOT?.trim()||process.cwd(),n=Pi(t)??re.resolve(t),r=Pi(n);if(!e)return{source_workspace_root:n,...r?{repo_root:r}:{}};let o=re.relative(n,re.resolve(e)),i=o.length>0&&!o.startsWith(`..${re.sep}`)&&o!==".."&&!re.isAbsolute(o);return{source_workspace_root:n,...r?{repo_root:r}:{},...i?{pm_root_rel:o.split(re.sep).join("/")}:{}}}function Jp(e){let t=F();if(t){t.hooks=e;return}Xe=e}function Yp(e){let t=F();if(t){t.commands=e;return}ji=e}function Zp(e){let t=F();if(t){t.parsers=e;return}ul=e}function Qp(e){let t=F();if(t){t.preflight=e;return}fl=e}function ey(e){let t=F();if(t){t.services=e;return}Tr=e}function ty(e){let t=F();if(t){t.renderers=e;return}ml=e}function ny(e){let t=F();if(t){t.registrations=e;return}Fi=e}function Re(){let e=F();return e?e.registrations:Fi}function Or(e){if(!e)return;let t=F();t?t.affectedItems.push(e):pl.push(e)}function on(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"||yl.has(i)||Object.hasOwn(r,i)&&r[i]!==void 0&&(n[i]=r[i])}return n}async function K(e){let t=F(),n=t?t.hooks:Xe;return n?jo(n,e):[]}async function Ar(e){let t=F(),n=t?t.hooks:Xe;n&&await Po(n,e)}async function ee(e){let t=F(),n=t?t.hooks:Xe;return n?Fo(n,e):[]}function Rr(){let e=F();return((e?e.hooks:Xe)?.onRead?.length??0)>0}async function ry(e){let t=F(),n=t?t.hooks:Xe;return n?$o(n,e):[]}async function oy(e){let t=F(),n=t?t.commands:ji;return n?zo(n,{...e,...hl(e.pm_root)}):{handled:!1,result:null,warnings:[]}}function zi(e,t){let n=F(),r=n?n.commandContext:_l;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 oe(e,t){let n=F(),r=n?n.services:Tr;return r?Uo(r,zi(e,t)):{handled:!1,result:t,warnings:[]}}function Hi(e,t){let n=F(),r=n?n.services:Tr;return r?Ho(r,zi(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 fe(e);if(n===null)return[];if(await ee({path:e,scope:"project"}),n.trim()==="")return[];let r=Qt(n);if(r)throw new x(`History for ${t} contains merge conflict markers at line ${r.line} (${r.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,k.GENERIC_FAILURE,{code:"history_merge_conflict_markers_detected",required:"Repair the history stream by resolving merge-conflict markers.",why:"Conflict markers break JSONL parsing and invalidate deterministic audit history.",examples:[`pm history ${t}`,`pm restore ${t} <timestamp-or-version>`],nextSteps:["Resolve or restore the history file, then rerun the command."]});let o=[];for(let[i,s]of n.split(/\r?\n/).entries()){let a=s.trim();if(a)try{o.push(JSON.parse(a))}catch{throw new x(`History for ${t} contains invalid JSON at line ${i+1}. Repair or restore the history stream and retry.`,k.GENERIC_FAILURE)}}return o}import Ur 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 as from"fast-json-patch";import ie from"node:fs/promises";import se from"node:path";import{randomUUID as gl}from"node:crypto";import{createRequire as bl}from"node:module";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a84b308f-7eef-535c-9531-b33b0775c651")}catch{}})();var wl="history-event-index.sqlite",Dr="2",El=8,De=new Map;function dn(e){return se.join(e,"runtime",wl)}async function Ui(e){let t=se.join(e,"history"),n=await ie.readdir(t,{withFileTypes:!0}).catch(s=>{if(typeof s=="object"&&s!==null&&"code"in s&&s.code==="ENOENT")return[];throw s}),r=De.get(e)??{streams:new Map,ordered_events:[]},o=new Set,i=!De.has(e);for(let s of n.filter(a=>a.isFile()&&a.name.endsWith(".jsonl")).sort((a,c)=>a.name.localeCompare(c.name))){let a=s.name.slice(0,-6);o.add(a);let c=se.join(t,s.name),d=await ie.stat(c,{bigint:!0}),u=[d.dev,d.ino,d.size,d.mtimeNs,d.ctimeNs].join(":");if(r.streams.get(a)?.signature===u)continue;let m=await Ke(c,a);r.streams.set(a,{signature:u,events:m.map((_,y)=>({stream_id:a,stream_offset:y,entry:_}))}),i=!0}for(let s of r.streams.keys())o.has(s)||(r.streams.delete(s),i=!0);if(i&&(r.ordered_events=[...r.streams.values()].flatMap(s=>s.events).sort(Vi)),De.delete(e),De.set(e,r),De.size>El){let s=De.keys().next().value;De.delete(s)}return r.ordered_events}function vl(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}function kl(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?vl(t):null}var sn;function Nr(){return sn!==void 0||(sn=kl(process.versions.node,bl(import.meta.url))),sn}function Sl(e){e.exec(`
|
|
14
|
+
PRAGMA journal_mode = OFF;
|
|
15
|
+
PRAGMA synchronous = OFF;
|
|
16
|
+
CREATE TABLE metadata (
|
|
17
|
+
key TEXT PRIMARY KEY,
|
|
18
|
+
value TEXT NOT NULL
|
|
19
|
+
) STRICT;
|
|
20
|
+
CREATE TABLE events (
|
|
21
|
+
stream_id TEXT NOT NULL,
|
|
22
|
+
stream_offset INTEGER NOT NULL,
|
|
23
|
+
ts TEXT NOT NULL,
|
|
24
|
+
author TEXT NOT NULL,
|
|
25
|
+
agent_harness TEXT,
|
|
26
|
+
agent_instance TEXT,
|
|
27
|
+
op TEXT NOT NULL,
|
|
28
|
+
entry_json TEXT NOT NULL,
|
|
29
|
+
PRIMARY KEY(stream_id, stream_offset)
|
|
30
|
+
) STRICT;
|
|
31
|
+
CREATE INDEX events_order
|
|
32
|
+
ON events(ts, stream_id, stream_offset);
|
|
33
|
+
CREATE INDEX events_op_order
|
|
34
|
+
ON events(op, ts, stream_id, stream_offset);
|
|
35
|
+
CREATE INDEX events_author_order
|
|
36
|
+
ON events(author, ts, stream_id, stream_offset);
|
|
37
|
+
CREATE INDEX events_harness_order
|
|
38
|
+
ON events(agent_harness, ts, stream_id, stream_offset);
|
|
39
|
+
CREATE INDEX events_instance_order
|
|
40
|
+
ON events(agent_instance, ts, stream_id, stream_offset);
|
|
41
|
+
`),e.prepare("INSERT INTO metadata(key, value) VALUES ('version', ?)").run(Dr)}function Wi(e,t){e.prepare(`INSERT INTO events(
|
|
42
|
+
stream_id, stream_offset, ts, author, agent_harness,
|
|
43
|
+
agent_instance, op, entry_json
|
|
44
|
+
) 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 vy(e){let t=Nr();if(!t)return!1;let n=dn(e);await ie.mkdir(se.dirname(n),{recursive:!0});let r=`${n}.${gl()}.tmp`,o;try{o=new t(r),Sl(o),o.exec("BEGIN IMMEDIATE");for(let i of await Ui(e))Wi(o,i);return o.exec("COMMIT"),o.close(),o=void 0,await ie.rm(n,{force:!0}),await ie.rename(r,n),!0}catch(i){throw o?.close(),await ie.rm(r,{force:!0}),i}}function an(e,t){return!t||t.length===0||t.includes(e)}function Vi(e,t){return e.entry.ts.localeCompare(t.entry.ts)||e.stream_id.localeCompare(t.stream_id)||e.stream_offset-t.stream_offset}function Il(e,t){if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){if(Vi(e,{stream_id:t.after_stream_id,stream_offset:t.after_stream_offset,entry:{...e.entry,ts:t.after_ts}})<=0)return!1}else if(t.since_ts!==void 0&&e.entry.ts<t.since_ts)return!1;return!0}function xl(e,t){return!t.harnesses||t.harnesses.length===0||t.harnesses.includes(e.entry.agent_harness??"")?!0:e.entry.agent_harness===void 0&&(t.harness_alias_authors??[]).includes(e.entry.author)}function Cl(e,t){return!Il(e,t)||!an(e.entry.op,t.ops)||!an(e.entry.author,t.authors)||!an(e.entry.agent_instance??"",t.agent_instances)||!an(e.stream_id,t.stream_ids)||!xl(e,t)?!1:(t.provenance??[]).every(n=>{let r=e.entry.agent_provenance?.[n.dimension]?.value;return r!==void 0&&n.values.includes(r)})}async function ky(e,t){let n=Math.max(0,Math.floor(t.limit)),r=(await Ui(e)).filter(o=>Cl(o,t)).slice(0,n+1);return{events:r.slice(0,t.limit),has_more:r.length>t.limit}}async function Bi(e,t){let n=se.dirname(se.dirname(e)),r=dn(n);try{await ie.access(r)}catch{return}let o=Nr();if(!o)return;let i;try{if(i=new o(r),i.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==Dr)throw new TypeError("Unsupported history event index version");let a=se.basename(e,".jsonl"),c=i.prepare("SELECT COALESCE(MAX(stream_offset), -1) + 1 AS value FROM events WHERE stream_id = ?").get(a);Wi(i,{stream_id:a,stream_offset:Number(c.value),entry:t}),i.close()}catch{i?.close(),await ie.rm(r,{force:!0})}}async function ln(e){await ie.rm(dn(se.dirname(se.dirname(e))),{force:!0})}function cn(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function Tl(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 Sy(e,t){let n=Nr();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)),cn(r,o,"op",t.ops),cn(r,o,"author",t.authors),Tl(r,o,t.harnesses,t.harness_alias_authors),cn(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);cn(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s;try{if(s=new n(dn(e),{readOnly:!0}),s.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==Dr)return s.close(),null;let c=s.prepare(`SELECT stream_id, stream_offset, entry_json
|
|
45
|
+
FROM events${i}
|
|
46
|
+
ORDER BY ts, stream_id, stream_offset
|
|
47
|
+
LIMIT ?`).all(...o,Math.max(0,Math.floor(t.limit))+1),d=c.length>t.limit,u=c.slice(0,t.limit).map(m=>({stream_id:String(m.stream_id),stream_offset:Number(m.stream_offset),entry:JSON.parse(String(m.entry_json))}));return s.close(),{events:u,has_more:d}}catch{return s?.close(),null}}import zr from"node:fs/promises";import Ye from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a3e0573a-01fd-54fb-a568-51c5287b696c")}catch{}})();var un="changed_fields",Ol="changed_field_count",Mr="rows",Al=new Set(["apply","rollback"]),Xi=new Set(["deleted","would_delete"]),qi=256;function Gi(e){return typeof e!="string"||e.length<=qi?e:`${e.slice(0,qi-1)}\u2026`}function Rl(e){if(!ae(e))return null;let t={...e};return t.reason=Gi(t.reason),ae(t.previous_terminal)&&(t.previous_terminal=Object.fromEntries(Object.entries(t.previous_terminal).map(([n,r])=>[n,Gi(r)]))),t}function ae(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function Ki(e){let t=e[un];if(!Array.isArray(t))return null;let n=Object.getPrototypeOf(e)===null?Object.create(null):{};for(let[r,o]of Object.entries(e))r!==un&&(n[r]=o);return n[Ol]=t.length,n}function Dl(e){return"item"in e&&Array.isArray(e[un])}function Nl(e){return typeof e.mode=="string"&&Al.has(e.mode)&&Array.isArray(e[Mr])}function Ml(e,t){let n=Object.getPrototypeOf(e)===null?Object.create(null):{};return Object.assign(n,e),n[Mr]=t,n}function Ll(e){if(!ae(e))return null;let t=ae(e.item)?e.item:ae(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"&&Xi.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 Pl(e){if(!ae(e)||!ae(e.item)||typeof e.item.id!="string")return null;let t=e[un];if(!Array.isArray(t))return null;let n={id:e.item.id,...typeof e.outcome=="string"&&Xi.has(e.outcome)?{status:e.outcome}:typeof e.item.status=="string"?{status:e.item.status}:{},...typeof e.deleted=="boolean"?{deleted:e.deleted}:{},...typeof e.previous_status=="string"?{previous_status:e.previous_status}:{},changed_field_count:t.length},r=typeof e.close_reason=="string"?e.close_reason:typeof e.item.close_reason=="string"?e.item.close_reason:void 0;r!==void 0&&(n.close_reason=r);let o=Rl(e.recurrence);return o!==null&&(n.recurrence=o),Array.isArray(e.warnings)&&e.warnings.length>0&&(n.warnings=e.warnings),n}function jl(e){let t=Nl(e)?e[Mr]:void 0;if(!Array.isArray(t))return{projected:e,changed:!1};let n=!1,r=t.map(o=>{if(!ae(o))return o;let i=Ki(o);return i?(n=!0,i):o});return n?{projected:Ml(e,r),changed:!0}:{projected:e,changed:!1}}function Fl(e,t={}){if(t.idOnly===!0){let a=Ll(e);if(a!==null)return a}if(t.compactEnvelope===!0){let a=Pl(e);if(a!==null)return a}if((t.changedFields??"full")==="full"||!ae(e))return e;let r=!1,o=e,i=Dl(e)?Ki(e):null;i!==null&&(o=i,r=!0);let s=jl(o);return s.changed&&(o=s.projected,r=!0),r?o:e}import{encode as Zi}from"@toon-format/toon";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="202cbb3e-71fe-5701-a1f5-eb515bf56561")}catch{}})();var Vy=new Set(Object.values(k));var Ji=!1;function Je(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Lr(e){return typeof e=="object"&&e!==null&&e.code==="EPIPE"}function $l(){(process.exitCode===void 0||process.exitCode===k.SUCCESS)&&(process.exitCode=k.SUCCESS)}function zl(){(process.exitCode===void 0||process.exitCode===k.SUCCESS)&&(process.exitCode=k.GENERIC_FAILURE)}function Pr(e){if(e==="stdout"){$l();return}zl()}function Yi(e){let t=e instanceof Error?e:new Error(String(e));setImmediate(()=>{throw t})}function Hl(){Ji||(Ji=!0,process.stdout.on("error",e=>{if(Lr(e)){Pr("stdout");return}Yi(e)}),process.stderr.on("error",e=>{if(Lr(e)){Pr("stderr");return}Yi(e)}))}function Ul(e,t){Hl();try{return e==="stdout"?process.stdout.write(t):process.stderr.write(t),!0}catch(n){if(Lr(n))return Pr(e),!1;throw n}}function fn(e){return Ul("stderr",e)}function jr(e){return typeof e=="string"?JSON.stringify(e):typeof e=="number"||typeof e=="boolean"?String(e):e===null?"null":JSON.stringify(e)}function Wl(e){return e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function Qi(e){if(e.length===0||!e.every(Je))return!1;let t=Object.keys(e[0]);return t.length>0&&e.every(n=>Object.keys(n).length===t.length&&t.every(r=>Object.hasOwn(n,r)&&Wl(n[r])))}function es(e,t){let n=" ".repeat(t);return e.split(`
|
|
48
|
+
`).map(r=>`${n}${r}`).join(`
|
|
49
|
+
`)}function Vl(e,t,n){let r=" ".repeat(n);return!Je(t)&&!Array.isArray(t)?`${r}${e}: ${jr(t)}`:Array.isArray(t)&&t.length===0?`${r}${e}: []`:Array.isArray(t)&&Qi(t)?es(Zi({[e]:t}),n):Je(t)&&Object.keys(t).length===0?`${r}${e}: {}`:`${r}${e}:
|
|
50
|
+
${$r(t,n+1)}`}function Fr(e){if(e!=null){if(Array.isArray(e)){let t=e.map(n=>Fr(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=Fr(r);o!==void 0&&(t[n]=o)}return Object.keys(t).length>0?t:void 0}return e}}function $r(e,t){let n=" ".repeat(t);if(Array.isArray(e))return e.length===0?"[]":Qi(e)?es(Zi(e),t):e.map(r=>{if(!Je(r)&&!Array.isArray(r))return`${n}- ${jr(r)}`;let i=$r(r,t+1).split(`
|
|
51
|
+
`),[s,...a]=i;return a.length===0?`${n}- ${s.trimStart()}`:`${n}- ${s.trimStart()}
|
|
52
|
+
${a.join(`
|
|
53
|
+
`)}`}).join(`
|
|
54
|
+
`);if(Je(e)){let r=Object.entries(e);return r.length===0?"{}":r.map(([o,i])=>Vl(o,i,t)).join(`
|
|
55
|
+
`)}return`${n}${jr(e)}`}function By(e,t){if(t==="json")return`${JSON.stringify(e,null,2)}
|
|
56
|
+
`;let n=Fr(e);return n===void 0?`{}
|
|
57
|
+
`:`${$r(n,0)}
|
|
58
|
+
`}function qy(e){let t=Hi("error_format",{message:e}),n=t.handled&&typeof t.result=="string"?t.result:e;fn(n.endsWith(`
|
|
59
|
+
`)?n:`${n}
|
|
60
|
+
`)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5121b339-6594-58ec-b479-11cbf7dafd27")}catch{}})();var Bl=Ye.join("runtime","history-drift-cache.json"),ts={EINVAL:"invalid_cache_path",EISDIR:"cache_path_is_directory",ENOENT:"invalid_cache_path",ENOTDIR:"invalid_cache_path",ERR_FS_EISDIR:"cache_path_is_directory"};function ns(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function ql(e){let t=Ye.join(e,Bl),n=!1,r="invalid_cache_path";try{n=(await zr.stat(await zr.realpath(e))).isDirectory()}catch(o){let i=ns(o);r=i===void 0?"unknown":ts[i]??"filesystem_error"}if(!n){fn(`[pm] warning: history_drift_cache_invalidation_failed:${r}
|
|
61
|
+
`);return}try{await zr.rm(t,{force:!0})}catch(o){let i=ns(o);if(Ie(o))return;let s=i===void 0?"unknown":ts[i]??"filesystem_error";fn(`[pm] warning: history_drift_cache_invalidation_failed:${s}
|
|
62
|
+
`)}}async function bt(e){let t=Ye.dirname(Ye.resolve(e));Ye.basename(t)==="history"&&await ql(Ye.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]="60d6ec0e-a8ed-5a5d-b5bd-d29da8532a79")}catch{}})();var Xl={front_matter:{},body:""},Ne=3,wt=[1,2,3];function mn(e,t){return(e??"").localeCompare(t??"")}function rs(e,t){return(e??0)-(t??0)}function he(e,t,n){return JSON.stringify(e??n).localeCompare(JSON.stringify(t??n))}function Kl(e,t){return[e.scope.localeCompare(t.scope),mn(e.path,t.path),mn(e.command,t.command),rs(e.timeout_seconds,t.timeout_seconds),mn(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,he(e.env_clear,t.env_clear,[]),he(e.env_set,t.env_set,{}),he(e.assert_stdout_contains,t.assert_stdout_contains,[]),he(e.assert_stdout_regex,t.assert_stdout_regex,[]),he(e.assert_stderr_contains,t.assert_stderr_contains,[]),he(e.assert_stderr_regex,t.assert_stderr_regex,[]),rs(e.assert_stdout_min_lines,t.assert_stdout_min_lines),he(e.assert_json_field_equals,t.assert_json_field_equals,{}),he(e.assert_json_field_gte,t.assert_json_field_gte,{}),mn(e.note,t.note)].find(r=>r!==0)??0}function Jl(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function Yl(e,t){let n=Jl(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 Zl(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!Yl(r,o.path)?{...o,op:"add"}:o;n.push(i),r=as.applyPatch(r,[i],!0,!0).newDocument}return n}function pn(e,t,n=!1){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let o=X(e),s=t===1||t===2&&n?{...o.metadata,...o.metadata.dependencies===void 0?{}:{dependencies:o.metadata.dependencies.map(d=>({...d,id:d.id.toLowerCase()}))},...o.metadata.tests===void 0?{}:{tests:o.metadata.tests.map(({workspace_context_mode:d,provenance:u,provenance_invalid:m,..._})=>_)},...o.metadata.test_runs===void 0?{}:{test_runs:o.metadata.test_runs.map(({executions:d,...u})=>u)}}:o.metadata,a=t===1&&s.tests?{...s,tests:[...s.tests].sort(Kl)}:s;return{front_matter:S(a,ue),body:o.body}}function os(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let n=X(e);return{metadata:S(n.metadata,ue),body:n.body}}function lh(e){return cs(e,Ne)}function cs(e,t){if(!wt.some(n=>n===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return me(P(pn(e,t)))}function ds(e,t){let n=cs(e,t);return t===2?[n,me(P(pn(e,t,!0)))]:[n]}function uh(){return me(P(Xl))}function Ze(e){let t=pn(e.before,Ne),n=pn(e.after,Ne),r=os(e.before),o=os(e.after),i=as.compare(r,o),s=Zl(r,i),a=ui(e.author),c=a.harness?Object.fromEntries(Object.entries(di().provenance_outcomes).filter(([,u])=>u.resolver!==void 0&&u.status!=="resolved")):void 0,d=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??li(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:me(P(t)),after_hash:me(P(n)),item_hash_version:Ne,message:e.message===void 0?void 0:e.message,...d===void 0?{}:{context:d}}}function is(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ql(e){let t=e.ts.trim();return t.length>0?t:Oe()}function ss(e,t){let n=e.ts;return typeof n=="string"&&n.trim().length>0?e:{...e,ts:t}}function _n(e,t){let n=Ql(t);if(typeof e=="string"){try{let r=JSON.parse(e);if(is(r))return JSON.stringify(ss(r,n))}catch{}return e}return is(e)?JSON.stringify(ss(e,n)):JSON.stringify(e)}async function Qe(e,t){let n=await oe("history_append",{history_path:e,entry:t});if(n.handled){if(n.result===!1)return;if(typeof n.result=="string"){await ct(e,_n(n.result,t)),await bt(e),await ln(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 ct(o,_n(r.line,t)),await bt(o),await ln(o);return}await ct(o,_n(r.entry??t,t)),await bt(o),await ln(o);return}}await ct(e,_n(t,t)),await bt(e),await Bi(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]="c9488ed4-8228-5e7c-9717-69dd7a3275c4")}catch{}})();var eu={metadata:{},body:""};function yn(){return structuredClone(eu)}function bh(e,t=Ne){return Hr(e,t)[0]}function Hr(e,t){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return ds(hn(e),t)}catch{}let n=me(P({replay_fallback:!0,metadata:e.metadata,body:e.body}));return t===2?[n,n]:[n]}function fs(e,t,n,r){let o=Hr(e,n),i=Hr(t,n);return{beforeHashes:o,afterHashes:i,pairIndex:o.findIndex((s,a)=>s===r.before_hash&&i[a]===r.after_hash),beforeIndex:o.indexOf(r.before_hash),afterIndex:i.indexOf(r.after_hash)}}function hn(e){return{metadata:e.metadata,body:e.body}}function wh(e,t={}){return X(hn(e),t)}function Eh(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=X(e);return{metadata:S(t.metadata,ue),body:t.body}}function ls(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function tu(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function ms(e){return Array.isArray(e)?e.filter(tu).map(t=>({...t,path:ls(t.path),from:typeof t.from=="string"?ls(t.from):void 0})):[]}function nu(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 gn(e,t){try{let n=ms(t),r=Ur.applyPatch(structuredClone(e),n,!0,!1).newDocument;return nu(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 ru(e){return[...new Set(e.map(t=>t.item_hash_version).filter(t=>t!==void 0&&wt.includes(t)))]}function _s(e){return e!==void 0&&!wt.includes(e)}function ou(e,t){return e!==void 0?[e]:t===void 0?[...wt]:[t]}function ps(e){let t=yn(),n,r,o=[];for(let i=0;i<e.length;i+=1){let s=e[i],a=s.item_hash_version,c=_s(a);c&&o.push(`verify_failed:unsupported_item_hash_version:${String(a)}:entry_${i+1}`);let d=gn(t,s.patch);if(!d.ok)return{ok:!1,errors:[...o,`verify_failed:patch_apply_failed:entry_${i+1}`]};if(c){t=d.document,n=void 0,r=void 0;continue}let m=ou(a,r).map(f=>({version:f,match:fs(t,d.document,f,s)})),_=m.find(({match:f})=>f.pairIndex>=0);if(_===void 0){let f=m.some(({match:h})=>h.beforeIndex>=0);return{ok:!1,errors:[...o,`verify_failed:${f?"after":"before"}_hash_mismatch:entry_${i+1}`]}}let y=_.version;t=d.document,n=y,r=a??r}return o.length>0?{ok:!1,errors:o,...n===void 0?{}:{item_hash_version:n}}:{ok:!0,errors:[],...n===void 0?{}:{item_hash_version:n}}}function bn(e){let t=ps(e);return{ok:t.ok,errors:t.errors}}function us(e,t){try{return{ok:!0,document:Ur.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function iu(e,t){let n=structuredClone(e),r=0,o=0;for(let a of ms(t)){let c=us(n,a);if(c.ok){n=c.document;continue}if(a.op==="replace"){let d=us(n,{...a,op:"add"});if(d.ok){n=d.document,r+=1;continue}}o+=1}let i=n;return{document:{metadata:typeof i.metadata=="object"&&i.metadata!==null?i.metadata:{},body:typeof i.body=="string"?i.body:e.body},convertedReplaceToAdd:r,skippedOps:o}}function su(e){let t=ru(e);if(t.length===1)return t[0];let n=ps(e);return n.ok&&n.item_hash_version!==void 0?n.item_hash_version:t.length===0?1:Ne}function vh(e,t=su(e),n={}){let r=e.findIndex(y=>_s(y.item_hash_version));if(r>=0)throw new TypeError(`unsupported_item_hash_version:${String(e[r]?.item_hash_version)}:entry_${r+1}`);let o=yn(),i=[],s=[],a=0,c=0,d=0,u=0,m,_=t!==1||e.some(y=>y.item_hash_version!==void 0);for(let y=0;y<e.length;y+=1){let f=e[y],h=gn(o,f.patch),w,T,R=!1,M=0,L=0;if(h.ok)w=h.document,T=f.patch;else{let Y=iu(o,f.patch);w=Y.document,T=Ur.compare(o,w),R=!0,M=Y.convertedReplaceToAdd,L=Y.skippedOps,d+=M,u+=L,c+=1}let H=fs(o,w,t,f);m===void 0||n.continuousHashSurface!==!0?m=[H.pairIndex,H.beforeIndex,H.afterIndex,Math.min(m??0,H.beforeHashes.length-1)].find(Y=>Y>=0):m=Math.min(m,H.beforeHashes.length-1);let je=H.beforeHashes[m],W=H.afterHashes[m],Fe=je!==f.before_hash||W!==f.after_hash;Fe&&(a+=1);let le={...f,patch:T,before_hash:je,after_hash:W};_?le.item_hash_version=t:delete le.item_hash_version,i.push(le),s.push({index:y+1,rehashed:Fe,patch_repaired:R,converted_replace_to_add:M,skipped_ops:L}),o=w}return{entries:i,finalDocument:o,entriesRehashed:a,entriesPatchRepaired:c,convertedReplaceToAdd:d,skippedOps:u,details:s,itemHashVersion:t,explicitItemHashVersion:_}}function kh(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
|
|
63
|
+
`)}
|
|
64
|
+
`}import au from"node:crypto";import ys 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]="6b3f1585-ab12-57ca-80eb-d3cebc384c52")}catch{}})();function gs(e){let t=[],n=!1;for(let r of(e??"").toLowerCase()){let o=r.charCodeAt(0),i=o>=48&&o<=57,s=o>=97&&o<=122;if(!i&&!s){n=t.length>0;continue}n&&(t.push("-"),n=!1),t.push(r)}return t.length===0?"pm-":`${t.join("")}-`}function Wr(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function Et(e,t){let n=gs(t),r=Wr(e);return r.startsWith(n)?r:`${n}${r}`}function cu(e){let t=hi(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=au.randomInt(0,36).toString(36);return n}async function du(e,t,n){let r=[...new Set(Object.values(n))].flatMap(o=>[ys.join(e,o,`${t}.md`),ys.join(e,o,`${t}.toon`)]);return(await Promise.all(r.map(o=>ze(o)))).some(Boolean)}var hs=4,bs=12;function lu(e){return typeof e!="number"||!Number.isFinite(e)?hs:Math.min(bs,Math.max(hs,Math.trunc(e)))}async function Ah(e,t,n={}){let r=lu(n.tokenLength),o=Math.min(r+6,bs),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${gs(t)}${cu(r)}`;if(n.probeExisting===!1||!await du(e,a,n.typeToFolder??Se))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import Me from"node:fs/promises";import Es from"node:path";import{randomUUID as uu}from"node:crypto";import{createRequire as fu}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 mu="metadata-query-index.sqlite",vt="4";function _u(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}var wn;function pu(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?_u(t):null}function kt(){return wn!==void 0||(wn=pu(process.versions.node,fu(import.meta.url))),wn}function ws(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function et(e){return Es.join(e,"runtime",mu)}function yu(e){e.exec(`
|
|
65
|
+
PRAGMA foreign_keys = ON;
|
|
66
|
+
PRAGMA journal_mode = OFF;
|
|
67
|
+
PRAGMA synchronous = OFF;
|
|
68
|
+
CREATE TABLE metadata (
|
|
69
|
+
key TEXT PRIMARY KEY,
|
|
70
|
+
value TEXT NOT NULL
|
|
71
|
+
) STRICT;
|
|
72
|
+
CREATE TABLE items (
|
|
73
|
+
id TEXT PRIMARY KEY,
|
|
74
|
+
relative_path TEXT NOT NULL UNIQUE,
|
|
75
|
+
metadata_json TEXT NOT NULL,
|
|
76
|
+
status TEXT NOT NULL,
|
|
77
|
+
type TEXT NOT NULL,
|
|
78
|
+
priority INTEGER NOT NULL,
|
|
79
|
+
updated_at TEXT NOT NULL,
|
|
80
|
+
created_at TEXT NOT NULL,
|
|
81
|
+
parent TEXT,
|
|
82
|
+
assignee TEXT,
|
|
83
|
+
sprint TEXT,
|
|
84
|
+
release TEXT
|
|
85
|
+
) STRICT;
|
|
86
|
+
CREATE INDEX items_default_order
|
|
87
|
+
ON items(priority, updated_at DESC, id);
|
|
88
|
+
CREATE INDEX items_status_default_order
|
|
89
|
+
ON items(status, priority, updated_at DESC, id);
|
|
90
|
+
CREATE INDEX items_type_default_order
|
|
91
|
+
ON items(type, priority, updated_at DESC, id);
|
|
92
|
+
CREATE INDEX items_parent_default_order
|
|
93
|
+
ON items(parent, priority, updated_at DESC, id);
|
|
94
|
+
CREATE TABLE item_metadata_keys (
|
|
95
|
+
item_id TEXT NOT NULL,
|
|
96
|
+
key TEXT NOT NULL,
|
|
97
|
+
PRIMARY KEY(item_id, key),
|
|
98
|
+
FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
|
|
99
|
+
) STRICT;
|
|
100
|
+
CREATE INDEX item_metadata_keys_key_item
|
|
101
|
+
ON item_metadata_keys(key, item_id);
|
|
102
|
+
CREATE TABLE item_linked_files (
|
|
103
|
+
item_id TEXT NOT NULL,
|
|
104
|
+
path TEXT NOT NULL,
|
|
105
|
+
scope TEXT NOT NULL,
|
|
106
|
+
note TEXT,
|
|
107
|
+
PRIMARY KEY(item_id, path, scope),
|
|
108
|
+
FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
|
|
109
|
+
) STRICT;
|
|
110
|
+
CREATE INDEX item_linked_files_path_scope_item
|
|
111
|
+
ON item_linked_files(path, scope, item_id);
|
|
112
|
+
CREATE VIRTUAL TABLE item_search USING fts5(
|
|
113
|
+
id UNINDEXED,
|
|
114
|
+
title,
|
|
115
|
+
description,
|
|
116
|
+
tags,
|
|
117
|
+
tokenize = 'unicode61'
|
|
118
|
+
);
|
|
119
|
+
`)}function vn(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function vs(e,t){let n=t.metadata;e.prepare(`INSERT INTO items(
|
|
120
|
+
id, relative_path, metadata_json, status, type, priority,
|
|
121
|
+
updated_at, created_at, parent, assignee, sprint, release
|
|
122
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
123
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
124
|
+
relative_path = excluded.relative_path,
|
|
125
|
+
metadata_json = excluded.metadata_json,
|
|
126
|
+
status = excluded.status,
|
|
127
|
+
type = excluded.type,
|
|
128
|
+
priority = excluded.priority,
|
|
129
|
+
updated_at = excluded.updated_at,
|
|
130
|
+
created_at = excluded.created_at,
|
|
131
|
+
parent = excluded.parent,
|
|
132
|
+
assignee = excluded.assignee,
|
|
133
|
+
sprint = excluded.sprint,
|
|
134
|
+
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 ks(e){let t=et(e.pmRoot),n=kt();if(!n){await Me.rm(t,{force:!0});return}await Me.mkdir(Es.dirname(t),{recursive:!0});let r=`${t}.${uu()}.tmp`,o;try{o=new n(r),yu(o),o.exec("BEGIN IMMEDIATE"),vn(o,"version",vt),vn(o,"context_fingerprint",e.contextFingerprint),vn(o,"source_cursor",e.sourceCursor);for(let i of e.rows)vs(o,i);o.exec("COMMIT"),o.close(),o=void 0,await Me.rm(t,{force:!0}),await Me.rename(r,t)}catch(i){throw o?.close(),await Promise.allSettled([Me.rm(r,{force:!0})]),i}}function kn(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function Ss(e){let t=et(e.pmRoot),n;try{await Me.access(t);let r=kt();if(!r)return!1;n=new r(t),n.exec("PRAGMA foreign_keys = ON");let o=kn(n);if(o.version!==vt||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 d=s.get(c);i.run(c),d&&a.run(d.id)}return e.row&&vs(n,e.row),vn(n,"source_cursor",e.sourceCursor),n.exec("COMMIT"),n.close(),!0}catch{try{n?.exec("ROLLBACK")}catch{}return n?.close(),!1}}function En(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function hu(e){let t=[],n=[];En(t,n,"status",e.statuses,"IN"),En(t,n,"status",e.excludeStatuses,"NOT IN"),En(t,n,"type",e.types,"IN"),En(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 Ph(e){let t=kt();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=hu(n),i;try{i=new t(et(e.pmRoot),{readOnly:!0});let s=kn(i);if(s.version!==vt||s.source_cursor!==e.expectedSourceCursor)return i.close(),null;let a=i.prepare(`SELECT COUNT(*) AS count FROM items${r}`).get(...o),c=[],d="";n.limit!==void 0?(d+=" LIMIT ?",c.push(Math.max(0,Math.floor(n.limit))),n.offset!==void 0&&(d+=" OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))))):n.offset!==void 0&&(d+=" LIMIT -1 OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))));let m=i.prepare(`SELECT metadata_json FROM items${r}
|
|
135
|
+
ORDER BY ${n.terminalStatuses&&n.terminalStatuses.length>0?`CASE WHEN status IN (${n.terminalStatuses.map(()=>"?").join(", ")}) THEN 1 ELSE 0 END ASC, `:""}priority ASC, updated_at DESC, id ASC${d}`).all(...o,...n.terminalStatuses??[],...c).map(_=>{let y=JSON.parse(String(_.metadata_json));if(!y.id)throw new TypeError("Indexed metadata row has no id");return y});return i.close(),{source_cursor:s.source_cursor,total:Number(a.count),items:m}}catch{return i?.close(),null}}async function jh(e){let t=kt();if(!t||e.paths.length===0)return null;let n;try{n=new t(et(e.pmRoot),{readOnly:!0});let r=kn(n);if(r.version!==vt||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
|
|
136
|
+
FROM item_linked_files
|
|
137
|
+
WHERE ${a}`).get(...s),d=ws(e.limit,50),u=ws(e.offset,0),m=n.prepare(`SELECT items.id, items.metadata_json
|
|
138
|
+
FROM items
|
|
139
|
+
WHERE EXISTS (
|
|
140
|
+
SELECT 1 FROM item_linked_files
|
|
141
|
+
WHERE item_linked_files.item_id = items.id AND ${a}
|
|
142
|
+
)
|
|
143
|
+
ORDER BY items.priority ASC, items.updated_at DESC, items.id ASC
|
|
144
|
+
LIMIT ? OFFSET ?`).all(...s,d,u),_=[];if(m.length>0){let y=m.map(w=>String(w.id)),f=n.prepare(`SELECT item_id, path, scope, note
|
|
145
|
+
FROM item_linked_files
|
|
146
|
+
WHERE item_id IN (${y.map(()=>"?").join(", ")})
|
|
147
|
+
AND ${a}
|
|
148
|
+
ORDER BY path ASC, scope ASC`).all(...y,...s),h=new Map(y.map(w=>[w,[]]));for(let w of f){let T=String(w.item_id),R=h.get(T);R.push({path:String(w.path),scope:String(w.scope),...w.note===null?{}:{note:String(w.note)}}),h.set(T,R)}for(let w of m){let T=JSON.parse(String(w.metadata_json));_.push({item:T,files:h.get(String(w.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:_}}catch{return n?.close(),null}}async function Fh(e){let t=kt();if(!t)return null;let n;try{n=new t(et(e.pmRoot),{readOnly:!0});let r=kn(n);if(r.version!==vt||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let i=n.prepare(`SELECT items.metadata_json
|
|
149
|
+
FROM item_search
|
|
150
|
+
JOIN items ON items.id = item_search.id
|
|
151
|
+
WHERE item_search MATCH ?
|
|
152
|
+
ORDER BY bm25(item_search), items.priority, items.updated_at DESC, items.id
|
|
153
|
+
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 Sn(e){await Me.rm(et(e),{force:!0})}import z from"node:fs/promises";import N from"node:path";import{createHash as $u,randomUUID as $s}from"node:crypto";import ce from"node:fs/promises";import Vr from"node:path";import{randomUUID as gu}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a9ad8a9f-de6e-5bce-8685-844f1129d5fb")}catch{}})();function bu(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 Ts(e){try{let t=await ce.readFile(e,"utf8");return await ee({path:e,scope:"project"}),bu(t)}catch(t){return Ie(t)?{info:null,warnings:[]}:{info:null,warnings:["lock_info_read_failed"]}}}function Br(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}async function Os(e,t){await K({path:e,scope:"project",op:t})}function wu(e,t,n){return{id:e,pid:process.pid,owner:t,created_at:Oe(),ttl_seconds:n}}async function Eu(e,t,n,r){await ce.mkdir(Vr.dirname(e),{recursive:!0});let o=await ce.open(e,"wx");try{await o.writeFile(`${JSON.stringify(wu(t,n,r),null,2)}
|
|
154
|
+
`,"utf8")}finally{await o.close()}await Os(e,"lock:create")}async function As(e,t){try{return await ce.unlink(e),await Os(e,t),!0}catch{return!1}}function Rs(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 vu(e){return e?.owner?` (owner ${e.owner})`:""}var ku=25,Su=200,Iu=250,xu=3,Cu=".stale-cleanup",Ds="owner.json",Tu=1e4,Ou=5*6e4;function Is(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 Au(e){let t=process.env.PM_LOCK_WAIT_MS,n=Is(t);if(n!==void 0)return n;let r=Is(e);return r!==void 0?r:0}function Ru(e){let t=Math.max(1,Math.round(e*(.5+Math.random())));return new Promise(n=>setTimeout(n,t))}function Ns(e,t,n){let r=n>0?` after waiting ${n}ms`:"";return new x(`Item ${e} is locked${vu(t)}${r}`,k.CONFLICT,{code:"lock_conflict",recovery:{retry_after_ms:Iu}})}function Du(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 Nu(e,t,n,r){if(!n&&r){let o=t.warnings.length>0?` (${t.warnings.join(",")})`:"";throw new x(`Item ${e} lock is stale${o}; rerun with --force when supported for this command`,k.CONFLICT)}}function Mu(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 Ms(e){try{return Mu(await ce.readFile(Vr.join(e,Ds),"utf8"))}catch{return null}}function Lu(e){try{return process.kill(e,0),!0}catch(t){return!Br(t,"ESRCH")}}async function qr(e){try{return await ce.rm(e,{recursive:!0,force:!0}),!0}catch{return!1}}async function xs(e,t){let n=await Ms(e);n===null||n.token!==t||await qr(e)}async function Cs(e){try{await ce.mkdir(e)}catch(n){return Br(n,"EEXIST"),null}let t={pid:process.pid,token:gu()};try{await ce.writeFile(Vr.join(e,Ds),`${JSON.stringify(t)}
|
|
155
|
+
`,"utf8")}catch{return await qr(e),null}return t}async function Pu(e){let t;try{let r=await ce.stat(e);if(t=Date.now()-r.mtimeMs,t<=Tu)return!1}catch(r){return Ie(r)}let n=await Ms(e);return n!==null&&Lu(n.pid)&&t<=Ou?!1:qr(e)}async function ju(e,t){let n=`${e}${Cu}`,r=await Cs(n);if(r!==null)return async()=>xs(n,r.token);if(!await Pu(n))return null;let o=await Cs(n);return o===null?null:async()=>xs(n,o.token)}async function Fu(e){let t=await ju(e.lockPath,e.id);if(t===null)return{lockInfo:e.fallbackLockInfo,shouldRetryCreate:!1,staleRemovalCounted:!1};try{let n=await Ts(e.lockPath);if(n.info===null&&n.warnings.length===0)return{lockInfo:n,shouldRetryCreate:!0,staleRemovalCounted:!1};if(!Rs(n.info,e.ttlSeconds))return{lockInfo:n,shouldRetryCreate:!1,staleRemovalCounted:!1};if(Nu(e.id,n,e.force,e.forceRequiredForStaleLock),e.staleRemovals>=xu)throw Ns(e.id,n.info,Date.now()-e.startedAtMs);return{lockInfo:n,shouldRetryCreate:await As(e.lockPath,"lock:stale_remove"),staleRemovalCounted:!0}}finally{await t()}}async function de(e,t,n,r,o=!1,i=!0,s){let a=await oe("lock_acquire",{pm_root:e,id:t,ttl_seconds:n,owner:r,force:o,force_required_for_stale_lock:i});if(a.handled){let y=Du(a.result);if(y)return async()=>{await Promise.resolve(y()),await oe("lock_release",{pm_root:e,id:t,owner:r})}}let c=Ao(e,t),d=Au(s),u=Date.now(),m=0,_=ku;for(;;)try{return await Eu(c,t,r,n),async()=>{await As(c,"lock:release"),await oe("lock_release",{pm_root:e,id:t,owner:r})}}catch(y){if(!Br(y,"EEXIST"))throw new x(`Failed to acquire lock for ${t}: ${Do(y)}`,k.GENERIC_FAILURE);let f=await Ts(c);if(Rs(f.info,n)){let w=await Fu({lockPath:c,id:t,ttlSeconds:n,force:o,forceRequiredForStaleLock:i,staleRemovals:m,waitBudgetMs:d,startedAtMs:u,fallbackLockInfo:f});if(f=w.lockInfo,w.staleRemovalCounted&&(m+=1),w.shouldRetryCreate)continue}let h=Date.now()-u;if(d===0||h>=d)throw Ns(t,f.info,d===0?0:h);await Ru(Math.min(_,d-h)),_=Math.min(_*2,Su)}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8b8c705a-8d80-576f-8642-f6f686cdbed9")}catch{}})();var te=8,zs=500,zu="metadata-derived-index",Hu="metadata-cache.json",Uu="metadata-cache-bodies.json",Wu="metadata-cache-collections.json",Vu="metadata-cache-delta.json",Bu="metadata-cache-manifest.json",Ls=4,qu=["comments","notes","learnings","files","tests","test_runs","docs"];function Hs(){return zt(Re())}function xn(e){let t={...e},n={};for(let r of qu)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function Us(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function Ws(e,t,n,r){let o=$u("sha256");o.update(`format:${e??"default"}`);let i=Object.entries(t).sort(([s],[a])=>s.localeCompare(a)).map(([s,a])=>`${s}=${a}`).join(",");return o.update(`|types:${i}`),n&&o.update(`|schema:${JSON.stringify(n)}`),r.length>0&&o.update(`|extension_fields:${r.join(",")}`),o.digest("hex").slice(0,16)}function Cn(e){return N.join(e,"runtime",Hu)}function Tn(e){return N.join(e,"runtime",Uu)}function On(e){return N.join(e,"runtime",Wu)}function Xr(e){return N.join(e,"runtime",Vu)}function Kr(e){return N.join(e,"runtime",Bu)}function An(e,t){let n=N.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var Gu=24,G=new Map,Rn=new WeakMap;function Jr(e){return Rn.get(e)??e.source_cursor}function Xu(e,t){let n=Jr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){Rn.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 Ku(e,t){if(!e)return;let n=Jr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){Rn.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 Ju(e,t){if(!e)return;let n=Jr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){Rn.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 Yu(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(Xu(e,r),Ku(t,r),Ju(n,r))}function Gr(e,t){G.size>=Gu&&!G.has(e)&&Ut(G),G.set(e,t)}async function ge(e,t){let n;try{n=await z.stat(e)}catch{return G.delete(e),null}let r=G.get(e);if(r&&St(r.signature,n.mtimeMs,n.ctimeMs,n.size))return G.delete(e),G.set(e,r),r.envelope;let o;try{o=t(await z.readFile(e,"utf8"))}catch{o=null}return Gr(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function Zu(e,t,n){let r=a=>{let c=JSON.parse(a);return c.version!==te||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=Cn(e),i=await ge(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await ge(An(o,t),r);return s===null&&Ct(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function Qu(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==te||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=Tn(e),o=await ge(r,n);return t&&o?.context_fingerprint!==t?await ge(An(r,t),n):o}async function ef(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==te||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=On(e),o=await ge(r,n);return t&&o?.context_fingerprint!==t?await ge(An(r,t),n):o}async function Yr(e){let t=Xr(e),n=await ge(t,r=>{let o=JSON.parse(r);return o.version!==te||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 z.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function Zr(e){let t=Kr(e),n=await ge(t,r=>{let o=JSON.parse(r);return o.version!==te||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 z.stat(t),await tt(e)}catch{}return null}async function It(e,t){await z.mkdir(N.dirname(e),{recursive:!0}),await V(e,JSON.stringify(t));try{let r=await z.stat(e);Gr(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{G.delete(e)}let n=N.dirname(N.dirname(e));if(e===Cn(n)||e===Tn(n)||e===On(n)){let r=An(e,t.context_fingerprint);await V(r,JSON.stringify(t));try{let c=await z.stat(r);Gr(r,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{G.delete(r)}let o=N.dirname(e),i=N.extname(e),s=N.basename(e,i),a=(await z.readdir(o,{withFileTypes:!0}).catch(()=>[])).filter(c=>c.isFile()&&c.name!==N.basename(e)&&c.name.startsWith(`${s}.`)&&c.name.endsWith(i)).map(c=>N.join(o,c.name));if(a.length>Ls){let c=(await Promise.all(a.map(async d=>{try{return{path:d,mtime:(await z.stat(d)).mtimeMs}}catch{return null}}))).filter(d=>d!==null);for(let d of c.sort((u,m)=>u.mtime-m.mtime).slice(0,Math.max(0,c.length-Ls)))await z.rm(d.path,{force:!0}),G.delete(d.path)}}}function tf(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function Vs(e,t,n){return e===void 0||tf(e,t,n)}function Ct(e,t){e&&!e.includes(t)&&e.push(t)}function St(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function nf(e,t,n){let r=N.join(e,t);try{let o=await z.readdir(r);return{folder:t,dirPath:r,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&!Ie(o)&&Ct(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function rf(e,t){try{let n=await z.stat(N.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 In(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await rf(e,n))))}function xt(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&&St(o,r.mtime_ms,r.ctime_ms,r.size)})}function of(e){return Ht.some(t=>e.toLowerCase().endsWith(t))}function sf(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function af(e,t,n){if(n)for(let r of await ee({path:e,scope:"project"}))Ct(t,r)}function Ps(e,t,n,r){if(e)return t&&n?n.collections:r}async function cf(e,t,n){let r=await z.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=qn(e);await af(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],d=!n.forceSourceRead&&c!==void 0&&St(c,o,i,s),u=n.previousBodies[t],m=!n.forceSourceRead&&u!==void 0&&St(u,o,i,s),_=n.previousCollections[t],y=!n.forceSourceRead&&_!==void 0&&St(_,o,i,s);if(!(!d||n.includeBody&&!m||n.includeCollections&&!y))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:c.metadata,heavyMetadata:Ps(n.includeCollections,y,_,void 0),bodyLength:c.body_length,body:n.includeBody?u.body:void 0};let h=await z.readFile(e,"utf8"),w=rn(h,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:R=>Ct(n.warnings,R)}),T=xn(w.metadata);return sf(n.state.misses,n.includeBody,n.includeCollections,d,m,y),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:d?c.metadata:T.light,heavyMetadata:Ps(n.includeCollections,y,_,T.heavy),bodyLength:d?c.body_length:w.body.length,body:n.includeBody?w.body:void 0}}function df(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?Us(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};Vs(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function lf(e,t,n,r){try{let o=await cf(t,n,r);df(t,n,r,o)}catch{Ct(r.warnings,`item_list_item_read_failed:${e}/${N.basename(t)}`)}}function uf(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function ff(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function mf(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function _f(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}function pf(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!of(s))continue;let a=N.join(o,s),c=N.relative(t.pmRoot,a);n.push(lf(r,a,c,t))}return n}async function yf(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!xt(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await It(Cn(e.pmRoot),{version:te,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await It(Kr(e.pmRoot),{version:te,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:N.relative(e.pmRoot,r.item_path),metadata:xn(r.metadata).light,linkedFiles:r.metadata.files??[]}));n.length>=e.minimumIndexedItems?await ks({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:n}):await Sn(e.pmRoot)}catch{}}async function hf(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 It(Tn(e.pmRoot),{version:te,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function gf(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 It(On(e.pmRoot),{version:te,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function Qr(e,t,n={}){let r=await Zr(e);return n.required!==!0&&(r===null||r.entry_count<zs)?async()=>{}:de(e,zu,30,t,!1,!1,3e3)}async function cg(e,t){let n=await Zr(e);if(n===null)return null;let r=await Yr(e);if(r.invalid)return await tt(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&&!xt(i,await In(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function js(e,t){let n=N.relative(e,t);return n===""||n===".."||n.startsWith(`..${N.sep}`)||N.isAbsolute(n)?null:n}async function tt(e){await Promise.all([Cn(e),Tn(e),On(e),Xr(e),Kr(e)].map(async t=>{await z.rm(t,{force:!0}),G.delete(t)})),await Sn(e)}async function bf(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await z.stat(e.mutation.itemPath),n=xn(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 wf(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function eo(e){let t=js(e.pmRoot,e.itemPath),n=e.previousItemPath?js(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await tt(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=Ws(e.preferredFormat,e.typeToFolder,e.schema,Hs()),o=await Zr(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await Yr(e.pmRoot);if(s.invalid)return await tt(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=wf(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 bf({mutation:e});let d=$s();return await It(Xr(e.pmRoot),{version:te,context_fingerprint:r,base_source_cursor:i,source_cursor:d,directory_signatures:await In(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await Ss({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:d,row:e.document===null?null:{relativePath:t,metadata:xn(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await Sn(e.pmRoot),[]}catch{return await tt(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function Ef(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function Fs(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function vf(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function kf(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=qn(n);if(!o)continue;let i=e.includeCollections?Us(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);Vs(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:N.join(e.pmRoot,n)}})}return[...t.values()].sort((n,r)=>n.candidate.metadata.id.localeCompare(r.candidate.metadata.id)).map(n=>n.candidate)}function Sf(e){return e.forceSourceScan||Rr()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!xt(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||Fs(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||Fs(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&vf(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function Dn(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=Hs(),d=Ws(t,n,o,c),u=await Yr(e);u.invalid&&await tt(e);let m=await Zu(e,d,i.cacheDiagnostics),_=s?await Qu(e,d):null,y=a?await ef(e,d):null;Yu(m,_,y,u.envelope);let f=uf(m,d),h=ff(_,d),w=mf(y,d),T=[...new Set(Object.values(n))],R=await In(e,T),M=Object.keys(f),L=Math.max(1,Math.floor(i.derivedIndexMinimumItems??zs));if(Sf({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:d,existingCache:m,existingBodyCache:_,existingCollectionsCache:y,directorySignatures:R,entryKeys:M,minimumIndexedItems:L,includeBody:s,includeCollections:a,previousBodies:h,previousCollections:w}))return kf({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:f,previousBodies:h,previousCollections:w});let H=await Promise.all(T.map(ja=>nf(e,ja,r))),je=Rr(),W=_f(),Fe={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,forceSourceRead:i.forceSourceScan===!0,dispatchReadHooks:je,previousEntries:f,previousBodies:h,previousCollections:w,state:W};await Promise.all(pf(H,Fe));let le=await In(e,T),Y=xt(R,le)?le:{},Wn=W.misses.metadata||Object.keys(f).length!==Object.keys(W.newEntries).length||!xt(m?.directory_signatures,Y)||m===null?$s():m.source_cursor;return await yf({pmRoot:e,contextFingerprint:d,sourceCursor:Wn,existingCache:m,previousEntries:f,directorySignatures:Y,state:W,minimumIndexedItems:L}),s&&await hf({pmRoot:e,contextFingerprint:d,sourceCursor:Wn,existingBodyCache:_,previousBodies:h,state:W}),a&&await gf({pmRoot:e,contextFingerprint:d,sourceCursor:Wn,existingCollectionsCache:y,previousCollections:w,state:W}),Ef(W)}async function Bs(e,t,n,r,o){return(await Dn(e,t,n,r,o,{includeBody:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}async function qs(e,t,n,r,o){return(await Dn(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="d49d73c9-f988-5c3c-a22d-0580ee5526f6")}catch{}})();function be(){let e=Mo();for(let t of Re()?.relationship_kinds??[])for(let n of t.definitions)e.register(n);return e}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="924f7718-0527-5967-8ab0-53e8228bd665")}catch{}})();function Tt(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function Nn(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function If(e,t){let n=new Set,r=[];for(let o of[...e].sort()){if(n.has(o))continue;n.add(o);let i=[{nodeId:o,children:[...t.get(o)??[]].sort(),nextChild:0}];for(;i.length>0;){let s=i.at(-1),a=s.children[s.nextChild];a===void 0?(r.push(s.nodeId),i.pop()):(s.nextChild+=1,n.has(a)||(n.add(a),i.push({nodeId:a,children:[...t.get(a)??[]].sort(),nextChild:0})))}}return r}function xf(e,t){let n=[...e].sort(),r=If(n,t),o=new Set,i=Cf(n,t),s=[];for(let a of r.reverse()){if(o.has(a))continue;let c=Tf(a,i,o);(c.length>1||t.get(c[0])?.has(c[0]))&&s.push(c)}return s.sort((a,c)=>a.join("\0").localeCompare(c.join("\0")))}function Cf(e,t){let n=new Map(e.map(r=>[r,new Set]));for(let[r,o]of t)for(let i of o)n.get(i)?.add(r);return n}function Tf(e,t,n){let r=[],o=[e];for(n.add(e);o.length>0;){let i=o.pop();r.push(i);for(let s of[...t.get(i)].sort())n.has(s)||(n.add(s),o.push(s))}return r.sort()}function Gs(e){let t=new Map;for(let n of e){let r=Tt(n?.id);r&&!t.has(r)&&t.set(r,n)}return t}function Of(e,t,n){let r=Tt(t.parent);if(!(!r||!n.has(r)))return{parent_id:r,child_id:e,source:"scalar_parent",kind:"parent",holder_id:e,child_cardinality:"one"}}function Af(e,t,n,r){let o=Tt(t?.id),i=r.resolve(t?.kind);if(!o||!n.has(o)||!i?.hierarchy)return;let s=i.hierarchyDirection==="source_parent";return{parent_id:s?e:o,child_id:s?o:e,source:"dependency",kind:i.kind,holder_id:e,target_id:o,child_cardinality:s?i.incoming:i.outgoing}}function Xs(e,t){let n=new Map;for(let[r,o]of e){let i=Of(r,o,e);i&&n.set(Nn(i),i);for(let s of o.dependencies??[]){let a=Af(r,s,e,t);a&&n.set(Nn(a),a)}}return[...n.values()].sort((r,o)=>Nn(r).localeCompare(Nn(o)))}function yg(e,t=be()){return Xs(Gs(e),t)}function Rf(e,t,n){let r=new Set(e.filter(o=>o.child_cardinality==="one").map(o=>o.child_id));return[...t].filter(([o,i])=>i.length>1&&r.has(o)).map(([o,i])=>({child_id:o,parent_ids:[...i],legacy_terminal:n.has(o)&&i.every(s=>n.has(s))})).sort((o,i)=>o.child_id.localeCompare(i.child_id))}function Df(e,t,n){let r=new Map;for(let i of t){if(i.source!=="dependency")continue;let s=r.get(i.child_id)??new Set;s.add(i.parent_id),r.set(i.child_id,s)}let o=[];for(let[i,s]of e){let a=Tt(s.parent);if(!a||!e.has(a))continue;let c=[...r.get(i)??[]].filter(d=>d!==a).sort();c.length!==0&&o.push({child_id:i,scalar_parent_id:a,dependency_parent_ids:c,legacy_terminal:n.has(i)&&n.has(a)&&c.every(d=>n.has(d))})}return o.sort((i,s)=>i.child_id.localeCompare(s.child_id))}function Mn(e,t=r=>r==="closed"||r==="canceled",n=be()){let r=Gs(e),o=Xs(r,n),i=Nf(o),s=new Set([...r].filter(([,c])=>t(c.status)).map(([c])=>c)),a=xf([...r.keys()],new Map([...i.children_by_parent].map(([c,d])=>[c,new Set(d)]))).map(c=>({item_ids:c,legacy_terminal:c.every(d=>s.has(d))}));return{relations:o,cycles:a,cardinality_violations:Rf(o,i.parents_by_child,s),divergences:Df(r,o,s)}}function hg(e){return e.source==="scalar_parent"?`${e.parent_id} -> ${e.child_id} (scalar parent on ${e.holder_id})`:`${e.parent_id} -> ${e.child_id} (${e.kind} dependency on ${e.holder_id})`}function Nf(e){let t=new Map,n=new Map;for(let r of e){let o=t.get(r.child_id)??new Set;o.add(r.parent_id),t.set(r.child_id,o);let i=n.get(r.parent_id)??new Set;i.add(r.child_id),n.set(r.parent_id,i)}return{parents_by_child:new Map([...t].map(([r,o])=>[r,[...o].sort()])),children_by_parent:new Map([...n].map(([r,o])=>[r,[...o].sort()]))}}function to(e,t){let n=new Set(t);return e.every(r=>n.has(r))}function gg(e,t,n,r,o){let i=Tt(n);if(!i)return;let s=Mn(e,r,o),a=Mn(t,r,o),c=a.divergences.find(m=>!s.divergences.some(_=>_.child_id===m.child_id&&_.scalar_parent_id===m.scalar_parent_id&&to(m.dependency_parent_ids,_.dependency_parent_ids)));if(c){let m=[c.scalar_parent_id,...c.dependency_parent_ids].sort();throw new x(`Hierarchy mutation would assign ${c.child_id} to multiple parents: ${m.join(", ")}.`,k.CONFLICT,{code:"hierarchy_parent_divergence_created",source_id:i,target_id:c.child_id,verification_errors:m})}let d=a.cardinality_violations.find(m=>(m.child_id===i||m.parent_ids.includes(i))&&!s.cardinality_violations.some(_=>_.child_id===m.child_id&&to(m.parent_ids,_.parent_ids)));if(d)throw new x(`Hierarchy mutation would assign ${d.child_id} to multiple parents: ${d.parent_ids.join(", ")}.`,k.CONFLICT,{code:"hierarchy_cardinality_created",source_id:i,target_id:d.child_id,verification_errors:d.parent_ids});let u=a.cycles.find(m=>m.item_ids.includes(i)&&!s.cycles.some(_=>to(m.item_ids,_.item_ids)));if(u)throw new x(`Hierarchy mutation would create a cycle: ${u.item_ids.join(" -> ")}.`,k.CONFLICT,{code:"hierarchy_cycle_created",source_id:i,verification_errors:u.item_ids})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="971d929f-12be-5648-93c9-8a9878b40dde")}catch{}})();function Ln(e){let t=e?.trim()??"";return/^[A-Za-z][A-Za-z0-9+.-]*:\/\//u.test(t)||/^(?:github|gitlab|jira|linear):/iu.test(t)}function Le(e){let t=e?.trim().toLowerCase();return t==="global"||t==="external"}(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]="f3f3beb2-1d60-52fe-88ce-1ab3cb9dba0d")}catch{}})();var Mf="global";function kg(e){let t=e?.trim();if(t)return Le(t)?Mf:t}function Sg(e,t,n){let r=e.trim();return Le(n)?r:Et(r,t)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e04a91fa-4625-50fd-9bfd-c712126baf0d")}catch{}})();function rt(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function Ot(e){let t=rt(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function At(e,t,n=!0){let r=rt(e);return n&&(Le(t)||r!==void 0&&Ln(r))}function no(e,t){return At(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function Ks(e,t,n,r){return At(e,t)?r.get(e):n.get(e.toLowerCase())}function nt(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function Lf(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,o=rt(r.id);if(!o)continue;let i=typeof r.kind=="string"?r.kind:"related",s=`${i}\0${no(o,r.source_kind)}`,a=t.get(s);a?a.count+=1:t.set(s,{target_id:o,kind:i,count:1})}return t}function Pf(e,t=n=>n==="closed"||n==="canceled"){let n=[];for(let r of e)if(!(typeof r?.id!="string"||r.id.trim().length===0))for(let o of Lf(r).values())o.count<2||n.push({holder_id:r.id.trim(),target_id:o.target_id,kind:o.kind,occurrences:o.count,holder_status:r.status,legacy_terminal:t(r.status)});return n.sort((r,o)=>{let i=nt(r.holder_id,o.holder_id);if(i!==0)return i;let s=nt(r.target_id,o.target_id);return s!==0?s:nt(r.kind,o.kind)})}function jf(e,t,n,r,o){if(typeof n!="object"||n===null)return;let i=rt(n.id);if(!i||no(i,n.source_kind)!==no(t))return;let s=o.resolve(typeof n.kind=="string"?n.kind:"related");if(!(s?.ordering!==!0||(s.precedence??"source_before_target")!=="source_before_target"))return{holder_id:e.id.trim(),target_id:i,dependency_kind:s.kind,holder_status:e.status,legacy_terminal:r(e.status)}}function Ff(e,t=r=>r==="closed"||r==="canceled",n=be()){let r=new Map;for(let o of e){if(typeof o?.id!="string"||o.id.trim().length===0)continue;let i=rt(o.blocked_by);if(i)for(let s of o.dependencies??[]){let a=jf(o,i,s,t,n);a&&r.set(`${a.holder_id.toLowerCase()}\0${a.target_id.toLowerCase()}\0${a.dependency_kind}`,a)}}return[...r.values()].sort((o,i)=>{let s=nt(o.holder_id,i.holder_id);if(s!==0)return s;let a=nt(o.target_id,i.target_id);return a!==0?a:nt(o.dependency_kind,i.dependency_kind)})}function $f(e,t=n=>n==="closed"||n==="canceled"){let n=e.filter(c=>typeof c?.id=="string"&&c.id.trim().length>0),r=new Set(n.map(c=>c.id.trim().toLowerCase())),o=new Map,i=(c,d,u,m,_)=>{let y=rt(d);if(!y||r.has(y.toLowerCase())||At(y,void 0,_))return;let f={holder_id:c.id.trim(),target_id:y,kind:u,source:m,holder_status:c.status,legacy_terminal:t(c.status),no_active_blocker_sentinel:y.toLowerCase()==="no-active-blocker"};o.set(`${f.holder_id}::${f.target_id}::${f.kind}::${f.source}`,f)};for(let c of n){i(c,c.parent,"parent","parent",!1),i(c,c.blocked_by,"blocked_by","blocked_by",!0);for(let d of c.dependencies??[]){if(typeof d!="object"||d===null)continue;let u=d;Le(u.source_kind)||i(c,u.id,typeof u.kind=="string"?u.kind:"related","dependency",!0)}}let s=[...o.values()].sort((c,d)=>c.holder_id.localeCompare(d.holder_id)||c.target_id.localeCompare(d.target_id)||c.kind.localeCompare(d.kind)||c.source.localeCompare(d.source)),a=s.filter(c=>c.legacy_terminal);return{active:s.filter(c=>!c.legacy_terminal),legacy_terminal:a,no_active_blocker_sentinels:s.filter(c=>c.no_active_blocker_sentinel)}}function zf(e){let t=new Map;for(let n of[...e.active,...e.legacy_terminal]){if(n.no_active_blocker_sentinel)continue;let r=n.target_id.trim(),o=r.toLowerCase();t.has(o)||t.set(o,r)}return[...t.values()].sort((n,r)=>n.localeCompare(r))}function Hf(e){let t=new Map;for(let n of e){let r=Ot(n.blocked_by);r&&At(r)&&!t.has(r)&&t.set(r,r);for(let o of n.dependencies??[]){if(typeof o!="object"||o===null||!At(o.id,o.source_kind))continue;let i=Ot(o.id);i&&!t.has(i)&&t.set(i,i)}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}var Js=new WeakMap;function Rg(e){return e.hierarchyIntegrity??Js.get(e)}function Uf(e,t=be()){let n={};for(let r of e)for(let o of r.dependencies??[]){if(typeof o!="object"||o===null)continue;let i=o.kind;if(typeof i!="string")continue;let s=i.trim().toLowerCase().replaceAll("-","_"),a=t.resolve(i);a&&s!==a.kind&&(n[s]=(n[s]??0)+1)}return Object.fromEntries(Object.entries(n).sort(([r],[o])=>r.localeCompare(o)))}function Dg(e,t,n){let r=n??be(),o=e.filter(f=>typeof f?.id=="string"&&f.id.trim().length>0),i=new Map(o.map(f=>[f.id.trim().toLowerCase(),f.id.trim()])),s=$f(o,t),a=zf(s);for(let f of a)i.set(f.toLowerCase(),f);let c=Hf(o),d=new Set(i.keys()),u=new Map;for(let f of c){let h=f;for(;d.has(h.toLowerCase());)h=`external:${h}`;u.set(f,h),d.add(h.toLowerCase())}let m=o.map(f=>{let h=Ot(f.parent),w=Ot(f.blocked_by),T=(f.dependencies??[]).flatMap(R=>{if(typeof R!="object"||R===null)return[];let M=R,L=Ot(M.id);return L?[{id:Ks(L,M.source_kind,i,u),kind:typeof M.kind=="string"?M.kind:"related"}]:[]});return{id:f.id.trim(),...h?{parent:i.get(h.toLowerCase())}:{},...w?{blocked_by:Ks(w,void 0,i,u)}:{},dependencies:T}}),_=Mn(o,t,r),y={graph:Lo.fromItems([...m,...a.map(f=>({id:f})),...c.map(f=>({id:u.get(f)}))],r),details:[...o.map(f=>({id:f.id.trim(),title:f.title,status:f.status,...typeof f.type=="string"&&f.type.trim().length>0?{type:f.type.trim()}:{}})),...a.map(f=>({id:f,title:`[missing] ${f}`,status:"missing"})),...c.map(f=>({id:u.get(f),title:`[external] ${f}`,status:"external"}))],missingIdSet:new Set(a.map(f=>f.toLowerCase())),dangling:s,duplicateRows:Pf(o,t),orderingContradictions:Ff(o,t,r),legacyAliasCounts:Uf(o,r),hierarchyIntegrity:_};return Js.set(y,_),y}import Wf from"node:fs/promises";import ot from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9027d972-ce29-5511-ba81-27e17d97446e")}catch{}})();var Rt="_workspace";function ro(e){return ot.join(e,"history",`${Rt}.jsonl`)}function Vf(e,t){return{metadata:{id:Rt,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 oo(e,t=e.length){let n=yn();for(let r of e.slice(0,t))n=gn(n,r.patch).document;return hn(n)}function Ys(e){return"documents"in e.metadata&&typeof e.metadata.documents=="object"&&e.metadata.documents!==null&&!Array.isArray(e.metadata.documents)?e.metadata.documents:{}}function io(e){throw new x(`Workspace history verification failed: ${e.join(", ")}`,k.CONFLICT,{code:"workspace_history_chain_invalid",reason:"workspace_history_chain_verification_failed",verification_errors:[...e],required:"Repair the _workspace history chain before reading, reconciling, restoring, or appending audited singleton state.",why:"Continuing against an unverifiable append-only stream could hide or compound workspace state corruption.",examples:["pm history _workspace --verify --json","pm validate --check-history-drift --fix-hints --json"],nextSteps:["Inspect the exact verification_errors and preserve the corrupt stream as evidence.","Use the history-drift remediation returned by validate before retrying the refused operation."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify --json"}})}function Bf(e,t){let n=ot.resolve(t),r=ot.relative(e,n).replaceAll("\\","/");if(r.length===0||r===".."||r.startsWith("../")||ot.isAbsolute(r))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:r,absolutePath:n}}async function Bg(e){let t=await Ke(ro(e),Rt),n=bn(t);n.ok||io(n.errors);let r=Ys(t.length===0?$e:oo(t)),o=[],i=[],s=[],a=[];for(let c of Object.keys(r).sort()){let d;try{let u=Bf(e,ot.resolve(e,c));if(d=await fe(u.absolutePath),d===null){s.push(c);continue}let m=JSON.parse(d);(P(m)===P(r[c])?o:i).push(c)}catch{a.push(c)}}return{ok:i.length===0&&s.length===0&&a.length===0,document_count:Object.keys(r).length,matching_documents:o,mismatched_documents:i,missing_documents:s,unreadable_documents:a}}async function Zs(e){let t=ro(e.pmRoot),n=await Ke(t,Rt),r=bn(n);r.ok||io(r.errors);let o=e.idempotencyKey===void 0?void 0:n.find(m=>m.op===`${e.op}:${e.idempotencyKey}`);if(o)return{entry:o,historyPath:t};let i=new Date().toISOString(),s=n.length===0?$e:oo(n),a=Ys(s),c=a[e.documentPath];if(c!==void 0&&P(c)!==P(e.before))throw new x(`Workspace history state for "${e.documentPath}" changed outside the audited mutation path.`,k.CONFLICT,{code:"workspace_history_state_conflict",reason:"out_of_band_workspace_state",required:"Reconcile the singleton document with its matching _workspace history state before retrying the mutation.",why:"Accepting the write would make the append-only audit stream describe a state that was not actually observed.",examples:["pm history _workspace --verify","pm validate --check-history-drift --fix-hints"],nextSteps:["Review the version-control change that altered the singleton and preserve the intended document plus its matching workspace history.","Rerun the original mutation only after the on-disk singleton agrees with the latest audited workspace state."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify"}});let d=Vf({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),u=Ze({nowIso:i,author:e.author,op:e.idempotencyKey===void 0?e.op:`${e.op}:${e.idempotencyKey}`,before:s,after:d,message:e.message});return await Qe(t,u),{entry:u,historyPath:t}}async function qg(e){let t=await de(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Zs(e)}finally{await t()}}async function Gg(e){let t=await de(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=ro(e.pmRoot),r=await Ke(n,Rt),o=bn(r);o.ok||io(o.errors);let i=r.length===0?$e:oo(r),s=Ze({nowIso:new Date().toISOString(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await Qe(n,s),{entry:s,historyPath:n}}finally{await t()}}async function Qs(e,t){if(t===e.raw)return!1;let n=t===null?null:JSON.parse(t),r=JSON.parse(e.raw);await V(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await Zs({pmRoot:e.pmRoot,documentPath:ot.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 Wf.rm(e.filePath,{force:!0}):await V(e.filePath,t),o}return!0}async function Xg(e){let t=await de(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=await fe(e.filePath),r=await e.mutate(n);return{changed:await Qs({...e,raw:r.raw},n),result:r.result}}finally{await t()}}async function ea(e){let t=await de(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Qs(e,await fe(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]="0e135793-d2ed-505b-b73e-6db55218d8af")}catch{}})();var $={ok:!1},p=e=>typeof e=="string"?{ok:!0,value:e}:$,C=e=>typeof e=="boolean"?{ok:!0,value:e}:$;function A(e={}){return t=>typeof t!="number"||!Number.isFinite(t)||e.int&&(!Number.isInteger(t)||!Number.isSafeInteger(t))||e.positive&&t<=0||typeof e.min=="number"&&t<e.min||typeof e.max=="number"&&t>e.max?$:{ok:!0,value:t}}function O(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:$}function g(e,t){return n=>{if(!Array.isArray(n)||t!==void 0&&n.length>t)return $;let r=[];for(let o of n){let i=e(o);if(!i.ok)return $;r.push(i.value)}return{ok:!0,value:r}}}function ao(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}:$}function l(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function Pn(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return $;let n={};for(let[r,o]of Object.entries(t)){let i=e(o);if(!i.ok)return $;n[r]=i.value}return{ok:!0,value:n}}}function I(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return $;let n=t,r={};for(let[o,i]of Object.entries(e)){let s=i(n[o]);if(!s.ok)return $;s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var qf=I({key:p,values:g(p),required:l(C),aliases:l(g(p)),description:l(p)}),Gf=I({command:O("create","update"),option:p,required:l(C),visible:l(C),enabled:l(C)}),Xf=I({name:p,description:l(p),default_status:l(p),folder:l(p),aliases:l(g(p)),required_create_fields:l(g(p)),required_create_repeatables:l(g(p)),options:l(g(qf)),command_option_policies:l(g(Gf))}),Kf=I({id:p,aliases:l(g(p)),roles:l(g(O(...wo))),description:l(p),order:l(A())}),Jf=I({key:p,metadata_key:l(p),front_matter_key:l(p),cli_flag:l(p),cli_aliases:l(g(p)),description:l(p),type:l(O(...Eo)),commands:l(g(O(...vo))),repeatable:l(C),required:l(C),required_on_create:l(C),required_types:l(g(p)),allow_unset:l(C)}),Yf=e=>{if(!Array.isArray(e)||e.length!==2)return $;let[t,n]=e;return typeof t!="string"||typeof n!="string"?$:{ok:!0,value:[t,n]}},Zf=I({type:p,allowed_transitions:g(Yf)}),Qf=l(I({version:l(A({int:!0})),files:l(I({types:l(p),statuses:l(p),fields:l(p),workflows:l(p)})),statuses:l(g(Kf)),fields:l(g(Jf)),workflow:l(I({draft_status:l(p),open_status:l(p),in_progress_status:l(p),blocked_status:l(p),close_status:l(p),canceled_status:l(p)})),type_workflows:l(g(Zf)),unknown_field_policy:l(O(...ko))})),em=l(I({preset:l(O(...So)),ownership_enforcement:l(O("none","warn","strict")),create_mode_default:l(O("progressive","strict")),close_validation_default:l(O("off","warn","strict")),require_close_reason:l(C),parent_reference:l(O("warn","strict_error")),metadata_profile:l(O("core","strict","custom")),force_required_for_stale_lock:l(C),create_default_type:l(p),workflow_enforcement:l(O("off","warn","strict")),duplicate_detection_mode:l(O("off","advisory","strict")),duplicate_detection_threshold:l(A({min:0,max:1})),duplicate_detection_limit:l(A({int:!0,min:0,max:20}))})),tm=I({name:p,disabled:l(C),require_trusted:l(C),require_provenance:l(C),sandbox_profile:l(O("none","restricted","strict")),allowed_capabilities:l(g(p)),blocked_capabilities:l(g(p)),allowed_surfaces:l(g(p)),blocked_surfaces:l(g(p)),allowed_commands:l(g(p)),blocked_commands:l(g(p)),allowed_actions:l(g(p)),blocked_actions:l(g(p)),allowed_services:l(g(p)),blocked_services:l(g(p))}),so=O("block","warn"),nm=e=>typeof e=="string"?so(e):I({global:l(so),project:l(so)})(e),rm=l(I({mode:l(O("off","warn","enforce")),trust_mode:l(O("off","warn","enforce")),pm_max_version_exceeded_mode:l(nm),require_provenance:l(C),trusted_extensions:l(g(p)),default_sandbox_profile:l(O("none","restricted","strict")),allowed_extensions:l(g(p)),blocked_extensions:l(g(p)),allowed_capabilities:l(g(p)),blocked_capabilities:l(g(p)),allowed_surfaces:l(g(p)),blocked_surfaces:l(g(p)),allowed_commands:l(g(p)),blocked_commands:l(g(p)),allowed_actions:l(g(p)),blocked_actions:l(g(p)),allowed_services:l(g(p)),blocked_services:l(g(p)),extension_overrides:l(g(tm))})),Pe=ao(128),om=I({harness:ao(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:l(g(Pe,64)),model_environment_keys:l(g(Pe,64)),session_environment_keys:l(g(Pe,64)),provenance_environment_keys:l(Pn(g(Pe,64))),provenance_resolvers:l(Pn(O("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:l(g(Pe,64)),argv_markers:l(g(Pe,64)),client_names:l(g(Pe,64))}),im=I({version:A({int:!0}),id_prefix:p,ids:l(I({token_length:l(A({int:!0,min:4,max:12}))})),author_default:p,agent_identity:l(I({probes_enabled:l(C),identity_vocabulary:l(I({version:A({int:!0,positive:!0}),aliases:Pn(ao(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:g(om)})),mutation_guard:l(I({require_attributed_author:l(C),secret_guard:l(O("off","advise","block")),stale_in_progress_hours:l(A({int:!0,positive:!0}))})),item_format:l(O("toon","json_markdown")),locks:I({ttl_seconds:A({int:!0}),wait_ms:l(A({int:!0,min:0}))}),checkpoints:l(I({retention_days:l(A({int:!0,positive:!0}))})),output:I({default_format:O("toon","json")}),ux:l(I({deprecation_hints:l(C)})),history:l(I({missing_stream:O("auto_create","strict_error"),compact_policy:l(I({enabled:l(C),max_entries:l(A({int:!0,positive:!0})),trigger:l(O("health_warn","auto"))}))})),validation:l(I({sprint_release_format:O("warn","strict_error"),parent_reference:l(O("warn","strict_error")),metadata_profile:l(O("core","strict","custom")),metadata_required_fields:l(g(p)),lifecycle_stale_blocker_reason_patterns:l(g(p)),lifecycle_closure_like_blocked_reason_patterns:l(g(p)),lifecycle_closure_like_resolution_patterns:l(g(p)),lifecycle_closure_like_actual_result_patterns:l(g(p)),estimate_defaults_by_type:l(Pn(A({int:!0,positive:!0})))})),governance:em,workflow:l(I({definition_of_done:g(p)})),testing:l(I({record_results_to_items:C,allow_untrusted_linked_tests:l(C)})),telemetry:l(I({enabled:C,first_run_prompt_completed:l(C),capture_level:l(O("minimal","redacted","max")),endpoint:l(p),installation_id:l(p),retention_days:l(A({int:!0,positive:!0}))})),agent_guidance:l(I({prompt_completed:l(C),declined:l(C),declined_at:l(p),template_version:l(A({int:!0,positive:!0})),last_checked_files:l(g(p))})),item_types:l(I({definitions:g(Xf)})),schema:Qf,context:l(I({default_depth:l(O("brief","standard","deep")),activity_limit:l(A({int:!0,positive:!0})),stale_threshold_days:l(A({int:!0,positive:!0})),sections:l(I({hierarchy:l(C),activity:l(C),progress:l(C),recently_created:l(C),unparented:l(C),blockers:l(C),files:l(C),workload:l(C),staleness:l(C),tests:l(C)}))})),extensions:I({enabled:g(p),disabled:g(p),policy:rm}),search:I({score_threshold:A(),hybrid_semantic_weight:l(A()),max_results:A({int:!0}),embedding_model:p,embedding_corpus_max_characters:l(A()),embedding_batch_size:A({int:!0}),embedding_timeout_ms:l(A({int:!0})),scanner_max_batch_retries:A({int:!0}),provider:l(p),corpus_fields:l(g(p)),mutation_refresh_policy:l(O("cache_only","semantic_configured","semantic_auto")),query_expansion:l(I({enabled:l(C),provider:l(p)})),rerank:l(I({enabled:l(C),model:l(p),top_k:l(A({int:!0,positive:!0}))})),bm25:l(I({k1:l(A()),b:l(A())}))}),providers:I({openai:I({base_url:p,api_key:p,model:p}),ollama:I({base_url:p,model:p})}),vector_store:I({adapter:l(p),collection_name:l(p),qdrant:I({url:p,api_key:p}),lancedb:I({path:p})})});function ta(e){let t=im(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 sm={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},na=120;function co(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function oa(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var am=oa(sm),ra=new WeakMap;function cm(e){let t=ra.get(e);if(t)return t;let n=oa(e);return ra.set(e,n),n}function Zg(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return na;if(t){let o=cm(t).get(n);if(co(o))return Math.floor(o)}let r=am.get(n);return co(r)?Math.floor(r):na}function lo(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||!co(r)||(t[o]=Math.floor(r))}return t}import{stat as dm}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 jn=new Map;function ia(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function lm(e){try{let t=await dm(e);return{path:e,mtime_ms:t.mtimeMs,size:t.size}}catch{return{path:e,mtime_ms:null,size:null}}}async function we(e){let t=ia(e),n=await Promise.all(t.map(r=>lm(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function Dt(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 sa(e){return jn.get(e)}function Fn(e,t){let n=ia(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));jn.set(e,{tracked_paths:n,signatures:r,value:t.value})}function Ee(e){if(e){jn.delete(e);return}jn.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]="5b95183e-9fd3-55cf-9059-8736f692e96e")}catch{}})();var um="settings:write",ua=Symbol("pm.settings.persist_source"),fm=128,mm=new Set(["off","advisory","strict"]);function aa(e){return structuredClone(xo[e])}function _m(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:E.governance.preset}function ca(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 pm(e){return e.preset==="custom"?ca({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):ca({preset:e.preset},e)}function ym(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),mm.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 zn(e){let t=e.governance??{},n=_m(t.preset),r=ym(t);if(n==="custom"){let s=aa("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=aa(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function fa(){return structuredClone(E)}function ma(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:E.search.mutation_refresh_policy}function _a(e){return typeof e=="boolean"?e:E.search.query_expansion.enabled}function pa(e){return typeof e!="string"?E.search.query_expansion.provider:e.trim()}function ya(e){return typeof e=="boolean"?e:E.search.rerank.enabled}function ha(e){return typeof e!="string"?E.search.rerank.model:e.trim()}function ga(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:E.search.rerank.top_k}function ba(e){if(typeof e!="string")return E.vector_store.collection_name;let n=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,fm);return n.length>0?n:E.vector_store.collection_name}function uo(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function hm(e,t){let n=e.schema,r=uo(n?.statuses),o=uo(n?.fields),i=uo(n?.type_workflows);return{source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:it(e.item_types?.definitions),has_source_schema_statuses:r.present,source_schema_statuses:r.values,has_source_schema_fields:o.present,source_schema_fields:o.values,has_source_schema_type_workflows:i.present,source_schema_type_workflows:i.values,runtime_item_type_definitions:it(t.item_types?.definitions),runtime_schema_statuses:structuredClone(t.schema.statuses),runtime_schema_fields:structuredClone(t.schema.fields),runtime_schema_type_workflows:structuredClone(t.schema.type_workflows??[])}}function wa(e,t){Object.defineProperty(e,ua,{value:t,writable:!0,configurable:!0,enumerable:!1})}function Ea(e){let t=e[ua];if(!(!t||typeof t!="object"))return t}function $n(e){let t=structuredClone(e.settings),n=Ea(e.settings);return n&&wa(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function gm(e,t,n){let r=ft(t);return[n,mt(e,r.files.types,ut.types),mt(e,r.files.statuses,ut.statuses),mt(e,r.files.fields,ut.fields),mt(e,r.files.workflows,ut.workflows)]}async function bm(e,t,n){let r=await we(t);Fn(e,{tracked_paths:t,signatures:r,value:$n(n)})}async function wm(e,t,n){try{await bm(e,t,n)}catch{Ee(e)}}function da(e,t){return e.find(n=>n.path===t)}function Em(e,t,n){for(let r of n){let o=da(e,r),i=da(t,r);if(!o||!i||!Dt([o],[i]))return!1}return!0}async function fo(e,t,n,r,o){try{let i=await we(t);if(!Em(r,i,o)){Ee(e);return}Fn(e,{tracked_paths:t,signatures:i,value:$n(n)})}catch{Ee(e)}}function vm(e,t){let n=ft(e.schema),r=it(e.item_types?.definitions);if(!t)return{item_type_definitions:r,schema_statuses:n.statuses,schema_fields:n.fields,schema_type_workflows:n.type_workflows};let o=n.type_workflows??[],i=He(r,t.runtime_item_type_definitions),s=He(n.statuses,t.runtime_schema_statuses),a=He(n.fields,t.runtime_schema_fields),c=He(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?it(t.source_item_type_definitions):[]:r,schema_statuses:s?t.has_source_schema_statuses?structuredClone(t.source_schema_statuses):[]:n.statuses,schema_fields:a?t.has_source_schema_fields?structuredClone(t.source_schema_fields):[]:n.fields,schema_type_workflows:c?t.has_source_schema_type_workflows?structuredClone(t.source_schema_type_workflows):void 0:n.type_workflows}}function Nt(e){return{settings:fa(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function km(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function _o(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function va(e){let t=E.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:_o(e?.last_checked_files??t.last_checked_files)}}function J(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function Sm(e){return e==="off"||e==="warn"||e==="enforce"?e:E.extensions.policy.mode}function Im(e){return e==="off"||e==="warn"||e==="enforce"?e:E.extensions.policy.trust_mode}function ka(e){return e==="none"||e==="restricted"||e==="strict"?e:E.extensions.policy.default_sandbox_profile}function xm(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=ka(e.sandbox_profile));let r=J(e.allowed_capabilities),o=J(e.blocked_capabilities),i=J(e.allowed_surfaces),s=J(e.blocked_surfaces),a=J(e.allowed_commands),c=J(e.blocked_commands),d=J(e.allowed_actions),u=J(e.blocked_actions),m=J(e.allowed_services),_=J(e.blocked_services);return r.length>0&&(n.allowed_capabilities=r),o.length>0&&(n.blocked_capabilities=o),i.length>0&&(n.allowed_surfaces=i),s.length>0&&(n.blocked_surfaces=s),a.length>0&&(n.allowed_commands=a),c.length>0&&(n.blocked_commands=c),d.length>0&&(n.allowed_actions=d),u.length>0&&(n.blocked_actions=u),m.length>0&&(n.allowed_services=m),_.length>0&&(n.blocked_services=_),n}function Cm(e){let t=new Map;for(let n of e??[]){let r=xm(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function mo(e){return e==="block"||e==="warn"?e:void 0}function Tm(e){if(typeof e=="string")return mo(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=mo(e.global),n=mo(e.project);return t===void 0&&n===void 0?void 0:{...t!==void 0?{global:t}:{},...n!==void 0?{project:n}:{}}}}function B(e,t){return J(e?.[t]??E.extensions.policy[t])}function Sa(e){let t=Tm(e?.pm_max_version_exceeded_mode);return{mode:Sm(e?.mode),trust_mode:Im(e?.trust_mode),...t!==void 0?{pm_max_version_exceeded_mode:t}:{},require_provenance:e?.require_provenance===!0,trusted_extensions:B(e,"trusted_extensions"),default_sandbox_profile:ka(e?.default_sandbox_profile),allowed_extensions:B(e,"allowed_extensions"),blocked_extensions:B(e,"blocked_extensions"),allowed_capabilities:B(e,"allowed_capabilities"),blocked_capabilities:B(e,"blocked_capabilities"),allowed_surfaces:B(e,"allowed_surfaces"),blocked_surfaces:B(e,"blocked_surfaces"),allowed_commands:B(e,"allowed_commands"),blocked_commands:B(e,"blocked_commands"),allowed_actions:B(e,"allowed_actions"),blocked_actions:B(e,"blocked_actions"),allowed_services:B(e,"allowed_services"),blocked_services:B(e,"blocked_services"),extension_overrides:Cm(e?.extension_overrides??E.extensions.policy.extension_overrides)}}function Ia(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 ve(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function j(e,t){return e===void 0?t:e}function q(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function po(e){return Array.isArray(e)?e:[]}function Om(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:Ia(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:ve(e.validation?.lifecycle_stale_blocker_reason_patterns??t.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:ve(e.validation?.lifecycle_closure_like_blocked_reason_patterns??t.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:ve(e.validation?.lifecycle_closure_like_resolution_patterns??t.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:ve(e.validation?.lifecycle_closure_like_actual_result_patterns??t.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:lo(e.validation?.estimate_defaults_by_type)}}function Am(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 Rm(e,t){return{...t.search,...e.search,mutation_refresh_policy:ma(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:_a(e.search?.query_expansion?.enabled),provider:pa(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:ya(e.search?.rerank?.enabled),model:ha(e.search?.rerank?.model),top_k:ga(e.search?.rerank?.top_k)}}}function Dm(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:ba(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function Nm(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function Mm(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 Lm(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function it(e){let t=(e??[]).map(r=>To(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 xa(e){let t=fa(),n=zn({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:Nm(e,t),locks:{...t.locks,...e.locks},ids:{...t.ids,...e.ids},agent_identity:structuredClone(e.agent_identity??t.agent_identity),mutation_guard:{...t.mutation_guard,...e.mutation_guard},checkpoints:{...t.checkpoints,...e.checkpoints},output:{...t.output,...e.output},ux:{...t.ux,...e.ux},history:{...t.history,...e.history,compact_policy:{...t.history.compact_policy,...e.history?.compact_policy}},validation:Om(e,t,n),governance:n,workflow:{definition_of_done:[...e.workflow?.definition_of_done??t.workflow.definition_of_done]},testing:{record_results_to_items:e.testing?.record_results_to_items??t.testing.record_results_to_items,allow_untrusted_linked_tests:e.testing?.allow_untrusted_linked_tests??t.testing.allow_untrusted_linked_tests},telemetry:Am(e,t),agent_guidance:va(e.agent_guidance??t.agent_guidance),item_types:{definitions:it(e.item_types?.definitions)},schema:ft(e.schema??t.schema),context:Mm(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:Sa(e.extensions.policy??t.extensions.policy)},search:Rm(e,t),providers:Lm(e,t),vector_store:Dm(e,t)}}function Pm(e){e.agent_identity=S(e.agent_identity,["probes_enabled","identity_vocabulary","harness_signals"]);let t=e.agent_identity;Object.hasOwn(t,"identity_vocabulary")&&(t.identity_vocabulary=S(q(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=po(e.agent_identity.harness_signals).map(n=>S(q(n),["harness","environment_keys","model_environment_keys","session_environment_keys","provenance_environment_keys","provenance_resolvers","provenance_unavailable_dimensions","argv_markers","client_names"])),e.locks=S(e.locks,["ttl_seconds","wait_ms"]),e.ids=S(e.ids,["token_length"]),e.mutation_guard=S(e.mutation_guard,["require_attributed_author","secret_guard","stale_in_progress_hours"]),e.checkpoints=S(e.checkpoints,["retention_days"]),e.output=S(e.output,["default_format"]),e.ux=S(e.ux,["deprecation_hints"]),e.history=S(e.history,["missing_stream","compact_policy"]),e.validation=S(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=S(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=S(e.workflow,["definition_of_done"]),e.testing=S(e.testing,["record_results_to_items","allow_untrusted_linked_tests"]),e.telemetry=S(e.telemetry,["enabled","first_run_prompt_completed","capture_level","endpoint","installation_id","retention_days"]),e.agent_guidance=S(e.agent_guidance,["prompt_completed","declined","declined_at","template_version","last_checked_files"]),e.item_types=S(e.item_types,["definitions"]),e.schema=S(e.schema,["version","files","statuses","fields","workflow","type_workflows","unknown_field_policy"]),e.schema.files=S(q(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=S(q(e.schema.workflow),["draft_status","open_status","in_progress_status","blocked_status","close_status","canceled_status"]),e.context=S(e.context,["default_depth","activity_limit","stale_threshold_days","sections"]),e.context.sections=S(q(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=S(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=S(q(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=po(e.extensions.policy.extension_overrides).map(n=>S(q(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=S(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=S(q(e.search.query_expansion),["enabled","provider"]),e.search.rerank=S(q(e.search.rerank),["enabled","model","top_k"]),e.providers=S(e.providers,["openai","ollama"]),e.providers.openai=S(q(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=S(q(e.providers.ollama),["base_url","model"]),e.vector_store=S(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=S(q(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=S(q(e.vector_store.lancedb),["path"])}function jm(e){return{...e,locks:j(e.locks,E.locks),ids:j(e.ids,E.ids),agent_identity:j(e.agent_identity,E.agent_identity),mutation_guard:j(e.mutation_guard,E.mutation_guard),checkpoints:j(e.checkpoints,E.checkpoints),output:j(e.output,E.output),ux:j(e.ux,E.ux),history:j(e.history,E.history),validation:j(e.validation,E.validation),workflow:j(e.workflow,E.workflow),testing:j(e.testing,E.testing),telemetry:j(e.telemetry,E.telemetry),agent_guidance:j(e.agent_guidance,E.agent_guidance),item_types:j(e.item_types,E.item_types),schema:j(e.schema,E.schema),context:j(e.context,E.context),extensions:j(e.extensions,E.extensions),search:j(e.search,E.search),providers:j(e.providers,E.providers),vector_store:j(e.vector_store,E.vector_store)}}function Fm(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:Ia(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:ve(e.validation?.lifecycle_stale_blocker_reason_patterns??E.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:ve(e.validation?.lifecycle_closure_like_blocked_reason_patterns??E.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:ve(e.validation?.lifecycle_closure_like_resolution_patterns??E.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:ve(e.validation?.lifecycle_closure_like_actual_result_patterns??E.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:lo(e.validation?.estimate_defaults_by_type)}}function $m(e){return{...E.search,...e.search,mutation_refresh_policy:ma(e.search?.mutation_refresh_policy),query_expansion:{...E.search.query_expansion,...e.search?.query_expansion,enabled:_a(e.search?.query_expansion?.enabled),provider:pa(e.search?.query_expansion?.provider)},rerank:{...E.search.rerank,...e.search?.rerank,enabled:ya(e.search?.rerank?.enabled),model:ha(e.search?.rerank?.model),top_k:ga(e.search?.rerank?.top_k)}}}function zm(e){return{default_depth:e.context?.default_depth??E.context.default_depth,activity_limit:e.context?.activity_limit??E.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??E.context.stale_threshold_days,sections:{...E.context.sections,...e.context?.sections}}}function Hm(e){return{...e.vector_store,adapter:e.vector_store?.adapter??E.vector_store.adapter,collection_name:ba(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function Um(e,t,n,r){return{...e,item_format:"toon",validation:Fm(e,t),governance:t,agent_guidance:va(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:$m(e),context:zm(e),extensions:{enabled:_o(e.extensions?.enabled),disabled:_o(e.extensions?.disabled),policy:Sa(e.extensions?.policy)},vector_store:Hm(e)}}function Ca(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(!He(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:{};Ca(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var Ta=["version","id_prefix","ids","author_default","agent_identity","mutation_guard","item_format","locks","checkpoints","output","ux","history","validation","governance","workflow","testing","telemetry","agent_guidance","item_types","schema","context","extensions","search","providers","vector_store"];function la(e,t){let n=jm(e),r=zn(n),o=ft(n.schema),i=vm(n,t),s=Um(n,r,o,i),a=S({...s,governance:pm(r)},Ta);return Pm(a),a}function Wm(e,t={}){let n=la(e,t.persist_source);if(t.persist_source){let r=xa(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=la(r,t.persist_source),i=structuredClone(t.persist_source.source_settings);return Ca(i,o,n),`${JSON.stringify(S(i,Ta),null,2)}
|
|
156
|
+
`}return`${JSON.stringify(n,null,2)}
|
|
157
|
+
`}async function Oa(e){let t=dt(e),n=[t];await ee({path:t,scope:"project"});let r=sa(e);if(r){let d=await we(r.tracked_paths);if(Dt(d,r.signatures))return $n(r.value)}let o=await we([t]),i;try{i=await fe(t)}catch{return Nt("settings_read_fs_error")}if(i===null){let d=Nt();return await fo(e,[t],d,o,[t]),d}let s=await we([t]);if(!Dt(o,s))return Ee(e),Oa(e);let a;try{a=JSON.parse(i)}catch{let d=Nt("settings_read_invalid_json");return await fo(e,[t],d,s,[t]),d}let c=ta(a);if(!c.success){let d=Nt("settings_read_invalid_schema");return await fo(e,[t],d,s,[t]),d}try{let d=xa(c.data),u=gm(e,d.schema,t);n=u;let m=await we(u),_=await Wo(e,d.schema),y=await Vo(e,d.schema),f=await we(u),h={...d,item_types:{definitions:it([...d.item_types.definitions,...po(y.type_definitions_from_file)])},schema:y.schema};wa(h,hm(c.data,h));let w={settings:h,metadata:{has_explicit_item_format:km(a)},warnings:[...c.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],..._.created_paths.map(T=>`runtime_schema_bootstrap_created:${T}`),...y.warnings]};return _.created_paths.length===0?Dt(m,f)?Fn(e,{tracked_paths:u,signatures:f,value:$n(w)}):Ee(e):Ee(e),w}catch{let d=Nt("settings_read_merge_failed");return await wm(e,n,d),d}}async function _b(e){return(await Oa(e)).settings}async function pb(e,t,n=um){let r=dt(e),o=Wm(t,{persist_source:Ea(t)});try{await ea({pmRoot:e,filePath:r,raw:o,op:n,author:mi(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),await K({path:r,scope:"project",op:n})}finally{Ee(e)}}import Vm from"node:fs/promises";import Bm 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 qm(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function Gm(e,t){return new x(`Missing history stream for ${e}. ${t} requires history streams when settings.history.missing_stream is strict_error.`,k.NOT_FOUND)}async function Xm(e,t){return await Co(Bm.dirname(e)),await(await Vm.open(e,"a")).close(),K({path:e,scope:"project",op:`${t}:history:auto_create`})}async function yo(e){return Km({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function Km(e){let t=qm(e.itemIds),n=[],r=[];for(let o of t){let i=lt(e.pmRoot,o);if(!await ze(i)){if(e.settings.history.missing_stream==="strict_error")throw Gm(o,e.commandLabel);r.push(...await Xm(i,e.commandLabel)),r.push(`history_stream_auto_created:${o}`),n.push(o)}}return{auto_created_ids:n,warnings:r}}import go from"node:fs/promises";import Hn from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8b0efe32-43f5-51ed-b1d5-5c26a3ae5bf0")}catch{}})();function ke(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function bo(e){let t=["--pm-path",e,"init","--defaults","--agent-guidance","skip"];return{suggested_retry:`pm ${t.map(n=>`'${n.replaceAll("'",`'"'"'`)}'`).join(" ")}`,suggested_retry_args:t}}function Un(e){return new x(`Tracker root is not a directory at ${e}.`,k.USAGE,{code:"tracker_root_not_directory",reason:"not_a_directory",resolved_path:e,nextSteps:["Pass a tracker directory, usually <workspace>/.agents/pm, rather than a file path."]})}function ho(e){return new x(`Tracker root is not readable at ${e}.`,k.GENERIC_FAILURE,{code:"tracker_root_unreadable",reason:"unreadable",resolved_path:e,nextSteps:["Grant read and directory-search permission to the tracker root, then retry."]})}async function Jm(e){let t=Hn.resolve(e),n=Hn.parse(t).root,r=Hn.dirname(t);for(;r!==n;){let o;try{o=await go.stat(r)}catch(i){if(ke(i,"ENOTDIR"))throw Un(e);if(!ke(i,"ENOENT"))throw i;r=Hn.dirname(r);continue}if(!o.isDirectory())throw Un(e);return}}async function st(e){let t;try{t=await go.stat(e)}catch(n){throw ke(n,"ENOENT")?(await Jm(e),new x(`Tracker is not initialized at ${e}. Tracker root does not exist. Run pm init first.`,k.NOT_FOUND,{code:"tracker_root_missing",reason:"missing",resolved_path:e,nextSteps:["Confirm the tracker root path or initialize it with the emitted retry."],recovery:bo(e)})):ke(n,"ENOTDIR")?Un(e):ke(n,"EACCES")||ke(n,"EPERM")?ho(e):n}if(!t.isDirectory())throw Un(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw ho(e);try{await(await go.opendir(e)).close()}catch(n){throw ke(n,"EACCES")||ke(n,"EPERM")?ho(e):n}}async function Ym(e){if(await st(e),!await ze(dt(e)))throw new x(`Tracker is not initialized at ${e}. Run pm init first.`,k.NOT_FOUND,{code:"tracker_not_initialized",reason:"settings_missing",resolved_path:e,nextSteps:["Initialize the selected tracker root with the emitted retry."],recovery:bo(e)})}import at from"node:fs/promises";import Zm 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]="bffd3114-3e85-58ae-90c7-eea5069cdb89")}catch{}})();async function Qm(e){try{return await at.access(e),!0}catch{return!1}}function e_(e,t){e&&(e.includes(t)||e.push(t))}function Aa(e){return e??zt(Re())}function t_(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}async function Ra(e,t,n="pm-",r,o=Se){let i=t.trim(),s=i.startsWith("#")?i.slice(1):i;if(s.length===0)return null;let a=Et(t,n),c=Wr(t),d=[...new Set([s,a,c])].filter(_=>_.length>0),u=Object.entries(o),m=t_(r);for(let _ of d)for(let[y]of u)for(let f of m){let h=Bn(e,y,_,f,o);if(await Qm(h))return{id:_,type:y,itemPath:h,item_format:f}}return null}async function Da(e,t={}){let n=await at.readFile(e.itemPath,"utf8");await ee({path:e.itemPath,scope:"project"});let r=rn(n,{format:e.item_format,schema:t.schema,extensionFieldNames:Aa(t.extensionFieldNames),onWarning:o=>e_(t.warnings,o)});return{raw:n,document:r}}async function n_(e,t,n=Se,r,o){return await st(e),(await Bs(e,t,n,r,o)).map(s=>s.metadata)}async function Zb(e,t,n=Se,r,o){return await st(e),(await qs(e,t,n,r,o)).map(s=>s.metadata)}async function Qb(e,t,n=Se,r,o,i={}){return await st(e),(await Dn(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan})).map(a=>({...a.metadata,body:a.body}))}function Na(e){return{async get(t){let n=await Ra(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await Da(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>n_(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function r_(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await at.readdir(Zm.join(e,o));for(let s of i)for(let a of Ht)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function o_(e,t,n,r){let o=Et(t,n),i=await r_(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(c=>({id:c,distance:Mt(c,o,s)})).filter(c=>c.distance!==null).sort((c,d)=>c.distance-d.distance).slice(0,3).map(c=>c.id)}async function i_(e,t,n,r){let o=await o_(e,t,n,r),i=["Confirm the active --path/PM_PATH scope, then retry with a valid id."];return o.length>0&&i.unshift(`Did you mean one of: ${o.join(", ")}?`),new x(`Item ${t} not found`,k.NOT_FOUND,{nextSteps:i})}function s_(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 Ma(e){let t=e.typeToFolder??Oo(e.settings,Re()).type_to_folder,n=await Ra(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await i_(e.pmRoot,e.id,e.settings.id_prefix,t);let r=await de(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 Da(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||a,d=fi(e.author),u=zn(e.settings);if(a&&c!==d&&!e.force&&!s_(e.op,e.bypassAssigneeConflict)){if(u.ownership_enforcement==="strict")throw new x(`Item ${n.id} is assigned to ${a}. Use --force to override.`,k.CONFLICT);u.ownership_enforcement==="warn"&&o.push(`ownership_warning:assignee_conflict:${n.id}:${a}`)}return{typeToFolder:t,located:n,originalRaw:i,document:s,warnings:o,releaseLock:r}}catch(o){throw await r(),o}}function a_(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 c_(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await V(e.originalItemPath,e.originalRaw),await at.rm(e.effectiveTargetItemPath,{force:!0});return}await V(e.originalItemPath,e.originalRaw)}}async function La(e){let t=await Ma({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=X(i,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),d=X(structuredClone(i),{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),u=await e.mutate(d);if(e.skipNoop===!0&&u.changedFields.length===0)return{item:c.metadata,body:c.body,changedFields:[],warnings:[...s,...u.warnings??[]]};let m=e.resolveHistoryContext?.();d.metadata.updated_at=Oe();let _=X(d,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames});await Ar({pm_root:e.pmRoot,operation:e.op,before:c,after:_,changed_fields:u.changedFields,sdk:Na({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let y=await yo({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),f="toon",h=Li(_,{format:f,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),w=Bn(e.pmRoot,_.metadata.type,r.id,f,n),T=lt(e.pmRoot,r.id),R=await oe("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:w,history_path:T,item_format:f,before:c,after:_,contents:h}),{effectiveTargetItemPath:M,effectiveSerializedAfter:L,skipItemWrite:H}=a_(R,w,h),je=await Qr(e.pmRoot,e.author),W=[];try{H||await V(M,L),!H&&M!==r.itemPath&&await at.rm(r.itemPath);let le=Ze({nowIso:_.metadata.updated_at,author:e.author,op:e.op,before:c,after:_,message:e.message,context:m});try{await Qe(T,le)}catch(Y){throw await c_({skipItemWrite:H,effectiveTargetItemPath:M,originalItemPath:r.itemPath,originalRaw:o}),Y}H||(W=await eo({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:M,previousItemPath:r.itemPath,document:_}))}finally{await je()}let Fe=[...await K({path:M,scope:"project",op:e.op,item_id:_.metadata.id,item_type:_.metadata.type,before:c,after:_,changed_fields:u.changedFields}),...await K({path:T,scope:"project",op:`${e.op}:history`,item_id:_.metadata.id,item_type:_.metadata.type,before:c,after:_,changed_fields:u.changedFields})];return Or({id:_.metadata.id,op:e.op,item_type:_.metadata.type,previous_status:c.metadata.status,status:_.metadata.status,previous:on(c.metadata,u.changedFields),current:on(_.metadata,u.changedFields),changed_fields:u.changedFields}),{item:_.metadata,body:_.body,changedFields:u.changedFields,warnings:[...s,...u.warnings??[],...y.warnings,...R.warnings,...W,...Fe]}}finally{await a()}}async function ew(e){return La(e)}async function tw(e){return La(e)}async function nw(e){let t=await Ma({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=Aa(void 0),c=X(o,{schema:e.settings.schema,extensionFieldNames:a});await Ar({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:Na({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let d=await yo({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),u=Oe(),m=$e,_=Ze({nowIso:u,author:e.author,op:"delete",before:c,after:m,message:e.message}),y=lt(e.pmRoot,n.id),f=await oe("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:y,before:c}),h=n.itemPath,w=!1;if(f.handled&&typeof f.result=="object"&&f.result!==null){let L=f.result;typeof L.item_path=="string"&&L.item_path.trim().length>0&&(h=L.item_path),L.skip_delete===!0&&(w=!0)}if(e.dryRun===!0)return{item:c.metadata,changedFields:["deleted"],targetPath:h,warnings:[...i,...d.warnings,...f.warnings]};let T=await Qr(e.pmRoot,e.author),R=[];try{w||await at.rm(h);try{await Qe(y,_)}catch(L){throw w||await V(h,r),L}w||(R=await eo({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:h,document:null}))}finally{await T()}let M=[...await K({path:h,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:m,changed_fields:["deleted"]}),...await K({path:y,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:m,changed_fields:["deleted"]})];return Or({id:c.metadata.id,op:"delete",item_type:c.metadata.type,previous_status:c.metadata.status,previous:on(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...i,...d.warnings,...f.warnings,...R,...M]}}finally{await s()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="745b9c3b-538c-558f-b018-b406ca4318f0")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a9b23a46-0bba-5174-8793-dfc37016d1fb")}catch{}})();function d_(e,t){let n=e.trim().toLowerCase();if(n.length===0)return;let r=Math.floor(n.length/3);return t.map(o=>({candidate:o,distance:Mt(n,o.toLowerCase(),r)??Number.POSITIVE_INFINITY})).filter(({distance:o})=>Number.isFinite(o)).sort((o,i)=>o.distance!==i.distance?o.distance-i.distance:o.candidate.localeCompare(i.candidate))[0]?.candidate}function Pa(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function dw(e){let t=e.command_path.trim().replaceAll(/\s+/gu," "),n=e.token.trim(),r=n.length===0?"<empty>":n,o=[...new Set(e.allowed.map(_=>_.trim()))].filter(Boolean).sort((_,y)=>_.localeCompare(y));if(t.length===0||r.length===0||o.length===0)throw new TypeError("Unknown-subcommand contracts require a path, token, and allowed set");let i=t.split(" "),s=e.trailing_args??[],a=e.display_name??`pm ${t}`,c=e.token_kind??"subcommand",d=e.retry_command?void 0:d_(r,o),u=Pa([...i,r,...s]),m=e.retry_command??(d?Pa([...i,d,...s]):void 0);return new x(`Unknown ${a} ${c} "${r}". Allowed: ${o.join(", ")}${e.message_suffix??""}`,e.exit_code??k.USAGE,{code:"unknown_subcommand",reason:"unknown_positional_token",examples:[...m?[m]:[],...e.examples??[],`pm ${t} --help`],nextSteps:m?[`Retry with the suggested command: ${m}`]:["Choose one value from recovery.allowed_values."],recovery:{attempted_command:u,allowed_values:o,suggested_retry:m,fallback_candidates:e.fallback_candidates}})}export{Pp as a,cl as b,Kp as c,hl as d,Jp as e,Yp as f,Zp as g,Qp as h,ey as i,ty as j,ny as k,Re as l,Or as m,on as n,K as o,Ar as p,ee as q,Rr as r,ry as s,oy as t,oe as u,Fl as v,xe as w,Xn as x,f_ as y,m_ as z,Vt as A,Qn as B,w_ as C,E_ as D,v_ as E,k_ as F,S_ as G,I_ as H,cr as I,dr as J,si as K,M_ as L,L_ as M,P_ as N,j_ as O,F_ as P,$_ as Q,mr as R,di as S,z_ as T,H_ as U,U_ as V,_c as W,fi as X,mi as Y,Oe as Z,ne as _,bi as $,U as aa,Y_ as ba,Z_ as ca,de as da,Si as ea,_t as fa,fp as ga,mp as ha,Ve as ia,wi as ja,ep as ka,Ei as la,Lc as ma,tp as na,Yt as oa,jc as pa,ip as qa,Qt as ra,nn as sa,rn as ta,Li as ua,X as va,Ke as wa,vy as xa,ky as ya,Sy as za,By as Aa,qy as Ba,ql as Ca,bt as Da,Ne as Ea,wt as Fa,lh as Ga,ds as Ha,uh as Ia,Ze as Ja,Qe as Ka,eu as La,yn as Ma,bh as Na,Hr as Oa,hn as Pa,wh as Qa,Eh as Ra,ms as Sa,gn as Ta,ps as Ua,bn as Va,su as Wa,vh as Xa,kh as Ya,Rt as Za,ro as _a,Bg as $a,qg as ab,Gg as bb,Xg as cb,ea as db,Zg as eb,zn as fb,Oa as gb,_b as hb,pb as ib,yo as jb,Km as kb,gs as lb,Wr as mb,Et as nb,Ah as ob,Ph as pb,jh as qb,Fh as rb,zs as sb,qu as tb,Qr as ub,cg as vb,eo as wb,Dn as xb,st as yb,Ym as zb,Ra as Ab,Da as Bb,n_ as Cb,Zb as Db,Qb as Eb,Na as Fb,i_ as Gb,ew as Hb,tw as Ib,nw as Jb,dw as Kb,Ln as Lb,Le as Mb,kg as Nb,Sg as Ob,be as Pb,yg as Qb,Mn as Rb,hg as Sb,Nf as Tb,gg as Ub,Ot as Vb,Pf as Wb,Ff as Xb,$f as Yb,zf as Zb,Rg as _b,Dg as $b};
|
|
158
|
+
//# sourceMappingURL=chunk-T2LXXSOD.js.map
|