@unbrained/pm-cli 2026.8.24 → 2026.8.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +13 -0
- package/dist/cli-bundle/bundle-manifest.json +152 -152
- package/dist/cli-bundle/chunks/{chunk-ZAVCS2GH.js → chunk-244MI4GS.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-NXBFO63A.js → chunk-2F3LUFMW.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-DJNJBWAQ.js → chunk-5I5RWIJC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-X7WWQDYQ.js → chunk-65MHLHAA.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-6C7GIMIL.js +13 -0
- package/dist/cli-bundle/chunks/{chunk-IW72J5FW.js → chunk-OWHNAR2B.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-TEQDR5KI.js → chunk-QKGMHGEI.js} +62 -62
- package/dist/cli-bundle/chunks/{chunk-L22NP5MA.js → chunk-QLUORNIB.js} +86 -86
- package/dist/cli-bundle/chunks/{chunk-AGUL3HUT.js → chunk-T2ENPRXF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-I5Q7QSZX.js → chunk-TPQIBSL2.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-YQMYF3YD.js +35 -0
- package/dist/cli-bundle/chunks/{register-list-query-37A4P6O4.js → register-list-query-XVN2ZLI7.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-TBJDHYIT.js → register-mutation-QCKAEGIJ.js} +3 -3
- package/dist/cli-bundle/chunks/{register-operations-WRZNEBUM.js → register-operations-SDEAXE7E.js} +2 -2
- package/dist/cli-bundle/chunks/{register-setup-H4PDLACD.js → register-setup-LXVBRCJ3.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-CWCN5RLO.js → chunk-2UIWOP3O.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-42S3GGZ7.js +50 -0
- package/dist/cli-bundle/focused-chunks/{chunk-BFA6KKCI.js → chunk-7I23XGWO.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-6Z24ZMU3.js → chunk-7YCDTCBC.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-O4ZXNJMT.js → chunk-A644DUFQ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-4WP7LNE3.js → chunk-GQR3WH3F.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-RASVBJX5.js → chunk-H5JZEIQV.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-IBZZZGK3.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-LMKG3DFE.js +5 -0
- package/dist/cli-bundle/focused-chunks/{chunk-6MUTDXMP.js → chunk-N7W67YIG.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-IMWTYKII.js → chunk-NOOZGIXP.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-WZLSSGEU.js → chunk-OHIHZ7HS.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-ONYQCALA.js +19 -0
- package/dist/cli-bundle/focused-chunks/{chunk-QBP5FSBX.js → chunk-OVJL6NZE.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-RAFKLNZX.js +16 -0
- package/dist/cli-bundle/focused-chunks/{chunk-GJR6YEMR.js → chunk-VXWATRFL.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-IZNRRCU3.js → chunk-XUQPEKRN.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-MNPECIRL.js → chunk-YO3ZF3FI.js} +2 -2
- package/dist/cli-bundle/main.js +2 -2
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +2 -2
- package/dist/cli-bundle/sdk-core.js +41 -41
- 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 +32 -33
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +5 -5
- package/dist/core/diagnostics/remediation.js +17 -2
- package/dist/sdk/cli-contracts/runtime-contracts.d.ts +10 -0
- package/dist/sdk/cli-contracts/runtime-contracts.js +20 -3
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +49 -25
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +26 -2
- package/dist/sdk/governance/health.js +98 -11
- package/dist/sdk/governance/validate.js +15 -9
- package/dist/sdk/history-repair.d.ts +24 -0
- package/dist/sdk/history-repair.js +145 -4
- package/dist/sdk/merge/driver.js +25 -4
- package/dist/sdk/merge/receipt-file-boundary.d.ts +21 -0
- package/dist/sdk/merge/receipt-file-boundary.js +47 -0
- package/dist/sdk/merge/receipts.d.ts +24 -1
- package/dist/sdk/merge/receipts.js +342 -36
- package/dist/sdk/merge/reconcile.js +117 -47
- package/dist/sdk/read-output/continuation.d.ts +15 -2
- package/dist/sdk/read-output/continuation.js +86 -6
- package/dist/sdk/read-output-contracts.d.ts +4 -1
- package/dist/sdk/read-output-contracts.js +9 -6
- package/docs/MERGE_SAFETY.md +34 -5
- package/docs/OUTPUT_PROJECTION_CONTRACTS.md +13 -1
- package/docs/READ_OUTPUT_CONTRACTS.md +25 -2
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +7 -3
- package/marketplace.json +2 -2
- package/package.json +1 -1
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/sdk/public-surface.json +136 -15
- package/dist/cli-bundle/chunks/chunk-MKE6MD2K.js +0 -36
- package/dist/cli-bundle/chunks/chunk-YOLLRCLY.js +0 -13
- package/dist/cli-bundle/focused-chunks/chunk-FCTT4CZU.js +0 -5
- package/dist/cli-bundle/focused-chunks/chunk-Q63PSLO4.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-QV5UP27O.js +0 -51
- package/dist/cli-bundle/focused-chunks/chunk-RPRLENVA.js +0 -16
- package/dist/cli-bundle/focused-chunks/chunk-TOFVXBWA.js +0 -19
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import{Bb as fe,La as Mt,Ra as Nt,Z as N,ea as kt,eb as de,fa as Lt,fb as R,gb as le,l as Ue,lb as ue,o as ce,oa as J,pb as Be,qa as Ve,ta as qe,tb as Ye,ua as je,wa as He,yb as Ge,zb as We}from"./chunk-GJR6YEMR.js";import{$ as Rt,G as j,M as Q,O as Pe,P as $e,Q as ze,R as Dt,Sa as ae,V as g,X,Y as H,Z as b,a as Ne,q,s as K,t as T,u as S,w as se}from"./chunk-QBP5FSBX.js";import{S as Oe,Y as f,Z as m,ba as Fe}from"./chunk-FCTT4CZU.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]="b9581c92-5e8a-589d-9681-d4d014e6902b")}catch{}})();function cn(e,t="--limit"){if(e===void 0)return;let r=Number(e);if(!Number.isFinite(r)||r<0)throw new m(`${t} must be a non-negative number`,f.USAGE);return Math.floor(r)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7775a1f2-5167-5853-a2c5-a44d46f8e80e")}catch{}})();var dn=/\b(?:gh[pousr]_[A-Za-z0-9]{20,}|github_pat_[A-Za-z0-9_]{20,})\b/,ln=/\bnpm_[A-Za-z0-9]{36}\b/,un=/\bxox[baprs]-(?=[A-Za-z0-9-]{20,80}\b)(?=[A-Za-z0-9-]*\d)[A-Za-z0-9-]{20,80}\b/,fn=/-----BEGIN (?:[A-Z0-9]+ )?PRIVATE KEY-----/,mn=/\b(?:AKIA|ASIA)[A-Z0-9]{16}\b/,Ot=/\b(?:token|secret|password|passwd|api[_-]?key)\s*[:=]\s*["']?([A-Za-z0-9+/=_-]{24,})/gi,pn=[{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"}],Qe=new Map(pn.map(e=>[e.action,e]));function _n(e){let t=new Map;for(let n of e)t.set(n,(t.get(n)??0)+1);let r=0;for(let n of t.values()){let o=n/e.length;r-=o*Math.log2(o)}return r}function Ke(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)=>Ke(n,`${t}[${o}]`,r)):Object.entries(e).flatMap(([n,o])=>Ke(o,`${t}.${n}`,r)))}function Pt(e){let t=[];for(let r of Ke(e)){dn.test(r.value)&&t.push({rule:"github_token",path:r.path}),ln.test(r.value)&&t.push({rule:"npm_token",path:r.path}),un.test(r.value)&&t.push({rule:"slack_token",path:r.path}),fn.test(r.value)&&t.push({rule:"private_key",path:r.path}),mn.test(r.value)&&t.push({rule:"aws_access_key",path:r.path}),Ot.lastIndex=0;for(let n of r.value.matchAll(Ot)){let o=n[1];if(_n(o)>=3.5){t.push({rule:"high_entropy_assignment",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.",f.USAGE,{code:"mutation_author_required",required:"Pass --author <id>, set PM_AUTHOR, or configure author_default.",nextSteps:["Retry with --author <stable-agent-id>.","Set PM_AUTHOR for this agent session."]});if(e.settings.secret_guard==="off")return{author:t,findings:[],warnings:[],override_applied:!1};let r;try{r=Pt(e.payload)}catch{return{author:t,findings:[],warnings:["secret_guard_scan_failed_open"],override_applied:!1}}if(r.length===0)return{author:t,findings:r,warnings:[],override_applied:!1};let n=[...new Set(r.map(o=>o.rule))].sort().join(",");if(e.settings.secret_guard==="block"&&e.force!==!0)throw new m(`Mutation blocked by secret guard (${n}). No detected value was logged.`,f.CONFLICT,{code:"mutation_secret_guard_blocked",required:"Remove the credential-shaped content or retry with --force after explicit review.",nextSteps:["Replace the value with a secret-manager reference.","Use pm history-redact if equivalent content already entered history."],recovery:{recovery_mode:"compact",attempted_command:"pm <mutation> [REDACTED]",normalized_args:["[REDACTED]"],suggested_retry:"Remove credential-shaped content, then retry the mutation."}});return{author:t,findings:r,warnings:[`secret_guard_detected:${r.length}:rules=${n}`,...e.settings.secret_guard==="block"&&e.force===!0?["secret_guard_force_override"]:[]],override_applied:e.settings.secret_guard==="block"&&e.force===!0}}function gn(e){return Qe.has(e.trim().toLowerCase())}function yn(){return[...Qe.keys()].sort((e,t)=>e.localeCompare(t))}function Ta(e){return Qe.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]="3ad30a32-0f83-5473-b0a3-349e271d8378")}catch{}})();function wn(e){return e.trim().toLowerCase().replace(/\s+/g," ")}function Ia(e){return wn(e).split(/[^a-z0-9]+/).filter(t=>t.length>0)}function Z(e,t){if(e.length===0&&t.length===0)return 1;if(e.length===0||t.length===0)return 0;let r=new Set(e),n=new Set(t),o=0;for(let s of r)n.has(s)&&(o+=1);let i=new Set([...r,...n]).size;return o/i}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="dff9b113-2b29-5154-afbf-f191f2f556a6")}catch{}})();var En=/\b[a-z][a-z0-9]*-\d+(?:-[a-z0-9]+)*\b/giu;function me(e){return e.trim().toLowerCase().replace(/\s+/g," ")}function te(e){return[...new Set(me(e).match(/[\p{L}\p{N}]+/gu)??[])]}function ee(e){let t=me(e);return{normalized:t,tokens:te(t),issueCodes:[...new Set(t.match(En)?.map(r=>r.toLowerCase())??[])]}}function pe(e,t){return _e(ee(e),ee(t))}function _e(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:Z(e.tokens,t.tokens),reason:"title_token_jaccard"}}import bn from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="376bb9d2-e202-57e7-86c8-d70a7d3fa7ab")}catch{}})();function he(e){return(e??"in_progress").trim().toLowerCase().replaceAll("-","_")}function Sn(e,t){return[e.updated_at,t].map(n=>({value:n,time:Date.parse(n??"")})).filter(n=>typeof n.value=="string"&&Number.isFinite(n.time)).sort((n,o)=>o.time-n.time)[0]?.value??e.updated_at}function $t(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=Sn(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 Tn(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 He(bn.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)})),$t(t,{...r,last_history_activity:o=>n.get(o.id)})}import{mkdir as xn,readFile as In}from"node:fs/promises";import zt 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]="71a8cd89-54fc-5f8a-b93b-9e4a79bb34b6")}catch{}})();function An(e){let t=e.trim();if(!t)throw new m("--rollback requires a non-empty checkpoint ID",f.USAGE);if(!/^[a-zA-Z0-9._-]+$/.test(t))throw new m("--rollback checkpoint ID must match [a-zA-Z0-9._-]+",f.USAGE);return t}function vn(e,t){let r=t.replace(/[-:.TZ]/g,"").slice(0,14),n=Math.random().toString(36).slice(2,8);return`${e}-${r}-${n}`}function Ft(e,t){return zt.join(e,"checkpoints",t)}function Ut(e,t,r){return zt.join(Ft(e,t),`${r}.json`)}async function Cn(e,t,r,n){let o=Ft(e,t);await xn(o,{recursive:!0});let i=Ut(e,t,r);return await S(i,`${JSON.stringify(n,null,2)}
|
|
2
|
-
`),i}function Dn(e,t){if(!Array.isArray(e.items))throw new m(`Checkpoint ${t} is missing items`,f.GENERIC_FAILURE);return e.items.map(r=>{if(!r||typeof r!="object")throw new m(`Checkpoint ${t} contains an invalid item entry`,f.GENERIC_FAILURE);let n=r;if(typeof n.id!="string"||n.id.trim().length===0)throw new m(`Checkpoint ${t} contains an item entry without ID`,f.GENERIC_FAILURE);if(typeof n.target_updated_at!="string"||n.target_updated_at.trim().length===0)throw new m(`Checkpoint ${t} contains an item entry without target_updated_at`,f.GENERIC_FAILURE);return{id:n.id.trim(),target_updated_at:n.target_updated_at.trim()}})}async function Rn(e,t,r,n){let o=An(r),i=Ut(e,t,o);if(!await q(i))throw new m(`Checkpoint ${o} not found`,f.NOT_FOUND);let s=await In(i,"utf8"),a;try{a=JSON.parse(s)}catch(l){throw new m(`Checkpoint ${o} contains invalid JSON: ${b(l)}`,f.GENERIC_FAILURE)}if(!a||typeof a!="object")throw new m(`Checkpoint ${o} is invalid`,f.GENERIC_FAILURE);let c=a;if(c.schema_version!==n)throw new m(`Checkpoint ${o} has unsupported schema version`,f.GENERIC_FAILURE);let d=Dn(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:N(),author:typeof c.author=="string"?c.author:"unknown"}}async function kn(e,t){let r=[],n=[];for(let o of e)try{let i=await t(o.id,o.target_updated_at);r.push({id:o.id,status:"restored",changed_fields:i.changed_fields,warnings:i.warnings}),n.push(o.id)}catch(i){r.push({id:o.id,status:"failed",error: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]="ab276268-7a98-5f97-b3f5-300dfd1b5ed5")}catch{}})();function O(e){if(typeof e!="string")return null;let t=e.trim().toLowerCase();return t.length>0?t:null}function Va(e,t){let r=O(t);return!e||!r?null:[...e.assurance_providers??[]].reverse().find(n=>O(n.definition.id)===r)??null}function Ln(e,t){let r=O(t);return!e||!r?null:[...e.search_providers].reverse().find(o=>(O(o.runtime_definition?.name)??O(o.definition?.name))===r)??null}function Mn(e,t){let r=O(t);return!e||!r?null:[...e.vector_store_adapters].reverse().find(o=>(O(o.runtime_definition?.name)??O(o.definition?.name))===r)??null}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2252cfb9-37ea-57f1-b7ea-2b0c0f87ecb2")}catch{}})();var k="-",Vt=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 qt(e){let t=e.trim();if(t==="")return[];let n=(zn(t)??t.split(",")).map(o=>o.trim()).filter(Boolean).map(o=>o.toLowerCase());return Array.from(new Set(n)).sort((o,i)=>o.localeCompare(i))}function jt(e){if(!Array.isArray(e)||e.length===0)return[];let t=[];for(let r of e)if(typeof r=="string")for(let n of qt(r))t.push(n);return Array.from(new Set(t)).sort((r,n)=>r.localeCompare(n))}function Ht(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim().toLowerCase()).filter(Boolean):[]}function Nn(e){return typeof e!="string"?[]:e.split(";").map(t=>t.trim()).filter(Boolean)}function On(e,t,r){let n=e.map(s=>s.trim()).filter(Boolean);for(let s of t??[]){let a=s.trim();if(a.includes(";"))throw new m('Acceptance criteria added with --add-ac cannot contain ";" because semicolons delimit stored criteria',f.USAGE,{code:"acceptance_criteria_semicolon_forbidden",required:"Pass one semicolon-free criterion per --add-ac value",why:"A semicolon inside one criterion would be re-read as multiple criteria",nextSteps:["Split the text into repeated --add-ac values, or replace the semicolon with punctuation that is not the storage delimiter"]});a.length>0&&!n.includes(a)&&n.push(a)}let o=[],i=n;for(let s of r??[]){let a=s.trim();if(a.length!==0){if(!i.includes(a)){o.push(a);continue}i=i.filter(c=>c!==a)}}return{criteria:i,unmatchedRemovals:o}}function Pn(e,t){let r=Ht(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 jt(t))n.add(o);return Array.from(n).sort((o,i)=>o.localeCompare(i))}function $n(e,t){let r=Array.from(new Set(Ht(e))).sort((o,i)=>o.localeCompare(i));if(!t||t.length===0)return r;let n=new Set(jt(t));return n.size===0?r:r.filter(o=>!n.has(o))}function zn(e){if(!e.startsWith("["))return null;let t;try{t=JSON.parse(e)}catch{return null}return t.map(n=>typeof n=="string"||typeof n=="number"||typeof n=="boolean"?String(n):"").filter(n=>n.length>0)}function Xe(e){return e.replace(/\r\n/g,`
|
|
3
|
-
`)}function Bt(e){let t=Xe(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 Fn(e){let t=[],r="",n=!1,o=!1;for(let i of e){if(o){r+=i,o=!1;continue}if(i==="\\"){r+=i,o=!0;continue}if(i==='"'){n=!n,r+=i;continue}if(i===","&&!n){t.push(r.trim()),r="";continue}r+=i}return r.trim()&&t.push(r.trim()),t}function Yt(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 Un(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 Vn(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 qn(e,t){let r=e.replaceAll(/\s+/g," ").trim(),n=r.length>160?`${r.slice(0,157)}...`:r,o=Vn(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} ${k} to read piped stdin input.`}function jn(e){let t=Bt(e).trim();if(t.length===0||!t.includes(`
|
|
6
|
-
`)&&!t.startsWith("-")&&!t.startsWith("*")&&!t.startsWith("+"))return null;let r={},n,o=Xe(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]=Yt(s[3].trim()),n=a;continue}if(n&&Vt.has(n.toLowerCase())){r[n]=`${r[n]}
|
|
8
|
-
${i}`;continue}return null}return r}function Hn(e,t){let r=Bt(e).trim();if(!r)throw new m(`${t} cannot be empty`,f.USAGE);let n=jn(r);if(n)return n;let o={},i,s=Fn(r);for(let a of s){let c=Un(a);if(c>0){let d=a.slice(0,c).trim(),l=Yt(a.slice(c+1).trim());o[d]=l,i=d;continue}if(i&&Vt.has(i.toLowerCase())){o[i]=`${o[i]},${a.trim()}`;continue}throw new m(qn(e,t),f.USAGE)}return o}var Bn=/^[A-Za-z]:[\\/]/,Yn=/^(?:[-*+]\s+)?[A-Za-z_][A-Za-z0-9_.-]*\s*=/;function Gn(e){let t=e.trim();return Bn.test(t)?!1:Yn.test(t)}function Wn(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(", ")}.`,f.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.`,f.USAGE);e[s]=e[i],delete e[i]}}}async function Kn(e){if(process.stdin.isTTY===!0)throw new m(`${e} value "${k}" requires piped stdin input. Pipe content into the command, or end manual stdin with Ctrl+D (Unix/macOS) or Ctrl+Z then Enter (Windows).`,f.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(Xe(n))}),process.stdin.on("error",o=>{r(o)})})}var P=Symbol("all-mutation-stdin-fields"),x=new WeakMap;function Gt(e){return x.set(e,P),e}function Qn(e,t){let r=x.get(e);return r===P||x.set(e,new Set([...r??[],...t])),e}function Xn(e,t){let r=x.get(e);return r===void 0||x.set(t,r===P?r:new Set(r)),t}function Ba(e,t){let r=x.get(e),n=x.get(t);return r===void 0||n===P?t:r===P?(x.set(t,r),t):(x.set(t,new Set([...n??[],...r])),t)}function Jn(e){return x.get(e)!==P}function ge(e,t){let r=x.get(e);return r!==P&&!r?.has(t)}function Zn(e){let t;for(let r of e){if(r.resolveToken===!1||r.value===void 0)continue;let o=(Array.isArray(r.value)?r.value:[r.value]).filter(i=>i.trim()===k).length;if(o>1)throw new m(`${r.optionName} accepts "${k}" stdin token at most once per command invocation`,f.USAGE);if(o!==0){if(t!==void 0&&t!==r.optionName)throw new m(`Only one option may use "${k}" stdin token per command invocation. Already used by ${t}.`,f.USAGE);t=r.optionName}}}async function Ya(e,t,r){let n=e,o=[...t,...r];Zn(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 Gt(s)}function ye(){let e,t,r=async i=>{if(t&&t!==i)throw new m(`Only one option may use "${k}" stdin token per command invocation. Already used by ${t}.`,f.USAGE);return t=i,e||(e=Kn(i)),await e};return{resolveValue:async(i,s,a=!0)=>{if(!a)return i;if(i!==void 0)return i.trim()!==k?i:await r(s)},resolveList:async(i,s,a=!0)=>{if(!a)return i;if(!i)return;let c=i.map((u,_)=>u.trim()===k?_:-1).filter(u=>u>=0);if(c.length===0)return i;if(c.length>1)throw new m(`${s} accepts "${k}" stdin token at most once per command invocation`,f.USAGE);let d=await r(s),l=[...i];return l[c[0]]=d,l}}}function eo(e,t){let r=Number(e);if(!Number.isFinite(r))throw new m(`Invalid ${t} value "${e}"`,f.USAGE);return r}function to(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.`,f.USAGE);return n}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="411f4336-eb02-5167-9dce-ea99822a8a14")}catch{}})();function Je(e){return[...new Set(e.split(/[,\r\n]+/).map(t=>t.trim()).filter(t=>t.length>0))]}function ro(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=Je(t.join(`
|
|
9
|
-
`));return r.length>0?r.join(","):""}function no(e){if(e===void 0)return;if(typeof e=="number")return Number.isFinite(e)?String(e):"";if(Array.isArray(e))return ro(e);if(typeof e!="string")return"";let t=Je(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]="19ff592c-0746-54e8-a304-2006f4845da2")}catch{}})();function Wt(e){return e.replaceAll("~1","/").replaceAll("~0","~")}function Ze(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?Wt(r):"metadata"}let t=e.replace(/^\//,"").split("/")[0];return t?Wt(t):"root"}function we(e,t){return t==="body"?e.body:t==="metadata"?e.metadata:t==="root"?e:e.metadata[t]}function oo(e,t){let r=t?.windowStartIndex??0,n=t?.field;if(e.length===0||r>=e.length)return[];let o=Mt(),i=[];for(let s=0;s<e.length;s+=1){let a=e[s],c=o,d=Nt(o,a.patch),l;d.ok?(l=d.document,o=l):l=c;let u=new Set;for(let p of a.patch)u.add(Ze(p.path)),p.from!==void 0&&u.add(Ze(p.from));let _=[...u].sort((p,h)=>p.localeCompare(h));if(s>=r)if(n!==void 0){if(!u.has(n))continue;let p={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:[p]})}else{let p=_.map(h=>({field:h,before:we(c,h),after:we(l,h)}));i.push({index:s+1,ts:a.ts,op:a.op,author:a.author,patch_ops:a.patch.length,changed_fields:_,changes:p})}}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]="a97ee152-4d20-54f1-add9-fdb991ab6b33")}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]="4a376062-2e23-5991-80a5-27183909caf3")}catch{}})();var io=new Set(["none","null","undefined"]);function ac(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)",f.USAGE)}function so(e){if(typeof e!="string")throw new m("--parent must be a string. Use --unset parent to clear this field.",f.USAGE);let t=e.trim();if(t.length===0)throw new m("--parent must not be empty. Use --parent none to unset.",f.USAGE);if(Kt(t))throw new m(`--parent must not use placeholder token "${t}". Use --unset parent to clear this field.`,f.USAGE);return t}function Kt(e){return io.has(e.trim().toLowerCase())}function ao(e,t){if(t==="strict_error")throw new m(`Parent item "${e}" was not found. Create it first or use --parent none.`,f.USAGE);return{warnings:[`validation_warning:parent_reference_missing:${e}`]}}function co(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.`,f.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]="806bf35f-dc7e-55a8-9bb9-64be87111c22")}catch{}})();var et={critical:0,high:1,medium:2,low:3,minimal:4},lo=Object.keys(et),uo=`numbers 0..4 (0=critical, 1=high, 2=medium, 3=low, 4=minimal) or names (${lo.join(", ")}), case-insensitive`;function Ee(e){return new m(`Invalid priority "${e}". Accepted values: ${uo}.`,f.USAGE)}function fo(e){if(typeof e=="number"){if(Number.isInteger(e)&&e>=0&&e<=4)return e;throw Ee(String(e))}if(typeof e!="string")throw Ee(String(e));let t=e.trim();if(t.length===0)throw Ee(e);let r=t.toLowerCase();if(Object.prototype.hasOwnProperty.call(et,r))return et[r];if(/^[0-4]$/.test(t))return Number(t);throw Ee(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]="bf76a01e-7292-59df-94ca-1e41aaff7365")}catch{}})();var mo=/^[A-Za-z0-9][A-Za-z0-9._/-]*$/,po=64;function pc(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)",f.USAGE)}function _o(e,t,r){let n=t.trim();if(n.length===0)throw new m(`--${e} must not be empty. Use --${e} none to unset.`,f.USAGE);if(n.length<=po&&mo.test(n))return{value:n,warnings:[]};let i="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}". ${i}`,f.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]="d0e997bc-8bdb-5602-8606-73ecf77b2a35")}catch{}})();var Qt={open:"open_status",closed:"close_status",canceled:"canceled_status",cancelled:"canceled_status"},Xt="all";function Ec(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]===Xt}function ho(e,t){let r=e.trim().toLowerCase();if(r.length===0)return;let n=Qt[r];return n?t[n]:J(e,t)}function go(e){let t=new Set(Object.keys(Qt));for(let r of e.definitions){t.add(r.id);for(let n of r.aliases)t.add(n)}return[...t]}function yo(e,t){let r=e.trim().toLowerCase(),n,o=Number.POSITIVE_INFINITY;for(let i of go(t)){let s=Ne(r,i.toLowerCase(),2);s!==null&&s<o&&(n=i,o=s)}return n}function wo(e,t,r){if(typeof e!="string")return;let n=r?.strict===!0,o=r?.flagLabel??"--status",i=e.split(",").map(c=>c.trim()).filter(c=>c.length>0);if(i.length===0)return;if(i.filter(c=>c.trim().toLowerCase()===Xt).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.`,f.USAGE)}let a=[];for(let c of i){let d=ho(c,t);if(d===void 0){if(n){let l=yo(c,t);throw new m(`Invalid ${o} value "${c}". Use open|closed|canceled or a configured status id${l?`. Did you mean "${l}"?`:"."}`,f.USAGE)}a.push(c);continue}a.push(d)}return[...new Set(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]="b7a167e0-3041-5056-a672-ea0a054ed8df")}catch{}})();var Eo={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 bo(e){if(e!==void 0)return Eo[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]="6d11dc0f-e313-5b39-965d-6bc84ad52966")}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]="43a56374-808c-5fa6-bd6c-5d93175df0d2")}catch{}})();function Jt(e,t){return Fe(e,t)}function So(e,t,r){let n={};for(let o of t.command_to_fields.get(r)??[]){let i=kt(e,o);i!==void 0&&(n[o.metadata_key]=Lt(o,i))}return n}function To(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(a=>String(a));if(!n.map(a=>String(a)).every(a=>i.includes(a)))return!1;continue}if(!Jt(o,n[n.length-1]))return!1;continue}if(!Jt(o,n))return!1}return!0}import{spawnSync as er}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]="12bfc6e7-8979-58e8-8276-98cc859f3e32")}catch{}})();var xo="PM_DISABLE_OLLAMA_AUTO_DEFAULTS",Io="PM_OLLAMA_MODEL",Ao="http://localhost:11434",vo="qwen3-embedding:0.6b",Co=".agents/pm/search/lancedb/",Do=1500,Ro=2500,ko=/qwen.*(?:embed|embedding)|(?:embed|embedding).*qwen/i,Lo=/embed|embedding/i,A=g;function Mo(){let e=A(process.env[xo]);if(!e)return!1;let t=e.toLowerCase();return t==="1"||t==="true"||t==="yes"}function Zt(e){return e.some(t=>A(t)!==null)}function No(e){let t=A(e);return!!(t&&t.toLowerCase()!=="ollama")}function Oo(e){let t=A(e);return!!(t&&t.toLowerCase()!=="lancedb")}function Po(e){return No(e.search?.provider)||Oo(e.vector_store?.adapter)||Zt([e.providers?.openai?.base_url,e.providers?.openai?.model,e.providers?.openai?.api_key])?!0:Zt([e.vector_store?.qdrant?.url,e.vector_store?.qdrant?.api_key])}function $o(){let e=er("ollama",["--version"],{encoding:"utf8",timeout:Do});return e.error?!1:e.status===0}function zo(e){let t=e.split(/\r?\n/).map(i=>i.trim()).filter(i=>i.length>0);if(t.length===0)return null;let r=t.map(i=>i.split(/\s+/)[0]?.trim()).filter(i=>!!(i&&i.length>0)).filter(i=>i.toUpperCase()!=="NAME");if(r.length===0)return null;let n=r.find(i=>ko.test(i));return n||(r.find(i=>Lo.test(i))??null)}function Fo(e){let t=A(e.providers?.ollama?.model);if(t)return t;let r=A(process.env[Io]);if(r)return r;let n=er("ollama",["list"],{encoding:"utf8",timeout:Ro});if(!n.error&&n.status===0){let o=zo(typeof n.stdout=="string"?n.stdout:"");if(o)return o}return null}function Uo(e){return{baseUrl:A(e.providers?.ollama?.base_url)===null,model:A(e.providers?.ollama?.model)===null,lancedbPath:A(e.vector_store?.lancedb?.path)===null,embeddingModel:A(e.search?.embedding_model)===null}}function Vo(e){return e.baseUrl||e.model||e.lancedbPath||e.embeddingModel}function qo(e,t,r){if(!t.baseUrl&&!t.model)return;let n=e.providers??={},o=n.ollama??={};t.baseUrl&&(o.base_url=Ao),t.model&&(o.model=r)}function jo(e,t){if(!t.lancedbPath)return;let r=e.vector_store??={},n=r.lancedb??={};n.path=Co}function Ho(e,t,r){if(!t.embeddingModel)return;let n=e.search??={};n.embedding_model=r}function be(e){let t={settings:e,auto_ollama_defaults_applied:!1};if(Mo()||Po(e))return t;let r=Uo(e);if(!Vo(r)||r.model&&!$o())return t;let n=structuredClone(e),o=Fo(n);return o?(qo(n,r,o),jo(n,r),Ho(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 ${vo} 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]="d8d5f7e9-5293-564b-bc44-f5ba30336893")}catch{}})();var Go="reindex";import _r 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]="b5ce7132-0024-5d42-9cb8-585933beb7c7")}catch{}})();var Wo=3e4;function $(e,t,r=Wo){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 z(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 Ko(e){try{return(await e.text()).replaceAll(/\s+/g," ").trim()}catch(t){return`(failed to read response body: ${b(t)})`}}async function Se(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 Ko(n),i=o.length>0?`: ${o}`:"";throw new Error(`${e.requestLabel} failed with status ${n.status} ${n.statusText}${i}`)}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]="af754be6-8026-530a-8a20-b03d4ed742e1")}catch{}})();function qc(e,t){let r=g(e);if(!r)return"unconfigured";let n=g(t);return n&&n.toLowerCase()===r.toLowerCase()?"configured":"auto-detected"}function Qo(e){let t=X(e),r=t.toLowerCase();return r.endsWith("/embeddings")?t:r.endsWith("/v1")?`${t}/embeddings`:`${t}/v1/embeddings`}function nr(e){let t=e.search?.embedding_model;return g(t)||null}function Xo(e){let t=g(e.providers?.openai?.base_url),r=g(e.providers?.openai?.model);if(!t||!r)return null;let n=nr(e),o=g(e.providers?.openai?.api_key);return{name:"openai",base_url:t,model:n??r,...o?{api_key:o}:{}}}function Jo(e){let t=g(e.providers?.ollama?.base_url),r=g(e.providers?.ollama?.model);if(!t||!r)return null;let n=nr(e);return{name:"ollama",base_url:t,model:n??r}}function or(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 Zo(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 ei(e){let t=e.map((n,o)=>({embedding:n.embedding,index:n.index,position:o}));if(t.some(n=>n.index!==void 0)){for(let n of t)if(!Number.isInteger(n.index))throw new TypeError(`OpenAI embedding response entry at position ${n.position} is missing a valid integer index`);return[...t].sort((n,o)=>{let i=n.index-o.index;return i!==0?i:n.position-o.position})}return t}function tt(e){let t=Xo(e),r=Jo(e),n=[t,r].filter(a=>a!==null),o=g(e.search?.provider),i=o?o.toLowerCase():null;return{active:(i?n.find(a=>a.name===i):void 0)??n[0]??null,available:n}}function rr(e){let t=X(e.base_url);return e.name==="openai"?{provider:"openai",endpoint:Qo(t),model:e.model}:{provider:"ollama",endpoint:`${t}/api/embed`,model:e.model}}function ti(e,t){let r=or(t);return e.name==="openai"?{target:rr(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:rr(e),method:"POST",headers:{"content-type":"application/json"},body:{model:e.model,input:r}}}function ri(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 ei(o).map((s,a)=>{let c=s.embedding;if(!H(c))throw new Error(`OpenAI embedding response entry at index ${a} is missing a numeric embedding vector`);return[...c]})}let r=t.embedding;if(H(r))return[[...r]];let n=t.embeddings;if(Array.isArray(n)&&n.length>0)return n.map((o,i)=>{if(!H(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 ir(e,t,r={}){let n=$(r.timeout_ms,"Embedding request"),o=z(r.fetcher,"Embedding request"),i=or(t),s=Zo(i),a=ti(e,s.uniqueInputs),c=await Se({endpoint:a.target.endpoint,method:a.method,headers:a.headers,body:a.body,timeoutMs:n,fetcher:o,requestLabel:"Embedding request",responseLabel:"Embedding response"}),d=ri(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]="61c0153b-8fa5-5c26-aa88-ca9807f2d160")}catch{}})();var Te=["title","description","tags","status","type","priority","assignee","parent","goal","value","why_now","risk","confidence","estimated_minutes","acceptance_criteria","resolution","expected_result","actual_result","body","comments","notes","learnings","reminders","events","dependencies","plan"];function rt(e){let t=e?.search?.corpus_fields;if(!Array.isArray(t))return[...Te];let r=new Set(Te),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:[...Te]}var ni=8e3,nt=3200,F="...[semantic corpus truncated]",oi="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 ii(e){return(e.reminders??[]).map(t=>C([t.at,t.text]))}function si(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 ai(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 ci(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 Bc(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??[])ai(t,r);return ci(t,e),t.filter(r=>typeof r=="string"&&r.length>0).join(" ")}function di(e){let t=(e.plan_steps??[]).map(s=>C([s.order,s.id,s.title,s.body,s.status,s.owner,s.evidence,s.blocked_reason,s.superseded_by,(s.linked_items??[]).map(a=>C([a.kind,a.id,a.note])).join(" "),(s.files??[]).map(a=>C([a.path,a.note])).join(" "),(s.tests??[]).map(a=>C([a.command,a.path,a.note])).join(" "),(s.docs??[]).map(a=>C([a.path,a.note])).join(" ")])),r=(e.plan_decisions??[]).map(s=>C([s.decision,s.rationale,s.evidence,s.step_id])),n=(e.plan_discoveries??[]).map(s=>C([s.text,s.step_id])),o=(e.plan_validation??[]).map(s=>C([s.text,s.command,s.expected]));if([e.plan_mode,e.plan_scope,e.plan_harness,e.plan_resume_context,...t,...r,...n,...o].some(s=>s!==void 0))return{mode:e.plan_mode,scope:e.plan_scope,harness:e.plan_harness,resume_context:e.plan_resume_context,steps:t,decisions:r,discoveries:n,validation:o}}function v(e){return typeof e=="string"&&e.trim().length>0}var li={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=>v(e.metadata.assignee)?e.metadata.assignee:void 0,parent:e=>v(e.metadata.parent)?e.metadata.parent:void 0,goal:e=>v(e.metadata.goal)?e.metadata.goal:void 0,value:e=>v(e.metadata.value)?e.metadata.value:void 0,why_now:e=>v(e.metadata.why_now)?e.metadata.why_now:void 0,risk:e=>v(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=>v(e.metadata.acceptance_criteria)?e.metadata.acceptance_criteria:void 0,resolution:e=>v(e.metadata.resolution)?e.metadata.resolution:void 0,expected_result:e=>v(e.metadata.expected_result)?e.metadata.expected_result:void 0,actual_result:e=>v(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=>ii(e.metadata),events:e=>si(e.metadata),dependencies:e=>(e.metadata.dependencies??[]).map(t=>({id:t.id,kind:t.kind})),plan:e=>di(e.metadata)};function sr(e,t={}){let r=t.fields??Te,n={};for(let o of r){let i=li[o];if(!i)continue;let s=i(e);s!==void 0&&(n[o]=s)}return n}function ui(e){return e?.trim().toLowerCase()==="ollama"?nt:ni}function B(e,t){let r=ui(e),n=Rt(t);return n!==null?{maxCharacters:n,warning:null}:{maxCharacters:r,warning:t==null?null:oi}}function ot(e,t={}){let r=JSON.stringify(sr(e,{fields:t.fields})),n=B(t.providerName,t.maxCharacters).maxCharacters;if(r.length<=n)return r;if(n<=F.length)return F.slice(0,n);let o=Math.max(0,n-F.length);return`${r.slice(0,o)}${F}`}(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]="2c518b97-bc75-5e3f-91e8-d6779d565558")}catch{}})();function fi(e,t){let r=e.search.embedding_batch_size,n=e.search.embedding_timeout_ms,o=e.search.scanner_max_batch_retries,i=Number.isFinite(r)&&r>0?Math.floor(r):1,s=Number.isFinite(n)&&n>0?Math.floor(n):3e4,a=Number.isFinite(o)&&o>=0?Math.floor(o):0;return{batchSize:i,timeoutMs:s,maxRetries:a,maxBatchInputCharacters:Number.POSITIVE_INFINITY,maxInputCharacters:t}}function mi(e,t,r){let n=[],o=[],i=0;for(let s of e){let a=o.length>=t,c=o.length>0&&Number.isFinite(r)&&i+s.length>r;(a||c)&&(n.push(o),o=[],i=0),o.push(s),i+=s.length}return n.push(o),n}function pi(e,t){return e.name!=="ollama"?t:{...t,maxBatchInputCharacters:nt}}function _i(e,t){if(!Number.isFinite(t)||t<=0||e.length<=t)return e;let r=Math.max(0,t-F.length);return`${e.slice(0,r)}${F}`.slice(0,t)}function ar(e){let t=b(e).toLowerCase();return t.includes("timed out")||t.includes("timeout")}function hi(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 ar(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})`}async function it(e,t,r,n,o,i){let s=null;for(let a=0;a<=o;a+=1)try{let c=await ir(e,t,{timeout_ms:n});return a>0&&i.push(`search_embedding_batch_retry_succeeded:batch=${r}:attempt=${a+1}:size=${t.length}`),c}catch(c){if(s=c,ar(c)&&t.length>1){let d=Math.ceil(t.length/2),l=t.slice(0,d),u=t.slice(d);return i.push(`search_embedding_batch_split_after_timeout:batch=${r}:size=${t.length}:parts=${l.length}|${u.length}`),[...await it(e,l,`${r}.1`,n,o,i),...await it(e,u,`${r}.2`,n,o,i)]}if(a<o){let d=Math.min(1e3*2**a,8e3);await new Promise(l=>setTimeout(l,d))}}throw new Error(hi(e,r,t.length,n,o+1,s))}async function st(e,t,r,n={}){if(r.length===0)return{vectors:[],warnings:[]};let o=[],i=B(e.name,t.search.embedding_corpus_max_characters);i.warning&&o.push(i.warning);let s=pi(e,fi(t,i.maxCharacters)),a=0,c=r.map(_=>{let p=_i(_,s.maxInputCharacters);return p.length<_.length&&(a+=1),p});a>0&&o.push(`search_embedding_input_truncated:count=${a}:max_characters=${s.maxInputCharacters}`);let d=mi(c,s.batchSize,s.maxBatchInputCharacters),l=[],u=0;for(let _=0;_<d.length;_+=1){let p=d[_];n.onProgress?.({batch_index:_+1,batch_total:d.length,batch_size:p.length,completed_inputs:u,total_inputs:c.length,phase:"start"}),l.push(...await it(e,p,String(_+1),s.timeoutMs,s.maxRetries,o)),u+=p.length,n.onProgress?.({batch_index:_+1,batch_total:d.length,batch_size:p.length,completed_inputs:u,total_inputs:c.length,phase:"complete"})}return{vectors:l,warnings:o}}import{mkdir as gi,readFile as yi,stat as dt,unlink as wi}from"node:fs/promises";import{basename as cr,dirname as at,isAbsolute as Ei,join as bi,resolve as lt}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]="98c8d03c-bdde-5ac4-b80d-395d885f7442")}catch{}})();var ut="pm_items",Si=/[^a-zA-Z0-9_-]/g,Ti=128,xi=".pm-cli-local-vectors",ct=1,U=new Map;function ne(e){return(g(e.collection_name)??ut).replaceAll(Si,"_").slice(0,Ti)}function xe(e){if(!H(e)||e.length===0)throw new Error("Vector values must be a non-empty numeric array");return[...e]}function lr(e){if(!Number.isFinite(e)||e<=0)throw new Error("Vector query limit must be a positive number");return Math.floor(e)}function Ii(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=g(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 ft(e){let t=g(e.result?.status);if(t)return{status:t};let r=g(e.status);if(r)return{status:r};throw new Error("Qdrant upsert response must include status metadata")}async function re(e,t,r,n,o){return await Se({endpoint:e,method:t.method,headers:t.headers,body:t.body,timeoutMs:r,fetcher:n,requestLabel:`Vector ${o} request`,responseLabel:`Vector ${o} response`})}function Ai(e){let t=g(e.vector_store?.qdrant?.url);if(!t)return null;let r=g(e.vector_store?.collection_name),n=g(e.vector_store?.qdrant?.api_key);return{name:"qdrant",url:t,...r&&r!==ut?{collection_name:r}:{},...n?{api_key:n}:{}}}function vi(e){let t=lt(e),r=at(t);return cr(t)==="pm"&&cr(r)===".agents"?at(r):t}function Ci(e,t){return!t||Ei(e)?e:lt(vi(t),e)}function Di(e,t){let r=g(e.vector_store?.lancedb?.path);if(!r)return null;let n=g(e.vector_store?.collection_name);return{name:"lancedb",path:Ci(r,t),...n&&n!==ut?{collection_name:n}:{}}}function Ri(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=g(t.id);if(!n)throw new Error(`Vector upsert record at index ${r} is missing a non-empty id`);let o=xe(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 ki(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=g(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 Li(e){return e.replace(/\/points\?wait=true$/,"/points/delete?wait=true")}function Mi(e){return e.replace(/\/points\?wait=true$/,"")}function Ie(e){return{"content-type":"application/json",...e.api_key?{"api-key":e.api_key}:{}}}function Ae(e,t){return Y(e,t)}function Y(e,t){return bi(lt(e),xi,`${t}.json`)}function Ni(e,t,r){let n=g(e.id);if(!n)throw new Error(`LanceDB local snapshot '${r}' record at index ${t} is missing a non-empty id`);let o=xe(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 Oi(e,t,r){let n;try{n=JSON.parse(r)}catch(c){throw new Error(`LanceDB local snapshot at '${e}' is not valid JSON: ${b(c)}`)}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!==ct)throw new Error(`LanceDB local snapshot at '${e}' must include version=${ct}`);let i=g(n.table);if(!i)throw new Error(`LanceDB local snapshot at '${e}' must include a non-empty table value`);if(i!==t)throw new Error(`LanceDB local snapshot at '${e}' table mismatch: expected '${t}', received '${i}'`);let s=n.records;if(!Array.isArray(s))throw new TypeError(`LanceDB local snapshot at '${e}' must include a records array`);let a=new Map;for(let c=0;c<s.length;c+=1){let d=Ni(s[c],c,e);a.set(d.id,d)}return a}async function Pi(e){try{let t=await dt(e);return{mtimeMs:t.mtimeMs,size:t.size}}catch(t){if(!K(t))throw t;return null}}function $i(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 U.set(e,{records:r,mtimeMs:null,size:null}),r}function zi(e,t){return e!==void 0&&t!==null&&e.mtimeMs===t.mtimeMs&&e.size===t.size}async function mt(e,t){let r=Ae(e,t),n=Y(e,t),o=await Pi(n),i=U.get(r);if(!o){let a=$i(r,i);if(a)return a}if(zi(i,o))return i.records;let s=new Map;try{let a=await yi(n,"utf8");s=Oi(n,t,a)}catch(a){if(!K(a))throw a}return U.set(r,{records:s,mtimeMs:o?.mtimeMs??null,size:o?.size??null}),s}function Fi(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 ur(e){try{await wi(e)}catch(t){if(!K(t))throw new Error(`LanceDB local snapshot delete failed at '${e}': ${b(t)}`)}}async function fr(e,t,r){let n=Y(e,t);if(r.size===0){await ur(n);return}let o=at(n);try{await gi(o,{recursive:!0})}catch(s){throw new Error(`LanceDB local snapshot directory create failed at '${o}': ${b(s)}`)}let i=`${JSON.stringify({version:ct,table:t,records:Fi(r)})}
|
|
10
|
-
`;try{await S(n,i)}catch(s){throw new Error(`LanceDB local snapshot write failed at '${n}': ${b(s)}`)}}async function Ui(e,t){let r=Ae(e,t),n=Y(e,t);await ur(n),U.delete(r)}function dr(e){let t=0;for(let r=0;r<e.length;r+=1)t+=e[r]*e[r];return Math.sqrt(t)}function Vi(e,t){let r=0;for(let i=0;i<e.length;i+=1)r+=e[i]*t[i];let n=dr(e),o=dr(t);return n===0||o===0?0:r/(n*o)}function pt(e,t){let r=Ai(e),n=Di(e,t),o=[r,n].filter(c=>c!==null),i=g(e.vector_store?.adapter),s=i?i.toLowerCase():null;return{active:(s?o.find(c=>c.name===s):void 0)??o[0]??null,available:o}}function ve(e){let t=ne(e);if(e.name==="qdrant"){let o=X(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 qi(e,t,r){let n=ve(e),o=xe(t),i=lr(r);return e.name==="qdrant"?{target:n,method:"POST",headers:Ie(e),body:{vector:o,limit:i,with_payload:!0}}:{target:n,method:"LOCAL",headers:{},body:{table:ne(e),vector:o,limit:i}}}function ji(e,t){let r=ve(e),n=Ri(t);return e.name==="qdrant"?{target:r,method:"POST",headers:Ie(e),body:{points:n}}:{target:r,method:"LOCAL",headers:{},body:{table:ne(e),records:n}}}function Hi(e,t){let r=ve(e),n=ki(t);return e.name==="qdrant"?{target:r,method:"POST",headers:Ie(e),body:{points:n}}:{target:r,method:"LOCAL",headers:{},body:{table:ne(e),ids:n}}}async function rd(e,t,r,n={}){let o=qi(e,t,r);if(o.method==="LOCAL"){let c=e,d=o.body,l=await mt(c.path,d.table);if(l.size===0)return[];let u=xe(d.vector),_=lr(d.limit),p=[],h=0;for(let y of l.values()){if(y.vector.length!==u.length){h++;continue}p.push({id:y.id,score:Vi(u,y.vector),...y.payload?{payload:y.payload}:{}})}return h>0&&n.warnings&&n.warnings.push(`vector_dimension_mismatch:${h} records skipped (expected ${u.length} dimensions)`),p.sort((y,w)=>y.score!==w.score?w.score-y.score:y.id.localeCompare(w.id)),p.slice(0,_)}let i=$(n.timeout_ms,"Vector request"),s=z(n.fetcher,"Vector request"),a=await re(o.target.query_target,{method:"POST",headers:o.headers,body:o.body},i,s,"query");return Ii(a)}async function _t(e,t,r={}){let n=ji(e,t);if(n.method==="LOCAL"){let a=e,c=n.body,d=Ae(a.path,c.table),l=await mt(a.path,c.table);for(let p of c.records)l.set(p.id,p);await fr(a.path,c.table,l);let u=Y(a.path,c.table),_=await dt(u);return U.set(d,{records:l,mtimeMs:_.mtimeMs,size:_.size}),{status:"ok"}}let o=$(r.timeout_ms,"Vector request"),i=z(r.fetcher,"Vector request"),s=await re(n.target.upsert_target,{method:"POST",headers:n.headers,body:n.body},o,i,"upsert");return ft(s)}async function Ce(e,t,r={}){let n=Hi(e,t);if(n.method==="LOCAL"){let a=e,c=n.body,d=Ae(a.path,c.table),l=await mt(a.path,c.table);if(l.size===0)return{status:"ok"};for(let u of c.ids)l.delete(u);if(await fr(a.path,c.table,l),l.size===0)U.delete(d);else{let u=Y(a.path,c.table),_=await dt(u);U.set(d,{records:l,mtimeMs:_.mtimeMs,size:_.size})}return{status:"ok"}}let o=$(r.timeout_ms,"Vector request"),i=z(r.fetcher,"Vector request"),s=await re(Li(n.target.upsert_target),{method:"POST",headers:n.headers,body:n.body},o,i,"delete");return ft(s)}async function mr(e,t=[],r={},n){if(e.name==="lancedb")return await Ui(e.path,ne(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=ve(e),s=Mi(i.upsert_target),a=$(r.timeout_ms,"Vector request"),c=z(r.fetcher,"Vector request"),d=Ie(e);try{await re(s,{method:"DELETE",headers:d,body:{}},a,c,"delete")}catch(u){if(!b(u).includes("failed with status 404"))throw u}let l=await re(s,{method:"PUT",headers:d,body:{vectors:{size:n,distance:"Cosine"}}},a,c,"upsert");return ft(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]="4b3ad5fc-0f86-5f20-a23b-19d447cb0973")}catch{}})();function De(e,t){let r=g(e),n=g(t);return!r||!n?null:{provider:r,model:n}}function pr(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=De(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 ht(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 gt(e,t){return!e||e.provider!==t.provider||e.model!==t.model}function yt(e,t){return!!(e&&e.vector_dimension!==t)}function wt(e,t){if(e.length===0)throw new Error(`${t} returned no vectors`);let n=e[0].length;if(!Number.isInteger(n)||n<=0)throw new Error(`${t} returned an empty vector`);for(let o=1;o<e.length;o+=1)if(e[o]?.length!==n)throw new Error(`${t} returned mixed vector dimensions`);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]="7939a590-3662-5c66-99aa-3835a0dbaecc")}catch{}})();var hr="search/vectorization-status.json";function ie(e){return[...new Set([...e].map(t=>t.trim()).filter(t=>t.length>0))].sort((t,r)=>t.localeCompare(r))}function gr(e){return typeof e=="string"&&e.trim().length>0&&Number.isFinite(Date.parse(e))}function yr(e){let t=new Map;for(let[r,n]of Object.entries(e)){let o=r.trim();o.length===0||!gr(n)||t.set(o,n)}return Object.fromEntries([...t.entries()].sort((r,n)=>r[0].localeCompare(n[0])))}async function wr(e){let t=_r.join(e,hr),r=await T(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||!gr(c))return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]};o.set(a.trim(),c)}let i=null;try{i=pr(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 Er(e,t,r){let n=yr(t),o=_r.join(e,hr),i=`${JSON.stringify({version:1,generated_at:N(),...r?{embedding:r}:{},items:Object.entries(n).map(([s,a])=>({id:s,updated_at:a}))},null,2)}
|
|
11
|
-
`;await S(o,i)}function Bi(e){return{id:e.id,type:e.type,status:e.status,priority:e.priority,updated_at:e.updated_at}}function Yi(e){let t=De(e.name,e.model);if(!t)throw new Error("Embedding provider must include a provider name and model");return t}function oe(e,t){return{refreshed:[],skipped:e,warnings:[t]}}async function Gi(e,t,r){if(!r.settings&&!await q($e(e)))return oe(t,"search_semantic_refresh_skipped:settings_not_initialized");let n;try{if(r.settings)n=r.settings;else{let a=await de(e),c=a.warnings.find(d=>d.startsWith("settings_read_"));if(c)return oe(t,`search_semantic_refresh_skipped:settings_read_failed:${c}`);n=a.settings}}catch(a){return oe(t,`search_semantic_refresh_skipped:settings_read_failed:${b(a)}`)}let o=r.apply_runtime_defaults?be(n).settings:n,i=tt(o).active;if(!i)return oe(t,"search_semantic_refresh_skipped:provider_unconfigured");let s=pt(o,e).active;return s?{settings:o,provider:i,vectorStore:s}:oe(t,"search_semantic_refresh_skipped:vector_store_unconfigured")}async function Wi(e,t,r,n,o,i){let s=[],a=new Set,c=new Set,d=[];for(let l of n){let u=await Ge(e,l,t,r,o);if(!u){c.add(l);continue}try{let _=await We(u,{schema:i});d.push({id:_.document.metadata.id,document:_.document})}catch(_){a.add(u.id),s.push(`search_semantic_refresh_item_read_failed:${u.id}:${b(_)}`)}}return d.sort((l,u)=>l.id.localeCompare(u.id)),{documents:d,missingIds:ie(c),skippedIds:ie(a),warnings:s}}async function Ki(e,t,r){let n=B(t.name,e.search.embedding_corpus_max_characters).maxCharacters,o=rt(e),i=r.map(a=>ot(a.document,{providerName:t.name,maxCharacters:n,fields:o})),s=await st(t,e,i);return{vectors:s.vectors,vector_dimension:wt(s.vectors,"Semantic refresh embedding"),warnings:s.warnings}}async function Qi(e,t,r){return await _t(e,t.map((n,o)=>({id:n.id,vector:r[o],payload:Bi(n.document.metadata)}))),{refreshed:t.map(n=>n.id),skipped:[],warnings:[]}}async function Xi(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 Td(e,t,r={}){let n=ie(t);if(n.length===0)return{refreshed:[],skipped:[],warnings:[]};let o=await Gi(e,n,r);if(!("settings"in o))return o;let i=j(o.settings,Ue()),s=await Wi(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 wr(e):{entries:{},embedding:null,warnings:[]},c=Yi(o.provider),d=a.entries,l={refreshed:[],skipped:[],warnings:[]},u=a.embedding;if(s.documents.length>0)if(a.embedding&>(a.embedding,c))l={refreshed:[],skipped:s.documents.map(w=>w.id),warnings:["search_semantic_refresh_requires_reindex:embedding_identity_changed"]};else try{let w=await Ki(o.settings,o.provider,s.documents);if(yt(a.embedding,w.vector_dimension))l={refreshed:[],skipped:s.documents.map(E=>E.id),warnings:[...w.warnings,"search_semantic_refresh_requires_reindex:vector_dimension_changed"]};else{u=ht(c,w.vector_dimension);let E=await Qi(o.vectorStore,s.documents,w.vectors);l={refreshed:E.refreshed,skipped:E.skipped,warnings:[...w.warnings,...E.warnings]}}}catch(w){l={refreshed:[],skipped:s.documents.map(E=>E.id),warnings:[`search_semantic_refresh_failed:${b(w)}`]}}let _=await Xi(o.vectorStore,s.missingIds),p=new Set(l.refreshed),h=Object.fromEntries(s.documents.filter(w=>p.has(w.id)).map(w=>[w.id,w.document.metadata.updated_at])),y=[];if(Object.keys(h).length>0||s.missingIds.length>0){let w={...d,...yr(h)};for(let E of s.missingIds)delete w[E];try{await Er(e,w,u)}catch(E){y.push(`search_vectorization_status_ledger_write_failed:${b(E)}`)}y.push(...a.warnings)}return{refreshed:ie([...l.refreshed,..._.refreshed]),skipped:ie([...s.skippedIds,...l.skipped,..._.skipped]),warnings:[...s.warnings,...l.warnings,..._.warnings,...y]}}import{createRequire as Zi}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]="8eb48648-6e55-5710-990e-6471c7cdcde0")}catch{}})();var es=/(?:token|secret|password|passwd|api[_-]?key|apikey|authorization|cookie|credentials|bearer|dsn)/i,vd=new RegExp(`\\b(${es.source})\\s*[:=]\\s*([^\\s,;]+)`,"giu");var Cd=Zi(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]="e896db69-ed90-53f1-a227-e3d061b3bc8d")}catch{}})();var kd=new Map([[f.USAGE,"invalid_command_usage"],[f.NOT_FOUND,"item_not_found"],[f.CONFLICT,"lock_conflict"],[f.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]="5e6ba316-b067-51df-abeb-c3e3488a504d")}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]="c43dd9f2-78ac-5c22-970a-0016a06b87b3")}catch{}})();var Fd=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]="0ce743d1-917a-5c96-b038-c95e3922bc48")}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]="868dfae8-2575-5d5f-8425-c7e68aefdc84")}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]="4ecab833-db06-5baa-bfe6-d28b4c97f85a")}catch{}})();function rs(e,t){if(e==null)return[];let r=t?.separators??/,/,o=e.split(r).map(a=>a.trim()).filter(a=>a.length>0),s=t?.unique!==!1?Array.from(new Set(o)):o;return t?.sort===!0?[...s].sort():s}import Sr from"node:fs/promises";import Re from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4baf0ef3-2412-51cf-9ade-18b5c6e610d1")}catch{}})();function ns(e){return"json_markdown"}function Tr(e,t){return Re.relative(e,t).replaceAll("\\","/")}function os(e){return String(e).replaceAll(/[^a-zA-Z0-9._-]+/g,"_").slice(0,120)}async function is(e,t,r="item_format:migrate",n=Oe,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=ns(t),l=Object.entries(n);for(let[u,_]of l){let p=Re.join(e,_),h=[];try{h=await Sr.readdir(p)}catch{continue}let y=new Map;for(let E of h){let L=Re.join(p,E),M=Dt(L);if(!M)continue;let G=Re.extname(E),W=E.slice(0,E.length-G.length).trim();if(W.length===0)continue;let V=y.get(W)??{};V[M]=L,y.set(W,V)}let w=[...y.keys()].sort((E,L)=>E.localeCompare(L));for(let E of w){let L=y.get(E);c+=1;let M=L[d];if(!M)continue;let G=L[t]??M,W=G===L[t]?t:d;try{let V=await Sr.readFile(G,"utf8"),sn=qe(V,{format:W,schema:o,onWarning:an=>a.push(`item_format_migration_parse_warning:${E}:${an}`)}),Me=ze(e,u,E,t,n),Ct=je(sn,{format:t,schema:o});await T(Me)!==Ct&&(await S(Me,Ct),a.push(...await ce({path:Me,scope:"project",op:r})),i.add(E)),await se(M),s.add(Tr(e,M)),a.push(...await ce({path:M,scope:"project",op:`${r}:remove`})),i.add(E)}catch(V){a.push(`item_format_migration_skipped:${Tr(e,G)}:${os(V)}`)}}}return{target_format:t,scanned:c,migrated:[...i].sort((u,_)=>u.localeCompare(_)),removed:[...s].sort((u,_)=>u.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]="f280c1df-b134-57c3-91f6-cbf5a37e6e31")}catch{}})();var ss=new Set(["completed","superseded"]);function as(e){return e!==void 0&&ss.has(e)}function cs(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 el 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]="6783b122-a1a8-5f86-9ac5-2c3e811622ed")}catch{}})();import St from"node:crypto";import{mkdirSync as dl,rmSync as us,statSync as ll}from"node:fs";import{mkdir as Et,readdir as fs,rm as Tt,stat as Rr}from"node:fs/promises";import{request as ms}from"node:http";import{request as ps}from"node:https";import I 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]="26ea62d9-874d-5826-9822-83c5523b673b")}catch{}})();var _s=I.join("runtime","telemetry","events.jsonl"),hs=I.join("runtime","telemetry","state.json"),gs=I.join("runtime","telemetry","otel-spans.jsonl"),ys=8,xr=500,ws=1;var Es=100,bs=36e5,Ss=3e4,Ir=2e4,Ts=1e3,xs=25e3,Is=864e5,kr=65536;var Lr=15;var Mr=[25,50,100,200],As=3600*1e3,vs=6e4;var Cs="PM_TELEMETRY_DISABLED",Ds="PM_NO_TELEMETRY",Ar=new Set(["1","true","yes","on"]);var Rs="PM_TELEMETRY_HTTP_TIMEOUT_MS",ks=globalThis.fetch,Ls=["user","automation","test","dogfood"],Tl=Promise.resolve(),vr=Promise.resolve();var xl=new Set(Ls);var Il=St.randomUUID();var Nr="(?:token|secret|password|passwd|api[_-]?key|apikey|authorization|cookie|session|credentials|bearer|literals?|regex(?:es)?|replacements?)",Ms=new RegExp(`\\b(${Nr})\\s*([:=])\\s*([^\\s,;]+)`,"giu"),Ns=new RegExp(`(--${Nr})(=|\\s+)([^\\s,;]+)`,"giu"),Os=/(^|[\s"'`(=])\/(?:[^\s"'`),;]+)/g,Ps=/bearer\s+[a-z0-9._=-]+/giu,$s=/\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 Le(e){return I.join(e,_s)}function xt(e){return I.join(e,gs)}function zs(e){return I.dirname(Le(e))}function Or(e){return I.join(e,hs)}function Pr(e){return I.join(e,"runtime","telemetry","flush.lock")}function Fs(e){return I.join(e,"runtime","telemetry","flush.spawn.lock")}async function Us(e){let t=await T(Or(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 D(e,t){try{let n={...await Us(e),...t},o=Object.fromEntries(Object.entries(n).filter(([,i])=>i!==void 0).sort((i,s)=>i[0].localeCompare(s[0])));await S(Or(e),`${JSON.stringify(o,null,2)}
|
|
12
|
-
`)}catch{}}function $r(e){return e.replaceAll(Ms,(r,n,o)=>`${n}${o}[redacted]`).replaceAll(Ns,(r,n,o)=>`${n}${o}[redacted]`)}function zr(e){return e.replaceAll(Os,(t,r)=>`${r}[redacted_path]`)}function Fr(e){let t=e>=65&&e<=90,r=e>=97&&e<=122,n=e>=48&&e<=57;return t||r||n}function Ur(e){if(!e)return!1;let t=e.charCodeAt(0);return Fr(t)?!0:e==="."||e==="_"||e==="%"||e==="+"||e==="-"}function Vr(e){if(!e)return!1;let t=e.charCodeAt(0);return Fr(t)?!0:e==="."||e==="-"}function Vs(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(!Ur(i))return!1;for(let i of n)if(!Vr(i))return!1;return!0}function qs(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&&Ur(e[o]);)o-=1;o+=1;let i=n+1;for(;i<e.length&&Vr(e[i]);)i+=1;let s=e.slice(o,i);if(Vs(s)){t+=e.slice(r,o),t+="[redacted_email]",r=i;continue}t+=e.slice(r,n+1),r=n+1}return t}function qr(e){return qs(e).replaceAll(Ps,"bearer [redacted_token]").replaceAll($s,"[redacted_ip]")}function js(e){let t=qr(e),r=$r(t),n=zr(r),o=n.trim();return o.startsWith("/")&&o.length>1?"[redacted_path]":n.length>512?`${n.slice(0,509)}...`:n}function Hs(e){let t=qr(e),r=$r(t),n=zr(r),o=n.trim();return o.startsWith("/")&&o.length>1?"[redacted_path]":n.length>2048?`${n.slice(0,2045)}...`:n}function bt(e,t="redacted"){return t==="max"?Hs(e):js(e)}function Cr(){let e=process.env[Rs]?.trim();if(!e)return Ir;let t=Number(e);return Number.isFinite(t)?Math.min(xs,Math.max(Ts,Math.trunc(t))):Ir}async function jr(e,t,r){let n=new URL(e);if(globalThis.fetch!==ks){let i=new AbortController,s,a=new Promise((c,d)=>{s=setTimeout(()=>{i.abort(),d(new Error("telemetry_http_timeout"))},Cr())});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:"?ps:n.protocol==="http:"?ms:void 0;if(!o)throw new Error(`telemetry_http_protocol_unsupported_${n.protocol}`);return new Promise((i,s)=>{let a=Cr(),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)})}function Bs(){return Ar.has((process.env[Cs]??"").trim().toLowerCase())||Ar.has((process.env[Ds]??"").trim().toLowerCase())}async function Ys(e){let t=await R(e),r=!1;return t.telemetry.installation_id.trim().length===0&&(t.telemetry.installation_id=St.randomUUID(),r=!0),r&&await le(e,t,"telemetry:install_id"),{installationId:t.telemetry.installation_id,endpoint:t.telemetry.endpoint,retentionDays:Math.max(1,Math.trunc(t.telemetry.retention_days))}}function Hr(e){let t=[];for(let r of e.split(`
|
|
13
|
-
`)){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 Br(e){let t=Math.min(Ss*2**Math.max(e-1,0),bs);return new Date(Date.now()+t).toISOString()}function Yr(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 Gs(e){return Yr(e.next_attempt_after)}function Gr(e){let t=Number.isFinite(e)?Math.max(1,Math.trunc(e)):1;return Date.now()-t*Is}function Ws(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 It(e,t){let r=Gr(t),n=[],o=0;for(let i of e){if(JSON.stringify(i).length>kr||Ws(i,r)||i.attempts>=Lr){o+=1;continue}n.push(i)}return{entries:n,prunedCount:o}}async function ke(e,t){let r=t.map(o=>JSON.stringify(o)).join(`
|
|
14
|
-
`),n=r.length>0?`${r}
|
|
15
|
-
`:"";for(let o=0;;o+=1)try{await S(Le(e),n);return}catch(i){let s=Mr[o];if(s===void 0||!Wr(i))throw i;await Kr(s)}}function Wr(e){if(typeof e!="object"||e===null||!("code"in e))return!1;let t=e.code;return t==="EACCES"||t==="EBUSY"||t==="EPERM"}function Kr(e){return new Promise(t=>{setTimeout(t,e)})}function Ks(e){let t=JSON.stringify([e.endpoint,e.enqueued_at,e.payload]);return St.createHash("sha256").update(t).digest("hex").slice(0,32)}function Qr(e){let t=[];for(let r of e.split(`
|
|
16
|
-
`)){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=Ks(o)),t.push(o))}catch{}}return t}function Qs(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 Xr(e,t){let r=Gr(t),n=[],o=0;for(let i of e){if(JSON.stringify(i).length>kr||Qs(i,r)||i.attempts>=Lr){o+=1;continue}n.push(i)}if(n.length>xr){let i=n.length-xr;return o+=i,{entries:n.slice(i),prunedCount:o}}return{entries:n,prunedCount:o}}async function Xs(e,t){let r=t.map(o=>JSON.stringify(o)).join(`
|
|
17
|
-
`),n=r.length>0?`${r}
|
|
18
|
-
`:"";for(let o=0;;o+=1)try{await S(xt(e),n);return}catch(i){let s=Mr[o];if(s===void 0||!Wr(i))throw i;await Kr(s)}}async function Dr(e,t,r,n){return At(async()=>{let o=await T(xt(e)),i=o===null?[]:Qr(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}=Xr(s,t);return await Xs(e,a),a.length})}async function Js(e,t){let r=await T(xt(e));if(r===null||r.trim().length===0){await D(e,{pending_otel_spans:0});return}let n=Qr(r),{entries:o,prunedCount:i}=Xr(n,t),s=o.filter(h=>Yr(h.next_attempt_after)).slice(0,ys);if(s.length===0){let h=i>0?await Dr(e,t,new Set,new Map):o.length;await D(e,{pending_otel_spans:h});return}let a=N(),c=new Set,d=new Map,l=0,u;await Promise.all(s.map(async h=>{try{let y=await jr(h.endpoint,{"content-type":"application/json"},JSON.stringify(h.payload));if(y<200||y>=300)throw new Error(`local_otel_export_http_${y}`);c.add(h.id),l+=1}catch(y){u=y instanceof Error?bt(y.message,"redacted"):"local_otel_export_failed";let w=h.attempts+1;d.set(h.id,{attempts:w,next_attempt_after:Br(w)})}}));let _=await Dr(e,t,c,d),p={pending_otel_spans:_,last_otel_attempt_at:a};l>0&&(p.last_otel_success_at=a),u!==void 0?(p.last_otel_failure_at=a,p.last_otel_failure_error=u):_===0&&(p.last_otel_failure_at=void 0,p.last_otel_failure_error=void 0),await D(e,p)}async function Zs(e,t,r){try{await na(e,t,r)}catch{}try{await Js(e,r)}catch{}}async function ea(e,t=As){try{let r=zs(e),n=await fs(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=I.join(r,i.name);(await Rr(s)).mtimeMs<o&&await Tt(s,{force:!0})}))}catch{}}async function At(e){let t=vr.catch(()=>{}).then(e);return vr=t.catch(()=>{}),t}async function vt(e){let t=await T(Le(e));return t===null||t.trim().length===0?[]:Hr(t)}async function ta(e,t,r){return At(async()=>{let n=await vt(e),{entries:o}=It(n,r),i=o.filter(s=>!t.has(s.event.event_id));return await ke(e,i),i})}async function ra(e,t,r,n){return At(async()=>{let o=await vt(e),{entries:i}=It(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:Br(c)}});return await ke(e,s),s})}async function na(e,t,r){await ea(e);let n=t.trim();if(n.length===0)return;let o=await T(Le(e));if(o===null||o.trim().length===0){await D(e,{endpoint:n,queue_entries:0});return}let i=Hr(o);if(i.length===0){await D(e,{endpoint:n,queue_entries:0});return}let{entries:s,prunedCount:a}=It(i,r);if(s.length===0){await ke(e,[]),await D(e,{endpoint:n,queue_entries:0});return}let c=s.filter(p=>Gs(p)).slice(0,Es);if(c.length===0){a>0&&await ke(e,s),await D(e,{endpoint:n,queue_entries:s.length});return}let d=new Set(c.map(p=>p.event.event_id)),l=N(),u={"content-type":"application/json"},_=process.env.PM_TELEMETRY_INGEST_KEY?.trim();_&&(u["x-pm-telemetry-key"]=_);try{let p=await jr(n,u,JSON.stringify({schema_version:ws,events:c.map(h=>h.event)}));if(p<200||p>=300)throw new Error(`telemetry_flush_http_${p}`)}catch(p){let h=await ra(e,d,l,r),y=p instanceof Error?bt(p.message,"redacted"):"telemetry_flush_failed";await D(e,{endpoint:n,queue_entries:h.length,last_attempted_flush_at:l,last_failed_flush_at:l,last_failed_flush_error:y});return}try{let p=await ta(e,d,r);await D(e,{endpoint:n,queue_entries:p.length,last_attempted_flush_at:l,last_successful_flush_at:l,last_failed_flush_at:void 0,last_failed_flush_error:void 0})}catch(p){let h=p instanceof Error?bt(p.message,"redacted"):"telemetry_flush_failed",y=await vt(e).catch(()=>s);await D(e,{endpoint:n,queue_entries:y.length,last_attempted_flush_at:l,last_failed_flush_at:l,last_failed_flush_error:h})}}async function oa(e){let t=Pr(e);await Et(I.dirname(t),{recursive:!0});try{return await Et(t),!0}catch(r){if(typeof r!="object"||r===null||!("code"in r)||r.code!=="EEXIST")throw r}try{let r=await Rr(t);return Date.now()-r.mtimeMs<vs?!1:(await Tt(t,{recursive:!0,force:!0}),await Et(t),!0)}catch{return!1}}function ia(e){try{us(e,{recursive:!0,force:!0})}catch{}}function sa(e){ia(Fs(e))}async function aa(e,t,r){let n=await oa(e);if(sa(e),!!n)try{await Zs(e,t,r)}finally{try{await Tt(Pr(e),{recursive:!0,force:!0})}catch{}}}async function Al(e=Pe(process.cwd())){if(!Bs())try{if(!(await R(e)).telemetry.enabled)return;let{endpoint:r,retentionDays:n}=await Ys(e);await aa(e,r,n)}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]="be6f7869-f197-5d38-b8d9-faf8f390cd56")}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]="13c02696-29a7-598e-888a-3502fd88bfbe")}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]="33a43890-abcf-58fc-bf9d-bf2619d4cf35")}catch{}})();var ca=3,Jr=20,da=.8,la=100,Zr=1e3,en=1e6;function Kp(e){return e===void 0?[]:[`likely_duplicates:${e.result.items.map(t=>t.id).join(",")}`,`likely_duplicate_recovery:${e.recovery.action}:${e.recovery.item_id}`]}async function ua(e,t){let r=e.items[0],n=Q(t.cwd??process.cwd(),t.pmRoot),o=ae((await R(n)).schema);return Ve(r.status,o)?{action:"reopen",item_id:r.id,command:`pm item reopen ${r.id} "<recurrence reason>"`,args:["item","reopen",r.id,"<recurrence reason>"]}:{action:"reuse",item_id:r.id,command:`pm get ${r.id} --full`,args:["get",r.id,"--full"]}}function tn(e){let t=e.limit??ca,r=e.threshold??da;if(!Number.isSafeInteger(t)||t<0||t>Jr)throw new m(`Similarity limit must be an integer from 0 to ${Jr}.`,f.USAGE);if(!Number.isFinite(r)||r<0||r>1)throw new m("Similarity threshold must be a number from 0 to 1.",f.USAGE);return{limit:t,threshold:r}}function fa(e){let t=e.limit??la;if(!Number.isSafeInteger(t)||t<0||t>Zr)throw new m(`Duplicate cluster limit must be an integer from 0 to ${Zr}.`,f.USAGE);let r=e.since===void 0?void 0:new Date(e.since);if(r&&Number.isNaN(r.getTime()))throw new m("Duplicate cluster --since must be a valid ISO timestamp.",f.USAGE);return{limit:t,since:r}}async function ma(e,t){let r=Q(e.cwd??process.cwd(),e.pmRoot),n=await R(r),o=j(n),i=e.statuses?.map(u=>u.trim().toLowerCase()).filter(Boolean);if(e.statuses!==void 0&&i?.length===0)throw new m("Duplicate cluster statuses must include at least one lifecycle status or all.",f.USAGE);let s=ae(n.schema),a=i?.map(u=>{if(u==="all")return u;let _=J(u,s);if(!_)throw new m(`Unknown duplicate-cluster status "${u}". Allowed: all, ${s.definitions.map(p=>p.id).join(", ")}.`,f.USAGE);return _}),c=a?.includes("all")===!0;if(c&&a?.some(u=>u!=="all"))throw new m('The "all" status cannot be combined with other statuses.',f.USAGE);let d=c?void 0:a,l=d?new Set(d):void 0;return{items:(await fe(r,n.item_format,o.type_to_folder,void 0,n.schema)).filter(u=>(!l||l.has(u.status))&&(!t||new Date(u.created_at).getTime()>=t.getTime())).sort((u,_)=>u.id.localeCompare(_.id)).map(u=>({item:u,prepared:ee(u.title)})),statuses:d}}function rn(e,t=en){let r=new Set,n=[new Map,new Map,new Map];for(let[o,i]of e.entries()){let s=[[i.prepared.normalized],i.prepared.issueCodes,i.prepared.tokens];for(let[a,c]of s.entries())for(let d of c){let l=n[a].get(d)??[];for(let u of l)r.add(`${u}:${o}`);if(r.size>t)throw new m(`Duplicate sweep exceeded ${en} candidate pairs; narrow it with statuses or since.`,f.CONFLICT,{code:"duplicate_sweep_cost_limit",required:"Narrow the batch duplicate query until its deterministic candidate set fits the disclosed safety bound."});l.push(o),n[a].set(d,l)}}return r}var Qp={buildDuplicateClusters:on,collectDuplicateCandidatePairs:rn,createDuplicateUnionFind:nn};function nn(e){let t=Array.from({length:e},(n,o)=>o);return{parent:t,findRoot:n=>{let o=n;for(;t[o]!==o;)o=t[o];for(;t[n]!==n;){let i=t[n];t[n]=o,n=i}return o}}}function pa(e,t,r,n){let o=[];for(let i of t){let[s,a]=i.split(":").map(u=>Number.parseInt(u,10)),c=_e(e[s].prepared,e[a].prepared);if(c.score<r)continue;let d=n.findRoot(s),l=n.findRoot(a);d!==l&&(n.parent[l]=d),o.push({left_id:e[s].item.id,right_id:e[a].item.id,...c})}return o}function on(e,t,r,n){let o=new Map;for(let i of e.keys()){let s=r.findRoot(i),a=o.get(s)??[];a.push(i),o.set(s,a)}return[...o.values()].filter(i=>i.length>1).map(i=>{let s=new Set(i.map(c=>e[c].item.id)),a=t.filter(c=>s.has(c.left_id)&&s.has(c.right_id)).sort((c,d)=>d.score-c.score||c.left_id.localeCompare(d.left_id)||c.right_id.localeCompare(d.right_id));return{id:e[i[0]].item.id,items:i.map(c=>{let d=e[c].item;return{id:d.id,title:d.title,status:d.status,type:d.type}}),matches:a,max_score:a[0]?.score??0}}).sort((i,s)=>s.max_score-i.max_score||i.id.localeCompare(s.id)).slice(0,n)}function _a(e,t,r,n,o){return t.filter(i=>!r.has(i.id)).map(i=>({id:i.id,title:i.title,status:i.status,type:i.type,...pe(e,i.title)})).filter(i=>i.score>=n).sort((i,s)=>s.score-i.score||i.id.localeCompare(s.id)).slice(0,o)}async function ha(e,t={}){let r=e.title.trim();if(r.length===0)throw new m("Similarity candidate title must not be empty.",f.USAGE);let{limit:n,threshold:o}=tn(t),i=Q(t.cwd??process.cwd(),t.pmRoot),s=await R(i),a=j(s),c=await Ye(i,Object.values(a.type_to_folder)),d=te(r),l=c&&d.length>0?await Be({pmRoot:i,expectedSourceCursor:c.source_cursor,query:d.map(p=>`"${p.replaceAll('"','""')}"`).join(" OR "),limit:Math.max(n*10,50)}):null,u=l===null?await fe(i,s.item_format,a.type_to_folder,void 0,s.schema):l.items,_=_a(r,u,new Set(e.excludeIds??[]),o,n);return{items:_,count:_.length,threshold:o,source:l?"persistent_index":"metadata_fallback"}}async function Xp(e={}){let{threshold:t}=tn({...e,limit:void 0}),{limit:r,since:n}=fa(e),{items:o,statuses:i}=await ma(e,n),s=rn(o),a=nn(o.length),c=pa(o,s,t,a),d=on(o,c,a,r);return{clusters:d,count:d.length,threshold:t,source:"metadata_scan",filters:{statuses:i??null,since:e.since??null},cost:{item_count:o.length,candidate_pairs:s.size,scored_pairs:s.size}}}async function Jp(e,t){if(t.mode==="off")return;let r=await ha(e,t);if(r.count===0)return;let n=await ua(r,t),o=t.mode==="strict"&&t.allowDuplicate===!0;if(t.mode==="strict"&&!o){let i=r.items.map(a=>`${a.id} (${a.status}): ${a.title}`).join("; "),s=n.action==="reopen"?"Reopen the canonical item":"Reuse the canonical item";throw new m(`Likely duplicate item(s) found: ${i}. ${s} or pass --allow-duplicate with explicit intent.`,f.CONFLICT,{code:"likely_duplicate",required:`${s}, or explicitly acknowledge the duplicate with --allow-duplicate.`,recovery:{suggested_flags:["--allow-duplicate"],suggested_retry:n.command,suggested_retry_args:n.args}})}return{mode:t.mode,bypassed:o,result:r,recovery:n}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="412fc2d2-daee-5d87-82ab-5411a1503087")}catch{}})();function t_(e,t){let r=t??{};return e.filter(n=>r[n.id]!==n.updated_at).map(n=>n.id).sort((n,o)=>n.localeCompare(o))}export{vn as a,Cn as b,Rn as c,kn as d,Va as e,Ln as f,Mn as g,qt as h,Nn as i,On as j,Pn as k,$n as l,Hn as m,Gn as n,Wn as o,Gt as p,Qn as q,Xn as r,Ba as s,Jn as t,ge as u,Ya as v,ye as w,eo as x,to as y,Je as z,no as A,Ze as B,oo as C,ac as D,so as E,Kt as F,ao as G,co as H,fo as I,pc as J,_o as K,Ec as L,wo as M,bo as N,cn as O,So as P,To as Q,be as R,Go as S,qc as T,tt as U,ir as V,rt as W,ii as X,si as Y,Bc as Z,sr as _,B as $,ot as aa,st as ba,pt as ca,rd as da,_t as ea,Ce as fa,mr as ga,De as ha,ht as ia,gt as ja,yt as ka,wt as la,wr as ma,Er as na,Td as oa,pn as pa,Pt as qa,hn as ra,gn as sa,yn as ta,Ta as ua,Ia as va,Z as wa,me as xa,te as ya,ee as za,pe as Aa,_e as Ba,$t as Ca,Tn as Da,rs as Ea,is as Fa,as as Ga,cs as Ha,ws as Ia,Lr as Ja,Ls as Ka,Al as La,t_ as Ma,Kp as Na,Qp as Oa,ha as Pa,Xp as Qa,Jp as Ra};
|
|
19
|
-
//# sourceMappingURL=chunk-TOFVXBWA.js.map
|