@unbrained/pm-cli 2026.9.26 → 2026.9.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +4 -6
- package/CHANGELOG.md +42 -0
- package/dist/cli/commander-usage.js +2 -2
- package/dist/cli/error-guidance.js +1 -1
- package/dist/cli/help-json-payload.js +1 -1
- package/dist/cli/main.js +2 -2
- package/dist/cli/register-operations.js +1 -1
- package/dist/cli/register-setup.js +1 -1
- package/dist/cli/runtime/selection.d.ts +3 -1
- package/dist/cli/runtime/selection.js +1 -1
- package/dist/cli-bundle/bundle-manifest.json +156 -148
- package/dist/cli-bundle/chunks/{chunk-TC74K7SS.js → chunk-35DME35A.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-QQD3VRMZ.js → chunk-A2G5OG6W.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-CPOWTIIS.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-TYJXMT3Q.js → chunk-GLH2LNRH.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-IYN4MJ2C.js → chunk-NBDB3SRC.js} +57 -57
- package/dist/cli-bundle/chunks/{chunk-HTHTX6E6.js → chunk-NEUIVBFO.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-U55RYT3I.js → chunk-OYCCWPBM.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-VMO4P5MX.js → chunk-PLNNUAFZ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-FOTXRNY6.js → chunk-PR4UAMI5.js} +44 -44
- package/dist/cli-bundle/chunks/{chunk-SZQCHJI4.js → chunk-UT7GRGHY.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-MJWKR7YA.js → chunk-VMJLM7P2.js} +62 -62
- package/dist/cli-bundle/chunks/{chunk-4ODHIX7N.js → chunk-YERBAGQD.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-ZFHJP7YD.js +29 -0
- package/dist/cli-bundle/chunks/{register-list-query-426QTRET.js → register-list-query-N6RP6PSP.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-FLI3HHMP.js → register-mutation-CY7JGQE6.js} +2 -2
- package/dist/cli-bundle/chunks/{register-operations-TP7ZG4MK.js → register-operations-53HAD3QP.js} +2 -2
- package/dist/cli-bundle/chunks/register-setup-NVX6374E.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-5KJXX2TZ.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-UIFVIE5F.js → chunk-6IVQPNYN.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-MK5AKKHK.js → chunk-A5O3VYWV.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-AZA4AEOR.js +75 -0
- package/dist/cli-bundle/focused-chunks/chunk-BGWF6CMP.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-NVVB2HJC.js → chunk-BRLXKRI2.js} +17 -17
- package/dist/cli-bundle/focused-chunks/{chunk-ABA3KRPY.js → chunk-DTLRXY77.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-XKH2FC5D.js → chunk-IJXZQE3D.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-Q355NPLH.js → chunk-IWLMQLBO.js} +6 -6
- package/dist/cli-bundle/focused-chunks/chunk-K7GSZ7YZ.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-OY3VHCTX.js → chunk-ONDNR3VU.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-XVBWZTU2.js → chunk-OVVCXTIE.js} +12 -12
- package/dist/cli-bundle/focused-chunks/{chunk-25BBHWMH.js → chunk-V7OPZRL6.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-TLF6N56J.js → chunk-Y5Z3XNGY.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-O7MIBEMK.js → chunk-YZB7IPR6.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-NRHTXBTI.js → chunk-ZMQTIS3L.js} +2 -2
- package/dist/cli-bundle/main.js +22 -22
- 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 +18 -18
- 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 +51 -51
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +8 -8
- package/dist/core/diagnostics/remediation.js +1 -1
- package/dist/core/item/item-format.js +1 -1
- package/dist/core/store/settings.js +3 -3
- package/dist/sdk/agent-capability-contracts.js +1 -1
- package/dist/sdk/cli-contracts/command-aliases.js +1 -1
- package/dist/sdk/cli-contracts/commander-mutation-options.js +1 -1
- package/dist/sdk/cli-contracts/grammar-contracts.js +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +1 -1
- package/dist/sdk/completion/fish.js +3 -3
- package/dist/sdk/completion/shared.d.ts +1 -1
- package/dist/sdk/completion/shared.js +1 -1
- package/dist/sdk/completion/zsh.js +3 -3
- package/dist/sdk/extension/copy-scope.d.ts +2 -2
- package/dist/sdk/extension/copy-scope.js +1 -1
- package/dist/sdk/extension/install-plan.js +1 -1
- package/dist/sdk/extension/install-runtime.js +2 -2
- package/dist/sdk/extension/static-inventory.d.ts +54 -0
- package/dist/sdk/extension/static-inventory.js +2 -0
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
- package/dist/sdk/governance/health-merge-evidence.d.ts +18 -0
- package/dist/sdk/governance/health-merge-evidence.js +2 -0
- package/dist/sdk/governance/health.js +1 -1
- package/dist/sdk/guide-topics.js +1 -1
- package/dist/sdk/index.d.ts +1 -0
- package/dist/sdk/index.js +1 -1
- package/dist/sdk/merge/install.js +2 -2
- package/dist/sdk/output-projection.d.ts +1 -1
- package/dist/sdk/output-projection.js +1 -1
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/query/complete-list.js +1 -1
- package/dist/sdk/read-output/provenance.d.ts +20 -0
- package/dist/sdk/read-output/provenance.js +2 -0
- package/dist/sdk/read-output-budget.d.ts +1 -1
- package/dist/sdk/read-output-budget.js +1 -1
- package/dist/sdk/read-output-contracts.js +1 -1
- package/dist/sdk/runtime-input.js +1 -1
- package/dist/sdk/test/execution.d.ts +11 -0
- package/dist/sdk/test/execution.js +2 -2
- package/dist/sdk/test/parsers.d.ts +1 -1
- package/dist/sdk/test/parsers.js +1 -1
- package/dist/types.d.ts +3 -3
- package/dist/types.js +1 -1
- package/docs/AGENT_READ_AND_TEST_RECEIPTS.md +21 -0
- package/docs/CLAUDE_CODE_PLUGIN.md +12 -7
- package/docs/CLI_GRAMMAR.md +31 -0
- package/docs/CODEX_PLUGIN.md +8 -0
- package/docs/CONFIGURATION.md +2 -0
- package/docs/EXTENSION_LIFECYCLE.md +18 -0
- package/docs/PACKAGE_EVIDENCE.md +18 -7
- package/docs/README.md +1 -0
- package/docs/RELEASING.md +46 -1
- package/docs/TESTING.md +14 -3
- package/docs/agent-task-token-baseline.json +4 -4
- package/docs/generated/AGENT_CAPABILITY_ROUTING.md +1 -1
- package/docs/generated/AGENT_COMMAND_SURFACE.md +5 -1
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +4 -0
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +18 -7
- package/marketplace.json +4 -6
- package/package.json +6 -6
- 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 +4 -2
- package/plugins/pm-claude/.mcp.json +1 -2
- package/plugins/pm-claude/README.md +11 -7
- package/plugins/pm-claude/package.json +2 -2
- package/plugins/pm-claude/skills/pm-audit/SKILL.md +14 -103
- package/plugins/pm-claude/skills/pm-audit/agents/openai.yaml +4 -0
- package/plugins/pm-claude/{commands/pm-calendar.md → skills/pm-calendar/SKILL.md} +1 -0
- package/plugins/pm-claude/{commands/pm-close-task.md → skills/pm-close-task/SKILL.md} +1 -0
- package/plugins/pm-claude/skills/pm-developer/SKILL.md +20 -143
- package/plugins/pm-claude/skills/pm-developer/agents/openai.yaml +4 -0
- package/plugins/pm-claude/{commands/pm-init.md → skills/pm-init/SKILL.md} +2 -1
- package/plugins/pm-claude/{commands/pm-list.md → skills/pm-list/SKILL.md} +2 -1
- package/plugins/pm-claude/{commands/pm-new.md → skills/pm-new/SKILL.md} +1 -0
- package/plugins/pm-claude/skills/pm-planner/SKILL.md +16 -167
- package/plugins/pm-claude/skills/pm-planner/agents/openai.yaml +4 -0
- package/plugins/pm-claude/skills/pm-release/SKILL.md +18 -102
- package/plugins/pm-claude/skills/pm-release/agents/openai.yaml +4 -0
- package/plugins/pm-claude/{commands/pm-search.md → skills/pm-search/SKILL.md} +1 -0
- package/plugins/pm-claude/{commands/pm-start-task.md → skills/pm-start-task/SKILL.md} +1 -0
- package/plugins/pm-claude/{commands/pm-status.md → skills/pm-status/SKILL.md} +1 -0
- package/plugins/pm-claude/{commands/pm-triage.md → skills/pm-triage/SKILL.md} +1 -0
- package/plugins/pm-claude/skills/pm-workflow/SKILL.md +25 -156
- package/plugins/pm-claude/skills/pm-workflow/agents/openai.yaml +4 -0
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/pm-codex/README.md +10 -2
- package/plugins/pm-codex/mcp.json +11 -0
- package/plugins/pm-codex/package.json +2 -2
- package/plugins/pm-codex/plugin.json +45 -0
- package/plugins/pm-codex/skills/pm-audit/SKILL.md +21 -0
- package/plugins/pm-codex/skills/pm-audit/agents/openai.yaml +4 -0
- package/plugins/pm-codex/skills/pm-auditor/SKILL.md +5 -40
- package/plugins/pm-codex/skills/pm-auditor/agents/openai.yaml +3 -5
- package/plugins/pm-codex/skills/pm-developer/SKILL.md +26 -0
- package/plugins/pm-codex/skills/pm-developer/agents/openai.yaml +4 -0
- package/plugins/pm-codex/skills/pm-native/SKILL.md +7 -87
- package/plugins/pm-codex/skills/pm-native/agents/openai.yaml +3 -5
- package/plugins/pm-codex/skills/pm-planner/SKILL.md +22 -0
- package/plugins/pm-codex/skills/pm-planner/agents/openai.yaml +4 -0
- package/plugins/pm-codex/skills/pm-release/SKILL.md +17 -38
- package/plugins/pm-codex/skills/pm-release/agents/openai.yaml +2 -4
- package/plugins/pm-codex/skills/pm-workflow/SKILL.md +39 -0
- package/plugins/pm-codex/skills/pm-workflow/agents/openai.yaml +4 -0
- package/dist/cli-bundle/chunks/chunk-GRWPZR7F.js +0 -29
- package/dist/cli-bundle/chunks/register-setup-574SIVQZ.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-H3BI4EDO.js +0 -75
- package/dist/cli-bundle/focused-chunks/chunk-HNHMK5JI.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-HQPTDJLF.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-PMPFLA6X.js +0 -2
- package/plugins/pm-claude/commands/pm-audit.md +0 -38
- package/plugins/pm-claude/commands/pm-developer.md +0 -38
- package/plugins/pm-claude/commands/pm-planner.md +0 -54
- package/plugins/pm-claude/commands/pm-release.md +0 -41
- package/plugins/pm-claude/commands/pm-workflow.md +0 -49
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as pt,b as _t,d as yt}from"./chunk-UIFVIE5F.js";import{t as Tr}from"./chunk-HQPTDJLF.js";import{$ as me,$a as zr,Ab as oe,Ba as Pr,Bb as qr,Ca as St,G as Mr,I as Dr,J as Or,Nb as Hr,Pa as $r,Ra as Me,S as fe,Sa as v,Ta as De,Tb as Br,U as H,Ub as Gr,X as gt,Xb as Yr,Y as ht,Ya as Oe,Za as re,ab as Ur,cb as Vr,db as jr,lb as Tt,na as wt,nb as vt,oa as Nr,pa as bt,pb as Kr,rb as pe,ua as Fr,vb as ne,wb as _e,xb as It,ya as Et,zb as At}from"./chunk-Q355NPLH.js";import{f as vr,n as ee,p as ft}from"./chunk-TLF6N56J.js";import{$ as f,$a as dt,$d as Le,Ac as Ar,Ca as w,Da as T,Ea as de,Fa as Z,Ga as E,Ia as Er,Jc as P,Mc as ke,Pb as Ir,Pc as Cr,Sa as A,Sd as M,Ta as le,V as ct,Wd as te,Xd as Lr,Ya as R,Yd as xe,_a as Re,aa as m,ab as lt,bb as Sr,bd as Rr,cb as ue,cd as kr,dd as mt,hd as xr,i as at,rb as ut,sa as V,ua as J,va as S,wa as I,ya as Ce}from"./chunk-NVVB2HJC.js";(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]="df9abedd-6e84-5712-8e5e-4e510ec3ed60")}catch{}})();function Wr(e,t="--limit"){if(e===void 0)return;let r=Number(e);if(!Number.isFinite(r)||r<0)throw new m(`${t} must be a non-negative number`,f.USAGE);return Math.floor(r)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="01b280e5-31b5-532d-b569-67aab828358a")}catch{}})();var hi=3e4,ye=class extends Error{status;constructor(t,r){super(t),this.name="SearchHttpError",this.status=r}};function B(e,t,r=hi){let n=e??r;if(!Number.isFinite(n)||n<=0)throw new Error(`${t} timeout must be a positive finite number`);return Math.floor(n)}function G(e,t){if(e)return e;if(typeof globalThis.fetch=="function")return globalThis.fetch.bind(globalThis);throw new Error(`${t} execution requires a fetch implementation`)}async function wi(e){try{return(await e.text()).replaceAll(/\s+/g," ").trim()}catch(t){return`(failed to read response body: ${E(t)})`}}async function Ne(e){let t=new AbortController,r=setTimeout(()=>{t.abort()},e.timeoutMs);try{let n;try{n=await e.fetcher(e.endpoint,{method:e.method,headers:e.headers,body:JSON.stringify(e.body),signal:t.signal})}catch(o){throw o instanceof Error&&o.name==="AbortError"?new Error(`${e.requestLabel} timed out after ${e.timeoutMs}ms`):new Error(`${e.requestLabel} execution failed: ${E(o)}`)}if(!n.ok){let o=await wi(n),i=o.length>0?`: ${o}`:"";throw new ye(`${e.requestLabel} failed with status ${n.status} ${n.statusText}${i}`,n.status)}try{return await n.json()}catch(o){throw new Error(`${e.responseLabel} JSON parse failed: ${E(o)}`)}}finally{clearTimeout(r)}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2c36f008-53c4-5ee7-bc87-6bfb7aeb8f42")}catch{}})();function wl(e,t){let r=w(e);if(!r)return"unconfigured";let n=w(t);return n&&n.toLowerCase()===r.toLowerCase()?"configured":"auto-detected"}function bi(e){let t=de(e),r=t.toLowerCase();return r.endsWith("/embeddings")?t:r.endsWith("/v1")?`${t}/embeddings`:`${t}/v1/embeddings`}function Qr(e){let t=e.search?.embedding_model;return w(t)||null}function Ei(e){let t=w(e.providers?.openai?.base_url),r=w(e.providers?.openai?.model);if(!t||!r)return null;let n=Qr(e),o=w(e.providers?.openai?.api_key);return{name:"openai",base_url:t,model:n??r,...o?{api_key:o}:{}}}function Si(e){let t=w(e.providers?.ollama?.base_url),r=w(e.providers?.ollama?.model);if(!t||!r)return null;let n=Qr(e);return{name:"ollama",base_url:t,model:n??r}}function Jr(e){let t=(Array.isArray(e)?e:[e]).map(r=>r.trim()).filter(r=>r.length>0);if(t.length===0)throw new Error("Embedding input must include at least one non-empty string");return t}function Ti(e){let t=[],r=[],n=new Map;for(let o of e){let i=n.get(o);if(i===void 0){let s=t.length;t.push(o),n.set(o,s),r.push(s);continue}r.push(i)}return{uniqueInputs:t,originalToUniqueIndex:r}}function vi(e){let t=e.map((n,o)=>({embedding:n.embedding,index:n.index,position:o}));if(t.some(n=>n.index!==void 0)){for(let n of t)if(!Number.isInteger(n.index))throw new TypeError(`OpenAI embedding response entry at position ${n.position} is missing a valid integer index`);return[...t].sort((n,o)=>{let i=n.index-o.index;return i!==0?i:n.position-o.position})}return t}function Ct(e){let t=Ei(e),r=Si(e),n=[t,r].filter(a=>a!==null),o=w(e.search?.provider),i=o?o.toLowerCase():null;return{active:(i?n.find(a=>a.name===i):void 0)??n[0]??null,available:n}}function Xr(e){let t=de(e.base_url);return e.name==="openai"?{provider:"openai",endpoint:bi(t),model:e.model}:{provider:"ollama",endpoint:`${t}/api/embed`,model:e.model}}function Ii(e,t){let r=Jr(t);return e.name==="openai"?{target:Xr(e),method:"POST",headers:{"content-type":"application/json",...e.api_key?{authorization:`Bearer ${e.api_key}`}:{}},body:{model:e.model,input:r.length===1?r[0]:r}}:{target:Xr(e),method:"POST",headers:{"content-type":"application/json"},body:{model:e.model,input:r}}}function Ai(e,t){if(e.name==="openai"){let o=t.data;if(!Array.isArray(o)||o.length===0)throw new Error("OpenAI embedding response must include a non-empty data array");return vi(o).map((s,a)=>{let c=s.embedding;if(!Z(c))throw new Error(`OpenAI embedding response entry at index ${a} is missing a numeric embedding vector`);return[...c]})}let r=t.embedding;if(Z(r))return[[...r]];let n=t.embeddings;if(Array.isArray(n)&&n.length>0)return n.map((o,i)=>{if(!Z(o))throw new Error(`Ollama embedding response entry at index ${i} is missing a numeric embedding vector`);return[...o]});throw new Error("Ollama embedding response must include embedding or embeddings vectors")}async function Zr(e,t,r={}){let n=B(r.timeout_ms,"Embedding request"),o=G(r.fetcher,"Embedding request"),i=Jr(t),s=Ti(i),a=Ii(e,s.uniqueInputs),c=await Ne({endpoint:a.target.endpoint,method:a.method,headers:a.headers,body:a.body,timeoutMs:n,fetcher:o,requestLabel:"Embedding request",responseLabel:"Embedding response"}),d=Ai(e,c);if(d.length!==s.uniqueInputs.length)throw new Error(`Embedding response cardinality mismatch: expected ${s.uniqueInputs.length} vector(s), received ${d.length}`);return s.originalToUniqueIndex.map(l=>[...d[l]])}(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]="16c567d7-0065-5401-a768-0913cec6d5f4")}catch{}})();var Fe=["title","description","tags","status","type","priority","assignee","parent","goal","value","why_now","risk","confidence","estimated_minutes","acceptance_criteria","resolution","expected_result","actual_result","body","comments","notes","learnings","reminders","events","dependencies","plan"];function Rt(e){let t=e?.search?.corpus_fields;if(!Array.isArray(t))return[...Fe];let r=new Set(Fe),n=Array.from(new Set(t.filter(o=>typeof o=="string").map(o=>o.trim()).filter(o=>o.length>0&&r.has(o))));return n.length>0?n:[...Fe]}var Ci=8e3,Ri=3200,Y="...[semantic corpus truncated]",ki="search_embedding_corpus_max_characters_invalid:using_provider_default";function O(e){return e.map(t=>t==null?"":String(t).trim()).filter(t=>t.length>0).join(" ")}function xi(e){return(e.reminders??[]).map(t=>O([t.at,t.text]))}function Li(e){return(e.events??[]).map(t=>O([t.start_at,t.end_at,t.title,t.description,t.location,t.all_day===!0?"all day":void 0,t.timezone,t.recurrence?.freq,t.recurrence?.interval,t.recurrence?.count,t.recurrence?.until,t.recurrence?.by_weekday?.join(" "),t.recurrence?.by_month_day?.join(" "),t.recurrence?.exdates?.join(" ")]))}function Mi(e,t){e.push(t.title,t.body,t.status,t.owner,t.evidence,t.blocked_reason,t.superseded_by);for(let r of t.linked_items??[])e.push(`${r.kind} ${r.id}`,r.note);for(let r of t.files??[])e.push(r.path,r.note);for(let r of t.tests??[])e.push(r.command,r.path,r.note);for(let r of t.docs??[])e.push(r.path,r.note)}function Di(e,t){for(let r of t.plan_decisions??[])e.push(r.decision,r.rationale,r.evidence);for(let r of t.plan_discoveries??[])e.push(r.text);for(let r of t.plan_validation??[])e.push(r.text,r.command,r.expected)}function Sl(e){let t=[];t.push(e.plan_mode,e.plan_scope,e.plan_harness,e.plan_resume_context);for(let r of e.plan_steps??[])Mi(t,r);return Di(t,e),t.filter(r=>typeof r=="string"&&r.length>0).join(" ")}function Oi(e){let t=(e.plan_steps??[]).map(s=>O([s.order,s.id,s.title,s.body,s.status,s.owner,s.evidence,s.blocked_reason,s.superseded_by,(s.linked_items??[]).map(a=>O([a.kind,a.id,a.note])).join(" "),(s.files??[]).map(a=>O([a.path,a.note])).join(" "),(s.tests??[]).map(a=>O([a.command,a.path,a.note])).join(" "),(s.docs??[]).map(a=>O([a.path,a.note])).join(" ")])),r=(e.plan_decisions??[]).map(s=>O([s.decision,s.rationale,s.evidence,s.step_id])),n=(e.plan_discoveries??[]).map(s=>O([s.text,s.step_id])),o=(e.plan_validation??[]).map(s=>O([s.text,s.command,s.expected]));if([e.plan_mode,e.plan_scope,e.plan_harness,e.plan_resume_context,...t,...r,...n,...o].some(s=>s!==void 0))return{mode:e.plan_mode,scope:e.plan_scope,harness:e.plan_harness,resume_context:e.plan_resume_context,steps:t,decisions:r,discoveries:n,validation:o}}function D(e){return typeof e=="string"&&e.trim().length>0}var Ni={title:e=>e.metadata.title,description:e=>e.metadata.description,tags:e=>e.metadata.tags,status:e=>e.metadata.status,type:e=>e.metadata.type,priority:e=>typeof e.metadata.priority=="number"?e.metadata.priority:void 0,assignee:e=>D(e.metadata.assignee)?e.metadata.assignee:void 0,parent:e=>D(e.metadata.parent)?e.metadata.parent:void 0,goal:e=>D(e.metadata.goal)?e.metadata.goal:void 0,value:e=>D(e.metadata.value)?e.metadata.value:void 0,why_now:e=>D(e.metadata.why_now)?e.metadata.why_now:void 0,risk:e=>D(e.metadata.risk)?e.metadata.risk:void 0,confidence:e=>e.metadata.confidence!==void 0&&e.metadata.confidence!==null?e.metadata.confidence:void 0,estimated_minutes:e=>typeof e.metadata.estimated_minutes=="number"?e.metadata.estimated_minutes:void 0,acceptance_criteria:e=>D(e.metadata.acceptance_criteria)?e.metadata.acceptance_criteria:void 0,resolution:e=>D(e.metadata.resolution)?e.metadata.resolution:void 0,expected_result:e=>D(e.metadata.expected_result)?e.metadata.expected_result:void 0,actual_result:e=>D(e.metadata.actual_result)?e.metadata.actual_result:void 0,body:e=>e.body,comments:e=>(e.metadata.comments??[]).map(t=>t.text),notes:e=>(e.metadata.notes??[]).map(t=>t.text),learnings:e=>(e.metadata.learnings??[]).map(t=>t.text),reminders:e=>xi(e.metadata),events:e=>Li(e.metadata),dependencies:e=>(e.metadata.dependencies??[]).map(t=>({id:t.id,kind:t.kind})),plan:e=>Oi(e.metadata)};function en(e,t={}){let r=t.fields??Fe,n={};for(let o of r){let i=Ni[o];if(!i)continue;let s=i(e);s!==void 0&&(n[o]=s)}return n}function Fi(e){return e?.trim().toLowerCase()==="ollama"?Ri:Ci}function ie(e,t){let r=Fi(e),n=Er(t);return n!==null?{maxCharacters:n,warning:null}:{maxCharacters:r,warning:t==null?null:ki}}function kt(e,t={}){let r=JSON.stringify(en(e,{fields:t.fields})),n=ie(t.providerName,t.maxCharacters).maxCharacters;if(r.length<=n)return r;if(n<=Y.length)return Y.slice(0,n);let o=Math.max(0,n-Y.length);return`${r.slice(0,o)}${Y}`}(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]="dff1d04a-bad4-51d7-ab46-41e49387a44d")}catch{}})();function Pi(e,t,r){let n=e.search.embedding_batch_size,o=e.search.embedding_timeout_ms,i=e.search.scanner_max_batch_retries,s=Number.isFinite(n)&&n>0?Math.max(1,Math.floor(n)):1,a=Number.isFinite(o)&&o>0?Math.max(1,Math.floor(o)):3e4,c=Number.isFinite(i)&&i>=0?Math.floor(i):0;return{batchSize:s,timeoutMs:a,maxRetries:c,maxRequestBytes:r,maxInputCharacters:t}}function $i(e,t,r,n){let o=[],i=[],s=Buffer.byteLength(JSON.stringify({model:e.model,input:[]})),a=s;for(let c of t){let d=Buffer.byteLength(JSON.stringify(c.trim()));if(s+d>n)throw new RangeError(`Embedding input exceeds request byte ceiling ${n}; lower search.embedding_corpus_max_characters or raise maxRequestBytes`);let l=i.length>0?1:0;(i.length>=r||a+l+d>n)&&(o.push(i),i=[],a=s),a+=d+(i.length>0?1:0),i.push(c)}return o.push(i),o}function zi(e,t){if(!Number.isFinite(t)||t<=0||e.length<=t)return e;let r=Math.max(0,t-Y.length);return`${e.slice(0,r)}${Y}`.slice(0,t)}function tn(e){let t=E(e).toLowerCase();return t.includes("timed out")||t.includes("timeout")}function Ui(e,t,r,n,o,i){let s=`Embedding batch ${t} failed after ${o} attempt(s): ${E(i)}`,a=`provider=${e.name} model=${e.model} batch_size=${r} timeout_ms=${n}`;return tn(i)?`${s} (${a}; guidance=check provider availability or lower search.embedding_batch_size, raise search.embedding_timeout_ms, or run keyword search while semantic indexing catches up)`:`${s} (${a})`}function Vi(e){return e instanceof ye?e.status===413?"payload_too_large":null:tn(e)?"timeout":null}async function xt(e,t,r,n,o,i,s){let a=null;for(let c=0;c<=o;c+=1)try{s.requests+=1;let d=await Zr(e,t,{timeout_ms:n});return c>0&&i.push(`search_embedding_batch_retry_succeeded:batch=${r}:attempt=${c+1}:size=${t.length}`),s.successful_batches+=1,s.batch_size_histogram[t.length]=(s.batch_size_histogram[t.length]??0)+1,d}catch(d){a=d;let l=Vi(d);if(l!==null&&t.length>1){s.split_batches+=1;let u=Math.ceil(t.length/2),p=t.slice(0,u),_=t.slice(u);return i.push(`search_embedding_batch_split_after_${l}:batch=${r}:size=${t.length}:parts=${p.length}|${_.length}`),[...await xt(e,p,`${r}.1`,n,o,i,s),...await xt(e,_,`${r}.2`,n,o,i,s)]}if(c<o){s.retries+=1;let u=Math.min(1e3*2**c,8e3);await new Promise(p=>setTimeout(p,u))}}throw new Error(Ui(e,r,t.length,n,o+1,a))}async function Lt(e,t,r,n={}){if(r.length===0)return{vectors:[],warnings:[]};let o=performance.now(),i=n.maxRequestBytes??262144;if(!Number.isSafeInteger(i)||i<=0)throw new RangeError("maxRequestBytes must be a positive safe integer");let s={provider:e.name,model:e.model,max_request_bytes:i,limit_source:n.maxRequestBytes===void 0?"default":"caller",planned_batches:0,requests:0,successful_batches:0,split_batches:0,retries:0,batch_size_histogram:{},elapsed_ms:0,inputs_per_second:0},a=[],c=ie(e.name,t.search.embedding_corpus_max_characters);c.warning&&a.push(c.warning);let d=Pi(t,c.maxCharacters,i),l=0,u=r.map(y=>{if(y.trim().length===0)throw new TypeError("Embedding inputs must be non-empty strings");let h=zi(y,d.maxInputCharacters);return h.length<y.length&&(l+=1),h});l>0&&a.push(`search_embedding_input_truncated:count=${l}:max_characters=${d.maxInputCharacters}`);let p=$i(e,u,d.batchSize,d.maxRequestBytes);s.planned_batches=p.length;let _=[],g=0;for(let y=0;y<p.length;y+=1){let h=p[y];n.onProgress?.({batch_index:y+1,batch_total:p.length,batch_size:h.length,completed_inputs:g,total_inputs:u.length,phase:"start"}),_.push(...await xt(e,h,String(y+1),d.timeoutMs,d.maxRetries,a,s)),g+=h.length,n.onProgress?.({batch_index:y+1,batch_total:p.length,batch_size:h.length,completed_inputs:g,total_inputs:u.length,phase:"complete"})}return s.elapsed_ms=Math.max(1,performance.now()-o),s.inputs_per_second=r.length*1e3/s.elapsed_ms,{vectors:_,warnings:a,receipt: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]="d7a68072-168d-509a-95ec-145635d71d46")}catch{}})();var rn=[{name:"private-key",mutationRule:"private_key",regex:/-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----/g},{name:"github-token",mutationRule:"github_token",regex:/\b(?:gh[opsru]_[A-Za-z0-9]{20,}|github_pat_[A-Za-z0-9_]{20,})\b/g},{name:"npm-token",mutationRule:"npm_token",regex:/\bnpm_[A-Za-z0-9]{20,}\b/g},{name:"aws-access-key",mutationRule:"aws_access_key",regex:/\b(?:AKIA|ASIA)[0-9A-Z]{16}\b/g},{name:"google-api-key",mutationRule:"google_api_key",regex:/\bAIza[0-9A-Za-z_-]{35}\b/g},{name:"slack-token",mutationRule:"slack_token",regex:/\bxox[baprs]-[A-Za-z0-9-]{10,}\b/g},{name:"anthropic-api-key",mutationRule:"anthropic_api_key",regex:/\bsk-ant-[A-Za-z0-9_-]{20,}\b/g},{name:"openai-api-key",mutationRule:"openai_api_key",regex:/\bsk-(?!ant-)[A-Za-z0-9_-]{20,}\b/g},{name:"gitlab-token",mutationRule:"gitlab_token",regex:/\bglpat-[A-Za-z0-9_.-]{20,}\b/g},{name:"jwt-like-token",mutationRule:"jwt_like_token",regex:/\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\b/g},{name:"npm-auth-token-assignment",mutationRule:"npm_auth_token_assignment",regex:/_authToken\s*=\s*\S+/g},{name:"sentry-user-token",mutationRule:"sentry_user_token",regex:/\bsntryu_[A-Za-z0-9]{20,}\b/g},{name:"sentry-org-token",mutationRule:"sentry_org_token",regex:/\bsntrys_[A-Za-z0-9_-]{20,}\b/g},{name:"private-ip",mutationRule:"private_ip",regex:/\b(?:10\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d))\b/g},{name:"private-ssh-target",mutationRule:"private_ssh_target",regex:/\b(?:ssh|scp|rsync)\s+[A-Za-z0-9._-]+@(?:10\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d))\b/g},{name:"sshpass-inline-password",mutationRule:"sshpass_inline_password",regex:/\bsshpass\s+-p\s+["'][^"']{6,}["']/g},{name:"password-assignment",mutationRule:"password_assignment",regex:/\b(?:password|passphrase)\s*[:=]\s*(?:(?!<|\$\{|\$\()[A-Za-z0-9!@#$%^&*._+\-=]{8,}|"(?!<|\$\{|\$\()[^"]{8,}"|'(?!<|\$\{|\$\()[^']{8,}')/gi},{name:"absolute-home-path",mutationRule:"absolute_home_path",regex:/(?:^|[\s"'`(=])\/home\/[A-Za-z0-9._-]+\/[^\s"'`),;]+/g,excludeFiles:/^(?:tests\/|examples\/)/},{name:"user-at-private-host",mutationRule:"user_at_private_host",regex:/\b[A-Za-z0-9._-]+@(?:10\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d))\b/g,excludeFiles:/^(?:tests\/|examples\/)/},{name:"high-entropy-assignment",mutationRule:"high_entropy_assignment",regex:/\b(?:token|secret|password|passwd|api[_-]?key)\s*[:=]\s*["']?([A-Za-z0-9+/=_-]{24,})/gi,mutationOnlyReason:"Generic assignments in source code are not credentials; preserve the existing mutation heuristic without treating source identifiers as secrets.",minimumEntropy:3.5}];function nn(e,t){if(e.minimumEntropy===void 0)return!0;let r=t[1],n=new Map;for(let i of r)n.set(i,(n.get(i)??0)+1);let o=0;for(let i of n.values()){let s=i/r.length;o-=s*Math.log2(s)}return o>=e.minimumEntropy}(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]="eed441f0-e2b5-51e9-b9bf-0f4882a9eeea")}catch{}})();var ji=[{action:"append",history_scope:"item"},{action:"claim",history_scope:"item"},{action:"close",history_scope:"item"},{action:"close-many",history_scope:"item"},{action:"close-task",history_scope:"item"},{action:"comments",history_scope:"conditional"},{action:"config",history_scope:"conditional"},{action:"copy",history_scope:"item"},{action:"create",history_scope:"item"},{action:"delete",history_scope:"item"},{action:"deps",history_scope:"conditional"},{action:"discover",history_scope:"item"},{action:"docs",history_scope:"conditional"},{action:"files",history_scope:"conditional"},{action:"focus",history_scope:"conditional"},{action:"gc",history_scope:"conditional"},{action:"history-compact",history_scope:"history"},{action:"history-author-acknowledge",history_scope:"workspace"},{action:"history-redact",history_scope:"history"},{action:"history-repair",history_scope:"history"},{action:"init",history_scope:"workspace"},{action:"install",history_scope:"conditional"},{action:"learnings",history_scope:"conditional"},{action:"notes",history_scope:"conditional"},{action:"package",history_scope:"conditional"},{action:"pause-task",history_scope:"item"},{action:"plan",history_scope:"conditional"},{action:"profile",history_scope:"conditional"},{action:"release",history_scope:"item"},{action:"restore",history_scope:"item"},{action:"schema",history_scope:"conditional"},{action:"start-task",history_scope:"item"},{action:"templates",history_scope:"conditional"},{action:"test",history_scope:"conditional"},{action:"test-all",history_scope:"conditional"},{action:"update",history_scope:"item"},{action:"update-many",history_scope:"item"},{action:"upgrade",history_scope:"conditional"}],Dt=new Map(ji.map(e=>[e.action,e]));function Mt(e,t="$",r=new WeakSet){return typeof e=="string"?[{path:t,value:e}]:typeof e!="object"||e===null?[]:r.has(e)?[]:(r.add(e),Array.isArray(e)?e.flatMap((n,o)=>Mt(n,`${t}[${o}]`,r)):Object.entries(e).flatMap(([n,o])=>Mt(o,`${t}.${n}`,r)))}function on(e){let t=[];for(let r of Mt(e))for(let n of rn){n.regex.lastIndex=0;for(let o of r.value.matchAll(n.regex))if(nn(n,o)){t.push({rule:n.mutationRule,path:r.path});break}}return t.filter((r,n,o)=>o.findIndex(i=>i.rule===r.rule&&i.path===r.path)===n)}function Ki(e){let t=e.author.trim()||"unknown";if(e.settings.require_attributed_author&&t.toLowerCase()==="unknown")throw new m("Mutation author is required by workspace policy.",f.USAGE,{code:"mutation_author_required",required:"Pass --author <id>, set PM_AUTHOR, or configure author_default.",nextSteps:["Retry with --author <stable-agent-id>.","Set PM_AUTHOR for this agent session."]});if(e.settings.secret_guard==="off")return{author:t,findings:[],warnings:[],override_applied:!1};let r;try{r=on(e.payload)}catch{return{author:t,findings:[],warnings:["secret_guard_scan_failed_open"],override_applied:!1}}if(r.length===0)return{author:t,findings:r,warnings:[],override_applied:!1};let n=[...new Set(r.map(o=>o.rule))].sort().join(",");if(e.settings.secret_guard==="block"&&e.force!==!0)throw new m(`Mutation blocked by secret guard (${n}). No detected value was logged.`,f.CONFLICT,{code:"mutation_secret_guard_blocked",required:"Remove the credential-shaped content or retry with --force after explicit review.",nextSteps:["Replace the value with a secret-manager reference.","Use pm history-redact if equivalent content already entered history."],recovery:{recovery_mode:"compact",attempted_command:"pm <mutation> [REDACTED]",normalized_args:["[REDACTED]"],suggested_retry:"Remove credential-shaped content, then retry the mutation."}});return{author:t,findings:r,warnings:[`secret_guard_detected:${r.length}:rules=${n}`,...e.settings.secret_guard==="block"&&e.force===!0?["secret_guard_force_override"]:[]],override_applied:e.settings.secret_guard==="block"&&e.force===!0}}function qi(e){return Dt.has(e.trim().toLowerCase())}function Hi(){return[...Dt.keys()].sort((e,t)=>e.localeCompare(t))}function Dl(e){return Dt.get(e.trim().toLowerCase())}(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]="c18e4dfc-d3e3-5185-9470-9d46b4dca893")}catch{}})();function Bi(e){return e.trim().toLowerCase().replace(/\s+/g," ")}function Nl(e){return Bi(e).split(/[^a-z0-9]+/).filter(t=>t.length>0)}function ge(e,t){if(e.length===0&&t.length===0)return 1;if(e.length===0||t.length===0)return 0;let r=new Set(e),n=new Set(t),o=0;for(let s of r)n.has(s)&&(o+=1);let i=new Set([...r,...n]).size;return o/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]="54784ad1-36bd-5a10-aa00-ad0b09e935a7")}catch{}})();var Gi=/\b[a-z][a-z0-9]*-\d+(?:-[a-z0-9]+)*\b/giu;function Pe(e){return e.trim().toLowerCase().replace(/\s+/g," ")}function we(e){return[...new Set(Pe(e).match(/[\p{L}\p{N}]+/gu)??[])]}function he(e){let t=Pe(e);return{normalized:t,tokens:we(t),issueCodes:[...new Set(t.match(Gi)?.map(r=>r.toLowerCase())??[])]}}function $e(e,t){return ze(he(e),he(t))}function ze(e,t){if(e.normalized===t.normalized)return{score:1,reason:"exact_title"};let r=new Set(e.issueCodes);return t.issueCodes.some(n=>r.has(n))?{score:.99,reason:"issue_code"}:{score:ge(e.tokens,t.tokens),reason:"title_token_jaccard"}}import Yi 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]="cdae67c6-8316-5e97-84ca-0be4460ffd57")}catch{}})();function Ue(e){return(e??"in_progress").trim().toLowerCase().replaceAll("-","_")}function Wi(e,t){return[e.updated_at,t].map(n=>({value:n,time:Date.parse(n??"")})).filter(n=>typeof n.value=="string"&&Number.isFinite(n.time)).sort((n,o)=>o.time-n.time)[0]?.value??e.updated_at}function sn(e,t){let r=Math.max(1,Math.trunc(t.threshold_hours)),n=(t.now??new Date).getTime(),o=Ue(t.in_progress_status),i=[];for(let s of e){if(Ue(String(s.status))!==o||(s.assignee?.trim().length??0)>0)continue;let a=Wi(s,t.last_history_activity?.(s)),c=Date.parse(a);if(!Number.isFinite(c))continue;let d=Math.max(0,Math.floor((n-c)/36e5));d>=r&&i.push({id:s.id,last_activity_at:a,age_hours:d})}return i.sort((s,a)=>a.age_hours-s.age_hours||s.id.localeCompare(a.id)),{threshold_hours:r,count:i.length,items:i,remediation:"Claim active work with `pm claim <id>` or return abandoned work to open with `pm update <id> --status open`."}}async function Xi(e,t,r){let n=new Map;return await Promise.all(t.filter(o=>Ue(String(o.status))===Ue(r.in_progress_status)&&(o.assignee?.trim().length??0)===0).map(async o=>{let i;try{i=await me(Yi.join(e,"history",`${o.id}.jsonl`),o.id)}catch{return}let s=i.map(a=>a.ts).filter(a=>Number.isFinite(Date.parse(a))).sort((a,c)=>Date.parse(c)-Date.parse(a))[0];s&&n.set(o.id,s)})),sn(t,{...r,last_history_activity:o=>n.get(o.id)})}(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]="09f9d531-8ebf-51bf-9ee6-5a3351d96c7a")}catch{}})();var Qi=new Set(["rename-type","rename-field","remap-status",...Ir]);function Ji(e,t){if(t&&!Qi.has(e))throw new m(`schema ${e} does not support --dry-run. Preview is supported for rename-type, rename-field, remap-status and workflow-policy actions. Remove --dry-run only when you intend to apply changes.`,f.USAGE,{code:"invalid_argument_value",examples:["pm schema rename-type Spike --to Experiment --dry-run"]})}import{readFile as Zi}from"node:fs/promises";import an 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]="93b04081-a71a-5987-8fb6-09a8d045c1da")}catch{}})();function es(e){let t=e.trim();if(!t)throw new m("--rollback requires a non-empty checkpoint ID",f.USAGE);if(!/^[a-zA-Z0-9._-]+$/.test(t))throw new m("--rollback checkpoint ID must match [a-zA-Z0-9._-]+",f.USAGE);return t}function ts(e,t){let r=t.replace(/[-:.TZ]/g,"").slice(0,14),n=Math.random().toString(36).slice(2,8);return`${e}-${r}-${n}`}function rs(e,t){return an.join(e,"checkpoints",t)}function cn(e,t,r){return an.join(rs(e,t),`${r}.json`)}async function ns(e,t,r,n){let o=cn(e,t,r),i=`${JSON.stringify(n,null,2)}
|
|
1
|
+
import{a as pt,b as _t,d as yt}from"./chunk-6IVQPNYN.js";import{t as Tr}from"./chunk-5KJXX2TZ.js";import{$ as me,$a as zr,Ab as oe,Ba as Pr,Bb as qr,Ca as St,G as Mr,I as Dr,J as Or,Nb as Hr,Pa as $r,Ra as Me,S as fe,Sa as v,Ta as De,Tb as Br,U as H,Ub as Gr,X as gt,Xb as Yr,Y as ht,Ya as Oe,Za as re,ab as Ur,cb as Vr,db as jr,lb as Tt,na as wt,nb as vt,oa as Nr,pa as bt,pb as Kr,rb as pe,ua as Fr,vb as ne,wb as _e,xb as It,ya as Et,zb as At}from"./chunk-IWLMQLBO.js";import{f as vr,n as ee,p as ft}from"./chunk-Y5Z3XNGY.js";import{$ as f,$a as dt,Ac as Ar,Ca as w,Da as T,Ea as de,Fa as Z,Ga as E,Ia as Er,Jc as P,Mc as ke,Pb as Ir,Pc as Cr,Sa as A,Ta as le,Td as M,V as ct,Xd as te,Ya as R,Yd as Lr,Zd as xe,_a as Re,aa as m,ab as lt,ae as Le,bb as Sr,bd as Rr,cb as ue,cd as kr,dd as mt,hd as xr,i as at,rb as ut,sa as V,ua as J,va as S,wa as I,ya as Ce}from"./chunk-BRLXKRI2.js";(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]="df9abedd-6e84-5712-8e5e-4e510ec3ed60")}catch{}})();function Wr(e,t="--limit"){if(e===void 0)return;let r=Number(e);if(!Number.isFinite(r)||r<0)throw new m(`${t} must be a non-negative number`,f.USAGE);return Math.floor(r)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="01b280e5-31b5-532d-b569-67aab828358a")}catch{}})();var hi=3e4,ye=class extends Error{status;constructor(t,r){super(t),this.name="SearchHttpError",this.status=r}};function B(e,t,r=hi){let n=e??r;if(!Number.isFinite(n)||n<=0)throw new Error(`${t} timeout must be a positive finite number`);return Math.floor(n)}function G(e,t){if(e)return e;if(typeof globalThis.fetch=="function")return globalThis.fetch.bind(globalThis);throw new Error(`${t} execution requires a fetch implementation`)}async function wi(e){try{return(await e.text()).replaceAll(/\s+/g," ").trim()}catch(t){return`(failed to read response body: ${E(t)})`}}async function Ne(e){let t=new AbortController,r=setTimeout(()=>{t.abort()},e.timeoutMs);try{let n;try{n=await e.fetcher(e.endpoint,{method:e.method,headers:e.headers,body:JSON.stringify(e.body),signal:t.signal})}catch(o){throw o instanceof Error&&o.name==="AbortError"?new Error(`${e.requestLabel} timed out after ${e.timeoutMs}ms`):new Error(`${e.requestLabel} execution failed: ${E(o)}`)}if(!n.ok){let o=await wi(n),i=o.length>0?`: ${o}`:"";throw new ye(`${e.requestLabel} failed with status ${n.status} ${n.statusText}${i}`,n.status)}try{return await n.json()}catch(o){throw new Error(`${e.responseLabel} JSON parse failed: ${E(o)}`)}}finally{clearTimeout(r)}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2c36f008-53c4-5ee7-bc87-6bfb7aeb8f42")}catch{}})();function wl(e,t){let r=w(e);if(!r)return"unconfigured";let n=w(t);return n&&n.toLowerCase()===r.toLowerCase()?"configured":"auto-detected"}function bi(e){let t=de(e),r=t.toLowerCase();return r.endsWith("/embeddings")?t:r.endsWith("/v1")?`${t}/embeddings`:`${t}/v1/embeddings`}function Qr(e){let t=e.search?.embedding_model;return w(t)||null}function Ei(e){let t=w(e.providers?.openai?.base_url),r=w(e.providers?.openai?.model);if(!t||!r)return null;let n=Qr(e),o=w(e.providers?.openai?.api_key);return{name:"openai",base_url:t,model:n??r,...o?{api_key:o}:{}}}function Si(e){let t=w(e.providers?.ollama?.base_url),r=w(e.providers?.ollama?.model);if(!t||!r)return null;let n=Qr(e);return{name:"ollama",base_url:t,model:n??r}}function Jr(e){let t=(Array.isArray(e)?e:[e]).map(r=>r.trim()).filter(r=>r.length>0);if(t.length===0)throw new Error("Embedding input must include at least one non-empty string");return t}function Ti(e){let t=[],r=[],n=new Map;for(let o of e){let i=n.get(o);if(i===void 0){let s=t.length;t.push(o),n.set(o,s),r.push(s);continue}r.push(i)}return{uniqueInputs:t,originalToUniqueIndex:r}}function vi(e){let t=e.map((n,o)=>({embedding:n.embedding,index:n.index,position:o}));if(t.some(n=>n.index!==void 0)){for(let n of t)if(!Number.isInteger(n.index))throw new TypeError(`OpenAI embedding response entry at position ${n.position} is missing a valid integer index`);return[...t].sort((n,o)=>{let i=n.index-o.index;return i!==0?i:n.position-o.position})}return t}function Ct(e){let t=Ei(e),r=Si(e),n=[t,r].filter(a=>a!==null),o=w(e.search?.provider),i=o?o.toLowerCase():null;return{active:(i?n.find(a=>a.name===i):void 0)??n[0]??null,available:n}}function Xr(e){let t=de(e.base_url);return e.name==="openai"?{provider:"openai",endpoint:bi(t),model:e.model}:{provider:"ollama",endpoint:`${t}/api/embed`,model:e.model}}function Ii(e,t){let r=Jr(t);return e.name==="openai"?{target:Xr(e),method:"POST",headers:{"content-type":"application/json",...e.api_key?{authorization:`Bearer ${e.api_key}`}:{}},body:{model:e.model,input:r.length===1?r[0]:r}}:{target:Xr(e),method:"POST",headers:{"content-type":"application/json"},body:{model:e.model,input:r}}}function Ai(e,t){if(e.name==="openai"){let o=t.data;if(!Array.isArray(o)||o.length===0)throw new Error("OpenAI embedding response must include a non-empty data array");return vi(o).map((s,a)=>{let c=s.embedding;if(!Z(c))throw new Error(`OpenAI embedding response entry at index ${a} is missing a numeric embedding vector`);return[...c]})}let r=t.embedding;if(Z(r))return[[...r]];let n=t.embeddings;if(Array.isArray(n)&&n.length>0)return n.map((o,i)=>{if(!Z(o))throw new Error(`Ollama embedding response entry at index ${i} is missing a numeric embedding vector`);return[...o]});throw new Error("Ollama embedding response must include embedding or embeddings vectors")}async function Zr(e,t,r={}){let n=B(r.timeout_ms,"Embedding request"),o=G(r.fetcher,"Embedding request"),i=Jr(t),s=Ti(i),a=Ii(e,s.uniqueInputs),c=await Ne({endpoint:a.target.endpoint,method:a.method,headers:a.headers,body:a.body,timeoutMs:n,fetcher:o,requestLabel:"Embedding request",responseLabel:"Embedding response"}),d=Ai(e,c);if(d.length!==s.uniqueInputs.length)throw new Error(`Embedding response cardinality mismatch: expected ${s.uniqueInputs.length} vector(s), received ${d.length}`);return s.originalToUniqueIndex.map(l=>[...d[l]])}(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]="16c567d7-0065-5401-a768-0913cec6d5f4")}catch{}})();var Fe=["title","description","tags","status","type","priority","assignee","parent","goal","value","why_now","risk","confidence","estimated_minutes","acceptance_criteria","resolution","expected_result","actual_result","body","comments","notes","learnings","reminders","events","dependencies","plan"];function Rt(e){let t=e?.search?.corpus_fields;if(!Array.isArray(t))return[...Fe];let r=new Set(Fe),n=Array.from(new Set(t.filter(o=>typeof o=="string").map(o=>o.trim()).filter(o=>o.length>0&&r.has(o))));return n.length>0?n:[...Fe]}var Ci=8e3,Ri=3200,Y="...[semantic corpus truncated]",ki="search_embedding_corpus_max_characters_invalid:using_provider_default";function O(e){return e.map(t=>t==null?"":String(t).trim()).filter(t=>t.length>0).join(" ")}function xi(e){return(e.reminders??[]).map(t=>O([t.at,t.text]))}function Li(e){return(e.events??[]).map(t=>O([t.start_at,t.end_at,t.title,t.description,t.location,t.all_day===!0?"all day":void 0,t.timezone,t.recurrence?.freq,t.recurrence?.interval,t.recurrence?.count,t.recurrence?.until,t.recurrence?.by_weekday?.join(" "),t.recurrence?.by_month_day?.join(" "),t.recurrence?.exdates?.join(" ")]))}function Mi(e,t){e.push(t.title,t.body,t.status,t.owner,t.evidence,t.blocked_reason,t.superseded_by);for(let r of t.linked_items??[])e.push(`${r.kind} ${r.id}`,r.note);for(let r of t.files??[])e.push(r.path,r.note);for(let r of t.tests??[])e.push(r.command,r.path,r.note);for(let r of t.docs??[])e.push(r.path,r.note)}function Di(e,t){for(let r of t.plan_decisions??[])e.push(r.decision,r.rationale,r.evidence);for(let r of t.plan_discoveries??[])e.push(r.text);for(let r of t.plan_validation??[])e.push(r.text,r.command,r.expected)}function Sl(e){let t=[];t.push(e.plan_mode,e.plan_scope,e.plan_harness,e.plan_resume_context);for(let r of e.plan_steps??[])Mi(t,r);return Di(t,e),t.filter(r=>typeof r=="string"&&r.length>0).join(" ")}function Oi(e){let t=(e.plan_steps??[]).map(s=>O([s.order,s.id,s.title,s.body,s.status,s.owner,s.evidence,s.blocked_reason,s.superseded_by,(s.linked_items??[]).map(a=>O([a.kind,a.id,a.note])).join(" "),(s.files??[]).map(a=>O([a.path,a.note])).join(" "),(s.tests??[]).map(a=>O([a.command,a.path,a.note])).join(" "),(s.docs??[]).map(a=>O([a.path,a.note])).join(" ")])),r=(e.plan_decisions??[]).map(s=>O([s.decision,s.rationale,s.evidence,s.step_id])),n=(e.plan_discoveries??[]).map(s=>O([s.text,s.step_id])),o=(e.plan_validation??[]).map(s=>O([s.text,s.command,s.expected]));if([e.plan_mode,e.plan_scope,e.plan_harness,e.plan_resume_context,...t,...r,...n,...o].some(s=>s!==void 0))return{mode:e.plan_mode,scope:e.plan_scope,harness:e.plan_harness,resume_context:e.plan_resume_context,steps:t,decisions:r,discoveries:n,validation:o}}function D(e){return typeof e=="string"&&e.trim().length>0}var Ni={title:e=>e.metadata.title,description:e=>e.metadata.description,tags:e=>e.metadata.tags,status:e=>e.metadata.status,type:e=>e.metadata.type,priority:e=>typeof e.metadata.priority=="number"?e.metadata.priority:void 0,assignee:e=>D(e.metadata.assignee)?e.metadata.assignee:void 0,parent:e=>D(e.metadata.parent)?e.metadata.parent:void 0,goal:e=>D(e.metadata.goal)?e.metadata.goal:void 0,value:e=>D(e.metadata.value)?e.metadata.value:void 0,why_now:e=>D(e.metadata.why_now)?e.metadata.why_now:void 0,risk:e=>D(e.metadata.risk)?e.metadata.risk:void 0,confidence:e=>e.metadata.confidence!==void 0&&e.metadata.confidence!==null?e.metadata.confidence:void 0,estimated_minutes:e=>typeof e.metadata.estimated_minutes=="number"?e.metadata.estimated_minutes:void 0,acceptance_criteria:e=>D(e.metadata.acceptance_criteria)?e.metadata.acceptance_criteria:void 0,resolution:e=>D(e.metadata.resolution)?e.metadata.resolution:void 0,expected_result:e=>D(e.metadata.expected_result)?e.metadata.expected_result:void 0,actual_result:e=>D(e.metadata.actual_result)?e.metadata.actual_result:void 0,body:e=>e.body,comments:e=>(e.metadata.comments??[]).map(t=>t.text),notes:e=>(e.metadata.notes??[]).map(t=>t.text),learnings:e=>(e.metadata.learnings??[]).map(t=>t.text),reminders:e=>xi(e.metadata),events:e=>Li(e.metadata),dependencies:e=>(e.metadata.dependencies??[]).map(t=>({id:t.id,kind:t.kind})),plan:e=>Oi(e.metadata)};function en(e,t={}){let r=t.fields??Fe,n={};for(let o of r){let i=Ni[o];if(!i)continue;let s=i(e);s!==void 0&&(n[o]=s)}return n}function Fi(e){return e?.trim().toLowerCase()==="ollama"?Ri:Ci}function ie(e,t){let r=Fi(e),n=Er(t);return n!==null?{maxCharacters:n,warning:null}:{maxCharacters:r,warning:t==null?null:ki}}function kt(e,t={}){let r=JSON.stringify(en(e,{fields:t.fields})),n=ie(t.providerName,t.maxCharacters).maxCharacters;if(r.length<=n)return r;if(n<=Y.length)return Y.slice(0,n);let o=Math.max(0,n-Y.length);return`${r.slice(0,o)}${Y}`}(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]="dff1d04a-bad4-51d7-ab46-41e49387a44d")}catch{}})();function Pi(e,t,r){let n=e.search.embedding_batch_size,o=e.search.embedding_timeout_ms,i=e.search.scanner_max_batch_retries,s=Number.isFinite(n)&&n>0?Math.max(1,Math.floor(n)):1,a=Number.isFinite(o)&&o>0?Math.max(1,Math.floor(o)):3e4,c=Number.isFinite(i)&&i>=0?Math.floor(i):0;return{batchSize:s,timeoutMs:a,maxRetries:c,maxRequestBytes:r,maxInputCharacters:t}}function $i(e,t,r,n){let o=[],i=[],s=Buffer.byteLength(JSON.stringify({model:e.model,input:[]})),a=s;for(let c of t){let d=Buffer.byteLength(JSON.stringify(c.trim()));if(s+d>n)throw new RangeError(`Embedding input exceeds request byte ceiling ${n}; lower search.embedding_corpus_max_characters or raise maxRequestBytes`);let l=i.length>0?1:0;(i.length>=r||a+l+d>n)&&(o.push(i),i=[],a=s),a+=d+(i.length>0?1:0),i.push(c)}return o.push(i),o}function zi(e,t){if(!Number.isFinite(t)||t<=0||e.length<=t)return e;let r=Math.max(0,t-Y.length);return`${e.slice(0,r)}${Y}`.slice(0,t)}function tn(e){let t=E(e).toLowerCase();return t.includes("timed out")||t.includes("timeout")}function Ui(e,t,r,n,o,i){let s=`Embedding batch ${t} failed after ${o} attempt(s): ${E(i)}`,a=`provider=${e.name} model=${e.model} batch_size=${r} timeout_ms=${n}`;return tn(i)?`${s} (${a}; guidance=check provider availability or lower search.embedding_batch_size, raise search.embedding_timeout_ms, or run keyword search while semantic indexing catches up)`:`${s} (${a})`}function Vi(e){return e instanceof ye?e.status===413?"payload_too_large":null:tn(e)?"timeout":null}async function xt(e,t,r,n,o,i,s){let a=null;for(let c=0;c<=o;c+=1)try{s.requests+=1;let d=await Zr(e,t,{timeout_ms:n});return c>0&&i.push(`search_embedding_batch_retry_succeeded:batch=${r}:attempt=${c+1}:size=${t.length}`),s.successful_batches+=1,s.batch_size_histogram[t.length]=(s.batch_size_histogram[t.length]??0)+1,d}catch(d){a=d;let l=Vi(d);if(l!==null&&t.length>1){s.split_batches+=1;let u=Math.ceil(t.length/2),p=t.slice(0,u),_=t.slice(u);return i.push(`search_embedding_batch_split_after_${l}:batch=${r}:size=${t.length}:parts=${p.length}|${_.length}`),[...await xt(e,p,`${r}.1`,n,o,i,s),...await xt(e,_,`${r}.2`,n,o,i,s)]}if(c<o){s.retries+=1;let u=Math.min(1e3*2**c,8e3);await new Promise(p=>setTimeout(p,u))}}throw new Error(Ui(e,r,t.length,n,o+1,a))}async function Lt(e,t,r,n={}){if(r.length===0)return{vectors:[],warnings:[]};let o=performance.now(),i=n.maxRequestBytes??262144;if(!Number.isSafeInteger(i)||i<=0)throw new RangeError("maxRequestBytes must be a positive safe integer");let s={provider:e.name,model:e.model,max_request_bytes:i,limit_source:n.maxRequestBytes===void 0?"default":"caller",planned_batches:0,requests:0,successful_batches:0,split_batches:0,retries:0,batch_size_histogram:{},elapsed_ms:0,inputs_per_second:0},a=[],c=ie(e.name,t.search.embedding_corpus_max_characters);c.warning&&a.push(c.warning);let d=Pi(t,c.maxCharacters,i),l=0,u=r.map(y=>{if(y.trim().length===0)throw new TypeError("Embedding inputs must be non-empty strings");let h=zi(y,d.maxInputCharacters);return h.length<y.length&&(l+=1),h});l>0&&a.push(`search_embedding_input_truncated:count=${l}:max_characters=${d.maxInputCharacters}`);let p=$i(e,u,d.batchSize,d.maxRequestBytes);s.planned_batches=p.length;let _=[],g=0;for(let y=0;y<p.length;y+=1){let h=p[y];n.onProgress?.({batch_index:y+1,batch_total:p.length,batch_size:h.length,completed_inputs:g,total_inputs:u.length,phase:"start"}),_.push(...await xt(e,h,String(y+1),d.timeoutMs,d.maxRetries,a,s)),g+=h.length,n.onProgress?.({batch_index:y+1,batch_total:p.length,batch_size:h.length,completed_inputs:g,total_inputs:u.length,phase:"complete"})}return s.elapsed_ms=Math.max(1,performance.now()-o),s.inputs_per_second=r.length*1e3/s.elapsed_ms,{vectors:_,warnings:a,receipt: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]="d7a68072-168d-509a-95ec-145635d71d46")}catch{}})();var rn=[{name:"private-key",mutationRule:"private_key",regex:/-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----/g},{name:"github-token",mutationRule:"github_token",regex:/\b(?:gh[opsru]_[A-Za-z0-9]{20,}|github_pat_[A-Za-z0-9_]{20,})\b/g},{name:"npm-token",mutationRule:"npm_token",regex:/\bnpm_[A-Za-z0-9]{20,}\b/g},{name:"aws-access-key",mutationRule:"aws_access_key",regex:/\b(?:AKIA|ASIA)[0-9A-Z]{16}\b/g},{name:"google-api-key",mutationRule:"google_api_key",regex:/\bAIza[0-9A-Za-z_-]{35}\b/g},{name:"slack-token",mutationRule:"slack_token",regex:/\bxox[baprs]-[A-Za-z0-9-]{10,}\b/g},{name:"anthropic-api-key",mutationRule:"anthropic_api_key",regex:/\bsk-ant-[A-Za-z0-9_-]{20,}\b/g},{name:"openai-api-key",mutationRule:"openai_api_key",regex:/\bsk-(?!ant-)[A-Za-z0-9_-]{20,}\b/g},{name:"gitlab-token",mutationRule:"gitlab_token",regex:/\bglpat-[A-Za-z0-9_.-]{20,}\b/g},{name:"jwt-like-token",mutationRule:"jwt_like_token",regex:/\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\b/g},{name:"npm-auth-token-assignment",mutationRule:"npm_auth_token_assignment",regex:/_authToken\s*=\s*\S+/g},{name:"sentry-user-token",mutationRule:"sentry_user_token",regex:/\bsntryu_[A-Za-z0-9]{20,}\b/g},{name:"sentry-org-token",mutationRule:"sentry_org_token",regex:/\bsntrys_[A-Za-z0-9_-]{20,}\b/g},{name:"private-ip",mutationRule:"private_ip",regex:/\b(?:10\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d))\b/g},{name:"private-ssh-target",mutationRule:"private_ssh_target",regex:/\b(?:ssh|scp|rsync)\s+[A-Za-z0-9._-]+@(?:10\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d))\b/g},{name:"sshpass-inline-password",mutationRule:"sshpass_inline_password",regex:/\bsshpass\s+-p\s+["'][^"']{6,}["']/g},{name:"password-assignment",mutationRule:"password_assignment",regex:/\b(?:password|passphrase)\s*[:=]\s*(?:(?!<|\$\{|\$\()[A-Za-z0-9!@#$%^&*._+\-=]{8,}|"(?!<|\$\{|\$\()[^"]{8,}"|'(?!<|\$\{|\$\()[^']{8,}')/gi},{name:"absolute-home-path",mutationRule:"absolute_home_path",regex:/(?:^|[\s"'`(=])\/home\/[A-Za-z0-9._-]+\/[^\s"'`),;]+/g,excludeFiles:/^(?:tests\/|examples\/)/},{name:"user-at-private-host",mutationRule:"user_at_private_host",regex:/\b[A-Za-z0-9._-]+@(?:10\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d))\b/g,excludeFiles:/^(?:tests\/|examples\/)/},{name:"high-entropy-assignment",mutationRule:"high_entropy_assignment",regex:/\b(?:token|secret|password|passwd|api[_-]?key)\s*[:=]\s*["']?([A-Za-z0-9+/=_-]{24,})/gi,mutationOnlyReason:"Generic assignments in source code are not credentials; preserve the existing mutation heuristic without treating source identifiers as secrets.",minimumEntropy:3.5}];function nn(e,t){if(e.minimumEntropy===void 0)return!0;let r=t[1],n=new Map;for(let i of r)n.set(i,(n.get(i)??0)+1);let o=0;for(let i of n.values()){let s=i/r.length;o-=s*Math.log2(s)}return o>=e.minimumEntropy}(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]="eed441f0-e2b5-51e9-b9bf-0f4882a9eeea")}catch{}})();var ji=[{action:"append",history_scope:"item"},{action:"claim",history_scope:"item"},{action:"close",history_scope:"item"},{action:"close-many",history_scope:"item"},{action:"close-task",history_scope:"item"},{action:"comments",history_scope:"conditional"},{action:"config",history_scope:"conditional"},{action:"copy",history_scope:"item"},{action:"create",history_scope:"item"},{action:"delete",history_scope:"item"},{action:"deps",history_scope:"conditional"},{action:"discover",history_scope:"item"},{action:"docs",history_scope:"conditional"},{action:"files",history_scope:"conditional"},{action:"focus",history_scope:"conditional"},{action:"gc",history_scope:"conditional"},{action:"history-compact",history_scope:"history"},{action:"history-author-acknowledge",history_scope:"workspace"},{action:"history-redact",history_scope:"history"},{action:"history-repair",history_scope:"history"},{action:"init",history_scope:"workspace"},{action:"install",history_scope:"conditional"},{action:"learnings",history_scope:"conditional"},{action:"notes",history_scope:"conditional"},{action:"package",history_scope:"conditional"},{action:"pause-task",history_scope:"item"},{action:"plan",history_scope:"conditional"},{action:"profile",history_scope:"conditional"},{action:"release",history_scope:"item"},{action:"restore",history_scope:"item"},{action:"schema",history_scope:"conditional"},{action:"start-task",history_scope:"item"},{action:"templates",history_scope:"conditional"},{action:"test",history_scope:"conditional"},{action:"test-all",history_scope:"conditional"},{action:"update",history_scope:"item"},{action:"update-many",history_scope:"item"},{action:"upgrade",history_scope:"conditional"}],Dt=new Map(ji.map(e=>[e.action,e]));function Mt(e,t="$",r=new WeakSet){return typeof e=="string"?[{path:t,value:e}]:typeof e!="object"||e===null?[]:r.has(e)?[]:(r.add(e),Array.isArray(e)?e.flatMap((n,o)=>Mt(n,`${t}[${o}]`,r)):Object.entries(e).flatMap(([n,o])=>Mt(o,`${t}.${n}`,r)))}function on(e){let t=[];for(let r of Mt(e))for(let n of rn){n.regex.lastIndex=0;for(let o of r.value.matchAll(n.regex))if(nn(n,o)){t.push({rule:n.mutationRule,path:r.path});break}}return t.filter((r,n,o)=>o.findIndex(i=>i.rule===r.rule&&i.path===r.path)===n)}function Ki(e){let t=e.author.trim()||"unknown";if(e.settings.require_attributed_author&&t.toLowerCase()==="unknown")throw new m("Mutation author is required by workspace policy.",f.USAGE,{code:"mutation_author_required",required:"Pass --author <id>, set PM_AUTHOR, or configure author_default.",nextSteps:["Retry with --author <stable-agent-id>.","Set PM_AUTHOR for this agent session."]});if(e.settings.secret_guard==="off")return{author:t,findings:[],warnings:[],override_applied:!1};let r;try{r=on(e.payload)}catch{return{author:t,findings:[],warnings:["secret_guard_scan_failed_open"],override_applied:!1}}if(r.length===0)return{author:t,findings:r,warnings:[],override_applied:!1};let n=[...new Set(r.map(o=>o.rule))].sort().join(",");if(e.settings.secret_guard==="block"&&e.force!==!0)throw new m(`Mutation blocked by secret guard (${n}). No detected value was logged.`,f.CONFLICT,{code:"mutation_secret_guard_blocked",required:"Remove the credential-shaped content or retry with --force after explicit review.",nextSteps:["Replace the value with a secret-manager reference.","Use pm history-redact if equivalent content already entered history."],recovery:{recovery_mode:"compact",attempted_command:"pm <mutation> [REDACTED]",normalized_args:["[REDACTED]"],suggested_retry:"Remove credential-shaped content, then retry the mutation."}});return{author:t,findings:r,warnings:[`secret_guard_detected:${r.length}:rules=${n}`,...e.settings.secret_guard==="block"&&e.force===!0?["secret_guard_force_override"]:[]],override_applied:e.settings.secret_guard==="block"&&e.force===!0}}function qi(e){return Dt.has(e.trim().toLowerCase())}function Hi(){return[...Dt.keys()].sort((e,t)=>e.localeCompare(t))}function Dl(e){return Dt.get(e.trim().toLowerCase())}(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]="c18e4dfc-d3e3-5185-9470-9d46b4dca893")}catch{}})();function Bi(e){return e.trim().toLowerCase().replace(/\s+/g," ")}function Nl(e){return Bi(e).split(/[^a-z0-9]+/).filter(t=>t.length>0)}function ge(e,t){if(e.length===0&&t.length===0)return 1;if(e.length===0||t.length===0)return 0;let r=new Set(e),n=new Set(t),o=0;for(let s of r)n.has(s)&&(o+=1);let i=new Set([...r,...n]).size;return o/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]="54784ad1-36bd-5a10-aa00-ad0b09e935a7")}catch{}})();var Gi=/\b[a-z][a-z0-9]*-\d+(?:-[a-z0-9]+)*\b/giu;function Pe(e){return e.trim().toLowerCase().replace(/\s+/g," ")}function we(e){return[...new Set(Pe(e).match(/[\p{L}\p{N}]+/gu)??[])]}function he(e){let t=Pe(e);return{normalized:t,tokens:we(t),issueCodes:[...new Set(t.match(Gi)?.map(r=>r.toLowerCase())??[])]}}function $e(e,t){return ze(he(e),he(t))}function ze(e,t){if(e.normalized===t.normalized)return{score:1,reason:"exact_title"};let r=new Set(e.issueCodes);return t.issueCodes.some(n=>r.has(n))?{score:.99,reason:"issue_code"}:{score:ge(e.tokens,t.tokens),reason:"title_token_jaccard"}}import Yi 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]="cdae67c6-8316-5e97-84ca-0be4460ffd57")}catch{}})();function Ue(e){return(e??"in_progress").trim().toLowerCase().replaceAll("-","_")}function Wi(e,t){return[e.updated_at,t].map(n=>({value:n,time:Date.parse(n??"")})).filter(n=>typeof n.value=="string"&&Number.isFinite(n.time)).sort((n,o)=>o.time-n.time)[0]?.value??e.updated_at}function sn(e,t){let r=Math.max(1,Math.trunc(t.threshold_hours)),n=(t.now??new Date).getTime(),o=Ue(t.in_progress_status),i=[];for(let s of e){if(Ue(String(s.status))!==o||(s.assignee?.trim().length??0)>0)continue;let a=Wi(s,t.last_history_activity?.(s)),c=Date.parse(a);if(!Number.isFinite(c))continue;let d=Math.max(0,Math.floor((n-c)/36e5));d>=r&&i.push({id:s.id,last_activity_at:a,age_hours:d})}return i.sort((s,a)=>a.age_hours-s.age_hours||s.id.localeCompare(a.id)),{threshold_hours:r,count:i.length,items:i,remediation:"Claim active work with `pm claim <id>` or return abandoned work to open with `pm update <id> --status open`."}}async function Xi(e,t,r){let n=new Map;return await Promise.all(t.filter(o=>Ue(String(o.status))===Ue(r.in_progress_status)&&(o.assignee?.trim().length??0)===0).map(async o=>{let i;try{i=await me(Yi.join(e,"history",`${o.id}.jsonl`),o.id)}catch{return}let s=i.map(a=>a.ts).filter(a=>Number.isFinite(Date.parse(a))).sort((a,c)=>Date.parse(c)-Date.parse(a))[0];s&&n.set(o.id,s)})),sn(t,{...r,last_history_activity:o=>n.get(o.id)})}(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]="09f9d531-8ebf-51bf-9ee6-5a3351d96c7a")}catch{}})();var Qi=new Set(["rename-type","rename-field","remap-status",...Ir]);function Ji(e,t){if(t&&!Qi.has(e))throw new m(`schema ${e} does not support --dry-run. Preview is supported for rename-type, rename-field, remap-status and workflow-policy actions. Remove --dry-run only when you intend to apply changes.`,f.USAGE,{code:"invalid_argument_value",examples:["pm schema rename-type Spike --to Experiment --dry-run"]})}import{readFile as Zi}from"node:fs/promises";import an 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]="93b04081-a71a-5987-8fb6-09a8d045c1da")}catch{}})();function es(e){let t=e.trim();if(!t)throw new m("--rollback requires a non-empty checkpoint ID",f.USAGE);if(!/^[a-zA-Z0-9._-]+$/.test(t))throw new m("--rollback checkpoint ID must match [a-zA-Z0-9._-]+",f.USAGE);return t}function ts(e,t){let r=t.replace(/[-:.TZ]/g,"").slice(0,14),n=Math.random().toString(36).slice(2,8);return`${e}-${r}-${n}`}function rs(e,t){return an.join(e,"checkpoints",t)}function cn(e,t,r){return an.join(rs(e,t),`${r}.json`)}async function ns(e,t,r,n){let o=cn(e,t,r),i=`${JSON.stringify(n,null,2)}
|
|
2
2
|
`;if(!await vr(o,i)&&await S(o)!==i)throw new m(`Checkpoint ${r} already exists with different contents; use a new checkpoint ID.`,f.CONFLICT);return o}function os(e,t){if(!Array.isArray(e.items))throw new m(`Checkpoint ${t} is missing items`,f.GENERIC_FAILURE);return e.items.map(r=>{if(!r||typeof r!="object")throw new m(`Checkpoint ${t} contains an invalid item entry`,f.GENERIC_FAILURE);let n=r;if(typeof n.id!="string"||n.id.trim().length===0)throw new m(`Checkpoint ${t} contains an item entry without ID`,f.GENERIC_FAILURE);if(typeof n.target_updated_at!="string"||n.target_updated_at.trim().length===0)throw new m(`Checkpoint ${t} contains an item entry without target_updated_at`,f.GENERIC_FAILURE);return{id:n.id.trim(),target_updated_at:n.target_updated_at.trim()}})}async function is(e,t,r,n){let o=es(r),i=cn(e,t,o);if(!await V(i))throw new m(`Checkpoint ${o} not found`,f.NOT_FOUND);let s=await Zi(i,"utf8"),a;try{a=JSON.parse(s)}catch(l){throw new m(`Checkpoint ${o} contains invalid JSON: ${E(l)}`,f.GENERIC_FAILURE)}if(!a||typeof a!="object")throw new m(`Checkpoint ${o} is invalid`,f.GENERIC_FAILURE);let c=a;if(c.schema_version!==n)throw new m(`Checkpoint ${o} has unsupported schema version`,f.GENERIC_FAILURE);let d=os(c,o);return{record:c,items:d,path:i,id:typeof c.id=="string"?c.id:o,created_at:typeof c.created_at=="string"?c.created_at:M(),author:typeof c.author=="string"?c.author:"unknown"}}async function ss(e,t){let r=[],n=[];for(let o of e)try{let i=await t(o.id,o.target_updated_at);r.push({id:o.id,status:"restored",changed_fields:i.changed_fields,warnings:i.warnings}),n.push(o.id)}catch(i){r.push({id:o.id,status:"failed",error:E(i)})}return{rows:r,restored_ids:n,failed_count:r.filter(o=>o.status==="failed").length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="fdacd8ac-787a-5639-84d5-a32b6ce79d41")}catch{}})();function j(e){if(typeof e!="string")return null;let t=e.trim().toLowerCase();return t.length>0?t:null}function ru(e,t){let r=j(t);return!e||!r?null:[...e.assurance_providers??[]].reverse().find(n=>j(n.definition.id)===r)??null}function as(e,t){let r=j(t);return!e||!r?null:[...e.search_providers].reverse().find(o=>(j(o.runtime_definition?.name)??j(o.definition?.name))===r)??null}function cs(e,t){let r=j(t);return!e||!r?null:[...e.vector_store_adapters].reverse().find(o=>(j(o.runtime_definition?.name)??j(o.definition?.name))===r)??null}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="74ce3524-6c25-5646-b1a0-5ca8a3759034")}catch{}})();var $="-",ln=new Set(["actual_result","body","cmd","command","customer_impact","description","environment","expected_result","impact","location","message","note","outcome","repro_steps","resolution","text","title","unblock_note","value","why_now"]);function su(e,t){if(e.startsWith("```")||e.includes(`
|
|
3
3
|
`))return!0;let r=t.map(n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|");return new RegExp(`^(?:[-*+]\\s+)?(?:${r})\\s*[:=]`,"i").test(e)}function un(e){let t=e.trim();if(t==="")return[];let n=(ms(t)??t.split(",")).map(o=>o.trim()).filter(Boolean).map(o=>o.toLowerCase());return Array.from(new Set(n)).sort((o,i)=>o.localeCompare(i))}function fn(e){if(!Array.isArray(e)||e.length===0)return[];let t=[];for(let r of e)if(typeof r=="string")for(let n of un(r))t.push(n);return Array.from(new Set(t)).sort((r,n)=>r.localeCompare(n))}function mn(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim().toLowerCase()).filter(Boolean):[]}function ds(e){return typeof e!="string"?[]:e.split(";").map(t=>t.trim()).filter(Boolean)}function ls(e,t,r){let n=e.map(s=>s.trim()).filter(Boolean);for(let s of t??[]){let a=s.trim();if(a.includes(";"))throw new m('Acceptance criteria added with --add-ac cannot contain ";" because semicolons delimit stored criteria',f.USAGE,{code:"acceptance_criteria_semicolon_forbidden",required:"Pass one semicolon-free criterion per --add-ac value",why:"A semicolon inside one criterion would be re-read as multiple criteria",nextSteps:["Split the text into repeated --add-ac values, or replace the semicolon with punctuation that is not the storage delimiter"]});a.length>0&&!n.includes(a)&&n.push(a)}let o=[],i=n;for(let s of r??[]){let a=s.trim();if(a.length!==0){if(!i.includes(a)){o.push(a);continue}i=i.filter(c=>c!==a)}}return{criteria:i,unmatchedRemovals:o}}function us(e,t){let r=mn(e);if(!t||t.length===0)return Array.from(new Set(r)).sort((o,i)=>o.localeCompare(i));let n=new Set(r);for(let o of fn(t))n.add(o);return Array.from(n).sort((o,i)=>o.localeCompare(i))}function fs(e,t){let r=Array.from(new Set(mn(e))).sort((o,i)=>o.localeCompare(i));if(!t||t.length===0)return r;let n=new Set(fn(t));return n.size===0?r:r.filter(o=>!n.has(o))}function ms(e){if(!e.startsWith("["))return null;let t;try{t=JSON.parse(e)}catch{return null}return t.map(n=>typeof n=="string"||typeof n=="number"||typeof n=="boolean"?String(n):"").filter(n=>n.length>0)}function Ot(e){return e.replace(/\r\n/g,`
|
|
4
4
|
`)}function pn(e){let t=Ot(e).trim();if(!t.startsWith("```"))return e;let r=t.split(`
|
|
@@ -17,4 +17,4 @@ ${i}`;continue}return null}return r}function hs(e,t){let r=pn(e).trim();if(!r)th
|
|
|
17
17
|
`)){let n=r.trim();if(n.length!==0)try{let o=JSON.parse(n);o&&typeof o=="object"&&typeof o.endpoint=="string"&&o.endpoint.trim().length>0&&"payload"in o&&typeof o.attempts=="number"&&Number.isFinite(o.attempts)&&((typeof o.id!="string"||o.id.length===0)&&(o.id=Yc(o)),t.push(o))}catch{}}return t}function Wc(e,t){if(typeof e.enqueued_at!="string"||e.enqueued_at.trim().length===0)return!1;let r=Date.parse(e.enqueued_at);return Number.isNaN(r)?!1:r<t}function yo(e,t){let r=uo(t),n=[],o=0;for(let i of e){if(JSON.stringify(i).length>Yn||Wc(i,r)||i.attempts>=Wn){o+=1;continue}n.push(i)}if(n.length>jn){let i=n.length-jn;return o+=i,{entries:n.slice(i),prunedCount:o}}return{entries:n,prunedCount:o}}async function Xc(e,t){let r=t.map(o=>JSON.stringify(o)).join(`
|
|
18
18
|
`),n=r.length>0?`${r}
|
|
19
19
|
`:"";for(let o=0;;o+=1)try{await I(ir(e),n);return}catch(i){let s=Xn[o];if(s===void 0||!mo(i))throw i;await po(s)}}async function Bn(e,t,r,n){return rt(async()=>{let o=await S(ir(e)),i=o===null?[]:_o(o),s=[];for(let c of i){if(r.has(c.id))continue;let d=n.get(c.id);s.push(d?{...c,attempts:d.attempts,next_attempt_after:d.next_attempt_after}:c)}let{entries:a}=yo(s,t);return await Xc(e,a),a.length},e)}async function Qc(e,t){let r=await S(ir(e));if(r===null||r.trim().length===0){await F(e,{pending_otel_spans:0});return}let n=_o(r),{entries:o,prunedCount:i}=yo(n,t),s=o.filter(g=>lo(g.next_attempt_after)).slice(0,bc);if(s.length===0){let g=i>0?await Bn(e,t,new Set,new Map):o.length;await F(e,{pending_otel_spans:g});return}let a=M(),c=new Set,d=new Map,l=0,u;await Promise.all(s.map(async g=>{try{let y=await so(g.endpoint,{"content-type":"application/json"},JSON.stringify(g.payload));if(y<200||y>=300)throw new Error(`local_otel_export_http_${y}`);c.add(g.id),l+=1}catch(y){u=y instanceof Error?rr(y.message,"redacted"):"local_otel_export_failed";let h=g.attempts+1;d.set(g.id,{attempts:h,next_attempt_after:co(h)})}}));let p=await Bn(e,t,c,d),_={pending_otel_spans:p,last_otel_attempt_at:a};l>0&&(_.last_otel_success_at=a),u!==void 0?(_.last_otel_failure_at=a,_.last_otel_failure_error=u):p===0&&(_.last_otel_failure_at=void 0,_.last_otel_failure_error=void 0),await F(e,_)}async function Jc(e,t,r){try{await td(e,t,r)}catch{}try{await Qc(e,r)}catch{}}async function Zc(e,t=Rc){try{let r=Pc(e),n=await pc(r,{withFileTypes:!0}),o=Date.now()-Math.max(0,t);await Promise.all(n.filter(i=>i.isFile()&&/^\.events\.jsonl\.\d+\.\d+\.[a-f0-9]+\.tmp$/.test(i.name)).map(async i=>{let s=x.join(r,i.name);(await Gn(s)).mtimeMs<o&&await or(s,{force:!0})}))}catch{}}async function rt(e,t=Re(process.cwd()),r=5e3){let n=qn.catch(()=>{}).then(()=>Ar(async()=>{let o=await Le(t,"telemetry-queue",60,"telemetry",!1,!1,r);try{return $r(t),await e()}finally{await o()}}));return qn=n.catch(()=>{}),n}async function ar(e){let t=await S(tt(e));return t===null||t.trim().length===0?[]:ao(t)}async function tr(e,t,r){return rt(async()=>{let n=await ar(e),{entries:o}=sr(n,r),i=o.filter(s=>!t.has(s.event.event_id));return await fo(e,i),i},e)}async function ed(e,t,r,n){return rt(async()=>{let o=await ar(e),{entries:i}=sr(o,n),s=i.map(a=>{if(!t.has(a.event.event_id))return a;let c=a.attempts+1;return{...a,attempts:c,last_attempt_at:r,next_attempt_after:co(c)}});return await fo(e,s),s},e)}async function td(e,t,r){await Zc(e);let n=t.trim();if(n.length===0)return;let o=await S(tt(e));if(o===null||o.trim().length===0){await F(e,{endpoint:n,queue_entries:0});return}let i=ao(o);if(i.length===0){await F(e,{endpoint:n,queue_entries:0});return}let{entries:s,prunedCount:a}=sr(i,r);if(s.length===0){let _=await tr(e,new Set,r);await F(e,{endpoint:n,queue_entries:_.length});return}let c=s.filter(_=>Bc(_)).slice(0,Sc);if(c.length===0){let _=a>0?await tr(e,new Set,r):s;await F(e,{endpoint:n,queue_entries:_.length});return}let d=new Set(c.map(_=>_.event.event_id)),l=M(),u={"content-type":"application/json"},p=process.env.PM_TELEMETRY_INGEST_KEY?.trim();p&&(u["x-pm-telemetry-key"]=p);try{let _=await so(n,u,JSON.stringify({schema_version:Ec,events:c.map(g=>g.event)}));if(_<200||_>=300)throw new Error(`telemetry_flush_http_${_}`)}catch(_){let g=await ed(e,d,l,r),y=_ instanceof Error?rr(_.message,"redacted"):"telemetry_flush_failed";await F(e,{endpoint:n,queue_entries:g.length,last_attempted_flush_at:l,last_failed_flush_at:l,last_failed_flush_error:y});return}try{let _=await tr(e,d,r);await F(e,{endpoint:n,queue_entries:_.length,last_attempted_flush_at:l,last_successful_flush_at:l,last_failed_flush_at:void 0,last_failed_flush_error:void 0})}catch(_){let g=_ instanceof Error?rr(_.message,"redacted"):"telemetry_flush_failed",y=await ar(e).catch(()=>s);await F(e,{endpoint:n,queue_entries:y.length,last_attempted_flush_at:l,last_failed_flush_at:l,last_failed_flush_error:g})}}async function rd(e){let t=Zn(e);await er(x.dirname(t),{recursive:!0});try{return await er(t),!0}catch(r){if(typeof r!="object"||r===null||!("code"in r)||r.code!=="EEXIST")throw r}try{let r=await Gn(t);return Date.now()-r.mtimeMs<kc?!1:(await or(t,{recursive:!0,force:!0}),await er(t),!0)}catch{return!1}}function nd(e){try{mc(e,{recursive:!0,force:!0})}catch{}}function od(e){nd($c(e))}async function id(e,t,r){let n=await rd(e);if(od(e),!!n)try{await Jc(e,t,r)}finally{try{await or(Zn(e),{recursive:!0,force:!0})}catch{}}}async function Bm(e=Re(process.cwd())){if(!ve().telemetry_disabled)try{if(!(await v(e)).telemetry.enabled)return;let r=await rt(()=>Hc(e),e);if(!r)return;await id(e,r.endpoint,r.retentionDays)}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]="7b64ac69-240e-504c-adc4-d5f3170d3de7")}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]="fdc16f69-f63f-5e17-9139-35d54db7bab5")}catch{}})();function nt(e,t="--limit"){if(e===void 0)return;let r=String(e).trim(),n=r.length===0?Number.NaN:Number(r);if(!Number.isInteger(n)||n<0)throw new m(`${t} must be a non-negative integer`,f.USAGE);return n}function go(e,t="--priority"){if(e===void 0)return;let r=String(e).trim(),n=r.length===0?Number.NaN:Number(r);if(!Number.isInteger(n)||n<0||n>4)throw new m(`${t} filter must be 0..4`,f.USAGE);return n}function Zg(e,t,r="--type"){if(e===void 0)return;let n=le(e,t);if(!n)throw new m(`${r} filter must be one of ${t.types.join("|")}`,f.USAGE);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]="b03f0596-8c1f-59ec-a20e-8919cf8bbb98")}catch{}})();function cr(e,t){if(e===void 0)return;let r=[],n="";for(let s=0;s<e.length;s+=1){let a=e[s];if(a==="\\"){let c=e[s+1];if(c===","||c==="\\"){n+=c,s+=1;continue}n+=a;continue}if(a===","){r.push(n),n="";continue}n+=a}r.push(n);let o=r.map(s=>s.trim());if(o.some(s=>s.length===0))throw new m(`${t.label} requires at least one non-empty value`,f.USAGE);let i=o.map(s=>t.normalize?.(s)??s);return[...new Set(i)]}function Ie(e,t){let r=cr(e,t);return r===void 0?void 0:new Set(r)}function ho(e,t,r="--type"){let n=cr(e,{label:r});if(n===void 0)return;let o=n.map(i=>{let s=le(i,t);if(!s)throw new m(`${r} filter token "${i}" must be one of ${t.types.join("|")}`,f.USAGE);return s});return new Set(o)}function wo(e,t="--priority"){let r=cr(e,{label:t});if(r!==void 0)return new Set(r.map(n=>go(n,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]="81a10252-4fa3-5c14-878d-7d78717419a4")}catch{}})();function bo(e,t){let r=e.trim().toLowerCase();return t.alias_to_id.get(r)??r}function vo(e){return{isTerminal(t){return e.terminal_statuses.has(bo(t,e))},classify(t){let r=bo(t,e);return e.terminal_canceled_statuses.has(r)?"canceled":e.terminal_statuses.has(r)?"closed":e.blocked_statuses.has(r)?"blocked":e.draft_statuses.has(r)?"draft":r===e.open_status?"open":e.active_statuses.has(r)?"in_progress":"other"}}}function dr(e){return T(e.acceptance_criteria)===void 0}function lr(e){return!Number.isFinite(e.estimated_minutes)}function Io(e,t){return t.isTerminal(e.status)?T(e.resolution)===void 0:!1}function ad(e){return T(e.reviewer)===void 0}function cd(e){return T(e.risk)===void 0}function dd(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):T(e.confidence)===void 0}function ld(e){return T(e.sprint)===void 0}function ud(e){return T(e.release)===void 0}function ur(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function fd(e,t,r){return[[t.acMissing,dr(e)],[t.estimatesMissing,lr(e)],[t.resolutionMissing,Io(e,r)],[t.reviewerMissing,ad(e)],[t.riskMissing,cd(e)],[t.confidenceMissing,dd(e)],[t.sprintMissing,ld(e)],[t.releaseMissing,ud(e)]].every(([o,i])=>o!==!0||i)}function md(e,t){return dr(e)||lr(e)||Io(e,t)}function Ao(e,t,r){return ur(t)?!(!fd(e,t,r)||t.metadataMissing&&!md(e,r)):!0}var fr=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function pd(e,t){switch(t){case"acceptance_criteria":return!dr(e);case"estimated_minutes":return!lr(e);case"resolution":return T(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return T(e.parent)!==void 0}}function _d(e,t,r){return t==="resolution"?r.isTerminal(e.status):!0}function yd(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Eo(){let e={};for(let t of fr)e[t]={present:0,applicable:0,percent:100};return e}function So(e,t,r){for(let n of fr){if(!_d(t,n,r))continue;let o=e[n];o.applicable+=1,pd(t,n)&&(o.present+=1)}}function To(e){for(let t of fr){let r=e[t];r.percent=yd(r.present,r.applicable)}}function ah(e,t){let r=Eo(),n={};for(let o of e){So(r,o,t);let i=n[o.type]??(n[o.type]=Eo());So(i,o,t)}To(r);for(let o of Object.values(n))To(o);return{overall:r,by_type:n}}var gd={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function hd(e){return gd[e]}function wd(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function bd(e,t,r){switch(t){case"assignee":return[T(e.assignee)??null];case"parent":return[T(e.parent)??null];case"type":return[T(e.type)??null];case"status":return[T(e.status)??null];case"priority":return[typeof e.priority=="number"?`P${e.priority}`:null];default:{let n=r.tagPrefix?.trim(),i=(Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string"&&s.length>0&&(!n||s.startsWith(n)));return i.length>0?i:[null]}}}function ch(e,t,r,n={}){let o=new Map,i=0;for(let a of e){i+=1;let c=r.classify(a.status);for(let d of bd(a,t,n)){let l=d??"\0empty",u=o.get(l);u||(u={label:d??hd(t),key:d,buckets:wd(),total:0},o.set(l,u)),u.buckets[c]+=1,u.total+=1}}let s=[...o.values()].sort((a,c)=>c.total!==a.total?c.total-a.total:a.key===null?1:c.key===null?-1:a.label.localeCompare(c.label));return{dimension:t,rows:s,total_items: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]="2e200f74-0e6c-58ac-ab8c-da49071465ff")}catch{}})();var ae=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function Q(e){return Array.isArray(e)&&e.length>0}function Ed(e){return typeof e=="string"&&e.trim().length>0}function Sd(e){return Array.isArray(e)?e.some(t=>{if(typeof t!="object"||t===null)return!1;let r=t.command;return typeof r=="string"&&r.trim().length>0}):!1}function Ro(e,t){switch(t){case"notes":return Q(e.notes);case"learnings":return Q(e.learnings);case"files":return Q(e.files);case"docs":return Q(e.docs);case"tests":return Q(e.tests);case"comments":return Q(e.comments);case"deps":return Q(e.dependencies);case"body":return Ed(e.body);case"linked_command":return Sd(e.tests)}}function ko(e){return ae.some(t=>e[t]!==void 0)}function xo(e,t){for(let r of ae){let n=t[r];if(n===void 0)continue;let o=Ro(e,r);if(n==="present"&&!o||n==="absent"&&o)return!1}return!0}function Lo(e){return ae.some(t=>t!=="body"&&e[t]!==void 0)}function Mo(e){return e.body!==void 0}function Co(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Td(){let e={};for(let t of ae)e[t]={present:0,total:0,percent:100};return e}function lh(e){let t=Td(),r=e.length;for(let s of e)for(let a of ae)Ro(s,a)&&(t[a].present+=1);for(let s of ae)t[s].total=r,t[s].percent=Co(t[s].present,r);let n=t.body,o=r-n.present,i={present:o,total:r,percent:Co(o,r)};return{total_items:r,fields:t,body_populated:n,empty_body: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]="9957767d-cc97-58ad-a46e-3f88a18a3c8c")}catch{}})();var $o=e=>({acMissing:e.filterAcMissing===!0,estimatesMissing:e.filterEstimatesMissing===!0,resolutionMissing:e.filterResolutionMissing===!0,metadataMissing:e.filterMetadataMissing===!0,reviewerMissing:e.filterReviewerMissing===!0,riskMissing:e.filterRiskMissing===!0,confidenceMissing:e.filterConfidenceMissing===!0,sprintMissing:e.filterSprintMissing===!0,releaseMissing:e.filterReleaseMissing===!0}),Do=[{field:"notes",presentKey:"hasNotes",absentKey:"noNotes",presentFlag:"--has-notes",absentFlag:"--no-notes"},{field:"learnings",presentKey:"hasLearnings",absentKey:"noLearnings",presentFlag:"--has-learnings",absentFlag:"--no-learnings"},{field:"files",presentKey:"hasFiles",absentKey:"noFiles",presentFlag:"--has-files",absentFlag:"--no-files"},{field:"docs",presentKey:"hasDocs",absentKey:"noDocs",presentFlag:"--has-docs",absentFlag:"--no-docs"},{field:"tests",presentKey:"hasTests",absentKey:"noTests",presentFlag:"--has-tests",absentFlag:"--no-tests"},{field:"comments",presentKey:"hasComments",absentKey:"noComments",presentFlag:"--has-comments",absentFlag:"--no-comments"},{field:"deps",presentKey:"hasDeps",absentKey:"noDeps",presentFlag:"--has-deps",absentFlag:"--no-deps"},{field:"body",presentKey:"hasBody",absentKey:"emptyBody",presentFlag:"--has-body",absentFlag:"--empty-body"},{field:"linked_command",presentKey:"hasLinkedCommand",absentKey:"noLinkedCommand",presentFlag:"--has-linked-command",absentFlag:"--no-linked-command"}],pr=e=>{let t=Do.find(r=>e[r.presentKey]===!0&&e[r.absentKey]===!0);if(t)throw new m(`Cannot combine ${t.presentFlag} with ${t.absentFlag} for the same field.`,f.USAGE);return Object.fromEntries(Do.flatMap(r=>e[r.presentKey]===!0?[[r.field,"present"]]:e[r.absentKey]===!0?[[r.field,"absent"]]:[]))},Oo=["priority","deadline","updated_at","created_at","title","parent"],No=["asc","desc"],zo=new Set(Kr);function vd(e,t,r){let n=e.filter(s=>s.startsWith("item_list_item_read_failed:")).length,o=e.filter(s=>s.startsWith("item_list_directory_read_failed:")).length,i={status:t?"unchecked":n+o>0?"partial":"complete",unreadable_item_count:n,unreadable_directory_count:o};if(r&&i.status==="partial")throw new m(`List source is incomplete: ${n} item document(s) and ${o} item directory/directories could not be read.`,f.GENERIC_FAILURE,{code:"list_source_incomplete",why:"Strict list reads fail closed so agents and SDK consumers never treat an omitted item as a complete workspace.",nextSteps:["Run pm validate --check-storage-integrity to locate unreadable tracker artifacts.","Repair the reported files or align the installed decoder version, then retry."]});return i}function Id(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var Ad=[{key:"hasNotes",summaryKey:"has_notes"},{key:"hasLearnings",summaryKey:"has_learnings"},{key:"hasFiles",summaryKey:"has_files"},{key:"hasDocs",summaryKey:"has_docs"},{key:"hasTests",summaryKey:"has_tests"},{key:"hasComments",summaryKey:"has_comments"},{key:"hasDeps",summaryKey:"has_deps"},{key:"hasBody",summaryKey:"has_body"},{key:"hasLinkedCommand",summaryKey:"has_linked_command"},{key:"noNotes",summaryKey:"no_notes"},{key:"noLearnings",summaryKey:"no_learnings"},{key:"noFiles",summaryKey:"no_files"},{key:"noDocs",summaryKey:"no_docs"},{key:"noTests",summaryKey:"no_tests"},{key:"noComments",summaryKey:"no_comments"},{key:"noDeps",summaryKey:"no_deps"},{key:"emptyBody",summaryKey:"empty_body"},{key:"noLinkedCommand",summaryKey:"no_linked_command"}],Cd=[{key:"filterReviewerMissing",summaryKey:"filter_reviewer_missing"},{key:"filterRiskMissing",summaryKey:"filter_risk_missing"},{key:"filterConfidenceMissing",summaryKey:"filter_confidence_missing"},{key:"filterSprintMissing",summaryKey:"filter_sprint_missing"},{key:"filterReleaseMissing",summaryKey:"filter_release_missing"}];function Uo(e,t){for(let r of Ad)t[r.key]===!0&&(e[r.summaryKey]=!0)}function Vo(e,t){for(let r of Cd)t[r.key]===!0&&(e[r.summaryKey]=!0)}function Rd(e,t,r){for(let n of r){let o=t[n.optionKey];o!==void 0&&(e[n.summaryKey]=n.normalize?n.normalize(o):o)}}function jo(e){let t={};return Uo(t,e),t}function Ko(e){let t={};return Vo(t,e),t}var kd=[{optionKey:"type",summaryKey:"type"},{optionKey:"tag",summaryKey:"tag"},{optionKey:"priority",summaryKey:"priority"},{optionKey:"deadlineBefore",summaryKey:"deadline_before"},{optionKey:"deadlineAfter",summaryKey:"deadline_after"},{optionKey:"updatedAfter",summaryKey:"updated_after"},{optionKey:"updatedBefore",summaryKey:"updated_before"},{optionKey:"createdAfter",summaryKey:"created_after"},{optionKey:"createdBefore",summaryKey:"created_before"},{optionKey:"ids",summaryKey:"ids"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"assigneeFilter",summaryKey:"assignee_filter"},{optionKey:"parent",summaryKey:"parent"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"}],xd=[{optionKey:"type",summaryKey:"type"},{optionKey:"tag",summaryKey:"tag"},{optionKey:"priority",summaryKey:"priority"},{optionKey:"deadlineBefore",summaryKey:"deadline_before"},{optionKey:"deadlineAfter",summaryKey:"deadline_after"},{optionKey:"updatedAfter",summaryKey:"updated_after"},{optionKey:"updatedBefore",summaryKey:"updated_before"},{optionKey:"createdAfter",summaryKey:"created_after"},{optionKey:"createdBefore",summaryKey:"created_before"},{optionKey:"ids",summaryKey:"ids"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"assigneeFilter",summaryKey:"assignee_filter"},{optionKey:"parent",summaryKey:"parent"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"},{optionKey:"limit",summaryKey:"limit"},{optionKey:"offset",summaryKey:"offset"},{optionKey:"includeBody",summaryKey:"include_body"},{optionKey:"compact",summaryKey:"compact"},{optionKey:"fields",summaryKey:"fields"}],Ld=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],Md="-7d";function qo(e){let{filtersStatus:t,options:r,treeEnabled:n,treeDepth:o,sortField:i,sortOrder:s,runtimeFieldFilters:a}=e,c={};return t!==null&&(c.status=t),r.dependencyBlocked===!0&&(c.blocked_semantics="status_or_dependency"),Rd(c,r,kd),Bo(c,r),r.filterAcMissing===!0&&(c.filter_ac_missing=!0),r.filterEstimatesMissing===!0&&(c.filter_estimates_missing=!0),r.filterResolutionMissing===!0&&(c.filter_resolution_missing=!0),r.filterMetadataMissing===!0&&(c.filter_metadata_missing=!0),Vo(c,r),Uo(c,r),r.limit!==void 0&&(c.limit=r.limit),r.offset!==void 0&&(c.offset=r.offset),r.includeBody===!0&&(c.include_body=!0),r.fields!==void 0&&(c.fields=r.fields),n&&(c.tree=!0,o!==void 0&&(c.tree_depth=o)),i!==void 0&&(c.sort=i,c.order=s),Id(a)&&(c.runtime_filters=a),c}function _r(e,t,r){let n=H(e.status,r),o=H(t.status,r);if(n!==o)return n?1:-1;let i=e.priority-t.priority;if(i!==0)return i;let s=te(t.updated_at,e.updated_at);return s!==0?s:(e.id??"").localeCompare(t.id??"")}function Dd(e,t){return[...e].sort((r,n)=>_r(r,n,t))}function Fo(e,t){if(e!==void 0)return xe(e,new Date,t)}function Ae(e,t){if(e==null)return;let r=String(e).trim();if(r.length!==0)return xe(r,new Date,t)}function Ho(e){let t=e.updatedAfter!=null&&String(e.updatedAfter).trim().length>0;if([e.today===!0,e.recent===!0,t].filter(n=>n).length>1)throw new m("Choose only one updated_at window: --today, --recent, or --updated-after.",f.USAGE);if(e.today===!0){let n=new Date;return n.setHours(0,0,0,0),n.toISOString()}return e.recent===!0?Ae(Md,"recent"):Ae(e.updatedAfter,"updated-after")}function Bo(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function Go(e){if(e==null)return;let t=String(e).trim();if(t.length===0)throw new m("--ids requires at least one non-empty item ID",f.USAGE);let r=t.split(",").map(n=>n.trim()).filter(n=>n.length>0);if(r.length===0)throw new m("--ids requires at least one non-empty item ID",f.USAGE);return new Set(r)}function yr(e){if(e===void 0)return;let t=String(e).trim(),r=t.length===0?Number.NaN:Number(t);if(!Number.isInteger(r)||r<0)throw new m("Offset filter must be a non-negative integer",f.USAGE);return r}function Yo(e){if(e===void 0)return;let t=e.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(t.length===0)throw new m("List --fields requires a comma-separated list of field names",f.USAGE);return[...new Set(t)]}function Wo(e,t=e.projectionCommand??"list"){let r=e.compact===!0,n=e.brief===!0,o=e.full===!0,i=Yo(e.fields);if(Number(r)+Number(n)+Number(o)+ +(i!==void 0)>1)throw new m("List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.",f.USAGE,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:`pm ${t} --brief`,suggested_retry_args:[t,"--brief"]}});return o?{mode:"full",fields:[]}:n?{mode:"brief",fields:[..._t]}:r?{mode:"compact",fields:[...pt]}:i?{mode:"fields",fields:[...new Set(i.map(a=>K(a)))]}:{mode:"full",fields:[]}}function K(e){return e.startsWith("item.")?e.slice(5):e}function Od(e,t,r){if(e.mode!=="fields")return;let n=yt(t),o=new Set(n.map(s=>K(s))),i=e.fields.filter(s=>!o.has(K(s)));if(i.length>0)throw new m(`Unknown list --fields value(s): ${i.join(", ")}`,f.USAGE,{code:"unknown_field_projection",examples:["pm list-open --fields id,title,status,type,updated_at","pm list --fields id,title,parent,priority --limit 10","pm list-all --fields id,title,body --limit 5"],recovery:{allowed_values:n,suggested_retry:`pm ${r} --fields id,title,status --limit 10`,suggested_retry_args:[r,"--fields","id,title,status","--limit","10"]}})}var Nd=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function Xo(e){if(e===void 0)return;let t=e.trim().toLowerCase(),r=Nd.get(t);if(r)return r;if(!Oo.includes(t))throw new m(`Sort field must be one of ${Oo.join("|")} (aliases: updated->updated_at, created->created_at)`,f.USAGE);return t}function Qo(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!No.includes(t))throw new m(`Sort order must be one of ${No.join("|")}`,f.USAGE);return t}function Fd(e){return nt(e,"--tree-depth")}function Jo(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new m("Assignee filter must be one of assigned|unassigned",f.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new m(`Invalid assignee filter "${e}". Allowed: assigned|unassigned`,f.USAGE);return t}function Po(e,t){return $t(e,t,{strict:!0})}function Zo(e){return Ie(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function Pd(e,t,r){let n=Zo(t);if(n===void 0)return;let o=new Set(e.flatMap(s=>s.tags.map(a=>a.trim().toLowerCase()))),i=[...n].filter(s=>!o.has(s));i.length>0&&r.push(`unknown_tags:${i.join(",")}`)}function $d(e,t){if(e&&[...e].some(r=>r.toLowerCase()==="none"||r.toLowerCase()==="null"))throw new m('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',f.USAGE);if(e!==void 0&&t==="unassigned")throw new m("Cannot combine --assignee with --assignee-filter unassigned",f.USAGE)}function zd(e,t,r,n){let o=Ie(t.assignee,{label:"--assignee"}),i=Jo(t.assigneeFilter);$d(o,i);let s=$o(t),a=pr(t);return{idsFilter:Go(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:ho(t.type,r),tagFilters:Zo(t.tag),priorityFilter:wo(t.priority),deadlineBefore:Fo(t.deadlineBefore,"deadline-before"),deadlineAfter:Fo(t.deadlineAfter,"deadline-after"),updatedAfter:Ho(t),updatedBefore:Ae(t.updatedBefore,"updated-before"),createdAfter:Ae(t.createdAfter,"created-after"),createdBefore:Ae(t.createdBefore,"created-before"),assigneeFilter:o,assigneeModeFilter:i,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:Ie(t.sprint,{label:"--sprint"}),releaseFilter:Ie(t.release,{label:"--release"}),missingMetadataFilters:s,missingMetadataActive:ur(s),lifecycleClassifier:vo(n),contentFieldFilters:a,contentFiltersActive:ko(a)}}function Ud(e,t,r){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&H(e.status,r)||t.typeFilter&&!t.typeFilter.has(e.type)||t.tagFilters&&![...t.tagFilters].some(n=>(e.tags??[]).some(o=>o.trim().toLowerCase()===n))?!1:t.priorityFilter===void 0||t.priorityFilter.has(e.priority)}function Vd(e,t){return Lr(e,t)}function jd(e,t){return t.assigneeModeFilter==="assigned"&&!e.assignee||t.assigneeModeFilter==="unassigned"&&e.assignee?!1:t.assigneeFilter===void 0||e.assignee!==void 0&&t.assigneeFilter.has(e.assignee)}function Kd(e,t,r){let n=e.parent?.trim().toLowerCase(),o=[...new Set([...r?.get(e.id.trim().toLowerCase())??[],...n?[n]:[]])];return t.parentFilter!==void 0&&!t.treeEnabled&&!o.includes(t.parentFilter.trim().toLowerCase())||t.sprintFilter!==void 0&&(e.sprint===void 0||!t.sprintFilter.has(e.sprint))?!1:t.releaseFilter===void 0||e.release!==void 0&&t.releaseFilter.has(e.release)}function qd(e,t,r,n,o){return!(!Ud(e,t,r)||!Vd(e,t)||!jd(e,t)||!Kd(e,t,o)||t.missingMetadataActive&&!Ao(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!xo(e,t.contentFieldFilters)||!Ut(e,n))}function ei(e,t,r,n,o,i,s){let a=zd(t,r,n,o);return e.filter(c=>qd(c,a,o,i,s))}function ce(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function mr(e,t,r,n){let o=e,i=typeof o.title=="string"?o.title:"",s=n??ce(typeof o.parent=="string"?o.parent:void 0)??null;return{...e,tree_depth:t,tree_parent:s,tree_children:r,tree_title:`${" ".repeat(t)}${i}`}}function Hd(e,t){let r=new Map,n=new Map;for(let o of e){let i=o.id.trim().toLowerCase();r.set(i,o);let s=t?t.parents_by_child.get(i)??[]:[ce(o.parent)?.toLowerCase()].filter(a=>a!==void 0);for(let a of s){let c=n.get(a)??[];c.push(o),n.set(a,c)}}return{byId:r,childrenByParent:n}}function Bd(e,t,r,n,o){return t?[...n.get(t.toLowerCase())??[]]:e.filter(i=>(o?o.parents_by_child.get(i.id.trim().toLowerCase())??[]:[ce(i.parent)?.toLowerCase()].filter(a=>a!==void 0)).every(a=>!r.has(a)))}function ti(e,t,r,n,o=e){let{byId:i,childrenByParent:s}=Hd(e,n),a=Bd(e,t,i,s,n),c=[],d=new Set,l=new Map(o.map(p=>[p.id.trim().toLowerCase(),p.id.trim()])),u=[...a].reverse().map(p=>({node:p,depth:0,parentId:t===void 0?void 0:l.get(t.trim().toLowerCase())??t.trim()}));for(;u.length>0;){let{node:p,depth:_,parentId:g}=u.pop(),y=p.id.trim().toLowerCase();if(d.has(y))continue;d.add(y);let h=s.get(y)??[];if(c.push(mr(p,_,h.length,g)),!(r!==void 0&&_>=r))for(let b of[...h].reverse())u.push({node:b,depth:_+1,parentId:l.get(y)})}if(t===void 0&&r===void 0)for(let p of e){let _=p.id.trim().toLowerCase();d.has(_)||(d.add(_),c.push(mr(p,0,s.get(_)?.length??0)))}return c}function ri(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function ni(e,t){return e===t?0:e===null?1:t===null?-1:te(e,t)}function oi(e,t,r){switch(r){case"priority":return e.priority-t.priority;case"deadline":return ni(e.deadline??null,t.deadline??null);case"updated_at":return te(e.updated_at,t.updated_at);case"created_at":return te(e.created_at,t.created_at);case"title":return(e.title??"").localeCompare(t.title??"");case"parent":return ri(e.parent??null,t.parent??null);default:return 0}}function ii(e,t,r,n){return t?[...e].sort((o,i)=>{let s=oi(o,i,t);if(s!==0)return r==="desc"?-s:s;let a=_r(o,i,n);return r==="desc"?-a:a}):Dd(e,n)}function si(e,t,r=!1){let n=K(t.trim());if(n.length===0)return null;let o=e;return r&&n==="title"&&typeof o.tree_title=="string"?o.tree_title:Object.prototype.hasOwnProperty.call(o,n)?o[n]??null:null}function gr(e,t,r=!1){return t.mode==="full"?e:e.map(n=>{let o={};for(let i of t.fields)o[i]=si(n,i,r);return o})}function ai(e){let t=[];for(let r of e)t.push(r.metadata_key);return t}function ci(e,t){if(e.noTruncate!==!0)return nt(e.limit)??(t>=1e4?20:void 0)}function Gd(e,t,r){return t.after===void 0?yr(t.offset)??0:xr(e,t.after,r,n=>n.id)}function di(e,t,r){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:r??null}}async function Yd(e,t){let r=R(process.cwd(),t.path);await ne(r);let n=await v(r),o=ee(n.schema),i=ft(n.schema),s=e.projectionCommand??"list",a=Wo(e,s);return Od(a,ai(i.definitions),s),{pmRoot:r,settings:n,statusRegistry:o,runtimeFieldFilters:zt(e,i,"list"),typeRegistry:A(n,P()),projection:a}}async function Wd(e,t,r){let n=t.projection.fields.some(c=>K(c)==="body"),o=t.projection.mode==="full"||t.projection.fields.some(c=>zo.has(K(c))),i=pr(e),s=Lo(i),a=Mo(i);return e.includeBody||n||a?await qr(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,r,t.settings.schema):o||s?await At(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,r,t.settings.schema):await oe(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,r,t.settings.schema)}function Xd(e){let t=Xo(e.sort),r=Qo(e.order)??"asc",n=e.tree===!0;if(!n&&e.treeDepth!==void 0)throw new m("List --tree-depth requires --tree",f.USAGE);if(!t&&e.order!==void 0)throw new m("List --order requires --sort",f.USAGE);return{sortField:t,sortOrder:r,treeEnabled:n,treeDepth:n?Fd(e.treeDepth):void 0,parentRoot:n?ce(e.parent):void 0}}function Qd(e,t,r){let n=Po(t.status,r),o;t.lifecycleBucket==="in_progress"?o=[r.in_progress_status]:t.lifecycleBucket==="open"&&(o=[...r.active_statuses].filter(d=>d!==r.in_progress_status).sort((d,l)=>d.localeCompare(l)));let i=n??o??Po(e,r),s=En(t.status),a=n||s?{...t,excludeTerminal:!1}:t,c="all";return s?c="all":n!==void 0?c=n.length===1?n[0]:n:t.lifecycleBucket!==void 0?c=t.lifecycleBucket:i!==void 0?c=i.length===1?i[0]:i:a.excludeTerminal===!0&&(c=null),{resolvedStatus:i,explicitAllStatuses:s,effectiveOptions:a,filtersStatus:c}}function Jd(e,t,r,n,o){if(t.after!==void 0&&t.offset!==void 0)throw new m("List --after cannot be combined with --offset.",f.USAGE);let i=ci(t,e.length),s=Gd(e,t,o),a=i===void 0?e.slice(s):e.slice(s,s+i),c=gr(a,r,n),d=e.length,l=a.length>0&&s+a.length<d,u=l&&a.length>0?mt(o,a[a.length-1].id,s+a.length-1):void 0;return{projected:c,totalMatched:d,pageExtras:di(i,l,u)}}function li(e,t,r){return kr("list",{status:e,options:Rr(t,Tr),sort:r.sortField??"default",order:r.sortOrder,tree:r.treeEnabled,tree_depth:r.treeDepth??null})}async function Zd(e){let{options:t,runtime:r,statusSelection:n,ordering:o}=e,i=new Set(["status","limit","offset","compact","brief","full","fields","format","stream","includeBody","excludeTerminal","dependencyBlocked","lifecycleBucket","noTruncate","projectionCommand","truncate","notes","learnings","files","docs","tests","comments","deps","linkedCommand"]),s=[r.projection.mode==="full",r.projection.fields.some(g=>{let y=K(g);return y==="body"||zo.has(y)})].includes(!0);if([t.limit===void 0,t.after!==void 0,t.noTruncate===!0,t.includeBody===!0,t.dependencyBlocked===!0,t.strictRead===!0,o.treeEnabled,o.sortField!==void 0,s,Cr(),Object.keys(r.runtimeFieldFilters).length>0,Object.entries(t).some(([g,y])=>y!==void 0&&!i.has(g))].includes(!0))return null;let c=await pe(r.pmRoot,[...new Set(Object.values(r.typeRegistry.type_to_folder))]);if(!c)return null;let d=nt(t.limit),l=yr(t.offset)??0,u=await Tt({pmRoot:r.pmRoot,expectedSourceCursor:c.source_cursor,query:{statuses:n.resolvedStatus,excludeStatuses:n.resolvedStatus===void 0&&n.effectiveOptions.excludeTerminal===!0?[...r.statusRegistry.terminal_statuses]:void 0,terminalStatuses:[...r.statusRegistry.terminal_statuses],limit:d,offset:l}});if(!u)return null;let p=u.items.length>0&&l+u.items.length<u.total,_=p?mt(li(n.filtersStatus,t,o),u.items.at(-1).id,l+u.items.length-1):void 0;return{projected:gr(u.items,r.projection,!1),totalMatched:u.total,pageExtras:di(d,p,_)}}function el(e){let{filtersStatus:t,options:r,noTruncate:n,treeEnabled:o,treeDepth:i,sortField:s,sortOrder:a,runtimeFieldFilters:c}=e,d={};t!==null&&(d.status=t),r.dependencyBlocked===!0&&(d.blocked_semantics="status_or_dependency");let l=r;for(let u of xd){let p=l[u.optionKey];p!=null&&(d[u.summaryKey]=p)}for(let u of Ld)l[u.key]===!0&&(d[u.summaryKey]=!0);return Object.assign(d,Ko(r),jo(r)),Bo(d,r),n&&(d.no_truncate=!0),r.strictRead===!0&&(d.strict_read=!0),o&&(d.tree=!0,i!==void 0&&(d.tree_depth=i)),s!==void 0&&(d.sort=s,d.order=a),d.runtime_filters=c,d}async function Uh(e,t,r){let n=await Yd(t,r),o=[],i=Xd(t),s=Qd(e,t,n.statusRegistry),a=t.noTruncate===!0,c=await Zd({options:t,runtime:n,statusSelection:s,ordering:i}),d=c;if(!d){let y=await Wd(t,n,o),b=i.treeEnabled||ce(t.parent)!==void 0?Yr(Gr(y,Br())):void 0;Pd(y,t.tag,o);let C=ei(y,s.resolvedStatus,s.effectiveOptions,n.typeRegistry,n.statusRegistry,n.runtimeFieldFilters,b?.parents_by_child),L=t.dependencyBlocked===!0?(()=>{let U=Hr(y,n.statusRegistry);return C.filter(it=>U.has(it.id.trim().toLowerCase()))})():C,z=ii(L,i.sortField,i.sortOrder,n.statusRegistry),q=i.treeEnabled?ti(z,i.parentRoot,i.treeDepth,b,y):z;d=Jd(q,t,n.projection,i.treeEnabled,li(s.filtersStatus,t,i))}let l=M(),u=[...new Set(o)].sort((y,h)=>y.localeCompare(h)),p=vd(u,c!==null,t.strictRead===!0),_=n.projection.mode==="full"?null:[...n.projection.fields];if(n.projection.mode==="compact"&&t.compact===!0){let y=qo({filtersStatus:s.filtersStatus,options:t,treeEnabled:i.treeEnabled,treeDepth:i.treeDepth,sortField:i.sortField,sortOrder:i.sortOrder,runtimeFieldFilters:n.runtimeFieldFilters});return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:p,filters:y,projection:{mode:"compact",fields:_},...u.length>0?{warnings:u}:{}}}return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:p,filters:el({filtersStatus:s.filtersStatus,options:t,noTruncate:a,treeEnabled:i.treeEnabled,treeDepth:i.treeDepth,sortField:i.sortField,sortOrder:i.sortOrder,runtimeFieldFilters:n.runtimeFieldFilters}),projection:{mode:n.projection.mode,fields:_},sorting:{sort:i.sortField??"default",order:i.sortField?i.sortOrder:"asc"},now:l,...u.length>0?{warnings:u}:{}}}var Vh={applyFilters:ei,buildCompactListFilterSummary:qo,buildContentFilterEcho:jo,buildGovernanceMissingFilterEcho:Ko,resolveContentFieldFilters:pr,resolveMissingMetadataFilters:$o,compareBySortField:oi,compareDefaultSort:_r,compareNullableString:ri,compareNullableTimestamp:ni,normalizeProjectionField:K,parseAssigneeFilter:Jo,parseFieldSelectors:Yo,parseIdsFilter:Go,parseOffset:yr,parseProjectionConfig:Wo,resolveListUpdatedAfter:Ho,resolveListPageLimit:ci,parseSortField:Xo,parseSortOrder:Qo,orderItemsAsTree:ti,projectListItems:gr,readListFieldValue:si,runtimeMetadataKeysForProjection:ai,sortItems:ii,trimNonEmpty:ce,withTreeMetadata:mr};(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]="e252abd5-9585-56f7-9fc2-7b20459a2238")}catch{}})();async function ew(e){let t=R(process.cwd(),e);await ne(t);let r=await v(t),n=A(r,P());return{pmRoot:t,settings:r,typeRegistry:n}}async function ui(e,t,r,n){ue(e,Oe(t));let o=await _e(e,t,r.id_prefix,r.item_format,n);if(o)return{id:o.id,historyPath:ue(e,o.id),located:o};let i=re(t,r.id_prefix),s=Oe(t),a=i===s?[i]:[i,s];for(let c of a){let d=ue(e,c);if(await V(d))return{id:c,historyPath:d,located:null}}throw new m(`Item ${t} not found`,f.NOT_FOUND)}(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]="b6ef0b23-e861-50ec-b7b3-751863936631")}catch{}})();function bw(e,t){let r=St(e),n=e.length>0?e[e.length-1].after_hash:bt(),o=t===void 0||r.item_hash_version===void 0?void 0:Nr(t,r.item_hash_version,Mr(e.at(-1)?.hash_algorithm)),i=t===void 0?void 0:o===void 0?wt(t):o[Math.max(0,o.indexOf(n))],s=i===void 0?void 0:i===n,a=[...r.errors];return s===!1&&a.push("verify_failed:current_item_hash_mismatch"),{ok:a.length===0,entries:e.length,errors:a,latest_after_hash:e.length>0?e[e.length-1].after_hash:void 0,current_item_hash:i,current_matches_latest:s}}async function Ew(e,t,r={}){let n=R(r.cwd??process.cwd(),r.pmRoot);await ne(n);let o=await v(n),i=A(o,P()),s=await ui(n,e,o,i.type_to_folder),a=await me(s.historyPath,s.id);if(a.length===0)throw new m(`No history exists for ${s.id}; point-in-time reads are unavailable.`,f.NOT_FOUND);let c=Ur(t,a),d=jr(Vr(a,c.historyIndex),c),l=Et(d,{schema:o.schema});if(l.metadata.id!==s.id)throw new m(`History target resolved to item ${l.metadata.id}, expected ${s.id}.`,f.GENERIC_FAILURE);let u=a[c.historyIndex],p=zr(a,!0);return{document:l,reconstructed:!0,as_of_version:p===null?null:p+c.historyIndex+1,as_of_timestamp:u.ts,target:c,history_length:a.length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e524f0ad-faad-5d89-b8f5-1283979919ad")}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]="4e54ed7b-3bab-51a2-912b-1284eaf8187a")}catch{}})();var ot=1e6;function hr(e,t=ot,r=.8,n=!1){let o=new Set,i=(l,u)=>{if(o.add(`${l}:${u}`),o.size>t)throw new m(`Duplicate sweep exceeded ${t} candidate pairs; narrow it with statuses or since.`,f.CONFLICT,{code:"duplicate_sweep_cost_limit",required:"Narrow the duplicate query or increase its similarity threshold. No partial result was returned."})};if(n||r===0){for(let l=0;l<e.length;l+=1)for(let u=0;u<l;u+=1)i(u,l);return o}let s=new Map;for(let{prepared:l}of e)for(let u of l.tokens)s.set(u,(s.get(u)??0)+1);let a=new Map,c=new Map,d=new Map;for(let[l,{prepared:u}]of e.entries()){let p=[...u.tokens].sort((y,h)=>s.get(y)-s.get(h)||y.localeCompare(h)),_=p.length-Math.ceil(r*p.length-1e-12)+1,g=[{index:a,keys:[u.normalized],lengthFilter:!1},{index:c,keys:r<=.99?u.issueCodes:[],lengthFilter:!1},{index:d,keys:p.length===0?[""]:p.slice(0,_),lengthFilter:!0}];for(let y of g)tl(e,l,y,r,i)}return o}function tl(e,t,r,n,o){let i=e[t].prepared.tokens.length;for(let s of r.keys){let a=r.index.get(s)??[];for(let c of a){let d=e[c].prepared.tokens.length;r.lengthFilter&&Math.min(d,i)/Math.max(d,i)+1e-12<n||o(c,t)}a.push(t),r.index.set(s,a)}}(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]="8d07624c-8663-5aba-8018-1b2c47997bef")}catch{}})();var rl=3,fi=20,nl=.8,ol=100,mi=1e3;function Bw(e){return e===void 0?[]:[`likely_duplicates:${e.result.items.map(t=>t.id).join(",")}`,`likely_duplicate_recovery:${e.recovery.action}:${e.recovery.item_id}`]}async function il(e,t){let r=e.items[0],n=R(t.cwd??process.cwd(),t.pmRoot),o=ee((await v(n)).schema);return H(r.status,o)?{action:"reopen",item_id:r.id,command:`pm item reopen ${r.id} "<recurrence reason>"`,args:["item","reopen",r.id,"<recurrence reason>"]}:{action:"reuse",item_id:r.id,command:`pm get ${r.id} --full`,args:["get",r.id,"--full"]}}function wr(e){let t=e.limit??rl,r=e.threshold??nl;if(!Number.isSafeInteger(t)||t<0||t>fi)throw new m(`Similarity limit must be an integer from 0 to ${fi}.`,f.USAGE);if(!Number.isFinite(r)||r<0||r>1)throw new m("Similarity threshold must be a number from 0 to 1.",f.USAGE);return{limit:t,threshold:r}}function pi(e){let t=e.limit??ol;if(!Number.isSafeInteger(t)||t<0||t>mi)throw new m(`Duplicate cluster limit must be an integer from 0 to ${mi}.`,f.USAGE);let r=e.since===void 0?void 0:new Date(e.since);if(r&&Number.isNaN(r.getTime()))throw new m("Duplicate cluster --since must be a valid ISO timestamp.",f.USAGE);return{limit:t,since:r}}async function sl(e,t){let r=R(e.cwd??process.cwd(),e.pmRoot),n=await v(r),o=A(n),i=e.statuses?.map(u=>u.trim().toLowerCase()).filter(Boolean);if(e.statuses!==void 0&&i?.length===0)throw new m("Duplicate cluster statuses must include at least one lifecycle status or all.",f.USAGE);let s=ee(n.schema),a=i?.map(u=>{if(u==="all")return u;let p=fe(u,s);if(!p)throw new m(`Unknown duplicate-cluster status "${u}". Allowed: all, ${s.definitions.map(_=>_.id).join(", ")}.`,f.USAGE);return p}),c=a?.includes("all")===!0;if(c&&a?.some(u=>u!=="all"))throw new m('The "all" status cannot be combined with other statuses.',f.USAGE);let d=c?void 0:a,l=d?new Set(d):void 0;return{items:(await oe(r,n.item_format,o.type_to_folder,void 0,n.schema)).filter(u=>(!l||l.has(u.status))&&(!t||new Date(u.created_at).getTime()>=t.getTime())),statuses:d}}var Gw={buildDuplicateClusters:yi,collectDuplicateCandidatePairs:hr,createDuplicateUnionFind:_i};function _i(e){let t=Array.from({length:e},(n,o)=>o);return{parent:t,findRoot:n=>{let o=n;for(;t[o]!==o;)o=t[o];for(;t[n]!==n;){let i=t[n];t[n]=o,n=i}return o}}}function al(e,t,r,n){let o=[];for(let i of t){let[s,a]=i.split(":").map(u=>Number.parseInt(u,10)),c=ze(e[s].prepared,e[a].prepared);if(c.score<r)continue;let d=n.findRoot(s),l=n.findRoot(a);d!==l&&(n.parent[l]=d),o.push({left_id:e[s].item.id,right_id:e[a].item.id,...c})}return o}function yi(e,t,r,n){let o=new Map;for(let a of e.keys()){let c=r.findRoot(a),d=o.get(c)??[];d.push(a),o.set(c,d)}let i=new Map(e.map(({item:a},c)=>[a.id,r.findRoot(c)])),s=new Map;for(let a of t){let c=i.get(a.left_id),d=s.get(c)??[];d.push(a),s.set(c,d)}return[...o.values()].filter(a=>a.length>1).map(a=>{let c=(s.get(r.findRoot(a[0]))??[]).sort((d,l)=>l.score-d.score||d.left_id.localeCompare(l.left_id)||d.right_id.localeCompare(l.right_id));return{id:e[a[0]].item.id,items:a.map(d=>{let l=e[d].item;return{id:l.id,title:l.title,status:l.status,type:l.type}}),matches:c,max_score:c[0]?.score??0}}).sort((a,c)=>c.max_score-a.max_score||a.id.localeCompare(c.id)).slice(0,n)}function cl(e,t,r,n,o){return t.filter(i=>!r.has(i.id)).map(i=>({id:i.id,title:i.title,status:i.status,type:i.type,...$e(e,i.title)})).filter(i=>i.score>=n).sort((i,s)=>s.score-i.score||i.id.localeCompare(s.id)).slice(0,o)}async function dl(e,t={}){let r=e.title.trim();if(r.length===0)throw new m("Similarity candidate title must not be empty.",f.USAGE);let{limit:n,threshold:o}=wr(t),i=R(t.cwd??process.cwd(),t.pmRoot),s=await v(i),a=A(s),c=await pe(i,Object.values(a.type_to_folder)),d=we(r),l=c&&d.length>0?await vt({pmRoot:i,expectedSourceCursor:c.source_cursor,query:d.map(_=>`"${_.replaceAll('"','""')}"`).join(" OR "),limit:Math.max(n*10,50)}):null,u=l===null?await oe(i,s.item_format,a.type_to_folder,void 0,s.schema):l.items,p=cl(r,u,new Set(e.excludeIds??[]),o,n);return{items:p,count:p.length,threshold:o,source:l?"persistent_index":"metadata_fallback"}}function ll(e,t={}){let{threshold:r}=wr({...t,limit:void 0}),{limit:n}=pi(t),o=new Set;for(let l of e){if(!l.id.trim()||o.has(l.id))throw new m("Duplicate analysis requires unique non-empty item ids.",f.USAGE);o.add(l.id)}let i=[...e].sort((l,u)=>l.id.localeCompare(u.id)).map(l=>({item:l,prepared:he(l.title)})),s=hr(i,ot,r,t.exhaustive===!0),a=_i(i.length),c=al(i,s,r,a),d=yi(i,c,a,n);return{clusters:d,count:d.length,threshold:r,cost:{item_count:i.length,algorithm:t.exhaustive===!0||r===0?"exhaustive":"prefix_exact",possible_pairs:i.length*(i.length-1)/2,pair_limit:ot,recall_guarantee:"exact",candidate_pairs:s.size,scored_pairs:s.size}}}async function Yw(e={}){wr({...e,limit:void 0});let{since:t}=pi(e),{items:r,statuses:n}=await sl(e,t);return{...ll(r,e),source:"metadata_scan",filters:{statuses:n??null,since:e.since??null}}}async function Ww(e,t){if(t.mode==="off")return;let r=await dl(e,t);if(r.count===0)return;let n=await il(r,t),o=t.mode==="strict"&&t.allowDuplicate===!0;if(t.mode==="strict"&&!o){let i=r.items.map(a=>`${a.id} (${a.status}): ${a.title}`).join("; "),s=n.action==="reopen"?"Reopen the canonical item":"Reuse the canonical item";throw new m(`Likely duplicate item(s) found: ${i}. ${s} or pass --allow-duplicate with explicit intent.`,f.CONFLICT,{code:"likely_duplicate",required:`${s}, or explicitly acknowledge the duplicate with --allow-duplicate.`,recovery:{suggested_flags:["--allow-duplicate"],suggested_retry:n.command,suggested_retry_args:n.args}})}return{mode:t.mode,bypassed:o,result:r,recovery: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]="e15abc24-c46a-512b-b859-015186c960df")}catch{}})();function Qw(e,t){let r=t??{};return e.filter(n=>r[n.id]!==n.updated_at).map(n=>n.id).sort((n,o)=>n.localeCompare(o))}export{Ji as a,ts as b,ns as c,is as d,ss as e,ru as f,as as g,cs as h,su as i,un as j,ds as k,ls as l,us as m,fs as n,hs as o,Es as p,au as q,Ss as r,yn as s,vs as t,Is as u,cu as v,As as w,Ve as x,du as y,je as z,Rs as A,ks as B,Nt as C,Ls as D,Ft as E,Ms as F,vu as G,Os as H,hn as I,Ns as J,Fs as K,zs as L,Lu as M,js as N,$t as O,Gs as P,Wr as Q,zt as R,Ut as S,He as T,ya as U,wl as V,Ct as W,Zr as X,Rt as Y,xi as Z,Li as _,Sl as $,en as aa,ie as ba,kt as ca,Lt as da,Yt as ea,sf as fa,Wt as ga,Xe as ha,Ln as ia,Qe as ja,Xt as ka,Qt as la,Jt as ma,Zt as na,Pn as oa,$n as pa,Cf as qa,Ze as ra,ve as sa,ji as ta,on as ua,Ki as va,qi as wa,Hi as xa,Dl as ya,Nl as za,ge as Aa,Pe as Ba,we as Ca,he as Da,$e as Ea,ze as Fa,sn as Ga,Xi as Ha,oc as Ia,ac as Ja,dc as Ka,lc as La,Ec as Ma,Wn as Na,rt as Oa,Bm as Pa,nt as Qa,go as Ra,Zg as Sa,cr as Ta,Ie as Ua,ho as Va,wo as Wa,vo as Xa,ur as Ya,Ao as Za,ah as _a,ch as $a,ko as ab,xo as bb,lh as cb,$o as db,pr as eb,Oo as fb,No as gb,Rd as hb,jo as ib,Ko as jb,Uh as kb,Vh as lb,ew as mb,ui as nb,bw as ob,Ew as pb,Bw as qb,Gw as rb,dl as sb,ll as tb,Yw as ub,Ww as vb,Qw as wb};
|
|
20
|
-
//# sourceMappingURL=chunk-
|
|
20
|
+
//# sourceMappingURL=chunk-V7OPZRL6.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{$ as y,O as W,Ob as X,P as K,Q as G,R as J,aa as _,q as x,r as $,s as P,sa as H,t as q,u as V,va as Y}from"./chunk-NVVB2HJC.js";(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]="84305ac5-3641-52f5-80f2-22c0f0ae70ae")}catch{}})();var k=new Set(K),D=Object.freeze({get size(){return k.size},has(e){return k.has(e)},entries(){return k.entries()},keys(){return k.keys()},values(){return k.values()},forEach(e,t){k.forEach(r=>e.call(t,r,r,D))},[Symbol.iterator](){return k.values()}});function B(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function Z(e){return typeof e!="string"?null:W(e)}function de(e){try{return structuredClone(e)}catch{return e}}function ue(e){let t=e.trim(),r=t.indexOf("=");if(r<=0)throw new _(`--field entries must use name=value syntax, received: ${e}`,y.USAGE);let n=t.slice(0,r).trim(),s=t.slice(r+1);return{key:n,value:s}}function fe(e){return`--${e.replaceAll("_","-")}`}function me(e,t,r){try{let n=JSON.parse(e);if(r==="array"&&Array.isArray(n)||r==="object"&&typeof n=="object"&&n!==null&&!Array.isArray(n))return n}catch{}throw new _(`--field ${t}=... must be valid JSON ${r}`,y.USAGE)}function ye(e,t,r){if(t==="string")return r;if(t==="number"){let n=r.trim();if(n.length===0)throw new _(`--field ${e}=... must be a number`,y.USAGE);let s=Number(n);if(!Number.isFinite(s))throw new _(`--field ${e}=... must be a number`,y.USAGE);return s}if(t==="boolean"){let n=r.trim().toLowerCase();if(n==="true"||n==="1"||n==="yes")return!0;if(n==="false"||n==="0"||n==="no")return!1;throw new _(`--field ${e}=... must be one of true|false|1|0|yes|no`,y.USAGE)}return t==="string_array"?r.split(/[\n,|]/u).map(n=>n.trim()).filter(n=>n.length>0):me(r,e,t)}function U(e){let t=new Map;if(!e)return t;for(let r of e.item_fields)for(let n of r.fields){let s=B(n.name),i=Z(n.type);if(!s||!i)continue;let l=t.get(s);if(l&&l.type!==i)throw new _(`Extension item field "${s}" is declared with conflicting types: ${l.type}, ${i}`,y.USAGE,{code:"extension_item_field_type_conflict",nextSteps:["Make every active extension declaration for this field use the same type."]});t.set(s,{name:s,type:i})}return t}function Q(e){if(D.has(e))throw new _(`Extension item field "${e}" collides with built-in item metadata "${e}"; rename the extension field with an extension-specific prefix. Reserved fields: ${[...D].sort((t,r)=>t.localeCompare(r)).join(", ")}.`,y.USAGE,{code:"extension_item_field_reserved",nextSteps:["Rename the extension item field, preferably with an extension-specific prefix."]})}function Qe(e){return[...U(e).keys()].sort((t,r)=>t.localeCompare(r))}function et(e,t){if(!e||e.length===0)return{};let r=U(t),n={};for(let s of e){let{key:i,value:l}=ue(s),a=r.get(i);if(!a){if(D.has(i)){let c=fe(i);throw new _(`--field ${i} is a core item field, not an extension field`,y.USAGE,{code:"core_item_field_requires_dedicated_flag",field:i,recovery:{provided_fields:[i],suggested_flags:[c]},nextSteps:[`Set the core field with its dedicated flag: pm update <id> ${c} <value>`,`When closing an item, pm close <id> also accepts ${c} <value>.`]})}let o=[...r.keys()].sort((c,u)=>c.localeCompare(u));throw new _(`--field ${i} is not declared by an active extension item-field registration`,y.USAGE,{code:"extension_item_field_unknown",recovery:{provided_fields:o},nextSteps:o.length>0?[`Use one of the declared fields: ${o.join(", ")}`]:["Activate an extension that calls registerItemFields before setting extension fields."]})}Q(a.name),n[a.name]=ye(a.name,a.type,l)}return n}function _e(e,t){return t==="string"?typeof e=="string":t==="number"?typeof e=="number"&&Number.isFinite(e):t==="boolean"?typeof e=="boolean":t==="array"?Array.isArray(e):t==="string_array"?Array.isArray(e)&&e.every(r=>typeof r=="string"):typeof e=="object"&&e!==null&&!Array.isArray(e)}function pe(e,t){return!t||t.length===0?!0:t.some(r=>Object.is(r,e))}function tt(e,t,r={}){if(t){U(t);for(let n of t.item_fields)for(let s of n.fields){let i=B(s.name);if(!i)continue;Q(i),!(i in e)&&!r.skipDefaultFields?.has(i)&&Object.prototype.hasOwnProperty.call(s,"default")&&(e[i]=de(s.default));let l=e[i];if(l===void 0)continue;let a=Z(s.type);if(a&&!_e(l,a))throw new TypeError(`Item field "${i}" must be of type ${a}`);let o=Array.isArray(s.values)?s.values:void 0;if(!pe(l,o))throw new TypeError(`Item field "${i}" must match one of the configured allowed values`)}}}(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]="d66d32f8-a5f2-5068-bcd0-b93094d7c6a4")}catch{}})();var we=2e3,z=new Map;function A(e){if(typeof e!="string")return"";let t=z.get(e);if(t!==void 0)return t;let r=e.trim().toLowerCase().replaceAll(/[\s-]+/g,"_");return z.size>=we&&X(z),z.set(e,r),r}import te from"node:path";import{link as he,mkdir as ge,mkdtemp as Se,rm as Ae,writeFile as be}from"node:fs/promises";import M 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]="fcbdb4d9-ea0e-5944-98c3-4d1944d2641d")}catch{}})();async function ee(e,t){let r=M.dirname(e);await ge(r,{recursive:!0});let n=await Se(M.join(r,".pm-seed-")),s=M.join(n,"value");try{await be(s,t,"utf8");try{return await he(s,e),!0}catch(i){if(i.code==="EEXIST")return!1;throw i}}finally{await Ae(n,{recursive:!0,force:!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]="5e083565-3e07-5fb3-81ce-c392feaa8630")}catch{}})();var p=Object.freeze({types:"schema/types.json",statuses:"schema/statuses.json",fields:"schema/fields.json",workflows:"schema/workflows.json"}),se=J,j=G,ve=["create","update"],Ee=new Set($),ke=new Set(P),Fe=new Set(q),Te=new Set(V),Ie=new Set(["string","number","boolean","array","object"]),De=16;function ie(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var ze=[e=>e.type===void 0||typeof e.type=="string"&&Ie.has(e.type),e=>!Object.hasOwn(e,"const")||N(e.const),e=>e.enum===void 0||Array.isArray(e.enum)&&e.enum.every(t=>N(t)),e=>e.min_length===void 0||Number.isInteger(e.min_length)&&e.min_length>=0,e=>e.min_items===void 0||Number.isInteger(e.min_items)&&e.min_items>=0,e=>e.format===void 0||e.format==="date-time",e=>e.required===void 0||Array.isArray(e.required)&&e.required.every(t=>typeof t=="string"&&t.length>0),e=>e.additional_properties===void 0||typeof e.additional_properties=="boolean",e=>e.properties===void 0||ie(e.properties),e=>e.one_of===void 0||Array.isArray(e.one_of)&&e.one_of.length>0];function N(e,t=new Set){if(e===null||typeof e=="string"||typeof e=="boolean")return!0;if(typeof e=="number")return Number.isFinite(e);if(typeof e!="object"||t.has(e))return!1;t.add(e);let r=Array.isArray(e)?e.every(n=>N(n,t)):Object.values(e).every(n=>N(n,t));return t.delete(e),r}function R(e,t=0,r=new Set){if(!ie(e)||t>De||r.has(e))return;r.add(e);let n=e,s=n.type,i=n.enum,l=n.one_of,a=n.properties,o=n.items,c=n.required,u=n.min_length,d=n.min_items,w=n.format,g=n.additional_properties;if(!ze.every(m=>m(n))){r.delete(e);return}let b=a===void 0?void 0:Object.fromEntries(Object.entries(a).map(([m,O])=>[m,R(O,t+1,r)])),v=o===void 0?void 0:R(o,t+1,r),E=l===void 0?void 0:l.map(m=>R(m,t+1,r));if([...Object.values(b??{}),...o===void 0?[]:[v],...E??[]].some(m=>m===void 0)){r.delete(e);return}return r.delete(e),Object.fromEntries(Object.entries({type:s,const:Object.hasOwn(n,"const")?n.const:void 0,enum:i,min_length:u,min_items:d,format:w,properties:b,required:c===void 0?void 0:[...new Set(c)],additional_properties:g,items:v,one_of:E}).filter(([,m])=>m!==void 0))}function T(e){let t=Array.isArray(e)?e:[];return[...new Set(t.map(r=>typeof r=="string"?r.trim():"").filter(r=>r.length>0))].sort((r,n)=>r.localeCompare(n))}function f(e){if(typeof e!="string"||e.length===0)return;let t=A(e);return t.length>0?t:void 0}function Re(e){return e.startsWith("--")?e.slice(2):e}function re(e){return typeof e=="string"?Re(e.trim().toLowerCase().replaceAll(/[\s_]+/g,"-")):""}function oe(e){return e.replaceAll("_","-")}function Ne(e){let t=e.replaceAll(/[^A-Za-z0-9]+/g," ").trim().split(/\s+/).filter(s=>s.length>0).map(s=>s.toLowerCase());if(t.length===0)return e;let[r,...n]=t;return`${r}${n.map(s=>`${s.slice(0,1).toUpperCase()}${s.slice(1)}`).join("")}`}function L(e,t){let r=f(e.id);if(!r)return null;let n=[...new Set(T(e.aliases).map(A).filter(a=>a.length>0))].sort((a,o)=>a.localeCompare(o)),s=T(e.roles).filter(a=>Ee.has(a)),i=e.description?.trim(),l=typeof e.order=="number"&&Number.isFinite(e.order)?e.order:t;return{id:r,aliases:n,roles:s,description:i&&i.length>0?i:void 0,order:l}}function Oe(e){return{draft_status:f(e?.draft_status),open_status:f(e?.open_status),in_progress_status:f(e?.in_progress_status),blocked_status:f(e?.blocked_status),close_status:f(e?.close_status),canceled_status:f(e?.canceled_status)}}function ae(e,t){if(!Array.isArray(t)||t.length!==2)return;let r=A(t[0]),n=A(t[1]);r.length===0||n.length===0||e.pairs.some(s=>s[0]===r&&s[1]===n)||e.pairs.push([r,n])}function Ue(e){let t=typeof e?.type=="string"?e.type.trim():"";if(t.length===0||!Array.isArray(e?.allowed_transitions))return null;let r={type:t,pairs:[],denyAll:e.allowed_transitions.length===0};for(let n of e.allowed_transitions)ae(r,n);return{typeKey:t.toLowerCase(),record:r}}function Me(e){if(!Array.isArray(e)||e.length===0)return;let t=new Map;for(let n of e){let s=Ue(n);if(s===null)continue;let i=t.get(s.typeKey)??s.record;i.denyAll||=s.record.denyAll;for(let l of s.record.pairs)ae(i,l);t.set(s.typeKey,i)}let r=[];for(let n of t.values())(n.pairs.length>0||n.denyAll)&&r.push({type:n.type,allowed_transitions:n.pairs});return r.sort((n,s)=>n.type.localeCompare(s.type)),r.length>0?r:void 0}function le(e){let t=A(e.key??"");if(!t)return null;let r=A(e.metadata_key??e.front_matter_key??t),n=re(e.cli_flag??oe(t));if(!n)return null;let s=T(e.cli_aliases).map(d=>re(d)).filter(d=>d.length>0&&d!==n),i=typeof e.type=="string"?e.type.trim().toLowerCase():"string",l=ke.has(i)?i:"string",a=(()=>{let d=T(e.commands).filter(w=>Fe.has(w));return d.length>0?d:[...ve]})(),o=e.description?.trim(),c=T(e.required_types),u=e.value_schema===void 0?void 0:R(e.value_schema);return e.value_schema!==void 0&&u===void 0?null:{key:t,metadata_key:r,cli_flag:n,cli_aliases:s,description:o&&o.length>0?o:void 0,type:l,commands:a,repeatable:[e.repeatable===!0,l==="string_array"].includes(!0),required:e.required===!0,required_on_create:e.required_on_create===!0,required_types:c,allow_unset:e.allow_unset!==!1,value_schema:u}}function Le(e){let t=new Map;for(let[n,s]of e.entries()){let i=L(s,n);i&&t.set(i.id,i)}let r=ne([...t.values()]);return r.length>0?r:ne(j.map((n,s)=>L(n,s)).filter(n=>n!==null))}function ne(e){return e.sort((t,r)=>t.order===r.order?t.id.localeCompare(r.id):t.order-r.order)}function je(e){let t=new Map;for(let r of e??[]){let n=le(r);n&&t.set(n.key,n)}return[...t.values()].sort((r,n)=>r.key.localeCompare(n.key))}function Ce(e){return{id:e.id,aliases:e.aliases.length>0?[...e.aliases]:void 0,roles:e.roles.length>0?[...e.roles]:void 0,description:e.description,order:e.order}}function xe(e){return{key:e.key,metadata_key:e.metadata_key!==e.key?e.metadata_key:void 0,cli_flag:e.cli_flag!==oe(e.key)?e.cli_flag:void 0,cli_aliases:e.cli_aliases.length>0?[...e.cli_aliases]:void 0,description:e.description,type:e.type,commands:[...e.commands],repeatable:e.repeatable===!0?!0:void 0,required:e.required===!0?!0:void 0,required_on_create:e.required_on_create===!0?!0:void 0,required_types:e.required_types.length>0?[...e.required_types]:void 0,allow_unset:e.allow_unset===!1?!1:void 0,value_schema:e.value_schema}}function $e(e){let t=typeof e=="string"?e.trim().toLowerCase():"allow";return Te.has(t)?t:"allow"}function I(e){let t={...p,...e?.files},r=e?.statuses&&e.statuses.length>0?e.statuses:j,n=Le(r),s=je(e?.fields);return{version:typeof e?.version=="number"&&Number.isFinite(e.version)?Math.floor(e.version):1,files:t,statuses:n.map(Ce),fields:s.map(xe),workflow:{...se,...Oe(e?.workflow)},type_workflows:Me(e?.type_workflows),unknown_field_policy:$e(e?.unknown_field_policy)}}function Pe(e,t,r){try{return JSON.parse(e)}catch{r.push(t);return}}function qe(e){if(Array.isArray(e))return e;if(typeof e!="object"||e===null)return;let t=e;if(Array.isArray(t.definitions))return t.definitions;if(typeof t.item_types=="object"&&t.item_types!==null){let r=t.item_types;if(Array.isArray(r.definitions))return r.definitions}}function Ve(e){if(Array.isArray(e))return e;if(typeof e!="object"||e===null)return;let t=e;if(Array.isArray(t.statuses))return t.statuses;if(Array.isArray(t.definitions))return t.definitions}function We(e){if(Array.isArray(e))return e;if(typeof e!="object"||e===null)return;let t=e;if(Array.isArray(t.fields))return t.fields;if(Array.isArray(t.definitions))return t.definitions}function Ke(e){if(typeof e!="object"||e===null||Array.isArray(e))return;let t=e;return typeof t.workflow=="object"&&t.workflow!==null&&!Array.isArray(t.workflow)?t.workflow:typeof t.workflows=="object"&&t.workflows!==null&&!Array.isArray(t.workflows)?t.workflows:t}function Ge(e){if(typeof e!="object"||e===null||Array.isArray(e))return;let t=e;if(Array.isArray(t.type_workflows))return t.type_workflows}function h(e,t,r){let n=t?.trim()||r;return te.isAbsolute(n)?n:te.join(e,n)}function yt(e,t){return h(e,t.files.types,p.types)}async function _t(e,t){let r=I(t),n=[{path:h(e,r.files.types,p.types),seed:{definitions:[]}},{path:h(e,r.files.statuses,p.statuses),seed:{statuses:j}},{path:h(e,r.files.fields,p.fields),seed:{fields:[]}},{path:h(e,r.files.workflows,p.workflows),seed:{workflow:se}}],s=[];for(let i of n)await H(i.path)||await ee(i.path,`${JSON.stringify(i.seed,null,2)}
|
|
1
|
+
import{$ as y,O as W,Ob as X,P as K,Q as G,R as J,aa as _,q as x,r as $,s as P,sa as H,t as q,u as V,va as Y}from"./chunk-BRLXKRI2.js";(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]="84305ac5-3641-52f5-80f2-22c0f0ae70ae")}catch{}})();var k=new Set(K),D=Object.freeze({get size(){return k.size},has(e){return k.has(e)},entries(){return k.entries()},keys(){return k.keys()},values(){return k.values()},forEach(e,t){k.forEach(r=>e.call(t,r,r,D))},[Symbol.iterator](){return k.values()}});function B(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function Z(e){return typeof e!="string"?null:W(e)}function de(e){try{return structuredClone(e)}catch{return e}}function ue(e){let t=e.trim(),r=t.indexOf("=");if(r<=0)throw new _(`--field entries must use name=value syntax, received: ${e}`,y.USAGE);let n=t.slice(0,r).trim(),s=t.slice(r+1);return{key:n,value:s}}function fe(e){return`--${e.replaceAll("_","-")}`}function me(e,t,r){try{let n=JSON.parse(e);if(r==="array"&&Array.isArray(n)||r==="object"&&typeof n=="object"&&n!==null&&!Array.isArray(n))return n}catch{}throw new _(`--field ${t}=... must be valid JSON ${r}`,y.USAGE)}function ye(e,t,r){if(t==="string")return r;if(t==="number"){let n=r.trim();if(n.length===0)throw new _(`--field ${e}=... must be a number`,y.USAGE);let s=Number(n);if(!Number.isFinite(s))throw new _(`--field ${e}=... must be a number`,y.USAGE);return s}if(t==="boolean"){let n=r.trim().toLowerCase();if(n==="true"||n==="1"||n==="yes")return!0;if(n==="false"||n==="0"||n==="no")return!1;throw new _(`--field ${e}=... must be one of true|false|1|0|yes|no`,y.USAGE)}return t==="string_array"?r.split(/[\n,|]/u).map(n=>n.trim()).filter(n=>n.length>0):me(r,e,t)}function U(e){let t=new Map;if(!e)return t;for(let r of e.item_fields)for(let n of r.fields){let s=B(n.name),i=Z(n.type);if(!s||!i)continue;let l=t.get(s);if(l&&l.type!==i)throw new _(`Extension item field "${s}" is declared with conflicting types: ${l.type}, ${i}`,y.USAGE,{code:"extension_item_field_type_conflict",nextSteps:["Make every active extension declaration for this field use the same type."]});t.set(s,{name:s,type:i})}return t}function Q(e){if(D.has(e))throw new _(`Extension item field "${e}" collides with built-in item metadata "${e}"; rename the extension field with an extension-specific prefix. Reserved fields: ${[...D].sort((t,r)=>t.localeCompare(r)).join(", ")}.`,y.USAGE,{code:"extension_item_field_reserved",nextSteps:["Rename the extension item field, preferably with an extension-specific prefix."]})}function Qe(e){return[...U(e).keys()].sort((t,r)=>t.localeCompare(r))}function et(e,t){if(!e||e.length===0)return{};let r=U(t),n={};for(let s of e){let{key:i,value:l}=ue(s),a=r.get(i);if(!a){if(D.has(i)){let c=fe(i);throw new _(`--field ${i} is a core item field, not an extension field`,y.USAGE,{code:"core_item_field_requires_dedicated_flag",field:i,recovery:{provided_fields:[i],suggested_flags:[c]},nextSteps:[`Set the core field with its dedicated flag: pm update <id> ${c} <value>`,`When closing an item, pm close <id> also accepts ${c} <value>.`]})}let o=[...r.keys()].sort((c,u)=>c.localeCompare(u));throw new _(`--field ${i} is not declared by an active extension item-field registration`,y.USAGE,{code:"extension_item_field_unknown",recovery:{provided_fields:o},nextSteps:o.length>0?[`Use one of the declared fields: ${o.join(", ")}`]:["Activate an extension that calls registerItemFields before setting extension fields."]})}Q(a.name),n[a.name]=ye(a.name,a.type,l)}return n}function _e(e,t){return t==="string"?typeof e=="string":t==="number"?typeof e=="number"&&Number.isFinite(e):t==="boolean"?typeof e=="boolean":t==="array"?Array.isArray(e):t==="string_array"?Array.isArray(e)&&e.every(r=>typeof r=="string"):typeof e=="object"&&e!==null&&!Array.isArray(e)}function pe(e,t){return!t||t.length===0?!0:t.some(r=>Object.is(r,e))}function tt(e,t,r={}){if(t){U(t);for(let n of t.item_fields)for(let s of n.fields){let i=B(s.name);if(!i)continue;Q(i),!(i in e)&&!r.skipDefaultFields?.has(i)&&Object.prototype.hasOwnProperty.call(s,"default")&&(e[i]=de(s.default));let l=e[i];if(l===void 0)continue;let a=Z(s.type);if(a&&!_e(l,a))throw new TypeError(`Item field "${i}" must be of type ${a}`);let o=Array.isArray(s.values)?s.values:void 0;if(!pe(l,o))throw new TypeError(`Item field "${i}" must match one of the configured allowed values`)}}}(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]="d66d32f8-a5f2-5068-bcd0-b93094d7c6a4")}catch{}})();var we=2e3,z=new Map;function A(e){if(typeof e!="string")return"";let t=z.get(e);if(t!==void 0)return t;let r=e.trim().toLowerCase().replaceAll(/[\s-]+/g,"_");return z.size>=we&&X(z),z.set(e,r),r}import te from"node:path";import{link as he,mkdir as ge,mkdtemp as Se,rm as Ae,writeFile as be}from"node:fs/promises";import M 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]="fcbdb4d9-ea0e-5944-98c3-4d1944d2641d")}catch{}})();async function ee(e,t){let r=M.dirname(e);await ge(r,{recursive:!0});let n=await Se(M.join(r,".pm-seed-")),s=M.join(n,"value");try{await be(s,t,"utf8");try{return await he(s,e),!0}catch(i){if(i.code==="EEXIST")return!1;throw i}}finally{await Ae(n,{recursive:!0,force:!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]="5e083565-3e07-5fb3-81ce-c392feaa8630")}catch{}})();var p=Object.freeze({types:"schema/types.json",statuses:"schema/statuses.json",fields:"schema/fields.json",workflows:"schema/workflows.json"}),se=J,j=G,ve=["create","update"],Ee=new Set($),ke=new Set(P),Fe=new Set(q),Te=new Set(V),Ie=new Set(["string","number","boolean","array","object"]),De=16;function ie(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var ze=[e=>e.type===void 0||typeof e.type=="string"&&Ie.has(e.type),e=>!Object.hasOwn(e,"const")||N(e.const),e=>e.enum===void 0||Array.isArray(e.enum)&&e.enum.every(t=>N(t)),e=>e.min_length===void 0||Number.isInteger(e.min_length)&&e.min_length>=0,e=>e.min_items===void 0||Number.isInteger(e.min_items)&&e.min_items>=0,e=>e.format===void 0||e.format==="date-time",e=>e.required===void 0||Array.isArray(e.required)&&e.required.every(t=>typeof t=="string"&&t.length>0),e=>e.additional_properties===void 0||typeof e.additional_properties=="boolean",e=>e.properties===void 0||ie(e.properties),e=>e.one_of===void 0||Array.isArray(e.one_of)&&e.one_of.length>0];function N(e,t=new Set){if(e===null||typeof e=="string"||typeof e=="boolean")return!0;if(typeof e=="number")return Number.isFinite(e);if(typeof e!="object"||t.has(e))return!1;t.add(e);let r=Array.isArray(e)?e.every(n=>N(n,t)):Object.values(e).every(n=>N(n,t));return t.delete(e),r}function R(e,t=0,r=new Set){if(!ie(e)||t>De||r.has(e))return;r.add(e);let n=e,s=n.type,i=n.enum,l=n.one_of,a=n.properties,o=n.items,c=n.required,u=n.min_length,d=n.min_items,w=n.format,g=n.additional_properties;if(!ze.every(m=>m(n))){r.delete(e);return}let b=a===void 0?void 0:Object.fromEntries(Object.entries(a).map(([m,O])=>[m,R(O,t+1,r)])),v=o===void 0?void 0:R(o,t+1,r),E=l===void 0?void 0:l.map(m=>R(m,t+1,r));if([...Object.values(b??{}),...o===void 0?[]:[v],...E??[]].some(m=>m===void 0)){r.delete(e);return}return r.delete(e),Object.fromEntries(Object.entries({type:s,const:Object.hasOwn(n,"const")?n.const:void 0,enum:i,min_length:u,min_items:d,format:w,properties:b,required:c===void 0?void 0:[...new Set(c)],additional_properties:g,items:v,one_of:E}).filter(([,m])=>m!==void 0))}function T(e){let t=Array.isArray(e)?e:[];return[...new Set(t.map(r=>typeof r=="string"?r.trim():"").filter(r=>r.length>0))].sort((r,n)=>r.localeCompare(n))}function f(e){if(typeof e!="string"||e.length===0)return;let t=A(e);return t.length>0?t:void 0}function Re(e){return e.startsWith("--")?e.slice(2):e}function re(e){return typeof e=="string"?Re(e.trim().toLowerCase().replaceAll(/[\s_]+/g,"-")):""}function oe(e){return e.replaceAll("_","-")}function Ne(e){let t=e.replaceAll(/[^A-Za-z0-9]+/g," ").trim().split(/\s+/).filter(s=>s.length>0).map(s=>s.toLowerCase());if(t.length===0)return e;let[r,...n]=t;return`${r}${n.map(s=>`${s.slice(0,1).toUpperCase()}${s.slice(1)}`).join("")}`}function L(e,t){let r=f(e.id);if(!r)return null;let n=[...new Set(T(e.aliases).map(A).filter(a=>a.length>0))].sort((a,o)=>a.localeCompare(o)),s=T(e.roles).filter(a=>Ee.has(a)),i=e.description?.trim(),l=typeof e.order=="number"&&Number.isFinite(e.order)?e.order:t;return{id:r,aliases:n,roles:s,description:i&&i.length>0?i:void 0,order:l}}function Oe(e){return{draft_status:f(e?.draft_status),open_status:f(e?.open_status),in_progress_status:f(e?.in_progress_status),blocked_status:f(e?.blocked_status),close_status:f(e?.close_status),canceled_status:f(e?.canceled_status)}}function ae(e,t){if(!Array.isArray(t)||t.length!==2)return;let r=A(t[0]),n=A(t[1]);r.length===0||n.length===0||e.pairs.some(s=>s[0]===r&&s[1]===n)||e.pairs.push([r,n])}function Ue(e){let t=typeof e?.type=="string"?e.type.trim():"";if(t.length===0||!Array.isArray(e?.allowed_transitions))return null;let r={type:t,pairs:[],denyAll:e.allowed_transitions.length===0};for(let n of e.allowed_transitions)ae(r,n);return{typeKey:t.toLowerCase(),record:r}}function Me(e){if(!Array.isArray(e)||e.length===0)return;let t=new Map;for(let n of e){let s=Ue(n);if(s===null)continue;let i=t.get(s.typeKey)??s.record;i.denyAll||=s.record.denyAll;for(let l of s.record.pairs)ae(i,l);t.set(s.typeKey,i)}let r=[];for(let n of t.values())(n.pairs.length>0||n.denyAll)&&r.push({type:n.type,allowed_transitions:n.pairs});return r.sort((n,s)=>n.type.localeCompare(s.type)),r.length>0?r:void 0}function le(e){let t=A(e.key??"");if(!t)return null;let r=A(e.metadata_key??e.front_matter_key??t),n=re(e.cli_flag??oe(t));if(!n)return null;let s=T(e.cli_aliases).map(d=>re(d)).filter(d=>d.length>0&&d!==n),i=typeof e.type=="string"?e.type.trim().toLowerCase():"string",l=ke.has(i)?i:"string",a=(()=>{let d=T(e.commands).filter(w=>Fe.has(w));return d.length>0?d:[...ve]})(),o=e.description?.trim(),c=T(e.required_types),u=e.value_schema===void 0?void 0:R(e.value_schema);return e.value_schema!==void 0&&u===void 0?null:{key:t,metadata_key:r,cli_flag:n,cli_aliases:s,description:o&&o.length>0?o:void 0,type:l,commands:a,repeatable:[e.repeatable===!0,l==="string_array"].includes(!0),required:e.required===!0,required_on_create:e.required_on_create===!0,required_types:c,allow_unset:e.allow_unset!==!1,value_schema:u}}function Le(e){let t=new Map;for(let[n,s]of e.entries()){let i=L(s,n);i&&t.set(i.id,i)}let r=ne([...t.values()]);return r.length>0?r:ne(j.map((n,s)=>L(n,s)).filter(n=>n!==null))}function ne(e){return e.sort((t,r)=>t.order===r.order?t.id.localeCompare(r.id):t.order-r.order)}function je(e){let t=new Map;for(let r of e??[]){let n=le(r);n&&t.set(n.key,n)}return[...t.values()].sort((r,n)=>r.key.localeCompare(n.key))}function Ce(e){return{id:e.id,aliases:e.aliases.length>0?[...e.aliases]:void 0,roles:e.roles.length>0?[...e.roles]:void 0,description:e.description,order:e.order}}function xe(e){return{key:e.key,metadata_key:e.metadata_key!==e.key?e.metadata_key:void 0,cli_flag:e.cli_flag!==oe(e.key)?e.cli_flag:void 0,cli_aliases:e.cli_aliases.length>0?[...e.cli_aliases]:void 0,description:e.description,type:e.type,commands:[...e.commands],repeatable:e.repeatable===!0?!0:void 0,required:e.required===!0?!0:void 0,required_on_create:e.required_on_create===!0?!0:void 0,required_types:e.required_types.length>0?[...e.required_types]:void 0,allow_unset:e.allow_unset===!1?!1:void 0,value_schema:e.value_schema}}function $e(e){let t=typeof e=="string"?e.trim().toLowerCase():"allow";return Te.has(t)?t:"allow"}function I(e){let t={...p,...e?.files},r=e?.statuses&&e.statuses.length>0?e.statuses:j,n=Le(r),s=je(e?.fields);return{version:typeof e?.version=="number"&&Number.isFinite(e.version)?Math.floor(e.version):1,files:t,statuses:n.map(Ce),fields:s.map(xe),workflow:{...se,...Oe(e?.workflow)},type_workflows:Me(e?.type_workflows),unknown_field_policy:$e(e?.unknown_field_policy)}}function Pe(e,t,r){try{return JSON.parse(e)}catch{r.push(t);return}}function qe(e){if(Array.isArray(e))return e;if(typeof e!="object"||e===null)return;let t=e;if(Array.isArray(t.definitions))return t.definitions;if(typeof t.item_types=="object"&&t.item_types!==null){let r=t.item_types;if(Array.isArray(r.definitions))return r.definitions}}function Ve(e){if(Array.isArray(e))return e;if(typeof e!="object"||e===null)return;let t=e;if(Array.isArray(t.statuses))return t.statuses;if(Array.isArray(t.definitions))return t.definitions}function We(e){if(Array.isArray(e))return e;if(typeof e!="object"||e===null)return;let t=e;if(Array.isArray(t.fields))return t.fields;if(Array.isArray(t.definitions))return t.definitions}function Ke(e){if(typeof e!="object"||e===null||Array.isArray(e))return;let t=e;return typeof t.workflow=="object"&&t.workflow!==null&&!Array.isArray(t.workflow)?t.workflow:typeof t.workflows=="object"&&t.workflows!==null&&!Array.isArray(t.workflows)?t.workflows:t}function Ge(e){if(typeof e!="object"||e===null||Array.isArray(e))return;let t=e;if(Array.isArray(t.type_workflows))return t.type_workflows}function h(e,t,r){let n=t?.trim()||r;return te.isAbsolute(n)?n:te.join(e,n)}function yt(e,t){return h(e,t.files.types,p.types)}async function _t(e,t){let r=I(t),n=[{path:h(e,r.files.types,p.types),seed:{definitions:[]}},{path:h(e,r.files.statuses,p.statuses),seed:{statuses:j}},{path:h(e,r.files.fields,p.fields),seed:{fields:[]}},{path:h(e,r.files.workflows,p.workflows),seed:{workflow:se}}],s=[];for(let i of n)await H(i.path)||await ee(i.path,`${JSON.stringify(i.seed,null,2)}
|
|
2
2
|
`)&&s.push(i.path);return{created_paths:s}}async function pt(e,t){let r=I(t),n=[],s=h(e,r.files.types,p.types),i=h(e,r.files.statuses,p.statuses),l=h(e,r.files.fields,p.fields),a=h(e,r.files.workflows,p.workflows),o,c,u,d,w,g=async(O,ce)=>{let C=await Y(O);if(C!==null)return Pe(C,ce,n)},b=await g(s,"runtime_schema_types_invalid_json");b!==void 0&&(o=qe(b),o===void 0&&n.push("runtime_schema_types_invalid_shape"));let v=await g(i,"runtime_schema_statuses_invalid_json");v!==void 0&&(c=Ve(v),c===void 0&&n.push("runtime_schema_statuses_invalid_shape"));let E=await g(l,"runtime_schema_fields_invalid_json");E!==void 0&&(u=We(E),u===void 0&&n.push("runtime_schema_fields_invalid_shape"));let S=await g(a,"runtime_schema_workflows_invalid_json");return S!==void 0&&(d=Ke(S),d===void 0&&n.push("runtime_schema_workflows_invalid_shape"),w=Ge(S)),{schema:I({...r,statuses:[...r.statuses,...c??[]],fields:[...r.fields,...u??[]],workflow:{...r.workflow,...d},type_workflows:[...r.type_workflows??[],...w??[]]}),type_definitions_from_file:o,warnings:n,created_paths:[]}}function F(e,t,r,n=!1){let i=r.map(a=>f(a)).filter(a=>typeof a=="string").find(a=>e.some(o=>o.id===a));if(n&&i!==void 0)return i;let l=e.find(a=>a.roles.includes(t));return l!==void 0?l.id:i??e[0]?.id}function Je(e){let t=new Map,r=new Map;for(let n of e){r.set(n.id,n),t.set(n.id,n.id),t.set(n.id.replaceAll("_","-"),n.id),t.set(n.id.replaceAll("_"," "),n.id);for(let s of n.aliases)t.set(s,n.id),t.set(s.replaceAll("_","-"),n.id),t.set(s.replaceAll("_"," "),n.id)}return{aliasToId:t,byId:r}}function He(e){let t={activeStatuses:new Set,blockedStatuses:new Set,draftStatuses:new Set,terminalCanceledStatuses:new Set,terminalDoneStatuses:new Set,terminalStatuses:new Set};for(let r of e){let n=new Set(r.roles);(n.has("terminal")||n.has("terminal_done")||n.has("terminal_canceled"))&&t.terminalStatuses.add(r.id),n.has("terminal_done")&&t.terminalDoneStatuses.add(r.id),n.has("terminal_canceled")&&t.terminalCanceledStatuses.add(r.id),n.has("active")&&t.activeStatuses.add(r.id),n.has("blocked")&&t.blockedStatuses.add(r.id),n.has("draft")&&t.draftStatuses.add(r.id)}return t}function wt(e){let t=I(e),r=t.statuses.map((S,m)=>L(S,m)).filter(S=>S!==null),{aliasToId:n,byId:s}=Je(r),{activeStatuses:i,blockedStatuses:l,draftStatuses:a,terminalCanceledStatuses:o,terminalDoneStatuses:c,terminalStatuses:u}=He(r),d=t.workflow,w=f(d.open_status)??F(r,"default_open",["open","in_progress",x[0]]),g=f(d.in_progress_status)??F(r,"active",["in_progress","in-progress",w],!0),b=f(d.blocked_status)??F(r,"blocked",["blocked"]),v=f(d.close_status)??F(r,"default_close",["closed","done","complete"]),E=f(d.canceled_status)??F(r,"default_cancel",["canceled","cancelled"]);return{definitions:r,by_id:s,alias_to_id:n,terminal_statuses:u,terminal_done_statuses:c,terminal_canceled_statuses:o,active_statuses:i,blocked_statuses:l,draft_statuses:a,open_status:w,in_progress_status:g,blocked_status:b,close_status:v,canceled_status:E}}function Ye(e,t){let r=A(e);if(r)return t.alias_to_id.get(r)}function ht(e){let t=I(e),r=new Map,n=t.fields.map(o=>le(o)).filter(o=>o!==null);for(let o of n)r.set(o.key,o);let s=[...r.values()].sort((o,c)=>o.key.localeCompare(c.key)),i=new Map,l=new Map,a=new Map;for(let o of s){i.set(o.key,o),l.set(o.cli_flag,o);for(let c of o.cli_aliases)l.set(c,o);for(let c of o.commands){let u=a.get(c)??[];u.push(o),a.set(c,u)}}for(let[o,c]of a.entries())c.sort((u,d)=>u.key.localeCompare(d.key)),a.set(o,c);return{definitions:s,by_key:i,by_cli_token:l,command_to_fields:a}}function gt(e){return Ne(e.key)}function St(e,t){let r=Ye(e,t);return r?t.terminal_statuses.has(r):!1}export{D as a,Qe as b,et as c,tt as d,A as e,ee as f,p as g,j as h,I as i,h as j,yt as k,_t as l,pt as m,wt as n,Ye as o,ht as p,gt as q,St as r};
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
//# sourceMappingURL=chunk-Y5Z3XNGY.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{e as d}from"./chunk-
|
|
1
|
+
import{e as d}from"./chunk-Y5Z3XNGY.js";import{Qa as w,Ra as m,o as c}from"./chunk-BRLXKRI2.js";(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]="24688724-53cd-5375-ae7e-cfe098cd0dc8")}catch{}})();var _=new Map(c.map(e=>[e.toLowerCase(),e])),$=/^[A-Za-z][A-Za-z0-9_-]*$/;function g(e,t){if(!$.test(e))throw new Error(`${t} "${e}" is not a valid identifier. Use a single letter-led token of letters, digits, hyphen, or underscore with no spaces or punctuation (e.g. "Spike" or "code-review").`)}function y(e){return _.get(e.trim().toLowerCase())}function A(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function I(e){return e.replace(/[\\"`$]/g,t=>`\\${t}`)}function b(e){let t=new Map;for(let o of e){let n=o.trim();if(n.length===0)continue;let i=n.toLowerCase();t.has(i)||t.set(i,n)}return[...t.values()].sort((o,n)=>o.localeCompare(n))}function S(e){let t=(e.name??"").trim();if(t.length===0)throw new Error("Type name must not be empty.");g(t,"Type name");let o=y(t);if(o)throw new Error(`Cannot redefine built-in item type "${o}". Built-in types are reserved: ${c.join(", ")}.`);let n=e.description?.trim(),i=e.defaultStatus?.trim(),a=e.folder?.trim(),r=a&&a.length>0?m(a):void 0,s=b(e.aliases??[]);for(let l of s){g(l,"Alias");let f=y(l);if(f)throw new Error(`Alias "${l}" collides with built-in item type "${f}". Built-in types are reserved: ${c.join(", ")}.`)}return{name:t,description:n&&n.length>0?n:void 0,defaultStatus:i&&i.length>0?i:void 0,folder:r,aliases:s}}function x(e,t){let o=e.name.toLowerCase(),n=new Map;for(let a of t.definitions){if(typeof a.name!="string")continue;let r=a.name.trim();if(!(r.length===0||r.toLowerCase()===o)){n.set(r.toLowerCase(),r);for(let s of A(a.aliases))s.trim().length>0&&n.set(s.trim().toLowerCase(),r)}}let i=n.get(o);if(i)throw new Error(`Type name "${e.name}" collides with an alias of existing item type "${i}".`);for(let a of e.aliases){let r=n.get(a.toLowerCase());if(r)throw new Error(`Alias "${a}" already maps to existing item type "${r}".`)}}function h(e,t){return typeof t=="string"&&t.trim().length>0?m(t).toLowerCase():w(e).toLowerCase()}function D(e,t,o){let n=e.name.toLowerCase(),i=h(e.name,e.folder),a=s=>{throw new Error(`Item type "${e.name}" would store items in folder "${i}", which already belongs to existing item type "${s}". Pass a distinct --folder to keep their storage separate.`)};for(let s of t.definitions){if(typeof s.name!="string")continue;let l=s.name.trim();l.length===0||l.toLowerCase()===n||h(l,s.folder)===i&&a(l)}let r=o?.get(i);r!==void 0&&r.toLowerCase()!==n&&a(r)}function j(e){if(e==null||e.trim().length===0)return{definitions:[]};let t;try{t=JSON.parse(e)}catch{throw new Error("schema/types.json contains invalid JSON.")}return{definitions:L(t)}}function L(e){let t=C(e);if(!t)return[];let o=[];for(let n of t){if(typeof n!="object"||n===null||Array.isArray(n))continue;let i=n;typeof i.name!="string"||i.name.trim().length===0||o.push(i)}return o}function C(e){if(Array.isArray(e))return e;if(typeof e!="object"||e===null)return;let t=e;if(Array.isArray(t.definitions))return t.definitions;if(typeof t.item_types=="object"&&t.item_types!==null){let o=t.item_types;if(Array.isArray(o.definitions))return o.definitions}}function z(e,t){let o=t.name.toLowerCase(),n=e.definitions.slice(),i=n.findIndex(l=>typeof l.name=="string"&&l.name.trim().toLowerCase()===o),a=i>=0?n[i]:void 0,r=b([...A(a?.aliases),...t.aliases]),s={...a,name:t.name};return t.folder!==void 0&&(s.folder=t.folder),r.length>0?s.aliases=r:s.aliases!==void 0&&delete s.aliases,T(s,"description",t.description),T(s,"default_status",t.defaultStatus),i>=0?n[i]=s:n.push(s),n.sort((l,f)=>l.name.localeCompare(f.name)),{file:{definitions:n},definition:s,replaced:i>=0,...a&&typeof a.name=="string"?{previousName:a.name}:{}}}function F(e,t){let o=(t??"").trim();if(o.length===0)throw new Error("Type name must not be empty.");let n=y(o);if(n)throw new Error(`Cannot remove built-in item type "${n}". Built-in types are reserved: ${c.join(", ")}.`);let i=o.toLowerCase(),a=e.definitions.slice(),r=a.findIndex(l=>typeof l.name=="string"&&l.name.trim().toLowerCase()===i);if(r<0)return{file:{definitions:a},removed:!1};let[s]=a.splice(r,1);return{file:{definitions:a},removed:!0,definition:s}}function T(e,t,o){let n=e;o!==void 0&&(n[t]=o)}function M(e){return`${JSON.stringify({definitions:e.definitions},null,2)}
|
|
2
2
|
`}function E(e,t){let o=e.trim().length>0?e.trim():e,n=t?.trim()||".agents/pm/schema/types.json";return`To register a custom type, run: pm schema add-type "${I(o)}" (writes ${n}).`}function O(e,t,o){return`Invalid type value "${e}". Allowed: ${t.join(", ")}. ${E(e,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]="ef20c613-623c-5a11-8384-ccf4ee3addde")}catch{}})();function v(e){return typeof e=="string"?e.trim().toLowerCase():""}function u(e,t){let o=d(e);return o.length===0?"":t?.alias_to_id?.get(o)??o}function U(e){let t=Array.isArray(e?.type_workflows)?e.type_workflows:[],o=new Map;for(let n of t){let i=v(n?.type);if(i.length===0||!Array.isArray(n?.allowed_transitions))continue;let a=n.allowed_transitions,r=o.get(i)??{pairs:[],denyAll:!1};a.length===0&&(r.denyAll=!0);for(let s of a){if(!Array.isArray(s)||s.length!==2)continue;let l=d(s[0]),f=d(s[1]);l.length===0||f.length===0||r.pairs.some(p=>p[0]===l&&p[1]===f)||r.pairs.push([l,f])}o.set(i,r)}return[...o.entries()].filter(([,n])=>n.pairs.length>0||n.denyAll).map(([n,i])=>({type:n,allowed_transitions:i.pairs})).sort((n,i)=>n.type.localeCompare(i.type))}function J(e){let t=v(e.typeName),o=e.typeWorkflows.find(r=>r.type===t);if(!o)return{allowed:!0,hasRule:!1,allowedTransitions:[]};let n=u(e.fromStatus,e.statusRegistry),i=u(e.toStatus,e.statusRegistry);return n.length>0&&n===i?{allowed:!0,hasRule:!0,allowedTransitions:o.allowed_transitions}:{allowed:o.allowed_transitions.some(r=>{let s=u(r[0],e.statusRegistry),l=u(r[1],e.statusRegistry);return s===n&&l===i}),hasRule:!0,allowedTransitions:o.allowed_transitions}}function W(e){return e.length===0?"(no transitions allowed)":e.map(t=>`${t[0]} -> ${t[1]}`).join(", ")}export{y as a,I as b,S as c,x as d,D as e,j as f,z as g,F as h,M as i,O as j,U as k,J as l,W as m};
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
//# sourceMappingURL=chunk-YZB7IPR6.js.map
|