@unbrained/pm-cli 2026.10.25 → 2026.10.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +44 -1
- package/dist/cli/error-guidance.d.ts +5 -0
- package/dist/cli/error-guidance.js +2 -2
- package/dist/cli/register-list-query.js +5 -5
- package/dist/cli/register-mutation.js +2 -2
- package/dist/cli-bundle/bundle-manifest.json +1 -1
- package/dist/cli-bundle/chunks/{chunk-O3ZTGRIH.js → chunk-25MTQAHX.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-YCCGZHOR.js → chunk-2XUDAQK5.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-VAEB6IUQ.js → chunk-32QK43XG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-RD6UW3MW.js → chunk-34OQP43K.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-TLMXSYJA.js → chunk-57YPOOED.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-5PTMQBKJ.js +30 -0
- package/dist/cli-bundle/chunks/{chunk-FNZT4BTE.js → chunk-EKV5GP6P.js} +86 -86
- package/dist/cli-bundle/chunks/{chunk-LNKPH2DD.js → chunk-ER7RLJW5.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-F26MRQZY.js +6 -0
- package/dist/cli-bundle/chunks/chunk-H434DKYU.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-MVJGGCGQ.js → chunk-HIX2OMEZ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4GD6QOP6.js → chunk-NNIYQHYT.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-O3LPT34G.js +20 -0
- package/dist/cli-bundle/chunks/{chunk-3CYXE6BV.js → chunk-ONC4BBQP.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-UI3FD3DW.js → chunk-OQOEBWHU.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-Q55KZDNF.js +2 -0
- package/dist/cli-bundle/chunks/chunk-QQYLNHZK.js +128 -0
- package/dist/cli-bundle/chunks/chunk-SPPHDVZE.js +2 -0
- package/dist/cli-bundle/chunks/chunk-UHKN6TJM.js +114 -0
- package/dist/cli-bundle/chunks/{chunk-7T3H24HN.js → chunk-X5TMR7KC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-EYCVAAIP.js → chunk-XERBUA6A.js} +2 -2
- package/dist/cli-bundle/chunks/indexed-receipt-blobs-63WYG2PY.js +4 -0
- package/dist/cli-bundle/chunks/{mutation-admission-747C6IUR.js → mutation-admission-L3A6FSZ7.js} +2 -2
- package/dist/cli-bundle/chunks/{register-list-query-COST6KRV.js → register-list-query-YSQ7UTFI.js} +9 -9
- package/dist/cli-bundle/chunks/register-mutation-6HRXYASW.js +20 -0
- package/dist/cli-bundle/chunks/{register-operations-S4LKLUBJ.js → register-operations-4O3YOYXF.js} +2 -2
- package/dist/cli-bundle/chunks/{register-setup-3ITZXPOL.js → register-setup-3WAXNDMY.js} +2 -2
- package/dist/cli-bundle/chunks/{settlement-hook-5IVCF6ZY.js → settlement-hook-CRW6PVQK.js} +2 -2
- package/dist/cli-bundle/chunks/{stage-3UUIYROS.js → stage-I46WD4EN.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-U6HXIF6G.js → chunk-4TXZBGOR.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-22727JYL.js → chunk-B266DDBJ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-Y4JHHY24.js → chunk-BH7RE2ZY.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-ZYCOMRFT.js → chunk-E5C24MCV.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-EGN2HFRU.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-HWD63G54.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-J67PFM3O.js +91 -0
- package/dist/cli-bundle/focused-chunks/{chunk-46KDJH3K.js → chunk-KTXU5WU6.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-MVY6JDIH.js +12 -0
- package/dist/cli-bundle/focused-chunks/{chunk-NC5HUGHU.js → chunk-NLZUI234.js} +4 -4
- package/dist/cli-bundle/focused-chunks/{chunk-B5JOVH5F.js → chunk-R2MTHS2H.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-SM2KGD4J.js +79 -0
- package/dist/cli-bundle/focused-chunks/{chunk-HMYDUEQK.js → chunk-SYL73MEI.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{chunk-77NU7NPN.js → chunk-TAFMNTA5.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-74KC7FUQ.js → chunk-TGUOEOKP.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-U4UBQBS7.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-URWYYJ7K.js → chunk-WDKZB3V6.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-XK3XMZM4.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-3M5FZCMC.js → chunk-Y57A4ZDI.js} +55 -55
- package/dist/cli-bundle/focused-chunks/chunk-YC6NCPLK.js +22 -0
- package/dist/cli-bundle/focused-chunks/{chunk-7DEZT4JN.js → chunk-YQKLKRMW.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-3FM75SBJ.js → chunk-YW5GHQN2.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-ZA6AEYIM.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-ZH7GTEWL.js +3 -0
- package/dist/cli-bundle/focused-chunks/indexed-receipt-blobs-GAFC52LQ.js +4 -0
- package/dist/cli-bundle/focused-chunks/{mutation-admission-BQBQXILV.js → mutation-admission-ENBFMV2X.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{settlement-hook-XVS6P2XI.js → settlement-hook-PUYJJDFL.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{stage-VSIL4MTZ.js → stage-MAWZTM2H.js} +2 -2
- package/dist/cli-bundle/main.js +4 -4
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +2 -2
- package/dist/cli-bundle/sdk-core.js +33 -33
- 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 +57 -57
- 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 +9 -9
- package/dist/core/extensions/extension-types.d.ts +3 -0
- package/dist/core/extensions/extension-types.js +1 -1
- package/dist/core/history/event-index.d.ts +6 -0
- package/dist/core/history/event-index.js +7 -6
- package/dist/core/history/read.d.ts +3 -1
- package/dist/core/history/read.js +1 -1
- package/dist/core/output/mutation-projection.js +1 -1
- package/dist/core/policy/workflow-policy-store.js +1 -1
- package/dist/core/shared/errors.d.ts +9 -0
- package/dist/core/shared/errors.js +1 -1
- package/dist/core/shared/secret-rules.d.ts +17 -0
- package/dist/core/shared/secret-rules.js +2 -1
- package/dist/core/store/item-mutation-precondition.d.ts +8 -0
- package/dist/core/store/item-mutation-precondition.js +1 -1
- package/dist/core/store/item-store.js +1 -1
- package/dist/mcp/tool-definitions.js +1 -1
- package/dist/sdk/cli-contracts/commander-mutation-options.js +1 -1
- package/dist/sdk/cli-contracts/completeness.js +1 -1
- package/dist/sdk/cli-contracts/flag-contracts.js +1 -1
- package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +1 -1
- package/dist/sdk/cli-contracts/grammar-contracts.js +1 -1
- package/dist/sdk/cli-contracts/registration-helpers.d.ts +1 -1
- package/dist/sdk/cli-contracts/registration-helpers.js +1 -1
- package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +4 -0
- package/dist/sdk/cli-contracts/tool-option-contracts.js +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +1 -1
- package/dist/sdk/cli-contracts/tool-schema.d.ts +2 -2
- package/dist/sdk/cli-contracts/tool-schema.js +1 -1
- package/dist/sdk/context-signal-store.js +2 -2
- package/dist/sdk/core.d.ts +1 -1
- package/dist/sdk/core.js +1 -1
- package/dist/sdk/extension-command-context.js +2 -2
- 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/index.d.ts +2 -1
- package/dist/sdk/index.js +1 -1
- package/dist/sdk/item-transaction.js +1 -1
- package/dist/sdk/lifecycle/close-many.d.ts +3 -0
- package/dist/sdk/lifecycle/close-many.js +1 -1
- package/dist/sdk/lifecycle/close.d.ts +3 -1
- package/dist/sdk/lifecycle/close.js +1 -1
- package/dist/sdk/lifecycle/create.d.ts +2 -0
- package/dist/sdk/lifecycle/create.js +1 -1
- package/dist/sdk/lifecycle/plan.d.ts +2 -0
- package/dist/sdk/lifecycle/plan.js +1 -1
- package/dist/sdk/lifecycle/restore.js +1 -1
- package/dist/sdk/lifecycle-policy.d.ts +11 -0
- package/dist/sdk/lifecycle-policy.js +1 -1
- package/dist/sdk/merge/indexed-receipt-blobs.d.ts +3 -1
- package/dist/sdk/merge/indexed-receipt-blobs.js +2 -2
- package/dist/sdk/merge/receipt-file-boundary.d.ts +2 -0
- package/dist/sdk/merge/receipt-file-boundary.js +1 -1
- package/dist/sdk/merge/receipts.js +2 -2
- package/dist/sdk/mutation-events.d.ts +6 -0
- package/dist/sdk/mutation-events.js +1 -1
- package/dist/sdk/mutation-guard.d.ts +6 -1
- package/dist/sdk/mutation-guard.js +1 -1
- package/dist/sdk/output/fit-envelope.d.ts +98 -0
- package/dist/sdk/output/fit-envelope.js +2 -0
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/query.d.ts +1 -0
- package/dist/sdk/query.js +1 -1
- package/dist/sdk/read-output-session.d.ts +1 -1
- package/dist/sdk/read-output-session.js +1 -1
- package/dist/sdk/runtime-extended-actions.js +1 -1
- package/dist/sdk/runtime-input.js +1 -1
- package/dist/sdk/runtime-primitives.d.ts +1 -1
- package/dist/sdk/runtime-primitives.js +1 -1
- package/dist/sdk/runtime.d.ts +2 -2
- package/dist/sdk/runtime.js +1 -1
- package/dist/sdk/scheduling-shortcuts.d.ts +2 -0
- package/dist/sdk/scheduling-shortcuts.js +1 -1
- package/dist/sdk/test/execution.js +2 -2
- package/dist/sdk/test/receipt-index-snapshot.d.ts +2 -0
- package/dist/sdk/test/receipt-index-snapshot.js +2 -0
- package/dist/sdk/test/workspace-snapshot.d.ts +1 -1
- package/dist/sdk/test/workspace-snapshot.js +1 -1
- package/dist/sdk/workspace-transaction.d.ts +3 -1
- package/dist/sdk/workspace-transaction.js +2 -2
- package/docs/COMMANDS.md +2 -1
- package/docs/MUTATION_INTEGRITY.md +33 -0
- package/docs/PERFORMANCE.md +21 -6
- package/docs/QUALITY_EVIDENCE.md +9 -0
- package/docs/READ_OUTPUT_CONTRACTS.md +55 -1
- package/docs/RELEASING.md +11 -0
- package/docs/SDK.md +88 -6
- package/docs/SDK_CONTEXT_COORDINATION.md +35 -4
- package/docs/TESTING.md +14 -1
- package/docs/WORKFLOW_POLICIES.md +14 -1
- package/docs/agent-task-token-baseline.json +1 -1
- package/docs/agent-task-transcripts.json +1 -1
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +4 -4
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +5 -3
- package/marketplace.json +1 -1
- package/package.json +1 -1
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/extensions/calendar/shortcuts.ts +2 -2
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-claude/package.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/pm-codex/package.json +1 -1
- package/plugins/pm-codex/plugin.json +1 -1
- package/runtime-dependencies.json +1 -1
- package/dist/cli-bundle/chunks/chunk-444VPGQT.js +0 -20
- package/dist/cli-bundle/chunks/chunk-5ZPT67NJ.js +0 -127
- package/dist/cli-bundle/chunks/chunk-7C3GCLOO.js +0 -30
- package/dist/cli-bundle/chunks/chunk-HMJSFWHK.js +0 -2
- package/dist/cli-bundle/chunks/chunk-RLXK2S7P.js +0 -2
- package/dist/cli-bundle/chunks/chunk-RQKDANP7.js +0 -113
- package/dist/cli-bundle/chunks/chunk-RUKSEZE7.js +0 -2
- package/dist/cli-bundle/chunks/chunk-XYLBOXSH.js +0 -6
- package/dist/cli-bundle/chunks/indexed-receipt-blobs-47I6KKDO.js +0 -4
- package/dist/cli-bundle/chunks/register-mutation-JZVVJUHY.js +0 -20
- package/dist/cli-bundle/focused-chunks/chunk-5LBZR6YW.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-IVLIUPVV.js +0 -12
- package/dist/cli-bundle/focused-chunks/chunk-KIIGME23.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-LWJ2X75I.js +0 -78
- package/dist/cli-bundle/focused-chunks/chunk-MT5TYMEU.js +0 -3
- package/dist/cli-bundle/focused-chunks/chunk-NI5SG2M2.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-QH5KMIYZ.js +0 -91
- package/dist/cli-bundle/focused-chunks/chunk-VVRXF4JO.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-W7MCCFYV.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-WMPDY5ZU.js +0 -21
- package/dist/cli-bundle/focused-chunks/indexed-receipt-blobs-YCLN2ZZG.js +0 -4
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import{$ as _t,Ea as je,Ga as me,Oa as Et,Wa as It,bb as vt,ca as wt,cb as fe,ea as bt,m as Ae,n as ht,ua as Le,va as Pe,wa as K,x as ue,y as gt,z as q}from"./chunk-LWJ2X75I.js";import{b as se}from"./chunk-3FM75SBJ.js";import{h as yt}from"./chunk-YLVHHWHN.js";import{Aa as Re,Ba as Ne,Ca as R,Dc as G,Kd as ft,Ld as pt,Na as ct,Ra as dt,Sa as lt,Ub as ut,a as ae,ic as Y,kc as ke,lc as de,ma as nt,mc as L,na as rt,nc as De,oc as le,pc as Oe,qa as at,sc as Me,va as ce,vd as mt,wd as Fe,xa as st}from"./chunk-NC5HUGHU.js";import{A as ot,B as X,D as A,H as D,s as F,x as it,y,z as f}from"./chunk-46KDJH3K.js";import di from"node:crypto";import pe from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="664124e5-715d-5f86-ae69-89f203db76c3")}catch{}})();function Tt(e){let i=[],t=!1;for(let o of(e??"").toLowerCase()){let n=o.charCodeAt(0),r=n>=48&&n<=57,a=n>=97&&n<=122;if(!r&&!a){t=i.length>0;continue}t&&(i.push("-"),t=!1),i.push(o)}return i.length===0?"pm-":`${i.join("")}-`}function V(e){let i=e.trim().toLowerCase();return i.startsWith("#")&&(i=i.slice(1)),i}function J(e,i){let t=Tt(i),o=V(e);return o.startsWith(t)?o:`${t}${o}`}function li(e){let i=mt(e);if(i!==void 0)return i;let t="";for(let o=0;o<e;o+=1)t+=di.randomInt(0,36).toString(36);return t}async function ui(e,i,t){let o=[...new Set(Object.values(t))].flatMap(n=>[pe.join(e,n,`${i}.md`),pe.join(e,n,`${i}.toon`)]);return o.push(pe.join(e,"history",`${i}.jsonl`)),(await Promise.all(o.map(n=>X(n)))).some(Boolean)}var Ct=4,St=12;function mi(e){return typeof e!="number"||!Number.isFinite(e)?Ct:Math.min(St,Math.max(Ct,Math.trunc(e)))}async function Go(e,i,t={}){let o=mi(t.tokenLength),n=Math.min(o+6,St),r=0;for(;o<=n;){for(let a=0;a<32;a+=1){let s=`${Tt(i)}${li(o)}`;if(!await(t.probeExisting===!1?X(pe.join(e,"history",`${s}.jsonl`)):ui(e,s,t.typeToFolder??F)))return s;r+=1}o+=1}throw new Error(`Unable to generate unique id after ${r} attempts`)}import xt from"node:fs/promises";import Q from"node:path";import{isUtf8 as fi}from"node:buffer";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="7db1d069-0038-57f8-8c3e-0b0ba66579ca")}catch{}})();var pi=1048576,yi=4194304;async function Rt(e,i){let t=Q.dirname(e);for(;t!==Q.parse(e).root;){let n=await xt.stat(t).catch(r=>{if(A(r))return null;throw r});if(n!==null){if(!n.isDirectory())throw new f("Workflow policy storage ancestor must be a directory.",y.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Restore the policy or approval history directory before retrying."]});break}t=Q.dirname(t)}let o=await xt.open(e,"r").catch(n=>{if(A(n))return null;throw n});if(o===null)return null;try{let n=(await o.stat()).size,r=Buffer.alloc(Math.min(i,n)+1),a=0;for(;a<r.length;){let s=await o.read(r,a,r.length-a,a);if(s.bytesRead===0)break;a+=s.bytesRead}if(a===r.length||!fi(r.subarray(0,a)))throw new f("Workflow policy input exceeds its byte bound or is not valid UTF-8.",y.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Inspect the policy and approval history; reduce the declaration or use verified history compaction before retrying."]});return r.toString("utf8",0,a)}finally{await o.close()}}function hi(e){if(e===null)return{version:1,enforcement:"advise",policies:[]};let i;try{i=JSON.parse(e)}catch{throw new f("schema/policies.json must contain valid JSON.",y.CONFLICT,{code:"workflow_policy_registry_invalid",nextSteps:["Restore valid policy JSON before retrying the mutation."]})}return ct(i)}async function gi(e){return hi(await Rt(Q.join(e,"schema","policies.json"),pi))}async function _i(e,i){let t=await Rt(R(e,i),yi);if(t===null)return[];let o;try{if(o=t.split(/\r?\n/).filter(n=>n.trim()).map(n=>JSON.parse(n)),!me(o).ok)throw new Error("invalid chain")}catch{throw new f("Approval evidence requires a valid item history chain.",y.CONFLICT,{code:"workflow_policy_approval_history_invalid",nextSteps:[`Run pm history ${i} --verify before recording or using an approval.`]})}return o.flatMap(n=>{let r=n.context?.workflow_approval;if(n.op!=="policy_approve"||n.record_hash_version!==1||typeof n.record_hash!="string"||typeof r!="object"||r===null)return[];let a=r;return typeof a.policy_fingerprint!="string"||typeof a.content_fingerprint!="string"?[]:[{policy_fingerprint:a.policy_fingerprint,content_fingerprint:a.content_fingerprint,author:n.author}]})}async function wi(e,i,t){let o=t.before?.status!==t.after?.status&&i.policies.some(a=>a.rule.kind==="approval"&&dt(a,t)),n=t.before?.id??t.after?.id,r=o&&typeof n=="string"?await _i(e,n):[];return lt(i,{...t,approvals:r})}async function $e(e){let i=await gi(e.pmRoot),t=await wi(e.pmRoot,i,{operation:e.operation,author:e.author,before:e.before?{...e.before.metadata,body:e.before.body}:null,after:e.after?{...e.after.metadata,body:e.after.body}:null});if(t.allowed)return t;let o=t.decisions.filter(d=>!d.satisfied&&d.effect==="refuse");if(!e.dryRun)try{await Et({pmRoot:e.pmRoot,op:"policy_refused",author:e.author,context:{item_id:e.after?.metadata.id??e.before?.metadata.id,operation:e.operation,workflow_policies:t.decisions},message:"Workflow policy refused a proposed item mutation.",lockTtlSeconds:e.settings.locks.ttl_seconds,lockWaitMs:e.settings.locks.wait_ms})}catch(d){let u=new f("Workflow policy refusal could not be recorded in workspace history.",y.CONFLICT,{code:"workflow_policy_audit_failed",nextSteps:["Resolve workspace-history lock or storage failures, then retry the refused mutation; no item changes were written."]});throw u.cause=d,u}let n=o.slice(0,3).map(d=>({policy_id:d.policy_id,rule:d.rule,description:i.policies.find(u=>u.id===d.policy_id).description,missing_fields:d.missing_fields})),r=[...new Set(n.flatMap(d=>d.missing_fields))],a=n.map(d=>`${d.policy_id} (${d.rule})`).join(", "),s=o.length>3?` and ${o.length-3} more`:"",l=e.after?.metadata.id??e.before.metadata.id,c=r.map(d=>{if(e.before===null)return`Supply ${d} in the original ${e.operation} request, then retry; the item was not created.`;let u=nt("update",d);return u===void 0?`Supply ${d} using its declared SDK or package mutation contract, then retry.`:G(["update",l,rt("update",u),`<${d}>`,"--pm-path",Q.resolve(e.pmRoot)])});throw new f(`Workflow policy refused ${e.operation}: ${a}${s}.${r.length?` Missing: ${r.join(", ")}.`:""}`,y.CONFLICT,{code:"workflow_policy_refused",reason:n.map(d=>d.policy_id).join(","),policy_violations:n,policy_violation_count:o.length,required:r.length?`Supply missing fields: ${r.join(", ")}, then retry the refused mutation.`:"Satisfy the declared workflow policy before retrying.",why:n.map(d=>d.description).filter(Boolean).join(" ")||void 0,recovery:{missing_required_fields:r},nextSteps:[...c,...new Set(o.slice(0,3).filter(d=>d.missing_fields.length===0).map(d=>d.remediation)),...o.length>3?[`Inspect all policies with pm schema policies before retrying ${e.operation}.`]:[]]})}import{AsyncLocalStorage as bi}from"node:async_hooks";import{channel as Ei}from"node:diagnostics_channel";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="b2b2d49a-bb8c-54d7-89d2-1dbe76879129")}catch{}})();var He=new bi,We=Ei("@unbrained/pm-cli/item-metadata-enumeration/v1");function ye(e){We.publish(e)}async function un(e){let i={enumeration_calls:0,metadata_rows:0},t=o=>{He.getStore()?.includes(i)&&(i.enumeration_calls+=1,i.metadata_rows+=o)};We.subscribe(t);try{return{result:await He.run([...He.getStore()??[],i],e),work:{...i}}}finally{We.unsubscribe(t)}}import P from"node:fs/promises";import kt from"node:path";import{randomUUID as Ii}from"node:crypto";import{createRequire as vi}from"node:module";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="84a3dae8-69b6-589d-a8ec-11f77c1d103a")}catch{}})();var Ci="metadata-query-index.sqlite",Z="5",Ue;function ee(){return Ue!==void 0||(Ue=bt(process.versions.node,vi(import.meta.url))),Ue}function Nt(e,i){return Math.max(0,Math.floor(e===void 0?i:e))}function W(e){return kt.join(e,"runtime",Ci)}function Ti(e){e.exec(`
|
|
2
|
-
PRAGMA foreign_keys = ON;
|
|
3
|
-
PRAGMA journal_mode = OFF;
|
|
4
|
-
PRAGMA synchronous = OFF;
|
|
5
|
-
CREATE TABLE metadata (
|
|
6
|
-
key TEXT PRIMARY KEY,
|
|
7
|
-
value TEXT NOT NULL
|
|
8
|
-
) STRICT;
|
|
9
|
-
CREATE TABLE items (
|
|
10
|
-
id TEXT PRIMARY KEY,
|
|
11
|
-
relative_path TEXT NOT NULL UNIQUE,
|
|
12
|
-
metadata_json TEXT NOT NULL,
|
|
13
|
-
status TEXT NOT NULL,
|
|
14
|
-
type TEXT NOT NULL,
|
|
15
|
-
priority INTEGER NOT NULL,
|
|
16
|
-
updated_at TEXT NOT NULL,
|
|
17
|
-
created_at TEXT NOT NULL,
|
|
18
|
-
parent TEXT,
|
|
19
|
-
assignee TEXT,
|
|
20
|
-
sprint TEXT,
|
|
21
|
-
release TEXT
|
|
22
|
-
) STRICT;
|
|
23
|
-
CREATE INDEX items_default_order
|
|
24
|
-
ON items(priority, updated_at DESC, id);
|
|
25
|
-
CREATE INDEX items_status_default_order
|
|
26
|
-
ON items(status, priority, updated_at DESC, id);
|
|
27
|
-
CREATE INDEX items_type_default_order
|
|
28
|
-
ON items(type, priority, updated_at DESC, id);
|
|
29
|
-
CREATE INDEX items_parent_default_order
|
|
30
|
-
ON items(parent, priority, updated_at DESC, id);
|
|
31
|
-
CREATE TABLE item_metadata_keys (
|
|
32
|
-
item_id TEXT NOT NULL,
|
|
33
|
-
key TEXT NOT NULL,
|
|
34
|
-
PRIMARY KEY(item_id, key),
|
|
35
|
-
FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
|
|
36
|
-
) STRICT;
|
|
37
|
-
CREATE INDEX item_metadata_keys_key_item
|
|
38
|
-
ON item_metadata_keys(key, item_id);
|
|
39
|
-
CREATE TABLE item_linked_files (
|
|
40
|
-
item_id TEXT NOT NULL,
|
|
41
|
-
path TEXT NOT NULL,
|
|
42
|
-
scope TEXT NOT NULL,
|
|
43
|
-
note TEXT,
|
|
44
|
-
PRIMARY KEY(item_id, path, scope),
|
|
45
|
-
FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
|
|
46
|
-
) STRICT;
|
|
47
|
-
CREATE INDEX item_linked_files_path_scope_item
|
|
48
|
-
ON item_linked_files(path, scope, item_id);
|
|
49
|
-
CREATE VIRTUAL TABLE item_search USING fts5(
|
|
50
|
-
id UNINDEXED,
|
|
51
|
-
title,
|
|
52
|
-
description,
|
|
53
|
-
tags,
|
|
54
|
-
tokenize = 'unicode61'
|
|
55
|
-
);
|
|
56
|
-
`)}function ge(e,i,t){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(i,t)}function Dt(e,i){let t=i.metadata;e.prepare(`INSERT INTO items(
|
|
57
|
-
id, relative_path, metadata_json, status, type, priority,
|
|
58
|
-
updated_at, created_at, parent, assignee, sprint, release
|
|
59
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
60
|
-
ON CONFLICT(id) DO UPDATE SET
|
|
61
|
-
relative_path = excluded.relative_path,
|
|
62
|
-
metadata_json = excluded.metadata_json,
|
|
63
|
-
status = excluded.status,
|
|
64
|
-
type = excluded.type,
|
|
65
|
-
priority = excluded.priority,
|
|
66
|
-
updated_at = excluded.updated_at,
|
|
67
|
-
created_at = excluded.created_at,
|
|
68
|
-
parent = excluded.parent,
|
|
69
|
-
assignee = excluded.assignee,
|
|
70
|
-
sprint = excluded.sprint,
|
|
71
|
-
release = excluded.release`).run(t.id,i.relativePath,JSON.stringify(t),t.status,t.type,t.priority,t.updated_at,t.created_at,t.parent??null,t.assignee??null,t.sprint??null,t.release??null),e.prepare("DELETE FROM item_metadata_keys WHERE item_id = ?").run(t.id),e.prepare("DELETE FROM item_linked_files WHERE item_id = ?").run(t.id),e.prepare("DELETE FROM item_search WHERE rowid = (SELECT rowid FROM items WHERE id = ?)").run(t.id),e.prepare("INSERT INTO item_search(rowid, id, title, description, tags) SELECT rowid, ?, ?, ?, ? FROM items WHERE id = ?").run(t.id,t.title,t.description,t.tags.join(" "),t.id);let o=e.prepare("INSERT INTO item_metadata_keys(item_id, key) VALUES (?, ?)");for(let r of Object.keys(t))o.run(t.id,r);let n=e.prepare("INSERT INTO item_linked_files(item_id, path, scope, note) VALUES (?, ?, ?, ?)");for(let r of i.linkedFiles??[])n.run(t.id,r.path,r.scope,r.note??null)}async function Ot(e){let i=W(e.pmRoot),t=ee();if(!t){await P.rm(i,{force:!0});return}await P.mkdir(kt.dirname(i),{recursive:!0});let o=`${i}.${Ii()}.tmp`,n;try{n=new t(o),Ti(n),n.exec("BEGIN IMMEDIATE"),ge(n,"version",Z),ge(n,"context_fingerprint",e.contextFingerprint),ge(n,"source_cursor",e.sourceCursor);for(let r of e.rows)Dt(n,r);n.exec("COMMIT"),n.close(),n=void 0,await P.rm(i,{force:!0}),await P.rename(o,i)}catch(r){throw n?.close(),await Promise.allSettled([P.rm(o,{force:!0})]),r}}function _e(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(i=>[String(i.key),String(i.value)]))}async function Mt(e){let i=ee();if(!i)return!1;let t=W(e.pmRoot),o;try{await P.access(t),o=new i(t),o.exec("PRAGMA foreign_keys = ON");let n=_e(o);if(n.version!==Z||n.context_fingerprint!==e.contextFingerprint||n.source_cursor!==e.expectedSourceCursor)return o.close(),!1;o.exec("BEGIN IMMEDIATE");let r=o.prepare("DELETE FROM items WHERE relative_path = ?"),a=o.prepare("SELECT rowid FROM items WHERE relative_path = ?"),s=o.prepare("DELETE FROM item_search WHERE rowid = ?");for(let l of e.deletedRelativePaths??[]){let c=a.get(l);r.run(l),c&&s.run(c.rowid)}return e.row&&Dt(o,e.row),ge(o,"source_cursor",e.sourceCursor),o.exec("COMMIT"),o.close(),!0}catch{try{o?.exec("ROLLBACK")}catch{}return o?.close(),!1}}function he(e,i,t,o,n){!o||o.length===0||(e.push(`${t} ${n} (${o.map(()=>"?").join(", ")})`),i.push(...o))}function Si(e){let i=[],t=[];he(i,t,"status",e.statuses,"IN"),he(i,t,"status",e.excludeStatuses,"NOT IN"),he(i,t,"type",e.types,"IN"),he(i,t,"id",e.ids,"IN");for(let o of e.metadataKeys??[])i.push("EXISTS (SELECT 1 FROM item_metadata_keys AS indexed_key WHERE indexed_key.item_id = items.id AND indexed_key.key = ?)"),t.push(o);for(let[o,n]of[["parent",e.parent],["assignee",e.assignee],["sprint",e.sprint],["release",e.release]])n!==void 0&&(i.push(`${o} = ?`),t.push(n));return e.priority!==void 0&&(i.push("priority = ?"),t.push(e.priority)),{where:i.length===0?"":` WHERE ${i.join(" AND ")}`,parameters:t}}async function wn(e){let i=ee();if(!i)return null;let t=e.query??{},{where:o,parameters:n}=Si(t),r;try{r=new i(W(e.pmRoot),{readOnly:!0});let a=_e(r);if(a.version!==Z||a.source_cursor!==e.expectedSourceCursor)return r.close(),null;let s=r.prepare(`SELECT COUNT(*) AS count FROM items${o}`).get(...n),l=[],c="";t.limit!==void 0?(c+=" LIMIT ?",l.push(Math.max(0,Math.floor(t.limit))),t.offset!==void 0&&(c+=" OFFSET ?",l.push(Math.max(0,Math.floor(t.offset))))):t.offset!==void 0&&(c+=" LIMIT -1 OFFSET ?",l.push(Math.max(0,Math.floor(t.offset))));let d=r.prepare(`SELECT metadata_json FROM items${o}
|
|
72
|
-
ORDER BY ${t.terminalStatuses&&t.terminalStatuses.length>0?`CASE WHEN status IN (${t.terminalStatuses.map(()=>"?").join(", ")}) THEN 1 ELSE 0 END ASC, `:""}priority ASC, updated_at DESC, id ASC${c}`).all(...n,...t.terminalStatuses??[],...l).map(u=>{let p=JSON.parse(String(u.metadata_json));if(!p.id)throw new TypeError("Indexed metadata row has no id");return p});return r.close(),{source_cursor:a.source_cursor,total:Number(s.count),items:d}}catch{return r?.close(),null}}async function bn(e){let i=ee();if(!i||e.paths.length===0)return null;let t;try{t=new i(W(e.pmRoot),{readOnly:!0});let o=_e(t);if(o.version!==Z||o.source_cursor!==e.expectedSourceCursor)return t.close(),null;let n=e.paths.map(()=>"?").join(", "),r=e.scope===void 0?"":" AND scope = ?",a=[...e.paths,...e.scope===void 0?[]:[e.scope]],s=`path IN (${n})${r}`,l=t.prepare(`SELECT COUNT(DISTINCT item_id) AS count
|
|
73
|
-
FROM item_linked_files
|
|
74
|
-
WHERE ${s}`).get(...a),c=Nt(e.limit,50),d=Nt(e.offset,0),u=t.prepare(`SELECT items.id, items.metadata_json
|
|
75
|
-
FROM items
|
|
76
|
-
WHERE EXISTS (
|
|
77
|
-
SELECT 1 FROM item_linked_files
|
|
78
|
-
WHERE item_linked_files.item_id = items.id AND ${s}
|
|
79
|
-
)
|
|
80
|
-
ORDER BY items.priority ASC, items.updated_at DESC, items.id ASC
|
|
81
|
-
LIMIT ? OFFSET ?`).all(...a,c,d),p=[];if(u.length>0){let h=u.map(g=>String(g.id)),m=t.prepare(`SELECT item_id, path, scope, note
|
|
82
|
-
FROM item_linked_files
|
|
83
|
-
WHERE item_id IN (${h.map(()=>"?").join(", ")})
|
|
84
|
-
AND ${s}
|
|
85
|
-
ORDER BY path ASC, scope ASC`).all(...h,...a),_=new Map(h.map(g=>[g,[]]));for(let g of m){let b=String(g.item_id),T=_.get(b);T.push({path:String(g.path),scope:String(g.scope),...g.note===null?{}:{note:String(g.note)}}),_.set(b,T)}for(let g of u){let b=JSON.parse(String(g.metadata_json));p.push({item:b,files:_.get(String(g.id))})}}return t.close(),{source_cursor:o.source_cursor,total:Number(l.count),matches:p}}catch{return t?.close(),null}}async function En(e){let i=ee();if(!i)return null;let t;try{t=new i(W(e.pmRoot),{readOnly:!0});let o=_e(t);if(o.version!==Z||o.source_cursor!==e.expectedSourceCursor)return t.close(),null;let n=t.prepare(`SELECT items.metadata_json
|
|
86
|
-
FROM item_search
|
|
87
|
-
JOIN items ON items.id = item_search.id
|
|
88
|
-
WHERE item_search MATCH ?
|
|
89
|
-
ORDER BY bm25(item_search), items.priority, items.updated_at DESC, items.id
|
|
90
|
-
LIMIT ?`).all(e.query,Math.max(0,Math.floor(e.limit))).map(r=>JSON.parse(String(r.metadata_json)));return t.close(),{source_cursor:o.source_cursor,items:n}}catch{return t?.close(),null}}async function we(e){await P.rm(W(e),{force:!0})}import E from"node:fs/promises";import w from"node:path";import{createHash as xi,randomUUID as jt}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="846c1c5d-8a5c-56ee-832a-bfc780283e70")}catch{}})();var x=8,$t=500,Ri="metadata-derived-index",Ni="metadata-cache.json",ki="metadata-cache-bodies.json",Di="metadata-cache-collections.json",Oi="metadata-cache-delta.json",Mi="metadata-cache-manifest.json",Ft=4,Fi=["comments","notes","learnings","files","tests","test_runs","docs"];function Ht(){return se(Y())}function Ee(e){let i={...e},t={};for(let o of Fi)o in i&&(t[o]=i[o],delete i[o]);return{light:i,heavy:t}}function Wt(e,i){return!i||Object.keys(i).length===0?e:{...e,...i}}function Ut(e,i,t,o){let n=xi("sha256");n.update(`format:${e??"default"}`);let r=Object.entries(i).sort(([a],[s])=>a.localeCompare(s)).map(([a,s])=>`${a}=${s}`).join(",");return n.update(`|types:${r}`),t&&n.update(`|schema:${JSON.stringify(t)}`),o.length>0&&n.update(`|extension_fields:${o.join(",")}`),n.digest("hex").slice(0,16)}function Ie(e){return w.join(e,"runtime",Ni)}function ve(e){return w.join(e,"runtime",ki)}function Ce(e){return w.join(e,"runtime",Di)}function ze(e){return w.join(e,"runtime",Oi)}function Xe(e){return w.join(e,"runtime",Mi)}function Te(e,i){let t=w.extname(e);return`${e.slice(0,-t.length)}.${i}${t}`}var Ai=24,v=new Map,Se=new WeakMap;function Ye(e){return Se.get(e)??e.source_cursor}function Li(e,i){let t=Ye(e);if(!(i.base_source_cursor!==t||e.source_cursor===i.source_cursor)){Se.set(e,t);for(let[o,n]of Object.entries(i.changes))n.entry?e.entries[o]=n.entry:delete e.entries[o];e.directory_signatures=i.directory_signatures,e.source_cursor=i.source_cursor}}function Pi(e,i){if(!e)return;let t=Ye(e);if(!(i.base_source_cursor!==t||e.source_cursor===i.source_cursor)){Se.set(e,t);for(let[o,n]of Object.entries(i.changes))n.body?e.bodies[o]=n.body:delete e.bodies[o];e.source_cursor=i.source_cursor}}function ji(e,i){if(!e)return;let t=Ye(e);if(!(i.base_source_cursor!==t||e.source_cursor===i.source_cursor)){Se.set(e,t);for(let[o,n]of Object.entries(i.changes))n.collections?e.collections[o]=n.collections:delete e.collections[o];e.source_cursor=i.source_cursor}}function $i(e,i,t,o){!e||!o||e.context_fingerprint!==o.context_fingerprint||(Li(e,o),Pi(i,o),ji(t,o))}function Be(e,i){v.size>=Ai&&!v.has(e)&&ut(v),v.set(e,i)}async function O(e,i){let t;try{t=await E.stat(e)}catch{return v.delete(e),null}let o=v.get(e);if(o&&te(o.signature,t.mtimeMs,t.ctimeMs,t.size))return v.delete(e),v.set(e,o),o.envelope;let n;try{n=i(await E.readFile(e,"utf8"))}catch{n=null}return Be(e,{signature:{mtime_ms:t.mtimeMs,ctime_ms:t.ctimeMs,size:t.size},envelope:n}),n}async function Hi(e,i,t){let o=s=>{let l=JSON.parse(s);return l.version!==x||typeof l.source_cursor!="string"||typeof l.entries!="object"||l.entries===null?null:l},n=Ie(e),r=await O(n,o);if(!i||r===null||r.context_fingerprint===i)return r;let a=await O(Te(n,i),o);return a===null&&ne(t,`metadata_cache_context_changed:${r.context_fingerprint}->${i}`),a}async function Wi(e,i){let t=r=>{let a=JSON.parse(r);return a.version!==x||typeof a.source_cursor!="string"||typeof a.bodies!="object"||a.bodies===null?null:a},o=ve(e),n=await O(o,t);return i&&n?.context_fingerprint!==i?await O(Te(o,i),t):n}async function Ui(e,i){let t=r=>{let a=JSON.parse(r);return a.version!==x||typeof a.source_cursor!="string"||typeof a.collections!="object"||a.collections===null?null:a},o=Ce(e),n=await O(o,t);return i&&n?.context_fingerprint!==i?await O(Te(o,i),t):n}async function Ge(e){let i=ze(e),t=await O(i,o=>{let n=JSON.parse(o);return n.version!==x||typeof n.base_source_cursor!="string"||typeof n.source_cursor!="string"||typeof n.changes!="object"||n.changes===null?null:n});if(t)return{envelope:t,invalid:!1};try{return await E.stat(i),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function qe(e){let i=Xe(e),t=await O(i,o=>{let n=JSON.parse(o);return n.version!==x||typeof n.context_fingerprint!="string"||typeof n.source_cursor!="string"||!Number.isInteger(n.entry_count)||n.entry_count<0||typeof n.directory_signatures!="object"||n.directory_signatures===null?null:n});if(t)return t;try{await E.stat(i),await U(e)}catch{}return null}async function ie(e,i){await E.mkdir(w.dirname(e),{recursive:!0}),await D(e,JSON.stringify(i));try{let o=await E.stat(e);Be(e,{signature:{mtime_ms:o.mtimeMs,ctime_ms:o.ctimeMs,size:o.size},envelope:i})}catch{v.delete(e)}let t=w.dirname(w.dirname(e));if(e===Ie(t)||e===ve(t)||e===Ce(t)){let o=Te(e,i.context_fingerprint);await D(o,JSON.stringify(i));try{let l=await E.stat(o);Be(o,{signature:{mtime_ms:l.mtimeMs,ctime_ms:l.ctimeMs,size:l.size},envelope:i})}catch{v.delete(o)}let n=w.dirname(e),r=w.extname(e),a=w.basename(e,r),s=(await E.readdir(n,{withFileTypes:!0}).catch(()=>[])).filter(l=>l.isFile()&&l.name!==w.basename(e)&&l.name.startsWith(`${a}.`)&&l.name.endsWith(r)).map(l=>w.join(n,l.name));if(s.length>Ft){let l=(await Promise.all(s.map(async c=>{try{return{path:c,mtime:(await E.stat(c)).mtimeMs}}catch{return null}}))).filter(c=>c!==null);for(let c of l.sort((d,u)=>d.mtime-u.mtime).slice(0,Math.max(0,l.length-Ft)))await E.rm(c.path,{force:!0}),v.delete(c.path)}}}function Bi(e,i,t){return t?i===t&&e!==t:i==="toon"&&e!=="toon"}function Bt(e,i,t){return e===void 0||Bi(e,i,t)}function ne(e,i){e&&!e.includes(i)&&e.push(i)}function te(e,i,t,o){return e.mtime_ms===i&&e.ctime_ms===t&&e.size===o}async function zi(e,i,t){let o=w.join(e,i);try{let n=await E.readdir(o);return{folder:i,dirPath:o,files:n}}catch(n){return typeof n=="object"&&n!==null&&"code"in n&&!A(n)&&ne(t,`item_list_directory_read_failed:${i}`),{folder:i,dirPath:o,files:[]}}}async function Xi(e,i){try{let t=await E.stat(w.join(e,i));return[i,{exists:!0,mtime_ms:t.mtimeMs,ctime_ms:t.ctimeMs,size:t.size}]}catch{return[i,{exists:!1,mtime_ms:0,ctime_ms:0,size:0}]}}async function be(e,i){return Object.fromEntries(await Promise.all(i.map(async t=>await Xi(e,t))))}function oe(e,i){return!e||Object.keys(e).length!==Object.keys(i).length?!1:Object.entries(i).every(([t,o])=>{let n=e[t];return n!==void 0&&n.exists===o.exists&&te(n,o.mtime_ms,o.ctime_ms,o.size)})}function Yi(e){return ce.some(i=>e.toLowerCase().endsWith(i))}function Gi(e,i,t,o,n,r){o||(e.metadata=!0),i&&!n&&(e.body=!0),t&&!r&&(e.collections=!0)}async function qi(e,i,t){if(t)for(let o of await le({path:e,scope:"project"}))ne(i,o)}function At(e,i,t,o){if(e)return i&&t?t.collections:o}async function Ki(e,i,t){let o=await E.stat(e),n=o.mtimeMs,r=o.ctimeMs,{size:a}=o,s=Ne(e);await qi(e,t.warnings,t.dispatchReadHooks);let l=t.previousEntries[i],c=!t.forceSourceRead&&l!==void 0&&te(l,n,r,a),d=t.previousBodies[i],u=!t.forceSourceRead&&d!==void 0&&te(d,n,r,a),p=t.previousCollections[i],h=!t.forceSourceRead&&p!==void 0&&te(p,n,r,a);if(!(!c||t.includeBody&&!u||t.includeCollections&&!h))return{mtimeMs:n,ctimeMs:r,size:a,itemFormat:s,lightMetadata:l.metadata,heavyMetadata:At(t.includeCollections,h,p,void 0),bodyLength:l.body_length,body:t.includeBody?d.body:void 0};let m=await E.readFile(e,"utf8"),_=ue(m,{format:s,schema:t.schema,extensionFieldNames:t.extensionFieldNames,onWarning:b=>ne(t.warnings,b)}),g=Ee(_.metadata);return Gi(t.state.misses,t.includeBody,t.includeCollections,c,u,h),{mtimeMs:n,ctimeMs:r,size:a,itemFormat:s,lightMetadata:c?l.metadata:g.light,heavyMetadata:At(t.includeCollections,h,p,g.heavy),bodyLength:c?l.body_length:_.body.length,body:t.includeBody?_.body:void 0}}function Vi(e,i,t,o){t.state.newEntries[i]={mtime_ms:o.mtimeMs,ctime_ms:o.ctimeMs,size:o.size,metadata:o.lightMetadata,body_length:o.bodyLength},t.includeBody&&o.body!==void 0&&(t.state.newBodies[i]={mtime_ms:o.mtimeMs,ctime_ms:o.ctimeMs,size:o.size,body:o.body}),t.includeCollections&&o.heavyMetadata!==void 0&&(t.state.newCollections[i]={mtime_ms:o.mtimeMs,ctime_ms:o.ctimeMs,size:o.size,collections:o.heavyMetadata});let n=t.includeCollections?Wt(o.lightMetadata,o.heavyMetadata):o.lightMetadata,r=t.state.documentsById.get(n.id),a={metadata:n,body:o.body,item_format:o.itemFormat,item_path:e};Bt(r?.itemFormat,o.itemFormat,t.preferredFormat)&&t.state.documentsById.set(n.id,{candidate:a,itemFormat:o.itemFormat})}async function Ji(e,i,t,o){try{let n=await Ki(i,t,o);Vi(i,t,o,n)}catch{ne(o.warnings,`item_list_item_read_failed:${e}/${w.basename(i)}`)}}function Qi(e,i){return e&&e.context_fingerprint===i?e.entries:{}}function Zi(e,i){return e&&e.context_fingerprint===i?e.bodies:{}}function eo(e,i){return e&&e.context_fingerprint===i?e.collections:{}}function to(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}async function io(e,i){let t=[];for(let{folder:o,dirPath:n,files:r}of e)for(let a of r){if(!Yi(a))continue;let s=w.join(n,a),l=w.relative(i.pmRoot,s);t.push(Ji(o,s,l,i)),t.length===32&&(await Promise.all(t),t.length=0)}await Promise.all(t)}async function oo(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!oe(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await ie(Ie(e.pmRoot),{version:x,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await ie(Xe(e.pmRoot),{version:x,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,entry_count:Object.keys(e.state.newEntries).length,directory_signatures:e.directorySignatures});let i=[...e.state.documentsById.values()].map(({candidate:t})=>({relativePath:w.relative(e.pmRoot,t.item_path),metadata:Ee(t.metadata).light,linkedFiles:t.metadata.files??[]}));i.length>=e.minimumIndexedItems?await Ot({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:i}):await we(e.pmRoot)}catch{}}async function no(e){!(e.state.misses.body||Object.keys(e.previousBodies).length!==Object.keys(e.state.newBodies).length)&&e.existingBodyCache!==null&&e.existingBodyCache.context_fingerprint===e.contextFingerprint||await ie(ve(e.pmRoot),{version:x,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function ro(e){!(e.state.misses.collections||Object.keys(e.previousCollections).length!==Object.keys(e.state.newCollections).length)&&e.existingCollectionsCache!==null&&e.existingCollectionsCache.context_fingerprint===e.contextFingerprint||await ie(Ce(e.pmRoot),{version:x,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function Ke(e,i,t={}){let o=await qe(e);return t.required!==!0&&(o===null||o.entry_count<$t)?async()=>{}:ft(e,Ri,30,i,!1,!1,3e3)}async function Fn(e,i){let t=await qe(e);if(t===null)return null;let o=await Ge(e);if(o.invalid)return await U(e),null;let n=o.envelope?.context_fingerprint===t.context_fingerprint&&o.envelope.base_source_cursor===t.source_cursor?o.envelope.source_cursor:t.source_cursor,r=o.envelope?.context_fingerprint===t.context_fingerprint&&o.envelope.base_source_cursor===t.source_cursor?o.envelope.directory_signatures:t.directory_signatures;return i&&!oe(r,await be(e,i))?null:{source_cursor:n,entry_count:t.entry_count}}function Lt(e,i){let t=w.relative(e,i);return t===""||t===".."||t.startsWith(`..${w.sep}`)||w.isAbsolute(t)?null:t}async function U(e){await Promise.all([Ie(e),ve(e),Ce(e),ze(e),Xe(e)].map(async i=>{await E.rm(i,{force:!0}),v.delete(i)})),await we(e)}async function ao(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let i=await E.stat(e.mutation.itemPath),t=Ee(e.mutation.document.metadata),o={mtime_ms:i.mtimeMs,ctime_ms:i.ctimeMs,size:i.size};return{entry:{...o,metadata:t.light,body_length:e.mutation.document.body.length},body:{...o,body:e.mutation.document.body},collections:{...o,collections:t.heavy}}}function so(e,i,t){return e?.context_fingerprint===i&&e.base_source_cursor===t?structuredClone(e.changes):{}}async function Ve(e){let i=Lt(e.pmRoot,e.itemPath),t=e.previousItemPath?Lt(e.pmRoot,e.previousItemPath):void 0;if(i===null||t===null)return await U(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let o=Ut(e.preferredFormat,e.typeToFolder,e.schema,Ht()),n=await qe(e.pmRoot);if(n===null||n.context_fingerprint!==o)return[];let r=n.source_cursor,a=await Ge(e.pmRoot);if(a.invalid)return await U(e.pmRoot),["metadata_derived_index_refresh_failed"];let s=so(a.envelope,o,r),l=a.envelope?.context_fingerprint===o&&a.envelope.base_source_cursor===r?a.envelope.source_cursor:r;t!==void 0&&(s[t]={entry:null,body:null,collections:null}),s[i]=await ao({mutation:e});let c=jt();return await ie(ze(e.pmRoot),{version:x,context_fingerprint:o,base_source_cursor:r,source_cursor:c,directory_signatures:await be(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:s}),await Mt({pmRoot:e.pmRoot,contextFingerprint:o,expectedSourceCursor:l,sourceCursor:c,row:e.document===null?null:{relativePath:i,metadata:Ee(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...t===void 0?[]:[t],...e.document===null?[i]:[]]})||await we(e.pmRoot),[]}catch{return await U(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function co(e){return[...e.documentsById.values()].sort((i,t)=>i.candidate.metadata.id.localeCompare(t.candidate.metadata.id)).map(i=>i.candidate)}function Pt(e,i,t){return e?.context_fingerprint===i&&e.source_cursor===t}function lo(e,i,t,o,n){return e.every(r=>(!i||o[r]!==void 0)&&(!t||n[r]!==void 0))}function uo(e){let i=new Map;for(let[t,o]of Object.entries(e.previousEntries)){let n=Ne(t);if(!n)continue;let r=e.includeCollections?Wt(o.metadata,e.previousCollections[t]?.collections):o.metadata,a=i.get(r.id);Bt(a?.itemFormat,n,e.preferredFormat)&&i.set(r.id,{itemFormat:n,candidate:{metadata:r,body:e.includeBody?e.previousBodies[t]?.body:void 0,item_format:n,item_path:w.join(e.pmRoot,t)}})}return[...i.values()].sort((t,o)=>t.candidate.metadata.id.localeCompare(o.candidate.metadata.id)).map(t=>t.candidate)}function mo(e){return e.forceSourceScan||Oe()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!oe(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||Pt(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||Pt(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&lo(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function xe(e,i,t,o,n,r={}){let a=r.includeBody!==!1,s=r.includeCollections!==!1,l=Ht(),c=Ut(i,t,n,l),d=await Ge(e);d.invalid&&await U(e);let u=await Hi(e,c,r.cacheDiagnostics),p=a?await Wi(e,c):null,h=s?await Ui(e,c):null;$i(u,p,h,d.envelope);let m=Qi(u,c),_=Zi(p,c),g=eo(h,c),b=[...new Set(Object.values(t))],T=await be(e,b),$=Object.keys(m),N=Math.max(1,Math.floor(r.derivedIndexMinimumItems??$t));if(mo({forceSourceScan:r.forceSourceScan===!0,contextFingerprint:c,existingCache:u,existingBodyCache:p,existingCollectionsCache:h,directorySignatures:T,entryKeys:$,minimumIndexedItems:N,includeBody:a,includeCollections:s,previousBodies:_,previousCollections:g}))return uo({pmRoot:e,preferredFormat:i,includeBody:a,includeCollections:s,previousEntries:m,previousBodies:_,previousCollections:g});let I=await Promise.all(b.map(H=>zi(e,H,o))),M=Oe(),C=to(),B={pmRoot:e,preferredFormat:i,warnings:o,schema:n,extensionFieldNames:l,includeBody:a,includeCollections:s,forceSourceRead:r.forceSourceScan===!0,dispatchReadHooks:M,previousEntries:m,previousBodies:_,previousCollections:g,state:C};await io(I,B);let k=await be(e,b),S=oe(T,k)?k:{},z=C.misses.metadata||Object.keys(m).length!==Object.keys(C.newEntries).length||!oe(u?.directory_signatures,S)||u===null?jt():u.source_cursor;return await oo({pmRoot:e,contextFingerprint:c,sourceCursor:z,existingCache:u,previousEntries:m,directorySignatures:S,state:C,minimumIndexedItems:N}),a&&await no({pmRoot:e,contextFingerprint:c,sourceCursor:z,existingBodyCache:p,previousBodies:_,state:C}),s&&await ro({pmRoot:e,contextFingerprint:c,sourceCursor:z,existingCollectionsCache:h,previousCollections:g,state:C}),co(C)}async function zt(e,i,t,o,n){return(await xe(e,i,t,o,n,{includeBody:!1})).map(r=>({metadata:r.metadata,body:r.body??""}))}async function Xt(e,i,t,o,n){return(await xe(e,i,t,o,n,{includeBody:!1,includeCollections:!1})).map(r=>({metadata:r.metadata,body:r.body??""}))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="e23f9ca6-9fa6-566b-9bfb-7cbe6d449a59")}catch{}})();function fo(e,i){let t=e.trim().toLowerCase();if(t.length===0)return;let o=Math.floor(t.length/3);return i.map(n=>({candidate:n,distance:ae(t,n.toLowerCase(),o)??Number.POSITIVE_INFINITY})).filter(({distance:n})=>Number.isFinite(n)).sort((n,r)=>n.distance!==r.distance?n.distance-r.distance:n.candidate.localeCompare(r.candidate))[0]?.candidate}function Yt(e){return["pm",...e].map(i=>/^[A-Za-z0-9_./:@=-]+$/u.test(i)?i:JSON.stringify(i)).join(" ")}function $n(e){let i=e.command_path.trim().replaceAll(/\s+/gu," "),t=e.token.trim(),o=t.length===0?"<empty>":t,n=[...new Set(e.allowed.map(p=>p.trim()))].filter(Boolean).sort((p,h)=>p.localeCompare(h));if(i.length===0||o.length===0||n.length===0)throw new TypeError("Unknown-subcommand contracts require a path, token, and allowed set");let r=i.split(" "),a=e.trailing_args??[],s=e.display_name??`pm ${i}`,l=e.token_kind??"subcommand",c=e.retry_command?void 0:fo(o,n),d=Yt([...r,o,...a]),u=e.retry_command??(c?Yt([...r,c,...a]):void 0);return new f(`Unknown ${s} ${l} "${o}". Allowed: ${n.join(", ")}${e.message_suffix??""}`,e.exit_code??y.USAGE,{code:"unknown_subcommand",reason:"unknown_positional_token",value:o,examples:[...u?[u]:[],...e.examples??[],`pm ${i} --help`],nextSteps:u?[`Retry with the suggested command: ${u}`]:["Choose one value from recovery.allowed_values."],recovery:{attempted_command:d,allowed_values:n,suggested_retry:u,fallback_candidates:e.fallback_candidates}})}import po from"node:fs/promises";import yo from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="1d746e4d-ff6c-54ec-a94f-4ec4cb8f77b5")}catch{}})();function ho(e){return[...new Set(e.filter(i=>i.trim().length>0))].sort((i,t)=>i.localeCompare(t))}function go(e,i){return new f(`Missing history stream for ${e}. ${i} requires history streams when settings.history.missing_stream is strict_error.`,y.NOT_FOUND)}async function _o(e,i){return await ot(yo.dirname(e)),await(await po.open(e,"a")).close(),L({path:e,scope:"project",op:`${i}:history:auto_create`})}async function Je(e){return wo({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function wo(e){let i=ho(e.itemIds),t=[],o=[];for(let n of i){let r=R(e.pmRoot,n);if(!await X(r)){if(e.settings.history.missing_stream==="strict_error")throw go(n,e.commandLabel);o.push(...await _o(r,e.commandLabel)),o.push(`history_stream_auto_created:${n}`),t.push(n)}}return{auto_created_ids:t,warnings:o}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="5db05e2f-4742-526b-b1c8-b97ff302b40e")}catch{}})();function re(e,i=!1){let t=e[0];if(t?.op!=="history_compact_baseline")return 0;let o=t.context?.history_compaction,n=typeof o=="object"&&o!==null&&"version_offset"in o?o.version_offset:void 0;if(typeof n=="number"&&Number.isSafeInteger(n)&&n>=0&&Number.isSafeInteger(n+e.length))return n;if(i)return null;throw new f("This compacted stream has no trustworthy version offset; numeric history addresses are unavailable.",y.USAGE,{code:"history_version_mapping_unavailable",required:"Use a retained timestamp or recover the pre-compaction stream from version control.",nextSteps:["Run pm history <id> --full to inspect the retained timestamps and checkpoint evidence."]})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="ddc5bb8f-83bc-5121-a628-a501e7ed5a73")}catch{}})();function bo(e,i){let t=-1;return e.forEach((o,n)=>{let r=Date.parse(o.ts);if(!Number.isFinite(r))throw new f(`History for this item contains invalid timestamp at entry ${n+1}.`,y.GENERIC_FAILURE);r<=i&&(t=n)}),t}function Eo(e,i){let t=e[0]?.ts??null,o=e.at(-1)?.ts??null,n={code:"history_target_out_of_range",required:"Choose a target within the available item history.",why:"Point-in-time reads and restores can only reconstruct recorded versions.",examples:[],nextSteps:["Run pm history <id> to inspect available versions and timestamps."],valid_range:{first_version:null,last_version:null,first_timestamp:t,last_timestamp:o}};return o!==null&&(n.examples=[o],i!==null&&(n.examples.unshift(String(i+1),String(i+e.length)),n.valid_range.first_version=i+1,n.valid_range.last_version=i+e.length)),{guidance:n,lastTimestamp:o}}function Io(e,i){let t={};if(i instanceof Error&&i.message.trim().length>0&&(t.reason=i.message.trim()),typeof i!="object"||i===null)return t;let o=i;if(typeof o.index=="number"&&Number.isInteger(o.index)&&o.index>=0&&(t.patchIndex=o.index),typeof o.operation=="object"&&o.operation!==null){let n=o.operation;Object.assign(t,Object.fromEntries(["op","path","from"].flatMap(r=>{let a=n[r];return typeof a=="string"?[[r,a]]:[]})))}if(t.patchIndex!==void 0){let n=e[t.patchIndex];n&&(t.op??=n.op,t.path??=n.path,t.from??=n.from)}return t}function Gt(e,i,t={}){let o=e.trim(),n=t.errorSubject??"history",r=n==="restore"?"Restore":"History",{guidance:a,lastTimestamp:s}=Eo(i,re(i,!0));if(!o)throw new f(`Missing ${n} target. Use a timestamp or version number.`,y.USAGE,a);if(/^\d+$/.test(o)){let d=re(i),u=Number(o);if(u>=1&&u<=d)throw new f(`History version ${u} was pruned by compaction.`,y.USAGE,{...a,code:"history_version_pruned"});if(!Number.isSafeInteger(u)||u<1||u>d+i.length)throw new f(`${r} version must be between ${d+1} and ${d+i.length} for this item.`,y.USAGE,a);return{kind:"version",raw:o,historyIndex:u-d-1}}let l=Date.parse(o);if(!Number.isFinite(l))throw new f(`Invalid ${n} target "${e}". Use a positive version number or ISO timestamp.`,y.USAGE,a);let c=bo(i,l);if(c<0||t.allowFutureTimestamp!==!0&&l>Date.parse(s))throw new f(n==="restore"?`No history entries exist at or before timestamp ${o}.`:`No history entry exists at timestamp ${o}.`,y.USAGE,a);return{kind:"timestamp",raw:o,historyIndex:c}}function Qe(e,i,t,o){let n=je(e,i);if(n.ok)return n.document;let r=Io(i,n.error),a=[`history_op=${o}`,r.patchIndex===void 0?null:`patch_index=${r.patchIndex}`,r.op?`op=${r.op}`:null,r.path?`path=${r.path}`:null,r.from?`from=${r.from}`:null].filter(s=>s!==null);throw new f(`Failed to apply history patch at entry ${t} (${a.join(", ")}). ${r.reason??String(n.error)}`,y.GENERIC_FAILURE)}function qt(e,i){let t=e[0];if(t&&t.op!=="create"&&t.op!=="history_compact_baseline"){let a=je(K,t.patch);if(!a.ok||typeof a.document.metadata.id!="string")throw new f("History starts without a reconstructable item baseline.",y.GENERIC_FAILURE,{code:"history_baseline_unavailable",required:"Recover the original create entry or a complete checkpoint from version control.",nextSteps:["Run pm history <id> --full to inspect the missing baseline."]})}let o=e.slice(0,i+1),n=me([...o]),r=structuredClone(K);for(let a=0;a<=i;a+=1){let s=e[a];if(!s)throw new f(`History target entry ${a+1} does not exist.`,y.USAGE);r=Qe(r,s.patch,a+1,s.op)}if(!n.ok)throw new f(`History cannot be replayed: ${n.errors.join(", ")}.`,y.GENERIC_FAILURE,{code:"history_replay_invalid",verification_errors:n.errors,required:"Inspect the history integrity findings before attempting recovery.",nextSteps:["Run pm history <id> --verify --full."]});return r}function ir(e,i){if(Object.keys(e.metadata).length>0){if(typeof e.metadata.id!="string"||!Array.isArray(e.metadata.tags))throw new f("History has no complete item baseline for this target.",y.GENERIC_FAILURE,{code:"history_baseline_unavailable",required:"Recover the original create entry or a complete checkpoint from version control.",nextSteps:["Run pm history <id> --full to inspect the first recorded state."]});return e}throw new f(`History target ${i.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,y.USAGE)}import j from"node:fs/promises";import{statSync as vo}from"node:fs";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="be69f1e8-4543-5cf5-abb0-9d38ca1d0cc6")}catch{}})();function Co(e,i){let t=-1,o=structuredClone(K);for(let[s,l]of e.entries()){if(o=Qe(o,l.patch,s+1,l.op),o.metadata.id!==void 0&&o.metadata.id!==i)throw new f(`History belongs to item ${String(o.metadata.id)}, expected ${i}.`,y.GENERIC_FAILURE,{code:"history_replay_invalid",required:"Recover the correct history stream for this item before attempting restoration."});o.metadata.id===i&&Array.isArray(o.metadata.tags)&&(t=s)}let n=re(e,!0),r=t<0||n===null?null:n+t+1,a=r===null?void 0:String(r);if(t>=0&&a===void 0){let s=e[t].ts;Gt(s,e).historyIndex===t&&(a=s)}return{version:r,target:a}}async function Kt(e,i,t){let o=new Set([J(i,t),V(i)]);for(let n of o){let r=R(e,n);if(!vo(r,{throwIfNoEntry:!1})?.isFile())continue;let a=await wt(r,n),s=-1;if(a.forEach((h,m)=>{h.op==="delete"&&(s=m)}),s<0)continue;let l=qt(a,a.length-1);if(Object.keys(l.metadata).length!==0)continue;let{version:c,target:d}=Co(a,n),u=d===void 0?["history",n,"--verify"]:["get",n,"--at",d],p=G(u);return new f(`Item ${n} was deleted at ${a[s].ts}; its history is retained.`,y.NOT_FOUND,{code:"item_deleted",required:"Read a retained materialized version, then restore it if the item should exist again.",item_id:n,tombstone:{deleted:!0,deleted_at:a[s].ts,recoverable:d!==void 0,last_materialized_version:c},nextSteps:[p,...d===void 0?["Recover the pre-compaction history from version control."]:[G(["restore",n,d])]],recovery:{suggested_retry:p,suggested_retry_args:u}})}}import{AsyncLocalStorage as To}from"node:async_hooks";import So from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="53df109f-bd64-5879-96a6-39f70334910e")}catch{}})();var xo=new To;function Vt(e,i){for(let t of xo.getStore()??[])t.pmRoot===So.resolve(e)&&t.id===i.metadata.id&&t.validate(i)}import{AsyncLocalStorage as Ro}from"node:async_hooks";import Jt from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="c343ed33-0135-5d3a-94a4-67314b295168")}catch{}})();var Qt=new Ro;function br(e,i){return Qt.run({...e,pmRoot:Jt.resolve(e.pmRoot)},i)}function Zt(e,i){let t=Qt.getStore();return t?.pmRoot===Jt.resolve(e)&&t.itemId===i?{bulk_checkpoint:t.checkpointId}:void 0}import Ze from"node:path";import{isUtf8 as No}from"node:buffer";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="3a19f8b4-d2d8-5133-b320-281980d64da6")}catch{}})();async function ko(e){try{return await j.access(e),!0}catch{return!1}}function Do(e,i){e&&(e.includes(i)||e.push(i))}function ei(e){return e??se(Y())}function Oo(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}async function ti(e,i,t="pm-",o,n=F){let r=i.trim(),a=r.startsWith("#")?r.slice(1):r;if(a.length===0)return null;let s=J(i,t),l=V(i),c=[...new Set([a,s,l])].filter(p=>p.length>0),d=Object.entries(n),u=Oo(o);for(let p of c){let h=new Map;for(let[m]of d)for(let _ of u){let g=Re(e,m,p,_,n);await ko(g)&&h.set(g,h.get(g)??{id:p,type:m,itemPath:g,item_format:_})}if(h.size>1){let m=[...h.keys()].map(_=>Ze.relative(e,_).split(Ze.sep).join("/")).sort();throw new f(`Item ${p} has ambiguous identity across ${m.join(", ")}. Preserve both documents and inspect pm ops validate --check-storage-integrity before resolving the collision.`,y.CONFLICT,{code:"item_identity_ambiguous",item_id:p,paths:m})}for(let m of h.values())return m}return null}async function ii(e,i={}){let t=await Mo(e,i);if(t.error!==null)throw t.error;return{raw:t.raw,document:t.document}}async function Mo(e,i={}){let t=await j.readFile(e.itemPath);if(!No(t))throw new f("Item contains invalid UTF-8; preserve a binary backup before recovering it.",y.CONFLICT,{code:"item_document_encoding_invalid",item_id:e.id,item_path:e.itemPath,byte_length:t.length,empty:!1});let o=t.toString("utf8");await le({path:e.itemPath,scope:"project"});let n;try{n=ue(o,{format:e.item_format,requireSupportedFormat:!0,schema:i.schema,extensionFieldNames:ei(i.extensionFieldNames),onWarning:r=>Do(i.warnings,r)})}catch(r){if(r instanceof f&&r.code==="item_format_version_unsupported")throw new f(`Item ${e.id}: ${r.message}`,r.exitCode,{...r.context,item_id:e.id,item_path:e.itemPath});if(r instanceof f&&r.code==="item_document_invalid")return{raw:o,document:null,error:new f(`Cannot read ${e.id} at ${e.itemPath}${t.length===0?" (zero-length file)":""}: ${r.message}`,r.exitCode,{...r.context,item_id:e.id,item_path:e.itemPath,byte_length:t.length,empty:t.length===0,nextSteps:[`Run pm history ${e.id} --full, then pm restore ${e.id} <version> to recover a recorded state.`]})};throw r}return{raw:o,document:n,error:null}}async function Fo(e,i,t=F,o,n){await fe(e);let r=await zt(e,i,t,o,n);return ye(r.length),r.map(a=>a.metadata)}async function Jr(e,i,t=F,o,n){await fe(e);let r=await Xt(e,i,t,o,n);return ye(r.length),r.map(a=>a.metadata)}async function Qr(e,i,t=F,o,n,r={}){await fe(e);let a=await xe(e,i,t,o,n,{includeBody:!0,forceSourceScan:r.forceSourceScan});return ye(a.length),a.map(s=>({...s.metadata,body:s.body}))}function oi(e){return{async get(i){let t=await ti(e.pmRoot,i,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!t)return null;let{document:o}=await ii(t,{schema:e.settings.schema});return{item:o.metadata,body:o.body}},list:()=>Fo(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function Ao(e,i){let t=new Set(Object.values(i)),o=[];return await Promise.all([...t].map(async n=>{try{let r=await j.readdir(Ze.join(e,n));for(let a of r)for(let s of ce)if(a.toLowerCase().endsWith(s)){o.push(a.slice(0,-s.length));break}}catch{}})),o}async function Lo(e,i,t,o){let n=J(i,t),r=await Ao(e,o);if(r.length===0)return[];let a=Math.max(3,Math.floor(n.length/2));return r.map(s=>({id:s,distance:ae(s,n,a)})).filter(s=>s.distance!==null).sort((s,l)=>s.distance-l.distance).slice(0,3).map(s=>s.id)}async function Po(e,i,t,o){let n=await Kt(e,i,t);if(n)return n;let r=await Lo(e,i,t,o),a=["Confirm the active --path/PM_PATH scope, then retry with a valid id."];return r.length>0&&a.unshift(`Did you mean one of: ${r.join(", ")}?`),new f(`Item ${i} not found`,y.NOT_FOUND,{nextSteps:a})}function jo(e,i){return e==="claim"||i===!0&&(e==="comment_add"||e==="comment_edit"||e==="comment_delete"||e==="note_add"||e==="learning_add"||e==="release"||e==="update"||e==="update_ownership_bypass"||e==="update_audit")}async function ni(e){let i=e.typeToFolder??at(e.settings,Y()).type_to_folder,t=await ti(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,i);if(!t)throw await Po(e.pmRoot,e.id,e.settings.id_prefix,i);let o=await pt(e.pmRoot,t.id,e.settings.locks.ttl_seconds,e.author,!!e.force,e.settings.governance.force_required_for_stale_lock,e.settings.locks.wait_ms,{waitPolicy:"progress"}),n=o.release;try{let r=[],{raw:a,document:s}=await ii(t,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:r}),l=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||l,d=_t(e.author),u=It(e.settings);if(l&&c!==d&&!e.force&&!jo(e.op,e.bypassAssigneeConflict)){if(u.ownership_enforcement==="strict")throw new f(`Item ${t.id} is assigned to ${l}. Use --force to override.`,y.CONFLICT);u.ownership_enforcement==="warn"&&r.push(`ownership_warning:assignee_conflict:${t.id}:${l}`)}return{typeToFolder:i,located:t,originalRaw:a,document:s,warnings:r,releaseLock:n,lease:o}}catch(r){throw await n(),r}}async function ri(e,i,t,o){return e.fence(async()=>{let n;try{n=await j.readFile(i.itemPath,"utf8")}catch(r){if(!A(r))throw r;n=null}if(n!==t)throw new f(`Item ${i.id} changed after this mutation read it; refusing to overwrite the newer revision. Nothing was written.`,y.CONFLICT,{code:"stale_revision",item_id:i.id,reason:n===null?"item_removed":"item_revision_changed",required:"Re-read the item and apply the mutation again; the newer stored revision was kept."});return o()})}function $o(e,i,t){if(!e.handled||typeof e.result!="object"||e.result===null)return{effectiveTargetItemPath:i,effectiveSerializedAfter:t,skipItemWrite:!1};let o=e.result;return{effectiveTargetItemPath:typeof o.target_item_path=="string"&&o.target_item_path.trim().length>0?o.target_item_path:i,effectiveSerializedAfter:typeof o.contents=="string"?o.contents:t,skipItemWrite:o.skip_write===!0}}async function Ho(e){let i=await Me("item_store_delete",e),t=i.handled&&typeof i.result=="object"&&i.result!==null?i.result:{};return{effectiveItemPath:typeof t.item_path=="string"&&t.item_path.trim().length>0?t.item_path:e.item_path,skipDelete:t.skip_delete===!0,warnings:i.warnings}}async function Wo(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await D(e.originalItemPath,e.originalRaw),await j.rm(e.effectiveTargetItemPath,{force:!0});return}await D(e.originalItemPath,e.originalRaw)}}async function et(e){yt(e.op);let i=await ni({pmRoot:e.pmRoot,settings:e.settings,id:e.id,op:e.op,author:e.author,force:e.force,bypassAssigneeConflict:e.bypassAssigneeConflict,extensionFieldNames:e.extensionFieldNames,typeToFolder:e.typeToFolder}),{typeToFolder:t,located:o,originalRaw:n,document:r,warnings:a,releaseLock:s,lease:l}=i;try{Vt(e.pmRoot,r);let c=q(r,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),d=q(structuredClone(r),{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),u=await e.mutate(d);if(e.skipNoop===!0&&u.changedFields.length===0)return{item:c.metadata,body:c.body,changedFields:[],warnings:[...a,...u.warnings??[]]};let p={...e.resolveHistoryContext?.(),...Zt(e.pmRoot,o.id)},h=Math.max(Ae(c.metadata),Ae(d.metadata));vt(st(e.pmRoot),h),h>ht(d.metadata)&&(d.metadata.pm_format_version=h,u.changedFields.push("pm_format_version")),d.metadata.updated_at=Fe();let m=q(d,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),_=await $e({pmRoot:e.pmRoot,settings:e.settings,operation:e.op,author:e.author,before:c,after:m});await De({pm_root:e.pmRoot,operation:e.op,before:c,after:m,changed_fields:u.changedFields,sdk:oi({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t})});let g=await Je({pmRoot:e.pmRoot,settings:e.settings,itemId:o.id,commandLabel:e.op}),b="toon",T=gt(m,{format:b,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),$=Re(e.pmRoot,m.metadata.type,o.id,b,t),N=R(e.pmRoot,o.id),I=await ri(l,o,n,async()=>{let k=await Me("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:o.id,source_item_path:o.itemPath,target_item_path:$,history_path:N,item_format:b,before:c,after:m,contents:T}),{effectiveTargetItemPath:S,effectiveSerializedAfter:z,skipItemWrite:H}=$o(k,$,T),ai=await Ke(e.pmRoot,e.author),tt=[];try{H||await D(S,z),!H&&S!==o.itemPath&&await j.rm(o.itemPath);let si=Le({nowIso:m.metadata.updated_at,author:e.author,op:e.op,before:c,after:m,message:e.message,context:_.decisions.length===0?Object.keys(p).length===0?void 0:p:{...p,workflow_policies:_.decisions}});try{await Pe(N,si)}catch(ci){throw await Wo({skipItemWrite:H,effectiveTargetItemPath:S,originalItemPath:o.itemPath,originalRaw:n}),ci}H||(tt=await Ve({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t,schema:e.settings.schema,itemPath:S,previousItemPath:o.itemPath,document:m}))}finally{await ai()}return{derivedIndexWarnings:tt,effectiveTargetItemPath:S,overrideWarnings:k.warnings}}),{derivedIndexWarnings:M,effectiveTargetItemPath:C}=I,B=[...await L({path:C,scope:"project",op:e.op,item_id:m.metadata.id,item_type:m.metadata.type,before:c,after:m,changed_fields:u.changedFields}),...await L({path:N,scope:"project",op:`${e.op}:history`,item_id:m.metadata.id,item_type:m.metadata.type,before:c,after:m,changed_fields:u.changedFields})];return ke({id:m.metadata.id,op:e.op,item_type:m.metadata.type,previous_status:c.metadata.status,status:m.metadata.status,previous:de(c.metadata,u.changedFields),current:de(m.metadata,u.changedFields),changed_fields:u.changedFields}),{item:m.metadata,body:m.body,changedFields:u.changedFields,warnings:[...a,...u.warnings??[],..._.warnings,...g.warnings,...I.overrideWarnings,...M,...B]}}finally{await s()}}async function Zr(e){let{historyContext:i,...t}=e;return et({...t,resolveHistoryContext:()=>i})}async function ea(e){return et(e)}async function ta(e){return et(e)}async function ia(e){let i=await ni({pmRoot:e.pmRoot,settings:e.settings,id:e.id,op:"delete",author:e.author,force:e.force}),{located:t,originalRaw:o,document:n,warnings:r,releaseLock:a,lease:s}=i;try{let l=ei(void 0),c=q(n,{schema:e.settings.schema,extensionFieldNames:l}),d=await $e({pmRoot:e.pmRoot,settings:e.settings,operation:"delete",author:e.author,before:c,after:null,dryRun:e.dryRun});await De({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:oi({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:i.typeToFolder})});let u=await Je({pmRoot:e.pmRoot,settings:e.settings,itemId:t.id,commandLabel:"delete"}),p=Fe(),h=it,m=Le({nowIso:p,author:e.author,op:"delete",before:c,after:h,message:e.message,context:d.decisions.length===0?void 0:{workflow_policies:d.decisions}}),_=R(e.pmRoot,t.id),g=()=>Ho({op:"delete",pm_root:e.pmRoot,item_id:t.id,item_path:t.itemPath,history_path:_,before:c});if(e.dryRun===!0){let I=await g();return{item:c.metadata,changedFields:["deleted"],targetPath:I.effectiveItemPath,warnings:[...r,...d.warnings,...u.warnings,...I.warnings]}}let b=await ri(s,t,o,async()=>{let{effectiveItemPath:I,skipDelete:M,warnings:C}=await g(),B=await Ke(e.pmRoot,e.author),k=[];try{M||await j.rm(I);try{await Pe(_,m)}catch(S){throw M||await D(I,o),S}M||(k=await Ve({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:i.typeToFolder,schema:e.settings.schema,itemPath:I,document:null}))}finally{await B()}return{derivedIndexWarnings:k,effectiveItemPath:I,overrideWarnings:C}}),{derivedIndexWarnings:T,effectiveItemPath:$}=b,N=[...await L({path:$,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:h,changed_fields:["deleted"]}),...await L({path:_,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:h,changed_fields:["deleted"]})];return ke({id:c.metadata.id,op:"delete",item_type:c.metadata.type,previous_status:c.metadata.status,previous:de(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...r,...d.warnings,...u.warnings,...b.overrideWarnings,...T,...N]}}finally{await a()}}export{$n as a,Je as b,wo as c,Tt as d,V as e,J as f,Go as g,re as h,Gt as i,Qe as j,qt as k,ir as l,pi as m,hi as n,gi as o,_i as p,wi as q,$e as r,un as s,br as t,wn as u,bn as v,En as w,$t as x,Fi as y,Ke as z,Fn as A,Ve as B,xe as C,ti as D,ii as E,Mo as F,Fo as G,Jr as H,Qr as I,oi as J,Po as K,Zr as L,ea as M,ta as N,ia as O};
|
|
91
|
-
//# sourceMappingURL=chunk-QH5KMIYZ.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{constants as r}from"node:fs";import{lstat as d,open as u}from"node:fs/promises";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new t.Error().stack;n&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[n]="b063a672-991a-5251-a2f3-6a1c7bcafd2f")}catch{}})();var c={lstat:d,open:u};function b(t){return t.O_NOFOLLOW??0}async function p(t,n,i=c){let l=await i.lstat(t);if(l.isSymbolicLink()||!l.isFile()||l.size>n)return null;let a=await i.open(t,r.O_RDONLY|b(r));try{let s=await a.stat();if(!s.isFile()||s.size>n)return null;let o=Buffer.alloc(s.size),e=0;for(;e<o.length;){let{bytesRead:f}=await a.read(o,e,o.length-e,e);if(f===0)break;e+=f}return(await a.stat()).size===s.size&&e===s.size?o.toString("utf8",0,e):null}finally{await a.close()}}export{p as a};
|
|
2
|
-
//# sourceMappingURL=chunk-VVRXF4JO.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{Y as R}from"./chunk-MT5TYMEU.js";import{ab as S}from"./chunk-5LBZR6YW.js";import{Xc as r,Yc as N,_c as E,rb as n}from"./chunk-NC5HUGHU.js";(function(){try{var T=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new T.Error().stack;e&&(T._sentryDebugIds=T._sentryDebugIds||{},T._sentryDebugIds[e]="6dff1fa2-fd7a-5a94-b49e-dd8a2fd804b9")}catch{}})();var u=new Set(["--author","--follow","--help","--lean","--token-accounting","--output-include","--output-limit","--output-budget","--output-format","--output-session","--output-cursor","--output-row-contract","--no-changed-fields","--no-extensions","--no-pager","--pm-path","--profile","--quiet","--interval-ms"]),p=new Set([...r,...N]),I=new Set(["--brief","--format","--full","--full-changed-fields","--id-only","--no-truncate","--stream"]),d=new Set(["--body-file","--file","--stdin-json"]),m=new Set(["--global","--local","--project"]),P=new Set(["--activity-limit","--default-depth","--section-activity","--section-blockers","--section-files","--section-hierarchy","--section-progress","--section-staleness","--section-tests","--section-workload","--stale-threshold-days"]),f=new Set(["action","fullChangedFields","idOnly","path","pmExecutable","timeoutMs"]),M=new Set(["configAction","id","name","query","reason","subcommand","target","text"]),G={assurance:{id:"<id>",kind:"<kind>",preset:"[kind]|[id]",subcommand:"<action>"},event:{title:"<title>"},files:{lookupPath:"lookup <path...>"},meet:{title:"<title>"},"item-reopen":{id:"<id>",reason:"<reason>"},merge:{subcommand:"<subcommand>"},remind:{title:"<title>"},workspace:{name:"<name>",subcommand:"snapshot",snapshotAction:"<snapshot-action>",target:"<target>"}},F={append:{"--text":"body"},assurance:{"--tree":"treeId","--owner":"owner","--apply":"apply","--enforcement":"enforcement"},init:{"--id-prefix":"idPrefix","--no-merge-fence":"mergeFence","--workspace":"workspace"},create:{"--ac":"acceptanceCriteria","--estimated-minutes":"estimate","--file":"linkedFile","--test":"linkedTest","--expected":"expectedResult","--actual":"actualResult"},update:{"--ac":"acceptanceCriteria","--estimated-minutes":"estimate","--file":"linkedFile","--test":"linkedTest","--expected":"expectedResult","--actual":"actualResult"},"update-many":{"--ac":"acceptanceCriteria","--estimated-minutes":"estimate","--file":"linkedFile","--test":"linkedTest","--expected":"expectedResult","--actual":"actualResult"},files:{"--note":"addNote"},docs:{"--note":"addNote"},comments:{"--full-history":"full"},notes:{"--file":"text","--full-history":"full"},learnings:{"--file":"text","--full-history":"full"},gc:{"--scope":"gcScope"},contracts:{"--action":"contractAction"},schema:{"--no-allow-unset":"allowUnset","--type":"fieldTypeScope"},"history-author-acknowledge":{"--event":"historyEvent","--all-actionable":"allActionable"},"extension-init":{"--capability":"capability"},"package-init":{"--capability":"capability"},"extension-install":{"--gh":"github"},"package-install":{"--gh":"github"},"extension-adopt":{"--gh":"github"},"package-adopt":{"--gh":"github"},extension:{"--gh":"github","--scaffold":"init"},package:{"--gh":"github","--scaffold":"init"},install:{"--gh":"github"}},D={"--pm-path":"path"},c={stats:{"--analytics":["measurements","metric","measurementLimit","observe","improvementDirection","measurementSource","measurementItem","measurementRevision","author","message","provenanceCoverage","fleetAttribution","since","eventLimit","minimumSample"]}};function g(T){return T.startsWith("extension-")?`extension ${T.slice(10)}`:T.startsWith("package-")?`package ${T.slice(8)}`:T.startsWith("item-")?`item ${T.slice(5)}`:T}function l(T,e){let t=F[T]?.[e]??D[e];return t!==void 0?t:e.replace(/^--/,"").replaceAll("_","-").replace(/-([a-z])/g,(O,_)=>_.toUpperCase())}function h(T){let e=new Set;return T.filter(({flag:t})=>!t.startsWith("--")||e.has(t)?!1:(e.add(t),!0))}function y(T,e){return e.find(({aliases:t})=>t?.includes(T))?.flag}function b(T,e,t,O){let _=c[T]?.[e.flag];if(_!==void 0&&_.every(A=>O.has(A)))return{surface:"cli",input:e.flag,counterpart:_[0],disposition:"shared",reason:"The validated CLI JSON object fans out across strict SDK parameters."};let i=l(T,e.flag);if(O.has(i))return{surface:"cli",input:e.flag,counterpart:i,disposition:"shared",reason:"The CLI flag maps directly to a strict SDK action parameter."};let C=y(e.flag,t);if(C!==void 0){let A=l(T,C);if(O.has(A))return{surface:"cli",input:e.flag,counterpart:A,disposition:"compatibility_alias",reason:`Compatibility spelling for ${C}.`}}return u.has(e.flag)?{surface:"cli",input:e.flag,disposition:"cli_transport",reason:"CLI process transport is supplied by the in-process SDK host."}:I.has(e.flag)?{surface:"cli",input:e.flag,disposition:"cli_presentation",reason:"CLI rendering or mutation projection does not alter the SDK result envelope."}:d.has(e.flag)?{surface:"cli",input:e.flag,disposition:"cli_adapter",reason:"Local file or stdin adaptation is a CLI boundary concern."}:P.has(e.flag)?{surface:"cli",input:e.flag,counterpart:"key",disposition:"compatibility_alias",reason:"CLI config shorthand normalizes to the SDK configAction/key/value contract."}:m.has(e.flag)?{surface:"cli",input:e.flag,counterpart:"scope",disposition:"cli_scope_selector",reason:"Mutually exclusive CLI scope switches normalize to the SDK scope parameter."}:{surface:"cli",input:e.flag,counterpart:i,disposition:"unclassified",reason:"The CLI flag has no strict SDK parameter or approved boundary classification."}}function U(T,e,t){let O=Object.entries(c[T]??{}).find(([C,A])=>A.includes(e)&&t.some(({input:o,disposition:s})=>o===C&&s==="shared"));if(O!==void 0)return{surface:"sdk",input:e,counterpart:O[0],disposition:"shared",reason:"The strict SDK parameter is reachable through the validated CLI JSON object."};let _=t.find(({counterpart:C,disposition:A})=>C===e&&(A==="shared"||A==="compatibility_alias"||A==="cli_scope_selector"));if(_!==void 0)return{surface:"sdk",input:e,counterpart:_.input,disposition:"shared",reason:"The strict SDK parameter is reachable from the CLI contract."};let i=G[T]?.[e];return i!==void 0?{surface:"sdk",input:e,counterpart:i,disposition:"shared",reason:"The strict SDK parameter maps to a canonical CLI positional argument."}:f.has(e)?{surface:"sdk",input:e,disposition:"sdk_transport",reason:"The SDK host supplies in-process transport and workspace selection."}:M.has(e)?{surface:"sdk",input:e,disposition:"cli_positional",reason:"The CLI accepts this SDK parameter as a positional command argument."}:{surface:"sdk",input:e,disposition:"sdk_native",reason:"The typed SDK exposes this structured input without a canonical CLI long flag."}}function v(T={}){let e=T.actions??n,t=T.resolveFlags??S,O=T.resolveParameters??R;return e.map(_=>{let i=g(_),C=h(t(i)).filter(({flag:a})=>E(_)!==void 0||!p.has(a)),A=new Set(O(_)??[]),o=C.map(a=>b(_,a,C,A)),s=[...A].sort((a,L)=>a.localeCompare(L)).map(a=>U(_,a,o));return{action:_,command:i,cli:o,sdk:s,unclassified:[...o,...s].filter(({disposition:a})=>a==="unclassified")}})}(function(){try{var T=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new T.Error().stack;e&&(T._sentryDebugIds=T._sentryDebugIds||{},T._sentryDebugIds[e]="92c17dbe-3868-5fa5-a873-0744d3e7ca8e")}catch{}})();export{v as a};
|
|
2
|
-
//# sourceMappingURL=chunk-W7MCCFYV.js.map
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import{D as Ke,E as Je,f as ue}from"./chunk-QH5KMIYZ.js";import{$a as fe,Ea as Vt,Ta as qt,Ua as We,Va as jt,Za as me,_a as Q,ca as Ge,g as He,h as Ft,r as Ye,x as le,xa as Ut,y as Be}from"./chunk-LWJ2X75I.js";import{b as Pt}from"./chunk-22727JYL.js";import{$ as E,$b as $t,Aa as Ve,Ba as Mt,Dc as zt,Ga as qe,Ja as Nt,Kd as de,a as $e,ba as J,ca as B,da as b,fa as Ot,ic as je,mc as ae,qa as Fe,uc as ce,wd as O,ya as X,za as Ue}from"./chunk-NC5HUGHU.js";import{B as H,D as Y,E as S,H as T,J as se,s as ze,y as u,z as m}from"./chunk-46KDJH3K.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]="b84fee06-5bbd-57f9-9643-f283d6c87afa")}catch{}})();function yn(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`,u.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]="9b58b44d-819c-5115-b011-f9dfa8e2ab41")}catch{}})();var En=3e4,Z=class extends Error{status;constructor(t,r){super(t),this.name="SearchHttpError",this.status=r}};function N(e,t,r=En){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 P(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 wn(e){try{return(await e.text()).replaceAll(/\s+/g," ").trim()}catch(t){return`(failed to read response body: ${b(t)})`}}async function pe(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: ${b(o)}`)}if(!n.ok){let o=await wn(n),i=o.length>0?`: ${o}`:"";throw new Z(`${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: ${b(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]="8e3bb919-c8f9-50b5-8e41-b6719d17bd21")}catch{}})();function va(e,t){let r=E(e);if(!r)return"unconfigured";let n=E(t);return n&&n.toLowerCase()===r.toLowerCase()?"configured":"auto-detected"}function bn(e){let t=J(e),r=t.toLowerCase();return r.endsWith("/embeddings")?t:r.endsWith("/v1")?`${t}/embeddings`:`${t}/v1/embeddings`}function Yt(e){let t=e.search?.embedding_model;return E(t)||null}function Sn(e){let t=E(e.providers?.openai?.base_url),r=E(e.providers?.openai?.model);if(!t||!r)return null;let n=Yt(e),o=E(e.providers?.openai?.api_key);return{name:"openai",base_url:t,model:n??r,...o?{api_key:o}:{}}}function Tn(e){let t=E(e.providers?.ollama?.base_url),r=E(e.providers?.ollama?.model);if(!t||!r)return null;let n=Yt(e);return{name:"ollama",base_url:t,model:n??r}}function Bt(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 vn(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 An(e){let t=e.map((r,n)=>({embedding:r.embedding,index:r.index,position:n}));if(t.some(r=>r.index!==void 0)){for(let r of t)if(!Number.isInteger(r.index))throw new TypeError(`OpenAI embedding response entry at position ${r.position} is missing a valid integer index`);return[...t].sort((r,n)=>{let o=r.index-n.index;return o!==0?o:r.position-n.position})}return t}function Xe(e){let t=Sn(e),r=Tn(e),n=[t,r].filter(s=>s!==null),o=E(e.search?.provider),i=o?o.toLowerCase():null;return{active:(i?n.find(s=>s.name===i):void 0)??n[0]??null,available:n}}function Ht(e){let t=J(e.base_url);return e.name==="openai"?{provider:"openai",endpoint:bn(t),model:e.model}:{provider:"ollama",endpoint:`${t}/api/embed`,model:e.model}}function In(e,t){let r=Bt(t);return e.name==="openai"?{target:Ht(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:Ht(e),method:"POST",headers:{"content-type":"application/json"},body:{model:e.model,input:r}}}function Cn(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 An(o).map((i,s)=>{let a=i.embedding;if(!B(a))throw new Error(`OpenAI embedding response entry at index ${s} is missing a numeric embedding vector`);return[...a]})}let r=t.embedding;if(B(r))return[[...r]];let n=t.embeddings;if(Array.isArray(n)&&n.length>0)return n.map((o,i)=>{if(!B(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 Gt(e,t,r={}){let n=N(r.timeout_ms,"Embedding request"),o=P(r.fetcher,"Embedding request"),i=Bt(t),s=vn(i),a=In(e,s.uniqueInputs),c=await pe({endpoint:a.target.endpoint,method:a.method,headers:a.headers,body:a.body,timeoutMs:n,fetcher:o,requestLabel:"Embedding request",responseLabel:"Embedding response"}),d=Cn(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]="5c86afdf-6d8d-5851-82c1-ae5bcc9f0196")}catch{}})();var _e=["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 Qe(e){let t=e?.search?.corpus_fields;if(!Array.isArray(t))return[..._e];let r=new Set(_e),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:[..._e]}var xn=8e3,kn=3200,$="...[semantic corpus truncated]",Rn="search_embedding_corpus_max_characters_invalid:using_provider_default";function C(e){return e.map(t=>t==null?"":String(t).trim()).filter(t=>t.length>0).join(" ")}function Ln(e){return(e.reminders??[]).map(t=>C([t.at,t.text]))}function Dn(e){return(e.events??[]).map(t=>C([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 On(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 Mn(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 Ca(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??[])On(t,r);return Mn(t,e),t.filter(r=>typeof r=="string"&&r.length>0).join(" ")}function Nn(e){let t=(e.plan_steps??[]).map(i=>C([i.order,i.id,i.title,i.body,i.status,i.owner,i.evidence,i.blocked_reason,i.superseded_by,(i.linked_items??[]).map(s=>C([s.kind,s.id,s.note])).join(" "),(i.files??[]).map(s=>C([s.path,s.note])).join(" "),(i.tests??[]).map(s=>C([s.command,s.path,s.note])).join(" "),(i.docs??[]).map(s=>C([s.path,s.note])).join(" ")])),r=(e.plan_decisions??[]).map(i=>C([i.decision,i.rationale,i.evidence,i.step_id])),n=(e.plan_discoveries??[]).map(i=>C([i.text,i.step_id])),o=(e.plan_validation??[]).map(i=>C([i.text,i.command,i.expected]));if([e.plan_mode,e.plan_scope,e.plan_harness,e.plan_resume_context,...t,...r,...n,...o].some(i=>i!==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 I(e){return typeof e=="string"&&e.trim().length>0}var Pn={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=>I(e.metadata.assignee)?e.metadata.assignee:void 0,parent:e=>I(e.metadata.parent)?e.metadata.parent:void 0,goal:e=>I(e.metadata.goal)?e.metadata.goal:void 0,value:e=>I(e.metadata.value)?e.metadata.value:void 0,why_now:e=>I(e.metadata.why_now)?e.metadata.why_now:void 0,risk:e=>I(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=>I(e.metadata.acceptance_criteria)?e.metadata.acceptance_criteria:void 0,resolution:e=>I(e.metadata.resolution)?e.metadata.resolution:void 0,expected_result:e=>I(e.metadata.expected_result)?e.metadata.expected_result:void 0,actual_result:e=>I(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=>Ln(e.metadata),events:e=>Dn(e.metadata),dependencies:e=>(e.metadata.dependencies??[]).map(t=>({id:t.id,kind:t.kind})),plan:e=>Nn(e.metadata)};function Wt(e,t={}){let r=t.fields??_e,n={};for(let o of r){let i=Pn[o];if(!i)continue;let s=i(e);s!==void 0&&(n[o]=s)}return n}function $n(e){return e?.trim().toLowerCase()==="ollama"?kn:xn}function G(e,t){let r=$n(e),n=Ot(t);return n!==null?{maxCharacters:n,warning:null}:{maxCharacters:r,warning:t==null?null:Rn}}function Ze(e,t={}){let r=JSON.stringify(Wt(e,{fields:t.fields})),n=G(t.providerName,t.maxCharacters).maxCharacters;if(r.length<=n)return r;if(n<=$.length)return $.slice(0,n);let o=Math.max(0,n-$.length);return`${r.slice(0,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]="67bae1a1-19d1-50ea-816f-4b68e6bb69d9")}catch{}})();function zn(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 Fn(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 Un(e,t){if(!Number.isFinite(t)||t<=0||e.length<=t)return e;let r=Math.max(0,t-$.length);return`${e.slice(0,r)}${$}`.slice(0,t)}function Kt(e){let t=b(e).toLowerCase();return t.includes("timed out")||t.includes("timeout")}function Vn(e,t,r,n,o,i){let s=`Embedding batch ${t} failed after ${o} attempt(s): ${b(i)}`,a=`provider=${e.name} model=${e.model} batch_size=${r} timeout_ms=${n}`;return Kt(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 qn(e){return e instanceof Z?e.status===413?"payload_too_large":null:Kt(e)?"timeout":null}async function et(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 Gt(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=qn(d);if(l!==null&&t.length>1){s.split_batches+=1;let p=Math.ceil(t.length/2),_=t.slice(0,p),f=t.slice(p);return i.push(`search_embedding_batch_split_after_${l}:batch=${r}:size=${t.length}:parts=${_.length}|${f.length}`),[...await et(e,_,`${r}.1`,n,o,i,s),...await et(e,f,`${r}.2`,n,o,i,s)]}if(c<o){s.retries+=1;let p=Math.min(1e3*2**c,8e3);await new Promise(_=>setTimeout(_,p))}}throw new Error(Vn(e,r,t.length,n,o+1,a))}async function tt(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=G(e.name,t.search.embedding_corpus_max_characters);c.warning&&a.push(c.warning);let d=zn(t,c.maxCharacters,i),l=0,p=r.map(h=>{if(h.trim().length===0)throw new TypeError("Embedding inputs must be non-empty strings");let y=Un(h,d.maxInputCharacters);return y.length<h.length&&(l+=1),y});l>0&&a.push(`search_embedding_input_truncated:count=${l}:max_characters=${d.maxInputCharacters}`);let _=Fn(e,p,d.batchSize,d.maxRequestBytes);s.planned_batches=_.length;let f=[],g=0;for(let h=0;h<_.length;h+=1){let y=_[h];n.onProgress?.({batch_index:h+1,batch_total:_.length,batch_size:y.length,completed_inputs:g,total_inputs:p.length,phase:"start"}),f.push(...await et(e,y,String(h+1),d.timeoutMs,d.maxRetries,a,s)),g+=y.length,n.onProgress?.({batch_index:h+1,batch_total:_.length,batch_size:y.length,completed_inputs:g,total_inputs:p.length,phase:"complete"})}return s.elapsed_ms=Math.max(1,performance.now()-o),s.inputs_per_second=r.length*1e3/s.elapsed_ms,{vectors:f,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]="4835aae2-a525-5683-abc0-0ba3c5781c95")}catch{}})();var Jt=[{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*(?:(?!<|\$\{|\$\(|config\.auth\.password\s*(?:\|\|\s*(?:''|"")|\?\s*unescape\(encodeURIComponent\(config\.auth\.password\)\)\s*:\s*(?:''|""))(?=[ \t]*(?:\/\*(?:[^*]|\*(?!\/))*\*\/[ \t]*)*(?:;|$|\/\/[^\r\n\u2028\u2029]*(?:\r\n)?$)))[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 Xt(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]="b75bf20f-d341-5fa2-943d-db02211ca80d")}catch{}})();var jn=[{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"}],nt=new Map(jn.map(e=>[e.action,e]));function rt(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)=>rt(n,`${t}[${o}]`,r)):Object.entries(e).flatMap(([n,o])=>rt(o,`${t}.${n}`,r)))}function Qt(e){let t=[];for(let r of rt(e))for(let n of Jt){n.regex.lastIndex=0;for(let o of r.value.matchAll(n.regex))if(Xt(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 Hn(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.",u.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=Qt(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.`,u.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 Yn(e){return nt.has(e.trim().toLowerCase())}function Bn(){return[...nt.keys()].sort((e,t)=>e.localeCompare(t))}function za(e){return nt.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]="5767332d-8094-55cd-96e9-47c5d20cd7df")}catch{}})();var Gn=/\b([a-z][a-z0-9]*)-(\d+)(?:-[a-z0-9]+)*\b/giu,Wn=/^(?:utf|iso|sha|tls|http|covid|match)$/iu;function ot(e){return e.trim().toLowerCase().replace(/\s+/g," ")}function er(e){return[...new Set(ot(e).match(/[\p{L}\p{N}]+/gu)??[])]}function Zt(e){let t=ot(e);return{normalized:t,tokens:er(t),issueCodes:[...new Set([...e.matchAll(Gn)].filter(r=>{let n=r[1],o=r.index,i=e.slice(o+r[0].length);return!Wn.test(n)&&(n===n.toUpperCase()||n.length<=2||o===0&&/^\s*(?::|—|–|\])/u.test(i))}).map(r=>r[0].toLowerCase()))]}}function Kn(e,t){return Jn(Zt(e),Zt(t))}function Jn(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:ce(e.tokens,t.tokens),reason:"title_token_jaccard"}}import Xn 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]="a7cd1d62-16fe-5e5b-b382-64335fc5e403")}catch{}})();function he(e){return(e??"in_progress").trim().toLowerCase().replaceAll("-","_")}function Qn(e,t){return[e.updated_at,t].map(r=>({value:r,time:Date.parse(r??"")})).filter(r=>typeof r.value=="string"&&Number.isFinite(r.time)).sort((r,n)=>n.time-r.time)[0]?.value??e.updated_at}function tr(e,t){let r=Math.max(1,Math.trunc(t.threshold_hours)),n=(t.now??new Date).getTime(),o=he(t.in_progress_status),i=[];for(let s of e){if(he(String(s.status))!==o||(s.assignee?.trim().length??0)>0)continue;let a=Qn(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 Zn(e,t,r){let n=new Map;return await Promise.all(t.filter(o=>he(String(o.status))===he(r.in_progress_status)&&(o.assignee?.trim().length??0)===0).map(async o=>{let i;try{i=await Ge(Xn.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)})),tr(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]="42b217a3-31c0-561a-b7cb-b1a584b2edd5")}catch{}})();var eo=new Set(["rename-type","rename-field","remap-status",...Nt]);function to(e,t){if(t&&!eo.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.`,u.USAGE,{code:"invalid_argument_value",examples:["pm schema rename-type Spike --to Experiment --dry-run"]})}(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]="4ce8635f-ea61-5443-abfc-092219a82396")}catch{}})();var L="-",nr=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 or(e,t){if(e.startsWith("```")||e.includes(`
|
|
2
|
-
`))return!0;let r=t.map(n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|");return new RegExp(`^(?:[-*+]\\s+)?(?:${r})\\s*[:=]`,"i").test(e)}function ir(e){let t=e.trim();if(t==="")return[];let r=(so(t)??t.split(",")).map(n=>n.trim()).filter(Boolean).map(n=>n.toLowerCase());return Array.from(new Set(r)).sort((n,o)=>n.localeCompare(o))}function sr(e){if(!Array.isArray(e)||e.length===0)return[];let t=[];for(let r of e)if(typeof r=="string")for(let n of ir(r))t.push(n);return Array.from(new Set(t)).sort((r,n)=>r.localeCompare(n))}function ar(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim().toLowerCase()).filter(Boolean):[]}function ro(e){return typeof e!="string"?[]:e.split(";").map(t=>t.trim()).filter(Boolean)}function no(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',u.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 oo(e,t){let r=ar(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 sr(t))n.add(o);return Array.from(n).sort((o,i)=>o.localeCompare(i))}function io(e,t){let r=Array.from(new Set(ar(e))).sort((o,i)=>o.localeCompare(i));if(!t||t.length===0)return r;let n=new Set(sr(t));return n.size===0?r:r.filter(o=>!n.has(o))}function so(e){if(!e.startsWith("["))return null;let t;try{t=JSON.parse(e)}catch{return null}return t.map(r=>typeof r=="string"||typeof r=="number"||typeof r=="boolean"?String(r):"").filter(r=>r.length>0)}function it(e){return e.replace(/\r\n/g,`
|
|
3
|
-
`)}function cr(e){let t=it(e).trim();if(!t.startsWith("```"))return e;let r=t.split(`
|
|
4
|
-
`);return r.length<2||r.at(-1)?.trim()!=="```"?e:r.slice(1,-1).join(`
|
|
5
|
-
`)}function ao(e){let t=[],r="",n=!1;for(let o=0;o<e.length;o+=1){let i=e[o];if(i==="\\"&&e[o+1]===","){r+=",",o+=1;continue}if(i==="\\"&&e[o+1]!==void 0){r+=`${i}${e[o+1]}`,o+=1;continue}if(i==='"'){n=!n,r+=i;continue}if(i===","&&!n){t.push(r),r="";continue}r+=i}return r.trim()&&t.push(r),t}function dr(e){let t=e.trim();if(t.startsWith('"')&&t.endsWith('"')){try{let r=JSON.parse(t);if(typeof r=="string")return r}catch{}return t.slice(1,-1).replace(/\\"/g,'"')}return e}function co(e){let t=e.indexOf("="),r=e.indexOf(":"),n=t>=0,o=r>=0;return n&&o?Math.min(t,r):n?t:o?r:-1}function lo(e,t){if((t==="--add"||t==="--add-glob")&&(/[./\\]/.test(e)||/\.[a-z]{1,6}$/i.test(e.trim())))return"For file/doc paths use: path=<file-path>[,scope=project|global]. The scope field is optional and defaults to project (example: path=src/api.ts or path=README.md,scope=project). ";if(t!=="--event")return"";let r=e.toLowerCase(),n=r.includes("recur_")||r.includes("recurrence")?' Recurrence list values must stay in one field and use "|" delimiters (for example recur_by_weekday=mon|wed or recur_by_month_day=1|15).':"",o=r.includes("recur_byweekday")?" Use recur_by_weekday (with underscores) for weekday recurrence filters.":"";return`${n}${o}`}function rr(e,t){let r=e.replaceAll(/\s+/g," ").trim(),n=r.length>160?`${r.slice(0,157)}...`:r,o=lo(e,t);return`Invalid ${t} value "${n}". Expected key=value entries separated by commas. `+o+`Also accepts markdown-style key/value lines (for example "- path: README.md"). Use ${t} ${L} to read piped stdin input.`}function uo(e){let t=cr(e).trim();if(t.length===0||!t.includes(`
|
|
6
|
-
`)&&!t.startsWith("-")&&!t.startsWith("*")&&!t.startsWith("+"))return null;let r={},n,o=it(t).split(`
|
|
7
|
-
`).map(i=>i.trim()).filter(i=>i.length>0);for(let i of o){let s=i.match(/^(?:[-*+]\s+)?([a-zA-Z0-9_.-]+)\s*(=|:)\s*(.*)$/);if(s){let a=s[1].trim();r[a]=dr(s[3].trim()),n=a;continue}if(n&&nr.has(n.toLowerCase())){r[n]=`${r[n]}
|
|
8
|
-
${i}`;continue}return null}return r}function lr(e,t){let r=cr(e).trim();if(!r)throw new m(`${t} cannot be empty`,u.USAGE);let n=uo(r);if(n)return n;let o={},i,s=ao(r);for(let a of s){let c=co(a);if(c>=0){let d=a.slice(0,c).trim();if(!d)throw new m(rr(e,t),u.USAGE);let l=dr(a.slice(c+1).trim());o[d]=l,i=d;continue}if(i&&nr.has(i.toLowerCase())){o[i]=`${o[i]},${a}`;continue}throw new m(rr(e,t),u.USAGE)}return o}var mo=/^[A-Za-z]:[\\/]/,fo=/^(?:[-*+]\s+)?[A-Za-z_][A-Za-z0-9_.-]*\s*=/;function po(e){let t=e.trim();return mo.test(t)?!1:fo.test(t)}function Qa(e,t,r,n){if(!(n||!e.includes(",")))throw new m(`${t} received an ambiguous comma-bearing bare ${r}. Repeat ${t} for multiple values, or quote or escape literal commas in a structured key=<value> entry.`,u.USAGE,{code:"bare_comma_entry_ambiguous",required:`Use one ${t} per bare ${r}, or quote or escape literal commas in a structured key=<value> entry.`})}function _o(e,t,r){let n=new Set(r.map(i=>i.toLowerCase())),o=Object.keys(e).filter(i=>!n.has(i.toLowerCase()));if(o.length>0)throw new m(`${t} does not recognize key${o.length>1?"s":""} ${o.map(i=>`"${i}"`).join(", ")}. Allowed keys: ${r.join(", ")}.`,u.USAGE);for(let i of Object.keys(e)){let s=i.toLowerCase();if(s!==i){if(Object.hasOwn(e,s))throw new m(`${t} provides key "${i}" more than once after case normalization.`,u.USAGE);e[s]=e[i],delete e[i]}}}async function ho(e){if(process.stdin.isTTY===!0)throw new m(`${e} value "${L}" requires piped stdin input. Pipe content into the command, or end manual stdin with Ctrl+D (Unix/macOS) or Ctrl+Z then Enter (Windows).`,u.USAGE);return process.stdin.setEncoding("utf8"),await new Promise((t,r)=>{let n="";process.stdin.on("data",o=>{n+=o}),process.stdin.on("end",()=>{t(it(n))}),process.stdin.on("error",o=>{r(o)})})}var z=Symbol("all-mutation-stdin-fields"),v=new WeakMap;function ur(e){return v.set(e,z),e}function go(e,t){let r=v.get(e);return r===z||v.set(e,new Set([...r??[],...t])),e}function yo(e,t){let r=v.get(e);return r===void 0||v.set(t,r===z?r:new Set(r)),t}function Za(e,t){let r=v.get(e),n=v.get(t);return r===void 0||n===z?t:r===z?(v.set(t,r),t):(v.set(t,new Set([...n??[],...r])),t)}function Eo(e){return v.get(e)!==z}function ge(e,t){let r=v.get(e);return r!==z&&!r?.has(t)}function wo(e){let t;for(let r of e){if(r.resolveToken===!1||r.value===void 0)continue;let n=(Array.isArray(r.value)?r.value:[r.value]).filter(o=>o.trim()===L).length;if(n>1)throw new m(`${r.optionName} accepts "${L}" stdin token at most once per command invocation`,u.USAGE);if(n!==0){if(t!==void 0&&t!==r.optionName)throw new m(`Only one option may use "${L}" stdin token per command invocation. Already used by ${t}.`,u.USAGE);t=r.optionName}}}async function ec(e,t,r){let n=e,o=[...t,...r];wo(o.map(([a,c])=>({value:n[a],optionName:c,resolveToken:ge(e,a)})));let i=ye(),s={...n};for(let[a,c]of t)s[a]=await i.resolveValue(n[a],c,ge(e,a));for(let[a,c]of r)s[a]=await i.resolveList(n[a],c,ge(e,a));return ur(s)}function ye(){let e,t,r=async n=>{if(t&&t!==n)throw new m(`Only one option may use "${L}" stdin token per command invocation. Already used by ${t}.`,u.USAGE);return t=n,e||(e=ho(n)),await e};return{resolveValue:async(n,o,i=!0)=>{if(!i)return n;if(n!==void 0)return n.trim()!==L?n:await r(o)},resolveList:async(n,o,i=!0)=>{if(!i)return n;if(!n)return;let s=n.map((d,l)=>d.trim()===L?l:-1).filter(d=>d>=0);if(s.length===0)return n;if(s.length>1)throw new m(`${o} accepts "${L}" stdin token at most once per command invocation`,u.USAGE);let a=await r(o),c=[...n];return c[s[0]]=a,c}}}function bo(e,t){let r=Number(e);if(!Number.isFinite(r))throw new m(`Invalid ${t} value "${e}"`,u.USAGE);return r}function So(e,t){let r=e.trim(),n=Number(r);if(r===""||!Number.isInteger(n)||n<0)throw new m(`Invalid ${t} value "${e}". Expected a non-negative integer.`,u.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]="8d14cb04-d740-5fb7-ad97-f9a39490eb87")}catch{}})();function sc(e){try{return e()}catch(t){throw!(t instanceof m)||t.exitCode!==u.USAGE?t:new m(`${t.message} No changes were made.`,u.USAGE,{...t.context,code:t.code==="linked_test_command_not_executable"?t.code:"invalid_argument_value",reason:"test_option_invalid",changed:!1,required:t.context.required??t.message})}}function To(e,t){if(e[t]==="'"){let r=e.indexOf("'",t+1);return r<0?void 0:r+1}for(let r=t+1;r<e.length;r+=1){if(e[r]==='"')return r+1;if(e[r]==="\\"){r+=1;continue}if(e[r]==="`"||e.startsWith("$(",r))return}}function vo(e,t){let r=t;for(;r<e.length;){let n=e[r];if(/\s/u.test(n)||";&|".includes(n))return r;if(n==="\\"){r+=2;continue}if(n==="'"||n==='"'){let o=To(e,r);if(o===void 0)return;r=o;continue}if("<>()`".includes(n))return;r+=1}return r===e.length?r:void 0}function st(e,t){let r=t;for(;r<e.length;){if(/\s/u.test(e[r])){r+=1;continue}if(e[r]!=="#")return r;let n=e.indexOf(`
|
|
9
|
-
`,r);if(n<0)return e.length;r=n+1}return r}function Ao(e,t){let r=st(e,t),n=e[r];return n===void 0||!";&|".includes(n)?r:(r+=1,n!==";"&&e[r]===n&&(r+=1),st(e,r))}function Io(e){let t=e.trim(),r=st(t,0);if(t.length===0)return!1;for(;r<t.length;){if(!/[A-Za-z_]/u.test(t[r]))return!1;let n=r+1;for(;n<t.length&&/[A-Za-z0-9_]/u.test(t[n]);)n+=1;if(t[n]!=="=")return!1;let o=vo(t,n+1);if(o===void 0)return!1;r=Ao(t,o)}return!0}function mr(e){if(!(e===void 0||!Io(e)))throw new m("Linked-test command contains only variable assignments or comments and has no executable command.",u.USAGE,{code:"linked_test_command_not_executable",required:'Supply an actual test command with --add "command=<actual command>" or --add-json. Environment assignments may precede that command.',examples:['pm test <id> --add "command=node --version"'],nextSteps:["Remove any already-stored assignment-only entry with --remove-index, then register the actual test command."]})}function ac(e){if(mr(e.command),!(e.pm_context_mode!=="none"||e.workspace_context_mode==="isolated"||e.workspace_context_mode==="snapshot"))throw new m("pm_context_mode=none requires workspace_context_mode=isolated or snapshot so implicit tracker discovery cannot reach the source workspace.",u.USAGE,{code:"linked_test_context_invalid",required:"Set workspace_context_mode to isolated or snapshot when pm_context_mode is none.",examples:[zt(["test","<id>","--add-json",JSON.stringify({command:e.command,pm_context_mode:"none",workspace_context_mode:"isolated"})])]})}var Ee=["command","cmd","path","scope","timeout","timeout_seconds","pm_context_mode","workspace_context_mode","env_set","env_clear","shared_host_safe","assert_stdout_contains","assert_stdout_regex","assert_stderr_contains","assert_stderr_regex","assert_stdout_min_lines","assert_json_field_equals","assert_json_field_gte","note"],Co=new Set(Ee);function cc(e){return or(e,Ee)}function xo(e,t){let r={},n=[];for(let[o,i]of Object.entries(e)){let s=o.toLowerCase();if(!Co.has(s)){n.push(o);continue}if(Object.hasOwn(r,s))throw new m(`${t} provides key "${o}" more than once after case normalization`,u.USAGE);r[s]=i}if(n.length>0)throw new m(`${t} does not recognize key${n.length>1?"s":""} ${n.map(o=>`"${o}"`).join(", ")}. Allowed keys: ${Ee.join(", ")}.`,u.USAGE);if(r.cmd!==void 0){if(r.command!==void 0&&r.command.trim()!==r.cmd.trim())throw new m(`${t} command and cmd must match when both are provided`,u.USAGE);let{cmd:o,...i}=r;return{...i,command:i.command??o}}return 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]="b58016fa-9817-5421-a4a3-78d1b1d22937")}catch{}})();import{readFile as ko}from"node:fs/promises";import fr 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]="7cc00705-c03e-5a18-9bec-af2585939ed8")}catch{}})();function Cc(e){if(e!==void 0){if(typeof e!="string")throw new m("--rollback requires a non-empty checkpoint ID string",u.USAGE);return pr(e)}}function pr(e){let t=e.trim();if(!t)throw new m("--rollback requires a non-empty checkpoint ID",u.USAGE);if(!/^[a-zA-Z0-9._-]+$/.test(t))throw new m("--rollback checkpoint ID must match [a-zA-Z0-9._-]+",u.USAGE);return t}function Ro(e,t){let r=t.replace(/[-:.TZ]/g,"").slice(0,14),n=Math.random().toString(36).slice(2,8);return`${e}-${r}-${n}`}function Lo(e,t){return fr.join(e,"checkpoints",t)}function _r(e,t,r){return fr.join(Lo(e,t),`${r}.json`)}async function Do(e,t,r,n){let o=_r(e,t,r),i=`${JSON.stringify(n,null,2)}
|
|
10
|
-
`;if(!await Pt(o,i)&&await S(o)!==i)throw new m(`Checkpoint ${r} already exists with different contents; use a new checkpoint ID.`,u.CONFLICT);return o}function Oo(e,t){if(!Array.isArray(e.items))throw new m(`Checkpoint ${t} is missing items`,u.GENERIC_FAILURE);return e.items.map(r=>{if(!r||typeof r!="object")throw new m(`Checkpoint ${t} contains an invalid item entry`,u.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`,u.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`,u.GENERIC_FAILURE);return{id:n.id.trim(),target_updated_at:n.target_updated_at.trim()}})}async function Mo(e,t,r,n){let o=pr(r),i=_r(e,t,o);if(!await H(i))throw new m(`Checkpoint ${o} not found`,u.NOT_FOUND);let s=await ko(i,"utf8"),a;try{a=JSON.parse(s)}catch(l){throw new m(`Checkpoint ${o} contains invalid JSON: ${b(l)}`,u.GENERIC_FAILURE)}if(!a||typeof a!="object")throw new m(`Checkpoint ${o} is invalid`,u.GENERIC_FAILURE);let c=a;if(c.schema_version!==n)throw new m(`Checkpoint ${o} has unsupported schema version. Inspect pm history and use an explicit pm restore only after reviewing later edits.`,u.GENERIC_FAILURE);let d=Oo(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:O(),author:typeof c.author=="string"?c.author:"unknown"}}async function No(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:i.skipped?"skipped":"restored",changed_fields:i.changed_fields,warnings:i.warnings}),i.skipped||n.push(o.id)}catch(i){r.push({id:o.id,status:"failed",error:b(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]="cb883ffc-c431-5bf9-a973-931a8a0a940c")}catch{}})();function M(e){if(typeof e!="string")return null;let t=e.trim().toLowerCase();return t.length>0?t:null}function kc(e,t){let r=M(t);return!e||!r?null:[...e.assurance_providers??[]].reverse().find(n=>M(n.definition.id)===r)??null}function Po(e,t){let r=M(t);return!e||!r?null:[...e.search_providers].reverse().find(n=>(M(n.runtime_definition?.name)??M(n.definition?.name))===r)??null}function $o(e,t){let r=M(t);return!e||!r?null:[...e.vector_store_adapters].reverse().find(n=>(M(n.runtime_definition?.name)??M(n.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]="4441095d-0acd-5780-8758-7df94396cb8e")}catch{}})();function at(e){return[...new Set(e.split(/[,\r\n]+/).map(t=>t.trim()).filter(t=>t.length>0))]}function zo(e){let t=[];for(let n of e)if(typeof n=="string")t.push(n);else if(typeof n=="number"&&Number.isFinite(n))t.push(String(n));else return"";let r=at(t.join(`
|
|
11
|
-
`));return r.length>0?r.join(","):""}function Fo(e){if(e===void 0)return;if(typeof e=="number")return Number.isFinite(e)?String(e):"";if(Array.isArray(e))return zo(e);if(typeof e!="string")return"";let t=at(e);return t.length>0?t.join(","):""}(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]="1dcf0d72-10da-51b6-b9f6-ab47bebcbf64")}catch{}})();function hr(e){return e.replaceAll("~1","/").replaceAll("~0","~")}function ct(e){if(e==="/body"||e.startsWith("/body/"))return"body";if(e==="/metadata"||e.startsWith("/metadata/")||e==="/front_matter"||e.startsWith("/front_matter/")){let r=e.replace(/^\/(?:metadata|front_matter)\/?/,"").split("/")[0];return r?hr(r):"metadata"}let t=e.replace(/^\//,"").split("/")[0];return t?hr(t):"root"}function we(e,t){return t==="body"?e.body:t==="metadata"?e.metadata:t==="root"?e:e.metadata[t]}function Uo(e,t){let r=t?.windowStartIndex??0,n=t?.field;if(e.length===0||r>=e.length)return[];let o=Ut(),i=[];for(let s=0;s<e.length;s+=1){let a=e[s],c=o,d=Vt(o,a.patch),l;d.ok?(l=d.document,o=l):l=c;let p=new Set;for(let f of a.patch)p.add(ct(f.path)),f.from!==void 0&&p.add(ct(f.from));let _=[...p].sort((f,g)=>f.localeCompare(g));if(s>=r)if(n!==void 0){if(!p.has(n))continue;let f={field:n,before:we(c,n),after:we(l,n)};i.push({index:s+1,ts:a.ts,op:a.op,author:a.author,patch_ops:a.patch.length,changed_fields:[n],changes:[f]})}else{let f=_.map(g=>({field:g,before:we(c,g),after:we(l,g)}));i.push({index:s+1,ts:a.ts,op:a.op,author:a.author,patch_ops:a.patch.length,changed_fields:_,changes:f})}}return 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]="80805c6b-9b9a-5dad-b94b-d7dbd365fe5e")}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]="2fd342e6-06cc-56d4-aa0e-2af269234b59")}catch{}})();var Vo=new Set(["none","null","undefined"]);function Hc(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="warn"||t==="strict_error")return t;if(t==="strict")return"strict_error";throw new m("Config set parent-reference-policy requires --policy with one of: warn, strict_error (alias: strict)",u.USAGE)}function qo(e){if(typeof e!="string")throw new m("--parent must be a string. Use --unset parent to clear this field.",u.USAGE);let t=e.trim();if(t.length===0)throw new m("--parent must not be empty. Use --parent none to unset.",u.USAGE);if(gr(t))throw new m(`--parent must not use placeholder token "${t}". Use --unset parent to clear this field.`,u.USAGE);return t}function gr(e){return Vo.has(e.trim().toLowerCase())}function jo(e,t){if(t==="strict_error")throw new m(`Parent item "${e}" was not found. Create it first or use --parent none.`,u.USAGE);return{warnings:[`validation_warning:parent_reference_missing:${e}`]}}function Ho(e,t,r){let n=ue(e,r),o=ue(t,r);if(n!==o)return;let i=t!==o||e!==n?` (normalized from parent "${t}" and item "${e}")`:"";throw new m(`Parent item "${o}" cannot be the same as item "${n}"${i}. Use --unset parent to clear this field.`,u.USAGE)}(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]="0257ab6d-3ef8-5b98-adfd-c7dabd537c43")}catch{}})();var dt={critical:0,high:1,medium:2,low:3,minimal:4},Yo=Object.keys(dt),Bo=`numbers 0..4 (0=critical, 1=high, 2=medium, 3=low, 4=minimal) or names (${Yo.join(", ")}), case-insensitive`;function be(e){return new m(`Invalid priority "${e}". Accepted values: ${Bo}.`,u.USAGE)}function Go(e){if(typeof e=="number"){if(Number.isInteger(e)&&e>=0&&e<=4)return e;throw be(String(e))}if(typeof e!="string")throw be(String(e));let t=e.trim();if(t.length===0)throw be(e);let r=t.toLowerCase();if(Object.prototype.hasOwnProperty.call(dt,r))return dt[r];if(/^[0-4]$/.test(t))return Number(t);throw be(e)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b6206b0e-0cd8-5827-acbd-6ac064dbcad7")}catch{}})();var Wo=/^[A-Za-z0-9][A-Za-z0-9._/-]*$/,Ko=64;function Xc(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="warn"||t==="strict_error")return t;if(t==="strict")return"strict_error";throw new m("Config set sprint-release-format-policy requires --policy with one of: warn, strict_error (alias: strict)",u.USAGE)}function Jo(e,t,r){let n=t.trim();if(n.length===0)throw new m(`--${e} must not be empty. Use --${e} none to unset.`,u.USAGE);if(n.length<=Ko&&Wo.test(n))return{value:n,warnings:[]};let o="Expected 1-64 characters matching [A-Za-z0-9][A-Za-z0-9._/-]* (no spaces).";if(r==="strict_error")throw new m(`Invalid --${e} value "${n}". ${o}`,u.USAGE);return{value:n,warnings:[`validation_warning:${e}_format:${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]="14e6c7b4-3161-5f82-b797-f06a879d1370")}catch{}})();var yr={open:"open_status",closed:"close_status",canceled:"canceled_status",cancelled:"canceled_status"},Er="all";function nd(e){if(typeof e!="string")return!1;let t=e.split(",").map(r=>r.trim().toLowerCase()).filter(r=>r.length>0);return t.length===1&&t[0]===Er}function Xo(e,t){let r=e.trim().toLowerCase();if(r.length===0)return;let n=yr[r];return n?t[n]:Ye(e,t)}function Qo(e){let t=new Set(Object.keys(yr));for(let r of e.definitions){t.add(r.id);for(let n of r.aliases)t.add(n)}return[...t]}function Zo(e,t){let r=e.trim().toLowerCase(),n,o=Number.POSITIVE_INFINITY;for(let i of Qo(t)){let s=$e(r,i.toLowerCase(),2);s!==null&&s<o&&(n=i,o=s)}return n}function ei(e,t,r){if(typeof e!="string")return;let n=r?.strict===!0,o=r?.flagLabel??"--status",i=e.split(",").map(a=>a.trim()).filter(a=>a.length>0);if(i.length===0)return;if(i.filter(a=>a.trim().toLowerCase()===Er).length>0){if(i.length===1)return;throw new m(`Invalid ${o} value "all". Use it by itself, or omit ${o} to search every status.`,u.USAGE)}let s=[];for(let a of i){let c=Xo(a,t);if(c===void 0){if(n){let d=Zo(a,t);throw new m(`Invalid ${o} value "${a}". Use open|closed|canceled or a configured status id${d?`. Did you mean "${d}"?`:"."}`,u.USAGE)}s.push(a);continue}s.push(c)}return[...new Set(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]="50f77f3f-b2b0-5ae2-b669-6ed50bbdd530")}catch{}})();var ti={bug:"Issue",bugfix:"Issue",defect:"Issue",incident:"Issue",enhancement:"Feature",story:"Feature",userstory:"Feature","user-story":"Feature","user story":"Feature",change:"Chore",ticket:"Task",todo:"Task"};function ri(e){if(e!==void 0)return ti[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]="c628dcf9-d98f-566e-9f93-cc81e737691c")}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]="4b79bd02-51ae-5c46-be4c-2f41dd8c9486")}catch{}})();function wr(e,t){return qe(e,t)}function ni(e,t,r){let n={};for(let o of t.command_to_fields.get(r)??[]){let i=He(e,o);i!==void 0&&(n[o.metadata_key]=Ft(o,i))}return n}function oi(e,t){for(let[r,n]of Object.entries(t)){let o=e[r];if(Array.isArray(n)){if(Array.isArray(o)){let i=o.map(s=>String(s));if(!n.map(s=>String(s)).every(s=>i.includes(s)))return!1;continue}if(!wr(o,n[n.length-1]))return!1;continue}if(!wr(o,n))return!1}return!0}import{spawnSync as Sr}from"node:child_process";(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]="7889f11f-36f9-5384-8429-58d951c342da")}catch{}})();var ii="PM_DISABLE_OLLAMA_AUTO_DEFAULTS",si="PM_OLLAMA_MODEL",ai="http://localhost:11434",ci="qwen3-embedding:0.6b",di=".agents/pm/search/lancedb/",li=1500,ui=2500,mi=/qwen.*(?:embed|embedding)|(?:embed|embedding).*qwen/i,fi=/embed|embedding/i,x=E;function pi(){let e=x(process.env[ii]);if(!e)return!1;let t=e.toLowerCase();return t==="1"||t==="true"||t==="yes"}function br(e){return e.some(t=>x(t)!==null)}function _i(e){let t=x(e);return!!(t&&t.toLowerCase()!=="ollama")}function hi(e){let t=x(e);return!!(t&&t.toLowerCase()!=="lancedb")}function gi(e){return _i(e.search?.provider)||hi(e.vector_store?.adapter)||br([e.providers?.openai?.base_url,e.providers?.openai?.model,e.providers?.openai?.api_key])?!0:br([e.vector_store?.qdrant?.url,e.vector_store?.qdrant?.api_key])}function yi(){let e=Sr("ollama",["--version"],{encoding:"utf8",timeout:li});return e.error?!1:e.status===0}function Ei(e){let t=e.split(/\r?\n/).map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)return null;let r=t.map(n=>n.split(/\s+/)[0]?.trim()).filter(n=>!!(n&&n.length>0)).filter(n=>n.toUpperCase()!=="NAME");return r.length===0?null:r.find(n=>mi.test(n))||(r.find(n=>fi.test(n))??null)}function wi(e){let t=x(e.providers?.ollama?.model);if(t)return t;let r=x(process.env[si]);if(r)return r;let n=Sr("ollama",["list"],{encoding:"utf8",timeout:ui});if(!n.error&&n.status===0){let o=Ei(typeof n.stdout=="string"?n.stdout:"");if(o)return o}return null}function bi(e){return{baseUrl:x(e.providers?.ollama?.base_url)===null,model:x(e.providers?.ollama?.model)===null,lancedbPath:x(e.vector_store?.lancedb?.path)===null,embeddingModel:x(e.search?.embedding_model)===null}}function Si(e){return e.baseUrl||e.model||e.lancedbPath||e.embeddingModel}function Ti(e,t,r){if(!t.baseUrl&&!t.model)return;let n=e.providers??={},o=n.ollama??={};t.baseUrl&&(o.base_url=ai),t.model&&(o.model=r)}function vi(e,t){if(!t.lancedbPath)return;let r=e.vector_store??={},n=r.lancedb??={};n.path=di}function Ai(e,t,r){if(!t.embeddingModel)return;let n=e.search??={};n.embedding_model=r}function Se(e){let t={settings:e,auto_ollama_defaults_applied:!1};if(pi()||gi(e))return t;let r=bi(e);if(!Si(r)||r.model&&!yi())return t;let n=structuredClone(e),o=wi(n);return o?(Ti(n,r,o),vi(n,r),Ai(n,r,o),{settings:n,auto_ollama_defaults_applied:!0}):{...t,auto_ollama_defaults_skipped_reason:"no_installed_embedding_model",auto_ollama_defaults_remediation:`Run ollama pull ${ci} or configure providers.ollama.model explicitly (and search.embedding_model if you need an override).`}}(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]="9ecff496-8afa-5cfc-9178-2be8bd403978")}catch{}})();var Ci="reindex";import Lr from"node:path";import{mkdir as xi,readFile as ki,stat as mt,unlink as Ri}from"node:fs/promises";import{basename as vr,dirname as lt,isAbsolute as Li,join as Di,resolve as ft}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]="b5f2e49a-fb72-554b-b0a8-dca0adee71f4")}catch{}})();var pt="pm_items",Oi=/[^a-zA-Z0-9_-]/g,Mi=128,Ni=".pm-cli-local-vectors",ut=1,F=new Map;function te(e){return(E(e.collection_name)??pt).replaceAll(Oi,"_").slice(0,Mi)}function Te(e){if(!B(e)||e.length===0)throw new Error("Vector values must be a non-empty numeric array");return[...e]}function Ir(e){if(!Number.isFinite(e)||e<=0)throw new Error("Vector query limit must be a positive number");return Math.floor(e)}function Pi(e){let t=e.result;if(!Array.isArray(t))throw new TypeError("Qdrant query response must include a result array");let r=t.map((n,o)=>{let i=n.id,s=typeof i=="number"?String(i):i,a=E(s);if(!a)throw new Error(`Qdrant query response entry at index ${o} is missing a non-empty id`);let c=n.score;if(typeof c!="number"||!Number.isFinite(c))throw new TypeError(`Qdrant query response entry at index ${o} is missing a finite numeric score`);let d=n.payload;if(d!==void 0&&(typeof d!="object"||d===null||Array.isArray(d)))throw new Error(`Qdrant query response entry at index ${o} must provide payload as an object when set`);return{id:a,score:c,...d?{payload:d}:{}}});return r.sort((n,o)=>n.score!==o.score?o.score-n.score:n.id.localeCompare(o.id)),r}function _t(e){let t=E(e.result?.status);if(t)return{status:t};let r=E(e.status);if(r)return{status:r};throw new Error("Qdrant upsert response must include status metadata")}async function ee(e,t,r,n,o){return await pe({endpoint:e,method:t.method,headers:t.headers,body:t.body,timeoutMs:r,fetcher:n,requestLabel:`Vector ${o} request`,responseLabel:`Vector ${o} response`})}function $i(e){let t=E(e.vector_store?.qdrant?.url);if(!t)return null;let r=E(e.vector_store?.collection_name),n=E(e.vector_store?.qdrant?.api_key);return{name:"qdrant",url:t,...r&&r!==pt?{collection_name:r}:{},...n?{api_key:n}:{}}}function zi(e){let t=ft(e),r=lt(t);return vr(t)==="pm"&&vr(r)===".agents"?lt(r):t}function Fi(e,t){return!t||Li(e)?e:ft(zi(t),e)}function Ui(e,t){let r=E(e.vector_store?.lancedb?.path);if(!r)return null;let n=E(e.vector_store?.collection_name);return{name:"lancedb",path:Fi(r,t),...n&&n!==pt?{collection_name:n}:{}}}function Vi(e){if(!Array.isArray(e)||e.length===0)throw new Error("Vector upsert records must include at least one entry");return e.map((t,r)=>{let n=E(t.id);if(!n)throw new Error(`Vector upsert record at index ${r} is missing a non-empty id`);let o=Te(t.vector),i=t.payload;if(i!==void 0&&(typeof i!="object"||i===null||Array.isArray(i)))throw new Error(`Vector upsert record at index ${r} must provide payload as an object when set`);return{id:n,vector:o,...i?{payload:i}:{}}})}function qi(e){if(!Array.isArray(e)||e.length===0)throw new Error("Vector delete ids must include at least one entry");let t=e.map((n,o)=>{let i=E(n);if(!i)throw new Error(`Vector delete id at index ${o} is missing a non-empty value`);return i}).sort((n,o)=>n.localeCompare(o)),r=[];for(let n of t)r.at(-1)!==n&&r.push(n);return r}function ji(e){return e.replace(/\/points\?wait=true$/,"/points/delete?wait=true")}function Hi(e){return e.replace(/\/points\?wait=true$/,"")}function ve(e){return{"content-type":"application/json",...e.api_key?{"api-key":e.api_key}:{}}}function Ae(e,t){return W(e,t)}function W(e,t){return Di(ft(e),Ni,`${t}.json`)}function Yi(e,t,r){let n=E(e.id);if(!n)throw new Error(`LanceDB local snapshot '${r}' record at index ${t} is missing a non-empty id`);let o=Te(e.vector),i=e.payload;if(i!==void 0&&(typeof i!="object"||i===null||Array.isArray(i)))throw new Error(`LanceDB local snapshot '${r}' record '${n}' must provide payload as an object when set`);return{id:n,vector:o,...i?{payload:i}:{}}}function Bi(e,t,r){let n;try{n=JSON.parse(r)}catch(a){throw new Error(`LanceDB local snapshot at '${e}' is not valid JSON: ${b(a)}`)}if(typeof n!="object"||n===null||Array.isArray(n))throw new Error(`LanceDB local snapshot at '${e}' must be a JSON object`);if(n.version!==ut)throw new Error(`LanceDB local snapshot at '${e}' must include version=${ut}`);let o=E(n.table);if(!o)throw new Error(`LanceDB local snapshot at '${e}' must include a non-empty table value`);if(o!==t)throw new Error(`LanceDB local snapshot at '${e}' table mismatch: expected '${t}', received '${o}'`);let i=n.records;if(!Array.isArray(i))throw new TypeError(`LanceDB local snapshot at '${e}' must include a records array`);let s=new Map;for(let a=0;a<i.length;a+=1){let c=Yi(i[a],a,e);s.set(c.id,c)}return s}async function Gi(e){try{let t=await mt(e);return{mtimeMs:t.mtimeMs,size:t.size}}catch(t){if(!Y(t))throw t;return null}}function Wi(e,t){if(!t)return null;if(t.mtimeMs===null&&t.size===null&&t.records.size===0)return t.records;let r=new Map;return F.set(e,{records:r,mtimeMs:null,size:null}),r}function Ki(e,t){return e!==void 0&&t!==null&&e.mtimeMs===t.mtimeMs&&e.size===t.size}async function ht(e,t){let r=Ae(e,t),n=W(e,t),o=await Gi(n),i=F.get(r);if(!o){let a=Wi(r,i);if(a)return a}if(Ki(i,o))return i.records;let s=new Map;try{let a=await ki(n,"utf8");s=Bi(n,t,a)}catch(a){if(!Y(a))throw a}return F.set(r,{records:s,mtimeMs:o?.mtimeMs??null,size:o?.size??null}),s}function Ji(e){let t=[...e.values()];return t.sort((r,n)=>r.id.localeCompare(n.id)),t.map(r=>({id:r.id,vector:[...r.vector],...r.payload?{payload:r.payload}:{}}))}async function Cr(e){try{await Ri(e)}catch(t){if(!Y(t))throw new Error(`LanceDB local snapshot delete failed at '${e}': ${b(t)}`)}}async function xr(e,t,r){let n=W(e,t);if(r.size===0){await Cr(n);return}let o=lt(n);try{await xi(o,{recursive:!0})}catch(s){throw new Error(`LanceDB local snapshot directory create failed at '${o}': ${b(s)}`)}let i=`${JSON.stringify({version:ut,table:t,records:Ji(r)})}
|
|
12
|
-
`;try{await T(n,i)}catch(s){throw new Error(`LanceDB local snapshot write failed at '${n}': ${b(s)}`)}}async function Xi(e,t){let r=Ae(e,t),n=W(e,t);await Cr(n),F.delete(r)}function Ar(e){let t=0;for(let r=0;r<e.length;r+=1)t+=e[r]*e[r];return Math.sqrt(t)}function Qi(e,t){let r=0;for(let i=0;i<e.length;i+=1)r+=e[i]*t[i];let n=Ar(e),o=Ar(t);return n===0||o===0?0:r/(n*o)}function gt(e,t){let r=$i(e),n=Ui(e,t),o=[r,n].filter(a=>a!==null),i=E(e.vector_store?.adapter),s=i?i.toLowerCase():null;return{active:(s?o.find(a=>a.name===s):void 0)??o[0]??null,available:o}}function Ie(e){let t=te(e);if(e.name==="qdrant"){let o=J(e.url),i=encodeURIComponent(t);return{store:"qdrant",query_target:`${o}/collections/${i}/points/search`,upsert_target:`${o}/collections/${i}/points?wait=true`}}let r=encodeURIComponent(e.path),n=encodeURIComponent(t);return{store:"lancedb",query_target:`lancedb://${r}#${n}`,upsert_target:`lancedb://${r}#${n}`}}function Zi(e,t,r){let n=Ie(e),o=Te(t),i=Ir(r);return e.name==="qdrant"?{target:n,method:"POST",headers:ve(e),body:{vector:o,limit:i,with_payload:!0}}:{target:n,method:"LOCAL",headers:{},body:{table:te(e),vector:o,limit:i}}}function es(e,t){let r=Ie(e),n=Vi(t);return e.name==="qdrant"?{target:r,method:"POST",headers:ve(e),body:{points:n}}:{target:r,method:"LOCAL",headers:{},body:{table:te(e),records:n}}}function ts(e,t){let r=Ie(e),n=qi(t);return e.name==="qdrant"?{target:r,method:"POST",headers:ve(e),body:{points:n}}:{target:r,method:"LOCAL",headers:{},body:{table:te(e),ids:n}}}async function Id(e,t,r,n={}){let o=Zi(e,t,r);if(o.method==="LOCAL"){let c=e,d=o.body,l=await ht(c.path,d.table);if(l.size===0)return[];let p=Te(d.vector),_=Ir(d.limit),f=[],g=0;for(let h of l.values()){if(h.vector.length!==p.length){g++;continue}f.push({id:h.id,score:Qi(p,h.vector),...h.payload?{payload:h.payload}:{}})}return g>0&&n.warnings&&n.warnings.push(`vector_dimension_mismatch:${g} records skipped (expected ${p.length} dimensions)`),f.sort((h,y)=>h.score!==y.score?y.score-h.score:h.id.localeCompare(y.id)),f.slice(0,_)}let i=N(n.timeout_ms,"Vector request"),s=P(n.fetcher,"Vector request"),a=await ee(o.target.query_target,{method:"POST",headers:o.headers,body:o.body},i,s,"query");return Pi(a)}async function yt(e,t,r={}){let n=es(e,t);if(n.method==="LOCAL"){let a=e,c=n.body,d=Ae(a.path,c.table),l=await ht(a.path,c.table);for(let f of c.records)l.set(f.id,f);await xr(a.path,c.table,l);let p=W(a.path,c.table),_=await mt(p);return F.set(d,{records:l,mtimeMs:_.mtimeMs,size:_.size}),{status:"ok"}}let o=N(r.timeout_ms,"Vector request"),i=P(r.fetcher,"Vector request"),s=await ee(n.target.upsert_target,{method:"POST",headers:n.headers,body:n.body},o,i,"upsert");return _t(s)}async function Ce(e,t,r={}){let n=ts(e,t);if(n.method==="LOCAL"){let a=e,c=n.body,d=Ae(a.path,c.table),l=await ht(a.path,c.table);if(l.size===0)return{status:"ok"};for(let p of c.ids)l.delete(p);if(await xr(a.path,c.table,l),l.size===0)F.delete(d);else{let p=W(a.path,c.table),_=await mt(p);F.set(d,{records:l,mtimeMs:_.mtimeMs,size:_.size})}return{status:"ok"}}let o=N(r.timeout_ms,"Vector request"),i=P(r.fetcher,"Vector request"),s=await ee(ji(n.target.upsert_target),{method:"POST",headers:n.headers,body:n.body},o,i,"delete");return _t(s)}async function kr(e,t=[],r={},n){if(e.name==="lancedb")return await Xi(e.path,te(e)),{status:"ok"};if(n!==void 0){if(!Number.isInteger(n)||n<=0)throw new Error("Vector reset dimension must be a positive integer when provided");let i=Ie(e),s=Hi(i.upsert_target),a=N(r.timeout_ms,"Vector request"),c=P(r.fetcher,"Vector request"),d=ve(e);try{await ee(s,{method:"DELETE",headers:d,body:{}},a,c,"delete")}catch(p){if(!b(p).includes("failed with status 404"))throw p}let l=await ee(s,{method:"PUT",headers:d,body:{vectors:{size:n,distance:"Cosine"}}},a,c,"upsert");return _t(l)}let o=t.map(i=>i.trim()).filter(i=>i.length>0);return o.length===0?{status:"ok"}:await Ce(e,o,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]="f8acaac5-64f7-5e22-987e-4eb12a1aa1cf")}catch{}})();function xe(e,t){let r=E(e),n=E(t);return!r||!n?null:{provider:r,model:n}}function Rr(e){if(e==null)return null;if(typeof e!="object"||Array.isArray(e))throw new Error("Vectorization embedding metadata must be an object when set");let t=xe(e.provider,e.model),r=e.vector_dimension;if(!t||typeof r!="number"||!Number.isInteger(r)||r<=0)throw new Error("Vectorization embedding metadata must include provider, model, and positive vector_dimension");return{...t,vector_dimension:r}}function Et(e,t){if(!Number.isInteger(t)||t<=0)throw new Error("Vectorization embedding metadata requires a positive vector dimension");return{provider:e.provider,model:e.model,vector_dimension:t}}function wt(e,t){return!e||e.provider!==t.provider||e.model!==t.model}function bt(e,t){return!!(e&&e.vector_dimension!==t)}function St(e,t){if(e.length===0)throw new Error(`${t} returned no vectors`);let r=e[0].length;if(!Number.isInteger(r)||r<=0)throw new Error(`${t} returned an empty vector`);for(let n=1;n<e.length;n+=1)if(e[n]?.length!==r)throw new Error(`${t} returned mixed vector dimensions`);return 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]="7113dff5-c8e0-5ba6-b0ae-2ff849ed94df")}catch{}})();var Dr="search/vectorization-status.json";function ne(e){return[...new Set([...e].map(t=>t.trim()).filter(t=>t.length>0))].sort((t,r)=>t.localeCompare(r))}function Or(e){return typeof e=="string"&&e.trim().length>0&&Number.isFinite(Date.parse(e))}function Mr(e){let t=new Map;for(let[r,n]of Object.entries(e)){let o=r.trim();o.length===0||!Or(n)||t.set(o,n)}return Object.fromEntries([...t.entries()].sort((r,n)=>r[0].localeCompare(n[0])))}async function Nr(e){let t=Lr.join(e,Dr),r=await S(t);if(r===null||r.trim().length===0)return{entries:{},embedding:null,warnings:[]};let n;try{n=JSON.parse(r)}catch{return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]}}if(typeof n!="object"||n===null||n.version!==1||!Array.isArray(n.items))return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]};let o=new Map;for(let s of n.items){if(typeof s!="object"||s===null)return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]};let a=s.id,c=s.updated_at;if(typeof a!="string"||a.trim().length===0||!Or(c))return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]};o.set(a.trim(),c)}let i=null;try{i=Rr(n.embedding)}catch{return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]}}return{entries:Object.fromEntries([...o.entries()].sort((s,a)=>s[0].localeCompare(a[0]))),embedding:i,warnings:[]}}async function Pr(e,t,r){let n=Mr(t),o=Lr.join(e,Dr),i=`${JSON.stringify({version:1,generated_at:O(),...r?{embedding:r}:{},items:Object.entries(n).map(([s,a])=>({id:s,updated_at:a}))},null,2)}
|
|
13
|
-
`;await T(o,i)}function rs(e){return{id:e.id,type:e.type,status:e.status,priority:e.priority,updated_at:e.updated_at}}function ns(e){let t=xe(e.name,e.model);if(!t)throw new Error("Embedding provider must include a provider name and model");return t}function re(e,t){return{refreshed:[],skipped:e,warnings:[t]}}async function os(e,t,r){if(!r.settings&&!await H(Ue(e)))return re(t,"search_semantic_refresh_skipped:settings_not_initialized");let n;try{if(r.settings)n=r.settings;else{let a=await me(e),c=a.warnings.find(d=>d.startsWith("settings_read_"));if(c)return re(t,`search_semantic_refresh_skipped:settings_read_failed:${c}`);n=a.settings}}catch(a){return re(t,`search_semantic_refresh_skipped:settings_read_failed:${b(a)}`)}let o=r.apply_runtime_defaults?Se(n).settings:n,i=Xe(o).active;if(!i)return re(t,"search_semantic_refresh_skipped:provider_unconfigured");let s=gt(o,e).active;return s?{settings:o,provider:i,vectorStore:s}:re(t,"search_semantic_refresh_skipped:vector_store_unconfigured")}async function is(e,t,r,n,o,i){let s=[],a=new Set,c=new Set,d=[];for(let l of n){let p=await Ke(e,l,t,r,o);if(!p){c.add(l);continue}try{let _=await Je(p,{schema:i});d.push({id:_.document.metadata.id,document:_.document})}catch(_){a.add(p.id),s.push(`search_semantic_refresh_item_read_failed:${p.id}:${b(_)}`)}}return d.sort((l,p)=>l.id.localeCompare(p.id)),{documents:d,missingIds:ne(c),skippedIds:ne(a),warnings:s}}async function ss(e,t,r){let n=G(t.name,e.search.embedding_corpus_max_characters).maxCharacters,o=Qe(e),i=r.map(a=>Ze(a.document,{providerName:t.name,maxCharacters:n,fields:o})),s=await tt(t,e,i);return{vectors:s.vectors,vector_dimension:St(s.vectors,"Semantic refresh embedding"),warnings:s.warnings}}async function as(e,t,r){return await yt(e,t.map((n,o)=>({id:n.id,vector:r[o],payload:rs(n.document.metadata)}))),{refreshed:t.map(n=>n.id),skipped:[],warnings:[]}}async function cs(e,t){if(t.length===0)return{refreshed:[],skipped:[],warnings:[]};try{return await Ce(e,t),{refreshed:[],skipped:[],warnings:[]}}catch(r){return{refreshed:[],skipped:t,warnings:[`search_semantic_refresh_delete_failed:${b(r)}`]}}}async function Gd(e,t,r={}){let n=ne(t);if(n.length===0)return{refreshed:[],skipped:[],warnings:[]};let o=await os(e,n,r);if(!("settings"in o))return o;let i=Fe(o.settings,je()),s=await is(e,o.settings.id_prefix,o.settings.item_format,n,i.type_to_folder,o.settings.schema),a=s.documents.length>0||s.missingIds.length>0?await Nr(e):{entries:{},embedding:null,warnings:[]},c=ns(o.provider),d=a.entries,l={refreshed:[],skipped:[],warnings:[]},p=a.embedding;if(s.documents.length>0)if(a.embedding&&wt(a.embedding,c))l={refreshed:[],skipped:s.documents.map(y=>y.id),warnings:["search_semantic_refresh_requires_reindex:embedding_identity_changed"]};else try{let y=await ss(o.settings,o.provider,s.documents);if(bt(a.embedding,y.vector_dimension))l={refreshed:[],skipped:s.documents.map(w=>w.id),warnings:[...y.warnings,"search_semantic_refresh_requires_reindex:vector_dimension_changed"]};else{p=Et(c,y.vector_dimension);let w=await as(o.vectorStore,s.documents,y.vectors);l={refreshed:w.refreshed,skipped:w.skipped,warnings:[...y.warnings,...w.warnings]}}}catch(y){l={refreshed:[],skipped:s.documents.map(w=>w.id),warnings:[`search_semantic_refresh_failed:${b(y)}`]}}let _=await cs(o.vectorStore,s.missingIds),f=new Set(l.refreshed),g=Object.fromEntries(s.documents.filter(y=>f.has(y.id)).map(y=>[y.id,y.document.metadata.updated_at])),h=[];if(Object.keys(g).length>0||s.missingIds.length>0){let y={...d,...Mr(g)};for(let w of s.missingIds)delete y[w];try{await Pr(e,y,p)}catch(w){h.push(`search_vectorization_status_ledger_write_failed:${b(w)}`)}h.push(...a.warnings)}return{refreshed:ne([...l.refreshed,..._.refreshed]),skipped:ne([...s.skippedIds,...l.skipped,..._.skipped]),warnings:[...s.warnings,...l.warnings,..._.warnings,...h]}}import{createRequire as ms}from"node:module";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="eae1b641-d6ed-5c32-899e-fe534a17aafd")}catch{}})();var ds=new Set(["1","true","yes","on"]),Re=["user","automation","test","dogfood"],ls=new Set(Re);function $r(e=process.env){return typeof e.VITEST=="string"||typeof e.VITEST_WORKER_ID=="string"||typeof e.NODE_TEST_CONTEXT=="string"||(e.NODE_ENV??"").trim().toLowerCase()==="test"}function ke(e,t){return ds.has((t[e]??"").trim().toLowerCase())}function oe(e=process.env){let t=ke("DO_NOT_TRACK",e),r=(e.PM_TELEMETRY_SOURCE_CONTEXT??"").trim().toLowerCase(),n=$r(e)&&!ls.has(r)&&!ke("PM_TELEMETRY_SEND_TEST_EVENTS",e);return{telemetry_disabled:t||n||ke("PM_TELEMETRY_DISABLED",e)||ke("PM_NO_TELEMETRY",e),do_not_track:t,test_suppressed: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]="64589e00-25ef-5d74-a94a-7d40455e1929")}catch{}})();var Fr=/(?:token|secret|password|passwd|api[_-]?key|apikey|authorization|cookie|credentials|bearer|dsn)/i,Jd=new RegExp(`(?:\\b|(?<=_))(${Fr.source})\\s*[:=]\\s*([^\\s,;]+)`,"giu");var zr="(?:\\s|\\\\+u(?:0009|000a|000d|0020))*",Xd=new RegExp("^"+zr+"(?::|=|\\\\+u(?:003a|003d))"+zr,"iu");(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]="07b08f80-aa60-5ffa-b969-2859839f3f2d")}catch{}})();var ol=ms(import.meta.url);(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]="bd65294f-dfa5-53d2-9691-c630884f2a5f")}catch{}})();var al=new Map([[u.USAGE,"invalid_command_usage"],[u.NOT_FOUND,"item_not_found"],[u.CONFLICT,"lock_conflict"],[u.DEPENDENCY_FAILED,"dependency_failed"]]);(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]="0d9d54cd-bd42-5958-83df-15316ea520c7")}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]="ab644545-f072-53c0-9ebf-72a62c237a2f")}catch{}})();var _l=Object.freeze({"<":"<",">":">",""":'"',"'":"'","&":"&"});(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]="e7deff0d-d9c9-5250-b172-ab752ddd64a4")}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]="bc9e1b59-21cb-5dda-91c0-36e123734cd3")}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]="4b566486-120f-5aed-8d92-9e62ed996210")}catch{}})();function ps(e,t){if(e==null)return[];let r=t?.separators??/,/,n=e.split(r).map(i=>i.trim()).filter(i=>i.length>0),o=t?.unique!==!1?Array.from(new Set(n)):n;return t?.sort===!0?[...o].sort():o}import Tt from"node:fs/promises";import Le 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]="12ee7de1-dff4-53f1-8d0d-d8b1c1ebea42")}catch{}})();function _s(e){return"json_markdown"}function Vr(e,t){return Le.relative(e,t).replaceAll("\\","/")}function hs(e){return String(e).replaceAll(/[^a-zA-Z0-9._-]+/g,"_").slice(0,120)}async function gs(e,t,r){e!==t&&le(await Tt.readFile(t,"utf8"),{format:"json_markdown",requireSupportedFormat:!0,schema:r})}async function ys(e,t,r="item_format:migrate",n=ze,o){if(t!=="toon")throw new Error("Only toon item-format migration targets are supported. Markdown item files are legacy read-only input.");let i=new Set,s=new Set,a=[],c=0,d=_s(t),l=Object.entries(n);for(let[p,_]of l){let f=Le.join(e,_),g=[];try{g=await Tt.readdir(f)}catch{continue}let h=new Map;for(let w of g){let D=Le.join(f,w),R=Mt(D);if(!R)continue;let q=Le.extname(w),K=w.slice(0,w.length-q.length).trim();if(K.length===0)continue;let j=h.get(K)??{};j[R]=D,h.set(K,j)}let y=[...h.keys()].sort((w,D)=>w.localeCompare(D));for(let w of y){let D=h.get(w);c+=1;let R=D[d];if(!R)continue;let q=D[t]??R,K=q===D[t]?t:d;try{let j=await Tt.readFile(q,"utf8"),hn=le(j,{format:K,requireSupportedFormat:!0,schema:o,onWarning:gn=>a.push(`item_format_migration_parse_warning:${w}:${gn}`)});await gs(q,R,o);let Pe=Ve(e,p,w,t,n),Dt=Be(hn,{format:t,schema:o});await S(Pe)!==Dt&&(await T(Pe,Dt),a.push(...await ae({path:Pe,scope:"project",op:r})),i.add(w)),await se(R),s.add(Vr(e,R)),a.push(...await ae({path:R,scope:"project",op:`${r}:remove`})),i.add(w)}catch(j){a.push(`item_format_migration_skipped:${Vr(e,q)}:${hs(j)}`)}}}return{target_format:t,scanned:c,migrated:[...i].sort((p,_)=>p.localeCompare(_)),removed:[...s].sort((p,_)=>p.localeCompare(_)),warnings: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]="12c59406-7e00-5fe1-bd93-c1f9d8537f01")}catch{}})();var Es=new Set(["completed","superseded"]);function ws(e){return e!==void 0&&Es.has(e)}function bs(e){if(e.type.trim().toLowerCase()!=="plan")return!1;let t=e.plan_steps??[];return t.length>0&&t.every(r=>r.status==="completed")}import Rl from"node:readline/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7c005413-4db4-58ce-a8ec-96ebc91a54f9")}catch{}})();import Ct from"node:crypto";import{mkdirSync as Gl,rmSync as vs,statSync as Wl}from"node:fs";import{mkdir as vt,readdir as As,rm as xt,stat as Wr}from"node:fs/promises";import{request as Is}from"node:http";import{request as Cs}from"node:https";import A 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]="4f455b67-536a-59be-8f25-1dc9c9c0b917")}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]="1496ef0f-a192-5491-b84b-ea7da6cce65e")}catch{}})();var xs=A.join("runtime","telemetry","events.jsonl"),ks=A.join("runtime","telemetry","state.json"),Rs=A.join("runtime","telemetry","otel-spans.jsonl"),Ls=8,qr=500,Ds=1;var Os=100,Ms=36e5,Ns=3e4,jr=2e4,Ps=1e3,$s=25e3;var zs=864e5,Kr=65536;var Jr=15;var Xr=[25,50,100,200],Fs=3600*1e3,Us=6e4;var U="PM_TELEMETRY_FLUSH_CHILD";var Vs="PM_TELEMETRY_HTTP_TIMEOUT_MS",qs=globalThis.fetch;var fu=Promise.resolve(),Hr=Promise.resolve();var pu=new Set(Re),js=new Set(["1","true","yes","on"]);var _u=Ct.randomUUID();var Qr="(?:token|secret|password|passwd|api[_-]?key|apikey|authorization|cookie|session|credentials|bearer|literals?|regex(?:es)?|replacements?)",Hs=new RegExp(`\\b(${Qr})\\s*([:=])\\s*([^\\s,;]+)`,"giu"),Ys=new RegExp(`(--${Qr})(=|\\s+)([^\\s,;]+)`,"giu"),Bs=/(^|[\s"'`(=])\/(?:[^\s"'`),;]+)/g,Gs=/bearer\s+[a-z0-9._=-]+/giu,Ws=/\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;function De(e){return A.join(e,xs)}function Oe(e){return A.join(e,Rs)}function Ks(e){return A.dirname(De(e))}function Zr(e){return A.join(e,ks)}function en(e){return A.join(e,"runtime","telemetry","flush.lock")}function Js(e){return A.join(e,"runtime","telemetry","flush.spawn.lock")}async function Xs(e){let t=await S(Zr(e));if(!t||t.trim().length===0)return{};try{let r=JSON.parse(t);return typeof r!="object"||r===null||Array.isArray(r)?{}:r}catch{return{}}}async function k(e,t){try{await ie(async()=>{let r={...await Xs(e),...t},n=Object.fromEntries(Object.entries(r).filter(([,o])=>o!==void 0).sort((o,i)=>o[0].localeCompare(i[0])));await T(Zr(e),`${JSON.stringify(n,null,2)}
|
|
14
|
-
`,{createParentDirectories:!V(process.env[U])})},e)}catch{}}function tn(e){return e.replaceAll(Hs,(t,r,n)=>`${r}${n}[redacted]`).replaceAll(Ys,(t,r,n)=>`${r}${n}[redacted]`)}function rn(e){return e.replaceAll(Bs,(t,r)=>`${r}[redacted_path]`)}function nn(e){let t=e>=65&&e<=90,r=e>=97&&e<=122,n=e>=48&&e<=57;return t||r||n}function on(e){if(!e)return!1;let t=e.charCodeAt(0);return nn(t)?!0:e==="."||e==="_"||e==="%"||e==="+"||e==="-"}function sn(e){if(!e)return!1;let t=e.charCodeAt(0);return nn(t)?!0:e==="."||e==="-"}function Qs(e){let t=e.indexOf("@");if(t<=0||t!==e.lastIndexOf("@")||t===e.length-1)return!1;let r=e.slice(0,t),n=e.slice(t+1),o=n.lastIndexOf(".");if(o<=0||o===n.length-1||n.length-(o+1)<2)return!1;for(let i of r)if(!on(i))return!1;for(let i of n)if(!sn(i))return!1;return!0}function Zs(e){let t="",r=0;for(;r<e.length;){let n=e.indexOf("@",r);if(n<0){t+=e.slice(r);break}let o=n-1;for(;o>=r&&on(e[o]);)o-=1;o+=1;let i=n+1;for(;i<e.length&&sn(e[i]);)i+=1;let s=e.slice(o,i);if(Qs(s)){t+=e.slice(r,o),t+="[redacted_email]",r=i;continue}t+=e.slice(r,n+1),r=n+1}return t}function an(e){return Zs(e).replaceAll(Gs,"bearer [redacted_token]").replaceAll(Ws,"[redacted_ip]")}function ea(e){let t=an(e),r=tn(t),n=rn(r),o=n.trim();return o.startsWith("/")&&o.length>1?"[redacted_path]":n.length>512?`${n.slice(0,509)}...`:n}function ta(e){let t=an(e),r=tn(t),n=rn(r),o=n.trim();return o.startsWith("/")&&o.length>1?"[redacted_path]":n.length>2048?`${n.slice(0,2045)}...`:n}function It(e,t="redacted"){return t==="max"?ta(e):ea(e)}function ra(e){let t=e?.trim().toLowerCase();return t==="minimal"||t==="redacted"||t==="max"?t:"redacted"}function V(e){return js.has((e??"").trim().toLowerCase())}function Yr(){let e=process.env[Vs]?.trim();if(!e)return jr;let t=Number(e);return Number.isFinite(t)?Math.min($s,Math.max(Ps,Math.trunc(t))):jr}async function cn(e,t,r){let n=new URL(e);if(globalThis.fetch!==qs){let i=new AbortController,s,a=new Promise((c,d)=>{s=setTimeout(()=>{i.abort(),d(new Error("telemetry_http_timeout"))},Yr())});try{return(await Promise.race([globalThis.fetch(e,{method:"POST",headers:t,body:r,signal:i.signal}),a])).status}finally{clearTimeout(s)}}let o=n.protocol==="https:"?Cs:n.protocol==="http:"?Is:void 0;if(!o)throw new Error(`telemetry_http_protocol_unsupported_${n.protocol}`);return new Promise((i,s)=>{let a=Yr(),c={method:"POST",headers:{...t,"content-length":Buffer.byteLength(r)},signal:AbortSignal.timeout(a),autoSelectFamilyAttemptTimeout:Math.min(5e3,a)},d=o(n,c,l=>{l.once("error",s),l.once("end",()=>i(l.statusCode)),l.resume()});d.once("error",s),d.end(r)})}async function na(e){let t=await Q(e);if(!t.telemetry.enabled||oe().telemetry_disabled)return null;if(t.telemetry.installation_id.trim().length===0){if(jt(e))return null;t.telemetry.installation_id=Ct.randomUUID(),await fe(e,t,"telemetry:install_id")}return{installationId:t.telemetry.installation_id,endpoint:t.telemetry.endpoint,retentionDays:Math.max(1,Math.trunc(t.telemetry.retention_days)),captureLevel:ra(t.telemetry.capture_level)}}function dn(e){let t=[];for(let r of e.split(`
|
|
15
|
-
`)){let n=r.trim();if(n.length!==0)try{let o=JSON.parse(n);o&&typeof o=="object"&&o.event&&typeof o.event=="object"&&typeof o.attempts=="number"&&(o.client_schema_version===void 0||typeof o.client_schema_version=="number"&&Number.isFinite(o.client_schema_version))&&t.push(o)}catch{}}return t}function ln(e){let t=Math.min(Ns*2**Math.max(e-1,0),Ms);return new Date(Date.now()+t).toISOString()}function kt(e){if(typeof e!="string"||e.trim().length===0)return!0;let t=Date.parse(e);return Number.isNaN(t)?!0:t<=Date.now()}function un(e){return kt(e.next_attempt_after)}function mn(e){let t=Number.isFinite(e)?Math.max(1,Math.trunc(e)):1;return Date.now()-t*zs}function oa(e,t){let r=e.event?.occurred_at;if(typeof r!="string"||r.trim().length===0)return!1;let n=Date.parse(r);return Number.isNaN(n)?!1:n<t}function Me(e,t){let r=mn(t),n=[],o=0;for(let i of e){if(JSON.stringify(i).length>Kr||oa(i,r)||i.attempts>=Jr){o+=1;continue}n.push(i)}return{entries:n,prunedCount:o}}async function fn(e,t){let r=t.map(o=>JSON.stringify(o)).join(`
|
|
16
|
-
`),n=r.length>0?`${r}
|
|
17
|
-
`:"";for(let o=0;;o+=1)try{await T(De(e),n,{createParentDirectories:!V(process.env[U])});return}catch(i){let s=Xr[o];if(s===void 0||!pn(i))throw i;await _n(s)}}function pn(e){if(typeof e!="object"||e===null||!("code"in e))return!1;let t=e.code;return t==="EACCES"||t==="EBUSY"||t==="EPERM"}function _n(e){return new Promise(t=>{setTimeout(t,e)})}function ia(e){let t=JSON.stringify([e.endpoint,e.enqueued_at,e.payload]);return Ct.createHash("sha256").update(t).digest("hex").slice(0,32)}function Rt(e){let t=[];for(let r of e.split(`
|
|
18
|
-
`)){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=ia(o)),t.push(o))}catch{}}return t}function sa(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 Lt(e,t){let r=mn(t),n=[],o=0;for(let i of e){if(JSON.stringify(i).length>Kr||sa(i,r)||i.attempts>=Jr){o+=1;continue}n.push(i)}if(n.length>qr){let i=n.length-qr;return o+=i,{entries:n.slice(i),prunedCount:o}}return{entries:n,prunedCount:o}}async function aa(e,t){let r=t.map(o=>JSON.stringify(o)).join(`
|
|
19
|
-
`),n=r.length>0?`${r}
|
|
20
|
-
`:"";for(let o=0;;o+=1)try{await T(Oe(e),n,{createParentDirectories:!V(process.env[U])});return}catch(i){let s=Xr[o];if(s===void 0||!pn(i))throw i;await _n(s)}}async function Br(e,t,r,n){return ie(async()=>{let o=await S(Oe(e)),i=o===null?[]:Rt(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}=Lt(s,t);return await aa(e,a),a.length},e)}async function ca(e,t){let r=await S(Oe(e));if(r===null||r.trim().length===0){await k(e,{pending_otel_spans:0});return}let n=Rt(r),{entries:o,prunedCount:i}=Lt(n,t),s=o.filter(g=>kt(g.next_attempt_after)).slice(0,Ls);if(s.length===0){let g=i>0?await Br(e,t,new Set,new Map):o.length;await k(e,{pending_otel_spans:g});return}let a=O(),c=new Set,d=new Map,l=0,p;await Promise.all(s.map(async g=>{try{let h=await cn(g.endpoint,{"content-type":"application/json"},JSON.stringify(g.payload));if(h<200||h>=300)throw new Error(`local_otel_export_http_${h}`);c.add(g.id),l+=1}catch(h){p=h instanceof Error?It(h.message,"redacted"):"local_otel_export_failed";let y=g.attempts+1;d.set(g.id,{attempts:y,next_attempt_after:ln(y)})}}));let _=await Br(e,t,c,d),f={pending_otel_spans:_,last_otel_attempt_at:a};l>0&&(f.last_otel_success_at=a),p!==void 0?(f.last_otel_failure_at=a,f.last_otel_failure_error=p):_===0&&(f.last_otel_failure_at=void 0,f.last_otel_failure_error=void 0),await k(e,f)}async function da(e,t,r){try{await ma(e,t,r)}catch{}try{await ca(e,r)}catch{}}async function la(e,t=Fs){try{let r=Ks(e),n=await As(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=A.join(r,i.name);(await Wr(s)).mtimeMs<o&&await xt(s,{force:!0})}))}catch{}}async function ie(e,t=X(process.cwd()),r=5e3){let n=Hr.catch(()=>{}).then(()=>$t(async()=>{let o=await de(t,"telemetry-queue",60,"telemetry",!1,!1,r,{createParentDirectories:!V(process.env[U])});try{return qt(t),await e()}finally{await o()}}));return Hr=n.catch(()=>{}),n}async function Ne(e){let t=await S(De(e));return t===null||t.trim().length===0?[]:dn(t)}async function At(e,t,r){return ie(async()=>{let n=await Ne(e),{entries:o}=Me(n,r),i=o.filter(s=>!t.has(s.event.event_id));return await fn(e,i),i},e)}async function ua(e,t,r,n){return ie(async()=>{let o=await Ne(e),{entries:i}=Me(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:ln(c)}});return await fn(e,s),s},e)}async function ma(e,t,r){await la(e);let n=t.trim();if(n.length===0)return;let o=await S(De(e));if(o===null||o.trim().length===0){await k(e,{endpoint:n,queue_entries:0});return}let i=dn(o);if(i.length===0){await k(e,{endpoint:n,queue_entries:0});return}let{entries:s,prunedCount:a}=Me(i,r);if(s.length===0){let f=await At(e,new Set,r);await k(e,{endpoint:n,queue_entries:f.length});return}let c=s.filter(f=>un(f)).slice(0,Os);if(c.length===0){let f=a>0?await At(e,new Set,r):s;await k(e,{endpoint:n,queue_entries:f.length});return}let d=new Set(c.map(f=>f.event.event_id)),l=O(),p={"content-type":"application/json"},_=process.env.PM_TELEMETRY_INGEST_KEY?.trim();_&&(p["x-pm-telemetry-key"]=_);try{let f=await cn(n,p,JSON.stringify({schema_version:Ds,events:c.map(g=>g.event)}));if(f<200||f>=300)throw new Error(`telemetry_flush_http_${f}`)}catch(f){let g=await ua(e,d,l,r),h=f instanceof Error?It(f.message,"redacted"):"telemetry_flush_failed";await k(e,{endpoint:n,queue_entries:g.length,last_attempted_flush_at:l,last_failed_flush_at:l,last_failed_flush_error:h});return}try{let f=await At(e,d,r);await k(e,{endpoint:n,queue_entries:f.length,last_attempted_flush_at:l,last_successful_flush_at:l,last_failed_flush_at:void 0,last_failed_flush_error:void 0})}catch(f){let g=f instanceof Error?It(f.message,"redacted"):"telemetry_flush_failed",h=await Ne(e).catch(()=>s);await k(e,{endpoint:n,queue_entries:h.length,last_attempted_flush_at:l,last_failed_flush_at:l,last_failed_flush_error:g})}}async function fa(e){let t=en(e);V(process.env[U])||await vt(A.dirname(t),{recursive:!0});try{return await vt(t),!0}catch(r){if(typeof r!="object"||r===null||!("code"in r)||r.code!=="EEXIST")throw r}try{let r=await Wr(t);return Date.now()-r.mtimeMs<Us?!1:(await xt(t,{recursive:!0,force:!0}),await vt(t),!0)}catch{return!1}}function pa(e){try{vs(e,{recursive:!0,force:!0})}catch{}}function _a(e){pa(Js(e))}async function ha(e,t,r){let n=await fa(e);if(_a(e),!n)return!1;try{await da(e,t,r)}finally{try{await xt(en(e),{recursive:!0,force:!0})}catch{}}return!0}async function Gr(e,t){let r=new Set;try{let{entries:n}=Me(await Ne(e),t);for(let o of n.filter(un))r.add(`event:${o.event.event_id}`)}catch{}try{let n=await S(Oe(e));if(n!==null)for(let o of Lt(Rt(n),t).entries)kt(o.next_attempt_after)&&r.add(`span:${o.id}`)}catch{}return r}async function hu(e=X(process.cwd())){if(!oe().telemetry_disabled)try{await We(e,async()=>{let t=V(process.env[U]),r=!0;for(;r;){if(!(await Q(e)).telemetry.enabled)return;let n=await ie(()=>na(e),e);if(!n)return;let o=t?await Gr(e,n.retentionDays):new Set;if(!await ha(e,n.endpoint,n.retentionDays)||!t)return;let i=await Gr(e,n.retentionDays);r=i.size>0&&(i.size!==o.size||[...i].some(s=>!o.has(s)))}},()=>V(process.env[U]))}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]="7db3c2f2-f320-5ff1-bf64-026964945b73")}catch{}})();export{Cc as a,Ro as b,Do as c,Mo as d,No as e,to as f,or as g,ir as h,ro as i,no as j,oo as k,io as l,lr as m,po as n,Qa as o,_o as p,ur as q,go as r,yo as s,Za as t,Eo as u,ge as v,ec as w,ye as x,bo as y,So as z,sc as A,mr as B,ac as C,Ee as D,cc as E,xo as F,kc as G,Po as H,$o as I,at as J,Fo as K,ct as L,Uo as M,Hc as N,qo as O,gr as P,jo as Q,Ho as R,Go as S,Xc as T,Jo as U,nd as V,ei as W,ri as X,yn as Y,ni as Z,oi as _,Se as $,Ci as aa,va as ba,Xe as ca,Gt as da,Qe as ea,Ln as fa,Dn as ga,Ca as ha,Wt as ia,G as ja,Ze as ka,tt as la,gt as ma,Id as na,yt as oa,Ce as pa,kr as qa,xe as ra,Et as sa,wt as ta,bt as ua,St as va,Nr as wa,Pr as xa,Gd as ya,Re as za,oe as Aa,jn as Ba,Qt as Ca,Hn as Da,Yn as Ea,Bn as Fa,za as Ga,ot as Ha,er as Ia,Zt as Ja,Kn as Ka,Jn as La,tr as Ma,Zn as Na,ps as Oa,ys as Pa,ws as Qa,bs as Ra,Ds as Sa,Jr as Ta,ie as Ua,hu as Va};
|
|
21
|
-
//# sourceMappingURL=chunk-WMPDY5ZU.js.map
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{b as g}from"./chunk-Y4JHHY24.js";import{b as m}from"./chunk-FOA7XKWP.js";import"./chunk-46KDJH3K.js";import{execFile as T}from"node:child_process";import{realpath as E}from"node:fs/promises";import I from"node:path";import{promisify as D}from"node:util";(function(){try{var n=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},r=new n.Error().stack;r&&(n._sentryDebugIds=n._sentryDebugIds||{},n._sentryDebugIds[r]="a29ee03b-9955-56c6-a72e-1e93182e5de8")}catch{}})();var h=D(T),_="[a-f0-9]{40}(?:[a-f0-9]{24})?",$=new RegExp(`^100(?:644|755) (${_}) 0$`,"u"),M=new RegExp(`^(${_}) blob (\\d+)$`,"u");async function y(n,r,s){let t=h("git",n,{...s,encoding:"buffer"}),e=t.child.stdin;return e!==null&&(e.on("error",()=>{t.child.kill()}),e.end(`${r.join(`
|
|
2
|
-
`)}
|
|
3
|
-
`)),(await t).stdout}function N(n,r){let s=new Map;for(let t of n.split("\0")){let e=t.indexOf(" "),i=t.slice(e+1),o=$.exec(t.slice(0,e));o!==null&&r.has(i)&&s.set(i,o[1])}return s}function B(n,r,s){let t=[],e=[],i=0;for(let o of n.trimEnd().split(/\r?\n/u)){let c=M.exec(o);if(c===null||!r.has(c[1]))continue;let l=Number(c[2]);!Number.isSafeInteger(l)||l>s||(e.length>0&&i+l+128>s&&(t.push(e),e=[],i=0),e.push({id:c[1],size:l}),i+=l+128)}return e.length>0&&t.push(e),t}function O(n,r,s){let t=0;for(let{id:e,size:i}of r){let o=n.indexOf(10,t)+1;if(o===0||n.subarray(t,o-1).toString("ascii")!==`${e} blob ${i}`||n[o+i]!==10)throw new Error("Invalid indexed receipt batch framing");s.set(e,n.subarray(o,o+i).toString("utf8")),t=o+i+1}if(t!==n.length)throw new Error("Unexpected indexed receipt batch data")}async function z(n,r,s,t){let e=m();e.GIT_NO_REPLACE_OBJECTS="1",process.env.GIT_INDEX_FILE!==void 0&&(e.GIT_INDEX_FILE=I.resolve(process.env.GIT_INDEX_FILE));let i={cwd:n,env:e,windowsHide:!0,timeout:1e4,maxBuffer:t+256};try{let o=(await h("git",["rev-parse","--show-toplevel"],{...i,encoding:"utf8"})).stdout.trim(),[c,l]=await Promise.all([E(o),E(r)]),f=I.relative(c,l).replaceAll("\\","/");if(g(f))return new Map;i.cwd=c;let b=new Map(s.map(a=>[`${f}/${a}`,a])),v=(await h("git",["ls-files","--stage","-z","--",`:(literal)${f}/`],{...i,encoding:"utf8"})).stdout,d=N(v,new Set(b.keys()));if(d.size===0)return new Map;let w=new Set(d.values()),x=(await y(["cat-file","--batch-check"],[...w],i)).toString("utf8"),p=new Map;for(let a of B(x,w,t))O(await y(["cat-file","--batch"],a.map(u=>u.id),i),a,p);return new Map([...d].filter(([,a])=>p.has(a)).map(([a,u])=>[b.get(a),p.get(u)]))}catch{return new Map}}export{z as readIndexedReceiptBlobs};
|
|
4
|
-
//# sourceMappingURL=indexed-receipt-blobs-YCLN2ZZG.js.map
|